From 51893e29718101144c7c9d0f9a39c78ef5aa0af9 Mon Sep 17 00:00:00 2001 From: Rojer Date: Sat, 23 Mar 2024 17:50:27 +0100 Subject: [PATCH 001/275] started the rationale --- docs/theory/code_structure.rst | 34 +++++++++++++++++++++++++ docs/theory/index.rst | 1 + docs/theory/introduction.rst | 46 +++++++++++++++++++++++----------- 3 files changed, 66 insertions(+), 15 deletions(-) create mode 100644 docs/theory/code_structure.rst diff --git a/docs/theory/code_structure.rst b/docs/theory/code_structure.rst new file mode 100644 index 000000000..fab39020d --- /dev/null +++ b/docs/theory/code_structure.rst @@ -0,0 +1,34 @@ +.. _chp_code_structure: + +Code Structure +============== + +Rtc-tools is used as the framework to define optimization problems, https://gitlab.com/deltares/rtc-tools. +Rtc-tools is a tool-box in which time-horizon optimization problems can be defined and via the package Casadi the problems are parsed in formats that allow solvers such as Highs and Gurobi to solve the problem. +Internally rtc-tools makes heavy use of the python mixin structure, which results that MESIDO also adheres to the mixin structure that rtc-tools uses. + +Although the full structure is even more elaborate the basic methods in the mixin are: + +* read: In this method all parsing of data files containing relevant information for the problem should be done, e.g. price profiles. +* times: In this function the time horizon is defined/adapted, note varying time-step size is supported. +* pre: In this method all variables and other operations needed before constraints and goals can be defined should be done. +* (path) constraints: In this method the constraints should be added to the problem, the path constraints are those applied to states which exist in every timestep. +* (path) goals: In this method the goals should be added to the problem, the path goals are those applied to states which exist in every timestep. +* optimize: Here the problem is transcribed and parsed to the solver (this method is never touched in MESIDO). +* post: In this method optional post processing including checks on the outcome of the optimization can be preformed. + +MESIDO offers a toolbox for optimization of multi energy systems with the following mixins: + +* PyCMLMixin: This mixin allows users to define component models with easy functions for adding variables and parameters. +* ESDLMixin: This mixin reads ESDL files and constructs a network model using the asset models defined in PyCML +* PhysicsMixin: This Mixin adds constraints for the modelling of physics in asset components or interaction between assets. The PhysicsMixin inherits the individual commodity mixins and adds physics where interaction between the commodities exists. + * HeatPhysicsMixin: Adds physics for the modelling of district heating systems. + * ElectricityPhysicsMixin: Adds physics for the modelling of Electricity grids. + * GasPhysicsMixin: Adds physics for the modelling of networks with gaseous mediums, e.g. natural gas or hydrogen. +* AssetSizingMixin: Adds variables and constraints allowing for the sizing and placement of assets in the energy system. +* FinancialMixin: Adds variables and constraints for financial computations, like OPEX, CAPEX and revenues. + +There are also workflows (which technically are also mixins) next to these toolbox mixins that MESIDO offers. The default workflows available are: + +* EndScenarioSzing: This workflow will optimize the energy system for Total Cost of ownership. +* GROWSimulator: This workflow allows to do operational analysis with a merit order for source strategy, where the use of sources is minimized in the reverse order to mimick simulator like behaviour. diff --git a/docs/theory/index.rst b/docs/theory/index.rst index 31e3df6b4..37a50b7a7 100644 --- a/docs/theory/index.rst +++ b/docs/theory/index.rst @@ -2,6 +2,7 @@ :maxdepth: 3 introduction + code_structure approach Validation_pipe_diameter_sizing pipe_classes diff --git a/docs/theory/introduction.rst b/docs/theory/introduction.rst index 54a410c4d..9de539a1a 100644 --- a/docs/theory/introduction.rst +++ b/docs/theory/introduction.rst @@ -1,23 +1,39 @@ Introduction ============ -The purpose of the optimizer routine is to provide a framework for design and operational optimization of heat networks. -It provides automatic construction of your heat network model based on a ESDL file. +MESIDO is the abbreviation for Multi Energy System Integrated Design and Operation. This documentation is meant to give the user of MESIDO package insight in how to use the different functionalities available. + +Why MESIDO? +----------- + +MESIDO aims to fill the gap between available tools used in early feasibility studies and the more detailed tools (typically simulators). +Tools for feasibilty studies like EnergyPlan, https://www.energyplan.eu, provide a good framework for initial feasibility of high level system concepts. +These tools often have little to no physics included in their models, typically energy balancing with efficiencies and capacity limits. +On the other hand there are more detailed tools, examples include detailed simulators like PandaPower and PandaPipes. +These simulators include more detailed modelling of physics allowing to analyze networks and/or assets close to real life operational conditions. + +The high level system concept that comes out of the initial feasibility is typically still subjected to many uncertainties. Therefore, many design choices are still to be made like placement and exact sizing of assets, optimal routing of the network, etc. +Although, the more detailed simulators can analyze various energy system designs by running different design options, it is seen that this becomes infeasible in practice as the amount of open design choices after initial feasibility is too high. +The increased complexity of the new and future energy systems plays a significant part. New energy systems have multiple producer, multiple consumer networks, often with storage (possibly seasonal) +and most notably interconnections between different energy commodities means that possible solution space is larger than ever. + +MESIDO aims to play the connecting role between the initial feasibility and the detailed analyses, by offering a techno-economic optimization framework that allows to make the design choices and come to a (limited set of) energy system design(s) that can be detailed out by the simulators. + +What is MESIDO? +--------------- + +MESIDO is a python package that allows users to define techno-economic optimization workflows (or use the available ones). Users can define themselves which KPIs they wish to optimize for, e.g. cost or business case optimization. +Furthermore, the user can select a physics fidelity level he/she needs for the analyses. Where the physics are typically approximations of steady-state conditions, the modelling is done such that the solutions are close and conservative. +The inclusion of the physics approximations allows the user to make more design choices compared to the tools used in initial feasibility. +However, this comes at the cost of the user needing to provide more information of the energy system in order to use MESIDO in an effective way, hence MESIDO is proposed as a sequential tool for analysis. + +Under the hood MESIDO is a Mixed Integer Linear Problem (MILP) formulation. This means that the physics and financial models are limited to linear constraints. +The computational power advantages of MILP optimizations allows MESIDO to optimize Multi Energy/Multi Commodity networks in an integral manner. +Nevertheless, the modelling limitations that MILP have will in the fast majority of cases require optimized networks to be detailed out with simulation tools before closing business cases and going to exploitation. + + -For the optimization one needs to define a model of your network and objective that you want to attain. -A common way to formulate these objectives is to use hierarchical "goals", see the `RTC-Tools documentation `_ for more information on this. -See also the RTC-Tools Heat Network examples for some ideas on goals related to heat network optimization. -This documentation will elaborate on the ins and outs of the optimizer routine. -The routine depends on `RTC-Tools `_, which is automatically installed as one of its dependencies. -Constructing a network with ESDL --------------------------------- -You can use an ESDL file description of a network. -Most importantly these files contain which components are in the network and how they are connected. -Some properties of the components can also be read from the file. -ESDL (Energy System Description Language) allows to describe your energy network in the conceptual phases. -You can draw networks in the `MapEditor `_ and save the ESDL file. -This allows for an user friendly way of drawing networks and setting component properties. From adc61861f86e2275f2ce1987c06814af721510ca Mon Sep 17 00:00:00 2001 From: Rojer Date: Sun, 24 Mar 2024 17:19:13 +0100 Subject: [PATCH 002/275] renamed to mesdio --- .gitattributes | 2 +- README.md | 24 +++++++++---------- docs/conf.py | 2 +- examples/municipality/src/run_municipality.py | 4 ++-- examples/pipe_diameter_sizing/src/example.py | 10 ++++---- setup.cfg | 6 ++--- setup.py | 10 ++++---- .../__init__.py | 0 .../_darcy_weisbach.py | 0 .../_heat_loss_u_values_pipe.py | 0 .../_version.py | 4 ++-- .../asset_sizing_mixin.py | 4 ++-- .../base_component_type_mixin.py | 0 .../component_type_mixin.py | 2 +- .../constants.py | 0 .../control_variables.py | 0 .../demand_insulation_class.py | 0 .../electricity_physics_mixin.py | 2 +- .../esdl/__init__.py | 0 .../esdl/_edr_pipes.json | 0 .../esdl/_exceptions.py | 0 .../esdl/_update_edr_pipes_json.py | 2 +- .../esdl/asset_to_component_base.py | 4 ++-- .../esdl/common.py | 0 .../esdl/edr_pipe_class.py | 4 ++-- .../esdl/esdl_additional_vars_mixin.py | 4 ++-- .../esdl/esdl_heat_model.py | 4 ++-- .../esdl/esdl_mixin.py | 20 ++++++++-------- .../esdl/esdl_model_base.py | 6 ++--- .../esdl/esdl_parser.py | 0 .../esdl/esdl_qth_model.py | 6 ++--- .../esdl/profile_parser.py | 2 +- .../financial_mixin.py | 2 +- .../gas_physics_mixin.py | 2 +- .../head_loss_class.py | 4 ++-- .../heat_network_common.py | 0 .../heat_physics_mixin.py | 4 ++-- .../influxdb/__init__.py | 0 .../influxdb/profile.py | 0 .../WarmingUp/HeatNetwork/Heat/Buffer.mo | 0 .../WarmingUp/HeatNetwork/Heat/CheckValve.mo | 0 .../HeatNetwork/Heat/ControlValve.mo | 0 .../WarmingUp/HeatNetwork/Heat/Demand.mo | 0 .../HeatNetwork/Heat/GeothermalSource.mo | 0 .../WarmingUp/HeatNetwork/Heat/HeatPort.mo | 0 .../WarmingUp/HeatNetwork/Heat/HeatTwoPort.mo | 0 .../WarmingUp/HeatNetwork/Heat/Node.mo | 0 .../WarmingUp/HeatNetwork/Heat/Pipe.mo | 0 .../WarmingUp/HeatNetwork/Heat/Pump.mo | 0 .../WarmingUp/HeatNetwork/Heat/Source.mo | 0 .../HeatNetwork/Heat/_NonStorageComponent.mo | 0 .../WarmingUp/HeatNetwork/Heat/package.mo | 0 .../WarmingUp/HeatNetwork/QTH/Buffer.mo | 0 .../WarmingUp/HeatNetwork/QTH/CheckValve.mo | 0 .../WarmingUp/HeatNetwork/QTH/ControlValve.mo | 0 .../WarmingUp/HeatNetwork/QTH/Demand.mo | 0 .../HeatNetwork/QTH/GeothermalSource.mo | 0 .../WarmingUp/HeatNetwork/QTH/Node.mo | 0 .../WarmingUp/HeatNetwork/QTH/Pipe.mo | 0 .../WarmingUp/HeatNetwork/QTH/Pump.mo | 0 .../WarmingUp/HeatNetwork/QTH/QTHPort.mo | 0 .../WarmingUp/HeatNetwork/QTH/QTHTwoPort.mo | 0 .../WarmingUp/HeatNetwork/QTH/Source.mo | 0 .../QTH/_FluidPropertiesComponent.mo | 0 .../HeatNetwork/QTH/_NonStorageComponent.mo | 0 .../WarmingUp/HeatNetwork/QTH/package.mo | 0 .../modelica/WarmingUp/HeatNetwork/package.mo | 0 .../modelica/WarmingUp/package.mo | 0 .../network_common.py | 0 .../physics_mixin.py | 4 ++-- .../pipe_class.py | 0 .../pycml/__init__.py | 0 .../pycml/component_library/__init__.py | 0 .../pycml/component_library/milp/__init__.py | 0 .../milp/_internal/__init__.py | 0 .../milp/_internal/electricity_component.py | 2 +- .../milp/_internal/gas_component.py | 2 +- .../milp/_internal/heat_component.py | 2 +- .../milp/electricity/__init__.py | 0 .../milp/electricity/electricity_base.py | 2 +- .../milp/electricity/electricity_cable.py | 2 +- .../milp/electricity/electricity_demand.py | 2 +- .../milp/electricity/electricity_node.py | 2 +- .../milp/electricity/electricity_source.py | 2 +- .../milp/electricity/heat_pump_elec.py | 4 ++-- .../milp/electricity/windpark.py | 2 +- .../component_library/milp/gas/__init__.py | 0 .../component_library/milp/gas/gas_base.py | 2 +- .../component_library/milp/gas/gas_demand.py | 2 +- .../component_library/milp/gas/gas_node.py | 2 +- .../component_library/milp/gas/gas_pipe.py | 2 +- .../component_library/milp/gas/gas_source.py | 2 +- .../milp/gas/gas_substation.py | 0 .../milp/gas/gas_tank_storage.py | 4 ++-- .../component_library/milp/heat/__init__.py | 0 .../milp/heat/_non_storage_component.py | 4 ++-- .../pycml/component_library/milp/heat/ates.py | 4 ++-- .../milp/heat/check_valve.py | 2 +- .../milp/heat/control_valve.py | 2 +- .../milp/heat/geothermal_source.py | 0 .../milp/heat/heat_buffer.py | 4 ++-- .../milp/heat/heat_demand.py | 2 +- .../milp/heat/heat_exchanger.py | 6 ++--- .../milp/heat/heat_four_port.py | 4 ++-- .../component_library/milp/heat/heat_pipe.py | 2 +- .../component_library/milp/heat/heat_port.py | 4 ++-- .../component_library/milp/heat/heat_pump.py | 6 ++--- .../milp/heat/heat_source.py | 2 +- .../milp/heat/heat_two_port.py | 2 +- .../pycml/component_library/milp/heat/node.py | 4 ++-- .../pycml/component_library/milp/heat/pump.py | 2 +- .../milp/multicommodity/__init__.py | 0 .../milp/multicommodity/electrolyzer.py | 10 ++++---- .../pycml/component_library/qth/__init__.py | 0 .../qth/_fluid_properties_component.py | 0 .../qth/_internal/__init__.py | 0 .../qth/_internal/qth_component.py | 5 ++++ .../qth/_non_storage_component.py | 2 +- .../pycml/component_library/qth/buffer.py | 2 +- .../component_library/qth/check_valve.py | 2 +- .../component_library/qth/control_valve.py | 2 +- .../pycml/component_library/qth/demand.py | 2 +- .../qth/geothermal_source.py | 0 .../pycml/component_library/qth/node.py | 2 +- .../pycml/component_library/qth/pipe.py | 2 +- .../pycml/component_library/qth/pump.py | 2 +- .../pycml/component_library/qth/qth_port.py | 2 +- .../component_library/qth/qth_two_port.py | 0 .../pycml/component_library/qth/source.py | 2 +- .../pycml/model_base.py | 0 .../pycml/pycml_mixin.py | 2 +- .../qth_not_maintained/__init__.py | 0 .../bounds_to_pipe_flow_directions_mixin.py | 4 ++-- .../qth_not_maintained/head_loss_mixin.py | 6 ++--- .../qth_not_maintained/qth_loop_mixin.py | 2 +- .../qth_not_maintained/qth_mixin.py | 10 ++++---- .../qth_not_maintained/util.py | 2 +- .../techno_economic_mixin.py | 2 +- .../topology.py | 0 .../workflows/__init__.py | 0 .../workflows/goals/__init__.py | 0 .../workflows/goals/minimize_tco_goal.py | 2 +- .../workflows/grow_workflow.py | 16 ++++++------- .../workflows/io/__init__.py | 0 .../io/read_files_and_create_influxdb.py | 0 .../workflows/io/write_output.py | 14 +++++------ .../workflows/simulator_workflow.py | 12 +++++----- .../workflows/utils/__init__.py | 0 .../workflows/utils/adapt_profiles.py | 0 .../workflows/utils/helpers.py | 2 +- .../qth/_internal/qth_component.py | 5 ---- tests/models/absolute_heat/src/example.py | 8 +++---- .../src/run_ates_temperature.py | 12 +++++----- tests/models/basic_buffer/src/compare.py | 8 +++---- tests/models/basic_buffer/src/model_heat.py | 4 ++-- tests/models/basic_buffer/src/model_qth.py | 4 ++-- .../src/heat_comparison.py | 8 +++---- .../basic_source_and_demand/src/model_heat.py | 4 ++-- .../basic_source_and_demand/src/model_qth.py | 4 ++-- .../src/qth_comparison.py | 10 ++++---- .../src/qth_minimize_temperatures.py | 8 +++---- .../double_pipe_heat/src/double_pipe_heat.py | 6 ++--- tests/models/double_pipe_heat/src/model.py | 4 ++-- .../src/cq2_inequality_vs_equality.py | 4 ++-- .../double_pipe_qth/src/double_pipe_qth.py | 6 ++--- .../src/single_pipe_no_headloss.py | 2 +- .../electricity_cable_topology/src/example.py | 10 ++++---- tests/models/emerge/src/example.py | 12 +++++----- tests/models/gas_pipe_topology/src/example.py | 8 +++---- .../heat_exchange/src/run_heat_exchanger.py | 10 ++++---- tests/models/heatpump/src/run_heat_pump.py | 8 +++---- tests/models/insulation/src/run_insulation.py | 10 ++++---- .../src/run_multiple_carriers.py | 8 +++---- .../src/run_multiple_gas_carriers.py | 8 +++---- .../pipe_test/src/run_hydraulic_power.py | 6 ++--- tests/models/simple_buffer/src/model.py | 4 ++-- .../models/simple_buffer/src/simple_buffer.py | 6 ++--- .../source_pipe_sink/src/double_pipe_heat.py | 12 +++++----- .../src/double_pipe_heat.py | 4 ++-- .../src/run_ates.py | 10 ++++---- .../src/run_annualized.py | 6 ++--- .../src/run_ates.py | 8 +++---- .../src/run_ates.py | 8 +++---- .../src/run_ates.py | 8 +++---- tests/models/unit_cases/case_1a/src/run_1a.py | 10 ++++---- .../unit_cases/case_1a_t_var/src/run_1a.py | 10 ++++---- .../case_2a/src/equal_temperatures.py | 8 +++---- tests/models/unit_cases/case_2a/src/run_2a.py | 10 ++++---- tests/models/unit_cases/case_3a/src/run_3a.py | 14 +++++------ .../unit_cases/case_3a_setpoint/src/run_3a.py | 6 ++--- .../bus_networks/src/example.py | 8 +++---- .../electrolyzer/src/example.py | 8 +++---- .../heat_pump_elec/src/run_hp_elec.py | 8 +++---- .../source_sink_cable/src/example.py | 10 ++++---- .../multi_demand_source_node/src/run_test.py | 8 +++---- .../src/run_source_sink.py | 8 +++---- .../source_sink/src/run_source_sink.py | 8 +++---- tests/qth_test_not_maintained/test_qth.py | 6 ++--- .../qth_test_not_maintained/test_qth_loop.py | 6 ++--- tests/test_absolute_heat.py | 4 ++-- tests/test_asset_is_realized.py | 4 ++-- tests/test_ates.py | 4 ++-- tests/test_cable_topology_optimization.py | 4 ++-- tests/test_electric_bus.py | 4 ++-- tests/test_electric_source_sink.py | 4 ++-- tests/test_electrolyzer.py | 4 ++-- tests/test_end_scenario_sizing.py | 10 ++++---- tests/test_end_scenario_sizing_annualized.py | 6 ++--- tests/test_esdl_parsing.py | 4 ++-- tests/test_esdl_pycml.py | 4 ++-- tests/test_gas_multi_demand_source_node.py | 4 ++-- tests/test_gas_pipe_topology_optimization.py | 6 ++--- tests/test_gas_source_sink.py | 6 ++--- tests/test_head_loss.py | 12 +++++----- tests/test_head_loss_class.py | 4 ++-- tests/test_heat.py | 6 ++--- tests/test_heat_loss_u_values.py | 2 +- tests/test_hydraulic_power.py | 6 ++--- tests/test_insulation.py | 4 ++-- tests/test_max_size_and_optional_assets.py | 4 ++-- tests/test_multicommodity.py | 4 ++-- tests/test_multiple_carriers.py | 4 ++-- ...est_multiple_in_and_out_port_components.py | 4 ++-- tests/test_network_simulator.py | 6 ++--- tests/test_pipe_diameter_sizing.py | 6 ++--- tests/test_producer_profiles.py | 4 ++-- tests/test_profile_parsing.py | 6 ++--- tests/test_pycml.py | 2 +- tests/test_setpoint_constraints.py | 4 ++-- tests/test_temperature_ates_hp.py | 4 ++-- tests/test_topo_constraints.py | 10 ++++---- tests/test_varying_temperature.py | 6 ++--- tests/test_warmingup_unit_cases.py | 4 ++-- 233 files changed, 437 insertions(+), 437 deletions(-) rename src/{rtctools_heat_network => mesido}/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/_darcy_weisbach.py (100%) rename src/{rtctools_heat_network => mesido}/_heat_loss_u_values_pipe.py (100%) rename src/{rtctools_heat_network => mesido}/_version.py (99%) rename src/{rtctools_heat_network => mesido}/asset_sizing_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/base_component_type_mixin.py (100%) rename src/{rtctools_heat_network => mesido}/component_type_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/constants.py (100%) rename src/{rtctools_heat_network => mesido}/control_variables.py (100%) rename src/{rtctools_heat_network => mesido}/demand_insulation_class.py (100%) rename src/{rtctools_heat_network => mesido}/electricity_physics_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/esdl/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/esdl/_edr_pipes.json (100%) rename src/{rtctools_heat_network => mesido}/esdl/_exceptions.py (100%) rename src/{rtctools_heat_network => mesido}/esdl/_update_edr_pipes_json.py (97%) rename src/{rtctools_heat_network => mesido}/esdl/asset_to_component_base.py (99%) rename src/{rtctools_heat_network => mesido}/esdl/common.py (100%) rename src/{rtctools_heat_network => mesido}/esdl/edr_pipe_class.py (95%) rename src/{rtctools_heat_network => mesido}/esdl/esdl_additional_vars_mixin.py (97%) rename src/{rtctools_heat_network => mesido}/esdl/esdl_heat_model.py (99%) rename src/{rtctools_heat_network => mesido}/esdl/esdl_mixin.py (97%) rename src/{rtctools_heat_network => mesido}/esdl/esdl_model_base.py (98%) rename src/{rtctools_heat_network => mesido}/esdl/esdl_parser.py (100%) rename src/{rtctools_heat_network => mesido}/esdl/esdl_qth_model.py (98%) rename src/{rtctools_heat_network => mesido}/esdl/profile_parser.py (99%) rename src/{rtctools_heat_network => mesido}/financial_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/gas_physics_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/head_loss_class.py (99%) rename src/{rtctools_heat_network => mesido}/heat_network_common.py (100%) rename src/{rtctools_heat_network => mesido}/heat_physics_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/influxdb/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/influxdb/profile.py (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/Buffer.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/CheckValve.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/ControlValve.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/Demand.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/GeothermalSource.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/HeatPort.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/HeatTwoPort.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/Node.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/Pipe.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/Pump.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/Source.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/_NonStorageComponent.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/package.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/Buffer.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/CheckValve.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/ControlValve.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/Demand.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/GeothermalSource.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/Node.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/Pipe.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/Pump.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/QTHPort.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/QTHTwoPort.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/Source.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/_FluidPropertiesComponent.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/_NonStorageComponent.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/package.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/package.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/package.mo (100%) rename src/{rtctools_heat_network => mesido}/network_common.py (100%) rename src/{rtctools_heat_network => mesido}/physics_mixin.py (98%) rename src/{rtctools_heat_network => mesido}/pipe_class.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/_internal/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/_internal/electricity_component.py (55%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/_internal/gas_component.py (52%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/_internal/heat_component.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/electricity_base.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/electricity_cable.py (97%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/electricity_demand.py (95%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/electricity_node.py (96%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/electricity_source.py (95%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/heat_pump_elec.py (83%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/windpark.py (84%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_base.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_demand.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_node.py (95%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_pipe.py (97%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_source.py (93%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_substation.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_tank_storage.py (91%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/_non_storage_component.py (92%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/ates.py (97%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/check_valve.py (93%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/control_valve.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/geothermal_source.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_buffer.py (96%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_demand.py (97%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_exchanger.py (93%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_four_port.py (85%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_pipe.py (98%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_port.py (78%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_pump.py (93%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_source.py (98%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_two_port.py (85%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/node.py (88%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/pump.py (95%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/multicommodity/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/multicommodity/electrolyzer.py (78%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/_fluid_properties_component.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/_internal/__init__.py (100%) create mode 100644 src/mesido/pycml/component_library/qth/_internal/qth_component.py rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/_non_storage_component.py (91%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/buffer.py (98%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/check_valve.py (91%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/control_valve.py (89%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/demand.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/geothermal_source.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/node.py (93%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/pipe.py (97%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/pump.py (91%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/qth_port.py (88%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/qth_two_port.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/source.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/model_base.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/pycml_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/qth_not_maintained/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py (94%) rename src/{rtctools_heat_network => mesido}/qth_not_maintained/head_loss_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/qth_not_maintained/qth_loop_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/qth_not_maintained/qth_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/qth_not_maintained/util.py (98%) rename src/{rtctools_heat_network => mesido}/techno_economic_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/topology.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/goals/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/goals/minimize_tco_goal.py (98%) rename src/{rtctools_heat_network => mesido}/workflows/grow_workflow.py (97%) rename src/{rtctools_heat_network => mesido}/workflows/io/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/io/read_files_and_create_influxdb.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/io/write_output.py (99%) rename src/{rtctools_heat_network => mesido}/workflows/simulator_workflow.py (97%) rename src/{rtctools_heat_network => mesido}/workflows/utils/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/utils/adapt_profiles.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/utils/helpers.py (98%) delete mode 100644 src/rtctools_heat_network/pycml/component_library/qth/_internal/qth_component.py diff --git a/.gitattributes b/.gitattributes index f312dfe23..e2ce33cdd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1 @@ -src/rtctools_heat_network/_version.py export-subst +src/mesido/_version.py export-subst diff --git a/README.md b/README.md index 5346d5d34..0bea9ca74 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# rtc-tools-heat-network +# Mesido -Rtc-tools-heat-network is an optimization application for optimal planning, design and +mesido is an optimization application for optimal planning, design and operation of Energy Systems with the current main focus on District Heating Systems (DHS). The current application focuses on a Mixed Integer Linear Problem (MILP) approach, with multiple linearization strategies to conservatively approximate the steady-state physics and financial models. All physics are combined in the HeatMixin class. When inherited this class can be combined with objective functions (that typically incorporate the financial aspects) and interface methods to create an optimization workflow (see also running an example). @@ -21,13 +21,13 @@ Installation Installation of the RTC-Tools Heat Network library is as simple as:: # 1a. Use pip to install directly - pip install rtc-tools-heat-network + pip install mesido If you are going to develop and change the source code, you probably want to do something like:: # 1b. Use git clone and pip to make an editable/developer installation - git clone https://ci.tno.nl/gitlab/warmingup/rtc-tools-heat-network - pip install -e rtc-tools-heat-network + git clone https://github.com/Multi-Energy-Systems-Optimization/mesido + pip install -e mesido RTC-Tools Heat Network depends on `RTC-Tools `_, which is automatically installed as one of its dependencies. @@ -38,10 +38,10 @@ To make sure that everything is set-up correctly, you can run one of the example These do not come with the installation, and need to be downloaded separately:: # 1. Clone the repository - git clone https://github.com/Nieuwe-Warmte-Nu/rtc-tools-heat-network.git + git clone https://github.com/Multi-Energy-Systems-Optimization/mesido.git # 2. Change directory to the example folder - cd rtc-tools-heat-network/examples/pipe_diameter_sizing/src + cd mesido/examples/pipe_diameter_sizing/src # 3. Run the example python example.py @@ -52,7 +52,7 @@ If all is well, you should see something like the following output: ![img.png](img.png) In this example.py file you can see a small workflow being set-up. The PipeDiameterSizingProblem class -inherits from (Note only the *classes are defined in rtc-tools-heat-network the others come from rtc-tools package): +inherits from (Note only the *classes are defined in mesido the others come from rtc-tools package): - CollocatedIntegratedOptimizationProblem: This class does all the discretization of the state variables in your problem. - *ESDLMixin: This class does the parsing and setting up of a model based on an ESDL file. - GoalProgrammingMixin: This class allows you to add Goals (objective functions) with different priorities. @@ -74,12 +74,12 @@ Contribute You can contribute to this code through Pull Request on GitHub. Please, make sure that your code is coming with unit tests to ensure full coverage and continuous integration in the API. -GitHub: https://github.com/Nieuwe-Warmte-Nu/rtc-tools-heat-network +GitHub: https://github.com/Multi-Energy-Systems-Optimization/mesido ## Release -This package is released on pypi [here](https://pypi.org/project/rtc-tools-heat-network/) whenever a new tag is pushed. +This package is released on pypi [here](https://pypi.org/project/mesido/) whenever a new tag is pushed. In order to release this package: 1. Make sure that all relevant merge requests and commits have been merged to the master and/or poc-release branch. @@ -87,6 +87,6 @@ In order to release this package: 3. Run `git pull origin master` or `git pull origin poc-release` to pull all latest changes. 4. Run `git tag ` where `` is the new version number. 5. Run `git push origin ` to push the tag to Github. -6. Check [Github](https://github.com/Nieuwe-Warmte-Nu/rtc-tools-heat-network/actions) to confirm the release is +6. Check [Github](https://github.com/Multi-Energy-Systems-Optimization/mesido/actions) to confirm the release is processed without errors. -7. Once the release has finished, confirm the new version is available on [pypi](https://pypi.org/project/rtc-tools-heat-network/). +7. Once the release has finished, confirm the new version is available on [pypi](https://pypi.org/project/mesido/). diff --git a/docs/conf.py b/docs/conf.py index 546075d92..ab4edb7b3 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -13,7 +13,7 @@ import os import sys -from rtctools_heat_network._version import get_versions +from mesido._version import get_versions import sphinx_rtd_theme diff --git a/examples/municipality/src/run_municipality.py b/examples/municipality/src/run_municipality.py index 7d41f39b9..09add0e7d 100644 --- a/examples/municipality/src/run_municipality.py +++ b/examples/municipality/src/run_municipality.py @@ -1,7 +1,7 @@ from pathlib import Path -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.workflows import EndScenarioSizingStagedHIGHS, run_end_scenario_sizing +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.workflows import EndScenarioSizingStagedHIGHS, run_end_scenario_sizing if __name__ == "__main__": diff --git a/examples/pipe_diameter_sizing/src/example.py b/examples/pipe_diameter_sizing/src/example.py index 7e7ca070d..797c020c7 100644 --- a/examples/pipe_diameter_sizing/src/example.py +++ b/examples/pipe_diameter_sizing/src/example.py @@ -15,11 +15,11 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.pipe_class import PipeClass -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.pipe_class import PipeClass +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/setup.cfg b/setup.cfg index d3fb191dd..cbf1f11d5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,10 +8,10 @@ license_file = COPYING.LESSER [versioneer] VCS = git style = pep440 -versionfile_source = src/rtctools_heat_network/_version.py -versionfile_build = rtctools_heat_network/_version.py +versionfile_source = src/mesido/_version.py +versionfile_build = mesido/_version.py tag_prefix = -parentdir_prefix = rtctools_heat_network- +parentdir_prefix = mesido- [flake8] diff --git a/setup.py b/setup.py index 3c6aa32d2..914a11e96 100644 --- a/setup.py +++ b/setup.py @@ -37,26 +37,26 @@ sys.exit(f"Sorry, Python 3.8 to 3.10 is required. You are using {sys.version_info}") setup( - name="rtc-tools-milp-network", + name="mesido", version=versioneer.get_version(), description=DOCLINES[0], long_description=long_description, long_description_content_type="text/markdown", classifiers=[_f for _f in CLASSIFIERS.split("\n") if _f], - url="https://github.com/Nieuwe-Warmte-Nu/rtc-tools-heat-network", + url="https://github.com/Multi-Energy-Systems-Optimization/mesido/", author="Jim Rojer", author_email="jim.rojer@tno.nl", maintainer="Jim Rojer, Kobus van Rooyen, Kelbij Star, " "Femke Janssen, Jesús Andrés Rodríguez Sarasty, " "Thijs van der Klauw", license="LGPLv3", - keywords="milp network optimization rtc tools", + keywords="Multi-Energy-Systems", platforms=["Windows", "Linux", "Mac OS-X", "Unix"], packages=find_packages("src"), package_dir={"": "src"}, install_requires=[ "influxdb >= 5.3.1", - "pyecore", + "pyecore == 0.12.1", "pymoca >= 0.9.0", "rtc-tools == 2.6.0a3", "pyesdl >= 23.12, < 24.0", @@ -71,6 +71,6 @@ python_requires=">=3.8,<3.11", cmdclass=versioneer.get_cmdclass(), entry_points={ - "rtctools.libraries.modelica": ["library_folder = rtctools_heat_network:modelica"] + "rtctools.libraries.modelica": ["library_folder = mesido:modelica"] }, ) diff --git a/src/rtctools_heat_network/__init__.py b/src/mesido/__init__.py similarity index 100% rename from src/rtctools_heat_network/__init__.py rename to src/mesido/__init__.py diff --git a/src/rtctools_heat_network/_darcy_weisbach.py b/src/mesido/_darcy_weisbach.py similarity index 100% rename from src/rtctools_heat_network/_darcy_weisbach.py rename to src/mesido/_darcy_weisbach.py diff --git a/src/rtctools_heat_network/_heat_loss_u_values_pipe.py b/src/mesido/_heat_loss_u_values_pipe.py similarity index 100% rename from src/rtctools_heat_network/_heat_loss_u_values_pipe.py rename to src/mesido/_heat_loss_u_values_pipe.py diff --git a/src/rtctools_heat_network/_version.py b/src/mesido/_version.py similarity index 99% rename from src/rtctools_heat_network/_version.py rename to src/mesido/_version.py index 57704679a..9c52cbbbc 100644 --- a/src/rtctools_heat_network/_version.py +++ b/src/mesido/_version.py @@ -43,8 +43,8 @@ def get_config(): cfg.VCS = "git" cfg.style = "pep440" cfg.tag_prefix = "" - cfg.parentdir_prefix = "rtctools_heat_network-" - cfg.versionfile_source = "src/rtctools_heat_network/_version.py" + cfg.parentdir_prefix = "mesido-" + cfg.versionfile_source = "src/mesido/_version.py" cfg.verbose = False return cfg diff --git a/src/rtctools_heat_network/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py similarity index 99% rename from src/rtctools_heat_network/asset_sizing_mixin.py rename to src/mesido/asset_sizing_mixin.py index 5c716dcc4..bc68405c7 100644 --- a/src/rtctools_heat_network/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -10,7 +10,7 @@ ) from rtctools.optimization.timeseries import Timeseries -from rtctools_heat_network._heat_loss_u_values_pipe import pipe_heat_loss +from mesido._heat_loss_u_values_pipe import pipe_heat_loss from .base_component_type_mixin import BaseComponentTypeMixin @@ -18,7 +18,7 @@ from .head_loss_class import HeadLossOption from .pipe_class import CableClass, GasPipeClass, PipeClass -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class AssetSizingMixin(BaseComponentTypeMixin, CollocatedIntegratedOptimizationProblem): diff --git a/src/rtctools_heat_network/base_component_type_mixin.py b/src/mesido/base_component_type_mixin.py similarity index 100% rename from src/rtctools_heat_network/base_component_type_mixin.py rename to src/mesido/base_component_type_mixin.py diff --git a/src/rtctools_heat_network/component_type_mixin.py b/src/mesido/component_type_mixin.py similarity index 99% rename from src/rtctools_heat_network/component_type_mixin.py rename to src/mesido/component_type_mixin.py index b7d2aee80..4fe700b6d 100644 --- a/src/rtctools_heat_network/component_type_mixin.py +++ b/src/mesido/component_type_mixin.py @@ -7,7 +7,7 @@ from .heat_network_common import NodeConnectionDirection from .topology import Topology -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class ModelicaComponentTypeMixin(BaseComponentTypeMixin): diff --git a/src/rtctools_heat_network/constants.py b/src/mesido/constants.py similarity index 100% rename from src/rtctools_heat_network/constants.py rename to src/mesido/constants.py diff --git a/src/rtctools_heat_network/control_variables.py b/src/mesido/control_variables.py similarity index 100% rename from src/rtctools_heat_network/control_variables.py rename to src/mesido/control_variables.py diff --git a/src/rtctools_heat_network/demand_insulation_class.py b/src/mesido/demand_insulation_class.py similarity index 100% rename from src/rtctools_heat_network/demand_insulation_class.py rename to src/mesido/demand_insulation_class.py diff --git a/src/rtctools_heat_network/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py similarity index 99% rename from src/rtctools_heat_network/electricity_physics_mixin.py rename to src/mesido/electricity_physics_mixin.py index bb32081c3..a4b265e55 100644 --- a/src/rtctools_heat_network/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -15,7 +15,7 @@ from .base_component_type_mixin import BaseComponentTypeMixin -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class ElectricityPhysicsMixin(BaseComponentTypeMixin, CollocatedIntegratedOptimizationProblem): diff --git a/src/rtctools_heat_network/esdl/__init__.py b/src/mesido/esdl/__init__.py similarity index 100% rename from src/rtctools_heat_network/esdl/__init__.py rename to src/mesido/esdl/__init__.py diff --git a/src/rtctools_heat_network/esdl/_edr_pipes.json b/src/mesido/esdl/_edr_pipes.json similarity index 100% rename from src/rtctools_heat_network/esdl/_edr_pipes.json rename to src/mesido/esdl/_edr_pipes.json diff --git a/src/rtctools_heat_network/esdl/_exceptions.py b/src/mesido/esdl/_exceptions.py similarity index 100% rename from src/rtctools_heat_network/esdl/_exceptions.py rename to src/mesido/esdl/_exceptions.py diff --git a/src/rtctools_heat_network/esdl/_update_edr_pipes_json.py b/src/mesido/esdl/_update_edr_pipes_json.py similarity index 97% rename from src/rtctools_heat_network/esdl/_update_edr_pipes_json.py rename to src/mesido/esdl/_update_edr_pipes_json.py index eecdf382c..f6ce54530 100644 --- a/src/rtctools_heat_network/esdl/_update_edr_pipes_json.py +++ b/src/mesido/esdl/_update_edr_pipes_json.py @@ -4,7 +4,7 @@ import requests -from rtctools_heat_network._heat_loss_u_values_pipe import heat_loss_u_values_pipe +from mesido._heat_loss_u_values_pipe import heat_loss_u_values_pipe def main(): diff --git a/src/rtctools_heat_network/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py similarity index 99% rename from src/rtctools_heat_network/esdl/asset_to_component_base.py rename to src/mesido/esdl/asset_to_component_base.py index 9b0377177..df6abcd17 100644 --- a/src/rtctools_heat_network/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -8,12 +8,12 @@ import esdl from esdl import TimeUnitEnum, UnitEnum -from rtctools_heat_network.pycml import Model as _Model +from mesido.pycml import Model as _Model from ._exceptions import _RetryLaterException from .common import Asset -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") MODIFIERS = Dict[str, Union[str, int, float]] diff --git a/src/rtctools_heat_network/esdl/common.py b/src/mesido/esdl/common.py similarity index 100% rename from src/rtctools_heat_network/esdl/common.py rename to src/mesido/esdl/common.py diff --git a/src/rtctools_heat_network/esdl/edr_pipe_class.py b/src/mesido/esdl/edr_pipe_class.py similarity index 95% rename from src/rtctools_heat_network/esdl/edr_pipe_class.py rename to src/mesido/esdl/edr_pipe_class.py index 1893207d4..54aa7620f 100644 --- a/src/rtctools_heat_network/esdl/edr_pipe_class.py +++ b/src/mesido/esdl/edr_pipe_class.py @@ -1,7 +1,7 @@ from dataclasses import dataclass -from rtctools_heat_network.esdl.asset_to_component_base import _AssetToComponentBase -from rtctools_heat_network.pipe_class import GasPipeClass, PipeClass +from mesido.esdl.asset_to_component_base import _AssetToComponentBase +from mesido.pipe_class import GasPipeClass, PipeClass @dataclass(frozen=True) diff --git a/src/rtctools_heat_network/esdl/esdl_additional_vars_mixin.py b/src/mesido/esdl/esdl_additional_vars_mixin.py similarity index 97% rename from src/rtctools_heat_network/esdl/esdl_additional_vars_mixin.py rename to src/mesido/esdl/esdl_additional_vars_mixin.py index 11d4fbdae..4a7cacb5b 100644 --- a/src/rtctools_heat_network/esdl/esdl_additional_vars_mixin.py +++ b/src/mesido/esdl/esdl_additional_vars_mixin.py @@ -8,9 +8,9 @@ CollocatedIntegratedOptimizationProblem, ) -from rtctools_heat_network.network_common import NetworkSettings +from mesido.network_common import NetworkSettings -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class ESDLAdditionalVarsMixin(CollocatedIntegratedOptimizationProblem): diff --git a/src/rtctools_heat_network/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py similarity index 99% rename from src/rtctools_heat_network/esdl/esdl_heat_model.py rename to src/mesido/esdl/esdl_heat_model.py index c4fc45777..520b7332e 100644 --- a/src/rtctools_heat_network/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -6,7 +6,7 @@ import esdl -from rtctools_heat_network.pycml.component_library.milp import ( +from mesido.pycml.component_library.milp import ( ATES, CheckValve, ControlValve, @@ -41,7 +41,7 @@ from .esdl_model_base import _ESDLModelBase from ..network_common import NetworkSettings -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class _ESDLInputException(Exception): diff --git a/src/rtctools_heat_network/esdl/esdl_mixin.py b/src/mesido/esdl/esdl_mixin.py similarity index 97% rename from src/rtctools_heat_network/esdl/esdl_mixin.py rename to src/mesido/esdl/esdl_mixin.py index 4b9e3796a..84887e017 100644 --- a/src/rtctools_heat_network/esdl/esdl_mixin.py +++ b/src/mesido/esdl/esdl_mixin.py @@ -17,17 +17,17 @@ ) from rtctools.optimization.io_mixin import IOMixin -from rtctools_heat_network.component_type_mixin import ( +from mesido.component_type_mixin import ( ModelicaComponentTypeMixin, ) -from rtctools_heat_network.esdl.asset_to_component_base import _AssetToComponentBase -from rtctools_heat_network.esdl.edr_pipe_class import EDRGasPipeClass, EDRPipeClass -from rtctools_heat_network.esdl.esdl_parser import ESDLStringParser -from rtctools_heat_network.esdl.profile_parser import BaseProfileReader, InfluxDBProfileReader -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.pipe_class import GasPipeClass, PipeClass -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin +from mesido.esdl.asset_to_component_base import _AssetToComponentBase +from mesido.esdl.edr_pipe_class import EDRGasPipeClass, EDRPipeClass +from mesido.esdl.esdl_parser import ESDLStringParser +from mesido.esdl.profile_parser import BaseProfileReader, InfluxDBProfileReader +from mesido.physics_mixin import PhysicsMixin +from mesido.pipe_class import GasPipeClass, PipeClass +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin from .common import Asset from .esdl_heat_model import ESDLHeatModel @@ -35,7 +35,7 @@ from .esdl_qth_model import ESDLQTHModel -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") ns = {"fews": "http://www.wldelft.nl/fews", "pi": "http://www.wldelft.nl/fews/PI"} diff --git a/src/rtctools_heat_network/esdl/esdl_model_base.py b/src/mesido/esdl/esdl_model_base.py similarity index 98% rename from src/rtctools_heat_network/esdl/esdl_model_base.py rename to src/mesido/esdl/esdl_model_base.py index 1bd2abacd..51302d321 100644 --- a/src/rtctools_heat_network/esdl/esdl_model_base.py +++ b/src/mesido/esdl/esdl_model_base.py @@ -4,12 +4,12 @@ import esdl from esdl import InPort -from rtctools_heat_network.esdl.asset_to_component_base import _AssetToComponentBase -from rtctools_heat_network.pycml import Model as _Model +from mesido.esdl.asset_to_component_base import _AssetToComponentBase +from mesido.pycml import Model as _Model from ._exceptions import _RetryLaterException, _SkipAssetException -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") RETRY_LOOP_LIMIT = 100 diff --git a/src/rtctools_heat_network/esdl/esdl_parser.py b/src/mesido/esdl/esdl_parser.py similarity index 100% rename from src/rtctools_heat_network/esdl/esdl_parser.py rename to src/mesido/esdl/esdl_parser.py diff --git a/src/rtctools_heat_network/esdl/esdl_qth_model.py b/src/mesido/esdl/esdl_qth_model.py similarity index 98% rename from src/rtctools_heat_network/esdl/esdl_qth_model.py rename to src/mesido/esdl/esdl_qth_model.py index 651d05d80..3453eabce 100644 --- a/src/rtctools_heat_network/esdl/esdl_qth_model.py +++ b/src/mesido/esdl/esdl_qth_model.py @@ -4,8 +4,8 @@ import esdl -from rtctools_heat_network.pycml import SymbolicParameter -from rtctools_heat_network.pycml.component_library.qth import ( +from mesido.pycml import SymbolicParameter +from mesido.pycml.component_library.qth import ( Buffer, CheckValve, ControlValve, @@ -21,7 +21,7 @@ from .common import Asset from .esdl_model_base import _ESDLModelBase -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class AssetToQTHComponent(_AssetToComponentBase): diff --git a/src/rtctools_heat_network/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py similarity index 99% rename from src/rtctools_heat_network/esdl/profile_parser.py rename to src/mesido/esdl/profile_parser.py index 712fa6906..644662bf8 100644 --- a/src/rtctools_heat_network/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -16,7 +16,7 @@ import rtctools.data.pi from rtctools.data.storage import DataStore -from rtctools_heat_network.esdl.common import Asset +from mesido.esdl.common import Asset logger = logging.getLogger() diff --git a/src/rtctools_heat_network/financial_mixin.py b/src/mesido/financial_mixin.py similarity index 99% rename from src/rtctools_heat_network/financial_mixin.py rename to src/mesido/financial_mixin.py index e016f0cbb..d5a204b5a 100644 --- a/src/rtctools_heat_network/financial_mixin.py +++ b/src/mesido/financial_mixin.py @@ -12,7 +12,7 @@ from .base_component_type_mixin import BaseComponentTypeMixin -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class FinancialMixin(BaseComponentTypeMixin, CollocatedIntegratedOptimizationProblem): diff --git a/src/rtctools_heat_network/gas_physics_mixin.py b/src/mesido/gas_physics_mixin.py similarity index 99% rename from src/rtctools_heat_network/gas_physics_mixin.py rename to src/mesido/gas_physics_mixin.py index 008f87ec8..e623f35f7 100644 --- a/src/rtctools_heat_network/gas_physics_mixin.py +++ b/src/mesido/gas_physics_mixin.py @@ -13,7 +13,7 @@ from .head_loss_class import HeadLossClass, HeadLossOption from .network_common import NetworkSettings -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class GasPhysicsMixin(BaseComponentTypeMixin, CollocatedIntegratedOptimizationProblem): diff --git a/src/rtctools_heat_network/head_loss_class.py b/src/mesido/head_loss_class.py similarity index 99% rename from src/rtctools_heat_network/head_loss_class.py rename to src/mesido/head_loss_class.py index e8e502692..991f21684 100644 --- a/src/rtctools_heat_network/head_loss_class.py +++ b/src/mesido/head_loss_class.py @@ -10,14 +10,14 @@ from rtctools.optimization.goal_programming_mixin_base import Goal from rtctools.optimization.optimization_problem import BT -import rtctools_heat_network._darcy_weisbach as darcy_weisbach +import mesido._darcy_weisbach as darcy_weisbach from .constants import GRAVITATIONAL_CONSTANT from .network_common import NetworkSettings from .pipe_class import PipeClass -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class HeadLossOption(IntEnum): diff --git a/src/rtctools_heat_network/heat_network_common.py b/src/mesido/heat_network_common.py similarity index 100% rename from src/rtctools_heat_network/heat_network_common.py rename to src/mesido/heat_network_common.py diff --git a/src/rtctools_heat_network/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py similarity index 99% rename from src/rtctools_heat_network/heat_physics_mixin.py rename to src/mesido/heat_physics_mixin.py index 0825df5d1..6e0567bbd 100644 --- a/src/rtctools_heat_network/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -11,7 +11,7 @@ ) from rtctools.optimization.timeseries import Timeseries -from rtctools_heat_network._heat_loss_u_values_pipe import pipe_heat_loss +from mesido._heat_loss_u_values_pipe import pipe_heat_loss from .base_component_type_mixin import BaseComponentTypeMixin @@ -20,7 +20,7 @@ from .head_loss_class import HeadLossClass, HeadLossOption from .network_common import NetworkSettings -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class HeatPhysicsMixin(BaseComponentTypeMixin, CollocatedIntegratedOptimizationProblem): diff --git a/src/rtctools_heat_network/influxdb/__init__.py b/src/mesido/influxdb/__init__.py similarity index 100% rename from src/rtctools_heat_network/influxdb/__init__.py rename to src/mesido/influxdb/__init__.py diff --git a/src/rtctools_heat_network/influxdb/profile.py b/src/mesido/influxdb/profile.py similarity index 100% rename from src/rtctools_heat_network/influxdb/profile.py rename to src/mesido/influxdb/profile.py diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Buffer.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Buffer.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Buffer.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Buffer.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/CheckValve.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/CheckValve.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/CheckValve.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/CheckValve.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/ControlValve.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/ControlValve.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/ControlValve.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/ControlValve.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Demand.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Demand.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Demand.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Demand.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/GeothermalSource.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/GeothermalSource.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/GeothermalSource.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/GeothermalSource.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/HeatPort.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/HeatPort.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/HeatPort.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/HeatPort.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/HeatTwoPort.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/HeatTwoPort.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/HeatTwoPort.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/HeatTwoPort.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Node.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Node.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Node.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Node.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Pipe.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Pipe.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Pipe.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Pipe.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Pump.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Pump.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Pump.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Pump.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Source.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Source.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Source.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Source.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/_NonStorageComponent.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/_NonStorageComponent.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/_NonStorageComponent.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/_NonStorageComponent.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/package.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/package.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/package.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/package.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Buffer.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Buffer.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Buffer.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Buffer.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/CheckValve.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/CheckValve.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/CheckValve.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/CheckValve.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/ControlValve.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/ControlValve.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/ControlValve.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/ControlValve.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Demand.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Demand.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Demand.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Demand.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/GeothermalSource.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/GeothermalSource.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/GeothermalSource.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/GeothermalSource.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Node.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Node.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Node.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Node.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Pipe.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Pipe.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Pipe.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Pipe.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Pump.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Pump.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Pump.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Pump.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/QTHPort.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/QTHPort.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/QTHPort.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/QTHPort.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/QTHTwoPort.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/QTHTwoPort.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/QTHTwoPort.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/QTHTwoPort.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Source.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Source.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Source.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Source.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/_FluidPropertiesComponent.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/_FluidPropertiesComponent.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/_FluidPropertiesComponent.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/_FluidPropertiesComponent.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/_NonStorageComponent.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/_NonStorageComponent.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/_NonStorageComponent.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/_NonStorageComponent.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/package.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/package.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/package.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/package.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/package.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/package.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/package.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/package.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/package.mo b/src/mesido/modelica/WarmingUp/package.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/package.mo rename to src/mesido/modelica/WarmingUp/package.mo diff --git a/src/rtctools_heat_network/network_common.py b/src/mesido/network_common.py similarity index 100% rename from src/rtctools_heat_network/network_common.py rename to src/mesido/network_common.py diff --git a/src/rtctools_heat_network/physics_mixin.py b/src/mesido/physics_mixin.py similarity index 98% rename from src/rtctools_heat_network/physics_mixin.py rename to src/mesido/physics_mixin.py index ba84881c3..93d435347 100644 --- a/src/rtctools_heat_network/physics_mixin.py +++ b/src/mesido/physics_mixin.py @@ -8,7 +8,7 @@ CollocatedIntegratedOptimizationProblem, ) -from rtctools_heat_network.control_variables import map_comp_type_to_control_variable +from mesido.control_variables import map_comp_type_to_control_variable from .base_component_type_mixin import BaseComponentTypeMixin @@ -16,7 +16,7 @@ from .gas_physics_mixin import GasPhysicsMixin from .heat_physics_mixin import HeatPhysicsMixin -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class PhysicsMixin( diff --git a/src/rtctools_heat_network/pipe_class.py b/src/mesido/pipe_class.py similarity index 100% rename from src/rtctools_heat_network/pipe_class.py rename to src/mesido/pipe_class.py diff --git a/src/rtctools_heat_network/pycml/__init__.py b/src/mesido/pycml/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/__init__.py rename to src/mesido/pycml/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/__init__.py b/src/mesido/pycml/component_library/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/__init__.py rename to src/mesido/pycml/component_library/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/__init__.py b/src/mesido/pycml/component_library/milp/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/__init__.py rename to src/mesido/pycml/component_library/milp/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/_internal/__init__.py b/src/mesido/pycml/component_library/milp/_internal/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/_internal/__init__.py rename to src/mesido/pycml/component_library/milp/_internal/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/_internal/electricity_component.py b/src/mesido/pycml/component_library/milp/_internal/electricity_component.py similarity index 55% rename from src/rtctools_heat_network/pycml/component_library/milp/_internal/electricity_component.py rename to src/mesido/pycml/component_library/milp/_internal/electricity_component.py index 48a81ea0b..200cdd1f1 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/_internal/electricity_component.py +++ b/src/mesido/pycml/component_library/milp/_internal/electricity_component.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset class ElectricityComponent(BaseAsset): diff --git a/src/rtctools_heat_network/pycml/component_library/milp/_internal/gas_component.py b/src/mesido/pycml/component_library/milp/_internal/gas_component.py similarity index 52% rename from src/rtctools_heat_network/pycml/component_library/milp/_internal/gas_component.py rename to src/mesido/pycml/component_library/milp/_internal/gas_component.py index e137c4cf4..dfab713ef 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/_internal/gas_component.py +++ b/src/mesido/pycml/component_library/milp/_internal/gas_component.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset class GasComponent(BaseAsset): diff --git a/src/rtctools_heat_network/pycml/component_library/milp/_internal/heat_component.py b/src/mesido/pycml/component_library/milp/_internal/heat_component.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/milp/_internal/heat_component.py rename to src/mesido/pycml/component_library/milp/_internal/heat_component.py index f93d4ca62..058c4d602 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/_internal/heat_component.py +++ b/src/mesido/pycml/component_library/milp/_internal/heat_component.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Component +from mesido.pycml import Component class HeatComponent(Component): diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/__init__.py b/src/mesido/pycml/component_library/milp/electricity/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/__init__.py rename to src/mesido/pycml/component_library/milp/electricity/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_base.py b/src/mesido/pycml/component_library/milp/electricity/electricity_base.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_base.py rename to src/mesido/pycml/component_library/milp/electricity/electricity_base.py index 2072ca02a..993f15328 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_base.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_base.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Connector, Variable +from mesido.pycml import Connector, Variable from .._internal.electricity_component import ElectricityComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_cable.py b/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py similarity index 97% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_cable.py rename to src/mesido/pycml/component_library/milp/electricity/electricity_cable.py index 014d4008e..8d6a3b14f 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_cable.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .electricity_base import ElectricityTwoPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_demand.py b/src/mesido/pycml/component_library/milp/electricity/electricity_demand.py similarity index 95% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_demand.py rename to src/mesido/pycml/component_library/milp/electricity/electricity_demand.py index 43b7ec2b3..cb3ff691c 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_demand.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_demand.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .electricity_base import ElectricityPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_node.py b/src/mesido/pycml/component_library/milp/electricity/electricity_node.py similarity index 96% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_node.py rename to src/mesido/pycml/component_library/milp/electricity/electricity_node.py index e8b6deab1..97d863409 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_node.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_node.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .electricity_base import ElectricityPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_source.py b/src/mesido/pycml/component_library/milp/electricity/electricity_source.py similarity index 95% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_source.py rename to src/mesido/pycml/component_library/milp/electricity/electricity_source.py index 4c2792fef..00a206860 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_source.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_source.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .electricity_base import ElectricityPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/heat_pump_elec.py b/src/mesido/pycml/component_library/milp/electricity/heat_pump_elec.py similarity index 83% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/heat_pump_elec.py rename to src/mesido/pycml/component_library/milp/electricity/heat_pump_elec.py index dfc1faa0f..844991655 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/heat_pump_elec.py +++ b/src/mesido/pycml/component_library/milp/electricity/heat_pump_elec.py @@ -1,7 +1,7 @@ -from rtctools_heat_network.pycml.component_library.milp.electricity.electricity_base import ( +from mesido.pycml.component_library.milp.electricity.electricity_base import ( ElectricityPort, ) -from rtctools_heat_network.pycml.component_library.milp.heat.heat_pump import HeatPump +from mesido.pycml.component_library.milp.heat.heat_pump import HeatPump # TODO: for now in the electricity folder, but maybe we can make a multicommodity folder, diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/windpark.py b/src/mesido/pycml/component_library/milp/electricity/windpark.py similarity index 84% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/windpark.py rename to src/mesido/pycml/component_library/milp/electricity/windpark.py index 27cd259fb..391121651 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/windpark.py +++ b/src/mesido/pycml/component_library/milp/electricity/windpark.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .. import ElectricitySource diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/__init__.py b/src/mesido/pycml/component_library/milp/gas/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/__init__.py rename to src/mesido/pycml/component_library/milp/gas/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_base.py b/src/mesido/pycml/component_library/milp/gas/gas_base.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_base.py rename to src/mesido/pycml/component_library/milp/gas/gas_base.py index afa19b088..3f7f1ead3 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_base.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_base.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Connector, Variable +from mesido.pycml import Connector, Variable from .._internal.gas_component import GasComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_demand.py b/src/mesido/pycml/component_library/milp/gas/gas_demand.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_demand.py rename to src/mesido/pycml/component_library/milp/gas/gas_demand.py index 24f7f2043..450782dfd 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_demand.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_demand.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .gas_base import GasPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_node.py b/src/mesido/pycml/component_library/milp/gas/gas_node.py similarity index 95% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_node.py rename to src/mesido/pycml/component_library/milp/gas/gas_node.py index 0b2817cca..b68246301 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_node.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_node.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .gas_base import GasPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_pipe.py b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py similarity index 97% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_pipe.py rename to src/mesido/pycml/component_library/milp/gas/gas_pipe.py index 68b8a489e..2cf11b6fa 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_pipe.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py @@ -1,6 +1,6 @@ from numpy import nan, pi -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .gas_base import GasTwoPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_source.py b/src/mesido/pycml/component_library/milp/gas/gas_source.py similarity index 93% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_source.py rename to src/mesido/pycml/component_library/milp/gas/gas_source.py index 313003b0b..9f3bc109f 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_source.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_source.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .gas_base import GasPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_substation.py b/src/mesido/pycml/component_library/milp/gas/gas_substation.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_substation.py rename to src/mesido/pycml/component_library/milp/gas/gas_substation.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_tank_storage.py b/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py similarity index 91% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_tank_storage.py rename to src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py index 007742556..376d0f721 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_tank_storage.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py @@ -1,7 +1,7 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal import BaseAsset +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal import BaseAsset from .gas_base import GasPort from .._internal.gas_component import GasComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/__init__.py b/src/mesido/pycml/component_library/milp/heat/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/__init__.py rename to src/mesido/pycml/component_library/milp/heat/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/_non_storage_component.py b/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py similarity index 92% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/_non_storage_component.py rename to src/mesido/pycml/component_library/milp/heat/_non_storage_component.py index 67f87d5fc..f613c253e 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/_non_storage_component.py +++ b/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py @@ -1,7 +1,7 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset from .heat_two_port import HeatTwoPort diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/ates.py b/src/mesido/pycml/component_library/milp/heat/ates.py similarity index 97% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/ates.py rename to src/mesido/pycml/component_library/milp/heat/ates.py index 0930234aa..377c48f54 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/ates.py +++ b/src/mesido/pycml/component_library/milp/heat/ates.py @@ -1,8 +1,8 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset from .heat_two_port import HeatTwoPort diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/check_valve.py b/src/mesido/pycml/component_library/milp/heat/check_valve.py similarity index 93% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/check_valve.py rename to src/mesido/pycml/component_library/milp/heat/check_valve.py index c5cdc961d..7134a2a27 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/check_valve.py +++ b/src/mesido/pycml/component_library/milp/heat/check_valve.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/control_valve.py b/src/mesido/pycml/component_library/milp/heat/control_valve.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/control_valve.py rename to src/mesido/pycml/component_library/milp/heat/control_valve.py index f968ba3a6..c2f0bda78 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/control_valve.py +++ b/src/mesido/pycml/component_library/milp/heat/control_valve.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/geothermal_source.py b/src/mesido/pycml/component_library/milp/heat/geothermal_source.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/geothermal_source.py rename to src/mesido/pycml/component_library/milp/heat/geothermal_source.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_buffer.py b/src/mesido/pycml/component_library/milp/heat/heat_buffer.py similarity index 96% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_buffer.py rename to src/mesido/pycml/component_library/milp/heat/heat_buffer.py index 149d5fcfe..e85ff7004 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_buffer.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_buffer.py @@ -2,8 +2,8 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset from .heat_two_port import HeatTwoPort diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_demand.py b/src/mesido/pycml/component_library/milp/heat/heat_demand.py similarity index 97% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_demand.py rename to src/mesido/pycml/component_library/milp/heat/heat_demand.py index 1c5d7ecce..5ba23da99 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_demand.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_demand.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_exchanger.py b/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py similarity index 93% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_exchanger.py rename to src/mesido/pycml/component_library/milp/heat/heat_exchanger.py index 9403da960..5dacc98bf 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_exchanger.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py @@ -1,8 +1,8 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal import BaseAsset -from rtctools_heat_network.pycml.component_library.milp.heat.heat_four_port import HeatFourPort +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal import BaseAsset +from mesido.pycml.component_library.milp.heat.heat_four_port import HeatFourPort class HeatExchanger(HeatFourPort, BaseAsset): diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_four_port.py b/src/mesido/pycml/component_library/milp/heat/heat_four_port.py similarity index 85% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_four_port.py rename to src/mesido/pycml/component_library/milp/heat/heat_four_port.py index 743e74ab9..ce259f051 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_four_port.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_four_port.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal import HeatComponent +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal import HeatComponent from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_pipe.py b/src/mesido/pycml/component_library/milp/heat/heat_pipe.py similarity index 98% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_pipe.py rename to src/mesido/pycml/component_library/milp/heat/heat_pipe.py index 431106dc6..985390955 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_pipe.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_pipe.py @@ -1,6 +1,6 @@ from numpy import nan, pi -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_port.py b/src/mesido/pycml/component_library/milp/heat/heat_port.py similarity index 78% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_port.py rename to src/mesido/pycml/component_library/milp/heat/heat_port.py index cf819b330..9ba7ef285 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_port.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_port.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import Connector, Variable -from rtctools_heat_network.pycml.component_library.milp._internal import HeatComponent +from mesido.pycml import Connector, Variable +from mesido.pycml.component_library.milp._internal import HeatComponent class HeatPort(HeatComponent, Connector): diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_pump.py b/src/mesido/pycml/component_library/milp/heat/heat_pump.py similarity index 93% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_pump.py rename to src/mesido/pycml/component_library/milp/heat/heat_pump.py index 0db1800e6..dc1ee3df7 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_pump.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_pump.py @@ -1,8 +1,8 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal import BaseAsset -from rtctools_heat_network.pycml.component_library.milp.heat.heat_four_port import HeatFourPort +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal import BaseAsset +from mesido.pycml.component_library.milp.heat.heat_four_port import HeatFourPort class HeatPump(HeatFourPort, BaseAsset): diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_source.py b/src/mesido/pycml/component_library/milp/heat/heat_source.py similarity index 98% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_source.py rename to src/mesido/pycml/component_library/milp/heat/heat_source.py index aa2f3adcc..6a9554b32 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_source.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_source.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_two_port.py b/src/mesido/pycml/component_library/milp/heat/heat_two_port.py similarity index 85% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_two_port.py rename to src/mesido/pycml/component_library/milp/heat/heat_two_port.py index 9fc8df892..c1cf1d855 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_two_port.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_two_port.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml.component_library.milp._internal import HeatComponent +from mesido.pycml.component_library.milp._internal import HeatComponent from .heat_port import HeatPort diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/node.py b/src/mesido/pycml/component_library/milp/heat/node.py similarity index 88% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/node.py rename to src/mesido/pycml/component_library/milp/heat/node.py index 09ea3d5bc..7ff75d71c 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/node.py +++ b/src/mesido/pycml/component_library/milp/heat/node.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal import BaseAsset, HeatComponent +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal import BaseAsset, HeatComponent from .heat_port import HeatPort diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/pump.py b/src/mesido/pycml/component_library/milp/heat/pump.py similarity index 95% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/pump.py rename to src/mesido/pycml/component_library/milp/heat/pump.py index 45d70b1ca..8ba0418e6 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/pump.py +++ b/src/mesido/pycml/component_library/milp/heat/pump.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/multicommodity/__init__.py b/src/mesido/pycml/component_library/milp/multicommodity/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/multicommodity/__init__.py rename to src/mesido/pycml/component_library/milp/multicommodity/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/multicommodity/electrolyzer.py b/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py similarity index 78% rename from src/rtctools_heat_network/pycml/component_library/milp/multicommodity/electrolyzer.py rename to src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py index 77029c152..1c7acb4ec 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/multicommodity/electrolyzer.py +++ b/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py @@ -1,14 +1,14 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal import BaseAsset -from rtctools_heat_network.pycml.component_library.milp._internal.electricity_component import ( +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal import BaseAsset +from mesido.pycml.component_library.milp._internal.electricity_component import ( ElectricityComponent, ) -from rtctools_heat_network.pycml.component_library.milp.electricity.electricity_base import ( +from mesido.pycml.component_library.milp.electricity.electricity_base import ( ElectricityPort, ) -from rtctools_heat_network.pycml.component_library.milp.gas.gas_base import ( +from mesido.pycml.component_library.milp.gas.gas_base import ( GasPort, ) diff --git a/src/rtctools_heat_network/pycml/component_library/qth/__init__.py b/src/mesido/pycml/component_library/qth/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/qth/__init__.py rename to src/mesido/pycml/component_library/qth/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/qth/_fluid_properties_component.py b/src/mesido/pycml/component_library/qth/_fluid_properties_component.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/qth/_fluid_properties_component.py rename to src/mesido/pycml/component_library/qth/_fluid_properties_component.py diff --git a/src/rtctools_heat_network/pycml/component_library/qth/_internal/__init__.py b/src/mesido/pycml/component_library/qth/_internal/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/qth/_internal/__init__.py rename to src/mesido/pycml/component_library/qth/_internal/__init__.py diff --git a/src/mesido/pycml/component_library/qth/_internal/qth_component.py b/src/mesido/pycml/component_library/qth/_internal/qth_component.py new file mode 100644 index 000000000..1dd41cee6 --- /dev/null +++ b/src/mesido/pycml/component_library/qth/_internal/qth_component.py @@ -0,0 +1,5 @@ +from mesido.pycml import Component + + +class QTHComponent(Component): + pass diff --git a/src/rtctools_heat_network/pycml/component_library/qth/_non_storage_component.py b/src/mesido/pycml/component_library/qth/_non_storage_component.py similarity index 91% rename from src/rtctools_heat_network/pycml/component_library/qth/_non_storage_component.py rename to src/mesido/pycml/component_library/qth/_non_storage_component.py index 3456d62e6..ffdd605fc 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/_non_storage_component.py +++ b/src/mesido/pycml/component_library/qth/_non_storage_component.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .qth_two_port import QTHTwoPort diff --git a/src/rtctools_heat_network/pycml/component_library/qth/buffer.py b/src/mesido/pycml/component_library/qth/buffer.py similarity index 98% rename from src/rtctools_heat_network/pycml/component_library/qth/buffer.py rename to src/mesido/pycml/component_library/qth/buffer.py index a2375dbc1..334a77e45 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/buffer.py +++ b/src/mesido/pycml/component_library/qth/buffer.py @@ -2,7 +2,7 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._fluid_properties_component import _FluidPropertiesComponent diff --git a/src/rtctools_heat_network/pycml/component_library/qth/check_valve.py b/src/mesido/pycml/component_library/qth/check_valve.py similarity index 91% rename from src/rtctools_heat_network/pycml/component_library/qth/check_valve.py rename to src/mesido/pycml/component_library/qth/check_valve.py index 2a50a0a66..ab5e1a174 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/check_valve.py +++ b/src/mesido/pycml/component_library/qth/check_valve.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/qth/control_valve.py b/src/mesido/pycml/component_library/qth/control_valve.py similarity index 89% rename from src/rtctools_heat_network/pycml/component_library/qth/control_valve.py rename to src/mesido/pycml/component_library/qth/control_valve.py index 2324eae60..53443c4d0 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/control_valve.py +++ b/src/mesido/pycml/component_library/qth/control_valve.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/qth/demand.py b/src/mesido/pycml/component_library/qth/demand.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/qth/demand.py rename to src/mesido/pycml/component_library/qth/demand.py index 7aa696991..4e30483a1 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/demand.py +++ b/src/mesido/pycml/component_library/qth/demand.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import SymbolicParameter, Variable +from mesido.pycml import SymbolicParameter, Variable from ._fluid_properties_component import _FluidPropertiesComponent from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/qth/geothermal_source.py b/src/mesido/pycml/component_library/qth/geothermal_source.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/qth/geothermal_source.py rename to src/mesido/pycml/component_library/qth/geothermal_source.py diff --git a/src/rtctools_heat_network/pycml/component_library/qth/node.py b/src/mesido/pycml/component_library/qth/node.py similarity index 93% rename from src/rtctools_heat_network/pycml/component_library/qth/node.py rename to src/mesido/pycml/component_library/qth/node.py index c48805ae9..5ff3d7ead 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/node.py +++ b/src/mesido/pycml/component_library/qth/node.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._internal import QTHComponent from .qth_port import QTHPort diff --git a/src/rtctools_heat_network/pycml/component_library/qth/pipe.py b/src/mesido/pycml/component_library/qth/pipe.py similarity index 97% rename from src/rtctools_heat_network/pycml/component_library/qth/pipe.py rename to src/mesido/pycml/component_library/qth/pipe.py index aaf14345b..a7d26c452 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/pipe.py +++ b/src/mesido/pycml/component_library/qth/pipe.py @@ -1,6 +1,6 @@ from numpy import nan, pi -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._fluid_properties_component import _FluidPropertiesComponent from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/qth/pump.py b/src/mesido/pycml/component_library/qth/pump.py similarity index 91% rename from src/rtctools_heat_network/pycml/component_library/qth/pump.py rename to src/mesido/pycml/component_library/qth/pump.py index 730be6555..852d0d622 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/pump.py +++ b/src/mesido/pycml/component_library/qth/pump.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/qth/qth_port.py b/src/mesido/pycml/component_library/qth/qth_port.py similarity index 88% rename from src/rtctools_heat_network/pycml/component_library/qth/qth_port.py rename to src/mesido/pycml/component_library/qth/qth_port.py index e0c2583ad..7a622d53a 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/qth_port.py +++ b/src/mesido/pycml/component_library/qth/qth_port.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Connector, Variable +from mesido.pycml import Connector, Variable from ._internal import QTHComponent diff --git a/src/rtctools_heat_network/pycml/component_library/qth/qth_two_port.py b/src/mesido/pycml/component_library/qth/qth_two_port.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/qth/qth_two_port.py rename to src/mesido/pycml/component_library/qth/qth_two_port.py diff --git a/src/rtctools_heat_network/pycml/component_library/qth/source.py b/src/mesido/pycml/component_library/qth/source.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/qth/source.py rename to src/mesido/pycml/component_library/qth/source.py index 1e69907e6..8893b33f7 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/source.py +++ b/src/mesido/pycml/component_library/qth/source.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import SymbolicParameter, Variable +from mesido.pycml import SymbolicParameter, Variable from ._fluid_properties_component import _FluidPropertiesComponent from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/model_base.py b/src/mesido/pycml/model_base.py similarity index 100% rename from src/rtctools_heat_network/pycml/model_base.py rename to src/mesido/pycml/model_base.py diff --git a/src/rtctools_heat_network/pycml/pycml_mixin.py b/src/mesido/pycml/pycml_mixin.py similarity index 99% rename from src/rtctools_heat_network/pycml/pycml_mixin.py rename to src/mesido/pycml/pycml_mixin.py index 647dbe332..92101d808 100644 --- a/src/rtctools_heat_network/pycml/pycml_mixin.py +++ b/src/mesido/pycml/pycml_mixin.py @@ -15,7 +15,7 @@ from . import ConstantInput, ControlInput, Model, SymbolicParameter, Variable -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class PyCMLMixin(OptimizationProblem): diff --git a/src/rtctools_heat_network/qth_not_maintained/__init__.py b/src/mesido/qth_not_maintained/__init__.py similarity index 100% rename from src/rtctools_heat_network/qth_not_maintained/__init__.py rename to src/mesido/qth_not_maintained/__init__.py diff --git a/src/rtctools_heat_network/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py b/src/mesido/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py similarity index 94% rename from src/rtctools_heat_network/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py rename to src/mesido/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py index b1583c857..9d02e062f 100644 --- a/src/rtctools_heat_network/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py +++ b/src/mesido/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py @@ -4,8 +4,8 @@ from rtctools.optimization.timeseries import Timeseries -from rtctools_heat_network.base_component_type_mixin import BaseComponentTypeMixin -from rtctools_heat_network.heat_network_common import PipeFlowDirection +from mesido.base_component_type_mixin import BaseComponentTypeMixin +from mesido.heat_network_common import PipeFlowDirection class BoundsToPipeFlowDirectionsMixin(BaseComponentTypeMixin): diff --git a/src/rtctools_heat_network/qth_not_maintained/head_loss_mixin.py b/src/mesido/qth_not_maintained/head_loss_mixin.py similarity index 99% rename from src/rtctools_heat_network/qth_not_maintained/head_loss_mixin.py rename to src/mesido/qth_not_maintained/head_loss_mixin.py index d492cc625..1769ceeef 100644 --- a/src/rtctools_heat_network/qth_not_maintained/head_loss_mixin.py +++ b/src/mesido/qth_not_maintained/head_loss_mixin.py @@ -11,14 +11,14 @@ from rtctools.optimization.goal_programming_mixin_base import Goal, _GoalProgrammingMixinBase from rtctools.optimization.optimization_problem import BT, OptimizationProblem -import rtctools_heat_network._darcy_weisbach as darcy_weisbach -from rtctools_heat_network.base_component_type_mixin import BaseComponentTypeMixin +import mesido._darcy_weisbach as darcy_weisbach +from mesido.base_component_type_mixin import BaseComponentTypeMixin from ..constants import GRAVITATIONAL_CONSTANT from ..pipe_class import PipeClass -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class HeadLossOption(IntEnum): diff --git a/src/rtctools_heat_network/qth_not_maintained/qth_loop_mixin.py b/src/mesido/qth_not_maintained/qth_loop_mixin.py similarity index 99% rename from src/rtctools_heat_network/qth_not_maintained/qth_loop_mixin.py rename to src/mesido/qth_not_maintained/qth_loop_mixin.py index df7d60ea0..d9e464c20 100644 --- a/src/rtctools_heat_network/qth_not_maintained/qth_loop_mixin.py +++ b/src/mesido/qth_not_maintained/qth_loop_mixin.py @@ -8,7 +8,7 @@ from rtctools.optimization.goal_programming_mixin_base import Goal from rtctools.optimization.timeseries import Timeseries -from rtctools_heat_network.qth_not_maintained.qth_mixin import HeadLossOption, QTHMixin +from mesido.qth_not_maintained.qth_mixin import HeadLossOption, QTHMixin class BufferTargetDischargeGoal(Goal): diff --git a/src/rtctools_heat_network/qth_not_maintained/qth_mixin.py b/src/mesido/qth_not_maintained/qth_mixin.py similarity index 99% rename from src/rtctools_heat_network/qth_not_maintained/qth_mixin.py rename to src/mesido/qth_not_maintained/qth_mixin.py index a3869647b..398db35bd 100644 --- a/src/rtctools_heat_network/qth_not_maintained/qth_mixin.py +++ b/src/mesido/qth_not_maintained/qth_mixin.py @@ -13,22 +13,22 @@ from rtctools.optimization.homotopy_mixin import HomotopyMixin from rtctools.optimization.timeseries import Timeseries -from rtctools_heat_network._heat_loss_u_values_pipe import heat_loss_u_values_pipe -from rtctools_heat_network.base_component_type_mixin import BaseComponentTypeMixin -from rtctools_heat_network.heat_network_common import ( +from mesido._heat_loss_u_values_pipe import heat_loss_u_values_pipe +from mesido.base_component_type_mixin import BaseComponentTypeMixin +from mesido.heat_network_common import ( CheckValveStatus, ControlValveDirection, NodeConnectionDirection, PipeFlowDirection, ) -from rtctools_heat_network.qth_not_maintained.head_loss_mixin import ( +from mesido.qth_not_maintained.head_loss_mixin import ( HeadLossOption, _HeadLossMixin, _MinimizeHeadLosses as _MinimizeHeadLossesBase, _MinimizeHydraulicPower as _MinimizeHydraulicPowerBase, ) -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class _MinimizeHeadLosses(_MinimizeHeadLossesBase): diff --git a/src/rtctools_heat_network/qth_not_maintained/util.py b/src/mesido/qth_not_maintained/util.py similarity index 98% rename from src/rtctools_heat_network/qth_not_maintained/util.py rename to src/mesido/qth_not_maintained/util.py index fd42bcdd9..8f8edba68 100644 --- a/src/rtctools_heat_network/qth_not_maintained/util.py +++ b/src/mesido/qth_not_maintained/util.py @@ -15,7 +15,7 @@ def run_heat_network_optimization(heat_class, qht_class, *args, log_level=loggin given that the milp milp optimization is reasonably close and conservative it can guarantee feasibility. """ - logger = logging.getLogger("rtctools_heat_network") + logger = logging.getLogger("mesido") logger.setLevel(log_level) logger.info(f"Using RTC-Tools Heat Network {__version__}.") diff --git a/src/rtctools_heat_network/techno_economic_mixin.py b/src/mesido/techno_economic_mixin.py similarity index 99% rename from src/rtctools_heat_network/techno_economic_mixin.py rename to src/mesido/techno_economic_mixin.py index 22e090864..c67f769c5 100644 --- a/src/rtctools_heat_network/techno_economic_mixin.py +++ b/src/mesido/techno_economic_mixin.py @@ -9,7 +9,7 @@ from .financial_mixin import FinancialMixin from .physics_mixin import PhysicsMixin -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class TechnoEconomicMixin( diff --git a/src/rtctools_heat_network/topology.py b/src/mesido/topology.py similarity index 100% rename from src/rtctools_heat_network/topology.py rename to src/mesido/topology.py diff --git a/src/rtctools_heat_network/workflows/__init__.py b/src/mesido/workflows/__init__.py similarity index 100% rename from src/rtctools_heat_network/workflows/__init__.py rename to src/mesido/workflows/__init__.py diff --git a/src/rtctools_heat_network/workflows/goals/__init__.py b/src/mesido/workflows/goals/__init__.py similarity index 100% rename from src/rtctools_heat_network/workflows/goals/__init__.py rename to src/mesido/workflows/goals/__init__.py diff --git a/src/rtctools_heat_network/workflows/goals/minimize_tco_goal.py b/src/mesido/workflows/goals/minimize_tco_goal.py similarity index 98% rename from src/rtctools_heat_network/workflows/goals/minimize_tco_goal.py rename to src/mesido/workflows/goals/minimize_tco_goal.py index f08944fbd..4085bb2ad 100644 --- a/src/rtctools_heat_network/workflows/goals/minimize_tco_goal.py +++ b/src/mesido/workflows/goals/minimize_tco_goal.py @@ -4,7 +4,7 @@ from rtctools.optimization.goal_programming_mixin_base import Goal -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin class MinimizeTCO(Goal): diff --git a/src/rtctools_heat_network/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py similarity index 97% rename from src/rtctools_heat_network/workflows/grow_workflow.py rename to src/mesido/workflows/grow_workflow.py index 8f5e04f88..1dfa2f1f5 100644 --- a/src/rtctools_heat_network/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -19,16 +19,16 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin -from rtctools_heat_network.workflows.goals.minimize_tco_goal import MinimizeTCO -from rtctools_heat_network.workflows.io.write_output import ScenarioOutput -from rtctools_heat_network.workflows.utils.adapt_profiles import ( +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.goals.minimize_tco_goal import MinimizeTCO +from mesido.workflows.io.write_output import ScenarioOutput +from mesido.workflows.utils.adapt_profiles import ( adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day, ) -from rtctools_heat_network.workflows.utils.helpers import main_decorator +from mesido.workflows.utils.helpers import main_decorator DB_HOST = "172.17.0.2" diff --git a/src/rtctools_heat_network/workflows/io/__init__.py b/src/mesido/workflows/io/__init__.py similarity index 100% rename from src/rtctools_heat_network/workflows/io/__init__.py rename to src/mesido/workflows/io/__init__.py diff --git a/src/rtctools_heat_network/workflows/io/read_files_and_create_influxdb.py b/src/mesido/workflows/io/read_files_and_create_influxdb.py similarity index 100% rename from src/rtctools_heat_network/workflows/io/read_files_and_create_influxdb.py rename to src/mesido/workflows/io/read_files_and_create_influxdb.py diff --git a/src/rtctools_heat_network/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py similarity index 99% rename from src/rtctools_heat_network/workflows/io/write_output.py rename to src/mesido/workflows/io/write_output.py index bbcdbadfd..2262dcdd7 100644 --- a/src/rtctools_heat_network/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -20,14 +20,14 @@ from rtctools.optimization.timeseries import Timeseries -import rtctools_heat_network.esdl.esdl_parser -from rtctools_heat_network.constants import GRAVITATIONAL_CONSTANT -from rtctools_heat_network.esdl.edr_pipe_class import EDRPipeClass -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin -from rtctools_heat_network.workflows.utils.helpers import _sort_numbered +import mesido.esdl.esdl_parser +from mesido.constants import GRAVITATIONAL_CONSTANT +from mesido.esdl.edr_pipe_class import EDRPipeClass +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.utils.helpers import _sort_numbered -logger = logging.getLogger("rtctools_heat_network") +logger = logging.getLogger("mesido") class ScenarioOutput(TechnoEconomicMixin): @@ -1153,7 +1153,7 @@ def _name_to_asset(name): # ------------------------------------------------------------------------------------------ # Save esdl file - if self.esdl_parser_class == rtctools_heat_network.esdl.esdl_parser.ESDLFileParser: + if self.esdl_parser_class == mesido.esdl.esdl_parser.ESDLFileParser: extension = "_Simulation.esdl" if optimizer_sim else "_GrowOptimized.esdl" file_path = Path(self.model_folder) / (Path(self.esdl_file_name).stem + extension) self.save_energy_system_to_file(energy_system, file_path=file_path) diff --git a/src/rtctools_heat_network/workflows/simulator_workflow.py b/src/mesido/workflows/simulator_workflow.py similarity index 97% rename from src/rtctools_heat_network/workflows/simulator_workflow.py rename to src/mesido/workflows/simulator_workflow.py index 117d9a76d..ae8fd5575 100644 --- a/src/rtctools_heat_network/workflows/simulator_workflow.py +++ b/src/mesido/workflows/simulator_workflow.py @@ -19,14 +19,14 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin -from rtctools_heat_network.workflows.io.write_output import ScenarioOutput -from rtctools_heat_network.workflows.utils.adapt_profiles import ( +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.io.write_output import ScenarioOutput +from mesido.workflows.utils.adapt_profiles import ( adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day, ) -from rtctools_heat_network.workflows.utils.helpers import main_decorator +from mesido.workflows.utils.helpers import main_decorator DB_HOST = "172.17.0.2" diff --git a/src/rtctools_heat_network/workflows/utils/__init__.py b/src/mesido/workflows/utils/__init__.py similarity index 100% rename from src/rtctools_heat_network/workflows/utils/__init__.py rename to src/mesido/workflows/utils/__init__.py diff --git a/src/rtctools_heat_network/workflows/utils/adapt_profiles.py b/src/mesido/workflows/utils/adapt_profiles.py similarity index 100% rename from src/rtctools_heat_network/workflows/utils/adapt_profiles.py rename to src/mesido/workflows/utils/adapt_profiles.py diff --git a/src/rtctools_heat_network/workflows/utils/helpers.py b/src/mesido/workflows/utils/helpers.py similarity index 98% rename from src/rtctools_heat_network/workflows/utils/helpers.py rename to src/mesido/workflows/utils/helpers.py index 6cc2ff2bb..77ab83839 100644 --- a/src/rtctools_heat_network/workflows/utils/helpers.py +++ b/src/mesido/workflows/utils/helpers.py @@ -7,7 +7,7 @@ import esdl -from rtctools_heat_network import __version__ +from mesido import __version__ MULTI_ENUM_NAME_TO_FACTOR = { diff --git a/src/rtctools_heat_network/pycml/component_library/qth/_internal/qth_component.py b/src/rtctools_heat_network/pycml/component_library/qth/_internal/qth_component.py deleted file mode 100644 index 712ec0b1d..000000000 --- a/src/rtctools_heat_network/pycml/component_library/qth/_internal/qth_component.py +++ /dev/null @@ -1,5 +0,0 @@ -from rtctools_heat_network.pycml import Component - - -class QTHComponent(Component): - pass diff --git a/tests/models/absolute_heat/src/example.py b/tests/models/absolute_heat/src/example.py index a05a9101c..6c89772a1 100644 --- a/tests/models/absolute_heat/src/example.py +++ b/tests/models/absolute_heat/src/example.py @@ -13,10 +13,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/ates_temperature/src/run_ates_temperature.py b/tests/models/ates_temperature/src/run_ates_temperature.py index 9d91963a7..173cb1493 100644 --- a/tests/models/ates_temperature/src/run_ates_temperature.py +++ b/tests/models/ates_temperature/src/run_ates_temperature.py @@ -13,12 +13,12 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin -from rtctools_heat_network.workflows.io.write_output import ScenarioOutput +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.io.write_output import ScenarioOutput ns = {"fews": "http://www.wldelft.nl/fews", "pi": "http://www.wldelft.nl/fews/PI"} diff --git a/tests/models/basic_buffer/src/compare.py b/tests/models/basic_buffer/src/compare.py index d95692a7a..7658deba5 100644 --- a/tests/models/basic_buffer/src/compare.py +++ b/tests/models/basic_buffer/src/compare.py @@ -5,13 +5,13 @@ from rtctools.optimization.modelica_mixin import ModelicaMixin -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin -from rtctools_heat_network.qth_not_maintained.qth_loop_mixin import ( +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.qth_not_maintained.qth_loop_mixin import ( BufferTargetDischargeGoal, QTHLoopMixin, ) -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin -from rtctools_heat_network.qth_not_maintained.util import run_heat_network_optimization +from mesido.qth_not_maintained.qth_mixin import QTHMixin +from mesido.qth_not_maintained.util import run_heat_network_optimization # We want to import the example we compare with as a module that is somewhat # uniquely identifiable. We therefore start from the root. diff --git a/tests/models/basic_buffer/src/model_heat.py b/tests/models/basic_buffer/src/model_heat.py index fd5513e6a..f2547393b 100644 --- a/tests/models/basic_buffer/src/model_heat.py +++ b/tests/models/basic_buffer/src/model_heat.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import ControlInput, Model as _Model, Variable -from rtctools_heat_network.pycml.component_library.milp import ( +from mesido.pycml import ControlInput, Model as _Model, Variable +from mesido.pycml.component_library.milp import ( HeatBuffer, HeatDemand, HeatPipe, diff --git a/tests/models/basic_buffer/src/model_qth.py b/tests/models/basic_buffer/src/model_qth.py index abcbd2736..576b7540f 100644 --- a/tests/models/basic_buffer/src/model_qth.py +++ b/tests/models/basic_buffer/src/model_qth.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import ControlInput, Model as _Model, SymbolicParameter, Variable -from rtctools_heat_network.pycml.component_library.qth import ( +from mesido.pycml import ControlInput, Model as _Model, SymbolicParameter, Variable +from mesido.pycml.component_library.qth import ( Buffer, Demand, Node, diff --git a/tests/models/basic_source_and_demand/src/heat_comparison.py b/tests/models/basic_source_and_demand/src/heat_comparison.py index ad4bd9834..3b7801dec 100644 --- a/tests/models/basic_source_and_demand/src/heat_comparison.py +++ b/tests/models/basic_source_and_demand/src/heat_comparison.py @@ -6,10 +6,10 @@ from rtctools.optimization.modelica_mixin import ModelicaMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.component_type_mixin import ModelicaComponentTypeMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.physics_mixin import PhysicsMixin +from mesido.pycml.pycml_mixin import PyCMLMixin if __name__ == "__main__": from model_heat import Model diff --git a/tests/models/basic_source_and_demand/src/model_heat.py b/tests/models/basic_source_and_demand/src/model_heat.py index 61d7c7ce3..016100092 100644 --- a/tests/models/basic_source_and_demand/src/model_heat.py +++ b/tests/models/basic_source_and_demand/src/model_heat.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import ControlInput, Model as _Model -from rtctools_heat_network.pycml.component_library.milp import ( +from mesido.pycml import ControlInput, Model as _Model +from mesido.pycml.component_library.milp import ( HeatDemand, HeatPipe, HeatSource, diff --git a/tests/models/basic_source_and_demand/src/model_qth.py b/tests/models/basic_source_and_demand/src/model_qth.py index 00d86accb..93fa0a8b6 100644 --- a/tests/models/basic_source_and_demand/src/model_qth.py +++ b/tests/models/basic_source_and_demand/src/model_qth.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import ControlInput, Model as _Model, SymbolicParameter -from rtctools_heat_network.pycml.component_library.qth import Demand, Pipe, Pump, Source +from mesido.pycml import ControlInput, Model as _Model, SymbolicParameter +from mesido.pycml.component_library.qth import Demand, Pipe, Pump, Source class Model(_Model): diff --git a/tests/models/basic_source_and_demand/src/qth_comparison.py b/tests/models/basic_source_and_demand/src/qth_comparison.py index b96899a4a..41d7b17f4 100644 --- a/tests/models/basic_source_and_demand/src/qth_comparison.py +++ b/tests/models/basic_source_and_demand/src/qth_comparison.py @@ -10,13 +10,13 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.component_type_mixin import ModelicaComponentTypeMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin -from rtctools_heat_network.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( BoundsToPipeFlowDirectionsMixin, ) -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin if __name__ == "__main__": from model_qth import Model diff --git a/tests/models/basic_source_and_demand/src/qth_minimize_temperatures.py b/tests/models/basic_source_and_demand/src/qth_minimize_temperatures.py index bc84c607f..099b98e58 100644 --- a/tests/models/basic_source_and_demand/src/qth_minimize_temperatures.py +++ b/tests/models/basic_source_and_demand/src/qth_minimize_temperatures.py @@ -7,12 +7,12 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.component_type_mixin import ModelicaComponentTypeMixin -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin -from rtctools_heat_network.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( BoundsToPipeFlowDirectionsMixin, ) -from rtctools_heat_network.qth_not_maintained.qth_mixin import DemandTemperatureOption, QTHMixin +from mesido.qth_not_maintained.qth_mixin import DemandTemperatureOption, QTHMixin if __name__ == "__main__": from model_qth import Model diff --git a/tests/models/double_pipe_heat/src/double_pipe_heat.py b/tests/models/double_pipe_heat/src/double_pipe_heat.py index d2be2d28b..4e5e35fe2 100644 --- a/tests/models/double_pipe_heat/src/double_pipe_heat.py +++ b/tests/models/double_pipe_heat/src/double_pipe_heat.py @@ -5,9 +5,9 @@ from rtctools.optimization.goal_programming_mixin import Goal, GoalProgrammingMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.component_type_mixin import ModelicaComponentTypeMixin -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.physics_mixin import PhysicsMixin +from mesido.pycml.pycml_mixin import PyCMLMixin if __name__ == "__main__": from model import Model diff --git a/tests/models/double_pipe_heat/src/model.py b/tests/models/double_pipe_heat/src/model.py index f217002ee..473a91d71 100644 --- a/tests/models/double_pipe_heat/src/model.py +++ b/tests/models/double_pipe_heat/src/model.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import ControlInput, Model as _Model -from rtctools_heat_network.pycml.component_library.milp import ( +from mesido.pycml import ControlInput, Model as _Model +from mesido.pycml.component_library.milp import ( HeatDemand, HeatPipe, HeatSource, diff --git a/tests/models/double_pipe_qth/src/cq2_inequality_vs_equality.py b/tests/models/double_pipe_qth/src/cq2_inequality_vs_equality.py index 883f6a957..65d0f4e91 100644 --- a/tests/models/double_pipe_qth/src/cq2_inequality_vs_equality.py +++ b/tests/models/double_pipe_qth/src/cq2_inequality_vs_equality.py @@ -2,8 +2,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.qth_not_maintained.qth_loop_mixin import QTHLoopMixin -from rtctools_heat_network.qth_not_maintained.qth_mixin import HeadLossOption, QTHMixin +from mesido.qth_not_maintained.qth_loop_mixin import QTHLoopMixin +from mesido.qth_not_maintained.qth_mixin import HeadLossOption, QTHMixin if __name__ == "__main__": from double_pipe_qth import DoublePipeBase diff --git a/tests/models/double_pipe_qth/src/double_pipe_qth.py b/tests/models/double_pipe_qth/src/double_pipe_qth.py index 69316bf14..1e97ad2b5 100644 --- a/tests/models/double_pipe_qth/src/double_pipe_qth.py +++ b/tests/models/double_pipe_qth/src/double_pipe_qth.py @@ -7,11 +7,11 @@ from rtctools.optimization.modelica_mixin import ModelicaMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.component_type_mixin import ModelicaComponentTypeMixin -from rtctools_heat_network.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( BoundsToPipeFlowDirectionsMixin, ) -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin class TargetDemandGoal(Goal): diff --git a/tests/models/double_pipe_qth/src/single_pipe_no_headloss.py b/tests/models/double_pipe_qth/src/single_pipe_no_headloss.py index 38d0cc3ba..83a416c53 100644 --- a/tests/models/double_pipe_qth/src/single_pipe_no_headloss.py +++ b/tests/models/double_pipe_qth/src/single_pipe_no_headloss.py @@ -1,6 +1,6 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.qth_not_maintained.qth_mixin import HeadLossOption +from mesido.qth_not_maintained.qth_mixin import HeadLossOption if __name__ == "__main__": from double_pipe_qth import SinglePipeQTH diff --git a/tests/models/electricity_cable_topology/src/example.py b/tests/models/electricity_cable_topology/src/example.py index 8121ea3ba..7870aabfd 100644 --- a/tests/models/electricity_cable_topology/src/example.py +++ b/tests/models/electricity_cable_topology/src/example.py @@ -13,11 +13,11 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.pipe_class import CableClass -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.pipe_class import CableClass +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/emerge/src/example.py b/tests/models/emerge/src/example.py index 6dca4d252..a489e2e0f 100644 --- a/tests/models/emerge/src/example.py +++ b/tests/models/emerge/src/example.py @@ -10,12 +10,12 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin class MaxHydrogenProduction(Goal): diff --git a/tests/models/gas_pipe_topology/src/example.py b/tests/models/gas_pipe_topology/src/example.py index c647bc862..4c2bbbd1a 100644 --- a/tests/models/gas_pipe_topology/src/example.py +++ b/tests/models/gas_pipe_topology/src/example.py @@ -13,10 +13,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/heat_exchange/src/run_heat_exchanger.py b/tests/models/heat_exchange/src/run_heat_exchanger.py index 3395eb0da..7bd2ae00f 100644 --- a/tests/models/heat_exchange/src/run_heat_exchanger.py +++ b/tests/models/heat_exchange/src/run_heat_exchanger.py @@ -9,11 +9,11 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.physics_mixin import PhysicsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.physics_mixin import PhysicsMixin class TargetDemandGoal(Goal): diff --git a/tests/models/heatpump/src/run_heat_pump.py b/tests/models/heatpump/src/run_heat_pump.py index 4fab2dbf6..71e60675a 100644 --- a/tests/models/heatpump/src/run_heat_pump.py +++ b/tests/models/heatpump/src/run_heat_pump.py @@ -9,10 +9,10 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin class TargetDemandGoal(Goal): diff --git a/tests/models/insulation/src/run_insulation.py b/tests/models/insulation/src/run_insulation.py index e20328d36..acd32b8cb 100644 --- a/tests/models/insulation/src/run_insulation.py +++ b/tests/models/insulation/src/run_insulation.py @@ -11,11 +11,11 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.demand_insulation_class import DemandInsulationClass -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.demand_insulation_class import DemandInsulationClass +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class MinimizeSourcesHeatGoal(Goal): diff --git a/tests/models/multiple_carriers/src/run_multiple_carriers.py b/tests/models/multiple_carriers/src/run_multiple_carriers.py index 6401c5abc..712407392 100644 --- a/tests/models/multiple_carriers/src/run_multiple_carriers.py +++ b/tests/models/multiple_carriers/src/run_multiple_carriers.py @@ -9,10 +9,10 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin class TargetDemandGoal(Goal): diff --git a/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py b/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py index 311493a06..512e18f86 100644 --- a/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py +++ b/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py @@ -11,10 +11,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/pipe_test/src/run_hydraulic_power.py b/tests/models/pipe_test/src/run_hydraulic_power.py index d23df477c..cca51128d 100644 --- a/tests/models/pipe_test/src/run_hydraulic_power.py +++ b/tests/models/pipe_test/src/run_hydraulic_power.py @@ -10,9 +10,9 @@ LinearizedOrderGoalProgrammingMixin, ) -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.physics_mixin import PhysicsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.head_loss_class import HeadLossOption +from mesido.physics_mixin import PhysicsMixin class TargetDemandGoal(Goal): diff --git a/tests/models/simple_buffer/src/model.py b/tests/models/simple_buffer/src/model.py index 8af810dfa..494091768 100644 --- a/tests/models/simple_buffer/src/model.py +++ b/tests/models/simple_buffer/src/model.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import ControlInput, Model as _Model -from rtctools_heat_network.pycml.component_library.milp import ( +from mesido.pycml import ControlInput, Model as _Model +from mesido.pycml.component_library.milp import ( HeatBuffer, HeatDemand, HeatPipe, diff --git a/tests/models/simple_buffer/src/simple_buffer.py b/tests/models/simple_buffer/src/simple_buffer.py index 4bec82ce8..d896f892d 100644 --- a/tests/models/simple_buffer/src/simple_buffer.py +++ b/tests/models/simple_buffer/src/simple_buffer.py @@ -11,9 +11,9 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.component_type_mixin import ModelicaComponentTypeMixin -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin if __name__ == "__main__": from model import Model diff --git a/tests/models/source_pipe_sink/src/double_pipe_heat.py b/tests/models/source_pipe_sink/src/double_pipe_heat.py index 38329294f..b61b834ef 100644 --- a/tests/models/source_pipe_sink/src/double_pipe_heat.py +++ b/tests/models/source_pipe_sink/src/double_pipe_heat.py @@ -8,12 +8,12 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/source_pipe_split_sink/src/double_pipe_heat.py b/tests/models/source_pipe_split_sink/src/double_pipe_heat.py index 8f96c8714..b3138990e 100644 --- a/tests/models/source_pipe_split_sink/src/double_pipe_heat.py +++ b/tests/models/source_pipe_split_sink/src/double_pipe_heat.py @@ -8,8 +8,8 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/test_case_small_network_ates_buffer_optional_assets/src/run_ates.py b/tests/models/test_case_small_network_ates_buffer_optional_assets/src/run_ates.py index c77a71cf6..82b9a118d 100644 --- a/tests/models/test_case_small_network_ates_buffer_optional_assets/src/run_ates.py +++ b/tests/models/test_case_small_network_ates_buffer_optional_assets/src/run_ates.py @@ -9,10 +9,10 @@ LinearizedOrderGoalProgrammingMixin, ) -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): @@ -153,7 +153,7 @@ def read(self): if __name__ == "__main__": import time - from rtctools_heat_network.workflows import EndScenarioSizingStaged, run_end_scenario_sizing + from mesido.workflows import EndScenarioSizingStaged, run_end_scenario_sizing start_time = time.time() diff --git a/tests/models/test_case_small_network_optional_assets_annualized/src/run_annualized.py b/tests/models/test_case_small_network_optional_assets_annualized/src/run_annualized.py index 74a584ee6..945c27f72 100644 --- a/tests/models/test_case_small_network_optional_assets_annualized/src/run_annualized.py +++ b/tests/models/test_case_small_network_optional_assets_annualized/src/run_annualized.py @@ -5,9 +5,9 @@ from rtctools.optimization.goal_programming_mixin import Goal from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.workflows.goals.minimize_tco_goal import MinimizeTCO +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.workflows.goals.minimize_tco_goal import MinimizeTCO try: from models.test_case_small_network_optional_assets_annualized.src.run_ates import ( diff --git a/tests/models/test_case_small_network_optional_assets_annualized/src/run_ates.py b/tests/models/test_case_small_network_optional_assets_annualized/src/run_ates.py index 7166f3af9..fbc9e4842 100644 --- a/tests/models/test_case_small_network_optional_assets_annualized/src/run_ates.py +++ b/tests/models/test_case_small_network_optional_assets_annualized/src/run_ates.py @@ -10,10 +10,10 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/test_case_small_network_with_ates/src/run_ates.py b/tests/models/test_case_small_network_with_ates/src/run_ates.py index db453e388..f8c696f95 100644 --- a/tests/models/test_case_small_network_with_ates/src/run_ates.py +++ b/tests/models/test_case_small_network_with_ates/src/run_ates.py @@ -19,10 +19,10 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/test_case_small_network_with_ates_with_buffer/src/run_ates.py b/tests/models/test_case_small_network_with_ates_with_buffer/src/run_ates.py index 6cfef29ed..5a00a0f0d 100644 --- a/tests/models/test_case_small_network_with_ates_with_buffer/src/run_ates.py +++ b/tests/models/test_case_small_network_with_ates_with_buffer/src/run_ates.py @@ -12,10 +12,10 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases/case_1a/src/run_1a.py b/tests/models/unit_cases/case_1a/src/run_1a.py index df05d1f9a..b87efbeba 100644 --- a/tests/models/unit_cases/case_1a/src/run_1a.py +++ b/tests/models/unit_cases/case_1a/src/run_1a.py @@ -10,11 +10,11 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases/case_1a_t_var/src/run_1a.py b/tests/models/unit_cases/case_1a_t_var/src/run_1a.py index 8211c3b8b..518a652f4 100644 --- a/tests/models/unit_cases/case_1a_t_var/src/run_1a.py +++ b/tests/models/unit_cases/case_1a_t_var/src/run_1a.py @@ -9,11 +9,11 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases/case_2a/src/equal_temperatures.py b/tests/models/unit_cases/case_2a/src/equal_temperatures.py index 42bc6bd59..d92f3e205 100644 --- a/tests/models/unit_cases/case_2a/src/equal_temperatures.py +++ b/tests/models/unit_cases/case_2a/src/equal_temperatures.py @@ -9,10 +9,10 @@ LinearizedOrderGoalProgrammingMixin, ) -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.heat_mixin import HeatMixin -from rtctools_heat_network.qth_mixin import QTHMixin -from rtctools_heat_network.util import run_heat_network_optimization +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.heat_mixin import HeatMixin +from mesido.qth_mixin import QTHMixin +from mesido.util import run_heat_network_optimization class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases/case_2a/src/run_2a.py b/tests/models/unit_cases/case_2a/src/run_2a.py index 596e6623a..baea4838b 100644 --- a/tests/models/unit_cases/case_2a/src/run_2a.py +++ b/tests/models/unit_cases/case_2a/src/run_2a.py @@ -11,11 +11,11 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases/case_3a/src/run_3a.py b/tests/models/unit_cases/case_3a/src/run_3a.py index 11a6d559f..098d64e56 100644 --- a/tests/models/unit_cases/case_3a/src/run_3a.py +++ b/tests/models/unit_cases/case_3a/src/run_3a.py @@ -10,12 +10,12 @@ ) from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): @@ -347,7 +347,7 @@ def path_goals(self): def energy_system_options(self): options = super().energy_system_options() - from rtctools_heat_network.head_loss_class import HeadLossOption + from mesido.head_loss_class import HeadLossOption self.heat_network_settings["head_loss_option"] = HeadLossOption.NO_HEADLOSS return options diff --git a/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py b/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py index ec1c6f357..db6fbb4d1 100644 --- a/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py +++ b/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py @@ -9,9 +9,9 @@ ) from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin -from rtctools_heat_network.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases_electricity/bus_networks/src/example.py b/tests/models/unit_cases_electricity/bus_networks/src/example.py index e84c05cb1..bfe869d1a 100644 --- a/tests/models/unit_cases_electricity/bus_networks/src/example.py +++ b/tests/models/unit_cases_electricity/bus_networks/src/example.py @@ -11,10 +11,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases_electricity/electrolyzer/src/example.py b/tests/models/unit_cases_electricity/electrolyzer/src/example.py index d3211c32c..fd7842c7a 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/src/example.py +++ b/tests/models/unit_cases_electricity/electrolyzer/src/example.py @@ -10,10 +10,10 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class RevenueGoal(Goal): diff --git a/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py b/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py index f76129890..4e9dfd359 100644 --- a/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py +++ b/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py @@ -11,10 +11,10 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin # TODO: check if this run script is still valid as test case for electric heatpump and update with diff --git a/tests/models/unit_cases_electricity/source_sink_cable/src/example.py b/tests/models/unit_cases_electricity/source_sink_cable/src/example.py index 19b5c759f..f5a853348 100644 --- a/tests/models/unit_cases_electricity/source_sink_cable/src/example.py +++ b/tests/models/unit_cases_electricity/source_sink_cable/src/example.py @@ -11,11 +11,11 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py b/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py index e2dd1a9d0..cdd0706b3 100644 --- a/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py +++ b/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py @@ -11,10 +11,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases_gas/source_pipe_split_sink/src/run_source_sink.py b/tests/models/unit_cases_gas/source_pipe_split_sink/src/run_source_sink.py index 1b7912110..c7616b67d 100644 --- a/tests/models/unit_cases_gas/source_pipe_split_sink/src/run_source_sink.py +++ b/tests/models/unit_cases_gas/source_pipe_split_sink/src/run_source_sink.py @@ -11,10 +11,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases_gas/source_sink/src/run_source_sink.py b/tests/models/unit_cases_gas/source_sink/src/run_source_sink.py index d1c2517a8..8681d8562 100644 --- a/tests/models/unit_cases_gas/source_sink/src/run_source_sink.py +++ b/tests/models/unit_cases_gas/source_sink/src/run_source_sink.py @@ -11,10 +11,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/qth_test_not_maintained/test_qth.py b/tests/qth_test_not_maintained/test_qth.py index 02d515b13..81bdd7412 100644 --- a/tests/qth_test_not_maintained/test_qth.py +++ b/tests/qth_test_not_maintained/test_qth.py @@ -6,10 +6,10 @@ # # from rtctools.util import run_optimization_problem # -# from rtctools_heat_network.util import run_heat_network_optimization +# from mesido.util import run_heat_network_optimization # # -# logger = logging.getLogger("rtctools_heat_network") +# logger = logging.getLogger("mesido") # # # class TestArtificalHeadLoss(TestCase): @@ -64,7 +64,7 @@ # cls.base_folder = Path(double_pipe_qth.__file__).resolve().parent.parent # # def test_single_pipe_no_headloss(self): -# from rtctools_heat_network.qth_mixin import _MinimizeHeadLosses +# from mesido.qth_mixin import _MinimizeHeadLosses # # from models.double_pipe_qth.src.single_pipe_no_headloss import SinglePipeQTHNoHeadLoss # diff --git a/tests/qth_test_not_maintained/test_qth_loop.py b/tests/qth_test_not_maintained/test_qth_loop.py index ac87b8a5b..da7c88572 100644 --- a/tests/qth_test_not_maintained/test_qth_loop.py +++ b/tests/qth_test_not_maintained/test_qth_loop.py @@ -6,11 +6,11 @@ # # from rtctools.util import run_optimization_problem # -# from rtctools_heat_network.qth_loop_mixin import QTHLoopMixin -# from rtctools_heat_network.util import run_heat_network_optimization +# from mesido.qth_loop_mixin import QTHLoopMixin +# from mesido.util import run_heat_network_optimization # # -# logger = logging.getLogger("rtctools_heat_network") +# logger = logging.getLogger("mesido") # # # class TestQTHLoop(TestCase): diff --git a/tests/test_absolute_heat.py b/tests/test_absolute_heat.py index c78268508..c59c8ac88 100644 --- a/tests/test_absolute_heat.py +++ b/tests/test_absolute_heat.py @@ -3,8 +3,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_asset_is_realized.py b/tests/test_asset_is_realized.py index 2846f1e40..c78dc3451 100644 --- a/tests/test_asset_is_realized.py +++ b/tests/test_asset_is_realized.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestAssetIsRealized(TestCase): diff --git a/tests/test_ates.py b/tests/test_ates.py index cc46aa08b..6adf089b7 100644 --- a/tests/test_ates.py +++ b/tests/test_ates.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_cable_topology_optimization.py b/tests/test_cable_topology_optimization.py index 1c6e790b0..4f596d4f2 100644 --- a/tests/test_cable_topology_optimization.py +++ b/tests/test_cable_topology_optimization.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestElectricityTopo(TestCase): diff --git a/tests/test_electric_bus.py b/tests/test_electric_bus.py index 156c972ec..db7f564d8 100644 --- a/tests/test_electric_bus.py +++ b/tests/test_electric_bus.py @@ -15,8 +15,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestMILPbus(TestCase): diff --git a/tests/test_electric_source_sink.py b/tests/test_electric_source_sink.py index 0053c2339..937111bfa 100644 --- a/tests/test_electric_source_sink.py +++ b/tests/test_electric_source_sink.py @@ -6,8 +6,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile # TODO: still have to make test where elecitricity direction is switched: # e.g. 2 nodes, with at each node a producer and consumer, first one node medium demand, second diff --git a/tests/test_electrolyzer.py b/tests/test_electrolyzer.py index 355696b03..ce29db1ec 100644 --- a/tests/test_electrolyzer.py +++ b/tests/test_electrolyzer.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile # from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_end_scenario_sizing.py b/tests/test_end_scenario_sizing.py index 6468f08cb..d34582bd6 100644 --- a/tests/test_end_scenario_sizing.py +++ b/tests/test_end_scenario_sizing.py @@ -5,16 +5,16 @@ from rtctools.util import run_optimization_problem -import rtctools_heat_network._darcy_weisbach as darcy_weisbach -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.workflows import ( +import mesido._darcy_weisbach as darcy_weisbach +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.workflows import ( EndScenarioSizingDiscountedHIGHS, EndScenarioSizingHIGHS, EndScenarioSizingStagedHIGHS, run_end_scenario_sizing, ) -from rtctools_heat_network.workflows.grow_workflow import EndScenarioSizingHeadLossStaged +from mesido.workflows.grow_workflow import EndScenarioSizingHeadLossStaged from utils_tests import demand_matching_test diff --git a/tests/test_end_scenario_sizing_annualized.py b/tests/test_end_scenario_sizing_annualized.py index 274f7646e..155b31fa8 100644 --- a/tests/test_end_scenario_sizing_annualized.py +++ b/tests/test_end_scenario_sizing_annualized.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestEndScenarioSizingAnnualized(TestCase): @@ -35,7 +35,7 @@ def test_end_scenario_sizing_annualized(self): from models.test_case_small_network_optional_assets_annualized.src import ( run_annualized, ) - from rtctools_heat_network.financial_mixin import calculate_annuity_factor + from mesido.financial_mixin import calculate_annuity_factor base_folder = Path(run_annualized.__file__).resolve().parent.parent diff --git a/tests/test_esdl_parsing.py b/tests/test_esdl_parsing.py index d4c4b8dd0..1a8334581 100644 --- a/tests/test_esdl_parsing.py +++ b/tests/test_esdl_parsing.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser, ESDLStringParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser, ESDLStringParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestESDLParsing(unittest.TestCase): diff --git a/tests/test_esdl_pycml.py b/tests/test_esdl_pycml.py index 909ebb512..8afe5ee85 100644 --- a/tests/test_esdl_pycml.py +++ b/tests/test_esdl_pycml.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestESDL(TestCase): diff --git a/tests/test_gas_multi_demand_source_node.py b/tests/test_gas_multi_demand_source_node.py index bbba051fd..bf4cf98e5 100644 --- a/tests/test_gas_multi_demand_source_node.py +++ b/tests/test_gas_multi_demand_source_node.py @@ -6,8 +6,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestMILPGasMultiDemandSourceNode(TestCase): diff --git a/tests/test_gas_pipe_topology_optimization.py b/tests/test_gas_pipe_topology_optimization.py index 3ba9b14a5..cf1495924 100644 --- a/tests/test_gas_pipe_topology_optimization.py +++ b/tests/test_gas_pipe_topology_optimization.py @@ -5,9 +5,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption class TestGasNetwork(TestCase): diff --git a/tests/test_gas_source_sink.py b/tests/test_gas_source_sink.py index 314ba8465..c85acf132 100644 --- a/tests/test_gas_source_sink.py +++ b/tests/test_gas_source_sink.py @@ -6,9 +6,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption class TestMILPGasSourceSink(TestCase): diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 25410ce69..4bbe526ba 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -5,12 +5,12 @@ from rtctools.util import run_optimization_problem -import rtctools_heat_network._darcy_weisbach as darcy_weisbach -from rtctools_heat_network.constants import GRAVITATIONAL_CONSTANT -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.network_common import NetworkSettings +import mesido._darcy_weisbach as darcy_weisbach +from mesido.constants import GRAVITATIONAL_CONSTANT +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.network_common import NetworkSettings from utils_tests import demand_matching_test diff --git a/tests/test_head_loss_class.py b/tests/test_head_loss_class.py index 3c890a3d6..7d6d1fd27 100644 --- a/tests/test_head_loss_class.py +++ b/tests/test_head_loss_class.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.network_common import NetworkSettings +from mesido.head_loss_class import HeadLossOption +from mesido.network_common import NetworkSettings class TestHeadLossCalculation(TestCase): diff --git a/tests/test_heat.py b/tests/test_heat.py index 899ec0011..2371b1ebb 100644 --- a/tests/test_heat.py +++ b/tests/test_heat.py @@ -5,9 +5,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_heat_loss_u_values.py b/tests/test_heat_loss_u_values.py index 04b1fa4dc..46ce86526 100644 --- a/tests/test_heat_loss_u_values.py +++ b/tests/test_heat_loss_u_values.py @@ -2,7 +2,7 @@ import numpy as np -from rtctools_heat_network._heat_loss_u_values_pipe import heat_loss_u_values_pipe +from mesido._heat_loss_u_values_pipe import heat_loss_u_values_pipe class TestHeatLossUValues(TestCase): diff --git a/tests/test_hydraulic_power.py b/tests/test_hydraulic_power.py index 57ef5b1b3..990253e09 100644 --- a/tests/test_hydraulic_power.py +++ b/tests/test_hydraulic_power.py @@ -7,9 +7,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption class TestHydraulicPower(TestCase): diff --git a/tests/test_insulation.py b/tests/test_insulation.py index 9e0dfcf8b..9d1caac84 100644 --- a/tests/test_insulation.py +++ b/tests/test_insulation.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestInsulation(TestCase): diff --git a/tests/test_max_size_and_optional_assets.py b/tests/test_max_size_and_optional_assets.py index f6eb6730b..fb835debd 100644 --- a/tests/test_max_size_and_optional_assets.py +++ b/tests/test_max_size_and_optional_assets.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_multicommodity.py b/tests/test_multicommodity.py index b733f7579..f42eefb93 100644 --- a/tests/test_multicommodity.py +++ b/tests/test_multicommodity.py @@ -6,8 +6,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_multiple_carriers.py b/tests/test_multiple_carriers.py index f049d9a5f..406fc71bf 100644 --- a/tests/test_multiple_carriers.py +++ b/tests/test_multiple_carriers.py @@ -3,8 +3,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index 5eb254b48..dad898f68 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_network_simulator.py b/tests/test_network_simulator.py index 0bc21490b..7abf80bc5 100644 --- a/tests/test_network_simulator.py +++ b/tests/test_network_simulator.py @@ -5,9 +5,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.workflows import NetworkSimulatorHIGHSTestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.workflows import NetworkSimulatorHIGHSTestCase from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_pipe_diameter_sizing.py b/tests/test_pipe_diameter_sizing.py index 5071f726f..8c4b14d6c 100644 --- a/tests/test_pipe_diameter_sizing.py +++ b/tests/test_pipe_diameter_sizing.py @@ -6,9 +6,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network._darcy_weisbach import friction_factor -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido._darcy_weisbach import friction_factor +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_producer_profiles.py b/tests/test_producer_profiles.py index 453305ed5..1b0574cd9 100644 --- a/tests/test_producer_profiles.py +++ b/tests/test_producer_profiles.py @@ -3,8 +3,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index d8ad6d7ba..675f5110e 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -8,9 +8,9 @@ import pandas as pd -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import InfluxDBProfileReader, ProfileReaderFromFile -from rtctools_heat_network.workflows import EndScenarioSizingStagedHIGHS +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import InfluxDBProfileReader, ProfileReaderFromFile +from mesido.workflows import EndScenarioSizingStagedHIGHS class MockInfluxDBProfileReader(InfluxDBProfileReader): diff --git a/tests/test_pycml.py b/tests/test_pycml.py index 5264d2123..b05013865 100644 --- a/tests/test_pycml.py +++ b/tests/test_pycml.py @@ -2,7 +2,7 @@ import numpy as np -from rtctools_heat_network.pycml import Model, Variable +from mesido.pycml import Model, Variable class TestPyCML(TestCase): diff --git a/tests/test_setpoint_constraints.py b/tests/test_setpoint_constraints.py index a5fbb7f9d..eca280e44 100644 --- a/tests/test_setpoint_constraints.py +++ b/tests/test_setpoint_constraints.py @@ -7,8 +7,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestSetpointConstraints(TestCase): diff --git a/tests/test_temperature_ates_hp.py b/tests/test_temperature_ates_hp.py index cfb3fa899..bc379e7d1 100644 --- a/tests/test_temperature_ates_hp.py +++ b/tests/test_temperature_ates_hp.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_topo_constraints.py b/tests/test_topo_constraints.py index 74a2886f5..f0636694a 100644 --- a/tests/test_topo_constraints.py +++ b/tests/test_topo_constraints.py @@ -8,11 +8,11 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network._heat_loss_u_values_pipe import pipe_heat_loss -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.pipe_class import PipeClass -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido._heat_loss_u_values_pipe import pipe_heat_loss +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.pipe_class import PipeClass +from mesido.techno_economic_mixin import TechnoEconomicMixin MIP_TOLERANCE = 1e-8 diff --git a/tests/test_varying_temperature.py b/tests/test_varying_temperature.py index ef74c15e8..43be913ec 100644 --- a/tests/test_varying_temperature.py +++ b/tests/test_varying_temperature.py @@ -5,9 +5,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network._heat_loss_u_values_pipe import pipe_heat_loss -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido._heat_loss_u_values_pipe import pipe_heat_loss +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_warmingup_unit_cases.py b/tests/test_warmingup_unit_cases.py index acffdbc06..9573a605c 100644 --- a/tests/test_warmingup_unit_cases.py +++ b/tests/test_warmingup_unit_cases.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test From 762a904a66591c96c43a890559bd2017f4aaa5e6 Mon Sep 17 00:00:00 2001 From: Rojer Date: Sun, 24 Mar 2024 17:52:13 +0100 Subject: [PATCH 003/275] full renaming --- MANIFEST.in | 6 +- examples/municipality/src/run_municipality.py | 4 +- examples/pipe_diameter_sizing/src/example.py | 10 +-- .../__init__.py | 0 .../_darcy_weisbach.py | 10 +-- .../_heat_loss_u_values_pipe.py | 4 +- .../_version.py | 0 .../asset_sizing_mixin.py | 30 ++++----- .../base_component_type_mixin.py | 0 .../component_type_mixin.py | 0 .../constants.py | 0 .../control_variables.py | 0 .../demand_insulation_class.py | 0 .../electricity_physics_mixin.py | 2 +- .../esdl/__init__.py | 0 .../esdl/_edr_pipes.json | 0 .../esdl/_exceptions.py | 0 .../esdl/_update_edr_pipes_json.py | 2 +- .../esdl/asset_to_component_base.py | 2 +- .../esdl/common.py | 0 .../esdl/edr_pipe_class.py | 4 +- .../esdl/esdl_additional_vars_mixin.py | 2 +- .../esdl/esdl_heat_model.py | 8 +-- .../esdl/esdl_mixin.py | 18 +++--- .../esdl/esdl_model_base.py | 4 +- .../esdl/esdl_parser.py | 0 .../esdl/esdl_qth_model.py | 6 +- .../esdl/profile_parser.py | 2 +- .../financial_mixin.py | 7 ++- .../gas_physics_mixin.py | 6 +- .../head_loss_class.py | 14 ++--- .../heat_network_common.py | 0 .../heat_physics_mixin.py | 32 +++++----- .../influxdb/__init__.py | 0 .../influxdb/profile.py | 0 .../WarmingUp/HeatNetwork/Heat/Buffer.mo | 0 .../WarmingUp/HeatNetwork/Heat/CheckValve.mo | 0 .../HeatNetwork/Heat/ControlValve.mo | 0 .../WarmingUp/HeatNetwork/Heat/Demand.mo | 0 .../HeatNetwork/Heat/GeothermalSource.mo | 0 .../WarmingUp/HeatNetwork/Heat/HeatPort.mo | 0 .../WarmingUp/HeatNetwork/Heat/HeatTwoPort.mo | 0 .../WarmingUp/HeatNetwork/Heat/Node.mo | 0 .../WarmingUp/HeatNetwork/Heat/Pipe.mo | 0 .../WarmingUp/HeatNetwork/Heat/Pump.mo | 0 .../WarmingUp/HeatNetwork/Heat/Source.mo | 0 .../HeatNetwork/Heat/_NonStorageComponent.mo | 0 .../WarmingUp/HeatNetwork/Heat/package.mo | 0 .../WarmingUp/HeatNetwork/QTH/Buffer.mo | 0 .../WarmingUp/HeatNetwork/QTH/CheckValve.mo | 0 .../WarmingUp/HeatNetwork/QTH/ControlValve.mo | 0 .../WarmingUp/HeatNetwork/QTH/Demand.mo | 0 .../HeatNetwork/QTH/GeothermalSource.mo | 0 .../WarmingUp/HeatNetwork/QTH/Node.mo | 0 .../WarmingUp/HeatNetwork/QTH/Pipe.mo | 0 .../WarmingUp/HeatNetwork/QTH/Pump.mo | 0 .../WarmingUp/HeatNetwork/QTH/QTHPort.mo | 0 .../WarmingUp/HeatNetwork/QTH/QTHTwoPort.mo | 0 .../WarmingUp/HeatNetwork/QTH/Source.mo | 0 .../QTH/_FluidPropertiesComponent.mo | 0 .../HeatNetwork/QTH/_NonStorageComponent.mo | 0 .../WarmingUp/HeatNetwork/QTH/package.mo | 0 .../modelica/WarmingUp/HeatNetwork/package.mo | 0 .../modelica/WarmingUp/package.mo | 0 .../network_common.py | 0 .../physics_mixin.py | 2 +- .../pipe_class.py | 4 +- .../pycml/__init__.py | 0 .../pycml/component_library/__init__.py | 0 .../pycml/component_library/milp/__init__.py | 0 .../milp/_internal/__init__.py | 0 .../milp/_internal/electricity_component.py | 2 +- .../milp/_internal/gas_component.py | 2 +- .../milp/_internal/heat_component.py | 2 +- .../milp/electricity/__init__.py | 0 .../milp/electricity/electricity_base.py | 2 +- .../milp/electricity/electricity_cable.py | 4 +- .../milp/electricity/electricity_demand.py | 2 +- .../milp/electricity/electricity_node.py | 2 +- .../milp/electricity/electricity_source.py | 2 +- .../milp/electricity/heat_pump_elec.py | 4 +- .../milp/electricity/windpark.py | 2 +- .../component_library/milp/gas/__init__.py | 0 .../component_library/milp/gas/gas_base.py | 2 +- .../component_library/milp/gas/gas_demand.py | 2 +- .../component_library/milp/gas/gas_node.py | 2 +- .../component_library/milp/gas/gas_pipe.py | 4 +- .../component_library/milp/gas/gas_source.py | 2 +- .../milp/gas/gas_substation.py | 0 .../milp/gas/gas_tank_storage.py | 4 +- .../component_library/milp/heat/__init__.py | 0 .../milp/heat/_non_storage_component.py | 4 +- .../pycml/component_library/milp/heat/ates.py | 4 +- .../milp/heat/check_valve.py | 2 +- .../milp/heat/control_valve.py | 2 +- .../milp/heat/geothermal_source.py | 0 .../milp/heat/heat_buffer.py | 6 +- .../milp/heat/heat_demand.py | 2 +- .../milp/heat/heat_exchanger.py | 6 +- .../milp/heat/heat_four_port.py | 4 +- .../component_library/milp/heat/heat_pipe.py | 6 +- .../component_library/milp/heat/heat_port.py | 4 +- .../component_library/milp/heat/heat_pump.py | 6 +- .../milp/heat/heat_source.py | 2 +- .../milp/heat/heat_two_port.py | 2 +- .../pycml/component_library/milp/heat/node.py | 4 +- .../pycml/component_library/milp/heat/pump.py | 2 +- .../milp/multicommodity/__init__.py | 0 .../milp/multicommodity/electrolyzer.py | 10 +-- .../pycml/component_library/qth/__init__.py | 0 .../qth/_fluid_properties_component.py | 0 .../qth/_internal/__init__.py | 0 .../qth/_internal/qth_component.py | 5 ++ .../qth/_non_storage_component.py | 2 +- .../pycml/component_library/qth/buffer.py | 6 +- .../component_library/qth/check_valve.py | 2 +- .../component_library/qth/control_valve.py | 2 +- .../pycml/component_library/qth/demand.py | 2 +- .../qth/geothermal_source.py | 0 .../pycml/component_library/qth/node.py | 2 +- .../pycml/component_library/qth/pipe.py | 4 +- .../pycml/component_library/qth/pump.py | 2 +- .../pycml/component_library/qth/qth_port.py | 2 +- .../component_library/qth/qth_two_port.py | 0 .../pycml/component_library/qth/source.py | 2 +- .../pycml/model_base.py | 0 .../pycml/pycml_mixin.py | 0 .../qth_not_maintained/__init__.py | 0 .../bounds_to_pipe_flow_directions_mixin.py | 4 +- .../qth_not_maintained/head_loss_mixin.py | 14 ++--- .../qth_not_maintained/qth_loop_mixin.py | 2 +- .../qth_not_maintained/qth_mixin.py | 8 +-- .../qth_not_maintained/util.py | 0 .../techno_economic_mixin.py | 0 .../topology.py | 2 +- .../workflows/__init__.py | 0 .../workflows/goals/__init__.py | 0 .../workflows/goals/minimize_tco_goal.py | 0 .../workflows/grow_workflow.py | 6 +- .../workflows/io/__init__.py | 0 .../io/read_files_and_create_influxdb.py | 0 .../workflows/io/write_output.py | 2 +- .../workflows/simulator_workflow.py | 6 +- .../workflows/utils/__init__.py | 0 .../workflows/utils/adapt_profiles.py | 0 .../workflows/utils/helpers.py | 0 .../qth/_internal/qth_component.py | 5 -- tests/models/absolute_heat/src/example.py | 8 +-- .../src/run_ates_temperature.py | 19 +++--- tests/models/basic_buffer/src/compare.py | 8 +-- tests/models/basic_buffer/src/model_heat.py | 4 +- tests/models/basic_buffer/src/model_qth.py | 4 +- .../src/heat_comparison.py | 8 +-- .../basic_source_and_demand/src/model_heat.py | 4 +- .../basic_source_and_demand/src/model_qth.py | 4 +- .../src/qth_comparison.py | 10 +-- .../src/qth_minimize_temperatures.py | 8 +-- .../double_pipe_heat/src/double_pipe_heat.py | 6 +- tests/models/double_pipe_heat/src/model.py | 4 +- .../src/cq2_inequality_vs_equality.py | 4 +- .../double_pipe_qth/src/double_pipe_qth.py | 6 +- .../src/single_pipe_no_headloss.py | 2 +- .../electricity_cable_topology/src/example.py | 10 +-- tests/models/emerge/src/example.py | 12 ++-- tests/models/gas_pipe_topology/src/example.py | 8 +-- .../heat_exchange/src/run_heat_exchanger.py | 10 +-- tests/models/heatpump/src/run_heat_pump.py | 8 +-- tests/models/insulation/src/run_insulation.py | 10 +-- .../src/run_multiple_carriers.py | 8 +-- .../src/run_multiple_gas_carriers.py | 8 +-- .../pipe_test/src/run_hydraulic_power.py | 13 ++-- tests/models/simple_buffer/src/model.py | 4 +- .../models/simple_buffer/src/simple_buffer.py | 6 +- .../source_pipe_sink/src/double_pipe_heat.py | 19 +++--- .../src/double_pipe_heat.py | 4 +- .../src/run_ates.py | 8 +-- .../src/run_annualized.py | 6 +- .../src/run_ates.py | 8 +-- .../src/run_ates.py | 8 +-- .../src/run_ates.py | 8 +-- tests/models/unit_cases/case_1a/src/run_1a.py | 10 +-- .../unit_cases/case_1a_t_var/src/run_1a.py | 10 +-- .../case_2a/src/equal_temperatures.py | 8 +-- tests/models/unit_cases/case_2a/src/run_2a.py | 10 +-- tests/models/unit_cases/case_3a/src/run_3a.py | 12 ++-- .../unit_cases/case_3a_setpoint/src/run_3a.py | 6 +- .../bus_networks/src/example.py | 8 +-- .../electrolyzer/src/example.py | 8 +-- .../heat_pump_elec/src/run_hp_elec.py | 8 +-- .../source_sink_cable/src/example.py | 10 +-- .../multi_demand_source_node/src/run_test.py | 8 +-- .../src/run_source_sink.py | 8 +-- .../source_sink/src/run_source_sink.py | 8 +-- tests/test_absolute_heat.py | 4 +- tests/test_asset_is_realized.py | 4 +- tests/test_ates.py | 4 +- tests/test_cable_topology_optimization.py | 4 +- tests/test_electric_bus.py | 4 +- tests/test_electric_source_sink.py | 4 +- tests/test_electrolyzer.py | 4 +- tests/test_end_scenario_sizing.py | 11 ++-- tests/test_end_scenario_sizing_annualized.py | 4 +- tests/test_esdl_parsing.py | 4 +- tests/test_esdl_pycml.py | 4 +- tests/test_gas_multi_demand_source_node.py | 4 +- tests/test_gas_pipe_topology_optimization.py | 12 ++-- tests/test_gas_source_sink.py | 12 ++-- tests/test_head_loss.py | 62 +++++++++---------- tests/test_head_loss_class.py | 4 +- tests/test_heat.py | 30 ++++----- tests/test_heat_loss_u_values.py | 2 +- tests/test_hydraulic_power.py | 8 +-- tests/test_insulation.py | 4 +- tests/test_max_size_and_optional_assets.py | 4 +- tests/test_multicommodity.py | 4 +- tests/test_multiple_carriers.py | 4 +- ...est_multiple_in_and_out_port_components.py | 4 +- tests/test_network_simulator.py | 6 +- tests/test_pipe_diameter_sizing.py | 8 +-- tests/test_producer_profiles.py | 4 +- tests/test_profile_parsing.py | 6 +- tests/test_pycml.py | 2 +- tests/test_setpoint_constraints.py | 4 +- tests/test_temperature_ates_hp.py | 4 +- tests/test_topo_constraints.py | 10 +-- tests/test_varying_temperature.py | 6 +- tests/test_warmingup_unit_cases.py | 4 +- 227 files changed, 496 insertions(+), 499 deletions(-) rename src/{rtctools_heat_network => mesido}/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/_darcy_weisbach.py (95%) rename src/{rtctools_heat_network => mesido}/_heat_loss_u_values_pipe.py (99%) rename src/{rtctools_heat_network => mesido}/_version.py (100%) rename src/{rtctools_heat_network => mesido}/asset_sizing_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/base_component_type_mixin.py (100%) rename src/{rtctools_heat_network => mesido}/component_type_mixin.py (100%) rename src/{rtctools_heat_network => mesido}/constants.py (100%) rename src/{rtctools_heat_network => mesido}/control_variables.py (100%) rename src/{rtctools_heat_network => mesido}/demand_insulation_class.py (100%) rename src/{rtctools_heat_network => mesido}/electricity_physics_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/esdl/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/esdl/_edr_pipes.json (100%) rename src/{rtctools_heat_network => mesido}/esdl/_exceptions.py (100%) rename src/{rtctools_heat_network => mesido}/esdl/_update_edr_pipes_json.py (97%) rename src/{rtctools_heat_network => mesido}/esdl/asset_to_component_base.py (99%) rename src/{rtctools_heat_network => mesido}/esdl/common.py (100%) rename src/{rtctools_heat_network => mesido}/esdl/edr_pipe_class.py (95%) rename src/{rtctools_heat_network => mesido}/esdl/esdl_additional_vars_mixin.py (98%) rename src/{rtctools_heat_network => mesido}/esdl/esdl_heat_model.py (99%) rename src/{rtctools_heat_network => mesido}/esdl/esdl_mixin.py (97%) rename src/{rtctools_heat_network => mesido}/esdl/esdl_model_base.py (99%) rename src/{rtctools_heat_network => mesido}/esdl/esdl_parser.py (100%) rename src/{rtctools_heat_network => mesido}/esdl/esdl_qth_model.py (98%) rename src/{rtctools_heat_network => mesido}/esdl/profile_parser.py (99%) rename src/{rtctools_heat_network => mesido}/financial_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/gas_physics_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/head_loss_class.py (99%) rename src/{rtctools_heat_network => mesido}/heat_network_common.py (100%) rename src/{rtctools_heat_network => mesido}/heat_physics_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/influxdb/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/influxdb/profile.py (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/Buffer.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/CheckValve.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/ControlValve.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/Demand.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/GeothermalSource.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/HeatPort.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/HeatTwoPort.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/Node.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/Pipe.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/Pump.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/Source.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/_NonStorageComponent.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/Heat/package.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/Buffer.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/CheckValve.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/ControlValve.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/Demand.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/GeothermalSource.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/Node.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/Pipe.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/Pump.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/QTHPort.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/QTHTwoPort.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/Source.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/_FluidPropertiesComponent.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/_NonStorageComponent.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/QTH/package.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/HeatNetwork/package.mo (100%) rename src/{rtctools_heat_network => mesido}/modelica/WarmingUp/package.mo (100%) rename src/{rtctools_heat_network => mesido}/network_common.py (100%) rename src/{rtctools_heat_network => mesido}/physics_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/pipe_class.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/_internal/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/_internal/electricity_component.py (55%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/_internal/gas_component.py (52%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/_internal/heat_component.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/electricity_base.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/electricity_cable.py (96%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/electricity_demand.py (95%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/electricity_node.py (96%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/electricity_source.py (95%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/heat_pump_elec.py (83%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/electricity/windpark.py (84%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_base.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_demand.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_node.py (95%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_pipe.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_source.py (93%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_substation.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/gas/gas_tank_storage.py (91%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/_non_storage_component.py (92%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/ates.py (97%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/check_valve.py (93%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/control_valve.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/geothermal_source.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_buffer.py (95%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_demand.py (97%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_exchanger.py (93%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_four_port.py (85%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_pipe.py (95%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_port.py (78%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_pump.py (93%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_source.py (98%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/heat_two_port.py (85%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/node.py (88%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/heat/pump.py (95%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/multicommodity/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/milp/multicommodity/electrolyzer.py (78%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/_fluid_properties_component.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/_internal/__init__.py (100%) create mode 100644 src/mesido/pycml/component_library/qth/_internal/qth_component.py rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/_non_storage_component.py (91%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/buffer.py (95%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/check_valve.py (91%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/control_valve.py (89%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/demand.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/geothermal_source.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/node.py (93%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/pipe.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/pump.py (91%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/qth_port.py (88%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/qth_two_port.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/component_library/qth/source.py (94%) rename src/{rtctools_heat_network => mesido}/pycml/model_base.py (100%) rename src/{rtctools_heat_network => mesido}/pycml/pycml_mixin.py (100%) rename src/{rtctools_heat_network => mesido}/qth_not_maintained/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py (94%) rename src/{rtctools_heat_network => mesido}/qth_not_maintained/head_loss_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/qth_not_maintained/qth_loop_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/qth_not_maintained/qth_mixin.py (99%) rename src/{rtctools_heat_network => mesido}/qth_not_maintained/util.py (100%) rename src/{rtctools_heat_network => mesido}/techno_economic_mixin.py (100%) rename src/{rtctools_heat_network => mesido}/topology.py (98%) rename src/{rtctools_heat_network => mesido}/workflows/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/goals/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/goals/minimize_tco_goal.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/grow_workflow.py (99%) rename src/{rtctools_heat_network => mesido}/workflows/io/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/io/read_files_and_create_influxdb.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/io/write_output.py (99%) rename src/{rtctools_heat_network => mesido}/workflows/simulator_workflow.py (99%) rename src/{rtctools_heat_network => mesido}/workflows/utils/__init__.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/utils/adapt_profiles.py (100%) rename src/{rtctools_heat_network => mesido}/workflows/utils/helpers.py (100%) delete mode 100644 src/rtctools_heat_network/pycml/component_library/qth/_internal/qth_component.py diff --git a/MANIFEST.in b/MANIFEST.in index 2cbe862c4..ce3306345 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ -recursive-include src/rtctools_heat_network/modelica/WarmingUp * +recursive-include src/mesido/modelica/WarmingUp * include versioneer.py -include src/rtctools_heat_network/_version.py -include src/rtctools_heat_network/esdl/_edr_pipes.json +include src/mesido/_version.py +include src/mesido/esdl/_edr_pipes.json diff --git a/examples/municipality/src/run_municipality.py b/examples/municipality/src/run_municipality.py index 7d41f39b9..09add0e7d 100644 --- a/examples/municipality/src/run_municipality.py +++ b/examples/municipality/src/run_municipality.py @@ -1,7 +1,7 @@ from pathlib import Path -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.workflows import EndScenarioSizingStagedHIGHS, run_end_scenario_sizing +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.workflows import EndScenarioSizingStagedHIGHS, run_end_scenario_sizing if __name__ == "__main__": diff --git a/examples/pipe_diameter_sizing/src/example.py b/examples/pipe_diameter_sizing/src/example.py index 7e7ca070d..797c020c7 100644 --- a/examples/pipe_diameter_sizing/src/example.py +++ b/examples/pipe_diameter_sizing/src/example.py @@ -15,11 +15,11 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.pipe_class import PipeClass -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.pipe_class import PipeClass +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/src/rtctools_heat_network/__init__.py b/src/mesido/__init__.py similarity index 100% rename from src/rtctools_heat_network/__init__.py rename to src/mesido/__init__.py diff --git a/src/rtctools_heat_network/_darcy_weisbach.py b/src/mesido/_darcy_weisbach.py similarity index 95% rename from src/rtctools_heat_network/_darcy_weisbach.py rename to src/mesido/_darcy_weisbach.py index 395c764e3..fb08078cb 100644 --- a/src/rtctools_heat_network/_darcy_weisbach.py +++ b/src/mesido/_darcy_weisbach.py @@ -6,8 +6,8 @@ import numpy as np -from .constants import GRAVITATIONAL_CONSTANT -from .network_common import NetworkSettings +from mesido.constants import GRAVITATIONAL_CONSTANT +from mesido.network_common import NetworkSettings def _kinematic_viscosity(temperature, network_type=NetworkSettings.NETWORK_TYPE_HEAT, pressure=0.0): @@ -127,7 +127,7 @@ def head_loss( pressure=pressure, ) - return length * f / (2 * GRAVITATIONAL_CONSTANT) * velocity**2 / diameter + return length * f / (2 * GRAVITATIONAL_CONSTANT) * velocity ** 2 / diameter def get_linear_pipe_dh_vs_q_fit( @@ -144,7 +144,7 @@ def get_linear_pipe_dh_vs_q_fit( This function returns a set of coefficients to approximate a head loss curve with linear functions in the form of: head loss = b + (a * Q) """ - area = math.pi * diameter**2 / 4 + area = math.pi * diameter ** 2 / 4 v_points = np.linspace(0.0, v_max, n_lines + 1) q_points = v_points * area @@ -184,7 +184,7 @@ def get_linear_pipe_power_hydraulic_vs_q_fit( """ power_hydraulic = b + (a * Q) """ - area = math.pi * diameter**2 / 4.0 + area = math.pi * diameter ** 2 / 4.0 v_points = np.linspace(0.0, v_max, n_lines + 1) q_points = v_points * area diff --git a/src/rtctools_heat_network/_heat_loss_u_values_pipe.py b/src/mesido/_heat_loss_u_values_pipe.py similarity index 99% rename from src/rtctools_heat_network/_heat_loss_u_values_pipe.py rename to src/mesido/_heat_loss_u_values_pipe.py index d3fb7889b..b6456835a 100644 --- a/src/rtctools_heat_network/_heat_loss_u_values_pipe.py +++ b/src/mesido/_heat_loss_u_values_pipe.py @@ -86,8 +86,8 @@ def heat_loss_u_values_pipe( ) if neighbour: - u_1 = (r_subsoil + r_ins) / ((r_subsoil + r_ins) ** 2 - r_m**2) - u_2 = r_m / ((r_subsoil + r_ins) ** 2 - r_m**2) + u_1 = (r_subsoil + r_ins) / ((r_subsoil + r_ins) ** 2 - r_m ** 2) + u_2 = r_m / ((r_subsoil + r_ins) ** 2 - r_m ** 2) else: u_1 = 1 / (r_subsoil + r_ins) u_2 = 0 diff --git a/src/rtctools_heat_network/_version.py b/src/mesido/_version.py similarity index 100% rename from src/rtctools_heat_network/_version.py rename to src/mesido/_version.py diff --git a/src/rtctools_heat_network/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py similarity index 99% rename from src/rtctools_heat_network/asset_sizing_mixin.py rename to src/mesido/asset_sizing_mixin.py index 5c716dcc4..ac98a23b2 100644 --- a/src/rtctools_heat_network/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -10,7 +10,7 @@ ) from rtctools.optimization.timeseries import Timeseries -from rtctools_heat_network._heat_loss_u_values_pipe import pipe_heat_loss +from mesido._heat_loss_u_values_pipe import pipe_heat_loss from .base_component_type_mixin import BaseComponentTypeMixin @@ -222,12 +222,12 @@ def pre(self): unique_cable_classes = self.get_unique_cable_classes() for cc in unique_cable_classes: cable_class_count = f"{cc.name}__global_cable_class_count" - self.__electricity_cable_topo_global_cable_class_count_var[cable_class_count] = ( - ca.MX.sym(cable_class_count) - ) - self.__electricity_cable_topo_global_cable_class_count_map[f"{cc.name}"] = ( + self.__electricity_cable_topo_global_cable_class_count_var[ cable_class_count - ) + ] = ca.MX.sym(cable_class_count) + self.__electricity_cable_topo_global_cable_class_count_map[ + f"{cc.name}" + ] = cable_class_count self.__electricity_cable_topo_global_cable_class_count_var_bounds[cable_class_count] = ( 0.0, len(self.energy_system_components.get("electricity_cable", [])), @@ -340,9 +340,9 @@ def pre(self): self._electricity_cable_topo_cable_class_map[cable][ c ] = cable_class_var_name - self.__electricity_cable_topo_cable_class_var[cable_class_var_name] = ( - ca.MX.sym(cable_class_var_name) - ) + self.__electricity_cable_topo_cable_class_var[ + cable_class_var_name + ] = ca.MX.sym(cable_class_var_name) self.__electricity_cable_topo_cable_class_var_bounds[ cable_class_var_name ] = (0.0, 1.0) @@ -693,9 +693,9 @@ def pre(self): self.__pipe_topo_pipe_class_discharge_ordering_map[pipe][ c ] = pipe_class_ordering_name - self.__pipe_topo_pipe_class_discharge_ordering_var[pipe_class_ordering_name] = ( - ca.MX.sym(pipe_class_ordering_name) - ) + self.__pipe_topo_pipe_class_discharge_ordering_var[ + pipe_class_ordering_name + ] = ca.MX.sym(pipe_class_ordering_name) self.__pipe_topo_pipe_class_discharge_ordering_var_bounds[ pipe_class_ordering_name ] = (0.0, 1.0) @@ -703,9 +703,9 @@ def pre(self): self.__pipe_topo_pipe_class_cost_ordering_map[pipe][ c ] = pipe_class_cost_ordering_name - self.__pipe_topo_pipe_class_cost_ordering_var[pipe_class_cost_ordering_name] = ( - ca.MX.sym(pipe_class_cost_ordering_name) - ) + self.__pipe_topo_pipe_class_cost_ordering_var[ + pipe_class_cost_ordering_name + ] = ca.MX.sym(pipe_class_cost_ordering_name) self.__pipe_topo_pipe_class_cost_ordering_var_bounds[ pipe_class_cost_ordering_name ] = (0.0, 1.0) diff --git a/src/rtctools_heat_network/base_component_type_mixin.py b/src/mesido/base_component_type_mixin.py similarity index 100% rename from src/rtctools_heat_network/base_component_type_mixin.py rename to src/mesido/base_component_type_mixin.py diff --git a/src/rtctools_heat_network/component_type_mixin.py b/src/mesido/component_type_mixin.py similarity index 100% rename from src/rtctools_heat_network/component_type_mixin.py rename to src/mesido/component_type_mixin.py diff --git a/src/rtctools_heat_network/constants.py b/src/mesido/constants.py similarity index 100% rename from src/rtctools_heat_network/constants.py rename to src/mesido/constants.py diff --git a/src/rtctools_heat_network/control_variables.py b/src/mesido/control_variables.py similarity index 100% rename from src/rtctools_heat_network/control_variables.py rename to src/mesido/control_variables.py diff --git a/src/rtctools_heat_network/demand_insulation_class.py b/src/mesido/demand_insulation_class.py similarity index 100% rename from src/rtctools_heat_network/demand_insulation_class.py rename to src/mesido/demand_insulation_class.py diff --git a/src/rtctools_heat_network/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py similarity index 99% rename from src/rtctools_heat_network/electricity_physics_mixin.py rename to src/mesido/electricity_physics_mixin.py index bb32081c3..7b23fddd5 100644 --- a/src/rtctools_heat_network/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -256,7 +256,7 @@ def __electricity_cable_mixing_path_constraints(self, ensemble_member): cable_classes = self._electricity_cable_topo_cable_class_map[cable] max_res = max([cc.resistance for cc in cable_classes]) max_i_max = max([cc.maximum_current for cc in cable_classes]) - big_m = max_i_max**2 * max_res * length + big_m = max_i_max ** 2 * max_res * length constraint_nominal = max_i_max * v_nom * max_res * length for cc_data, cc_name in cable_classes.items(): if cc_name != "None": diff --git a/src/rtctools_heat_network/esdl/__init__.py b/src/mesido/esdl/__init__.py similarity index 100% rename from src/rtctools_heat_network/esdl/__init__.py rename to src/mesido/esdl/__init__.py diff --git a/src/rtctools_heat_network/esdl/_edr_pipes.json b/src/mesido/esdl/_edr_pipes.json similarity index 100% rename from src/rtctools_heat_network/esdl/_edr_pipes.json rename to src/mesido/esdl/_edr_pipes.json diff --git a/src/rtctools_heat_network/esdl/_exceptions.py b/src/mesido/esdl/_exceptions.py similarity index 100% rename from src/rtctools_heat_network/esdl/_exceptions.py rename to src/mesido/esdl/_exceptions.py diff --git a/src/rtctools_heat_network/esdl/_update_edr_pipes_json.py b/src/mesido/esdl/_update_edr_pipes_json.py similarity index 97% rename from src/rtctools_heat_network/esdl/_update_edr_pipes_json.py rename to src/mesido/esdl/_update_edr_pipes_json.py index eecdf382c..f6ce54530 100644 --- a/src/rtctools_heat_network/esdl/_update_edr_pipes_json.py +++ b/src/mesido/esdl/_update_edr_pipes_json.py @@ -4,7 +4,7 @@ import requests -from rtctools_heat_network._heat_loss_u_values_pipe import heat_loss_u_values_pipe +from mesido._heat_loss_u_values_pipe import heat_loss_u_values_pipe def main(): diff --git a/src/rtctools_heat_network/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py similarity index 99% rename from src/rtctools_heat_network/esdl/asset_to_component_base.py rename to src/mesido/esdl/asset_to_component_base.py index 9b0377177..7e43833e2 100644 --- a/src/rtctools_heat_network/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -8,7 +8,7 @@ import esdl from esdl import TimeUnitEnum, UnitEnum -from rtctools_heat_network.pycml import Model as _Model +from mesido.pycml import Model as _Model from ._exceptions import _RetryLaterException from .common import Asset diff --git a/src/rtctools_heat_network/esdl/common.py b/src/mesido/esdl/common.py similarity index 100% rename from src/rtctools_heat_network/esdl/common.py rename to src/mesido/esdl/common.py diff --git a/src/rtctools_heat_network/esdl/edr_pipe_class.py b/src/mesido/esdl/edr_pipe_class.py similarity index 95% rename from src/rtctools_heat_network/esdl/edr_pipe_class.py rename to src/mesido/esdl/edr_pipe_class.py index 1893207d4..54aa7620f 100644 --- a/src/rtctools_heat_network/esdl/edr_pipe_class.py +++ b/src/mesido/esdl/edr_pipe_class.py @@ -1,7 +1,7 @@ from dataclasses import dataclass -from rtctools_heat_network.esdl.asset_to_component_base import _AssetToComponentBase -from rtctools_heat_network.pipe_class import GasPipeClass, PipeClass +from mesido.esdl.asset_to_component_base import _AssetToComponentBase +from mesido.pipe_class import GasPipeClass, PipeClass @dataclass(frozen=True) diff --git a/src/rtctools_heat_network/esdl/esdl_additional_vars_mixin.py b/src/mesido/esdl/esdl_additional_vars_mixin.py similarity index 98% rename from src/rtctools_heat_network/esdl/esdl_additional_vars_mixin.py rename to src/mesido/esdl/esdl_additional_vars_mixin.py index 11d4fbdae..a3d700de4 100644 --- a/src/rtctools_heat_network/esdl/esdl_additional_vars_mixin.py +++ b/src/mesido/esdl/esdl_additional_vars_mixin.py @@ -8,7 +8,7 @@ CollocatedIntegratedOptimizationProblem, ) -from rtctools_heat_network.network_common import NetworkSettings +from mesido.network_common import NetworkSettings logger = logging.getLogger("rtctools_heat_network") diff --git a/src/rtctools_heat_network/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py similarity index 99% rename from src/rtctools_heat_network/esdl/esdl_heat_model.py rename to src/mesido/esdl/esdl_heat_model.py index c4fc45777..267bd54f2 100644 --- a/src/rtctools_heat_network/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -6,7 +6,7 @@ import esdl -from rtctools_heat_network.pycml.component_library.milp import ( +from mesido.pycml.component_library.milp import ( ATES, CheckValve, ControlValve, @@ -433,9 +433,9 @@ def convert_heat_pipe( ) = self._pipe_get_diameter_and_insulation(asset) if isinstance(asset.in_ports[0].carrier, esdl.esdl.GasCommodity): - q_nominal = math.pi * diameter**2 / 4.0 * self.v_max_gas / 2.0 + q_nominal = math.pi * diameter ** 2 / 4.0 * self.v_max_gas / 2.0 self._set_q_nominal(asset, q_nominal) - q_max = math.pi * diameter**2 / 4.0 * self.v_max_gas + q_max = math.pi * diameter ** 2 / 4.0 * self.v_max_gas self._set_q_max(asset, q_max) pressure = asset.in_ports[0].carrier.pressure * 1.0e5 density = self.get_density(asset.name, asset.in_ports[0].carrier) @@ -464,7 +464,7 @@ def convert_heat_pipe( temperature = temperature_modifiers["temperature"] # Compute the maximum milp flow based on an assumed maximum velocity - area = math.pi * diameter**2 / 4.0 + area = math.pi * diameter ** 2 / 4.0 q_max = area * self.v_max q_nominal = area * self.v_nominal diff --git a/src/rtctools_heat_network/esdl/esdl_mixin.py b/src/mesido/esdl/esdl_mixin.py similarity index 97% rename from src/rtctools_heat_network/esdl/esdl_mixin.py rename to src/mesido/esdl/esdl_mixin.py index 4b9e3796a..82b1ea659 100644 --- a/src/rtctools_heat_network/esdl/esdl_mixin.py +++ b/src/mesido/esdl/esdl_mixin.py @@ -17,17 +17,17 @@ ) from rtctools.optimization.io_mixin import IOMixin -from rtctools_heat_network.component_type_mixin import ( +from mesido.component_type_mixin import ( ModelicaComponentTypeMixin, ) -from rtctools_heat_network.esdl.asset_to_component_base import _AssetToComponentBase -from rtctools_heat_network.esdl.edr_pipe_class import EDRGasPipeClass, EDRPipeClass -from rtctools_heat_network.esdl.esdl_parser import ESDLStringParser -from rtctools_heat_network.esdl.profile_parser import BaseProfileReader, InfluxDBProfileReader -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.pipe_class import GasPipeClass, PipeClass -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin +from mesido.esdl.asset_to_component_base import _AssetToComponentBase +from mesido.esdl.edr_pipe_class import EDRGasPipeClass, EDRPipeClass +from mesido.esdl.esdl_parser import ESDLStringParser +from mesido.esdl.profile_parser import BaseProfileReader, InfluxDBProfileReader +from mesido.physics_mixin import PhysicsMixin +from mesido.pipe_class import GasPipeClass, PipeClass +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin from .common import Asset from .esdl_heat_model import ESDLHeatModel diff --git a/src/rtctools_heat_network/esdl/esdl_model_base.py b/src/mesido/esdl/esdl_model_base.py similarity index 99% rename from src/rtctools_heat_network/esdl/esdl_model_base.py rename to src/mesido/esdl/esdl_model_base.py index 1bd2abacd..37eb9b9c5 100644 --- a/src/rtctools_heat_network/esdl/esdl_model_base.py +++ b/src/mesido/esdl/esdl_model_base.py @@ -4,8 +4,8 @@ import esdl from esdl import InPort -from rtctools_heat_network.esdl.asset_to_component_base import _AssetToComponentBase -from rtctools_heat_network.pycml import Model as _Model +from mesido.esdl.asset_to_component_base import _AssetToComponentBase +from mesido.pycml import Model as _Model from ._exceptions import _RetryLaterException, _SkipAssetException diff --git a/src/rtctools_heat_network/esdl/esdl_parser.py b/src/mesido/esdl/esdl_parser.py similarity index 100% rename from src/rtctools_heat_network/esdl/esdl_parser.py rename to src/mesido/esdl/esdl_parser.py diff --git a/src/rtctools_heat_network/esdl/esdl_qth_model.py b/src/mesido/esdl/esdl_qth_model.py similarity index 98% rename from src/rtctools_heat_network/esdl/esdl_qth_model.py rename to src/mesido/esdl/esdl_qth_model.py index 651d05d80..6cc8f2b5b 100644 --- a/src/rtctools_heat_network/esdl/esdl_qth_model.py +++ b/src/mesido/esdl/esdl_qth_model.py @@ -4,8 +4,8 @@ import esdl -from rtctools_heat_network.pycml import SymbolicParameter -from rtctools_heat_network.pycml.component_library.qth import ( +from mesido.pycml import SymbolicParameter +from mesido.pycml.component_library.qth import ( Buffer, CheckValve, ControlValve, @@ -214,7 +214,7 @@ def convert_pipe(self, asset: Asset) -> Tuple[Type[Pipe], MODIFIERS]: conductivies_insulation, ) = self._pipe_get_diameter_and_insulation(asset) - area = math.pi * diameter**2 / 4.0 + area = math.pi * diameter ** 2 / 4.0 q_nominal = self.v_nominal * area q_max = self.v_max * area diff --git a/src/rtctools_heat_network/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py similarity index 99% rename from src/rtctools_heat_network/esdl/profile_parser.py rename to src/mesido/esdl/profile_parser.py index 712fa6906..644662bf8 100644 --- a/src/rtctools_heat_network/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -16,7 +16,7 @@ import rtctools.data.pi from rtctools.data.storage import DataStore -from rtctools_heat_network.esdl.common import Asset +from mesido.esdl.common import Asset logger = logging.getLogger() diff --git a/src/rtctools_heat_network/financial_mixin.py b/src/mesido/financial_mixin.py similarity index 99% rename from src/rtctools_heat_network/financial_mixin.py rename to src/mesido/financial_mixin.py index e016f0cbb..0d91e7af6 100644 --- a/src/rtctools_heat_network/financial_mixin.py +++ b/src/mesido/financial_mixin.py @@ -374,9 +374,10 @@ def pre(self): var_name = f"{asset}__cumulative_investments_made_in_eur" self.__cumulative_investments_made_in_eur_map[asset] = var_name self.__cumulative_investments_made_in_eur_var[var_name] = ca.MX.sym(var_name) - self.__cumulative_investments_made_in_eur_nominals[var_name] = ( - self.variable_nominal(f"{asset}__investment_cost") - + self.variable_nominal(f"{asset}__installation_cost") + self.__cumulative_investments_made_in_eur_nominals[ + var_name + ] = self.variable_nominal(f"{asset}__investment_cost") + self.variable_nominal( + f"{asset}__installation_cost" ) self.__cumulative_investments_made_in_eur_bounds[var_name] = (0.0, np.inf) diff --git a/src/rtctools_heat_network/gas_physics_mixin.py b/src/mesido/gas_physics_mixin.py similarity index 99% rename from src/rtctools_heat_network/gas_physics_mixin.py rename to src/mesido/gas_physics_mixin.py index 008f87ec8..c0011e36e 100644 --- a/src/rtctools_heat_network/gas_physics_mixin.py +++ b/src/mesido/gas_physics_mixin.py @@ -204,9 +204,9 @@ def _get_min_bound(bound): self._gas_pipe_linear_line_segment_map[pipe_name][ ii_line ] = pipe_linear_line_segment_var_name - self.__gas_pipe_linear_line_segment_var[pipe_linear_line_segment_var_name] = ( - initialized_vars[9][pipe_linear_line_segment_var_name] - ) + self.__gas_pipe_linear_line_segment_var[ + pipe_linear_line_segment_var_name + ] = initialized_vars[9][pipe_linear_line_segment_var_name] self.__gas_pipe_linear_line_segment_var_bounds[ pipe_linear_line_segment_var_name ] = initialized_vars[10][pipe_linear_line_segment_var_name] diff --git a/src/rtctools_heat_network/head_loss_class.py b/src/mesido/head_loss_class.py similarity index 99% rename from src/rtctools_heat_network/head_loss_class.py rename to src/mesido/head_loss_class.py index e8e502692..de176584c 100644 --- a/src/rtctools_heat_network/head_loss_class.py +++ b/src/mesido/head_loss_class.py @@ -10,7 +10,7 @@ from rtctools.optimization.goal_programming_mixin_base import Goal from rtctools.optimization.optimization_problem import BT -import rtctools_heat_network._darcy_weisbach as darcy_weisbach +import mesido._darcy_weisbach as darcy_weisbach from .constants import GRAVITATIONAL_CONSTANT from .network_common import NetworkSettings @@ -109,7 +109,7 @@ class HeadLossOption(IntEnum): class _MinimizeHeadLosses(Goal): order = 1 - priority = 2**31 - 2 + priority = 2 ** 31 - 2 def __init__(self, optimization_problem, input_network_settings, *args, **kwargs): super().__init__(*args, **kwargs) @@ -159,7 +159,7 @@ def function(self, optimization_problem, ensemble_member): class _MinimizeHydraulicPower(Goal): order = 1 - priority = 2**31 - 1 + priority = 2 ** 31 - 1 def __init__( self, @@ -613,13 +613,13 @@ def _hn_pipe_head_loss( c_v = length * ff / (2 * GRAVITATIONAL_CONSTANT) / diameter linearization_velocity = maximum_velocity - linearization_head_loss = c_v * linearization_velocity**2 + linearization_head_loss = c_v * linearization_velocity ** 2 linearization_discharge = linearization_velocity * area expr = linearization_head_loss * discharge / linearization_discharge if symbolic: - constraint_nominal = c_v * maximum_velocity**2 + constraint_nominal = c_v * maximum_velocity ** 2 # Interior point solvers, like IPOPT, do not like linearly dependent # tight inequality constraints. For this reason, we split the # constraints depending whether the Big-M formulation is used or not. @@ -660,7 +660,7 @@ def _hn_pipe_head_loss( c_v = length * ff / (2 * GRAVITATIONAL_CONSTANT) / diameter v = discharge / area - expr = c_v * v**2 + expr = c_v * v ** 2 if symbolic: q_nominal = self.variable_nominal(f"{pipe}.Q") @@ -986,7 +986,7 @@ def _hydraulic_power( # Compute c_k constant (where |hydraulic power| ~ c_k * v^3) c_k = rho * ff * length * area / 2.0 / diameter # Compute linearized value - max_hydraulic_power = c_k * maximum_velocity**3 + max_hydraulic_power = c_k * maximum_velocity ** 3 maximum_discharge = maximum_velocity * area hydraulic_power_linearized = max_hydraulic_power * discharge / maximum_discharge diff --git a/src/rtctools_heat_network/heat_network_common.py b/src/mesido/heat_network_common.py similarity index 100% rename from src/rtctools_heat_network/heat_network_common.py rename to src/mesido/heat_network_common.py diff --git a/src/rtctools_heat_network/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py similarity index 99% rename from src/rtctools_heat_network/heat_physics_mixin.py rename to src/mesido/heat_physics_mixin.py index 0825df5d1..91d72acad 100644 --- a/src/rtctools_heat_network/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -11,7 +11,7 @@ ) from rtctools.optimization.timeseries import Timeseries -from rtctools_heat_network._heat_loss_u_values_pipe import pipe_heat_loss +from mesido._heat_loss_u_values_pipe import pipe_heat_loss from .base_component_type_mixin import BaseComponentTypeMixin @@ -254,13 +254,13 @@ def _get_min_bound(bound): self, NetworkSettings.NETWORK_TYPE_HEAT, pipe_name, self.heat_network_settings ) if initialized_vars[0] != {}: - self.__pipe_head_bounds[f"{pipe_name}.{NetworkSettings.NETWORK_TYPE_HEAT}In.H"] = ( - initialized_vars[0] - ) + self.__pipe_head_bounds[ + f"{pipe_name}.{NetworkSettings.NETWORK_TYPE_HEAT}In.H" + ] = initialized_vars[0] if initialized_vars[1] != {}: - self.__pipe_head_bounds[f"{pipe_name}.{NetworkSettings.NETWORK_TYPE_HEAT}Out.H"] = ( - initialized_vars[1] - ) + self.__pipe_head_bounds[ + f"{pipe_name}.{NetworkSettings.NETWORK_TYPE_HEAT}Out.H" + ] = initialized_vars[1] if initialized_vars[2] != {}: self.__pipe_head_loss_zero_bounds[f"{pipe_name}.dH"] = initialized_vars[2] if initialized_vars[3] != {}: @@ -285,9 +285,9 @@ def _get_min_bound(bound): self._pipe_linear_line_segment_map[pipe_name][ ii_line ] = pipe_linear_line_segment_var_name - self.__pipe_linear_line_segment_var[pipe_linear_line_segment_var_name] = ( - initialized_vars[9][pipe_linear_line_segment_var_name] - ) + self.__pipe_linear_line_segment_var[ + pipe_linear_line_segment_var_name + ] = initialized_vars[9][pipe_linear_line_segment_var_name] self.__pipe_linear_line_segment_var_bounds[ pipe_linear_line_segment_var_name ] = initialized_vars[10][pipe_linear_line_segment_var_name] @@ -398,9 +398,9 @@ def _get_min_bound(bound): ) ates_temperature_ordering_var_name = f"{ates}__{temperature}_ordering" - self.__ates_temperature_ordering_var[ates_temperature_ordering_var_name] = ( - ca.MX.sym(ates_temperature_ordering_var_name) - ) + self.__ates_temperature_ordering_var[ + ates_temperature_ordering_var_name + ] = ca.MX.sym(ates_temperature_ordering_var_name) self.__ates_temperature_ordering_var_bounds[ates_temperature_ordering_var_name] = ( 0.0, 1.0, @@ -523,9 +523,9 @@ def _get_min_bound(bound): self.__demand_insulation_class_map[dmnd][ insl ] = demand_insulation_class_var_name - self.__demand_insulation_class_var[demand_insulation_class_var_name] = ( - ca.MX.sym(demand_insulation_class_var_name) - ) + self.__demand_insulation_class_var[ + demand_insulation_class_var_name + ] = ca.MX.sym(demand_insulation_class_var_name) self.__demand_insulation_class_var_bounds[ demand_insulation_class_var_name ] = (0.0, 1.0) diff --git a/src/rtctools_heat_network/influxdb/__init__.py b/src/mesido/influxdb/__init__.py similarity index 100% rename from src/rtctools_heat_network/influxdb/__init__.py rename to src/mesido/influxdb/__init__.py diff --git a/src/rtctools_heat_network/influxdb/profile.py b/src/mesido/influxdb/profile.py similarity index 100% rename from src/rtctools_heat_network/influxdb/profile.py rename to src/mesido/influxdb/profile.py diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Buffer.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Buffer.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Buffer.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Buffer.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/CheckValve.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/CheckValve.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/CheckValve.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/CheckValve.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/ControlValve.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/ControlValve.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/ControlValve.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/ControlValve.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Demand.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Demand.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Demand.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Demand.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/GeothermalSource.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/GeothermalSource.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/GeothermalSource.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/GeothermalSource.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/HeatPort.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/HeatPort.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/HeatPort.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/HeatPort.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/HeatTwoPort.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/HeatTwoPort.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/HeatTwoPort.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/HeatTwoPort.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Node.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Node.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Node.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Node.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Pipe.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Pipe.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Pipe.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Pipe.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Pump.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Pump.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Pump.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Pump.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Source.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Source.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/Source.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/Source.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/_NonStorageComponent.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/_NonStorageComponent.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/_NonStorageComponent.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/_NonStorageComponent.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/package.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/Heat/package.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/Heat/package.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/Heat/package.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Buffer.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Buffer.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Buffer.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Buffer.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/CheckValve.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/CheckValve.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/CheckValve.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/CheckValve.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/ControlValve.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/ControlValve.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/ControlValve.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/ControlValve.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Demand.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Demand.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Demand.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Demand.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/GeothermalSource.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/GeothermalSource.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/GeothermalSource.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/GeothermalSource.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Node.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Node.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Node.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Node.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Pipe.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Pipe.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Pipe.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Pipe.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Pump.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Pump.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Pump.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Pump.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/QTHPort.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/QTHPort.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/QTHPort.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/QTHPort.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/QTHTwoPort.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/QTHTwoPort.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/QTHTwoPort.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/QTHTwoPort.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Source.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Source.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/Source.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/Source.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/_FluidPropertiesComponent.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/_FluidPropertiesComponent.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/_FluidPropertiesComponent.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/_FluidPropertiesComponent.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/_NonStorageComponent.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/_NonStorageComponent.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/_NonStorageComponent.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/_NonStorageComponent.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/package.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/QTH/package.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/QTH/package.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/QTH/package.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/package.mo b/src/mesido/modelica/WarmingUp/HeatNetwork/package.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/HeatNetwork/package.mo rename to src/mesido/modelica/WarmingUp/HeatNetwork/package.mo diff --git a/src/rtctools_heat_network/modelica/WarmingUp/package.mo b/src/mesido/modelica/WarmingUp/package.mo similarity index 100% rename from src/rtctools_heat_network/modelica/WarmingUp/package.mo rename to src/mesido/modelica/WarmingUp/package.mo diff --git a/src/rtctools_heat_network/network_common.py b/src/mesido/network_common.py similarity index 100% rename from src/rtctools_heat_network/network_common.py rename to src/mesido/network_common.py diff --git a/src/rtctools_heat_network/physics_mixin.py b/src/mesido/physics_mixin.py similarity index 99% rename from src/rtctools_heat_network/physics_mixin.py rename to src/mesido/physics_mixin.py index ba84881c3..5168a3464 100644 --- a/src/rtctools_heat_network/physics_mixin.py +++ b/src/mesido/physics_mixin.py @@ -8,7 +8,7 @@ CollocatedIntegratedOptimizationProblem, ) -from rtctools_heat_network.control_variables import map_comp_type_to_control_variable +from mesido.control_variables import map_comp_type_to_control_variable from .base_component_type_mixin import BaseComponentTypeMixin diff --git a/src/rtctools_heat_network/pipe_class.py b/src/mesido/pipe_class.py similarity index 94% rename from src/rtctools_heat_network/pipe_class.py rename to src/mesido/pipe_class.py index fd96cceae..5563e76da 100644 --- a/src/rtctools_heat_network/pipe_class.py +++ b/src/mesido/pipe_class.py @@ -26,7 +26,7 @@ def maximum_discharge(self): @property def area(self): - return 0.25 * math.pi * self.inner_diameter**2 + return 0.25 * math.pi * self.inner_diameter ** 2 @dataclass(frozen=True) @@ -50,7 +50,7 @@ def maximum_discharge(self): @property def area(self): - return 0.25 * math.pi * self.inner_diameter**2 + return 0.25 * math.pi * self.inner_diameter ** 2 @dataclass(frozen=True) diff --git a/src/rtctools_heat_network/pycml/__init__.py b/src/mesido/pycml/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/__init__.py rename to src/mesido/pycml/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/__init__.py b/src/mesido/pycml/component_library/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/__init__.py rename to src/mesido/pycml/component_library/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/__init__.py b/src/mesido/pycml/component_library/milp/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/__init__.py rename to src/mesido/pycml/component_library/milp/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/_internal/__init__.py b/src/mesido/pycml/component_library/milp/_internal/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/_internal/__init__.py rename to src/mesido/pycml/component_library/milp/_internal/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/_internal/electricity_component.py b/src/mesido/pycml/component_library/milp/_internal/electricity_component.py similarity index 55% rename from src/rtctools_heat_network/pycml/component_library/milp/_internal/electricity_component.py rename to src/mesido/pycml/component_library/milp/_internal/electricity_component.py index 48a81ea0b..200cdd1f1 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/_internal/electricity_component.py +++ b/src/mesido/pycml/component_library/milp/_internal/electricity_component.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset class ElectricityComponent(BaseAsset): diff --git a/src/rtctools_heat_network/pycml/component_library/milp/_internal/gas_component.py b/src/mesido/pycml/component_library/milp/_internal/gas_component.py similarity index 52% rename from src/rtctools_heat_network/pycml/component_library/milp/_internal/gas_component.py rename to src/mesido/pycml/component_library/milp/_internal/gas_component.py index e137c4cf4..dfab713ef 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/_internal/gas_component.py +++ b/src/mesido/pycml/component_library/milp/_internal/gas_component.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset class GasComponent(BaseAsset): diff --git a/src/rtctools_heat_network/pycml/component_library/milp/_internal/heat_component.py b/src/mesido/pycml/component_library/milp/_internal/heat_component.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/milp/_internal/heat_component.py rename to src/mesido/pycml/component_library/milp/_internal/heat_component.py index f93d4ca62..058c4d602 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/_internal/heat_component.py +++ b/src/mesido/pycml/component_library/milp/_internal/heat_component.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Component +from mesido.pycml import Component class HeatComponent(Component): diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/__init__.py b/src/mesido/pycml/component_library/milp/electricity/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/__init__.py rename to src/mesido/pycml/component_library/milp/electricity/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_base.py b/src/mesido/pycml/component_library/milp/electricity/electricity_base.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_base.py rename to src/mesido/pycml/component_library/milp/electricity/electricity_base.py index 2072ca02a..993f15328 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_base.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_base.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Connector, Variable +from mesido.pycml import Connector, Variable from .._internal.electricity_component import ElectricityComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_cable.py b/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py similarity index 96% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_cable.py rename to src/mesido/pycml/component_library/milp/electricity/electricity_cable.py index 014d4008e..8db017632 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_cable.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .electricity_base import ElectricityTwoPort from .._internal import BaseAsset @@ -32,7 +32,7 @@ def __init__(self, name, **modifiers): self.nominal_voltage = nan self.r = 1.0e-6 * self.length # TODO: temporary value self.nominal_voltage_loss = (self.nominal_current * self.r * self.nominal_current) ** 0.5 - self.add_variable(Variable, "Power_loss", min=0.0, nominal=self.r * self.max_current**2) + self.add_variable(Variable, "Power_loss", min=0.0, nominal=self.r * self.max_current ** 2) self.add_variable(Variable, "I", nominal=self.nominal_current) self.add_variable(Variable, "V_loss", nominal=self.nominal_voltage_loss) diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_demand.py b/src/mesido/pycml/component_library/milp/electricity/electricity_demand.py similarity index 95% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_demand.py rename to src/mesido/pycml/component_library/milp/electricity/electricity_demand.py index 43b7ec2b3..cb3ff691c 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_demand.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_demand.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .electricity_base import ElectricityPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_node.py b/src/mesido/pycml/component_library/milp/electricity/electricity_node.py similarity index 96% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_node.py rename to src/mesido/pycml/component_library/milp/electricity/electricity_node.py index e8b6deab1..97d863409 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_node.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_node.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .electricity_base import ElectricityPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_source.py b/src/mesido/pycml/component_library/milp/electricity/electricity_source.py similarity index 95% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_source.py rename to src/mesido/pycml/component_library/milp/electricity/electricity_source.py index 4c2792fef..00a206860 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/electricity_source.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_source.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .electricity_base import ElectricityPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/heat_pump_elec.py b/src/mesido/pycml/component_library/milp/electricity/heat_pump_elec.py similarity index 83% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/heat_pump_elec.py rename to src/mesido/pycml/component_library/milp/electricity/heat_pump_elec.py index dfc1faa0f..844991655 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/heat_pump_elec.py +++ b/src/mesido/pycml/component_library/milp/electricity/heat_pump_elec.py @@ -1,7 +1,7 @@ -from rtctools_heat_network.pycml.component_library.milp.electricity.electricity_base import ( +from mesido.pycml.component_library.milp.electricity.electricity_base import ( ElectricityPort, ) -from rtctools_heat_network.pycml.component_library.milp.heat.heat_pump import HeatPump +from mesido.pycml.component_library.milp.heat.heat_pump import HeatPump # TODO: for now in the electricity folder, but maybe we can make a multicommodity folder, diff --git a/src/rtctools_heat_network/pycml/component_library/milp/electricity/windpark.py b/src/mesido/pycml/component_library/milp/electricity/windpark.py similarity index 84% rename from src/rtctools_heat_network/pycml/component_library/milp/electricity/windpark.py rename to src/mesido/pycml/component_library/milp/electricity/windpark.py index 27cd259fb..391121651 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/electricity/windpark.py +++ b/src/mesido/pycml/component_library/milp/electricity/windpark.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .. import ElectricitySource diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/__init__.py b/src/mesido/pycml/component_library/milp/gas/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/__init__.py rename to src/mesido/pycml/component_library/milp/gas/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_base.py b/src/mesido/pycml/component_library/milp/gas/gas_base.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_base.py rename to src/mesido/pycml/component_library/milp/gas/gas_base.py index afa19b088..3f7f1ead3 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_base.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_base.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Connector, Variable +from mesido.pycml import Connector, Variable from .._internal.gas_component import GasComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_demand.py b/src/mesido/pycml/component_library/milp/gas/gas_demand.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_demand.py rename to src/mesido/pycml/component_library/milp/gas/gas_demand.py index 24f7f2043..450782dfd 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_demand.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_demand.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .gas_base import GasPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_node.py b/src/mesido/pycml/component_library/milp/gas/gas_node.py similarity index 95% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_node.py rename to src/mesido/pycml/component_library/milp/gas/gas_node.py index 0b2817cca..b68246301 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_node.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_node.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .gas_base import GasPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_pipe.py b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_pipe.py rename to src/mesido/pycml/component_library/milp/gas/gas_pipe.py index 68b8a489e..62280ca75 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_pipe.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py @@ -1,6 +1,6 @@ from numpy import nan, pi -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .gas_base import GasTwoPort from .._internal import BaseAsset @@ -21,7 +21,7 @@ def __init__(self, name, **modifiers): self.v_max = 15.0 self.density = 2.5e3 # [g/m3] self.diameter = nan - self.area = 0.25 * pi * self.diameter**2 + self.area = 0.25 * pi * self.diameter ** 2 self.Q_nominal = self.v_max / 2.0 * self.area self.pressure = 16.0e5 diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_source.py b/src/mesido/pycml/component_library/milp/gas/gas_source.py similarity index 93% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_source.py rename to src/mesido/pycml/component_library/milp/gas/gas_source.py index 313003b0b..9f3bc109f 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_source.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_source.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .gas_base import GasPort from .._internal import BaseAsset diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_substation.py b/src/mesido/pycml/component_library/milp/gas/gas_substation.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_substation.py rename to src/mesido/pycml/component_library/milp/gas/gas_substation.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_tank_storage.py b/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py similarity index 91% rename from src/rtctools_heat_network/pycml/component_library/milp/gas/gas_tank_storage.py rename to src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py index 007742556..376d0f721 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/gas/gas_tank_storage.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py @@ -1,7 +1,7 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal import BaseAsset +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal import BaseAsset from .gas_base import GasPort from .._internal.gas_component import GasComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/__init__.py b/src/mesido/pycml/component_library/milp/heat/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/__init__.py rename to src/mesido/pycml/component_library/milp/heat/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/_non_storage_component.py b/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py similarity index 92% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/_non_storage_component.py rename to src/mesido/pycml/component_library/milp/heat/_non_storage_component.py index 67f87d5fc..f613c253e 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/_non_storage_component.py +++ b/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py @@ -1,7 +1,7 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset from .heat_two_port import HeatTwoPort diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/ates.py b/src/mesido/pycml/component_library/milp/heat/ates.py similarity index 97% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/ates.py rename to src/mesido/pycml/component_library/milp/heat/ates.py index 0930234aa..377c48f54 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/ates.py +++ b/src/mesido/pycml/component_library/milp/heat/ates.py @@ -1,8 +1,8 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset from .heat_two_port import HeatTwoPort diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/check_valve.py b/src/mesido/pycml/component_library/milp/heat/check_valve.py similarity index 93% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/check_valve.py rename to src/mesido/pycml/component_library/milp/heat/check_valve.py index c5cdc961d..7134a2a27 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/check_valve.py +++ b/src/mesido/pycml/component_library/milp/heat/check_valve.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/control_valve.py b/src/mesido/pycml/component_library/milp/heat/control_valve.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/control_valve.py rename to src/mesido/pycml/component_library/milp/heat/control_valve.py index f968ba3a6..c2f0bda78 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/control_valve.py +++ b/src/mesido/pycml/component_library/milp/heat/control_valve.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/geothermal_source.py b/src/mesido/pycml/component_library/milp/heat/geothermal_source.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/geothermal_source.py rename to src/mesido/pycml/component_library/milp/heat/geothermal_source.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_buffer.py b/src/mesido/pycml/component_library/milp/heat/heat_buffer.py similarity index 95% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_buffer.py rename to src/mesido/pycml/component_library/milp/heat/heat_buffer.py index 149d5fcfe..ec55ff485 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_buffer.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_buffer.py @@ -2,8 +2,8 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset from .heat_two_port import HeatTwoPort @@ -40,7 +40,7 @@ def __init__(self, name, **modifiers): self.heat_transfer_coeff = 1.0 self.height = 5.0 self.radius = 10.0 - self.volume = math.pi * self.radius**2 * self.height + self.volume = math.pi * self.radius ** 2 * self.height self.heat_loss_coeff = 2 * self.heat_transfer_coeff / (self.radius * self.rho * self.cp) # The hot/cold tank can have a lower bound on its volume. # Meaning that they might always be, for e.g., 5% full. diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_demand.py b/src/mesido/pycml/component_library/milp/heat/heat_demand.py similarity index 97% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_demand.py rename to src/mesido/pycml/component_library/milp/heat/heat_demand.py index 1c5d7ecce..5ba23da99 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_demand.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_demand.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_exchanger.py b/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py similarity index 93% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_exchanger.py rename to src/mesido/pycml/component_library/milp/heat/heat_exchanger.py index 9403da960..5dacc98bf 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_exchanger.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py @@ -1,8 +1,8 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal import BaseAsset -from rtctools_heat_network.pycml.component_library.milp.heat.heat_four_port import HeatFourPort +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal import BaseAsset +from mesido.pycml.component_library.milp.heat.heat_four_port import HeatFourPort class HeatExchanger(HeatFourPort, BaseAsset): diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_four_port.py b/src/mesido/pycml/component_library/milp/heat/heat_four_port.py similarity index 85% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_four_port.py rename to src/mesido/pycml/component_library/milp/heat/heat_four_port.py index 743e74ab9..ce259f051 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_four_port.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_four_port.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal import HeatComponent +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal import HeatComponent from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_pipe.py b/src/mesido/pycml/component_library/milp/heat/heat_pipe.py similarity index 95% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_pipe.py rename to src/mesido/pycml/component_library/milp/heat/heat_pipe.py index 431106dc6..1c361953b 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_pipe.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_pipe.py @@ -1,6 +1,6 @@ from numpy import nan, pi -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent @@ -31,7 +31,7 @@ def __init__(self, name, **modifiers): self.length = 1.0 self.diameter = 1.0 assert "area" not in modifiers, "modifying area directly is not allowed" - self.area = 0.25 * pi * self.diameter**2 + self.area = 0.25 * pi * self.diameter ** 2 self.temperature = nan self.carrier_id = -1 self.pressure = 16.0e5 @@ -55,7 +55,7 @@ def __init__(self, name, **modifiers): ff = 0.02 # Order of magnitude expected with 0.05-2.5m/s in 20mm-1200mm diameter pipe velo = self.Q_nominal / self.area self.Hydraulic_power_nominal = ( - self.rho * ff * max(self.length, 1.0) * pi * self.area / self.diameter / 2.0 * velo**3 + self.rho * ff * max(self.length, 1.0) * pi * self.area / self.diameter / 2.0 * velo ** 3 ) self.add_variable( Variable, "Hydraulic_power", min=0.0, nominal=self.Hydraulic_power_nominal diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_port.py b/src/mesido/pycml/component_library/milp/heat/heat_port.py similarity index 78% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_port.py rename to src/mesido/pycml/component_library/milp/heat/heat_port.py index cf819b330..9ba7ef285 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_port.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_port.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import Connector, Variable -from rtctools_heat_network.pycml.component_library.milp._internal import HeatComponent +from mesido.pycml import Connector, Variable +from mesido.pycml.component_library.milp._internal import HeatComponent class HeatPort(HeatComponent, Connector): diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_pump.py b/src/mesido/pycml/component_library/milp/heat/heat_pump.py similarity index 93% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_pump.py rename to src/mesido/pycml/component_library/milp/heat/heat_pump.py index 0db1800e6..dc1ee3df7 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_pump.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_pump.py @@ -1,8 +1,8 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal import BaseAsset -from rtctools_heat_network.pycml.component_library.milp.heat.heat_four_port import HeatFourPort +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal import BaseAsset +from mesido.pycml.component_library.milp.heat.heat_four_port import HeatFourPort class HeatPump(HeatFourPort, BaseAsset): diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_source.py b/src/mesido/pycml/component_library/milp/heat/heat_source.py similarity index 98% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_source.py rename to src/mesido/pycml/component_library/milp/heat/heat_source.py index aa2f3adcc..6a9554b32 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_source.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_source.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_two_port.py b/src/mesido/pycml/component_library/milp/heat/heat_two_port.py similarity index 85% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/heat_two_port.py rename to src/mesido/pycml/component_library/milp/heat/heat_two_port.py index 9fc8df892..c1cf1d855 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/heat_two_port.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_two_port.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml.component_library.milp._internal import HeatComponent +from mesido.pycml.component_library.milp._internal import HeatComponent from .heat_port import HeatPort diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/node.py b/src/mesido/pycml/component_library/milp/heat/node.py similarity index 88% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/node.py rename to src/mesido/pycml/component_library/milp/heat/node.py index 09ea3d5bc..7ff75d71c 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/node.py +++ b/src/mesido/pycml/component_library/milp/heat/node.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal import BaseAsset, HeatComponent +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal import BaseAsset, HeatComponent from .heat_port import HeatPort diff --git a/src/rtctools_heat_network/pycml/component_library/milp/heat/pump.py b/src/mesido/pycml/component_library/milp/heat/pump.py similarity index 95% rename from src/rtctools_heat_network/pycml/component_library/milp/heat/pump.py rename to src/mesido/pycml/component_library/milp/heat/pump.py index 45d70b1ca..8ba0418e6 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/heat/pump.py +++ b/src/mesido/pycml/component_library/milp/heat/pump.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/milp/multicommodity/__init__.py b/src/mesido/pycml/component_library/milp/multicommodity/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/milp/multicommodity/__init__.py rename to src/mesido/pycml/component_library/milp/multicommodity/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/milp/multicommodity/electrolyzer.py b/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py similarity index 78% rename from src/rtctools_heat_network/pycml/component_library/milp/multicommodity/electrolyzer.py rename to src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py index 77029c152..1c7acb4ec 100644 --- a/src/rtctools_heat_network/pycml/component_library/milp/multicommodity/electrolyzer.py +++ b/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py @@ -1,14 +1,14 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable -from rtctools_heat_network.pycml.component_library.milp._internal import BaseAsset -from rtctools_heat_network.pycml.component_library.milp._internal.electricity_component import ( +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal import BaseAsset +from mesido.pycml.component_library.milp._internal.electricity_component import ( ElectricityComponent, ) -from rtctools_heat_network.pycml.component_library.milp.electricity.electricity_base import ( +from mesido.pycml.component_library.milp.electricity.electricity_base import ( ElectricityPort, ) -from rtctools_heat_network.pycml.component_library.milp.gas.gas_base import ( +from mesido.pycml.component_library.milp.gas.gas_base import ( GasPort, ) diff --git a/src/rtctools_heat_network/pycml/component_library/qth/__init__.py b/src/mesido/pycml/component_library/qth/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/qth/__init__.py rename to src/mesido/pycml/component_library/qth/__init__.py diff --git a/src/rtctools_heat_network/pycml/component_library/qth/_fluid_properties_component.py b/src/mesido/pycml/component_library/qth/_fluid_properties_component.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/qth/_fluid_properties_component.py rename to src/mesido/pycml/component_library/qth/_fluid_properties_component.py diff --git a/src/rtctools_heat_network/pycml/component_library/qth/_internal/__init__.py b/src/mesido/pycml/component_library/qth/_internal/__init__.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/qth/_internal/__init__.py rename to src/mesido/pycml/component_library/qth/_internal/__init__.py diff --git a/src/mesido/pycml/component_library/qth/_internal/qth_component.py b/src/mesido/pycml/component_library/qth/_internal/qth_component.py new file mode 100644 index 000000000..1dd41cee6 --- /dev/null +++ b/src/mesido/pycml/component_library/qth/_internal/qth_component.py @@ -0,0 +1,5 @@ +from mesido.pycml import Component + + +class QTHComponent(Component): + pass diff --git a/src/rtctools_heat_network/pycml/component_library/qth/_non_storage_component.py b/src/mesido/pycml/component_library/qth/_non_storage_component.py similarity index 91% rename from src/rtctools_heat_network/pycml/component_library/qth/_non_storage_component.py rename to src/mesido/pycml/component_library/qth/_non_storage_component.py index 3456d62e6..ffdd605fc 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/_non_storage_component.py +++ b/src/mesido/pycml/component_library/qth/_non_storage_component.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from .qth_two_port import QTHTwoPort diff --git a/src/rtctools_heat_network/pycml/component_library/qth/buffer.py b/src/mesido/pycml/component_library/qth/buffer.py similarity index 95% rename from src/rtctools_heat_network/pycml/component_library/qth/buffer.py rename to src/mesido/pycml/component_library/qth/buffer.py index a2375dbc1..3a28447e3 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/buffer.py +++ b/src/mesido/pycml/component_library/qth/buffer.py @@ -2,7 +2,7 @@ from numpy import nan -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._fluid_properties_component import _FluidPropertiesComponent @@ -21,13 +21,13 @@ def __init__(self, name, **modifiers): self.heat_transfer_coeff = 1.0 self.height = 5.0 self.radius = 10.0 - self.volume = math.pi * self.radius**2 * self.height + self.volume = math.pi * self.radius ** 2 * self.height # The hot/cold tank can have a lower bound on its volume. # Meaning that they might always be, for e.g., 5% full. self.min_fraction_tank_volume = 0.05 # if the tank is plced on ground, ignore surface of bottom of tank - self.surface = 2 * math.pi * self.radius**2 + 2 * math.pi * self.radius * self.height + self.surface = 2 * math.pi * self.radius ** 2 + 2 * math.pi * self.radius * self.height self.T_outside = 10.0 # Nominals diff --git a/src/rtctools_heat_network/pycml/component_library/qth/check_valve.py b/src/mesido/pycml/component_library/qth/check_valve.py similarity index 91% rename from src/rtctools_heat_network/pycml/component_library/qth/check_valve.py rename to src/mesido/pycml/component_library/qth/check_valve.py index 2a50a0a66..ab5e1a174 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/check_valve.py +++ b/src/mesido/pycml/component_library/qth/check_valve.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/qth/control_valve.py b/src/mesido/pycml/component_library/qth/control_valve.py similarity index 89% rename from src/rtctools_heat_network/pycml/component_library/qth/control_valve.py rename to src/mesido/pycml/component_library/qth/control_valve.py index 2324eae60..53443c4d0 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/control_valve.py +++ b/src/mesido/pycml/component_library/qth/control_valve.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/qth/demand.py b/src/mesido/pycml/component_library/qth/demand.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/qth/demand.py rename to src/mesido/pycml/component_library/qth/demand.py index 7aa696991..4e30483a1 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/demand.py +++ b/src/mesido/pycml/component_library/qth/demand.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import SymbolicParameter, Variable +from mesido.pycml import SymbolicParameter, Variable from ._fluid_properties_component import _FluidPropertiesComponent from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/qth/geothermal_source.py b/src/mesido/pycml/component_library/qth/geothermal_source.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/qth/geothermal_source.py rename to src/mesido/pycml/component_library/qth/geothermal_source.py diff --git a/src/rtctools_heat_network/pycml/component_library/qth/node.py b/src/mesido/pycml/component_library/qth/node.py similarity index 93% rename from src/rtctools_heat_network/pycml/component_library/qth/node.py rename to src/mesido/pycml/component_library/qth/node.py index c48805ae9..5ff3d7ead 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/node.py +++ b/src/mesido/pycml/component_library/qth/node.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._internal import QTHComponent from .qth_port import QTHPort diff --git a/src/rtctools_heat_network/pycml/component_library/qth/pipe.py b/src/mesido/pycml/component_library/qth/pipe.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/qth/pipe.py rename to src/mesido/pycml/component_library/qth/pipe.py index aaf14345b..5aa6c6052 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/pipe.py +++ b/src/mesido/pycml/component_library/qth/pipe.py @@ -1,6 +1,6 @@ from numpy import nan, pi -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._fluid_properties_component import _FluidPropertiesComponent from ._non_storage_component import _NonStorageComponent @@ -30,7 +30,7 @@ def __init__(self, name, **modifiers): self.length = 1.0 self.diameter = 1.0 assert "area" not in modifiers, "modifying area directly is not allowed" - self.area = 0.25 * pi * self.diameter**2 + self.area = 0.25 * pi * self.diameter ** 2 self.temperature = nan # Parameters determining the milp loss diff --git a/src/rtctools_heat_network/pycml/component_library/qth/pump.py b/src/mesido/pycml/component_library/qth/pump.py similarity index 91% rename from src/rtctools_heat_network/pycml/component_library/qth/pump.py rename to src/mesido/pycml/component_library/qth/pump.py index 730be6555..852d0d622 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/pump.py +++ b/src/mesido/pycml/component_library/qth/pump.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Variable +from mesido.pycml import Variable from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/component_library/qth/qth_port.py b/src/mesido/pycml/component_library/qth/qth_port.py similarity index 88% rename from src/rtctools_heat_network/pycml/component_library/qth/qth_port.py rename to src/mesido/pycml/component_library/qth/qth_port.py index e0c2583ad..7a622d53a 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/qth_port.py +++ b/src/mesido/pycml/component_library/qth/qth_port.py @@ -1,4 +1,4 @@ -from rtctools_heat_network.pycml import Connector, Variable +from mesido.pycml import Connector, Variable from ._internal import QTHComponent diff --git a/src/rtctools_heat_network/pycml/component_library/qth/qth_two_port.py b/src/mesido/pycml/component_library/qth/qth_two_port.py similarity index 100% rename from src/rtctools_heat_network/pycml/component_library/qth/qth_two_port.py rename to src/mesido/pycml/component_library/qth/qth_two_port.py diff --git a/src/rtctools_heat_network/pycml/component_library/qth/source.py b/src/mesido/pycml/component_library/qth/source.py similarity index 94% rename from src/rtctools_heat_network/pycml/component_library/qth/source.py rename to src/mesido/pycml/component_library/qth/source.py index 1e69907e6..8893b33f7 100644 --- a/src/rtctools_heat_network/pycml/component_library/qth/source.py +++ b/src/mesido/pycml/component_library/qth/source.py @@ -1,6 +1,6 @@ from numpy import nan -from rtctools_heat_network.pycml import SymbolicParameter, Variable +from mesido.pycml import SymbolicParameter, Variable from ._fluid_properties_component import _FluidPropertiesComponent from ._non_storage_component import _NonStorageComponent diff --git a/src/rtctools_heat_network/pycml/model_base.py b/src/mesido/pycml/model_base.py similarity index 100% rename from src/rtctools_heat_network/pycml/model_base.py rename to src/mesido/pycml/model_base.py diff --git a/src/rtctools_heat_network/pycml/pycml_mixin.py b/src/mesido/pycml/pycml_mixin.py similarity index 100% rename from src/rtctools_heat_network/pycml/pycml_mixin.py rename to src/mesido/pycml/pycml_mixin.py diff --git a/src/rtctools_heat_network/qth_not_maintained/__init__.py b/src/mesido/qth_not_maintained/__init__.py similarity index 100% rename from src/rtctools_heat_network/qth_not_maintained/__init__.py rename to src/mesido/qth_not_maintained/__init__.py diff --git a/src/rtctools_heat_network/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py b/src/mesido/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py similarity index 94% rename from src/rtctools_heat_network/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py rename to src/mesido/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py index b1583c857..9d02e062f 100644 --- a/src/rtctools_heat_network/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py +++ b/src/mesido/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py @@ -4,8 +4,8 @@ from rtctools.optimization.timeseries import Timeseries -from rtctools_heat_network.base_component_type_mixin import BaseComponentTypeMixin -from rtctools_heat_network.heat_network_common import PipeFlowDirection +from mesido.base_component_type_mixin import BaseComponentTypeMixin +from mesido.heat_network_common import PipeFlowDirection class BoundsToPipeFlowDirectionsMixin(BaseComponentTypeMixin): diff --git a/src/rtctools_heat_network/qth_not_maintained/head_loss_mixin.py b/src/mesido/qth_not_maintained/head_loss_mixin.py similarity index 99% rename from src/rtctools_heat_network/qth_not_maintained/head_loss_mixin.py rename to src/mesido/qth_not_maintained/head_loss_mixin.py index d492cc625..2101b143c 100644 --- a/src/rtctools_heat_network/qth_not_maintained/head_loss_mixin.py +++ b/src/mesido/qth_not_maintained/head_loss_mixin.py @@ -11,8 +11,8 @@ from rtctools.optimization.goal_programming_mixin_base import Goal, _GoalProgrammingMixinBase from rtctools.optimization.optimization_problem import BT, OptimizationProblem -import rtctools_heat_network._darcy_weisbach as darcy_weisbach -from rtctools_heat_network.base_component_type_mixin import BaseComponentTypeMixin +import mesido._darcy_weisbach as darcy_weisbach +from mesido.base_component_type_mixin import BaseComponentTypeMixin from ..constants import GRAVITATIONAL_CONSTANT from ..pipe_class import PipeClass @@ -109,7 +109,7 @@ class HeadLossOption(IntEnum): class _MinimizeHeadLosses(Goal): order = 1 - priority = 2**31 - 1 + priority = 2 ** 31 - 1 def __init__(self, optimization_problem: "_HeadLossMixin", *args, **kwargs): super().__init__(*args, **kwargs) @@ -150,7 +150,7 @@ def function(self, optimization_problem: "_HeadLossMixin", ensemble_member): class _MinimizeHydraulicPower(Goal): order = 1 - priority = 2**31 - 1 + priority = 2 ** 31 - 1 def __init__( self, @@ -526,7 +526,7 @@ def _hn_pipe_head_loss( c_v = length * ff / (2 * GRAVITATIONAL_CONSTANT) / diameter linearization_velocity = heat_network_options["maximum_velocity"] - linearization_head_loss = c_v * linearization_velocity**2 + linearization_head_loss = c_v * linearization_velocity ** 2 linearization_discharge = linearization_velocity * area expr = linearization_head_loss * discharge / linearization_discharge @@ -568,7 +568,7 @@ def _hn_pipe_head_loss( c_v = length * ff / (2 * GRAVITATIONAL_CONSTANT) / diameter v = discharge / area - expr = c_v * v**2 + expr = c_v * v ** 2 if symbolic: q_nominal = self.variable_nominal(f"{pipe}.Q") @@ -775,7 +775,7 @@ def _hydraulic_power( # Compute c_k constant (where |hydraulic power| ~ c_k * v^3) c_k = rho * ff * length * area / 2.0 / diameter # Compute linearized value - max_hydraulic_power = c_k * maximum_velocity**3 + max_hydraulic_power = c_k * maximum_velocity ** 3 maximum_discharge = maximum_velocity * area hydraulic_power_linearized = max_hydraulic_power * discharge / maximum_discharge diff --git a/src/rtctools_heat_network/qth_not_maintained/qth_loop_mixin.py b/src/mesido/qth_not_maintained/qth_loop_mixin.py similarity index 99% rename from src/rtctools_heat_network/qth_not_maintained/qth_loop_mixin.py rename to src/mesido/qth_not_maintained/qth_loop_mixin.py index df7d60ea0..d9e464c20 100644 --- a/src/rtctools_heat_network/qth_not_maintained/qth_loop_mixin.py +++ b/src/mesido/qth_not_maintained/qth_loop_mixin.py @@ -8,7 +8,7 @@ from rtctools.optimization.goal_programming_mixin_base import Goal from rtctools.optimization.timeseries import Timeseries -from rtctools_heat_network.qth_not_maintained.qth_mixin import HeadLossOption, QTHMixin +from mesido.qth_not_maintained.qth_mixin import HeadLossOption, QTHMixin class BufferTargetDischargeGoal(Goal): diff --git a/src/rtctools_heat_network/qth_not_maintained/qth_mixin.py b/src/mesido/qth_not_maintained/qth_mixin.py similarity index 99% rename from src/rtctools_heat_network/qth_not_maintained/qth_mixin.py rename to src/mesido/qth_not_maintained/qth_mixin.py index a3869647b..2a30792f6 100644 --- a/src/rtctools_heat_network/qth_not_maintained/qth_mixin.py +++ b/src/mesido/qth_not_maintained/qth_mixin.py @@ -13,15 +13,15 @@ from rtctools.optimization.homotopy_mixin import HomotopyMixin from rtctools.optimization.timeseries import Timeseries -from rtctools_heat_network._heat_loss_u_values_pipe import heat_loss_u_values_pipe -from rtctools_heat_network.base_component_type_mixin import BaseComponentTypeMixin -from rtctools_heat_network.heat_network_common import ( +from mesido._heat_loss_u_values_pipe import heat_loss_u_values_pipe +from mesido.base_component_type_mixin import BaseComponentTypeMixin +from mesido.heat_network_common import ( CheckValveStatus, ControlValveDirection, NodeConnectionDirection, PipeFlowDirection, ) -from rtctools_heat_network.qth_not_maintained.head_loss_mixin import ( +from mesido.qth_not_maintained.head_loss_mixin import ( HeadLossOption, _HeadLossMixin, _MinimizeHeadLosses as _MinimizeHeadLossesBase, diff --git a/src/rtctools_heat_network/qth_not_maintained/util.py b/src/mesido/qth_not_maintained/util.py similarity index 100% rename from src/rtctools_heat_network/qth_not_maintained/util.py rename to src/mesido/qth_not_maintained/util.py diff --git a/src/rtctools_heat_network/techno_economic_mixin.py b/src/mesido/techno_economic_mixin.py similarity index 100% rename from src/rtctools_heat_network/techno_economic_mixin.py rename to src/mesido/techno_economic_mixin.py diff --git a/src/rtctools_heat_network/topology.py b/src/mesido/topology.py similarity index 98% rename from src/rtctools_heat_network/topology.py rename to src/mesido/topology.py index e6751a216..73584d07a 100644 --- a/src/rtctools_heat_network/topology.py +++ b/src/mesido/topology.py @@ -1,6 +1,6 @@ from typing import Dict, List, Tuple -from .heat_network_common import NodeConnectionDirection +from mesido.heat_network_common import NodeConnectionDirection class Topology: diff --git a/src/rtctools_heat_network/workflows/__init__.py b/src/mesido/workflows/__init__.py similarity index 100% rename from src/rtctools_heat_network/workflows/__init__.py rename to src/mesido/workflows/__init__.py diff --git a/src/rtctools_heat_network/workflows/goals/__init__.py b/src/mesido/workflows/goals/__init__.py similarity index 100% rename from src/rtctools_heat_network/workflows/goals/__init__.py rename to src/mesido/workflows/goals/__init__.py diff --git a/src/rtctools_heat_network/workflows/goals/minimize_tco_goal.py b/src/mesido/workflows/goals/minimize_tco_goal.py similarity index 100% rename from src/rtctools_heat_network/workflows/goals/minimize_tco_goal.py rename to src/mesido/workflows/goals/minimize_tco_goal.py diff --git a/src/rtctools_heat_network/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py similarity index 99% rename from src/rtctools_heat_network/workflows/grow_workflow.py rename to src/mesido/workflows/grow_workflow.py index 8f5e04f88..204a7a004 100644 --- a/src/rtctools_heat_network/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -406,9 +406,9 @@ class EndScenarioSizingHeadLoss(EndScenarioSizing): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.heat_network_settings["head_loss_option"] = ( - HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY - ) + self.heat_network_settings[ + "head_loss_option" + ] = HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY self.heat_network_settings["minimize_head_losses"] = True diff --git a/src/rtctools_heat_network/workflows/io/__init__.py b/src/mesido/workflows/io/__init__.py similarity index 100% rename from src/rtctools_heat_network/workflows/io/__init__.py rename to src/mesido/workflows/io/__init__.py diff --git a/src/rtctools_heat_network/workflows/io/read_files_and_create_influxdb.py b/src/mesido/workflows/io/read_files_and_create_influxdb.py similarity index 100% rename from src/rtctools_heat_network/workflows/io/read_files_and_create_influxdb.py rename to src/mesido/workflows/io/read_files_and_create_influxdb.py diff --git a/src/rtctools_heat_network/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py similarity index 99% rename from src/rtctools_heat_network/workflows/io/write_output.py rename to src/mesido/workflows/io/write_output.py index bbcdbadfd..62b2e1a93 100644 --- a/src/rtctools_heat_network/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -196,7 +196,7 @@ def _write_html_output(self, template_name="mpc_buffer_sizing_output"): for source in _sort_numbered(self.energy_system_components["heat_source"]): if source in self._minimize_size_sources: max_size_var = self._max_source_heat_map[source] - results_sources_size[source] = float(results[max_size_var][0]) / 10.0**3 + results_sources_size[source] = float(results[max_size_var][0]) / 10.0 ** 3 else: results_sources_size[source] = "-" diff --git a/src/rtctools_heat_network/workflows/simulator_workflow.py b/src/mesido/workflows/simulator_workflow.py similarity index 99% rename from src/rtctools_heat_network/workflows/simulator_workflow.py rename to src/mesido/workflows/simulator_workflow.py index 117d9a76d..bfcb437b5 100644 --- a/src/rtctools_heat_network/workflows/simulator_workflow.py +++ b/src/mesido/workflows/simulator_workflow.py @@ -226,9 +226,9 @@ def path_goals(self): def energy_system_options(self): options = super().energy_system_options() - self.heat_network_settings["head_loss_option"] = ( - HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY - ) + self.heat_network_settings[ + "head_loss_option" + ] = HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY self.heat_network_settings["minimize_head_losses"] = True return options diff --git a/src/rtctools_heat_network/workflows/utils/__init__.py b/src/mesido/workflows/utils/__init__.py similarity index 100% rename from src/rtctools_heat_network/workflows/utils/__init__.py rename to src/mesido/workflows/utils/__init__.py diff --git a/src/rtctools_heat_network/workflows/utils/adapt_profiles.py b/src/mesido/workflows/utils/adapt_profiles.py similarity index 100% rename from src/rtctools_heat_network/workflows/utils/adapt_profiles.py rename to src/mesido/workflows/utils/adapt_profiles.py diff --git a/src/rtctools_heat_network/workflows/utils/helpers.py b/src/mesido/workflows/utils/helpers.py similarity index 100% rename from src/rtctools_heat_network/workflows/utils/helpers.py rename to src/mesido/workflows/utils/helpers.py diff --git a/src/rtctools_heat_network/pycml/component_library/qth/_internal/qth_component.py b/src/rtctools_heat_network/pycml/component_library/qth/_internal/qth_component.py deleted file mode 100644 index 712ec0b1d..000000000 --- a/src/rtctools_heat_network/pycml/component_library/qth/_internal/qth_component.py +++ /dev/null @@ -1,5 +0,0 @@ -from rtctools_heat_network.pycml import Component - - -class QTHComponent(Component): - pass diff --git a/tests/models/absolute_heat/src/example.py b/tests/models/absolute_heat/src/example.py index a05a9101c..6c89772a1 100644 --- a/tests/models/absolute_heat/src/example.py +++ b/tests/models/absolute_heat/src/example.py @@ -13,10 +13,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/ates_temperature/src/run_ates_temperature.py b/tests/models/ates_temperature/src/run_ates_temperature.py index 9d91963a7..f7b4e6c39 100644 --- a/tests/models/ates_temperature/src/run_ates_temperature.py +++ b/tests/models/ates_temperature/src/run_ates_temperature.py @@ -13,12 +13,12 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin -from rtctools_heat_network.workflows.io.write_output import ScenarioOutput +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.io.write_output import ScenarioOutput ns = {"fews": "http://www.wldelft.nl/fews", "pi": "http://www.wldelft.nl/fews/PI"} @@ -148,9 +148,9 @@ def path_goals(self): def energy_system_options(self): options = super().energy_system_options() self.heat_network_settings["minimum_velocity"] = 0.0001 - options["heat_loss_disconnected_pipe"] = ( - False # required since we want to disconnect HP & HEX - ) + options[ + "heat_loss_disconnected_pipe" + ] = False # required since we want to disconnect HP & HEX self.heat_network_settings["head_loss_option"] = HeadLossOption.NO_HEADLOSS options["neglect_pipe_heat_losses"] = True options["include_ates_temperature_options"] = True @@ -331,7 +331,6 @@ def read(self): class HeatProblemMaxFlow(HeatProblem): - def read(self): super().read() diff --git a/tests/models/basic_buffer/src/compare.py b/tests/models/basic_buffer/src/compare.py index d95692a7a..7658deba5 100644 --- a/tests/models/basic_buffer/src/compare.py +++ b/tests/models/basic_buffer/src/compare.py @@ -5,13 +5,13 @@ from rtctools.optimization.modelica_mixin import ModelicaMixin -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin -from rtctools_heat_network.qth_not_maintained.qth_loop_mixin import ( +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.qth_not_maintained.qth_loop_mixin import ( BufferTargetDischargeGoal, QTHLoopMixin, ) -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin -from rtctools_heat_network.qth_not_maintained.util import run_heat_network_optimization +from mesido.qth_not_maintained.qth_mixin import QTHMixin +from mesido.qth_not_maintained.util import run_heat_network_optimization # We want to import the example we compare with as a module that is somewhat # uniquely identifiable. We therefore start from the root. diff --git a/tests/models/basic_buffer/src/model_heat.py b/tests/models/basic_buffer/src/model_heat.py index fd5513e6a..f2547393b 100644 --- a/tests/models/basic_buffer/src/model_heat.py +++ b/tests/models/basic_buffer/src/model_heat.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import ControlInput, Model as _Model, Variable -from rtctools_heat_network.pycml.component_library.milp import ( +from mesido.pycml import ControlInput, Model as _Model, Variable +from mesido.pycml.component_library.milp import ( HeatBuffer, HeatDemand, HeatPipe, diff --git a/tests/models/basic_buffer/src/model_qth.py b/tests/models/basic_buffer/src/model_qth.py index abcbd2736..576b7540f 100644 --- a/tests/models/basic_buffer/src/model_qth.py +++ b/tests/models/basic_buffer/src/model_qth.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import ControlInput, Model as _Model, SymbolicParameter, Variable -from rtctools_heat_network.pycml.component_library.qth import ( +from mesido.pycml import ControlInput, Model as _Model, SymbolicParameter, Variable +from mesido.pycml.component_library.qth import ( Buffer, Demand, Node, diff --git a/tests/models/basic_source_and_demand/src/heat_comparison.py b/tests/models/basic_source_and_demand/src/heat_comparison.py index ad4bd9834..3b7801dec 100644 --- a/tests/models/basic_source_and_demand/src/heat_comparison.py +++ b/tests/models/basic_source_and_demand/src/heat_comparison.py @@ -6,10 +6,10 @@ from rtctools.optimization.modelica_mixin import ModelicaMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.component_type_mixin import ModelicaComponentTypeMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.physics_mixin import PhysicsMixin +from mesido.pycml.pycml_mixin import PyCMLMixin if __name__ == "__main__": from model_heat import Model diff --git a/tests/models/basic_source_and_demand/src/model_heat.py b/tests/models/basic_source_and_demand/src/model_heat.py index 61d7c7ce3..016100092 100644 --- a/tests/models/basic_source_and_demand/src/model_heat.py +++ b/tests/models/basic_source_and_demand/src/model_heat.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import ControlInput, Model as _Model -from rtctools_heat_network.pycml.component_library.milp import ( +from mesido.pycml import ControlInput, Model as _Model +from mesido.pycml.component_library.milp import ( HeatDemand, HeatPipe, HeatSource, diff --git a/tests/models/basic_source_and_demand/src/model_qth.py b/tests/models/basic_source_and_demand/src/model_qth.py index 00d86accb..93fa0a8b6 100644 --- a/tests/models/basic_source_and_demand/src/model_qth.py +++ b/tests/models/basic_source_and_demand/src/model_qth.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import ControlInput, Model as _Model, SymbolicParameter -from rtctools_heat_network.pycml.component_library.qth import Demand, Pipe, Pump, Source +from mesido.pycml import ControlInput, Model as _Model, SymbolicParameter +from mesido.pycml.component_library.qth import Demand, Pipe, Pump, Source class Model(_Model): diff --git a/tests/models/basic_source_and_demand/src/qth_comparison.py b/tests/models/basic_source_and_demand/src/qth_comparison.py index b96899a4a..41d7b17f4 100644 --- a/tests/models/basic_source_and_demand/src/qth_comparison.py +++ b/tests/models/basic_source_and_demand/src/qth_comparison.py @@ -10,13 +10,13 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.component_type_mixin import ModelicaComponentTypeMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin -from rtctools_heat_network.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( BoundsToPipeFlowDirectionsMixin, ) -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin if __name__ == "__main__": from model_qth import Model diff --git a/tests/models/basic_source_and_demand/src/qth_minimize_temperatures.py b/tests/models/basic_source_and_demand/src/qth_minimize_temperatures.py index bc84c607f..099b98e58 100644 --- a/tests/models/basic_source_and_demand/src/qth_minimize_temperatures.py +++ b/tests/models/basic_source_and_demand/src/qth_minimize_temperatures.py @@ -7,12 +7,12 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.component_type_mixin import ModelicaComponentTypeMixin -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin -from rtctools_heat_network.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( BoundsToPipeFlowDirectionsMixin, ) -from rtctools_heat_network.qth_not_maintained.qth_mixin import DemandTemperatureOption, QTHMixin +from mesido.qth_not_maintained.qth_mixin import DemandTemperatureOption, QTHMixin if __name__ == "__main__": from model_qth import Model diff --git a/tests/models/double_pipe_heat/src/double_pipe_heat.py b/tests/models/double_pipe_heat/src/double_pipe_heat.py index d2be2d28b..4e5e35fe2 100644 --- a/tests/models/double_pipe_heat/src/double_pipe_heat.py +++ b/tests/models/double_pipe_heat/src/double_pipe_heat.py @@ -5,9 +5,9 @@ from rtctools.optimization.goal_programming_mixin import Goal, GoalProgrammingMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.component_type_mixin import ModelicaComponentTypeMixin -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.physics_mixin import PhysicsMixin +from mesido.pycml.pycml_mixin import PyCMLMixin if __name__ == "__main__": from model import Model diff --git a/tests/models/double_pipe_heat/src/model.py b/tests/models/double_pipe_heat/src/model.py index f217002ee..473a91d71 100644 --- a/tests/models/double_pipe_heat/src/model.py +++ b/tests/models/double_pipe_heat/src/model.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import ControlInput, Model as _Model -from rtctools_heat_network.pycml.component_library.milp import ( +from mesido.pycml import ControlInput, Model as _Model +from mesido.pycml.component_library.milp import ( HeatDemand, HeatPipe, HeatSource, diff --git a/tests/models/double_pipe_qth/src/cq2_inequality_vs_equality.py b/tests/models/double_pipe_qth/src/cq2_inequality_vs_equality.py index 883f6a957..65d0f4e91 100644 --- a/tests/models/double_pipe_qth/src/cq2_inequality_vs_equality.py +++ b/tests/models/double_pipe_qth/src/cq2_inequality_vs_equality.py @@ -2,8 +2,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.qth_not_maintained.qth_loop_mixin import QTHLoopMixin -from rtctools_heat_network.qth_not_maintained.qth_mixin import HeadLossOption, QTHMixin +from mesido.qth_not_maintained.qth_loop_mixin import QTHLoopMixin +from mesido.qth_not_maintained.qth_mixin import HeadLossOption, QTHMixin if __name__ == "__main__": from double_pipe_qth import DoublePipeBase diff --git a/tests/models/double_pipe_qth/src/double_pipe_qth.py b/tests/models/double_pipe_qth/src/double_pipe_qth.py index 69316bf14..1e97ad2b5 100644 --- a/tests/models/double_pipe_qth/src/double_pipe_qth.py +++ b/tests/models/double_pipe_qth/src/double_pipe_qth.py @@ -7,11 +7,11 @@ from rtctools.optimization.modelica_mixin import ModelicaMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.component_type_mixin import ModelicaComponentTypeMixin -from rtctools_heat_network.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( BoundsToPipeFlowDirectionsMixin, ) -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin class TargetDemandGoal(Goal): diff --git a/tests/models/double_pipe_qth/src/single_pipe_no_headloss.py b/tests/models/double_pipe_qth/src/single_pipe_no_headloss.py index 38d0cc3ba..83a416c53 100644 --- a/tests/models/double_pipe_qth/src/single_pipe_no_headloss.py +++ b/tests/models/double_pipe_qth/src/single_pipe_no_headloss.py @@ -1,6 +1,6 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.qth_not_maintained.qth_mixin import HeadLossOption +from mesido.qth_not_maintained.qth_mixin import HeadLossOption if __name__ == "__main__": from double_pipe_qth import SinglePipeQTH diff --git a/tests/models/electricity_cable_topology/src/example.py b/tests/models/electricity_cable_topology/src/example.py index 8121ea3ba..7870aabfd 100644 --- a/tests/models/electricity_cable_topology/src/example.py +++ b/tests/models/electricity_cable_topology/src/example.py @@ -13,11 +13,11 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.pipe_class import CableClass -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.pipe_class import CableClass +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/emerge/src/example.py b/tests/models/emerge/src/example.py index 6dca4d252..a489e2e0f 100644 --- a/tests/models/emerge/src/example.py +++ b/tests/models/emerge/src/example.py @@ -10,12 +10,12 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin class MaxHydrogenProduction(Goal): diff --git a/tests/models/gas_pipe_topology/src/example.py b/tests/models/gas_pipe_topology/src/example.py index c647bc862..4c2bbbd1a 100644 --- a/tests/models/gas_pipe_topology/src/example.py +++ b/tests/models/gas_pipe_topology/src/example.py @@ -13,10 +13,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/heat_exchange/src/run_heat_exchanger.py b/tests/models/heat_exchange/src/run_heat_exchanger.py index 3395eb0da..7bd2ae00f 100644 --- a/tests/models/heat_exchange/src/run_heat_exchanger.py +++ b/tests/models/heat_exchange/src/run_heat_exchanger.py @@ -9,11 +9,11 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.physics_mixin import PhysicsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.physics_mixin import PhysicsMixin class TargetDemandGoal(Goal): diff --git a/tests/models/heatpump/src/run_heat_pump.py b/tests/models/heatpump/src/run_heat_pump.py index 4fab2dbf6..71e60675a 100644 --- a/tests/models/heatpump/src/run_heat_pump.py +++ b/tests/models/heatpump/src/run_heat_pump.py @@ -9,10 +9,10 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin class TargetDemandGoal(Goal): diff --git a/tests/models/insulation/src/run_insulation.py b/tests/models/insulation/src/run_insulation.py index e20328d36..acd32b8cb 100644 --- a/tests/models/insulation/src/run_insulation.py +++ b/tests/models/insulation/src/run_insulation.py @@ -11,11 +11,11 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.demand_insulation_class import DemandInsulationClass -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.demand_insulation_class import DemandInsulationClass +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class MinimizeSourcesHeatGoal(Goal): diff --git a/tests/models/multiple_carriers/src/run_multiple_carriers.py b/tests/models/multiple_carriers/src/run_multiple_carriers.py index 6401c5abc..712407392 100644 --- a/tests/models/multiple_carriers/src/run_multiple_carriers.py +++ b/tests/models/multiple_carriers/src/run_multiple_carriers.py @@ -9,10 +9,10 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin class TargetDemandGoal(Goal): diff --git a/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py b/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py index 311493a06..512e18f86 100644 --- a/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py +++ b/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py @@ -11,10 +11,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/pipe_test/src/run_hydraulic_power.py b/tests/models/pipe_test/src/run_hydraulic_power.py index d23df477c..320034737 100644 --- a/tests/models/pipe_test/src/run_hydraulic_power.py +++ b/tests/models/pipe_test/src/run_hydraulic_power.py @@ -10,9 +10,9 @@ LinearizedOrderGoalProgrammingMixin, ) -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.physics_mixin import PhysicsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.head_loss_class import HeadLossOption +from mesido.physics_mixin import PhysicsMixin class TargetDemandGoal(Goal): @@ -70,7 +70,6 @@ class HeatProblem( ESDLMixin, CollocatedIntegratedOptimizationProblem, ): - def __init__(self, *args, **kwargs): global head_loss_setting, n_linearization_lines_setting @@ -258,6 +257,6 @@ def post(self): except Exception: # Case when there is only one row value added m_rows_added = 1 - df_MILP.loc[(index_last_row + 1 - m_rows_added) : (index_last_row + 1), "pipe_length"] = ( - manual_set_pipe_length - ) + df_MILP.loc[ + (index_last_row + 1 - m_rows_added) : (index_last_row + 1), "pipe_length" + ] = manual_set_pipe_length diff --git a/tests/models/simple_buffer/src/model.py b/tests/models/simple_buffer/src/model.py index 8af810dfa..494091768 100644 --- a/tests/models/simple_buffer/src/model.py +++ b/tests/models/simple_buffer/src/model.py @@ -1,5 +1,5 @@ -from rtctools_heat_network.pycml import ControlInput, Model as _Model -from rtctools_heat_network.pycml.component_library.milp import ( +from mesido.pycml import ControlInput, Model as _Model +from mesido.pycml.component_library.milp import ( HeatBuffer, HeatDemand, HeatPipe, diff --git a/tests/models/simple_buffer/src/simple_buffer.py b/tests/models/simple_buffer/src/simple_buffer.py index 4bec82ce8..d896f892d 100644 --- a/tests/models/simple_buffer/src/simple_buffer.py +++ b/tests/models/simple_buffer/src/simple_buffer.py @@ -11,9 +11,9 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.component_type_mixin import ModelicaComponentTypeMixin -from rtctools_heat_network.pycml.pycml_mixin import PyCMLMixin -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin if __name__ == "__main__": from model import Model diff --git a/tests/models/source_pipe_sink/src/double_pipe_heat.py b/tests/models/source_pipe_sink/src/double_pipe_heat.py index 38329294f..3f726b422 100644 --- a/tests/models/source_pipe_sink/src/double_pipe_heat.py +++ b/tests/models/source_pipe_sink/src/double_pipe_heat.py @@ -8,12 +8,12 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): @@ -64,12 +64,11 @@ def post(self): class HeatProblemHydraulic(ESDLAdditionalVarsMixin, SourcePipeSink): - def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.heat_network_settings["head_loss_option"] = ( - HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY - ) + self.heat_network_settings[ + "head_loss_option" + ] = HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY self.heat_network_settings["n_linearization_lines"] = 5 self.heat_network_settings["minimize_head_losses"] = True diff --git a/tests/models/source_pipe_split_sink/src/double_pipe_heat.py b/tests/models/source_pipe_split_sink/src/double_pipe_heat.py index 8f96c8714..b3138990e 100644 --- a/tests/models/source_pipe_split_sink/src/double_pipe_heat.py +++ b/tests/models/source_pipe_split_sink/src/double_pipe_heat.py @@ -8,8 +8,8 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/test_case_small_network_ates_buffer_optional_assets/src/run_ates.py b/tests/models/test_case_small_network_ates_buffer_optional_assets/src/run_ates.py index c77a71cf6..60c86a85b 100644 --- a/tests/models/test_case_small_network_ates_buffer_optional_assets/src/run_ates.py +++ b/tests/models/test_case_small_network_ates_buffer_optional_assets/src/run_ates.py @@ -9,10 +9,10 @@ LinearizedOrderGoalProgrammingMixin, ) -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/test_case_small_network_optional_assets_annualized/src/run_annualized.py b/tests/models/test_case_small_network_optional_assets_annualized/src/run_annualized.py index 74a584ee6..945c27f72 100644 --- a/tests/models/test_case_small_network_optional_assets_annualized/src/run_annualized.py +++ b/tests/models/test_case_small_network_optional_assets_annualized/src/run_annualized.py @@ -5,9 +5,9 @@ from rtctools.optimization.goal_programming_mixin import Goal from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.workflows.goals.minimize_tco_goal import MinimizeTCO +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.workflows.goals.minimize_tco_goal import MinimizeTCO try: from models.test_case_small_network_optional_assets_annualized.src.run_ates import ( diff --git a/tests/models/test_case_small_network_optional_assets_annualized/src/run_ates.py b/tests/models/test_case_small_network_optional_assets_annualized/src/run_ates.py index 7166f3af9..fbc9e4842 100644 --- a/tests/models/test_case_small_network_optional_assets_annualized/src/run_ates.py +++ b/tests/models/test_case_small_network_optional_assets_annualized/src/run_ates.py @@ -10,10 +10,10 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/test_case_small_network_with_ates/src/run_ates.py b/tests/models/test_case_small_network_with_ates/src/run_ates.py index db453e388..f8c696f95 100644 --- a/tests/models/test_case_small_network_with_ates/src/run_ates.py +++ b/tests/models/test_case_small_network_with_ates/src/run_ates.py @@ -19,10 +19,10 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/test_case_small_network_with_ates_with_buffer/src/run_ates.py b/tests/models/test_case_small_network_with_ates_with_buffer/src/run_ates.py index 6cfef29ed..5a00a0f0d 100644 --- a/tests/models/test_case_small_network_with_ates_with_buffer/src/run_ates.py +++ b/tests/models/test_case_small_network_with_ates_with_buffer/src/run_ates.py @@ -12,10 +12,10 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases/case_1a/src/run_1a.py b/tests/models/unit_cases/case_1a/src/run_1a.py index df05d1f9a..b87efbeba 100644 --- a/tests/models/unit_cases/case_1a/src/run_1a.py +++ b/tests/models/unit_cases/case_1a/src/run_1a.py @@ -10,11 +10,11 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases/case_1a_t_var/src/run_1a.py b/tests/models/unit_cases/case_1a_t_var/src/run_1a.py index 8211c3b8b..518a652f4 100644 --- a/tests/models/unit_cases/case_1a_t_var/src/run_1a.py +++ b/tests/models/unit_cases/case_1a_t_var/src/run_1a.py @@ -9,11 +9,11 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases/case_2a/src/equal_temperatures.py b/tests/models/unit_cases/case_2a/src/equal_temperatures.py index 42bc6bd59..d92f3e205 100644 --- a/tests/models/unit_cases/case_2a/src/equal_temperatures.py +++ b/tests/models/unit_cases/case_2a/src/equal_temperatures.py @@ -9,10 +9,10 @@ LinearizedOrderGoalProgrammingMixin, ) -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.heat_mixin import HeatMixin -from rtctools_heat_network.qth_mixin import QTHMixin -from rtctools_heat_network.util import run_heat_network_optimization +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.heat_mixin import HeatMixin +from mesido.qth_mixin import QTHMixin +from mesido.util import run_heat_network_optimization class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases/case_2a/src/run_2a.py b/tests/models/unit_cases/case_2a/src/run_2a.py index 596e6623a..baea4838b 100644 --- a/tests/models/unit_cases/case_2a/src/run_2a.py +++ b/tests/models/unit_cases/case_2a/src/run_2a.py @@ -11,11 +11,11 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases/case_3a/src/run_3a.py b/tests/models/unit_cases/case_3a/src/run_3a.py index 11a6d559f..ac25f61ff 100644 --- a/tests/models/unit_cases/case_3a/src/run_3a.py +++ b/tests/models/unit_cases/case_3a/src/run_3a.py @@ -10,12 +10,12 @@ ) from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.qth_not_maintained.qth_mixin import QTHMixin -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py b/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py index ec1c6f357..db6fbb4d1 100644 --- a/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py +++ b/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py @@ -9,9 +9,9 @@ ) from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin -from rtctools_heat_network.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases_electricity/bus_networks/src/example.py b/tests/models/unit_cases_electricity/bus_networks/src/example.py index e84c05cb1..bfe869d1a 100644 --- a/tests/models/unit_cases_electricity/bus_networks/src/example.py +++ b/tests/models/unit_cases_electricity/bus_networks/src/example.py @@ -11,10 +11,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases_electricity/electrolyzer/src/example.py b/tests/models/unit_cases_electricity/electrolyzer/src/example.py index d3211c32c..fd7842c7a 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/src/example.py +++ b/tests/models/unit_cases_electricity/electrolyzer/src/example.py @@ -10,10 +10,10 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class RevenueGoal(Goal): diff --git a/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py b/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py index f76129890..4e9dfd359 100644 --- a/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py +++ b/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py @@ -11,10 +11,10 @@ ) from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin # TODO: check if this run script is still valid as test case for electric heatpump and update with diff --git a/tests/models/unit_cases_electricity/source_sink_cable/src/example.py b/tests/models/unit_cases_electricity/source_sink_cable/src/example.py index 19b5c759f..f5a853348 100644 --- a/tests/models/unit_cases_electricity/source_sink_cable/src/example.py +++ b/tests/models/unit_cases_electricity/source_sink_cable/src/example.py @@ -11,11 +11,11 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.physics_mixin import PhysicsMixin -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py b/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py index e2dd1a9d0..cdd0706b3 100644 --- a/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py +++ b/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py @@ -11,10 +11,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases_gas/source_pipe_split_sink/src/run_source_sink.py b/tests/models/unit_cases_gas/source_pipe_split_sink/src/run_source_sink.py index 1b7912110..c7616b67d 100644 --- a/tests/models/unit_cases_gas/source_pipe_split_sink/src/run_source_sink.py +++ b/tests/models/unit_cases_gas/source_pipe_split_sink/src/run_source_sink.py @@ -11,10 +11,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/models/unit_cases_gas/source_sink/src/run_source_sink.py b/tests/models/unit_cases_gas/source_sink/src/run_source_sink.py index d1c2517a8..8681d8562 100644 --- a/tests/models/unit_cases_gas/source_sink/src/run_source_sink.py +++ b/tests/models/unit_cases_gas/source_sink/src/run_source_sink.py @@ -11,10 +11,10 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_mixin import ESDLMixin -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin class TargetDemandGoal(Goal): diff --git a/tests/test_absolute_heat.py b/tests/test_absolute_heat.py index c78268508..c59c8ac88 100644 --- a/tests/test_absolute_heat.py +++ b/tests/test_absolute_heat.py @@ -3,8 +3,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_asset_is_realized.py b/tests/test_asset_is_realized.py index 2846f1e40..c78dc3451 100644 --- a/tests/test_asset_is_realized.py +++ b/tests/test_asset_is_realized.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestAssetIsRealized(TestCase): diff --git a/tests/test_ates.py b/tests/test_ates.py index cc46aa08b..6adf089b7 100644 --- a/tests/test_ates.py +++ b/tests/test_ates.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_cable_topology_optimization.py b/tests/test_cable_topology_optimization.py index 1c6e790b0..4f596d4f2 100644 --- a/tests/test_cable_topology_optimization.py +++ b/tests/test_cable_topology_optimization.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestElectricityTopo(TestCase): diff --git a/tests/test_electric_bus.py b/tests/test_electric_bus.py index 156c972ec..db7f564d8 100644 --- a/tests/test_electric_bus.py +++ b/tests/test_electric_bus.py @@ -15,8 +15,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestMILPbus(TestCase): diff --git a/tests/test_electric_source_sink.py b/tests/test_electric_source_sink.py index 0053c2339..937111bfa 100644 --- a/tests/test_electric_source_sink.py +++ b/tests/test_electric_source_sink.py @@ -6,8 +6,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile # TODO: still have to make test where elecitricity direction is switched: # e.g. 2 nodes, with at each node a producer and consumer, first one node medium demand, second diff --git a/tests/test_electrolyzer.py b/tests/test_electrolyzer.py index 355696b03..ce29db1ec 100644 --- a/tests/test_electrolyzer.py +++ b/tests/test_electrolyzer.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile # from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_end_scenario_sizing.py b/tests/test_end_scenario_sizing.py index 6468f08cb..00b6529db 100644 --- a/tests/test_end_scenario_sizing.py +++ b/tests/test_end_scenario_sizing.py @@ -5,22 +5,21 @@ from rtctools.util import run_optimization_problem -import rtctools_heat_network._darcy_weisbach as darcy_weisbach -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.workflows import ( +import mesido._darcy_weisbach as darcy_weisbach +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.workflows import ( EndScenarioSizingDiscountedHIGHS, EndScenarioSizingHIGHS, EndScenarioSizingStagedHIGHS, run_end_scenario_sizing, ) -from rtctools_heat_network.workflows.grow_workflow import EndScenarioSizingHeadLossStaged +from mesido.workflows.grow_workflow import EndScenarioSizingHeadLossStaged from utils_tests import demand_matching_test class TestEndScenarioSizing(TestCase): - @classmethod def setUpClass(cls) -> None: import models.test_case_small_network_ates_buffer_optional_assets.src.run_ates as run_ates diff --git a/tests/test_end_scenario_sizing_annualized.py b/tests/test_end_scenario_sizing_annualized.py index 274f7646e..8e29ef8f8 100644 --- a/tests/test_end_scenario_sizing_annualized.py +++ b/tests/test_end_scenario_sizing_annualized.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestEndScenarioSizingAnnualized(TestCase): diff --git a/tests/test_esdl_parsing.py b/tests/test_esdl_parsing.py index d4c4b8dd0..1a8334581 100644 --- a/tests/test_esdl_parsing.py +++ b/tests/test_esdl_parsing.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser, ESDLStringParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser, ESDLStringParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestESDLParsing(unittest.TestCase): diff --git a/tests/test_esdl_pycml.py b/tests/test_esdl_pycml.py index 909ebb512..8afe5ee85 100644 --- a/tests/test_esdl_pycml.py +++ b/tests/test_esdl_pycml.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestESDL(TestCase): diff --git a/tests/test_gas_multi_demand_source_node.py b/tests/test_gas_multi_demand_source_node.py index bbba051fd..bf4cf98e5 100644 --- a/tests/test_gas_multi_demand_source_node.py +++ b/tests/test_gas_multi_demand_source_node.py @@ -6,8 +6,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestMILPGasMultiDemandSourceNode(TestCase): diff --git a/tests/test_gas_pipe_topology_optimization.py b/tests/test_gas_pipe_topology_optimization.py index 3ba9b14a5..ca119f5ad 100644 --- a/tests/test_gas_pipe_topology_optimization.py +++ b/tests/test_gas_pipe_topology_optimization.py @@ -5,9 +5,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption class TestGasNetwork(TestCase): @@ -30,9 +30,9 @@ def test_gas_pipe_top(self): class GasNetworkProblem(HeatProblem): def energy_system_options(self): options = super().energy_system_options() - self.gas_network_settings["head_loss_option"] = ( - HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY - ) + self.gas_network_settings[ + "head_loss_option" + ] = HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY self.gas_network_settings["minimize_head_losses"] = True return options diff --git a/tests/test_gas_source_sink.py b/tests/test_gas_source_sink.py index 314ba8465..2198133d4 100644 --- a/tests/test_gas_source_sink.py +++ b/tests/test_gas_source_sink.py @@ -6,9 +6,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption class TestMILPGasSourceSink(TestCase): @@ -30,9 +30,9 @@ def test_source_sink(self): class TestSourceSink(GasProblem): def energy_system_options(self): options = super().energy_system_options() - self.heat_network_settings["head_loss_option"] = ( - HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY - ) + self.heat_network_settings[ + "head_loss_option" + ] = HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY self.heat_network_settings["n_linearization_lines"] = 5 self.heat_network_settings["minimize_head_losses"] = True diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 25410ce69..6141393aa 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -5,12 +5,12 @@ from rtctools.util import run_optimization_problem -import rtctools_heat_network._darcy_weisbach as darcy_weisbach -from rtctools_heat_network.constants import GRAVITATIONAL_CONSTANT -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.network_common import NetworkSettings +import mesido._darcy_weisbach as darcy_weisbach +from mesido.constants import GRAVITATIONAL_CONSTANT +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.network_common import NetworkSettings from utils_tests import demand_matching_test @@ -56,15 +56,15 @@ def energy_system_options(self): head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY ): - self.gas_network_settings["head_loss_option"] = ( - HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY - ) + self.gas_network_settings[ + "head_loss_option" + ] = HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY self.gas_network_settings["n_linearization_lines"] = 5 self.heat_network_settings["minimize_head_losses"] = True elif head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_EQUALITY: - self.heat_network_settings["head_loss_option"] = ( - HeadLossOption.LINEARIZED_N_LINES_EQUALITY - ) + self.heat_network_settings[ + "head_loss_option" + ] = HeadLossOption.LINEARIZED_N_LINES_EQUALITY self.heat_network_settings["minimize_head_losses"] = True self.heat_network_settings["minimum_velocity"] = 1.0e-6 @@ -118,8 +118,8 @@ def energy_system_options(self): ) * 8.0 * pipe_length - * (v_inspect * np.pi * pipe_diameter**2 / 4.0) ** 2 - / (pipe_diameter**5 * GRAVITATIONAL_CONSTANT * np.pi**2) + * (v_inspect * np.pi * pipe_diameter ** 2 / 4.0) ** 2 + / (pipe_diameter ** 5 * GRAVITATIONAL_CONSTANT * np.pi ** 2) ) # Approximate dH [m] vs Q [m3/s] with a linear line between between v_points # dH_manual_linear = a*Q + b @@ -139,12 +139,12 @@ def energy_system_options(self): ) delta_volumetric_flow = ( - v_points[linearized_idx[1]] * np.pi * pipe_diameter**2 / 4.0 - ) - (v_points[linearized_idx[0]] * np.pi * pipe_diameter**2 / 4.0) + v_points[linearized_idx[1]] * np.pi * pipe_diameter ** 2 / 4.0 + ) - (v_points[linearized_idx[0]] * np.pi * pipe_diameter ** 2 / 4.0) a = delta_dh_theory / delta_volumetric_flow b = delta_dh_theory - a * delta_volumetric_flow - dh_manual_linear = a * (v_inspect * np.pi * pipe_diameter**2 / 4.0) + b + dh_manual_linear = a * (v_inspect * np.pi * pipe_diameter ** 2 / 4.0) + b dh_milp_head_loss_function = darcy_weisbach.head_loss( v_inspect, pipe_diameter, pipe_length, pipe_wall_roughness, temperature @@ -287,8 +287,8 @@ def energy_system_options(self): ) * 8.0 * pipe_length - * (v_inspect * np.pi * pipe_diameter**2 / 4.0) ** 2 - / (pipe_diameter**5 * GRAVITATIONAL_CONSTANT * np.pi**2) + * (v_inspect * np.pi * pipe_diameter ** 2 / 4.0) ** 2 + / (pipe_diameter ** 5 * GRAVITATIONAL_CONSTANT * np.pi ** 2) ) # Approximate dH [m] vs Q [m3/s] with a linear line between between v_points # dH_manual_linear = a*Q + b @@ -299,13 +299,13 @@ def energy_system_options(self): v_points[0], pipe_diameter, pipe_length, pipe_wall_roughness, temperature ) - delta_volumetric_flow = (v_points[1] * np.pi * pipe_diameter**2 / 4.0) - ( - v_points[0] * np.pi * pipe_diameter**2 / 4.0 + delta_volumetric_flow = (v_points[1] * np.pi * pipe_diameter ** 2 / 4.0) - ( + v_points[0] * np.pi * pipe_diameter ** 2 / 4.0 ) a = delta_dh_theory / delta_volumetric_flow b = delta_dh_theory - a * delta_volumetric_flow - dh_manual_linear = a * (v_inspect * np.pi * pipe_diameter**2 / 4.0) + b + dh_manual_linear = a * (v_inspect * np.pi * pipe_diameter ** 2 / 4.0) + b dh_milp_head_loss_function = darcy_weisbach.head_loss( v_inspect, pipe_diameter, pipe_length, pipe_wall_roughness, temperature @@ -469,13 +469,13 @@ def energy_system_options(self): pressure=solution.parameters(0)[f"{pipes[0]}.pressure"], ) - delta_volumetric_flow = (v_points[1] * np.pi * pipe_diameter**2 / 4.0) - ( - v_points[0] * np.pi * pipe_diameter**2 / 4.0 + delta_volumetric_flow = (v_points[1] * np.pi * pipe_diameter ** 2 / 4.0) - ( + v_points[0] * np.pi * pipe_diameter ** 2 / 4.0 ) a = delta_dh_theory / delta_volumetric_flow b = delta_dh_theory - a * delta_volumetric_flow - dh_manual_linear = a * (v_inspect * np.pi * pipe_diameter**2 / 4.0) + b + dh_manual_linear = a * (v_inspect * np.pi * pipe_diameter ** 2 / 4.0) + b # Check that the head loss approximation with 2 linear lines (inequality constraints # is < than the linear equality head loss constraint @@ -635,19 +635,19 @@ def energy_system_options(self): ) delta_volumetric_flow.append( - (v_points[ii + 1] * np.pi * pipe_diameter**2 / 4.0) - - (v_points[ii] * np.pi * pipe_diameter**2 / 4.0) + (v_points[ii + 1] * np.pi * pipe_diameter ** 2 / 4.0) + - (v_points[ii] * np.pi * pipe_diameter ** 2 / 4.0) ) a.append(delta_dh_theory[ii] / delta_volumetric_flow[ii]) b.append(sum(delta_dh_theory[0:ii]) - a[ii] * sum(delta_volumetric_flow[0:ii])) # dh for the 2 data point on the 1st linear line segment - dh_manual_linear.append(a[0] * (v_inspect[0] * np.pi * pipe_diameter**2 / 4.0) + b[0]) - dh_manual_linear.append(a[0] * (v_inspect[1] * np.pi * pipe_diameter**2 / 4.0) + b[0]) + dh_manual_linear.append(a[0] * (v_inspect[0] * np.pi * pipe_diameter ** 2 / 4.0) + b[0]) + dh_manual_linear.append(a[0] * (v_inspect[1] * np.pi * pipe_diameter ** 2 / 4.0) + b[0]) # dh for the 2 data point on the 2nd linear line segment - dh_manual_linear.append(a[1] * (v_inspect[2] * np.pi * pipe_diameter**2 / 4.0) + b[1]) - dh_manual_linear.append(a[1] * (v_inspect[3] * np.pi * pipe_diameter**2 / 4.0) + b[1]) + dh_manual_linear.append(a[1] * (v_inspect[2] * np.pi * pipe_diameter ** 2 / 4.0) + b[1]) + dh_manual_linear.append(a[1] * (v_inspect[3] * np.pi * pipe_diameter ** 2 / 4.0) + b[1]) # Gas flow balance np.testing.assert_allclose( diff --git a/tests/test_head_loss_class.py b/tests/test_head_loss_class.py index 3c890a3d6..7d6d1fd27 100644 --- a/tests/test_head_loss_class.py +++ b/tests/test_head_loss_class.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.head_loss_class import HeadLossOption -from rtctools_heat_network.network_common import NetworkSettings +from mesido.head_loss_class import HeadLossOption +from mesido.network_common import NetworkSettings class TestHeadLossCalculation(TestCase): diff --git a/tests/test_heat.py b/tests/test_heat.py index 899ec0011..fefa9e07a 100644 --- a/tests/test_heat.py +++ b/tests/test_heat.py @@ -5,9 +5,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -125,9 +125,9 @@ class MinPressure(SmallerPipes): def energy_system_options(self): options = super().energy_system_options() assert "pipe_minimum_pressure" in self.heat_network_settings - self.heat_network_settings["pipe_minimum_pressure"] = ( - TestMinMaxPressureOptions.min_pressure - ) + self.heat_network_settings[ + "pipe_minimum_pressure" + ] = TestMinMaxPressureOptions.min_pressure return options class MaxPressure(SmallerPipes): @@ -140,12 +140,12 @@ def energy_system_options(self): class MinMaxPressure(SmallerPipes): def energy_system_options(self): options = super().energy_system_options() - self.heat_network_settings["pipe_minimum_pressure"] = ( - TestMinMaxPressureOptions.min_pressure - ) - self.heat_network_settings["pipe_maximum_pressure"] = ( - TestMinMaxPressureOptions.max_pressure - ) + self.heat_network_settings[ + "pipe_minimum_pressure" + ] = TestMinMaxPressureOptions.min_pressure + self.heat_network_settings[ + "pipe_maximum_pressure" + ] = TestMinMaxPressureOptions.max_pressure return options def test_min_max_pressure_options(self): @@ -330,9 +330,9 @@ def test_disconnected_network_pipe(self): class ModelDisconnectedDarcyWeisbach(ModelDisconnected): def energy_system_options(self): options = super().energy_system_options() - self.heat_network_settings["head_loss_option"] = ( - HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY - ) + self.heat_network_settings[ + "head_loss_option" + ] = HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY return options def test_disconnected_pipe_darcy_weisbach(self): diff --git a/tests/test_heat_loss_u_values.py b/tests/test_heat_loss_u_values.py index 04b1fa4dc..46ce86526 100644 --- a/tests/test_heat_loss_u_values.py +++ b/tests/test_heat_loss_u_values.py @@ -2,7 +2,7 @@ import numpy as np -from rtctools_heat_network._heat_loss_u_values_pipe import heat_loss_u_values_pipe +from mesido._heat_loss_u_values_pipe import heat_loss_u_values_pipe class TestHeatLossUValues(TestCase): diff --git a/tests/test_hydraulic_power.py b/tests/test_hydraulic_power.py index 57ef5b1b3..55f20a2ba 100644 --- a/tests/test_hydraulic_power.py +++ b/tests/test_hydraulic_power.py @@ -7,9 +7,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.head_loss_class import HeadLossOption +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption class TestHydraulicPower(TestCase): @@ -57,7 +57,7 @@ def test_hydraulic_power(self): } run_hydraulic_power.comp_vars_init = { "pipe_length": 0.0, # [m] - "heat_demand": [3.95 * 10**6, 3.95 * 10**6], # [W] + "heat_demand": [3.95 * 10 ** 6, 3.95 * 10 ** 6], # [W] "pipe_DN_MILP": 300, # [mm] } standard_columns_specified = [ diff --git a/tests/test_insulation.py b/tests/test_insulation.py index 9e0dfcf8b..9d1caac84 100644 --- a/tests/test_insulation.py +++ b/tests/test_insulation.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestInsulation(TestCase): diff --git a/tests/test_max_size_and_optional_assets.py b/tests/test_max_size_and_optional_assets.py index f6eb6730b..fb835debd 100644 --- a/tests/test_max_size_and_optional_assets.py +++ b/tests/test_max_size_and_optional_assets.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_multicommodity.py b/tests/test_multicommodity.py index b733f7579..f42eefb93 100644 --- a/tests/test_multicommodity.py +++ b/tests/test_multicommodity.py @@ -6,8 +6,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_multiple_carriers.py b/tests/test_multiple_carriers.py index f049d9a5f..406fc71bf 100644 --- a/tests/test_multiple_carriers.py +++ b/tests/test_multiple_carriers.py @@ -3,8 +3,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index 5eb254b48..dad898f68 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_network_simulator.py b/tests/test_network_simulator.py index 0bc21490b..7abf80bc5 100644 --- a/tests/test_network_simulator.py +++ b/tests/test_network_simulator.py @@ -5,9 +5,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.workflows import NetworkSimulatorHIGHSTestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.workflows import NetworkSimulatorHIGHSTestCase from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_pipe_diameter_sizing.py b/tests/test_pipe_diameter_sizing.py index 5071f726f..464bd73dd 100644 --- a/tests/test_pipe_diameter_sizing.py +++ b/tests/test_pipe_diameter_sizing.py @@ -6,9 +6,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network._darcy_weisbach import friction_factor -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido._darcy_weisbach import friction_factor +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -116,7 +116,7 @@ def test_half_network_gone(self): parameters[f"{pipe}.temperature"], ) c_v = parameters[f"{pipe}.length"] * ff / (2 * 9.81) / pc.inner_diameter - dh_max = c_v * pc.maximum_velocity**2 + dh_max = c_v * pc.maximum_velocity ** 2 dh_manual = dh_max * results[f"{pipe}.Q"][1:] / pc.area / pc.maximum_velocity np.testing.assert_allclose(-dh_manual, results[f"{pipe}.dH"][1:], atol=1.0e-12) diff --git a/tests/test_producer_profiles.py b/tests/test_producer_profiles.py index 453305ed5..1b0574cd9 100644 --- a/tests/test_producer_profiles.py +++ b/tests/test_producer_profiles.py @@ -3,8 +3,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index d8ad6d7ba..675f5110e 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -8,9 +8,9 @@ import pandas as pd -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import InfluxDBProfileReader, ProfileReaderFromFile -from rtctools_heat_network.workflows import EndScenarioSizingStagedHIGHS +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import InfluxDBProfileReader, ProfileReaderFromFile +from mesido.workflows import EndScenarioSizingStagedHIGHS class MockInfluxDBProfileReader(InfluxDBProfileReader): diff --git a/tests/test_pycml.py b/tests/test_pycml.py index 5264d2123..b05013865 100644 --- a/tests/test_pycml.py +++ b/tests/test_pycml.py @@ -2,7 +2,7 @@ import numpy as np -from rtctools_heat_network.pycml import Model, Variable +from mesido.pycml import Model, Variable class TestPyCML(TestCase): diff --git a/tests/test_setpoint_constraints.py b/tests/test_setpoint_constraints.py index a5fbb7f9d..eca280e44 100644 --- a/tests/test_setpoint_constraints.py +++ b/tests/test_setpoint_constraints.py @@ -7,8 +7,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile class TestSetpointConstraints(TestCase): diff --git a/tests/test_temperature_ates_hp.py b/tests/test_temperature_ates_hp.py index cfb3fa899..bc379e7d1 100644 --- a/tests/test_temperature_ates_hp.py +++ b/tests/test_temperature_ates_hp.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_topo_constraints.py b/tests/test_topo_constraints.py index 74a2886f5..f0636694a 100644 --- a/tests/test_topo_constraints.py +++ b/tests/test_topo_constraints.py @@ -8,11 +8,11 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network._heat_loss_u_values_pipe import pipe_heat_loss -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile -from rtctools_heat_network.pipe_class import PipeClass -from rtctools_heat_network.techno_economic_mixin import TechnoEconomicMixin +from mesido._heat_loss_u_values_pipe import pipe_heat_loss +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.pipe_class import PipeClass +from mesido.techno_economic_mixin import TechnoEconomicMixin MIP_TOLERANCE = 1e-8 diff --git a/tests/test_varying_temperature.py b/tests/test_varying_temperature.py index ef74c15e8..43be913ec 100644 --- a/tests/test_varying_temperature.py +++ b/tests/test_varying_temperature.py @@ -5,9 +5,9 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network._heat_loss_u_values_pipe import pipe_heat_loss -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido._heat_loss_u_values_pipe import pipe_heat_loss +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_warmingup_unit_cases.py b/tests/test_warmingup_unit_cases.py index acffdbc06..9573a605c 100644 --- a/tests/test_warmingup_unit_cases.py +++ b/tests/test_warmingup_unit_cases.py @@ -5,8 +5,8 @@ from rtctools.util import run_optimization_problem -from rtctools_heat_network.esdl.esdl_parser import ESDLFileParser -from rtctools_heat_network.esdl.profile_parser import ProfileReaderFromFile +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test From 39ab6e6556cdbb98a0abc48d545a7d30b894fc6a Mon Sep 17 00:00:00 2001 From: Rojer Date: Sun, 24 Mar 2024 18:42:18 +0100 Subject: [PATCH 004/275] added keyword --- setup.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 914a11e96..8588fd678 100644 --- a/setup.py +++ b/setup.py @@ -50,7 +50,7 @@ "Femke Janssen, Jesús Andrés Rodríguez Sarasty, " "Thijs van der Klauw", license="LGPLv3", - keywords="Multi-Energy-Systems", + keywords="Multi-Energy-Systems, optimization", platforms=["Windows", "Linux", "Mac OS-X", "Unix"], packages=find_packages("src"), package_dir={"": "src"}, @@ -70,7 +70,5 @@ include_package_data=True, python_requires=">=3.8,<3.11", cmdclass=versioneer.get_cmdclass(), - entry_points={ - "rtctools.libraries.modelica": ["library_folder = mesido:modelica"] - }, + entry_points={"rtctools.libraries.modelica": ["library_folder = mesido:modelica"]}, ) From 1e0152e5b784a04c41a9fe9145d162ada77a269f Mon Sep 17 00:00:00 2001 From: Rojer Date: Sun, 24 Mar 2024 19:23:13 +0100 Subject: [PATCH 005/275] style --- examples/pipe_diameter_sizing/src/example.py | 12 ++-- src/mesido/_darcy_weisbach.py | 10 ++-- src/mesido/_heat_loss_u_values_pipe.py | 4 +- src/mesido/asset_sizing_mixin.py | 42 +++++++------- src/mesido/component_type_mixin.py | 8 +-- src/mesido/electricity_physics_mixin.py | 7 +-- src/mesido/esdl/_update_edr_pipes_json.py | 4 +- src/mesido/esdl/asset_to_component_base.py | 4 +- src/mesido/esdl/esdl_additional_vars_mixin.py | 4 +- src/mesido/esdl/esdl_heat_model.py | 15 +++-- src/mesido/esdl/esdl_mixin.py | 23 ++++---- src/mesido/esdl/esdl_parser.py | 2 +- src/mesido/esdl/esdl_qth_model.py | 9 ++- src/mesido/esdl/profile_parser.py | 4 +- src/mesido/financial_mixin.py | 11 ++-- src/mesido/gas_physics_mixin.py | 14 ++--- src/mesido/head_loss_class.py | 23 ++++---- src/mesido/heat_physics_mixin.py | 46 +++++++-------- src/mesido/physics_mixin.py | 13 ++--- src/mesido/pipe_class.py | 4 +- .../milp/_internal/heat_component.py | 4 +- .../milp/electricity/electricity_cable.py | 6 +- .../milp/electricity/electricity_demand.py | 4 +- .../milp/electricity/electricity_node.py | 4 +- .../milp/electricity/electricity_source.py | 4 +- .../component_library/milp/gas/gas_demand.py | 4 +- .../component_library/milp/gas/gas_pipe.py | 6 +- .../component_library/milp/gas/gas_source.py | 4 +- .../milp/gas/gas_tank_storage.py | 4 +- .../milp/heat/_non_storage_component.py | 4 +- .../pycml/component_library/milp/heat/ates.py | 5 +- .../milp/heat/heat_buffer.py | 6 +- .../milp/heat/heat_exchanger.py | 4 +- .../component_library/milp/heat/heat_pipe.py | 8 +-- .../component_library/milp/heat/heat_pump.py | 4 +- .../milp/heat/heat_source.py | 4 +- .../pycml/component_library/milp/heat/pump.py | 4 +- .../milp/multicommodity/electrolyzer.py | 4 +- .../pycml/component_library/qth/buffer.py | 8 +-- .../pycml/component_library/qth/pipe.py | 6 +- .../pycml/component_library/qth/source.py | 4 +- .../bounds_to_pipe_flow_directions_mixin.py | 6 +- .../qth_not_maintained/head_loss_mixin.py | 16 ++--- .../qth_not_maintained/qth_loop_mixin.py | 4 +- src/mesido/qth_not_maintained/qth_mixin.py | 16 ++--- src/mesido/techno_economic_mixin.py | 10 ++-- .../workflows/goals/minimize_tco_goal.py | 4 +- src/mesido/workflows/grow_workflow.py | 28 ++++----- src/mesido/workflows/io/write_output.py | 14 ++--- src/mesido/workflows/simulator_workflow.py | 25 ++++---- tests/models/absolute_heat/src/example.py | 10 ++-- .../src/run_ates_temperature.py | 20 +++---- tests/models/basic_buffer/src/compare.py | 4 +- .../src/heat_comparison.py | 10 ++-- .../src/qth_comparison.py | 16 ++--- .../src/qth_minimize_temperatures.py | 14 ++--- .../double_pipe_heat/src/double_pipe_heat.py | 8 +-- .../src/cq2_inequality_vs_equality.py | 4 +- .../double_pipe_qth/src/double_pipe_qth.py | 12 ++-- .../src/single_pipe_no_headloss.py | 4 +- .../electricity_cable_topology/src/example.py | 12 ++-- tests/models/emerge/src/example.py | 14 ++--- tests/models/gas_pipe_topology/src/example.py | 10 ++-- .../heat_exchange/src/run_heat_exchanger.py | 12 ++-- tests/models/heatpump/src/run_heat_pump.py | 10 ++-- tests/models/insulation/src/run_insulation.py | 12 ++-- .../src/run_multiple_carriers.py | 10 ++-- .../src/run_multiple_gas_carriers.py | 10 ++-- .../pipe_test/src/run_hydraulic_power.py | 14 ++--- .../models/simple_buffer/src/simple_buffer.py | 8 +-- .../source_pipe_sink/src/double_pipe_heat.py | 20 +++---- .../src/double_pipe_heat.py | 6 +- .../src/run_ates.py | 10 ++-- .../src/run_annualized.py | 6 +- .../src/run_ates.py | 10 ++-- .../src/run_ates.py | 11 ++-- .../src/run_ates.py | 10 ++-- tests/models/unit_cases/case_1a/src/run_1a.py | 12 ++-- .../unit_cases/case_1a_t_var/src/run_1a.py | 12 ++-- .../case_2a/src/equal_temperatures.py | 10 ++-- tests/models/unit_cases/case_2a/src/run_2a.py | 12 ++-- tests/models/unit_cases/case_3a/src/run_3a.py | 14 ++--- .../unit_cases/case_3a_setpoint/src/run_3a.py | 8 +-- .../bus_networks/src/example.py | 10 ++-- .../electrolyzer/src/example.py | 10 ++-- .../heat_pump_elec/src/run_hp_elec.py | 10 ++-- .../source_sink_cable/src/example.py | 12 ++-- .../multi_demand_source_node/src/run_test.py | 10 ++-- .../src/run_source_sink.py | 10 ++-- .../source_sink/src/run_source_sink.py | 10 ++-- tests/test_absolute_heat.py | 4 +- tests/test_asset_is_realized.py | 6 +- tests/test_ates.py | 6 +- tests/test_cable_topology_optimization.py | 6 +- tests/test_electric_bus.py | 6 +- tests/test_electric_source_sink.py | 6 +- tests/test_electrolyzer.py | 6 +- tests/test_end_scenario_sizing.py | 8 +-- tests/test_end_scenario_sizing_annualized.py | 6 +- tests/test_esdl_parsing.py | 6 +- tests/test_esdl_pycml.py | 6 +- tests/test_gas_multi_demand_source_node.py | 6 +- tests/test_gas_pipe_topology_optimization.py | 14 ++--- tests/test_gas_source_sink.py | 14 ++--- tests/test_head_loss.py | 58 +++++++++---------- tests/test_head_loss_class.py | 6 +- tests/test_heat.py | 32 +++++----- tests/test_heat_loss_u_values.py | 4 +- tests/test_hydraulic_power.py | 11 ++-- tests/test_insulation.py | 6 +- tests/test_max_size_and_optional_assets.py | 6 +- tests/test_multicommodity.py | 6 +- tests/test_multiple_carriers.py | 4 +- ...est_multiple_in_and_out_port_components.py | 6 +- tests/test_network_simulator.py | 8 +-- tests/test_pipe_diameter_sizing.py | 10 ++-- tests/test_producer_profiles.py | 4 +- tests/test_profile_parsing.py | 9 +-- tests/test_pycml.py | 4 +- tests/test_setpoint_constraints.py | 6 +- tests/test_temperature_ates_hp.py | 6 +- tests/test_topo_constraints.py | 10 ++-- tests/test_varying_temperature.py | 8 +-- tests/test_warmingup_unit_cases.py | 6 +- 124 files changed, 604 insertions(+), 616 deletions(-) diff --git a/examples/pipe_diameter_sizing/src/example.py b/examples/pipe_diameter_sizing/src/example.py index 797c020c7..4ba076214 100644 --- a/examples/pipe_diameter_sizing/src/example.py +++ b/examples/pipe_diameter_sizing/src/example.py @@ -1,3 +1,9 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.pipe_class import PipeClass +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -15,12 +21,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.pipe_class import PipeClass -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/src/mesido/_darcy_weisbach.py b/src/mesido/_darcy_weisbach.py index fb08078cb..1a5f60273 100644 --- a/src/mesido/_darcy_weisbach.py +++ b/src/mesido/_darcy_weisbach.py @@ -4,11 +4,11 @@ from iapws import IAPWS95 -import numpy as np - from mesido.constants import GRAVITATIONAL_CONSTANT from mesido.network_common import NetworkSettings +import numpy as np + def _kinematic_viscosity(temperature, network_type=NetworkSettings.NETWORK_TYPE_HEAT, pressure=0.0): """ @@ -127,7 +127,7 @@ def head_loss( pressure=pressure, ) - return length * f / (2 * GRAVITATIONAL_CONSTANT) * velocity ** 2 / diameter + return length * f / (2 * GRAVITATIONAL_CONSTANT) * velocity**2 / diameter def get_linear_pipe_dh_vs_q_fit( @@ -144,7 +144,7 @@ def get_linear_pipe_dh_vs_q_fit( This function returns a set of coefficients to approximate a head loss curve with linear functions in the form of: head loss = b + (a * Q) """ - area = math.pi * diameter ** 2 / 4 + area = math.pi * diameter**2 / 4 v_points = np.linspace(0.0, v_max, n_lines + 1) q_points = v_points * area @@ -184,7 +184,7 @@ def get_linear_pipe_power_hydraulic_vs_q_fit( """ power_hydraulic = b + (a * Q) """ - area = math.pi * diameter ** 2 / 4.0 + area = math.pi * diameter**2 / 4.0 v_points = np.linspace(0.0, v_max, n_lines + 1) q_points = v_points * area diff --git a/src/mesido/_heat_loss_u_values_pipe.py b/src/mesido/_heat_loss_u_values_pipe.py index b6456835a..d3fb7889b 100644 --- a/src/mesido/_heat_loss_u_values_pipe.py +++ b/src/mesido/_heat_loss_u_values_pipe.py @@ -86,8 +86,8 @@ def heat_loss_u_values_pipe( ) if neighbour: - u_1 = (r_subsoil + r_ins) / ((r_subsoil + r_ins) ** 2 - r_m ** 2) - u_2 = r_m / ((r_subsoil + r_ins) ** 2 - r_m ** 2) + u_1 = (r_subsoil + r_ins) / ((r_subsoil + r_ins) ** 2 - r_m**2) + u_2 = r_m / ((r_subsoil + r_ins) ** 2 - r_m**2) else: u_1 = 1 / (r_subsoil + r_ins) u_2 = 0 diff --git a/src/mesido/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py index e4df1f7b8..e048db0f7 100644 --- a/src/mesido/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -3,6 +3,12 @@ import casadi as ca +from mesido._heat_loss_u_values_pipe import pipe_heat_loss +from mesido.base_component_type_mixin import BaseComponentTypeMixin +from mesido.demand_insulation_class import DemandInsulationClass +from mesido.head_loss_class import HeadLossOption +from mesido.pipe_class import CableClass, GasPipeClass, PipeClass + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -10,14 +16,6 @@ ) from rtctools.optimization.timeseries import Timeseries -from mesido._heat_loss_u_values_pipe import pipe_heat_loss - - -from .base_component_type_mixin import BaseComponentTypeMixin -from .demand_insulation_class import DemandInsulationClass -from .head_loss_class import HeadLossOption -from .pipe_class import CableClass, GasPipeClass, PipeClass - logger = logging.getLogger("mesido") @@ -222,12 +220,12 @@ def pre(self): unique_cable_classes = self.get_unique_cable_classes() for cc in unique_cable_classes: cable_class_count = f"{cc.name}__global_cable_class_count" - self.__electricity_cable_topo_global_cable_class_count_var[ + self.__electricity_cable_topo_global_cable_class_count_var[cable_class_count] = ( + ca.MX.sym(cable_class_count) + ) + self.__electricity_cable_topo_global_cable_class_count_map[f"{cc.name}"] = ( cable_class_count - ] = ca.MX.sym(cable_class_count) - self.__electricity_cable_topo_global_cable_class_count_map[ - f"{cc.name}" - ] = cable_class_count + ) self.__electricity_cable_topo_global_cable_class_count_var_bounds[cable_class_count] = ( 0.0, len(self.energy_system_components.get("electricity_cable", [])), @@ -340,9 +338,9 @@ def pre(self): self._electricity_cable_topo_cable_class_map[cable][ c ] = cable_class_var_name - self.__electricity_cable_topo_cable_class_var[ - cable_class_var_name - ] = ca.MX.sym(cable_class_var_name) + self.__electricity_cable_topo_cable_class_var[cable_class_var_name] = ( + ca.MX.sym(cable_class_var_name) + ) self.__electricity_cable_topo_cable_class_var_bounds[ cable_class_var_name ] = (0.0, 1.0) @@ -693,9 +691,9 @@ def pre(self): self.__pipe_topo_pipe_class_discharge_ordering_map[pipe][ c ] = pipe_class_ordering_name - self.__pipe_topo_pipe_class_discharge_ordering_var[ - pipe_class_ordering_name - ] = ca.MX.sym(pipe_class_ordering_name) + self.__pipe_topo_pipe_class_discharge_ordering_var[pipe_class_ordering_name] = ( + ca.MX.sym(pipe_class_ordering_name) + ) self.__pipe_topo_pipe_class_discharge_ordering_var_bounds[ pipe_class_ordering_name ] = (0.0, 1.0) @@ -703,9 +701,9 @@ def pre(self): self.__pipe_topo_pipe_class_cost_ordering_map[pipe][ c ] = pipe_class_cost_ordering_name - self.__pipe_topo_pipe_class_cost_ordering_var[ - pipe_class_cost_ordering_name - ] = ca.MX.sym(pipe_class_cost_ordering_name) + self.__pipe_topo_pipe_class_cost_ordering_var[pipe_class_cost_ordering_name] = ( + ca.MX.sym(pipe_class_cost_ordering_name) + ) self.__pipe_topo_pipe_class_cost_ordering_var_bounds[ pipe_class_cost_ordering_name ] = (0.0, 1.0) diff --git a/src/mesido/component_type_mixin.py b/src/mesido/component_type_mixin.py index 4fe700b6d..3e6b2c2a3 100644 --- a/src/mesido/component_type_mixin.py +++ b/src/mesido/component_type_mixin.py @@ -1,11 +1,11 @@ import logging from typing import Dict, Set -from pymoca.backends.casadi.alias_relation import AliasRelation +from mesido.base_component_type_mixin import BaseComponentTypeMixin +from mesido.heat_network_common import NodeConnectionDirection +from mesido.topology import Topology -from .base_component_type_mixin import BaseComponentTypeMixin -from .heat_network_common import NodeConnectionDirection -from .topology import Topology +from pymoca.backends.casadi.alias_relation import AliasRelation logger = logging.getLogger("mesido") diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index 44fdd79cd..23018bd89 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -4,6 +4,8 @@ import casadi as ca +from mesido.base_component_type_mixin import BaseComponentTypeMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -12,9 +14,6 @@ from rtctools.optimization.timeseries import Timeseries -from .base_component_type_mixin import BaseComponentTypeMixin - - logger = logging.getLogger("mesido") @@ -256,7 +255,7 @@ def __electricity_cable_mixing_path_constraints(self, ensemble_member): cable_classes = self._electricity_cable_topo_cable_class_map[cable] max_res = max([cc.resistance for cc in cable_classes]) max_i_max = max([cc.maximum_current for cc in cable_classes]) - big_m = max_i_max ** 2 * max_res * length + big_m = max_i_max**2 * max_res * length constraint_nominal = max_i_max * v_nom * max_res * length for cc_data, cc_name in cable_classes.items(): if cc_name != "None": diff --git a/src/mesido/esdl/_update_edr_pipes_json.py b/src/mesido/esdl/_update_edr_pipes_json.py index f6ce54530..9fe7479c6 100644 --- a/src/mesido/esdl/_update_edr_pipes_json.py +++ b/src/mesido/esdl/_update_edr_pipes_json.py @@ -2,10 +2,10 @@ import xml.etree.ElementTree as ET # noqa: N817 from typing import Tuple -import requests - from mesido._heat_loss_u_values_pipe import heat_loss_u_values_pipe +import requests + def main(): """ diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index df6abcd17..a7b69e4d9 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -8,10 +8,10 @@ import esdl from esdl import TimeUnitEnum, UnitEnum +from mesido.esdl._exceptions import _RetryLaterException +from mesido.esdl.common import Asset from mesido.pycml import Model as _Model -from ._exceptions import _RetryLaterException -from .common import Asset logger = logging.getLogger("mesido") diff --git a/src/mesido/esdl/esdl_additional_vars_mixin.py b/src/mesido/esdl/esdl_additional_vars_mixin.py index 4a7cacb5b..293b775e4 100644 --- a/src/mesido/esdl/esdl_additional_vars_mixin.py +++ b/src/mesido/esdl/esdl_additional_vars_mixin.py @@ -2,14 +2,14 @@ import esdl +from mesido.network_common import NetworkSettings + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, ) -from mesido.network_common import NetworkSettings - logger = logging.getLogger("mesido") diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index f0e8693e7..a13c7dc51 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -6,6 +6,10 @@ import esdl +from mesido.esdl.asset_to_component_base import MODIFIERS, _AssetToComponentBase +from mesido.esdl.common import Asset +from mesido.esdl.esdl_model_base import _ESDLModelBase +from mesido.network_common import NetworkSettings from mesido.pycml.component_library.milp import ( ATES, CheckValve, @@ -36,11 +40,6 @@ from scipy.optimize import fsolve -from .asset_to_component_base import MODIFIERS, _AssetToComponentBase -from .common import Asset -from .esdl_model_base import _ESDLModelBase -from ..network_common import NetworkSettings - logger = logging.getLogger("mesido") @@ -433,9 +432,9 @@ def convert_heat_pipe( ) = self._pipe_get_diameter_and_insulation(asset) if isinstance(asset.in_ports[0].carrier, esdl.esdl.GasCommodity): - q_nominal = math.pi * diameter ** 2 / 4.0 * self.v_max_gas / 2.0 + q_nominal = math.pi * diameter**2 / 4.0 * self.v_max_gas / 2.0 self._set_q_nominal(asset, q_nominal) - q_max = math.pi * diameter ** 2 / 4.0 * self.v_max_gas + q_max = math.pi * diameter**2 / 4.0 * self.v_max_gas self._set_q_max(asset, q_max) pressure = asset.in_ports[0].carrier.pressure * 1.0e5 density = self.get_density(asset.name, asset.in_ports[0].carrier) @@ -464,7 +463,7 @@ def convert_heat_pipe( temperature = temperature_modifiers["temperature"] # Compute the maximum milp flow based on an assumed maximum velocity - area = math.pi * diameter ** 2 / 4.0 + area = math.pi * diameter**2 / 4.0 q_max = area * self.v_max q_nominal = area * self.v_nominal diff --git a/src/mesido/esdl/esdl_mixin.py b/src/mesido/esdl/esdl_mixin.py index 84887e017..f52058192 100644 --- a/src/mesido/esdl/esdl_mixin.py +++ b/src/mesido/esdl/esdl_mixin.py @@ -9,30 +9,29 @@ import esdl.esdl_handler from esdl.resources.xmlresource import XMLResource -import numpy as np - -import rtctools.data.pi as pi -from rtctools.optimization.collocated_integrated_optimization_problem import ( - CollocatedIntegratedOptimizationProblem, -) -from rtctools.optimization.io_mixin import IOMixin - from mesido.component_type_mixin import ( ModelicaComponentTypeMixin, ) from mesido.esdl.asset_to_component_base import _AssetToComponentBase +from mesido.esdl.common import Asset from mesido.esdl.edr_pipe_class import EDRGasPipeClass, EDRPipeClass +from mesido.esdl.esdl_heat_model import ESDLHeatModel +from mesido.esdl.esdl_model_base import _ESDLModelBase from mesido.esdl.esdl_parser import ESDLStringParser +from mesido.esdl.esdl_qth_model import ESDLQTHModel from mesido.esdl.profile_parser import BaseProfileReader, InfluxDBProfileReader from mesido.physics_mixin import PhysicsMixin from mesido.pipe_class import GasPipeClass, PipeClass from mesido.pycml.pycml_mixin import PyCMLMixin from mesido.qth_not_maintained.qth_mixin import QTHMixin -from .common import Asset -from .esdl_heat_model import ESDLHeatModel -from .esdl_model_base import _ESDLModelBase -from .esdl_qth_model import ESDLQTHModel +import numpy as np + +import rtctools.data.pi as pi +from rtctools.optimization.collocated_integrated_optimization_problem import ( + CollocatedIntegratedOptimizationProblem, +) +from rtctools.optimization.io_mixin import IOMixin logger = logging.getLogger("mesido") diff --git a/src/mesido/esdl/esdl_parser.py b/src/mesido/esdl/esdl_parser.py index bbed8d0e5..1a1707ee9 100644 --- a/src/mesido/esdl/esdl_parser.py +++ b/src/mesido/esdl/esdl_parser.py @@ -4,7 +4,7 @@ import esdl.esdl_handler -from .common import Asset +from mesido.esdl.common import Asset class _ESDLInputException(Exception): diff --git a/src/mesido/esdl/esdl_qth_model.py b/src/mesido/esdl/esdl_qth_model.py index 3b883faae..6490b2c13 100644 --- a/src/mesido/esdl/esdl_qth_model.py +++ b/src/mesido/esdl/esdl_qth_model.py @@ -4,6 +4,9 @@ import esdl +from mesido.esdl.asset_to_component_base import MODIFIERS, _AssetToComponentBase +from mesido.esdl.common import Asset +from mesido.esdl.esdl_model_base import _ESDLModelBase from mesido.pycml import SymbolicParameter from mesido.pycml.component_library.qth import ( Buffer, @@ -17,10 +20,6 @@ Source, ) -from .asset_to_component_base import MODIFIERS, _AssetToComponentBase -from .common import Asset -from .esdl_model_base import _ESDLModelBase - logger = logging.getLogger("mesido") @@ -214,7 +213,7 @@ def convert_pipe(self, asset: Asset) -> Tuple[Type[Pipe], MODIFIERS]: conductivies_insulation, ) = self._pipe_get_diameter_and_insulation(asset) - area = math.pi * diameter ** 2 / 4.0 + area = math.pi * diameter**2 / 4.0 q_nominal = self.v_nominal * area q_max = self.v_max * area diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index 644662bf8..1082d13cc 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -9,6 +9,8 @@ from esdl.profiles.influxdbprofilemanager import InfluxDBProfileManager from esdl.units.conversion import ENERGY_IN_J, POWER_IN_W, convert_to_unit +from mesido.esdl.common import Asset + import numpy as np import pandas as pd @@ -16,8 +18,6 @@ import rtctools.data.pi from rtctools.data.storage import DataStore -from mesido.esdl.common import Asset - logger = logging.getLogger() diff --git a/src/mesido/financial_mixin.py b/src/mesido/financial_mixin.py index dc3967975..d3d7b5d67 100644 --- a/src/mesido/financial_mixin.py +++ b/src/mesido/financial_mixin.py @@ -3,6 +3,8 @@ import casadi as ca +from mesido.base_component_type_mixin import BaseComponentTypeMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -10,8 +12,6 @@ ) from rtctools.optimization.timeseries import Timeseries -from .base_component_type_mixin import BaseComponentTypeMixin - logger = logging.getLogger("mesido") @@ -374,10 +374,9 @@ def pre(self): var_name = f"{asset}__cumulative_investments_made_in_eur" self.__cumulative_investments_made_in_eur_map[asset] = var_name self.__cumulative_investments_made_in_eur_var[var_name] = ca.MX.sym(var_name) - self.__cumulative_investments_made_in_eur_nominals[ - var_name - ] = self.variable_nominal(f"{asset}__investment_cost") + self.variable_nominal( - f"{asset}__installation_cost" + self.__cumulative_investments_made_in_eur_nominals[var_name] = ( + self.variable_nominal(f"{asset}__investment_cost") + + self.variable_nominal(f"{asset}__installation_cost") ) self.__cumulative_investments_made_in_eur_bounds[var_name] = (0.0, np.inf) diff --git a/src/mesido/gas_physics_mixin.py b/src/mesido/gas_physics_mixin.py index 7ce1115ff..4cca7fa9b 100644 --- a/src/mesido/gas_physics_mixin.py +++ b/src/mesido/gas_physics_mixin.py @@ -2,6 +2,10 @@ import casadi as ca +from mesido.base_component_type_mixin import BaseComponentTypeMixin +from mesido.head_loss_class import HeadLossClass, HeadLossOption +from mesido.network_common import NetworkSettings + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -9,10 +13,6 @@ ) from rtctools.optimization.timeseries import Timeseries -from .base_component_type_mixin import BaseComponentTypeMixin -from .head_loss_class import HeadLossClass, HeadLossOption -from .network_common import NetworkSettings - logger = logging.getLogger("mesido") @@ -204,9 +204,9 @@ def _get_min_bound(bound): self._gas_pipe_linear_line_segment_map[pipe_name][ ii_line ] = pipe_linear_line_segment_var_name - self.__gas_pipe_linear_line_segment_var[ - pipe_linear_line_segment_var_name - ] = initialized_vars[9][pipe_linear_line_segment_var_name] + self.__gas_pipe_linear_line_segment_var[pipe_linear_line_segment_var_name] = ( + initialized_vars[9][pipe_linear_line_segment_var_name] + ) self.__gas_pipe_linear_line_segment_var_bounds[ pipe_linear_line_segment_var_name ] = initialized_vars[10][pipe_linear_line_segment_var_name] diff --git a/src/mesido/head_loss_class.py b/src/mesido/head_loss_class.py index a79642604..be9a6ee72 100644 --- a/src/mesido/head_loss_class.py +++ b/src/mesido/head_loss_class.py @@ -5,17 +5,16 @@ import casadi as ca +import mesido._darcy_weisbach as darcy_weisbach +from mesido.constants import GRAVITATIONAL_CONSTANT +from mesido.network_common import NetworkSettings +from mesido.pipe_class import PipeClass + import numpy as np from rtctools.optimization.goal_programming_mixin_base import Goal from rtctools.optimization.optimization_problem import BT -import mesido._darcy_weisbach as darcy_weisbach - -from .constants import GRAVITATIONAL_CONSTANT -from .network_common import NetworkSettings -from .pipe_class import PipeClass - logger = logging.getLogger("mesido") @@ -109,7 +108,7 @@ class HeadLossOption(IntEnum): class _MinimizeHeadLosses(Goal): order = 1 - priority = 2 ** 31 - 2 + priority = 2**31 - 2 def __init__(self, optimization_problem, input_network_settings, *args, **kwargs): super().__init__(*args, **kwargs) @@ -159,7 +158,7 @@ def function(self, optimization_problem, ensemble_member): class _MinimizeHydraulicPower(Goal): order = 1 - priority = 2 ** 31 - 1 + priority = 2**31 - 1 def __init__( self, @@ -613,13 +612,13 @@ def _hn_pipe_head_loss( c_v = length * ff / (2 * GRAVITATIONAL_CONSTANT) / diameter linearization_velocity = maximum_velocity - linearization_head_loss = c_v * linearization_velocity ** 2 + linearization_head_loss = c_v * linearization_velocity**2 linearization_discharge = linearization_velocity * area expr = linearization_head_loss * discharge / linearization_discharge if symbolic: - constraint_nominal = c_v * maximum_velocity ** 2 + constraint_nominal = c_v * maximum_velocity**2 # Interior point solvers, like IPOPT, do not like linearly dependent # tight inequality constraints. For this reason, we split the # constraints depending whether the Big-M formulation is used or not. @@ -660,7 +659,7 @@ def _hn_pipe_head_loss( c_v = length * ff / (2 * GRAVITATIONAL_CONSTANT) / diameter v = discharge / area - expr = c_v * v ** 2 + expr = c_v * v**2 if symbolic: q_nominal = self.variable_nominal(f"{pipe}.Q") @@ -986,7 +985,7 @@ def _hydraulic_power( # Compute c_k constant (where |hydraulic power| ~ c_k * v^3) c_k = rho * ff * length * area / 2.0 / diameter # Compute linearized value - max_hydraulic_power = c_k * maximum_velocity ** 3 + max_hydraulic_power = c_k * maximum_velocity**3 maximum_discharge = maximum_velocity * area hydraulic_power_linearized = max_hydraulic_power * discharge / maximum_discharge diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 4bdf1d638..3552d7a5b 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -4,6 +4,13 @@ import casadi as ca +from mesido._heat_loss_u_values_pipe import pipe_heat_loss +from mesido.base_component_type_mixin import BaseComponentTypeMixin +from mesido.constants import GRAVITATIONAL_CONSTANT +from mesido.demand_insulation_class import DemandInsulationClass +from mesido.head_loss_class import HeadLossClass, HeadLossOption +from mesido.network_common import NetworkSettings + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -11,15 +18,6 @@ ) from rtctools.optimization.timeseries import Timeseries -from mesido._heat_loss_u_values_pipe import pipe_heat_loss - - -from .base_component_type_mixin import BaseComponentTypeMixin -from .constants import GRAVITATIONAL_CONSTANT -from .demand_insulation_class import DemandInsulationClass -from .head_loss_class import HeadLossClass, HeadLossOption -from .network_common import NetworkSettings - logger = logging.getLogger("mesido") @@ -254,13 +252,13 @@ def _get_min_bound(bound): self, NetworkSettings.NETWORK_TYPE_HEAT, pipe_name, self.heat_network_settings ) if initialized_vars[0] != {}: - self.__pipe_head_bounds[ - f"{pipe_name}.{NetworkSettings.NETWORK_TYPE_HEAT}In.H" - ] = initialized_vars[0] + self.__pipe_head_bounds[f"{pipe_name}.{NetworkSettings.NETWORK_TYPE_HEAT}In.H"] = ( + initialized_vars[0] + ) if initialized_vars[1] != {}: - self.__pipe_head_bounds[ - f"{pipe_name}.{NetworkSettings.NETWORK_TYPE_HEAT}Out.H" - ] = initialized_vars[1] + self.__pipe_head_bounds[f"{pipe_name}.{NetworkSettings.NETWORK_TYPE_HEAT}Out.H"] = ( + initialized_vars[1] + ) if initialized_vars[2] != {}: self.__pipe_head_loss_zero_bounds[f"{pipe_name}.dH"] = initialized_vars[2] if initialized_vars[3] != {}: @@ -285,9 +283,9 @@ def _get_min_bound(bound): self._pipe_linear_line_segment_map[pipe_name][ ii_line ] = pipe_linear_line_segment_var_name - self.__pipe_linear_line_segment_var[ - pipe_linear_line_segment_var_name - ] = initialized_vars[9][pipe_linear_line_segment_var_name] + self.__pipe_linear_line_segment_var[pipe_linear_line_segment_var_name] = ( + initialized_vars[9][pipe_linear_line_segment_var_name] + ) self.__pipe_linear_line_segment_var_bounds[ pipe_linear_line_segment_var_name ] = initialized_vars[10][pipe_linear_line_segment_var_name] @@ -398,9 +396,9 @@ def _get_min_bound(bound): ) ates_temperature_ordering_var_name = f"{ates}__{temperature}_ordering" - self.__ates_temperature_ordering_var[ - ates_temperature_ordering_var_name - ] = ca.MX.sym(ates_temperature_ordering_var_name) + self.__ates_temperature_ordering_var[ates_temperature_ordering_var_name] = ( + ca.MX.sym(ates_temperature_ordering_var_name) + ) self.__ates_temperature_ordering_var_bounds[ates_temperature_ordering_var_name] = ( 0.0, 1.0, @@ -523,9 +521,9 @@ def _get_min_bound(bound): self.__demand_insulation_class_map[dmnd][ insl ] = demand_insulation_class_var_name - self.__demand_insulation_class_var[ - demand_insulation_class_var_name - ] = ca.MX.sym(demand_insulation_class_var_name) + self.__demand_insulation_class_var[demand_insulation_class_var_name] = ( + ca.MX.sym(demand_insulation_class_var_name) + ) self.__demand_insulation_class_var_bounds[ demand_insulation_class_var_name ] = (0.0, 1.0) diff --git a/src/mesido/physics_mixin.py b/src/mesido/physics_mixin.py index 93d435347..f147ba8ce 100644 --- a/src/mesido/physics_mixin.py +++ b/src/mesido/physics_mixin.py @@ -2,19 +2,18 @@ import casadi as ca +from mesido.base_component_type_mixin import BaseComponentTypeMixin +from mesido.control_variables import map_comp_type_to_control_variable +from mesido.electricity_physics_mixin import ElectricityPhysicsMixin +from mesido.gas_physics_mixin import GasPhysicsMixin +from mesido.heat_physics_mixin import HeatPhysicsMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, ) -from mesido.control_variables import map_comp_type_to_control_variable - - -from .base_component_type_mixin import BaseComponentTypeMixin -from .electricity_physics_mixin import ElectricityPhysicsMixin -from .gas_physics_mixin import GasPhysicsMixin -from .heat_physics_mixin import HeatPhysicsMixin logger = logging.getLogger("mesido") diff --git a/src/mesido/pipe_class.py b/src/mesido/pipe_class.py index 5563e76da..fd96cceae 100644 --- a/src/mesido/pipe_class.py +++ b/src/mesido/pipe_class.py @@ -26,7 +26,7 @@ def maximum_discharge(self): @property def area(self): - return 0.25 * math.pi * self.inner_diameter ** 2 + return 0.25 * math.pi * self.inner_diameter**2 @dataclass(frozen=True) @@ -50,7 +50,7 @@ def maximum_discharge(self): @property def area(self): - return 0.25 * math.pi * self.inner_diameter ** 2 + return 0.25 * math.pi * self.inner_diameter**2 @dataclass(frozen=True) diff --git a/src/mesido/pycml/component_library/milp/_internal/heat_component.py b/src/mesido/pycml/component_library/milp/_internal/heat_component.py index 058c4d602..ed8ef61b3 100644 --- a/src/mesido/pycml/component_library/milp/_internal/heat_component.py +++ b/src/mesido/pycml/component_library/milp/_internal/heat_component.py @@ -1,7 +1,7 @@ -from numpy import nan - from mesido.pycml import Component +from numpy import nan + class HeatComponent(Component): """ diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py b/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py index 8db017632..cb2512bc5 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py @@ -1,7 +1,7 @@ -from numpy import nan - from mesido.pycml import Variable +from numpy import nan + from .electricity_base import ElectricityTwoPort from .._internal import BaseAsset @@ -32,7 +32,7 @@ def __init__(self, name, **modifiers): self.nominal_voltage = nan self.r = 1.0e-6 * self.length # TODO: temporary value self.nominal_voltage_loss = (self.nominal_current * self.r * self.nominal_current) ** 0.5 - self.add_variable(Variable, "Power_loss", min=0.0, nominal=self.r * self.max_current ** 2) + self.add_variable(Variable, "Power_loss", min=0.0, nominal=self.r * self.max_current**2) self.add_variable(Variable, "I", nominal=self.nominal_current) self.add_variable(Variable, "V_loss", nominal=self.nominal_voltage_loss) diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_demand.py b/src/mesido/pycml/component_library/milp/electricity/electricity_demand.py index cb3ff691c..f0b578c19 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_demand.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_demand.py @@ -1,7 +1,7 @@ -from numpy import nan - from mesido.pycml import Variable +from numpy import nan + from .electricity_base import ElectricityPort from .._internal import BaseAsset from .._internal.electricity_component import ElectricityComponent diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_node.py b/src/mesido/pycml/component_library/milp/electricity/electricity_node.py index 97d863409..2aeabf80c 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_node.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_node.py @@ -1,7 +1,7 @@ -from numpy import nan - from mesido.pycml import Variable +from numpy import nan + from .electricity_base import ElectricityPort from .._internal import BaseAsset from .._internal.electricity_component import ElectricityComponent diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_source.py b/src/mesido/pycml/component_library/milp/electricity/electricity_source.py index 00a206860..5ee80a06f 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_source.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_source.py @@ -1,7 +1,7 @@ -from numpy import nan - from mesido.pycml import Variable +from numpy import nan + from .electricity_base import ElectricityPort from .._internal import BaseAsset from .._internal.electricity_component import ElectricityComponent diff --git a/src/mesido/pycml/component_library/milp/gas/gas_demand.py b/src/mesido/pycml/component_library/milp/gas/gas_demand.py index 450782dfd..3dbf21635 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_demand.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_demand.py @@ -1,7 +1,7 @@ -from numpy import nan - from mesido.pycml import Variable +from numpy import nan + from .gas_base import GasPort from .._internal import BaseAsset from .._internal.gas_component import GasComponent diff --git a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py index 62280ca75..52a90ca0b 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py @@ -1,7 +1,7 @@ -from numpy import nan, pi - from mesido.pycml import Variable +from numpy import nan, pi + from .gas_base import GasTwoPort from .._internal import BaseAsset @@ -21,7 +21,7 @@ def __init__(self, name, **modifiers): self.v_max = 15.0 self.density = 2.5e3 # [g/m3] self.diameter = nan - self.area = 0.25 * pi * self.diameter ** 2 + self.area = 0.25 * pi * self.diameter**2 self.Q_nominal = self.v_max / 2.0 * self.area self.pressure = 16.0e5 diff --git a/src/mesido/pycml/component_library/milp/gas/gas_source.py b/src/mesido/pycml/component_library/milp/gas/gas_source.py index 9f3bc109f..d369dd519 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_source.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_source.py @@ -1,7 +1,7 @@ -from numpy import nan - from mesido.pycml import Variable +from numpy import nan + from .gas_base import GasPort from .._internal import BaseAsset from .._internal.gas_component import GasComponent diff --git a/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py b/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py index 376d0f721..f2b7d9e68 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py @@ -1,8 +1,8 @@ -from numpy import nan - from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal import BaseAsset +from numpy import nan + from .gas_base import GasPort from .._internal.gas_component import GasComponent diff --git a/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py b/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py index f613c253e..e0f5e81c8 100644 --- a/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py +++ b/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py @@ -1,8 +1,8 @@ -from numpy import nan - from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset +from numpy import nan + from .heat_two_port import HeatTwoPort diff --git a/src/mesido/pycml/component_library/milp/heat/ates.py b/src/mesido/pycml/component_library/milp/heat/ates.py index 377c48f54..eda3a15d2 100644 --- a/src/mesido/pycml/component_library/milp/heat/ates.py +++ b/src/mesido/pycml/component_library/milp/heat/ates.py @@ -1,9 +1,8 @@ -from numpy import nan - - from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset +from numpy import nan + from .heat_two_port import HeatTwoPort diff --git a/src/mesido/pycml/component_library/milp/heat/heat_buffer.py b/src/mesido/pycml/component_library/milp/heat/heat_buffer.py index ec55ff485..4313ebcec 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_buffer.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_buffer.py @@ -1,10 +1,10 @@ import math -from numpy import nan - from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset +from numpy import nan + from .heat_two_port import HeatTwoPort @@ -40,7 +40,7 @@ def __init__(self, name, **modifiers): self.heat_transfer_coeff = 1.0 self.height = 5.0 self.radius = 10.0 - self.volume = math.pi * self.radius ** 2 * self.height + self.volume = math.pi * self.radius**2 * self.height self.heat_loss_coeff = 2 * self.heat_transfer_coeff / (self.radius * self.rho * self.cp) # The hot/cold tank can have a lower bound on its volume. # Meaning that they might always be, for e.g., 5% full. diff --git a/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py b/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py index 5dacc98bf..ee74b3cd7 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py @@ -1,9 +1,9 @@ -from numpy import nan - from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal import BaseAsset from mesido.pycml.component_library.milp.heat.heat_four_port import HeatFourPort +from numpy import nan + class HeatExchanger(HeatFourPort, BaseAsset): """ diff --git a/src/mesido/pycml/component_library/milp/heat/heat_pipe.py b/src/mesido/pycml/component_library/milp/heat/heat_pipe.py index 1c361953b..3b30e62ac 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_pipe.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_pipe.py @@ -1,7 +1,7 @@ -from numpy import nan, pi - from mesido.pycml import Variable +from numpy import nan, pi + from ._non_storage_component import _NonStorageComponent @@ -31,7 +31,7 @@ def __init__(self, name, **modifiers): self.length = 1.0 self.diameter = 1.0 assert "area" not in modifiers, "modifying area directly is not allowed" - self.area = 0.25 * pi * self.diameter ** 2 + self.area = 0.25 * pi * self.diameter**2 self.temperature = nan self.carrier_id = -1 self.pressure = 16.0e5 @@ -55,7 +55,7 @@ def __init__(self, name, **modifiers): ff = 0.02 # Order of magnitude expected with 0.05-2.5m/s in 20mm-1200mm diameter pipe velo = self.Q_nominal / self.area self.Hydraulic_power_nominal = ( - self.rho * ff * max(self.length, 1.0) * pi * self.area / self.diameter / 2.0 * velo ** 3 + self.rho * ff * max(self.length, 1.0) * pi * self.area / self.diameter / 2.0 * velo**3 ) self.add_variable( Variable, "Hydraulic_power", min=0.0, nominal=self.Hydraulic_power_nominal diff --git a/src/mesido/pycml/component_library/milp/heat/heat_pump.py b/src/mesido/pycml/component_library/milp/heat/heat_pump.py index dc1ee3df7..34963085c 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_pump.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_pump.py @@ -1,9 +1,9 @@ -from numpy import nan - from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal import BaseAsset from mesido.pycml.component_library.milp.heat.heat_four_port import HeatFourPort +from numpy import nan + class HeatPump(HeatFourPort, BaseAsset): """ diff --git a/src/mesido/pycml/component_library/milp/heat/heat_source.py b/src/mesido/pycml/component_library/milp/heat/heat_source.py index 6a9554b32..a3a547c59 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_source.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_source.py @@ -1,7 +1,7 @@ -from numpy import nan - from mesido.pycml import Variable +from numpy import nan + from ._non_storage_component import _NonStorageComponent diff --git a/src/mesido/pycml/component_library/milp/heat/pump.py b/src/mesido/pycml/component_library/milp/heat/pump.py index 8ba0418e6..f6af9fa80 100644 --- a/src/mesido/pycml/component_library/milp/heat/pump.py +++ b/src/mesido/pycml/component_library/milp/heat/pump.py @@ -1,7 +1,7 @@ -from numpy import nan - from mesido.pycml import Variable +from numpy import nan + from ._non_storage_component import _NonStorageComponent diff --git a/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py b/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py index 1c7acb4ec..e4d727d98 100644 --- a/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py +++ b/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py @@ -1,5 +1,3 @@ -from numpy import nan - from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal import BaseAsset from mesido.pycml.component_library.milp._internal.electricity_component import ( @@ -12,6 +10,8 @@ GasPort, ) +from numpy import nan + class Electrolyzer(ElectricityComponent, BaseAsset): """ diff --git a/src/mesido/pycml/component_library/qth/buffer.py b/src/mesido/pycml/component_library/qth/buffer.py index 3a28447e3..b708cf649 100644 --- a/src/mesido/pycml/component_library/qth/buffer.py +++ b/src/mesido/pycml/component_library/qth/buffer.py @@ -1,9 +1,9 @@ import math -from numpy import nan - from mesido.pycml import Variable +from numpy import nan + from ._fluid_properties_component import _FluidPropertiesComponent @@ -21,13 +21,13 @@ def __init__(self, name, **modifiers): self.heat_transfer_coeff = 1.0 self.height = 5.0 self.radius = 10.0 - self.volume = math.pi * self.radius ** 2 * self.height + self.volume = math.pi * self.radius**2 * self.height # The hot/cold tank can have a lower bound on its volume. # Meaning that they might always be, for e.g., 5% full. self.min_fraction_tank_volume = 0.05 # if the tank is plced on ground, ignore surface of bottom of tank - self.surface = 2 * math.pi * self.radius ** 2 + 2 * math.pi * self.radius * self.height + self.surface = 2 * math.pi * self.radius**2 + 2 * math.pi * self.radius * self.height self.T_outside = 10.0 # Nominals diff --git a/src/mesido/pycml/component_library/qth/pipe.py b/src/mesido/pycml/component_library/qth/pipe.py index 5aa6c6052..5209e4202 100644 --- a/src/mesido/pycml/component_library/qth/pipe.py +++ b/src/mesido/pycml/component_library/qth/pipe.py @@ -1,7 +1,7 @@ -from numpy import nan, pi - from mesido.pycml import Variable +from numpy import nan, pi + from ._fluid_properties_component import _FluidPropertiesComponent from ._non_storage_component import _NonStorageComponent @@ -30,7 +30,7 @@ def __init__(self, name, **modifiers): self.length = 1.0 self.diameter = 1.0 assert "area" not in modifiers, "modifying area directly is not allowed" - self.area = 0.25 * pi * self.diameter ** 2 + self.area = 0.25 * pi * self.diameter**2 self.temperature = nan # Parameters determining the milp loss diff --git a/src/mesido/pycml/component_library/qth/source.py b/src/mesido/pycml/component_library/qth/source.py index 8893b33f7..e14ce3ed7 100644 --- a/src/mesido/pycml/component_library/qth/source.py +++ b/src/mesido/pycml/component_library/qth/source.py @@ -1,7 +1,7 @@ -from numpy import nan - from mesido.pycml import SymbolicParameter, Variable +from numpy import nan + from ._fluid_properties_component import _FluidPropertiesComponent from ._non_storage_component import _NonStorageComponent diff --git a/src/mesido/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py b/src/mesido/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py index 9d02e062f..cd2538377 100644 --- a/src/mesido/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py +++ b/src/mesido/qth_not_maintained/bounds_to_pipe_flow_directions_mixin.py @@ -1,12 +1,12 @@ from typing import Dict +from mesido.base_component_type_mixin import BaseComponentTypeMixin +from mesido.heat_network_common import PipeFlowDirection + import numpy as np from rtctools.optimization.timeseries import Timeseries -from mesido.base_component_type_mixin import BaseComponentTypeMixin -from mesido.heat_network_common import PipeFlowDirection - class BoundsToPipeFlowDirectionsMixin(BaseComponentTypeMixin): """ diff --git a/src/mesido/qth_not_maintained/head_loss_mixin.py b/src/mesido/qth_not_maintained/head_loss_mixin.py index 074d48fb5..3feb4d33e 100644 --- a/src/mesido/qth_not_maintained/head_loss_mixin.py +++ b/src/mesido/qth_not_maintained/head_loss_mixin.py @@ -5,15 +5,15 @@ import casadi as ca +import mesido._darcy_weisbach as darcy_weisbach +from mesido.base_component_type_mixin import BaseComponentTypeMixin + import numpy as np from rtctools._internal.alias_tools import AliasDict from rtctools.optimization.goal_programming_mixin_base import Goal, _GoalProgrammingMixinBase from rtctools.optimization.optimization_problem import BT, OptimizationProblem -import mesido._darcy_weisbach as darcy_weisbach -from mesido.base_component_type_mixin import BaseComponentTypeMixin - from ..constants import GRAVITATIONAL_CONSTANT from ..pipe_class import PipeClass @@ -109,7 +109,7 @@ class HeadLossOption(IntEnum): class _MinimizeHeadLosses(Goal): order = 1 - priority = 2 ** 31 - 1 + priority = 2**31 - 1 def __init__(self, optimization_problem: "_HeadLossMixin", *args, **kwargs): super().__init__(*args, **kwargs) @@ -150,7 +150,7 @@ def function(self, optimization_problem: "_HeadLossMixin", ensemble_member): class _MinimizeHydraulicPower(Goal): order = 1 - priority = 2 ** 31 - 1 + priority = 2**31 - 1 def __init__( self, @@ -526,7 +526,7 @@ def _hn_pipe_head_loss( c_v = length * ff / (2 * GRAVITATIONAL_CONSTANT) / diameter linearization_velocity = heat_network_options["maximum_velocity"] - linearization_head_loss = c_v * linearization_velocity ** 2 + linearization_head_loss = c_v * linearization_velocity**2 linearization_discharge = linearization_velocity * area expr = linearization_head_loss * discharge / linearization_discharge @@ -568,7 +568,7 @@ def _hn_pipe_head_loss( c_v = length * ff / (2 * GRAVITATIONAL_CONSTANT) / diameter v = discharge / area - expr = c_v * v ** 2 + expr = c_v * v**2 if symbolic: q_nominal = self.variable_nominal(f"{pipe}.Q") @@ -775,7 +775,7 @@ def _hydraulic_power( # Compute c_k constant (where |hydraulic power| ~ c_k * v^3) c_k = rho * ff * length * area / 2.0 / diameter # Compute linearized value - max_hydraulic_power = c_k * maximum_velocity ** 3 + max_hydraulic_power = c_k * maximum_velocity**3 maximum_discharge = maximum_velocity * area hydraulic_power_linearized = max_hydraulic_power * discharge / maximum_discharge diff --git a/src/mesido/qth_not_maintained/qth_loop_mixin.py b/src/mesido/qth_not_maintained/qth_loop_mixin.py index d9e464c20..f59a8d40f 100644 --- a/src/mesido/qth_not_maintained/qth_loop_mixin.py +++ b/src/mesido/qth_not_maintained/qth_loop_mixin.py @@ -2,14 +2,14 @@ import casadi as ca +from mesido.qth_not_maintained.qth_mixin import HeadLossOption, QTHMixin + import numpy as np from rtctools._internal.alias_tools import AliasDict from rtctools.optimization.goal_programming_mixin_base import Goal from rtctools.optimization.timeseries import Timeseries -from mesido.qth_not_maintained.qth_mixin import HeadLossOption, QTHMixin - class BufferTargetDischargeGoal(Goal): def __init__( diff --git a/src/mesido/qth_not_maintained/qth_mixin.py b/src/mesido/qth_not_maintained/qth_mixin.py index 398db35bd..8f3063fed 100644 --- a/src/mesido/qth_not_maintained/qth_mixin.py +++ b/src/mesido/qth_not_maintained/qth_mixin.py @@ -5,14 +5,6 @@ import casadi as ca -import numpy as np - -from rtctools.optimization.collocated_integrated_optimization_problem import ( - CollocatedIntegratedOptimizationProblem, -) -from rtctools.optimization.homotopy_mixin import HomotopyMixin -from rtctools.optimization.timeseries import Timeseries - from mesido._heat_loss_u_values_pipe import heat_loss_u_values_pipe from mesido.base_component_type_mixin import BaseComponentTypeMixin from mesido.heat_network_common import ( @@ -28,6 +20,14 @@ _MinimizeHydraulicPower as _MinimizeHydraulicPowerBase, ) +import numpy as np + +from rtctools.optimization.collocated_integrated_optimization_problem import ( + CollocatedIntegratedOptimizationProblem, +) +from rtctools.optimization.homotopy_mixin import HomotopyMixin +from rtctools.optimization.timeseries import Timeseries + logger = logging.getLogger("mesido") diff --git a/src/mesido/techno_economic_mixin.py b/src/mesido/techno_economic_mixin.py index c67f769c5..23c007dec 100644 --- a/src/mesido/techno_economic_mixin.py +++ b/src/mesido/techno_economic_mixin.py @@ -1,14 +1,14 @@ import logging +from mesido.asset_sizing_mixin import AssetSizingMixin +from mesido.base_component_type_mixin import BaseComponentTypeMixin +from mesido.financial_mixin import FinancialMixin +from mesido.physics_mixin import PhysicsMixin + from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, ) -from .asset_sizing_mixin import AssetSizingMixin -from .base_component_type_mixin import BaseComponentTypeMixin -from .financial_mixin import FinancialMixin -from .physics_mixin import PhysicsMixin - logger = logging.getLogger("mesido") diff --git a/src/mesido/workflows/goals/minimize_tco_goal.py b/src/mesido/workflows/goals/minimize_tco_goal.py index 4085bb2ad..945258d82 100644 --- a/src/mesido/workflows/goals/minimize_tco_goal.py +++ b/src/mesido/workflows/goals/minimize_tco_goal.py @@ -2,10 +2,10 @@ from casadi import MX -from rtctools.optimization.goal_programming_mixin_base import Goal - from mesido.techno_economic_mixin import TechnoEconomicMixin +from rtctools.optimization.goal_programming_mixin_base import Goal + class MinimizeTCO(Goal): """ diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 14006b50e..760eaec1b 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -3,6 +3,17 @@ import os import time +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.goals.minimize_tco_goal import MinimizeTCO +from mesido.workflows.io.write_output import ScenarioOutput +from mesido.workflows.utils.adapt_profiles import ( + adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day, +) +from mesido.workflows.utils.helpers import main_decorator + import numpy as np from rtctools._internal.alias_tools import AliasDict @@ -19,17 +30,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.head_loss_class import HeadLossOption -from mesido.techno_economic_mixin import TechnoEconomicMixin -from mesido.workflows.goals.minimize_tco_goal import MinimizeTCO -from mesido.workflows.io.write_output import ScenarioOutput -from mesido.workflows.utils.adapt_profiles import ( - adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day, -) -from mesido.workflows.utils.helpers import main_decorator - DB_HOST = "172.17.0.2" DB_PORT = 8086 @@ -406,9 +406,9 @@ class EndScenarioSizingHeadLoss(EndScenarioSizing): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.heat_network_settings[ - "head_loss_option" - ] = HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + self.heat_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + ) self.heat_network_settings["minimize_head_losses"] = True diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index ca05552be..95942efea 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -12,6 +12,12 @@ from esdl.profiles.influxdbprofilemanager import InfluxDBProfileManager from esdl.profiles.profilemanager import ProfileManager +import mesido.esdl.esdl_parser +from mesido.constants import GRAVITATIONAL_CONSTANT +from mesido.esdl.edr_pipe_class import EDRPipeClass +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.utils.helpers import _sort_numbered + import numpy as np import pandas as pd @@ -20,12 +26,6 @@ from rtctools.optimization.timeseries import Timeseries -import mesido.esdl.esdl_parser -from mesido.constants import GRAVITATIONAL_CONSTANT -from mesido.esdl.edr_pipe_class import EDRPipeClass -from mesido.techno_economic_mixin import TechnoEconomicMixin -from mesido.workflows.utils.helpers import _sort_numbered - logger = logging.getLogger("mesido") @@ -196,7 +196,7 @@ def _write_html_output(self, template_name="mpc_buffer_sizing_output"): for source in _sort_numbered(self.energy_system_components["heat_source"]): if source in self._minimize_size_sources: max_size_var = self._max_source_heat_map[source] - results_sources_size[source] = float(results[max_size_var][0]) / 10.0 ** 3 + results_sources_size[source] = float(results[max_size_var][0]) / 10.0**3 else: results_sources_size[source] = "-" diff --git a/src/mesido/workflows/simulator_workflow.py b/src/mesido/workflows/simulator_workflow.py index 392845066..3fc4009a3 100644 --- a/src/mesido/workflows/simulator_workflow.py +++ b/src/mesido/workflows/simulator_workflow.py @@ -3,6 +3,15 @@ import esdl +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.io.write_output import ScenarioOutput +from mesido.workflows.utils.adapt_profiles import ( + adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day, +) +from mesido.workflows.utils.helpers import main_decorator + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -19,16 +28,6 @@ from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.head_loss_class import HeadLossOption -from mesido.techno_economic_mixin import TechnoEconomicMixin -from mesido.workflows.io.write_output import ScenarioOutput -from mesido.workflows.utils.adapt_profiles import ( - adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day, -) -from mesido.workflows.utils.helpers import main_decorator - - DB_HOST = "172.17.0.2" DB_PORT = 8086 DB_NAME = "Warmtenetten" @@ -226,9 +225,9 @@ def path_goals(self): def energy_system_options(self): options = super().energy_system_options() - self.heat_network_settings[ - "head_loss_option" - ] = HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + self.heat_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + ) self.heat_network_settings["minimize_head_losses"] = True return options diff --git a/tests/models/absolute_heat/src/example.py b/tests/models/absolute_heat/src/example.py index 6c89772a1..c45ac4fba 100644 --- a/tests/models/absolute_heat/src/example.py +++ b/tests/models/absolute_heat/src/example.py @@ -1,5 +1,10 @@ import casadi as ca +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -13,11 +18,6 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): """ diff --git a/tests/models/ates_temperature/src/run_ates_temperature.py b/tests/models/ates_temperature/src/run_ates_temperature.py index f7b4e6c39..69024ff52 100644 --- a/tests/models/ates_temperature/src/run_ates_temperature.py +++ b/tests/models/ates_temperature/src/run_ates_temperature.py @@ -1,3 +1,10 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.io.write_output import ScenarioOutput + import numpy as np from rtctools.data.storage import DataStore @@ -13,13 +20,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.head_loss_class import HeadLossOption -from mesido.techno_economic_mixin import TechnoEconomicMixin -from mesido.workflows.io.write_output import ScenarioOutput - ns = {"fews": "http://www.wldelft.nl/fews", "pi": "http://www.wldelft.nl/fews/PI"} WATT_TO_MEGA_WATT = 1.0e6 @@ -148,9 +148,9 @@ def path_goals(self): def energy_system_options(self): options = super().energy_system_options() self.heat_network_settings["minimum_velocity"] = 0.0001 - options[ - "heat_loss_disconnected_pipe" - ] = False # required since we want to disconnect HP & HEX + options["heat_loss_disconnected_pipe"] = ( + False # required since we want to disconnect HP & HEX + ) self.heat_network_settings["head_loss_option"] = HeadLossOption.NO_HEADLOSS options["neglect_pipe_heat_losses"] = True options["include_ates_temperature_options"] = True diff --git a/tests/models/basic_buffer/src/compare.py b/tests/models/basic_buffer/src/compare.py index 7658deba5..d69e5cd6b 100644 --- a/tests/models/basic_buffer/src/compare.py +++ b/tests/models/basic_buffer/src/compare.py @@ -3,8 +3,6 @@ from abc import ABCMeta from pathlib import Path -from rtctools.optimization.modelica_mixin import ModelicaMixin - from mesido.pycml.pycml_mixin import PyCMLMixin from mesido.qth_not_maintained.qth_loop_mixin import ( BufferTargetDischargeGoal, @@ -13,6 +11,8 @@ from mesido.qth_not_maintained.qth_mixin import QTHMixin from mesido.qth_not_maintained.util import run_heat_network_optimization +from rtctools.optimization.modelica_mixin import ModelicaMixin + # We want to import the example we compare with as a module that is somewhat # uniquely identifiable. We therefore start from the root. root_folder = str(Path(__file__).resolve().parent.parent.parent.parent.parent) diff --git a/tests/models/basic_source_and_demand/src/heat_comparison.py b/tests/models/basic_source_and_demand/src/heat_comparison.py index 3b7801dec..94959b682 100644 --- a/tests/models/basic_source_and_demand/src/heat_comparison.py +++ b/tests/models/basic_source_and_demand/src/heat_comparison.py @@ -1,3 +1,8 @@ +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.physics_mixin import PhysicsMixin +from mesido.pycml.pycml_mixin import PyCMLMixin + from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, ) @@ -6,11 +11,6 @@ from rtctools.optimization.modelica_mixin import ModelicaMixin from rtctools.util import run_optimization_problem -from mesido.component_type_mixin import ModelicaComponentTypeMixin -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.physics_mixin import PhysicsMixin -from mesido.pycml.pycml_mixin import PyCMLMixin - if __name__ == "__main__": from model_heat import Model else: diff --git a/tests/models/basic_source_and_demand/src/qth_comparison.py b/tests/models/basic_source_and_demand/src/qth_comparison.py index 41d7b17f4..c98705c24 100644 --- a/tests/models/basic_source_and_demand/src/qth_comparison.py +++ b/tests/models/basic_source_and_demand/src/qth_comparison.py @@ -1,3 +1,11 @@ +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( + BoundsToPipeFlowDirectionsMixin, +) +from mesido.qth_not_maintained.qth_mixin import QTHMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -10,14 +18,6 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from mesido.component_type_mixin import ModelicaComponentTypeMixin -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.pycml.pycml_mixin import PyCMLMixin -from mesido.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( - BoundsToPipeFlowDirectionsMixin, -) -from mesido.qth_not_maintained.qth_mixin import QTHMixin - if __name__ == "__main__": from model_qth import Model else: diff --git a/tests/models/basic_source_and_demand/src/qth_minimize_temperatures.py b/tests/models/basic_source_and_demand/src/qth_minimize_temperatures.py index 099b98e58..c7d3c89e0 100644 --- a/tests/models/basic_source_and_demand/src/qth_minimize_temperatures.py +++ b/tests/models/basic_source_and_demand/src/qth_minimize_temperatures.py @@ -1,3 +1,10 @@ +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( + BoundsToPipeFlowDirectionsMixin, +) +from mesido.qth_not_maintained.qth_mixin import DemandTemperatureOption, QTHMixin + from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, ) @@ -7,13 +14,6 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from mesido.component_type_mixin import ModelicaComponentTypeMixin -from mesido.pycml.pycml_mixin import PyCMLMixin -from mesido.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( - BoundsToPipeFlowDirectionsMixin, -) -from mesido.qth_not_maintained.qth_mixin import DemandTemperatureOption, QTHMixin - if __name__ == "__main__": from model_qth import Model else: diff --git a/tests/models/double_pipe_heat/src/double_pipe_heat.py b/tests/models/double_pipe_heat/src/double_pipe_heat.py index 4e5e35fe2..41d3dab72 100644 --- a/tests/models/double_pipe_heat/src/double_pipe_heat.py +++ b/tests/models/double_pipe_heat/src/double_pipe_heat.py @@ -1,3 +1,7 @@ +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.physics_mixin import PhysicsMixin +from mesido.pycml.pycml_mixin import PyCMLMixin + from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, ) @@ -5,10 +9,6 @@ from rtctools.optimization.goal_programming_mixin import Goal, GoalProgrammingMixin from rtctools.util import run_optimization_problem -from mesido.component_type_mixin import ModelicaComponentTypeMixin -from mesido.physics_mixin import PhysicsMixin -from mesido.pycml.pycml_mixin import PyCMLMixin - if __name__ == "__main__": from model import Model else: diff --git a/tests/models/double_pipe_qth/src/cq2_inequality_vs_equality.py b/tests/models/double_pipe_qth/src/cq2_inequality_vs_equality.py index 65d0f4e91..802a9dcae 100644 --- a/tests/models/double_pipe_qth/src/cq2_inequality_vs_equality.py +++ b/tests/models/double_pipe_qth/src/cq2_inequality_vs_equality.py @@ -1,10 +1,10 @@ from abc import ABCMeta -from rtctools.util import run_optimization_problem - from mesido.qth_not_maintained.qth_loop_mixin import QTHLoopMixin from mesido.qth_not_maintained.qth_mixin import HeadLossOption, QTHMixin +from rtctools.util import run_optimization_problem + if __name__ == "__main__": from double_pipe_qth import DoublePipeBase else: diff --git a/tests/models/double_pipe_qth/src/double_pipe_qth.py b/tests/models/double_pipe_qth/src/double_pipe_qth.py index 1e97ad2b5..b76ebd5c6 100644 --- a/tests/models/double_pipe_qth/src/double_pipe_qth.py +++ b/tests/models/double_pipe_qth/src/double_pipe_qth.py @@ -1,3 +1,9 @@ +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( + BoundsToPipeFlowDirectionsMixin, +) +from mesido.qth_not_maintained.qth_mixin import QTHMixin + from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, ) @@ -7,12 +13,6 @@ from rtctools.optimization.modelica_mixin import ModelicaMixin from rtctools.util import run_optimization_problem -from mesido.component_type_mixin import ModelicaComponentTypeMixin -from mesido.qth_not_maintained.bounds_to_pipe_flow_directions_mixin import ( - BoundsToPipeFlowDirectionsMixin, -) -from mesido.qth_not_maintained.qth_mixin import QTHMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/double_pipe_qth/src/single_pipe_no_headloss.py b/tests/models/double_pipe_qth/src/single_pipe_no_headloss.py index 83a416c53..e777c5975 100644 --- a/tests/models/double_pipe_qth/src/single_pipe_no_headloss.py +++ b/tests/models/double_pipe_qth/src/single_pipe_no_headloss.py @@ -1,7 +1,7 @@ -from rtctools.util import run_optimization_problem - from mesido.qth_not_maintained.qth_mixin import HeadLossOption +from rtctools.util import run_optimization_problem + if __name__ == "__main__": from double_pipe_qth import SinglePipeQTH else: diff --git a/tests/models/electricity_cable_topology/src/example.py b/tests/models/electricity_cable_topology/src/example.py index 7870aabfd..0447ec949 100644 --- a/tests/models/electricity_cable_topology/src/example.py +++ b/tests/models/electricity_cable_topology/src/example.py @@ -1,5 +1,11 @@ import casadi as ca +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.pipe_class import CableClass +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -13,12 +19,6 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.pipe_class import CableClass -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): """ diff --git a/tests/models/emerge/src/example.py b/tests/models/emerge/src/example.py index a489e2e0f..bd4d0e6ad 100644 --- a/tests/models/emerge/src/example.py +++ b/tests/models/emerge/src/example.py @@ -1,5 +1,12 @@ import casadi as ca +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin + from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, ) @@ -10,13 +17,6 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.head_loss_class import HeadLossOption -from mesido.techno_economic_mixin import TechnoEconomicMixin - class MaxHydrogenProduction(Goal): """ diff --git a/tests/models/gas_pipe_topology/src/example.py b/tests/models/gas_pipe_topology/src/example.py index 4c2bbbd1a..f1d8e2bc3 100644 --- a/tests/models/gas_pipe_topology/src/example.py +++ b/tests/models/gas_pipe_topology/src/example.py @@ -1,5 +1,10 @@ import casadi as ca +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -13,11 +18,6 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): """ diff --git a/tests/models/heat_exchange/src/run_heat_exchanger.py b/tests/models/heat_exchange/src/run_heat_exchanger.py index 7bd2ae00f..5dbd08948 100644 --- a/tests/models/heat_exchange/src/run_heat_exchanger.py +++ b/tests/models/heat_exchange/src/run_heat_exchanger.py @@ -1,3 +1,9 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.physics_mixin import PhysicsMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -9,12 +15,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.head_loss_class import HeadLossOption -from mesido.physics_mixin import PhysicsMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/heatpump/src/run_heat_pump.py b/tests/models/heatpump/src/run_heat_pump.py index 71e60675a..80b5ba90b 100644 --- a/tests/models/heatpump/src/run_heat_pump.py +++ b/tests/models/heatpump/src/run_heat_pump.py @@ -1,3 +1,8 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -9,11 +14,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.physics_mixin import PhysicsMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/insulation/src/run_insulation.py b/tests/models/insulation/src/run_insulation.py index acd32b8cb..b668c3b89 100644 --- a/tests/models/insulation/src/run_insulation.py +++ b/tests/models/insulation/src/run_insulation.py @@ -1,5 +1,11 @@ import esdl +from mesido.demand_insulation_class import DemandInsulationClass +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -11,12 +17,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.demand_insulation_class import DemandInsulationClass -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - class MinimizeSourcesHeatGoal(Goal): priority = 2 diff --git a/tests/models/multiple_carriers/src/run_multiple_carriers.py b/tests/models/multiple_carriers/src/run_multiple_carriers.py index 712407392..bf4b4100a 100644 --- a/tests/models/multiple_carriers/src/run_multiple_carriers.py +++ b/tests/models/multiple_carriers/src/run_multiple_carriers.py @@ -1,3 +1,8 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -9,11 +14,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.physics_mixin import PhysicsMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py b/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py index 512e18f86..a6c9669d1 100644 --- a/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py +++ b/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py @@ -1,3 +1,8 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -11,11 +16,6 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/pipe_test/src/run_hydraulic_power.py b/tests/models/pipe_test/src/run_hydraulic_power.py index 320034737..c195807cc 100644 --- a/tests/models/pipe_test/src/run_hydraulic_power.py +++ b/tests/models/pipe_test/src/run_hydraulic_power.py @@ -1,3 +1,7 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.head_loss_class import HeadLossOption +from mesido.physics_mixin import PhysicsMixin + import numpy as np import pandas as pd @@ -10,10 +14,6 @@ LinearizedOrderGoalProgrammingMixin, ) -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.head_loss_class import HeadLossOption -from mesido.physics_mixin import PhysicsMixin - class TargetDemandGoal(Goal): priority = 1 @@ -257,6 +257,6 @@ def post(self): except Exception: # Case when there is only one row value added m_rows_added = 1 - df_MILP.loc[ - (index_last_row + 1 - m_rows_added) : (index_last_row + 1), "pipe_length" - ] = manual_set_pipe_length + df_MILP.loc[(index_last_row + 1 - m_rows_added) : (index_last_row + 1), "pipe_length"] = ( + manual_set_pipe_length + ) diff --git a/tests/models/simple_buffer/src/simple_buffer.py b/tests/models/simple_buffer/src/simple_buffer.py index d896f892d..4d07f11f6 100644 --- a/tests/models/simple_buffer/src/simple_buffer.py +++ b/tests/models/simple_buffer/src/simple_buffer.py @@ -1,3 +1,7 @@ +from mesido.component_type_mixin import ModelicaComponentTypeMixin +from mesido.pycml.pycml_mixin import PyCMLMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -11,10 +15,6 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from mesido.component_type_mixin import ModelicaComponentTypeMixin -from mesido.pycml.pycml_mixin import PyCMLMixin -from mesido.techno_economic_mixin import TechnoEconomicMixin - if __name__ == "__main__": from model import Model else: diff --git a/tests/models/source_pipe_sink/src/double_pipe_heat.py b/tests/models/source_pipe_sink/src/double_pipe_heat.py index 3f726b422..2f641f98f 100644 --- a/tests/models/source_pipe_sink/src/double_pipe_heat.py +++ b/tests/models/source_pipe_sink/src/double_pipe_heat.py @@ -1,3 +1,10 @@ +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin + from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, ) @@ -8,13 +15,6 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.head_loss_class import HeadLossOption -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 @@ -66,9 +66,9 @@ def post(self): class HeatProblemHydraulic(ESDLAdditionalVarsMixin, SourcePipeSink): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.heat_network_settings[ - "head_loss_option" - ] = HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + self.heat_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + ) self.heat_network_settings["n_linearization_lines"] = 5 self.heat_network_settings["minimize_head_losses"] = True diff --git a/tests/models/source_pipe_split_sink/src/double_pipe_heat.py b/tests/models/source_pipe_split_sink/src/double_pipe_heat.py index b3138990e..cc39c8984 100644 --- a/tests/models/source_pipe_split_sink/src/double_pipe_heat.py +++ b/tests/models/source_pipe_split_sink/src/double_pipe_heat.py @@ -1,3 +1,6 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin + from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, ) @@ -8,9 +11,6 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/test_case_small_network_ates_buffer_optional_assets/src/run_ates.py b/tests/models/test_case_small_network_ates_buffer_optional_assets/src/run_ates.py index 82b9a118d..f5e90a65c 100644 --- a/tests/models/test_case_small_network_ates_buffer_optional_assets/src/run_ates.py +++ b/tests/models/test_case_small_network_ates_buffer_optional_assets/src/run_ates.py @@ -1,3 +1,8 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.data.storage import DataStore @@ -9,11 +14,6 @@ LinearizedOrderGoalProgrammingMixin, ) -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/test_case_small_network_optional_assets_annualized/src/run_annualized.py b/tests/models/test_case_small_network_optional_assets_annualized/src/run_annualized.py index 945c27f72..f2c511070 100644 --- a/tests/models/test_case_small_network_optional_assets_annualized/src/run_annualized.py +++ b/tests/models/test_case_small_network_optional_assets_annualized/src/run_annualized.py @@ -2,13 +2,13 @@ import esdl -from rtctools.optimization.goal_programming_mixin import Goal -from rtctools.util import run_optimization_problem - from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.workflows.goals.minimize_tco_goal import MinimizeTCO +from rtctools.optimization.goal_programming_mixin import Goal +from rtctools.util import run_optimization_problem + try: from models.test_case_small_network_optional_assets_annualized.src.run_ates import ( HeatProblem, diff --git a/tests/models/test_case_small_network_optional_assets_annualized/src/run_ates.py b/tests/models/test_case_small_network_optional_assets_annualized/src/run_ates.py index fbc9e4842..e06def17e 100644 --- a/tests/models/test_case_small_network_optional_assets_annualized/src/run_ates.py +++ b/tests/models/test_case_small_network_optional_assets_annualized/src/run_ates.py @@ -1,3 +1,8 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.data.storage import DataStore @@ -10,11 +15,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/test_case_small_network_with_ates/src/run_ates.py b/tests/models/test_case_small_network_with_ates/src/run_ates.py index f8c696f95..1236ed154 100644 --- a/tests/models/test_case_small_network_with_ates/src/run_ates.py +++ b/tests/models/test_case_small_network_with_ates/src/run_ates.py @@ -2,6 +2,11 @@ import esdl +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.data.storage import DataStore @@ -19,12 +24,6 @@ from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/test_case_small_network_with_ates_with_buffer/src/run_ates.py b/tests/models/test_case_small_network_with_ates_with_buffer/src/run_ates.py index 5a00a0f0d..d1c9d4924 100644 --- a/tests/models/test_case_small_network_with_ates_with_buffer/src/run_ates.py +++ b/tests/models/test_case_small_network_with_ates_with_buffer/src/run_ates.py @@ -1,5 +1,10 @@ import esdl +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.data.storage import DataStore @@ -12,11 +17,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/unit_cases/case_1a/src/run_1a.py b/tests/models/unit_cases/case_1a/src/run_1a.py index b87efbeba..7acad48a9 100644 --- a/tests/models/unit_cases/case_1a/src/run_1a.py +++ b/tests/models/unit_cases/case_1a/src/run_1a.py @@ -1,3 +1,9 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -10,12 +16,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.physics_mixin import PhysicsMixin -from mesido.qth_not_maintained.qth_mixin import QTHMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/unit_cases/case_1a_t_var/src/run_1a.py b/tests/models/unit_cases/case_1a_t_var/src/run_1a.py index 518a652f4..169108f58 100644 --- a/tests/models/unit_cases/case_1a_t_var/src/run_1a.py +++ b/tests/models/unit_cases/case_1a_t_var/src/run_1a.py @@ -1,3 +1,9 @@ +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -9,12 +15,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.physics_mixin import PhysicsMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/unit_cases/case_2a/src/equal_temperatures.py b/tests/models/unit_cases/case_2a/src/equal_temperatures.py index d92f3e205..75404d13b 100644 --- a/tests/models/unit_cases/case_2a/src/equal_temperatures.py +++ b/tests/models/unit_cases/case_2a/src/equal_temperatures.py @@ -1,3 +1,8 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.heat_mixin import HeatMixin +from mesido.qth_mixin import QTHMixin +from mesido.util import run_heat_network_optimization + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -9,11 +14,6 @@ LinearizedOrderGoalProgrammingMixin, ) -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.heat_mixin import HeatMixin -from mesido.qth_mixin import QTHMixin -from mesido.util import run_heat_network_optimization - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/unit_cases/case_2a/src/run_2a.py b/tests/models/unit_cases/case_2a/src/run_2a.py index baea4838b..1c2019beb 100644 --- a/tests/models/unit_cases/case_2a/src/run_2a.py +++ b/tests/models/unit_cases/case_2a/src/run_2a.py @@ -1,3 +1,9 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -11,12 +17,6 @@ from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.physics_mixin import PhysicsMixin -from mesido.qth_not_maintained.qth_mixin import QTHMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/unit_cases/case_3a/src/run_3a.py b/tests/models/unit_cases/case_3a/src/run_3a.py index 098d64e56..cba67e28a 100644 --- a/tests/models/unit_cases/case_3a/src/run_3a.py +++ b/tests/models/unit_cases/case_3a/src/run_3a.py @@ -1,3 +1,10 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin +from mesido.qth_not_maintained.qth_mixin import QTHMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -10,13 +17,6 @@ ) from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.physics_mixin import PhysicsMixin -from mesido.qth_not_maintained.qth_mixin import QTHMixin -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py b/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py index db6fbb4d1..30600e796 100644 --- a/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py +++ b/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py @@ -1,3 +1,7 @@ +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -9,10 +13,6 @@ ) from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin -from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/unit_cases_electricity/bus_networks/src/example.py b/tests/models/unit_cases_electricity/bus_networks/src/example.py index bfe869d1a..9c0e7abda 100644 --- a/tests/models/unit_cases_electricity/bus_networks/src/example.py +++ b/tests/models/unit_cases_electricity/bus_networks/src/example.py @@ -1,3 +1,8 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -11,11 +16,6 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/unit_cases_electricity/electrolyzer/src/example.py b/tests/models/unit_cases_electricity/electrolyzer/src/example.py index fd7842c7a..00e9a78dd 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/src/example.py +++ b/tests/models/unit_cases_electricity/electrolyzer/src/example.py @@ -1,3 +1,8 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -10,11 +15,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - class RevenueGoal(Goal): priority = 1 diff --git a/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py b/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py index 4e9dfd359..e2def9854 100644 --- a/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py +++ b/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py @@ -1,5 +1,10 @@ import esdl +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -11,11 +16,6 @@ ) from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.physics_mixin import PhysicsMixin - # TODO: check if this run script is still valid as test case for electric heatpump and update with # functions diff --git a/tests/models/unit_cases_electricity/source_sink_cable/src/example.py b/tests/models/unit_cases_electricity/source_sink_cable/src/example.py index f5a853348..eb1009636 100644 --- a/tests/models/unit_cases_electricity/source_sink_cable/src/example.py +++ b/tests/models/unit_cases_electricity/source_sink_cable/src/example.py @@ -1,3 +1,9 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.physics_mixin import PhysicsMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -11,12 +17,6 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.physics_mixin import PhysicsMixin -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py b/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py index cdd0706b3..019fe9937 100644 --- a/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py +++ b/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py @@ -1,3 +1,8 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -11,11 +16,6 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/unit_cases_gas/source_pipe_split_sink/src/run_source_sink.py b/tests/models/unit_cases_gas/source_pipe_split_sink/src/run_source_sink.py index c7616b67d..9df96989c 100644 --- a/tests/models/unit_cases_gas/source_pipe_split_sink/src/run_source_sink.py +++ b/tests/models/unit_cases_gas/source_pipe_split_sink/src/run_source_sink.py @@ -1,3 +1,8 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -11,11 +16,6 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/models/unit_cases_gas/source_sink/src/run_source_sink.py b/tests/models/unit_cases_gas/source_sink/src/run_source_sink.py index 8681d8562..b9ca61ae1 100644 --- a/tests/models/unit_cases_gas/source_sink/src/run_source_sink.py +++ b/tests/models/unit_cases_gas/source_sink/src/run_source_sink.py @@ -1,3 +1,8 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + import numpy as np from rtctools.optimization.collocated_integrated_optimization_problem import ( @@ -11,11 +16,6 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_mixin import ESDLMixin -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin - class TargetDemandGoal(Goal): priority = 1 diff --git a/tests/test_absolute_heat.py b/tests/test_absolute_heat.py index c59c8ac88..457c64a0d 100644 --- a/tests/test_absolute_heat.py +++ b/tests/test_absolute_heat.py @@ -1,11 +1,11 @@ from pathlib import Path from unittest import TestCase -from rtctools.util import run_optimization_problem - from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from rtctools.util import run_optimization_problem + from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_asset_is_realized.py b/tests/test_asset_is_realized.py index c78dc3451..f4d4f6c79 100644 --- a/tests/test_asset_is_realized.py +++ b/tests/test_asset_is_realized.py @@ -1,13 +1,13 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - class TestAssetIsRealized(TestCase): def test_asset_is_realized(self): diff --git a/tests/test_ates.py b/tests/test_ates.py index 6adf089b7..c8d6c2034 100644 --- a/tests/test_ates.py +++ b/tests/test_ates.py @@ -1,13 +1,13 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_cable_topology_optimization.py b/tests/test_cable_topology_optimization.py index 4f596d4f2..5a55caa74 100644 --- a/tests/test_cable_topology_optimization.py +++ b/tests/test_cable_topology_optimization.py @@ -1,13 +1,13 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - class TestElectricityTopo(TestCase): def test_electricity_network_topology(self): diff --git a/tests/test_electric_bus.py b/tests/test_electric_bus.py index db7f564d8..b3bc1224f 100644 --- a/tests/test_electric_bus.py +++ b/tests/test_electric_bus.py @@ -10,14 +10,14 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - class TestMILPbus(TestCase): def test_voltages_and_power_network1(self): diff --git a/tests/test_electric_source_sink.py b/tests/test_electric_source_sink.py index 937111bfa..a2d4ce691 100644 --- a/tests/test_electric_source_sink.py +++ b/tests/test_electric_source_sink.py @@ -1,14 +1,14 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - # TODO: still have to make test where elecitricity direction is switched: # e.g. 2 nodes, with at each node a producer and consumer, first one node medium demand, second # small demand and then increase the demand of the second node such that direction changes diff --git a/tests/test_electrolyzer.py b/tests/test_electrolyzer.py index ce29db1ec..c64b96509 100644 --- a/tests/test_electrolyzer.py +++ b/tests/test_electrolyzer.py @@ -1,13 +1,13 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - # from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_end_scenario_sizing.py b/tests/test_end_scenario_sizing.py index 00b6529db..6b5840d67 100644 --- a/tests/test_end_scenario_sizing.py +++ b/tests/test_end_scenario_sizing.py @@ -1,10 +1,6 @@ from pathlib import Path from unittest import TestCase -import numpy as np - -from rtctools.util import run_optimization_problem - import mesido._darcy_weisbach as darcy_weisbach from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile @@ -16,6 +12,10 @@ ) from mesido.workflows.grow_workflow import EndScenarioSizingHeadLossStaged +import numpy as np + +from rtctools.util import run_optimization_problem + from utils_tests import demand_matching_test diff --git a/tests/test_end_scenario_sizing_annualized.py b/tests/test_end_scenario_sizing_annualized.py index 155b31fa8..92ded3c66 100644 --- a/tests/test_end_scenario_sizing_annualized.py +++ b/tests/test_end_scenario_sizing_annualized.py @@ -1,13 +1,13 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - class TestEndScenarioSizingAnnualized(TestCase): """ diff --git a/tests/test_esdl_parsing.py b/tests/test_esdl_parsing.py index 1a8334581..551b7d873 100644 --- a/tests/test_esdl_parsing.py +++ b/tests/test_esdl_parsing.py @@ -1,13 +1,13 @@ import unittest from pathlib import Path +from mesido.esdl.esdl_parser import ESDLFileParser, ESDLStringParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser, ESDLStringParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - class TestESDLParsing(unittest.TestCase): def test_from_string_and_from_file_are_equal(self): diff --git a/tests/test_esdl_pycml.py b/tests/test_esdl_pycml.py index 8afe5ee85..08907a5d5 100644 --- a/tests/test_esdl_pycml.py +++ b/tests/test_esdl_pycml.py @@ -1,13 +1,13 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - class TestESDL(TestCase): def test_basic_source_and_demand_heat(self): diff --git a/tests/test_gas_multi_demand_source_node.py b/tests/test_gas_multi_demand_source_node.py index bf4cf98e5..168c4ce8a 100644 --- a/tests/test_gas_multi_demand_source_node.py +++ b/tests/test_gas_multi_demand_source_node.py @@ -1,14 +1,14 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - class TestMILPGasMultiDemandSourceNode(TestCase): def test_multi_demand_source_node(self): diff --git a/tests/test_gas_pipe_topology_optimization.py b/tests/test_gas_pipe_topology_optimization.py index ca119f5ad..a4658301c 100644 --- a/tests/test_gas_pipe_topology_optimization.py +++ b/tests/test_gas_pipe_topology_optimization.py @@ -1,14 +1,14 @@ from pathlib import Path from unittest import TestCase -import numpy as np - -from rtctools.util import run_optimization_problem - from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption +import numpy as np + +from rtctools.util import run_optimization_problem + class TestGasNetwork(TestCase): def test_gas_pipe_top(self): @@ -30,9 +30,9 @@ def test_gas_pipe_top(self): class GasNetworkProblem(HeatProblem): def energy_system_options(self): options = super().energy_system_options() - self.gas_network_settings[ - "head_loss_option" - ] = HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY + self.gas_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY + ) self.gas_network_settings["minimize_head_losses"] = True return options diff --git a/tests/test_gas_source_sink.py b/tests/test_gas_source_sink.py index 2198133d4..3cea91ff2 100644 --- a/tests/test_gas_source_sink.py +++ b/tests/test_gas_source_sink.py @@ -1,15 +1,15 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.head_loss_class import HeadLossOption - class TestMILPGasSourceSink(TestCase): def test_source_sink(self): @@ -30,9 +30,9 @@ def test_source_sink(self): class TestSourceSink(GasProblem): def energy_system_options(self): options = super().energy_system_options() - self.heat_network_settings[ - "head_loss_option" - ] = HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY + self.heat_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY + ) self.heat_network_settings["n_linearization_lines"] = 5 self.heat_network_settings["minimize_head_losses"] = True diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 6141393aa..40d7c947c 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -1,10 +1,6 @@ from pathlib import Path from unittest import TestCase -import numpy as np - -from rtctools.util import run_optimization_problem - import mesido._darcy_weisbach as darcy_weisbach from mesido.constants import GRAVITATIONAL_CONSTANT from mesido.esdl.esdl_parser import ESDLFileParser @@ -12,6 +8,10 @@ from mesido.head_loss_class import HeadLossOption from mesido.network_common import NetworkSettings +import numpy as np + +from rtctools.util import run_optimization_problem + from utils_tests import demand_matching_test @@ -56,15 +56,15 @@ def energy_system_options(self): head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY ): - self.gas_network_settings[ - "head_loss_option" - ] = HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY + self.gas_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY + ) self.gas_network_settings["n_linearization_lines"] = 5 self.heat_network_settings["minimize_head_losses"] = True elif head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_EQUALITY: - self.heat_network_settings[ - "head_loss_option" - ] = HeadLossOption.LINEARIZED_N_LINES_EQUALITY + self.heat_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_N_LINES_EQUALITY + ) self.heat_network_settings["minimize_head_losses"] = True self.heat_network_settings["minimum_velocity"] = 1.0e-6 @@ -118,8 +118,8 @@ def energy_system_options(self): ) * 8.0 * pipe_length - * (v_inspect * np.pi * pipe_diameter ** 2 / 4.0) ** 2 - / (pipe_diameter ** 5 * GRAVITATIONAL_CONSTANT * np.pi ** 2) + * (v_inspect * np.pi * pipe_diameter**2 / 4.0) ** 2 + / (pipe_diameter**5 * GRAVITATIONAL_CONSTANT * np.pi**2) ) # Approximate dH [m] vs Q [m3/s] with a linear line between between v_points # dH_manual_linear = a*Q + b @@ -139,12 +139,12 @@ def energy_system_options(self): ) delta_volumetric_flow = ( - v_points[linearized_idx[1]] * np.pi * pipe_diameter ** 2 / 4.0 - ) - (v_points[linearized_idx[0]] * np.pi * pipe_diameter ** 2 / 4.0) + v_points[linearized_idx[1]] * np.pi * pipe_diameter**2 / 4.0 + ) - (v_points[linearized_idx[0]] * np.pi * pipe_diameter**2 / 4.0) a = delta_dh_theory / delta_volumetric_flow b = delta_dh_theory - a * delta_volumetric_flow - dh_manual_linear = a * (v_inspect * np.pi * pipe_diameter ** 2 / 4.0) + b + dh_manual_linear = a * (v_inspect * np.pi * pipe_diameter**2 / 4.0) + b dh_milp_head_loss_function = darcy_weisbach.head_loss( v_inspect, pipe_diameter, pipe_length, pipe_wall_roughness, temperature @@ -287,8 +287,8 @@ def energy_system_options(self): ) * 8.0 * pipe_length - * (v_inspect * np.pi * pipe_diameter ** 2 / 4.0) ** 2 - / (pipe_diameter ** 5 * GRAVITATIONAL_CONSTANT * np.pi ** 2) + * (v_inspect * np.pi * pipe_diameter**2 / 4.0) ** 2 + / (pipe_diameter**5 * GRAVITATIONAL_CONSTANT * np.pi**2) ) # Approximate dH [m] vs Q [m3/s] with a linear line between between v_points # dH_manual_linear = a*Q + b @@ -299,13 +299,13 @@ def energy_system_options(self): v_points[0], pipe_diameter, pipe_length, pipe_wall_roughness, temperature ) - delta_volumetric_flow = (v_points[1] * np.pi * pipe_diameter ** 2 / 4.0) - ( - v_points[0] * np.pi * pipe_diameter ** 2 / 4.0 + delta_volumetric_flow = (v_points[1] * np.pi * pipe_diameter**2 / 4.0) - ( + v_points[0] * np.pi * pipe_diameter**2 / 4.0 ) a = delta_dh_theory / delta_volumetric_flow b = delta_dh_theory - a * delta_volumetric_flow - dh_manual_linear = a * (v_inspect * np.pi * pipe_diameter ** 2 / 4.0) + b + dh_manual_linear = a * (v_inspect * np.pi * pipe_diameter**2 / 4.0) + b dh_milp_head_loss_function = darcy_weisbach.head_loss( v_inspect, pipe_diameter, pipe_length, pipe_wall_roughness, temperature @@ -469,13 +469,13 @@ def energy_system_options(self): pressure=solution.parameters(0)[f"{pipes[0]}.pressure"], ) - delta_volumetric_flow = (v_points[1] * np.pi * pipe_diameter ** 2 / 4.0) - ( - v_points[0] * np.pi * pipe_diameter ** 2 / 4.0 + delta_volumetric_flow = (v_points[1] * np.pi * pipe_diameter**2 / 4.0) - ( + v_points[0] * np.pi * pipe_diameter**2 / 4.0 ) a = delta_dh_theory / delta_volumetric_flow b = delta_dh_theory - a * delta_volumetric_flow - dh_manual_linear = a * (v_inspect * np.pi * pipe_diameter ** 2 / 4.0) + b + dh_manual_linear = a * (v_inspect * np.pi * pipe_diameter**2 / 4.0) + b # Check that the head loss approximation with 2 linear lines (inequality constraints # is < than the linear equality head loss constraint @@ -635,19 +635,19 @@ def energy_system_options(self): ) delta_volumetric_flow.append( - (v_points[ii + 1] * np.pi * pipe_diameter ** 2 / 4.0) - - (v_points[ii] * np.pi * pipe_diameter ** 2 / 4.0) + (v_points[ii + 1] * np.pi * pipe_diameter**2 / 4.0) + - (v_points[ii] * np.pi * pipe_diameter**2 / 4.0) ) a.append(delta_dh_theory[ii] / delta_volumetric_flow[ii]) b.append(sum(delta_dh_theory[0:ii]) - a[ii] * sum(delta_volumetric_flow[0:ii])) # dh for the 2 data point on the 1st linear line segment - dh_manual_linear.append(a[0] * (v_inspect[0] * np.pi * pipe_diameter ** 2 / 4.0) + b[0]) - dh_manual_linear.append(a[0] * (v_inspect[1] * np.pi * pipe_diameter ** 2 / 4.0) + b[0]) + dh_manual_linear.append(a[0] * (v_inspect[0] * np.pi * pipe_diameter**2 / 4.0) + b[0]) + dh_manual_linear.append(a[0] * (v_inspect[1] * np.pi * pipe_diameter**2 / 4.0) + b[0]) # dh for the 2 data point on the 2nd linear line segment - dh_manual_linear.append(a[1] * (v_inspect[2] * np.pi * pipe_diameter ** 2 / 4.0) + b[1]) - dh_manual_linear.append(a[1] * (v_inspect[3] * np.pi * pipe_diameter ** 2 / 4.0) + b[1]) + dh_manual_linear.append(a[1] * (v_inspect[2] * np.pi * pipe_diameter**2 / 4.0) + b[1]) + dh_manual_linear.append(a[1] * (v_inspect[3] * np.pi * pipe_diameter**2 / 4.0) + b[1]) # Gas flow balance np.testing.assert_allclose( diff --git a/tests/test_head_loss_class.py b/tests/test_head_loss_class.py index 7d6d1fd27..3f68fb7a0 100644 --- a/tests/test_head_loss_class.py +++ b/tests/test_head_loss_class.py @@ -1,13 +1,13 @@ from pathlib import Path from unittest import TestCase +from mesido.head_loss_class import HeadLossOption +from mesido.network_common import NetworkSettings + import numpy as np from rtctools.util import run_optimization_problem -from mesido.head_loss_class import HeadLossOption -from mesido.network_common import NetworkSettings - class TestHeadLossCalculation(TestCase): def test_scalar_return_type(self): diff --git a/tests/test_heat.py b/tests/test_heat.py index fefa9e07a..ed99dc9e8 100644 --- a/tests/test_heat.py +++ b/tests/test_heat.py @@ -1,14 +1,14 @@ from pathlib import Path from unittest import TestCase -import numpy as np - -from rtctools.util import run_optimization_problem - from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption +import numpy as np + +from rtctools.util import run_optimization_problem + from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -125,9 +125,9 @@ class MinPressure(SmallerPipes): def energy_system_options(self): options = super().energy_system_options() assert "pipe_minimum_pressure" in self.heat_network_settings - self.heat_network_settings[ - "pipe_minimum_pressure" - ] = TestMinMaxPressureOptions.min_pressure + self.heat_network_settings["pipe_minimum_pressure"] = ( + TestMinMaxPressureOptions.min_pressure + ) return options class MaxPressure(SmallerPipes): @@ -140,12 +140,12 @@ def energy_system_options(self): class MinMaxPressure(SmallerPipes): def energy_system_options(self): options = super().energy_system_options() - self.heat_network_settings[ - "pipe_minimum_pressure" - ] = TestMinMaxPressureOptions.min_pressure - self.heat_network_settings[ - "pipe_maximum_pressure" - ] = TestMinMaxPressureOptions.max_pressure + self.heat_network_settings["pipe_minimum_pressure"] = ( + TestMinMaxPressureOptions.min_pressure + ) + self.heat_network_settings["pipe_maximum_pressure"] = ( + TestMinMaxPressureOptions.max_pressure + ) return options def test_min_max_pressure_options(self): @@ -330,9 +330,9 @@ def test_disconnected_network_pipe(self): class ModelDisconnectedDarcyWeisbach(ModelDisconnected): def energy_system_options(self): options = super().energy_system_options() - self.heat_network_settings[ - "head_loss_option" - ] = HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + self.heat_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + ) return options def test_disconnected_pipe_darcy_weisbach(self): diff --git a/tests/test_heat_loss_u_values.py b/tests/test_heat_loss_u_values.py index 46ce86526..45f4add4d 100644 --- a/tests/test_heat_loss_u_values.py +++ b/tests/test_heat_loss_u_values.py @@ -1,9 +1,9 @@ from unittest import TestCase -import numpy as np - from mesido._heat_loss_u_values_pipe import heat_loss_u_values_pipe +import numpy as np + class TestHeatLossUValues(TestCase): def test_scalar_equal_to_single_element_array(self): diff --git a/tests/test_hydraulic_power.py b/tests/test_hydraulic_power.py index 55f20a2ba..621ef81cd 100644 --- a/tests/test_hydraulic_power.py +++ b/tests/test_hydraulic_power.py @@ -1,16 +1,17 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption + + import numpy as np import pandas as pd from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.head_loss_class import HeadLossOption - class TestHydraulicPower(TestCase): def test_hydraulic_power(self): @@ -57,7 +58,7 @@ def test_hydraulic_power(self): } run_hydraulic_power.comp_vars_init = { "pipe_length": 0.0, # [m] - "heat_demand": [3.95 * 10 ** 6, 3.95 * 10 ** 6], # [W] + "heat_demand": [3.95 * 10**6, 3.95 * 10**6], # [W] "pipe_DN_MILP": 300, # [mm] } standard_columns_specified = [ diff --git a/tests/test_insulation.py b/tests/test_insulation.py index 9d1caac84..77bcac53a 100644 --- a/tests/test_insulation.py +++ b/tests/test_insulation.py @@ -1,13 +1,13 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - class TestInsulation(TestCase): """ diff --git a/tests/test_max_size_and_optional_assets.py b/tests/test_max_size_and_optional_assets.py index fb835debd..362579c3e 100644 --- a/tests/test_max_size_and_optional_assets.py +++ b/tests/test_max_size_and_optional_assets.py @@ -1,13 +1,13 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_multicommodity.py b/tests/test_multicommodity.py index f42eefb93..7f8a43014 100644 --- a/tests/test_multicommodity.py +++ b/tests/test_multicommodity.py @@ -1,14 +1,14 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_multiple_carriers.py b/tests/test_multiple_carriers.py index 406fc71bf..07d53b02a 100644 --- a/tests/test_multiple_carriers.py +++ b/tests/test_multiple_carriers.py @@ -1,11 +1,11 @@ from pathlib import Path from unittest import TestCase -from rtctools.util import run_optimization_problem - from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from rtctools.util import run_optimization_problem + from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index dad898f68..8659a5c04 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -1,13 +1,13 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_network_simulator.py b/tests/test_network_simulator.py index 7abf80bc5..110edec02 100644 --- a/tests/test_network_simulator.py +++ b/tests/test_network_simulator.py @@ -1,14 +1,14 @@ from pathlib import Path from unittest import TestCase -import numpy as np - -from rtctools.util import run_optimization_problem - from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.workflows import NetworkSimulatorHIGHSTestCase +import numpy as np + +from rtctools.util import run_optimization_problem + from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_pipe_diameter_sizing.py b/tests/test_pipe_diameter_sizing.py index 464bd73dd..08bcb1cf3 100644 --- a/tests/test_pipe_diameter_sizing.py +++ b/tests/test_pipe_diameter_sizing.py @@ -2,14 +2,14 @@ from pathlib import Path from unittest import TestCase -import numpy as np - -from rtctools.util import run_optimization_problem - from mesido._darcy_weisbach import friction_factor from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +import numpy as np + +from rtctools.util import run_optimization_problem + from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -116,7 +116,7 @@ def test_half_network_gone(self): parameters[f"{pipe}.temperature"], ) c_v = parameters[f"{pipe}.length"] * ff / (2 * 9.81) / pc.inner_diameter - dh_max = c_v * pc.maximum_velocity ** 2 + dh_max = c_v * pc.maximum_velocity**2 dh_manual = dh_max * results[f"{pipe}.Q"][1:] / pc.area / pc.maximum_velocity np.testing.assert_allclose(-dh_manual, results[f"{pipe}.dH"][1:], atol=1.0e-12) diff --git a/tests/test_producer_profiles.py b/tests/test_producer_profiles.py index 1b0574cd9..a2ac921ce 100644 --- a/tests/test_producer_profiles.py +++ b/tests/test_producer_profiles.py @@ -1,11 +1,11 @@ from pathlib import Path from unittest import TestCase -from rtctools.util import run_optimization_problem - from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from rtctools.util import run_optimization_problem + from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index 675f5110e..45afe0416 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -4,15 +4,16 @@ import esdl -import numpy as np - -import pandas as pd - from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import InfluxDBProfileReader, ProfileReaderFromFile from mesido.workflows import EndScenarioSizingStagedHIGHS +import numpy as np + +import pandas as pd + + class MockInfluxDBProfileReader(InfluxDBProfileReader): def __init__(self, energy_system: esdl.EnergySystem, file_path: Optional[Path]): super().__init__(energy_system, file_path) diff --git a/tests/test_pycml.py b/tests/test_pycml.py index b05013865..4207c0b50 100644 --- a/tests/test_pycml.py +++ b/tests/test_pycml.py @@ -1,9 +1,9 @@ from unittest import TestCase -import numpy as np - from mesido.pycml import Model, Variable +import numpy as np + class TestPyCML(TestCase): def test_merge_modifiers_function(self): diff --git a/tests/test_setpoint_constraints.py b/tests/test_setpoint_constraints.py index eca280e44..2d793074e 100644 --- a/tests/test_setpoint_constraints.py +++ b/tests/test_setpoint_constraints.py @@ -1,15 +1,15 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np import pytest from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - class TestSetpointConstraints(TestCase): @pytest.mark.first diff --git a/tests/test_temperature_ates_hp.py b/tests/test_temperature_ates_hp.py index bc379e7d1..c290c95c8 100644 --- a/tests/test_temperature_ates_hp.py +++ b/tests/test_temperature_ates_hp.py @@ -1,13 +1,13 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_topo_constraints.py b/tests/test_topo_constraints.py index f0636694a..1ca38dacf 100644 --- a/tests/test_topo_constraints.py +++ b/tests/test_topo_constraints.py @@ -3,17 +3,17 @@ from typing import Dict from unittest import TestCase -import numpy as np -import numpy.testing - -from rtctools.util import run_optimization_problem - from mesido._heat_loss_u_values_pipe import pipe_heat_loss from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.pipe_class import PipeClass from mesido.techno_economic_mixin import TechnoEconomicMixin +import numpy as np +import numpy.testing + +from rtctools.util import run_optimization_problem + MIP_TOLERANCE = 1e-8 diff --git a/tests/test_varying_temperature.py b/tests/test_varying_temperature.py index 43be913ec..36472737f 100644 --- a/tests/test_varying_temperature.py +++ b/tests/test_varying_temperature.py @@ -1,14 +1,14 @@ from pathlib import Path from unittest import TestCase -import numpy as np - -from rtctools.util import run_optimization_problem - from mesido._heat_loss_u_values_pipe import pipe_heat_loss from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +import numpy as np + +from rtctools.util import run_optimization_problem + from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test diff --git a/tests/test_warmingup_unit_cases.py b/tests/test_warmingup_unit_cases.py index 9573a605c..151ea1464 100644 --- a/tests/test_warmingup_unit_cases.py +++ b/tests/test_warmingup_unit_cases.py @@ -1,13 +1,13 @@ from pathlib import Path from unittest import TestCase +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + import numpy as np from rtctools.util import run_optimization_problem -from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.esdl.profile_parser import ProfileReaderFromFile - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test From 6140e70ceca6f5b4246f11fd0e447a779bb96b46 Mon Sep 17 00:00:00 2001 From: Rojer Date: Sun, 24 Mar 2024 19:52:14 +0100 Subject: [PATCH 006/275] changed description --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 8588fd678..93dbc8d70 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ -"""Heat network models for RTC-Tools 2. +"""Multi Energy System Optimization -Includes Modelica models and their accompanying Mixins for milp networks. +MILP optimization for design and operational optimization """ import sys From 1e56b3158722ada21aba3467cef5557bbcdabc10 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 25 Mar 2024 11:21:48 +0100 Subject: [PATCH 007/275] Update pyESDL version - includes influxDB bug fixes --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 93dbc8d70..a43586463 100644 --- a/setup.py +++ b/setup.py @@ -59,7 +59,7 @@ "pyecore == 0.12.1", "pymoca >= 0.9.0", "rtc-tools == 2.6.0a3", - "pyesdl >= 23.12, < 24.0", + "pyesdl == 24.2", "pandas >= 1.3.1, < 2.0", "casadi == 3.6.3", "StrEnum == 0.4.15", From 13027a40af753c88141e2c891d79a202d747403b Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 25 Mar 2024 11:40:11 +0100 Subject: [PATCH 008/275] Remove temp fix, required for older pyESDL versions --- src/mesido/esdl/profile_parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index 1082d13cc..22de31edf 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -290,7 +290,7 @@ def _load_profile_timeseries_from_database(self, profile: esdl.InfluxDBProfile) time_series_data = InfluxDBProfileManager(conn_settings) time_series_data.load_influxdb( - '"' + profile.measurement + '"', + profile.measurement, [profile.field], profile.startDate, profile.endDate, From 8ea2cf7d70ea14f8fceaf6c885ad5138ab2def1b Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Tue, 26 Mar 2024 08:57:09 +0100 Subject: [PATCH 009/275] Code fix: caused after the merge of branch 113 back to master (#4) --- src/mesido/workflows/goals/minimize_tco_goal.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/mesido/workflows/goals/minimize_tco_goal.py b/src/mesido/workflows/goals/minimize_tco_goal.py index 945258d82..ea6d75b2c 100644 --- a/src/mesido/workflows/goals/minimize_tco_goal.py +++ b/src/mesido/workflows/goals/minimize_tco_goal.py @@ -50,7 +50,6 @@ def __init__( "heat_buffer", "heat_pump", "heat_exchanger", - "heat_exchanger_elec", "pump", }, "investment": { @@ -61,7 +60,6 @@ def __init__( "heat_exchanger", "heat_pump", "heat_pipe", - "heat_exchanger_elec", "pump", }, "installation": { @@ -72,7 +70,6 @@ def __init__( "heat_exchanger", "heat_pump", "heat_pipe", - "heat_exchanger_elec", "pump", }, "annualized": { @@ -83,9 +80,8 @@ def __init__( "heat_exchanger", "heat_pump", "heat_pipe", - "heat_exchanger_elec", "pump", - }, # TODO: confirm inclusion of "heat_exchanger_elec" & "pump" in "annualized" + }, } self.asset_type_maps = ( From 564cd5ef5f5c6a86129f7f375dae157ea178f24c Mon Sep 17 00:00:00 2001 From: Femke Janssen Date: Tue, 26 Mar 2024 10:35:40 +0100 Subject: [PATCH 010/275] fix in asset_sizing_mixin for the maps and varnames of gaspipes and electricity cables for max discharge and current and for heat pipes for heat --- .../asset_sizing_mixin.py | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/rtctools_heat_network/asset_sizing_mixin.py b/src/rtctools_heat_network/asset_sizing_mixin.py index 5c716dcc4..66b444745 100644 --- a/src/rtctools_heat_network/asset_sizing_mixin.py +++ b/src/rtctools_heat_network/asset_sizing_mixin.py @@ -252,16 +252,16 @@ def pre(self): self._electricity_cable_topo_max_current_map[cable] = max_current_var_name if len(cable_classes) > 0: - self.__electricity_cable_topo_max_current_nominals[cable] = np.median(max_currents) - self.__electricity_cable_topo_max_current_var_bounds[cable] = ( + self.__electricity_cable_topo_max_current_nominals[max_current_var_name] = np.median(max_currents) + self.__electricity_cable_topo_max_current_var_bounds[max_current_var_name] = ( -max(max_currents), max(max_currents), ) else: - self.__electricity_cable_topo_max_current_nominals[cable] = parameters[ + self.__electricity_cable_topo_max_current_nominals[max_current_var_name] = parameters[ f"{cable}.max_current" ] - self.__electricity_cable_topo_max_current_var_bounds[cable] = ( + self.__electricity_cable_topo_max_current_var_bounds[max_current_var_name] = ( -parameters[f"{cable}.max_current"], parameters[f"{cable}.max_current"], ) @@ -386,17 +386,17 @@ def pre(self): self._gas_pipe_topo_max_discharge_map[pipe] = max_discharge_var_name if len(pipe_classes) > 0: - self.__gas_pipe_topo_max_discharge_nominals[pipe] = np.median(max_discharges) - self.__gas_pipe_topo_max_discharge_var_bounds[pipe] = ( + self.__gas_pipe_topo_max_discharge_nominals[max_discharge_var_name] = np.median(max_discharges) + self.__gas_pipe_topo_max_discharge_var_bounds[max_discharge_var_name] = ( -max(max_discharges), max(max_discharges), ) else: max_velocity = self.gas_network_settings["maximum_velocity"] - self.__gas_pipe_topo_max_discharge_nominals[pipe] = ( + self.__gas_pipe_topo_max_discharge_nominals[max_discharge_var_name] = ( parameters[f"{pipe}.area"] * max_velocity ) - self.__gas_pipe_topo_max_discharge_var_bounds[pipe] = ( + self.__gas_pipe_topo_max_discharge_var_bounds[max_discharge_var_name] = ( -parameters[f"{pipe}.area"] * max_velocity, parameters[f"{pipe}.area"] * max_velocity, ) @@ -518,17 +518,17 @@ def pre(self): self._pipe_topo_max_discharge_map[pipe] = max_discharge_var_name if len(pipe_classes) > 0: - self.__pipe_topo_max_discharge_nominals[pipe] = np.median(max_discharges) - self.__pipe_topo_max_discharge_var_bounds[pipe] = ( + self.__pipe_topo_max_discharge_nominals[max_discharge_var_name] = np.median(max_discharges) + self.__pipe_topo_max_discharge_var_bounds[max_discharge_var_name] = ( -max(max_discharges), max(max_discharges), ) else: max_velocity = self.heat_network_settings["maximum_velocity"] - self.__pipe_topo_max_discharge_nominals[pipe] = ( + self.__pipe_topo_max_discharge_nominals[max_discharge_var_name] = ( parameters[f"{pipe}.area"] * max_velocity ) - self.__pipe_topo_max_discharge_var_bounds[pipe] = ( + self.__pipe_topo_max_discharge_var_bounds[max_discharge_var_name] = ( -parameters[f"{pipe}.area"] * max_velocity, parameters[f"{pipe}.area"] * max_velocity, ) From c67305971acfef4d9bb0eb627de86aab6ffa1431 Mon Sep 17 00:00:00 2001 From: Femke Janssen Date: Tue, 26 Mar 2024 10:43:27 +0100 Subject: [PATCH 011/275] style --- .../asset_sizing_mixin.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/rtctools_heat_network/asset_sizing_mixin.py b/src/rtctools_heat_network/asset_sizing_mixin.py index 66b444745..1c94ddd11 100644 --- a/src/rtctools_heat_network/asset_sizing_mixin.py +++ b/src/rtctools_heat_network/asset_sizing_mixin.py @@ -252,15 +252,17 @@ def pre(self): self._electricity_cable_topo_max_current_map[cable] = max_current_var_name if len(cable_classes) > 0: - self.__electricity_cable_topo_max_current_nominals[max_current_var_name] = np.median(max_currents) + self.__electricity_cable_topo_max_current_nominals[max_current_var_name] = ( + np.median(max_currents) + ) self.__electricity_cable_topo_max_current_var_bounds[max_current_var_name] = ( -max(max_currents), max(max_currents), ) else: - self.__electricity_cable_topo_max_current_nominals[max_current_var_name] = parameters[ - f"{cable}.max_current" - ] + self.__electricity_cable_topo_max_current_nominals[max_current_var_name] = ( + parameters[f"{cable}.max_current"] + ) self.__electricity_cable_topo_max_current_var_bounds[max_current_var_name] = ( -parameters[f"{cable}.max_current"], parameters[f"{cable}.max_current"], @@ -386,7 +388,9 @@ def pre(self): self._gas_pipe_topo_max_discharge_map[pipe] = max_discharge_var_name if len(pipe_classes) > 0: - self.__gas_pipe_topo_max_discharge_nominals[max_discharge_var_name] = np.median(max_discharges) + self.__gas_pipe_topo_max_discharge_nominals[max_discharge_var_name] = np.median( + max_discharges + ) self.__gas_pipe_topo_max_discharge_var_bounds[max_discharge_var_name] = ( -max(max_discharges), max(max_discharges), @@ -518,7 +522,9 @@ def pre(self): self._pipe_topo_max_discharge_map[pipe] = max_discharge_var_name if len(pipe_classes) > 0: - self.__pipe_topo_max_discharge_nominals[max_discharge_var_name] = np.median(max_discharges) + self.__pipe_topo_max_discharge_nominals[max_discharge_var_name] = np.median( + max_discharges + ) self.__pipe_topo_max_discharge_var_bounds[max_discharge_var_name] = ( -max(max_discharges), max(max_discharges), From ed9c6945c7f6637d757c843d56ed4986b58db2bc Mon Sep 17 00:00:00 2001 From: Rojer Date: Tue, 26 Mar 2024 11:26:53 +0100 Subject: [PATCH 012/275] fix of the bug --- src/mesido/pycml/component_library/milp/heat/ates.py | 3 +++ src/mesido/pycml/component_library/milp/heat/heat_buffer.py | 3 +++ tests/test_warmingup_unit_cases.py | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/src/mesido/pycml/component_library/milp/heat/ates.py b/src/mesido/pycml/component_library/milp/heat/ates.py index eda3a15d2..6690874ba 100644 --- a/src/mesido/pycml/component_library/milp/heat/ates.py +++ b/src/mesido/pycml/component_library/milp/heat/ates.py @@ -90,6 +90,9 @@ def __init__(self, name, **modifiers): Variable, "Pump_power", min=0.0, nominal=self.Q_nominal * self.nominal_pressure ) + self.add_variable(Variable, "dH") + self.add_equation(self.dH - (self.HeatOut.H - self.HeatIn.H)) + self._heat_loss_error_to_state_factor = 1 self._nominal_heat_loss = ( self.Stored_heat.nominal * self.heat_loss_coeff * self._heat_loss_error_to_state_factor diff --git a/src/mesido/pycml/component_library/milp/heat/heat_buffer.py b/src/mesido/pycml/component_library/milp/heat/heat_buffer.py index 4313ebcec..dd377c542 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_buffer.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_buffer.py @@ -94,6 +94,9 @@ def __init__(self, name, **modifiers): self._heat_loss_eq_nominal_buf = (self.Heat_nominal * self._nominal_heat_loss) ** 0.5 + self.add_variable(Variable, "dH") + self.add_equation(self.dH - (self.HeatOut.H - self.HeatIn.H)) + self.add_equation(self.HeatIn.Q - self.HeatOut.Q) self.add_equation(self.Q - self.HeatOut.Q) diff --git a/tests/test_warmingup_unit_cases.py b/tests/test_warmingup_unit_cases.py index 151ea1464..c9744cb04 100644 --- a/tests/test_warmingup_unit_cases.py +++ b/tests/test_warmingup_unit_cases.py @@ -187,3 +187,9 @@ def test_3a(self): atol=1.0e-3, ) np.testing.assert_allclose(results[f"{buffer}.Heat_buffer"][0], 0.0, atol=1.0e-6) + + np.testing.assert_allclose( + results[f"{buffer}.dH"][inds], + results[f"{buffer}.HeatOut.H"][inds] - results[f"{buffer}.HeatIn.H"][inds], + atol=1.0e-6, + ) From 3c053069ea27018c0f84ceddb7c18b760168d6b8 Mon Sep 17 00:00:00 2001 From: Femke Janssen Date: Tue, 26 Mar 2024 11:37:17 +0100 Subject: [PATCH 013/275] bugfix bound electricity source financial mixin --- src/mesido/financial_mixin.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/mesido/financial_mixin.py b/src/mesido/financial_mixin.py index d3d7b5d67..8f4ef5771 100644 --- a/src/mesido/financial_mixin.py +++ b/src/mesido/financial_mixin.py @@ -163,8 +163,13 @@ def pre(self): nominal_fixed_operational = bounds[f"{asset_name}.Power_consumed"][1] nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational - elif asset_name in [*self.energy_system_components.get("wind_park", [])]: - nominal_fixed_operational = bounds[f"{asset_name}.Set_point"][1] + elif asset_name in [*self.energy_system_components.get("electricity_source", [])]: + max_power = ( + bounds[f"{asset_name}.ElectricityOut.Power"][1] + if isinstance(bounds[f"{asset_name}.ElectricityOut.Power"][1], float) + else max(bounds[f"{asset_name}.ElectricityOut.Power"][1].values) + ) + nominal_fixed_operational = max_power nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational else: From 9efce371ee603fa8a4826fe5d7993d59b42550a7 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Tue, 26 Mar 2024 15:39:30 +0100 Subject: [PATCH 014/275] Write pump power profile data to influxDB (#3) * InfluxDB profile out: - Add pump power for source, ates, buffer, hex and hp - Only head/pump power when head_loss_min is active - pipe velocity --- src/mesido/workflows/io/write_output.py | 87 +++++++++++++++---- .../heat_exchange/src/run_heat_exchanger.py | 2 + tests/models/heatpump/src/run_heat_pump.py | 2 + .../source_pipe_sink/src/double_pipe_heat.py | 3 + tests/test_head_loss.py | 17 ++++ ...est_multiple_in_and_out_port_components.py | 55 +++++++++++- 6 files changed, 146 insertions(+), 20 deletions(-) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 95942efea..9080f5815 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -869,17 +869,6 @@ def _name_to_asset(name): if self.write_result_db_profiles: logger.info("Writing asset result profile data to influxDB") results = self.extract_results() - # Note: when adding new variables to variables_one_hydraulic_system or" - # variables_two_hydraulic_system also add quantity and units to the ESDL for the new - # variables in the code lower down - variables_one_hydraulic_system = ["HeatIn.Q", "HeatIn.H", "Heat_flow"] - variables_two_hydraulic_system = [ - "Primary.HeatIn.Q", - "Primary.HeatIn.H", - "Secondary.HeatIn.Q", - "Secondary.HeatIn.H", - "Heat_flow", - ] influxdb_conn_settings = ConnectionSettings( host=self.influxdb_host, @@ -909,6 +898,46 @@ def _name_to_asset(name): *self.energy_system_components.get("heat_exchanger", []), *self.energy_system_components.get("heat_pump", []), ]: + # Note: when adding new variables to variables_one_hydraulic_system or" + # variables_two_hydraulic_system also add quantity and units to the ESDL for the new + # variables in the code lower down + # These variables exist for all the assets. Variables that only exist for specific + # assets are only added later, like Pump_power + variables_one_hydraulic_system = ["HeatIn.Q", "Heat_flow"] + variables_two_hydraulic_system = [ + "Primary.HeatIn.Q", + "Secondary.HeatIn.Q", + "Heat_flow", + ] + + # Update/overwrite each asset variable list due to: + # - the addition of head loss minimization: head variable and pump power + # - only a specific variable required for a specific asset: pump power + # - addition of post processed variables: pipe velocity + if self.heat_network_settings["minimize_head_losses"]: + variables_one_hydraulic_system.append("HeatIn.H") + variables_two_hydraulic_system.append("Primary.HeatIn.H") + variables_two_hydraulic_system.append("Secondary.HeatIn.H") + if asset_name in [ + *self.energy_system_components.get("heat_source", []), + *self.energy_system_components.get("heat_buffer", []), + *self.energy_system_components.get("ates", []), + *self.energy_system_components.get("heat_exchanger", []), + *self.energy_system_components.get("heat_pump", []), + ]: + variables_one_hydraulic_system.append("Pump_power") + variables_two_hydraulic_system.append("Pump_power") + elif asset_name in [*self.energy_system_components.get("pump", [])]: + variables_one_hydraulic_system = ["Pump_power"] + variables_two_hydraulic_system = ["Pump_power"] + if asset_name in [*self.energy_system_components.get("heat_pipe", [])]: + variables_one_hydraulic_system.append("PostProc.Velocity") + variables_two_hydraulic_system.append("PostProc.Velocity") + # Velocity at the pipe outlet [m/s] + post_processed_velocity = ( + results[f"{asset_name}.HeatOut.Q"] / parameters[f"{asset_name}.area"] + ) + profiles = ProfileManager() profiles.profile_type = "DATETIME_LIST" profiles.profile_header = ["datetime"] @@ -948,13 +977,20 @@ def _name_to_asset(name): numbers.Number, ): variables_names = variables_one_hydraulic_system - except Exception: + except KeyError: # For all components dealing with two hydraulic system if isinstance( results[f"{asset_name}." + variables_two_hydraulic_system[0]][ii], numbers.Number, ): variables_names = variables_two_hydraulic_system + except Exception: + logger.error( + f"During the influxDB profile writing for asset: {asset_name}, the " + "following error occured:" + ) + traceback.print_exc() + sys.exit(1) for variable in variables_names: if ii == 0: @@ -981,7 +1017,7 @@ def _name_to_asset(name): id=str(uuid.uuid4()), ) # Assign quantity and units variable - if variable in ["Heat_flow"]: + if variable in ["Heat_flow", "Pump_power"]: profile_attributes.profileQuantityAndUnit = ( esdl.esdl.QuantityAndUnitType( physicalQuantity=esdl.PhysicalQuantityEnum.POWER, @@ -1014,6 +1050,15 @@ def _name_to_asset(name): multiplier=esdl.MultiplierEnum.NONE, ) ) + elif variable in ["PostProc.Velocity"]: + profile_attributes.profileQuantityAndUnit = ( + esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.SPEED, + unit=esdl.UnitEnum.METRE, + perTimeUnit=esdl.TimeUnitEnum.SECOND, + multiplier=esdl.MultiplierEnum.NONE, + ) + ) else: logger.warning( f"No profile units will be written to the ESDL for: " @@ -1032,9 +1077,14 @@ def _name_to_asset(name): conversion_factor = GRAVITATIONAL_CONSTANT * 988.0 else: conversion_factor = 1.0 - data_row.append( - results[f"{asset_name}." + variable][ii] * conversion_factor - ) + if variable not in ["PostProc.Velocity"]: + data_row.append( + results[f"{asset_name}." + variable][ii] * conversion_factor + ) + # The variable evaluation below seems unnecessary, but it would be used + # we expand the list of post process type variables + elif variable in ["PostProc.Velocity"]: + data_row.append(post_processed_velocity[ii]) profiles.profile_data_list.append(data_row) # end time steps @@ -1051,13 +1101,13 @@ def _name_to_asset(name): field_names=influxdb_profile_manager.profile_header[1:], tags=optim_simulation_tag, ) - # -- Test tags -- # do not delete - to be used in test case + # -- Test tags -- # do not delete - to be used in test case # prof_loaded_from_influxdb = InfluxDBProfileManager(influxdb_conn_settings) # dicts = [{"tag": "output_esdl_id", "value": energy_system.id}] # prof_loaded_from_influxdb.load_influxdb( # # '"' + "ResidualHeatSource_72d7" + '"' , - # '"' + asset_name + '"' , + # asset_name, # variables_one_hydraulic_system, # # ["HeatIn.Q"], # # ["HeatIn.H"], @@ -1066,6 +1116,7 @@ def _name_to_asset(name): # profiles.end_datetime, # dicts, # ) + # test = 0.0 # ------------------------------------------------------------------------------ # Do not delete the code below: is used in the development of profile viewer in diff --git a/tests/models/heat_exchange/src/run_heat_exchanger.py b/tests/models/heat_exchange/src/run_heat_exchanger.py index 5dbd08948..a1847bcac 100644 --- a/tests/models/heat_exchange/src/run_heat_exchanger.py +++ b/tests/models/heat_exchange/src/run_heat_exchanger.py @@ -3,6 +3,7 @@ from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption from mesido.physics_mixin import PhysicsMixin +from mesido.workflows.io.write_output import ScenarioOutput import numpy as np @@ -67,6 +68,7 @@ def function(self, optimization_problem, ensemble_member): class HeatProblem( + ScenarioOutput, _GoalsAndOptions, PhysicsMixin, LinearizedOrderGoalProgrammingMixin, diff --git a/tests/models/heatpump/src/run_heat_pump.py b/tests/models/heatpump/src/run_heat_pump.py index 80b5ba90b..43d4b20ca 100644 --- a/tests/models/heatpump/src/run_heat_pump.py +++ b/tests/models/heatpump/src/run_heat_pump.py @@ -2,6 +2,7 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.physics_mixin import PhysicsMixin +from mesido.workflows.io.write_output import ScenarioOutput import numpy as np @@ -91,6 +92,7 @@ def function(self, optimization_problem, ensemble_member): class HeatProblem( + ScenarioOutput, _GoalsAndOptions, PhysicsMixin, LinearizedOrderGoalProgrammingMixin, diff --git a/tests/models/source_pipe_sink/src/double_pipe_heat.py b/tests/models/source_pipe_sink/src/double_pipe_heat.py index 2f641f98f..ad259159a 100644 --- a/tests/models/source_pipe_sink/src/double_pipe_heat.py +++ b/tests/models/source_pipe_sink/src/double_pipe_heat.py @@ -4,6 +4,8 @@ from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.io.write_output import ScenarioOutput + from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, @@ -44,6 +46,7 @@ def function(self, optimization_problem, ensemble_member): class SourcePipeSink( + ScenarioOutput, TechnoEconomicMixin, LinearizedOrderGoalProgrammingMixin, SinglePassGoalProgrammingMixin, diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 40d7c947c..0a8d9aecf 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -46,6 +46,11 @@ def test_heat_network_head_loss(self): ]: # Added for case where head loss is modelled via DW class SourcePipeSinkDW(SourcePipeSink): + # Do not delete: this is used to manualy check writing out of profile data + # def post(self): + # super().post() + # self._write_updated_esdl(self.get_energy_system_copy(), optimizer_sim=True) + def energy_system_options(self): options = super().energy_system_options() @@ -70,6 +75,17 @@ def energy_system_options(self): return options + # Do not delete kwargs: this is used to manualy check writing out of profile data + kwargs = { + "write_result_db_profiles": True, + "influxdb_host": "localhost", + "influxdb_port": 8086, + "influxdb_username": None, + "influxdb_password": None, + "influxdb_ssl": False, + "influxdb_verify_ssl": False, + } + solution = run_optimization_problem( SourcePipeSinkDW, base_folder=base_folder, @@ -77,6 +93,7 @@ def energy_system_options(self): esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries_import.csv", + **kwargs, ) results = solution.extract_results() diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index 8659a5c04..0853996a8 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -33,14 +33,39 @@ def test_heat_exchanger(self): ) base_folder = Path(run_heat_exchanger.__file__).resolve().parent.parent + # ----------------------------------------------------------------------------------------- + # Do not delete: this is used to manualy check writing out of profile data + + class HeatProblemPost(HeatProblem): + # def post(self): + # super().post() + # self._write_updated_esdl(self.get_energy_system_copy(), optimizer_sim=True) + + def energy_system_options(self): + options = super().energy_system_options() + # self.heat_network_settings["minimize_head_losses"] = True # used for manual tests + return options + + # Do not delete kwargs: this is used to manualy check writing out of profile data + kwargs = { + "write_result_db_profiles": False, + "influxdb_host": "localhost", + "influxdb_port": 8086, + "influxdb_username": None, + "influxdb_password": None, + "influxdb_ssl": False, + "influxdb_verify_ssl": False, + } + # ----------------------------------------------------------------------------------------- solution = run_optimization_problem( - HeatProblem, + HeatProblemPost, base_folder=base_folder, esdl_file_name="heat_exchanger.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries_import.xml", + **kwargs, ) results = solution.extract_results() @@ -99,13 +124,39 @@ def test_heat_pump(self): base_folder = Path(run_heat_pump.__file__).resolve().parent.parent + # ----------------------------------------------------------------------------------------- + # Do not delete: this is used to manualy check writing out of profile data + + class HeatProblemPost(HeatProblem): + # def post(self): + # super().post() + # self._write_updated_esdl(self.get_energy_system_copy(), optimizer_sim=True) + + def energy_system_options(self): + options = super().energy_system_options() + # self.heat_network_settings["minimize_head_losses"] = True # used for manual tests + return options + + # Do not delete kwargs: this is used to manualy check writing out of profile data + kwargs = { + "write_result_db_profiles": False, + "influxdb_host": "localhost", + "influxdb_port": 8086, + "influxdb_username": None, + "influxdb_password": None, + "influxdb_ssl": False, + "influxdb_verify_ssl": False, + } + # ----------------------------------------------------------------------------------------- + solution = run_optimization_problem( - HeatProblem, + HeatProblemPost, base_folder=base_folder, esdl_file_name="heat_pump.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries_import.xml", + **kwargs, ) results = solution.extract_results() From 6fa0fb0eeffa7ea890a1f3aa62e9d36f6911f22e Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 27 Mar 2024 13:28:26 +0100 Subject: [PATCH 015/275] Profile unite conversion speed improvement --- src/mesido/esdl/profile_parser.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index 22de31edf..dc13b968a 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -386,10 +386,11 @@ def _convert_profile_to_correct_unit( f"either power, energy values or euros per Wh, not " f"{profile_quantity_and_unit.physicalQuantity}." ) - return profile_time_series.apply( - func=lambda x: convert_to_unit( - value=x, source_unit=profile_quantity_and_unit, target_unit=target_unit - ) + # The vectorized method below is used instead of profile_time_series.apply(), due to a + # computational cost reduction (order of 2000 times faster for a profile with 8760 + # timesteps) + return profile_time_series * convert_to_unit( + value=1.0, source_unit=profile_quantity_and_unit, target_unit=target_unit ) @staticmethod From 29c7530523b3abadaafc7d2ae5983e1b34cbc5ea Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 28 Mar 2024 10:08:01 +0100 Subject: [PATCH 016/275] Formatting & some restructuring --- docs/theory/code_structure.rst | 18 +++++++++--------- docs/theory/introduction.rst | 23 +++++++++++------------ 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/docs/theory/code_structure.rst b/docs/theory/code_structure.rst index fab39020d..4ae102cdd 100644 --- a/docs/theory/code_structure.rst +++ b/docs/theory/code_structure.rst @@ -4,31 +4,31 @@ Code Structure ============== Rtc-tools is used as the framework to define optimization problems, https://gitlab.com/deltares/rtc-tools. -Rtc-tools is a tool-box in which time-horizon optimization problems can be defined and via the package Casadi the problems are parsed in formats that allow solvers such as Highs and Gurobi to solve the problem. -Internally rtc-tools makes heavy use of the python mixin structure, which results that MESIDO also adheres to the mixin structure that rtc-tools uses. +Rtc-tools is a tool-box in which time-horizon optimization problems can be defined. It utilizes the Casadi package to parse the problems in formats that allow solvers such as Highs and Gurobi to solve the problem. +Internally rtc-tools makes heavy use of the python mixin (inheritance) structure, which results that MESIDO also adheres to the mixin structure that rtc-tools uses. -Although the full structure is even more elaborate the basic methods in the mixin are: +Although the full structure is even more elaborate, the basic methods in the mixin are: * read: In this method all parsing of data files containing relevant information for the problem should be done, e.g. price profiles. -* times: In this function the time horizon is defined/adapted, note varying time-step size is supported. +* times: In this function the time horizon is defined/adapted, note varying timestep size is supported. * pre: In this method all variables and other operations needed before constraints and goals can be defined should be done. * (path) constraints: In this method the constraints should be added to the problem, the path constraints are those applied to states which exist in every timestep. * (path) goals: In this method the goals should be added to the problem, the path goals are those applied to states which exist in every timestep. -* optimize: Here the problem is transcribed and parsed to the solver (this method is never touched in MESIDO). +* optimize: Here the problem is transcribed and parsed to the solver (this method is never modified in MESIDO). * post: In this method optional post processing including checks on the outcome of the optimization can be preformed. MESIDO offers a toolbox for optimization of multi energy systems with the following mixins: * PyCMLMixin: This mixin allows users to define component models with easy functions for adding variables and parameters. * ESDLMixin: This mixin reads ESDL files and constructs a network model using the asset models defined in PyCML -* PhysicsMixin: This Mixin adds constraints for the modelling of physics in asset components or interaction between assets. The PhysicsMixin inherits the individual commodity mixins and adds physics where interaction between the commodities exists. +* PhysicsMixin: This mixin adds constraints for the modelling of physics in asset components or interaction between assets. The PhysicsMixin inherits the individual commodity mixins and adds physics where interaction between the commodities exists. * HeatPhysicsMixin: Adds physics for the modelling of district heating systems. - * ElectricityPhysicsMixin: Adds physics for the modelling of Electricity grids. + * ElectricityPhysicsMixin: Adds physics for the modelling of electricity grids. * GasPhysicsMixin: Adds physics for the modelling of networks with gaseous mediums, e.g. natural gas or hydrogen. * AssetSizingMixin: Adds variables and constraints allowing for the sizing and placement of assets in the energy system. * FinancialMixin: Adds variables and constraints for financial computations, like OPEX, CAPEX and revenues. There are also workflows (which technically are also mixins) next to these toolbox mixins that MESIDO offers. The default workflows available are: -* EndScenarioSzing: This workflow will optimize the energy system for Total Cost of ownership. -* GROWSimulator: This workflow allows to do operational analysis with a merit order for source strategy, where the use of sources is minimized in the reverse order to mimick simulator like behaviour. +* EndScenarioSizing: This workflow will optimize the energy system for total tost of ownership. +* GROWSimulator: This workflow allows one to do operational analysis with a source merit order usage strategy, where the use of sources is minimized in the reverse merit order to mimick simulator like behaviour. diff --git a/docs/theory/introduction.rst b/docs/theory/introduction.rst index 9de539a1a..1bbc07549 100644 --- a/docs/theory/introduction.rst +++ b/docs/theory/introduction.rst @@ -1,7 +1,7 @@ Introduction ============ -MESIDO is the abbreviation for Multi Energy System Integrated Design and Operation. This documentation is meant to give the user of MESIDO package insight in how to use the different functionalities available. +MESIDO is the abbreviation for Multi Energy System Integrated Design and Operation. This documentation is meant to give the user of the MESIDO package insight in how to use the different functionalities available. Why MESIDO? ----------- @@ -9,27 +9,26 @@ Why MESIDO? MESIDO aims to fill the gap between available tools used in early feasibility studies and the more detailed tools (typically simulators). Tools for feasibilty studies like EnergyPlan, https://www.energyplan.eu, provide a good framework for initial feasibility of high level system concepts. These tools often have little to no physics included in their models, typically energy balancing with efficiencies and capacity limits. -On the other hand there are more detailed tools, examples include detailed simulators like PandaPower and PandaPipes. -These simulators include more detailed modelling of physics allowing to analyze networks and/or assets close to real life operational conditions. +On the other hand there are more detailed tools, examples include detailed simulators like pandapower and pandapipes. +These simulators include more detailed modelling of physics allowing one to analyze networks and/or assets close to real life operational conditions. The high level system concept that comes out of the initial feasibility is typically still subjected to many uncertainties. Therefore, many design choices are still to be made like placement and exact sizing of assets, optimal routing of the network, etc. -Although, the more detailed simulators can analyze various energy system designs by running different design options, it is seen that this becomes infeasible in practice as the amount of open design choices after initial feasibility is too high. -The increased complexity of the new and future energy systems plays a significant part. New energy systems have multiple producer, multiple consumer networks, often with storage (possibly seasonal) -and most notably interconnections between different energy commodities means that possible solution space is larger than ever. +Although, the more detailed simulators can analyze various energy system designs by running different design options, it typically becomes infeasible in practice as the amount of open design choices after initial feasibility is too high. +The increased complexity of the new and future energy systems plays a significant part. New energy systems consists out of networks which have multiple producers and consumers, often extended with storages (possibly seasonal). Most notably the interconnections between these different energy commodities resulting in a larger possible solution space than ever. -MESIDO aims to play the connecting role between the initial feasibility and the detailed analyses, by offering a techno-economic optimization framework that allows to make the design choices and come to a (limited set of) energy system design(s) that can be detailed out by the simulators. +MESIDO aims to play the connecting role between the initial feasibility and the detailed analyses. This is achieved by offering a techno-economic optimization framework that allows one to make design choices, resulting in an (limited set of) energy system design(s) that can be refined (more detail) with simulators. What is MESIDO? --------------- -MESIDO is a python package that allows users to define techno-economic optimization workflows (or use the available ones). Users can define themselves which KPIs they wish to optimize for, e.g. cost or business case optimization. -Furthermore, the user can select a physics fidelity level he/she needs for the analyses. Where the physics are typically approximations of steady-state conditions, the modelling is done such that the solutions are close and conservative. -The inclusion of the physics approximations allows the user to make more design choices compared to the tools used in initial feasibility. +MESIDO is a python package that allows users to define techno-economic optimization workflows (or use the available ones). Users can define which KPIs they wish to optimize for, e.g. cost or business case optimization. +Furthermore, the users can select which physics fidelity level they need for their analyses. Where the physics are typically approximations of steady-state conditions, the modelling is done such that the solutions are close and conservative. +The inclusion of the physics approximations allows the user to make more design choices compared to the tools used in initial feasibility analyses. However, this comes at the cost of the user needing to provide more information of the energy system in order to use MESIDO in an effective way, hence MESIDO is proposed as a sequential tool for analysis. -Under the hood MESIDO is a Mixed Integer Linear Problem (MILP) formulation. This means that the physics and financial models are limited to linear constraints. +Under the hood, MESIDO is a Mixed Integer Linear Problem (MILP) formulation. This means that the physics and financial models are limited to linear constraints. The computational power advantages of MILP optimizations allows MESIDO to optimize Multi Energy/Multi Commodity networks in an integral manner. -Nevertheless, the modelling limitations that MILP have will in the fast majority of cases require optimized networks to be detailed out with simulation tools before closing business cases and going to exploitation. +Nevertheless, the modelling limitations of MILP will in the vast majority of cases, require optimized networks to be refined with simulation tools before closing business cases and going to implementation. From 2a614f098c210764cadc26c0725af39119c82846 Mon Sep 17 00:00:00 2001 From: Rojer Date: Mon, 8 Apr 2024 11:47:41 +0200 Subject: [PATCH 017/275] starting doc workflows --- docs/conf.py | 3 -- docs/theory/Workflows.rst | 79 +++++++++++++++++++++++++++++++++++++++ docs/theory/index.rst | 1 + 3 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 docs/theory/Workflows.rst diff --git a/docs/conf.py b/docs/conf.py index ab4edb7b3..7fda2e926 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -90,6 +90,3 @@ html_css_files = [ 'css/custom.css', ] - -# Intersphinx: refer to the RTC-Tools standard library. -# intersphinx_mapping = {'rtctools': ('https://rtc-tools.readthedocs.io/en/latest/', None)} diff --git a/docs/theory/Workflows.rst b/docs/theory/Workflows.rst new file mode 100644 index 000000000..cf7273550 --- /dev/null +++ b/docs/theory/Workflows.rst @@ -0,0 +1,79 @@ +.. _chp_workflows: + +Workflows +========= + +This page eleborates on the available workflows within MESIDO. +MESIDO is by no means limited to only these workflows, but it is left to the user itself to define the most logical workflow if the ones below are unsuitable. + +Currently two main workflows are provided: + +* EndScenarioSizing +* GrowSimulator + +These two workflows for now only cover the district heat network commodity. + +EndScenarioSizing +----------------- + +The EndScenarioSizing Workflow is designed to optimize a district heating network for both asset (pipes, sources, storages, etc.) sizing and operational strategy for lowest Total Cost of Ownership. +This workflow comes in a few variants that give the user the possibility to trade-off computational time with model assumptions. + +* (EndScenarioSizingNoHeatLosses) +* EndScenarioSizing +* EndScenarioSizingDiscounted +* EndScenarioSizingHeadLoss +* EndScenarioSizingHeadLossDiscounted + +EndScenarioSizing +----------------- + +The EndScenarioSizing workflow in short: + +* The user needs to give a district heating network in ESDL file format in which: + * The user puts all the already present assets and potential assets of the system. + * Specifies the cost coefficients for all assets (e.g. EUR/MW for sizing of source). + * Specifies all the maximum sizes of the assets (e.g XX MW for sources, DN 400 for a pipe). + * Specifies the demand profiles in hourly resolution for a full year at all demands in the system. +* The optimization routine will start by matching all the heat demands. +* After matching the demands it minimizes for system cost where both CAPEX and OPEX over lifetime are minimizes. This allows the optimizer to make trade-offs between investments and potential operational benefits (and vice-versa). +* It uses a representative year and extrapolates the results to approximate cost over the lifetime. +* It creates a smaller mathematical representation of the optimization problem by utilizing a time horizon where by default 5 day timesteps are used except for the peak day where hourly resolution is used. + * The hourly resolution in the peak day is used to ensure that the system is sized to satisfy the demands under maximum load condition. + * The 5 day time-steps are used for the remainder of the year to approximate the OPEX of the system utilizing the average thermal powers. + * This means that also all time-series results will be in this adapted time-line. + +A two stage optimization approach is used for faster optimization. +In the first stage the system is optimized without heat losses in the network. +This allows for a much easier mathematical representation of the problem an hence much faster optimization. +In a second stage the heat losses in the network are taken into account, however now the problem is bounded with the information of the first stage. +Pipes will only be allowed to be at least as large as the result of the first stage and one DN size larger. +Furthermore, the flow directions will be utilized if the flow meets a minimum threshold value. +Lastly, sources will now have a lower bound with the minimum of the first stage. + +In its default configuration the workflow has the following main assumptions: + +* The whole network is realized instantaneously, as a single year is optimized and extrapolated for the lifetime. + * In reality the realization of DHS is done in phases over a period of years. Hence this assumption is not valid, but allows the user to judge the long term feasibilty of the DHS system. For closing business case computation the effects of phased realization should be taken into account. +* Pressure drops are not taken into account, a maximum flow velocity of 3 m/s is used to limit the pressure-drop per meter in the pipes. + * This assumtions is ok/valid when the user is still in a phase where the exact location of (booster-)pumps is to be determined and hence limiting the sizing of pipes with pressuredrop calculations would not be representative. + * Note that EndScenarioSizingHeadLoss can be used when the user wants the pressuredrop functionality. +* Investment costs are not discounted and all assets depreciate to zero over the system lifetime. + * This assumption comes out of an initial development phase, by now EndScenarioDiscounted can be used. +* It is assumed that the user provides sufficient possibilities to the optimizer to match the heat demands. + * The optimization will become a lot slower in case demands cannot be satisfied. If the user cannot garuantee to have sufficient assets to fullfill the demand it is advised to use slack (peak) sources. +* It is assumed that the tank storage in the network can only be used for intra day buffering and hence can only be used by the optimizer for the peak day. + * If this assumption is not valid an extension of the workflow is required. +* It is assumed that seasonal storage is cyclic over calander year, meaning that at the beginning and end of the year the same amount of thermal energy must be stored in the seasonal storage. + * This assumption is required to ensure that the results of a single year can be extrapolated over the lifetime. + +For the assumptions on the physics and cost modelling the reader is referred to the respective modelling pages. + + +EndScenarioSizingDiscounted +--------------------------- + + + +EndScenarioSizingHeadLoss +------------------------- diff --git a/docs/theory/index.rst b/docs/theory/index.rst index 37a50b7a7..b2e20649d 100644 --- a/docs/theory/index.rst +++ b/docs/theory/index.rst @@ -3,6 +3,7 @@ introduction code_structure + Workflows approach Validation_pipe_diameter_sizing pipe_classes From aa741865b8145618783a609879893b20e3ed0973 Mon Sep 17 00:00:00 2001 From: Rojer Date: Mon, 8 Apr 2024 14:49:14 +0200 Subject: [PATCH 018/275] changing the names and contributors --- docs/conf.py | 6 +++--- docs/index.rst | 8 ++++---- docs/support.rst | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 7fda2e926..1ddfcb333 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -21,9 +21,9 @@ # -- Project information ----------------------------------------------------- -project = 'Nieuwe Warmte Nu - Design Toolkit' -author = 'Kelbij Star, Teresa Piovesan, et al.' -review = 'Jesus Andres Rodriguez Sarasty, Ivo Pothof, Mike van Meerkerk' +project = 'Multi-Energy-Systems Integrated Design and Operations' +author = 'Jim Rojer, Kobus van Rooyen and Femke Janssen' +review = 'Kobus van Rooyen and Femke Janssen' # -- General configuration --------------------------------------------------- diff --git a/docs/index.rst b/docs/index.rst index 06fd6b782..90c090234 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,13 +1,13 @@ -Design Toolkit's optimizer documentation -======================================== +Multi-Energy-Systems Integrated Desing and Operations Documentation +=================================================================== -This is the documentation for optimizer routine, to optimize the conceptional design of heating networks. +This is the documentation for MESIDO. .. toctree:: :maxdepth: 2 - :caption: Optimizer routine + :caption: Mesido theory/index support diff --git a/docs/support.rst b/docs/support.rst index 545791be0..476fc3639 100644 --- a/docs/support.rst +++ b/docs/support.rst @@ -2,4 +2,4 @@ Support ####### -Raise any issue on `Github `_ such that we can address your problem. +Raise any issue on `Github `_ such that we can address your problem. From b23941d702b7580a76a7ef469aea73e61b394524 Mon Sep 17 00:00:00 2001 From: JimRojer-TNO <137045207+jimrojerTNO@users.noreply.github.com> Date: Mon, 8 Apr 2024 15:16:04 +0200 Subject: [PATCH 019/275] Cohecopt first developments (#9) This commit adds the functionality of having cold demands in a heat network, an air-water heat pump, a low temperature ates model (which will be improved later). --- src/mesido/_heat_loss_u_values_pipe.py | 2 +- src/mesido/asset_sizing_mixin.py | 52 +++- src/mesido/component_type_mixin.py | 2 +- src/mesido/esdl/asset_to_component_base.py | 3 + src/mesido/esdl/esdl_heat_model.py | 102 +++++-- src/mesido/esdl/esdl_model_base.py | 28 +- src/mesido/esdl/profile_parser.py | 1 + src/mesido/financial_mixin.py | 11 + src/mesido/heat_physics_mixin.py | 255 ++++++++++------ .../pycml/component_library/milp/__init__.py | 8 +- .../component_library/milp/heat/__init__.py | 10 +- .../milp/heat/_non_storage_component.py | 6 +- .../milp/heat/air_water_heat_pump.py | 13 + .../pycml/component_library/milp/heat/ates.py | 14 +- .../milp/heat/cold_demand.py | 53 ++++ .../milp/heat/heat_buffer.py | 16 +- .../milp/heat/heat_demand.py | 6 +- .../milp/heat/heat_exchanger.py | 14 +- .../component_library/milp/heat/heat_pipe.py | 10 +- .../component_library/milp/heat/heat_pump.py | 12 +- .../milp/heat/heat_source.py | 6 +- .../milp/heat/heat_two_port.py | 2 +- .../milp/heat/low_temperature_ates.py | 100 +++++++ .../pycml/component_library/milp/heat/node.py | 6 +- tests/models/wko/input/timeseries.csv | 9 + tests/models/wko/model/LT_wko.esdl | 271 ++++++++++++++++++ tests/models/wko/src/example.py | 228 +++++++++++++++ tests/test_absolute_heat.py | 2 +- tests/test_asset_is_realized.py | 2 +- tests/test_ates.py | 4 +- tests/test_cold_demand.py | 45 +++ tests/test_end_scenario_sizing_annualized.py | 2 +- tests/test_head_loss.py | 2 +- tests/test_heat.py | 8 +- tests/test_insulation.py | 14 +- tests/test_max_size_and_optional_assets.py | 8 +- tests/test_multicommodity.py | 22 +- ...est_multiple_in_and_out_port_components.py | 20 +- tests/test_network_simulator.py | 14 +- tests/test_pipe_diameter_sizing.py | 2 +- tests/test_producer_profiles.py | 4 +- tests/test_setpoint_constraints.py | 12 +- tests/test_topo_constraints.py | 12 +- tests/test_varying_temperature.py | 42 +-- tests/test_warmingup_unit_cases.py | 8 +- tests/utils_tests.py | 95 ++++-- 46 files changed, 1287 insertions(+), 271 deletions(-) create mode 100644 src/mesido/pycml/component_library/milp/heat/air_water_heat_pump.py create mode 100644 src/mesido/pycml/component_library/milp/heat/cold_demand.py create mode 100644 src/mesido/pycml/component_library/milp/heat/low_temperature_ates.py create mode 100644 tests/models/wko/input/timeseries.csv create mode 100644 tests/models/wko/model/LT_wko.esdl create mode 100644 tests/models/wko/src/example.py create mode 100644 tests/test_cold_demand.py diff --git a/src/mesido/_heat_loss_u_values_pipe.py b/src/mesido/_heat_loss_u_values_pipe.py index d3fb7889b..7ae0355e1 100644 --- a/src/mesido/_heat_loss_u_values_pipe.py +++ b/src/mesido/_heat_loss_u_values_pipe.py @@ -165,7 +165,7 @@ def pipe_heat_loss( + (length * u_2 * dtemp) ) - if heat_loss < 0: + if heat_loss < 0 and temperature > temperature_ground: raise Exception(f"Heat loss of pipe {p} should be nonnegative.") return heat_loss diff --git a/src/mesido/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py index 8fe066cb9..ac82aa8d5 100644 --- a/src/mesido/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -595,15 +595,23 @@ def pre(self): if not pipe_classes or options["neglect_pipe_heat_losses"]: # No pipe class decision to make for this pipe w.r.t. milp loss heat_loss = pipe_heat_loss(self, options, parameters, pipe) + if parameters[f"{pipe}.temperature"] > parameters[f"{pipe}.T_ground"]: + lb = 0.0 + else: + lb = 2.0 * heat_loss self._pipe_heat_loss_var_bounds[heat_loss_var_name] = ( - 0.0, - 2.0 * heat_loss, + lb, + 2.0 * abs(heat_loss), ) if heat_loss > 0: - self._pipe_heat_loss_nominals[heat_loss_var_name] = heat_loss + self._pipe_heat_loss_nominals[heat_loss_var_name] = abs(heat_loss) else: self._pipe_heat_loss_nominals[heat_loss_var_name] = max( - pipe_heat_loss(self, {"neglect_pipe_heat_losses": False}, parameters, pipe), + abs( + pipe_heat_loss( + self, {"neglect_pipe_heat_losses": False}, parameters, pipe + ) + ), 1.0, ) @@ -782,8 +790,25 @@ def _make_max_size_var(name, lb, ub, nominal): lb = 0.0 if np.isinf(bounds[f"{asset_name}.Heat_demand"][1]) else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) - for asset_name in self.energy_system_components.get("ates", []): - ub = bounds[f"{asset_name}.Heat_ates"][1] + for asset_name in self.energy_system_components.get("cold_demand", []): + ub = ( + bounds[f"{asset_name}.Cold_demand"][1] + if not np.isinf(bounds[f"{asset_name}.Cold_demand"][1]) + else bounds[f"{asset_name}.HeatIn.Heat"][1] + ) + # Note that we only enforce the upper bound in state enabled if it was explicitly + # specified for the demand + lb = 0.0 if np.isinf(bounds[f"{asset_name}.Cold_demand"][1]) else ub + _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) + + for asset_name in [ + *self.energy_system_components.get("ates", []), + *self.energy_system_components.get("low_temperature_ates", []), + ]: + if asset_name in self.energy_system_components.get("ates", []): + ub = bounds[f"{asset_name}.Heat_ates"][1] + else: + ub = bounds[f"{asset_name}.Heat_low_temperature_ates"][1] lb = 0.0 if parameters[f"{asset_name}.state"] != 1 else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) @@ -1834,11 +1859,20 @@ def __max_size_constraints(self, ensemble_member): ) ) - for a in self.energy_system_components.get("ates", []): + for a in [ + *self.energy_system_components.get("ates", []), + *self.energy_system_components.get("low_temperature_ates", []), + ]: max_var = self._asset_max_size_map[a] max_heat = self.extra_variable(max_var, ensemble_member) - heat_ates = self.__state_vector_scaled(f"{a}.Heat_ates", ensemble_member) - constraint_nominal = bounds[f"{a}.Heat_ates"][1] + if a in self.energy_system_components.get("ates", []): + heat_ates = self.__state_vector_scaled(f"{a}.Heat_ates", ensemble_member) + constraint_nominal = bounds[f"{a}.Heat_ates"][1] + else: + heat_ates = self.__state_vector_scaled( + f"{a}.Heat_low_temperature_ates", ensemble_member + ) + constraint_nominal = bounds[f"{a}.Heat_low_temperature_ates"][1] constraints.append( ( diff --git a/src/mesido/component_type_mixin.py b/src/mesido/component_type_mixin.py index 3e6b2c2a3..5b6437085 100644 --- a/src/mesido/component_type_mixin.py +++ b/src/mesido/component_type_mixin.py @@ -33,7 +33,7 @@ def pre(self): busses = components.get("electricity_node", []) gas_nodes = components.get("gas_node", []) buffers = components.get("heat_buffer", []) - atess = components.get("ates", []) + atess = [*components.get("ates", []), *components.get("low_temperature_ates", [])] try: pipes = components["heat_pipe"] cables = components.get("electricity_cable", []) diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index a7b69e4d9..4ebfb05e5 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -79,6 +79,7 @@ class _AssetToComponentBase: "Electrolyzer": "electrolyzer", "Bus": "electricity_node", "GenericConsumer": "heat_demand", + "CoolingDemand": "cold_demand", "HeatExchange": "heat_exchanger", "HeatingDemand": "heat_demand", "HeatPump": "heat_pump", @@ -89,6 +90,7 @@ class _AssetToComponentBase: "GasStorage": "gas_tank_storage", "GenericProducer": "heat_source", "GeothermalSource": "heat_source", + "Losses": "heat_demand", "HeatProducer": "heat_source", "ResidualHeatSource": "heat_source", "GenericConversion": "heat_exchanger", @@ -256,6 +258,7 @@ def _is_disconnectable_pipe(self, asset: Asset) -> bool: "ates", "heat_exchanger", "heat_pump", + "cold_demand", } } diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index a13c7dc51..6d26d3295 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -12,7 +12,9 @@ from mesido.network_common import NetworkSettings from mesido.pycml.component_library.milp import ( ATES, + AirWaterHeatPump, CheckValve, + ColdDemand, ControlValve, ElectricityCable, ElectricityDemand, @@ -33,6 +35,7 @@ HeatPump, HeatPumpElec, HeatSource, + LowTemperatureATES, Node, Pump, WindPark, @@ -324,7 +327,7 @@ def convert_heat_demand(self, asset: Asset) -> Tuple[Type[HeatDemand], MODIFIERS ------- Demand class with modifiers """ - assert asset.asset_type in {"GenericConsumer", "HeatingDemand"} + assert asset.asset_type in {"GenericConsumer", "HeatingDemand", "Losses"} max_demand = asset.attributes["power"] if asset.attributes["power"] else math.inf @@ -344,6 +347,41 @@ def convert_heat_demand(self, asset: Asset) -> Tuple[Type[HeatDemand], MODIFIERS return HeatDemand, modifiers + def convert_cold_demand(self, asset: Asset) -> Tuple[Type[ColdDemand], MODIFIERS]: + """ + This function converts the demand object in esdl to a set of modifiers that can be used in + a pycml object. Most important: + - Setting a cap on the thermal power. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. + Parameters + ---------- + asset : The asset object with its properties. + Returns + ------- + Demand class with modifiers + """ + assert asset.asset_type in {"CoolingDemand"} + + max_demand = asset.attributes["power"] if asset.attributes["power"] else math.inf + + q_nominal = self._get_connected_q_nominal(asset) + + modifiers = dict( + Q_nominal=q_nominal, + Cold_demand=dict(min=0.0, max=max_demand, nominal=max_demand / 2.0), + Heat_flow=dict(min=0.0, max=max_demand, nominal=max_demand / 2.0), + HeatIn=dict(Hydraulic_power=dict(nominal=q_nominal * 16.0e5)), + HeatOut=dict(Hydraulic_power=dict(nominal=q_nominal * 16.0e5)), + state=self.get_state(asset), + **self._supply_return_temperature_modifiers(asset), + **self._rho_cp_modifiers, + **self._get_cost_figure_modifiers(asset), + ) + + return ColdDemand, modifiers + def convert_node(self, asset: Asset) -> Tuple[Type[Node], MODIFIERS]: """ This function converts the node object in esdl to a set of modifiers that can be used in @@ -687,7 +725,9 @@ def convert_heat_exchanger(self, asset: Asset) -> Tuple[Type[HeatExchanger], MOD ) return HeatExchanger, modifiers - def convert_heat_pump(self, asset: Asset) -> Tuple[Type[HeatPump], MODIFIERS]: + def convert_heat_pump( + self, asset: Asset + ) -> Tuple[Union[Type[HeatPump], Type[HeatSource]], MODIFIERS]: """ This function converts the HeatPump object in esdl to a set of modifiers that can be used in a pycml object. Most important: @@ -710,6 +750,12 @@ def convert_heat_pump(self, asset: Asset) -> Tuple[Type[HeatPump], MODIFIERS]: assert asset.asset_type in { "HeatPump", } + + # In this case we only have the secondary side ports, here we assume a air-water HP + if len(asset.in_ports) == 1 and len(asset.out_ports) == 1: + _, modifiers = self.convert_heat_source(asset) + return AirWaterHeatPump, modifiers + if not asset.attributes["power"]: raise _ESDLInputException(f"{asset.name} has no power specified") else: @@ -792,6 +838,7 @@ def convert_heat_source(self, asset: Asset) -> Tuple[Type[HeatSource], MODIFIERS "HeatProducer", "GeothermalSource", "ResidualHeatSource", + "HeatPump", } max_supply = asset.attributes["power"] @@ -891,12 +938,7 @@ def convert_ates(self, asset: Asset) -> Tuple[Type[ATES], MODIFIERS]: hfr_charge_max = asset.attributes.get("maxChargeRate", math.inf) hfr_discharge_max = asset.attributes.get("maxDischargeRate", math.inf) - - try: - # TODO: this is depriciated it comes out of old integraal times. Should be removed. - single_doublet_power = asset.attributes["single_doublet_power"] - except KeyError: - single_doublet_power = hfr_discharge_max + single_doublet_power = hfr_discharge_max # We assume the efficiency is realized over a period of 100 days efficiency = asset.attributes["dischargeEfficiency"] @@ -931,21 +973,10 @@ def convert_ates(self, asset: Asset) -> Tuple[Type[ATES], MODIFIERS]: max=q_max_ates * asset.attributes["aggregationCount"], nominal=q_nominal, ), - T_amb=asset.attributes["aquiferMidTemperature"], - Temperature_ates=dict( - min=temperatures["T_return"], # or potentially 0 - max=temperatures["T_supply"], - nominal=temperatures["T_return"], - ), single_doublet_power=single_doublet_power, heat_loss_coeff=(1.0 - efficiency ** (1.0 / 100.0)) / (3600.0 * 24.0), state=self.get_state(asset), nr_of_doublets=asset.attributes["aggregationCount"], - Heat_ates=dict( - min=-hfr_charge_max * asset.attributes["aggregationCount"], - max=hfr_discharge_max * asset.attributes["aggregationCount"], - nominal=hfr_discharge_max / 2.0, - ), Stored_heat=dict( min=0.0, max=hfr_charge_max * asset.attributes["aggregationCount"] * 180.0 * 24 * 3600.0, @@ -958,7 +989,38 @@ def convert_ates(self, asset: Asset) -> Tuple[Type[ATES], MODIFIERS]: **self._get_cost_figure_modifiers(asset), ) - return ATES, modifiers + # if no maxStorageTemperature is specified we assume a "regular" HT ATES model + if ( + asset.attributes["maxStorageTemperature"] + and asset.attributes["maxStorageTemperature"] <= 30.0 + ): + modifiers.update( + dict( + Heat_low_temperature_ates=dict( + min=-hfr_charge_max * asset.attributes["aggregationCount"], + max=hfr_discharge_max * asset.attributes["aggregationCount"], + nominal=hfr_discharge_max / 2.0, + ) + ) + ) + return LowTemperatureATES, modifiers + else: + modifiers.update( + dict( + Heat_ates=dict( + min=-hfr_charge_max * asset.attributes["aggregationCount"], + max=hfr_discharge_max * asset.attributes["aggregationCount"], + nominal=hfr_discharge_max / 2.0, + ), + T_amb=asset.attributes["aquiferMidTemperature"], + Temperature_ates=dict( + min=temperatures["T_return"], # or potentially 0 + max=temperatures["T_supply"], + nominal=temperatures["T_return"], + ), + ) + ) + return ATES, modifiers def convert_control_valve(self, asset: Asset) -> Tuple[Type[ControlValve], MODIFIERS]: """ diff --git a/src/mesido/esdl/esdl_model_base.py b/src/mesido/esdl/esdl_model_base.py index 51302d321..7f2d58fb8 100644 --- a/src/mesido/esdl/esdl_model_base.py +++ b/src/mesido/esdl/esdl_model_base.py @@ -163,7 +163,11 @@ def _esdl_convert(self, converter: _AssetToComponentBase, assets: Dict, prefix: f"{asset.name} has does not have 2 Heat in_ports and 2 Heat " f"out_ports " ) - elif len(asset.in_ports) == 3 and len(asset.out_ports) == 2: + elif ( + len(asset.in_ports) == 3 + and len(asset.out_ports) == 2 + and asset.asset_type == "HeatPump" + ): p_heat = 0 p_elec = 0 for p in [*asset.in_ports, *asset.out_ports]: @@ -187,10 +191,28 @@ def _esdl_convert(self, converter: _AssetToComponentBase, assets: Dict, prefix: f"{asset.name} has total of 5 ports, but no proper split between " f"milp(4) and electricity (1) ports" ) - + elif ( + len(asset.in_ports) == 1 + and len(asset.out_ports) == 1 + and asset.asset_type == "HeatPump" + ): + for p in [*asset.in_ports, *asset.out_ports]: + if isinstance(p.carrier, esdl.HeatCommodity): + if isinstance(p, InPort): + port_map[p.id] = getattr(component, in_suf) + else: # OutPort + port_map[p.id] = getattr(component, out_suf) + else: + raise Exception( + f"{asset.name} has does not have 1 Heat in_ports and 1 Heat " + f"out_ports " + ) else: raise Exception( - f"{asset.name} has does not have 2 or 3 in_ports and 2 " f"out_ports " + f"{asset.name} has incorrect number of in/out ports. HeatPumps are allows " + f"to have 1 in and 1 out port for air-water HP, 2 in ports and 2 out ports " + f"when modelling a water-water HP, or 3 in ports and 2 out ports when the " + f"electricity connection of the water-water HP is modelled." ) elif asset.asset_type == "Electrolyzer": if len(asset.out_ports) == 1 and len(asset.in_ports) == 1: diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index dc13b968a..7d52eaa9b 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -30,6 +30,7 @@ class _ProfileParserException(Exception): class BaseProfileReader: component_type_to_var_name_map: dict = { + "cold_demand": ".target_cold_demand", "heat_demand": ".target_heat_demand", "heat_source": ".maximum_heat_source", "electricity_demand": ".target_electricity_demand", diff --git a/src/mesido/financial_mixin.py b/src/mesido/financial_mixin.py index 8f4ef5771..3464f4758 100644 --- a/src/mesido/financial_mixin.py +++ b/src/mesido/financial_mixin.py @@ -115,6 +115,12 @@ def pre(self): nominal_fixed_operational = self.variable_nominal(f"{asset_name}.Heat_ates") nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational + elif asset_name in [*self.energy_system_components.get("low_temperature_ates", [])]: + nominal_fixed_operational = self.variable_nominal( + f"{asset_name}.Heat_low_temperature_ates" + ) + nominal_variable_operational = nominal_fixed_operational + nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("heat_demand", [])]: nominal_fixed_operational = ( bounds[f"{asset_name}.Heat_demand"][1] @@ -347,6 +353,7 @@ def pre(self): *self.energy_system_components.get("heat_source", []), *self.energy_system_components.get("heat_demand", []), *self.energy_system_components.get("ates", []), + *self.energy_system_components.get("low_temperature_ates", []), *self.energy_system_components.get("heat_buffer", []), *self.energy_system_components.get("heat_pipe", []), *self.energy_system_components.get("heat_exchanger", []), @@ -372,6 +379,7 @@ def pre(self): *self.energy_system_components.get("heat_source", []), *self.energy_system_components.get("heat_demand", []), *self.energy_system_components.get("ates", []), + *self.energy_system_components.get("low_temperature_ates", []), *self.energy_system_components.get("heat_buffer", []), *self.energy_system_components.get("heat_exchanger", []), *self.energy_system_components.get("heat_pump", []), @@ -789,6 +797,7 @@ def __variable_operational_cost_constraints(self, ensemble_member): for asset in [ *self.energy_system_components.get("ates", []), + *self.energy_system_components.get("low_temperature_ates", []), *self.energy_system_components.get("heat_buffer", []), *self.energy_system_components.get("pump", []), *self.energy_system_components.get("heat_exchanger", []), @@ -1056,6 +1065,7 @@ def __cumulative_investments_made_in_eur_path_constraints(self, ensemble_member) *self.energy_system_components.get("heat_demand", []), *self.energy_system_components.get("heat_source", []), *self.energy_system_components.get("ates", []), + *self.energy_system_components.get("low_temperature_ates", []), *self.energy_system_components.get("heat_buffer", []), *self.energy_system_components.get("heat_exchanger", []), *self.energy_system_components.get("heat_pump", []), @@ -1163,6 +1173,7 @@ def __annualized_capex_constraints(self, ensemble_member): asset_categories = [ "heat_source", "ates", + "low_temperature_ates", "heat_buffer", "heat_pipe", "heat_exchanger", diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 3552d7a5b..a24d636e4 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -28,7 +28,7 @@ class HeatPhysicsMixin(BaseComponentTypeMixin, CollocatedIntegratedOptimizationP HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY, } """ - This class is used to model the physics of a milp district network with its assets. We model + This class is used to model the physics of a heat district network with its assets. We model the different components with variety of linearization strategies. """ @@ -144,7 +144,7 @@ def __init__(self, *args, **kwargs): # To avoid artificial energy generation at t0 self.__buffer_t0_bounds = {} - # Variable for the milp-loss, note that we make the bounds, and nominals not protected as + # Variable for the heat-loss, note that we make the bounds, and nominals not protected as # we need to adapt these in case of pipe sizing in the AssetSizingMixin. self.__pipe_heat_loss_var = {} self.__pipe_heat_loss_path_var = {} @@ -299,9 +299,9 @@ def _get_min_bound(bound): self._pipe_to_flow_direct_map[pipe_name] = flow_dir_var self.__flow_direct_var[flow_dir_var] = ca.MX.sym(flow_dir_var) - # Fix the directions that are already implied by the bounds on milp - # Nonnegative milp implies that flow direction Boolean is equal to one. - # Nonpositive milp implies that flow direction Boolean is equal to zero. + # Fix the directions that are already implied by the bounds on heat + # Nonnegative heat implies that flow direction Boolean is equal to one. + # Nonpositive heat implies that flow direction Boolean is equal to zero. heat_in_lb = _get_min_bound(bounds[f"{pipe_name}.HeatIn.Heat"][0]) heat_in_ub = _get_max_bound(bounds[f"{pipe_name}.HeatIn.Heat"][1]) @@ -362,6 +362,9 @@ def _get_min_bound(bound): (_cold_pipe, _cold_pipe_orientation), ) in self.energy_system_topology.ates.items(): + if ates in self.energy_system_components.get("low_temperature_ates", []): + continue + ates_temp_disc_var_name = f"{ates}__temperature_ates_disc" self.__ates_temperature_disc_var[ates_temp_disc_var_name] = ca.MX.sym( ates_temp_disc_var_name @@ -456,8 +459,8 @@ def _get_min_bound(bound): self.__pipe_heat_loss_parameters.append({}) for pipe in self.energy_system_components.get("heat_pipe", []): - # For similar reasons as for the diameter, we always make a milp - # loss symbol, even if the milp loss is fixed. Note that we also + # For similar reasons as for the diameter, we always make a heat + # loss symbol, even if the heat loss is fixed. Note that we also # override the .Heat_loss parameter for cold pipes, even though # it is not actually used in the optimization problem. heat_loss_var_name = f"{pipe}__hn_heat_loss" @@ -469,7 +472,7 @@ def _get_min_bound(bound): self._pipe_heat_loss_map[pipe] = heat_loss_var_name if options["neglect_pipe_heat_losses"]: - # No decision to make for this pipe w.r.t. milp loss + # No decision to make for this pipe w.r.t. heat loss self._pipe_heat_loss_var_bounds[heat_loss_var_name] = ( 0.0, 0.0, @@ -485,12 +488,16 @@ def _get_min_bound(bound): else: heat_loss = pipe_heat_loss(self, options, parameters, pipe) + if parameters[f"{pipe}.temperature"] > parameters[f"{pipe}.T_ground"]: + lb = 0.0 + else: + lb = 2.0 * heat_loss self._pipe_heat_loss_var_bounds[heat_loss_var_name] = ( - 0.0, - 2.0 * heat_loss, + lb, + 2.0 * abs(heat_loss), ) self._pipe_heat_loss_nominals[heat_loss_var_name] = max( - heat_loss, + abs(heat_loss), 1.0, ) @@ -529,7 +536,7 @@ def _get_min_bound(bound): ] = (0.0, 1.0) # Check that buffer information is logical and - # set the stored milp at t0 in the buffer(s) via bounds + # set the stored heat at t0 in the buffer(s) via bounds if len(self.times()) > 2: self.__check_buffer_values_and_set_bounds_at_t0() @@ -537,7 +544,7 @@ def _get_min_bound(bound): def energy_system_options(self): r""" - Returns a dictionary of milp network physics specific options. + Returns a dictionary of heat network physics specific options. +--------------------------------------+-----------+-----------------------------+ | Option | Type | Default value | @@ -558,25 +565,25 @@ def energy_system_options(self): The ``maximum_temperature_der`` gives the maximum temperature change per hour. Similarly, the ``maximum_flow_der`` parameter gives the maximum flow change per hour. These options together are used to - constrain the maximum milp change per hour allowed in the entire + constrain the maximum heat change per hour allowed in the entire network. Note the unit for flow is m3/s, but the change is expressed on an hourly basis leading to the ``m3/s/hour`` unit. The ``heat_loss_disconnected_pipe`` option decides whether a - disconnectable pipe has milp loss or not when it is disconnected on - that particular time step. By default, a pipe has milp loss even if + disconnectable pipe has heat loss or not when it is disconnected on + that particular time step. By default, a pipe has heat loss even if it is disconnected, as it would still contain relatively hot water in - reality. We also do not want minimization of milp production to lead + reality. We also do not want minimization of heat production to lead to overly disconnecting pipes. In some scenarios it is hydraulically - impossible to supply milp to these disconnected pipes (Q is forced to + impossible to supply heat to these disconnected pipes (Q is forced to zero), in which case this option can be set to ``False``. - The ``neglect_pipe_heat_losses`` option sets the milp loss in pipes to + The ``neglect_pipe_heat_losses`` option sets the heat loss in pipes to zero. This can be useful when the insulation properties are unknown. - Note that other components can still have milp loss, e.g. a buffer. + Note that other components can still have heat loss, e.g. a buffer. The ``include_demand_insulation_options`` options is used, when insulations options per - demand is specificied, to include milp demand and supply matching via constraints for all + demand is specificied, to include heat demand and supply matching via constraints for all possible insulation options. """ @@ -809,7 +816,7 @@ def __check_buffer_values_and_set_bounds_at_t0(self): """ In this function we force the buffer at t0 to have a certain amount of set energy in it. We do this via the bounds, by providing the bounds with a time-series where the first - element is the initial milp in the buffer. + element is the initial heat in the buffer. """ t = self.times() # We assume that t0 is always equal to self.times()[0] @@ -836,7 +843,7 @@ def __check_buffer_values_and_set_bounds_at_t0(self): stored_heat = f"{b}.Stored_heat" if not np.isnan(vol_t0) and not np.isnan(heat_t0): raise Exception( - f"At most one between the initial milp and volume of {b} should be prescribed." + f"At most one between the initial heat and volume of {b} should be prescribed." ) if np.isnan(heat_t0): @@ -849,14 +856,14 @@ def __check_buffer_values_and_set_bounds_at_t0(self): default_vol_t0 = min_fract_vol * volume heat_t0 = default_vol_t0 * dt * cp * rho - # Check that volume/initial stored milp at t0 is within bounds + # Check that volume/initial stored heat at t0 is within bounds lb_heat, ub_heat = bounds[stored_heat] lb_heat_t0 = np.inf ub_heat_t0 = -np.inf for bound in [lb_heat, ub_heat]: assert not isinstance( bound, np.ndarray - ), f"{b} stored milp cannot be a vector state" + ), f"{b} stored heat cannot be a vector state" if isinstance(bound, Timeseries): bound_t0 = bound.values[0] else: @@ -865,9 +872,9 @@ def __check_buffer_values_and_set_bounds_at_t0(self): ub_heat_t0 = max(ub_heat_t0, bound_t0) if heat_t0 < lb_heat_t0 or heat_t0 > ub_heat_t0: - raise Exception(f"Initial milp of {b} is not within bounds.") + raise Exception(f"Initial heat of {b} is not within bounds.") - # Set milp at t0 + # Set heat at t0 lb = np.full_like(t, -np.inf) ub = np.full_like(t, np.inf) lb[0] = heat_t0 @@ -877,16 +884,16 @@ def __check_buffer_values_and_set_bounds_at_t0(self): def __heat_matching_demand_insulation_constraints(self, ensemble_member): """ - Consider all possible milp demand insulation options (each options has an assosiated unique + Consider all possible heat demand insulation options (each options has an assosiated unique demand profile for the specific demand) and add constraints such that only one insulation options is activated per demand. The constraints will then ensure aim to match the supply and demand. Note: - This function is only active when the "include_demand_insulation_options" (False by - default) has been set to True in the milp network options. + default) has been set to True in the heat network options. - Currently this functional requires that all demands have at least one insualtion option is - specified for every demand in the milp network. + specified for every demand in the heat network. """ constraints = [] @@ -968,7 +975,7 @@ def __heat_matching_demand_insulation_constraints(self, ensemble_member): def __pipe_rate_heat_change_constraints(self, ensemble_member): """ - To avoid sudden change in milp from a timestep to the next, + To avoid sudden change in heat from a timestep to the next, constraints on d(Heat)/dt are introduced. Information of restrictions on dQ/dt and dT/dt are used, as d(Heat)/dt is proportional to average_temperature * dQ/dt + average_discharge * dT/dt. @@ -985,7 +992,7 @@ def __pipe_rate_heat_change_constraints(self, ensemble_member): if np.isfinite(t_change) and np.isfinite(q_change): assert ( not self._pipe_topo_pipe_class_map - ), "milp rate change constraints not allowed with topology optimization" + ), "heat rate change constraints not allowed with topology optimization" for p in self.energy_system_components.get("heat_pipe", []): variable = f"{p}.HeatIn.Heat" @@ -1025,7 +1032,7 @@ def __pipe_rate_heat_change_constraints(self, ensemble_member): def __node_heat_mixing_path_constraints(self, ensemble_member): """ - This function adds constraints for each milp network node/joint to have as much + This function adds constraints for each heat network node/joint to have as much thermal power (Heat variable) going in as out. Effectively, it is setting the sum of thermal powers to zero. """ @@ -1091,21 +1098,21 @@ def __node_hydraulic_power_mixing_path_constraints(self, ensemble_member): def __heat_loss_path_constraints(self, ensemble_member): """ - This function adds the constraints to subtract the milp losses from the thermal power that + This function adds the constraints to subtract the heat losses from the thermal power that propagates through the network. Note that this is done only on the thermal power, as such only energy losses are accounted for, temperature losses are not considered. - There are a few cases for the milp loss constraints + There are a few cases for the heat loss constraints - Heat losses are constant: This is the case when the pipe class is constant and the - network temperature is constant. In this case the symbol for the milp-loss is fixed by its + network temperature is constant. In this case the symbol for the heat-loss is fixed by its lower and upper bound to a value. - - Heat losses depend on pipe_class: In this case the milp loss depend on the pipe class - selected by the optimization. In this case the milp losses can vary due to the varying + - Heat losses depend on pipe_class: In this case the heat loss depend on the pipe class + selected by the optimization. In this case the heat losses can vary due to the varying radiation surface and different insulation materials applied to the pipe. Note that the - influences of varying pipe class are taken into account while setting the milp-loss + influences of varying pipe class are taken into account while setting the heat-loss variable in topology constraints. - - Heat losses depend on varying network temperature: In this case the milp loss varies due - to the different delta temperature with ambient. Note that the milp loss symbol does not + - Heat losses depend on varying network temperature: In this case the heat loss varies due + to the different delta temperature with ambient. Note that the heat loss symbol does not account for the varying temperature. Therefore, the big_m formulation is needed in these constraints. - Heat losses depend both on varying network temperature and pipe classes: In this case @@ -1155,11 +1162,11 @@ def __heat_loss_path_constraints(self, ensemble_member): ) ) else: - # Force milp loss to `heat_loss` when pipe is connected, and zero otherwise. + # Force heat loss to `heat_loss` when pipe is connected, and zero otherwise. heat_loss_nominal = self._pipe_heat_loss_nominals[heat_loss_sym_name] constraint_nominal = (big_m * heat_loss_nominal) ** 0.5 - # Force milp loss to `heat_loss` when pipe is connected. + # Force heat loss to `heat_loss` when pipe is connected. constraints.append( ( (heat_in - heat_out - heat_loss - is_disconnected * big_m) @@ -1205,7 +1212,7 @@ def __flow_direction_path_constraints(self, ensemble_member): The directions are set based upon the directions of how thermal power propegates. This is done based upon the sign of the Heat variable. Where positive Heat means a positive - direction and negative milp means a negative direction. By default, positive is defined from + direction and negative heat means a negative direction. By default, positive is defined from HeatIn to HeatOut. Finally, a minimum flow can be set. This can sometimes be useful for numerical stability. @@ -1216,7 +1223,7 @@ def __flow_direction_path_constraints(self, ensemble_member): minimum_velocity = self.heat_network_settings["minimum_velocity"] maximum_velocity = self.heat_network_settings["maximum_velocity"] - # Also ensure that the discharge has the same sign as the milp. + # Also ensure that the discharge has the same sign as the heat. for p in self.energy_system_components.get("heat_pipe", []): flow_dir_var = self._pipe_to_flow_direct_map[p] flow_dir = self.state(flow_dir_var) @@ -1295,7 +1302,7 @@ def __flow_direction_path_constraints(self, ensemble_member): ) ) ) - # Note we only need one on the milp as the desired behaviour is propegated by the + # Note we only need one on the heat as the desired behaviour is propegated by the # constraints heat_in - heat_out - heat_loss == 0. constraints.append( ( @@ -1336,7 +1343,7 @@ def __flow_direction_path_constraints(self, ensemble_member): ((heat_out + (1 - is_disconnected) * big_m) / big_m, 0.0, np.inf) ) - # Pipes that are connected in series should have the same milp direction. + # Pipes that are connected in series should have the same heat direction. for pipes in self.energy_system_topology.pipe_series: if len(pipes) <= 1: continue @@ -1357,8 +1364,8 @@ def __demand_heat_to_discharge_path_constraints(self, ensemble_member): """ This function adds constraints linking the flow to the thermal power at the demand assets. We use an equality constraint on the outgoing flow for every non-pipe asset. Meaning that we - equate Q * rho * cp * T == Heat for outgoing flows, and inequalities for the milp carried - in the pipes. This means that the milp can decrease in the network to compensate losses, + equate Q * rho * cp * T == Heat for outgoing flows, and inequalities for the heat carried + in the pipes. This means that the heat can decrease in the network to compensate losses, but that the losses and thus flow will always be over-estimated with the temperature for which no temperature drops are modelled. """ @@ -1369,8 +1376,6 @@ def __demand_heat_to_discharge_path_constraints(self, ensemble_member): heat_nominal = parameters[f"{d}.Heat_nominal"] cp = parameters[f"{d}.cp"] rho = parameters[f"{d}.rho"] - # TODO: future work - some sort of correction factor to account for temp drop n pipe: - # (maximum/average lenght fromm source to demand) * V_nominal * temperature_loss_factor discharge = self.state(f"{d}.Q") heat_out = self.state(f"{d}.HeatOut.Heat") @@ -1421,8 +1426,8 @@ def __source_heat_to_discharge_path_constraints(self, ensemble_member): """ This function adds constraints linking the flow to the thermal power at the demand assets. We use an equality constraint on the outgoing flow for every non-pipe asset. Meaning that we - equate Q * rho * cp * T == Heat for outgoing flows, and inequalities for the milp carried - in the pipes. This means that the milp can decrease in the network to compensate losses, + equate Q * rho * cp * T == Heat for outgoing flows, and inequalities for the heat carried + in the pipes. This means that the heat can decrease in the network to compensate losses, but that the losses and thus flow will always be over-estimated with the temperature for which no temperature drops are modelled. """ @@ -1485,6 +1490,73 @@ def __source_heat_to_discharge_path_constraints(self, ensemble_member): return constraints + def __cold_demand_heat_to_discharge_path_constraints(self, ensemble_member): + """ + This function adds constraints linking the flow to the thermal power at the cold demand + assets. We use an equality constraint on the outgoing flow for every non-pipe asset. + Meaning that we equate Q * rho * cp * T == Heat for outgoing flows, and inequalities for + the heat carried in the pipes. This means that the heat can decrease in the network to + compensate losses, but that the losses and thus flow will always be over-estimated with the + temperature for which no temperature drops are modelled. + + In the specific case of cold demand the temperature in the network can be below the ground + temperature. This causes negative heat losses as the flow is heated up by the ground, we + therefore constrain the discharge with the theoretical maximum temperature, which is the + ground temperature. + """ + constraints = [] + parameters = self.parameters(ensemble_member) + + for d in self.energy_system_components.get("cold_demand", []): + heat_nominal = parameters[f"{d}.Heat_nominal"] + cp = parameters[f"{d}.cp"] + rho = parameters[f"{d}.rho"] + discharge = self.state(f"{d}.Q") + heat_out = self.state(f"{d}.HeatOut.Heat") + + sup_carrier = parameters[f"{d}.T_supply_id"] + supply_temperatures = self.temperature_regimes(sup_carrier) + big_m = 2.0 * self.bounds()[f"{d}.HeatOut.Heat"][1] + + if len(supply_temperatures) == 0: + constraints.append( + ( + (heat_out - discharge * cp * rho * parameters[f"{d}.T_supply"]) + / heat_nominal, + 0.0, + 0.0, + ) + ) + else: + for sup_temperature in supply_temperatures: + sup_temperature_is_selected = self.state(f"{sup_carrier}_{sup_temperature}") + constraints.append( + ( + ( + heat_out + - discharge * cp * rho * sup_temperature + + (1.0 - sup_temperature_is_selected) * big_m + ) + / heat_nominal, + 0.0, + np.inf, + ) + ) + constraints.append( + ( + ( + heat_out + - discharge * cp * rho * sup_temperature + - (1.0 - sup_temperature_is_selected) * big_m + ) + / heat_nominal, + -np.inf, + 0.0, + ) + ) + + return constraints + def __pipe_hydraulic_power_path_constraints(self, ensemble_member): """ This function adds constraints to compute the hydraulic power that is needed to realize the @@ -1598,13 +1670,13 @@ def __pipe_heat_to_discharge_path_constraints(self, ensemble_member): """ This function adds constraints linking the flow to the thermal power at the pipe assets. We use an equality constraint on the outgoing flow for every non-pipe asset. Meaning that we - equate Q * rho * cp * T == Heat for outgoing flows, and inequalities for the milp carried - in the pipes. This means that the milp can decrease in the network to compensate losses, + equate Q * rho * cp * T == Heat for outgoing flows, and inequalities for the heat carried + in the pipes. This means that the heat can decrease in the network to compensate losses, but that the losses and thus flow will always be over-estimated with the temperature for which no temperature drops are modelled. There are three cases for the constraint, namely: - - no milp losses: In this case a single equality constraint can be used. + - no heat losses: In this case a single equality constraint can be used. - constant network temperature: In this case there is a single set inequality constraints - varying network temperature: In this case a set of big_m constraints is used to "activate" only the constraints with the selected network temperature. @@ -1625,7 +1697,10 @@ def __pipe_heat_to_discharge_path_constraints(self, ensemble_member): for p in self.energy_system_components.get("heat_pipe", []): cp = parameters[f"{p}.cp"] rho = parameters[f"{p}.rho"] - temp = parameters[f"{p}.temperature"] + # Note that during cold delivery the line can be colder than the ground temperature. + # In this case we have to bound the heat flowing in the line with the ground + # temperature instead, as the line can heat up to at maximum the ground temperature. + temp = max(parameters[f"{p}.temperature"], parameters[f"{p}.T_ground"]) flow_dir_var = self._pipe_to_flow_direct_map[p] flow_dir = self.state(flow_dir_var) @@ -1658,6 +1733,7 @@ def __pipe_heat_to_discharge_path_constraints(self, ensemble_member): else: for temperature in temperatures: temperature_is_selected = self.state(f"{carrier}_{temperature}") + temperature = max(temperature, parameters[f"{p}.T_ground"]) constraints.append( ( ( @@ -1706,6 +1782,7 @@ def __pipe_heat_to_discharge_path_constraints(self, ensemble_member): elif len(temperatures) > 0: for temperature in temperatures: temperature_is_selected = self.state(f"{carrier}_{temperature}") + temperature = max(temperature, parameters[f"{p}.T_ground"]) constraints.append( ( ( @@ -1785,6 +1862,9 @@ def __ates_temperature_path_constraints(self, ensemble_member): (_cold_pipe, _cold_pipe_orientation), ) in {**self.energy_system_topology.ates}.items(): + if ates_asset in self.energy_system_components.get("low_temperature_ates", []): + continue + flow_dir_var = self._pipe_to_flow_direct_map[hot_pipe] is_buffer_charging = self.state(flow_dir_var) * _hot_pipe_orientation @@ -2053,6 +2133,9 @@ def __ates_temperature_changing_path_constraints(self, ensemble_member): (_cold_pipe, _cold_pipe_orientation), ) in {**self.energy_system_topology.ates}.items(): + if ates in self.energy_system_components.get("low_temperature_ates", []): + continue + ates_dt_charging = self.state(f"{ates}.Temperature_change_charging") ates_dt_loss = self.state(f"{ates}.Temperature_loss") @@ -2200,7 +2283,10 @@ def __ates_heat_losses_path_constraints(self, ensemble_member): bounds = self.bounds() options = self.energy_system_options() - for ates in self.energy_system_components.get("ates", []): + for ates in [ + *self.energy_system_components.get("ates", []), + *self.energy_system_components.get("low_temperature_ates", []), + ]: heat_loss_nominal = self.variable_nominal(f"{ates}.Heat_loss") soil_temperature = parameters[f"{ates}.T_amb"] heat_stored_max = bounds[f"{ates}.Stored_heat"][1] @@ -2211,7 +2297,11 @@ def __ates_heat_losses_path_constraints(self, ensemble_member): sup_carrier = parameters[f"{ates}.T_supply_id"] supply_temperatures = self.temperature_regimes(sup_carrier) - if options["include_ates_temperature_options"] and len(supply_temperatures) != 0: + if ( + options["include_ates_temperature_options"] + and len(supply_temperatures) != 0 + and ates in self.energy_system_components.get("ates", []) + ): big_m_heatloss = 2 * heat_loss_nominal for ates_temperature in supply_temperatures: ates_temperature_is_selected = self.state( @@ -2263,8 +2353,8 @@ def __storage_heat_to_discharge_path_constraints(self, ensemble_member): """ This function adds constraints linking the flow to the thermal power at the pipe assets. We use an equality constraint on the outgoing flow for every non-pipe asset. Meaning that we - equate Q * rho * cp * T == Heat for outgoing flows, and inequalities for the milp carried - in the pipes. This means that the milp can decrease in the network to compensate losses, + equate Q * rho * cp * T == Heat for outgoing flows, and inequalities for the heat carried + in the pipes. This means that the heat can decrease in the network to compensate losses, but that the losses and thus flow will always be over-estimated with the temperature for which no temperature drops are modelled. @@ -2292,13 +2382,13 @@ def __storage_heat_to_discharge_path_constraints(self, ensemble_member): discharge = self.state(f"{b}.HeatIn.Q") # Note that `heat_hot` can be negative for the buffer; in that case we - # are extracting milp from it. + # are extracting heat from it. heat_out = self.state(f"{b}.HeatOut.Heat") heat_in = self.state(f"{b}.HeatIn.Heat") - # We want an _equality_ constraint between discharge and milp if the buffer is + # We want an _equality_ constraint between discharge and heat if the buffer is # consuming (i.e. behaving like a "demand"). We want an _inequality_ - # constraint (`|milp| >= |f(Q)|`) just like a "heat_source" component if milp is + # constraint (`|heat| >= |f(Q)|`) just like a "heat_source" component if heat is # extracted from the buffer. We accomplish this by disabling one of # the constraints with a boolean. Note that `discharge` and `heat_hot` # are guaranteed to have the same sign. @@ -2316,7 +2406,7 @@ def __storage_heat_to_discharge_path_constraints(self, ensemble_member): if len(supply_temperatures) == 0: constraint_nominal = (heat_nominal * cp * rho * dt * q_nominal) ** 0.5 - # only when discharging the heat_in should match the milp excactly (like producer) + # only when discharging the heat_in should match the heat excactly (like producer) constraints.append( ( ( @@ -2478,29 +2568,29 @@ def __network_temperature_path_constraints(self, ensemble_member): def __heat_exchanger_heat_to_discharge_path_constraints(self, ensemble_member): """ - This function adds the milp to discharge constraints of components that connect two + This function adds the heat to discharge constraints of components that connect two hydraulically decoupled networks. We assume that there is a dedicated primary side and secondary side and that Thermal power can only flow from primary to secondary. - Following this assumption we use the demand logic to relate milp to discharge at the - primary side and the source logic for relating milp to discharge at the secondary side. + Following this assumption we use the demand logic to relate heat to discharge at the + primary side and the source logic for relating heat to discharge at the secondary side. This function also adds constraints to ensure physically logical temperatures between the primary and secondary side when varying temperature is applied to the optimization. - Assuming a counter flow milp exchanger, this means that the secondary supply temperature + Assuming a counter flow heat exchanger, this means that the secondary supply temperature will always be below the primary supply temperature and that the primary return temperature has to be above the secondary return temperature. - Finally, an is disabled variable is set for when the milp exchanger is not used. This is - needed to allow disabling of the HEX temperature constraints when no milp is flowing + Finally, an is disabled variable is set for when the heat exchanger is not used. This is + needed to allow disabling of the HEX temperature constraints when no heat is flowing through the HEX. """ constraints = [] parameters = self.parameters(ensemble_member) - # The primary side of the milp exchanger acts like a milp consumer, and the secondary side - # acts as a milp producer. Essentially using equality constraints to set the milp leaving - # the secondary side based on the secondary Supply temperature and the milp leaving the + # The primary side of the heat exchanger acts like a heat consumer, and the secondary side + # acts as a heat producer. Essentially using equality constraints to set the heat leaving + # the secondary side based on the secondary Supply temperature and the heat leaving the # primary side based on the primary Return temperature. for heat_exchanger in [ @@ -3080,7 +3170,7 @@ def __control_valve_head_discharge_path_constraints(self, ensemble_member): def __heat_loss_variable_constraints(self, ensemble_member): """ - Furthermore, the __hn_heat_loss symbol is set, as the milp loss depends on the chosen pipe + Furthermore, the __hn_heat_loss symbol is set, as the heat loss depends on the chosen pipe class and the selected temperature in the network. Parameters @@ -3218,7 +3308,9 @@ class and the selected temperature in the network. def __ates_max_stored_heat_constriants(self, ensemble_member): constraints = [] - for ates in self.energy_system_components.get("ates", []): + for ates in [ + *self.energy_system_components.get("ates", []), + ]: max_var_name = f"{ates}__max_stored_heat" max_var = self.extra_variable(max_var_name, ensemble_member) stored_heat = self.__state_vector_scaled(f"{ates}.Stored_heat", ensemble_member) @@ -3493,6 +3585,7 @@ def path_constraints(self, ensemble_member): constraints.extend(self.__heat_loss_path_constraints(ensemble_member)) constraints.extend(self.__node_discharge_mixing_path_constraints(ensemble_member)) constraints.extend(self.__demand_heat_to_discharge_path_constraints(ensemble_member)) + constraints.extend(self.__cold_demand_heat_to_discharge_path_constraints(ensemble_member)) constraints.extend(self.__source_heat_to_discharge_path_constraints(ensemble_member)) constraints.extend(self.__pipe_heat_to_discharge_path_constraints(ensemble_member)) constraints.extend(self.__storage_heat_to_discharge_path_constraints(ensemble_member)) @@ -3547,9 +3640,9 @@ def history(self, ensemble_member): hist_heat_buffer = history.get(f"{b}.Heat_buffer", empty_timeseries).values hist_stored_heat = history.get(f"{b}.Stored_heat", empty_timeseries).values - # One has to provide information of what Heat_buffer (i.e., the milp + # One has to provide information of what Heat_buffer (i.e., the heat # added/extracted from the buffer at that timestep) is at t0. - # Else the solution will always extract milp from the buffer at t0. + # Else the solution will always extract heat from the buffer at t0. # This information can be passed in two ways: # - non-trivial history of Heat_buffer at t0; # - non-trivial history of Stored_heat. @@ -3670,7 +3763,7 @@ def post(self): In this post function we check the optimization results for accurately solving the constraints. We do this for the head losses and check if they are consistent with the flow direction. Whether, the minimum velocity is actually met. And whether, the directions of - milp match the directions of the flow. + heat match the directions of the flow. """ super().post() @@ -3678,8 +3771,8 @@ def post(self): parameters = self.parameters(0) options = self.energy_system_options() - # The flow directions are the same as the milp directions if the - # return (i.e. cold) line has zero milp throughout. Here we check that + # The flow directions are the same as the heat directions if the + # return (i.e. cold) line has zero heat throughout. Here we check that # this is indeed the case. for p in self.cold_pipes: heat_in = results[f"{p}.HeatIn.Heat"] diff --git a/src/mesido/pycml/component_library/milp/__init__.py b/src/mesido/pycml/component_library/milp/__init__.py index d9e6a2e80..8e58b9ed4 100644 --- a/src/mesido/pycml/component_library/milp/__init__.py +++ b/src/mesido/pycml/component_library/milp/__init__.py @@ -10,8 +10,10 @@ from .gas.gas_source import GasSource from .gas.gas_substation import GasSubstation from .gas.gas_tank_storage import GasTankStorage +from .heat.air_water_heat_pump import AirWaterHeatPump from .heat.ates import ATES from .heat.check_valve import CheckValve +from .heat.cold_demand import ColdDemand from .heat.control_valve import ControlValve from .heat.geothermal_source import GeothermalSource from .heat.heat_buffer import HeatBuffer @@ -23,14 +25,17 @@ from .heat.heat_pump import HeatPump from .heat.heat_source import HeatSource from .heat.heat_two_port import HeatTwoPort +from .heat.low_temperature_ates import LowTemperatureATES from .heat.node import Node from .heat.pump import Pump from .multicommodity.electrolyzer import Electrolyzer __all__ = [ + "AirWaterHeatPump", "ATES", "HeatBuffer", "CheckValve", + "ColdDemand", "ControlValve", "HeatDemand", "ElectricityCable", @@ -47,12 +52,13 @@ "GeothermalSource", "HeatExchanger", "HeatFourPort", + "HeatPipe", "HeatPort", "HeatPump", "HeatPumpElec", "HeatTwoPort", + "LowTemperatureATES", "Node", - "HeatPipe", "Pump", "HeatSource", "WindPark", diff --git a/src/mesido/pycml/component_library/milp/heat/__init__.py b/src/mesido/pycml/component_library/milp/heat/__init__.py index d027d0980..475ed0e55 100644 --- a/src/mesido/pycml/component_library/milp/heat/__init__.py +++ b/src/mesido/pycml/component_library/milp/heat/__init__.py @@ -1,5 +1,7 @@ +from .air_water_heat_pump import AirWaterHeatPump from .ates import ATES from .check_valve import CheckValve +from .cold_demand import ColdDemand from .control_valve import ControlValve from .geothermal_source import GeothermalSource from .heat_buffer import HeatBuffer @@ -11,13 +13,16 @@ from .heat_pump import HeatPump from .heat_source import HeatSource from .heat_two_port import HeatTwoPort +from .low_temperature_ates import LowTemperatureATES from .node import Node from .pump import Pump __all__ = [ + "AirWaterHeatPump", "ATES", "HeatBuffer", "CheckValve", + "ColdDemand", "ControlValve", "HeatDemand", "GeothermalSource", @@ -26,8 +31,9 @@ "HeatPort", "HeatPump", "HeatTwoPort", - "Node", "HeatPipe", - "Pump", "HeatSource", + "LowTemperatureATES", + "Node", + "Pump", ] diff --git a/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py b/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py index e0f5e81c8..f814979dc 100644 --- a/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py +++ b/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py @@ -26,10 +26,10 @@ def __init__(self, name, **modifiers): self.rho = 988.0 self.nominal_pressure = 16.0e5 - # NOTE: We move a factor of 100.0 of the milp to the state entry, to - # reduce the coefficient in front of the milp variables. This + # NOTE: We move a factor of 100.0 of the heat to the state entry, to + # reduce the coefficient in front of the heat variables. This # particularly helps the scaling/range of the constraints that relate - # the milp loss (if it is variable/optional) to the milp in- and out + # the milp loss (if it is variable/optional) to the heat in- and out # of a component. self.Heat_nominal = self.cp * self.rho * self.Q_nominal * 100.0 diff --git a/src/mesido/pycml/component_library/milp/heat/air_water_heat_pump.py b/src/mesido/pycml/component_library/milp/heat/air_water_heat_pump.py new file mode 100644 index 000000000..e245a409a --- /dev/null +++ b/src/mesido/pycml/component_library/milp/heat/air_water_heat_pump.py @@ -0,0 +1,13 @@ +from .heat_source import HeatSource + + +class AirWaterHeatPump(HeatSource): + """ + The air water heat pump component is used to model the source behaviour of air water heat pumps. + For now, it is just a source, but in the future this can be expanded. + """ + + def __init__(self, name, **modifiers): + super().__init__(name, **modifiers) + + self.component_subtype = "air_water_heat_pump" diff --git a/src/mesido/pycml/component_library/milp/heat/ates.py b/src/mesido/pycml/component_library/milp/heat/ates.py index 6690874ba..59c9e5280 100644 --- a/src/mesido/pycml/component_library/milp/heat/ates.py +++ b/src/mesido/pycml/component_library/milp/heat/ates.py @@ -8,17 +8,17 @@ class ATES(HeatTwoPort, BaseAsset): """ - An Ates is a storage component that is used to model milp storage underground. Typically, this + An Ates is a storage component that is used to model heat storage underground. Typically, this is done by storing hot water in an underground aquifier. We model this with an energy storage where the energy loss is modelled as a fraction of the Stored energy for each time-step. - Like all storage assets we enforce that they must be connected as a demand. The milp to - discharge constraints are set in the HeatMixin, where we use a big_m formulation to enforce the - correct constraints depending on whether the ates is charging or discharging. + Like all storage assets we enforce that they must be connected as a demand. The heat to + discharge constraints are set in the HeatPhysicsMixin, where we use a big_m formulation to + enforce the correct constraints depending on whether the ates is charging or discharging. Please note that: The user is responsible to implement the cyclic behaviour in their workflow constraints. - Meaning that the milp stored at the 1st and last time step should be equal. Furthermore, due + Meaning that the heat stored at the 1st and last time step should be equal. Furthermore, due to the implicit solving note that the energy out of the ATES should be 0 for the 1st time step. """ @@ -62,8 +62,8 @@ def __init__(self, name, **modifiers): # Meaning that they might always be, for e.g., 5% full. self.min_fraction_tank_volume = 0.05 - # Stored_heat is the milp that is contained in the ates. - # Heat_ates is the amount of milp added to or extracted from the buffer + # Stored_heat is the heat that is contained in the ates. + # Heat_ates is the amount of heat added to or extracted from the buffer # per timestep. # Thus Heat_buffer = HeatHot = der(Stored_heat). # We connect an ATES as an demand, meaning that flow and Heat_ates are positive under diff --git a/src/mesido/pycml/component_library/milp/heat/cold_demand.py b/src/mesido/pycml/component_library/milp/heat/cold_demand.py new file mode 100644 index 000000000..85ac1511f --- /dev/null +++ b/src/mesido/pycml/component_library/milp/heat/cold_demand.py @@ -0,0 +1,53 @@ +from mesido.pycml import Variable + +from ._non_storage_component import _NonStorageComponent + + +class ColdDemand(_NonStorageComponent): + """ + The cold demand component is there to add thermal power (Heat) out of the network. Typically, + this component is used to model aggregated demands. + + The heat to discharge constraints are set in the HeatPhysicsMixin. We enforce that the outgoing + temperature of the demand matches the absolute thermal power, Q * cp * rho * T_ret == Heat, + similar as with the sources. This allows us to guarantee that the flow can always carry the + heat and that thermal losses are always estimated conservatively, as the heat losses further + downstream in the network are over-estimated with T_ret where in reality this temperature + drops. It also implicitly assumes that the temperature drops in the network are small and thus + satisfy minimum temperature requirements. + """ + + def __init__(self, name, **modifiers): + super().__init__( + name, + **self.merge_modifiers( + dict( + HeatIn=dict(Heat=dict(min=0.0)), + HeatOut=dict(Heat=dict(min=0.0)), + ), + modifiers, + ), + ) + + self.component_type = "cold_demand" + + self.minimum_pressure_drop = 1.0e5 # 1 bar of pressure drop + + # Assumption: heat in/out and extracted is nonnegative + # Heat in the return (i.e. cold) line is zero + self.add_variable(Variable, "Cold_demand", min=0.0, nominal=self.Heat_nominal) + self.add_variable(Variable, "dH", max=0.0) + self.add_equation(self.dH - (self.HeatOut.H - self.HeatIn.H)) + self.add_equation( + ( + self.minimum_pressure_drop * self.Q + - (self.HeatIn.Hydraulic_power - self.HeatOut.Hydraulic_power) + ) + / (self.Q_nominal * self.minimum_pressure_drop) + ) + + self.add_equation( + (self.HeatOut.Heat - (self.HeatIn.Heat + self.Cold_demand)) / self.Heat_nominal + ) + + self.add_equation((self.Heat_flow - self.Cold_demand) / self.Heat_nominal) diff --git a/src/mesido/pycml/component_library/milp/heat/heat_buffer.py b/src/mesido/pycml/component_library/milp/heat/heat_buffer.py index dd377c542..4ba9f47fc 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_buffer.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_buffer.py @@ -11,12 +11,12 @@ class HeatBuffer(HeatTwoPort, BaseAsset): """ The buffer component is to model milp storage in a tank. This means that we model a tank of hot - water being filled and radiating milp away (milp loss) over the hot surfaces. We assume that the + water being filled and radiating milp away (heat loss) over the hot surfaces. We assume that the hot surfaces are those in contact with hot water. - Like all storage assets we enforce that they must be connected as a demand. The milp to - discharge constraints are set in the HeatMixin, where we use a big_m formulation to enforce the - correct constraints depending on whether the buffer is charging or discharging. + Like all storage assets we enforce that they must be connected as a demand. The heat to + discharge constraints are set in the HeatPhysicsMixin, where we use a big_m formulation to + enforce the correct constraints depending on whether the buffer is charging or discharging. """ def __init__(self, name, **modifiers): @@ -58,12 +58,12 @@ def __init__(self, name, **modifiers): self.volume * (1 - self.min_fraction_tank_volume) * self.dT * self.cp * self.rho ) - # Stored_heat is the milp that is contained in the buffer. - # Heat_buffer is the amount of milp added to or extracted from the buffer + # Stored_heat is the heat that is contained in the buffer. + # Heat_buffer is the amount of heat added to or extracted from the buffer # per timestep. - # HeatHot (resp. HeatCold) is the amount of milp added or extracted from + # HeatHot (resp. HeatCold) is the amount of heat added or extracted from # the hot (resp. cold) line. - # As by construction the cold line should have zero milp, we fix HeatCold to zero. + # As by construction the cold line should have zero heat, we fix HeatCold to zero. # Thus Heat_buffer = HeatHot = der(Stored_heat). # We connect a buffer as an demand, meaning that flow and Heat_buffer are positive under # charging and negative under discharge diff --git a/src/mesido/pycml/component_library/milp/heat/heat_demand.py b/src/mesido/pycml/component_library/milp/heat/heat_demand.py index 5ba23da99..a02258c43 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_demand.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_demand.py @@ -8,10 +8,10 @@ class HeatDemand(_NonStorageComponent): The demand component is there to extract thermal power (Heat) out of the network. Typically, this component is used to model aggregated demands. - The milp to discharge constraints are set in the HeatMixin. We enforce that the outgoing + The heat to discharge constraints are set in the HeatPhysicsMixin. We enforce that the outgoing temperature of the demand matches the absolute thermal power, Q * cp * rho * T_ret == Heat, similar as with the sources. This allows us to guarantee that the flow can always carry the - milp and that thermal losses are always estimated conservatively, as the milp losses further + heatf and that thermal losses are always estimated conservatively, as the heat losses further downstream in the network are over-estimated with T_ret where in reality this temperature drops. It also implicitly assumes that the temperature drops in the network are small and thus satisfy minimum temperature requirements. @@ -33,7 +33,7 @@ def __init__(self, name, **modifiers): self.minimum_pressure_drop = 1.0e5 # 1 bar of pressure drop - # Assumption: milp in/out and extracted is nonnegative + # Assumption: heat in/out and extracted is nonnegative # Heat in the return (i.e. cold) line is zero self.add_variable(Variable, "Heat_demand", min=0.0, nominal=self.Heat_nominal) self.add_variable(Variable, "dH", max=0.0) diff --git a/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py b/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py index ee74b3cd7..4d7db5e1a 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py @@ -7,18 +7,18 @@ class HeatExchanger(HeatFourPort, BaseAsset): """ - The milp exchanger component is used to model the exchange of thermal power between two + The heat exchanger component is used to model the exchange of thermal power between two hydraulically decoupled systems. A constant efficiency is used to model milp losses and a - maximum power is set on the primary side to model physical constraints on the amount of milp + maximum power is set on the primary side to model physical constraints on the amount of heat transfer. - The milp to discharge constraints are set in the HeatMixin. The primary side is modelled as a + The heat to discharge constraints are set in the HeatMixin. The primary side is modelled as a demand, meaning it consumes energy from the primary network and gives it to the secondary side, - where the secondary side acts like a source to the secondary network. This also means that milp + where the secondary side acts like a source to the secondary network. This also means that heat can only flow from primary to secondary. - To avoid unphysical milp transfer the HeatMixin sets constraints on the temperatures on both - sides in the case of varying temperature. We also allow a heat_exchanger to be disabled on + To avoid unphysical heat transfer the HeatPhysicsMixin sets constraints on the temperatures on + both sides in the case of varying temperature. We also allow a heat_exchanger to be disabled on certain time-steps to then allow these temperature constraints to be also disabled. """ @@ -42,7 +42,7 @@ def __init__(self, name, **modifiers): self.minimum_pressure_drop = 1.0e5 # 1 bar of pressure drop self.pump_efficiency = 0.5 - # Assumption: milp in/out and added is nonnegative + # Assumption: heat in/out and added is nonnegative self.add_variable(Variable, "Primary_heat", min=0.0) self.add_variable(Variable, "Secondary_heat", min=0.0) diff --git a/src/mesido/pycml/component_library/milp/heat/heat_pipe.py b/src/mesido/pycml/component_library/milp/heat/heat_pipe.py index 3b30e62ac..cc0b2fb82 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_pipe.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_pipe.py @@ -8,13 +8,13 @@ class HeatPipe(_NonStorageComponent): """ The pipe component is to model the pressure drop (and optionally hydraulic power) and - milp losses over a pipe. Three options for head loss computation are available in the HeatMixin + heat losses over a pipe. Three options for head loss computation are available in the HeatMixin options: No_HeadLoss, Linear, DW_Linearized. The hydraulic power computation can only be done reasonably if DW_linearized is selected as otherwise head_losses are significantly over-estimated. - The milp to discharge constraints are set in the HeatMixin. Where we ensure that the milp must - be smaller than the flow can carry, as we overestimate the milp losses with the outgoing + The heat to discharge constraints are set in the HeatMixin. Where we ensure that the heat must + be smaller than the flow can carry, as we overestimate the heat losses with the outgoing temperature at the demand/source/storage assets where in reality this temperature drops throughout the network. Meaning that the flow does lose energy but not temperature. In this manner the energy losses will always be overestimated as in reality the @@ -36,7 +36,7 @@ def __init__(self, name, **modifiers): self.carrier_id = -1 self.pressure = 16.0e5 - # Parameters determining the milp loss + # Parameters determining the heat loss # All of these have default values in the library function self.insulation_thickness = nan self.conductivity_insulation = nan @@ -69,4 +69,4 @@ def __init__(self, name, **modifiers): self.add_equation(((self.Heat_flow - self.HeatIn.Heat) / self.Heat_nominal)) # Note: Heat loss is added in the mixin, because it depends on the flow direction - # * milp loss equation: (HeatOut.Heat - (HeatIn.Heat +/- Heat_loss)) = 0. + # * heat loss equation: (HeatOut.Heat - (HeatIn.Heat +/- Heat_loss)) = 0. diff --git a/src/mesido/pycml/component_library/milp/heat/heat_pump.py b/src/mesido/pycml/component_library/milp/heat/heat_pump.py index 34963085c..5ecdc6786 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_pump.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_pump.py @@ -9,12 +9,12 @@ class HeatPump(HeatFourPort, BaseAsset): """ The heatpump component is used to model a water-water heatpump. A constant COP is used to model the electricity use of the heatpump. A power cap is set - on the primary side to model physical constraints on the amount of milp transfer. + on the primary side to model physical constraints on the amount of heat transfer. - The milp to discharge constraints are set in the HeatMixin. The primary side is modelled as a - demand, meaning it consumes energy from the primary network and gives it to the secondary side, - where the secondary side acts like a source to the secondary network. This also means that milp - can only flow from primary to secondary. + The heat to discharge constraints are set in the HeatPhysicsMixin. The primary side is modelled + as a demand, meaning it consumes energy from the primary network and gives it to the secondary + side, where the secondary side acts like a source to the secondary network. This also means + that heat can only flow from primary to secondary. """ def __init__(self, name, **modifiers): @@ -36,7 +36,7 @@ def __init__(self, name, **modifiers): self.pump_efficiency = 0.5 self.elec_power_nominal = self.nominal / self.COP - # Assumption: milp in/out and added is nonnegative + # Assumption: heat in/out and added is nonnegative self.add_variable(Variable, "Primary_heat", min=0.0) self.add_variable(Variable, "Secondary_heat", min=0.0) diff --git a/src/mesido/pycml/component_library/milp/heat/heat_source.py b/src/mesido/pycml/component_library/milp/heat/heat_source.py index a3a547c59..9a776d5eb 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_source.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_source.py @@ -9,10 +9,10 @@ class HeatSource(_NonStorageComponent): """ The source component is there to insert thermal power (Heat) into the network. - The milp to discharge constraints are set in the HeatMixin. We enforce that the outgoing + The heat to discharge constraints are set in the HeatMixin. We enforce that the outgoing temperature of the source matches the absolute thermal power, Q * cp * rho * T_sup == Heat, similar as with the demands. This allows us to guarantee that the flow can always carry, as - the milp losses further downstream in the network are over-estimated with T_ret where in + the heat losses further downstream in the network are over-estimated with T_ret where in reality this temperature drops. It also implicitly assumes that the temperature drops in the network are small and thus satisfy minimum temperature requirements. """ @@ -35,7 +35,7 @@ def __init__(self, name, **modifiers): self.co2_coeff = 1.0 self.pump_efficiency = 0.5 - # Assumption: milp in/out and added is nonnegative + # Assumption: heat in/out and added is nonnegative # Heat in the return (i.e. cold) line is zero self.add_variable(Variable, "Heat_source", min=0.0, nominal=self.Heat_nominal) self.add_variable(Variable, "Emission", min=0.0, nominal=self.Heat_nominal) diff --git a/src/mesido/pycml/component_library/milp/heat/heat_two_port.py b/src/mesido/pycml/component_library/milp/heat/heat_two_port.py index c1cf1d855..122116c2c 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_two_port.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_two_port.py @@ -6,7 +6,7 @@ class HeatTwoPort(HeatComponent): """ The HeatTwoPort component is used as a base for interaction with one hydraulically coupled - system. As milp networks are closed systems we always need two ports to model both the in and + system. As heat networks are closed systems we always need two ports to model both the in and out going flow in the system. """ diff --git a/src/mesido/pycml/component_library/milp/heat/low_temperature_ates.py b/src/mesido/pycml/component_library/milp/heat/low_temperature_ates.py new file mode 100644 index 000000000..1f0348fdd --- /dev/null +++ b/src/mesido/pycml/component_library/milp/heat/low_temperature_ates.py @@ -0,0 +1,100 @@ +from mesido.pycml import Variable +from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset + +from numpy import nan + +from .heat_two_port import HeatTwoPort + + +class LowTemperatureATES(HeatTwoPort, BaseAsset): + """ + TODO: This model is still under developement. + A low temperature ates is a underground aquifier in which heat can be stored. + + Like all storage assets we enforce that they must be connected as a demand. The heat to + discharge constraints are set in the HeatPhysicsMixin, where we use a big_m formulation to + enforce the correct constraints depending on whether the ates is charging or discharging. + + Please note that: + The user is responsible to implement the cyclic behaviour in their workflow constraints. + Meaning that the milp stored at the 1st and last time step should be equal. Furthermore, due + to the implicit solving note that the energy out of the ATES should be 0 for the 1st time step. + """ + + def __init__(self, name, **modifiers): + super().__init__(name, **modifiers) + + self.component_type = "low_temperature_ates" + + self.Q_nominal = 1.0 + self.T_amb = 10 + self.T_supply = nan + self.T_return = nan + self.T_supply_id = -1 + self.T_return_id = -1 + self.dT = self.T_supply - self.T_return + self.cp = 4200.0 + self.rho = 988.0 + self.Heat_nominal = self.cp * self.rho * self.dT * self.Q_nominal + self.nominal_pressure = 16.0e5 + self.minimum_pressure_drop = 1.0e5 # 1 bar of pressure drop + self.pump_efficiency = 0.5 + + self.heat_loss_coeff = 0.005 / (24.0 * 3600.0) + self.single_doublet_power = nan + self.nr_of_doublets = 1.0 + # The hot/cold tank can have a lower bound on its volume. + # Meaning that they might always be, for e.g., 5% full. + self.min_fraction_tank_volume = 0.05 + + # Stored_heat is the heat that is contained in the ates. + # Heat_low_temperature_ates is the amount of heat added to or extracted from the buffer + # per timestep. + # Thus Heat_buffer = HeatHot = der(Stored_heat). + # We connect an ATES as an demand, meaning that flow and Heat_low_temperature_ates are + # positive undercharging and negative under discharge + self.add_variable(Variable, "Heat_low_temperature_ates", nominal=self.Heat_nominal) + self.add_variable(Variable, "Heat_flow", nominal=self.Heat_nominal) + # Assume the storage fills in about 3 months at typical rate + self._typical_fill_time = 3600.0 * 24.0 * 90.0 + self._nominal_stored_heat = self.Heat_nominal * self._typical_fill_time + self.add_variable( + Variable, + "Stored_heat", + min=0.0, + nominal=self._nominal_stored_heat, + ) + self.add_variable( + Variable, + "Stored_volume", + min=0.0, + nominal=self._typical_fill_time * self.Q_nominal, + ) + self.add_variable(Variable, "Q", nominal=self.Q_nominal) + self.add_variable( + Variable, "Pump_power", min=0.0, nominal=self.Q_nominal * self.nominal_pressure + ) + + self._heat_loss_error_to_state_factor = 1 + self._nominal_heat_loss = ( + self.Stored_heat.nominal * self.heat_loss_coeff * self._heat_loss_error_to_state_factor + ) + self.add_variable(Variable, "Heat_loss", min=0.0, nominal=self._nominal_heat_loss) + + self._heat_loss_eq_nominal_ates = (self.Heat_nominal * self._nominal_heat_loss) ** 0.5 + + self.add_equation(self.HeatIn.Q - self.HeatOut.Q) + self.add_equation(self.Q - self.HeatOut.Q) + + # # Heat stored in the ates + self.add_equation( + (self.der(self.Stored_heat) - self.Heat_low_temperature_ates + self.Heat_loss) + / self._heat_loss_eq_nominal_ates + ) + self.add_equation((self.der(self.Stored_volume) - self.Q) / self.Q_nominal) + + self.add_equation( + (self.HeatIn.Heat - (self.HeatOut.Heat + self.Heat_low_temperature_ates)) + / self.Heat_nominal + ) + self.add_equation((self.Heat_flow - self.Heat_low_temperature_ates) / self.Heat_nominal) diff --git a/src/mesido/pycml/component_library/milp/heat/node.py b/src/mesido/pycml/component_library/milp/heat/node.py index 7ff75d71c..1c767077f 100644 --- a/src/mesido/pycml/component_library/milp/heat/node.py +++ b/src/mesido/pycml/component_library/milp/heat/node.py @@ -8,8 +8,8 @@ class Node(HeatComponent, BaseAsset): """ A node is the only component in the network that allows to model 3 or more flows to come together. This essentially means that only pipes can be connected to ports and that it models - junctions where multiple pipes come together. The node ensures that the milp on all ports is - equal. Furthermore, it ensures that discharge and milp are conserved for which constraints in + junctions where multiple pipes come together. The node ensures that the heat on all ports is + equal. Furthermore, it ensures that discharge and heat are conserved for which constraints in the HeatMixin are set. """ @@ -25,7 +25,7 @@ def __init__(self, name, **modifiers): self.add_variable(Variable, "H") # Because the orientation of the connected pipes are important to - # setup the milp conservation, these constraints are added in the + # setup the heat conservation, these constraints are added in the # mixin. for i in range(1, self.n + 1): diff --git a/tests/models/wko/input/timeseries.csv b/tests/models/wko/input/timeseries.csv new file mode 100644 index 000000000..680e238b1 --- /dev/null +++ b/tests/models/wko/input/timeseries.csv @@ -0,0 +1,9 @@ +DateTime,HeatingDemand_9b90,CoolingDemand_15e8 +01-01-2019 00:00, 50000., 150000. +01-01-2019 01:00, 100000., 150000. +01-01-2019 02:00, 100000., 150000. +01-01-2019 03:00, 100000., 0. +01-01-2019 04:00, 150000., 0. +01-01-2019 05:00, 150000., 0. +01-01-2019 06:00, 150000., 0. + diff --git a/tests/models/wko/model/LT_wko.esdl b/tests/models/wko/model/LT_wko.esdl new file mode 100644 index 000000000..200fdb7c6 --- /dev/null +++ b/tests/models/wko/model/LT_wko.esdl @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/wko/src/example.py b/tests/models/wko/src/example.py new file mode 100644 index 000000000..2de7171d2 --- /dev/null +++ b/tests/models/wko/src/example.py @@ -0,0 +1,228 @@ +import casadi as ca + +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin + +import numpy as np + +from rtctools.optimization.collocated_integrated_optimization_problem import ( + CollocatedIntegratedOptimizationProblem, +) +from rtctools.optimization.goal_programming_mixin_base import Goal +from rtctools.optimization.linearized_order_goal_programming_mixin import ( + LinearizedOrderGoalProgrammingMixin, +) +from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin +from rtctools.optimization.timeseries import Timeseries +from rtctools.util import run_optimization_problem + + +class TargetDemandGoal(Goal): + """ + Goal class for matching a timeseries of values, we use it to match the time series of a demand + profile. We use order 2 to match the profile at every time-step. We set the target in the + constructor and function() method will return the state which should match the target. + """ + + priority = 1 + + order = 2 + + def __init__(self, state: str, target: Timeseries): + """ + The constructor for the class where we pass the name of the state that should be matched to + the target. + + Parameters + ---------- + state : string for the name of the state. + target : Timeseries to match with the state. + """ + self.state = state + + self.target_min = target + self.target_max = target + self.function_range = (-2.0 * max(target.values), 2.0 * max(target.values)) + self.function_nominal = ( + np.median(target.values) if np.median(target.values) else max(abs(target.values)) / 2.0 + ) + + def function( + self, optimization_problem: CollocatedIntegratedOptimizationProblem, ensemble_member: int + ) -> ca.MX: + """ + This function returns the state to which will be tried to match to the target. + + Parameters + ---------- + optimization_problem : The optimization class containing the variables' + ensemble_member : the ensemble member + + Returns + ------- + The optimization problem state, the Heat_demand, which should be matched to the time-series + """ + return optimization_problem.state(self.state) + + +class MinimizeSourcesHeatGoal(Goal): + """ + A minimization goal for source milp production. We use order 1 here as we want to minimize milp + over the full horizon and not per time-step. + """ + + priority = 3 + + order = 1 + + def __init__(self, source: str): + """ + The constructor of the goal. + + Parameters + ---------- + source : string of the source name that is going to be minimized + """ + self.source = source + + def function( + self, optimization_problem: CollocatedIntegratedOptimizationProblem, ensemble_member: int + ) -> ca.MX: + """ + This function returns the state variable to which should to be matched to the target + specified in the __init__. + + Parameters + ---------- + optimization_problem : The optimization class containing the variables'. + ensemble_member : the ensemble member. + + Returns + ------- + The Heat_source state of the optimization problem. + """ + return optimization_problem.state(f"{self.source}.Heat_source") + + +class _GoalsAndOptions: + """ + A goals class that we often use if we specify multiple problem classes. + """ + + def path_goals(self): + """ + In this method we add the goals for matching the demand. + + Returns + ------- + The appended goals list of goals + """ + goals = super().path_goals().copy() + + for demand in self.energy_system_components.get("heat_demand", []): + target = self.get_timeseries(f"{demand}.target_heat_demand") + state = f"{demand}.Heat_demand" + + goals.append(TargetDemandGoal(state, target)) + + for demand in self.energy_system_components.get("cold_demand", []): + target = self.get_timeseries(f"{demand}.target_cold_demand") + state = f"{demand}.Cold_demand" + + goals.append(TargetDemandGoal(state, target)) + + return goals + + +class HeatProblem( + _GoalsAndOptions, + TechnoEconomicMixin, + LinearizedOrderGoalProgrammingMixin, + SinglePassGoalProgrammingMixin, + ESDLMixin, + CollocatedIntegratedOptimizationProblem, +): + """ + This problem class is for the absolute milp tests. Meaning that this problem class + is applied to an esdl where there is no dedicated supply or return line. For this test case + we just match heating demand (_GoalsAndOptions) and minimize the energy production to have a + representative result. + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.heat_network_settings["head_loss_option"] = HeadLossOption.NO_HEADLOSS + self.heat_network_settings["minimum_velocity"] = 0.0 + + def path_goals(self): + """ + This function adds the minimization goal for minimizing the milp production. + + Returns + ------- + The appended list of goals + """ + goals = super().path_goals().copy() + + for s in self.energy_system_components["heat_source"]: + goals.append(MinimizeSourcesHeatGoal(s)) + + return goals + + def solver_options(self): + """ + This function does not add anything at the moment but during debugging we use this. + + Returns + ------- + solver options dict + """ + options = super().solver_options() + options["solver"] = "highs" + return options + + def constraints(self, ensemble_member): + constraints = super().constraints(ensemble_member) + + for a in self.energy_system_components.get("ates", []): + stored_heat = self.state_vector(f"{a}.Stored_heat") + constraints.append((stored_heat[0], 0.0, 0.0)) + + return constraints + + def energy_system_options(self): + """ + This function does not add anything at the moment but during debugging we use this. + + Returns + ------- + Options dict for the physics modelling + """ + options = super().energy_system_options() + options["neglect_pipe_heat_losses"] = False + options["heat_loss_disconnected_pipe"] = False + + return options + + +if __name__ == "__main__": + elect = run_optimization_problem( + HeatProblem, + esdl_file_name="LT_wko.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + results = elect.extract_results() + print(results["CoolingDemand_15e8.Cold_demand"]) + print(results["HeatingDemand_9b90.Heat_demand"]) + print(results["HeatPump_b97e.Heat_source"]) + print(results["ATES_226d.Heat_low_temperature_ates"]) + for p in elect.energy_system_components.get("heat_pipe", []): + print(p, results[f"{p}__hn_heat_loss"]) + print(p, elect.bounds()[f"{p}__hn_heat_loss"]) + + a = 1 diff --git a/tests/test_absolute_heat.py b/tests/test_absolute_heat.py index 457c64a0d..a8a75de9d 100644 --- a/tests/test_absolute_heat.py +++ b/tests/test_absolute_heat.py @@ -19,7 +19,7 @@ def test_absolute_heat(self): Checks: 1. demand is matched 2. energy conservation in the network - 3. milp to discharge + 3. heat to discharge """ import models.absolute_heat.src.example as example diff --git a/tests/test_asset_is_realized.py b/tests/test_asset_is_realized.py index f4d4f6c79..8d16cd3b0 100644 --- a/tests/test_asset_is_realized.py +++ b/tests/test_asset_is_realized.py @@ -16,7 +16,7 @@ def test_asset_is_realized(self): asset is realized variable. We want the asset only to become available once sufficient investments are made. - In this specific test we optimize to match the milp demand. However, the sources are not + In this specific test we optimize to match the heat demand. However, the sources are not available from the start as the cumulative invesments made at timestep 0 is 0. Furthermore, there is a cap on the investments that can be done per timestep. We expect the optimizer to find a solution that releases the sources as soon as possible in order to match demand diff --git a/tests/test_ates.py b/tests/test_ates.py index c8d6c2034..d9725fffd 100644 --- a/tests/test_ates.py +++ b/tests/test_ates.py @@ -15,11 +15,11 @@ class TestAtes(TestCase): def test_ates(self): """ Checks the constraints concerning the milp to discharge and energy conservation - for the ates. The milp loss model used are tested and the typical cyclic constraint that + for the ates. The heat loss model used are tested and the typical cyclic constraint that will be applied in most use cases. Checks: - - the milp loss is computed as expected (loss coef * stored milp [J]) + - the heat loss is computed as expected (loss coef * stored heat [J]) - checks that the efficiency causes less energy discharged than charged - cyclic storage behaviour - standard energy conservation, etc. diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py new file mode 100644 index 000000000..f7596a0fb --- /dev/null +++ b/tests/test_cold_demand.py @@ -0,0 +1,45 @@ +from pathlib import Path +from unittest import TestCase + +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + +from rtctools.util import run_optimization_problem + +from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test + + +class TestColdDemand(TestCase): + def test_cold_demand(self): + """ + This test is to check the basic physics for a network which includes cold demand. In this + case we have a network with an air-water hp, a low temperature ates and both hot and cold + demand. In this case the demands are matched and the low temperature ates is utilized. + + Checks: + 1. demand is matched + 2. energy conservation in the network + 3. heat to discharge (note cold line is colder than T_ground) + + """ + import models.wko.src.example as example + from models.wko.src.example import HeatProblem + + base_folder = Path(example.__file__).resolve().parent.parent + + heat_problem = run_optimization_problem( + HeatProblem, + base_folder=base_folder, + esdl_file_name="LT_wko.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + + demand_matching_test(heat_problem, heat_problem.extract_results()) + energy_conservation_test(heat_problem, heat_problem.extract_results()) + heat_to_discharge_test(heat_problem, heat_problem.extract_results()) + + +if __name__ == "__main__": + a = 1 diff --git a/tests/test_end_scenario_sizing_annualized.py b/tests/test_end_scenario_sizing_annualized.py index 92ded3c66..1da591a64 100644 --- a/tests/test_end_scenario_sizing_annualized.py +++ b/tests/test_end_scenario_sizing_annualized.py @@ -13,7 +13,7 @@ class TestEndScenarioSizingAnnualized(TestCase): """ Tests for end scenario sizing with annualized costs in a small network with optional assets. - This class tests two models for a milp network: with + This class tests two models for a heat network: with and without annualized costs. It asserts the following: 1. Under some conditions, the objective value of the annualized model is equal to the solution from the non annualized one. diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 0a8d9aecf..285b67f85 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -17,7 +17,7 @@ class TestHeadLoss(TestCase): """ - Test case for a milp network and a gas network consisting out of a source, pipe(s) and a sink + Test case for a heat network and a gas network consisting out of a source, pipe(s) and a sink """ def test_heat_network_head_loss(self): diff --git a/tests/test_heat.py b/tests/test_heat.py index ed99dc9e8..544b6226c 100644 --- a/tests/test_heat.py +++ b/tests/test_heat.py @@ -18,7 +18,7 @@ def test_heat_loss(self): This is a test to check whether the network (pipes) are dissipating milp as we expect. Checks: - - Check that the produced milp is strictly higher than the consumed milp + - Check that the produced heat is strictly higher than the consumed heat - Check for energy conservation in the network """ @@ -50,11 +50,11 @@ def test_heat_loss(self): def test_zero_heat_loss(self): """ - Check the optimiziation function when the zero milp loss is used. + Check the optimiziation function when the zero heat loss is used. Checks: - Should check that produced equals consumed. - - Should check the milp loss variable being zero + - Should check the heat loss variable being zero """ import models.source_pipe_sink.src.double_pipe_heat as double_pipe_heat @@ -241,7 +241,7 @@ class TestDisconnectablePipe(TestCase): class ModelConnected(SourcePipeSink): # We allow the pipe to be disconnectable. We need to be sure that - # the solution is still feasible (source delivering no milp), so we + # the solution is still feasible (source delivering no heat), so we # lower the lower bound. def parameters(self, ensemble_member): diff --git a/tests/test_insulation.py b/tests/test_insulation.py index 77bcac53a..9a628e809 100644 --- a/tests/test_insulation.py +++ b/tests/test_insulation.py @@ -33,10 +33,10 @@ class TestInsulation(TestCase): 4. Test in which not all LT sources are selected as Tmin of demands is not low enough --> maybe 3 and 4 can be combined --> so forinstance only LT source behind HEX is selected due to insulation of that Heating demand, but other HD can not be insulated far enough for LT - source on the primary network.(e.g. goal, minimise milp loss, does not solve the provided + source on the primary network.(e.g. goal, minimise heat loss, does not solve the provided cases) 5. Test where TCO minimised, combination of investment cost of insulation vs lower Temperature - network, thus lower milp loss (and allowing cheaper LT producers). + network, thus lower heat loss (and allowing cheaper LT producers). #TODO: add test cases 2, 2b, 3, 4 and 5 as detailed above #TODO: maybe we can make COP heatpump dependent on the chosen network temperatures """ @@ -45,16 +45,16 @@ class TestInsulation(TestCase): def test_insulation_heatdemand(self): """ Check that the best insulation class is selected when we optimize for minimal - milp production. + heat production. Checks: - That the correct insulation class is selected - Check that the other insulation classes are not selected - - Check that there is sufficient milp. + - Check that there is sufficient heat. - Check that the profile that is matched is as expected Missing: - - Energy conservation and milp to discharge (replace current check of sufficient milp) + - Energy conservation and heat to discharge (replace current check of sufficient heat) """ import models.insulation.src.run_insulation as run_insulation @@ -98,7 +98,7 @@ def test_insulation_heatdemand(self): other_demand_insulation_class, err_msg="Insulation B or C should not be selected for any demand", ) - # Check that the milp sources (not connected to HP) + HP secondary > demand + # Check that the heat sources (not connected to HP) + HP secondary > demand tot_src = ( results["ResidualHeatSource_6783.Heat_source"] + results["ResidualHeatSource_4539.Heat_source"] @@ -109,7 +109,7 @@ def test_insulation_heatdemand(self): results["HeatingDemand_f15e.Heat_demand"] + results["HeatingDemand_e6b3.Heat_demand"] ) / 1.0e6 np.testing.assert_array_less( - (tot_dmnd - tot_src), 0.0, err_msg="The milp source is not sufficient" + (tot_dmnd - tot_src), 0.0, err_msg="The heat source is not sufficient" ) # Check that the demand load achieved == (base demand load * insulation level scaling # factor. Insulation level "A" should be active, which is index=0 in the insulation_levels diff --git a/tests/test_max_size_and_optional_assets.py b/tests/test_max_size_and_optional_assets.py index 362579c3e..e6d0b4941 100644 --- a/tests/test_max_size_and_optional_assets.py +++ b/tests/test_max_size_and_optional_assets.py @@ -25,7 +25,7 @@ def test_max_size_and_aggr_count(self): source will be placed due to the minimization of the cost (which cost is this?, I assume operational cost) and installation cost. The placement behaviour is further tested in a second case by adding an optional ates and buffer. However, these 2 additional optional - assets should not be placed by the optmizer because of milp losses. + assets should not be placed by the optmizer because of heat losses. Checks: - Check that source 1 is utilized and also placed @@ -94,7 +94,7 @@ def test_max_size_and_aggr_count(self): ) # Test that cost only exist for 2 and not for 1. Note the tolerances - # to avoid test failing when milp losses slightly change + # to avoid test failing when heat losses slightly change np.testing.assert_allclose(var_cost_1, 0.0, atol=1e-9) np.testing.assert_allclose( var_cost_2, @@ -123,7 +123,7 @@ def test_max_size_and_aggr_count(self): rtol=1.0e-2, ) - # Since the buffer and ates are not optional they must consume some milp to compensate + # Since the buffer and ates are not optional they must consume some heat to compensate # losses as the buffer has a minimum fraction volume of 5%. # Therefore, we can check the max_size constraint. np.testing.assert_allclose( @@ -143,7 +143,7 @@ def test_max_size_and_aggr_count(self): base_folder = Path(run_ates.__file__).resolve().parent.parent # This is the same problem, but now with the buffer and ates also optional. - # Therefore, we expect that the ates and buffer are no longer placed to avoid their milp + # Therefore, we expect that the ates and buffer are no longer placed to avoid their heat # losses. This allows us to check if their placement constraints are proper. solution = run_optimization_problem( HeatProblem, diff --git a/tests/test_multicommodity.py b/tests/test_multicommodity.py index 7f8a43014..97df6a5bc 100644 --- a/tests/test_multicommodity.py +++ b/tests/test_multicommodity.py @@ -14,18 +14,18 @@ class TestMultiCommodityHeatPump(TestCase): """Test to verify that the optimisation problem can handle multicommodity problems, relating - electricity and milp""" + electricity and heat""" def test_heat_pump_elec_min_heat(self): """ Verify that the minimisation of the heat_source used, and thus the optimization should - exploit the heatpump as much as possible, and minimum use of milp source at secondary + exploit the heatpump as much as possible, and minimum use of heat source at secondary side. Checks: - - Standard checks for demand matching, milp to discharge and energy conservation + - Standard checks for demand matching, heat to discharge and energy conservation - Checks for sufficient production - - Checks for milp pump energy conservation and COP modelling + - Checks for heat pump energy conservation and COP modelling - Checks for Power = I * V at the heatpump """ @@ -88,14 +88,14 @@ def test_heat_pump_elec_min_heat_curr_limit(self): """ Verify the minimization of the heat_source used. However, due to limitations in the electricity transport through the cables, the power to the heatpump is limited. This in - turn limits the milp produced by the heatpump which is then not sufficient for the total - heating demand, resulting in milp production by the secondary heatsource (milp produced by + turn limits the heat produced by the heatpump which is then not sufficient for the total + heating demand, resulting in heat production by the secondary heatsource (heat produced by this asset is not 0). Checks: - - Standard checks for demand matching, milp to discharge and energy conservation + - Standard checks for demand matching, heat to discharge and energy conservation - Checks for sufficient production - - Checks for milp pump energy conservation and COP modelling + - Checks for heat pump energy conservation and COP modelling - Checks for Power = I * V at the heatpump """ @@ -160,12 +160,12 @@ def test_heat_pump_elec_min_heat_curr_limit(self): def test_heat_pump_elec_min_elec(self): """ Verify that minimisation of the electricity power used, and thus - exploiting the heatpump only for milp that cannot directly be covered by other sources. + exploiting the heatpump only for heat that cannot directly be covered by other sources. Checks: - - Standard checks for demand matching, milp to discharge and energy conservation + - Standard checks for demand matching, heat to discharge and energy conservation - Checks for sufficient production - - Checks for milp pump energy conservation and COP modelling + - Checks for heat pump energy conservation and COP modelling - Checks for Power = I * V at the heatpump """ diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index 0853996a8..95d9a605a 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -14,15 +14,15 @@ class TestHEX(TestCase): def test_heat_exchanger(self): """ - Check the modelling of the milp exchanger component which allows two hydraulically - decoupled networks to exchange milp with each other. It is enforced that milp can only flow - from the primary side to the secondary side, and milp exchangers are allowed to be disabled + Check the modelling of the heat exchanger component which allows two hydraulically + decoupled networks to exchange heat with each other. It is enforced that heat can only flow + from the primary side to the secondary side, and heat exchangers are allowed to be disabled for timesteps in which they are not used. This is to allow for the temperature constraints (T_primary > T_secondary) to become deactivated. Checks: - - Standard checks for demand matching, milp to discharge and energy conservation - - That the efficiency is correclty implemented for milp from primary to secondary + - Standard checks for demand matching, heat to discharge and energy conservation + - That the efficiency is correclty implemented for heat from primary to secondary - Check that the is_disabled is set correctly. - Check if the temperatures provided are physically feasible. @@ -90,7 +90,7 @@ def energy_system_options(self): np.testing.assert_allclose(prim_heat[-1], 0.0, atol=1e-5) np.testing.assert_allclose(disabled[-1], 1.0) np.testing.assert_allclose(disabled[:-1], 0.0) - # Check that milp is flowing through the hex + # Check that heat is flowing through the hex np.testing.assert_array_less(-prim_heat[:-1], 0.0) np.testing.assert_array_less( @@ -106,13 +106,13 @@ def energy_system_options(self): class TestHP(TestCase): def test_heat_pump(self): """ - Check the modelling of the milp pump component which has a constant COP with no energy loss. + Check the modelling of the heat pump component which has a constant COP with no energy loss. In this specific problem we expect the use of the secondary source to be maximised as - electrical milp from the HP is "free". + electrical heat from the HP is "free". Checks: - - Standard checks for demand matching, milp to discharge and energy conservation - - Check that the milp pump is producing according to its COP + - Standard checks for demand matching, heat to discharge and energy conservation + - Check that the heat pump is producing according to its COP - Check that Secondary source use in minimized diff --git a/tests/test_network_simulator.py b/tests/test_network_simulator.py index 110edec02..e184dd6cd 100644 --- a/tests/test_network_simulator.py +++ b/tests/test_network_simulator.py @@ -14,15 +14,15 @@ class TestNetworkSimulator(TestCase): """ - In this test case 2 milp producers and an ATES is used to supply 3 heating demands. A merit + In this test case 2 heat producers and an ATES is used to supply 3 heating demands. A merit order (preference of 1st use) is given to the producers: Producer_1 = 2 and Producer_2 = 1. Checks: - - General checks namely demand matching, energy conservation and asset milp variable vs - calculated milp (based on flow rate) - - Check that producer 1 (merit oder = 2) is only used for the supply of milp lossed in the + - General checks namely demand matching, energy conservation and asset heat variable vs + calculated heat (based on flow rate) + - Check that producer 1 (merit oder = 2) is only used for the supply of heat lossed in the connected and is does not contribute to the heating demands 1, 2 and 3 - - Check that the ATES is not delivering any milp to the network during the 1st time step + - Check that the ATES is not delivering any heat to the network during the 1st time step """ def test_network_simulator(self): @@ -54,7 +54,7 @@ def test_network_simulator(self): 0.0, err_msg="Heat producer 1 should be completely disabled " ", due to producer 2 being sufficient for " - "the total milp demand (incl. milp losses) and it has the 1st priority for usage", + "the total heat demand (incl. heat losses) and it has the 1st priority for usage", rtol=1.0e-3, atol=1.0e-3, ) @@ -62,7 +62,7 @@ def test_network_simulator(self): np.testing.assert_array_less( results["ATES_033c.Heat_ates"][0], 0.0, - err_msg="ATES should not be delivering milp to the network in the 1st time step", + err_msg="ATES should not be delivering heat to the network in the 1st time step", ) diff --git a/tests/test_pipe_diameter_sizing.py b/tests/test_pipe_diameter_sizing.py index 08bcb1cf3..6a9bd68a5 100644 --- a/tests/test_pipe_diameter_sizing.py +++ b/tests/test_pipe_diameter_sizing.py @@ -22,7 +22,7 @@ def test_half_network_gone(self): the left source and the associated left pipes. Checks: - - Standard checks for demand matching, milp to discharge and energy conservation + - Standard checks for demand matching, heat to discharge and energy conservation - That expected pipes are removed - Check that the Q is under the max for the selected pipe class. - Check that head losses are as expected for the selected diameter diff --git a/tests/test_producer_profiles.py b/tests/test_producer_profiles.py index a2ac921ce..c23ae2f90 100644 --- a/tests/test_producer_profiles.py +++ b/tests/test_producer_profiles.py @@ -17,7 +17,7 @@ class TestProducerMaxProfile(TestCase): (reducing the profile value at a few time steps). Checks: - - Standard checks demand matching, energy conservation and milp to discharge + - Standard checks demand matching, energy conservation and heat to discharge - check that heat_source <= scaled_profile * size_source. """ @@ -50,6 +50,6 @@ def test_max_producer_profile(self): ).values heat_producer_profile_full = heat_producer_profile_scaled * size_producer - # check that milp produced is smaller than the profile + # check that heat produced is smaller than the profile biggerthen = all(heat_producer_profile_full + tol >= heat_producer) self.assertTrue(biggerthen) diff --git a/tests/test_setpoint_constraints.py b/tests/test_setpoint_constraints.py index 2d793074e..2afe8aa4d 100644 --- a/tests/test_setpoint_constraints.py +++ b/tests/test_setpoint_constraints.py @@ -99,8 +99,8 @@ def test_setpoint_constraints(self): def test_run_small_ates_timed_setpoints_2_changes(self): """ Run the small network with ATES and check that the setpoint changes as specified. - The milp source for producer_1 changes 8 times (consecutively) when no timed_setpoints are - specified. The 1 year milp demand profiles contains demand values: hourly (peak day), weekly + The heat source for producer_1 changes 8 times (consecutively) when no timed_setpoints are + specified. The 1 year heat demand profiles contains demand values: hourly (peak day), weekly (every 5days/120hours/432000s) and 1 time step of 4days (96hours/345600s, step before the start of the peak day). Now check that the time_setpoints can limit the setpoint changes to 2 changes/year. @@ -135,8 +135,8 @@ def test_run_small_ates_timed_setpoints_2_changes(self): def test_run_small_ates_timed_setpoints_0_changes(self): """ Run the small network with ATES and check that the setpoint changes as specified. - The milp source for producer_1 changes 8 times (consecutively) when no timed_setpoints are - specified. The 1 year milp demand profiles contains demand values: hourly (peak day), weekly + The heat source for producer_1 changes 8 times (consecutively) when no timed_setpoints are + specified. The 1 year heat demand profiles contains demand values: hourly (peak day), weekly (every 5days/120hours/432000s) and 1 time step of 4days (96hours/345600s, step before the start of the peak day). Now check that the time_setpoints can limit the setpoint changes to 0 changes/year. @@ -169,8 +169,8 @@ def test_run_small_ates_timed_setpoints_0_changes(self): def test_run_small_ates_timed_setpoints_multiple_constraints(self): """ Run the small network with ATES and check that the setpoint changes as specified. - The milp source for producer_1 changes 8 times (consecutively) when no timed_setpoints are - specified. The 1 year milp demand profiles contains demand values: hourly (peak day), weekly + The heat source for producer_1 changes 8 times (consecutively) when no timed_setpoints are + specified. The 1 year heat demand profiles contains demand values: hourly (peak day), weekly (every 5days/120hours/432000s) and 1 time step of 4days (96hours/345600s, step before the start of the peak day). Now check that the time_setpoints can limit the setpoint changes to 1 changes over multiple window sizes. diff --git a/tests/test_topo_constraints.py b/tests/test_topo_constraints.py index 1ca38dacf..691626d1b 100644 --- a/tests/test_topo_constraints.py +++ b/tests/test_topo_constraints.py @@ -175,15 +175,15 @@ class ordering variables are there to help the optimizer in seeing the relation np.testing.assert_almost_equal( heat_loss_ordering_var, 0.0, - err_msg=f"expected the milp loss order var for {p} and {pc=} to be 0.0, " - f"since {chosen_pc=} with higher milp losses", + err_msg=f"expected the heat loss order var for {p} and {pc=} to be 0.0, " + f"since {chosen_pc=} with higher heat losses", ) elif pc_heat_loss > chosen_pc_heat_loss: np.testing.assert_almost_equal( discharge_ordering_var, 1.0, - err_msg=f"Expected the milp loss order var for {p} and {pc=} to be 1.0, " - f"since {chosen_pc=} with lower milp losses", + err_msg=f"Expected the heat loss order var for {p} and {pc=} to be 1.0, " + f"since {chosen_pc=} with lower heat losses", ) for pc_name, total_count in pc_sums.items(): @@ -254,7 +254,7 @@ def get_chosen_pipe_class(self, pipe: str, pipe_class_vars: Dict[str, np.ndarray def get_heat_losses(self, pipe: str, pipe_class: PipeClass): """ - This function computes the expected milp loss for a pipe class. + This function computes the expected heat loss for a pipe class. Parameters ---------- @@ -263,7 +263,7 @@ def get_heat_losses(self, pipe: str, pipe_class: PipeClass): Returns ------- - Pipe milp loss value. + Pipe heat loss value. """ return pipe_heat_loss( self.problem, diff --git a/tests/test_varying_temperature.py b/tests/test_varying_temperature.py index 36472737f..f842cabc0 100644 --- a/tests/test_varying_temperature.py +++ b/tests/test_varying_temperature.py @@ -17,15 +17,15 @@ def test_1a_temperature_variation(self): """ This test is to check if the varying network temperature works as expected on a simple network. We give it temperature options such that it should select a minimum delta T to be - able to meet the milp demands. It is known which network temperatures should be selected + able to meet the heat demands. It is known which network temperatures should be selected based on the specified input values. Checks: - - Standard checks for demand matching, milp to discharge and energy conservation + - Standard checks for demand matching, heat to discharge and energy conservation - Check expected supply temperature - Check expected return temperature - Check on integer variable for selected temperature. - - Check if the milp losses are correct for the selected temperature + - Check if the heat losses are correct for the selected temperature """ import models.unit_cases.case_1a.src.run_1a as run_1a @@ -83,13 +83,13 @@ def test_1a_temperature_variation(self): def test_3a_temperature_variation_supply(self): """ Check varying temperature behoviour for network with storage (tank). In this case we - Minimise the produced milp and thus we expect the lowest temperature to be selected. + Minimise the produced heat and thus we expect the lowest temperature to be selected. Checks: - - Standard checks for demand matching, milp to discharge and energy conservation. + - Standard checks for demand matching, heat to discharge and energy conservation. - Check if the expected temperature is selected and if temperature variable is set correctly. - - Check if the milp losses are correct for the selected temperature + - Check if the heat losses are correct for the selected temperature """ import models.unit_cases.case_3a.src.run_3a as run_3a @@ -110,11 +110,11 @@ def test_3a_temperature_variation_supply(self): test.assertTrue(heat_problem.solver_stats["success"], msg="Optimisation did not succeed") # optimization with two choices in supply temp 80 and 120 deg - # lowest temperature should be selected because of lower milp losses and - # milp production minimization goal + # lowest temperature should be selected because of lower heat losses and + # heat production minimization goal results = heat_problem.extract_results() - # Check whehter the milp demand is matched + # Check whehter the heat demand is matched for d in heat_problem.energy_system_components.get("heat_demand", []): target = heat_problem.get_timeseries(f"{d}.target_heat_demand").values[ : len(heat_problem.times()) @@ -158,10 +158,10 @@ def test_3a_temperature_variation_return(self): to maximise the detla T. Checks: - - Standard checks for demand matching, milp to discharge and energy conservation. + - Standard checks for demand matching, heat to discharge and energy conservation. - Check if the expected temperature is selected and if temperature variable is set correctly. - - Check if the milp losses are correct for the selected temperature + - Check if the heat losses are correct for the selected temperature """ import models.unit_cases.case_3a.src.run_3a as run_3a @@ -218,13 +218,13 @@ def test_3a_temperature_variation_return(self): def test_hex_temperature_variation(self): """ - This test is to check whether the milp exchanger behaves as expected when optimized under + This test is to check whether the heat exchanger behaves as expected when optimized under varying network temperature. This is of special interest as we want to ensure the temperatures stay physically feasible, therefore we create a problem where the lowest available supply T is infeasible. Checks: - - Standard checks for demand matching, milp to discharge and energy conservation. + - Standard checks for demand matching, heat to discharge and energy conservation. - Check that the infeasible temperature is not selected. """ @@ -285,12 +285,12 @@ def test_hex_temperature_variation(self): def test_hex_temperature_variation_disablehex(self): """ - This test is to check if the optimizer disables the milp exchanger when only infeasible + This test is to check if the optimizer disables the heat exchanger when only infeasible temperature option are provided to it. Checks: - - Standard checks for demand matching, milp to discharge and energy conservation. - - Infeasible T for milp exchanger is selected. + - Standard checks for demand matching, heat to discharge and energy conservation. + - Infeasible T for heat exchanger is selected. - Heat exchanger is disabled. """ @@ -312,7 +312,7 @@ def test_hex_temperature_variation_disablehex(self): test.assertTrue(heat_problem.solver_stats["success"], msg="Optimisation did not succeed") # optimization with only one option in temperature which is infeasible for the hex. - # therefore optimization should disable the milp exchanger + # therefore optimization should disable the heat exchanger results = heat_problem.extract_results() # Check that the problem has an infeasible temperature for the hex @@ -327,12 +327,12 @@ def test_hex_temperature_variation_disablehex(self): def test_hex_temperature_variation_secondary(self): """ - Check to see the functioning of the varying network temperature with a milp exchanger where + Check to see the functioning of the varying network temperature with a heat exchanger where all options are feasible and we expect it to take the most advantageous one, which in this case is the lowest one. Checks: - - Standard checks for demand matching, milp to discharge and energy conservation. + - Standard checks for demand matching, heat to discharge and energy conservation. - Check that lowest temperature is selected and set correctly. """ @@ -354,8 +354,8 @@ def test_hex_temperature_variation_secondary(self): test.assertTrue(heat_problem.solver_stats["success"], msg="Optimisation did not succeed") # optimization with two choices in secondary supply temp 70 and 90 deg - # lowest temperature should be selected because of milp minimization and lower T has - # lower milp loss. + # lowest temperature should be selected because of heat minimization and lower T has + # lower heat loss. results = heat_problem.extract_results() # Check that the lowest temperature (70.0) is the outputted temperature diff --git a/tests/test_warmingup_unit_cases.py b/tests/test_warmingup_unit_cases.py index c9744cb04..1ba27c43b 100644 --- a/tests/test_warmingup_unit_cases.py +++ b/tests/test_warmingup_unit_cases.py @@ -21,7 +21,7 @@ def test_1a(self): - Demand matching - Energy conservation - Heat to discharge - - Checks for conservation of flow and milp at the node + - Checks for conservation of flow and heat at the node - Check for equal head at all node connections - Checks that the minimum pressure-drop constraints at the demand are satisfied - Check that Heat_demand & Heat_source are set correctly and are linked to the Heat_flow @@ -129,8 +129,8 @@ def test_3a(self): direction for the pipe connected to the buffer tank) - Check that the Heat_buffer & Heat_flow variable are set correctly - Check that the history for the buffer is set correctly at t=0 - - Check that the milp loss is positive and as expected - - Check that the Stored milp is the sum of (dis)charge and losses + - Check that the heat loss is positive and as expected + - Check that the Stored heat is the sum of (dis)charge and losses """ import models.unit_cases.case_3a.src.run_3a as run_3a @@ -171,7 +171,7 @@ def test_3a(self): results[f"{buffer}.HeatIn.Heat"] - results[f"{buffer}.HeatOut.Heat"], results[f"{buffer}.Heat_buffer"], ) - # buffer should have positive milp loss + # buffer should have positive heat loss assert parameters[f"{buffer}.heat_loss_coeff"] > 0.0 np.testing.assert_allclose( results[f"{buffer}.Stored_heat"] * parameters[f"{buffer}.heat_loss_coeff"], diff --git a/tests/utils_tests.py b/tests/utils_tests.py index 0dcf283cc..4abbb9b9f 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -13,6 +13,13 @@ def demand_matching_test(solution, results): len_times = len(solution.get_timeseries(f"{d}.target_heat_demand").values) target = solution.get_timeseries(f"{d}.target_heat_demand").values[0:len_times] np.testing.assert_allclose(target, results[f"{d}.Heat_demand"], atol=1.0e-3, rtol=1.0e-6) + for d in solution.energy_system_components.get("cold_demand", []): + if len(solution.times()) > 0: + len_times = len(solution.times()) + else: + len_times = len(solution.get_timeseries(f"{d}.target_cold_demand").values) + target = solution.get_timeseries(f"{d}.target_cold_demand").values[0:len_times] + np.testing.assert_allclose(target, results[f"{d}.Cold_demand"], atol=1.0e-3, rtol=1.0e-6) def _get_component_temperatures(solution, results, component, side=None): @@ -96,11 +103,30 @@ def heat_to_discharge_test(solution, results): np.testing.assert_allclose( results[f"{d}.HeatOut.Heat"], results[f"{d}.Q"] * rho * cp * return_t ) - test.assertTrue( - expr=all(results[f"{d}.HeatIn.Heat"] <= results[f"{d}.Q"] * rho * cp * supply_t + tol) + + for d in solution.energy_system_components.get("cold_demand", []): + cp = solution.parameters(0)[f"{d}.cp"] + rho = solution.parameters(0)[f"{d}.rho"] + # return_id = solution.parameters(0)[f"{d}.T_return_id"] + # if f"{return_id}_temperature" in results.keys(): + # return_t = results[f"{return_id}_temperature"] + # else: + # return_t = solution.parameters(0)[f"{d}.T_return"] + # supply_id = solution.parameters(0)[f"{d}.T_supply_id"] + # if f"{supply_id}_temperature" in results.keys(): + # supply_t = results[f"{supply_id}_temperature"] + # else: + # supply_t = solution.parameters(0)[f"{d}.T_supply"] + # dt = supply_t - return_t + # dt = solution.parameters(0)[f"{d}.dT"] + supply_t, return_t, dt = _get_component_temperatures(solution, results, d) + np.testing.assert_allclose( + results[f"{d}.Cold_demand"], + results[f"{d}.HeatOut.Heat"] - results[f"{d}.HeatIn.Heat"], + atol=tol, ) - test.assertTrue( - expr=all(results[f"{d}.Heat_demand"] <= results[f"{d}.Q"] * rho * cp * dt + tol) + np.testing.assert_allclose( + results[f"{d}.HeatOut.Heat"], results[f"{d}.Q"] * rho * cp * supply_t ) for d in solution.energy_system_components.get("heat_source", []): @@ -116,16 +142,10 @@ def heat_to_discharge_test(solution, results): # return_t = solution.parameters(0)[f"{d}.T_return"] supply_t, return_t, dt = _get_component_temperatures(solution, results, d) - test.assertTrue( - expr=all(results[f"{d}.Heat_source"] >= results[f"{d}.Q"] * rho * cp * dt - tol) - ) print(d, max(abs(results[f"{d}.HeatOut.Heat"] - results[f"{d}.Q"] * rho * cp * supply_t))) np.testing.assert_allclose( results[f"{d}.HeatOut.Heat"], results[f"{d}.Q"] * rho * cp * supply_t, atol=tol ) - test.assertTrue( - expr=all(results[f"{d}.HeatIn.Heat"] <= results[f"{d}.Q"] * rho * cp * return_t + tol) - ) for d in [ *solution.energy_system_components.get("ates", []), @@ -234,9 +254,15 @@ def heat_to_discharge_test(solution, results): carrier_id = solution.parameters(0)[f"{p}.carrier_id"] indices = results[f"{p}.Q"] > 0 if f"{carrier_id}_temperature" in results.keys(): - temperature = results[f"{carrier_id}_temperature"][indices] + temperature = np.clip( + results[f"{carrier_id}_temperature"][indices], + solution.parameters(0)[f"{p}.T_ground"], + np.inf, + ) else: - temperature = solution.parameters(0)[f"{p}.temperature"] + temperature = max( + solution.parameters(0)[f"{p}.temperature"], solution.parameters(0)[f"{p}.T_ground"] + ) test.assertTrue( expr=all( results[f"{p}.HeatIn.Heat"][indices] @@ -251,9 +277,15 @@ def heat_to_discharge_test(solution, results): ) indices = results[f"{p}.Q"] < 0 if f"{carrier_id}_temperature" in results.keys(): - temperature = results[f"{carrier_id}_temperature"][indices] + temperature = np.clip( + results[f"{carrier_id}_temperature"][indices], + solution.parameters(0)[f"{p}.T_ground"], + np.inf, + ) else: - temperature = solution.parameters(0)[f"{p}.temperature"] + temperature = max( + solution.parameters(0)[f"{p}.temperature"], solution.parameters(0)[f"{p}.T_ground"] + ) test.assertTrue( expr=all( results[f"{p}.HeatIn.Heat"][indices] @@ -292,6 +324,9 @@ def energy_conservation_test(solution, results): for d in solution.energy_system_components.get("heat_demand", []): energy_sum -= results[f"{d}.Heat_demand"] + for d in solution.energy_system_components.get("cold_demand", []): + energy_sum += results[f"{d}.Cold_demand"] + for d in solution.energy_system_components.get("heat_buffer", []): energy_sum -= results[f"{d}.Heat_buffer"] @@ -301,6 +336,9 @@ def energy_conservation_test(solution, results): for d in solution.energy_system_components.get("ates", []): energy_sum -= results[f"{d}.Heat_ates"] + for d in solution.energy_system_components.get("low_temperature_ates", []): + energy_sum -= results[f"{d}.Heat_low_temperature_ates"] + for d in solution.energy_system_components.get("heat_exchanger", []): energy_sum -= results[f"{d}.Primary_heat"] - results[f"{d}.Secondary_heat"] @@ -308,14 +346,35 @@ def energy_conservation_test(solution, results): energy_sum += results[f"{d}.Power_elec"] for p in solution.energy_system_components.get("heat_pipe", []): - energy_sum -= abs(results[f"{p}.HeatIn.Heat"] - results[f"{p}.HeatOut.Heat"]) - if f"{p}__is_disconnected" in results.keys(): - p_discon = results[f"{p}__is_disconnected"].copy() + if ( + f"{p}__is_disconnected" in results.keys() + or f"{solution.cold_to_hot_pipe(p)}__is_disconnected" in results.keys() + ): + if p in solution.hot_pipes: + p_discon = results[f"{p}__is_disconnected"].copy() + else: + p_discon = results[f"{solution.cold_to_hot_pipe(p)}__is_disconnected"].copy() + p_discon[p_discon < 0.5] = 0 # fix for discrete value sometimes being 0.003 or so. np.testing.assert_allclose( results[f"{p}__hn_heat_loss"] * (1 - p_discon), - abs(results[f"{p}.HeatIn.Heat"] - results[f"{p}.HeatOut.Heat"]), + results[f"{p}.HeatIn.Heat"] - results[f"{p}.HeatOut.Heat"], atol=1e-3, ) + energy_sum -= results[f"{p}__hn_heat_loss"] * (1 - p_discon) + else: + if len(results[f"{p}__hn_heat_loss"]) == 1: + np.testing.assert_allclose( + results[f"{p}__hn_heat_loss"][0], + results[f"{p}.HeatIn.Heat"] - results[f"{p}.HeatOut.Heat"], + atol=1e-3, + ) + else: + np.testing.assert_allclose( + results[f"{p}__hn_heat_loss"], + results[f"{p}.HeatIn.Heat"] - results[f"{p}.HeatOut.Heat"], + atol=1e-3, + ) + energy_sum -= results[f"{p}__hn_heat_loss"] np.testing.assert_allclose(energy_sum, 0.0, atol=1e-2) From e266aeb0e815a104be30dbf83a524fa8b5699f9c Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 8 Apr 2024 17:10:08 +0200 Subject: [PATCH 020/275] Emerge develop (#16) This commit adds the emerge workflow developments. It includes the addition of electric storage and solar pv, together with source profile production bounds. --------- Co-authored-by: Rojer Co-authored-by: moradisepahvandm --- src/mesido/asset_sizing_mixin.py | 34 +++- src/mesido/electricity_physics_mixin.py | 159 +++++++++++++++--- src/mesido/esdl/asset_to_component_base.py | 4 +- src/mesido/esdl/esdl_heat_model.py | 49 +++++- src/mesido/financial_mixin.py | 6 +- .../pycml/component_library/milp/__init__.py | 4 + .../milp/electricity/electricity_storage.py | 47 ++++++ .../milp/electricity/solarpv.py | 8 + .../milp/electricity/windpark.py | 4 - .../emerge/input/timeseries_with_PV.csv | 2 +- tests/models/emerge/model/emerge.esdl | 26 ++- tests/models/emerge/model/emerge_solar.esdl | 112 ++++++++++++ .../emerge/model/emerge_solar_battery.esdl | 132 +++++++++++++++ tests/models/emerge/output/aliases.json | 1 + tests/models/emerge/output/bounds.json | 1 + tests/models/emerge/output/parameters.json | 1 + tests/models/emerge/output/results.json | 1 + tests/models/emerge/src/example.py | 133 +++++++++++++-- tests/test_electrolyzer.py | 2 +- 19 files changed, 674 insertions(+), 52 deletions(-) create mode 100644 src/mesido/pycml/component_library/milp/electricity/electricity_storage.py create mode 100644 src/mesido/pycml/component_library/milp/electricity/solarpv.py create mode 100644 tests/models/emerge/model/emerge_solar.esdl create mode 100644 tests/models/emerge/model/emerge_solar_battery.esdl create mode 100644 tests/models/emerge/output/aliases.json create mode 100644 tests/models/emerge/output/bounds.json create mode 100644 tests/models/emerge/output/parameters.json create mode 100644 tests/models/emerge/output/results.json diff --git a/src/mesido/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py index ac82aa8d5..b1a8182bc 100644 --- a/src/mesido/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -883,6 +883,15 @@ def _make_max_size_var(name, lb, ub, nominal): lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) + for asset_name in self.energy_system_components.get("electricity_storage", []): + ub = ( + bounds[f"{asset_name}.Stored_electricity"][1] + if not isinstance(bounds[f"{asset_name}.Stored_electricity"][1], Timeseries) + else np.max(bounds[f"{asset_name}.Stored_electricity"][1].values) + ) + lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub + _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) + # Making the __aggregation_count variable for each asset for asset_list in self.energy_system_components.values(): for asset in asset_list: @@ -902,7 +911,7 @@ def energy_system_options(self): Returns a dictionary of milp network specific options. """ - options = {} + options = super().energy_system_options() return options @@ -1764,12 +1773,12 @@ def __electricity_cable_topology_path_constraints(self, ensemble_member): current_sym = self.state(f"{cable}.I") nominal = self.variable_nominal(f"{cable}.I") - max_discharge = self.__electricity_cable_topo_max_current_var[ + max_current_var = self.__electricity_cable_topo_max_current_var[ self._electricity_cable_topo_max_current_map[cable] ] - constraints.append(((max_discharge - current_sym) / nominal, 0.0, np.inf)) - constraints.append(((-max_discharge - current_sym) / nominal, -np.inf, 0.0)) + constraints.append(((max_current_var - current_sym) / nominal, 0.0, np.inf)) + constraints.append(((-max_current_var - current_sym) / nominal, -np.inf, 0.0)) return constraints @@ -1923,6 +1932,23 @@ def __max_size_constraints(self, ensemble_member): ) ) + for d in self.energy_system_components.get("electricity_storage", []): + max_var = self._asset_max_size_map[d] + max_stored_energy = self.extra_variable(max_var, ensemble_member) + electricity_stored = self.__state_vector_scaled( + f"{d}.Stored_electricity", ensemble_member + ) + constraint_nominal = self.variable_nominal(f"{d}.Stored_electricity") + + constraints.append( + ( + (np.ones(len(self.times())) * max_stored_energy - electricity_stored) + / constraint_nominal, + 0.0, + np.inf, + ) + ) + for d in self.energy_system_components.get("electrolyzer", []): max_var = self._asset_max_size_map[d] max_power = self.extra_variable(max_var, ensemble_member) diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index 23018bd89..4f405f1ac 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -35,10 +35,19 @@ def __init__(self, *args, **kwargs): self.__asset_is_switched_on_var = {} self.__asset_is_switched_on_bounds = {} - self.__windpark_upper_bounds = {} + self.__electricity_producer_upper_bounds = {} self._electricity_cable_topo_cable_class_map = {} + # Boolean path-variable for the charging of storage assets + self.__storage_charging_var = {} + self.__storage_charging_bounds = {} + self.__storage_charging_map = {} + + self.__set_point_var = {} + self.__set_point_bounds = {} + self.__set_point_map = {} + def energy_system_options(self): r""" Returns a dictionary of milp network specific options. @@ -68,7 +77,7 @@ def pre(self): options = self.energy_system_options() - self.__update_windpark_upper_bounds() + self.__update_electricity_producer_upper_bounds() if options["include_asset_is_switched_on"]: for asset in [ @@ -79,6 +88,19 @@ def pre(self): self.__asset_is_switched_on_var[var_name] = ca.MX.sym(var_name) self.__asset_is_switched_on_bounds[var_name] = (0.0, 1.0) + for asset in [*self.energy_system_components.get("electricity_storage", [])]: + var_name = f"{asset}__is_charging" + self.__storage_charging_map[asset] = var_name + self.__storage_charging_var[var_name] = ca.MX.sym(var_name) + self.__storage_charging_bounds[var_name] = (0.0, 1.0) + + for asset in [*self.energy_system_components.get("electricity_source", [])]: + if isinstance(self.bounds()[f"{asset}.Electricity_source"][1], Timeseries): + var_name = f"{asset}__set_point" + self.__set_point_map[asset] = var_name + self.__set_point_var[var_name] = ca.MX.sym(var_name) + self.__set_point_bounds[var_name] = (0.0, 1.0) + @property def extra_variables(self): """ @@ -99,6 +121,8 @@ def path_variables(self): variables = super().path_variables.copy() variables.extend(self.__asset_is_switched_on_var.values()) + variables.extend(self.__storage_charging_var.values()) + variables.extend(self.__set_point_var.values()) return variables @@ -109,6 +133,8 @@ def variable_is_discrete(self, variable): if variable in self.__asset_is_switched_on_var: return True + if variable in self.__storage_charging_var: + return True else: return super().variable_is_discrete(variable) @@ -127,7 +153,9 @@ def bounds(self): bounds = super().bounds() bounds.update(self.__asset_is_switched_on_bounds) - bounds.update(self.__windpark_upper_bounds) + bounds.update(self.__storage_charging_bounds) + bounds.update(self.__electricity_producer_upper_bounds) + bounds.update(self.__set_point_bounds) return bounds @@ -159,14 +187,17 @@ def __state_vector_scaled(self, variable, ensemble_member): self.state_vector(canonical, ensemble_member) * self.variable_nominal(canonical) * sign ) - def __update_windpark_upper_bounds(self): + def __update_electricity_producer_upper_bounds(self): t = self.times() - for wp in self.energy_system_components.get("wind_park", []): + for asset in [ + *self.energy_system_components.get("wind_park", []), + *self.energy_system_components.get("solar_pv", []), + ]: lb = Timeseries(t, np.zeros(len(self.times()))) - ub = self.get_timeseries(f"{wp}.maximum_electricity_source") - self.__windpark_upper_bounds[f"{wp}.Electricity_source"] = (lb, ub) + ub = self.get_timeseries(f"{asset}.maximum_electricity_source") + self.__electricity_producer_upper_bounds[f"{asset}.Electricity_source"] = (lb, ub) - def __wind_park_set_point_constraints(self, ensemble_member): + def __electricity_producer_set_point_constraints(self, ensemble_member): """ This function adds constraints for wind parks which generates electrical power. The produced electrical power is capped with a user specified percentage value of the maximum @@ -174,17 +205,21 @@ def __wind_park_set_point_constraints(self, ensemble_member): """ constraints = [] - for wp in self.energy_system_components.get("wind_park", []): - set_point = self.__state_vector_scaled(f"{wp}.Set_point", ensemble_member) - electricity_source = self.__state_vector_scaled( - f"{wp}.Electricity_source", ensemble_member - ) - # TODO: [: len(self.times())] should be removed once the emerge test is properly - # time-sampled. - max = self.bounds()[f"{wp}.Electricity_source"][1].values[: len(self.times())] - nominal = (self.variable_nominal(f"{wp}.Electricity_source") * np.median(max)) ** 0.5 + for asset in [*self.energy_system_components.get("electricity_source", [])]: + if asset in self.__set_point_map.keys(): + var_name = self.__set_point_map[asset] + set_point = self.__state_vector_scaled(var_name, ensemble_member) + electricity_source = self.__state_vector_scaled( + f"{asset}.Electricity_source", ensemble_member + ) + # TODO: [: len(self.times())] should be removed once the emerge test is properly + # time-sampled. + max = self.bounds()[f"{asset}.Electricity_source"][1].values[: len(self.times())] + nominal = ( + self.variable_nominal(f"{asset}.Electricity_source") * np.median(max) + ) ** 0.5 - constraints.append(((set_point * max - electricity_source) / nominal, 0.0, 0.0)) + constraints.append(((set_point * max - electricity_source) / nominal, 0.0, 0.0)) return constraints @@ -388,6 +423,91 @@ def __electricity_demand_path_constraints(self, ensemble_member): return constraints + def __electricity_storage_path_constraints(self, ensemble_member): + """ + This function adds the constraints for the electricity commodity at the storage assets. + When charging the electricity_storage acts as an electrcicity demand and during discharging + it acts as a electricity producer. The constraints are selected using the bigM method using + the boolean for charging and using a charging efficiency during charging. + """ + constraints = [] + parameters = self.parameters(ensemble_member) + + for asset in [ + *self.energy_system_components.get("electricity_storage", []), + ]: + min_voltage = parameters[f"{asset}.min_voltage"] + voltage = self.state(f"{asset}.ElectricityIn.V") + + # when charging act like a demand, when discharging act like a source + # to ensure that voltage is equal or larger than the minimum voltage + constraints.append(((voltage - min_voltage) / min_voltage, 0.0, np.inf)) + + power_nom = self.variable_nominal(f"{asset}.ElectricityIn.Power") + curr_nom = self.variable_nominal(f"{asset}.ElectricityIn.I") + power_in = self.state(f"{asset}.ElectricityIn.Power") + current_in = self.state(f"{asset}.ElectricityIn.I") + + # is_charging is 1 if charging and powerin>0 + big_m = 2 * max(abs(self.bounds()[f"{asset}.ElectricityIn.Power"])) + is_charging = self.state(f"{asset}__is_charging") + constraints.append(((power_in + (1 - is_charging) * big_m) / power_nom, 0.0, np.inf)) + constraints.append(((power_in - is_charging * big_m) / power_nom, -np.inf, 0.0)) + + constraints.append( + ( + (power_in - min_voltage * current_in + (1 - is_charging) * big_m) + / (power_nom * curr_nom * min_voltage) ** 0.5, + 0, + np.inf, + ) + ) + constraints.append( + ( + (power_in - min_voltage * current_in - (1 - is_charging) * big_m) + / (power_nom * curr_nom * min_voltage) ** 0.5, + -np.inf, + 0, + ) + ) + + # power charging using discharge/charge efficiency, needs boolean + eff_power = self.state(f"{asset}.Effective_power_charging") + discharge_eff = parameters[f"{asset}.discharge_efficiency"] + charge_eff = parameters[f"{asset}.charge_efficiency"] + # charging + constraints.append( + ( + (eff_power - charge_eff * power_in + (1 - is_charging) * big_m) / power_nom, + 0, + np.inf, + ) + ) + constraints.append( + ( + (eff_power - charge_eff * power_in - (1 - is_charging) * big_m) / power_nom, + -np.inf, + 0, + ) + ) + # discharging + constraints.append( + ( + (eff_power - discharge_eff * power_in + is_charging * big_m) / power_nom, + 0, + np.inf, + ) + ) + constraints.append( + ( + (eff_power - discharge_eff * power_in - is_charging * big_m) / power_nom, + -np.inf, + 0, + ) + ) + + return constraints + def __get_electrolyzer_gas_mass_flow_out( self, coef_a, coef_b, coef_c, electrical_power_input ) -> float: @@ -555,6 +675,7 @@ def path_constraints(self, ensemble_member): constraints.extend(self.__electricity_cable_mixing_path_constraints(ensemble_member)) constraints.extend(self.__voltage_loss_path_constraints(ensemble_member)) constraints.extend(self.__electrolyzer_path_constaint(ensemble_member)) + constraints.extend(self.__electricity_storage_path_constraints(ensemble_member)) return constraints @@ -567,7 +688,7 @@ def constraints(self, ensemble_member): """ constraints = super().constraints(ensemble_member) - constraints.extend(self.__wind_park_set_point_constraints(ensemble_member)) + constraints.extend(self.__electricity_producer_set_point_constraints(ensemble_member)) return constraints diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index 4ebfb05e5..4e9b11273 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -73,11 +73,12 @@ class _AssetToComponentBase: # A map of the esdl assets to the asset types in pycml component_map = { "ATES": "ates", + "Battery": "electricity_storage", + "Bus": "electricity_node", "ElectricityCable": "electricity_cable", "ElectricityDemand": "electricity_demand", "ElectricityProducer": "electricity_source", "Electrolyzer": "electrolyzer", - "Bus": "electricity_node", "GenericConsumer": "heat_demand", "CoolingDemand": "cold_demand", "HeatExchange": "heat_exchanger", @@ -97,6 +98,7 @@ class _AssetToComponentBase: "Joint": "node", "Pipe": "heat_pipe", "Pump": "pump", + "PVInstallation": "electricity_source", "HeatStorage": "heat_buffer", "Sensor": "skip", "Valve": "control_valve", diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 6d26d3295..8bb51ed07 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -20,6 +20,7 @@ ElectricityDemand, ElectricityNode, ElectricitySource, + ElectricityStorage, Electrolyzer, GasDemand, GasNode, @@ -38,6 +39,7 @@ LowTemperatureATES, Node, Pump, + SolarPV, WindPark, ) @@ -1151,7 +1153,7 @@ def convert_electricity_source(self, asset: Asset) -> Tuple[Type[ElectricitySour ------- ElectricitySource class with modifiers """ - assert asset.asset_type in {"ElectricityProducer", "WindPark"} + assert asset.asset_type in {"ElectricityProducer", "WindPark", "PVInstallation"} max_supply = asset.attributes.get( "power", math.inf @@ -1174,6 +1176,51 @@ def convert_electricity_source(self, asset: Asset) -> Tuple[Type[ElectricitySour return ElectricitySource, modifiers if asset.asset_type == "WindPark": return WindPark, modifiers + if asset.asset_type == "PVInstallation": + return SolarPV, modifiers + + def convert_electricity_storage( + self, asset: Asset + ) -> Tuple[Type[ElectricityStorage], MODIFIERS]: + """ + This function converts the ElectricityStorage object in esdl to a set of modifiers that can + be used in a pycml object. Most important: + + - Setting the electrical power caps + + Parameters + ---------- + asset : The asset object with its properties. + + Returns + ------- + ElectricityStorage class with modifiers + """ + assert asset.asset_type in {"Battery"} + + max_capacity = asset.attributes.get("capacity") + i_max, i_nom = self._get_connected_i_nominal_and_max(asset) + v_min = asset.in_ports[0].carrier.voltage + max_charge = asset.attributes.get("maxChargeRate", max_capacity / 3600) + max_discharge = asset.attributes.get("maxDischargeRate", max_capacity / 3600) + discharge_efficiency = asset.attributes.get("dischargeEfficiency", 1) + charge_efficiency = asset.attributes.get("chargeEfficiency", 1) + + modifiers = dict( + charge_efficiency=charge_efficiency, + discharge_efficiency=discharge_efficiency, + min_voltage=v_min, + max_capacity=max_capacity, + Stored_electricity=dict(min=0.0, max=max_capacity), + ElectricityIn=dict( + V=dict(min=v_min, nominal=v_min), + I=dict(min=-i_max, max=i_max, nominal=i_nom), + Power=dict(min=-max_discharge, max=max_charge, nominal=max_charge / 2.0), + ), + **self._get_cost_figure_modifiers(asset), + ) + + return ElectricityStorage, modifiers def convert_electricity_node(self, asset: Asset) -> Tuple[Type[ElectricityNode], MODIFIERS]: """ diff --git a/src/mesido/financial_mixin.py b/src/mesido/financial_mixin.py index 3464f4758..9cff93123 100644 --- a/src/mesido/financial_mixin.py +++ b/src/mesido/financial_mixin.py @@ -172,12 +172,16 @@ def pre(self): elif asset_name in [*self.energy_system_components.get("electricity_source", [])]: max_power = ( bounds[f"{asset_name}.ElectricityOut.Power"][1] - if isinstance(bounds[f"{asset_name}.ElectricityOut.Power"][1], float) + if (isinstance(bounds[f"{asset_name}.ElectricityOut.Power"][1], float)) else max(bounds[f"{asset_name}.ElectricityOut.Power"][1].values) ) nominal_fixed_operational = max_power nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational + elif asset_name in [*self.energy_system_components.get("electricity_storage", [])]: + nominal_fixed_operational = bounds[f"{asset_name}.Stored_electricity"][1] + nominal_variable_operational = nominal_fixed_operational + nominal_investment = nominal_fixed_operational else: logger.warning( f"Asset {asset_name} has type for which " diff --git a/src/mesido/pycml/component_library/milp/__init__.py b/src/mesido/pycml/component_library/milp/__init__.py index 8e58b9ed4..30dfa8a55 100644 --- a/src/mesido/pycml/component_library/milp/__init__.py +++ b/src/mesido/pycml/component_library/milp/__init__.py @@ -2,7 +2,9 @@ from .electricity.electricity_demand import ElectricityDemand from .electricity.electricity_node import ElectricityNode from .electricity.electricity_source import ElectricitySource +from .electricity.electricity_storage import ElectricityStorage from .electricity.heat_pump_elec import HeatPumpElec +from .electricity.solarpv import SolarPV from .electricity.windpark import WindPark from .gas.gas_demand import GasDemand from .gas.gas_node import GasNode @@ -42,6 +44,7 @@ "ElectricityDemand", "ElectricityNode", "ElectricitySource", + "ElectricityStorage", "Electrolyzer", "GasDemand", "GasNode", @@ -61,5 +64,6 @@ "Node", "Pump", "HeatSource", + "SolarPV", "WindPark", ] diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_storage.py b/src/mesido/pycml/component_library/milp/electricity/electricity_storage.py new file mode 100644 index 000000000..f18c39da8 --- /dev/null +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_storage.py @@ -0,0 +1,47 @@ +from mesido.pycml import Variable + +from numpy import nan + +from .electricity_base import ElectricityPort +from .._internal import BaseAsset +from .._internal.electricity_component import ElectricityComponent + + +class ElectricityStorage(ElectricityComponent, BaseAsset): + """ + The electricity storage component is used to store electrical power of a network. + The change in stored electrical power should be equal to the electricity entering and leaving + the component multiplied with its efficiency + """ + + def __init__(self, name, **modifiers): + super().__init__(name, **modifiers) + + self.component_type = "electricity_storage" + + self.max_capacity = nan + self.min_voltage = nan + self.charge_efficiency = 1.0 + self.discharge_efficiency = 1.0 + + self.add_variable(ElectricityPort, "ElectricityIn") + + self._typical_fill_time = 3600.0 + self._nominal_stored_electricity = self.ElectricityIn.Power.max * self._typical_fill_time + self.add_variable( + Variable, + "Stored_electricity", + min=0.0, + max=self.max_capacity, + nominal=self._nominal_stored_electricity, + ) + self.add_variable( + Variable, "Effective_power_charging", nominal=self.ElectricityIn.Power.nominal + ) + + self.add_equation( + ( + (self.der(self.Stored_electricity) - self.Effective_power_charging) + / self.ElectricityIn.Power.nominal + ) + ) diff --git a/src/mesido/pycml/component_library/milp/electricity/solarpv.py b/src/mesido/pycml/component_library/milp/electricity/solarpv.py new file mode 100644 index 000000000..9e889207f --- /dev/null +++ b/src/mesido/pycml/component_library/milp/electricity/solarpv.py @@ -0,0 +1,8 @@ +from .. import ElectricitySource + + +class SolarPV(ElectricitySource): + def __init__(self, name, **modifiers): + super().__init__(name, **modifiers) + + self.component_subtype = "solar_pv" diff --git a/src/mesido/pycml/component_library/milp/electricity/windpark.py b/src/mesido/pycml/component_library/milp/electricity/windpark.py index 391121651..1aab2f9d4 100644 --- a/src/mesido/pycml/component_library/milp/electricity/windpark.py +++ b/src/mesido/pycml/component_library/milp/electricity/windpark.py @@ -1,5 +1,3 @@ -from mesido.pycml import Variable - from .. import ElectricitySource @@ -8,5 +6,3 @@ def __init__(self, name, **modifiers): super().__init__(name, **modifiers) self.component_subtype = "wind_park" - - self.add_variable(Variable, "Set_point", min=0.0, max=1.0) diff --git a/tests/models/emerge/input/timeseries_with_PV.csv b/tests/models/emerge/input/timeseries_with_PV.csv index e2802377a..478fd3bb9 100644 --- a/tests/models/emerge/input/timeseries_with_PV.csv +++ b/tests/models/emerge/input/timeseries_with_PV.csv @@ -1,4 +1,4 @@ -DateTime,WindPark_9074,Elec,Hydrogen,PVInstallation_a3eb +DateTime,PVInstallation_2bcf,Elec,Hydrogen,PVInstallation_2bcf_unused 2016-01-01Z 00:00:00,0,2.24E-05,2.4,0 2016-01-01Z 01:00:00,0,2.06E-05,2.4,0 2016-01-01Z 02:00:00,0,1.68E-05,2.4,0 diff --git a/tests/models/emerge/model/emerge.esdl b/tests/models/emerge/model/emerge.esdl index c3875acf0..db56768a8 100644 --- a/tests/models/emerge/model/emerge.esdl +++ b/tests/models/emerge/model/emerge.esdl @@ -1,14 +1,19 @@ - + - + - + + + + + + @@ -24,15 +29,30 @@ + + + + + + + + + + + + + + + diff --git a/tests/models/emerge/model/emerge_solar.esdl b/tests/models/emerge/model/emerge_solar.esdl new file mode 100644 index 000000000..a48cb4640 --- /dev/null +++ b/tests/models/emerge/model/emerge_solar.esdl @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/emerge/model/emerge_solar_battery.esdl b/tests/models/emerge/model/emerge_solar_battery.esdl new file mode 100644 index 000000000..8a3083189 --- /dev/null +++ b/tests/models/emerge/model/emerge_solar_battery.esdl @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/emerge/output/aliases.json b/tests/models/emerge/output/aliases.json new file mode 100644 index 000000000..78a5680df --- /dev/null +++ b/tests/models/emerge/output/aliases.json @@ -0,0 +1 @@ +{"Bus_24cf.V": ["ElectricityCable_91e7.ElectricityIn.V", 1], "-Bus_24cf.V": ["ElectricityCable_91e7.ElectricityIn.V", -1], "Bus_24cf.ElectricityConn[1].V": ["ElectricityCable_91e7.ElectricityIn.V", 1], "-Bus_24cf.ElectricityConn[1].V": ["ElectricityCable_91e7.ElectricityIn.V", -1], "Bus_24cf.ElectricityConn[2].V": ["ElectricityCable_91e7.ElectricityIn.V", 1], "-Bus_24cf.ElectricityConn[2].V": ["ElectricityCable_91e7.ElectricityIn.V", -1], "Bus_24cf.ElectricityConn[3].V": ["ElectricityCable_91e7.ElectricityIn.V", 1], "-Bus_24cf.ElectricityConn[3].V": ["ElectricityCable_91e7.ElectricityIn.V", -1], "ElectricityCable_80a3.ElectricityIn.I": ["ElectricityCable_80a3.I", 1], "-ElectricityCable_80a3.ElectricityIn.I": ["ElectricityCable_80a3.I", -1], "ElectricityCable_80a3.ElectricityOut.I": ["ElectricityCable_80a3.I", 1], "-ElectricityCable_80a3.ElectricityOut.I": ["ElectricityCable_80a3.I", -1], "ElectricityCable_80a3.I": ["ElectricityCable_80a3.I", 1], "-ElectricityCable_80a3.I": ["ElectricityCable_80a3.I", -1], "ElectricityCable_e388.ElectricityOut.I": ["ElectricityCable_e388.I", 1], "-ElectricityCable_e388.ElectricityOut.I": ["ElectricityCable_e388.I", -1], "ElectricityCable_e388.ElectricityIn.I": ["ElectricityCable_e388.I", 1], "-ElectricityCable_e388.ElectricityIn.I": ["ElectricityCable_e388.I", -1], "ElectricityCable_e388.I": ["ElectricityCable_e388.I", 1], "-ElectricityCable_e388.I": ["ElectricityCable_e388.I", -1], "ElectricityCable_91e7.ElectricityOut.I": ["ElectricityCable_91e7.I", 1], "-ElectricityCable_91e7.ElectricityOut.I": ["ElectricityCable_91e7.I", -1], "ElectricityCable_91e7.ElectricityIn.I": ["ElectricityCable_91e7.I", 1], "-ElectricityCable_91e7.ElectricityIn.I": ["ElectricityCable_91e7.I", -1], "ElectricityCable_91e7.I": ["ElectricityCable_91e7.I", 1], "-ElectricityCable_91e7.I": ["ElectricityCable_91e7.I", -1], "Joint_2503.H": ["Pipe_910d.GasIn.H", 1], "-Joint_2503.H": ["Pipe_910d.GasIn.H", -1], "Joint_2503.GasConn[1].H": ["Pipe_910d.GasIn.H", 1], "-Joint_2503.GasConn[1].H": ["Pipe_910d.GasIn.H", -1], "Joint_2503.GasConn[2].H": ["Pipe_910d.GasIn.H", 1], "-Joint_2503.GasConn[2].H": ["Pipe_910d.GasIn.H", -1], "Joint_2503.GasConn[3].H": ["Pipe_910d.GasIn.H", 1], "-Joint_2503.GasConn[3].H": ["Pipe_910d.GasIn.H", -1], "Pipe_ec1a.GasOut.Q": ["Pipe_ec1a.GasOut.Q", 1], "-Pipe_ec1a.GasOut.Q": ["Pipe_ec1a.GasOut.Q", -1], "Pipe_ec1a.GasIn.Q": ["Pipe_ec1a.GasOut.Q", 1], "-Pipe_ec1a.GasIn.Q": ["Pipe_ec1a.GasOut.Q", -1], "Pipe_ec1a.Q": ["Pipe_ec1a.GasOut.Q", 1], "-Pipe_ec1a.Q": ["Pipe_ec1a.GasOut.Q", -1], "Pipe_ec1a.GasIn.mass_flow": ["Pipe_ec1a.GasOut.mass_flow", 1], "-Pipe_ec1a.GasIn.mass_flow": ["Pipe_ec1a.GasOut.mass_flow", -1], "Pipe_ec1a.GasOut.mass_flow": ["Pipe_ec1a.GasOut.mass_flow", 1], "-Pipe_ec1a.GasOut.mass_flow": ["Pipe_ec1a.GasOut.mass_flow", -1], "Pipe_97ee.GasOut.Q": ["Pipe_97ee.GasOut.Q", 1], "-Pipe_97ee.GasOut.Q": ["Pipe_97ee.GasOut.Q", -1], "Pipe_97ee.GasIn.Q": ["Pipe_97ee.GasOut.Q", 1], "-Pipe_97ee.GasIn.Q": ["Pipe_97ee.GasOut.Q", -1], "Pipe_97ee.Q": ["Pipe_97ee.GasOut.Q", 1], "-Pipe_97ee.Q": ["Pipe_97ee.GasOut.Q", -1], "Pipe_97ee.GasOut.mass_flow": ["Pipe_97ee.GasOut.mass_flow", 1], "-Pipe_97ee.GasOut.mass_flow": ["Pipe_97ee.GasOut.mass_flow", -1], "Pipe_97ee.GasIn.mass_flow": ["Pipe_97ee.GasOut.mass_flow", 1], "-Pipe_97ee.GasIn.mass_flow": ["Pipe_97ee.GasOut.mass_flow", -1], "Pipe_910d.GasOut.Q": ["Pipe_910d.GasOut.Q", 1], "-Pipe_910d.GasOut.Q": ["Pipe_910d.GasOut.Q", -1], "Pipe_910d.GasIn.Q": ["Pipe_910d.GasOut.Q", 1], "-Pipe_910d.GasIn.Q": ["Pipe_910d.GasOut.Q", -1], "Pipe_910d.Q": ["Pipe_910d.GasOut.Q", 1], "-Pipe_910d.Q": ["Pipe_910d.GasOut.Q", -1], "Pipe_910d.GasIn.mass_flow": ["Pipe_910d.GasOut.mass_flow", 1], "-Pipe_910d.GasIn.mass_flow": ["Pipe_910d.GasOut.mass_flow", -1], "Pipe_910d.GasOut.mass_flow": ["Pipe_910d.GasOut.mass_flow", 1], "-Pipe_910d.GasOut.mass_flow": ["Pipe_910d.GasOut.mass_flow", -1], "WindPark_9074.ElectricityOut.Power": ["ElectricityCable_80a3.ElectricityIn.Power", 1], "-WindPark_9074.ElectricityOut.Power": ["ElectricityCable_80a3.ElectricityIn.Power", -1], "WindPark_9074.Electricity_source": ["ElectricityCable_80a3.ElectricityIn.Power", 1], "-WindPark_9074.Electricity_source": ["ElectricityCable_80a3.ElectricityIn.Power", -1], "ElectricityDemand_f833.ElectricityIn.Power": ["ElectricityCable_e388.ElectricityOut.Power", 1], "-ElectricityDemand_f833.ElectricityIn.Power": ["ElectricityCable_e388.ElectricityOut.Power", -1], "ElectricityDemand_f833.Electricity_demand": ["ElectricityCable_e388.ElectricityOut.Power", 1], "-ElectricityDemand_f833.Electricity_demand": ["ElectricityCable_e388.ElectricityOut.Power", -1], "Electrolyzer_6327.Power_consumed": ["ElectricityCable_91e7.ElectricityOut.Power", 1], "-Electrolyzer_6327.Power_consumed": ["ElectricityCable_91e7.ElectricityOut.Power", -1], "Electrolyzer_6327.ElectricityIn.Power": ["ElectricityCable_91e7.ElectricityOut.Power", 1], "-Electrolyzer_6327.ElectricityIn.Power": ["ElectricityCable_91e7.ElectricityOut.Power", -1], "Electrolyzer_6327.GasOut.mass_flow": ["Pipe_ec1a.GasOut.mass_flow", 1], "-Electrolyzer_6327.GasOut.mass_flow": ["Pipe_ec1a.GasOut.mass_flow", -1], "Electrolyzer_6327.Gas_mass_flow_out": ["Pipe_ec1a.GasOut.mass_flow", 1], "-Electrolyzer_6327.Gas_mass_flow_out": ["Pipe_ec1a.GasOut.mass_flow", -1], "GasDemand_4146.Gas_demand_mass_flow": ["Pipe_910d.GasOut.mass_flow", 1], "-GasDemand_4146.Gas_demand_mass_flow": ["Pipe_910d.GasOut.mass_flow", -1], "GasDemand_4146.GasIn.mass_flow": ["Pipe_910d.GasOut.mass_flow", 1], "-GasDemand_4146.GasIn.mass_flow": ["Pipe_910d.GasOut.mass_flow", -1], "GasStorage_9172.Gas_tank_flow": ["Pipe_97ee.GasOut.mass_flow", 1], "-GasStorage_9172.Gas_tank_flow": ["Pipe_97ee.GasOut.mass_flow", -1], "GasStorage_9172.GasIn.mass_flow": ["Pipe_97ee.GasOut.mass_flow", 1], "-GasStorage_9172.GasIn.mass_flow": ["Pipe_97ee.GasOut.mass_flow", -1], "Bus_24cf.ElectricityConn[1].Power": ["ElectricityCable_80a3.ElectricityOut.Power", 1], "-Bus_24cf.ElectricityConn[1].Power": ["ElectricityCable_80a3.ElectricityOut.Power", -1], "ElectricityCable_80a3.ElectricityOut.Power": ["ElectricityCable_80a3.ElectricityOut.Power", 1], "-ElectricityCable_80a3.ElectricityOut.Power": ["ElectricityCable_80a3.ElectricityOut.Power", -1], "ElectricityCable_80a3.ElectricityOut.V": ["ElectricityCable_91e7.ElectricityIn.V", 1], "-ElectricityCable_80a3.ElectricityOut.V": ["ElectricityCable_91e7.ElectricityIn.V", -1], "Bus_24cf.ElectricityConn[1].I": ["ElectricityCable_80a3.I", 1], "-Bus_24cf.ElectricityConn[1].I": ["ElectricityCable_80a3.I", -1], "ElectricityCable_e388.ElectricityIn.Power": ["ElectricityCable_e388.ElectricityIn.Power", 1], "-ElectricityCable_e388.ElectricityIn.Power": ["ElectricityCable_e388.ElectricityIn.Power", -1], "Bus_24cf.ElectricityConn[2].Power": ["ElectricityCable_e388.ElectricityIn.Power", 1], "-Bus_24cf.ElectricityConn[2].Power": ["ElectricityCable_e388.ElectricityIn.Power", -1], "ElectricityCable_e388.ElectricityIn.V": ["ElectricityCable_91e7.ElectricityIn.V", 1], "-ElectricityCable_e388.ElectricityIn.V": ["ElectricityCable_91e7.ElectricityIn.V", -1], "Bus_24cf.ElectricityConn[2].I": ["ElectricityCable_e388.I", 1], "-Bus_24cf.ElectricityConn[2].I": ["ElectricityCable_e388.I", -1], "ElectricityCable_91e7.ElectricityIn.Power": ["ElectricityCable_91e7.ElectricityIn.Power", 1], "-ElectricityCable_91e7.ElectricityIn.Power": ["ElectricityCable_91e7.ElectricityIn.Power", -1], "Bus_24cf.ElectricityConn[3].Power": ["ElectricityCable_91e7.ElectricityIn.Power", 1], "-Bus_24cf.ElectricityConn[3].Power": ["ElectricityCable_91e7.ElectricityIn.Power", -1], "ElectricityCable_91e7.ElectricityIn.V": ["ElectricityCable_91e7.ElectricityIn.V", 1], "-ElectricityCable_91e7.ElectricityIn.V": ["ElectricityCable_91e7.ElectricityIn.V", -1], "Bus_24cf.ElectricityConn[3].I": ["ElectricityCable_91e7.I", 1], "-Bus_24cf.ElectricityConn[3].I": ["ElectricityCable_91e7.I", -1], "Joint_2503.GasConn[1].Q": ["Pipe_ec1a.GasOut.Q", 1], "-Joint_2503.GasConn[1].Q": ["Pipe_ec1a.GasOut.Q", -1], "Pipe_ec1a.GasOut.Q_shadow": ["Pipe_ec1a.GasOut.Q_shadow", 1], "-Pipe_ec1a.GasOut.Q_shadow": ["Pipe_ec1a.GasOut.Q_shadow", -1], "Joint_2503.GasConn[1].Q_shadow": ["Pipe_ec1a.GasOut.Q_shadow", 1], "-Joint_2503.GasConn[1].Q_shadow": ["Pipe_ec1a.GasOut.Q_shadow", -1], "Joint_2503.GasConn[1].mass_flow": ["Pipe_ec1a.GasOut.mass_flow", 1], "-Joint_2503.GasConn[1].mass_flow": ["Pipe_ec1a.GasOut.mass_flow", -1], "Pipe_ec1a.GasOut.H": ["Pipe_910d.GasIn.H", 1], "-Pipe_ec1a.GasOut.H": ["Pipe_910d.GasIn.H", -1], "Joint_2503.GasConn[2].Q": ["Pipe_97ee.GasOut.Q", 1], "-Joint_2503.GasConn[2].Q": ["Pipe_97ee.GasOut.Q", -1], "Pipe_97ee.GasIn.Q_shadow": ["Pipe_97ee.GasIn.Q_shadow", 1], "-Pipe_97ee.GasIn.Q_shadow": ["Pipe_97ee.GasIn.Q_shadow", -1], "Joint_2503.GasConn[2].Q_shadow": ["Pipe_97ee.GasIn.Q_shadow", 1], "-Joint_2503.GasConn[2].Q_shadow": ["Pipe_97ee.GasIn.Q_shadow", -1], "Joint_2503.GasConn[2].mass_flow": ["Pipe_97ee.GasOut.mass_flow", 1], "-Joint_2503.GasConn[2].mass_flow": ["Pipe_97ee.GasOut.mass_flow", -1], "Pipe_97ee.GasIn.H": ["Pipe_910d.GasIn.H", 1], "-Pipe_97ee.GasIn.H": ["Pipe_910d.GasIn.H", -1], "Joint_2503.GasConn[3].Q": ["Pipe_910d.GasOut.Q", 1], "-Joint_2503.GasConn[3].Q": ["Pipe_910d.GasOut.Q", -1], "Joint_2503.GasConn[3].Q_shadow": ["Pipe_910d.GasIn.Q_shadow", 1], "-Joint_2503.GasConn[3].Q_shadow": ["Pipe_910d.GasIn.Q_shadow", -1], "Pipe_910d.GasIn.Q_shadow": ["Pipe_910d.GasIn.Q_shadow", 1], "-Pipe_910d.GasIn.Q_shadow": ["Pipe_910d.GasIn.Q_shadow", -1], "Joint_2503.GasConn[3].mass_flow": ["Pipe_910d.GasOut.mass_flow", 1], "-Joint_2503.GasConn[3].mass_flow": ["Pipe_910d.GasOut.mass_flow", -1], "Pipe_910d.GasIn.H": ["Pipe_910d.GasIn.H", 1], "-Pipe_910d.GasIn.H": ["Pipe_910d.GasIn.H", -1], "ElectricityCable_80a3.ElectricityIn.Power": ["ElectricityCable_80a3.ElectricityIn.Power", 1], "-ElectricityCable_80a3.ElectricityIn.Power": ["ElectricityCable_80a3.ElectricityIn.Power", -1], "ElectricityCable_80a3.ElectricityIn.V": ["ElectricityCable_80a3.ElectricityIn.V", 1], "-ElectricityCable_80a3.ElectricityIn.V": ["ElectricityCable_80a3.ElectricityIn.V", -1], "WindPark_9074.ElectricityOut.V": ["ElectricityCable_80a3.ElectricityIn.V", 1], "-WindPark_9074.ElectricityOut.V": ["ElectricityCable_80a3.ElectricityIn.V", -1], "WindPark_9074.ElectricityOut.I": ["ElectricityCable_80a3.I", 1], "-WindPark_9074.ElectricityOut.I": ["ElectricityCable_80a3.I", -1], "ElectricityCable_e388.ElectricityOut.Power": ["ElectricityCable_e388.ElectricityOut.Power", 1], "-ElectricityCable_e388.ElectricityOut.Power": ["ElectricityCable_e388.ElectricityOut.Power", -1], "ElectricityDemand_f833.ElectricityIn.V": ["ElectricityCable_e388.ElectricityOut.V", 1], "-ElectricityDemand_f833.ElectricityIn.V": ["ElectricityCable_e388.ElectricityOut.V", -1], "ElectricityCable_e388.ElectricityOut.V": ["ElectricityCable_e388.ElectricityOut.V", 1], "-ElectricityCable_e388.ElectricityOut.V": ["ElectricityCable_e388.ElectricityOut.V", -1], "ElectricityDemand_f833.ElectricityIn.I": ["ElectricityCable_e388.I", 1], "-ElectricityDemand_f833.ElectricityIn.I": ["ElectricityCable_e388.I", -1], "ElectricityCable_91e7.ElectricityOut.Power": ["ElectricityCable_91e7.ElectricityOut.Power", 1], "-ElectricityCable_91e7.ElectricityOut.Power": ["ElectricityCable_91e7.ElectricityOut.Power", -1], "Electrolyzer_6327.ElectricityIn.V": ["ElectricityCable_91e7.ElectricityOut.V", 1], "-Electrolyzer_6327.ElectricityIn.V": ["ElectricityCable_91e7.ElectricityOut.V", -1], "ElectricityCable_91e7.ElectricityOut.V": ["ElectricityCable_91e7.ElectricityOut.V", 1], "-ElectricityCable_91e7.ElectricityOut.V": ["ElectricityCable_91e7.ElectricityOut.V", -1], "Electrolyzer_6327.ElectricityIn.I": ["ElectricityCable_91e7.I", 1], "-Electrolyzer_6327.ElectricityIn.I": ["ElectricityCable_91e7.I", -1], "Electrolyzer_6327.GasOut.Q": ["Pipe_ec1a.GasOut.Q", 1], "-Electrolyzer_6327.GasOut.Q": ["Pipe_ec1a.GasOut.Q", -1], "Electrolyzer_6327.GasOut.Q_shadow": ["Pipe_ec1a.GasIn.Q_shadow", 1], "-Electrolyzer_6327.GasOut.Q_shadow": ["Pipe_ec1a.GasIn.Q_shadow", -1], "Pipe_ec1a.GasIn.Q_shadow": ["Pipe_ec1a.GasIn.Q_shadow", 1], "-Pipe_ec1a.GasIn.Q_shadow": ["Pipe_ec1a.GasIn.Q_shadow", -1], "Electrolyzer_6327.GasOut.H": ["Pipe_ec1a.GasIn.H", 1], "-Electrolyzer_6327.GasOut.H": ["Pipe_ec1a.GasIn.H", -1], "Pipe_ec1a.GasIn.H": ["Pipe_ec1a.GasIn.H", 1], "-Pipe_ec1a.GasIn.H": ["Pipe_ec1a.GasIn.H", -1], "GasDemand_4146.GasIn.Q": ["Pipe_910d.GasOut.Q", 1], "-GasDemand_4146.GasIn.Q": ["Pipe_910d.GasOut.Q", -1], "Pipe_910d.GasOut.Q_shadow": ["Pipe_910d.GasOut.Q_shadow", 1], "-Pipe_910d.GasOut.Q_shadow": ["Pipe_910d.GasOut.Q_shadow", -1], "GasDemand_4146.GasIn.Q_shadow": ["Pipe_910d.GasOut.Q_shadow", 1], "-GasDemand_4146.GasIn.Q_shadow": ["Pipe_910d.GasOut.Q_shadow", -1], "GasDemand_4146.GasIn.H": ["Pipe_910d.GasOut.H", 1], "-GasDemand_4146.GasIn.H": ["Pipe_910d.GasOut.H", -1], "Pipe_910d.GasOut.H": ["Pipe_910d.GasOut.H", 1], "-Pipe_910d.GasOut.H": ["Pipe_910d.GasOut.H", -1], "GasStorage_9172.GasIn.Q": ["Pipe_97ee.GasOut.Q", 1], "-GasStorage_9172.GasIn.Q": ["Pipe_97ee.GasOut.Q", -1], "GasStorage_9172.GasIn.Q_shadow": ["Pipe_97ee.GasOut.Q_shadow", 1], "-GasStorage_9172.GasIn.Q_shadow": ["Pipe_97ee.GasOut.Q_shadow", -1], "Pipe_97ee.GasOut.Q_shadow": ["Pipe_97ee.GasOut.Q_shadow", 1], "-Pipe_97ee.GasOut.Q_shadow": ["Pipe_97ee.GasOut.Q_shadow", -1], "Pipe_97ee.GasOut.H": ["Pipe_97ee.GasOut.H", 1], "-Pipe_97ee.GasOut.H": ["Pipe_97ee.GasOut.H", -1], "GasStorage_9172.GasIn.H": ["Pipe_97ee.GasOut.H", 1], "-GasStorage_9172.GasIn.H": ["Pipe_97ee.GasOut.H", -1]} \ No newline at end of file diff --git a/tests/models/emerge/output/bounds.json b/tests/models/emerge/output/bounds.json new file mode 100644 index 000000000..f03ce2008 --- /dev/null +++ b/tests/models/emerge/output/bounds.json @@ -0,0 +1 @@ +{"GasStorage_9172.Stored_gas_mass": [0.0, 23715000.0], "ElectricityCable_80a3.ElectricityIn.Power": [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999997849.6, 1999999562.2, 0.0, 0.0, 1999995228.8, 1999995622.6, 1997697985.6, 1658513101.4, 1317659536.0, 618343094.1999999, 1199762886.2, 771068238.2, 1001978579.6, 1132050786.8, 1293624672.0, 1720023264.4, 1814015745.6, 1836244191.8, 1986853387.6, 1999994377.0, 1999819409.8, 0.0, 0.0, 0.0, 0.0, 0.0, 1999856533.4, 1989108620.8, 1963930631.0, 1906707569.8, 1979839236.4, 1998200201.6, 1997506292.2, 1995236395.0, 1997595394.0, 1995743804.0, 1982203842.2, 1997779209.2, 1991235483.2, 1997601974.2, 1998521256.4, 1827291885.6, 1803970330.8, 1963763857.2, 1945346423.2, 1961935447.8, 1989302150.8, 0.0, 0.0, 0.0, 1999985873.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 1999992628.6, 1982409114.6, 1464380387.4, 1125610042.2, 1291247028.8, 1543705874.4, 1302267231.6, 1460829383.6, 1244951100.8, 1197067439.8, 1085463510.0, 899619031.4000001, 652652421.1999999, 500254786.4, 449029372.8, 392993826.0, 333058671.4, 378575680.0, 281810107.8, 194213208.28, 75397414.7, 72578239.2, 32057778.24, 89315181.38, 170572146.04, 1199639073.4, 1039051392.6, 853904351.5999999, 1045285144.4, 881266975.4, 828906645.8000001, 981357009.4, 815516094.8, 938083777.0, 1052651341.8, 1405831547.0, 1575827245.6, 1733303981.4, 1773736296.4, 1815602432.6, 1962330413.0, 1923728781.2, 1990043533.0, 1998601634.6, 1999525019.2, 0.0, 0.0, 1999997974.4, 0.0, 0.0, 0.0, 1999997564.2, 1999191657.8, 1933889500.0, 1449724708.2, 1092481081.0, 400409079.6, 397650886.4, 761239612.6, 1073982220.4, 1012472141.8, 709037988.2, 1109660128.8, 1565467023.4, 1806649162.8, 1823547902.0, 1819710203.0, 1669965959.4, 1795515267.8, 1852563738.8, 1902031313.0, 1859229881.2, 1683095142.4, 1556002024.0, 1273511738.0, 908477192.4, 758024879.2, 514686010.8, 302703493.0, 159956995.24, 189093623.24, 214608286.2, 242907569.4, 77082630.86, 5306213.859999999, 29662899.48, 8545842.5, 1267924.7799999998, 5483542.04, 0.0, 21343625.02, 179975637.76, 33355836.12, 316485714.40000004, 439339114.2, 504993141.0, 742243576.8, 1080925487.0, 1223363979.2, 1091154593.4, 1266942150.2, 1480981585.0, 1906968498.0, 1930576036.8, 1983044481.0, 1998682482.2, 1972065603.6, 1997739582.0, 1999994935.2, 1998628469.4, 1999993951.2, 1998717274.2, 0.0, 1999998532.0, 0.0, 0.0, 1999996105.2, 1999999389.8, 0.0, 0.0, 0.0, 0.0, 771017517.0, 307126734.0, 317881930.6, 562775717.1999999, 437779333.8, 303520107.40000004, 487651554.2, 428981111.0, 710253395.6, 600066280.6, 1263028283.6, 1126506820.2, 1047758428.8, 593830681.0, 805208953.4, 986457334.8, 1045043787.4, 1333432893.8, 1374912014.4, 1519797917.8, 1598073151.4, 1970791915.8, 1961335759.2, 1998065600.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 1999941292.8, 1999995145.2, 1997602493.0, 1459417983.2, 614204374.8, 251974486.2, 64798963.78, 6546025.08, 59077947.42, 658048175.6, 723685295.8, 433898153.2, 1746564712.0, 1928986605.8, 1970783261.4, 0.0, 982959573.4, 0.0, 1415922600.2, 1999996668.0, 1988521006.2, 1923799465.4, 1991666740.0, 1996045677.4, 1999997236.0, 0.0, 1997951628.6, 0.0, 9850248.2, 321675591.6, 0.0, 1991721185.2, 1991553779.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1997606629.6, 1981332459.8, 841426245.4, 1833004928.8, 1999998463.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999995432.0, 0.0, 0.0, 1998837441.2, 1992974482.6, 1976381768.0, 1926727138.6, 1723613683.2, 1480231250.2, 1140522170.8, 777060007.4, 665894306.4, 541514850.6, 496378942.0, 479693967.4, 431704942.8, 338947367.4, 374311640.2, 370847193.4, 472078890.0, 480483447.0, 701242395.6, 148211366.36, 181024218.66, 768458297.1999999, 757403327.6, 283227273.4, 227851066.0, 357956173.4, 151020023.1, 54734456.88, 44946105.78, 26333982.5, 13584981.96, 23132612.42, 40377561.64, 33438740.5, 27991158.7, 31499873.38, 13323417.56, 22694301.76, 2662589.8, 2022687.78, 9933373.46, 1934924.64, 1759494.8199999998, 1489999.12, 536493.74, 1716381.48, 1963800.92, 20454185.58, 216543.2, 0.0, 64017.72, 0.0, 915004.42, 28638979.86, 98442568.18, 88553568.66, 183720245.24, 205919563.6, 187550163.7, 239130160.0, 155057655.62, 159908351.06, 248245665.6, 304772236.4, 181505691.22, 253833383.8, 248096147.8, 240265214.4, 419665347.4, 444803716.0, 460174359.0, 571351214.6, 622723769.4, 654980303.6, 1011146292.6, 834917687.1999999, 766166666.2, 895180309.4, 889986222.2, 1145034655.6, 1410096621.8, 1096221011.0, 930920404.0, 1248883383.6, 1063798101.6, 745758552.0000001, 666011396.4, 645371705.2, 677092698.0, 646236110.0, 683006527.2, 834584454.2, 813311182.6, 695194781.2, 558599399.2, 542860939.6, 568354059.6, 487556856.4, 364900553.8, 347312609.8, 296276491.0, 418164584.6, 544117449.0, 632934567.6, 558247394.4, 485296816.6, 338178168.99999994, 294131787.2, 211798817.0, 121535984.92, 221871378.0, 158572737.9, 106969608.12, 201996643.2, 118093986.9, 149440850.84, 185787107.56, 148787126.38, 192752972.28, 155184506.18, 152937143.54, 112100880.92, 69502435.3, 54870870.18000001, 46590418.58, 121537919.16, 60494018.72, 5606782.94, 41497209.02, 25205173.48, 5325921.2, 4070560.66, 4736739.1, 3676759.46, 147230017.74, 200132449.0, 78018578.18, 28264979.26, 3206042.72, 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, 4597083.36, 29232274.12, 46126840.400000006, 61433562.34, 223968864.4, 236692980.0, 312262296.0, 454914605.8, 664327814.6, 1038412283.0, 1057112982.2, 1098401500.4, 1046211937.6, 997758183.2, 765879937.8000001, 445866763.6, 291801933.8, 291657322.8, 401022660.6, 240707830.2, 18900895.26, 377300.8, 0.0, 621177.88, 1392063.4600000002, 579763.76, 4672688.58, 1214625.48, 2711510.78, 3945910.7, 1587847.54, 0.0, 15798571.04, 1947667.42, 0.0, 18684782.96, 22934675.96, 68179189.02, 128608713.68, 104053614.92, 114852441.0, 75254200.24, 59877863.78, 114941531.18, 404215125.6, 574871368.4, 884745866.1999999, 758731193.0, 619101003.4, 639839019.8, 669001075.2, 782879640.8, 648623172.4, 519166179.0, 243664925.8, 86992356.8, 43972212.02, 36535165.32, 157565515.5, 188707756.7, 197805218.88, 187696320.22, 99440859.04, 64241546.54, 15188112.86, 13556461.06, 754556.0, 0.0, 0.0, 0.0, 0.0, 53951279.0, 46412831.81999999, 77992491.52, 254857143.6, 225044321.0, 307552610.2, 265000586.8, 196607659.58, 267746805.2, 459888505.0, 444635601.2, 574671364.8, 444467284.8, 438754983.8, 544894637.4, 360116761.4, 343546183.0, 312167950.0, 330051992.0, 292205501.4, 144650706.98, 128542731.62, 171538109.78, 273400505.2, 578630983.0, 502520737.6, 436507481.8, 364678066.6, 265517285.2, 217621973.6, 133094588.02, 197407718.78, 301934454.0, 287599408.4, 454365319.2, 758625940.6, 871519807.6, 1228439540.4, 1798161881.4, 1596035109.1999998, 1488808565.6, 1403571055.0, 1213587248.8, 1124334758.4, 1049719527.0, 756701137.4000001, 1024541332.8, 1243606260.8, 1094802920.0, 1177435376.2, 1645757778.6, 1421069112.8, 1228375156.0, 1431053604.2, 1704882714.8000002, 1803445304.0, 1814456850.0, 1446157727.8, 1376264202.8, 1380860498.6, 919202859.8, 743826140.2, 853392466.8000001, 848756290.0, 1044348035.6, 855751083.8000001, 1432391178.1999998, 1822649389.2, 1787476663.0, 1973419422.6, 1998810987.0, 1993101067.0, 1947139459.0, 1943944488.4, 1952131987.8, 1955510837.8, 1929752359.4, 1781989251.2, 1242519455.8, 1286872467.4, 968513790.6, 660616011.4, 1022050754.2, 1228783049.2, 1423751269.6, 1876575824.0, 1970232361.2, 1932613322.0, 1947739031.2, 1995078739.4, 1984070262.0, 1986016358.0, 1981280617.6, 1938054605.4, 1961848454.0, 1989481976.0, 1986305288.2, 1986739423.2, 1999546279.0, 1999300160.0, 1989013971.6, 1985570343.8, 1999421797.0, 1969131419.8, 1999499242.6, 1999995785.6, 1999995387.2, 1981609810.6, 1999909099.6, 1999993740.0, 1999998503.6, 0.0, 1999995515.2, 1996977985.2, 1952724814.8, 1965974749.2, 1897107951.0, 1939372235.6, 1997706402.0, 1999331304.0, 1998382388.0, 1782485912.9999998, 1984855559.4, 1997306997.8, 1940880213.4, 1587181839.4, 1369579885.1999998, 926075220.2, 971545653.0, 1742768970.8, 1537868004.1999998, 1801746678.4, 1261209144.4, 1624022624.0000002, 1736931766.6, 1689149583.2, 1677465440.1999998, 1132986936.8, 1187725280.6, 1004613660.8, 1117234821.6, 819157895.0, 866612387.2, 856289264.8000001, 756164704.2, 1286527872.0, 1345634981.0, 676434102.8, 896751981.8, 1781215959.2, 1672046537.8, 1802148959.0, 1607657488.0, 1562307297.2, 1320022557.0, 1359780909.0000002, 1269812519.2, 1378348114.6, 1236320069.0, 1386756419.6, 852009091.0, 1444887018.0, 1722051745.2, 1575475729.4, 1831694112.8, 1436554333.4, 829265531.0000001, 867072947.5999999, 874544424.0, 720768085.0, 385263193.2, 299052108.2, 385452244.6, 159474514.92000002, 195565846.64, 272116517.0, 479745676.4, 460017434.8, 439844063.00000006, 490091506.0, 760769428.8000001, 660940613.1999999, 1022194458.4, 1223768925.6, 1255980274.6, 1262368025.4, 1379898132.4, 1702699285.8, 1861855860.6, 1866377028.8, 1997710270.2, 1999993373.6, 1999996231.2, 1998149582.4, 1997442475.6, 1975375247.4, 1973249214.0, 1969123437.8, 1980580584.0, 1999245071.8, 1999995624.8, 1998195280.2, 1980612272.4, 1989677500.0, 1986094075.2, 1981407130.6, 1900148273.8, 1930844426.8, 1878576275.0, 1913132948.4, 1896902262.2, 1376139756.6, 1862811107.2, 1915259567.0, 1836535465.8, 1862315300.0, 1885618960.8, 1925582150.4, 1948665386.2, 1980022537.4, 1998679138.4, 1999996597.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999750573.6, 1998781264.0, 1981657610.6, 1911344605.8, 1917759296.2, 1762537711.4, 1634022413.2, 1694315083.6, 1445015614.8, 1080472837.0, 908448915.2, 1137331307.4, 569742130.4, 384956515.2000001, 984808629.8, 906514066.2, 369871700.8, 234812029.6, 227669594.6, 422320170.4, 681000291.6, 956644920.4, 1333397209.1999998, 1758395298.4, 1832104797.0, 1951101456.8, 1831700078.6, 1938853878.2, 1997700591.6, 1955780772.4, 1915856523.6, 1807015066.4, 1443908046.6, 1525346773.6, 1286061083.2, 1278482405.2, 1005389276.0, 1075231458.8, 274026846.0, 140435318.66, 65908880.76, 0.0, 3627604.0, 50575918.62, 110089348.04, 194225296.14, 294323945.0, 607072763.0, 1246733217.2, 1171303464.8, 1233939331.8, 1338884353.4, 962365433.0, 753913682.0, 507168586.0, 543572392.1999999, 470372593.2, 359441376.0, 388872006.6, 436840369.8, 373281276.8, 298858628.40000004, 298864468.8, 160958521.2, 137842711.48, 186810341.84, 128732862.68, 299447625.0, 351681639.00000006, 369150953.8, 541886380.0, 324287131.6, 150174900.35999998, 61292735.54, 50413426.72, 247431267.8, 218966289.6, 364205167.8, 226706091.2, 258653644.6, 214523651.00000003, 131428932.78, 147591777.8, 266585860.8, 344644097.6, 597425310.8, 1139101689.2, 674752007.2, 1198808745.4, 1322147545.8, 1285925309.6, 1399779567.8, 1871912895.8, 1982570230.2, 1975609625.0, 1999422270.0, 1999411619.4, 1999542362.0, 1999995286.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999999497.0, 1999999267.2, 0.0, 0.0, 1999997937.6, 1999998839.4, 0.0, 0.0, 0.0, 0.0, 0.0, 1999758202.2, 1990058932.4, 1987690648.8, 1992031132.4, 1981030339.0, 1951499933.2, 1958887142.2, 1982275363.8, 1957736442.8, 1936090226.6, 1898785307.4, 1927041764.2, 1792123522.0, 1601441789.8, 1536142062.8, 1479313672.8, 1320064740.6, 1587291119.2, 1782920370.9999998, 1535582328.6, 1491674334.2, 1268863670.2, 1059822061.4, 915940039.8, 1074524501.2, 842231715.8, 786648605.8, 1112997315.4, 1073160760.4, 893860035.8, 931577435.8, 1023443691.4, 1242061037.6, 1462957458.2, 1451823465.0, 1479974778.0000002, 1302352483.8, 1188965465.8, 1235158440.8, 1132552138.6, 1077023126.4, 1332488205.4, 1412134659.2, 1516370555.6, 1806183257.4, 1758063953.2, 1891312974.6, 1927250595.8, 1861168025.8, 1761386911.0, 1821769940.8, 1792358477.0, 1577558576.6, 1504372550.6, 1591208078.8, 1740263734.2, 1938119175.0, 1742616922.0, 1345851290.2, 1408243606.8000002, 1413717849.4, 1208369328.8, 1233205185.4, 1250531681.2, 1098550995.6, 1712653218.0, 1514206200.0000002, 1400977126.0, 1584447185.2, 1731371033.6, 1448615755.2, 1350641469.6, 1485313026.6, 1267205911.2, 1356104652.9999998, 1045116369.8, 1150020422.8, 1206707026.2, 1131308788.4, 1080470782.8, 1223894386.2, 1179817408.6, 942658651.2, 895960319.2, 1595853789.6, 1817676987.6, 1914188739.4, 1974311846.8, 1988490331.6, 1988438555.8, 1998280707.8, 1999964157.2, 0.0, 0.0, 0.0, 0.0, 0.0, 1999981281.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999972107.0, 1999803111.6, 1999657762.8, 1991254935.0, 1999996106.8, 1999537207.4, 1998206959.0, 1997387748.6, 1979456839.4, 1999995952.4, 1999999293.0, 1999998101.8, 0.0, 1998947282.8, 1999169943.2, 1994850739.6, 1989394865.4, 1994013441.0, 1988867287.8, 1995287462.2, 1999209714.4, 1999756667.6, 0.0, 1999904483.8, 1999998582.0, 0.0, 0.0, 1999997787.4, 1999996812.8, 1999997751.0, 1999997219.8, 1999265935.0, 1999996720.2, 1999999815.6, 0.0, 1999998078.0, 1999995933.2, 1999920365.2, 1966798749.8, 1907716366.6, 1785542180.4, 1816845221.2, 1852702377.8, 1514788505.6, 1212223296.6, 1307312392.8000002, 1636541654.2, 1691960488.4, 1533555697.6, 694148035.8, 477548277.0, 372511068.0, 271039170.2, 235588368.2, 153547254.52, 392958269.4, 739183490.8, 528259608.6, 238046443.0, 451087660.0, 379156977.0, 378834944.8, 165217954.45999998, 364543708.2, 912794629.0, 689653440.0, 963008609.8, 1398911446.2, 1691457601.4, 878409769.6, 1111156582.4, 1650541159.6, 1626835462.0, 1971831288.0, 1999657935.6, 1984384566.8, 1999996095.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999996766.4, 1999999415.2, 1999995534.8, 1997718454.6, 1996448574.4, 1997804971.8, 1997841586.8, 1997893282.6, 1999995656.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1989797444.0, 1999944209.6, 1999942016.0, 1999967153.4, 1999999826.0, 1998680808.2, 1998444860.4, 1975729589.0, 1824019837.6, 1633132824.2, 1705037868.8, 1790960800.0, 1684830229.0, 1259525313.8, 933119812.0, 1045533164.0, 872724108.4000001, 366585125.4, 462948174.2, 431413719.4, 296266262.8, 312337299.0, 140173260.18, 133631619.98, 170311884.88000005, 212136034.6, 212254775.6, 141454931.12, 122134003.12, 157332334.88, 162305771.86, 262687429.0, 426974626.2000001, 750729973.4, 903758314.2, 1125289682.4, 1494993441.8000002, 1823938537.0, 1960952188.0, 1997846901.0, 1999995250.6, 1997355135.4, 1999995984.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999417784.4, 1968162413.6, 1952177369.4, 1996718083.8, 1822865978.0, 1942985706.6, 1951529246.8, 1729973714.2, 1980068503.4, 1996929974.4, 1632269081.8000002, 1338511633.4, 1941180160.4, 1356801994.8, 1195384177.2, 1638335004.2, 1761903572.9999998, 1887123539.6, 1890295369.8, 1999998925.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1998273617.2, 1999023065.8, 1999996011.6, 1998576630.6, 0.0, 0.0, 0.0, 1998143335.2, 1896152934.6, 1999961157.2, 1999995514.4, 1999498469.6, 1998447211.2, 1958751870.2, 1883758717.0, 1525990282.0, 1526421165.8, 1342680948.6, 1440474469.6, 1735581663.4, 1650380864.4, 1999315632.8, 0.0, 0.0, 0.0, 0.0, 1995961155.6, 1998086042.0, 1997546129.2, 1996855443.6, 0.0, 1999851678.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999932573.2, 1969782611.0, 1662706852.8000002, 1258629061.2, 550671888.0, 221805333.2, 342510152.40000004, 1039088890.6, 1793607278.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1997937518.8, 1999998077.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999994882.0, 1999200001.2, 1980723648.6, 1962090756.6, 1751217346.0, 1610597268.0, 1400865737.1999998, 1419484498.6, 1449522359.1999998, 1331998835.0, 1630182596.8, 1362843189.4, 887776699.8, 752182313.9999999, 703801276.6, 798946650.8, 653418959.2, 585440526.8, 958374510.6, 1440712128.4, 1591600077.6, 1735479322.0, 1950833321.0, 1986753265.4, 1990843338.8, 1999112786.0, 1999998951.2, 1999998499.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999996597.2, 1485593620.2, 1999995039.0, 1999996574.4, 1999997763.4, 1999999348.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999999344.4, 1999995092.0, 1988637889.2, 1997173664.0, 1998445909.0, 1998208427.8, 1912058652.0, 1778411845.0, 1221089018.8, 1007278057.2, 1292858533.2, 1418325316.6, 1572630768.0, 1805480078.6, 1669211000.6, 1382094154.0, 1461684180.6, 1912822130.6, 1998836810.0, 1969685939.4, 1750096483.2, 1649609231.8000002, 1508373351.8, 1526437121.8, 1725943826.6, 1664280178.8, 1569333279.8, 1304909937.8, 1152282948.0, 1427937892.9999998, 1822100291.0, 1672902315.8000002, 1896516117.0, 1180625162.6, 975254812.6, 1200395434.0, 1270294513.0, 1686794631.4, 1999996972.4, 1979332564.8, 1798543953.8, 1577545611.0, 1819431828.2, 1886897306.0, 1952978973.0, 1999767352.2, 1999875688.6, 1999000423.4, 1999841421.2, 0.0, 0.0, 0.0, 1989277286.8, 1991882175.2, 1999994127.0, 1961850357.0, 1515050221.6, 1771368034.4, 1941914132.2, 1927778502.4, 1983035109.6, 1993966996.6, 1992382935.4, 1965371362.2, 1997817377.8, 1702028253.4, 1528317820.8000002, 1468347655.8000002, 834344900.4, 716316900.6, 1243005168.0, 1424038677.0, 1979302774.4, 1999242575.0, 1999999733.2, 1969578442.0, 1993016153.2, 1906694710.4, 1698324937.6, 1482280166.6, 1031169271.8, 990519790.6, 751609317.8, 1260472774.8, 1402692434.2, 1559257280.0, 1863205000.4, 620759221.4, 1137773383.2, 1094943879.0, 924808410.0, 934003620.4, 1065851555.2, 1564420483.6, 1837177025.6, 1274364022.8, 531093220.4, 319626484.8, 593446618.4, 156351458.6, 599946386.6, 1106538965.8, 947759968.4, 1146846686.4, 238725732.6, 558291919.0, 1826987796.8, 1972663190.4, 1997925856.6, 1969971283.2, 1855451840.2, 1913929040.2, 1997710290.6, 1911624537.6, 1966368979.0, 1479969140.8000002, 1356009787.8, 746315594.4000001, 1179212809.4, 1958701790.2, 1884496786.0, 1983656064.8, 1611620975.2, 1177932039.0, 863489163.9999999, 542536851.8, 642847741.6, 406341625.0, 759151566.8, 655588057.4, 247181286.0, 413471968.8, 471679146.8, 482939098.2000001, 379314920.6, 346611460.0, 355210204.2, 182731019.86, 148870667.62, 233784780.4, 737932504.4, 424092964.6, 888839177.0, 958267116.0, 920595125.2, 1239310007.6, 1186011976.2, 922828426.6, 1182331344.2, 931994539.4, 593041774.2, 634629159.6, 648510181.0, 579486305.8, 436490574.8, 386830603.6, 252709374.6, 220966856.0, 158112864.86, 244337910.0, 279767627.0, 121736232.54, 39507283.52, 3626681.04, 1243250.2, 0.0, 0.0, 24735596.5, 179684530.72, 249385140.6, 201008347.4, 376103991.8, 601067050.2, 652792594.4000001, 929270867.4, 1420872099.0, 1982414569.2, 1985036709.0, 1984241032.0, 1998036945.0, 1999954366.6, 0.0, 0.0, 0.0, 0.0, 1999750998.4, 1999997570.8, 1985967106.2, 924848545.0, 1451048453.9999998, 1942493594.6, 1718222490.1999998, 1499415478.4, 1719689359.0, 1675235890.6, 1597949802.6, 1746871832.2, 1850851482.2, 1833130041.0, 1760431416.2, 1469673340.6, 663715306.6, 990992828.2, 1385445998.8, 1800048461.2, 1966116140.8, 1976273617.8, 1974054553.4, 1974898415.4, 1997581253.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999994995.2, 1999773458.0, 1986857494.6, 1939888210.6, 1788816425.8, 1713037952.6, 1752670424.6, 1598755666.2, 1559470626.8, 1525285561.4, 1207738446.6, 837200279.0, 386956753.6, 302066900.40000004, 191465801.66, 72311698.76, 81515277.74, 28654079.94, 0.0, 1833417.78, 7494307.300000001, 111538998.68, 215236866.0, 175585604.17999998, 523376565.8, 1140127869.6, 1685660443.4, 1613018364.6, 1461735038.4, 1322090154.6, 1322444754.1999998, 1131340984.0, 1447106284.8, 1185024066.2, 1005810134.6, 777274266.0, 931962065.8, 1104242859.6, 1105069800.8, 722328705.0, 573635900.8000001, 532097070.6, 795840878.8, 1125792008.2, 1761594834.0, 1938111912.4, 1893091381.8, 1860354935.6, 1826471896.0, 1957969005.4, 1970040822.4, 1975923359.2, 1999053492.6, 1999996146.8, 1999998043.8, 1999996207.2, 1998848842.0, 1966927677.4, 1986785110.8, 1978929594.4, 1989423488.2, 1999447053.4, 1999995398.0, 1999995102.2, 1999998113.6, 1985329581.0, 1997473635.0, 1980652721.0, 1997894080.4, 1966432018.8, 1998112183.2, 1926347761.8, 1726153145.0, 1337369223.8000002, 1158905472.8, 749631897.4000001, 637126830.0, 870226675.0, 518590355.6, 294544400.2, 266634458.2, 323181561.6, 436236304.2, 1621439052.0, 849050227.8, 849619938.4000001, 775918404.4, 1336672732.0, 1182958855.6, 580599981.4, 534912035.6, 572095403.0, 485407579.2, 615940489.1999999, 564615607.4, 433609675.4, 605402396.4, 773551223.8, 1355714361.0, 1422059877.8, 1908215577.6, 1949064901.2, 1979283632.8, 1953923841.4, 1820801389.0, 1939620352.8, 1999228376.8, 1999997069.2, 1988475895.2, 1999795180.8, 1993400128.2, 1999169018.6, 1992516785.0, 1992370527.8, 1984035201.6, 1997502290.2, 1999930873.6, 0.0, 0.0, 1999996935.4, 1999221833.4, 0.0, 0.0, 1998947662.6, 1836730284.8, 1884081240.8, 1300652246.6, 1424010882.4, 1416062333.2, 1674166397.8, 1633330970.4, 1659644972.0, 1397341619.8000002, 1126679295.0, 1111210018.0, 858710946.1999999, 840517875.5999999, 757979724.8, 414304926.2000001, 428360297.6, 515935427.6, 706943974.6, 1399587943.8, 1362846569.4, 1219510051.6, 1419459203.2, 1470492329.2, 1506845314.4, 1792149656.0, 1787961692.2, 1795727146.0, 1719890428.8, 1526250447.8, 1726521178.4, 1969736434.4, 1974434973.8, 1998286448.6, 1998573666.0, 1998241995.6, 1999995276.6, 1999996624.6, 1999994264.8, 0.0, 1999276559.2, 1831873731.8, 1945404425.8, 1949096615.4, 1961525264.4, 1992161927.8, 1999840976.2, 1941496126.4, 1985284213.2, 1980076803.8, 1951098943.2, 1954372864.2, 1992936518.4, 1990466688.8, 1993515795.6, 1999810236.2, 1999494484.2, 1999936159.8, 1999996753.6, 1999868716.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1997637106.8, 1830144682.6, 1711637707.6, 1480012104.2, 1290791534.4, 1232887507.0, 800964393.6, 907948818.0, 635421759.8000001, 451123673.6, 357701658.20000005, 34852935.94, 35415859.62, 72277635.12, 10357064.9, 122486117.78, 140440895.84, 343149917.40000004, 495331668.8, 1009219775.6, 844778510.0, 943994960.2, 1429189255.4, 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, 1955868047.4, 1924647079.2, 1464756591.4, 906057322.4, 1018726338.4, 533880331.6, 650112197.6, 702584068.0, 796973571.0, 974076185.0, 1672738318.4, 1998508505.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1973158584.0, 1991391968.4, 0.0, 1999975638.8, 1999809695.8, 0.0, 0.0, 1994305303.0, 1997254606.0, 1997048812.8, 1997194143.8, 1999994755.8, 1999995313.6, 1999999701.2, 1999886948.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, 1999814445.6, 1974616787.6, 1999926332.8, 1965495357.6, 1989289971.0, 1973069974.8, 1870431111.6, 1823430259.4, 1812396939.2, 1746438760.6, 1225478374.6, 1387043706.4, 1067010415.2, 363844762.2000001, 239989250.8, 92597979.0, 71558152.5, 97413207.84, 519498646.0, 380171666.8, 667561858.2, 901363569.2, 1705812214.8000002, 1857639840.8, 1736670232.8, 1926413074.4, 1940216805.4, 1786232844.0, 1293666810.8, 1375047738.2, 1202025347.8, 1476285889.2, 1152535009.2, 1053885853.6, 888985031.0, 1294725420.4, 1913074883.8, 1958130036.2, 1998743090.6, 1993037658.6, 1989059138.2, 1999984564.0, 1959080021.0, 1999989759.2, 1999991029.6, 1993816042.4, 1925057557.0, 1940984116.4, 1911558734.2, 1941285135.4, 1783801776.0, 1495493215.6, 1191367005.6, 850689280.9999999, 678098170.1999999, 711505401.0, 706056370.6, 551851012.2, 418038584.2, 323924584.8, 319881679.2, 388977015.0, 162784948.02, 79802512.74, 75366599.96, 15548445.420000002, 73329460.5, 194871286.1, 280545306.2, 524318307.0, 667701024.8000001, 866197894.4000001, 643493993.0, 570034902.4, 140876877.86, 1356152.0799999998, 310521.14, 0.0, 343009.08, 0.0, 0.0, 2255308.64, 36703567.48, 259630873.00000003, 174517928.7, 201322122.8, 223440970.6, 218898067.0, 189690279.6, 253188941.8, 203509595.0, 288475179.6, 275776368.2, 350746245.40000004, 168270006.98, 146219556.76000002, 349493879.40000004, 193683641.24, 255662152.8, 277586563.40000004, 194596223.12, 172772573.16, 102138361.06, 238079526.2, 201037637.8, 106010126.18, 92339663.88, 86462932.8, 132842342.66, 223137852.2, 382443824.6, 211924833.2, 133858353.22, 171642450.06, 203691641.2, 155431540.54, 194597987.0, 158042665.64000002, 130890336.76, 88733550.55999999, 140892748.6, 199086480.16, 198093026.74, 129561308.72, 126050143.56, 78530510.74, 117666672.52, 147723260.68, 111444715.52, 156900481.02, 138606057.34, 157859051.18, 202391465.8, 232693581.00000003, 214394975.00000003, 282323944.8, 207609987.8, 250935706.8, 161086602.70000002, 242666741.8, 304018760.2, 159847911.22, 220168181.0, 199925603.1, 204140572.2, 218315367.6, 236446727.2, 233317054.8, 223719020.2, 265126605.2, 282191511.8, 208904268.2, 235415072.2, 391641925.0, 196494041.12, 108697263.4, 4734659.78, 0.0, 0.0, 0.0, 0.0, 0.0, 3772909.18, 28834034.36, 33286109.84, 226048002.2, 405213755.8, 904585761.4, 1155941962.8, 1781142061.8, 1582392518.0, 1147830822.0, 1116199101.6, 1970359524.0, 1999902703.2, 0.0, 1999907337.0, 1999816059.0, 1989448466.8, 1986275581.6, 1842815576.8, 1417339370.6, 1083369859.0, 836399885.6, 777338525.2, 654167198.4, 737086114.4, 875619590.6, 585445895.4, 822032836.6, 965606626.4, 1129268380.6, 674677779.4000001, 716856160.4, 1679302902.0, 1887214496.6, 1996575915.2, 1997421620.2, 1999997352.2, 1999994388.0, 1999999562.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999994263.4, 1987783169.8, 1987036009.0, 1984962411.0, 1904468193.4, 1942798950.6, 1968647721.2, 1925193185.8, 1997736757.8, 1999531920.2, 1998970305.0, 1999533123.0, 1999850570.8, 1998630349.8, 1992139342.4, 1998604254.6, 1998978058.8, 1999877373.8, 1997227754.4, 1924835104.0, 1766902573.4, 1587833477.2, 1961859162.0, 1999995950.4, 0.0, 1999408971.4, 1999996131.8, 1991929435.8, 1999205523.6, 1999996924.2, 1999112717.4, 1974878570.4, 1869395419.6, 1532347076.4, 1691777101.8, 1288321329.1999998, 1177960471.4, 742173368.6, 565937027.2, 597200073.0, 614155835.8000001, 380575406.0, 302011046.0, 128126779.26, 169871068.04, 204351316.2, 152806824.42, 11761028.18, 91306753.3, 181859601.82, 843411897.8, 1212595350.0, 1018858704.2, 873207511.8000001, 633192795.4, 694830181.0, 636163780.2, 603171975.2, 822717169.8, 703945215.0, 433003605.4, 234041786.8, 201113196.8, 359817444.6, 538433248.4, 671454303.2, 414142214.8, 272136840.8, 342524860.40000004, 476086369.0, 477745690.0, 639769420.2, 523763729.8, 429272264.4, 314617539.0, 306716338.0, 173257541.14, 105813456.46, 46730928.62, 63303552.18, 0.0, 0.0, 1417663.32, 831859.3400000001, 2869366.72, 12629837.0, 2317896.88, 2245437.12, 0.0, 380457.0, 4326601.44, 3292829.62, 5337725.760000001, 14931954.66, 3172035.68, 4600554.16, 57819567.94, 7871653.24, 55640869.82, 224663715.0, 183007720.42, 344929758.00000006, 446999214.8, 309719395.6, 607654228.0, 749856123.8000001, 698613213.8000001, 1168631928.0, 1312674716.8, 999347606.4, 686277315.1999999, 581255480.8000001, 487535080.8, 303913670.2, 352010387.6, 91434153.62, 14387323.5, 6122102.619999999, 2709824.48, 5553187.02, 4823414.58, 107954282.42, 0.0, 105352184.35999998, 212877385.8, 97336868.78, 143194444.82, 193970155.76, 356283189.2, 1332895548.4, 691193517.8000001, 652759382.0, 1013695828.6, 1661304551.8000002, 1946391161.4, 1656759707.2, 1509553285.8000002, 1672970149.4, 1807310728.4, 1755903191.2, 1877885235.8, 1860668615.2, 1876489848.0, 1975130624.8, 1997480947.2, 1999996203.4, 1999996013.4, 1999998532.4, 0.0, 1999995104.8, 1999905828.0, 1999411074.6, 1998407053.6, 1984659376.8, 1983647023.6, 1977105319.2, 1977945857.0, 1655202961.8, 1568933408.0, 1318702847.0000002, 1343809966.1999998, 1114198853.6, 472442271.00000006, 761605984.6, 663989282.0, 495155382.4, 654905973.5999999, 509807239.8, 725047758.5999999, 1116567200.6, 1582308140.0, 1832670903.4, 1868769293.4, 1866173709.6, 1956480003.2, 1960950608.4, 1938552498.8, 1818993592.8, 1756707176.8, 1715354363.8, 1476478543.4, 1365468519.2, 1517954227.6, 1524059458.2, 1086174958.8, 902633634.4, 1743528934.1999998, 1744097788.6, 1722245455.1999998, 1742775239.6, 1805984924.2, 1418784131.0, 751197610.0, 790389205.5999999, 556982070.4, 443915285.8, 447847089.4, 474218688.0, 319739319.0, 145392394.9, 115427320.18, 93658730.62, 46517051.5, 40872116.6, 46077771.66, 48313689.06, 38065621.06, 39474639.74, 35190789.52, 43055450.6, 65397462.92, 42933024.68, 4869502.22, 14197217.62, 9945641.16, 3629793.54, 3086093.52, 22361148.94, 3859394.8, 0.0, 0.0, 2043824.58, 459313.78, 3503281.56, 26644774.22, 76980945.5, 155104024.12, 233877146.8, 355624254.6, 489678054.6, 654330092.2, 1063056404.6, 1203430976.0, 1359907050.2, 1337344156.2, 1121058285.0, 1081425930.2, 1061539728.4, 922711380.8, 1080382173.2, 1149374458.2, 1037300374.4, 1636123734.2, 1873476163.6, 1876548946.6, 1999523944.4, 0.0, 0.0, 0.0, 1997990536.4, 0.0, 0.0, 1999998512.8, 1999997659.6, 1997064066.2, 1997643146.8, 1839140929.8, 1822193333.4, 1979073491.4, 1973194299.8, 1944193723.2, 1906383340.4, 1960925394.8, 1965485399.2, 1997998653.2, 1998548083.2, 1997684891.2, 1997618826.2, 1999992449.4, 1998639331.2, 1988816470.8, 1835426917.2, 1550321375.1999998, 1940043482.8, 1998983621.0, 1954066131.4, 1974074514.6, 1966948602.4, 1725825781.8000002, 1293163860.4, 894214163.8, 824336801.5999999, 730650246.6, 371731821.4, 442795475.2, 926540739.4, 1028245897.6, 1540196274.0, 1719833534.4, 1814569167.8, 1925886965.2, 1982307116.8, 1995433268.2, 0.0, 1999938450.6, 1938708966.8, 1815215490.0, 1967346221.4, 1990229410.6, 1977411298.2, 1999674852.0, 1996272114.4, 1991156777.8, 1999776353.4, 1999809969.2, 1999902927.4, 1999963198.2, 1999879211.6, 1999974751.4, 0.0, 1999862620.6, 1999861822.6, 0.0, 0.0, 1998666847.0, 1978122273.6, 1860141403.0, 1769644838.4, 1314419989.8, 1813099651.2, 1823177784.0, 1935709550.0, 1997113924.6, 1789068236.8, 1722520891.6, 1908256853.6, 1968813481.0, 1997591729.6, 1997571874.2, 1981776181.8, 1967871268.6, 1947667903.6, 1802579299.0, 1761929935.0, 1521608251.0, 1860911169.8, 1894409016.0, 1958859540.2, 1942118895.2, 1961956900.4, 1666363362.4, 1479663460.2, 1467242669.6, 1038993246.8, 824456823.0, 1087642462.2, 1335198080.4, 1539748648.2, 1922765574.4, 1556807161.6, 1516192008.6, 919552669.4, 1620481817.2, 1586284654.8, 1578164404.6, 1253638215.6, 1476160151.4, 1596154650.4, 1606781889.4, 1664381459.8, 1615589306.4, 1284568316.6, 1056994159.6, 1315271187.8, 1621466652.8000002, 1730904792.1999998, 1795410785.8, 1997292674.0, 1999997111.4, 1979506336.4, 1916844219.8, 1816831515.4, 1615175634.4, 1714980517.8, 1962531206.4, 1995913569.6, 0.0, 0.0, 0.0, 1999998133.6, 1999998254.0, 1995514110.6, 1999654936.0, 1999998976.0, 0.0, 1999998046.4, 1999996945.2, 1999996960.4, 0.0, 0.0, 0.0, 1999998593.0, 1999994729.8, 1998274126.4, 1995509706.6, 1948511120.4, 1897402821.0, 1350686233.4, 892482696.4000001, 1261681283.6, 611195595.0, 954629620.6, 748520240.8000001, 1060361601.4, 718261136.4, 1998037478.6, 1783727132.8, 1849993770.4, 1771473283.0, 1834053290.2, 1590577316.2, 1248725478.0, 1034803388.8, 584653822.6, 541013750.0, 615802546.0, 490098442.6, 485231814.6, 657419333.4, 766248890.1999999, 711504213.8, 854117375.4000001, 1320299249.2, 1403694594.4, 1448668696.6, 1671066255.6, 1639698109.0, 1559720833.6, 1489864495.8, 1513820115.0, 1607887205.4, 1517283153.6, 1524460363.0, 1737188542.0, 1939280938.2, 1997561285.6, 1997494894.0, 1985318000.2, 1917934302.0, 1881384766.0, 1823651342.2, 1530977775.0, 1350712354.4, 1214103271.0, 1465607546.2, 861725260.2, 237447849.2, 26344152.96, 400920979.4, 1382255779.8, 1766990467.6, 1743984915.6, 1788947429.2, 1436228806.4, 1600525624.0, 1311138630.2, 1189271818.4, 822190204.0, 1138633048.4, 1291848190.8000002, 951142486.6, 894538420.0, 722632699.8000001, 604281962.1999999, 405198469.6, 285181871.2, 182246896.7, 279581362.6, 167849904.54, 157155705.0, 101130299.14, 235556541.00000003, 174700853.50000003, 132418172.7, 51247054.72, 88039051.61999999, 76423498.68, 56710582.64, 32024172.2, 1215040.46, 570430.52, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9189531.1, 29317165.360000003, 80194427.32, 155945373.9, 247155115.00000003, 245293127.0, 339790470.6, 489558606.0, 559040906.0, 693052387.5999999, 591673709.8, 739025861.6, 917947193.8, 1422838813.0, 1638929939.4, 1834908122.4, 1885030045.4, 1708176516.4, 1392746153.8, 1326983060.0, 1165347460.2, 857500480.6, 1084991995.8, 990992053.2, 835320507.2, 745883340.2, 1010829281.2, 1042161351.2, 952418102.4, 1447492387.2, 1778232738.4, 1727320621.4, 1367036195.6, 1431157065.2, 1720114972.6, 1966955918.0, 1993208802.6, 1998952682.0, 1999942144.0, 1999910472.0, 1999930141.8, 1999871563.6, 1999998568.2, 1962903314.4, 1805155882.0, 1967394199.0, 1971663187.6, 1881141453.8, 1969386648.2, 1989793685.6, 1997705402.6, 1995875791.0, 1997832322.2, 1998253287.6, 1999166974.0, 1999540439.0, 1999272383.8, 1999083671.6, 1999147870.8, 1999993685.8, 1999994610.4, 1999995963.2, 1999994731.6, 1999995034.0, 1999994961.6, 1999998012.6, 1999993630.2, 1999996054.6, 1999997336.0, 1999992954.4, 1998438269.2, 1997593502.4, 1988239239.0, 1997599452.0, 1997505423.0, 1998182298.0, 1998466131.6, 1983177629.8, 1980109121.4, 1979119632.8, 1974457982.8, 1949002008.6, 1964673145.2, 1897711788.0, 1809347195.2, 1428034872.6, 1525584425.0000002, 1321878693.0, 979716189.4, 643137648.0, 472887931.6, 288353257.0, 708890403.4, 1090357098.2, 1840768974.0, 1997758985.2, 1999997548.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1997628083.2, 1994473801.0, 1946868378.2, 1989936466.8, 1988105688.0, 1989210178.8, 1474287090.4, 1184930180.0, 1437203635.0, 1077733245.0, 291388656.0, 196380169.74, 43551179.8, 11783946.5, 0.0, 649623.6599999999, 0.0, 0.0, 6810737.94, 89125964.52000001, 1340341290.2, 1836726210.0, 1578254984.2, 965402814.8, 1755481012.6, 1951538478.0, 1324286518.6, 511971233.4, 447138707.8, 1015940708.8, 1057895798.2, 873442671.8000001, 1053554784.2, 1105142049.8, 1634862650.4, 1146596903.2, 1122222786.0, 1137997145.6, 1244771179.0, 1009757410.8, 839167984.2, 490293834.0, 505974029.8, 699626332.2, 506034809.2000001, 411008130.0, 348634842.6, 241182817.0, 220808512.2, 166048060.4, 85518008.69999999, 112018374.96, 121313691.66, 38665730.86, 122862633.6, 313370689.0, 296318281.2, 386568367.8, 604720508.0, 633238342.0, 617240247.4, 492931455.6, 652388241.2, 719671526.8, 752966722.0, 641145621.0, 391786220.6, 337582788.2, 411213374.8, 503937642.8, 474327511.4, 514624491.0, 638637390.6, 754342072.2, 783940948.4, 872300566.2, 1015395274.0, 1241545918.8, 1840062902.8, 1994507271.0, 1999728657.8, 0.0, 0.0, 0.0, 1980036588.6, 1276505481.6, 1850566703.2, 1080350739.8, 513342561.0, 514822872.0, 458884689.8, 396677640.8, 225949253.0, 143434065.76, 411583765.2, 150352640.06, 389620698.0, 297444371.6, 379832283.6, 617113219.2, 825565745.0, 1104070055.4, 777448533.8, 242705224.0, 652952837.4, 667527243.1999999, 764774663.5999999, 818110716.0, 858910926.8, 671705613.8, 754626157.0, 597926598.1999999, 604192644.1999999, 489368766.0, 523143815.6, 654201484.0, 622347336.0, 599087556.2, 509591022.2, 526644961.2000001, 461013301.6, 405273897.8, 268625459.4, 235457015.8, 199605013.78, 130519187.18, 83550922.8, 45418103.260000005, 8405000.780000001, 3004299.98, 855430.9, 0.0, 167095.25999999998, 2589158.24, 29426414.360000003, 98592225.78, 276931775.6, 484683331.0, 658908963.0, 688541413.1999999, 884491519.2, 982669386.4, 1055458472.6, 1533236396.8000002, 1731308870.8000002, 1795861580.0, 1923199353.8, 1961729182.8, 1999996213.0, 1999999419.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999999001.4, 1999882907.4, 1996884239.4, 1941447120.6, 1738586802.8, 1423576748.4, 1004715047.0, 708731778.8, 657202114.4, 612840517.4, 350446329.4, 453094022.4, 373947471.4, 891700341.6, 1992842494.8, 1988776271.8, 1992165171.8, 1999842210.2, 1996971433.0, 1997535752.6, 1760632323.0, 1716932783.0, 1947396808.8, 1955014863.6, 1873574463.8, 1919310060.2, 1970379519.2, 1973661944.0, 1999986825.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999881937.4, 1968301561.8, 1952046702.6, 1837764466.2, 1936852464.6, 0.0, 1999999026.8, 0.0, 0.0, 0.0, 0.0, 1999983258.0, 1995507297.0, 1998409139.4, 1999811089.2, 1999993763.4, 1999998380.0, 1999988519.0, 1951587510.8, 1970169633.6, 1999824206.0, 1996000990.8, 1999806371.6, 1999781867.4, 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, 1999989480.2, 0.0, 0.0, 0.0, 0.0, 0.0, 1999987521.6, 1993898642.4, 1996309285.4, 1995917703.0, 1994814142.0, 1964798848.8, 1995666063.0, 1950913304.8, 1567128878.4, 1650027063.8, 1132028581.6, 1976226609.6, 1991356641.0, 1909240583.0, 1911669820.4, 1894531013.8, 1505945203.6, 1539638710.8, 1526858052.0, 1460961579.2, 1310870377.2, 1451062722.6, 951051991.0, 695980424.6, 596594306.2, 386134967.6, 302631842.6, 115294890.82, 227143621.2, 200406112.4, 209275317.6, 204521693.2, 450396217.4, 549282690.4, 360316234.2000001, 434803856.8, 397577596.4, 316101973.0, 341442017.8, 493390080.4, 558221514.0, 546095231.4, 787982406.9999999, 586980076.6, 643914938.0000001, 871988374.8, 897541654.4, 875837518.4000001, 860782056.4, 660448932.0, 923774338.2, 696276867.4, 567409934.4, 396925200.0, 391829547.6, 433242016.2, 272275709.8, 234056788.2, 124625826.7, 61799582.14, 102006054.74, 185827614.84, 239096301.6, 277536852.6, 542720576.0, 545150143.8, 573109574.8, 774185869.1999999, 842889809.6, 917519492.0, 823221062.1999999, 1111906257.2, 1068475246.4, 1192561456.0, 885209584.6, 759151270.6, 965674436.4, 721859273.4000001, 669292796.2, 698446744.4000001, 617209248.4, 457359069.6, 445301364.4, 1726115237.6, 1396499464.1999998, 1989579452.4, 1998997234.0, 1998723553.8, 1883528474.8, 1831926904.2, 1959177798.0, 1837272958.2, 1420076043.0, 1530093311.0, 1561582251.8, 1826268872.2, 1748550542.0000002, 1508813763.4, 1423844330.0, 1396189268.0, 1277373764.0, 934877622.4, 903708285.6, 657798130.5999999, 381260548.8, 219608356.0, 164153526.26000002, 100469395.38, 117063169.76, 309557123.2, 632481131.8, 425647922.4, 407260593.6, 384753808.4, 474855930.0, 418647772.8, 489985252.4, 545808741.8000001, 503174639.2, 446732441.8, 396204842.4, 266087686.4, 214775880.6, 199274652.88, 146057223.32, 202085845.8, 224298785.8, 337838556.99999994, 404842505.8, 604309262.4, 571482553.8000001, 659512823.4000001, 558298440.6, 243421599.4, 128475083.14, 206460061.8, 196910854.02, 370640910.6, 446960041.4, 524757712.8, 416798706.2000001, 393485732.0, 239899769.0, 135679905.8, 67631132.25999999, 41108913.52, 23479598.7, 1415772.96, 0.0, 4507826.2, 28344233.64, 165647467.42000002, 293783720.0, 340651304.0, 324399548.6, 368070150.6, 448527686.0, 510066693.2, 490232193.0, 738223325.8, 893904429.8000001, 1474554804.4, 1848212898.4, 1939015327.6, 1971080160.0, 1992177537.0, 1999785126.8, 1999897601.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1973209752.4, 1997059114.6, 1997641370.8, 1870995742.4, 1456407922.8, 1234304114.0, 577661664.1999999, 1249479022.2, 1444003985.2, 1711310118.8, 1237863359.8, 1336045908.6, 1631908261.0, 1334522541.4, 384408735.4, 295782530.8, 62688613.04, 121385920.2, 265679644.4, 141663490.82, 62075814.56, 337019787.2, 1839741277.4, 538761516.8, 291558633.8, 1093730948.4, 1292783392.8000002, 1179971469.4, 956907176.8, 1294638584.4, 674205832.1999999, 281414974.0, 165766656.06, 214288173.6, 198932014.3, 572654222.6, 785442438.2, 526462522.0, 257851052.0, 127412899.88, 261824657.4, 376134989.00000006, 368428263.2, 154772515.44, 780221690.2, 985188217.0, 826073737.1999999, 1167795242.4, 1407982365.8000002, 1555105811.0, 1801179577.0, 1964001406.2, 1836908249.2, 1842076519.2, 1644036411.2, 1129883418.6, 802975502.2, 363275714.2, 200236844.6, 342611868.0, 240151414.6, 273065911.6, 1131240865.2, 1670595892.6, 1099826126.4, 1003180728.6, 607932264.6, 416851492.0, 407359238.0, 634175970.4, 438006662.2, 333819417.6, 293028765.8, 320346014.6, 417969110.6, 354422347.6, 222168159.2, 263554117.8, 253563376.8, 235763916.0, 356294217.6, 465939985.6, 780424678.2, 1031231196.2, 1427325494.6, 950704667.2, 736012324.6, 870618636.8000001, 1297292521.2, 1512526227.4, 1060270628.6, 1298607662.4, 1794536143.0, 1915968555.2, 1914925405.0, 1969370574.2, 1998334470.4, 1999996691.6, 0.0, 0.0, 1999999387.8, 0.0, 1997991546.6, 1877539601.4, 1974852024.2, 1999996245.8, 1999894666.8, 1998488960.4, 1998262807.8, 1983570151.6, 1968113653.2, 1980799260.4, 0.0, 1999996500.0, 1999995504.0, 1978822372.0, 1783005177.1999998, 1072713789.4, 200113878.8, 30077220.64, 241076173.8, 2371351.96, 0.0, 0.0, 0.0, 16364927.46, 480255234.6, 590158062.8, 186677919.96, 82263397.66000001, 1413473.52, 2628920.24, 107992031.66, 271680753.2, 899821207.0, 1195638151.4, 995756706.8, 248588737.0, 99014921.06, 298781999.6, 1395559602.2, 1997188042.8, 1999999250.0, 0.0, 0.0, 0.0, 0.0, 1042952302.4, 799837773.8000001, 829412933.2, 1289980411.0, 1262476742.2, 1482287657.0, 1557690527.0, 1220723856.6, 1130922912.4, 744600698.9999999, 398463067.8, 185292194.46, 170170288.04, 229347299.2, 207741232.8, 130342750.4, 141304677.76, 162619452.9, 271787613.8, 772672714.0, 1213129562.2, 1367972296.6, 1384865686.0, 1787832598.4, 1823610128.6, 1959780294.4, 1990411245.4, 1994668167.0, 1998858872.6, 1968574646.2, 0.0, 1999995935.8, 1999998207.8, 0.0, 0.0, 1999995095.6, 1999249234.6, 1977142757.2, 1968353327.6, 1596615847.4, 1221230337.0, 1056639055.4, 1112594230.8, 1169486162.4, 897648916.0, 990957400.8, 1272811515.0, 770306334.0, 947427055.6, 892892796.0, 585383012.0, 626462111.4, 597258550.1999999, 522741653.4, 463438357.2, 755795265.6, 568905522.0, 582332640.6, 997461878.4, 821421927.0, 684562689.8000001, 812204365.2, 657415578.1999999, 536964632.0, 888445501.1999999, 503407959.2, 613082381.8, 1168186395.0, 922517892.2, 855433820.1999999, 911040556.2, 1352899804.8, 1462387292.8, 1436033082.6, 1207818659.6, 931211765.8, 1020696849.4, 1052013853.0, 961015031.6, 683814355.4, 599208565.8, 378090820.8, 261569849.8, 148503147.84, 56442105.64, 22911550.06, 1185638.04, 0.0, 0.0, 0.0, 0.0, 1018975.28, 5382232.76, 45718116.86, 101731006.78, 154307684.18, 271690621.40000004, 377297022.4, 631408399.0, 1070361769.0, 1239957570.8, 1045207337.4, 698264904.8000001, 396796788.0, 346099427.2, 171734256.00000003, 226165012.8, 394784497.0, 622038603.6, 1014550966.6, 1026043739.6, 1178434344.4, 837950976.5999999, 956299272.4, 878690737.2, 1923849397.4, 1911115886.4, 1968076109.8, 1927886904.2, 1867344095.8, 1756858427.2, 1112227467.0, 911540536.0, 1140266700.0, 545547018.6, 910374107.2, 1641694751.6, 1999141921.6, 1999322518.8, 1950394888.0, 1944454961.8, 1848963665.8, 1530513503.2, 1479104006.0, 1453369906.8000002, 1263528549.4, 1289483868.0, 1217030963.4, 1006070511.4, 1045270742.2, 1265290042.4, 1275639450.0, 1081946205.8, 728701373.4, 593464920.4, 566748690.2, 328502698.8, 310941072.6, 344986394.20000005, 192444961.76, 299953632.4, 341127079.2, 433136606.2, 609300878.8000001, 1000156658.0, 1525871985.4, 1205235987.8, 1550003194.2, 1232516193.8, 1278027443.0, 870093999.2, 718731408.8, 706491286.0, 758869278.0, 432601138.8, 290442472.0, 352374182.8, 425381522.4, 543225874.4, 824460496.6, 819183725.0, 674327036.8000001, 984371759.6, 954026737.2, 626120553.0, 466698925.6, 215801520.8, 173672693.86, 65203361.16, 22185041.58, 10287610.88, 18876939.18, 18582525.92, 15357845.12, 20915531.56, 65160367.98, 187058142.58, 143429596.42000002, 87115096.08, 109456104.6, 66272044.32, 49849045.580000006, 29428827.62, 27317957.1, 11449797.64, 3009957.94, 1351823.5, 860738.92, 1688791.9400000002, 32614765.32, 39734389.18, 62540687.4, 138687833.76, 210529302.6, 264830943.0, 452615796.2, 548810709.8, 923688957.2, 1039964120.2, 1228042415.2, 1649687438.6, 1918144380.6, 1989851607.2, 1999995435.6, 1999995532.6, 1999345134.2, 1999363094.4, 1979226615.0, 1971604795.8, 1977739347.0, 1932244653.4, 1945237170.4, 1966468170.6, 1970269913.2, 1996966472.4, 1999997976.2, 1999996938.8, 1999995427.6, 1999995757.2, 1973452454.2, 1580001854.8, 802579449.6, 1016089145.2, 582081526.0, 698543087.2, 435180018.0, 744785292.6, 563345827.8, 609366464.2, 499009974.0, 566221964.2, 897549045.0, 1171254345.2, 1678452294.6, 1847341272.8, 1941368860.8, 1793556749.6, 1714108794.1999998, 1721224783.6, 1528627701.2, 1185935549.8, 1120134671.6, 1072347455.8, 947586088.4, 740267226.4, 519166703.6, 284991522.2, 176544927.56, 149144252.64000002, 202563889.8, 276068266.0, 209795935.4, 221260575.00000003, 102379125.58, 123774989.04, 157643699.57999998, 116654555.72, 81060130.4, 42242814.84, 513874517.6, 194301547.54, 136890301.46, 124722359.82, 150279890.54000002, 175886975.64000002, 234056514.8, 274008917.8, 219475881.6, 358603069.6, 457632674.6, 452346591.8, 173477930.38, 267140864.2, 513442326.0, 109133074.14, 45480392.88, 1544628.22, 4798863.0, 44886138.8, 31870151.04, 32575188.8, 58806632.74, 306537405.0, 827074559.9999999, 824054280.0, 530877861.6, 491244144.6, 411147242.6, 374267091.0, 954078053.4, 1536073764.0, 1075475635.0, 1310304788.0, 1781985494.4, 1824590756.6, 1889928079.6, 1933100880.0, 1732844961.2, 1840048532.2, 1861327650.4, 1994392658.2, 1917451466.4, 1915723334.0, 1788037270.4, 1527794903.6, 997689147.0, 877009909.6, 628629176.4, 553245365.8, 425840673.6, 374110516.8, 468499239.0, 185905621.52, 240440727.4, 326956828.6, 330254059.0, 346226261.6, 274061416.2, 302801371.0, 127765167.84, 78544094.82000001, 144081927.45999998, 62117893.82, 19464208.98, 14731517.22, 3772240.24, 3176670.08, 15838051.38, 5650007.78, 5098605.08, 4738344.72, 0.0, 0.0, 0.0, 0.0, 0.0, 270037.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2570446.46, 5136872.68, 9095199.06, 40609174.38, 55537690.36, 99840472.76, 195404568.8, 301584621.40000004, 427378225.2, 383145584.4, 340005303.20000005, 220541406.8, 105543500.16, 38437024.54, 6823794.42, 4424809.62, 19072733.14, 20897460.040000003, 102851487.44, 107864386.46, 36313875.98, 2727957.52, 957299.54, 4339073.12, 1651508.6, 1105316.14, 1199930.94, 9410153.3, 4589958.04, 2255527.84, 60857.92, 41751359.88, 32689376.96, 52426361.620000005, 11816414.86, 194359166.06, 109694481.78, 142617690.3, 116044290.44, 70518284.88, 2233261.96, 0.0, 0.0, 0.0, 0.0, 0.0, 1975083.58, 5585986.54, 285622751.6, 585754791.8000001, 703322573.6, 830033850.4, 1152918667.6, 973341893.6, 761734561.8000001, 515980559.6, 358415824.0, 231521312.2, 290529336.4, 242038341.4, 191201539.16, 38448527.94, 223583881.2, 629367047.0, 762689127.2, 977822710.8, 1003881573.2, 1191297425.4, 1035287658.2, 945966663.0, 1030110105.4, 788637023.8000001, 597319428.0, 261196792.6, 444371759.4, 449196639.6, 622519314.1999999, 861327512.4000001, 1067331241.0, 1798814171.9999998, 1566969139.0, 995378909.2, 1423387617.9999998, 1784256023.8, 1819243627.2, 1805303976.6, 1956450078.8, 1948301873.0, 1996834507.6, 1990349830.6, 1791159715.6, 1997147022.2, 1999024743.0, 1999541899.0, 1969562158.2, 1956332565.4, 1910556404.4, 1181176987.4, 307855861.6, 361012517.0, 1186830030.4, 1999412514.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999993843.2, 1999995715.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1997753759.0, 1996292120.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999691618.0, 1911709417.0, 1829290850.0, 1942138460.4, 1940883284.2, 1270861186.6, 709313694.1999999, 824045903.0, 779760898.6, 1042207992.0, 1786544772.6, 1965796813.2, 1998934254.2, 1999348555.8, 1999952344.8, 1998976981.4, 1968038561.2, 1823557859.2, 1704615869.6, 1801633735.6, 1915433904.0, 1969233124.6, 1979049491.2, 1903807669.6, 1861325246.6, 1505026883.2, 1707157517.8, 1931640975.6, 1679396559.8, 1889276792.4, 1286783342.8, 849814186.8000001, 619776732.6, 296854395.6, 553189458.2, 1496510903.8, 1381416249.8, 1973186067.2, 1049975633.8, 299630666.0, 354457180.0, 1415917847.0, 1535017088.6, 980757930.8, 825243534.1999999, 484335456.4, 285707924.2, 171122242.0, 161513935.1, 112586395.42, 137635641.56, 150185482.02, 92395602.42, 100744675.64, 184082460.46, 185870654.38, 268012396.0, 454393896.0, 425333407.2, 1020854832.2, 1369667325.4, 1659045071.6, 1940136830.4, 1663808789.4, 1378719776.8, 1091284515.8, 801802833.4, 898874469.4000001, 732612637.8, 1074458138.2, 1559740181.6, 1816662583.6, 1499024978.4, 1903238085.8, 1998129166.6, 1999800799.4, 1999996027.4, 1999996586.4, 1997480503.4, 1999880809.2, 0.0, 1999997566.4, 1999994649.2, 1999993756.4, 1999219681.2, 1998414141.8, 1834986213.2, 1928634021.0, 1989907402.8, 0.0, 0.0, 1999996446.6, 0.0, 1968421924.8, 1967105258.6, 1714700607.1999998, 531807116.8, 1531684295.0, 1996709195.8, 1999995347.2, 1999908427.0, 1999936652.2, 1994283973.4, 1992974598.4, 1988626382.0, 1992630568.0, 1999783910.6, 1999920157.8, 1999963567.0, 1999950068.2, 1999809106.6, 1999815329.2, 1999879106.2, 1999983125.6, 0.0, 1999920089.4, 1997562466.2, 1998165565.2, 1996613160.6, 1995578869.2, 1993319564.2, 1988893883.0, 1974320633.8, 1943090057.6, 1838712613.6, 1961121318.2, 1913604674.8, 1693135846.4, 1413535196.4, 1279285528.6, 1047666831.2, 975485994.8, 570409172.8000001, 613227052.4, 664203117.0, 647556379.1999999, 743374755.0, 827001031.0000001, 704893397.8, 418952854.2, 267536729.6, 220993061.2, 146966425.64, 115145722.06, 85414372.36, 88049756.69999999, 114389589.46, 56211131.92, 92017441.98, 173867236.9, 215922685.4, 170046772.34, 140573315.9, 117291667.78, 47424005.16, 74547747.78, 55804183.04, 62553971.84, 32051763.08, 4324564.04, 176886.4, 0.0, 0.0, 0.0, 421862.78, 6600232.5200000005, 31288941.48, 215974162.4, 502963320.4, 826324363.1999999, 1330589720.2, 1696678474.6, 1864844694.8, 1823503963.8, 1749391743.8, 1799484548.2, 1801971348.6, 1834987719.8, 1406420180.8000002, 1239238667.8, 1189480123.0, 866836807.4, 893661856.1999999, 902751659.8, 1510707073.0, 1999968303.4, 1952999160.8, 1791186565.4, 1394796329.2, 1746609431.2, 1673952042.8, 1165878832.2, 1283215758.6, 1227964838.8, 1045150845.6, 1973341871.6, 1804221122.8, 1741425299.8, 1875338577.2, 1909585470.0, 1990179008.8, 1982428263.8, 1996979407.0, 1997355523.8, 1997505229.2, 1996890682.0, 1997395059.8, 1999903481.2, 1997650586.2, 1955832644.0, 1985391222.0, 1933665158.6, 1758073860.6, 1498192758.6, 1543588965.4, 1450641118.6, 1536497297.8, 1659600361.2, 1499563034.8, 1089670579.2, 838078297.6, 775600028.0000001, 865822101.6, 960734765.6, 722041698.5999999, 576963047.4, 668531045.6, 901517903.8, 778651921.0, 670640666.5999999, 639423474.0, 751898240.0, 725665733.8, 584905822.4, 467590364.4, 421228789.4, 257223442.8, 126446905.92, 81049222.92, 84136408.04, 82863453.91999999, 64929251.62, 66344786.56, 102790903.4, 122139756.32, 137293353.52, 131935588.56, 182551846.14, 275520817.4, 161275783.24, 142949417.01999998, 143756643.16, 84177861.03999999, 88207382.98, 92953985.2, 124133744.86, 94430046.76, 58234273.76, 33199899.92, 6218066.38, 2454872.48, 0.0, 0.0, 0.0, 4046263.44, 39029079.36, 26828295.76, 15018432.44, 2633507.92, 2271982.02, 3081035.3400000003, 2400069.66, 184025.12, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1423294.0, 69506217.17999999, 245918196.2, 231772034.4, 13595972.56, 185717441.9, 309412368.6, 424909787.6, 810443416.8000001, 1080628955.0, 880003881.0, 525092765.6, 535239134.2, 569481572.0, 500900121.2, 452766671.2, 747470195.6, 783685351.2, 602701793.8000001, 761190795.8000001, 630002857.6, 592524707.1999999, 734666897.5999999, 640294145.2, 679502580.0, 467865511.0, 493104414.2, 390577956.2, 285746399.6, 186207021.66, 97995645.0, 159390215.58, 91204071.52, 57664521.18, 35142995.28, 22616213.040000003, 9195012.1, 21656998.9, 1348485.22, 357981.02, 1089460.0, 28248099.84, 43975420.48, 52644582.38, 29883510.18, 32445633.86, 94771873.26, 174551612.46, 231410883.2, 275862997.8, 369486827.0, 545146064.4, 717029202.6, 1283644337.8000002, 1321669462.8, 1092199651.4, 1865592939.6, 1843108482.0, 1817103199.6, 1206786506.0, 550078325.6, 1997914284.6, 1977798969.2, 1619380925.4, 1375391473.4, 1079661237.6, 1795847076.4, 1713483446.0, 1354389952.6, 1999995230.0, 1881681236.2, 1831402277.8, 1990144249.2, 1996688960.8, 1998331346.6, 1999038600.6, 1998576951.8, 1998029288.4, 1997580500.2, 1994666839.6, 1866739790.2, 1830887440.6, 1047179431.8, 999043915.8, 963586114.4, 905088744.2, 1136603461.6, 1448962014.8, 1744895445.9999998, 1663527958.8, 1848445333.0, 1968091178.2, 1966751602.0, 1948987500.6, 1956977422.0, 1934102250.0, 1799626765.4, 1969448437.8, 1996639976.0, 1996837600.8, 1949704651.2, 1904398293.0, 1935912599.6, 1954411706.8, 1954134011.0, 1945724161.2, 1972580362.8, 1969235733.2, 1998032723.4, 1997226020.4, 1991216093.8, 1977391075.0, 1951061852.8, 1070869411.2, 1378776545.8000002, 1295322543.1999998, 1098220081.4, 1215535523.4, 1051538038.0, 515864034.4, 551197497.2, 630277478.8, 958130631.0, 871187809.5999999, 1100540954.2, 1233423696.8, 938000809.8, 823258458.8000001, 1294245667.2, 1233494162.2, 1405570765.6, 1107324503.0, 1475835197.4, 1656817930.4, 1803698282.6, 1727548587.1999998, 1536906848.8, 1301553410.4, 1163371949.0, 1675235334.6, 1773096578.2, 1696261373.4, 1537767968.6, 1126221061.4, 1366731184.9999998, 1203980536.6, 1109863631.0, 729443271.4, 706736742.8, 774368819.5999999, 708668943.8000001, 917225937.4, 1115009863.6, 1137666318.4, 1149943631.2, 1077541927.6, 819969399.8, 664611764.0, 710727897.0, 718361746.1999999, 780993593.4000001, 723210702.4, 717644988.4, 622630619.6, 535905363.6, 451298123.6, 423729232.4, 409793002.8, 442538369.00000006, 344339372.0, 327731005.2, 231498925.4, 113622799.46, 27681639.1, 22558186.06, 3393777.7800000003, 541817.5599999999, 4397390.66, 6093558.74, 3747243.46, 1707691.58, 10682437.3, 38643535.14, 104073391.9, 112853992.1, 196944024.08, 331498532.6, 228094669.6, 522117265.4, 569275371.8000001, 924058682.0, 934497182.8, 1426418773.6, 1623736812.2, 1707371026.4, 1803887710.8, 1786069418.2, 1904545996.6, 1946003843.8, 1988377361.4, 1896485167.8, 1821351071.6, 1956953631.4, 1999905380.8, 1996902881.0, 1999986703.8, 1990937841.0, 1981367598.2, 1991267676.6, 1997789346.0, 1999998711.8, 0.0, 1999998299.6, 0.0, 0.0, 1584640304.2, 1388724798.6, 506476757.4, 314698255.2, 156328464.9, 34502483.9, 67556555.62, 479064327.6, 471538738.2, 421798135.0, 534403882.4, 715973809.0, 806793385.0, 469460991.4, 421905658.2000001, 301686372.0, 99956937.36, 3395923.32, 0.0, 0.0, 4512588.5, 30979422.66, 43752409.22, 2583489.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6024773.88, 101912518.44, 181672648.76, 218280964.2, 193458146.2, 176323142.42, 97353973.82, 115339925.2, 255038491.4, 358279701.6, 432614306.8, 428967459.4, 605590950.2, 735555097.8, 793254836.4, 852221925.5999999, 865245681.0, 966004918.2, 742725342.1999999, 418916723.4, 613774666.2, 719913528.0, 729385599.6, 692270771.4000001, 1080107619.4, 1414984730.6, 1357273833.2, 1596313961.6, 1603621183.6, 1940602015.2, 1965804188.2, 1959624273.6, 1889042393.4, 1595797477.4, 1789474150.4, 1495974656.8, 1816416566.4, 1838004597.6, 1814283997.6, 1524522576.0, 1504349750.6, 1408059400.0, 1375595778.8, 1280627750.6, 993928746.8, 631593084.0, 440110850.0, 280890964.8, 315909130.0, 788073161.0, 1563561539.0, 1875884845.2, 1589594210.4, 1302933803.6, 1060455817.8, 1703320945.0, 1662586686.2, 1937468080.4, 1784688959.6, 1487243460.0, 1049892665.2, 1120428759.0, 1141437241.4, 1055205909.4, 1158372013.0, 1271175107.2, 1213238352.4, 1023350448.0, 1007337994.0, 1090116049.4, 1049284657.6, 820610811.0, 1068340456.4, 1153141339.0, 1078794959.4, 935426682.0, 1301996999.8, 1523443636.8, 1810697695.8, 1972661130.4, 1997886318.6, 1999996747.0, 1999994765.2, 1999999889.8, 1996824197.6, 1837369555.4, 1788833529.8000002, 1646297460.8, 1467103748.4, 1378663088.2, 1107010116.0, 1618067625.8, 1306936522.4, 1555852966.9999998, 1370799209.0, 924369627.8, 779647437.9999999, 947128500.0, 1227178034.4, 1292193140.8, 1463885939.2, 1221723553.2, 1187432596.0, 850053581.4, 666355999.8, 413887631.2, 260237228.6, 181314022.52, 113599596.58, 110560996.92, 99686196.18, 50445217.1, 41997094.1, 19040445.1, 22040185.48, 48038796.74, 50602037.18000001, 115527966.88, 180297646.52, 63660721.72, 53635091.900000006, 32742109.24, 14886897.44, 17745368.84, 28588206.5, 25497028.8, 32268722.16, 56626191.940000005, 23949652.5, 92719772.06, 85366894.02000001, 162109438.52, 131093686.04, 125058611.36, 87313958.22, 45516800.760000005, 87840001.26, 124220520.42, 116038115.66, 121981944.84, 163497522.8, 169811105.5, 144616913.04, 65613582.900000006, 31045082.08, 30720440.62, 52959981.26, 31968010.56, 15038064.4, 22270539.1, 41430685.34, 68290404.6, 65077634.92, 54800079.92, 106868803.04, 142222448.26000002, 251900455.0, 301682875.8, 337046027.2, 321242600.8, 379821437.8, 483998514.0, 565703688.8, 438084256.6, 616509780.8000001, 624132270.0, 981213420.6, 1182875496.8, 765146414.2, 507168868.0, 180375822.44, 46725106.22, 2227777.68, 0.0, 247606.76, 4201825.28, 2200249.94, 1038267.78, 2299529.34, 379795015.8, 153529496.28, 182005.88, 2877408.9000000004, 22655015.9, 48633353.22, 305775360.6, 313470558.0, 567698086.4, 551633855.0, 416676290.2, 282221917.6, 197253889.54, 184023634.76, 194821064.34, 358572689.4, 626629406.4, 857166268.8000001, 436961108.0, 537329736.4, 363887869.0, 456207699.6, 621527963.0, 432678099.4, 379328605.4, 452986512.2000001, 504206015.8, 619929564.1999999, 640437637.2, 503621871.8, 333392339.4, 106991206.88, 29238341.78, 5654442.0200000005, 12509917.22, 0.0, 0.0, 0.0, 0.0, 1478105.78, 14236383.0, 8621190.32, 25625247.96, 80425241.16, 97935804.46, 207426180.8, 176134236.5, 190504932.9, 146990809.2, 74423531.78, 24728977.66, 94556083.8, 36020961.2, 20043466.4, 5397877.94, 2829769.18, 1156552.26, 0.0, 0.0, 0.0, 10561412.48, 38230051.58, 31463753.54, 112978365.94, 292179412.4, 583966106.8000001, 551777242.6, 574038830.4, 567168157.0, 674842993.5999999, 462360047.6, 254124575.8, 176069309.85999998, 0.0, 32887688.34, 12436785.7, 111296195.54, 240742763.6, 237805876.2, 85570050.2, 4682665.72, 30509995.12, 54114498.74, 31000249.02, 396633606.2, 1166782969.6, 428166606.6, 981538962.4, 567800996.4, 413856782.2000001, 318646888.4, 86784779.25999999, 27915094.48, 83769716.76, 339346878.2, 621484142.2, 1275806924.2, 1180786467.8, 1273743808.0, 1200703430.2, 1171982389.6, 883591120.4, 852944052.0, 678891955.4, 411946960.6, 150016842.78, 49595777.7, 237350.62, 0.0, 116792134.98, 74865609.8, 5608471.86, 0.0, 15297892.6, 43866236.66, 0.0, 1087014278.0, 1989665967.2, 1989327565.4, 1997538968.0, 1998832629.0, 1999183501.2, 1994912455.6, 1991386189.0, 1982994708.6, 1944751689.4, 1987083453.2, 1991886074.4, 1985933468.6, 1960036992.2, 1905444146.6, 1814761603.0, 1765454696.2, 1478028128.0, 1241692409.4, 1096018610.8, 955337433.8, 1012274142.4, 849784435.2, 715157345.8, 431989822.8, 344670634.0, 188726639.24, 125379308.08, 163599140.79999998, 87673071.39999999, 77678026.64, 85108467.66, 68209408.96, 54758514.82, 41025298.08, 8869488.66, 1363547.26, 376183.02, 0.0, 29238128.200000003, 26856551.74, 71624161.66, 136126709.0, 216316734.6, 378387898.2000001, 614055126.8, 648470199.6, 859945441.0, 1057188730.4, 842677564.0, 1341359795.2, 1053721676.2, 712756099.8, 383645642.6, 637674779.4, 360749130.0, 1246234369.8, 1117458744.4, 1625720125.0, 1750279142.4, 1964369566.8, 1970466574.4, 1982604128.8, 1870274533.6, 1723010906.6, 1916500405.0, 1779906405.6, 1595404924.0, 1078345635.4, 795317645.4, 572505342.8, 638709689.0, 663748519.6, 409563849.4, 315387364.0, 150879622.74, 97181876.32, 111244501.86, 114297518.82, 198989684.24, 248094868.8, 268502364.0, 403210415.8, 644215811.4, 613788303.8, 1075643728.0, 1471988204.2, 1154757638.2, 1058897943.8, 1732592195.4, 1842512157.8, 1939951340.2, 1974645893.0, 1991891763.2, 1998292395.8, 1987608554.8, 1877414941.4, 1673151466.6, 1302803792.1999998, 1053833242.8, 613887407.6, 472142476.6, 333476577.2, 272699369.8, 424043901.8, 452178400.4, 606613715.4, 372099210.6, 397102570.2, 442551015.8, 394738510.8, 426253228.2, 426895766.2, 368023584.0, 379726676.6, 496305172.8, 467797521.4, 383622389.4, 311718530.4, 384774248.2000001, 503394062.0, 788692151.0, 869744771.2, 842282933.0, 443643158.0, 545082503.4, 511053076.6, 489708218.4, 452678246.0, 317898907.8, 198349723.68, 231927047.4, 167948099.2, 10178650.14, 3683620.2, 886286.56, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 413419.74, 1102686.64, 2232832.92, 14379376.14, 1957606.26, 27774645.02, 76450001.22, 72561587.0, 160979830.22, 293208937.0, 452127854.2000001, 602125859.4, 644608383.4, 700396186.2, 888566054.0000001, 1093837431.2, 885800024.8000001, 1002706071.0, 1518979981.4, 1513212574.0, 1788840717.9999998, 1937272392.4, 1936790462.6, 1939925535.2, 1989921422.8, 1997881703.8, 1999996865.0, 0.0, 0.0, 0.0, 0.0, 1970377901.2, 1771060121.2, 1543730964.8, 1785795836.8000002, 1907358975.8, 1998098407.4, 1999102151.8, 1947413398.8, 1941592149.4, 1330696963.6, 1239750456.8, 1838090583.4, 1942798088.4, 5249004.26, 17747000.959999997, 685383234.0, 797485323.6, 531831683.8, 671988255.6, 554942136.1999999, 753360472.8000001, 550775089.6, 488537182.6, 538283244.6, 364200656.8, 223876385.2, 459702926.2000001, 379169989.6, 563205055.8000001, 276594262.4, 1595314413.2, 1721576540.6, 1830623841.2, 1391481035.8, 1460094739.8, 1517417481.2, 1280522471.2, 539249197.4, 221379926.8, 48103447.2, 12772530.7, 45405284.3, 58931921.8, 153265076.68, 140548702.35999998, 274534108.6, 339005960.40000004, 286565014.4, 365811203.2, 597629801.4, 683987796.0, 909099522.0, 959011541.4, 1338350919.4, 1225882216.4, 1480889348.4, 1758628875.4, 1470174438.4, 1638407782.4, 1773353295.0, 1896691910.8, 1842586891.0, 1991700363.4, 1943803024.8, 1936605211.0, 1879751322.2, 1419669711.4, 889330542.8, 768143012.5999999, 606413172.4, 914789097.8, 667773962.4, 1107849191.0, 700364500.6, 503272144.8, 859681364.0, 38908034.68, 261087364.8, 694150185.2, 10465573.319999998, 0.0, 4209249.1, 3230006.04, 26485992.26, 0.0, 2757023.02, 24462456.72, 206921277.0, 155665481.34, 330346338.20000005, 698465183.9999999, 464843781.4, 533637957.4, 595147889.2, 86450016.44000001, 59801148.18, 76509200.5, 5235978.100000001, 112460060.46, 149739316.04, 103242867.62, 88477403.26, 84620426.28, 200758040.6, 220207573.4, 50998933.46, 1047238.74, 176729153.35999998, 260428160.4, 86683604.63999999, 67701046.7, 64065389.0, 102231456.58, 129147404.38, 60127537.760000005, 10532428.6, 47475252.38, 33796985.84, 41923089.38, 53203767.32, 150222510.67999998, 0.0, 107484938.64, 431623000.8, 281617970.2, 196850499.06, 639526540.1999999, 787118565.6, 594200179.4, 1021232698.0, 821056254.4, 1114908474.4, 1384853891.9999998, 1411159694.6, 1265195861.4, 1455909432.8, 1570408457.0, 1764740410.1999998, 1301497539.0, 1395989235.8, 1373447490.8000002, 1334291243.0000002, 1947853612.6, 1485926605.8, 1526797147.0, 1702733929.8000002, 1810451143.8, 1649154645.2, 1500020300.2, 1378960904.0, 1253305552.2, 605336487.6, 572982801.2, 617969504.2, 552282341.0, 418819500.8, 374224450.2, 356175051.2, 289527693.4, 249315084.6, 159284505.29999998, 128536503.16, 127332711.06, 61955289.88, 2239461.44, 2029459.32, 3508675.8400000003, 34570734.22, 1204036.22, 134415882.79999998, 62799165.26, 120853800.24, 157659346.14000002, 355230978.8, 688482408.8000001, 1065106164.4, 1667445041.1999998, 1898296555.2, 1979182475.6, 1957020390.4, 1977377719.0, 1955025253.8, 1996811544.2, 1168213783.8, 1039128807.6, 854129657.8, 684719195.6, 741915231.2, 500799396.4, 737386885.0, 818508276.0, 783901856.4, 475566834.2, 866281058.0, 827083510.1999999, 632419815.0, 618598931.4, 646715260.0, 534091702.6, 547478467.6, 599484057.6, 617834367.4, 830284358.6, 927221136.0, 678330878.8, 659315011.4, 921479302.8, 1173661792.0, 1586450961.2, 1685327215.2, 1958080254.4, 1978748324.4, 1999996622.0, 1997698694.4, 1982631707.6, 1996696323.8, 1982511341.4, 1986091722.6, 1941721311.8, 1943593970.0, 1649049417.8, 1949782946.6, 1996753085.0, 1999993354.0, 1999997033.6, 1999997119.6, 1998121663.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999114185.8, 1896784126.4, 1722364173.8, 1423603501.4, 1519767637.0, 1286693248.8, 924502524.6, 919521378.6, 691108236.5999999, 259163308.8, 224554743.2, 0.0, 102276863.28, 976019283.8, 115518882.98, 411751884.4, 517445545.4, 447763951.2, 483741244.4, 926555660.6, 1340940419.6, 1339291309.6, 1847115636.0, 1928811533.6, 1999995985.8, 0.0, 0.0, 1999999600.4, 1999997752.0, 1793312537.6, 1531346181.8, 1582321926.4, 1828166019.0, 1051842993.6, 873925493.9999999, 647850983.8, 989165220.2, 1336120147.6, 1254060156.4, 1441739006.4, 1429613609.6, 1767269613.0, 1577658476.6, 1945329386.2, 1894347005.8, 1622439360.8, 1635718771.8, 1720008102.6, 1543317733.4, 1821065357.6, 1267653202.4, 1507980489.2, 1617113460.2, 1166717987.0, 1489410767.0, 1379349393.6, 939051631.4, 690156156.0, 519412353.6, 394865113.6, 218936499.4, 94713026.16, 56534088.82, 135726366.1, 379826006.6, 137655277.82, 158174364.70000002, 392539143.2, 287078834.6, 255820194.8, 365351002.6, 422255183.0, 477889123.8, 351877976.00000006, 458654137.8, 461704211.2, 637345206.1999999, 636011622.6, 288096322.0, 203220547.2, 239482801.2, 278506648.4, 260856393.0, 248642186.2, 819308931.4, 285516465.8, 347350851.2, 495077666.6, 757460711.4, 629811654.6, 1054446866.6, 1184777012.4, 1338452801.8, 1275374730.4, 1276044558.2, 860194711.2, 667932892.5999999, 953271474.4, 762766174.8, 685168539.8, 834998205.0, 538109483.8, 559980552.6, 384079310.4, 420125161.2, 268461513.4, 137894996.14000002, 919745055.8, 1799767762.2, 1788614884.0000002, 1220031753.0, 1786347409.8, 1936419825.6, 1961970903.0, 1999939883.8, 1999959973.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999995771.4, 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, 1999995130.0, 1998177617.6, 1999232543.8, 1916149666.8, 1999994571.6, 1999994287.8, 1999761508.2, 1999996361.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999927471.4, 1999809909.2, 1994957224.4, 1964296766.6, 1981844378.2, 1958987485.2, 1820949527.8, 1452505938.2, 1515387457.8, 1245184178.0, 930320550.4, 764320705.8000001, 805591514.0, 703109429.8, 461705916.0, 390366449.2, 340782325.40000004, 399906074.8, 548435409.0, 891380024.5999999, 1157585141.2, 1215757737.6, 1310434607.0, 1564276110.4, 1489152038.1999998, 1228949625.0, 1336164363.0, 1488239752.0, 1644132726.6, 1460678348.2, 1976935050.6, 1931090146.4, 1759373326.2, 1823162902.4, 1796898213.4, 1640370376.4, 1388036905.2, 799105086.8000001, 921765333.8, 734657677.0, 466761791.4, 642979638.2, 948038722.6, 1040427005.2, 989300526.2, 979806336.2, 990599026.8, 900348263.1999999, 713580004.8, 437984960.4, 311206497.40000004, 122436653.42, 126108708.0, 181239615.28, 220498122.6, 291749694.40000004, 588489870.2, 813168528.6, 997696592.0, 1200492431.0, 1172419039.8, 1314101638.6, 1683703561.6, 1814412608.8, 1766781889.8, 1811312952.2, 1850122900.6, 1688779306.2, 1349525926.0, 1273374294.0, 1211382656.8, 982160528.0, 653598106.5999999, 456432343.00000006, 236156634.6, 124836064.68, 33578848.0, 2722615.22, 659187.0399999999, 0.0, 0.0, 4041706.0, 40937126.7, 102835196.32, 217539216.4, 287188218.2, 474475154.0, 973172875.0, 954756397.2, 1040022898.0, 1048124914.4, 1247674559.0, 1413500707.0, 1534671246.8000002, 1493910638.4, 1186248441.8, 1254676988.8, 855595941.8000001, 1653983026.8, 472514311.8, 540541786.0, 305264494.6, 45900665.12, 4845183.48, 0.0, 0.0, 116227349.18, 5366400.68, 203234768.8, 1686897435.6, 1299557291.8, 1400471050.4, 1777381758.8, 1609440192.4, 1437342303.6, 1999994256.8, 1827398688.4, 1391047051.8, 791677858.2, 573869683.8, 940389736.2, 728045671.4, 35074084.62, 60587783.48, 61489815.42, 47217581.46, 52856873.38, 57112849.02, 23247694.76, 57501736.04000001, 235529212.8, 226148702.6, 369754870.2000001, 805589935.9999999, 720266022.6, 368665522.8, 452181345.0, 473644972.0, 337657872.40000004, 132056314.04, 162416922.96, 94959904.54, 28006127.4, 162547840.55999997, 155834280.7, 138107108.23999998, 174737058.7, 188492523.06, 177146390.57999998, 86052408.72, 114291981.98, 225899861.0, 89060140.56, 2744936.16, 2277091.42, 2154281.5, 3208078.12, 2278476.16, 0.0, 0.0, 0.0, 30810723.52, 41424025.54, 9728536.12, 21044834.520000003, 28538192.0, 128885517.74, 252858016.6, 59673184.1, 256407856.0, 260288001.00000003, 287750062.2, 587603078.6, 1024126858.0, 926483433.2, 858564768.8000001, 827379935.2, 473925201.8, 536665100.0, 710158932.4, 664849235.4, 599762291.0, 1096347426.6, 473208817.2000001, 333596494.0, 672550073.0, 632629734.8, 717575833.8, 769615404.2, 845656160.0, 563870702.1999999, 705368454.0, 1205234979.2, 1770497386.0000002, 1474423592.6, 863097162.6, 1109546653.2, 882056601.8, 1069348264.8, 1211439919.4, 876824299.2, 880574739.2, 903452530.4, 735979508.4, 608093591.0, 605774212.0, 502755042.0, 391588747.4, 392454916.0, 324371198.79999995, 196224977.64, 170497388.73999998, 111140902.34, 63395579.92, 60585391.24, 36568322.28, 34730423.52, 30337972.4, 23473623.76, 4157753.48, 366426.8, 0.0, 0.0, 1249140.34, 13416731.420000002, 83496780.44, 201065682.8, 432075499.2, 665044926.8, 745896551.2, 850127057.0, 1388596888.8, 1615690781.2, 1581203605.4, 1280782600.6, 1192435132.6, 1256954285.2, 1087416471.2, 1234184748.4, 1362331265.0, 1597809021.8, 1663218438.2, 1792394582.1999998, 1939406155.8, 1828724941.8, 1766515035.4, 1960685266.0, 1997169420.8, 1998368654.0, 1995239493.4, 1818323732.8, 1461257592.6, 1144302224.2, 931671638.6, 659703832.4000001, 751812991.5999999, 618565554.8, 849231758.4, 399586366.8, 796101976.6, 367878431.4, 214826780.2, 346315869.0, 92835012.4, 38337752.08, 386195284.0, 93826897.28, 52456465.24, 222935499.0, 247512547.4, 340940498.0, 341814420.4, 243973352.8, 101823781.12, 311683062.2, 379294465.6, 262787448.8, 111945046.08, 108101684.3, 57323031.96, 12304615.42, 1446981.14, 531294.28, 12995481.26, 70367785.3, 109775936.62, 62831899.72, 9978918.28, 22814126.3, 112305265.34, 555703760.1999999, 917776676.6, 1313525104.6, 1839771707.8, 982579829.8, 622294660.1999999, 597667212.8, 547120527.2, 803012366.0, 1282985976.4, 1564510401.4, 1704323314.2, 1718364051.8000002, 1676243081.2, 1915077643.2, 1837895342.0, 1870614165.2, 1996010727.8, 1490201432.0, 1867820410.4, 1975036757.8, 1998147267.4, 1975089678.0, 1759480761.0, 1219370061.8, 788128356.4, 1523701103.2, 1425547510.8, 1425665275.4, 1768438737.0, 1859077896.8, 1807213346.6, 1517785978.8, 1729065620.8, 1479863132.8, 1915370607.0, 1875702191.0, 1988701040.6, 1998219283.0, 1991982486.6, 1996860047.8, 1883043146.2, 1446866249.4, 1037575955.0, 1420921799.6, 1119896907.2, 1264967570.8, 557118570.4, 672042234.4000001, 400925224.0, 285700201.6, 596583102.6, 197548373.54, 750399031.4000001, 959950892.4, 1003721416.0, 1386967571.2, 721808717.4, 815231912.6, 608623603.2, 1352762839.6, 1112804184.0, 984778995.8, 1616068152.1999998, 1962693582.4, 1997372647.6, 1999230440.0, 1967901867.2, 1979544320.0, 1987859539.6, 1990331181.8, 1999997422.8, 1999996960.6, 1978078303.0, 1990096507.2, 1961462117.0, 1948228276.0, 1856511055.6, 1854551587.0, 1861536874.8, 1942026875.4, 1954609055.4, 1966841010.4, 1985693303.6, 1951493842.8, 1800919994.6, 1725370433.6, 1582313636.8, 1524373474.4, 1710628214.2, 1807429295.6, 1828791991.0, 1951638615.2, 1957978888.4, 1892724095.6, 1947534144.2, 1773703598.2, 1747516054.0, 1637761518.0, 1359905520.4, 1320221815.8, 1142223532.0, 955704176.2, 965294261.2, 990335787.4, 1058450687.0, 1004540539.8, 846177787.2, 632076826.2, 470329594.4, 383356650.8, 236582502.6, 116220467.3, 90321369.96, 70150309.28, 140252038.42, 129942703.14, 98877581.2, 71284136.42, 60812920.18, 69339964.38000001, 80087774.96000001, 47341665.6, 38313252.86, 19634265.22, 4662207.42, 2019620.74, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 588594.96, 8350975.12, 4970925.46, 2039742.04, 1184662.56, 20407141.8, 71609686.06, 139884363.14, 126428463.74, 233026493.6, 267929907.0, 226420825.0, 157311771.3, 174232211.79999998, 177606825.28, 190698175.22, 181228742.5, 246901810.0, 447463000.2, 299919033.6, 296132670.2, 534476078.6, 512346906.0, 664945077.0, 700542031.4, 946051854.2, 821569456.6, 833663141.6, 939058776.6, 1071170607.0, 1363280809.4, 1530532290.8, 1448457306.6, 1512630014.2, 1992456621.6, 1998151584.0, 1981607231.6, 1967349562.0, 1800619890.6, 1280530029.2, 514404782.8, 1072342146.2, 1460587564.0, 1405129742.6, 793099048.4, 1182499959.6, 1207765894.2, 1057895008.8, 1028188818.0, 1052143502.0, 1112927889.4, 1039898450.4, 1076208213.6, 1090215587.6, 977036092.8, 1040468352.4, 949075251.0, 972241722.0, 976483812.4, 795171472.4, 704394851.4, 688147307.0, 760285478.2, 497542295.4, 393015492.4, 330146573.2, 403943142.0, 329523857.0, 221746296.8, 322526170.8, 346033989.2, 255405076.8, 271367108.8, 154985060.58, 80311872.66, 7502588.64, 379074.72, 0.0, 0.0, 0.0, 0.0, 0.0, 2573331.24, 6339649.72, 7814190.38, 29293764.28, 65368495.9, 170610039.5, 202539068.6, 179930676.92000002, 106321020.86, 127598585.62, 244050639.2, 88388033.36, 33830468.44, 29190777.34, 15345112.7, 1770213.64, 497176.06, 5611242.119999999, 1186559.54, 0.0, 1513465.1, 7628747.84, 51653133.26, 93095779.94, 145428225.44, 393700723.4, 367244829.6, 504327202.0, 824193872.4000001, 887494558.8, 711293434.6, 555864591.4, 493355768.2, 385538859.4, 283836457.6, 168781048.96, 140265640.07999998, 54257437.2, 21822170.28, 11013046.04, 894697.6, 319945.74, 0.0, 0.0, 0.0, 0.0, 2020874.7, 46728430.08, 2473657.72, 336809.3, 4087392.6, 26162132.06, 50633014.96, 52070324.98, 55830419.78, 34864239.34, 6489092.96, 658665.0800000001, 0.0, 2173205.22, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 857220.36, 13386687.58, 42957653.52, 100903360.4, 155674877.8, 199255258.72000003, 362405342.6, 390652990.4, 427149908.6, 596472795.6, 711958561.4000001, 913535819.6, 895956334.0, 1034884749.0, 1054304055.2, 1085148414.8, 1296666778.6, 1209515111.4, 1172591203.8, 510028679.4, 254607836.4, 192938630.78, 84325771.7, 116275403.44, 233810858.2, 37179302.04, 1324006.8199999998, 203284900.0, 227135389.8, 203755965.8, 101055529.98, 241551312.8, 317473959.6, 280171670.0, 585714876.0, 561983160.4, 599240515.0, 763125783.6, 635783197.2, 1322392413.8000002, 1806369396.2, 1841852871.4, 1735212946.0, 1687220296.2, 1805319791.6, 1928307267.0, 1751059463.1999998, 1798249418.6, 1730139283.8000002, 1881258440.4, 1639898299.4, 1985113291.2, 1924967183.2, 1811770228.2, 1897623272.4, 1913975085.4, 1719044585.1999998, 1366630122.4, 737454224.1999999, 558963669.1999999, 901348877.2, 459148658.6, 343196369.0, 429132589.0, 416089029.2, 584761896.2, 470609694.0, 455366129.2000001, 455388271.6, 293647433.8, 294000299.2, 316390116.8, 298102033.0, 117859890.3, 109992629.62, 182318123.74, 255549112.8, 223540199.4, 214248275.8, 126417795.14, 85205488.36, 89444182.10000001, 47337256.42, 21753412.94, 10100882.22, 5099526.54, 2327366.64, 1300790.3, 2832540.28, 0.0, 4146691.54, 3314589.8000000003, 23005642.96, 32596492.5, 92302914.66, 182806470.9, 189641367.2, 93734303.5, 114026744.14, 78784680.24, 69253364.28, 18452365.3, 25316288.26, 22455412.6, 65711405.86, 91739595.76, 112907329.36, 156283743.3, 160465330.98000002, 149175627.04, 101474833.56, 94981546.22, 184794368.4, 219664092.0, 180410863.82, 159564711.12, 146085560.92000002, 149764251.16, 142589281.24, 106172992.02, 61161168.82, 18111028.16, 12305262.9, 3432668.02, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1621131.92, 3511709.38, 6322398.460000001, 12674281.4, 1790233.72, 0.0, 0.0, 2020422.36, 11281928.64, 45414579.22, 77789654.38, 182594305.26, 198036660.36, 199682607.0, 157313706.4, 205474747.0, 144448633.72, 102579173.56, 72196201.72, 63880950.24, 66724800.6, 31777448.04, 20393563.74, 59926086.400000006, 63069668.56, 124271017.74, 86227215.58, 66983516.98, 21556634.86, 3593317.08, 34678014.300000004, 80801931.94, 82738063.68, 302134566.4, 610134800.0, 776336123.0, 366388437.2, 192065164.52, 174539149.28, 677346790.9999999, 765917620.2, 799523780.1999999, 585999142.8, 808607173.4, 927143537.0, 1174381909.4, 1221073089.4, 1442227719.0, 1329899139.8000002, 1765265311.4, 1562692705.0, 1985289354.6, 1775145537.0, 1847939812.6, 1887235903.6, 1854121002.0, 1640670166.8, 1467033177.6, 1107650078.6, 1089729779.0, 840757657.2, 712816304.2, 789282868.1999999, 650315063.0, 439246944.4, 367041271.4, 224154479.0, 770655573.0, 1999999622.4, 1998935053.6, 1918578886.4, 1964914469.8, 1951873871.4, 1953829860.8, 1961019537.6, 1772850212.8, 1640677672.2, 1955781308.0, 1969332622.8, 1955294565.0, 1973885473.4, 1955309177.6, 1889134756.6, 1853162092.2, 1780794127.2, 1274442550.0, 1175299222.6, 1799524002.0, 1599825053.6, 1379397725.6, 1057173571.4, 1004195849.8, 909950978.8, 938047480.2, 742778715.5999999, 600157948.4, 718072581.2, 706191505.5999999, 456213697.2, 671188327.2, 874054156.8000001, 1068200804.2, 1282660461.6, 1325743881.6, 1173762126.4, 1395812142.1999998, 1326110678.8000002, 1442173495.2, 1786352781.6, 1577155804.2, 1970600984.6, 1963498797.0, 1816920473.4, 1999214569.4, 1999994837.4, 0.0, 1768014230.8, 1997615644.2, 1998363978.0, 1993909822.8, 1932115632.6, 1998281218.0, 1997751187.6, 1982335142.4, 1877347419.0, 1706793891.0, 1473144577.8, 1307154443.4, 444218767.2, 147840106.72, 303448258.2, 396005295.4, 376018259.8, 254804934.8, 252026194.6, 173123628.35999998, 128768536.78, 42616469.14, 4345245.7, 1929646.76, 17691901.8, 51363296.260000005, 377329449.6, 132180394.08, 274963416.6, 280022711.2, 368414250.8, 293123653.2, 296097564.0, 208398333.4, 246013178.2, 71382238.92, 101066043.06, 100199520.56, 357471526.0, 362132667.2, 464155777.8, 474479242.4, 618329676.8000001, 853884122.8, 580920869.8, 388145653.0, 400048184.0, 630266045.2, 494874406.6, 1271946791.8, 1142835868.4, 1269559040.0, 1147917132.4, 1655223807.6, 1849754593.6, 1978435756.0, 1999998618.6, 1999997954.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1903232011.8, 1999996286.6, 1999999601.4, 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, 1999995924.4, 1999997303.2, 1782139066.8000002, 1577462102.2, 1256524376.6, 1377214177.8, 1184162318.4, 911933801.6, 1081929120.0, 1137020206.4, 1712733555.8, 1945202884.8, 1853737445.2, 1915864203.2, 1701772210.0, 1984687526.2, 1668805873.8000002, 1722174508.4, 1903908940.4, 1939816378.2, 1996654682.2, 1990169756.2, 1991633360.4, 1959974534.2, 1819056517.6, 1946190352.8, 1770095187.4, 1873520322.6, 1960645118.8, 1999197420.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 802703377.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1995951743.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999826956.2, 0.0, 1995568131.6, 1997324341.8, 1773931789.0, 1171205565.6, 46417503.3, 405926311.4, 800942168.2, 1948205669.6, 1862541659.8, 990931378.2, 1999998611.6, 0.0, 1999999802.0, 0.0, 1999994470.0, 1996062440.4, 1980241116.0, 1942733149.6, 1944823589.2, 1889226044.0, 1594708918.1999998, 1736870749.0, 1798824790.8, 1683622092.8, 1740891159.0, 1964227294.4, 1942504599.2, 1865630119.0, 1947110638.4, 1981621005.2, 1369039728.0, 1563937117.8, 721611401.0, 110815187.14, 535036726.4, 245013222.6, 199881761.28, 321132206.0, 302023133.2, 1456069574.6, 1320420655.0, 746201399.2, 436552924.4, 306729574.0, 185596741.32, 282100072.6, 198576534.48, 108844146.84, 55515703.88, 15758192.7, 17404264.12, 5471659.48, 0.0, 934117.62, 376364.02, 473373.16, 1055673.98, 561834.34, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 125716988.96, 124694162.36, 130471819.06, 75705102.44, 8841609.32, 32762345.88, 35200615.76, 136450763.04, 135359575.92000002, 121271925.54, 424572098.6, 271425362.6, 279618181.4, 320286733.20000005, 344529451.0, 88414359.26, 49713786.22, 17348363.92, 2353356.32, 0.0, 0.0, 330108.48000000004, 392519467.4, 732784845.4, 475086889.4, 252629401.6, 176485236.02, 83821290.03999999, 146445432.42, 171816540.38000005, 168242494.4, 170411344.48000002, 185388163.44, 37328701.5, 33340237.44, 53625338.96, 57671857.66, 50715417.7, 105048458.32, 56119760.220000006, 44864100.220000006, 69654932.17999999, 62023959.81999999, 30860154.32, 30643953.8, 45509580.76, 23859437.64, 74729731.36, 30881858.12, 22077108.42, 5289636.680000001, 17100006.04, 142238156.0, 69400418.22, 253194028.6, 311384960.4, 198394195.4, 268208374.8, 318004664.0, 481075710.2, 468287598.8, 536265917.2, 492586373.0, 695955253.5999999, 1343812455.2, 1370923426.8, 1240281576.2, 1090916354.8, 1058218828.4, 1295880458.6, 1205595116.8, 1497909094.1999998, 1365714804.8, 1216082124.8, 1123503396.2, 897829340.8000001, 846549609.4, 754709698.4, 907932713.0, 503374114.2000001, 372471982.2, 356564905.2, 422368236.8, 452955467.6, 516037004.4, 795142402.0, 1052026466.0, 1109741123.6, 716674478.0, 628693140.4, 665618413.4, 625649069.6, 682212703.6, 732618603.8000001, 734114286.4, 944318851.4, 992861331.4, 1205549311.2, 1366319322.4, 1416051245.4, 878867476.1999999, 891755974.4000001, 758571020.2, 968348428.6, 1067688466.2, 927641047.4, 1148059740.8, 1148465079.0, 990707992.8, 671034683.8, 622279568.8, 732472859.4, 825337567.4, 1103769880.6, 841014798.4, 813652657.8000001, 842440537.6, 656622484.1999999, 508604086.0, 644165905.6, 681602105.0, 612923872.6, 418677644.2, 293102717.0, 212549133.4, 178077855.4, 82283144.1, 22069025.34, 51858375.2, 70872717.06, 31271572.1, 29802853.040000003, 33109948.38, 50043467.46, 84763145.56, 22452479.64, 5307715.92, 744977.22, 0.0, 86484408.6, 134733333.56, 471600478.2000001, 228285237.2, 158281122.42, 48903857.620000005, 76058598.36, 66158177.84, 63308724.78, 32517888.3, 11444465.5, 10170052.64, 1068529.92, 0.0, 0.0, 0.0, 0.0, 3945102.3, 1067369.3, 574128.62, 0.0, 400535.52, 2388995.82, 449871.02, 0.0, 0.0, 1582775.42, 996789.8, 2588980.98, 15894757.58, 36836686.78, 22170826.24, 17842103.7, 11641066.680000002, 2613662.64, 8363180.02, 28297083.72, 124533803.46, 83027469.72, 117719633.08, 178513121.1, 126270939.02, 120216314.14, 203502906.2, 118512188.98, 325623704.40000004, 403924577.8, 472927188.0, 545623658.1999999, 325247234.2, 356018935.0, 394534855.6, 551412662.0, 561241773.0, 344708716.8, 563620348.0, 500839341.4, 280864944.8, 362895394.2, 415102081.2, 442708040.2, 525074750.6, 600927676.0, 520064989.0, 702673411.0, 600408273.0, 385591532.8, 384082801.2, 260026660.8, 256030745.8, 309986167.4, 626865236.0, 1066897987.6, 1034774225.2, 1092001839.6, 886552670.8000001, 851375536.2, 705242305.6, 468129990.0, 389009378.2000001, 344534691.0, 359284411.6, 381159382.8, 483014923.8, 375931852.6, 435395598.4, 414749969.8, 413760446.4, 495059738.0, 331788904.20000005, 308480768.40000004, 355367612.20000005, 366162237.8, 417090320.4, 474385059.4, 960660778.6, 759026699.8, 508339865.0, 1012103058.6, 644579355.2, 888687192.0, 825216808.8000001, 781249065.6, 845989402.4000001, 769080611.8000001, 801524935.8, 863636055.8, 1002207696.4, 664021903.6, 690197202.1999999, 760900174.4, 727161867.1999999, 858846790.0, 1153311470.2, 972140501.0, 1143336575.0, 1426376800.8, 1349305031.8, 1008449666.4, 1200448655.8, 1306496891.4, 1218313737.8, 1273727610.6, 1100518076.4, 920850524.6, 870718879.6, 799258426.1999999, 1008605079.4, 1314203784.6, 1304433489.4, 1150733668.2, 1103500806.4, 892177336.8, 919229777.8, 516792170.4, 394846232.6, 724728888.0000001, 1081466606.4, 856581254.0, 935634231.6, 1018415352.4, 1074029337.4, 951849810.4, 1292590254.0000002, 1358325347.6, 1183066738.2, 1281404866.8000002, 913097877.0, 534920682.8, 339068007.6, 380479894.0, 256993058.2, 406038929.6, 502524547.2000001, 920841014.4, 720207045.8, 763763677.4000001, 516867391.2, 764965653.0, 927850274.8, 782731520.0, 1293643963.8, 1508920125.2, 1793418107.6, 1995522400.6, 1997656237.2, 1997803251.0, 1998737677.0, 1968735982.2, 1724906096.4, 1686258443.2, 963856965.4, 935482458.2, 480856675.8, 172200037.1, 489471873.4, 173359678.35999998, 30175926.4, 5397481.699999999, 3688640.06, 5997510.08, 3935788.22, 64796690.14, 151646014.56, 112642677.52, 133095855.82, 52297578.56, 1276381.1, 7639418.64, 0.0, 0.0, 5556181.76, 142149002.58, 200426996.8, 413562947.0, 629419044.2, 611928344.0, 658613810.6, 607225389.1999999, 950977166.4, 1284385682.9999998, 1091616348.0, 1394869920.2, 1427208136.2, 1543238757.1999998, 1599537432.8, 1892116606.6, 1934667442.0, 1980383052.8, 1981375295.4, 1996229143.6, 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, 1999362284.6, 1999883533.8, 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, 1999944674.2, 1999996745.8, 1999997942.4, 1999995771.4, 1992382352.2, 1997363900.8, 1998070092.0, 1999994249.2, 1998195313.2, 1999904678.0, 1999999072.4, 1999998130.6, 1999996206.2, 1999996386.8, 1998202998.4, 1997247806.8, 1952298756.0, 1951602005.8, 1959232227.4, 1980023452.4, 1998065264.2, 1940957914.2, 1926992386.8, 1973251972.8, 1988503748.2, 1988410225.0, 1997673141.6, 1992677240.2, 1999783876.2, 1999797843.4, 1997898456.0, 1999138852.4, 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, 1999962835.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1997547832.8, 1999994303.0, 1980468157.4, 1954444815.8, 1997332669.8, 1951248513.4, 1899381496.2, 1855138808.2, 1825070077.6, 1802304043.8, 1887220971.6, 1992220180.8, 1965726545.6, 1999995184.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1979722289.2, 1997161199.6, 1999761807.8, 1997650359.8, 1928083900.4, 1854962074.2, 1930631706.8, 1985282814.2, 1899959135.4, 1834172842.0, 1556478341.6, 1306301030.4, 1158687623.0, 1163435612.0, 1147257755.6, 957437665.0, 866848720.0, 694099509.4, 777099125.4000001, 710695641.6, 645488492.4, 694972036.1999999, 574071450.4, 483404483.6, 342697145.40000004, 177964519.2, 140075819.70000002, 171515606.92000002, 122862008.04, 100060334.62, 61419705.440000005, 44550925.6, 8052096.140000001, 7210519.680000001, 22048922.74, 188774749.58, 414550440.0, 263997283.4, 234329472.4, 281279053.2, 236554182.8, 218152438.2, 97980722.86, 119810341.42, 168016416.12, 101059947.4, 196593622.68, 417017639.00000006, 449483818.8, 418625918.6, 499823823.6, 417674312.4, 555248751.0, 442975977.0, 318470230.6, 445323167.6, 404743571.4, 403841710.0, 547763008.2, 742899915.8000001, 1231996849.8, 1755135215.4, 1749339744.0, 1997990332.2, 1884829494.2, 1916594518.4, 1964802713.6, 1958351197.0, 1914543937.4, 1884283950.6, 1896667638.6, 1789682969.2, 1566395012.0000002, 1481034790.0, 1964762405.0, 1996983107.4, 1997498327.4, 1999996393.0, 0.0, 0.0, 0.0, 1999998588.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999943011.6, 0.0, 0.0, 1999901548.2, 1999922417.2, 1999799921.4, 1993926322.2, 1968387868.4, 1931726531.4, 1792660549.8, 1778909409.0, 1435389853.6, 1252416701.8, 1286619418.8, 1016104901.4, 1065542866.6, 1104221520.8, 1224779416.4, 1237260478.8, 1351085443.6, 1334894914.6, 1835939043.2, 1954545824.4, 1901064674.2, 1944074488.6, 1984174874.6, 1996767025.4, 1999996268.0, 1999999971.8, 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, 1999999578.2, 1999998413.6, 1999996863.4, 1999997345.2, 1999996244.0, 1999935554.8, 1999994120.6, 1998223193.0, 1999174045.2, 1999996556.4, 1999996445.4, 1999995185.4, 1998964717.0, 1999048421.0, 1997369133.4, 1947208310.8, 1820053637.0, 1780887763.8000002, 1691150152.8, 1417709648.4, 1019931104.0, 1183534857.8, 1369182838.4, 1257345303.2, 1511257664.6, 1553174022.6, 1710419305.6, 1962845410.2, 1948966242.4, 1983314880.8, 1987086477.6, 1960287793.6, 1989077493.0, 1999406592.0, 0.0, 1999999644.0, 1999998691.0, 1999307143.2, 1999993757.6, 1999995367.6, 1998184167.6, 1996806602.4, 1999463005.8, 1961120016.4, 1820942083.8, 1492079742.0, 1200594824.0, 824800178.0, 665361195.8000001, 943113843.2, 977211712.2, 1172335699.6, 844400891.0, 554551782.0, 457157210.0, 400692633.8, 443539520.2, 661499263.8, 457677589.2, 904342394.4, 1359102504.0, 1989629233.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999998072.8, 1968445709.0, 1940522569.6, 1816934039.0, 1427157911.6, 1363064255.4, 896734502.0, 709138057.6, 590919442.0, 338217252.8, 226750813.0, 202171109.6, 54107092.4, 4732292.16, 414918.48, 916560.94, 778440.9, 3714790.84, 8290248.94, 57929134.86, 2918850.8000000003, 5508366.5, 45120086.2, 126168138.76, 226514152.4, 293969658.2, 270366730.6, 357169292.99999994, 640569548.4, 581018335.8, 346077293.0, 178214895.72, 205356320.6, 263659587.2, 159143100.07999998, 249528339.2, 396835612.6, 452574234.6, 573126188.0, 761039115.1999999, 1132854242.8, 1124741304.6, 924983696.6, 606532840.2, 541063567.6, 694124303.0, 1186284498.4, 1757112847.9999998, 1969670684.0, 1999997871.8, 1999999005.6, 1999994918.2, 1998353851.4, 1985357751.6, 1981404421.2, 1938050491.0, 1921238778.2, 1782882015.4, 1994248105.8, 0.0, 1999917154.2, 1999774077.0, 1999009636.4, 1998865770.2, 1474095000.2, 827052734.1999999, 1752134333.0, 1992083654.2, 0.0, 0.0, 0.0, 1999993238.6, 1996886139.8, 1161052968.6, 1513793855.2, 1289374179.6, 964193235.2, 464509704.0, 236754894.0, 1716886616.6, 1559454676.4, 1394697120.4, 1110196645.6, 759320992.8000001, 1751959182.8, 1947417517.6, 1998117009.0, 0.0, 1999275307.8, 1999273293.6, 1995014896.8, 1982641254.4, 1999782863.8, 1975059038.8, 0.0, 0.0, 0.0, 1996755411.6, 1998622449.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1376336395.2, 1696677620.2, 1771294356.8, 1997043000.2, 1906245350.6, 1971156712.4, 1987119246.2, 1984734974.2, 1989335508.2, 1961602822.4, 1955269784.6, 1667228364.8000002, 979714141.6, 593569625.0, 1133817143.0, 1571209149.0, 1824627988.8, 1993207757.0, 1999884019.0, 0.0, 1999777196.8, 0.0, 0.0, 0.0, 0.0, 0.0, 1998825975.2, 1880716880.2, 1115152365.6, 983165938.4, 619177542.8, 183013087.58, 86223165.6, 34166138.48, 12053028.44, 1744709.9, 1394658.86, 1288561.7, 3405898.86, 62131718.74, 164316778.5, 238615559.0, 394279459.2, 935786476.8, 1295077717.0, 937323576.6, 1088445627.8, 1068572306.0, 1066103861.6, 1204868908.4, 1508139018.2, 1573925985.8, 1476466813.4, 1447755250.6, 1968656477.6, 1999809371.2, 1978937334.2, 1999996107.8, 1999924426.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999998292.0, 1999995247.2, 1999994075.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1932804870.8, 1822068432.4, 1947773503.2, 1638057749.8, 1550856281.6, 1531399792.4, 1316127046.4, 1597899310.8, 1273688537.4, 1423325156.4, 1349419766.8000002, 1212120439.4, 1094391158.2, 1175091109.4, 1167053899.0, 1340652676.4, 1389117293.0, 1326481197.6, 1216889716.8, 1273433551.0, 1401107117.4, 1401243896.1999998, 1504029139.2, 1528227032.0, 1501842703.4, 1442265832.9999998, 1501688200.4, 1683119353.2, 1901407879.8, 1773786397.8, 1816152892.0, 1807061764.4, 1760984950.2, 1746316577.4, 1922894634.6, 1912354324.4, 1982914930.8, 1971760036.6, 1947155809.6, 1999995435.0, 0.0, 0.0, 1999994347.0, 0.0, 1999996965.4, 0.0, 0.0, 0.0, 0.0, 1999992203.2, 1999071308.0, 1998010968.4, 1968538605.2, 1981903538.0, 1998595506.8, 1998180639.0, 1969521645.8, 1999500764.2, 1998824660.2, 1997952067.6, 1999994113.6, 1999779673.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1440784178.6, 0.0, 0.0, 0.0, 0.0, 0.0, 1374133753.0000002, 1990442403.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999545015.8, 1998669439.0, 1982436861.4, 1975102352.6, 1940989262.6, 1890293366.8, 1871915690.6, 1805295495.4, 1728416937.6, 1583426160.8, 1238384743.6, 1052502278.6, 1162882695.6, 1139633023.6, 1173943991.8, 1067966436.2, 879426642.1999999, 1101276770.8, 1120496853.6, 1172893059.0, 1033774207.6, 781414878.1999999, 1175796770.8, 710194886.4000001, 863314055.8, 885531806.8, 1281779792.8, 1248118118.4, 1453338131.8, 1434777425.0, 1725752432.0, 1598500983.6, 1526644754.2, 1573635168.2, 1285468335.0, 1032229615.0, 1274467226.6, 1472315678.8, 1574239277.0, 1609002966.6, 1609581557.2, 1544164657.1999998, 1584655166.6, 1729493180.4, 1581394355.0, 1339115466.8, 1324965104.6, 1307923724.1999998, 1225964492.8, 1135189698.8, 1523771549.8, 1357285098.8, 1510251011.6, 1955128590.8, 1963723845.8, 1997704393.6, 1959992961.2, 1999186770.0, 1999998598.6, 1999999078.0, 0.0, 1999997915.8, 1999997832.4, 1971465656.4, 1912688305.4, 1949643223.6, 1943402517.8, 1837334116.0, 1732477143.8, 1577440482.2, 1610044956.4, 1583214393.2, 1154763787.0, 1152441186.2, 838213153.6, 596598471.6, 945742742.8, 949206250.8, 870392036.1999999, 725641419.1999999, 658698162.0, 635361544.4, 592152210.8, 596193053.8, 379821219.0, 327456611.40000004, 270583697.4, 152625852.29999998, 47052670.92, 91320186.8, 16648203.4, 2167803.02, 2421662.04, 774780.2, 1934409.54, 16773879.06, 37619659.36, 56101240.02, 215022082.0, 272303780.40000004, 396702133.8, 311630600.2, 327124309.20000005, 631095198.0, 660245150.4, 629745050.0, 662479782.0, 882008804.4000001, 1227058204.4, 1551182360.4, 1960830661.2, 1942072309.4, 1972431906.8, 1993926656.4, 1975761085.8, 1971089982.6, 1611469264.6, 1094090576.6, 1176407705.2, 1325883465.0, 1269204031.0, 1701001104.4, 1805872441.8, 1277832645.4, 1149476351.8, 1409139202.2, 1434154196.8000002, 1683607349.0, 1521152289.6, 1823845503.0, 1969412951.6, 1982346315.8, 1999798417.0, 1998671781.2, 1999283133.2, 1464596641.2, 1229599617.0, 1657623827.6, 1511129146.0, 1739112739.0, 1738837891.6, 1004217590.0, 790027196.1999999, 742730590.5999999, 762911336.8000001, 147904550.54, 1074352209.8, 1041999294.2, 1039196824.0, 1022525094.0, 1076291352.2, 1134841864.6, 1193069892.4, 1507788713.4, 1001121077.4, 1162194298.4, 1556659610.0, 433504970.6, 7220084.72, 1601573511.0, 248026096.0, 1398213228.8, 1999258927.2, 1990474646.6, 1997705819.8, 1977414573.0, 1864299113.0, 1384004029.2, 1093194890.0, 808939269.1999999, 822798134.8000001, 777113764.1999999, 530890490.4, 322118259.0, 258784998.4, 182934440.52, 70579569.64, 83938910.94000001, 35302405.26, 4329752.92, 5362323.319999999, 23344252.84, 47772654.5, 131082435.32, 327335866.2, 519248697.6, 643895108.0, 638042856.6, 949723141.0, 1160596967.2, 1091482652.4, 912501471.2, 888508925.6, 938895107.2, 1157229611.2, 1081979011.0, 1014309925.0, 805755582.0, 952820004.8, 1024038637.6, 676330747.0, 611482798.6, 590599789.0, 815893810.0, 604225950.2, 660550480.9999999, 861891800.1999999, 618078713.8000001, 371365459.6, 292735284.2, 186034200.26, 128777502.88, 53748778.8, 84575344.7, 147956829.18, 51006197.28, 53267643.0, 2393263.26, 14395397.64, 56204193.2, 46839975.24, 62206104.98, 54861818.0, 42396755.88, 41193704.78, 47926488.52, 76267050.76, 7524444.54, 7543219.359999999, 1795055.78, 1149737.4, 7234753.18, 69769633.74000001, 87267779.58, 94053539.7, 230648217.0, 47568319.76, 199836516.74, 293663730.0, 1004370538.2, 518522341.8, 1021480114.2, 1235116897.4, 1761165795.1999998, 1980640596.8, 1999994930.4, 1999998201.4, 1999995872.6, 1941624905.6, 1839918397.0, 1637942415.4, 1688851215.4, 1359116760.8, 1177765082.6, 633069323.6, 503270066.2, 527898929.4, 715448294.6, 482414728.2, 836828850.2, 1181817320.2, 1313231884.2, 1693912466.6, 1917933978.8, 1961439033.6, 1999995688.6, 1999841549.2, 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, 1999999111.0, 0.0, 1999997017.8, 1905378794.6, 1998778972.6, 1965676645.8, 1999995568.6, 1988404028.4, 1768107580.2, 1997014923.4, 1997362941.8, 1997628718.2, 1987275571.4, 1999997624.8, 0.0, 1999997807.8, 1999999182.8, 1999995154.8, 1999996625.0, 1996798928.0, 1998421114.6, 1931331593.2, 1835775892.8, 1846114891.8, 1728642620.2, 1564946547.2, 1546982981.6, 1300569049.6, 879006000.2, 719563255.5999999, 347691719.8, 323708540.6, 177040195.68, 148814803.2, 41849788.080000006, 1677807550.6, 1501533431.4, 1998809158.0, 1998688896.0, 1988229108.2, 1993718164.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, 1999090497.0, 1991002031.6, 1995341158.2, 1981620097.0, 1970096923.6, 1947884492.6, 1699636421.8, 1382119314.2, 997472437.6, 680346119.2, 539117578.1999999, 543988393.2, 395228167.6, 587082423.4, 678013268.8000001, 1412563309.8, 1967255763.4, 1998523383.6, 0.0, 0.0, 0.0, 0.0, 1999930029.0, 1999258279.4, 1990079729.0, 1869924245.8, 1946833477.4, 1271212170.2, 719903489.6, 361383529.4, 189573571.34, 77218902.78, 65462505.04, 202374662.6, 279406354.40000004, 554312435.2, 1073608394.0, 1010928394.6, 1056446729.6, 934831350.2, 949718443.4, 524435595.8, 838029265.6, 1174424599.8, 195055305.98, 93218965.7, 16865142.96, 21008523.56, 5234852.04, 241909.26, 1087394.46, 0.0, 0.0, 15082600.74, 29881358.6, 106852066.66, 415538984.0, 424401032.0, 500918308.4, 496197475.6, 509847691.4, 711161768.4, 747808139.8000001, 984111867.6, 1014369637.8, 889622461.8, 720441776.6, 860305329.8000001, 821227418.4, 948959629.6, 1065836381.0, 1677534729.0, 1921713958.0, 1987433295.8, 1998948559.6, 1999995582.0, 1996839053.2, 1997782089.4, 1972557431.0, 1997110012.0, 1999116445.4, 1998328136.8, 1975222826.4, 1816696735.0, 1390431319.6, 963708727.0, 1147075906.8, 1077689776.2, 806450570.1999999, 710194832.8000001, 980481095.4, 916623507.0, 816825875.8000001, 823534434.8, 747598818.8, 869422712.6, 1089403951.6, 1216693581.8, 1247519992.8, 1286409816.8000002, 1432880070.0, 1637581542.2, 1769135523.9999998, 1673489216.8, 1959962435.4, 1971492768.8, 1977776696.8, 1941352275.6, 1989671133.8, 1999783465.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1997781661.6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999998397.8, 1998771662.0, 1948080212.6, 1878796188.8, 1865334894.0, 1805878030.4, 1839382935.6, 1704420986.4, 1434997729.0, 1560532045.0, 1611133866.4, 955297979.6, 1067728225.2, 747967139.6, 1059440167.4, 948421576.8, 610086240.6, 1203391604.8, 1094259650.4, 867120104.6, 940934150.0, 508424444.8, 284563539.0, 226365058.4, 64707165.86, 49874710.34, 26365234.1, 182471.68, 0.0, 0.0, 7491335.72, 191649.16, 66821550.24, 2499509.3400000003, 0.0, 0.0, 0.0, 0.0, 0.0, 74771043.42, 18561462.16, 4490178.44, 401367187.0, 334789002.2, 416734316.0, 557456794.8, 1862936723.8, 1999994937.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999933162.4, 0.0, 1999944479.2, 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, 1999890579.0, 1990874097.0, 1943996531.8, 1660025789.6, 1774915040.9999998, 965970622.0, 568398238.6, 466275651.6, 572686790.6, 544393086.4, 568680040.4, 657667534.6, 1042731754.0, 1039004803.2, 948961287.2, 1105958220.0, 1094197831.0, 1086633941.6, 1401490187.8, 1082647714.0, 987683006.2, 833878407.8000001, 598810561.4, 504835014.6, 298700734.4, 354054842.6, 490408984.2, 572133145.1999999, 865544971.1999999, 951578734.2, 1331858528.9999998, 1504693054.0, 341795978.4, 220820250.6, 721205713.0, 1014016333.8, 873808106.8, 1055946497.4, 853511413.0, 1867450101.6, 1507928421.1999998, 532231144.6, 1995904337.0, 1955769213.4, 1239773442.4, 1999996622.6, 1913350244.6, 1460835661.4, 942067877.8, 1989333299.8, 1940440294.2, 1969214821.6, 1976404469.6, 1995207160.2, 1999996622.8, 0.0, 0.0, 0.0, 1999998796.0, 1999997288.0, 1999998949.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999998408.0, 1999804621.8, 1988890430.4, 1965210921.2, 1802358107.4, 1948906112.6, 1782924386.6, 1923237044.4, 1955244000.2, 1999995220.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1990071483.4, 1997554046.6, 1991306117.4, 1999821696.4, 1993638540.4, 1818477966.2, 1964405214.6, 0.0, 1785224615.8, 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, 1999995136.6, 1999997861.4, 1726445573.1999998, 1935850184.8, 1483744671.8000002, 1182772922.0, 1514610313.4, 1273917241.6, 1000555065.8, 660453200.4, 655609182.5999999, 642578406.0, 616164812.4, 386308660.0, 370848120.4, 482422803.2, 397137074.2, 358975923.0, 205519501.6, 193734904.54, 294695377.6, 184933554.32, 272826168.6, 415346131.2000001, 577915232.4, 954322884.8, 776547364.8, 714410538.8, 272397406.2, 345551045.8, 425596238.2, 468383738.4, 495422771.6, 318146428.40000004, 189303641.12, 185895981.14, 239400251.0, 51436792.2, 2226263.3200000003, 595728515.4, 224311640.8, 52613347.4, 605926918.2, 239998654.8, 908566057.8, 401514672.2, 345478221.0, 34302567.12, 1100093952.0, 157906071.76, 404218303.8, 317603674.2, 204900729.8, 123927427.52, 40272331.38, 30496542.12, 145370221.94, 1474204.88, 617566.66, 87821591.96000001, 161229209.34, 560825680.0, 623396690.0, 855047737.2, 1453132292.6, 1859553027.2, 868961334.4, 752968405.2, 1096971079.0, 867385959.0000001, 786455457.8000001, 863814304.9999999, 397243672.6, 490359149.2000001, 656100322.0000001, 706248567.8000001, 901070264.2, 893408392.5999999, 442785312.6, 302226545.40000004, 188479910.16000003, 169403715.74, 131381478.08, 52326741.14, 66298881.63999999, 6853568.76, 0.0, 0.0, 153279.82, 0.0, 16018714.86, 36013351.34, 47079145.16, 123515973.56, 226064157.8, 429370632.0, 1518799093.8, 1684523748.6, 1489151575.0, 1663650550.4, 1841370217.2, 1972670446.8, 1996923335.4, 47559266.54, 1773096116.0, 1843089687.8, 1520559640.8, 1933719447.8, 1962530619.8, 1966815721.2, 1943749475.6, 1860021300.8, 1859117235.0, 1897103609.2, 1766132678.0, 1828741316.0, 1862432293.0, 1661757871.2, 1316249246.0000002, 1788510249.4, 1825897717.4, 1839224801.6, 1965526770.0, 1920991350.2, 1910661221.2, 1964359954.0, 1962123045.4, 1991114970.8, 1990890370.8, 1998241778.2, 1999994153.4, 1999995400.8, 1998166583.0, 1998940509.0, 1999994267.2, 1999992733.8, 0.0, 1999797366.8, 1998714093.8, 1997778415.6, 1835738166.4, 1408713043.6, 1794788168.6, 1857911228.2, 1222132948.0, 1904569791.2, 1926326227.2, 1692922567.2, 1596230110.4, 1224645325.8, 1858788445.2, 1835452254.6, 1534357169.4, 1978020006.4, 1960102688.0, 1940518416.0, 1945580631.0, 1949305004.6, 1945072660.2, 1991890617.6, 1961980278.8, 1787533822.8000002, 1881927416.2, 1885600490.4, 1931515917.0, 1793745682.6, 1682367374.6, 1800146725.0, 1900516606.8, 1936904242.4, 1967237495.0, 1960093788.4, 1956931357.6, 1951089270.2, 1971700605.4, 1964457190.4, 1991046713.8, 1989236481.8, 1982490493.2, 1993212819.4, 1989328789.8, 1998631683.2, 1999873089.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 1999669014.0, 0.0, 1982017017.8, 1986283732.6, 1999990694.0, 0.0, 0.0, 0.0, 0.0, 1999781104.2, 1999927112.8, 1999928828.2, 0.0, 0.0, 1999906272.6, 1997567987.4, 1997032872.2, 1941908249.0, 1999994151.2, 1999996282.2, 1999997120.4, 1999359002.6, 1999997360.4, 1988864351.8, 1984317907.4, 1763117883.4, 1866524771.8, 976376963.6, 1158214961.8, 1985158248.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999996374.8, 0.0, 1999998632.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999999110.2, 1999422997.2, 1999589221.2, 1999672710.0, 1956202591.6, 0.0, 1903838715.0, 1953494178.4, 1504198295.0, 1943661422.4, 1996094356.6, 0.0, 903695447.2, 0.0, 1985875392.2, 1938139132.8, 1868244772.0, 1660546458.1999998, 1443831457.1999998, 1344532537.6, 1162564929.2, 1229935262.6, 1980220695.0, 1945075924.8, 1802887055.2, 1705595473.4, 1534581108.4, 1821072761.4, 1914090527.6, 1930608719.4, 1942293583.0, 1987071596.2, 1815672271.8, 1563692400.6, 1638815019.0, 1181792633.6, 721911849.1999999, 491306998.4, 430097984.6, 324991875.6, 169575719.28, 45251647.84, 0.0, 34260986.4, 436109918.0, 584670000.4, 519575674.6, 564187352.0, 822091038.4, 1118595108.2, 1459556163.6, 1851174755.4, 1578043740.2, 1626799146.2, 1992482650.2, 1999986676.0, 1999996256.2, 0.0, 0.0, 0.0, 0.0, 0.0, 1999993311.8, 1999994314.2, 1961917118.4, 1958321134.4, 1994900098.4, 1275694069.4, 0.0, 0.0, 1999020254.4, 1928639827.4, 1829778528.6, 1128904056.6, 670016839.0, 459950302.8, 551773530.4, 590535136.8000001, 1071372336.0, 1171773629.4, 1483283288.4, 1865164937.6, 1998534505.2, 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, 1999998762.4, 1406249071.6, 1577993989.0, 1918323379.4, 1998590990.8, 1999887469.6, 1999252302.6, 0.0, 0.0, 1449752233.0, 1995618599.4, 0.0, 0.0, 0.0, 1995173255.0, 1993505261.4, 1981576891.4, 1989613914.0, 1989523139.2, 0.0, 1999796686.6, 1997896753.2, 1888836585.0, 1983211377.4, 1957981230.4, 1932338720.0, 1738438101.0000002, 1314891896.4, 1693694787.0, 789572980.6, 1980363888.8, 1954791171.0, 1919394348.4, 1726504586.6, 1434635785.6, 1237157108.8, 1082071938.6, 928820710.2, 709965517.4, 685147645.4, 311598524.40000004, 305012721.6, 329764700.6, 347982183.0, 380949092.2, 427267291.8, 417851948.2, 260578381.6, 149175945.9, 122120917.52, 7825539.14, 0.0, 23537403.24, 75142527.5, 595925620.2, 196113545.32, 234351242.4, 718746651.2, 1208961097.4, 1246285974.2, 1536759428.4, 1796517784.6, 1489213133.4, 1738336983.4, 592256737.2, 1797206655.4, 1986750624.6, 1993427025.2, 1984602856.2, 1975515197.2, 1618675227.8, 1920288715.4, 1453957226.1999998, 1982672165.0, 1948919859.4, 1977464576.4, 1999628828.6, 1578823193.0, 1491992497.0, 1974764358.8, 1640434405.1999998, 953372187.2, 1824076217.2, 1761955207.4, 1841313113.2, 1913698718.8, 1819122285.0, 1849924297.4, 1613631921.8, 1122454894.0, 971629768.0, 717810506.0, 444902041.0, 170745124.27999997, 123303190.56, 157376537.8, 343157103.40000004, 368467353.8, 616166668.8, 853021940.0, 1785236902.0, 1985667221.0, 1999995029.2, 1999999341.8, 0.0, 0.0, 0.0, 0.0, 1997954735.4, 1978461492.4, 0.0, 0.0, 0.0, 0.0, 1998888676.6, 1998731975.0, 1998415656.4, 1998743684.6, 1985919549.2, 1918539230.2, 1770208313.6, 1312976205.9999998, 1228157551.4, 1094569438.8, 663468744.5999999, 418553343.0, 459800547.4, 350418512.00000006, 473712291.6, 405211985.2, 300370135.8, 310928196.0, 449907012.4, 420927391.4, 191385110.58, 200136065.2, 204047188.0, 162380907.08, 240155050.8, 346740216.4, 811849914.4000001, 843161689.1999999, 825606272.9999999, 601365282.0, 469295794.4, 416297778.2, 506356818.6, 710369108.8, 803574354.0, 454083074.8, 411036460.4, 810826132.6, 671239204.0, 472174456.4, 450353236.4, 548415064.6, 402722964.0, 131363841.74, 298698452.4, 167854124.28, 95760793.36, 196478353.6, 113206674.24, 177084492.7, 436390958.8, 591130420.8, 813150072.6, 682056079.2, 688593055.0, 584517545.8, 490698325.2, 392565525.2, 459576530.0, 575648828.0, 642722752.6, 524378728.6, 906808103.4, 914310518.4, 1081540814.2, 1244057829.4, 950723876.8, 1019468735.0, 527126701.6, 314709063.6, 355710506.2, 379704594.2, 117786565.04, 67351815.26, 23208333.360000003, 155777531.36, 383085793.8, 322111092.8, 302958648.6, 382041475.0, 454920153.6, 240812841.8, 315314389.6, 445167748.4, 558808992.8000001, 430569374.4, 309005450.0, 215888588.6, 414880816.6, 240275450.0, 162783287.52, 85832486.22, 32694090.86, 5328084.760000001, 20065693.88, 21113937.66, 2939114.6, 2176953.46, 5229228.500000001, 4186221.88, 52444205.940000005, 40273341.8, 166504884.16000003, 72283213.3, 94270659.44, 106368055.36, 240942124.4, 374185399.8, 580363762.8, 879411345.0, 1059669003.6, 1752971767.6, 1870618719.0, 1873487439.0, 1819029028.0, 1990167527.8, 1999935671.4, 1999843753.6, 0.0, 0.0, 1999916951.2, 1999861774.8, 1997620922.2, 1999767036.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 1999998599.6, 1997925055.4, 1673395230.2, 1994872789.2, 1985015367.6, 1470496035.0, 742112049.8000001, 1244483155.6, 1987979861.0, 1810622854.6, 1988354752.4, 1999995595.0, 1996931492.4, 1934270337.0, 1851529329.6, 984813923.0, 625162633.8, 362420247.0, 395298049.8, 43305098.86, 73055967.62, 283539850.8, 99721693.76, 2476425.06, 0.0, 0.0, 1980152869.2, 1496949342.6, 1259154463.0, 1980350383.8, 1998308252.6, 1999403904.2, 1999995243.0, 0.0, 0.0, 0.0, 1994682709.0, 1998011295.8, 1968575666.8, 1896857735.2, 1998125194.6, 1990818670.0, 1959929430.8, 1691971316.4, 1998856344.8, 0.0, 0.0, 0.0, 0.0, 0.0, 1994183620.6, 0.0, 0.0, 1991682267.2, 1999950737.0, 1993225525.4, 1808806609.4, 1911115406.8, 1872935254.0, 1807496209.4, 857973608.4, 1058728969.0, 1551004890.4, 1660443620.2, 1920586660.4, 1977366658.6, 1998687096.4, 1999191727.4, 0.0, 0.0, 0.0, 0.0, 0.0, 1995062270.2, 1719336907.1999998, 1014380733.0, 393268684.4, 0.0, 1910251851.8, 1837544210.6, 1637397769.8, 1999957589.0, 1949619026.6, 1696534485.4, 1931612904.6, 1922974629.6, 1754930154.6, 1960581230.2, 1997651098.2, 1338637670.6, 1999911528.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999772904.4, 1950424656.6, 1528011228.0, 925343977.6, 959885348.4, 1953912508.6, 1982905578.0, 1999530749.4, 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]], "ElectricityCable_80a3.ElectricityIn.V": [50000.0, Infinity], "ElectricityCable_80a3.ElectricityOut.Power": [-2000000000.0, 2000000000.0], "ElectricityCable_80a3.Power_loss": [0.0, Infinity], "ElectricityCable_80a3.I": [0.0, 40000.0], "ElectricityCable_80a3.V_loss": [-Infinity, Infinity], "ElectricityCable_e388.ElectricityIn.Power": [-2000000000.0, 2000000000.0], "ElectricityCable_e388.ElectricityOut.Power": [0.0, 2000000000.0], "ElectricityCable_e388.ElectricityOut.V": [50000.0, Infinity], "ElectricityCable_e388.Power_loss": [0.0, Infinity], "ElectricityCable_e388.I": [0.0, 40000.0], "ElectricityCable_e388.V_loss": [-Infinity, Infinity], "ElectricityCable_91e7.ElectricityIn.Power": [-2000000000.0, 2000000000.0], "ElectricityCable_91e7.ElectricityIn.V": [50000.0, Infinity], "ElectricityCable_91e7.ElectricityOut.Power": [0.0, 200000000.0], "ElectricityCable_91e7.ElectricityOut.V": [50000.0, Infinity], "ElectricityCable_91e7.Power_loss": [0.0, Infinity], "ElectricityCable_91e7.I": [0.0, 40000.0], "ElectricityCable_91e7.V_loss": [-Infinity, Infinity], "Pipe_ec1a.GasIn.Q_shadow": [-Infinity, Infinity], "Pipe_ec1a.GasIn.H": [-Infinity, Infinity], "Pipe_ec1a.GasOut.Q": [0.0, 16.795378441099267], "Pipe_ec1a.GasOut.Q_shadow": [-Infinity, Infinity], "Pipe_ec1a.GasOut.mass_flow": [0.0, 20652.203954552995], "Pipe_ec1a.dH": [0.0, 0.0], "Pipe_97ee.GasIn.Q_shadow": [-Infinity, Infinity], "Pipe_97ee.GasOut.Q": [-16.795378441099267, 16.795378441099267], "Pipe_97ee.GasOut.Q_shadow": [-Infinity, Infinity], "Pipe_97ee.GasOut.mass_flow": [-20652.203954552995, 20652.203954552995], "Pipe_97ee.GasOut.H": [-Infinity, Infinity], "Pipe_97ee.dH": [0.0, 0.0], "Pipe_910d.GasIn.Q_shadow": [-Infinity, Infinity], "Pipe_910d.GasIn.H": [0.0, Infinity], "Pipe_910d.GasOut.Q": [0.0, 16.795378441099267], "Pipe_910d.GasOut.Q_shadow": [-Infinity, Infinity], "Pipe_910d.GasOut.mass_flow": [0.0, 20652.203954552995], "Pipe_910d.GasOut.H": [-Infinity, Infinity], "Pipe_910d.dH": [0.0, 0.0], "WindPark_9074.Set_point": [0.0, 1.0], "Pipe_910d__gas_flow_direct_var": [1.0, 1.0], "Pipe_97ee__gas_flow_direct_var": [0.0, 1.0], "Pipe_ec1a__gas_flow_direct_var": [1.0, 1.0], "Electrolyzer_6327__asset_is_switched_on": [0.0, 1.0], "Pipe_910d__gn_diameter": [1.194, 1.194], "Pipe_97ee__gn_diameter": [1.194, 1.194], "Pipe_ec1a__gn_diameter": [1.194, 1.194], "Pipe_910d__gn_cost": [0.0, 0.0], "Pipe_97ee__gn_cost": [0.0, 0.0], "Pipe_ec1a__gn_cost": [0.0, 0.0], "GasDemand_4146__max_size": [0.0, 0.0], "GasStorage_9172__max_size": [23715000.0, 23715000.0], "Electrolyzer_6327__max_size": [200000000.0, 200000000.0], "ElectricityDemand_f833__max_size": [2000000000.0, 2000000000.0], "WindPark_9074__max_size": [1999999971.8, 1999999971.8], "ElectricityCable_80a3_aggregation_count": [0.0, 1.0], "ElectricityCable_91e7_aggregation_count": [0.0, 1.0], "ElectricityCable_e388_aggregation_count": [0.0, 1.0], "ElectricityDemand_f833_aggregation_count": [0.0, 1.0], "Bus_24cf_aggregation_count": [0.0, 1.0], "WindPark_9074_aggregation_count": [0.0, 1.0], "Electrolyzer_6327_aggregation_count": [0.0, 1.0], "GasDemand_4146_aggregation_count": [0.0, 1.0], "Joint_2503_aggregation_count": [0.0, 1.0], "Pipe_910d_aggregation_count": [0.0, 1.0], "Pipe_97ee_aggregation_count": [0.0, 1.0], "Pipe_ec1a_aggregation_count": [0.0, 1.0], "GasStorage_9172_aggregation_count": [0.0, 1.0], "Pipe_910d": [-16.795378441099267, 16.795378441099267], "Pipe_97ee": [-16.795378441099267, 16.795378441099267], "Pipe_ec1a": [-16.795378441099267, 16.795378441099267], "ElectricityCable_80a3": [-40000.0, 40000.0], "ElectricityCable_91e7": [-40000.0, 40000.0], "ElectricityCable_e388": [-40000.0, 40000.0], "ElectricityCable_80a3__en_resistance": [0.023801199999999998, 0.023801199999999998], "ElectricityCable_91e7__en_resistance": [0.0139652, 0.0139652], "ElectricityCable_e388__en_resistance": [0.0782915, 0.0782915], "ElectricityCable_80a3__en_cost": [0.0, 0.0], "ElectricityCable_91e7__en_cost": [0.0, 0.0], "ElectricityCable_e388__en_cost": [0.0, 0.0], "ElectricityCable_80a3__fixed_operational_cost": [0.0, Infinity], "ElectricityCable_91e7__fixed_operational_cost": [0.0, Infinity], "ElectricityCable_e388__fixed_operational_cost": [0.0, Infinity], "ElectricityDemand_f833__fixed_operational_cost": [0.0, Infinity], "WindPark_9074__fixed_operational_cost": [0.0, Infinity], "Electrolyzer_6327__fixed_operational_cost": [0.0, Infinity], "GasDemand_4146__fixed_operational_cost": [0.0, Infinity], "Pipe_910d__fixed_operational_cost": [0.0, Infinity], "Pipe_97ee__fixed_operational_cost": [0.0, Infinity], "Pipe_ec1a__fixed_operational_cost": [0.0, Infinity], "GasStorage_9172__fixed_operational_cost": [0.0, Infinity], "ElectricityCable_80a3__investment_cost": [0.0, 0.0], "ElectricityCable_91e7__investment_cost": [0.0, 0.0], "ElectricityCable_e388__investment_cost": [0.0, 0.0], "ElectricityDemand_f833__investment_cost": [0.0, 0.0], "WindPark_9074__investment_cost": [0.0, 0.0], "Electrolyzer_6327__investment_cost": [0.0, 0.0], "GasDemand_4146__investment_cost": [0.0, 0.0], "Pipe_910d__investment_cost": [0.0, 0.0], "Pipe_97ee__investment_cost": [0.0, 0.0], "Pipe_ec1a__investment_cost": [0.0, 0.0], "GasStorage_9172__investment_cost": [0.0, 0.0], "ElectricityCable_80a3__installation_cost": [0.0, 0.0], "ElectricityCable_91e7__installation_cost": [0.0, 0.0], "ElectricityCable_e388__installation_cost": [0.0, 0.0], "ElectricityDemand_f833__installation_cost": [0.0, 0.0], "WindPark_9074__installation_cost": [0.0, 0.0], "Electrolyzer_6327__installation_cost": [0.0, 0.0], "GasDemand_4146__installation_cost": [0.0, 0.0], "Pipe_910d__installation_cost": [0.0, 0.0], "Pipe_97ee__installation_cost": [0.0, 0.0], "Pipe_ec1a__installation_cost": [0.0, 0.0], "GasStorage_9172__installation_cost": [0.0, 0.0], "ElectricityCable_80a3__variable_operational_cost": [0.0, Infinity], "ElectricityCable_91e7__variable_operational_cost": [0.0, Infinity], "ElectricityCable_e388__variable_operational_cost": [0.0, Infinity], "ElectricityDemand_f833__variable_operational_cost": [0.0, Infinity], "WindPark_9074__variable_operational_cost": [0.0, Infinity], "Electrolyzer_6327__variable_operational_cost": [0.0, Infinity], "GasDemand_4146__variable_operational_cost": [0.0, Infinity], "Pipe_910d__variable_operational_cost": [0.0, Infinity], "Pipe_97ee__variable_operational_cost": [0.0, Infinity], "Pipe_ec1a__variable_operational_cost": [0.0, Infinity], "GasStorage_9172__variable_operational_cost": [0.0, Infinity], "ElectricityDemand_f833__revenue": [0.0, Infinity], "GasDemand_4146__revenue": [0.0, Infinity]} \ No newline at end of file diff --git a/tests/models/emerge/output/parameters.json b/tests/models/emerge/output/parameters.json new file mode 100644 index 000000000..fd63d4c19 --- /dev/null +++ b/tests/models/emerge/output/parameters.json @@ -0,0 +1 @@ +{"Bus_24cf.ElectricityConn[1].state": 1, "Bus_24cf.ElectricityConn[1].variable_operational_cost_coefficient": 0.0, "Bus_24cf.ElectricityConn[1].fixed_operational_cost_coefficient": 0.0, "Bus_24cf.ElectricityConn[1].investment_cost_coefficient": 0.0, "Bus_24cf.ElectricityConn[1].installation_cost": 0.0, "Bus_24cf.ElectricityConn[1].technical_life": NaN, "Bus_24cf.ElectricityConn[1].discount_rate": NaN, "Bus_24cf.ElectricityConn[2].state": 1, "Bus_24cf.ElectricityConn[2].variable_operational_cost_coefficient": 0.0, "Bus_24cf.ElectricityConn[2].fixed_operational_cost_coefficient": 0.0, "Bus_24cf.ElectricityConn[2].investment_cost_coefficient": 0.0, "Bus_24cf.ElectricityConn[2].installation_cost": 0.0, "Bus_24cf.ElectricityConn[2].technical_life": NaN, "Bus_24cf.ElectricityConn[2].discount_rate": NaN, "Bus_24cf.ElectricityConn[3].state": 1, "Bus_24cf.ElectricityConn[3].variable_operational_cost_coefficient": 0.0, "Bus_24cf.ElectricityConn[3].fixed_operational_cost_coefficient": 0.0, "Bus_24cf.ElectricityConn[3].investment_cost_coefficient": 0.0, "Bus_24cf.ElectricityConn[3].installation_cost": 0.0, "Bus_24cf.ElectricityConn[3].technical_life": NaN, "Bus_24cf.ElectricityConn[3].discount_rate": NaN, "Bus_24cf.state": 1, "Bus_24cf.variable_operational_cost_coefficient": 0.0, "Bus_24cf.fixed_operational_cost_coefficient": 0.0, "Bus_24cf.investment_cost_coefficient": 0.0, "Bus_24cf.installation_cost": 0.0, "Bus_24cf.technical_life": NaN, "Bus_24cf.discount_rate": NaN, "Bus_24cf.voltage_nominal": 50000.0, "Bus_24cf.n": 3, "ElectricityCable_80a3.ElectricityIn.state": 1, "ElectricityCable_80a3.ElectricityIn.variable_operational_cost_coefficient": 0.0, "ElectricityCable_80a3.ElectricityIn.fixed_operational_cost_coefficient": 0.0, "ElectricityCable_80a3.ElectricityIn.investment_cost_coefficient": 0.0, "ElectricityCable_80a3.ElectricityIn.installation_cost": 0.0, "ElectricityCable_80a3.ElectricityIn.technical_life": NaN, "ElectricityCable_80a3.ElectricityIn.discount_rate": NaN, "ElectricityCable_80a3.ElectricityOut.state": 1, "ElectricityCable_80a3.ElectricityOut.variable_operational_cost_coefficient": 0.0, "ElectricityCable_80a3.ElectricityOut.fixed_operational_cost_coefficient": 0.0, "ElectricityCable_80a3.ElectricityOut.investment_cost_coefficient": 0.0, "ElectricityCable_80a3.ElectricityOut.installation_cost": 0.0, "ElectricityCable_80a3.ElectricityOut.technical_life": NaN, "ElectricityCable_80a3.ElectricityOut.discount_rate": NaN, "ElectricityCable_80a3.state": 1, "ElectricityCable_80a3.variable_operational_cost_coefficient": 0.0, "ElectricityCable_80a3.fixed_operational_cost_coefficient": 0.0, "ElectricityCable_80a3.investment_cost_coefficient": 0.0, "ElectricityCable_80a3.installation_cost": 0.0, "ElectricityCable_80a3.technical_life": NaN, "ElectricityCable_80a3.discount_rate": NaN, "ElectricityCable_80a3.disconnectable": false, "ElectricityCable_80a3.length": 23801.2, "ElectricityCable_80a3.max_current": 40000.0, "ElectricityCable_80a3.min_voltage": 50000.0, "ElectricityCable_80a3.max_voltage": 100000.0, "ElectricityCable_80a3.nominal_current": 20000.0, "ElectricityCable_80a3.nominal_voltage": 50000.0, "ElectricityCable_80a3.r": 0.023801199999999998, "ElectricityCable_80a3.nominal_voltage_loss": 3085.5275075746767, "ElectricityCable_e388.ElectricityIn.state": 1, "ElectricityCable_e388.ElectricityIn.variable_operational_cost_coefficient": 0.0, "ElectricityCable_e388.ElectricityIn.fixed_operational_cost_coefficient": 0.0, "ElectricityCable_e388.ElectricityIn.investment_cost_coefficient": 0.0, "ElectricityCable_e388.ElectricityIn.installation_cost": 0.0, "ElectricityCable_e388.ElectricityIn.technical_life": NaN, "ElectricityCable_e388.ElectricityIn.discount_rate": NaN, "ElectricityCable_e388.ElectricityOut.state": 1, "ElectricityCable_e388.ElectricityOut.variable_operational_cost_coefficient": 0.0, "ElectricityCable_e388.ElectricityOut.fixed_operational_cost_coefficient": 0.0, "ElectricityCable_e388.ElectricityOut.investment_cost_coefficient": 0.0, "ElectricityCable_e388.ElectricityOut.installation_cost": 0.0, "ElectricityCable_e388.ElectricityOut.technical_life": NaN, "ElectricityCable_e388.ElectricityOut.discount_rate": NaN, "ElectricityCable_e388.state": 1, "ElectricityCable_e388.variable_operational_cost_coefficient": 0.0, "ElectricityCable_e388.fixed_operational_cost_coefficient": 0.0, "ElectricityCable_e388.investment_cost_coefficient": 0.0, "ElectricityCable_e388.installation_cost": 0.0, "ElectricityCable_e388.technical_life": NaN, "ElectricityCable_e388.discount_rate": NaN, "ElectricityCable_e388.disconnectable": false, "ElectricityCable_e388.length": 78291.5, "ElectricityCable_e388.max_current": 40000.0, "ElectricityCable_e388.min_voltage": 50000.0, "ElectricityCable_e388.max_voltage": 100000.0, "ElectricityCable_e388.nominal_current": 20000.0, "ElectricityCable_e388.nominal_voltage": 50000.0, "ElectricityCable_e388.r": 0.0782915, "ElectricityCable_e388.nominal_voltage_loss": 5596.12365839069, "ElectricityCable_91e7.ElectricityIn.state": 1, "ElectricityCable_91e7.ElectricityIn.variable_operational_cost_coefficient": 0.0, "ElectricityCable_91e7.ElectricityIn.fixed_operational_cost_coefficient": 0.0, "ElectricityCable_91e7.ElectricityIn.investment_cost_coefficient": 0.0, "ElectricityCable_91e7.ElectricityIn.installation_cost": 0.0, "ElectricityCable_91e7.ElectricityIn.technical_life": NaN, "ElectricityCable_91e7.ElectricityIn.discount_rate": NaN, "ElectricityCable_91e7.ElectricityOut.state": 1, "ElectricityCable_91e7.ElectricityOut.variable_operational_cost_coefficient": 0.0, "ElectricityCable_91e7.ElectricityOut.fixed_operational_cost_coefficient": 0.0, "ElectricityCable_91e7.ElectricityOut.investment_cost_coefficient": 0.0, "ElectricityCable_91e7.ElectricityOut.installation_cost": 0.0, "ElectricityCable_91e7.ElectricityOut.technical_life": NaN, "ElectricityCable_91e7.ElectricityOut.discount_rate": NaN, "ElectricityCable_91e7.state": 1, "ElectricityCable_91e7.variable_operational_cost_coefficient": 0.0, "ElectricityCable_91e7.fixed_operational_cost_coefficient": 0.0, "ElectricityCable_91e7.investment_cost_coefficient": 0.0, "ElectricityCable_91e7.installation_cost": 0.0, "ElectricityCable_91e7.technical_life": NaN, "ElectricityCable_91e7.discount_rate": NaN, "ElectricityCable_91e7.disconnectable": false, "ElectricityCable_91e7.length": 13965.2, "ElectricityCable_91e7.max_current": 40000.0, "ElectricityCable_91e7.min_voltage": 50000.0, "ElectricityCable_91e7.max_voltage": 100000.0, "ElectricityCable_91e7.nominal_current": 20000.0, "ElectricityCable_91e7.nominal_voltage": 50000.0, "ElectricityCable_91e7.r": 0.0139652, "ElectricityCable_91e7.nominal_voltage_loss": 2363.488946451834, "Joint_2503.GasConn[1].state": 1, "Joint_2503.GasConn[1].variable_operational_cost_coefficient": 0.0, "Joint_2503.GasConn[1].fixed_operational_cost_coefficient": 0.0, "Joint_2503.GasConn[1].investment_cost_coefficient": 0.0, "Joint_2503.GasConn[1].installation_cost": 0.0, "Joint_2503.GasConn[1].technical_life": NaN, "Joint_2503.GasConn[1].discount_rate": NaN, "Joint_2503.GasConn[2].state": 1, "Joint_2503.GasConn[2].variable_operational_cost_coefficient": 0.0, "Joint_2503.GasConn[2].fixed_operational_cost_coefficient": 0.0, "Joint_2503.GasConn[2].investment_cost_coefficient": 0.0, "Joint_2503.GasConn[2].installation_cost": 0.0, "Joint_2503.GasConn[2].technical_life": NaN, "Joint_2503.GasConn[2].discount_rate": NaN, "Joint_2503.GasConn[3].state": 1, "Joint_2503.GasConn[3].variable_operational_cost_coefficient": 0.0, "Joint_2503.GasConn[3].fixed_operational_cost_coefficient": 0.0, "Joint_2503.GasConn[3].investment_cost_coefficient": 0.0, "Joint_2503.GasConn[3].installation_cost": 0.0, "Joint_2503.GasConn[3].technical_life": NaN, "Joint_2503.GasConn[3].discount_rate": NaN, "Joint_2503.state": 1, "Joint_2503.variable_operational_cost_coefficient": 0.0, "Joint_2503.fixed_operational_cost_coefficient": 0.0, "Joint_2503.investment_cost_coefficient": 0.0, "Joint_2503.installation_cost": 0.0, "Joint_2503.technical_life": NaN, "Joint_2503.discount_rate": NaN, "Joint_2503.n": 3, "Pipe_ec1a.GasIn.state": 1, "Pipe_ec1a.GasIn.variable_operational_cost_coefficient": 0.0, "Pipe_ec1a.GasIn.fixed_operational_cost_coefficient": 0.0, "Pipe_ec1a.GasIn.investment_cost_coefficient": 0.0, "Pipe_ec1a.GasIn.installation_cost": 0.0, "Pipe_ec1a.GasIn.technical_life": NaN, "Pipe_ec1a.GasIn.discount_rate": NaN, "Pipe_ec1a.GasOut.state": 1, "Pipe_ec1a.GasOut.variable_operational_cost_coefficient": 0.0, "Pipe_ec1a.GasOut.fixed_operational_cost_coefficient": 0.0, "Pipe_ec1a.GasOut.investment_cost_coefficient": 0.0, "Pipe_ec1a.GasOut.installation_cost": 0.0, "Pipe_ec1a.GasOut.technical_life": NaN, "Pipe_ec1a.GasOut.discount_rate": NaN, "Pipe_ec1a.state": 1.0, "Pipe_ec1a.variable_operational_cost_coefficient": 0.0, "Pipe_ec1a.fixed_operational_cost_coefficient": 0.0, "Pipe_ec1a.investment_cost_coefficient": 0.0, "Pipe_ec1a.installation_cost": 0.0, "Pipe_ec1a.technical_life": NaN, "Pipe_ec1a.discount_rate": NaN, "Pipe_ec1a.disconnectable": false, "Pipe_ec1a.v_max": 15.0, "Pipe_ec1a.density": 1229.6361184702962, "Pipe_ec1a.diameter": 1.194, "Pipe_ec1a.area": 1.1196918960732845, "Pipe_ec1a.Q_nominal": 8.397689220549633, "Pipe_ec1a.pressure": 1500000.0, "Pipe_ec1a.nominal_head": 30.0, "Pipe_ec1a.length": 7646.2, "Pipe_ec1a.r": 0.0076462, "Pipe_ec1a.nominal_head_loss": 1.3879165463186172, "Pipe_97ee.GasIn.state": 1, "Pipe_97ee.GasIn.variable_operational_cost_coefficient": 0.0, "Pipe_97ee.GasIn.fixed_operational_cost_coefficient": 0.0, "Pipe_97ee.GasIn.investment_cost_coefficient": 0.0, "Pipe_97ee.GasIn.installation_cost": 0.0, "Pipe_97ee.GasIn.technical_life": NaN, "Pipe_97ee.GasIn.discount_rate": NaN, "Pipe_97ee.GasOut.state": 1, "Pipe_97ee.GasOut.variable_operational_cost_coefficient": 0.0, "Pipe_97ee.GasOut.fixed_operational_cost_coefficient": 0.0, "Pipe_97ee.GasOut.investment_cost_coefficient": 0.0, "Pipe_97ee.GasOut.installation_cost": 0.0, "Pipe_97ee.GasOut.technical_life": NaN, "Pipe_97ee.GasOut.discount_rate": NaN, "Pipe_97ee.state": 1.0, "Pipe_97ee.variable_operational_cost_coefficient": 0.0, "Pipe_97ee.fixed_operational_cost_coefficient": 0.0, "Pipe_97ee.investment_cost_coefficient": 0.0, "Pipe_97ee.installation_cost": 0.0, "Pipe_97ee.technical_life": NaN, "Pipe_97ee.discount_rate": NaN, "Pipe_97ee.disconnectable": false, "Pipe_97ee.v_max": 15.0, "Pipe_97ee.density": 1229.6361184702962, "Pipe_97ee.diameter": 1.194, "Pipe_97ee.area": 1.1196918960732845, "Pipe_97ee.Q_nominal": 8.397689220549633, "Pipe_97ee.pressure": 1500000.0, "Pipe_97ee.nominal_head": 30.0, "Pipe_97ee.length": 5839.7, "Pipe_97ee.r": 0.0058397, "Pipe_97ee.nominal_head_loss": 1.2129301596700903, "Pipe_910d.GasIn.state": 1, "Pipe_910d.GasIn.variable_operational_cost_coefficient": 0.0, "Pipe_910d.GasIn.fixed_operational_cost_coefficient": 0.0, "Pipe_910d.GasIn.investment_cost_coefficient": 0.0, "Pipe_910d.GasIn.installation_cost": 0.0, "Pipe_910d.GasIn.technical_life": NaN, "Pipe_910d.GasIn.discount_rate": NaN, "Pipe_910d.GasOut.state": 1, "Pipe_910d.GasOut.variable_operational_cost_coefficient": 0.0, "Pipe_910d.GasOut.fixed_operational_cost_coefficient": 0.0, "Pipe_910d.GasOut.investment_cost_coefficient": 0.0, "Pipe_910d.GasOut.installation_cost": 0.0, "Pipe_910d.GasOut.technical_life": NaN, "Pipe_910d.GasOut.discount_rate": NaN, "Pipe_910d.state": 1.0, "Pipe_910d.variable_operational_cost_coefficient": 0.0, "Pipe_910d.fixed_operational_cost_coefficient": 0.0, "Pipe_910d.investment_cost_coefficient": 0.0, "Pipe_910d.installation_cost": 0.0, "Pipe_910d.technical_life": NaN, "Pipe_910d.discount_rate": NaN, "Pipe_910d.disconnectable": false, "Pipe_910d.v_max": 15.0, "Pipe_910d.density": 1229.6361184702962, "Pipe_910d.diameter": 1.194, "Pipe_910d.area": 1.1196918960732845, "Pipe_910d.Q_nominal": 8.397689220549633, "Pipe_910d.pressure": 1500000.0, "Pipe_910d.nominal_head": 30.0, "Pipe_910d.length": 64730.1, "Pipe_910d.r": 0.0647301, "Pipe_910d.nominal_head_loss": 4.038254312255853, "WindPark_9074.ElectricityOut.state": 1, "WindPark_9074.ElectricityOut.variable_operational_cost_coefficient": 0.0, "WindPark_9074.ElectricityOut.fixed_operational_cost_coefficient": 0.0, "WindPark_9074.ElectricityOut.investment_cost_coefficient": 0.0, "WindPark_9074.ElectricityOut.installation_cost": 0.0, "WindPark_9074.ElectricityOut.technical_life": NaN, "WindPark_9074.ElectricityOut.discount_rate": NaN, "WindPark_9074.state": 1, "WindPark_9074.variable_operational_cost_coefficient": 0.0, "WindPark_9074.fixed_operational_cost_coefficient": 0.255, "WindPark_9074.investment_cost_coefficient": 0.0, "WindPark_9074.installation_cost": 0.0, "WindPark_9074.technical_life": NaN, "WindPark_9074.discount_rate": NaN, "WindPark_9074.meret_place": 1, "WindPark_9074.price": NaN, "WindPark_9074.power_nominal": 1000000000.0, "ElectricityDemand_f833.ElectricityIn.state": 1, "ElectricityDemand_f833.ElectricityIn.variable_operational_cost_coefficient": 0.0, "ElectricityDemand_f833.ElectricityIn.fixed_operational_cost_coefficient": 0.0, "ElectricityDemand_f833.ElectricityIn.investment_cost_coefficient": 0.0, "ElectricityDemand_f833.ElectricityIn.installation_cost": 0.0, "ElectricityDemand_f833.ElectricityIn.technical_life": NaN, "ElectricityDemand_f833.ElectricityIn.discount_rate": NaN, "ElectricityDemand_f833.state": 1, "ElectricityDemand_f833.variable_operational_cost_coefficient": 0.0, "ElectricityDemand_f833.fixed_operational_cost_coefficient": 0.0, "ElectricityDemand_f833.investment_cost_coefficient": 0.0, "ElectricityDemand_f833.installation_cost": 0.0, "ElectricityDemand_f833.technical_life": NaN, "ElectricityDemand_f833.discount_rate": NaN, "ElectricityDemand_f833.min_voltage": 50000.0, "ElectricityDemand_f833.elec_power_nominal": 1000000000.0, "ElectricityDemand_f833.id_mapping_carrier": 107781324004933659654, "Electrolyzer_6327.ElectricityIn.state": 1, "Electrolyzer_6327.ElectricityIn.variable_operational_cost_coefficient": 0.0, "Electrolyzer_6327.ElectricityIn.fixed_operational_cost_coefficient": 0.0, "Electrolyzer_6327.ElectricityIn.investment_cost_coefficient": 0.0, "Electrolyzer_6327.ElectricityIn.installation_cost": 0.0, "Electrolyzer_6327.ElectricityIn.technical_life": NaN, "Electrolyzer_6327.ElectricityIn.discount_rate": NaN, "Electrolyzer_6327.GasOut.state": 1, "Electrolyzer_6327.GasOut.variable_operational_cost_coefficient": 0.0, "Electrolyzer_6327.GasOut.fixed_operational_cost_coefficient": 0.0, "Electrolyzer_6327.GasOut.investment_cost_coefficient": 0.0, "Electrolyzer_6327.GasOut.installation_cost": 0.0, "Electrolyzer_6327.GasOut.technical_life": NaN, "Electrolyzer_6327.GasOut.discount_rate": NaN, "Electrolyzer_6327.state": 1, "Electrolyzer_6327.variable_operational_cost_coefficient": 0.0, "Electrolyzer_6327.fixed_operational_cost_coefficient": 0.015, "Electrolyzer_6327.investment_cost_coefficient": 0.0, "Electrolyzer_6327.installation_cost": 0.0, "Electrolyzer_6327.technical_life": NaN, "Electrolyzer_6327.discount_rate": NaN, "Electrolyzer_6327.a_eff_coefficient": 192592592.5925926, "Electrolyzer_6327.b_eff_coefficient": 5.92592592592593e-08, "Electrolyzer_6327.c_eff_coefficient": 56.18518518518518, "Electrolyzer_6327.minimum_load": 20000000.0, "Electrolyzer_6327.density": 1229.6361184702962, "Electrolyzer_6327.Q_nominal": 8.397689220549633, "Electrolyzer_6327.min_voltage": 50000.0, "Electrolyzer_6327.nominal_gass_mass_out": 10326.101977276498, "Electrolyzer_6327.nominal_power_consumed": 100000000.0, "GasDemand_4146.GasIn.state": 1, "GasDemand_4146.GasIn.variable_operational_cost_coefficient": 0.0, "GasDemand_4146.GasIn.fixed_operational_cost_coefficient": 0.0, "GasDemand_4146.GasIn.investment_cost_coefficient": 0.0, "GasDemand_4146.GasIn.installation_cost": 0.0, "GasDemand_4146.GasIn.technical_life": NaN, "GasDemand_4146.GasIn.discount_rate": NaN, "GasDemand_4146.state": 1, "GasDemand_4146.variable_operational_cost_coefficient": 0.0, "GasDemand_4146.fixed_operational_cost_coefficient": 0.0, "GasDemand_4146.investment_cost_coefficient": 0.0, "GasDemand_4146.installation_cost": 0.0, "GasDemand_4146.technical_life": NaN, "GasDemand_4146.discount_rate": NaN, "GasDemand_4146.min_head": 30.0, "GasDemand_4146.Q_nominal": 8.397689220549633, "GasDemand_4146.density": 1229.6361184702962, "GasDemand_4146.id_mapping_carrier": 148316347638300965836554, "GasStorage_9172.GasIn.state": 1, "GasStorage_9172.GasIn.variable_operational_cost_coefficient": 0.0, "GasStorage_9172.GasIn.fixed_operational_cost_coefficient": 0.0, "GasStorage_9172.GasIn.investment_cost_coefficient": 0.0, "GasStorage_9172.GasIn.installation_cost": 0.0, "GasStorage_9172.GasIn.technical_life": NaN, "GasStorage_9172.GasIn.discount_rate": NaN, "GasStorage_9172.state": 1, "GasStorage_9172.variable_operational_cost_coefficient": 0.0, "GasStorage_9172.fixed_operational_cost_coefficient": 0.0, "GasStorage_9172.investment_cost_coefficient": 0.0, "GasStorage_9172.installation_cost": 0.0, "GasStorage_9172.technical_life": NaN, "GasStorage_9172.discount_rate": NaN, "GasStorage_9172.min_head": 30.0, "GasStorage_9172.density": 1229.6361184702962, "GasStorage_9172.density_max_storage": 23715.0, "GasStorage_9172.volume": 1000.0, "GasStorage_9172.Q_nominal": 8.397689220549633, "GasStorage_9172._typical_fill_time": 3600.0, "GasStorage_9172._nominal_stored_gas": 716944319.5152044} \ No newline at end of file diff --git a/tests/models/emerge/output/results.json b/tests/models/emerge/output/results.json new file mode 100644 index 000000000..af3fb0290 --- /dev/null +++ b/tests/models/emerge/output/results.json @@ -0,0 +1 @@ +{"initial_der(GasStorage_9172.Stored_gas_mass)": 0.0, "GasStorage_9172.Stored_gas_mass": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "ElectricityCable_80a3.ElectricityIn.Power": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999997849.6, 1999999999.9967475, 0.0, 0.0, 1999995228.8, 1999995622.6, 1997697985.6, 1658513101.4, 1317659536.0, 618343094.1999999, 1199762886.2, 771068238.2, 1001978579.6, 1132050786.8, 1293624672.0, 1720023264.4, 1814015745.6, 1836244191.8, 1986853387.5999997], "ElectricityCable_80a3.ElectricityIn.V": [50000.0, 50000.0, 50000.0, 50000.0, 50000.0, 50000.0, 100952.046976358, 100952.048, 50000.0, 50000.0, 100952.04572879428, 100952.04591625255, 100950.95218589724, 100789.49204058084, 100627.23756296486, 100294.34615307346, 100571.11592814047, 100367.04698702092, 100476.96585137551, 100538.88334373568, 100615.79639086412, 100818.77235441275, 100863.5150312835, 100874.0963051574, 100945.78989697891], "ElectricityCable_80a3.ElectricityOut.Power": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1999997849.6, 2000000000.0, 0.0, 0.0, 1999995228.8, 1999995622.6, 1997697985.6, 1658513101.4000015, 1317659536.0000002, 618343094.2000002, 1199762886.2000008, 771068238.2000006, 1001978579.6000011, 1132050786.8000002, 1293624672.000001, 1720023264.4000008, 1814015745.6000009, 1836244191.800001, 1986853387.5999997], "ElectricityCable_80a3.Power_loss": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "ElectricityCable_80a3.I": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 39999.956992, 40000.0, 0.0, 0.0, 39999.904576, 39999.912452, 39953.959711999996, 33170.26202800003, 26353.190720000006, 12366.861884000002, 23995.257724000014, 15421.364764000014, 20039.571592000022, 22641.015736000005, 25872.493440000017, 34400.465288000014, 36280.314912000016, 36724.88383600002, 39737.067751999995], "ElectricityCable_80a3.V_loss": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 952.0469763579903, 952.0479999999999, 0.0, 0.0, 952.0457287942911, 952.0459162525424, 950.9521858972543, 789.4920405808342, 627.2375629648641, 294.3461530734608, 571.1159281404691, 367.04698702091713, 476.96585137551085, 538.8833437356833, 615.7963908641283, 818.7723544127458, 863.5150312834946, 874.0963051574034, 945.7898969789021], "ElectricityCable_e388.ElectricityIn.Power": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1979997849.6000054, 1980000000.0, 0.0, 0.0, 1979995228.8, 1979995622.6, 1977697985.6, 1638513101.4000013, 1297659536.0000002, 598343094.2, 1179762886.2000008, 751068238.2000006, 981978579.6000011, 1112050786.8000002, 1273624672.000001, 1700023264.4000008, 1794015745.6000009, 1816244191.800001, 1966853387.5999997], "ElectricityCable_e388.ElectricityOut.Power": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1979997849.6000054, 1980000000.0, 0.0, 0.0, 1979995228.8, 1979995622.6, 1977697985.6, 1638513101.4000013, 1297659536.0000002, 598343094.2, 1179762886.2000008, 751068238.2000006, 981978579.6000011, 1112050786.8000002, 1273624672.000001, 1700023264.4000008, 1794015745.6000009, 1816244191.800001, 1966853387.5999997], "ElectricityCable_e388.ElectricityOut.V": [50000.0, 50000.0, 50000.0, 50000.0, 50000.0, 50000.0, 96899.65996716083, 96899.6566, 50000.0, 50000.0, 96899.66407088809, 96899.66345426424, 96903.26116320795, 97434.36703043483, 97968.08576874512, 99063.09643280882, 98152.69187990145, 98823.9548205793, 98462.38848070493, 98258.71751650496, 98005.72027984224, 97338.05257190454, 97190.87632506716, 97156.0703571538, 96920.2419600943], "ElectricityCable_e388.Power_loss": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "ElectricityCable_e388.I": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 39599.95699200011, 39600.0, 0.0, 0.0, 39599.904576, 39599.912452, 39553.959711999996, 32770.26202800003, 25953.190720000006, 11966.861884000002, 23595.257724000014, 15021.364764000014, 19639.571592000022, 22241.015736000005, 25472.493440000017, 34000.465288000014, 35880.314912000016, 36324.88383600002, 39337.067751999995], "ElectricityCable_e388.V_loss": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3100.3400328391763, 3100.3433999999997, 0.0, 0.0, 3100.3359291119036, 3100.3365457357577, 3096.738836792048, 2565.632969565164, 2031.9142312548804, 936.9035671911861, 1847.3081200985469, 1176.045179420707, 1537.6115192950697, 1741.2824834950443, 1994.279720157761, 2661.9474280954532, 2809.1236749328486, 2843.9296428461953, 3079.7580399057074], "ElectricityCable_91e7.ElectricityIn.Power": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 19999999.999994468, 20000000.00000002, 0.0, 0.0, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002], "ElectricityCable_91e7.ElectricityIn.V": [50000.0, 50000.0, 50000.0, 50000.0, 50000.0, 50000.0, 100000.0, 100000.0, 50000.0, 50000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0], "ElectricityCable_91e7.ElectricityOut.Power": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 19999999.999994468, 20000000.00000002, 0.0, 0.0, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002, 20000000.00000002], "ElectricityCable_91e7.ElectricityOut.V": [50000.0, 50000.0, 50000.0, 50000.0, 50000.0, 50000.0, 99994.41392, 99994.41392, 50000.0, 50000.0, 99994.41392, 99994.41392, 99994.41392, 99994.41392, 99994.41392, 99994.41392, 99994.41392, 99994.41392, 99994.41392, 99994.41392, 99994.41392, 99994.41392, 99994.41392, 99994.41392, 99994.41392], "ElectricityCable_91e7.Power_loss": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "ElectricityCable_91e7.I": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 399.9999999998893, 400.00000000000034, 0.0, 0.0, 400.00000000000034, 400.00000000000034, 400.00000000000034, 400.00000000000034, 400.00000000000034, 400.00000000000034, 400.00000000000034, 400.00000000000034, 400.00000000000034, 400.00000000000034, 400.00000000000034, 400.00000000000034, 400.00000000000034, 400.00000000000034, 400.00000000000034], "ElectricityCable_91e7.V_loss": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.586079999998456, 5.586080000000006, 0.0, 0.0, 5.586080000000006, 5.586080000000006, 5.586080000000006, 5.586080000000006, 5.586080000000006, 5.586080000000006, 5.586080000000006, 5.586080000000006, 5.586080000000006, 5.586080000000006, 5.586080000000006, 5.586080000000006, 5.586080000000006, 5.586080000000006, 5.586080000000006], "Pipe_ec1a.GasIn.Q_shadow": [0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003], "Pipe_ec1a.GasIn.H": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "Pipe_ec1a.GasOut.Q": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 16.795378441099263, 16.795378441099263, 0.0, 0.0, 16.795378441099263, 16.795378441099263, 16.795378441099263, 16.795378441099263, 16.795378441099263, 16.795378441099263, 16.795378441099263, 16.795378441099263, 16.795378441099263, 16.795378441099267, 16.795378441099263, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267], "Pipe_ec1a.GasOut.Q_shadow": [0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002], "Pipe_ec1a.GasOut.mass_flow": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 20652.203954552995, 20652.203954552995, 0.0, 0.0, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995], "Pipe_ec1a.dH": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "Pipe_97ee.GasIn.Q_shadow": [0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001], "Pipe_97ee.GasOut.Q": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -3.729323170520275e-15, 4.661653963150344e-15, 0.0, -3.729323170520275e-15, -3.729323170520275e-15, -3.729323170520275e-15, -3.729323170520275e-15, -3.729323170520275e-15, -3.729323170520275e-15, -3.729323170520275e-15, -3.729323170520275e-15, -3.729323170520275e-15, 0.0, -3.729323170520275e-15, 0.0, 0.0, 0.0, 0.0], "Pipe_97ee.GasOut.Q_shadow": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "Pipe_97ee.GasOut.mass_flow": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -4.58571046791989e-12, 5.732138084899862e-12, 0.0, -4.58571046791989e-12, -4.58571046791989e-12, -4.58571046791989e-12, -4.58571046791989e-12, -4.58571046791989e-12, -4.58571046791989e-12, -4.58571046791989e-12, -4.58571046791989e-12, -4.58571046791989e-12, 0.0, -4.58571046791989e-12, 0.0, 0.0, 0.0, 0.0], "Pipe_97ee.GasOut.H": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "Pipe_97ee.dH": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "Pipe_910d.GasIn.Q_shadow": [0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001], "Pipe_910d.GasIn.H": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "Pipe_910d.GasOut.Q": [-0.0, 0.0, -0.0, -0.0, -0.0, -0.0, 16.795378441099263, 16.795378441099267, 0.0, -0.0, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267, 16.795378441099267], "Pipe_910d.GasOut.Q_shadow": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "Pipe_910d.GasOut.mass_flow": [-0.0, 0.0, -0.0, -0.0, -0.0, -0.0, 20652.203954552995, 20652.203954552995, 0.0, -0.0, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995, 20652.203954552995], "Pipe_910d.GasOut.H": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "Pipe_910d.dH": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "WindPark_9074.Set_point": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.000000216160079, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.9999999999999999], "Pipe_910d__gas_flow_direct_var": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], "Pipe_97ee__gas_flow_direct_var": [0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, -0.0, 0.0, 0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0], "Pipe_ec1a__gas_flow_direct_var": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], "Electrolyzer_6327__asset_is_switched_on": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], "Pipe_910d__gn_diameter": 1.194, "Pipe_97ee__gn_diameter": 1.194, "Pipe_ec1a__gn_diameter": 1.194, "Pipe_910d__gn_cost": 0.0, "Pipe_97ee__gn_cost": 0.0, "Pipe_ec1a__gn_cost": 0.0, "GasDemand_4146__max_size": 0.0, "GasStorage_9172__max_size": 23715000.0, "Electrolyzer_6327__max_size": 200000000.0, "ElectricityDemand_f833__max_size": 2000000000.0, "WindPark_9074__max_size": 1999999971.8, "ElectricityCable_80a3_aggregation_count": 1.0, "ElectricityCable_91e7_aggregation_count": 1.0, "ElectricityCable_e388_aggregation_count": 1.0, "ElectricityDemand_f833_aggregation_count": 1.0, "Bus_24cf_aggregation_count": 1.0, "WindPark_9074_aggregation_count": 1.0, "Electrolyzer_6327_aggregation_count": 1.0, "GasDemand_4146_aggregation_count": 1.0, "Joint_2503_aggregation_count": 1.0, "Pipe_910d_aggregation_count": 1.0, "Pipe_97ee_aggregation_count": 1.0, "Pipe_ec1a_aggregation_count": 1.0, "GasStorage_9172_aggregation_count": 1.0, "Pipe_910d__gn_max_discharge": 17.0, "Pipe_97ee__gn_max_discharge": 1.0, "Pipe_ec1a__gn_max_discharge": 17.0, "ElectricityCable_80a3__en_max_current": 40000.0, "ElectricityCable_91e7__en_max_current": 401.0, "ElectricityCable_e388__en_max_current": 39600.0, "ElectricityCable_80a3__en_resistance": 0.023801199999999998, "ElectricityCable_91e7__en_resistance": 0.0139652, "ElectricityCable_e388__en_resistance": 0.0782915, "ElectricityCable_80a3__en_cost": 0.0, "ElectricityCable_91e7__en_cost": 0.0, "ElectricityCable_e388__en_cost": 0.0, "ElectricityCable_80a3__fixed_operational_cost": 0.0, "ElectricityCable_91e7__fixed_operational_cost": 0.0, "ElectricityCable_e388__fixed_operational_cost": 0.0, "ElectricityDemand_f833__fixed_operational_cost": 0.0, "WindPark_9074__fixed_operational_cost": 509999992.8090001, "Electrolyzer_6327__fixed_operational_cost": 3000000.0, "GasDemand_4146__fixed_operational_cost": 0.0, "Pipe_910d__fixed_operational_cost": 0.0, "Pipe_97ee__fixed_operational_cost": 0.0, "Pipe_ec1a__fixed_operational_cost": 0.0, "GasStorage_9172__fixed_operational_cost": 0.0, "ElectricityCable_80a3__investment_cost": 0.0, "ElectricityCable_91e7__investment_cost": 0.0, "ElectricityCable_e388__investment_cost": 0.0, "ElectricityDemand_f833__investment_cost": 0.0, "WindPark_9074__investment_cost": 0.0, "Electrolyzer_6327__investment_cost": 0.0, "GasDemand_4146__investment_cost": 0.0, "Pipe_910d__investment_cost": 0.0, "Pipe_97ee__investment_cost": 0.0, "Pipe_ec1a__investment_cost": 0.0, "GasStorage_9172__investment_cost": 0.0, "ElectricityCable_80a3__installation_cost": 0.0, "ElectricityCable_91e7__installation_cost": 0.0, "ElectricityCable_e388__installation_cost": 0.0, "ElectricityDemand_f833__installation_cost": 0.0, "WindPark_9074__installation_cost": 0.0, "Electrolyzer_6327__installation_cost": 0.0, "GasDemand_4146__installation_cost": 0.0, "Pipe_910d__installation_cost": 0.0, "Pipe_97ee__installation_cost": 0.0, "Pipe_ec1a__installation_cost": 0.0, "GasStorage_9172__installation_cost": 0.0, "ElectricityCable_80a3__variable_operational_cost": 0.0, "ElectricityCable_91e7__variable_operational_cost": 0.0, "ElectricityCable_e388__variable_operational_cost": 0.0, "ElectricityDemand_f833__variable_operational_cost": 0.0, "WindPark_9074__variable_operational_cost": 0.0, "Electrolyzer_6327__variable_operational_cost": 0.0, "GasDemand_4146__variable_operational_cost": 0.0, "Pipe_910d__variable_operational_cost": 0.0, "Pipe_97ee__variable_operational_cost": 0.0, "Pipe_ec1a__variable_operational_cost": 0.0, "GasStorage_9172__variable_operational_cost": 0.0, "ElectricityDemand_f833__revenue": 685932.6301589636, "GasDemand_4146__revenue": 842609.9213457622} \ No newline at end of file diff --git a/tests/models/emerge/src/example.py b/tests/models/emerge/src/example.py index bd4d0e6ad..4bca0c28b 100644 --- a/tests/models/emerge/src/example.py +++ b/tests/models/emerge/src/example.py @@ -1,3 +1,5 @@ +import os + import casadi as ca from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin @@ -6,6 +8,7 @@ from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.io.write_output import ScenarioOutput from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, @@ -56,6 +59,33 @@ def function( return -optimization_problem.state(f"{self.source}.Gas_mass_flow_out") +class MaxElecProduction(Goal): + """ + A maximization goal for the hydrogen production, note that we minimize the negative hydrogen + production to achieve this. + """ + + priority = 1 + + order = 1 + + def __init__(self, source: str): + """ + The constructor of the goal. + + Parameters + ---------- + source : string of the source name that is going to be minimized + """ + self.source = source + + def function( + self, optimization_problem: CollocatedIntegratedOptimizationProblem, ensemble_member: int + ) -> ca.MX: + + return -optimization_problem.state(f"{self.source}.Electricity_source") + + class MaxRevenue(Goal): priority = 1 @@ -102,9 +132,9 @@ class MinCost(Goal): order = 1 def __init__(self, asset_name: str): - self.target_max = 0.0 - self.function_range = (0.0, 1.0e9) - self.function_nominal = 1.0e7 + # self.target_max = 0.0 + # self.function_range = (0.0, 1.0e9) + # self.function_nominal = 1.0e7 self.asset_name = asset_name @@ -120,6 +150,7 @@ def function( class EmergeTest( + ScenarioOutput, ESDLAdditionalVarsMixin, TechnoEconomicMixin, LinearizedOrderGoalProgrammingMixin, @@ -155,26 +186,30 @@ def __init__(self, *args, **kwargs): # for s in self.energy_system_components["electrolyzer"]: # goals.append(MaxHydrogenProduction(s)) # + # # for s in self.energy_system_components["electricity_source"]: + # # goals.append(MaxElecProduction(s)) + # # return goals def goals(self): goals = super().goals().copy() - for asset_name in self.energy_system_components["electricity_demand"]: - goals.append(MaxRevenue(asset_name)) - # goals.append(MinCost(asset_name)) - - for asset_name in self.energy_system_components["gas_demand"]: + for asset_name in [ + *self.energy_system_components.get("electricity_demand", []), + *self.energy_system_components.get("gas_demand", []), + ]: goals.append(MaxRevenue(asset_name)) - # goals.append(MinCost(asset_name)) + goals.append(MinCost(asset_name)) - # for asset_name in [*self.energy_system_components.get("electricity_source", []), - # *self.energy_system_components.get("gas_tank_storage", []), - # #TODO: battery - # *self.energy_system_components.get("electrolyzer", []), - # *self.energy_system_components.get("heat_pump_elec", [])]: - # goals.append(MinCost(asset_name)) + for asset_name in [ + *self.energy_system_components.get("electricity_source", []), + *self.energy_system_components.get("gas_tank_storage", []), + # TODO: battery + *self.energy_system_components.get("electrolyzer", []), + *self.energy_system_components.get("heat_pump_elec", []), + ]: + goals.append(MinCost(asset_name)) return goals @@ -189,6 +224,11 @@ def constraints(self, ensemble_member): gas_flow_t0 = sign * self.state_vector(canonical, ensemble_member)[0] constraints.append((gas_flow_t0, 0.0, 0.0)) + for es in self.energy_system_components.get("electricity_storage", []): + canonical, sign = self.alias_relation.canonical_signed(f"{es}.Stored_electricity") + storage_t0 = sign * self.state_vector(canonical, ensemble_member)[0] + constraints.append((storage_t0, 0.0, 0.0)) + return constraints def solver_options(self): @@ -222,14 +262,73 @@ def energy_system_options(self): options["include_electric_cable_power_loss"] = False return options + def post(self): + # In case the solver fails, we do not get in priority_completed(). We + # append this last priority's statistics here in post(). + # TODO: check if we still need this small part of code below + success, _ = self.solver_success(self.solver_stats, False) + # if not success: + # time_taken = time.time() - self.__priority_timer + # self._priorities_output.append( + # ( + # self.__priority, + # time_taken, + # False, + # self.objective_value, + # self.solver_stats, + # ) + # ) + + super().post() + + # Optimized ESDL + self._write_updated_esdl(self.get_energy_system_copy()) + + self._save_json = False + + if os.path.exists(self.output_folder) and self._save_json: + self._write_json_output() + + results = self.extract_results() + + for _type, assets in self.energy_system_components.items(): + for asset in assets: + print("----------------------------------") + print(f"{asset} financials:") + try: + print(f"revenue of {asset} in MEUR/day: ", results[f"{asset}__revenue"] / 1e6) + except KeyError: + print(f"{asset} does not have a revenue") + pass + try: + print( + f"fixed operational costs of {asset} in MEUR/yr : ", + results[f"{asset}__fixed_operational_cost"] / 1e6, + ) + print( + f"variable operational costs of {asset} : ", + results[f"{asset}__variable_operational_cost"] / 1e6, + ) # not yet all included in financialmixin + print(f"max size of {asset} : ", results[f"{asset}__max_size"]) + except KeyError: + print(f"{asset} does not have a costs") + pass + if __name__ == "__main__": elect = run_optimization_problem( EmergeTest, - esdl_file_name="emerge.esdl", + esdl_file_name="emerge_solar_battery.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, - input_timeseries_file="timeseries.csv", + input_timeseries_file="timeseries_with_PV.csv", ) + # elect = run_optimization_problem( + # EmergeTest, + # esdl_file_name="emerge.esdl", + # esdl_parser=ESDLFileParser, + # profile_reader=ProfileReaderFromFile, + # input_timeseries_file="timeseries.csv", + # ) results = elect.extract_results() a = 1 diff --git a/tests/test_electrolyzer.py b/tests/test_electrolyzer.py index c64b96509..25501a14a 100644 --- a/tests/test_electrolyzer.py +++ b/tests/test_electrolyzer.py @@ -89,7 +89,7 @@ def energy_system_options(self): # Check that the wind farm setpoint matches with the production np.testing.assert_allclose( - results["WindPark_7f14.ElectricityOut.Power"], ub * results["WindPark_7f14.Set_point"] + results["WindPark_7f14.ElectricityOut.Power"], ub * results["WindPark_7f14__set_point"] ) # Checks on the storage From 8c745e667b0ed51c1093ecd22f36fbab7d85d978 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 9 Apr 2024 09:09:43 +0200 Subject: [PATCH 021/275] Set timezone all profile read methods --- src/mesido/esdl/profile_parser.py | 30 ++++++++++++++++++++++++++---- tests/test_esdl_pycml.py | 9 +++++++++ tests/test_profile_parsing.py | 19 ++++++++++++++++--- 3 files changed, 51 insertions(+), 7 deletions(-) diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index dc13b968a..b43a4e92c 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -303,7 +303,15 @@ def _load_profile_timeseries_from_database(self, profile: esdl.InfluxDBProfile) "profile for each asset" ) - index = pd.DatetimeIndex(data=[x[0] for x in time_series_data.profile_data_list]) + if not time_series_data.profile_data_list[0][0].tzinfo: + index = pd.DatetimeIndex( + data=[x[0] for x in time_series_data.profile_data_list], + tz=datetime.timezone.utc, + ) + logger.warning("No timezone specified for the input profile: default UTC has been used") + else: + index = pd.DatetimeIndex(data=[x[0] for x in time_series_data.profile_data_list]) + data = [x[1] for x in time_series_data.profile_data_list] series = pd.Series(data=data, index=index) self._df[profile.id] = series @@ -440,25 +448,34 @@ def _load_csv( data = pd.read_csv(self._file_path) try: timeseries_import_times = [ - datetime.datetime.strptime(entry.replace("Z", ""), "%Y-%m-%d %H:%M:%S") + datetime.datetime.strptime(entry.replace("Z", ""), "%Y-%m-%d %H:%M:%S").replace( + tzinfo=datetime.timezone.utc + ) for entry in data["DateTime"].to_numpy() ] except ValueError: try: timeseries_import_times = [ - datetime.datetime.strptime(entry.replace("Z", ""), "%Y-%m-%dT%H:%M:%S") + datetime.datetime.strptime(entry.replace("Z", ""), "%Y-%m-%dT%H:%M:%S").replace( + tzinfo=datetime.timezone.utc + ) for entry in data["DateTime"].to_numpy() ] except ValueError: try: timeseries_import_times = [ - datetime.datetime.strptime(entry.replace("Z", ""), "%d-%m-%Y %H:%M") + datetime.datetime.strptime( + entry.replace("Z", ""), "%d-%m-%Y %H:%M" + ).replace(tzinfo=datetime.timezone.utc) for entry in data["DateTime"].to_numpy() ] except ValueError: raise _ProfileParserException("Date time string is not in a supported format") + logger.warning("Timezone specification not supported yet: default UTC has been used") + self._reference_datetimes = timeseries_import_times + for ensemble_member in range(ensemble_size): for component_type, var_name in self.component_type_to_var_name_map.items(): for component_name in energy_system_components.get(component_type, []): @@ -499,6 +516,11 @@ def _load_xml(self, energy_system_components, esdl_asset_id_to_name_map): ) # Convert timeseries timestamps to seconds since t0 for internal use + if not data.times[0].tzinfo: + for ii in range(len(data.times)): + data.times[ii] = data.times[ii].replace(tzinfo=datetime.timezone.utc) + logger.warning("No timezone specified for the input profile: default UTC has been used") + self._reference_datetimes = data.times # Offer input timeseries to IOMixin diff --git a/tests/test_esdl_pycml.py b/tests/test_esdl_pycml.py index 08907a5d5..45db8362a 100644 --- a/tests/test_esdl_pycml.py +++ b/tests/test_esdl_pycml.py @@ -56,3 +56,12 @@ def test_basic_source_and_demand_heat(self): # np.testing.assert_allclose( # case_python._objective_values[0], case_esdl._objective_values, rtol=1e-5, atol=1e-5 # ) + + +if __name__ == "__main__": + import time + + start_time = time.time() + a = TestESDL() + a.test_basic_source_and_demand_heat() + temp = 0 diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index 45afe0416..a7a738782 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -1,3 +1,4 @@ +import datetime import unittest from pathlib import Path from typing import Optional @@ -8,7 +9,6 @@ from mesido.esdl.profile_parser import InfluxDBProfileReader, ProfileReaderFromFile from mesido.workflows import EndScenarioSizingStagedHIGHS - import numpy as np import pandas as pd @@ -33,6 +33,9 @@ def test_loading_from_influx(self): EndScenarioSizing is called thus the checks done are on profile lenghts and some values. This is because this scenario should also do aggragation of the profiles for non-peak days. + + Also check: + - that the timezone setting from the "influx_mock.csv" is correct """ import models.unit_cases.case_1a.src.run_1a as run_1a @@ -50,6 +53,8 @@ def test_loading_from_influx(self): ) problem.pre() + np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) + # the three demands in the test ESDL for demand_name in ["HeatingDemand_2ab9", "HeatingDemand_6662", "HeatingDemand_506c"]: profile_values = problem.get_timeseries(f"{demand_name}.target_heat_demand").values @@ -63,7 +68,8 @@ def test_loading_from_influx(self): def test_loading_from_csv(self): """ This test constructs a problem with input profiles read from a CSV file. - The test checks if the profiles read match the profiles from the CVS file. + The test checks if the profiles read match the profiles from the CVS file and that the + default UTC timezone has been set. """ import models.unit_cases_electricity.electrolyzer.src.example as example from models.unit_cases_electricity.electrolyzer.src.example import MILPProblem @@ -82,6 +88,8 @@ def test_loading_from_csv(self): ) problem.pre() + np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) + expected_array = np.array([1.0e8] * 3) np.testing.assert_equal( expected_array, @@ -97,7 +105,8 @@ def test_loading_from_csv(self): def test_loading_from_xml(self): """ This test loads a simple problem using an XML file for input profiles. - The test checks if the load profiles match those specified in the XML file. + The test checks if the load profiles match those specified in the XML file and that the + default UTC timezone has been set. """ import models.basic_source_and_demand.src.heat_comparison as heat_comparison from models.basic_source_and_demand.src.heat_comparison import HeatESDL @@ -116,6 +125,8 @@ def test_loading_from_xml(self): ) problem.pre() + np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) + expected_array = np.array([1.5e5] * 16 + [1.0e5] * 13 + [0.5e5] * 16) np.testing.assert_equal( expected_array, problem.get_timeseries("demand.target_heat_demand").values @@ -146,6 +157,8 @@ def test_loading_from_csv_with_influx_profiles_given(self): ) problem.pre() + np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) + expected_array = np.array([1.0e8] * 3) np.testing.assert_equal( expected_array, From 56ac6874ec5bcacd15efeaf40fd4890fede80ef5 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 9 Apr 2024 09:30:58 +0200 Subject: [PATCH 022/275] Standardized timezone, got rid of pytz in write_out --- src/mesido/workflows/io/write_output.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 9080f5815..ab6c2a8db 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -1,3 +1,4 @@ +import datetime import json import logging import numbers @@ -22,7 +23,6 @@ import pandas as pd -import pytz from rtctools.optimization.timeseries import Timeseries @@ -966,7 +966,7 @@ def _name_to_asset(name): for ii in range(len(self.times())): if not self.io.datetimes[ii].tzinfo: - data_row = [pytz.utc.localize(self.io.datetimes[ii])] + data_row = [self.io.datetimes[ii].replace(tzinfo=datetime.timezone.utc)] else: data_row = [self.io.datetimes[ii]] @@ -998,11 +998,19 @@ def _name_to_asset(name): profiles.profile_header.append(variable) # Set profile database attributes for the esdl asset if not self.io.datetimes[0].tzinfo: - start_date_time = pytz.utc.localize(self.io.datetimes[0]) + start_date_time = self.io.datetimes[0].replace( + tzinfo=datetime.timezone.utc + ) + logger.warning( + "No timezone specified for the output profile: default UTC" + f"has been used for asset {asset_name} variable {variable}" + ) else: start_date_time = self.io.datetimes[0] if not self.io.datetimes[-1].tzinfo: - end_date_time = pytz.utc.localize(self.io.datetimes[-1]) + end_date_time = self.io.datetimes[-1].replace( + tzinfo=datetime.timezone.utc + ) else: end_date_time = self.io.datetimes[-1] From d2c8366cbef1be5f43014b14bf91bc36ea92d817 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 9 Apr 2024 09:45:44 +0200 Subject: [PATCH 023/275] check soemthing --- tests/test_profile_parsing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index a7a738782..722f731ef 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -157,7 +157,7 @@ def test_loading_from_csv_with_influx_profiles_given(self): ) problem.pre() - np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) + np.testing.assert_equal(problem.io.reference_datetime.tzinfo, True or datetime.timezone.utc) expected_array = np.array([1.0e8] * 3) np.testing.assert_equal( From e240c12617930ea0b559dd034be009bb855d7865 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 9 Apr 2024 09:54:31 +0200 Subject: [PATCH 024/275] check --- tests/test_profile_parsing.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index 722f731ef..2299b95f6 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -157,7 +157,10 @@ def test_loading_from_csv_with_influx_profiles_given(self): ) problem.pre() - np.testing.assert_equal(problem.io.reference_datetime.tzinfo, True or datetime.timezone.utc) + if not problem.io.reference_datetime.tzinfo: + ... + else: + np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) expected_array = np.array([1.0e8] * 3) np.testing.assert_equal( From a0fbfa96f2687da9c8b2171787d4166e74e29ef5 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 9 Apr 2024 10:06:22 +0200 Subject: [PATCH 025/275] another check --- tests/test_profile_parsing.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index 2299b95f6..58c34feac 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -53,7 +53,10 @@ def test_loading_from_influx(self): ) problem.pre() - np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) + if not problem.io.reference_datetime.tzinfo: + exit("error") + else: + np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) # the three demands in the test ESDL for demand_name in ["HeatingDemand_2ab9", "HeatingDemand_6662", "HeatingDemand_506c"]: @@ -157,10 +160,7 @@ def test_loading_from_csv_with_influx_profiles_given(self): ) problem.pre() - if not problem.io.reference_datetime.tzinfo: - ... - else: - np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) + np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) expected_array = np.array([1.0e8] * 3) np.testing.assert_equal( From fa0a6eb0933b2057413c7615604babbc6d0006d3 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 9 Apr 2024 10:08:56 +0200 Subject: [PATCH 026/275] check --- tests/test_profile_parsing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index 58c34feac..27327bc74 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -54,7 +54,7 @@ def test_loading_from_influx(self): problem.pre() if not problem.io.reference_datetime.tzinfo: - exit("error") + ... else: np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) From 0ac4133d6ae2de005aff4f3167ed67afb601719f Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 9 Apr 2024 11:08:31 +0200 Subject: [PATCH 027/275] Allow for different UTC input specified --- tests/test_profile_parsing.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index 27327bc74..f81929d16 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -13,6 +13,8 @@ import pandas as pd +import pytz + class MockInfluxDBProfileReader(InfluxDBProfileReader): def __init__(self, energy_system: esdl.EnergySystem, file_path: Optional[Path]): @@ -53,10 +55,10 @@ def test_loading_from_influx(self): ) problem.pre() - if not problem.io.reference_datetime.tzinfo: - ... - else: - np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) + # The timezone setting is dependand on what is specificied + np.testing.assert_equal( + problem.io.reference_datetime.tzinfo, pytz.timezone("UTC") or datetime.timezone.utc + ) # the three demands in the test ESDL for demand_name in ["HeatingDemand_2ab9", "HeatingDemand_6662", "HeatingDemand_506c"]: From 9ccce131fed125cc06be0e0385e7477375ddfc00 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 9 Apr 2024 14:39:29 +0200 Subject: [PATCH 028/275] Reomve pytz from the test --- tests/test_profile_parsing.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index f81929d16..11e4dd004 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -13,13 +13,15 @@ import pandas as pd -import pytz - class MockInfluxDBProfileReader(InfluxDBProfileReader): def __init__(self, energy_system: esdl.EnergySystem, file_path: Optional[Path]): super().__init__(energy_system, file_path) - self._loaded_profiles = pd.read_csv(file_path, index_col="DateTime", parse_dates=True) + self._loaded_profiles = pd.read_csv( + file_path, + index_col="DateTime", + date_parser=lambda x: pd.to_datetime(x).tz_convert(datetime.timezone.utc), + ) def _load_profile_timeseries_from_database(self, profile: esdl.InfluxDBProfile) -> pd.Series: return self._loaded_profiles[profile.id] @@ -55,10 +57,7 @@ def test_loading_from_influx(self): ) problem.pre() - # The timezone setting is dependand on what is specificied - np.testing.assert_equal( - problem.io.reference_datetime.tzinfo, pytz.timezone("UTC") or datetime.timezone.utc - ) + np.testing.assert_equal(problem.io.reference_datetime.tzinfo, datetime.timezone.utc) # the three demands in the test ESDL for demand_name in ["HeatingDemand_2ab9", "HeatingDemand_6662", "HeatingDemand_506c"]: From 0dba81f61141dc0d2165f61a768a8919c14278eb Mon Sep 17 00:00:00 2001 From: Femke Janssen Date: Tue, 9 Apr 2024 16:13:46 +0200 Subject: [PATCH 029/275] locally run grow --- manual_run/testing_bugs/model/test2.esdl | 68 ++++++++++++++++++++++++ manual_run/testing_bugs/src/run_grow.py | 20 +++++++ 2 files changed, 88 insertions(+) create mode 100644 manual_run/testing_bugs/model/test2.esdl create mode 100644 manual_run/testing_bugs/src/run_grow.py diff --git a/manual_run/testing_bugs/model/test2.esdl b/manual_run/testing_bugs/model/test2.esdl new file mode 100644 index 000000000..01a586d8f --- /dev/null +++ b/manual_run/testing_bugs/model/test2.esdl @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/manual_run/testing_bugs/src/run_grow.py b/manual_run/testing_bugs/src/run_grow.py new file mode 100644 index 000000000..6dcd75db4 --- /dev/null +++ b/manual_run/testing_bugs/src/run_grow.py @@ -0,0 +1,20 @@ +from pathlib import Path + +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.workflows import EndScenarioSizingStagedHIGHS, run_end_scenario_sizing +from mesido.workflows.grow_workflow import EndScenarioSizingStagedGurobi + +if __name__ == "__main__": + import time + + start_time = time.time() + base_folder = Path(__file__).resolve().parent.parent + + solution = run_end_scenario_sizing( + EndScenarioSizingStagedHIGHS, + base_folder=base_folder, + esdl_file_name="Base Netwerk Delft.esdl", + esdl_parser=ESDLFileParser, + ) + + print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) From e3bc2e8adb148bb5efad91e0a3cb0219ffca8c85 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 11 Apr 2024 10:57:27 +0200 Subject: [PATCH 030/275] Replace copied (deepcopy) ESDL with actual ESDL --- src/mesido/workflows/grow_workflow.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 760eaec1b..981ee610d 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -332,7 +332,7 @@ def post(self): parameters = self.parameters(0) # bounds = self.bounds() # Optimized ESDL - self._write_updated_esdl(self.get_energy_system_copy()) + self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) for d in self.energy_system_components.get("heat_demand", []): realized_demand = results[f"{d}.Heat_demand"] From b44665f143664d587898c4ef56c26dea514e6118 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 11 Apr 2024 11:02:40 +0200 Subject: [PATCH 031/275] Update test case --- tests/test_head_loss.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 285b67f85..77454f8e2 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -77,7 +77,7 @@ def energy_system_options(self): # Do not delete kwargs: this is used to manualy check writing out of profile data kwargs = { - "write_result_db_profiles": True, + "write_result_db_profiles": False, "influxdb_host": "localhost", "influxdb_port": 8086, "influxdb_username": None, From c1859c9233e55ed877c7cb8a09c6af321173b5e6 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 11 Apr 2024 11:13:58 +0200 Subject: [PATCH 032/275] Updated commented out sections of code, tests and simulator workflow --- src/mesido/workflows/simulator_workflow.py | 2 +- tests/models/emerge/src/example.py | 2 +- tests/test_head_loss.py | 2 +- tests/test_multiple_in_and_out_port_components.py | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mesido/workflows/simulator_workflow.py b/src/mesido/workflows/simulator_workflow.py index 3fc4009a3..84e1e7ddb 100644 --- a/src/mesido/workflows/simulator_workflow.py +++ b/src/mesido/workflows/simulator_workflow.py @@ -312,7 +312,7 @@ def __state_vector_scaled(self, variable, ensemble_member): class NetworkSimulatorHIGHS(NetworkSimulator): def post(self): super().post() - self._write_updated_esdl(self.get_energy_system_copy(), optimizer_sim=True) + self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True) def solver_options(self): options = super().solver_options() diff --git a/tests/models/emerge/src/example.py b/tests/models/emerge/src/example.py index 4bca0c28b..db2ee38fc 100644 --- a/tests/models/emerge/src/example.py +++ b/tests/models/emerge/src/example.py @@ -282,7 +282,7 @@ def post(self): super().post() # Optimized ESDL - self._write_updated_esdl(self.get_energy_system_copy()) + self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) self._save_json = False diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 77454f8e2..b672b8309 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -49,7 +49,7 @@ class SourcePipeSinkDW(SourcePipeSink): # Do not delete: this is used to manualy check writing out of profile data # def post(self): # super().post() - # self._write_updated_esdl(self.get_energy_system_copy(), optimizer_sim=True) + # self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True) def energy_system_options(self): options = super().energy_system_options() diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index 95d9a605a..28a503544 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -39,7 +39,7 @@ def test_heat_exchanger(self): class HeatProblemPost(HeatProblem): # def post(self): # super().post() - # self._write_updated_esdl(self.get_energy_system_copy(), optimizer_sim=True) + # self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True) def energy_system_options(self): options = super().energy_system_options() @@ -130,7 +130,7 @@ def test_heat_pump(self): class HeatProblemPost(HeatProblem): # def post(self): # super().post() - # self._write_updated_esdl(self.get_energy_system_copy(), optimizer_sim=True) + # self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True) def energy_system_options(self): options = super().energy_system_options() From f7bc1f4bb3dd26198d000897c669f564900539cc Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 11 Apr 2024 11:17:58 +0200 Subject: [PATCH 033/275] Formatting --- src/mesido/workflows/simulator_workflow.py | 4 +++- tests/test_head_loss.py | 4 +++- tests/test_multiple_in_and_out_port_components.py | 8 ++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/mesido/workflows/simulator_workflow.py b/src/mesido/workflows/simulator_workflow.py index 84e1e7ddb..a534d9446 100644 --- a/src/mesido/workflows/simulator_workflow.py +++ b/src/mesido/workflows/simulator_workflow.py @@ -312,7 +312,9 @@ def __state_vector_scaled(self, variable, ensemble_member): class NetworkSimulatorHIGHS(NetworkSimulator): def post(self): super().post() - self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True) + self._write_updated_esdl( + self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True + ) def solver_options(self): options = super().solver_options() diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index b672b8309..16b76f31c 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -49,7 +49,9 @@ class SourcePipeSinkDW(SourcePipeSink): # Do not delete: this is used to manualy check writing out of profile data # def post(self): # super().post() - # self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True) + # self._write_updated_esdl( + # self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True + # ) def energy_system_options(self): options = super().energy_system_options() diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index 28a503544..3f3adb35e 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -39,7 +39,9 @@ def test_heat_exchanger(self): class HeatProblemPost(HeatProblem): # def post(self): # super().post() - # self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True) + # self._write_updated_esdl( + # self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True + # ) def energy_system_options(self): options = super().energy_system_options() @@ -130,7 +132,9 @@ def test_heat_pump(self): class HeatProblemPost(HeatProblem): # def post(self): # super().post() - # self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True) + # self._write_updated_esdl( + # self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True + # ) def energy_system_options(self): options = super().energy_system_options() From 0539554b8a57e111da298a5985a11c07bc36996b Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 11 Apr 2024 11:25:10 +0200 Subject: [PATCH 034/275] Mark my files to be ignored --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 404870adc..77c03b191 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ src/*.egg-info # Kobus van Rooyen run_pipe_compare.py +*_kvr_* .venv/ # Ignore ESDL files created by workflows *_GrowOptimized.esdl From 0bf8a432b861754ad5a90493d41374993585ba76 Mon Sep 17 00:00:00 2001 From: JimRojer-TNO <137045207+jimrojerTNO@users.noreply.github.com> Date: Fri, 12 Apr 2024 09:21:28 +0200 Subject: [PATCH 035/275] Transformer and Compressor (#18) This commit adds support for a compressor in the gas network and a transformer in the e-grod --- src/mesido/asset_sizing_mixin.py | 10 +++ src/mesido/electricity_physics_mixin.py | 1 + src/mesido/esdl/asset_to_component_base.py | 31 ++++++- src/mesido/esdl/esdl_heat_model.py | 83 ++++++++++++++++++- .../pycml/component_library/milp/__init__.py | 4 + .../milp/electricity/__init__.py | 2 + .../milp/electricity/transformer.py | 27 ++++++ .../component_library/milp/gas/__init__.py | 2 + .../component_library/milp/gas/compressor.py | 30 +++++++ .../component_library/milp/gas/gas_demand.py | 2 +- .../milp/gas/gas_substation.py | 4 +- .../model/compressor.esdl | 42 ++++++++++ .../src/run_multiple_gas_carriers.py | 2 +- .../source_sink_cable/model/transformer.esdl | 42 ++++++++++ .../source_sink_cable/src/example.py | 2 +- tests/test_electric_source_sink.py | 78 ++++++++++++++++- tests/test_head_loss.py | 53 +++++++++++- tests/utils_tests.py | 18 ++++ 18 files changed, 422 insertions(+), 11 deletions(-) create mode 100644 src/mesido/pycml/component_library/milp/electricity/transformer.py create mode 100644 src/mesido/pycml/component_library/milp/gas/compressor.py create mode 100644 tests/models/multiple_gas_carriers/model/compressor.esdl create mode 100644 tests/models/unit_cases_electricity/source_sink_cable/model/transformer.esdl diff --git a/src/mesido/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py index b1a8182bc..f2329d82c 100644 --- a/src/mesido/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -863,6 +863,11 @@ def _make_max_size_var(name, lb, ub, nominal): lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) + for asset_name in self.energy_system_components.get("compressor", []): + ub = bounds[f"{asset_name}.GasIn.Q"][1] + lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub + _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) + for asset_name in self.energy_system_components.get("electrolyzer", []): ub = bounds[f"{asset_name}.ElectricityIn.Power"][1] lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub @@ -874,6 +879,11 @@ def _make_max_size_var(name, lb, ub, nominal): lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) + for asset_name in self.energy_system_components.get("transformer", []): + ub = bounds[f"{asset_name}.ElectricityIn.Power"][1] + lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub + _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) + for asset_name in self.energy_system_components.get("electricity_source", []): ub = ( bounds[f"{asset_name}.Electricity_source"][1] diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index 4f405f1ac..5e06a63fb 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -401,6 +401,7 @@ def __electricity_demand_path_constraints(self, ensemble_member): *self.energy_system_components.get("electricity_demand", []), *self.energy_system_components.get("heat_pump_elec", []), *self.energy_system_components.get("electrolyzer", []), + *self.energy_system_components.get("transformer", []), ]: min_voltage = parameters[f"{elec_demand}.min_voltage"] voltage = self.state(f"{elec_demand}.ElectricityIn.V") diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index 4e9b11273..5918471c8 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -79,6 +79,7 @@ class _AssetToComponentBase: "ElectricityDemand": "electricity_demand", "ElectricityProducer": "electricity_source", "Electrolyzer": "electrolyzer", + "Compressor": "compressor", "GenericConsumer": "heat_demand", "CoolingDemand": "cold_demand", "HeatExchange": "heat_exchanger", @@ -98,11 +99,13 @@ class _AssetToComponentBase: "Joint": "node", "Pipe": "heat_pipe", "Pump": "pump", + "PressureReducingValve": "gas_substation", "PVInstallation": "electricity_source", "HeatStorage": "heat_buffer", "Sensor": "skip", "Valve": "control_valve", "WindPark": "electricity_source", + "Transformer": "transformer", "CheckValve": "check_valve", } @@ -370,7 +373,33 @@ def _get_connected_q_max(self, asset: Asset) -> float: ) def _get_connected_i_nominal_and_max(self, asset: Asset) -> Tuple[float, float]: - if asset.in_ports is None: + if ( + asset.in_ports is not None + and asset.out_ports is not None + and len(asset.in_ports) == 1 + and len(asset.out_ports) == 1 + and isinstance(asset.in_ports[0].carrier, esdl.ElectricityCommodity) + and isinstance(asset.out_ports[0].carrier, esdl.ElectricityCommodity) + ): # Transformer + connected_port = asset.out_ports[0].connectedTo[0] + i_max_out = self._port_to_i_max.get(connected_port, None) + i_nom_out = self._port_to_i_nominal.get(connected_port, None) + connected_port = asset.in_ports[0].connectedTo[0] + i_max_in = self._port_to_i_max.get(connected_port, None) + i_nom_in = self._port_to_i_nominal.get(connected_port, None) + if i_nom_in is not None and i_nom_out is not None: + self._port_to_i_nominal[asset.in_ports[0]] = i_nom_in + self._port_to_i_max[asset.in_ports[0]] = i_max_in + self._port_to_i_nominal[asset.out_ports[0]] = i_nom_out + self._port_to_i_max[asset.out_ports[0]] = i_max_out + return i_max_in, i_nom_in, i_max_out, i_nom_out + else: + raise _RetryLaterException( + f"Could not determine max and nominal current for {asset.asset_type}" + " '{asset.name}'" + ) + + elif asset.in_ports is None: connected_port = asset.out_ports[0].connectedTo[0] i_max = self._port_to_i_max.get(connected_port, None) i_nom = self._port_to_i_nominal.get(connected_port, None) diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 8bb51ed07..979d19546 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -15,6 +15,7 @@ AirWaterHeatPump, CheckValve, ColdDemand, + Compressor, ControlValve, ElectricityCable, ElectricityDemand, @@ -40,6 +41,7 @@ Node, Pump, SolarPV, + Transformer, WindPark, ) @@ -1304,6 +1306,46 @@ def convert_electricity_cable(self, asset: Asset) -> Tuple[Type[ElectricityCable ) return ElectricityCable, modifiers + def convert_transformer(self, asset: Asset) -> Tuple[Type[Transformer], MODIFIERS]: + """ + This function converts the Transformer object in esdl to a set of modifiers that can be + used in a pycml object. Most important: + + - Setting the length of the cable used for power loss computation. + - setting the min and max current. + + Parameters + ---------- + asset : The asset object with its properties. + + Returns + ------- + ElectricityCable class with modifiers + """ + assert asset.asset_type in {"Transformer"} + self._get_connected_i_nominal_and_max(asset) + i_max_in, i_nom_in, i_max_out, i_nom_out = self._get_connected_i_nominal_and_max(asset) + min_voltage_in = asset.in_ports[0].carrier.voltage + min_voltage_out = asset.out_ports[0].carrier.voltage + max_power = min_voltage_in * i_max_in + + modifiers = dict( + power_nominal=max_power / 2.0, + min_voltage=min_voltage_in, + ElectricityIn=dict( + V=dict(min=min_voltage_in, nominal=min_voltage_in), + I=dict(min=0.0, max=i_max_in, nominal=i_nom_in), + Power=dict(min=0.0, max=max_power, nominal=max_power / 2.0), + ), + ElectricityOut=dict( + V=dict(nominal=min_voltage_out), + I=dict(min=0.0, max=i_max_out, nominal=i_nom_out), + Power=dict(min=0.0, max=max_power, nominal=max_power / 2.0), + ), + **self._get_cost_figure_modifiers(asset), + ) + return Transformer, modifiers + def convert_gas_demand(self, asset: Asset) -> Tuple[Type[GasDemand], MODIFIERS]: """ This function converts the GasDemand object in esdl to a set of modifiers that can be @@ -1494,8 +1536,8 @@ def convert_gas_tank_storage(self, asset: Asset) -> Tuple[Type[GasTankStorage], def convert_gas_substation(self, asset: Asset) -> Tuple[Type[GasSubstation], MODIFIERS]: """ - This function converts the GasTankStorage object in esdl to a set of modifiers that can be - used in a pycml object. + This function converts the PressureReducingValve object in esdl to a set of modifiers that + can be used in a pycml object. Parameters ---------- @@ -1505,12 +1547,14 @@ def convert_gas_substation(self, asset: Asset) -> Tuple[Type[GasSubstation], MOD ------- GasTankStorage class with modifiers """ - assert asset.asset_type in {"GasConversion"} + assert asset.asset_type in {"GasConversion", "PressureReducingValve"} q_nom_in, q_nom_out = self._get_connected_q_nominal(asset) density_in = self.get_density(asset.name, asset.in_ports[0].carrier) density_out = self.get_density(asset.name, asset.out_ports[0].carrier) + assert density_in >= density_out + modifiers = dict( Q_nominal_in=q_nom_in, Q_nominal_out=q_nom_out, @@ -1523,6 +1567,39 @@ def convert_gas_substation(self, asset: Asset) -> Tuple[Type[GasSubstation], MOD return GasSubstation, modifiers + def convert_compressor(self, asset: Asset) -> Tuple[Type[Compressor], MODIFIERS]: + """ + This function converts the Compressor object in esdl to a set of modifiers that can be + used in a pycml object. + + Parameters + ---------- + asset : The asset object with its properties. + + Returns + ------- + GasTankStorage class with modifiers + """ + assert asset.asset_type in {"Compressor"} + + q_nom_in, q_nom_out = self._get_connected_q_nominal(asset) + density_in = self.get_density(asset.name, asset.in_ports[0].carrier) + density_out = self.get_density(asset.name, asset.out_ports[0].carrier) + + assert density_out >= density_in + + modifiers = dict( + Q_nominal_in=q_nom_in, + Q_nominal_out=q_nom_out, + density_in=density_in, + density_out=density_out, + GasIn=dict(Q=dict(nominal=q_nom_in), mass_flow=dict(nominal=q_nom_in * density_in)), + GasOut=dict(Q=dict(nominal=q_nom_out), mass_flow=dict(nominal=q_nom_out * density_out)), + **self._get_cost_figure_modifiers(asset), + ) + + return Compressor, modifiers + class ESDLHeatModel(_ESDLModelBase): """ diff --git a/src/mesido/pycml/component_library/milp/__init__.py b/src/mesido/pycml/component_library/milp/__init__.py index 30dfa8a55..60d6534db 100644 --- a/src/mesido/pycml/component_library/milp/__init__.py +++ b/src/mesido/pycml/component_library/milp/__init__.py @@ -5,7 +5,9 @@ from .electricity.electricity_storage import ElectricityStorage from .electricity.heat_pump_elec import HeatPumpElec from .electricity.solarpv import SolarPV +from .electricity.transformer import Transformer from .electricity.windpark import WindPark +from .gas.compressor import Compressor from .gas.gas_demand import GasDemand from .gas.gas_node import GasNode from .gas.gas_pipe import GasPipe @@ -38,6 +40,7 @@ "HeatBuffer", "CheckValve", "ColdDemand", + "Compressor", "ControlValve", "HeatDemand", "ElectricityCable", @@ -65,5 +68,6 @@ "Pump", "HeatSource", "SolarPV", + "Transformer", "WindPark", ] diff --git a/src/mesido/pycml/component_library/milp/electricity/__init__.py b/src/mesido/pycml/component_library/milp/electricity/__init__.py index cd65110e7..d6592bb8f 100644 --- a/src/mesido/pycml/component_library/milp/electricity/__init__.py +++ b/src/mesido/pycml/component_library/milp/electricity/__init__.py @@ -3,6 +3,7 @@ from .electricity_node import ElectricityNode from .electricity_source import ElectricitySource from .heat_pump_elec import HeatPumpElec +from .transformer import Transformer __all__ = [ "ElectricityNode", @@ -10,4 +11,5 @@ "ElectricitySource", "ElectricityDemand", "HeatPumpElec", + "Transformer", ] diff --git a/src/mesido/pycml/component_library/milp/electricity/transformer.py b/src/mesido/pycml/component_library/milp/electricity/transformer.py new file mode 100644 index 000000000..ace4e31db --- /dev/null +++ b/src/mesido/pycml/component_library/milp/electricity/transformer.py @@ -0,0 +1,27 @@ +from numpy import nan + +from .electricity_base import ElectricityTwoPort +from .._internal import BaseAsset + + +class Transformer(ElectricityTwoPort, BaseAsset): + """ + The transformer component is used to change the voltage level of the network whilst conserving + the power. + """ + + def __init__(self, name, **modifiers): + super().__init__(name, **modifiers) + + self.component_type = "transformer" + self.meret_place = 1 + + self.price = nan + + self.min_voltage = nan + + self.power_nominal = nan + + self.add_equation( + ((self.ElectricityIn.Power - self.ElectricityOut.Power) / self.power_nominal) + ) diff --git a/src/mesido/pycml/component_library/milp/gas/__init__.py b/src/mesido/pycml/component_library/milp/gas/__init__.py index 1aac45553..baa4fe707 100644 --- a/src/mesido/pycml/component_library/milp/gas/__init__.py +++ b/src/mesido/pycml/component_library/milp/gas/__init__.py @@ -1,3 +1,4 @@ +from .compressor import Compressor from .gas_demand import GasDemand from .gas_node import GasNode from .gas_pipe import GasPipe @@ -5,6 +6,7 @@ from .gas_substation import GasSubstation __all__ = [ + "Compressor", "GasNode", "GasPipe", "GasSource", diff --git a/src/mesido/pycml/component_library/milp/gas/compressor.py b/src/mesido/pycml/component_library/milp/gas/compressor.py new file mode 100644 index 000000000..b83420781 --- /dev/null +++ b/src/mesido/pycml/component_library/milp/gas/compressor.py @@ -0,0 +1,30 @@ +from numpy import nan + +from .gas_base import GasTwoPort +from .._internal import BaseAsset + + +class Compressor(GasTwoPort, BaseAsset): + """ + A gas compressor increases the pressure level of the flow. + """ + + def __init__(self, name, **modifiers): + super().__init__(name, **modifiers) + + self.component_type = "compressor" + self.min_head = 30.0 + + self.Q_nominal_in = nan + self.Q_nominal_out = nan + + self.density_in = 2.5e3 # H2 density [g/m3] at 30bar + self.density_out = 2.5e3 # H2 density [g/m3] at 30bar + + self.add_equation( + ( + (self.GasIn.Q * self.density_in - self.GasOut.Q * self.density_out) + / (self.Q_nominal_in * self.density_in * self.Q_nominal_out * self.density_out) + ** 0.5 + ) + ) diff --git a/src/mesido/pycml/component_library/milp/gas/gas_demand.py b/src/mesido/pycml/component_library/milp/gas/gas_demand.py index 3dbf21635..7b05a5d7d 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_demand.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_demand.py @@ -20,7 +20,7 @@ def __init__(self, name, **modifiers): self.Q_nominal = nan - self.density = 2.5e3 # H2 density [kg/m3] at 30bar + self.density = 2.5e3 # H2 density [g/m3] at 30bar self.id_mapping_carrier = -1 diff --git a/src/mesido/pycml/component_library/milp/gas/gas_substation.py b/src/mesido/pycml/component_library/milp/gas/gas_substation.py index 534d37247..9f9b0ca77 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_substation.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_substation.py @@ -19,8 +19,8 @@ def __init__(self, name, **modifiers): self.Q_nominal_in = nan self.Q_nominal_out = nan - self.density_in = 2.5e3 # H2 density [kg/m3] at 30bar - self.density_out = 2.5e3 # H2 density [kg/m3] at 30bar + self.density_in = 2.5e3 # H2 density [g/m3] at 30bar + self.density_out = 2.5e3 # H2 density [g/m3] at 30bar self.add_equation( ( diff --git a/tests/models/multiple_gas_carriers/model/compressor.esdl b/tests/models/multiple_gas_carriers/model/compressor.esdl new file mode 100644 index 000000000..10b43e8da --- /dev/null +++ b/tests/models/multiple_gas_carriers/model/compressor.esdl @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py b/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py index a6c9669d1..d96dfaa98 100644 --- a/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py +++ b/tests/models/multiple_gas_carriers/src/run_multiple_gas_carriers.py @@ -86,7 +86,7 @@ def times(self, variable=None) -> np.ndarray: if __name__ == "__main__": elect = run_optimization_problem( GasProblem, - esdl_file_name="multiple_carriers.esdl", + esdl_file_name="compressor.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries.csv", diff --git a/tests/models/unit_cases_electricity/source_sink_cable/model/transformer.esdl b/tests/models/unit_cases_electricity/source_sink_cable/model/transformer.esdl new file mode 100644 index 000000000..19acdc012 --- /dev/null +++ b/tests/models/unit_cases_electricity/source_sink_cable/model/transformer.esdl @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases_electricity/source_sink_cable/src/example.py b/tests/models/unit_cases_electricity/source_sink_cable/src/example.py index eb1009636..7883c2136 100644 --- a/tests/models/unit_cases_electricity/source_sink_cable/src/example.py +++ b/tests/models/unit_cases_electricity/source_sink_cable/src/example.py @@ -133,7 +133,7 @@ def bounds(self): if __name__ == "__main__": elect = run_optimization_problem( ElectricityProblem, - esdl_file_name="case1_elec.esdl", + esdl_file_name="transformer.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries.csv", diff --git a/tests/test_electric_source_sink.py b/tests/test_electric_source_sink.py index a2d4ce691..607410560 100644 --- a/tests/test_electric_source_sink.py +++ b/tests/test_electric_source_sink.py @@ -6,9 +6,9 @@ import numpy as np - from rtctools.util import run_optimization_problem + # TODO: still have to make test where elecitricity direction is switched: # e.g. 2 nodes, with at each node a producer and consumer, first one node medium demand, second # small demand and then increase the demand of the second node such that direction changes @@ -200,3 +200,79 @@ def test_source_sink_max_curr(self): results[f"{demand}.ElectricityIn.Power"], atol=1.0e-3, ) + + def test_transformer(self): + """ + This test is to check the transformer component which changes the voltage level. + + Checks: + - demand matching + - check the voltage levels are not equal and are correctly set + - power conservation at the transformer + + """ + + import models.unit_cases_electricity.source_sink_cable.src.example as example + from models.unit_cases_electricity.source_sink_cable.src.example import ( + ElectricityProblem, + ) + + base_folder = Path(example.__file__).resolve().parent.parent + + solution = run_optimization_problem( + ElectricityProblem, + base_folder=base_folder, + esdl_file_name="transformer.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + results = solution.extract_results() + parameters = solution.parameters(0) + + # check power conservation in transformer + np.testing.assert_allclose( + results["Transformer_0185.ElectricityIn.Power"], + results["Transformer_0185.ElectricityOut.Power"], + atol=1.0e-3, + ) + + # Check that the cables have two different voltage levels + assert ( + parameters["ElectricityDemand_2af6.min_voltage"] + != parameters["Transformer_0185.min_voltage"] + ) + + np.testing.assert_allclose( + parameters["Transformer_0185.min_voltage"], + results["ElectricityCable_1fe5.ElectricityOut.V"], + atol=-1.0e-3, + ) + np.testing.assert_allclose( + parameters["ElectricityDemand_2af6.min_voltage"], + results["ElectricityCable_22c9.ElectricityOut.V"], + atol=1.0e-3, + ) + + for demand in solution.energy_system_components.get("electricity_demand", []): + np.testing.assert_allclose( + results[f"{demand}.ElectricityIn.V"], + parameters[f"{demand}.min_voltage"], + atol=1.0e-3, + ) + np.testing.assert_allclose( + results[f"{demand}.ElectricityIn.V"] * results[f"{demand}.ElectricityIn.I"], + results[f"{demand}.ElectricityIn.Power"], + atol=1.0e-3, + ) + for demand in solution.energy_system_components.get("transformer", []): + np.testing.assert_allclose( + results[f"{demand}.ElectricityIn.V"], + parameters[f"{demand}.min_voltage"], + atol=1.0e-3, + ) + np.testing.assert_allclose( + results[f"{demand}.ElectricityIn.V"] * results[f"{demand}.ElectricityIn.I"], + results[f"{demand}.ElectricityIn.Power"], + atol=1.0e-3, + ) diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 16b76f31c..f5717b2c2 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -740,7 +740,58 @@ def test_gas_substation(self): results = solution.extract_results() parameters = solution.parameters(0) - assert parameters["Pipe1.pressure"] != parameters["Pipe2.pressure"] + demand_matching_test(solution, results) + + assert parameters["Pipe1.pressure"] >= parameters["Pipe2.pressure"] + + for pipe in solution.energy_system_components.get("gas_pipe", []): + dh = results[f"{pipe}.dH"] + vel = results[f"{pipe}.Q"] / (np.pi * (parameters[f"{pipe}.diameter"] / 2.0) ** 2) + for i in range(len(solution.times())): + analytical_dh = ( + vel[i] + / solution.gas_network_settings["maximum_velocity"] + * darcy_weisbach.head_loss( + solution.gas_network_settings["maximum_velocity"], + parameters[f"{pipe}.diameter"], + parameters[f"{pipe}.length"], + solution.energy_system_options()["wall_roughness"], + 20.0, + network_type=NetworkSettings.NETWORK_TYPE_GAS, + pressure=parameters[f"{pipe}.pressure"], + ) + ) + np.testing.assert_allclose(abs(dh[i]), abs(analytical_dh), atol=1.0e-6) + + def test_compressor(self): + """ + Test to check if the gas compressor increases the pressure and the head loss computation + are correctly performed at the two pressure levels. + + Checks: + - Demand matching ensuring that there is flow + - That the two pipes are at two different pressure levels + _ That the pipes have the expected head loss given their reference pressures + """ + import models.multiple_gas_carriers.src.run_multiple_gas_carriers as example + from models.multiple_gas_carriers.src.run_multiple_gas_carriers import GasProblem + + base_folder = Path(example.__file__).resolve().parent.parent + + solution = run_optimization_problem( + GasProblem, + base_folder=base_folder, + esdl_file_name="compressor.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + results = solution.extract_results() + parameters = solution.parameters(0) + + demand_matching_test(solution, results) + + assert parameters["Pipe1.pressure"] <= parameters["Pipe2.pressure"] for pipe in solution.energy_system_components.get("gas_pipe", []): dh = results[f"{pipe}.dH"] diff --git a/tests/utils_tests.py b/tests/utils_tests.py index 4abbb9b9f..4b7e0ed5c 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -20,6 +20,24 @@ def demand_matching_test(solution, results): len_times = len(solution.get_timeseries(f"{d}.target_cold_demand").values) target = solution.get_timeseries(f"{d}.target_cold_demand").values[0:len_times] np.testing.assert_allclose(target, results[f"{d}.Cold_demand"], atol=1.0e-3, rtol=1.0e-6) + for d in solution.energy_system_components.get("gas_demand", []): + if len(solution.times()) > 0: + len_times = len(solution.times()) + else: + len_times = len(solution.get_timeseries(f"{d}.target_gas_demand").values) + target = solution.get_timeseries(f"{d}.target_gas_demand").values[0:len_times] + np.testing.assert_allclose( + target, results[f"{d}.Gas_demand_mass_flow"], atol=1.0e-3, rtol=1.0e-6 + ) + for d in solution.energy_system_components.get("electricity_demand", []): + if len(solution.times()) > 0: + len_times = len(solution.times()) + else: + len_times = len(solution.get_timeseries(f"{d}.target_electricity_demand").values) + target = solution.get_timeseries(f"{d}.target_electricity_demand").values[0:len_times] + np.testing.assert_allclose( + target, results[f"{d}.Electricity_demand"], atol=1.0e-3, rtol=1.0e-6 + ) def _get_component_temperatures(solution, results, component, side=None): From 0f103e3a0a0da8f40cb5ebeca287eee528424eb3 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Fri, 12 Apr 2024 09:24:14 +0200 Subject: [PATCH 036/275] Error not matching demand (#20) This commit adds a check for the grow workflow to see if the demand is matched and to puts time-limits on the 2 priorities. --- src/mesido/workflows/grow_workflow.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 981ee610d..2842bff27 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -266,6 +266,16 @@ def __state_vector_scaled(self, variable, ensemble_member): self.state_vector(canonical, ensemble_member) * self.variable_nominal(canonical) * sign ) + def solver_options(self): + options = super().solver_options() + if options["solver"] == "highs": + highs_options = options["highs"] + if self.__priority == 1: + highs_options["time_limit"] = 100 + else: + highs_options["time_limit"] = 100000 + return options + def solver_success(self, solver_stats, log_solver_failure_as_error): success, log_level = super().solver_success(solver_stats, log_solver_failure_as_error) @@ -309,6 +319,8 @@ def priority_completed(self, priority): self.solver_stats, ) ) + if priority == 1 and self.objective_value > 1e-6: + raise RuntimeError("The heating demand is not matched") def post(self): # In case the solver fails, we do not get in priority_completed(). We From cd9b26ecc8ad4a8adf3c93b7b6c73a473d89cd8c Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 12:04:42 +0200 Subject: [PATCH 037/275] Test high level items in updated ESDL --- examples/PoCTutorial/src/run_grow_tutorial.py | 23 ++++ tests/test_updated_esdl.py | 106 ++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 examples/PoCTutorial/src/run_grow_tutorial.py create mode 100644 tests/test_updated_esdl.py diff --git a/examples/PoCTutorial/src/run_grow_tutorial.py b/examples/PoCTutorial/src/run_grow_tutorial.py new file mode 100644 index 000000000..bf62064cf --- /dev/null +++ b/examples/PoCTutorial/src/run_grow_tutorial.py @@ -0,0 +1,23 @@ +from pathlib import Path + +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.workflows import EndScenarioSizingStagedHIGHS, run_end_scenario_sizing + + +class EndScenarioSizingStagedHighs(EndScenarioSizingStagedHIGHS): + pass + + +if __name__ == "__main__": + import time + + start_time = time.time() + base_folder = Path(__file__).resolve().parent.parent + solution = run_end_scenario_sizing( + EndScenarioSizingStagedHighs, + base_folder=base_folder, + esdl_file_name="PoC Tutorial.esdl", + esdl_parser=ESDLFileParser, + ) + + print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) diff --git a/tests/test_updated_esdl.py b/tests/test_updated_esdl.py new file mode 100644 index 000000000..f4ce05e9d --- /dev/null +++ b/tests/test_updated_esdl.py @@ -0,0 +1,106 @@ +import os +import sys +from pathlib import Path +from unittest import TestCase + +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.workflows import run_end_scenario_sizing + +import numpy as np + + +class TestUpdatedESDL(TestCase): + + def test_updated_esdl(self): + """ + Check that the updated ESDL resulting from the optmizer, is correct by using the PoCTutorial + and the Grow_workflow + + Checks: + - That the correct number of KPIs have been added + - That the correct assets have been removed + - Check that all the assets have a state=ENABLED + """ + + root_folder = str(Path(__file__).resolve().parent.parent) + sys.path.insert(1, root_folder) + + import examples.PoCTutorial.src.run_grow_tutorial + from examples.PoCTutorial.src.run_grow_tutorial import EndScenarioSizingStagedHighs + + base_folder = ( + Path(examples.PoCTutorial.src.run_grow_tutorial.__file__).resolve().parent.parent + ) + del root_folder + sys.path.pop(1) + + solution = run_end_scenario_sizing( + EndScenarioSizingStagedHighs, + base_folder=base_folder, + esdl_file_name="PoC Tutorial.esdl", + esdl_parser=ESDLFileParser, + ) + + # test KPIs in optimized ESDL + esdl_path = os.path.normpath( + os.path.join(base_folder, "model\\PoC Tutorial_GrowOptimized.esdl") + ) + optimized_energy_system = solution._ESDLMixin__energy_system_handler.load_file(esdl_path) + + # High level checks of KPIs + number_of_kpis_top_level_in_esdl = 8 + high_level_kpis_name = [ + "High level cost breakdown [EUR]", + "Overall cost breakdown [EUR]", + "CAPEX breakdown [EUR]", + "OPEX breakdown [EUR]", + "Energy production [Wh]", + "Area_76a7: Asset cost breakdown [EUR]", + "Area_9d0f: Asset cost breakdown [EUR]", + "Area_a58a: Asset cost breakdown [EUR]", + ] + np.testing.assert_allclose( + len(optimized_energy_system.instance[0].area.KPIs.kpi), number_of_kpis_top_level_in_esdl + ) + for ii in range(len(optimized_energy_system.instance[0].area.KPIs.kpi)): + kpi_name = optimized_energy_system.instance[0].area.KPIs.kpi[ii].name + np.testing.assert_array_equal( + kpi_name in high_level_kpis_name, + True, + err_msg=f"KPI name {kpi_name} was not expected in the ESDL", + ) + + # High level checks of the assets + # Check quantity of assets and that they all of have an ENABLED state + number_of_assets_in_esdl = 15 + np.testing.assert_allclose( + len(optimized_energy_system.instance[0].area.asset), number_of_assets_in_esdl + ) + asset_to_be_deleted = ["ResidualHeatSource_76f0", "Pipe_8fa5_ret", "Pipe_8fa5"] + for ii in range(len(optimized_energy_system.instance[0].area.asset)): + asset_name = optimized_energy_system.instance[0].area.asset[ii].name + np.testing.assert_array_equal( + asset_name not in asset_to_be_deleted, + True, + err_msg=f"Asset name {asset_name} was not expected in the ESDL", + ) + np.testing.assert_array_equal( + optimized_energy_system.instance[0].area.asset[ii].state.name == "ENABLED", True + ) + + # High level check on the polygon areas drawn + number_of_areas_in_esdl = 3 + np.testing.assert_allclose( + len(optimized_energy_system.instance[0].area.area), number_of_areas_in_esdl + ) + + +if __name__ == "__main__": + import time + + start_time = time.time() + + a = TestUpdatedESDL() + a.test_updated_esdl() + + print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) From 912b24baced6ad9516a17042c05890fc28d2d0e4 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 12:18:59 +0200 Subject: [PATCH 038/275] pipeline update --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 94e649eb6..12dac21c8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,6 +34,9 @@ py37:linux: stage: test script: - tox -vv + artifacts: + paths: ["PoC Tutorial_GrowOptimized.esdl"] + expire_in: 60 seconds image: python:3.7 variables: TOXENV: py37 From c6c150f4c65a959a3a7fadfbf89871eedce56076 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 12:29:08 +0200 Subject: [PATCH 039/275] try --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 12dac21c8..39d92320c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -35,7 +35,7 @@ py37:linux: script: - tox -vv artifacts: - paths: ["PoC Tutorial_GrowOptimized.esdl"] + paths: ["examples\\PoCTutorial\\model\\"] expire_in: 60 seconds image: python:3.7 variables: From 555da303a35309ce8226dfcb320caae52f7c33a0 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 12:30:22 +0200 Subject: [PATCH 040/275] try --- .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 39d92320c..c4cce9592 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -35,8 +35,9 @@ py37:linux: script: - tox -vv artifacts: - paths: ["examples\\PoCTutorial\\model\\"] - expire_in: 60 seconds + paths: + - examples/PoCTutorial/model + expire_in: 1 week image: python:3.7 variables: TOXENV: py37 From bcdcc0e2cc088b3a8b32031a5506e4ac78e84a8e Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 12:39:30 +0200 Subject: [PATCH 041/275] try again --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c4cce9592..373f4c021 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -36,7 +36,7 @@ py37:linux: - tox -vv artifacts: paths: - - examples/PoCTutorial/model + - /home/runner/work/mesido/mesido/examples/PoCTutorial/model expire_in: 1 week image: python:3.7 variables: From 4c6b2e7142c090d3e67c2701288acd3211e96c04 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 12:47:28 +0200 Subject: [PATCH 042/275] again --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 373f4c021..50f4c1800 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -36,7 +36,7 @@ py37:linux: - tox -vv artifacts: paths: - - /home/runner/work/mesido/mesido/examples/PoCTutorial/model + - home/runner/work/mesido/mesido/examples/PoCTutorial/model expire_in: 1 week image: python:3.7 variables: From b8a11bef37ea9ac102dbe7db0d331d001807d3ba Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 13:00:55 +0200 Subject: [PATCH 043/275] artifact --- tests/test_updated_esdl.py | 96 +++++++++++++++++++------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/tests/test_updated_esdl.py b/tests/test_updated_esdl.py index f4ce05e9d..e6f9093e7 100644 --- a/tests/test_updated_esdl.py +++ b/tests/test_updated_esdl.py @@ -45,54 +45,54 @@ def test_updated_esdl(self): esdl_path = os.path.normpath( os.path.join(base_folder, "model\\PoC Tutorial_GrowOptimized.esdl") ) - optimized_energy_system = solution._ESDLMixin__energy_system_handler.load_file(esdl_path) - - # High level checks of KPIs - number_of_kpis_top_level_in_esdl = 8 - high_level_kpis_name = [ - "High level cost breakdown [EUR]", - "Overall cost breakdown [EUR]", - "CAPEX breakdown [EUR]", - "OPEX breakdown [EUR]", - "Energy production [Wh]", - "Area_76a7: Asset cost breakdown [EUR]", - "Area_9d0f: Asset cost breakdown [EUR]", - "Area_a58a: Asset cost breakdown [EUR]", - ] - np.testing.assert_allclose( - len(optimized_energy_system.instance[0].area.KPIs.kpi), number_of_kpis_top_level_in_esdl - ) - for ii in range(len(optimized_energy_system.instance[0].area.KPIs.kpi)): - kpi_name = optimized_energy_system.instance[0].area.KPIs.kpi[ii].name - np.testing.assert_array_equal( - kpi_name in high_level_kpis_name, - True, - err_msg=f"KPI name {kpi_name} was not expected in the ESDL", - ) - - # High level checks of the assets - # Check quantity of assets and that they all of have an ENABLED state - number_of_assets_in_esdl = 15 - np.testing.assert_allclose( - len(optimized_energy_system.instance[0].area.asset), number_of_assets_in_esdl - ) - asset_to_be_deleted = ["ResidualHeatSource_76f0", "Pipe_8fa5_ret", "Pipe_8fa5"] - for ii in range(len(optimized_energy_system.instance[0].area.asset)): - asset_name = optimized_energy_system.instance[0].area.asset[ii].name - np.testing.assert_array_equal( - asset_name not in asset_to_be_deleted, - True, - err_msg=f"Asset name {asset_name} was not expected in the ESDL", - ) - np.testing.assert_array_equal( - optimized_energy_system.instance[0].area.asset[ii].state.name == "ENABLED", True - ) - - # High level check on the polygon areas drawn - number_of_areas_in_esdl = 3 - np.testing.assert_allclose( - len(optimized_energy_system.instance[0].area.area), number_of_areas_in_esdl - ) + # optimized_energy_system = solution._ESDLMixin__energy_system_handler.load_file(esdl_path) + + # # High level checks of KPIs + # number_of_kpis_top_level_in_esdl = 8 + # high_level_kpis_name = [ + # "High level cost breakdown [EUR]", + # "Overall cost breakdown [EUR]", + # "CAPEX breakdown [EUR]", + # "OPEX breakdown [EUR]", + # "Energy production [Wh]", + # "Area_76a7: Asset cost breakdown [EUR]", + # "Area_9d0f: Asset cost breakdown [EUR]", + # "Area_a58a: Asset cost breakdown [EUR]", + # ] + # np.testing.assert_allclose( + # len(optimized_energy_system.instance[0].area.KPIs.kpi), number_of_kpis_top_level_in_esdl + # ) + # for ii in range(len(optimized_energy_system.instance[0].area.KPIs.kpi)): + # kpi_name = optimized_energy_system.instance[0].area.KPIs.kpi[ii].name + # np.testing.assert_array_equal( + # kpi_name in high_level_kpis_name, + # True, + # err_msg=f"KPI name {kpi_name} was not expected in the ESDL", + # ) + + # # High level checks of the assets + # # Check quantity of assets and that they all of have an ENABLED state + # number_of_assets_in_esdl = 15 + # np.testing.assert_allclose( + # len(optimized_energy_system.instance[0].area.asset), number_of_assets_in_esdl + # ) + # asset_to_be_deleted = ["ResidualHeatSource_76f0", "Pipe_8fa5_ret", "Pipe_8fa5"] + # for ii in range(len(optimized_energy_system.instance[0].area.asset)): + # asset_name = optimized_energy_system.instance[0].area.asset[ii].name + # np.testing.assert_array_equal( + # asset_name not in asset_to_be_deleted, + # True, + # err_msg=f"Asset name {asset_name} was not expected in the ESDL", + # ) + # np.testing.assert_array_equal( + # optimized_energy_system.instance[0].area.asset[ii].state.name == "ENABLED", True + # ) + + # # High level check on the polygon areas drawn + # number_of_areas_in_esdl = 3 + # np.testing.assert_allclose( + # len(optimized_energy_system.instance[0].area.area), number_of_areas_in_esdl + # ) if __name__ == "__main__": From 0f9c05d0fc9772ac8f4566d41a466cf1d65a5030 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 13:08:19 +0200 Subject: [PATCH 044/275] again --- .gitlab-ci.yml | 2 +- tests/test_updated_esdl.py | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 50f4c1800..c9cd1f3bb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -36,7 +36,7 @@ py37:linux: - tox -vv artifacts: paths: - - home/runner/work/mesido/mesido/examples/PoCTutorial/model + - examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl expire_in: 1 week image: python:3.7 variables: diff --git a/tests/test_updated_esdl.py b/tests/test_updated_esdl.py index e6f9093e7..dc7c59be1 100644 --- a/tests/test_updated_esdl.py +++ b/tests/test_updated_esdl.py @@ -41,10 +41,10 @@ def test_updated_esdl(self): esdl_parser=ESDLFileParser, ) - # test KPIs in optimized ESDL - esdl_path = os.path.normpath( - os.path.join(base_folder, "model\\PoC Tutorial_GrowOptimized.esdl") - ) + # # test KPIs in optimized ESDL + # esdl_path = os.path.normpath( + # os.path.join(base_folder, "model\\PoC Tutorial_GrowOptimized.esdl") + # ) # optimized_energy_system = solution._ESDLMixin__energy_system_handler.load_file(esdl_path) # # High level checks of KPIs @@ -60,7 +60,8 @@ def test_updated_esdl(self): # "Area_a58a: Asset cost breakdown [EUR]", # ] # np.testing.assert_allclose( - # len(optimized_energy_system.instance[0].area.KPIs.kpi), number_of_kpis_top_level_in_esdl + # len(optimized_energy_system.instance[0].area.KPIs.kpi), + # number_of_kpis_top_level_in_esdl # ) # for ii in range(len(optimized_energy_system.instance[0].area.KPIs.kpi)): # kpi_name = optimized_energy_system.instance[0].area.KPIs.kpi[ii].name From a36de34053b235871862325e63955d5f35352459 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 13:26:42 +0200 Subject: [PATCH 045/275] try something --- .gitlab-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c9cd1f3bb..80a67d183 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,9 +34,11 @@ py37:linux: stage: test script: - tox -vv + - echo "Demo" > Demo.txt artifacts: paths: - - examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + - ./Demo.txt + # - ./PoC Tutorial_GrowOptimized.esdl expire_in: 1 week image: python:3.7 variables: From 61552200f8b32712ac000a11d57df5267dc2b85b Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 13:34:36 +0200 Subject: [PATCH 046/275] test artifact --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 80a67d183..587ffe773 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,7 +33,7 @@ build: py37:linux: stage: test script: - - tox -vv + # - tox -vv - echo "Demo" > Demo.txt artifacts: paths: From 8d64a3b2c9721cb3734d8f02204c51a30fa9ef31 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 13:36:52 +0200 Subject: [PATCH 047/275] wip --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 587ffe773..ef2fdbe9f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,7 +33,6 @@ build: py37:linux: stage: test script: - # - tox -vv - echo "Demo" > Demo.txt artifacts: paths: From 7d6ab69d1acfb01480a97be9b0e1f9b6c667f14e Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 13:46:24 +0200 Subject: [PATCH 048/275] Ah --- .github/workflows/ci.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4ed7caf8f..70adb0f33 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,8 +55,17 @@ jobs: - name: deps run: python -m pip install -U tox - - name: Check test - run: tox -vv + # - name: Check test + # run: tox -vv + - name: test_deom + run: echo "Demo" > Demo.txt + + - name: Archive test artifacts + uses: actions/upload-artifact@v4 + with: + name: test_demo + path: ./Demo.txt + # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl documentation: name: Generate documentation From 3c771bdcb69292230b4bcc31c7083bf8506ae725 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 13:49:00 +0200 Subject: [PATCH 049/275] wip --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70adb0f33..7ac6863ef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,8 +64,9 @@ jobs: uses: actions/upload-artifact@v4 with: name: test_demo - path: ./Demo.txt + # path: ./Demo.txt # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + path: examples/PoCTutorial/model/PoC Tutorial.esdl documentation: name: Generate documentation From b17d2f374c5ac65cfd8fbab8dbb6d66e660eda57 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 13:50:25 +0200 Subject: [PATCH 050/275] wip --- .github/workflows/ci.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7ac6863ef..3017cd68d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,18 +55,17 @@ jobs: - name: deps run: python -m pip install -U tox - # - name: Check test - # run: tox -vv - - name: test_deom - run: echo "Demo" > Demo.txt + - name: Check test + run: tox -vv + # - name: test_deom + # run: echo "Demo" > Demo.txt - name: Archive test artifacts uses: actions/upload-artifact@v4 with: name: test_demo # path: ./Demo.txt - # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - path: examples/PoCTutorial/model/PoC Tutorial.esdl + path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl documentation: name: Generate documentation From 91d24b800054dffbe264414365dd767cc923502a Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 13:56:33 +0200 Subject: [PATCH 051/275] check if artifact works --- tests/test_updated_esdl.py | 106 ++++++++++++++++++------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/tests/test_updated_esdl.py b/tests/test_updated_esdl.py index dc7c59be1..4d9e164f6 100644 --- a/tests/test_updated_esdl.py +++ b/tests/test_updated_esdl.py @@ -41,59 +41,59 @@ def test_updated_esdl(self): esdl_parser=ESDLFileParser, ) - # # test KPIs in optimized ESDL - # esdl_path = os.path.normpath( - # os.path.join(base_folder, "model\\PoC Tutorial_GrowOptimized.esdl") - # ) - # optimized_energy_system = solution._ESDLMixin__energy_system_handler.load_file(esdl_path) - - # # High level checks of KPIs - # number_of_kpis_top_level_in_esdl = 8 - # high_level_kpis_name = [ - # "High level cost breakdown [EUR]", - # "Overall cost breakdown [EUR]", - # "CAPEX breakdown [EUR]", - # "OPEX breakdown [EUR]", - # "Energy production [Wh]", - # "Area_76a7: Asset cost breakdown [EUR]", - # "Area_9d0f: Asset cost breakdown [EUR]", - # "Area_a58a: Asset cost breakdown [EUR]", - # ] - # np.testing.assert_allclose( - # len(optimized_energy_system.instance[0].area.KPIs.kpi), - # number_of_kpis_top_level_in_esdl - # ) - # for ii in range(len(optimized_energy_system.instance[0].area.KPIs.kpi)): - # kpi_name = optimized_energy_system.instance[0].area.KPIs.kpi[ii].name - # np.testing.assert_array_equal( - # kpi_name in high_level_kpis_name, - # True, - # err_msg=f"KPI name {kpi_name} was not expected in the ESDL", - # ) - - # # High level checks of the assets - # # Check quantity of assets and that they all of have an ENABLED state - # number_of_assets_in_esdl = 15 - # np.testing.assert_allclose( - # len(optimized_energy_system.instance[0].area.asset), number_of_assets_in_esdl - # ) - # asset_to_be_deleted = ["ResidualHeatSource_76f0", "Pipe_8fa5_ret", "Pipe_8fa5"] - # for ii in range(len(optimized_energy_system.instance[0].area.asset)): - # asset_name = optimized_energy_system.instance[0].area.asset[ii].name - # np.testing.assert_array_equal( - # asset_name not in asset_to_be_deleted, - # True, - # err_msg=f"Asset name {asset_name} was not expected in the ESDL", - # ) - # np.testing.assert_array_equal( - # optimized_energy_system.instance[0].area.asset[ii].state.name == "ENABLED", True - # ) - - # # High level check on the polygon areas drawn - # number_of_areas_in_esdl = 3 - # np.testing.assert_allclose( - # len(optimized_energy_system.instance[0].area.area), number_of_areas_in_esdl - # ) + # test KPIs in optimized ESDL + esdl_path = os.path.normpath( + os.path.join(base_folder, "model\\PoC Tutorial_GrowOptimized.esdl") + ) + optimized_energy_system = solution._ESDLMixin__energy_system_handler.load_file(esdl_path) + + # High level checks of KPIs + number_of_kpis_top_level_in_esdl = 8 + high_level_kpis_name = [ + "High level cost breakdown [EUR]", + "Overall cost breakdown [EUR]", + "CAPEX breakdown [EUR]", + "OPEX breakdown [EUR]", + "Energy production [Wh]", + "Area_76a7: Asset cost breakdown [EUR]", + "Area_9d0f: Asset cost breakdown [EUR]", + "Area_a58a: Asset cost breakdown [EUR]", + ] + np.testing.assert_allclose( + len(optimized_energy_system.instance[0].area.KPIs.kpi), + number_of_kpis_top_level_in_esdl + ) + for ii in range(len(optimized_energy_system.instance[0].area.KPIs.kpi)): + kpi_name = optimized_energy_system.instance[0].area.KPIs.kpi[ii].name + np.testing.assert_array_equal( + kpi_name in high_level_kpis_name, + True, + err_msg=f"KPI name {kpi_name} was not expected in the ESDL", + ) + + # High level checks of the assets + # Check quantity of assets and that they all of have an ENABLED state + number_of_assets_in_esdl = 15 + np.testing.assert_allclose( + len(optimized_energy_system.instance[0].area.asset), number_of_assets_in_esdl + ) + asset_to_be_deleted = ["ResidualHeatSource_76f0", "Pipe_8fa5_ret", "Pipe_8fa5"] + for ii in range(len(optimized_energy_system.instance[0].area.asset)): + asset_name = optimized_energy_system.instance[0].area.asset[ii].name + np.testing.assert_array_equal( + asset_name not in asset_to_be_deleted, + True, + err_msg=f"Asset name {asset_name} was not expected in the ESDL", + ) + np.testing.assert_array_equal( + optimized_energy_system.instance[0].area.asset[ii].state.name == "ENABLED", True + ) + + # High level check on the polygon areas drawn + number_of_areas_in_esdl = 3 + np.testing.assert_allclose( + len(optimized_energy_system.instance[0].area.area), number_of_areas_in_esdl + ) if __name__ == "__main__": From ef2190608f4cc42fdfcc8335d59a2afe7e1f025b Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 14:30:07 +0200 Subject: [PATCH 052/275] wip --- .github/workflows/ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3017cd68d..ef91d21eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,6 +59,13 @@ jobs: run: tox -vv # - name: test_deom # run: echo "Demo" > Demo.txt + + - name: Archive test artifacts + uses: actions/download-artifact@v4 + with: + name: test_demo + # path: ./Demo.txt + path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - name: Archive test artifacts uses: actions/upload-artifact@v4 From 26b13923305d642359b5c3022c8a6a393c025c27 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 15:00:48 +0200 Subject: [PATCH 053/275] formatting --- tests/test_updated_esdl.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/test_updated_esdl.py b/tests/test_updated_esdl.py index 4d9e164f6..f4ce05e9d 100644 --- a/tests/test_updated_esdl.py +++ b/tests/test_updated_esdl.py @@ -60,8 +60,7 @@ def test_updated_esdl(self): "Area_a58a: Asset cost breakdown [EUR]", ] np.testing.assert_allclose( - len(optimized_energy_system.instance[0].area.KPIs.kpi), - number_of_kpis_top_level_in_esdl + len(optimized_energy_system.instance[0].area.KPIs.kpi), number_of_kpis_top_level_in_esdl ) for ii in range(len(optimized_energy_system.instance[0].area.KPIs.kpi)): kpi_name = optimized_energy_system.instance[0].area.KPIs.kpi[ii].name From d1190395028bd4908dfb755baa0bbf002f350afa Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 15:04:13 +0200 Subject: [PATCH 054/275] test_heat only --- .github/workflows/ci.yml | 2 +- tox.ini | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef91d21eb..6cc328c87 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,7 +56,7 @@ jobs: run: python -m pip install -U tox - name: Check test - run: tox -vv + run: tox -vv -e test_env1 # - name: test_deom # run: echo "Demo" > Demo.txt diff --git a/tox.ini b/tox.ini index 4b0653246..46639e546 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] envlist = - flake8,black,py39 + py39,test_env1,test_env2,flake8,black [testenv] @@ -10,7 +10,13 @@ deps = pytest-ordering numpy extras = all -commands = pytest -n auto -v tests -s +; commands = pytest -n auto -v tests -s + +[testenv:test_env2] +commands = pytest -n auto -v tests -s --ignore=test_updated_esdl.py + +[testenv:test_env1] +commands = pytest -n auto -v tests\test_heat.py -s [testenv:flake8] From ebb3cdf4d667a6b5e01f3560aa671f9815e78cdc Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 15:13:14 +0200 Subject: [PATCH 055/275] space issue --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 46639e546..3b85735d8 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ extras = all commands = pytest -n auto -v tests -s --ignore=test_updated_esdl.py [testenv:test_env1] -commands = pytest -n auto -v tests\test_heat.py -s +commands = pytest -n auto -v "tests\test_heat.py" -s [testenv:flake8] From 716bcff21d76178f2b79570771d6ede3a1f0f1a6 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 15:14:50 +0200 Subject: [PATCH 056/275] no string --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 3b85735d8..46639e546 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ extras = all commands = pytest -n auto -v tests -s --ignore=test_updated_esdl.py [testenv:test_env1] -commands = pytest -n auto -v "tests\test_heat.py" -s +commands = pytest -n auto -v tests\test_heat.py -s [testenv:flake8] From 08b7fca3e4f022155036ed3d025d6e6703b5fdd7 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 15:26:54 +0200 Subject: [PATCH 057/275] command changed --- .github/workflows/ci.yml | 2 +- tox.ini | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6cc328c87..f8f87a75e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,7 +56,7 @@ jobs: run: python -m pip install -U tox - name: Check test - run: tox -vv -e test_env1 + run: tox -vv -etest_env1 # - name: test_deom # run: echo "Demo" > Demo.txt diff --git a/tox.ini b/tox.ini index 46639e546..650980f9d 100644 --- a/tox.ini +++ b/tox.ini @@ -13,26 +13,26 @@ extras = all ; commands = pytest -n auto -v tests -s [testenv:test_env2] -commands = pytest -n auto -v tests -s --ignore=test_updated_esdl.py +commands = pytest -n auto -v tests -s --ignore=tests\test_setpoints_constraints.py [testenv:test_env1] commands = pytest -n auto -v tests\test_heat.py -s -[testenv:flake8] -skip_install = True -deps = - flake8 - flake8-bugbear - flake8-comprehensions - flake8-import-order - pep8-naming -commands = flake8 examples src tests setup.py +; [testenv:flake8] +; skip_install = True +; deps = +; flake8 +; flake8-bugbear +; flake8-comprehensions +; flake8-import-order +; pep8-naming +; commands = flake8 examples src tests setup.py -[testenv:black] -skip_install = True -deps = - black >= 24.1.1 -commands = - black --line-length 100 --target-version py38 --check --diff examples src tests setup.py +; [testenv:black] +; skip_install = True +; deps = +; black >= 24.1.1 +; commands = +; black --line-length 100 --target-version py38 --check --diff examples src tests setup.py From 45486af6017a550139c52c3db2df5eca18bf9e43 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 15:30:37 +0200 Subject: [PATCH 058/275] try -k --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 650980f9d..f5bcbdd7a 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ extras = all commands = pytest -n auto -v tests -s --ignore=tests\test_setpoints_constraints.py [testenv:test_env1] -commands = pytest -n auto -v tests\test_heat.py -s +commands = pytest -n auto -v -k test_heat.py -s ; [testenv:flake8] From 486bab48b131b33eb7d185d6e09646563199be3c Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 15:32:31 +0200 Subject: [PATCH 059/275] remove artifacts --- .github/workflows/ci.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f8f87a75e..306ee7118 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,19 +60,19 @@ jobs: # - name: test_deom # run: echo "Demo" > Demo.txt - - name: Archive test artifacts - uses: actions/download-artifact@v4 - with: - name: test_demo - # path: ./Demo.txt - path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + # - name: Archive test artifacts + # uses: actions/download-artifact@v4 + # with: + # name: test_demo + # # path: ./Demo.txt + # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - - name: Archive test artifacts - uses: actions/upload-artifact@v4 - with: - name: test_demo - # path: ./Demo.txt - path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + # - name: Archive test artifacts + # uses: actions/upload-artifact@v4 + # with: + # name: test_demo + # # path: ./Demo.txt + # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl documentation: name: Generate documentation From 90787271bfc8a55dc31281a7f01b33298f7e1bd5 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 15:39:46 +0200 Subject: [PATCH 060/275] wip --- tox.ini | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tox.ini b/tox.ini index f5bcbdd7a..0861515b6 100644 --- a/tox.ini +++ b/tox.ini @@ -12,10 +12,10 @@ deps = extras = all ; commands = pytest -n auto -v tests -s -[testenv:test_env2] -commands = pytest -n auto -v tests -s --ignore=tests\test_setpoints_constraints.py - [testenv:test_env1] +commands = pytest -n auto -v tests -s --ignore=tests\test_updated_esdl_post_process.py + +[testenv:test_env2] commands = pytest -n auto -v -k test_heat.py -s From bfe61b3bbe5077cf4be99a0c25332aa51a1c38a2 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 16:25:00 +0200 Subject: [PATCH 061/275] wip --- .github/workflows/ci.yml | 2 +- tox.ini | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 306ee7118..03e395535 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,7 +56,7 @@ jobs: run: python -m pip install -U tox - name: Check test - run: tox -vv -etest_env1 + run: tox -vv -etest_env2 # - name: test_deom # run: echo "Demo" > Demo.txt diff --git a/tox.ini b/tox.ini index 0861515b6..661d559e7 100644 --- a/tox.ini +++ b/tox.ini @@ -13,10 +13,13 @@ extras = all ; commands = pytest -n auto -v tests -s [testenv:test_env1] -commands = pytest -n auto -v tests -s --ignore=tests\test_updated_esdl_post_process.py +commands = pytest -n auto -v tests -s ;--ignore=tests/test_heat.py [testenv:test_env2] -commands = pytest -n auto -v -k test_heat.py -s +commands = pytest -n auto -v tests\test_heat.py -s +;commands = pytest -n auto -v -k test_heat.py -s + +pytetst r"tests\sdgsggs.py" ; [testenv:flake8] From c3a6731b163775cf3f89af408b9b82366292baa8 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 16:28:47 +0200 Subject: [PATCH 062/275] wip --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 661d559e7..a84be016e 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ extras = all commands = pytest -n auto -v tests -s ;--ignore=tests/test_heat.py [testenv:test_env2] -commands = pytest -n auto -v tests\test_heat.py -s +commands = pytest -n auto -v tests/test_heat.py -s ;commands = pytest -n auto -v -k test_heat.py -s pytetst r"tests\sdgsggs.py" From c8bb5f4add6bc89d047e015436f84e581548d2db Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 16:29:48 +0200 Subject: [PATCH 063/275] wip --- tox.ini | 2 -- 1 file changed, 2 deletions(-) diff --git a/tox.ini b/tox.ini index a84be016e..a8f1af653 100644 --- a/tox.ini +++ b/tox.ini @@ -19,8 +19,6 @@ commands = pytest -n auto -v tests -s ;--ignore=tests/test_heat.py commands = pytest -n auto -v tests/test_heat.py -s ;commands = pytest -n auto -v -k test_heat.py -s -pytetst r"tests\sdgsggs.py" - ; [testenv:flake8] ; skip_install = True From 999e4a065827e6a99c915661f26e5f3ebae60a1c Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 16:35:21 +0200 Subject: [PATCH 064/275] wip --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index a8f1af653..0384d2aa4 100644 --- a/tox.ini +++ b/tox.ini @@ -13,7 +13,7 @@ extras = all ; commands = pytest -n auto -v tests -s [testenv:test_env1] -commands = pytest -n auto -v tests -s ;--ignore=tests/test_heat.py +commands = pytest -n auto -v --ignore=tests/test_updated_esdl_post_process.py [testenv:test_env2] commands = pytest -n auto -v tests/test_heat.py -s From 32c4d16b7d4fd4ca8a7024ce23842ab90938e6e4 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 16:43:34 +0200 Subject: [PATCH 065/275] wip --- .github/workflows/ci.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 03e395535..cb079200c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,7 +56,13 @@ jobs: run: python -m pip install -U tox - name: Check test - run: tox -vv -etest_env2 + run: tox -vv -etest_env1 + + - name: Upload results + uses: actions/upload-artifact@v4 + with: + name: updated_esdl + path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl # - name: test_deom # run: echo "Demo" > Demo.txt @@ -73,6 +79,8 @@ jobs: # name: test_demo # # path: ./Demo.txt # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + - name: Check test + run: tox -vv -etest_env2 documentation: name: Generate documentation From 79dbe29eb75869acd3471c6d7f89476e27d20659 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 17:31:46 +0200 Subject: [PATCH 066/275] getting there --- .github/workflows/ci.yml | 28 +++++----- ...l.py => test_updated_esdl_post_process.py} | 16 +++--- tests/test_updated_esdl_run.py | 53 +++++++++++++++++++ tox.ini | 40 +++++++------- 4 files changed, 96 insertions(+), 41 deletions(-) rename tests/{test_updated_esdl.py => test_updated_esdl_post_process.py} (90%) create mode 100644 tests/test_updated_esdl_run.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cb079200c..6d90920fa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,23 +58,25 @@ jobs: - name: Check test run: tox -vv -etest_env1 - - name: Upload results - uses: actions/upload-artifact@v4 - with: - name: updated_esdl - path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - # - name: test_deom - # run: echo "Demo" > Demo.txt - - # - name: Archive test artifacts - # uses: actions/download-artifact@v4 + # - name: Upload results + # uses: actions/upload-artifact@v4 # with: - # name: test_demo - # # path: ./Demo.txt + # name: updated_esdl # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl +# Dummy example +# ------------------------------------------------------------------------------------------- + - name: test_deom + run: echo "Demo" > Demo.txt + + - name: Archive test artifacts + uses: actions/upload-artifact@v4 + with: + name: test_demo + path: ./Demo.txt +# ------------------------------------------------------------------------------------------- # - name: Archive test artifacts - # uses: actions/upload-artifact@v4 + # uses: actions/download-artifact@v4 # with: # name: test_demo # # path: ./Demo.txt diff --git a/tests/test_updated_esdl.py b/tests/test_updated_esdl_post_process.py similarity index 90% rename from tests/test_updated_esdl.py rename to tests/test_updated_esdl_post_process.py index f4ce05e9d..6ee854c2b 100644 --- a/tests/test_updated_esdl.py +++ b/tests/test_updated_esdl_post_process.py @@ -4,7 +4,7 @@ from unittest import TestCase from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.workflows import run_end_scenario_sizing +from mesido.workflows import EndScenarioSizingStagedHIGHS import numpy as np @@ -26,26 +26,26 @@ def test_updated_esdl(self): sys.path.insert(1, root_folder) import examples.PoCTutorial.src.run_grow_tutorial - from examples.PoCTutorial.src.run_grow_tutorial import EndScenarioSizingStagedHighs base_folder = ( Path(examples.PoCTutorial.src.run_grow_tutorial.__file__).resolve().parent.parent ) - del root_folder - sys.path.pop(1) + model_folder = base_folder / "model" + input_folder = base_folder / "input" - solution = run_end_scenario_sizing( - EndScenarioSizingStagedHighs, - base_folder=base_folder, + problem = EndScenarioSizingStagedHIGHS( esdl_file_name="PoC Tutorial.esdl", esdl_parser=ESDLFileParser, + base_folder=base_folder, + model_folder=model_folder, + input_folder=input_folder, ) # test KPIs in optimized ESDL esdl_path = os.path.normpath( os.path.join(base_folder, "model\\PoC Tutorial_GrowOptimized.esdl") ) - optimized_energy_system = solution._ESDLMixin__energy_system_handler.load_file(esdl_path) + optimized_energy_system = problem._ESDLMixin__energy_system_handler.load_file(esdl_path) # High level checks of KPIs number_of_kpis_top_level_in_esdl = 8 diff --git a/tests/test_updated_esdl_run.py b/tests/test_updated_esdl_run.py new file mode 100644 index 000000000..cc1edc6a9 --- /dev/null +++ b/tests/test_updated_esdl_run.py @@ -0,0 +1,53 @@ +import sys +from pathlib import Path +from unittest import TestCase + +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.workflows import run_end_scenario_sizing + +import numpy as np + + +class TestUpdatedESDL(TestCase): + + def test_updated_esdl(self): + """ + Check that the updated ESDL resulting from the optmizer, is correct by using the PoCTutorial + and the Grow_workflow + + Checks: + - That the correct number of KPIs have been added + - That the correct assets have been removed + - Check that all the assets have a state=ENABLED + """ + + root_folder = str(Path(__file__).resolve().parent.parent) + sys.path.insert(1, root_folder) + + import examples.PoCTutorial.src.run_grow_tutorial + from examples.PoCTutorial.src.run_grow_tutorial import EndScenarioSizingStagedHighs + + base_folder = ( + Path(examples.PoCTutorial.src.run_grow_tutorial.__file__).resolve().parent.parent + ) + + solution = run_end_scenario_sizing( + EndScenarioSizingStagedHighs, + base_folder=base_folder, + esdl_file_name="PoC Tutorial.esdl", + esdl_parser=ESDLFileParser, + ) + # This test only exist for flake test purposes: variable never used + results = solution.extract_results() + np.testing.assert_array_less(0.0, len(results.values())) + + +if __name__ == "__main__": + import time + + start_time = time.time() + + a = TestUpdatedESDL() + a.test_updated_esdl() + + print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) diff --git a/tox.ini b/tox.ini index 0384d2aa4..fca304626 100644 --- a/tox.ini +++ b/tox.ini @@ -2,7 +2,7 @@ envlist = py39,test_env1,test_env2,flake8,black - +# Basic setup for test environments [testenv] deps = pytest @@ -10,30 +10,30 @@ deps = pytest-ordering numpy extras = all -; commands = pytest -n auto -v tests -s +# Normal tests, or test to solve systems to create data for post porcessing test environment [testenv:test_env1] -commands = pytest -n auto -v --ignore=tests/test_updated_esdl_post_process.py +commands = pytest -n auto -v --ignore=tests/test_updated_esdl_post_process.py -s +# Post process type of tests [testenv:test_env2] -commands = pytest -n auto -v tests/test_heat.py -s -;commands = pytest -n auto -v -k test_heat.py -s +commands = pytest -n auto -v tests/test_updated_esdl_post_process.py -s -; [testenv:flake8] -; skip_install = True -; deps = -; flake8 -; flake8-bugbear -; flake8-comprehensions -; flake8-import-order -; pep8-naming -; commands = flake8 examples src tests setup.py +[testenv:flake8] +skip_install = True +deps = + flake8 + flake8-bugbear + flake8-comprehensions + flake8-import-order + pep8-naming +commands = flake8 examples src tests setup.py -; [testenv:black] -; skip_install = True -; deps = -; black >= 24.1.1 -; commands = -; black --line-length 100 --target-version py38 --check --diff examples src tests setup.py +[testenv:black] +skip_install = True +deps = + black >= 24.1.1 +commands = + black --line-length 100 --target-version py38 --check --diff examples src tests setup.py From 6ed8e011e2bc73531f528c1e42aa7a8457549914 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Apr 2024 17:39:34 +0200 Subject: [PATCH 067/275] test idea --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6d90920fa..8fefa5935 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -81,8 +81,8 @@ jobs: # name: test_demo # # path: ./Demo.txt # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - - name: Check test - run: tox -vv -etest_env2 + # - name: Check test + # run: tox -vv -etest_env2 documentation: name: Generate documentation From 5a34288931cdb67b69d42da9dbbb8103be71d82a Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 10:37:03 +0200 Subject: [PATCH 068/275] try passing artifact info --- .github/workflows/ci.yml | 48 ++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8fefa5935..24508264b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,35 +54,35 @@ jobs: - name: deps run: python -m pip install -U tox - + + # Preprocessing and solved network testing - name: Check test run: tox -vv -etest_env1 - # - name: Upload results - # uses: actions/upload-artifact@v4 - # with: - # name: updated_esdl - # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl -# Dummy example -# ------------------------------------------------------------------------------------------- - - name: test_deom - run: echo "Demo" > Demo.txt - - - name: Archive test artifacts - uses: actions/upload-artifact@v4 + - name: Upload results + uses: actions/upload-artifact@v4 with: - name: test_demo - path: ./Demo.txt -# ------------------------------------------------------------------------------------------- + name: updated_esdl_file + path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl +# # Dummy example +# # ------------------------------------------------------------------------------------------- +# - name: test_deom +# run: echo "Demo" > Demo.txt + +# - name: Archive test artifacts +# uses: actions/upload-artifact@v4 +# with: +# name: test_demo +# path: ./Demo.txt +# # ------------------------------------------------------------------------------------------- - # - name: Archive test artifacts - # uses: actions/download-artifact@v4 - # with: - # name: test_demo - # # path: ./Demo.txt - # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - # - name: Check test - # run: tox -vv -etest_env2 + - name: Archive test artifacts + uses: actions/download-artifact@v4 + with: + name: updated_esdl_file + # Post processing testing + - name: Check test + run: tox -vv -etest_env2 documentation: name: Generate documentation From 8abd9abfb5b7334e77b79e2258793dcce8ee5fd0 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 10:48:15 +0200 Subject: [PATCH 069/275] add path to artifact, temp tox file --- .github/workflows/ci.yml | 1 + tox.ini | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 24508264b..9ca515382 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,6 +80,7 @@ jobs: uses: actions/download-artifact@v4 with: name: updated_esdl_file + path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl # Post processing testing - name: Check test run: tox -vv -etest_env2 diff --git a/tox.ini b/tox.ini index fca304626..852cec95e 100644 --- a/tox.ini +++ b/tox.ini @@ -13,7 +13,8 @@ extras = all # Normal tests, or test to solve systems to create data for post porcessing test environment [testenv:test_env1] -commands = pytest -n auto -v --ignore=tests/test_updated_esdl_post_process.py -s +; commands = pytest -n auto -v --ignore=tests/test_updated_esdl_post_process.py -s +commands = pytest -n auto -v tests/test_updated_esdl_run.py -s # temp command # Post process type of tests [testenv:test_env2] From 72ab75bb48c386297b7e18ad2946274c2dea687c Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 14:26:15 +0200 Subject: [PATCH 070/275] Split test pipeline --- .github/workflows/ci.yml | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9ca515382..36f7cedd6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,8 +40,8 @@ jobs: - name: Check build run: python setup.py sdist bdist_wheel - test: - name: Check test + test_main: + name: Test - main runs-on: ubuntu-latest env: TOXENV: py38 @@ -76,14 +76,41 @@ jobs: # path: ./Demo.txt # # ------------------------------------------------------------------------------------------- + # - name: Archive test artifacts + # uses: actions/download-artifact@v4 + # with: + # name: updated_esdl_file + # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + # # Post processing testing + # - name: Check test + # run: tox -vv -etest_env2 + + test_postprocessing: + name: Test - postprocessing + needs: test_main + runs-on: ubuntu-latest + env: + TOXENV: py38 + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-python@v4 + with: + python-version: "3.8" + + - name: deps + run: python -m pip install -U tox + + # Post processing testing - name: Archive test artifacts uses: actions/download-artifact@v4 with: name: updated_esdl_file path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - # Post processing testing + - name: Check test run: tox -vv -etest_env2 + documentation: name: Generate documentation From f111f45eb355b40e2d8873f0ef22284d22df482e Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 14:43:46 +0200 Subject: [PATCH 071/275] path update --- tests/test_updated_esdl_post_process.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 6ee854c2b..15ed85c63 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -42,9 +42,10 @@ def test_updated_esdl(self): ) # test KPIs in optimized ESDL - esdl_path = os.path.normpath( - os.path.join(base_folder, "model\\PoC Tutorial_GrowOptimized.esdl") - ) + # esdl_path = os.path.normpath( + # os.path.join(base_folder, "model\\PoC Tutorial_GrowOptimized.esdl") + # ) + esdl_path = os.path.join(base_folder, "model", "PoC Tutorial_GrowOptimized.esdl") optimized_energy_system = problem._ESDLMixin__energy_system_handler.load_file(esdl_path) # High level checks of KPIs From 8c5f1ca79b19e1ad8e246250de5116e1800b3384 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 14:49:41 +0200 Subject: [PATCH 072/275] try 2nd upload --- .github/workflows/ci.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 36f7cedd6..e6630bc1b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -105,11 +105,18 @@ jobs: - name: Archive test artifacts uses: actions/download-artifact@v4 with: - name: updated_esdl_file + name: updated_esdl_file_2 + path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + + # Temp upload + - name: Upload results + uses: actions/upload-artifact@v4 + with: + name: updated_esdl_file_3 path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - - name: Check test - run: tox -vv -etest_env2 + # - name: Check test + # run: tox -vv -etest_env2 documentation: From 600e79af876a7be6bb7cc7c0d324d3a77ec73780 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 14:53:09 +0200 Subject: [PATCH 073/275] name updates --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e6630bc1b..27664e009 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -105,14 +105,14 @@ jobs: - name: Archive test artifacts uses: actions/download-artifact@v4 with: - name: updated_esdl_file_2 + name: updated_esdl_file path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl # Temp upload - name: Upload results uses: actions/upload-artifact@v4 with: - name: updated_esdl_file_3 + name: updated_esdl_file path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl # - name: Check test From 4c927d0e125a2547d98b45d132ea01982925e4af Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 14:55:41 +0200 Subject: [PATCH 074/275] wip --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 27664e009..19ff3bbe3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -113,7 +113,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: updated_esdl_file - path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_2.esdl # - name: Check test # run: tox -vv -etest_env2 From 907f4b922bc548b09b8d17f8b8cf73830f7698bd Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 15:01:45 +0200 Subject: [PATCH 075/275] demo file instead --- .github/workflows/ci.yml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 19ff3bbe3..11d803750 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,14 +66,14 @@ jobs: path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl # # Dummy example # # ------------------------------------------------------------------------------------------- -# - name: test_deom -# run: echo "Demo" > Demo.txt - -# - name: Archive test artifacts -# uses: actions/upload-artifact@v4 -# with: -# name: test_demo -# path: ./Demo.txt + - name: test_deom + run: echo "Demo" > Demo.txt + + - name: Archive test artifacts + uses: actions/upload-artifact@v4 + with: + name: test_demo + path: ./Demo.txt # # ------------------------------------------------------------------------------------------- # - name: Archive test artifacts @@ -106,14 +106,16 @@ jobs: uses: actions/download-artifact@v4 with: name: updated_esdl_file - path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + path: ./Demo.txt # Temp upload - name: Upload results uses: actions/upload-artifact@v4 with: name: updated_esdl_file - path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_2.esdl + # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_2.esdl + path: ./Demo_2.txt # - name: Check test # run: tox -vv -etest_env2 From 5d42ba7d41a339635a08bcfac2e01dad9e9d4e27 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 15:02:32 +0200 Subject: [PATCH 076/275] wip --- .github/workflows/ci.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 11d803750..63466b605 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -105,7 +105,8 @@ jobs: - name: Archive test artifacts uses: actions/download-artifact@v4 with: - name: updated_esdl_file + # name: updated_esdl_file + name: test_demo # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl path: ./Demo.txt @@ -113,7 +114,8 @@ jobs: - name: Upload results uses: actions/upload-artifact@v4 with: - name: updated_esdl_file + # name: updated_esdl_file + name: test_demo # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_2.esdl path: ./Demo_2.txt From d58f03dc75ddb18f17fbb1568d85faf1f3053fa0 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 15:06:08 +0200 Subject: [PATCH 077/275] wip --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 63466b605..80553df3a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -117,7 +117,7 @@ jobs: # name: updated_esdl_file name: test_demo # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_2.esdl - path: ./Demo_2.txt + path: ./Demo.txt # - name: Check test # run: tox -vv -etest_env2 From f3ca022c03224d9abdbff19ca708f0c77d2a1bea Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 15:11:17 +0200 Subject: [PATCH 078/275] dummy file with values --- .github/workflows/ci.yml | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 80553df3a..c48cb0f34 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -69,6 +69,10 @@ jobs: - name: test_deom run: echo "Demo" > Demo.txt + - shell: bash + run: | + expr 1 > Demo.txt + - name: Archive test artifacts uses: actions/upload-artifact@v4 with: @@ -109,15 +113,25 @@ jobs: name: test_demo # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl path: ./Demo.txt + + - shell: bash + run: | + expr 3 + 7 > Demo.txt - # Temp upload - - name: Upload results - uses: actions/upload-artifact@v4 - with: - # name: updated_esdl_file - name: test_demo - # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_2.esdl - path: ./Demo.txt + - name: Print the final result + shell: bash + run: | + value=`cat Demo.txt` + echo The result is $value + + # # Temp upload + # - name: Upload results + # uses: actions/upload-artifact@v4 + # with: + # # name: updated_esdl_file + # name: test_demo + # # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + # path: ./Demo.txt # - name: Check test # run: tox -vv -etest_env2 From 053517b1bd08194e2eadaa22f4c49c66aa29e578 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 15:15:13 +0200 Subject: [PATCH 079/275] wip --- .github/workflows/ci.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c48cb0f34..1dc586546 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,11 +67,7 @@ jobs: # # Dummy example # # ------------------------------------------------------------------------------------------- - name: test_deom - run: echo "Demo" > Demo.txt - - - shell: bash - run: | - expr 1 > Demo.txt + run: echo 0 > ./Demo.txt - name: Archive test artifacts uses: actions/upload-artifact@v4 From a7cf68fa5fbba0cd683b53434b9a6c80a1d19771 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 15:19:20 +0200 Subject: [PATCH 080/275] silly correction --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1dc586546..5fc090acd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,13 +67,13 @@ jobs: # # Dummy example # # ------------------------------------------------------------------------------------------- - name: test_deom - run: echo 0 > ./Demo.txt + run: echo 0 > Demo.txt - name: Archive test artifacts uses: actions/upload-artifact@v4 with: name: test_demo - path: ./Demo.txt + path: Demo.txt # # ------------------------------------------------------------------------------------------- # - name: Archive test artifacts @@ -108,7 +108,7 @@ jobs: # name: updated_esdl_file name: test_demo # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - path: ./Demo.txt + path: Demo.txt - shell: bash run: | @@ -127,7 +127,7 @@ jobs: # # name: updated_esdl_file # name: test_demo # # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - # path: ./Demo.txt + # path: .Demo.txt # - name: Check test # run: tox -vv -etest_env2 From 019e578da61f3450124f959411719b7bd2727571 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 15:24:58 +0200 Subject: [PATCH 081/275] dir mistake --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5fc090acd..2f8a53dfb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -108,7 +108,7 @@ jobs: # name: updated_esdl_file name: test_demo # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - path: Demo.txt + # path: Demo.txt - shell: bash run: | From 81e14a18c48361fdac8756d45d3c5b12ede49802 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 15:29:33 +0200 Subject: [PATCH 082/275] add values in dummy file --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2f8a53dfb..dc5a33c8f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,7 +67,7 @@ jobs: # # Dummy example # # ------------------------------------------------------------------------------------------- - name: test_deom - run: echo 0 > Demo.txt + run: echo 1 > Demo.txt - name: Archive test artifacts uses: actions/upload-artifact@v4 @@ -108,11 +108,11 @@ jobs: # name: updated_esdl_file name: test_demo # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - # path: Demo.txt - + # path: Demo.txt - shell: bash run: | - expr 3 + 7 > Demo.txt + value=`cat Demo.txt` + expr $value + 9 > Demo.txt - name: Print the final result shell: bash From 104261d6ae08064faf45a3b7f6e2c154c4caba13 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 15:34:16 +0200 Subject: [PATCH 083/275] specify dir for download --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dc5a33c8f..b9f464e4c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -108,16 +108,16 @@ jobs: # name: updated_esdl_file name: test_demo # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - # path: Demo.txt + path: examples/PoCTutorial/model/ # try to specify location of file downloaded - shell: bash run: | - value=`cat Demo.txt` + value=`cat examples/PoCTutorial/model/Demo.txt` expr $value + 9 > Demo.txt - name: Print the final result shell: bash run: | - value=`cat Demo.txt` + value=`cat examples/PoCTutorial/model/Demo.txt` echo The result is $value # # Temp upload From 819c7f0dcc44ca7bef3e778affbf5ed77e45f638 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 15:37:00 +0200 Subject: [PATCH 084/275] wip --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9f464e4c..e2f6d78d0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -112,7 +112,7 @@ jobs: - shell: bash run: | value=`cat examples/PoCTutorial/model/Demo.txt` - expr $value + 9 > Demo.txt + expr $value + 9 > examples/PoCTutorial/model/Demo.txt - name: Print the final result shell: bash From 835928c2959aac88ecc99ab036acca30767a684d Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 15:43:01 +0200 Subject: [PATCH 085/275] try actual esdl now --- .github/workflows/ci.yml | 44 ++++++++++++---------------------------- 1 file changed, 13 insertions(+), 31 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e2f6d78d0..80221f9b7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -75,15 +75,6 @@ jobs: name: test_demo path: Demo.txt # # ------------------------------------------------------------------------------------------- - - # - name: Archive test artifacts - # uses: actions/download-artifact@v4 - # with: - # name: updated_esdl_file - # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - # # Post processing testing - # - name: Check test - # run: tox -vv -etest_env2 test_postprocessing: name: Test - postprocessing @@ -105,32 +96,23 @@ jobs: - name: Archive test artifacts uses: actions/download-artifact@v4 with: - # name: updated_esdl_file - name: test_demo + name: updated_esdl_file + # name: test_demo # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl path: examples/PoCTutorial/model/ # try to specify location of file downloaded - - shell: bash - run: | - value=`cat examples/PoCTutorial/model/Demo.txt` - expr $value + 9 > examples/PoCTutorial/model/Demo.txt + # - shell: bash + # run: | + # value=`cat examples/PoCTutorial/model/Demo.txt` + # expr $value + 9 > examples/PoCTutorial/model/Demo.txt - - name: Print the final result - shell: bash - run: | - value=`cat examples/PoCTutorial/model/Demo.txt` - echo The result is $value + # - name: Print the final result + # shell: bash + # run: | + # value=`cat examples/PoCTutorial/model/Demo.txt` + # echo The result is $value - # # Temp upload - # - name: Upload results - # uses: actions/upload-artifact@v4 - # with: - # # name: updated_esdl_file - # name: test_demo - # # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - # path: .Demo.txt - - # - name: Check test - # run: tox -vv -etest_env2 + - name: Check test + run: tox -vv -etest_env2 documentation: From d7d7a0ad095469c702d6a1e4f539617ebf0026cb Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 15:46:21 +0200 Subject: [PATCH 086/275] for postprocessing case to fail --- tests/test_updated_esdl_post_process.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 15ed85c63..038ba7100 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -42,9 +42,6 @@ def test_updated_esdl(self): ) # test KPIs in optimized ESDL - # esdl_path = os.path.normpath( - # os.path.join(base_folder, "model\\PoC Tutorial_GrowOptimized.esdl") - # ) esdl_path = os.path.join(base_folder, "model", "PoC Tutorial_GrowOptimized.esdl") optimized_energy_system = problem._ESDLMixin__energy_system_handler.load_file(esdl_path) @@ -58,7 +55,7 @@ def test_updated_esdl(self): "Energy production [Wh]", "Area_76a7: Asset cost breakdown [EUR]", "Area_9d0f: Asset cost breakdown [EUR]", - "Area_a58a: Asset cost breakdown [EUR]", + "Area_a58a: Asset cost breakdown [EUR]_", ] np.testing.assert_allclose( len(optimized_energy_system.instance[0].area.KPIs.kpi), number_of_kpis_top_level_in_esdl From 78365eeb0b3b666a3eaef2a37b3a0d1cc6703531 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 16:33:05 +0200 Subject: [PATCH 087/275] try real setup --- .github/workflows/ci.yml | 21 ++++++++++----------- tests/test_updated_esdl_post_process.py | 2 +- tox.ini | 4 ++-- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 80221f9b7..240c48e42 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,7 +41,7 @@ jobs: run: python setup.py sdist bdist_wheel test_main: - name: Test - main + name: Test main runs-on: ubuntu-latest env: TOXENV: py38 @@ -66,18 +66,18 @@ jobs: path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl # # Dummy example # # ------------------------------------------------------------------------------------------- - - name: test_deom - run: echo 1 > Demo.txt - - - name: Archive test artifacts - uses: actions/upload-artifact@v4 - with: - name: test_demo - path: Demo.txt +# - name: test_demo +# run: echo 1 > Demo.txt + +# - name: Archive test artifacts +# uses: actions/upload-artifact@v4 +# with: +# name: test_demo +# path: Demo.txt # # ------------------------------------------------------------------------------------------- test_postprocessing: - name: Test - postprocessing + name: Test post-processing needs: test_main runs-on: ubuntu-latest env: @@ -114,7 +114,6 @@ jobs: - name: Check test run: tox -vv -etest_env2 - documentation: name: Generate documentation runs-on: ubuntu-latest diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 038ba7100..b3a5362c9 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -55,7 +55,7 @@ def test_updated_esdl(self): "Energy production [Wh]", "Area_76a7: Asset cost breakdown [EUR]", "Area_9d0f: Asset cost breakdown [EUR]", - "Area_a58a: Asset cost breakdown [EUR]_", + "Area_a58a: Asset cost breakdown [EUR]", ] np.testing.assert_allclose( len(optimized_energy_system.instance[0].area.KPIs.kpi), number_of_kpis_top_level_in_esdl diff --git a/tox.ini b/tox.ini index 852cec95e..c19d9507f 100644 --- a/tox.ini +++ b/tox.ini @@ -13,8 +13,8 @@ extras = all # Normal tests, or test to solve systems to create data for post porcessing test environment [testenv:test_env1] -; commands = pytest -n auto -v --ignore=tests/test_updated_esdl_post_process.py -s -commands = pytest -n auto -v tests/test_updated_esdl_run.py -s # temp command +commands = pytest -n auto -v --ignore=tests/test_updated_esdl_post_process.py -s +; commands = pytest -n auto -v tests/test_updated_esdl_run.py -s # temp command # Post process type of tests [testenv:test_env2] From 6a80c6cd72236254bb0522b0eab27011e07d6365 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 17:49:49 +0200 Subject: [PATCH 088/275] Added additional job, temp main test for this 1 --- .github/workflows/ci.yml | 33 ++++++++++++++++++++++--- tests/test_updated_esdl_post_process.py | 6 +++++ tests/test_updated_esdl_run.py | 7 +----- tox.ini | 16 +++++++----- 4 files changed, 46 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 240c48e42..62311edad 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,7 +57,7 @@ jobs: # Preprocessing and solved network testing - name: Check test - run: tox -vv -etest_env1 + run: tox -vv -etest_env_main - name: Upload results uses: actions/upload-artifact@v4 @@ -76,9 +76,34 @@ jobs: # path: Demo.txt # # ------------------------------------------------------------------------------------------- - test_postprocessing: + test_pre_processing: + name: Test pre-processing + runs-on: ubuntu-latest + env: + TOXENV: py38 + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-python@v4 + with: + python-version: "3.8" + + - name: deps + run: python -m pip install -U tox + + # Preprocessing and solved network testing + - name: Check test + run: tox -vv -etest_env_pre + + - name: Upload results + uses: actions/upload-artifact@v4 + with: + name: updated_esdl_file + path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + + test_post_processing: name: Test post-processing - needs: test_main + needs: test_pre_processing runs-on: ubuntu-latest env: TOXENV: py38 @@ -112,7 +137,7 @@ jobs: # echo The result is $value - name: Check test - run: tox -vv -etest_env2 + run: tox -vv -etest_env_post documentation: name: Generate documentation diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index b3a5362c9..9671db413 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -20,6 +20,12 @@ def test_updated_esdl(self): - That the correct number of KPIs have been added - That the correct assets have been removed - Check that all the assets have a state=ENABLED + + Add: + - pipe diam + - aggregation count of the asset -> check in mesido vs esdl + - units of the kips euro + - if the assets are connected """ root_folder = str(Path(__file__).resolve().parent.parent) diff --git a/tests/test_updated_esdl_run.py b/tests/test_updated_esdl_run.py index cc1edc6a9..911742d33 100644 --- a/tests/test_updated_esdl_run.py +++ b/tests/test_updated_esdl_run.py @@ -5,8 +5,6 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.workflows import run_end_scenario_sizing -import numpy as np - class TestUpdatedESDL(TestCase): @@ -31,15 +29,12 @@ def test_updated_esdl(self): Path(examples.PoCTutorial.src.run_grow_tutorial.__file__).resolve().parent.parent ) - solution = run_end_scenario_sizing( + _ = run_end_scenario_sizing( EndScenarioSizingStagedHighs, base_folder=base_folder, esdl_file_name="PoC Tutorial.esdl", esdl_parser=ESDLFileParser, ) - # This test only exist for flake test purposes: variable never used - results = solution.extract_results() - np.testing.assert_array_less(0.0, len(results.values())) if __name__ == "__main__": diff --git a/tox.ini b/tox.ini index c19d9507f..c491a11dc 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] envlist = - py39,test_env1,test_env2,flake8,black + py39, test_env_main, test_env_pre, test_env_post, flake8, black # Basic setup for test environments [testenv] @@ -11,13 +11,17 @@ deps = numpy extras = all -# Normal tests, or test to solve systems to create data for post porcessing test environment -[testenv:test_env1] -commands = pytest -n auto -v --ignore=tests/test_updated_esdl_post_process.py -s -; commands = pytest -n auto -v tests/test_updated_esdl_run.py -s # temp command +# Main tests (typical normal test) +[testenv:test_env_main] +; commands = pytest -n auto -v --ignore=tests/test_updated_esdl_post_process.py -s +commands = pytest -n auto -v tests/test_esdl_parsing.py -s # temp command + +# Pre-processing / solve systems to create data for post-processing test environment +[testenv:test_env_pre] +commands = pytest -n auto -v tests/test_updated_esdl_run.py -s # Post process type of tests -[testenv:test_env2] +[testenv:test_env_post] commands = pytest -n auto -v tests/test_updated_esdl_post_process.py -s From a8758191d733f78f5184d2609c1e152a7e8d3c1e Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 15 Apr 2024 17:55:19 +0200 Subject: [PATCH 089/275] Specify retention days --- .github/workflows/ci.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 62311edad..4122f012d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,11 +59,6 @@ jobs: - name: Check test run: tox -vv -etest_env_main - - name: Upload results - uses: actions/upload-artifact@v4 - with: - name: updated_esdl_file - path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl # # Dummy example # # ------------------------------------------------------------------------------------------- # - name: test_demo @@ -100,6 +95,7 @@ jobs: with: name: updated_esdl_file path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl + retention-days: 5 test_post_processing: name: Test post-processing From 43c32480029607762b3d6ee11c9ee34f3c7ff17c Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 16 Apr 2024 11:12:59 +0200 Subject: [PATCH 090/275] Add missing units for the energy kpi --- src/mesido/workflows/io/write_output.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index ab6c2a8db..d99b1879a 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -487,6 +487,9 @@ def _name_to_asset(name): for key, value in heat_source_energy_wh.items() ] ), + quantityAndUnit=esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.ENERGY, unit=esdl.UnitEnum.WATTHOUR + ), ) ) energy_system.instance[0].area.KPIs = kpis_top_level From 8e7292089dc4d19b88b90a6791984bebb828b292 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 16 Apr 2024 11:48:03 +0200 Subject: [PATCH 091/275] Formatting, test update, renaming --- .github/workflows/ci.yml | 50 ++++------ tests/test_updated_esdl_post_process.py | 94 ++++++++++++++++--- ...un.py => test_updated_esdl_pre_process.py} | 0 3 files changed, 97 insertions(+), 47 deletions(-) rename tests/{test_updated_esdl_run.py => test_updated_esdl_pre_process.py} (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4122f012d..3a1ebcaf2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,8 +21,14 @@ jobs: - name: deps run: python -m pip install -U tox - - name: Check style - run: tox -vv + - name: Check style main + run: tox -vv -etest_env_main + + - name: Check style pre-processing + run: tox -vv -etest_env_pre + + - name: Check style post-processing + run: tox -vv -etest_env_post build: name: Check build @@ -39,7 +45,8 @@ jobs: - name: Check build run: python setup.py sdist bdist_wheel - + + # Main testing test_main: name: Test main runs-on: ubuntu-latest @@ -54,23 +61,11 @@ jobs: - name: deps run: python -m pip install -U tox - - # Preprocessing and solved network testing + - name: Check test run: tox -vv -etest_env_main - -# # Dummy example -# # ------------------------------------------------------------------------------------------- -# - name: test_demo -# run: echo 1 > Demo.txt - -# - name: Archive test artifacts -# uses: actions/upload-artifact@v4 -# with: -# name: test_demo -# path: Demo.txt -# # ------------------------------------------------------------------------------------------- - + + # Pre-processing testing test_pre_processing: name: Test pre-processing runs-on: ubuntu-latest @@ -86,7 +81,6 @@ jobs: - name: deps run: python -m pip install -U tox - # Preprocessing and solved network testing - name: Check test run: tox -vv -etest_env_pre @@ -96,7 +90,8 @@ jobs: name: updated_esdl_file path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl retention-days: 5 - + + # Post processing testing dependant on pre-processing test_post_processing: name: Test post-processing needs: test_pre_processing @@ -113,24 +108,11 @@ jobs: - name: deps run: python -m pip install -U tox - # Post processing testing - name: Archive test artifacts uses: actions/download-artifact@v4 with: name: updated_esdl_file - # name: test_demo - # path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl - path: examples/PoCTutorial/model/ # try to specify location of file downloaded - # - shell: bash - # run: | - # value=`cat examples/PoCTutorial/model/Demo.txt` - # expr $value + 9 > examples/PoCTutorial/model/Demo.txt - - # - name: Print the final result - # shell: bash - # run: | - # value=`cat examples/PoCTutorial/model/Demo.txt` - # echo The result is $value + path: examples/PoCTutorial/model/ - name: Check test run: tox -vv -etest_env_post diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 9671db413..9d8f7ab4a 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -1,3 +1,4 @@ +import fnmatch import os import sys from pathlib import Path @@ -19,13 +20,13 @@ def test_updated_esdl(self): Checks: - That the correct number of KPIs have been added - That the correct assets have been removed - - Check that all the assets have a state=ENABLED - - Add: - - pipe diam - - aggregation count of the asset -> check in mesido vs esdl - - units of the kips euro - - if the assets are connected + - That all the assets have a state=ENABLED + - The diameter of all the pipes are as expected + - The aggregation count of the assets, MESIDO problem vs updated ESDL file + - That the KPI values are represented in the correct units + - That assets are connected and that the connections per ports were not changed in the + updated ESDL + - The correct number of polygon sub-areas exist """ root_folder = str(Path(__file__).resolve().parent.parent) @@ -46,6 +47,7 @@ def test_updated_esdl(self): model_folder=model_folder, input_folder=input_folder, ) + problem.pre() # test KPIs in optimized ESDL esdl_path = os.path.join(base_folder, "model", "PoC Tutorial_GrowOptimized.esdl") @@ -53,36 +55,60 @@ def test_updated_esdl(self): # High level checks of KPIs number_of_kpis_top_level_in_esdl = 8 - high_level_kpis_name = [ + high_level_kpis_euro = [ "High level cost breakdown [EUR]", "Overall cost breakdown [EUR]", "CAPEX breakdown [EUR]", "OPEX breakdown [EUR]", - "Energy production [Wh]", "Area_76a7: Asset cost breakdown [EUR]", "Area_9d0f: Asset cost breakdown [EUR]", "Area_a58a: Asset cost breakdown [EUR]", ] + high_level_kpis_wh = [ + "Energy production [Wh]", + ] + all_high_level_kpis = [] + all_high_level_kpis = high_level_kpis_euro + high_level_kpis_wh + np.testing.assert_allclose( len(optimized_energy_system.instance[0].area.KPIs.kpi), number_of_kpis_top_level_in_esdl ) for ii in range(len(optimized_energy_system.instance[0].area.KPIs.kpi)): kpi_name = optimized_energy_system.instance[0].area.KPIs.kpi[ii].name np.testing.assert_array_equal( - kpi_name in high_level_kpis_name, + kpi_name in all_high_level_kpis, True, err_msg=f"KPI name {kpi_name} was not expected in the ESDL", ) - - # High level checks of the assets - # Check quantity of assets and that they all of have an ENABLED state + if kpi_name in high_level_kpis_euro: + np.testing.assert_array_equal( + optimized_energy_system.instance[0].area.KPIs.kpi[ii].quantityAndUnit.unit.name, + "EURO", + ) + elif kpi_name in high_level_kpis_wh: + np.testing.assert_array_equal( + optimized_energy_system.instance[0].area.KPIs.kpi[ii].quantityAndUnit.unit.name, + "WATTHOUR", + ) + else: + exit(f"Unexpected KPI name: {kpi_name}") + + # Check the asset quantity number_of_assets_in_esdl = 15 np.testing.assert_allclose( len(optimized_energy_system.instance[0].area.asset), number_of_assets_in_esdl ) + # Check: + # - that the correct assets were removed + # - asset state + # - pipe diameter sizes + # - asset aggregation count + # - number of ports + # - number of connection to a port asset_to_be_deleted = ["ResidualHeatSource_76f0", "Pipe_8fa5_ret", "Pipe_8fa5"] for ii in range(len(optimized_energy_system.instance[0].area.asset)): asset_name = optimized_energy_system.instance[0].area.asset[ii].name + # Existance of asset and its state np.testing.assert_array_equal( asset_name not in asset_to_be_deleted, True, @@ -92,6 +118,48 @@ def test_updated_esdl(self): optimized_energy_system.instance[0].area.asset[ii].state.name == "ENABLED", True ) + # Check pipe diameter + if ( + len( + fnmatch.filter([optimized_energy_system.instance[0].area.asset[ii].id], "Pipe*") + ) + == 1 + ): + if asset_name not in ["Pipe4", "Pipe4_ret", "Pipe5", "Pipe5_ret"]: + np.testing.assert_array_equal( + optimized_energy_system.instance[0].area.asset[ii].diameter.name, "DN400" + ) + else: + np.testing.assert_array_equal( + optimized_energy_system.instance[0].area.asset[ii].diameter.name, + "DN300", + err_msg=f"Asset name {asset_name} was not expected in the ESDL", + ) + # Check aggregation count + np.testing.assert_array_equal( + optimized_energy_system.instance[0].area.asset[ii].aggregationCount, + problem.get_aggregation_count_max(asset_name), + ) + # Check the number of ports of the assets are as expected + np.testing.assert_array_equal( + len(optimized_energy_system.instance[0].area.asset[ii].port), + len(problem.esdl_assets[asset_name].in_ports) + + len(problem.esdl_assets[asset_name].out_ports), + ) + # Check the number of connection to a port + optimized_energy_system.instance[0].area.asset[ii].port[1].name + for iport in range(len(optimized_energy_system.instance[0].area.asset[ii].port)): + if optimized_energy_system.instance[0].area.asset[ii].port[iport].name == "In": + np.testing.assert_array_equal( + len( + optimized_energy_system.instance[0] + .area.asset[ii] + .port[iport] + .connectedTo.items + ), + len(problem.esdl_assets[asset_name].in_ports), + ) + # High level check on the polygon areas drawn number_of_areas_in_esdl = 3 np.testing.assert_allclose( diff --git a/tests/test_updated_esdl_run.py b/tests/test_updated_esdl_pre_process.py similarity index 100% rename from tests/test_updated_esdl_run.py rename to tests/test_updated_esdl_pre_process.py From e4dbb9a0ea9f2abafcc18ffd6c84aa3b56614dd1 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 16 Apr 2024 11:48:17 +0200 Subject: [PATCH 092/275] renaming --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index c491a11dc..8d7eeb152 100644 --- a/tox.ini +++ b/tox.ini @@ -18,7 +18,7 @@ commands = pytest -n auto -v tests/test_esdl_parsing.py -s # temp command # Pre-processing / solve systems to create data for post-processing test environment [testenv:test_env_pre] -commands = pytest -n auto -v tests/test_updated_esdl_run.py -s +commands = pytest -n auto -v tests/test_updated_esdl_pre_process.py -s # Post process type of tests [testenv:test_env_post] From d5c5c7ccabcc79b5c28a8f9f48ff16a522d89c0f Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 16 Apr 2024 11:53:35 +0200 Subject: [PATCH 093/275] revert to using all test cases again --- tox.ini | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index 8d7eeb152..cda45d59d 100644 --- a/tox.ini +++ b/tox.ini @@ -13,8 +13,7 @@ extras = all # Main tests (typical normal test) [testenv:test_env_main] -; commands = pytest -n auto -v --ignore=tests/test_updated_esdl_post_process.py -s -commands = pytest -n auto -v tests/test_esdl_parsing.py -s # temp command +commands = pytest -n auto -v --ignore=tests/test_updated_esdl_pre_process.py --ignore=tests/test_updated_esdl_post_process.py -s # Pre-processing / solve systems to create data for post-processing test environment [testenv:test_env_pre] From 8e5e77d7c0573ad485b6ea19df654eefb89b99d4 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 16 Apr 2024 12:14:19 +0200 Subject: [PATCH 094/275] add source size check --- tests/test_updated_esdl_post_process.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 9d8f7ab4a..b6e45c41b 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -26,6 +26,8 @@ def test_updated_esdl(self): - That the KPI values are represented in the correct units - That assets are connected and that the connections per ports were not changed in the updated ESDL + - That the size of the source has been made small. Not checking the exact + value - not the purpose of these tests - The correct number of polygon sub-areas exist """ @@ -159,6 +161,12 @@ def test_updated_esdl(self): ), len(problem.esdl_assets[asset_name].in_ports), ) + if asset_name == "ResidualHeatSource_72d7": + asset_id = optimized_energy_system.instance[0].area.asset[ii].id + np.testing.assert_array_less( + optimized_energy_system.instance[0].area.asset[ii].power, + problem.esdl_assets[asset_id].attributes["power"], + ) # High level check on the polygon areas drawn number_of_areas_in_esdl = 3 From 1ef949824d0af0830f65c4cae88277bc4cb8ec4f Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 16 Apr 2024 14:13:43 +0200 Subject: [PATCH 095/275] bug fix --- .github/workflows/ci.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3a1ebcaf2..67d7ca3eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,14 +21,8 @@ jobs: - name: deps run: python -m pip install -U tox - - name: Check style main - run: tox -vv -etest_env_main - - - name: Check style pre-processing - run: tox -vv -etest_env_pre - - - name: Check style post-processing - run: tox -vv -etest_env_post + - name: Check style + run: tox -vv build: name: Check build From f95be24ff8276f56f566da3dcc4a46ae951958b7 Mon Sep 17 00:00:00 2001 From: JimRojer-TNO <137045207+jimrojerTNO@users.noreply.github.com> Date: Tue, 16 Apr 2024 16:10:21 +0200 Subject: [PATCH 096/275] Add airco (#26) This commit adds the airco asset in the heating networks. --- src/mesido/asset_sizing_mixin.py | 7 + src/mesido/esdl/asset_to_component_base.py | 1 + src/mesido/esdl/esdl_heat_model.py | 39 +++ src/mesido/heat_physics_mixin.py | 5 +- .../pycml/component_library/milp/__init__.py | 2 + .../component_library/milp/heat/__init__.py | 2 + .../component_library/milp/heat/airco.py | 53 +++ tests/models/wko/model/airco.esdl | 326 ++++++++++++++++++ tests/models/wko/src/example.py | 2 +- tests/test_cold_demand.py | 30 ++ tests/utils_tests.py | 10 +- 11 files changed, 473 insertions(+), 4 deletions(-) create mode 100644 src/mesido/pycml/component_library/milp/heat/airco.py create mode 100644 tests/models/wko/model/airco.esdl diff --git a/src/mesido/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py index f2329d82c..6306728af 100644 --- a/src/mesido/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -790,6 +790,13 @@ def _make_max_size_var(name, lb, ub, nominal): lb = 0.0 if np.isinf(bounds[f"{asset_name}.Heat_demand"][1]) else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) + for asset_name in self.energy_system_components.get("airco", []): + ub = bounds[f"{asset_name}.Heat_airco"][1] + # Note that we only enforce the upper bound in state enabled if it was explicitly + # specified for the demand + lb = 0.0 if np.isinf(bounds[f"{asset_name}.Heat_airco"][1]) else ub + _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) + for asset_name in self.energy_system_components.get("cold_demand", []): ub = ( bounds[f"{asset_name}.Cold_demand"][1] diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index 5918471c8..d9a3bf6eb 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -72,6 +72,7 @@ class _AssetToComponentBase: } # A map of the esdl assets to the asset types in pycml component_map = { + "Airco": "airco", "ATES": "ates", "Battery": "electricity_storage", "Bus": "electricity_node", diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 979d19546..6ead56217 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -13,6 +13,7 @@ from mesido.pycml.component_library.milp import ( ATES, AirWaterHeatPump, + Airco, CheckValve, ColdDemand, Compressor, @@ -351,6 +352,44 @@ def convert_heat_demand(self, asset: Asset) -> Tuple[Type[HeatDemand], MODIFIERS return HeatDemand, modifiers + def convert_airco(self, asset: Asset) -> Tuple[Type[Airco], MODIFIERS]: + """ + This function converts the airco object in esdl to a set of modifiers that can be used in + a pycml object. Most important: + + - Setting a cap on the thermal power. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. + + Parameters + ---------- + asset : The asset object with its properties. + + Returns + ------- + Demand class with modifiers + """ + assert asset.asset_type in {"Airco"} + + max_ = asset.attributes["power"] if asset.attributes["power"] else math.inf + + q_nominal = self._get_connected_q_nominal(asset) + + modifiers = dict( + Q_nominal=q_nominal, + Heat_airco=dict(max=max_, nominal=max_ / 2.0), + Heat_flow=dict(max=max_, nominal=max_ / 2.0), + HeatIn=dict(Hydraulic_power=dict(nominal=q_nominal * 16.0e5)), + HeatOut=dict(Hydraulic_power=dict(nominal=q_nominal * 16.0e5)), + state=self.get_state(asset), + **self._supply_return_temperature_modifiers(asset), + **self._rho_cp_modifiers, + **self._get_cost_figure_modifiers(asset), + ) + + return Airco, modifiers + def convert_cold_demand(self, asset: Asset) -> Tuple[Type[ColdDemand], MODIFIERS]: """ This function converts the demand object in esdl to a set of modifiers that can be used in diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index a24d636e4..0b1affcc1 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -1372,7 +1372,10 @@ def __demand_heat_to_discharge_path_constraints(self, ensemble_member): constraints = [] parameters = self.parameters(ensemble_member) - for d in self.energy_system_components.get("heat_demand", []): + for d in [ + *self.energy_system_components.get("heat_demand", []), + *self.energy_system_components.get("airco", []), + ]: heat_nominal = parameters[f"{d}.Heat_nominal"] cp = parameters[f"{d}.cp"] rho = parameters[f"{d}.rho"] diff --git a/src/mesido/pycml/component_library/milp/__init__.py b/src/mesido/pycml/component_library/milp/__init__.py index 60d6534db..7b8c856cb 100644 --- a/src/mesido/pycml/component_library/milp/__init__.py +++ b/src/mesido/pycml/component_library/milp/__init__.py @@ -15,6 +15,7 @@ from .gas.gas_substation import GasSubstation from .gas.gas_tank_storage import GasTankStorage from .heat.air_water_heat_pump import AirWaterHeatPump +from .heat.airco import Airco from .heat.ates import ATES from .heat.check_valve import CheckValve from .heat.cold_demand import ColdDemand @@ -35,6 +36,7 @@ from .multicommodity.electrolyzer import Electrolyzer __all__ = [ + "Airco", "AirWaterHeatPump", "ATES", "HeatBuffer", diff --git a/src/mesido/pycml/component_library/milp/heat/__init__.py b/src/mesido/pycml/component_library/milp/heat/__init__.py index 475ed0e55..b03cc2159 100644 --- a/src/mesido/pycml/component_library/milp/heat/__init__.py +++ b/src/mesido/pycml/component_library/milp/heat/__init__.py @@ -1,4 +1,5 @@ from .air_water_heat_pump import AirWaterHeatPump +from .airco import Airco from .ates import ATES from .check_valve import CheckValve from .cold_demand import ColdDemand @@ -18,6 +19,7 @@ from .pump import Pump __all__ = [ + "Airco", "AirWaterHeatPump", "ATES", "HeatBuffer", diff --git a/src/mesido/pycml/component_library/milp/heat/airco.py b/src/mesido/pycml/component_library/milp/heat/airco.py new file mode 100644 index 000000000..612df54fb --- /dev/null +++ b/src/mesido/pycml/component_library/milp/heat/airco.py @@ -0,0 +1,53 @@ +from mesido.pycml import Variable + +from ._non_storage_component import _NonStorageComponent + + +class Airco(_NonStorageComponent): + """ + The airco component is there to extract thermal power (Heat) out of the network. This component + can also be used to model cold producers, e.g. dry coolers. + + The heat to discharge constraints are set in the HeatPhysicsMixin. We enforce that the outgoing + temperature of the airco matches the absolute thermal power, Q * cp * rho * T_ret == Heat, + similar as with the sources. This allows us to guarantee that the flow can always carry the + heat and that thermal losses are always estimated conservatively, as the heat losses further + downstream in the network are over-estimated with T_ret where in reality this temperature + drops. It also implicitly assumes that the temperature drops in the network are small and thus + satisfy minimum temperature requirements. + """ + + def __init__(self, name, **modifiers): + super().__init__( + name, + **self.merge_modifiers( + dict( + HeatIn=dict(Heat=dict(min=0.0)), + HeatOut=dict(Heat=dict(min=0.0)), + ), + modifiers, + ), + ) + + self.component_type = "airco" + + self.minimum_pressure_drop = 1.0e5 # 1 bar of pressure drop + + # Assumption: heat in/out and extracted is nonnegative + # Heat in the return (i.e. cold) line is zero + self.add_variable(Variable, "Heat_airco", min=0.0, nominal=self.Heat_nominal) + self.add_variable(Variable, "dH", max=0.0) + self.add_equation(self.dH - (self.HeatOut.H - self.HeatIn.H)) + self.add_equation( + ( + self.minimum_pressure_drop * self.Q + - (self.HeatIn.Hydraulic_power - self.HeatOut.Hydraulic_power) + ) + / (self.Q_nominal * self.minimum_pressure_drop) + ) + + self.add_equation( + (self.HeatOut.Heat - (self.HeatIn.Heat - self.Heat_airco)) / self.Heat_nominal + ) + + self.add_equation((self.Heat_flow - self.Heat_airco) / self.Heat_nominal) diff --git a/tests/models/wko/model/airco.esdl b/tests/models/wko/model/airco.esdl new file mode 100644 index 000000000..a7a7422cc --- /dev/null +++ b/tests/models/wko/model/airco.esdl @@ -0,0 +1,326 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/wko/src/example.py b/tests/models/wko/src/example.py index 2de7171d2..c46291cd1 100644 --- a/tests/models/wko/src/example.py +++ b/tests/models/wko/src/example.py @@ -211,7 +211,7 @@ def energy_system_options(self): if __name__ == "__main__": elect = run_optimization_problem( HeatProblem, - esdl_file_name="LT_wko.esdl", + esdl_file_name="airco.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries.csv", diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index f7596a0fb..ce5e397d9 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -40,6 +40,36 @@ def test_cold_demand(self): energy_conservation_test(heat_problem, heat_problem.extract_results()) heat_to_discharge_test(heat_problem, heat_problem.extract_results()) + def test_airco(self): + """ + This test is to check the basic physics for a network which includes an airco. In this + case we have a network with an air-water hp, a low temperature ates and both hot and cold + demand. In this case the demands are matched and the low temperature ates is utilized. + + Checks: + 1. demand is matched + 2. energy conservation in the network + 3. heat to discharge + + """ + import models.wko.src.example as example + from models.wko.src.example import HeatProblem + + base_folder = Path(example.__file__).resolve().parent.parent + + heat_problem = run_optimization_problem( + HeatProblem, + base_folder=base_folder, + esdl_file_name="airco.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + + demand_matching_test(heat_problem, heat_problem.extract_results()) + energy_conservation_test(heat_problem, heat_problem.extract_results()) + heat_to_discharge_test(heat_problem, heat_problem.extract_results()) + if __name__ == "__main__": a = 1 diff --git a/tests/utils_tests.py b/tests/utils_tests.py index 4b7e0ed5c..5ccb11f35 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -97,7 +97,10 @@ def heat_to_discharge_test(solution, results): """ test = TestCase() tol = 1.0e-2 - for d in solution.energy_system_components.get("heat_demand", []): + for d in [ + *solution.energy_system_components.get("heat_demand", []), + *solution.energy_system_components.get("airco", []), + ]: cp = solution.parameters(0)[f"{d}.cp"] rho = solution.parameters(0)[f"{d}.rho"] # return_id = solution.parameters(0)[f"{d}.T_return_id"] @@ -114,7 +117,7 @@ def heat_to_discharge_test(solution, results): # dt = solution.parameters(0)[f"{d}.dT"] supply_t, return_t, dt = _get_component_temperatures(solution, results, d) np.testing.assert_allclose( - results[f"{d}.Heat_demand"], + results[f"{d}.Heat_flow"], results[f"{d}.HeatIn.Heat"] - results[f"{d}.HeatOut.Heat"], atol=tol, ) @@ -342,6 +345,9 @@ def energy_conservation_test(solution, results): for d in solution.energy_system_components.get("heat_demand", []): energy_sum -= results[f"{d}.Heat_demand"] + for d in solution.energy_system_components.get("airco", []): + energy_sum -= results[f"{d}.Heat_airco"] + for d in solution.energy_system_components.get("cold_demand", []): energy_sum += results[f"{d}.Cold_demand"] From e03a79c07340beaf340a3b490ebd0f2101088253 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Mon, 22 Apr 2024 11:50:37 +0200 Subject: [PATCH 097/275] reduced heating demand for passing of pre-processing pipeline --- examples/PoCTutorial/model/PoC Tutorial.esdl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/PoCTutorial/model/PoC Tutorial.esdl b/examples/PoCTutorial/model/PoC Tutorial.esdl index 8ea28e64c..04b647e30 100644 --- a/examples/PoCTutorial/model/PoC Tutorial.esdl +++ b/examples/PoCTutorial/model/PoC Tutorial.esdl @@ -287,7 +287,7 @@ - + @@ -318,7 +318,7 @@ - + @@ -347,7 +347,7 @@ - + From 996655a47a296ecfbe502a9a0ff1a75cfa910dfd Mon Sep 17 00:00:00 2001 From: JimRojer-TNO <137045207+jimrojerTNO@users.noreply.github.com> Date: Mon, 22 Apr 2024 13:25:01 +0200 Subject: [PATCH 098/275] Add gasboiler, e-boiler, airwaterHPelec (#41) This commit adds the multicommodity components of gas_boiler, electric_boiler and air_water_hp_elec --- src/mesido/esdl/asset_to_component_base.py | 52 +++- src/mesido/esdl/esdl_heat_model.py | 251 +++++++++++++++++- src/mesido/esdl/esdl_model_base.py | 60 ++++- .../pycml/component_library/milp/__init__.py | 6 + .../milp/multicommodity/__init__.py | 6 + .../multicommodity/airwater_heat_pump_elec.py | 43 +++ .../milp/multicommodity/electro_boiler.py | 45 ++++ .../milp/multicommodity/gas_boiler.py | 51 ++++ .../model/sourcesink_withHP.esdl | 70 +++++ .../model/sourcesink_witheboiler.esdl | 70 +++++ .../model/sourcesink_withgasboiler.esdl | 87 ++++++ .../source_pipe_sink/src/double_pipe_heat.py | 9 +- tests/test_elec_boiler.py | 90 +++++++ tests/test_gas_boiler.py | 53 ++++ 14 files changed, 868 insertions(+), 25 deletions(-) create mode 100644 src/mesido/pycml/component_library/milp/multicommodity/airwater_heat_pump_elec.py create mode 100644 src/mesido/pycml/component_library/milp/multicommodity/electro_boiler.py create mode 100644 src/mesido/pycml/component_library/milp/multicommodity/gas_boiler.py create mode 100644 tests/models/source_pipe_sink/model/sourcesink_withHP.esdl create mode 100644 tests/models/source_pipe_sink/model/sourcesink_witheboiler.esdl create mode 100644 tests/models/source_pipe_sink/model/sourcesink_withgasboiler.esdl create mode 100644 tests/test_elec_boiler.py create mode 100644 tests/test_gas_boiler.py diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index d9a3bf6eb..cfbc58d1b 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -76,6 +76,7 @@ class _AssetToComponentBase: "ATES": "ates", "Battery": "electricity_storage", "Bus": "electricity_node", + "ElectricBoiler": "elec_boiler", "ElectricityCable": "electricity_cable", "ElectricityDemand": "electricity_demand", "ElectricityProducer": "electricity_source", @@ -86,7 +87,7 @@ class _AssetToComponentBase: "HeatExchange": "heat_exchanger", "HeatingDemand": "heat_demand", "HeatPump": "heat_pump", - "GasHeater": "heat_source", + "GasHeater": "gas_boiler", "GasProducer": "gas_source", "GasDemand": "gas_demand", "GasConversion": "gas_substation", @@ -412,8 +413,15 @@ def _get_connected_i_nominal_and_max(self, asset: Asset) -> Tuple[float, float]: f"Could not determine max and nominal current for {asset.asset_type}" " '{asset.name}'" ) - elif asset.out_ports is None or asset.asset_type == "Electrolyzer": - connected_port = asset.in_ports[0].connectedTo[0] + elif ( + asset.out_ports is None + or asset.asset_type == "Electrolyzer" + or asset.asset_type == "ElectricBoiler" + or asset.asset_type == "HeatPump" + ): + for port in asset.in_ports: + if isinstance(port.carrier, esdl.ElectricityCommodity): + connected_port = port.connectedTo[0] i_max = self._port_to_i_max.get(connected_port, None) i_nom = self._port_to_i_nominal.get(connected_port, None) if i_max is not None: @@ -505,6 +513,36 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: raise _RetryLaterException( f"Could not determine nominal discharge for {asset.asset_type} '{asset.name}'" ) + elif len(asset.in_ports) == 2 and len(asset.out_ports) == 1: # for gas_boiler or e_boiler + q_nominals = {} + try: + for port in asset.in_ports: + connected_port = asset.in_ports[0].connectedTo[0] + if isinstance(port.carrier, esdl.GasCommodity): + q_nominals["Q_nominal_gas"] = self._port_to_q_nominal[connected_port] + self._port_to_q_nominal[port] = q_nominals["Q_nominal_gas"] + elif isinstance(port.carrier, esdl.HeatCommodity): + q_nominals["Q_nominal"] = self._port_to_q_nominal[connected_port] + self._port_to_q_nominal[port] = q_nominals["Q_nominal"] + else: + logger.error( + f"{asset.name} should have at least gas or heat specified on" + f"one of the in ports" + ) + except KeyError: + if isinstance(asset.out_ports[0].carrier, esdl.GasCommodity): + connected_port = asset.out_ports[0].connectedTo[0] + q_nominals["Q_nominal"] = self._port_to_q_nominal.get(connected_port, None) + else: + logger.error(f"{asset.name} should have a heat carrier on out port") + + if q_nominals["Q_nominal"] is not None: + self._port_to_q_nominal[asset.out_ports[0]] = q_nominals["Q_nominal"] + return q_nominals + else: + raise _RetryLaterException( + f"Could not determine nominal discharge for {asset.asset_type} '{asset.name}'" + ) elif len(asset.in_ports) >= 2 and len(asset.out_ports) == 2: q_nominals = {} for p in asset.in_ports: @@ -611,9 +649,11 @@ def _get_supply_return_temperatures(asset: Asset) -> Tuple[float, float]: Tuple with the supply and return temperature. """ - assert len(asset.in_ports) == 1 and len(asset.out_ports) == 1 + assert len(asset.in_ports) <= 2 and len(asset.out_ports) == 1 - in_carrier = asset.global_properties["carriers"][asset.in_ports[0].carrier.id] + for port in asset.in_ports: + if isinstance(port.carrier, esdl.HeatCommodity): + in_carrier = asset.global_properties["carriers"][port.carrier.id] out_carrier = asset.global_properties["carriers"][asset.out_ports[0].carrier.id] if in_carrier["id"] == out_carrier["id"]: @@ -668,7 +708,7 @@ def _supply_return_temperature_modifiers(self, asset: Asset) -> MODIFIERS: dict with all the temperatures. """ - if len(asset.in_ports) == 1 and len(asset.out_ports) == 1: + if len(asset.in_ports) <= 2 and len(asset.out_ports) == 1: modifiers = self._get_supply_return_temperatures(asset) return modifiers elif len(asset.in_ports) >= 2 and len(asset.out_ports) == 2: diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 6ead56217..c076076b0 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -13,17 +13,20 @@ from mesido.pycml.component_library.milp import ( ATES, AirWaterHeatPump, + AirWaterHeatPumpElec, Airco, CheckValve, ColdDemand, Compressor, ControlValve, + ElecBoiler, ElectricityCable, ElectricityDemand, ElectricityNode, ElectricitySource, ElectricityStorage, Electrolyzer, + GasBoiler, GasDemand, GasNode, GasPipe, @@ -96,6 +99,36 @@ def _rho_cp_modifiers(self) -> Dict: """ return dict(rho=self.rho, cp=self.cp) + def get_internal_energy(self, asset_name, carrier): + # The default of 20°C is also used in the head_loss_class. Thus, when updating ensure it + # is also updated in the head_loss_class. + temperature = 20.0 + + if NetworkSettings.NETWORK_TYPE_GAS in carrier.name: + internal_energy = cP.CoolProp.PropsSI( + "U", + "T", + 273.15 + temperature, + "P", + carrier.pressure * 1.0e5, + NetworkSettings.NETWORK_COMPOSITION_GAS, + ) + elif NetworkSettings.NETWORK_TYPE_HYDROGEN in carrier.name: + internal_energy = cP.CoolProp.PropsSI( + "U", + "T", + 273.15 + temperature, + "P", + carrier.pressure * 1.0e5, + str(NetworkSettings.NETWORK_TYPE_HYDROGEN).upper(), + ) + else: + logger.warning( + f"Neither gas or hydrogen was used in the carrier " f"name of pipe {asset_name}" + ) + internal_energy = 46.0e6 # natural gas at about 8 bar + return internal_energy # we use gram per second and coolprop gives results in kJ per kg + def get_density(self, asset_name, carrier): # TODO: gas carrier temperature still needs to be resolved. # The default of 20°C is also used in the head_loss_class. Thus, when updating ensure it @@ -770,7 +803,7 @@ def convert_heat_exchanger(self, asset: Asset) -> Tuple[Type[HeatExchanger], MOD def convert_heat_pump( self, asset: Asset - ) -> Tuple[Union[Type[HeatPump], Type[HeatSource]], MODIFIERS]: + ) -> Tuple[Union[Type[HeatPump], Type[HeatSource], Type[AirWaterHeatPumpElec]], MODIFIERS]: """ This function converts the HeatPump object in esdl to a set of modifiers that can be used in a pycml object. Most important: @@ -798,6 +831,10 @@ def convert_heat_pump( if len(asset.in_ports) == 1 and len(asset.out_ports) == 1: _, modifiers = self.convert_heat_source(asset) return AirWaterHeatPump, modifiers + # In this case we only have the secondary side ports, here we assume a air-water HP elec + if len(asset.in_ports) == 2 and len(asset.out_ports) == 1: + _, modifiers = self.convert_air_water_heat_pump_elec(asset) + return AirWaterHeatPumpElec, modifiers if not asset.attributes["power"]: raise _ESDLInputException(f"{asset.name} has no power specified") @@ -892,10 +929,7 @@ def convert_heat_source(self, asset: Asset) -> Tuple[Type[HeatSource], MODIFIERS # get price per unit of energy, # assume cost of 1. if nothing is given (effectively milp loss minimization) - - co2_coefficient = 1.0 - if hasattr(asset.attributes["KPIs"], "kpi"): - co2_coefficient = asset.attributes["KPIs"].kpi.items[0].value + # TODO: Use an attribute or use and KPI for CO2 coefficient of a source q_nominal = self._get_connected_q_nominal(asset) @@ -912,7 +946,6 @@ def convert_heat_source(self, asset: Asset) -> Tuple[Type[HeatSource], MODIFIERS ), Q_nominal=q_nominal, state=self.get_state(asset), - co2_coeff=co2_coefficient, Heat_source=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), Heat_flow=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), HeatIn=dict(Hydraulic_power=dict(nominal=q_nominal * 16.0e5)), @@ -1639,6 +1672,212 @@ def convert_compressor(self, asset: Asset) -> Tuple[Type[Compressor], MODIFIERS] return Compressor, modifiers + def convert_gas_boiler(self, asset: Asset) -> Tuple[GasBoiler, MODIFIERS]: + """ + This function converts the GasHeater object in esdl to a set of modifiers that can be + used in a pycml object. + + Parameters + ---------- + asset : The asset object with its properties. + + Returns + ------- + GasBoiler class with modifiers + """ + assert asset.asset_type in {"GasHeater"} + + max_supply = asset.attributes["power"] + + if not max_supply: + logger.error(f"{asset.asset_type} '{asset.name}' has no max power specified. ") + assert max_supply > 0.0 + + if len(asset.in_ports) == 1: + heat_source_object, modifiers = self.convert_heat_source(asset) + return heat_source_object, modifiers + + id_mapping = asset.global_properties["carriers"][asset.in_ports[0].carrier.id][ + "id_number_mapping" + ] + + for port in asset.in_ports: + if isinstance(port.carrier, esdl.GasCommodity): + density = self.get_density(asset.name, port.carrier) + internal_energy = self.get_internal_energy(asset.name, port.carrier) + + # TODO: CO2 coefficient + + q_nominals = self._get_connected_q_nominal(asset) + + modifiers = dict( + technical_life=self.get_asset_attribute_value( + asset, + "technicalLifetime", + default_value=30.0, + min_value=1.0, + max_value=50.0, + ), + discount_rate=self.get_asset_attribute_value( + asset, "discountRate", default_value=0.0, min_value=0.0, max_value=100.0 + ), + state=self.get_state(asset), + Heat_source=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), + Heat_flow=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), + HeatIn=dict(Hydraulic_power=dict(nominal=q_nominals["Q_nominal"] * 16.0e5)), + HeatOut=dict(Hydraulic_power=dict(nominal=q_nominals["Q_nominal"] * 16.0e5)), + id_mapping_carrier=id_mapping, + density=density, + internal_energy=internal_energy, + GasIn=dict(Q=dict(min=0.0, nominal=q_nominals["Q_nominal_gas"])), + **q_nominals, + **self._supply_return_temperature_modifiers(asset), + **self._rho_cp_modifiers, + **self._get_cost_figure_modifiers(asset), + ) + + return GasBoiler, modifiers + + def convert_elec_boiler(self, asset: Asset) -> Tuple[ElecBoiler, MODIFIERS]: + """ + This function converts the ElectricBoiler object in esdl to a set of modifiers that can be + used in a pycml object. + + Parameters + ---------- + asset : The asset object with its properties. + + Returns + ------- + GasBoiler class with modifiers + """ + assert asset.asset_type in {"ElectricBoiler"} + + max_supply = asset.attributes["power"] + + if not max_supply: + logger.error(f"{asset.asset_type} '{asset.name}' has no max power specified. ") + assert max_supply > 0.0 + + if len(asset.in_ports) == 1: + heat_source_object, modifiers = self.convert_heat_source(asset) + return heat_source_object, modifiers + + id_mapping = asset.global_properties["carriers"][asset.in_ports[0].carrier.id][ + "id_number_mapping" + ] + + # TODO: CO2 coefficient + + q_nominal = self._get_connected_q_nominal(asset) + for port in asset.in_ports: + if isinstance(port.carrier, esdl.ElectricityCommodity): + min_voltage = port.carrier.voltage + i_max, i_nom = self._get_connected_i_nominal_and_max(asset) + eff = asset.attributes["efficiency"] if asset.attributes["efficiency"] else 1.0 + + modifiers = dict( + technical_life=self.get_asset_attribute_value( + asset, + "technicalLifetime", + default_value=30.0, + min_value=1.0, + max_value=50.0, + ), + discount_rate=self.get_asset_attribute_value( + asset, "discountRate", default_value=0.0, min_value=0.0, max_value=100.0 + ), + state=self.get_state(asset), + Heat_source=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), + Heat_flow=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), + HeatIn=dict(Hydraulic_power=dict(nominal=q_nominal["Q_nominal"] * 16.0e5)), + HeatOut=dict(Hydraulic_power=dict(nominal=q_nominal["Q_nominal"] * 16.0e5)), + id_mapping_carrier=id_mapping, + ElectricityIn=dict( + Power=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), + I=dict(min=0.0, max=i_max, nominal=i_nom), + V=dict(min=min_voltage, nominal=min_voltage), + ), + min_voltage=min_voltage, + elec_power_nominal=max_supply, + efficiency=eff, + **q_nominal, + **self._supply_return_temperature_modifiers(asset), + **self._rho_cp_modifiers, + **self._get_cost_figure_modifiers(asset), + ) + + return ElecBoiler, modifiers + + def convert_air_water_heat_pump_elec( + self, asset: Asset + ) -> Tuple[AirWaterHeatPumpElec, MODIFIERS]: + """ + This function converts the ElectricBoiler object in esdl to a set of modifiers that can be + used in a pycml object. + + Parameters + ---------- + asset : The asset object with its properties. + + Returns + ------- + AirWaterHeatPumpElec class with modifiers + """ + assert asset.asset_type in {"HeatPump"} + + max_supply = asset.attributes["power"] + + if not max_supply: + logger.error(f"{asset.asset_type} '{asset.name}' has no max power specified. ") + assert max_supply > 0.0 + + id_mapping = asset.global_properties["carriers"][asset.in_ports[0].carrier.id][ + "id_number_mapping" + ] + + # TODO: CO2 coefficient + + q_nominal = self._get_connected_q_nominal(asset) + for port in asset.in_ports: + if isinstance(port.carrier, esdl.ElectricityCommodity): + min_voltage = port.carrier.voltage + i_max, i_nom = self._get_connected_i_nominal_and_max(asset) + cop = asset.attributes["COP"] if asset.attributes["COP"] else 1.0 + + modifiers = dict( + technical_life=self.get_asset_attribute_value( + asset, + "technicalLifetime", + default_value=30.0, + min_value=1.0, + max_value=50.0, + ), + discount_rate=self.get_asset_attribute_value( + asset, "discountRate", default_value=0.0, min_value=0.0, max_value=100.0 + ), + state=self.get_state(asset), + Heat_source=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), + Heat_flow=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), + HeatIn=dict(Hydraulic_power=dict(nominal=q_nominal["Q_nominal"] * 16.0e5)), + HeatOut=dict(Hydraulic_power=dict(nominal=q_nominal["Q_nominal"] * 16.0e5)), + id_mapping_carrier=id_mapping, + ElectricityIn=dict( + Power=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), + I=dict(min=0.0, max=i_max, nominal=i_nom), + V=dict(min=min_voltage, nominal=min_voltage), + ), + min_voltage=min_voltage, + elec_power_nominal=max_supply, + cop=cop, + **q_nominal, + **self._supply_return_temperature_modifiers(asset), + **self._rho_cp_modifiers, + **self._get_cost_figure_modifiers(asset), + ) + + return AirWaterHeatPumpElec, modifiers + class ESDLHeatModel(_ESDLModelBase): """ diff --git a/src/mesido/esdl/esdl_model_base.py b/src/mesido/esdl/esdl_model_base.py index 7f2d58fb8..14bb611c9 100644 --- a/src/mesido/esdl/esdl_model_base.py +++ b/src/mesido/esdl/esdl_model_base.py @@ -2,7 +2,7 @@ from typing import Dict import esdl -from esdl import InPort +from esdl import InPort, OutPort from mesido.esdl.asset_to_component_base import _AssetToComponentBase from mesido.pycml import Model as _Model @@ -192,20 +192,24 @@ def _esdl_convert(self, converter: _AssetToComponentBase, assets: Dict, prefix: f"milp(4) and electricity (1) ports" ) elif ( - len(asset.in_ports) == 1 + asset.asset_type == "HeatPump" and len(asset.out_ports) == 1 - and asset.asset_type == "HeatPump" + and len(asset.in_ports) in [1, 2] ): for p in [*asset.in_ports, *asset.out_ports]: - if isinstance(p.carrier, esdl.HeatCommodity): - if isinstance(p, InPort): - port_map[p.id] = getattr(component, in_suf) - else: # OutPort - port_map[p.id] = getattr(component, out_suf) + + if isinstance(p, InPort) and isinstance( + p.carrier, esdl.ElectricityCommodity + ): + port_map[p.id] = getattr(component, elec_in_suf) + elif isinstance(p, InPort) and isinstance(p.carrier, esdl.HeatCommodity): + port_map[p.id] = getattr(component, in_suf) + elif isinstance(p, OutPort): # OutPort + port_map[p.id] = getattr(component, out_suf) else: raise Exception( - f"{asset.name} has does not have 1 Heat in_ports and 1 Heat " - f"out_ports " + f"{asset.name} has does not have (1 electricity in_port) 1 heat " + f"in port and 1 Heat out_ports " ) else: raise Exception( @@ -214,6 +218,42 @@ def _esdl_convert(self, converter: _AssetToComponentBase, assets: Dict, prefix: f"when modelling a water-water HP, or 3 in ports and 2 out ports when the " f"electricity connection of the water-water HP is modelled." ) + elif ( + asset.asset_type == "GasHeater" + and len(asset.out_ports) == 1 + and len(asset.in_ports) == 2 + ): + for p in [*asset.in_ports, *asset.out_ports]: + + if isinstance(p, InPort) and isinstance(p.carrier, esdl.GasCommodity): + port_map[p.id] = getattr(component, gas_in_suf) + elif isinstance(p, InPort) and isinstance(p.carrier, esdl.HeatCommodity): + port_map[p.id] = getattr(component, in_suf) + elif isinstance(p, OutPort): # OutPort + port_map[p.id] = getattr(component, out_suf) + else: + raise Exception( + f"{asset.name} has does not have 1 Heat in_port 1 gas in port and 1" + f"Heat out_ports " + ) + elif ( + asset.asset_type == "ElectricBoiler" + and len(asset.out_ports) == 1 + and len(asset.in_ports) == 2 + ): + for p in [*asset.in_ports, *asset.out_ports]: + + if isinstance(p, InPort) and isinstance(p.carrier, esdl.ElectricityCommodity): + port_map[p.id] = getattr(component, elec_in_suf) + elif isinstance(p, InPort) and isinstance(p.carrier, esdl.HeatCommodity): + port_map[p.id] = getattr(component, in_suf) + elif isinstance(p, OutPort): # OutPort + port_map[p.id] = getattr(component, out_suf) + else: + raise Exception( + f"{asset.name} has does not have 1 electricity in_port 1 gas in port " + f"and 1 Heat out_ports " + ) elif asset.asset_type == "Electrolyzer": if len(asset.out_ports) == 1 and len(asset.in_ports) == 1: if isinstance(asset.out_ports[0].carrier, esdl.GasCommodity): diff --git a/src/mesido/pycml/component_library/milp/__init__.py b/src/mesido/pycml/component_library/milp/__init__.py index 7b8c856cb..0b562377d 100644 --- a/src/mesido/pycml/component_library/milp/__init__.py +++ b/src/mesido/pycml/component_library/milp/__init__.py @@ -33,11 +33,15 @@ from .heat.low_temperature_ates import LowTemperatureATES from .heat.node import Node from .heat.pump import Pump +from .multicommodity.airwater_heat_pump_elec import AirWaterHeatPumpElec +from .multicommodity.electro_boiler import ElecBoiler from .multicommodity.electrolyzer import Electrolyzer +from .multicommodity.gas_boiler import GasBoiler __all__ = [ "Airco", "AirWaterHeatPump", + "AirWaterHeatPumpElec", "ATES", "HeatBuffer", "CheckValve", @@ -45,12 +49,14 @@ "Compressor", "ControlValve", "HeatDemand", + "ElecBoiler", "ElectricityCable", "ElectricityDemand", "ElectricityNode", "ElectricitySource", "ElectricityStorage", "Electrolyzer", + "GasBoiler", "GasDemand", "GasNode", "GasPipe", diff --git a/src/mesido/pycml/component_library/milp/multicommodity/__init__.py b/src/mesido/pycml/component_library/milp/multicommodity/__init__.py index f4f241c46..056357d2e 100644 --- a/src/mesido/pycml/component_library/milp/multicommodity/__init__.py +++ b/src/mesido/pycml/component_library/milp/multicommodity/__init__.py @@ -1,5 +1,11 @@ +from .airwater_heat_pump_elec import AirWaterHeatPumpElec +from .electro_boiler import ElecBoiler from .electrolyzer import Electrolyzer +from .gas_boiler import GasBoiler __all__ = [ + "AirWaterHeatPumpElec", + "ElecBoiler", "Electrolyzer", + "GasBoiler", ] diff --git a/src/mesido/pycml/component_library/milp/multicommodity/airwater_heat_pump_elec.py b/src/mesido/pycml/component_library/milp/multicommodity/airwater_heat_pump_elec.py new file mode 100644 index 000000000..2e4b1044e --- /dev/null +++ b/src/mesido/pycml/component_library/milp/multicommodity/airwater_heat_pump_elec.py @@ -0,0 +1,43 @@ +from mesido.pycml import Variable +from mesido.pycml.component_library.milp.electricity.electricity_base import ElectricityPort +from mesido.pycml.component_library.milp.heat.air_water_heat_pump import AirWaterHeatPump + +from numpy import nan + + +class AirWaterHeatPumpElec(AirWaterHeatPump): + """ + The air-water heat pump component is there to insert thermal power (Heat) into the network. + + The heat to discharge constraints are set in the HeatMixin. We enforce that the outgoing + temperature of the source matches the absolute thermal power, Q * cp * rho * T_sup == Heat, + similar as with the demands. This allows us to guarantee that the flow can always carry, as + the heat losses further downstream in the network are over-estimated with T_ret where in + reality this temperature drops. It also implicitly assumes that the temperature drops in the + network are small and thus satisfy minimum temperature requirements. + """ + + def __init__(self, name, **modifiers): + super().__init__( + name, + **modifiers, + ) + + self.component_subtype = "air_water_heat_pump_elec" + + self.id_mapping_carrier = -1 + + self.min_voltage = nan + self.elec_power_nominal = nan + self.cop = nan + + # Assumption: heat in/out and added is nonnegative + # Heat in the return (i.e. cold) line is zero + self.add_variable(ElectricityPort, "ElectricityIn") + self.add_variable(Variable, "Power_consumed", min=0.0, nominal=self.elec_power_nominal) + + self.add_equation( + ((self.ElectricityIn.Power - self.Power_consumed) / self.elec_power_nominal) + ) + + self.add_equation(((self.Power_consumed * self.cop - self.Heat_source) / self.Heat_nominal)) diff --git a/src/mesido/pycml/component_library/milp/multicommodity/electro_boiler.py b/src/mesido/pycml/component_library/milp/multicommodity/electro_boiler.py new file mode 100644 index 000000000..efc76a351 --- /dev/null +++ b/src/mesido/pycml/component_library/milp/multicommodity/electro_boiler.py @@ -0,0 +1,45 @@ +from mesido.pycml import Variable +from mesido.pycml.component_library.milp.electricity.electricity_base import ElectricityPort +from mesido.pycml.component_library.milp.heat.heat_source import HeatSource + +from numpy import nan + + +class ElecBoiler(HeatSource): + """ + The e-boiler component is there to insert thermal power (Heat) into the network. + + The heat to discharge constraints are set in the HeatMixin. We enforce that the outgoing + temperature of the source matches the absolute thermal power, Q * cp * rho * T_sup == Heat, + similar as with the demands. This allows us to guarantee that the flow can always carry, as + the heat losses further downstream in the network are over-estimated with T_ret where in + reality this temperature drops. It also implicitly assumes that the temperature drops in the + network are small and thus satisfy minimum temperature requirements. + """ + + def __init__(self, name, **modifiers): + super().__init__( + name, + **modifiers, + ) + + self.component_subtype = "elec_boiler" + + self.id_mapping_carrier = -1 + + self.min_voltage = nan + self.elec_power_nominal = nan + self.efficiency = nan + + # Assumption: heat in/out and added is nonnegative + # Heat in the return (i.e. cold) line is zero + self.add_variable(ElectricityPort, "ElectricityIn") + self.add_variable(Variable, "Power_consumed", min=0.0, nominal=self.elec_power_nominal) + + self.add_equation( + ((self.ElectricityIn.Power - self.Power_consumed) / self.elec_power_nominal) + ) + + self.add_equation( + ((self.Power_consumed * self.efficiency - self.Heat_source) / self.Heat_nominal) + ) diff --git a/src/mesido/pycml/component_library/milp/multicommodity/gas_boiler.py b/src/mesido/pycml/component_library/milp/multicommodity/gas_boiler.py new file mode 100644 index 000000000..9c24ef8f4 --- /dev/null +++ b/src/mesido/pycml/component_library/milp/multicommodity/gas_boiler.py @@ -0,0 +1,51 @@ +from mesido.pycml import Variable +from mesido.pycml.component_library.milp.gas.gas_base import GasPort +from mesido.pycml.component_library.milp.heat.heat_source import HeatSource + +from numpy import nan + + +class GasBoiler(HeatSource): + """ + The source component is there to insert thermal power (Heat) into the network. + + The heat to discharge constraints are set in the HeatMixin. We enforce that the outgoing + temperature of the source matches the absolute thermal power, Q * cp * rho * T_sup == Heat, + similar as with the demands. This allows us to guarantee that the flow can always carry, as + the heat losses further downstream in the network are over-estimated with T_ret where in + reality this temperature drops. It also implicitly assumes that the temperature drops in the + network are small and thus satisfy minimum temperature requirements. + """ + + def __init__(self, name, **modifiers): + super().__init__( + name, + **modifiers, + ) + + self.Q_nominal_gas = nan + + self.component_subtype = "gas_boiler" + + self.internal_energy = nan + self.density = 2.5e3 # H2 density [g/m3] at 30bar + + self.id_mapping_carrier = -1 + + # Assumption: heat in/out and added is nonnegative + # Heat in the return (i.e. cold) line is zero + self.add_variable(GasPort, "GasIn") + self.add_variable( + Variable, "Gas_demand_mass_flow", min=0.0, nominal=self.Q_nominal_gas * self.density + ) + + self.add_equation( + ( + (self.GasIn.mass_flow - self.Gas_demand_mass_flow) + / (self.Q_nominal_gas * self.density) + ) + ) + + self.add_equation( + ((self.GasIn.mass_flow * self.internal_energy - self.Heat_source) / self.Heat_nominal) + ) diff --git a/tests/models/source_pipe_sink/model/sourcesink_withHP.esdl b/tests/models/source_pipe_sink/model/sourcesink_withHP.esdl new file mode 100644 index 000000000..d8c34a04e --- /dev/null +++ b/tests/models/source_pipe_sink/model/sourcesink_withHP.esdl @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/source_pipe_sink/model/sourcesink_witheboiler.esdl b/tests/models/source_pipe_sink/model/sourcesink_witheboiler.esdl new file mode 100644 index 000000000..d4f2b4f86 --- /dev/null +++ b/tests/models/source_pipe_sink/model/sourcesink_witheboiler.esdl @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/source_pipe_sink/model/sourcesink_withgasboiler.esdl b/tests/models/source_pipe_sink/model/sourcesink_withgasboiler.esdl new file mode 100644 index 000000000..337bec5e8 --- /dev/null +++ b/tests/models/source_pipe_sink/model/sourcesink_withgasboiler.esdl @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/source_pipe_sink/src/double_pipe_heat.py b/tests/models/source_pipe_sink/src/double_pipe_heat.py index ad259159a..4cc2b123b 100644 --- a/tests/models/source_pipe_sink/src/double_pipe_heat.py +++ b/tests/models/source_pipe_sink/src/double_pipe_heat.py @@ -42,7 +42,10 @@ def __init__(self): self.function_nominal = 1e6 def function(self, optimization_problem, ensemble_member): - return optimization_problem.state("source.Heat_source") + sum = 0 + for source in optimization_problem.energy_system_components.get("heat_source", []): + sum = optimization_problem.state(f"{source}.Heat_source") + return sum class SourcePipeSink( @@ -89,8 +92,8 @@ def solver_options(self): if __name__ == "__main__": sol = run_optimization_problem( - HeatProblemHydraulic, - esdl_file_name="sourcesink.esdl", + SourcePipeSink, + esdl_file_name="sourcesink_witheboiler.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries_import.csv", diff --git a/tests/test_elec_boiler.py b/tests/test_elec_boiler.py new file mode 100644 index 000000000..e49c506c4 --- /dev/null +++ b/tests/test_elec_boiler.py @@ -0,0 +1,90 @@ +from pathlib import Path +from unittest import TestCase + +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + +import numpy as np + +from rtctools.util import run_optimization_problem + +from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test + + +class TestElecBoiler(TestCase): + def test_elec_boiler(self): + """ + This tests checks the elec boiler for the standard checks and the energy conservation over + the commodity change. + + Checks: + 1. demand is matched + 2. energy conservation in the network + 3. heat to discharge + 4. energy conservation over the commodity + """ + import models.source_pipe_sink.src.double_pipe_heat as example + from models.source_pipe_sink.src.double_pipe_heat import SourcePipeSink + + base_folder = Path(example.__file__).resolve().parent.parent + + heat_problem = run_optimization_problem( + SourcePipeSink, + base_folder=base_folder, + esdl_file_name="sourcesink_witheboiler.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_import.csv", + ) + results = heat_problem.extract_results() + parameters = heat_problem.parameters(0) + + demand_matching_test(heat_problem, results) + energy_conservation_test(heat_problem, results) + heat_to_discharge_test(heat_problem, results) + + np.testing.assert_array_less(0.0, results["ElectricBoiler_9aab.Heat_source"]) + np.testing.assert_array_less(0.0, results["ElectricityProducer_4dde.ElectricityOut.Power"]) + np.testing.assert_array_less( + parameters["ElectricBoiler_9aab.efficiency"] + * results["ElectricBoiler_9aab.Power_consumed"], + results["ElectricBoiler_9aab.Heat_source"] + 1.0e-6, + ) + + def test_air_water_hp_elec(self): + """ + This tests checks the air-water hp elec for the standard checks and the energy conservation + over the commodity change. + + Checks: + 1. demand is matched + 2. energy conservation in the network + 3. heat to discharge + 4. energy conservation over the commodity + """ + import models.source_pipe_sink.src.double_pipe_heat as example + from models.source_pipe_sink.src.double_pipe_heat import SourcePipeSink + + base_folder = Path(example.__file__).resolve().parent.parent + + heat_problem = run_optimization_problem( + SourcePipeSink, + base_folder=base_folder, + esdl_file_name="sourcesink_withHP.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_import.csv", + ) + results = heat_problem.extract_results() + parameters = heat_problem.parameters(0) + + demand_matching_test(heat_problem, results) + energy_conservation_test(heat_problem, results) + heat_to_discharge_test(heat_problem, results) + + np.testing.assert_array_less(0.0, results["HeatPump_d8fd.Heat_source"]) + np.testing.assert_array_less(0.0, results["ElectricityProducer_4dde.ElectricityOut.Power"]) + np.testing.assert_array_less( + parameters["HeatPump_d8fd.cop"] * results["HeatPump_d8fd.Power_consumed"], + results["HeatPump_d8fd.Heat_source"] + 1.0e-6, + ) diff --git a/tests/test_gas_boiler.py b/tests/test_gas_boiler.py new file mode 100644 index 000000000..c83d39e2b --- /dev/null +++ b/tests/test_gas_boiler.py @@ -0,0 +1,53 @@ +from pathlib import Path +from unittest import TestCase + +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile + +import numpy as np + +from rtctools.util import run_optimization_problem + +from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test + + +class TestGasBoiler(TestCase): + def test_gas_boiler(self): + """ + This tests checks the gas boiler for the standard checks and the energy conservation over + the commodity change. + + Checks: + 1. demand is matched + 2. energy conservation in the network + 3. heat to discharge + 4. energy conservation over the commodity + + """ + import models.source_pipe_sink.src.double_pipe_heat as example + from models.source_pipe_sink.src.double_pipe_heat import SourcePipeSink + + base_folder = Path(example.__file__).resolve().parent.parent + + heat_problem = run_optimization_problem( + SourcePipeSink, + base_folder=base_folder, + esdl_file_name="sourcesink_withgasboiler.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_import.csv", + ) + results = heat_problem.extract_results() + parameters = heat_problem.parameters(0) + + demand_matching_test(heat_problem, results) + energy_conservation_test(heat_problem, results) + heat_to_discharge_test(heat_problem, results) + + np.testing.assert_array_less(0.0, results["GasHeater_f713.Heat_source"]) + np.testing.assert_array_less(0.0, results["GasProducer_82ec.Gas_source_mass_flow"]) + np.testing.assert_array_less( + parameters["GasHeater_f713.internal_energy"] + * results["GasHeater_f713.GasIn.mass_flow"], + results["GasHeater_f713.Heat_source"] + 1.0e-6, + ) From 6b0bae56bd00b8574282e70b7b677b12348269e2 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 22 Apr 2024 13:25:30 +0200 Subject: [PATCH 099/275] profiles for the municipality example (#47) --- .../municipality/model/demand_profiles.csv | 8761 +++++++++++++++++ 1 file changed, 8761 insertions(+) create mode 100644 examples/municipality/model/demand_profiles.csv diff --git a/examples/municipality/model/demand_profiles.csv b/examples/municipality/model/demand_profiles.csv new file mode 100644 index 000000000..07c660222 --- /dev/null +++ b/examples/municipality/model/demand_profiles.csv @@ -0,0 +1,8761 @@ +time,HeatingDemand_2bbd,HeatingDemand_Artiestbuurt_2,HeatingDemand_Artiestenbuurt_1,HeatingDemand_DeStrijp_1,HeatingDemand_DeStrijp_2,HeatingDemand_DeStrijp_3,HeatingDemand_Hoekpolder,HeatingDemand_HuisTeLande,HeatingDemand_Kleurenbuurt,HeatingDemand_Ministerbuurt_1,HeatingDemand_Ministerbuurt_2,HeatingDemand_Muziekbuurt_1,HeatingDemand_Muziekbuurt_2,HeatingDemand_Muziekbuurt_3,HeatingDemand_Presidentenbuurt,HeatingDemand_Rembrandtkwartier_1,HeatingDemand_Rembrandtkwartier_2,HeatingDemand_Stationskwartier,HeatingDemand_Stervoorde_1,HeatingDemand_Stervoorde_2,HeatingDemand_Stervoorde_3,HeatingDemand_Stervoorde_4,HeatingDemand_Stervoorde_5,HeatingDemand_TeWerve_1,HeatingDemand_TeWerve_2,HeatingDemand_TeWerve_3,HeatingDemand_TeWerve_4,HeatingDemand_WelGelegen,HeatingDemand_fea2 +0.0,122727.26400000001,156420.903,456749.03676,27084.97495,27084.97495,27084.97495,137061.0185,272944.45376,749090.2848,18990.10134,28937.29728,212012.223,212012.223,212012.223,64234.7265,122727.26400000001,122727.26400000001,226169.61991,6227.01675,9255.9607,16144.1175,4581.8543,5827.2576500000005,170223.789,170223.789,170223.789,170223.789,368999.97376,368999.97376 +3600.0,124880.637,143905.122,420202.95624,9313.19378,9313.19378,9313.19378,7416.493,258965.89984,770030.7488,11608.262610000002,17688.781120000003,218545.704,218545.704,218545.704,71438.626,124880.637,124880.637,147536.99532,17544.308399999998,26078.20656,45485.244,12909.14544,16418.00712,176782.61700000003,176782.61700000003,176782.61700000003,176782.61700000003,375474.44857999997,375474.44857999997 +7200.0,123030.42,137805.41100000002,402391.80012,3729.3939100000002,3729.3939100000002,3729.3939100000002,2073.8655,244447.17511999997,744455.66592,13736.96919,20932.52448,209651.82300000003,209651.82300000003,209651.82300000003,159323.85,123030.42,123030.42,142664.84530999998,73645.47135,109468.08334000001,190932.70350000003,54188.519660000005,68917.61393,169643.484,169643.484,169643.484,169643.484,369911.4628,369911.4628 +10800.0,128790.96300000002,141681.177,413709.03684,4426.88609,4426.88609,4426.88609,1844.1499999999999,252353.19776,764783.35744,22108.95792,33689.84064,214145.22000000003,214145.22000000003,214145.22000000003,163804.5535,128790.96300000002,128790.96300000002,148075.89328999998,109218.34259999999,162344.30183999997,283158.66599999997,80363.12616,102206.79467999999,175189.35,175189.35,175189.35,175189.35,387231.49542,387231.49542 +14400.0,138459.888,149615.787,436878.09804,6916.134720000001,6916.134720000001,6916.134720000001,3342.2725,271177.08872,804263.9072000001,55128.13719000001,84004.78048000002,223974.70500000002,223974.70500000002,223974.70500000002,173022.85000000003,138459.888,138459.888,157623.18052,128237.5071,190614.76364,332467.61100000003,94357.47436000001,120004.97578000001,185846.63999999998,185846.63999999998,185846.63999999998,185846.63999999998,416302.72992,416302.72992 +18000.0,142061.079,150148.974,438435.0040799999,16291.74602,16291.74602,16291.74602,11271.011499999999,279237.41584,804529.8688,101165.60097000001,154157.10624000002,224715.645,224715.645,224715.645,174257.769,142061.079,142061.079,160059.59463,133119.94814999998,197872.12045999998,345125.7915,97949.98654,124573.97617,188445.723,188445.723,188445.723,188445.723,427130.31085999997,427130.31085999997 +21600.0,297167.868,193390.461,564700.14612,281594.00818999996,281594.00818999996,281594.00818999996,105160.0585,771925.7337600001,899898.3020800002,292147.70844,445177.46048,257317.79400000005,257317.79400000005,257317.79400000005,290182.2,297167.868,297167.868,362549.1324,179897.5494,267403.27096,466401.054,132369.06104,168348.57092,302760.72,302760.72,302760.72,302760.72,893484.72312,893484.72312 +25200.0,1059383.889,584351.7390000001,1706307.07788,2308904.4473,2308904.4473,2308904.4473,1785203.14,3118694.2966400003,4030326.20672,2607220.1089200005,3972906.8326400006,1227758.6339999998,1227758.6339999998,1227758.6339999998,2222537.4815,1059383.889,1059383.889,2996510.55327,1820419.6365,2705907.7065999997,4719606.465,1339469.2634,1703553.1907000002,1350643.098,1350643.098,1350643.098,1350643.098,3185214.22626,3185214.22626 +28800.0,1018804.977,1101269.625,3215707.3049999997,3178505.7388700005,3178505.7388700005,3178505.7388700005,2337415.4895,4049922.21304,3444546.9196800003,3141927.43725,4787698.952,1289040.78,1289040.78,1289040.78,2367038.0405,1018804.977,1018804.977,2139320.8476899997,2084240.7917999998,3098056.6831199997,5403587.238,1533589.52088,1950437.67924,1635809.205,1635809.205,1635809.205,1635809.205,3063206.9641799997,3063206.9641799997 +32400.0,1879519.293,2121205.272,6193919.39424,3105915.0910700005,3105915.0910700005,3105915.0910700005,3138075.9340000004,4259503.73552,7052591.25504,3464909.1460200003,5279861.5558400005,1950863.9249999998,1950863.9249999998,1950863.9249999998,1491018.6795,1879519.293,1879519.293,3216157.37547,2230876.9790999996,3316019.608439999,5783755.130999999,1641484.7895599997,2087660.1853799997,2483662.194,2483662.194,2483662.194,2483662.194,5651088.007619999,5651088.007619999 +36000.0,1443630.5459999999,1369029.873,3997567.2291599996,1845295.7941,1845295.7941,1845295.7941,2131221.764,2059339.82872,9168665.69472,1523997.27438,2322281.56096,1594811.9220000003,1594811.9220000003,1594811.9220000003,1133996.136,1443630.5459999999,1443630.5459999999,2852293.91057,2460361.26645,3657129.58618,6378714.3945,1810339.89482,2302412.1481100004,981645.372,981645.372,981645.372,981645.372,4340515.841639999,4340515.841639999 +39600.0,601486.1460000001,974397.915,2845241.9118,1017727.64324,1017727.64324,1017727.64324,961153.7145,1279084.8183199998,6286794.22976,1065971.4414300001,1624337.4345600002,688357.119,688357.119,688357.119,359088.4955,601486.1460000001,601486.1460000001,1544871.6345399998,1658479.1714999997,2465196.2005999996,4299760.8149999995,1220313.0694,1552008.9037,504494.75099999993,504494.75099999993,504494.75099999993,504494.75099999993,1808468.34564,1808468.34564 +43200.0,606958.8929999999,1500388.959,4381135.76028,1093351.1329400002,1093351.1329400002,1093351.1329400002,900605.6605000001,1448486.36408,4229334.223360001,1164991.4115,1775225.008,679464.933,679464.933,679464.933,850511.7984999999,606958.8929999999,606958.8929999999,1606979.1914799996,764615.0114999999,1136538.8565999998,1982335.2149999999,562605.6133999999,715528.6157,636144.483,636144.483,636144.483,636144.483,1824923.0716199998,1824923.0716199998 +46800.0,469563.75899999996,1081338.864,3157509.48288,609814.43292,609814.43292,609814.43292,812257.614,936295.4946399999,1840399.2953600003,788995.2701399999,1202278.50688,442405.431,442405.431,442405.431,709719.2969999999,469563.75899999996,469563.75899999996,1399331.7416,518557.16025,770793.6061,1344407.4525000001,381555.6389,485267.07095,442988.20499999996,442988.20499999996,442988.20499999996,442988.20499999996,1411821.7020599998,1411821.7020599998 +50400.0,383726.88,743226.1259999999,2170220.28792,391622.79112000007,391622.79112000007,391622.79112000007,616893.949,874237.42376,1818130.75328,707764.89525,1078498.888,420587.6549999999,420587.6549999999,420587.6549999999,540989.9844999999,383726.88,383726.88,1358365.3660199998,495129.74895,735970.6391799999,1283669.7195000001,364317.69182,463343.64161000005,418391.754,418391.754,418391.754,418391.754,1153738.8191999998,1153738.8191999998 +54000.0,706668.858,1456348.3229999999,4252537.1031599995,1570656.6507500003,1570656.6507500003,1570656.6507500003,1345042.9615,1958004.6275999998,2680599.7120000003,1340821.61577,2043156.7478400003,731145.6390000001,731145.6390000001,731145.6390000001,1199702.1224999998,706668.858,706668.858,1715706.2737099999,1134078.4768500002,1685716.6495400001,2940203.4585,834457.7434600001,1061273.43883,1117731.375,1117731.375,1117731.375,1117731.375,2124717.69972,2124717.69972 +57600.0,674398.446,1786537.2030000002,5216688.63276,1763782.70508,1763782.70508,1763782.70508,1131861.864,2473244.98152,2990962.61376,1329161.78325,2025389.3840000003,882896.166,882896.166,882896.166,1304637.796,674398.446,674398.446,1653831.9488600001,1115143.14735,1657570.80174,2891111.8635000004,820525.08126,1043553.71073,1314588.8699999999,1314588.8699999999,1314588.8699999999,1314588.8699999999,2027691.3276399998,2027691.3276399998 +61200.0,609493.323,1691544.051,4939308.62892,1524571.1941900002,1524571.1941900002,1524571.1941900002,974583.0325000002,2312949.51416,2992395.6838399996,1088135.20536,1658110.78912,746835.039,746835.039,746835.039,1103707.2129999998,609493.323,609493.323,1321546.6101499998,971851.9481999999,1444579.9328799997,2519616.162,715091.06312,909461.45276,948659.0279999999,948659.0279999999,948659.0279999999,948659.0279999999,1832543.25782,1832543.25782 +64800.0,1967228.7719999999,1629420.558,4757908.02936,3891764.0366,3891764.0366,3891764.0366,2786225.1865,3292331.3432799997,6355242.931840001,3316401.6431699996,5053564.40864,2152564.176,2152564.176,2152564.176,2776502.9494999996,1967228.7719999999,1967228.7719999999,3926976.1596,2661204.0186,3955666.2202399997,6899417.826,1958120.48776,2490361.29148,2309938.872,2309938.872,2309938.872,2309938.872,5914801.17448,5914801.17448 +68400.0,1430764.557,948713.085,2770242.2082,2375335.94375,2375335.94375,2375335.94375,1587136.236,2283179.24984,4409915.338880001,1871814.8962800002,2852289.3657600004,1473635.148,1473635.148,1473635.148,2056680.542,1430764.557,1430764.557,1679127.0221699998,1851969.7359,2752804.39756,4801403.019,1362683.90444,1733077.85162,1722051.3390000002,1722051.3390000002,1722051.3390000002,1722051.3390000002,4301832.10138,4301832.10138 +72000.0,928406.1780000001,767137.86,2240042.5512,1828464.38643,1828464.38643,1828464.38643,1319712.9015,1882264.84416,3564695.1731200004,1336999.6415999997,2037332.7872,978351.378,978351.378,978351.378,1439134.781,928406.1780000001,928406.1780000001,1084378.59335,1245038.6718,1850650.07512,3227878.038,916102.52888,1165110.26324,1118758.332,1118758.332,1118758.332,1118758.332,2791407.90852,2791407.90852 +75600.0,800822.868,768950.637,2245335.8600399997,1534740.43514,1534740.43514,1534740.43514,1134732.5395,1811668.0392,3470697.07584,1306585.50834,1990987.4412800001,893709.7740000001,893709.7740000001,893709.7740000001,1230405.3754999998,800822.868,800822.868,1086946.8014599998,1182888.0441,1758268.15444,3066746.7810000004,870371.94356,1106949.5523800002,1023494.8289999999,1023494.8289999999,1023494.8289999999,1023494.8289999999,2407807.42312,2407807.42312 +79200.0,543314.6849999999,578155.0109999999,1688212.63212,830696.96336,830696.96336,830696.96336,622749.8655,890323.6512,1885872.0486400002,685282.5107100001,1044240.01632,477416.55299999996,477416.55299999996,477416.55299999996,637224.1714999999,543314.6849999999,543314.6849999999,768067.7263999999,523025.4523499999,777435.3637399998,1355991.9134999998,384843.41925999994,489448.50972999993,637888.689,637888.689,637888.689,637888.689,1633566.1528999999,1633566.1528999999 +82800.0,57206.736000000004,48499.568999999996,141618.74148,36596.67484,36596.67484,36596.67484,32202.8945,88931.60759999999,469529.31584,79563.68678999999,121239.90367999999,107691.18000000002,107691.18000000002,107691.18000000002,57425.893000000004,57206.736000000004,57206.736000000004,89545.60549999999,37770.64425,56143.03169999999,97923.89249999999,27791.733299999996,35345.86214999999,72200.775,72200.775,72200.775,72200.775,172001.58624,172001.58624 +86400.0,52640.810999999994,49958.847,145879.83324,22954.315670000004,22954.315670000004,22954.315670000004,11271.011499999999,75635.90152,465857.32672,68773.04658000001,104797.02336,104661.20700000001,104661.20700000001,104661.20700000001,50212.981,52640.810999999994,52640.810999999994,95025.49900999998,30563.7948,45430.628319999996,79239.468,22488.91568,28601.67464,69553.506,69553.506,69553.506,69553.506,158273.37173999997,158273.37173999997 +90000.0,52988.568,59142.36000000001,172695.69120000003,28083.044770000004,28083.044770000004,28083.044770000004,6440.577499999999,93282.96824,475457.28384000005,68370.96357,104184.32544000002,106295.67899999999,106295.67899999999,106295.67899999999,49554.988,52988.568,52988.568,121936.03006,30011.536799999998,44609.74111999999,77807.688,22082.562879999998,28084.870239999997,70797.87,70797.87,70797.87,70797.87,159318.96112,159318.96112 +93600.0,52319.484000000004,61190.46,178676.1432,24891.244950000004,24891.244950000004,24891.244950000004,1610.1435,99103.95319999999,473920.27712,66188.72127,100859.00384,105455.997,105455.997,105455.997,47808.537000000004,52319.484000000004,52319.484000000004,133880.44332,29081.1708,43226.82672,75395.628,21397.99728,27214.23144,72167.37899999999,72167.37899999999,72167.37899999999,72167.37899999999,157307.24856,157307.24856 +97200.0,53735.643000000004,71275.91399999999,208125.66887999998,24753.55278,24753.55278,24753.55278,1610.1435,99295.32415999999,467606.3955200001,69104.96900999999,105302.80991999999,104188.00200000001,104188.00200000001,104188.00200000001,47542.7365,53735.643000000004,53735.643000000004,144574.79048999998,32537.173499999997,48363.897399999994,84355.635,23940.9326,30448.367299999998,73480.923,73480.923,73480.923,73480.923,161565.16662,161565.16662 +100800.0,60996.63,75996.945,221911.07940000002,27549.728250000004,27549.728250000004,27549.728250000004,3220.2905,114384.6052,475855.0675200001,82356.8613,125496.16960000001,106427.172,106427.172,106427.172,51328.3225,60996.63,60996.63,153080.22690999997,42215.2884,62749.63856,109447.04400000001,31062.11344,39505.17112,78826.27799999999,78826.27799999999,78826.27799999999,78826.27799999999,183396.5342,183396.5342 +104400.0,66410.583,76776.78,224188.19759999998,36915.832030000005,36915.832030000005,36915.832030000005,13480.383,162067.2708,477489.10208,109706.94881999999,167172.49344,164415.29099999997,164415.29099999997,164415.29099999997,71254.3335,66410.583,66410.583,154302.99143999998,46168.90245,68626.36858000001,119697.15450000002,33971.19242000001,43204.972910000004,99404.973,99404.973,99404.973,99404.973,199674.48622,199674.48622 +108000.0,204400.854,114412.641,334084.91172,164943.33119,164943.33119,164943.33119,98682.605,654925.632,607381.58144,295873.38207000005,450854.67744000006,233412.75,233412.75,233412.75,202839.2835,204400.854,204400.854,367958.99231,91569.38625000001,136110.5445,237402.11250000002,67376.9805,85690.85775000001,245684.91299999997,245684.91299999997,245684.91299999997,245684.91299999997,614565.23436,614565.23436 +111600.0,913491.6989999998,390901.81500000006,1141433.2998000002,1731107.9066600003,1731107.9066600003,1731107.9066600003,1179308.0565,2837844.1939999997,3372871.3184,2174953.08135,3314214.2192,913241.4209999999,913241.4209999999,913241.4209999999,1632808.0684999998,913491.6989999998,913491.6989999998,2295156.1560199996,1251456.2532,1860189.29488,3244516.212,920824.60112,1171115.85176,1262455.194,1262455.194,1262455.194,1262455.194,2746565.0416599996,2746565.0416599996 +115200.0,796037.823,1016888.433,2969314.22436,2004397.21416,2004397.21416,2004397.21416,1965484.1955,3578287.2528000004,2694054.9753600005,2512560.82224,3828664.1100800005,1264433.0729999999,1264433.0729999999,1264433.0729999999,1480100.7095,796037.823,796037.823,1969517.8765599998,1817970.7918499997,2702267.6955399998,4713257.6085,1337667.39746,1701261.55583,1354955.4899999998,1354955.4899999998,1354955.4899999998,1354955.4899999998,2393420.38782,2393420.38782 +118800.0,1815283.491,1938037.1489999997,5659068.475079999,1844969.4208000002,1844969.4208000002,1844969.4208000002,1999800.446,3901824.3098400002,6731760.400640001,3117630.64389,4750675.26688,1891385.256,1891385.256,1891385.256,1374297.666,1815283.491,1815283.491,2765633.6412899997,1732502.3094,2575225.65496,4491672.654,1274779.47704,1621279.93892,2225530.6289999997,2225530.6289999997,2225530.6289999997,2225530.6289999997,5457952.362939999,5457952.362939999 +122400.0,1215491.28,783444.918,2287659.1605599998,890380.6480800001,890380.6480800001,890380.6480800001,814472.0815000001,1812213.466,7605242.780800001,1263517.2774,1925359.6608000002,1432470.282,1432470.282,1432470.282,1130115.7665,1215491.28,1215491.28,2483527.6752,2095654.7083499997,3115022.5541399997,5433178.8735,1541987.9088599999,1961118.85053,878110.3049999999,878110.3049999999,878110.3049999999,878110.3049999999,3654577.1152,3654577.1152 +126000.0,641598.0719999999,545164.8300000001,1591881.3036,491970.73310000007,491970.73310000007,491970.73310000007,552029.1420000001,1199935.33336,5198028.39744,875685.89724,1334378.51008,551679.591,551679.591,551679.591,404399.331,641598.0719999999,641598.0719999999,1502028.2767100001,1150800.17355,1710572.10982,2983556.0055,846761.6091799999,1076921.64389,524091.75,524091.75,524091.75,524091.75,1929071.5364799998,1929071.5364799998 +129600.0,626713.281,1162909.887,3395696.87004,709185.85166,709185.85166,709185.85166,917312.676,1545659.72424,3271070.5964800003,1116091.96986,1700711.57312,648067.3559999999,648067.3559999999,648067.3559999999,939408.9075,626713.281,626713.281,1089863.56622,796668.31935,1184183.52654,2065436.3835000002,586190.5164600001,745524.18033,676240.308,676240.308,676240.308,676240.308,1884317.9315399998,1884317.9315399998 +133200.0,494850.57,676366.071,1974988.9273199998,573909.49121,573909.49121,573909.49121,867557.1415,1152966.73624,2135958.59712,736904.7585900001,1122902.48928,526816.2660000001,526816.2660000001,526816.2660000001,807454.4485,494850.57,494850.57,867613.08621,622128.40965,924743.95706,1612925.5065000001,457763.61994,582189.3018700001,493310.71199999994,493310.71199999994,493310.71199999994,493310.71199999994,1487850.7138,1487850.7138 +136800.0,436053.645,476845.761,1392389.62212,384269.51805,384269.51805,384269.51805,624539.5555,1080074.8404799998,2054128.5286400001,677008.79316,1031632.44672,505597.65,505597.65,505597.65,434918.5505,436053.645,436053.645,769088.7210499998,574846.06095,854462.5399799999,1490341.6395,422973.15102,537942.36321,464036.17499999993,464036.17499999993,464036.17499999993,464036.17499999993,1311067.9593,1311067.9593 +140400.0,781751.0759999999,1372226.31,4006900.8252,1580123.1695700001,1580123.1695700001,1580123.1695700001,1399324.381,2173078.03936,2960793.0809600004,1437874.3896300003,2191046.6889600004,799525.254,799525.254,799525.254,1312142.6534999998,781751.0759999999,781751.0759999999,1552712.7378099998,1245102.9290999998,1850745.5884399998,3228044.631,916149.80956,1165170.39538,1217478.525,1217478.525,1217478.525,1217478.525,2350464.90184,2350464.90184 +144000.0,753400.4100000001,1652036.9249999998,4823947.8209999995,1797572.887,1797572.887,1797572.887,1202950.3535,2587032.93728,3250864.8262400003,1453750.7058899999,2215239.17088,941998.71,941998.71,941998.71,1461746.9334999998,753400.4100000001,753400.4100000001,1636359.8980299998,1228139.65395,1825531.04118,3184065.7695,903668.18982,1149296.12061,1087014.816,1087014.816,1087014.816,1087014.816,2265223.8994,2265223.8994 +147600.0,680557.9890000001,1174905.213,3430723.2219599998,1386018.4552499999,1386018.4552499999,1386018.4552499999,1051645.826,2417907.14464,3202996.2208000007,1269757.90305,1934869.1856000002,832675.3500000001,832675.3500000001,832675.3500000001,1197151.7495000002,680557.9890000001,680557.9890000001,1311628.49116,1066995.00585,1586002.45314,2766283.3485000003,785097.55986,998496.5610300001,1016097.693,1016097.693,1016097.693,1016097.693,2046211.02026,2046211.02026 +151200.0,2070930.669,1696267.623,4953101.459159999,3600145.4881700003,3600145.4881700003,3600145.4881700003,2901577.7805,3370188.3486400004,6671649.815040001,3507985.35129,5345501.48768,2247890.913,2247890.913,2247890.913,2915631.551,2070930.669,2070930.669,4013883.9178099995,2781076.47345,4133847.0049799997,7210198.2645,2046322.93602,2602538.23071,2380503.897,2380503.897,2380503.897,2380503.897,6226598.21146,6226598.21146 +154800.0,1488189.1979999999,912881.082,2665612.75944,2244780.5350300004,2244780.5350300004,2244780.5350300004,1646582.0525,2436676.87544,4613518.654080001,2098650.3111,3197943.3312,1564360.386,1564360.386,1564360.386,2207262.0710000005,1488189.1979999999,1488189.1979999999,1314832.83139,1913990.7595499998,2844993.6722199996,4962198.2655,1408319.12678,1791117.27869,1791501.5999999999,1791501.5999999999,1791501.5999999999,1791501.5999999999,4474488.85532,4474488.85532 +158400.0,1033218.294,825742.632,2411168.48544,1630207.80406,1630207.80406,1630207.80406,1297377.4415,1901636.76656,3740142.8000000003,1507423.8732000003,2297026.8544000005,1089618.447,1089618.447,1089618.447,1520551.9070000001,1033218.294,1033218.294,1192440.2746099997,1303390.26585,1937385.0371400001,3379159.9485000004,959037.7758600002,1219715.8290300001,1175993.19,1175993.19,1175993.19,1175993.19,3106543.00396,3106543.00396 +162000.0,911277.966,830038.7519999999,2423713.1558399997,1356053.6663300002,1356053.6663300002,1356053.6663300002,1227992.787,1829279.5228,3701881.8329600007,1490027.48832,2270518.07744,1002053.8800000001,1002053.8800000001,1002053.8800000001,1362785.7635000001,911277.966,911277.966,1198146.3006499999,1300162.8087,1932587.6810799998,3370792.4669999997,956663.00492,1216695.56666,1131023.895,1131023.895,1131023.895,1131023.895,2739909.08444,2739909.08444 +165600.0,631819.395,622124.1359999999,1816602.47712,865144.6293600001,865144.6293600001,865144.6293600001,687500.6005,927866.13208,2137040.896,812279.90802,1237759.85984,539004.0179999999,539004.0179999999,539004.0179999999,710658.8439999999,631819.395,631819.395,838415.3953499999,595857.56625,885694.4565,1544815.9125,438433.4685,557604.98175,719301.867,719301.867,719301.867,719301.867,1899670.3143,1899670.3143 +169200.0,80087.724,76755.678,224126.57976,81524.63968000001,81524.63968000001,81524.63968000001,46266.899000000005,122185.55456,614396.06976,128015.13144000001,195070.67648000002,140519.697,140519.697,140519.697,83820.436,80087.724,80087.724,154223.43884999998,61599.93704999999,91563.36321999998,159703.5405,45325.38578,57645.37319,105938.20199999999,105938.20199999999,105938.20199999999,105938.20199999999,240797.09016,240797.09016 +172800.0,75788.244,79883.505,233259.83459999997,58199.16443,58199.16443,58199.16443,25535.531,136449.11216,609082.6912,117136.18917000001,178493.24064000003,137221.8,137221.8,137221.8,76657.4655,75788.244,75788.244,167467.09564,54467.959950000004,80962.25158,141213.22950000002,40077.65942,50971.251410000004,101410.46100000001,101410.46100000001,101410.46100000001,101410.46100000001,227869.98696,227869.98696 +176400.0,77876.526,82783.08600000001,241726.61112000002,54848.31715,54848.31715,54848.31715,21464.460499999997,141853.892,626085.75936,119313.08949,181810.42208000002,141010.77,141010.77,141010.77,78076.7505,77876.526,77876.526,178056.19039,54702.95715,81311.55606,141822.4815,40250.57094,51191.16237,105608.14500000002,105608.14500000002,105608.14500000002,105608.14500000002,234148.75483999998,234148.75483999998 +180000.0,82972.389,98925.59699999998,288862.7432399999,50675.346150000005,50675.346150000005,50675.346150000005,17119.788,156156.70608,634631.93408,143796.87147,219119.04224,142933.554,142933.554,142933.554,78618.80249999999,82972.389,82972.389,198667.77150999996,58731.78375,87300.0835,152267.58750000002,43214.991500000004,54961.34825,110629.263,110629.263,110629.263,110629.263,249470.31626,249470.31626 +183600.0,92258.082,104434.074,304947.49608,51713.78630000001,51713.78630000001,51713.78630000001,17512.747,192457.12991999998,642159.5449600001,172022.51724000002,262129.55008000002,145050.44400000002,145050.44400000002,145050.44400000002,80842.741,92258.082,92258.082,208635.56817999997,66417.408,98724.14719999999,172193.28,48870.0928,62153.574400000005,123693.90599999999,123693.90599999999,123693.90599999999,123693.90599999999,277389.29988,277389.29988 +187200.0,104013.342,107049.09900000002,312583.36908000003,54815.272820000006,54815.272820000006,54815.272820000006,21772.9225,259598.79816,647003.01632,200305.32123,305227.15616,236454.31200000003,236454.31200000003,236454.31200000003,121964.95499999999,104013.342,104013.342,209671.03612,68117.2254,101250.78936,176600.21399999998,50120.82264,63744.267719999996,179145.978,179145.978,179145.978,179145.978,312733.44828,312733.44828 +190800.0,134043.483,117732.198,343778.01816,65387.28911,65387.28911,65387.28911,34474.1355,339229.61592,655938.6515200001,236986.08969,361121.66048,275952.615,275952.615,275952.615,143839.20949999997,134043.483,134043.483,220455.69103999998,73342.36529999999,109017.54051999998,190146.873,53965.49348,68633.96654,214725.375,214725.375,214725.375,214725.375,403024.07222,403024.07222 +194400.0,302599.18799999997,180081.60600000003,525838.28952,200159.65739,200159.65739,200159.65739,125847.96350000001,828079.37192,768484.45056,451826.51829000004,688497.5516800001,332842.95599999995,332842.95599999995,332842.95599999995,257163.172,302599.18799999997,302599.18799999997,441204.7968899999,126355.46805,187817.26361999998,327588.2505,92972.66538,118243.75899,368720.598,368720.598,368720.598,368720.598,909814.8919199998,909814.8919199998 +198000.0,1056093.621,517733.32499999995,1511781.309,1762315.93406,1762315.93406,1762315.93406,1328253.122,3078318.94856,3848083.1168,2536636.1214599996,3865350.28032,1089682.926,1089682.926,1089682.926,1810832.0299999998,1056093.621,1056093.621,2475957.9232699997,1457157.5554499999,2165947.77378,3777815.8845,1072180.12722,1363611.63831,1435725.6749999998,1435725.6749999998,1435725.6749999998,1435725.6749999998,3175321.48714,3175321.48714 +201600.0,954119.772,1158144.315,3381781.3998,2198297.7203,2198297.7203,2198297.7203,2033224.529,3970277.6654399997,3084111.0918400004,2811302.04579,4283888.83168,1385500.989,1385500.989,1385500.989,1696840.25,954119.772,954119.772,2129382.41607,1995450.19965,2966076.59306,5173389.4065000005,1468257.1839400001,1867347.22387,1549500.231,1549500.231,1549500.231,1549500.231,2868720.11448,2868720.11448 +205200.0,1963787.31,2108508.1799999997,6156843.8856,1914589.1843100002,1914589.1843100002,1914589.1843100002,2253883.2225,4233304.823919999,7291042.144000001,3475573.5735000004,5296112.112000001,1975258.5240000002,1975258.5240000002,1975258.5240000002,1576454.803,1963787.31,1963787.31,2878964.3697099998,1933866.1305,2874536.8162,5013727.005,1422943.4738,1809716.6999000001,2324397.882,2324397.882,2324397.882,2324397.882,5904453.8454,5904453.8454 +208800.0,1447897.8,882752.946,2577638.60232,945429.27435,945429.27435,945429.27435,971182.3065000002,2162274.5766399996,7956876.993280001,1504950.92769,2293258.5564800003,1571374.548,1571374.548,1571374.548,1392388.3994999998,1447897.8,1447897.8,2753501.9314399995,2258092.6389,3356473.50276,5854314.249,1661510.13924,2113128.66702,1044060.936,1044060.936,1044060.936,1044060.936,4353346.052,4353346.052 +212400.0,598774.527,483452.39100000006,1411680.98172,384287.89003,384287.89003,384287.89003,454623.68700000003,1160130.1503199998,4798910.709760001,724061.7885900001,1103332.24928,493942.092,493942.092,493942.092,348567.53750000003,598774.527,598774.527,968776.9196299998,1105213.52745,1642811.2185799999,2865368.4044999997,813218.84242,1034261.54791,455500.10399999993,455500.10399999993,455500.10399999993,455500.10399999993,1800315.4111799998,1800315.4111799998 +216000.0,688537.413,1168960.3260000001,3413364.15192,699093.37091,699093.37091,699093.37091,939080.7300000001,1637849.0240000002,3155665.8816000004,1178505.6549,1795818.1408000002,679261.008,679261.008,679261.008,986539.6799999999,688537.413,688537.413,1072396.3302,824967.7226999999,1226248.3186799998,2138805.207,607013.28732,772006.83186,718906.05,718906.05,718906.05,718906.05,2070202.4884199998,2070202.4884199998 +219600.0,571312.926,731800.38,2136857.1096,582468.6482999999,582468.6482999999,582468.6482999999,923862.9505,1305142.9508800001,2279640.2688,860581.70961,1311362.60512,587004.1259999999,587004.1259999999,587004.1259999999,867037.8885,571312.926,571312.926,840522.69002,688357.8976499999,1023188.77626,1784631.5865,506495.44074,644167.02027,565581.09,565581.09,565581.09,565581.09,1717747.53084,1717747.53084 +223200.0,459137.53199999995,446718.23699999996,1304417.25204,330906.29506000003,330906.29506000003,330906.29506000003,598836.0945,1056373.2939199999,1925566.09664,683959.4529599999,1042223.92832,496120.1760000001,496120.1760000001,496120.1760000001,407261.274,459137.53199999995,459137.53199999995,696060.17936,549840.9195,817294.4038,1425513.495,404574.3062,514542.4901,465464.39100000006,465464.39100000006,465464.39100000006,465464.39100000006,1380473.5128799998,1380473.5128799998 +226800.0,848753.793,1378764.354,4025991.91368,1607415.4174100002,1607415.4174100002,1607415.4174100002,1460967.1545000002,2228731.2012000005,3044045.9923199997,1555618.90281,2370466.8995200004,843390.5280000002,843390.5280000002,843390.5280000002,1378135.7799999998,848753.793,848753.793,1572979.3409199996,1300921.7544,1933715.79296,3372760.1040000003,957221.4390400001,1217405.7899200001,1265362.224,1265362.224,1265362.224,1265362.224,2551919.73762,2551919.73762 +230400.0,871408.1939999999,1570191.483,4584959.13036,1825518.40647,1825518.40647,1825518.40647,1270462.4135,2772640.3896,3471252.3366400003,1692415.2157500002,2578918.424,1063341.021,1063341.021,1063341.021,1585097.1919999998,871408.1939999999,871408.1939999999,1689231.2160099999,1363058.8550999998,2026077.6068399996,3533856.2909999997,1002942.0711599999,1275553.84218,1152575.733,1152575.733,1152575.733,1152575.733,2620033.96996,2620033.96996 +234000.0,841245.108,1302758.556,3804054.9835200002,1408377.58633,1408377.58633,1408377.58633,1151596.005,2554358.33,3532191.35808,1511601.9342899998,2303393.42368,972719.8439999999,972719.8439999999,972719.8439999999,1345503.495,841245.108,841245.108,1426141.10392,1214808.14745,1805714.8265799999,3149502.6045000004,893858.8344200001,1136820.4639100002,1147989.102,1147989.102,1147989.102,1147989.102,2529343.62472,2529343.62472 +237600.0,2162977.0829999996,1762678.758,5147021.97336,3634164.6401500003,3634164.6401500003,3634164.6401500003,2989813.1234999998,3548437.7046399997,6944689.736320001,3642458.89308,5550413.55136,2324028.309,2324028.309,2324028.309,3017765.4115,2162977.0829999996,2162977.0829999996,4103222.78951,2876819.652,4276161.556799999,7458421.319999999,2116771.0031999997,2692134.9336,2481964.164,2481964.164,2481964.164,2481964.164,6503351.096219999,6503351.096219999 +241200.0,1627908.507,990609.1410000001,2892578.69172,2390993.6204,2390993.6204,2390993.6204,1807807.3510000003,2678509.42416,5054589.219200001,2386835.66142,3637082.9126399998,1693338.354,1693338.354,1693338.354,2369358.7995,1627908.507,1627908.507,1553479.09587,2084312.4929999998,3098163.2611999996,5403773.13,1533642.2788,1950504.7774,1927932.645,1927932.645,1927932.645,1927932.645,4894578.24438,4894578.24438 +244800.0,1168335.867,896977.5210000002,2619174.36132,1703146.5752400002,1703146.5752400002,1703146.5752400002,1434730.8325,2040454.51264,4082528.327040001,1687976.53752,2572154.72384,1201341.774,1201341.774,1201341.774,1688185.429,1168335.867,1168335.867,1307961.73196,1438911.8477999999,2138826.9935199996,3730512.198,1058754.89048,1346537.26004,1310920.482,1310920.482,1310920.482,1310920.482,3512796.50678,3512796.50678 +248400.0,1027136.088,903540.6599999999,2638338.7271999996,1418312.04933,1418312.04933,1418312.04933,1270523.758,1997245.0768000002,3996638.94144,1665253.1553,2537528.6176,1106444.625,1106444.625,1106444.625,1498065.7475,1027136.088,1027136.088,1314146.0211099999,1421211.7115999998,2112517.1614399995,3684622.9559999993,1045731.0865599999,1329973.4288799998,1243431.222,1243431.222,1243431.222,1243431.222,3088255.83792,3088255.83792 +252000.0,714252.342,684728.652,1999407.66384,907498.8686500001,907498.8686500001,907498.8686500001,692989.5735,1028076.97552,2376591.80736,925403.3331899999,1410138.41248,596199.027,596199.027,596199.027,780108.343,714252.342,714252.342,955138.1502,662008.0630499999,984021.8616199999,1716317.2004999998,487107.16737999994,619508.77999,793311.423,793311.423,793311.423,793311.423,2147518.70828,2147518.70828 +255600.0,102253.296,99961.73399999998,291888.26327999996,102135.40458,102135.40458,102135.40458,54155.1955,182221.60136,752306.3475200001,164524.6281,250704.19520000002,172076.835,172076.835,172076.835,105626.549,102253.296,102253.296,209099.24255999998,78469.49925000001,116638.6137,203439.4425,57738.05130000001,73431.95115000001,133652.619,133652.619,133652.619,133652.619,307441.57664,307441.57664 +259200.0,97266.69,97157.76,283700.6592,77589.97125,77589.97125,77589.97125,33009.9315,171480.31712,734849.9750399999,173844.48501000003,264905.8819200001,167162.84399999998,167162.84399999998,167162.84399999998,96947.84400000001,97266.69,97266.69,209683.55654999998,70153.99874999998,104278.28949999998,181880.7375,51619.485499999995,65650.28525,131110.38299999997,131110.38299999997,131110.38299999997,131110.38299999997,292448.5146,292448.5146 +262800.0,100512.864,107449.422,313752.31224,72712.09253000001,72712.09253000001,72712.09253000001,28421.449,192246.21831999999,736634.6105600001,199674.63915,304266.1168,167123.50199999998,167123.50199999998,167123.50199999998,97106.8735,100512.864,100512.864,219452.76755999998,69469.61759999998,103261.01183999998,180106.41599999997,51115.91615999999,65009.83968,135528.09,135528.09,135528.09,135528.09,302208.67776,302208.67776 +266400.0,117715.488,126643.00200000001,369797.56584,71329.43213,71329.43213,71329.43213,27154.995000000003,254826.50199999998,772887.8803200001,227690.48421000002,346956.92832,175349.331,175349.331,175349.331,100690.26800000001,117715.488,117715.488,251750.41203,85867.7031,127635.45004,222619.97100000002,63181.667960000006,80355.20858,153058.632,153058.632,153058.632,153058.632,353931.23391999997,353931.23391999997 +270000.0,131495.43300000002,126558.696,369551.39232,82294.78543000002,82294.78543000002,82294.78543000002,33425.329000000005,300765.91007999994,748642.3008000001,258082.08069000003,393267.93248,245528.61,245528.61,245528.61,128376.02049999998,131495.43300000002,131495.43300000002,243770.319,84351.8853,125382.30851999999,218690.073,62066.32548,78936.70254,212474.112,212474.112,212474.112,212474.112,395362.93522,395362.93522 +273600.0,164702.47499999998,139587.18,407594.5656,94196.71492,94196.71492,94196.71492,47838.686,378728.1172,753802.0972800001,289556.30718,441228.65856,306751.824,306751.824,306751.824,164241.37099999998,164702.47499999998,164702.47499999998,259696.64265999995,95174.21025,141468.8261,246747.9525,70029.4189,89064.26095,252176.71200000003,252176.71200000003,252176.71200000003,252176.71200000003,495205.44149999996,495205.44149999996 +277200.0,206191.509,183727.34399999998,536483.84448,109051.04276,109051.04276,109051.04276,60361.472499999996,448047.73167999997,777756.5171200001,317245.31097000005,483421.42624000006,339716.127,339716.127,339716.127,184954.3115,206191.509,206191.509,278639.5963,110017.44404999999,163532.10202,285230.4105,80951.10698,102954.59578999999,307168.50299999997,307168.50299999997,307168.50299999997,307168.50299999997,619949.13706,619949.13706 +280800.0,392325.204,232280.223,678258.25116,242073.24998999998,242073.24998999998,242073.24998999998,140228.8125,924938.3123199999,942257.0688,555322.971,846206.432,387030.08400000003,387030.08400000003,387030.08400000003,311983.014,392325.204,392325.204,494819.66872,174295.9863,259076.99692,451878.483,128247.41708,163106.61434,465196.704,465196.704,465196.704,465196.704,1179591.1133599998,1179591.1133599998 +284400.0,1143925.0829999999,597577.821,1744927.2373199998,1773025.6995000003,1773025.6995000003,1773025.6995000003,1408151.9445000002,3242634.2280800003,4149869.7824,2748077.49552,4187546.65984,1173202.902,1173202.902,1173202.902,1908850.2650000001,1143925.0829999999,1143925.0829999999,2575927.3423,1570747.7758499999,2334790.52114,4072309.0485,1155760.09186,1469909.64703,1515424.971,1515424.971,1515424.971,1515424.971,3439401.4162199995,3439401.4162199995 +288000.0,1036378.827,1196318.097,3493248.8432400003,2250403.1057200003,2250403.1057200003,2250403.1057200003,2051425.7015,4132244.5758399996,3260241.58016,3038734.9944,4630453.3248000005,1403607.33,1403607.33,1403607.33,1783936.3990000002,1036378.827,1036378.827,2174765.2566899997,2075987.31705,3085788.55522,5382189.3405,1527516.59378,1942714.05719,1589552.562,1589552.562,1589552.562,1589552.562,3116045.67318,3116045.67318 +291600.0,2027449.38,2160188.307,6307749.856439999,1916385.2671700001,1916385.2671700001,1916385.2671700001,2358323.2015,4311246.5268,7395208.28672,3623325.77544,5521258.32448,1977727.338,1977727.338,1977727.338,1639200.8150000002,2027449.38,2027449.38,2921993.76872,1997071.30125,2968486.2305,5177592.2625,1469449.9945,1868864.25475,2353744.272,2353744.272,2353744.272,2353744.272,6095864.469199999,6095864.469199999 +295200.0,1535570.025,921551.8290000001,2690931.3406800004,953135.44491,953135.44491,953135.44491,1047239.9174999999,2322346.55888,7962823.870719999,1589284.9494899998,2421767.54208,1601144.838,1601144.838,1601144.838,1489194.483,1535570.025,1535570.025,2756656.22362,2319648.41475,3447971.2239,6013903.2975,1706803.0311000003,2170732.71405,1102695.939,1102695.939,1102695.939,1102695.939,4616947.2085,4616947.2085 +298800.0,768511.629,613551.399,1791570.0850799999,534760.29552,534760.29552,534760.29552,633891.09,1550763.86672,5338874.73024,1004885.62965,1531254.2928000002,684352.782,684352.782,684352.782,589954.5085,768511.629,768511.629,1079815.6830499999,1369352.0083499998,2035431.8741399995,3550171.8734999998,1007572.5888599999,1281442.9905299998,659623.7550000001,659623.7550000001,659623.7550000001,659623.7550000001,2310658.29786,2310658.29786 +302400.0,796232.865,1215374.553,3548893.6947600003,763469.21618,763469.21618,763469.21618,1011189.8545000001,1813516.2240000002,3323022.5747200004,1354580.3392800002,2064122.4217600003,775743.831,775743.831,775743.831,1080332.2215,796232.865,796232.865,1117700.0126499997,931787.62695,1385027.5343799999,2415745.6995,685611.63662,871969.16201,828220.5120000001,828220.5120000001,828220.5120000001,828220.5120000001,2394006.8141,2394006.8141 +306000.0,654374.601,779179.26,2275203.4392,607674.44727,607674.44727,607674.44727,975831.7485,1389207.3973599998,2429269.3184,981139.02642,1495068.99264,645585.954,645585.954,645585.954,927040.058,654374.601,654374.601,881846.8285899999,759536.7165,1128990.3786,1969169.265,558868.9913999999,710776.3347,639703.6020000001,639703.6020000001,639703.6020000001,639703.6020000001,1967486.3003399998,1967486.3003399998 +309600.0,572874.258,507438.498,1481720.41416,399797.5652,399797.5652,399797.5652,704928.525,1236290.9335200002,2268788.2195200003,867803.0184599999,1322366.50432,598917.9450000001,598917.9450000001,598917.9450000001,509243.9065,572874.258,572874.258,822532.0490399998,682487.8073999999,1014463.35816,1769412.834,502176.21384,638673.77532,586538.172,586538.172,586538.172,586538.172,1722441.93572,1722441.93572 +313200.0,951400.008,1415373.291,4132890.00972,1641617.97173,1641617.97173,1641617.97173,1527353.247,2342485.7288,3153825.29024,1693756.0575600003,2580961.6115200003,930116.6969999999,930116.6969999999,930116.6969999999,1429554.8225,951400.008,951400.008,1634529.2889899998,1370871.7344,2037690.8249599999,3554111.904,1008690.80704,1282865.15392,1301407.077,1301407.077,1301407.077,1301407.077,2860542.69072,2860542.69072 +316800.0,927263.4029999999,1506839.0010000002,4399969.88292,1871626.77306,1871626.77306,1871626.77306,1270329.956,2790556.36496,3421257.2896000003,1784306.90277,2718943.85184,1077834.381,1077834.381,1077834.381,1633040.0135000001,927263.4029999999,927263.4029999999,1756003.4339899998,1389133.0062,2064834.74008,3601455.942,1022127.49592,1299954.0971600001,1179630.678,1179630.678,1179630.678,1179630.678,2787971.9650199995,2787971.9650199995 +320400.0,830014.4940000001,1301203.671,3799514.71932,1377491.35348,1377491.35348,1377491.35348,1118755.7045,2373945.0204,3318325.21088,1478409.4353,2252814.3776,916581.6270000001,916581.6270000001,916581.6270000001,1295481.957,830014.4940000001,830014.4940000001,1419375.9543599999,1165263.2055,1732070.2462,3021052.755,857403.5438,1090456.1849,1113443.598,1113443.598,1113443.598,1113443.598,2495576.91196,2495576.91196 +324000.0,2163856.3499999996,1757983.8930000002,5133312.967560001,3608993.7862000004,3608993.7862000004,3608993.7862000004,2962501.0765,3551050.5206399993,6814142.21568,3638436.7443899997,5544284.56288,2308663.245,2308663.245,2308663.245,3008300.2284999997,2163856.3499999996,2163856.3499999996,4096907.35571,2849955.20415,4236229.71086,7388772.7515,2097004.07614,2666995.1169700003,2473948.1429999997,2473948.1429999997,2473948.1429999997,2473948.1429999997,6505994.759,6505994.759 +327600.0,1612429.446,927741.249,2709004.44708,2360849.76369,2360849.76369,2360849.76369,1734094.6245000002,2596203.40752,4818737.7472,2362351.81182,3599774.1894400003,1639646.199,1639646.199,1639646.199,2306879.1935,1612429.446,1612429.446,1532028.49202,2025480.0464999997,3010713.5505999997,5251244.5649999995,1490353.2193999998,1895449.2286999999,1876940.2349999999,1876940.2349999999,1876940.2349999999,1876940.2349999999,4848037.86764,4848037.86764 +331200.0,1143857.469,854051.592,2493830.64864,1639834.1599200002,1639834.1599200002,1639834.1599200002,1362503.5165,1941202.7899200001,3867462.64896,1645227.68067,2507013.60864,1137586.917,1137586.917,1137586.917,1615740.686,1143857.469,1143857.469,1274813.11672,1383029.87895,2055762.9311799998,3585633.0195,1017636.79982,1294242.77561,1254861.666,1254861.666,1254861.666,1254861.666,3439198.12346,3439198.12346 +334800.0,995835.132,855583.959,2498305.16028,1320586.9944300002,1320586.9944300002,1320586.9944300002,1204232.7535,1893129.94224,3715176.2572800005,1606704.2817,2448311.2864,1044078.315,1044078.315,1044078.315,1414451.08,995835.132,995835.132,1272525.8847599996,1345355.6247,1999763.17548,3487959.0270000002,989915.9905200001,1258987.11546,1184971.9770000002,1184971.9770000002,1184971.9770000002,1184971.9770000002,2994144.29688,2994144.29688 +338400.0,700509.09,644439.621,1881763.6933199998,861501.91017,861501.91017,861501.91017,663023.739,974765.3675200001,2237202.3392000003,900005.99535,1371437.7072,561325.878,561325.878,561325.878,744636.7705000001,700509.09,700509.09,921928.0583499998,630935.49915,937834.9888599999,1635758.7015,464243.89814,590430.99797,760331.2050000001,760331.2050000001,760331.2050000001,760331.2050000001,2106197.3306,2106197.3306 +342000.0,103104.11399999997,97252.11000000002,283976.16120000003,103460.87333999999,103460.87333999999,103460.87333999999,55321.8155,172004.18847999998,709220.416,169090.80383999998,257662.17727999997,164163.624,164163.624,164163.624,103030.09850000001,103104.11399999997,103104.11399999997,198066.26657999997,76971.07214999999,114411.32205999998,199554.6315,56635.50493999999,72029.71936999999,132967.188,132967.188,132967.188,132967.188,309999.7027599999,309999.7027599999 +345600.0,98579.67,95076.78899999999,277624.22388,79405.32149,79405.32149,79405.32149,34322.9775,168860.93696,697834.08256,176040.85023,268252.72416000004,160504.062,160504.062,160504.062,95052.118,98579.67,98579.67,203430.92211,69173.0685,102820.2154,179337.585,50897.7146,64732.3283,130614.615,130614.615,130614.615,130614.615,296396.2078,296396.2078 +349200.0,101666.376,104018.28600000001,303733.39512,74759.35137,74759.35137,74759.35137,29795.7835,183516.69144,702999.0144,200449.50156,305446.85952,161184.387,161184.387,161184.387,96075.0,101666.376,101666.376,210552.99290999997,68188.1085,101356.15139999999,176783.985,50172.9786,63810.6003,135382.521,135382.521,135382.521,135382.521,305676.90384,305676.90384 +352800.0,112828.77899999998,116713.53600000001,340803.52512,74678.21999,74678.21999,74678.21999,28247.87,196260.93799999997,694158.6880000001,212954.66619000002,324502.34848000004,158130.084,158130.084,158130.084,93531.14050000001,112828.77899999998,112828.77899999998,229842.43008999998,79070.18715,117531.48805999999,204996.7815,58180.03894,73994.07637000001,138319.52399999998,138319.52399999998,138319.52399999998,138319.52399999998,339238.5288599999,339238.5288599999 +356400.0,121538.58599999998,119705.046,349538.73432,84744.98647999999,84744.98647999999,84744.98647999999,33760.902,217696.86239999998,686875.73568,240851.40828,367011.66976,164165.481,164165.481,164165.481,92265.446,121538.58599999998,121538.58599999998,228032.36936999997,80096.52195000001,119057.05238000001,207657.64950000003,58935.21862000001,74954.52301,178383.12,178383.12,178383.12,178383.12,365426.0152399999,365426.0152399999 +360000.0,142972.77599999998,127889.61000000002,373437.66120000003,88186.39126000002,88186.39126000002,88186.39126000002,44929.2865,282747.58288,673994.8057600001,260096.02164,396336.79488,232584.33299999998,232584.33299999998,232584.33299999998,143813.733,142972.77599999998,142972.77599999998,228640.63234999997,85562.46269999999,127181.73468,221828.607,62957.071319999995,80069.56386,219718.12199999997,219718.12199999997,219718.12199999997,219718.12199999997,429871.4798399999,429871.4798399999 +363600.0,176139.432,139624.74599999998,407704.25831999996,103731.64230000002,103731.64230000002,103731.64230000002,59588.781,355798.16312,678767.23072,284005.62771000003,432770.48032000003,278674.701,278674.701,278674.701,167126.58550000002,176139.432,176139.432,247190.23862,101873.60685000001,151426.94154,264116.75850000005,74958.85146,95333.57283,247140.135,247140.135,247140.135,247140.135,529592.55888,529592.55888 +367200.0,234726.47100000002,161398.22999999998,471282.8316,197880.04632000002,197880.04632000002,197880.04632000002,138579.28350000002,449221.30304,718967.98208,356385.74244,543063.98848,312945.29099999997,312945.29099999997,312945.29099999997,204235.045,234726.47100000002,234726.47100000002,274457.02232,138091.35960000003,205261.72464000003,358014.63600000006,101607.96336000001,129226.23528000002,319083.315,319083.315,319083.315,319083.315,705744.2561400001,705744.2561400001 +370800.0,990900.9899999999,1082237.499,3160133.49708,1034323.5037300001,1034323.5037300001,1034323.5037300001,1049233.4510000001,1526587.16608,1443477.53984,1255346.6079,1912909.1168000002,612152.079,612152.079,612152.079,1578952.963,990900.9899999999,990900.9899999999,2054584.0877899998,556625.5402500001,827379.1981000002,1443103.2525000004,409566.4469000001,520891.55495000014,1525209.9629999998,1525209.9629999998,1525209.9629999998,1525209.9629999998,2979308.9765999997,2979308.9765999997 +374400.0,1978343.928,1743310.293,5090466.055559999,2825237.0078900005,2825237.0078900005,2825237.0078900005,1860829.488,3031774.00256,3346869.5110400002,2930506.3540200004,4465533.49184,1210459.668,1210459.668,1210459.668,1974507.9340000004,1978343.928,1978343.928,3253545.5006599994,1553712.39855,2309468.7998200003,4028143.2555000004,1143225.4191800002,1453967.8988900003,2228156.856,2228156.856,2228156.856,2228156.856,5948220.74352,5948220.74352 +378000.0,2323128.615,2027998.122,5921754.51624,3044057.09839,3044057.09839,3044057.09839,2316542.1335,3956907.6161599997,9425644.288,2977991.9339099997,4537892.47072,2442406.734,2442406.734,2442406.734,2416614.2805,2323128.615,2323128.615,2411755.8470199998,3260940.43185,4847126.271539999,8454290.008499999,2399408.02146,3051596.1078299996,2100983.034,2100983.034,2100983.034,2100983.034,6984873.369100001,6984873.369100001 +381600.0,1651247.787,1409819.031,4116671.57052,2164200.89237,2164200.89237,2164200.89237,2658933.473,3235924.93824,6348382.2105600005,3217141.2501900005,4902310.476480001,2508980.499,2508980.499,2508980.499,2739909.5500000003,1651247.787,1651247.787,1957196.73929,3107839.7196,4619554.34864,8057362.2360000005,2286756.13936,2908324.0832800004,1897108.317,1897108.317,1897108.317,1897108.317,4964751.67958,4964751.67958 +385200.0,1241218.917,1047998.964,3060156.97488,1937390.0609800003,1937390.0609800003,1937390.0609800003,2227539.8109999998,3266498.5179200005,7021673.5916800015,2517789.5483999997,3836631.6928,1130910.408,1130910.408,1130910.408,2242353.8515000003,1241218.917,1241218.917,1195563.1863499999,2357467.1446499997,3504185.731059999,6111951.8565,1734630.1459399997,2206123.5748699997,1569310.599,1569310.599,1569310.599,1569310.599,3731931.5437799995,3731931.5437799995 +388800.0,1027368.5279999999,886283.2110000001,2587946.9761200002,1542979.8693100002,1542979.8693100002,1542979.8693100002,1492085.8505,2555929.2374400003,3794701.5500800004,1962631.4639400002,2990676.51648,1043024.0280000002,1043024.0280000002,1043024.0280000002,1494194.723,1027368.5279999999,1027368.5279999999,1092078.7059,1422795.861,2114871.8723999998,3688730.01,1046896.7076,1331455.8798,1175602.5359999998,1175602.5359999998,1175602.5359999998,1175602.5359999998,3088954.7075199997,3088954.7075199997 +392400.0,765231.438,643399.023,1878725.1471600002,842533.7118,842533.7118,842533.7118,934154.263,1747637.08784,2589107.0284800003,1264593.89889,1927000.22688,755610.63,755610.63,755610.63,1043607.9675,765231.438,765231.438,808796.4735499999,950375.1546,1412656.40264,2463935.586,699288.3853600001,889363.41628,871124.55,871124.55,871124.55,871124.55,2300795.8569199997,2300795.8569199997 +396000.0,689432.586,593371.8570000001,1732645.82244,754785.8956,754785.8956,754785.8956,795878.0059999999,1389962.30496,2408795.54112,1097087.6973,1671752.6816,691722.036,691722.036,691722.036,926272.4275,689432.586,689432.586,726996.1320699999,859375.1942999999,1277392.26412,2228009.763,632330.3898799999,804205.42874,790943.3189999999,790943.3189999999,790943.3189999999,790943.3189999999,2072893.9752399998,2072893.9752399998 +399600.0,919501.53,823044.1440000001,2403288.90048,1149552.9408,1149552.9408,1149552.9408,1056507.347,1832069.9098399999,3405587.6307200002,1521241.9139399999,2318082.9164799997,953577.915,953577.915,953577.915,1234189.8765,919501.53,919501.53,1196392.70933,1210212.5921999998,1798883.90248,3137588.202,890477.41352,1132519.93196,1071940.32,1071940.32,1071940.32,1071940.32,2764634.6001999998,2764634.6001999998 +403200.0,974146.2359999998,878424.213,2564998.7019599997,1243941.11259,1243941.11259,1243941.11259,1125749.478,1941713.69648,3642672.51392,1625062.73496,2476286.0723200003,1023167.202,1023167.202,1023167.202,1316638.869,974146.2359999998,974146.2359999998,1296688.9245699998,1294119.5121,1923604.8056399997,3355124.661,952216.3323599999,1211040.2347799998,1148529.117,1148529.117,1148529.117,1148529.117,2928933.0162399993,2928933.0162399993 +406800.0,980334.348,879419.418,2567904.70056,1271662.93672,1271662.93672,1271662.93672,1151216.7205,1957316.29016,3643526.811520001,1639387.3992300003,2498114.1321600005,1026397.3290000001,1026397.3290000001,1026397.3290000001,1323462.287,980334.348,980334.348,1298116.3257399998,1301203.6182000001,1934134.7608800002,3373490.8620000007,957428.8351200001,1217669.5587600002,1153462.644,1153462.644,1153462.644,1153462.644,2947538.60632,2947538.60632 +410400.0,998154.3,887290.521,2590888.3213199996,1336410.3119400002,1336410.3119400002,1336410.3119400002,1209523.6230000001,2003129.96304,3674073.7497600005,1677591.25506,2556329.53152,1040629.179,1040629.179,1040629.179,1347658.5115,998154.3,998154.3,1308889.4559,1324879.7035499997,1969327.3618199998,3434873.3055,974849.75718,1239825.69789,1170998.268,1170998.268,1170998.268,1170998.268,3001117.262,3001117.262 +414000.0,1007536.5630000001,895467.6089999999,2614765.41828,1346354.3313,1346354.3313,1346354.3313,1220286.4135,2025106.14,3709027.42528,1694620.25082,2582278.47744,1051789.2449999999,1051789.2449999999,1051789.2449999999,1360614.1605,1007536.5630000001,1007536.5630000001,1318389.2059,1336693.3065,1986887.3345999997,3465501.165,983542.2353999999,1250880.8967,1181565.291,1181565.291,1181565.291,1181565.291,3029326.59942,3029326.59942 +417600.0,1010750.196,900241.0859999999,2628703.9711199994,1335599.90575,1335599.90575,1335599.90575,1212494.542,2031230.6414400002,3729381.02208,1698781.6580700001,2588619.6694400003,1057275.768,1057275.768,1057275.768,1364377.5950000002,1010750.196,1010750.196,1323298.30633,1339712.2899,1991374.8111599998,3473328.159,985763.61084,1253706.06882,1185553.584,1185553.584,1185553.584,1185553.584,3038988.92264,3038988.92264 +421200.0,956123.76,800495.118,2337445.74456,1090330.58651,1090330.58651,1090330.58651,914107.299,1662856.52304,2611011.71072,1380251.09376,2103239.76192,830924.193,830924.193,830924.193,1072152.8265,956123.76,956123.76,1258795.59065,1051396.2323999999,1562816.1281599998,2725842.084,773619.94384,983899.19032,1024838.265,1024838.265,1024838.265,1024838.265,2874745.4384,2874745.4384 +424800.0,419172.14099999995,314222.982,917531.10744,558960.1614300001,558960.1614300001,558960.1614300001,386729.679,807132.13872,1010567.04,628210.48689,957273.12288,359475.552,359475.552,359475.552,473327.4945,419172.14099999995,419172.14099999995,722738.66158,221134.4793,328698.65812000004,573311.6130000001,162711.29588000002,206938.19174000004,554989.5630000001,554989.5630000001,554989.5630000001,554989.5630000001,1260310.9039399999,1260310.9039399999 +428400.0,134971.20299999998,101518.863,296435.07996,138544.15124,138544.15124,138544.15124,57769.81,291021.55472,731850.23936,259828.14018000002,395928.59456,201777.67500000002,201777.67500000002,201777.67500000002,109180.5435,134971.20299999998,134971.20299999998,216020.40446999998,84117.3579,125033.70236,218082.03900000002,61893.759640000004,78717.23122,152021.12699999998,152021.12699999998,152021.12699999998,152021.12699999998,405813.41701999994,405813.41701999994 +432000.0,132557.58299999998,109334.43599999999,319256.55312,116619.44789000001,116619.44789000001,116619.44789000001,37223.045999999995,295299.13864,737472.19648,251818.70091,383723.73472,201189.65099999995,201189.65099999995,201189.65099999995,105302.58899999999,132557.58299999998,132557.58299999998,215765.67168,78424.45515000001,116571.65926,203322.66150000002,57704.90774,73389.79877000001,148848.462,148848.462,148848.462,148848.462,398556.46621999994,398556.46621999994 +435600.0,141664.623,142631.92500000002,416485.221,112027.52737000003,112027.52737000003,112027.52737000003,40196.1595,308104.40152,749008.6304,256841.73669000002,391377.88448,199978.02,199978.02,199978.02,103429.4135,141664.623,141664.623,223316.07778999995,89749.20689999999,133404.99396,232683.129,66037.68804,83987.52941999999,151259.69400000002,151259.69400000002,151259.69400000002,151259.69400000002,425938.29981999996,425938.29981999996 +439200.0,146138.994,150784.104,440289.58368,106684.88314,106684.88314,106684.88314,40613.328,303200.37247999996,768637.0208,270192.74541,411722.27872,215948.22300000003,215948.22300000003,215948.22300000003,101174.55249999999,146138.994,146138.994,244267.24491,88608.9699,131710.12316,229726.95900000003,65198.698840000005,82920.49282000001,179864.811,179864.811,179864.811,179864.811,439391.24195999996,439391.24195999996 +442800.0,162033.273,158225.79,462019.3068,116301.72334000001,116301.72334000001,116301.72334000001,51576.9975,313509.83544,779425.81376,297283.58751,453003.56192,272068.485,272068.485,272068.485,109372.942,162033.273,162033.273,246425.56405999998,96314.72265,143164.10626,249704.8365,70868.61074,90131.55527,225955.461,225955.461,225955.461,225955.461,487180.04082,487180.04082 +446400.0,193164.12900000002,177462.822,518191.44023999997,123291.46808,123291.46808,123291.46808,58897.755000000005,373900.11328,790881.1808,318135.86637000006,484778.4630400001,316005.678,316005.678,316005.678,185064.1625,193164.12900000002,193164.12900000002,267912.44493,114023.26259999999,169486.42984,295615.866,83898.59816,106703.25068,268758.402,268758.402,268758.402,268758.402,580780.14786,580780.14786 +450000.0,239551.737,195449.592,570712.80864,136708.54460999998,136708.54460999998,136708.54460999998,68610.0205,465706.0696,832523.73888,360108.43596,548736.66432,342641.91000000003,342641.91000000003,342641.91000000003,203704.63749999998,239551.737,239551.737,281955.87003999995,130064.15429999998,193329.92811999997,337203.36299999995,95701.52587999999,121714.35673999999,324713.589,324713.589,324713.589,324713.589,720252.22258,720252.22258 +453600.0,300603.11100000003,212365.704,620107.85568,231252.45495,231252.45495,231252.45495,147769.4225,549990.6724,997319.7478400001,445166.3685,678348.752,378512.95200000005,378512.95200000005,378512.95200000005,236403.58349999998,300603.11100000003,300603.11100000003,321425.18121999997,180038.59874999998,267612.92949999997,466766.7375,132472.8455,168480.56524999999,383660.142,383660.142,383660.142,383660.142,903813.35374,903813.35374 +457200.0,1057957.983,1124888.253,3284673.69876,1063815.6150600002,1063815.6150600002,1063815.6150600002,1057808.332,1637250.58752,1657619.7452800001,1355291.15106,2065205.56352,670786.086,670786.086,670786.086,1615855.6295,1057957.983,1057957.983,2058587.6047099999,615553.8826499999,914971.4502599998,1595880.4364999998,452926.0667399999,576036.84327,1564258.0499999998,1564258.0499999998,1564258.0499999998,1564258.0499999998,3180927.0022199997,3180927.0022199997 +460800.0,2027436.3480000002,1790973.546,5229642.75432,2791157.8803900005,2791157.8803900005,2791157.8803900005,1869856.898,3134563.9243199993,3563474.7635200005,2989525.9014600003,4555468.040320001,1267316.499,1267316.499,1267316.499,1996139.3445000001,2027436.3480000002,2027436.3480000002,3263779.9252499994,1607972.9661,2390122.77924,4168818.8010000004,1183150.47876,1504745.07198,2242432.86,2242432.86,2242432.86,2242432.86,6095825.28632,6095825.28632 +464400.0,2403735.561,2115441.6689999998,6177089.673479999,3061710.14545,3061710.14545,3061710.14545,2433064.242,4044686.8048799997,9642145.27744,3129131.7046499997,4768200.6928,2514885.942,2514885.942,2514885.942,2526902.0804999997,2403735.561,2403735.561,2460917.28896,3347726.18085,4976126.32314,8679290.0985,2463265.1898600003,3132810.42603,2135657.484,2135657.484,2135657.484,2135657.484,7227231.58674,7227231.58674 +468000.0,1744250.4,1447718.085,4227336.8082,2214582.68163,2214582.68163,2214582.68163,2714038.9395000003,3380985.00776,6680045.16032,3345695.28888,5098202.34496,2533625.847,2533625.847,2533625.847,2792802.0155,1744250.4,1744250.4,2001656.6419199998,3200484.0001499997,4757262.637259999,8297551.1115,2354924.02974,2995020.82977,1950433.4819999998,1950433.4819999998,1950433.4819999998,1950433.4819999998,5244379.535999999,5244379.535999999 +471600.0,1270975.155,1057487.235,3087862.7262000004,1954347.8136600002,1954347.8136600002,1954347.8136600002,2324514.3145000003,3340096.2010399997,7189808.085120001,2653303.46253,4043129.08576,1156499.997,1156499.997,1156499.997,2252244.8479999998,1270975.155,1270975.155,1201075.30686,2434524.0201,3618724.59284,6311728.941000001,1791328.78516,2278233.58918,1582007.544,1582007.544,1582007.544,1582007.544,3821398.6327,3821398.6327 +475200.0,1050496.2719999999,889334.1630000001,2596855.75596,1558614.85164,1558614.85164,1558614.85164,1509563.7094999999,2673186.11816,3871280.8326400006,2010105.1523700003,3063017.3750400003,1068261.9899999998,1068261.9899999998,1068261.9899999998,1538029.9515,1050496.2719999999,1050496.2719999999,1095694.8158,1473647.9526000002,2190459.42584,3820568.7660000003,1084313.8021600002,1379043.39268,1172398.623,1172398.623,1172398.623,1172398.623,3158492.1244799998,3158492.1244799998 +478800.0,781986.2729999999,654695.388,1911710.53296,831643.7471100001,831643.7471100001,831643.7471100001,971854.5025000001,1847037.5144799997,2591734.5593600003,1336710.84141,2036892.71072,765761.733,765761.733,765761.733,1047579.876,781986.2729999999,781986.2729999999,805461.17145,971238.9402,1443668.74568,2518026.882,714640.01032,908887.79836,878640.096,878640.096,878640.096,878640.096,2351172.06082,2351172.06082 +482400.0,706294.131,596915.907,1742994.44844,735605.76419,735605.76419,735605.76419,797043.422,1426309.42544,2428177.00992,1137426.13782,1733220.78144,700756.002,700756.002,700756.002,934114.51,706294.131,706294.131,726688.6768699999,866147.49495,1287458.7455799999,2245567.5795,637313.46542,810542.96441,795066.486,795066.486,795066.486,795066.486,2123591.02054,2123591.02054 +486000.0,947730.633,840437.145,2454076.4634000002,1153862.9609100001,1153862.9609100001,1153862.9609100001,1072063.8285,1895178.54416,3480606.69952,1580947.41315,2409062.7248,980620.827,980620.827,980620.827,1256353.0385,947730.633,947730.633,1215971.0928299997,1236501.8509499999,1837960.7759799997,3205745.5395,909821.1150199999,1157121.48521,1096972.692,1096972.692,1096972.692,1096972.692,2849510.10322,2849510.10322 +489600.0,993486.804,885450.987,2585516.8820399996,1231614.5966300003,1231614.5966300003,1231614.5966300003,1129790.8020000001,1982823.96768,3674111.1225600005,1663813.4723699999,2535334.81504,1036378.212,1036378.212,1036378.212,1319768.6564999998,993486.804,993486.804,1301972.12275,1305934.79985,1941167.28274,3385756.8885000004,960910.05026,1222097.0102300001,1156822.161,1156822.161,1156822.161,1156822.161,2987083.6573599996,2987083.6573599996 +493200.0,1004554.2329999999,891280.923,2602540.2951599997,1264657.89692,1264657.89692,1264657.89692,1161033.307,2009119.3677599998,3696814.6252800003,1686755.8806,2570294.6752,1045983.0989999999,1045983.0989999999,1045983.0989999999,1334655.77,1004554.2329999999,1004554.2329999999,1309500.5182999999,1320248.8039499999,1962443.9011799998,3422867.2695,971442.32982,1235492.09061,1167786.531,1167786.531,1167786.531,1167786.531,3020359.7272199993,3020359.7272199993 +496800.0,1015478.0639999999,892617.39,2606442.7788,1321989.0239600001,1321989.0239600001,1321989.0239600001,1211625.4464999998,2038521.7062400002,3697544.6406400003,1712591.3815499998,2609663.0576,1051307.832,1051307.832,1051307.832,1348181.3975,1015478.0639999999,1015478.0639999999,1312446.31622,1334201.6088,1983183.62592,3459041.2080000006,981708.8380800001,1248549.15984,1176982.305,1176982.305,1176982.305,1176982.305,3053204.0457599997,3053204.0457599997 +500400.0,1020159.675,896392.557,2617466.2664400004,1327009.68235,1327009.68235,1327009.68235,1217204.2855,2049362.23544,3712443.1686400007,1721178.10725,2622747.5919999997,1056469.881,1056469.881,1056469.881,1354012.5304999999,1020159.675,1020159.675,1316660.3139299997,1339478.10675,1991026.7167,3472721.0175,985591.2983,1253486.91965,1181932.203,1181932.203,1181932.203,1181932.203,3067280.0895000002,3067280.0895000002 +504000.0,1018551.852,896657.2379999999,2618239.13496,1311190.29239,1311190.29239,1311190.29239,1204101.5385,2044124.8358399998,3712309.4860800006,1716692.0612100002,2615911.7123200004,1055846.967,1055846.967,1055846.967,1350499.2165,1018551.852,1018551.852,1316098.9628799998,1335802.58595,1985563.34998,3463191.8895,982886.8410199999,1250047.35821,1180161.054,1180161.054,1180161.054,1180161.054,3062445.9016799997,3062445.9016799997 +507600.0,968123.7839999999,795792.117,2323712.98164,1081265.8296000003,1081265.8296000003,1081265.8296000003,907565.5260000001,1679082.39072,2614686.7897600005,1399490.5341900003,2132557.0044800006,829363.1070000001,829363.1070000001,829363.1070000001,1060424.0465,968123.7839999999,968123.7839999999,1253032.34966,1048571.0739000001,1558616.75676,2718517.5990000004,771541.18524,981255.4000200001,1020481.4910000002,1020481.4910000002,1020481.4910000002,1020481.4910000002,2910825.5105599994,2910825.5105599994 +511200.0,429943.66500000004,317599.482,927390.48744,569442.4342199999,569442.4342199999,569442.4342199999,384837.621,831050.9741599999,1042966.66816,652521.51909,994318.50528,374879.01599999995,374879.01599999995,374879.01599999995,471238.83799999993,429943.66500000004,429943.66500000004,724034.389,227457.8901,338097.90084,589705.6410000001,167364.07716000002,212855.65518,558281.9820000001,558281.9820000001,558281.9820000001,558281.9820000001,1292697.2861000001,1292697.2861000001 +514800.0,146166.123,108136.749,315759.30708,153223.33070000002,153223.33070000002,153223.33070000002,60746.041999999994,320986.89256,778448.58304,283379.11875,431815.80000000005,219510.384,219510.384,219510.384,117157.19750000001,146166.123,146166.123,230185.69573999997,90844.1082,135032.47688,235521.762,66843.31912,85012.14076,162541.557,162541.557,162541.557,162541.557,439472.80981999997,439472.80981999997 +518400.0,152265.531,139816.629,408264.55668,139205.57100999999,139205.57100999999,139205.57100999999,43427.5345,354947.6664,839291.37088,290185.00896,442186.68032000004,232899.98100000003,232899.98100000003,232899.98100000003,118820.22249999997,152265.531,152265.531,241581.46597,92848.5747,138011.95548,240718.527,68318.21052000001,86887.92546,166854.663,166854.663,166854.663,166854.663,457811.6965399999,457811.6965399999 +522000.0,172250.988,184787.046,539578.17432,143892.19229,143892.19229,143892.19229,52208.1315,390429.57336,933208.9235200001,318112.45053,484742.78176,249427.035,249427.035,249427.035,124505.56999999999,172250.988,172250.988,277154.10475999996,109972.16505,163464.79841999998,285113.0205,80917.79058,102912.22359,189169.5,189169.5,189169.5,189169.5,517901.30392,517901.30392 +525600.0,189979.248,191711.526,559797.65592,149697.39609,149697.39609,149697.39609,63374.668,399219.84792,967294.32064,356035.49499,542530.27808,322620.47099999996,322620.47099999996,322620.47099999996,125582.65999999997,189979.248,189979.248,297386.09511,117786.7413,175080.53892,305373.033,86667.77508,110225.12334,256611.30000000002,256611.30000000002,256611.30000000002,256611.30000000002,571204.27232,571204.27232 +529200.0,223501.173,213701.80199999997,624009.2618399999,156758.69957,156758.69957,156758.69957,70908.5055,462688.1211199999,966604.3328000001,386221.27068,588527.65056,380629.533,380629.533,380629.533,209361.51249999998,223501.173,223501.173,319084.22636999993,140169.66975,208350.96589999998,363402.8475,103137.18909999999,131171.12305,313320.489,313320.489,313320.489,313320.489,671993.52682,671993.52682 +532800.0,268671.207,228507.50399999996,667241.9116799999,158906.19030000002,158906.19030000002,158906.19030000002,73354.561,559933.9439999999,983592.2342400001,424500.88506,646858.49152,411473.09099999996,411473.09099999996,411473.09099999996,239708.3115,268671.207,268671.207,325688.69307,155030.10795,230439.81478000002,401929.90950000007,114071.53622000001,145077.55781000003,375372.144,375372.144,375372.144,375372.144,807804.76238,807804.76238 +536400.0,317909.211,235323.465,687144.5178,165118.45515000002,165118.45515000002,165118.45515000002,77926.4465,574653.92096,1073709.90336,463944.31691999995,706962.7686399999,411675.4770000001,411675.4770000001,411675.4770000001,237265.3745,317909.211,317909.211,344792.39691,190941.8589,283819.75075999997,495034.44899999996,140495.49124,178683.86302,407958.63,407958.63,407958.63,407958.63,955847.0277399999,955847.0277399999 +540000.0,483579.177,270719.142,790499.89464,265783.29547,265783.29547,265783.29547,154743.3265,1043747.2839999999,1233234.97664,701997.76899,1069710.88608,429486.186,429486.186,429486.186,375769.6775,483579.177,483579.177,526819.66077,250444.7019,372265.95196,649301.0789999999,184277.83004,234366.77042,522339.02099999995,522339.02099999995,522339.02099999995,522339.02099999995,1453961.39218,1453961.39218 +543600.0,1210363.2,636822.072,1859520.45024,1746366.9430900002,1746366.9430900002,1746366.9430900002,1454057.234,3377082.48616,4241454.227840001,2911460.2923000003,4436510.921600001,1233065.781,1233065.781,1233065.781,1909571.1459999997,1210363.2,1210363.2,2634656.75447,1655138.6423999998,2460230.7721599997,4291100.183999999,1217855.09984,1548882.8283199999,1525158.594,1525158.594,1525158.594,1525158.594,3639158.6879999996,3639158.6879999996 +547200.0,1096457.8020000001,1208663.04,3529296.0768000004,2265618.52803,2265618.52803,2265618.52803,2030208.866,4181081.79776,3319762.81792,3245030.04693,4944807.690560001,1361887.569,1361887.569,1361887.569,1829144.3975,1096457.8020000001,1096457.8020000001,2192888.49975,2142867.98835,3185201.30614,5555583.6735000005,1576727.5568600001,2005301.1545300002,1594619.412,1594619.412,1594619.412,1594619.412,3296683.12468,3296683.12468 +550800.0,2068215.2820000001,2222990.055,6491130.9606,1860162.78778,1860162.78778,1860162.78778,2495717.2415,4452606.559199999,7402405.156480001,3670268.06244,5592789.42848,1966304.514,1966304.514,1966304.514,1631446.2045,2068215.2820000001,2068215.2820000001,2963215.80542,2040443.9824499998,3032956.2405799995,5290039.9545,1501363.72042,1909452.51691,2341154.961,2341154.961,2341154.961,2341154.961,6218433.94788,6218433.94788 +554400.0,1544060.3099999998,918343.9110000001,2681564.22012,857323.9086500001,857323.9086500001,857323.9086500001,1000785.0335,2366270.5888,7596131.999360001,1571492.9827800002,2394655.9737600004,1545257.0520000001,1545257.0520000001,1545257.0520000001,1510038.1345,1544060.3099999998,1544060.3099999998,2934248.0999,2320564.7353499997,3449333.2609399995,6016278.943499999,1707477.2620599999,2171590.20913,1089331.32,1089331.32,1089331.32,1089331.32,4642474.665399999,4642474.665399999 +558000.0,754437.7110000001,596448.9569999999,1741630.9544399998,477660.72299000004,477660.72299000004,477660.72299000004,571170.3305,1533534.4183999996,4802858.94208,936062.65536,1426381.18912,639485.562,639485.562,639485.562,592444.0165,754437.7110000001,754437.7110000001,1339603.6531799997,1212087.3615,1801670.5966,3142448.7150000003,891856.8734,1134274.3457000002,620933.847,620933.847,620933.847,620933.847,2268342.71774,2268342.71774 +561600.0,781910.667,1212640.752,3540910.99584,709059.06709,709059.06709,709059.06709,953805.6955,1777710.59416,2877350.60736,1324584.83178,2018414.9817599999,720439.734,720439.734,720439.734,1053674.37,781910.667,781910.667,1100583.91144,855719.7817500001,1271958.7867,2218532.7675,629640.7283000001,800784.6846500001,789492.7050000001,789492.7050000001,789492.7050000001,789492.7050000001,2350944.73878,2350944.73878 +565200.0,631393.458,748042.275,2184283.443,539052.7047400001,539052.7047400001,539052.7047400001,912868.9675,1360735.1489600001,2138949.8899200005,940201.80597,1432688.46624,585328.164,585328.164,585328.164,753714.5105,631393.458,631393.458,808497.8976099999,681913.1205000001,1013609.1322,1767922.9050000003,501753.35780000006,638135.9819,592956.669,592956.669,592956.669,592956.669,1898389.6637199998,1898389.6637199998 +568800.0,546241.236,470915.24100000004,1375072.50372,327615.54947,327615.54947,327615.54947,628171.2710000001,1163808.9590399999,1954449.50464,814436.4209099999,1241045.9747199998,532114.8570000001,532114.8570000001,532114.8570000001,447462.995,546241.236,546241.236,727982.60535,600814.2924,893062.23216,1557666.6840000001,442080.63984,562243.49832,533892.744,533892.744,533892.744,533892.744,1642365.31624,1642365.31624 +572400.0,920448.7320000001,1272883.8390000002,3716820.80988,1528874.4906600001,1528874.4906600001,1528874.4906600001,1451680.671,2261086.89192,2883312.1728000003,1662024.35343,2532608.53856,850159.971,850159.971,850159.971,1385255.7915,920448.7320000001,920448.7320000001,1527079.0356899998,1293992.0828999998,1923415.39236,3354794.289,952122.56964,1210920.98622,1072698.252,1072698.252,1072698.252,1072698.252,2767482.5208799997,2767482.5208799997 +576000.0,892941.03,1283975.6490000002,3749208.89508,1742598.9900000002,1742598.9900000002,1742598.9900000002,1156596.0665,2421586.2920799996,3168784.3110400005,1743707.8692599998,2657078.65792,1000576.1190000001,1000576.1190000001,1000576.1190000001,1588583.7975,892941.03,892941.03,1615463.6033899998,1321515.1539,1964326.2287599999,3426150.399,972374.11324,1236677.14402,1114889.544,1114889.544,1114889.544,1114889.544,2684776.0302,2684776.0302 +579600.0,817955.733,1206554.61,3523139.4612000003,1142629.1422700002,1142629.1422700002,1142629.1422700002,999670.595,2281355.43536,3116716.863360001,1469029.20822,2238520.69824,846934.986,846934.986,846934.986,1258568.332,817955.733,817955.733,1313222.2894699997,1107163.1609999998,1645709.1923999998,2870423.01,814653.3876,1036086.0198,1052179.5210000002,1052179.5210000002,1052179.5210000002,1052179.5210000002,2459320.23722,2459320.23722 +583200.0,2162699.955,1737561.633,5073679.96836,3522527.42985,3522527.42985,3522527.42985,2860402.9615,3429244.01712,6613065.56288,3631349.15892,5533484.43264,2286335.712,2286335.712,2286335.712,2979358.725,2162699.955,2162699.955,3891966.7814299995,2790849.6175499996,4148373.99942,7235536.0455,2053514.0395799999,2611683.9630899997,2427047.9310000003,2427047.9310000003,2427047.9310000003,2427047.9310000003,6502517.8647,6502517.8647 +586800.0,1564990.4039999999,839979.183,2452739.2143599996,2173636.62978,2173636.62978,2173636.62978,1661523.2025000001,2487448.18856,4361639.125120001,2264534.26059,3450718.8732800004,1568433.492,1568433.492,1568433.492,1988101.6925000001,1564990.4039999999,1564990.4039999999,1353836.8327900001,1819256.57775,2704178.9131,4716591.1275,1338613.4819,1702464.7974500002,1705034.5890000002,1705034.5890000002,1705034.5890000002,1705034.5890000002,4705404.48136,4705404.48136 +590400.0,1108982.7149999999,792505.521,2314116.12132,1302002.21855,1302002.21855,1302002.21855,1214936.2889999999,1835012.2770400003,3480426.3308800003,1595971.9106100001,2431957.19712,985077.8399999999,985077.8399999999,985077.8399999999,1330091.4024999999,1108982.7149999999,1108982.7149999999,1197830.2644099998,1296094.2759000002,1926540.1335600002,3360244.4190000007,953669.3684400001,1212888.2236200003,1151616.006,1151616.006,1151616.006,1151616.006,3334341.3630999997,3334341.3630999997 +594000.0,941497.587,774604.38,2261844.7896,1151670.37458,1151670.37458,1151670.37458,1095635.688,1739476.1199999999,3311608.5408000005,1513848.0919799998,2306816.14016,944670.828,944670.828,944670.828,1240466.9409999999,941497.587,941497.587,1168603.55482,1226558.7081000002,1823181.09204,3179967.021,902504.9259600001,1147816.6675800001,1080507.081,1080507.081,1080507.081,1080507.081,2830769.41158,2830769.41158 +597600.0,652520.286,558154.734,1629811.8232800001,739189.2119700001,739189.2119700001,739189.2119700001,586080.5755,863316.1098399999,1947630.4864,827059.9495199999,1260281.82784,488356.50899999996,488356.50899999996,488356.50899999996,611230.2805,652520.286,652520.286,815852.3731799999,555607.9008,825866.55872,1440464.928,408817.66528,519939.24544,670826.67,670826.67,670826.67,670826.67,1961910.9932399997,1961910.9932399997 +601200.0,107577.49799999999,96816.759,282704.93628,109341.73844,109341.73844,109341.73844,58364.2465,170109.48807999998,674284.77952,187323.42110999997,285445.21312,160211.61599999998,160211.61599999998,160211.61599999998,102691.1725,107577.49799999999,107577.49799999999,193846.15535999998,77694.14295000001,115486.10878,201429.25950000001,57167.54222,72706.37081000001,135183.456,135183.456,135183.456,135183.456,323449.67731999996,323449.67731999996 +604800.0,105570.75899999999,97590.18599999999,284963.34312,91628.10536000002,91628.10536000002,91628.10536000002,38173.415,179510.55656,689689.32544,199618.77054,304180.98368,161838.807,161838.807,161838.807,98351.4175,105570.75899999999,105570.75899999999,206646.48887999996,72390.39255,107602.50942,187678.7955,53265.02958000001,67743.10809000001,137746.563,137746.563,137746.563,137746.563,317416.08206,317416.08206 +608400.0,109500.744,106469.949,310892.25108,102480.01555,102480.01555,102480.01555,33633.1275,194655.1424,696325.0048,222789.49287,339488.75104,162782.532,162782.532,162782.532,99889.37700000001,109500.744,109500.744,212787.68043,72002.82780000001,107026.42552,186673.99800000002,52979.85848000001,67380.42404000001,142533.243,142533.243,142533.243,142533.243,329232.23696,329232.23696 +612000.0,124516.038,121485.52500000001,354737.733,99247.18606,99247.18606,99247.18606,37979.9665,212673.03744000001,704332.5868800001,238790.30237999998,363870.93696,163135.29,163135.29,163135.29,98867.63249999999,124516.038,124516.038,236844.02000999998,84075.8211,124971.96123999999,217974.351,61863.19676,78678.36098,147480.86700000003,147480.86700000003,147480.86700000003,147480.86700000003,374378.22091999993,374378.22091999993 +615600.0,133094.574,128070.93900000001,373967.14188,100185.18675,100185.18675,100185.18675,43662.300500000005,249982.36800000002,707735.58976,273236.21535,416359.94720000005,166652.09100000001,166652.09100000001,166652.09100000001,99654.2925,133094.574,133094.574,238794.54235,90060.08895,133867.09518,233489.1195,66266.43582,84278.45361000001,180358.97999999998,180358.97999999998,180358.97999999998,180358.97999999998,400171.01915999997,400171.01915999997 +619200.0,163808.949,137441.15099999998,401328.16091999994,110194.61101000001,110194.61101000001,110194.61101000001,60482.3065,305094.92688,705061.81888,295830.63657,450789.54144,232312.998,232312.998,232312.998,148170.9495,163808.949,163808.949,244099.27970999997,104820.50834999999,155807.27414,271756.8735,77127.18886,98091.29053,228768.873,228768.873,228768.873,228768.873,492518.90666,492518.90666 +622800.0,199076.65500000003,147725.946,431359.76232,122857.94389000001,122857.94389000001,122857.94389000001,68877.52900000001,370379.0196,700368.3936000001,324080.99745,493837.71040000004,290323.185,290323.185,290323.185,184187.5385,199076.65500000003,199076.65500000003,259091.16467,118194.552,175686.7168,306430.32,86967.8432,110606.7536,254843.787,254843.787,254843.787,254843.787,598557.1427000001,598557.1427000001 +626400.0,369032.331,208906.94999999998,610008.2939999999,235868.77919000003,235868.77919000003,235868.77919000003,150563.497,890960.56744,831363.0604800001,575741.63178,877320.58176,360087.74100000004,360087.74100000004,360087.74100000004,320043.9025,369032.331,369032.331,494314.17139,183882.04064999998,273325.89745999995,476731.2165,135300.85954,172077.26767,419198.292,419198.292,419198.292,419198.292,1109557.20854,1109557.20854 +630000.0,1107569.823,515137.69200000004,1504202.06064,1583234.32641,1583234.32641,1583234.32641,1337910.1505,3168039.9664799995,3498219.53728,2628333.99024,4005080.3660800005,1020627.258,1020627.258,1020627.258,1463272.3385,1107569.823,1107569.823,2428088.94276,1373878.56375,2042160.2355,3561907.3875,1010903.2395,1285678.95225,1386708.8129999998,1386708.8129999998,1386708.8129999998,1386708.8129999998,3330093.26782,3330093.26782 +633600.0,990057.7590000001,1099489.797,3210510.20724,1945416.0277200001,1945416.0277200001,1945416.0277200001,1852910.514,3920130.3913600002,2994221.5110400002,2973209.72676,4530605.29792,1250104.7489999998,1250104.7489999998,1250104.7489999998,1569475.6455,990057.7590000001,990057.7590000001,2133816.8657,2003010.5655,2977314.4702,5192990.355,1473820.1198,1874422.2329,1488496.83,1488496.83,1488496.83,1488496.83,2976773.66206,2976773.66206 +637200.0,1989036.6870000002,2120802.9450000003,6192744.599400001,1554172.89434,1554172.89434,1554172.89434,1907636.577,4120598.5588,7180211.56608,3424330.20048,5218026.97216,1876384.827,1876384.827,1876384.827,1486799.321,1989036.6870000002,1989036.6870000002,2606446.6816699994,1719465.4485,2555847.4074,4457873.385,1265186.9226,1609080.0123,2241920.232,2241920.232,2241920.232,2241920.232,5980370.30558,5980370.30558 +640800.0,1405961.8110000002,821046.51,2397455.8092,760504.3392100001,760504.3392100001,760504.3392100001,842789.836,2110335.5672,6893599.095040001,1307919.2838599999,1993019.8611199998,1425841.056,1425841.056,1425841.056,1415971.781,1405961.8110000002,1405961.8110000002,2076192.3393899999,2191300.9461000003,3257193.01124,5681150.601000001,1612364.6467600001,2050624.8359800002,987462.087,987462.087,987462.087,987462.087,4227258.51174,4227258.51174 +644400.0,697346.127,501072.372,1463131.3262399998,399687.05249000003,399687.05249000003,399687.05249000003,517321.7525,1349331.0480799999,3617778.2470400007,832342.28868,1268331.10656,557554.686,557554.686,557554.686,497739.74250000005,697346.127,697346.127,779508.33545,937240.0285499999,1393132.09182,2429881.5555,689623.52718,877071.53289,559637.973,559637.973,559637.973,559637.973,2096687.35518,2096687.35518 +648000.0,746049.348,1119929.1120000002,3270193.00704,659253.99276,659253.99276,659253.99276,920690.841,1634771.9747200003,2732990.75264,1271609.45457,1937690.5974400002,682665.0989999999,682665.0989999999,682665.0989999999,1023549.5725,746049.348,746049.348,950063.54248,814628.9556,1210880.57104,2112000.9960000003,599405.99696,762331.7880800001,748170.087,748170.087,748170.087,748170.087,2243121.70632,2243121.70632 +651600.0,600175.395,620977.506,1813254.31752,515608.0110500001,515608.0110500001,515608.0110500001,876373.6975,1257137.37416,2029932.5075200002,907360.4721299999,1382644.52896,563799.744,563799.744,563799.744,665265.174,600175.395,600175.395,741494.7467199999,650893.69665,967501.24786,1687502.1765,478929.18914000003,609107.92847,571119.885,571119.885,571119.885,571119.885,1804527.3542999998,1804527.3542999998 +655200.0,531902.961,454342.30799999996,1326679.5393599998,313089.90669000003,313089.90669000003,313089.90669000003,616719.5160000001,1150883.9352799999,1906942.36544,806063.22951,1228286.82592,528982.86,528982.86,528982.86,444706.0729999999,531902.961,531902.961,690644.7687099999,588338.1418500001,874517.4355400001,1525321.1085000003,432900.6574600001,550568.2858300001,528031.47,528031.47,528031.47,528031.47,1599254.9027399998,1599254.9027399998 +658800.0,896682.8999999999,1157176.104,3378954.2236800003,1479901.29991,1479901.29991,1479901.29991,1382268.9895,2178541.29512,2835717.15584,1654163.41251,2520629.96192,847235.2409999999,847235.2409999999,847235.2409999999,1382304.2695,896682.8999999999,896682.8999999999,1489955.8404899999,1283509.37475,1907833.6879,3327616.8975,944409.3671,1201111.24205,1013845.4280000001,1013845.4280000001,1013845.4280000001,1013845.4280000001,2696026.5859999997,2696026.5859999997 +662400.0,881761.824,1266492.534,3698158.19928,1677124.86744,1677124.86744,1677124.86744,1142947.9635,2330370.0706399996,3149112.3788800007,1704132.5784,2596773.4528,1000604.274,1000604.274,1000604.274,1593480.7140000002,881761.824,881761.824,1591900.15413,1316076.0444,1956241.42896,3412049.004,968372.00304,1231587.2119200001,1098779.685,1098779.685,1098779.685,1098779.685,2651163.88416,2651163.88416 +666000.0,809650.017,1157835.867,3380880.7316400004,1080629.92873,1080629.92873,1080629.92873,992475.638,2265036.34376,3086929.29472,1462152.40395,2228041.7584,844843.2659999998,844843.2659999998,844843.2659999998,1262079.714,809650.017,809650.017,1249776.6915399998,1098310.99095,1632551.15198,2847472.9395000003,808139.93902,1027802.1372100002,1031940.771,1031940.771,1031940.771,1031940.771,2434347.7177799996,2434347.7177799996 +669600.0,2165275.9499999997,1740326.148,5081752.35216,3506569.2651000004,3506569.2651000004,3506569.2651000004,2856437.0835,3398800.7570399996,6589075.2064,3634503.0136800003,5538290.30656,2289547.986,2289547.986,2289547.986,2981055.7665,2165275.9499999997,2165275.9499999997,3824091.837279999,2785750.2342,4140794.1752799996,7222315.422,2049761.90072,2606911.9475600002,2426919.312,2426919.312,2426919.312,2426919.312,6510263.022999999,6510263.022999999 +673200.0,1573598.199,854506.0619999999,2495157.7010399997,2143489.48044,2143489.48044,2143489.48044,1666741.23,2516264.12096,4405563.099520001,2276194.75965,3468487.2528,1573436.4810000001,1573436.4810000001,1573436.4810000001,1956580.9619999998,1573598.199,1573598.199,1353204.31779,1807147.7055,2686180.0461999997,4685197.755,1329703.7438,1691133.2849,1705455.7770000002,1705455.7770000002,1705455.7770000002,1705455.7770000002,4731285.25166,4731285.25166 +676800.0,1151786.4540000001,826819.1969999999,2414312.0552399997,1287643.1893600002,1287643.1893600002,1287643.1893600002,1238022.135,1920362.7616000003,3606208.3136000005,1666729.75392,2539778.67264,1039736.6940000001,1039736.6940000001,1039736.6940000001,1400670.6665,1151786.4540000001,1151786.4540000001,1236532.03427,1353439.97955,2011779.92022,3508918.4655,995864.47878,1266552.47469,1197863.346,1197863.346,1197863.346,1197863.346,3463037.93836,3463037.93836 +680400.0,1016387.946,838232.832,2447639.86944,1219458.1293400002,1219458.1293400002,1219458.1293400002,1175647.7915,1889662.1152,3606408.21184,1636220.59041,2493288.51872,1036059.2399999999,1036059.2399999999,1036059.2399999999,1363590.0004999998,1016387.946,1016387.946,1244664.4503799998,1330816.20165,1978151.4898599999,3450264.2265,979217.84714,1245381.08747,1169581.158,1169581.158,1169581.158,1169581.158,3055939.75764,3055939.75764 +684000.0,727672.242,636460.968,1858466.02656,811381.6672500002,811381.6672500002,811381.6672500002,654617.411,993544.4131199999,2260232.44864,945422.9441999999,1440644.4864,567485.205,567485.205,567485.205,703508.8339999999,727672.242,727672.242,911892.11841,637553.8106999999,947672.5778799999,1652917.2869999998,469113.66812,596624.4302599999,758281.2239999999,758281.2239999999,758281.2239999999,758281.2239999999,2187867.8742799996,2187867.8742799996 +687600.0,118115.34300000001,107254.977,313184.53284,119607.02325,119607.02325,119607.02325,61943.35350000001,198718.38663999998,765628.7334400001,211982.74944,323021.33248000004,180774.426,180774.426,180774.426,114672.42500000002,118115.34300000001,118115.34300000001,224424.68177999998,86877.4896,129136.41664,225237.936,63924.67136,81300.16928,149271.48,149271.48,149271.48,149271.48,355133.46462,355133.46462 +691200.0,120230.26800000001,112147.824,327471.64608,119551.34565000002,119551.34565000002,119551.34565000002,42954.061499999996,216138.51095999999,817256.9772800001,244823.70171000002,373064.68832,189777.237,189777.237,189777.237,115918.222,120230.26800000001,120230.26800000001,238466.91401,85604.10884999999,127243.63833999999,221936.5785,62987.71466,80108.53643,159071.06999999998,159071.06999999998,159071.06999999998,159071.06999999998,361492.33912,361492.33912 +694800.0,130421.04299999999,126254.37900000002,368662.78668,117333.54160000001,117333.54160000001,117333.54160000001,42385.9695,231366.07736,796539.49888,254142.97902,387265.49184,184322.652,184322.652,184322.652,113044.45600000002,130421.04299999999,130421.04299999999,248296.87051,87032.99339999999,129367.56056,225641.094,64039.091440000004,81445.69012,161026.64700000003,161026.64700000003,161026.64700000003,161026.64700000003,392132.60261999996,392132.60261999996 +698400.0,143986.518,139401.066,407051.11272,116759.73672000002,116759.73672000002,116759.73672000002,46458.979,282727.35312,821142.8998400001,298846.60449,455385.30208000005,190673.91000000003,190673.91000000003,190673.91000000003,114045.099,143986.518,143986.518,272558.73176999995,102360.62745,152150.85857999997,265379.4045,75317.20242,95789.32790999999,182432.826,182432.826,182432.826,182432.826,432919.46412,432919.46412 +702000.0,174030.939,150596.63400000002,439742.17128,121480.34250000001,121480.34250000001,121480.34250000001,64255.84199999999,339808.99064,801718.8358400002,323534.27526,493004.60992,249444.84900000005,249444.84900000005,249444.84900000005,152829.7225,174030.939,174030.939,270914.96718,116410.56345,173034.96098,301805.1645,85655.18002,108937.29271000001,248307.58500000002,248307.58500000002,248307.58500000002,248307.58500000002,523253.02326,523253.02326 +705600.0,220082.71200000003,163306.332,476854.48944,130829.99534000001,130829.99534000001,130829.99534000001,71317.029,429390.70703999995,815249.80224,366635.33570999996,558682.41632,335222.03699999995,335222.03699999995,335222.03699999995,210755.66749999998,220082.71200000003,220082.71200000003,296305.56708999997,133493.10705,198426.79121999998,346093.24049999996,98224.55777999999,124923.17919,285475.73699999996,285475.73699999996,285475.73699999996,285475.73699999996,661715.3540800001,661715.3540800001 +709200.0,266129.508,203333.418,593733.5805599999,149830.29379999998,149830.29379999998,149830.29379999998,80291.09550000001,510997.0449599999,860213.1539200001,418709.90343,638034.13856,377251.17899999995,377251.17899999995,377251.17899999995,231703.76249999998,266129.508,266129.508,324983.56630999997,155883.52394999997,231708.34917999996,404142.4695,114699.48182,145876.18661,360157.683,360157.683,360157.683,360157.683,800162.7207199999,800162.7207199999 +712800.0,458913.444,258433.76399999997,754626.5908799999,263481.42964,263481.42964,263481.42964,159211.0485,1019989.7084799999,1062228.04352,693149.06409,1056227.14528,432498.261,432498.261,432498.261,360212.538,458913.444,458913.444,538378.4226599999,217138.32,322758.68799999997,562951.2000000001,159770.912,203198.576,504284.838,504284.838,504284.838,504284.838,1379799.75496,1379799.75496 +716400.0,1209832.221,585151.2690000001,1708641.70548,1665997.6828000003,1665997.6828000003,1665997.6828000003,1428995.8655,3353512.6432800004,4123964.3392,2873640.98175,4378881.496,1182211.368,1182211.368,1182211.368,1727375.8635,1209832.221,1209832.221,2563342.20818,1550497.2858,2304689.79272,4019807.778,1140859.73128,1450959.18844,1519975.827,1519975.827,1519975.827,1519975.827,3637562.2111399993,3637562.2111399993 +720000.0,1107121.9440000001,1230453.9989999998,3592925.67708,2133303.0356000005,2133303.0356000005,2133303.0356000005,1962757.9615000002,4194072.2820800003,3310504.1119999997,3226321.1481899996,4916298.89248,1363671.72,1363671.72,1363671.72,1785186.0320000001,1107121.9440000001,1107121.9440000001,2213911.7158599994,2146714.6459500003,3190919.0539800003,5565556.489500001,1579557.9370200003,2008900.8662100004,1605951.219,1605951.219,1605951.219,1605951.219,3328746.64496,3328746.64496 +723600.0,2075226.7889999999,2249762.571,6569306.707319999,1695931.3891300003,1695931.3891300003,1695931.3891300003,2226810.4075,4425772.49504,7479449.254400001,3662521.1481600003,5580984.6067200005,1988470.836,1988470.836,1988470.836,1659301.1575,2075226.7889999999,2075226.7889999999,2703204.0308,1931268.1769999997,2870675.1668,5006991.569999999,1421031.8931999998,1807285.5285999998,2341482.708,2341482.708,2341482.708,2341482.708,6239515.212259999,6239515.212259999 +727200.0,1519883.1030000001,874444.5719999999,2553378.15024,820094.23892,820094.23892,820094.23892,976609.7914999998,2358521.00224,7312751.28,1494064.48443,2276669.69056,1540470.2759999998,1540470.2759999998,1540470.2759999998,1534859.1125,1519883.1030000001,1519883.1030000001,2199995.77499,2292551.3713499997,3407693.6433399995,5943651.703499999,1686864.9596599997,2145375.2339299996,1089927.216,1089927.216,1089927.216,1089927.216,4569781.86302,4569781.86302 +730800.0,783701.2139999999,557231.142,1627114.93464,468956.46633,468956.46633,468956.46633,597214.1910000001,1526352.83608,4293797.124480001,981729.5711999999,1495968.8704,660080.4630000001,660080.4630000001,660080.4630000001,626660.1390000001,783701.2139999999,783701.2139999999,873650.6511199999,1180258.8408,1754360.05472,3059930.3279999997,868437.36928,1104489.13744,642997.041,642997.041,642997.041,642997.041,2356328.31676,2356328.31676 +734400.0,810093.6120000001,1158941.187,3384108.2660399997,708591.56654,708591.56654,708591.56654,969295.873,1736019.3364000001,2920600.99008,1363364.49606,2077507.80352,744024.1109999999,744024.1109999999,744024.1109999999,1083835.8335,810093.6120000001,810093.6120000001,996888.7433699998,877096.0259999998,1303732.8583999998,2273952.6599999997,645369.4216,820788.6268,817097.1270000001,817097.1270000001,817097.1270000001,817097.1270000001,2435681.46008,2435681.46008 +738000.0,628090.689,666987.42,1947603.2664,516056.24829,516056.24829,516056.24829,901886.412,1294920.67912,2070543.9897600003,936415.6414200001,1426919.0726400001,582051.588,582051.588,582051.588,746895.3485,628090.689,628090.689,733983.4795799999,670070.1753,996005.54452,1737218.973,493039.28948000004,627053.3245400001,589549.752,589549.752,589549.752,589549.752,1888459.3382599999,1888459.3382599999 +741600.0,525698.6880000001,435237.735,1270894.1861999999,276515.93431,276515.93431,276515.93431,595143.4475,1122575.02584,1807058.2643200003,776691.17841,1183529.41472,512525.121,512525.121,512525.121,427117.96400000004,525698.6880000001,525698.6880000001,624391.7758,559188.7002,831189.1296799999,1449748.4819999998,411452.42631999997,523290.16636,507758.4330000001,507758.4330000001,507758.4330000001,507758.4330000001,1580600.72192,1580600.72192 +745200.0,967571.301,1226104.6709999999,3580225.6393199996,1532707.07535,1532707.07535,1532707.07535,1427484.8805,2296916.60592,3000888.98176,1732196.83455,2639538.0336,893861.304,893861.304,893861.304,1432329.7135,967571.301,967571.301,1534740.21129,1341965.9205,1994724.6522000001,3479170.9050000003,987421.8378000001,1255815.0219000003,1088412.7230000002,1088412.7230000002,1088412.7230000002,1088412.7230000002,2909164.37834,2909164.37834 +748800.0,966614.2889999999,1319290.131,3852327.1825200003,1756262.5701500003,1756262.5701500003,1756262.5701500003,1213746.3835,2502780.1683199997,3344553.6704000006,1838757.0190500002,2801915.4576000003,1066205.844,1066205.844,1066205.844,1665310.3355,966614.2889999999,966614.2889999999,1662673.7100999998,1396419.74595,2075665.89398,3620347.4895,1027489.09702,1306773.04621,1180799.43,1180799.43,1180799.43,1180799.43,2906286.9622599995,2906286.9622599995 +752400.0,891523.3259999999,1266699.399,3698762.24508,1158289.3545300001,1158289.3545300001,1158289.3545300001,1079128.61,2411309.63824,3323185.5353600006,1590725.73366,2423963.02272,928743.2340000002,928743.2340000002,928743.2340000002,1343535.7145,891523.3259999999,891523.3259999999,1399615.07946,1203876.7317000001,1789466.1542800001,3121161.8970000003,885815.47172,1126590.8180600002,1131751.3020000001,1131751.3020000001,1131751.3020000001,1131751.3020000001,2680513.46684,2680513.46684 +756000.0,2220927.045,1793434.965,5236830.097800001,3557972.6487800004,3557972.6487800004,3557972.6487800004,2915040.5795,3570746.0316,6843550.409600001,3725521.2048599995,5676984.69312,2351766.969,2351766.969,2351766.969,3049508.126,2220927.045,2220927.045,3942647.6302199997,2883476.2441499997,4286056.046859999,7475679.1515,2121668.94014,2698364.18897,2495912.49,2495912.49,2495912.49,2495912.49,6677587.3153,6677587.3153 +759600.0,1662622.293,919989.6780000001,2686369.8597600004,2268483.8243100005,2268483.8243100005,2268483.8243100005,1763352.4649999999,2681190.4864,4779107.98912,2459904.9012300004,3748426.5161600006,1695656.6369999999,1695656.6369999999,1695656.6369999999,2218398.6475,1662622.293,1662622.293,1472359.91292,1971150.0052499997,2929956.3040999994,5110388.9025,1450377.0409,1844607.0419499998,1842389.199,1842389.199,1842389.199,1842389.199,4998951.02762,4998951.02762 +763200.0,1220478.879,871944.8189999999,2546078.8714799997,1391860.83443,1391860.83443,1391860.83443,1353024.8445000001,2033673.0111999998,3889183.1763200006,1773183.09882,2701993.29344,1141453.614,1141453.614,1141453.614,1491868.4130000002,1220478.879,1220478.879,1304576.6078799998,1442076.3882,2143530.82888,3738716.562,1061083.36712,1349498.64476,1276819.755,1276819.755,1276819.755,1276819.755,3669573.16286,3669573.16286 +766800.0,1074359.2889999999,886998.912,2590036.82304,1274131.3835800001,1274131.3835800001,1274131.3835800001,1231869.1945,1994223.5367199997,3800355.1244800007,1726869.3687,2631419.9904,1098094.512,1098094.512,1098094.512,1449744.7195000001,1074359.2889999999,1074359.2889999999,1329092.45157,1403857.80585,2086721.9731399997,3639631.3485,1032962.0398599999,1313733.60103,1233795.459,1233795.459,1233795.459,1233795.459,3230240.2622599998,3230240.2622599998 +770400.0,761142.0959999999,664963.533,1941693.51636,838643.83372,838643.83372,838643.83372,680089.7075,1051683.8264799998,2363221.22304,999008.37456,1522298.47552,592872.573,592872.573,592872.573,736279.4670000001,761142.0959999999,761142.0959999999,957297.4698299998,667198.4701500001,991736.98526,1729773.8115,490926.28174,624365.97577,791541.0,791541.0,791541.0,791541.0,2288500.5686399997,2288500.5686399997 +774000.0,129448.47299999998,117573.81599999999,343315.54271999997,145882.43450000003,145882.43450000003,145882.43450000003,65656.8115,217951.3696,852687.7625600002,241094.8113,367382.56960000005,199866.35699999996,199866.35699999996,199866.35699999996,126126.8015,129448.47299999998,129448.47299999998,249031.10738999996,96098.54174999999,142842.7707,249144.3675,70709.5443,89929.25265,166116.588,166116.588,166116.588,166116.588,389208.40881999995,389208.40881999995 +777600.0,128945.331,118050.999,344708.91708,132213.97442,132213.97442,132213.97442,45101.441,230621.61168,856068.7552000001,268809.27402,409614.13184000005,198400.917,198400.917,198400.917,122119.45899999999,128945.331,128945.331,248888.94783999998,90973.33965,135224.56905999998,235856.8065,66938.40794,85133.07587,169011.252,169011.252,169011.252,169011.252,387695.62854,387695.62854 +781200.0,148027.701,142680.99,416628.49079999997,131289.18088,131289.18088,131289.18088,50990.425500000005,272715.99295999995,883162.5664,290693.55966,442961.61472,202927.149,202927.149,202927.149,124536.45400000001,148027.701,148027.701,279737.94537,99991.43414999999,148629.24285999997,259237.05149999997,73573.94413999999,93572.23096999999,178416.21899999998,178416.21899999998,178416.21899999998,178416.21899999998,445069.95433999994,445069.95433999994 +784800.0,180559.80899999998,166005.921,484737.28932,141438.06775999998,141438.06775999998,141438.06775999998,62842.216499999995,388904.2004,967513.7484800002,365425.21302,556838.41984,235519.035,235519.035,235519.035,134392.2825,180559.80899999998,180559.80899999998,316103.13748000003,128895.78194999999,191593.23638,334174.2495,94841.83462,120620.99101,246855.594,246855.594,246855.594,246855.594,542883.15906,542883.15906 +788400.0,236142.81300000002,179066.331,522873.68652,149276.27319,149276.27319,149276.27319,81369.995,461663.51647999993,945752.0620800001,404934.94629000005,617043.72768,371593.926,371593.926,371593.926,235080.202,236142.81300000002,236142.81300000002,331731.03912,150546.66074999998,223775.53029999998,390306.1575,110772.6047,140881.93685,318000.65099999995,318000.65099999995,318000.65099999995,318000.65099999995,710002.72442,710002.72442 +792000.0,282448.887,226216.14600000004,660551.14632,158939.20207,158939.20207,158939.20207,82948.733,569679.54328,969296.0339200001,456802.39395,696079.8384,424472.10599999997,424472.10599999997,424472.10599999997,260083.50900000002,282448.887,282448.887,356592.53422000003,171801.12149999998,255368.5806,445410.315,126411.6894,160771.9137,382290.69299999997,382290.69299999997,382290.69299999997,382290.69299999997,849229.6535799999,849229.6535799999 +795600.0,357211.383,258770.478,755609.79576,184487.09268000003,184487.09268000003,184487.09268000003,90915.622,648743.3379200001,1075190.69312,543328.61268,827929.3145600001,458004.555,458004.555,458004.555,275193.6215,357211.383,357211.383,377611.56081999996,195478.13834999996,290562.56613999995,506795.1734999999,143833.29685999997,182928.92453,462909.53400000004,462909.53400000004,462909.53400000004,462909.53400000004,1074015.55822,1074015.55822 +799200.0,570466.3559999999,322844.679,942706.46268,303309.59494000004,303309.59494000004,303309.59494000004,174795.2325,1172355.326,1411546.0889599998,845517.57234,1288407.7292799999,508198.1760000001,508198.1760000001,508198.1760000001,410716.5405,570466.3559999999,570466.3559999999,585604.4985699999,303285.72014999995,450809.88525999995,786296.3115,223158.38173999998,283815.52577,607896.939,607896.939,607896.939,607896.939,1715202.1770399997,1715202.1770399997 +802800.0,1300659.045,732680.535,2139427.1622,1759646.3640800004,1759646.3640800004,1759646.3640800004,1512333.431,3525072.53624,4526896.01088,3096043.29699,4717780.262080001,1347331.602,1347331.602,1347331.602,2045358.0735,1300659.045,1300659.045,2710330.8634999995,1712799.50085,2545939.0111399996,4440591.2985,1260282.10186,1602842.00203,1638673.479,1638673.479,1638673.479,1638673.479,3910648.1953,3910648.1953 +806400.0,1206430.005,1297061.7000000002,3787420.1640000003,2335243.95291,2335243.95291,2335243.95291,2078188.315,4481400.16528,3671356.03456,3456464.28708,5266993.19936,1450378.446,1450378.446,1450378.446,1979793.4030000002,1206430.005,1206430.005,2310146.97316,2265971.7032999997,3368185.09972,5874741.453,1667307.57428,2120501.91494,1711777.7459999998,1711777.7459999998,1711777.7459999998,1711777.7459999998,3627332.8816999993,3627332.8816999993 +810000.0,2166877.446,2334998.913,6818196.82596,1872213.60601,1872213.60601,1872213.60601,2548342.3945000004,4696446.24584,7753417.27232,3876595.5532500003,5907193.224,2086002.7769999998,2086002.7769999998,2086002.7769999998,1785869.7534999999,2166877.446,2166877.446,2927824.0081999996,2143065.3246,3185494.63064,5556095.286,1576872.7573600002,2005485.8222800002,2447733.333,2447733.333,2447733.333,2447733.333,6515078.187639999,6515078.187639999 +813600.0,1691306.9069999997,1019987.571,2978363.70732,935854.6603999999,935854.6603999999,935854.6603999999,1148787.976,2655203.8004,7920687.001600001,1776431.65539,2706943.47488,1703470.878,1703470.878,1703470.878,1701508.074,1691306.9069999997,1691306.9069999997,2351689.13941,2439968.31765,3626817.1042600004,6325843.786500001,1795334.7127400003,2283328.3762700004,1241329.773,1241329.773,1241329.773,1241329.773,5085196.100379999,5085196.100379999 +817200.0,896017.1340000001,625143.6,1825419.312,537983.54016,537983.54016,537983.54016,709489.193,1749858.59464,5080405.09824,1150296.57603,1752832.87776,778072.722,778072.722,778072.722,758369.6399999999,896017.1340000001,896017.1340000001,991577.63757,1463160.2386499997,2174870.2806599997,3793378.3965,1076596.91634,1369228.96407,755919.4619999999,755919.4619999999,755919.4619999999,755919.4619999999,2694024.84956,2694024.84956 +820800.0,927551.1599999999,1234377.051,3604380.98892,774774.5365800001,774774.5365800001,774774.5365800001,1066218.7795000002,1916991.3704799998,3256669.9916800004,1521006.6494699998,2317724.41824,848307.2880000001,848307.2880000001,848307.2880000001,1178924.208,927551.1599999999,927551.1599999999,1153462.01152,996491.1923999999,1481204.1921599999,2583495.684,733220.67984,932518.9183199999,925629.2039999999,925629.2039999999,925629.2039999999,925629.2039999999,2788837.1543999994,2788837.1543999994 +824400.0,743994.888,790004.5320000001,2306813.23344,598982.1930400002,598982.1930400002,598982.1930400002,1010072.2239999998,1483501.4915200002,2434261.25824,1104138.94668,1682497.44256,686800.2690000001,686800.2690000001,686800.2690000001,914170.3304999999,743994.888,743994.888,873725.70636,801486.0576,1191344.7078399998,2077926.8159999999,589735.42016,750032.63168,698181.0510000001,698181.0510000001,698181.0510000001,698181.0510000001,2236944.6299199997,2236944.6299199997 +828000.0,654623.109,538143.8489999999,1571380.03908,386205.55193,386205.55193,386205.55193,752694.6560000001,1350428.19136,2268704.4544,984470.52375,1500145.56,636227.229,636227.229,636227.229,552406.036,654623.109,654623.109,798686.6231499999,722464.5393,1073885.56212,1873056.2129999998,531591.1918799999,676084.09974,641767.554,641767.554,641767.554,641767.554,1968233.48106,1968233.48106 +831600.0,1065271.815,1377257.0219999999,4021590.5042399997,1610253.9371600002,1610253.9371600002,1610253.9371600002,1533345.8769999999,2485539.8342399998,3281727.08864,1866522.83916,2844225.2787200003,978895.5059999999,978895.5059999999,978895.5059999999,1499356.1065000002,1065271.815,1065271.815,1696356.9856999996,1441419.89535,2142555.00494,3737014.5435,1060600.31806,1348884.29713,1223655.57,1223655.57,1223655.57,1223655.57,3202917.2570999996,3202917.2570999996 +835200.0,1046455.122,1391004.921,4061734.36932,1879807.1963,1879807.1963,1879807.1963,1302586.2115,2706084.78288,3589456.8998400006,2012659.1452799998,3066909.17376,1143451.731,1143451.731,1143451.731,1759613.0755,1046455.122,1046455.122,1790358.48862,1490045.7424499998,2214833.42458,3863081.5544999996,1096379.3364199998,1394388.4849099999,1264931.1300000001,1264931.1300000001,1264931.1300000001,1264931.1300000001,3146341.73348,3146341.73348 +838800.0,958428.441,1379297.988,4027550.1249599997,1256868.0390200003,1256868.0390200003,1256868.0390200003,1138194.421,2531613.0834399997,3560621.6684800005,1693991.7519,2581320.7648,1013228.6070000001,1013228.6070000001,1013228.6070000001,1413502.1845,958428.441,958428.441,1474794.35974,1283399.96805,1907671.06362,3327333.2505,944328.86538,1201008.85899,1209106.7489999998,1209106.7489999998,1209106.7489999998,1209106.7489999998,2881674.84594,2881674.84594 +842400.0,2267834.4510000004,1847943.2969999998,5395994.427239999,3613665.72292,3613665.72292,3613665.72292,2964989.986,3741958.5963999997,7044555.156480001,3803329.3218900003,5795549.442880001,2403542.766,2403542.766,2403542.766,3109115.5305,2267834.4510000004,2267834.4510000004,4115866.39399,2967405.7711499995,4410810.55366,7693274.221499999,2183424.4933399996,2776905.6475699996,2566501.704,2566501.704,2566501.704,2566501.704,6818622.24934,6818622.24934 +846000.0,1748318.7600000002,996215.337,2908948.7840400003,2430986.64105,2430986.64105,2430986.64105,1837010.9064999998,2836715.21688,5145647.801600001,2652749.6402399996,4042285.16608,1783120.9529999997,1783120.9529999997,1783120.9529999997,2447613.973,1748318.7600000002,1748318.7600000002,1582125.0701099997,2148575.9003999997,3193685.6593599995,5570381.964,1580927.4526399998,2010642.6327199999,1990902.405,1990902.405,1990902.405,1990902.405,5256611.7384,5256611.7384 +849600.0,1310039.172,946013.9100000001,2762360.6172,1561130.41282,1561130.41282,1561130.41282,1509734.4255000001,2201058.51888,4252402.848,1923279.99528,2930712.37376,1275462.1260000002,1275462.1260000002,1275462.1260000002,1701111.0375,1310039.172,1310039.172,1404211.9050699999,1567940.9435999996,2330618.3902399996,4065032.0759999994,1153694.8177599998,1467283.0064799997,1380182.331,1380182.331,1380182.331,1380182.331,3938851.11048,3938851.11048 +853200.0,1147240.068,960879.5489999999,2805768.2830799995,1351423.15814,1351423.15814,1351423.15814,1313238.227,2128987.75048,4054372.8563200003,1844102.38005,2810060.7696,1171998.357,1171998.357,1171998.357,1558381.6885000002,1147240.068,1147240.068,1439055.3959599996,1500793.27605,2230808.77082,3890945.5305000003,1104287.39818,1404446.0533900002,1316360.9370000002,1316360.9370000002,1316360.9370000002,1316360.9370000002,3449368.4711199994,3449368.4711199994 +856800.0,808157.2320000001,704797.548,2058008.84016,907310.9648900001,907310.9648900001,907310.9648900001,718295.032,1126882.96608,2513963.6883199997,1071812.80962,1633238.56704,629733.657,629733.657,629733.657,783643.0175000001,808157.2320000001,808157.2320000001,1026374.1107099999,710149.4936999999,1055580.2350799998,1841128.3169999998,522529.7509199999,664559.6496599999,841531.3019999999,841531.3019999999,841531.3019999999,841531.3019999999,2429859.41088,2429859.41088 +860400.0,136621.872,122707.66500000001,358306.3818,162429.73582,162429.73582,162429.73582,67983.34199999999,228963.10424,891820.3699200001,271895.30592,414316.65664,208569.369,208569.369,208569.369,131718.671,136621.872,136621.872,260025.61779999998,101549.2869,150944.86596,263275.929,74720.21604,95030.07342,177328.698,177328.698,177328.698,177328.698,410776.42848,410776.42848 +864000.0,138319.19400000002,121892.943,355927.39356,137768.23830000003,137768.23830000003,137768.23830000003,46838.77100000001,246455.18319999997,877566.36224,282034.15695000003,429766.33440000005,203242.032,203242.032,203242.032,126097.03749999999,138319.19400000002,138319.19400000002,255385.13181999998,94298.41394999999,140167.02517999997,244477.36949999997,69385.00581999999,88244.68861,177688.347,177688.347,177688.347,177688.347,415879.70996,415879.70996 +867600.0,151963.47600000002,143706.972,419624.35824,132573.04203,132573.04203,132573.04203,54701.3005,289989.57415999996,870359.9072000001,303872.3499,463043.5808,201589.434,201589.434,201589.434,123614.9495,151963.47600000002,151963.47600000002,280024.70314,102688.27245,152637.87657999998,266228.8545,75558.28442,96095.93891,180513.078,180513.078,180513.078,180513.078,456903.51784000004,456903.51784000004 +871200.0,177711.075,153940.227,449505.46284,129665.80440000001,129665.80440000001,129665.80440000001,59587.219999999994,353695.31343999994,860055.69856,339146.7769199999,516795.0886399999,204438.92700000003,204438.92700000003,204438.92700000003,122377.25149999998,177711.075,177711.075,285349.32023,118923.34139999998,176770.00375999996,308319.774,87504.08823999998,111288.75652,234147.57300000003,234147.57300000003,234147.57300000003,234147.57300000003,534317.9654999999,534317.9654999999 +874800.0,219794.07600000003,165167.86800000002,482290.17456,139519.64883999998,139519.64883999998,139519.64883999998,76756.9215,397879.13576,855744.3571200001,373570.23522,569249.88224,321395.598,321395.598,321395.598,209030.0625,219794.07600000003,219794.07600000003,302744.30042999994,139124.1744,206796.92096,360692.304,102367.91104,130192.74592,292044.201,292044.201,292044.201,292044.201,660847.5218400001,660847.5218400001 +878400.0,256543.72499999998,200657.84100000001,585920.89572,147882.39586999998,147882.39586999998,147882.39586999998,77868.70349999999,489195.3672,867144.80192,415864.78226999997,633698.71584,368875.305,368875.305,368875.305,236116.31749999998,256543.72499999998,256543.72499999998,322911.37502,155434.626,231041.09839999996,402978.66,114369.1816,145456.1068,335218.488,335218.488,335218.488,335218.488,771341.4665,771341.4665 +882000.0,313585.305,226376.244,661018.63248,167569.61265,167569.61265,167569.61265,84626.68549999999,545569.10912,921242.7296000001,482027.04962999996,734517.4089599999,388904.01,388904.01,388904.01,243334.2345,313585.305,313585.305,336371.75597999996,170737.20269999997,253787.15067999996,442652.0069999999,125628.85531999999,159776.29585999998,400244.511,400244.511,400244.511,400244.511,942846.4837,942846.4837 +885600.0,501979.905,257584.239,752145.97788,275201.11674,275201.11674,275201.11674,164691.35549999998,1036593.2606399999,1191442.3507200002,749450.10882,1142019.2134399998,430385.62799999997,430385.62799999997,430385.62799999997,370414.527,501979.905,501979.905,540875.0724,245951.79794999998,365587.61078,637652.8095,180971.94022,230162.29981,524611.515,524611.515,524611.515,524611.515,1509286.2477,1509286.2477 +889200.0,1234989.219,618738.192,1806715.52064,1696504.36373,1696504.36373,1696504.36373,1470181.1915000002,3377002.02848,4188219.1820800006,2952678.7298399997,4499319.96928,1194894.081,1194894.081,1194894.081,1803323.7249999999,1234989.219,1234989.219,2614440.13207,1598864.04225,2376583.0949,4145203.0725,1176448.1101,1496220.91855,1533729.645,1533729.645,1533729.645,1533729.645,3713200.9184599994,3713200.9184599994 +892800.0,1112009.652,1223139.0150000001,3571565.9238,2157798.1433800007,2157798.1433800007,2157798.1433800007,1975171.3379999998,4195644.164799999,3241077.86368,3270579.5539200003,4983740.272640001,1332778.581,1332778.581,1332778.581,1807653.8514999999,1112009.652,1112009.652,2215889.5782399997,2162252.1267,3214014.2722799997,5605838.847,1590990.4537199999,2023440.87906,1591822.1130000001,1591822.1130000001,1591822.1130000001,1591822.1130000001,3343442.35368,3343442.35368 +896400.0,2083907.793,2257719.045,6592539.6114,1727462.86757,1727462.86757,1727462.86757,2279902.1455,4423318.54456,7422394.382080001,3675428.0577,5600652.2784,1973108.5829999996,1973108.5829999996,1973108.5829999996,1653639.323,2083907.793,2083907.793,2661885.57284,1934659.0435499998,2875715.4178199996,5015782.705499999,1423526.9011799998,1810458.7098899998,2342312.613,2342312.613,2342312.613,2342312.613,6265616.097619999,6265616.097619999 +900000.0,1550269.0019999999,987503.2559999999,2883509.5075199995,835835.90816,835835.90816,835835.90816,998275.3339999999,2389006.6782400003,7326902.09088,1527534.85332,2327672.15744,1523693.9069999997,1523693.9069999997,1523693.9069999997,1555381.9155,1550269.0019999999,1550269.0019999999,2192622.4346,2310272.64045,3434034.88778,5989595.7345,1699904.3132200001,2161958.84131,1105202.0729999999,1105202.0729999999,1105202.0729999999,1105202.0729999999,4661142.13268,4661142.13268 +903600.0,808593.9180000001,550978.242,1608856.4666399998,472879.6492200001,472879.6492200001,472879.6492200001,620278.5225,1508580.44296,4217189.66272,1010248.51872,1539426.3142400002,661405.362,661405.362,661405.362,651295.799,808593.9180000001,808593.9180000001,874338.7312399999,1220673.0658500001,1814432.5571400002,3164707.9485000004,898174.2558600002,1142308.8690300002,658106.3520000001,658106.3520000001,658106.3520000001,658106.3520000001,2431172.3801200003,2431172.3801200003 +907200.0,829382.004,1161698.067,3392158.35564,712298.5103300001,712298.5103300001,712298.5103300001,972743.6074999999,1731333.3379199998,2893866.4256,1381136.6018100001,2104589.10752,738092.4750000001,738092.4750000001,738092.4750000001,1090668.159,829382.004,829382.004,989469.0297699998,879499.86705,1307305.97522,2280184.8405,647138.1737800001,823038.14719,829153.611,829153.611,829153.611,829153.611,2493675.22536,2493675.22536 +910800.0,683941.143,703263.699,2053530.00108,558673.00665,558673.00665,558673.00665,945653.31,1367440.19312,2206389.8745600004,1020518.33037,1555075.55104,619925.9369999999,619925.9369999999,619925.9369999999,784785.8795,683941.143,683941.143,789640.0953999999,726811.8700499999,1080347.52042,1884327.0705,534789.96858,680152.34259,639953.955,639953.955,639953.955,639953.955,2056383.0366200001,2056383.0366200001 +914400.0,591918.438,481143.87600000005,1404940.11792,337665.55163000006,337665.55163000006,337665.55163000006,634174.0299999999,1214958.90272,1996611.8112,882625.56396,1344953.24032,557765.145,557765.145,557765.145,486941.7525,591918.438,591918.438,709039.8393,635917.9508999999,945241.0035599999,1648676.169,467909.99844,595093.5886199999,572436.27,572436.27,572436.27,572436.27,1779701.4369199998,1779701.4369199998 +918000.0,997427.9369999999,1230869.181,3594138.00852,1552491.67095,1552491.67095,1552491.67095,1449465.2234999998,2282438.34656,2973814.19968,1757659.33875,2678338.04,897703.602,897703.602,897703.602,1436070.174,997427.9369999999,997427.9369999999,1597967.71901,1357260.2392499999,2017458.4296999997,3518822.8425,998675.4352999999,1270127.48315,1112969.088,1112969.088,1112969.088,1112969.088,2998933.33058,2998933.33058 +921600.0,970503.2370000001,1312183.443,3831575.65356,1760080.3726000001,1760080.3726000001,1760080.3726000001,1222514.0515,2465683.2093599997,3259867.62368,1850161.95315,2819294.4048,1048402.9380000001,1048402.9380000001,1048402.9380000001,1661033.5385,970503.2370000001,970503.2370000001,1699557.9541200001,1396037.9726999998,2075098.41868,3619357.707,1027208.18732,1306415.78186,1171207.095,1171207.095,1171207.095,1171207.095,2917979.73258,2917979.73258 +925200.0,885371.5140000002,1279713.618,3736763.76456,1143318.77528,1143318.77528,1143318.77528,1055383.9064999998,2349638.298,3231478.88576,1566530.2495499998,2387093.7136,895691.0790000001,895691.0790000001,895691.0790000001,1315424.033,885371.5140000002,885371.5140000002,1366621.66368,1178857.2087,1752276.6410800002,3056296.4670000006,867406.0449200001,1103177.4866600002,1116973.419,1116973.419,1116973.419,1116973.419,2662017.0187600004,2662017.0187600004 +928800.0,2206965.795,1788237.8429999999,5221654.50156,3542363.11616,3542363.11616,3542363.11616,2889431.6990000005,3547788.13312,6706154.0704,3700734.56739,5639214.578880001,2324041.4970000004,2324041.4970000004,2324041.4970000004,3004150.058,2206965.795,2206965.795,3987885.1847899994,2853409.356,4241364.0304,7397727.96,2099545.6496,2670227.5208,2470513.6289999997,2470513.6289999997,2470513.6289999997,2470513.6289999997,6635610.4903,6635610.4903 +932400.0,1652326.2389999998,904449.4619999999,2640992.42904,2263188.62,2263188.62,2263188.62,1737939.1575,2624524.0378400004,4637810.49536,2442538.2353399997,3721963.0252799997,1659502.9500000002,1659502.9500000002,1659502.9500000002,2190152.86,1652326.2389999998,1652326.2389999998,1466267.0233899998,1953356.6582999998,2903507.9217199995,5064258.003,1437284.6522799998,1827955.98394,1824061.116,1824061.116,1824061.116,1824061.116,4967994.225259999,4967994.225259999 +936000.0,1211990.607,868138.971,2534965.79532,1389130.2673600002,1389130.2673600002,1389130.2673600002,1352121.1269999999,2000282.5016799998,3783788.3552,1760044.96752,2681973.28384,1140017.595,1140017.595,1140017.595,1466260.8555,1211990.607,1211990.607,1302492.91588,1421509.05855,2112959.14382,3685393.8555,1045949.87518,1330251.68689,1257441.0750000002,1257441.0750000002,1257441.0750000002,1257441.0750000002,3644051.75838,3644051.75838 +939600.0,1059959.688,876507.4290000001,2559401.6926800003,1252217.7872600001,1252217.7872600001,1252217.7872600001,1205977.269,1944203.1775200001,3664645.7401600005,1699226.76672,2589297.93024,1066668.8760000002,1066668.8760000002,1066668.8760000002,1414586.7365,1059959.688,1059959.688,1312835.2095299999,1372383.2632499998,2039937.5913,3558030.6825,1009802.9937,1284279.64635,1206727.587,1206727.587,1206727.587,1206727.587,3186945.46192,3186945.46192 +943200.0,748632.4890000001,641250.471,1872451.37532,819041.48051,819041.48051,819041.48051,664200.929,1006761.5244799999,2258516.4224000005,975653.4456900001,1486710.01248,566713.0619999999,566713.0619999999,566713.0619999999,712840.7754999999,748632.4890000001,748632.4890000001,937206.01325,646299.2348999999,960671.9491599998,1675590.609,475548.57284,604808.41982,769748.9069999999,769748.9069999999,769748.9069999999,769748.9069999999,2250888.3502599997,2250888.3502599997 +946800.0,125462.541,111334.89300000001,325097.88756,139806.69373,139806.69373,139806.69373,64936.364499999996,206641.04744,791383.16224,228156.11552999998,347666.46176,186971.20799999998,186971.20799999998,186971.20799999998,119633.08700000001,125462.541,125462.541,234206.13905,91432.51245,135907.09258,237047.2545,67276.26842,85562.77091,158472.30599999998,158472.30599999998,158472.30599999998,158472.30599999998,377224.03994,377224.03994 +950400.0,123312.12,110244.783,321914.76636,125876.85011000001,125876.85011000001,125876.85011000001,44093.724500000004,216130.53352000003,787088.0864,251316.61758,382958.65536000003,183836.445,183836.445,183836.445,114464.04899999998,123312.12,123312.12,232065.45335999998,84951.92115000001,126274.21366000001,220245.72150000004,62507.83334000001,79498.21757000001,159278.223,159278.223,159278.223,159278.223,370758.4408,370758.4408 +954000.0,137109.717,127421.916,372071.99472,121688.62882000001,121688.62882000001,121688.62882000001,47640.215,230100.85887999996,791467.5475199999,262815.39375,400480.60000000003,183550.266,183550.266,183550.266,114157.211,137109.717,137109.717,248123.88848,89139.40245,132498.56858,231102.1545,65588.99242,83416.87291,164671.992,164671.992,164671.992,164671.992,412243.21577999997,412243.21577999997 +957600.0,145307.538,137388.714,401175.04488000006,116989.39868000001,116989.39868000001,116989.39868000001,49226.8875,245992.90047999998,785555.40992,298078.36884,454214.65728,181793.265,181793.265,181793.265,112243.5405,145307.538,145307.538,262949.05883999995,102327.83055,152102.10861999998,265294.3755,75293.07038,95758.63649,181649.238,181649.238,181649.238,181649.238,436891.33092,436891.33092 +961200.0,179628.68700000003,150885.96600000001,440587.02072,125476.65922,125476.65922,125476.65922,69650.9695,305004.56456,780564.86272,323657.34366,493192.14272,222200.943,222200.943,222200.943,145908.3885,179628.68700000003,179628.68700000003,266698.627,119840.51655,178133.31102,310697.6355,88178.94798,112147.05129,243921.783,243921.783,243921.783,243921.783,540083.5855800001,540083.5855800001 +964800.0,220143.456,161178.252,470640.49584,133782.32450000002,133782.32450000002,133782.32450000002,73385.91399999999,391809.90991999995,782915.6934400001,363896.87544,554509.52448,291478.014,291478.014,291478.014,208926.7985,220143.456,220143.456,287022.73847,135825.35624999998,201893.4925,352139.8125,99940.63249999999,127105.70375,278075.06999999995,278075.06999999995,278075.06999999995,278075.06999999995,661897.99104,661897.99104 +968400.0,269830.389,180176.66999999998,526115.8764,150672.67798,150672.67798,150672.67798,81669.8575,478169.4997599999,808300.0934400001,423717.52185,645664.7952,349094.289,349094.289,349094.289,226719.262,269830.389,269830.389,314363.18732,155581.36154999997,231259.20901999998,403359.0855,114477.14997999999,145593.42229,346093.455,346093.455,346093.455,346093.455,811290.03626,811290.03626 +972000.0,345795.306,221058.33599999998,645490.3411199999,248439.81261000002,248439.81261000002,248439.81261000002,161034.84949999998,597339.79808,983502.46336,529891.79418,807454.16256,393758.32499999995,393758.32499999995,393758.32499999995,266677.985,345795.306,345795.306,339489.6557,198518.8905,295082.4002,514678.60500000004,146070.6898,185774.46790000002,416713.542,416713.542,416713.542,416713.542,1039691.2200399999,1039691.2200399999 +975600.0,1103243.3220000002,1120185.744,3270942.37248,1085243.59119,1085243.59119,1085243.59119,1072104.7435,1659167.20232,1709167.15072,1449215.09439,2208327.7628800003,685979.439,685979.439,685979.439,1635490.626,1103243.3220000002,1103243.3220000002,2182077.25034,633213.51885,941221.0823399998,1641664.6785,465920.07065999997,592562.77443,1530271.989,1530271.989,1530271.989,1530271.989,3317084.92148,3317084.92148 +979200.0,2071374.909,1833306.4500000002,5353254.834,2696918.34907,2696918.34907,2696918.34907,1902723.3855,3096332.62128,3462717.3356800005,3044328.53046,4638976.80832,1274776.3110000002,1274776.3110000002,1274776.3110000002,1951383.6999999997,2071374.909,2071374.909,3145088.70676,1634166.29655,2429057.06302,4236727.435500001,1202423.59598,1529256.85529,2275079.568,2275079.568,2275079.568,2275079.568,6227933.89306,6227933.89306 +982800.0,2433169.806,2147584.4760000003,6270946.66992,2943627.25173,2943627.25173,2943627.25173,2394043.841,4046318.6352,9651373.3344,3161624.0565000004,4817712.848,2494556.892,2494556.892,2494556.892,2486538.698,2433169.806,2433169.806,2556373.7639699997,3336719.8806,4959766.341039999,8650755.246,2455166.7269599997,3122510.70308,2151483.8370000003,2151483.8370000003,2151483.8370000003,2151483.8370000003,7315730.550039999,7315730.550039999 +986400.0,1783267.5180000002,1363663.206,3981896.56152,2044131.4153700005,2044131.4153700005,2044131.4153700005,2560707.5795000005,3406374.4719999996,6251925.1136,3408824.21964,5194398.81088,2474618.535,2474618.535,2474618.535,2727277.5845,1783267.5180000002,1783267.5180000002,2008250.7142099997,3152181.3430500003,4685464.61362,8172322.000500001,2319382.81538,2949819.08399,1944569.7090000003,1944569.7090000003,1944569.7090000003,1944569.7090000003,5361691.004120001,5361691.004120001 +990000.0,1326603.06,1093727.847,3193685.31324,1873352.1152500003,1873352.1152500003,1873352.1152500003,2303056.3325,3409566.9313600003,6756637.324800001,2702788.37745,4118534.6704,1176106.005,1176106.005,1176106.005,2294147.0475,1326603.06,1326603.06,1264990.04814,2378258.0018999996,3535089.6719599995,6165854.079,1749928.11004,2225579.71042,1575712.7909999997,1575712.7909999997,1575712.7909999997,1575712.7909999997,3988653.2004,3988653.2004 +993600.0,1075126.956,891104.889,2602026.2758799996,1398688.3896700002,1398688.3896700002,1398688.3896700002,1544279.4394999999,2688546.8365599997,3470646.3968,2019234.147,3076928.2240000004,1070626.092,1070626.092,1070626.092,1529151.526,1075126.956,1075126.956,1119727.5142299999,1464462.72675,2176806.3246999998,3796755.2175,1077555.2903,1370447.83565,1157541.753,1157541.753,1157541.753,1157541.753,3232548.38104,3232548.38104 +997200.0,802325.6280000001,631470.816,1843894.78272,772381.21785,772381.21785,772381.21785,853647.774,1742661.42536,2442054.7545600003,1342072.1800499998,2045062.3696,749596.9709999999,749596.9709999999,749596.9709999999,1036535.8570000001,802325.6280000001,802325.6280000001,803793.78495,951088.8618,1413717.27112,2465785.938,699813.53288,890031.30524,862969.953,862969.953,862969.953,862969.953,2412325.72152,2412325.72152 +1000800.0,709131.993,566324.7660000001,1653668.3167200002,660423.76774,660423.76774,660423.76774,756750.8725,1367126.56176,2219679.45728,1124390.99661,1713357.70912,665336.979,665336.979,665336.979,900427.031,709131.993,709131.993,700956.6872099999,829059.0488999999,1232329.7467599998,2149412.349,610023.69524,775835.50502,762782.286,762782.286,762782.286,762782.286,2132123.52562,2132123.52562 +1004400.0,956024.919,824654.709,2407991.75028,1092343.0265000002,1092343.0265000002,1092343.0265000002,1039672.2000000001,1845590.0471199998,3296921.78112,1586356.8199500002,2417305.6304,952736.7450000001,952736.7450000001,952736.7450000001,1226731.1105,956024.919,956024.919,1205512.35389,1208914.27155,1796954.05302,3134222.1855,889522.1059800001,1131304.96029,1071783.945,1071783.945,1071783.945,1071783.945,2874448.25646,2874448.25646 +1008000.0,1005460.1129999999,874677.7440000001,2554059.01248,1177833.2055600001,1177833.2055600001,1177833.2055600001,1101396.5340000002,1942355.4424000003,3505886.24896,1674856.89063,2552162.88096,1011486.0569999999,1011486.0569999999,1011486.0569999999,1292506.95,1005460.1129999999,1005460.1129999999,1298292.18896,1283261.2150499998,1907464.8184199997,3326973.5204999996,944226.7705799999,1200879.0135899999,1137637.299,1137637.299,1137637.299,1137637.299,3023083.40642,3023083.40642 +1011600.0,1012453.6350000001,877213.5629999998,2561463.6039599995,1207496.51737,1207496.51737,1207496.51737,1128648.1534999998,1961974.53696,3514574.4512,1690146.15903,2575460.81376,1016713.5750000001,1016713.5750000001,1016713.5750000001,1301909.3605,1012453.6350000001,1012453.6350000001,1300843.1243599998,1292410.7766,1921064.9074399997,3350694.606,950959.04056,1209441.19588,1143714.798,1143714.798,1143714.798,1143714.798,3044110.5959,3044110.5959 +1015200.0,1024023.591,879785.1510000001,2568972.64092,1266427.0608,1266427.0608,1266427.0608,1180646.9185,1994343.39688,3521961.30752,1717393.49313,2616980.56096,1023780.297,1023780.297,1023780.297,1317450.183,1024023.591,1024023.591,1304394.1068600002,1308065.8653,1944334.94052,3391281.873,962478.09348,1224091.2665400002,1154195.5499999998,1154195.5499999998,1154195.5499999998,1154195.5499999998,3078897.5969399996,3078897.5969399996 +1018800.0,1024676.9609999999,880297.5599999998,2570468.8751999997,1267718.7526300002,1267718.7526300002,1267718.7526300002,1182266.428,1997059.9196,3522955.27168,1719055.86804,2619513.7036800003,1024603.2749999999,1024603.2749999999,1024603.2749999999,1317845.3120000002,1024676.9609999999,1024676.9609999999,1303695.6419499998,1308309.9588,1944697.7659199997,3391914.7079999996,962657.69808,1224319.68984,1154648.775,1154648.775,1154648.775,1154648.775,3080862.0627399995,3080862.0627399995 +1022400.0,1019002.9290000001,877240.209,2561541.41028,1248115.25982,1248115.25982,1248115.25982,1165157.581,1983619.3231199998,3508759.5916800005,1707578.3100600003,2602024.0915200002,1019605.161,1019605.161,1019605.161,1308846.6125,1019002.9290000001,1019002.9290000001,1298163.28577,1299496.8024,1931597.7161599998,3369065.784,956172.95584,1216072.31632,1148334.3029999998,1148334.3029999998,1148334.3029999998,1148334.3029999998,3063802.13986,3063802.13986 +1026000.0,966897.3839999998,777072.402,2269051.41384,1029285.7309900001,1029285.7309900001,1029285.7309900001,875957.4635,1613684.0909599997,2487508.99008,1384693.1143500002,2110008.5552000003,790343.4810000001,790343.4810000001,790343.4810000001,1017781.2679999999,966897.3839999998,966897.3839999998,1226391.8952999997,1016272.9475999998,1510608.1838399998,2634781.7159999995,747776.1441599999,951030.73368,984321.5549999999,984321.5549999999,984321.5549999999,984321.5549999999,2907138.1345599997,2907138.1345599997 +1029600.0,422528.226,295305.96900000004,862293.42948,541149.34896,541149.34896,541149.34896,363602.12,770231.5614399998,987517.6620800002,640827.84759,976499.5772800001,347668.233,347668.233,347668.233,442388.639,422528.226,422528.226,697198.8602799999,223434.2718,332117.11512,579274.038,164403.48888,209090.34324,532500.858,532500.858,532500.858,532500.858,1270401.53284,1270401.53284 +1033200.0,146452.66199999998,104605.59900000002,305448.34908,154566.98422,154566.98422,154566.98422,62958.39200000001,291645.57624,728844.8352,280336.32984,427179.16928000003,199589.175,199589.175,199589.175,115206.5495,146452.66199999998,146452.66199999998,219440.75699,89195.86755000001,132582.49942,231248.5455,65630.53958000001,83469.71309,160041.03600000002,160041.03600000002,160041.03600000002,160041.03600000002,440334.33707999997,440334.33707999997 +1036800.0,143235.063,111507.945,325603.19940000004,130833.19843,130833.19843,130833.19843,46413.1815,303144.13328,719141.6377600001,269207.17425,410220.456,194978.63400000002,194978.63400000002,194978.63400000002,108642.058,143235.063,143235.063,215690.17391999997,82660.59719999999,122868.34447999997,214305.25199999998,60821.87151999999,77353.99096,154791.795,154791.795,154791.795,154791.795,430660.08942,430660.08942 +1040400.0,153224.316,130683.84,381596.81279999996,127098.44026,127098.44026,127098.44026,49874.8705,311522.31408,736963.6979200001,278630.51874,424579.83808,196685.48400000003,196685.48400000003,196685.48400000003,107900.4675,153224.316,153224.316,224584.84996999995,94389.39314999999,140302.25845999998,244713.24149999997,69451.94854,88329.82716999999,158626.518,158626.518,158626.518,158626.518,460694.44343999994,460694.44343999994 +1044000.0,156731.55,149525.376,436614.09792000003,126488.32691,126488.32691,126488.32691,56144.52900000001,305666.87896,753819.0374400001,294646.13703,448984.58976,195292.743,195292.743,195292.743,106527.0535,156731.55,156731.55,245518.54236,98115.08129999999,145840.19491999998,254372.433,72193.31908,91816.33534,183962.25,183962.25,183962.25,183962.25,471239.52699999994,471239.52699999994 +1047600.0,173361.561,159877.542,466842.42263999995,132514.30379,132514.30379,132514.30379,62818.938,308777.37392,758082.3110400001,317976.51501,484535.64192,256940.304,256940.304,256940.304,118284.796,173361.561,173361.561,246325.82871,110486.39355,164229.15782,286446.2055,81296.16118,103393.43989000001,223708.06500000003,223708.06500000003,223708.06500000003,223708.06500000003,521240.42673999997,521240.42673999997 +1051200.0,203202.24300000002,172588.2,503957.544,137265.42236000003,137265.42236000003,137265.42236000003,68000.646,345036.50312,755541.92896,336794.28195,513210.3344,291467.442,291467.442,291467.442,185487.28100000002,203202.24300000002,203202.24300000002,263692.00662999996,126475.16174999998,187995.17869999996,327898.5675,93060.73629999999,118355.76865,256221.804,256221.804,256221.804,256221.804,610961.41062,610961.41062 +1054800.0,250504.00499999998,185469.12,541569.8304,148735.42717,148735.42717,148735.42717,75304.285,426184.40688,767797.792,387509.6442,590490.8864,318504.627,318504.627,318504.627,202587.028,250504.00499999998,250504.00499999998,277127.05812999996,139519.95659999998,207385.21943999996,361718.40599999996,102659.12855999998,130563.11987999998,303339.396,303339.396,303339.396,303339.396,753182.0417,753182.0417 +1058400.0,301856.68799999997,197834.39399999997,577676.43048,238923.29384000003,238923.29384000003,238923.29384000003,153208.49250000002,519396.17384,907041.7728,464949.1791,708493.9872000001,343347.006,343347.006,343347.006,235225.704,301856.68799999997,301856.68799999997,306662.38694,175862.22255,261405.08141999997,455939.0955,129399.85758,164572.30209,354782.712,354782.712,354782.712,354782.712,907582.4419199999,907582.4419199999 +1062000.0,1045833.642,1075226.529,3139661.4646799997,1063540.6621400001,1063540.6621400001,1063540.6621400001,1063686.7710000002,1566259.0628000002,1559261.06368,1351285.83975,2059102.232,630466.92,630466.92,630466.92,1603295.3824999998,1045833.642,1045833.642,1986732.0921499997,594647.68545,883896.06578,1541679.1845,437543.23522000003,556472.77231,1420997.163,1420997.163,1420997.163,1420997.163,3144473.1502799997,3144473.1502799997 +1065600.0,1950836.4000000001,1737111.327,5072365.07484,2544452.45758,2544452.45758,2544452.45758,1773562.2275,2917504.5329599995,3246237.7036800003,2911640.51409,4436785.54528,1210863.0690000001,1210863.0690000001,1210863.0690000001,1717156.8645000001,1950836.4000000001,1950836.4000000001,2953042.18885,1543823.39205,2294769.58522,4002505.0905,1135949.06378,1444713.7421900001,2159505.5760000004,2159505.5760000004,2159505.5760000004,2159505.5760000004,5865514.776000001,5865514.776000001 +1069200.0,2315315.6279999996,2043794.5620000002,5967880.121040001,2741631.59292,2741631.59292,2741631.59292,2268815.5069999998,3791092.80568,9258146.296319999,2966948.67504,4521064.64768,2378028.489,2378028.489,2378028.489,2324492.6075,2315315.6279999996,2315315.6279999996,2360701.82881,3246074.5220999997,4825029.289639999,8415748.761,2388469.64836,3037684.55278,1958937.426,1958937.426,1958937.426,1958937.426,6961382.321519999,6961382.321519999 +1072800.0,1670783.088,1258625.577,3675186.68484,1859591.8319,1859591.8319,1859591.8319,2423978.823,3169778.70384,5708060.2432,3208535.2238100003,4889196.531520001,2224006.323,2224006.323,2224006.323,2462875.156,1670783.088,1670783.088,1871963.9914299997,2908789.3961999994,4323682.0160799995,7541305.841999999,2140294.41992,2722052.29916,1828868.1809999999,1828868.1809999999,1828868.1809999999,1828868.1809999999,5023487.817919999,5023487.817919999 +1076400.0,1224661.509,972735.24,2840386.9008,1733255.4218100002,1733255.4218100002,1733255.4218100002,2127378.071,3219154.65408,6314379.153280001,2496478.86873,3804158.2761600004,1063963.617,1063963.617,1063963.617,2107783.608,1224661.509,1224661.509,1086056.6484299998,2140497.6448500003,3181677.98074,5549438.338500001,1574983.4522600002,2003082.98123,1418788.3530000001,1418788.3530000001,1418788.3530000001,1418788.3530000001,3682148.93706,3682148.93706 +1080000.0,983752.068,821128.065,2397693.9497999996,1278135.4373700004,1278135.4373700004,1278135.4373700004,1416666.2895,2456282.69568,3075149.76896,1879561.4096700002,2864093.5766400006,971841.8699999999,971841.8699999999,971841.8699999999,1382646.881,983752.068,983752.068,1010582.2698399998,1319303.4246,1961038.6706400001,3420416.2860000003,970746.7173600001,1234607.40228,1047904.7189999999,1047904.7189999999,1047904.7189999999,1047904.7189999999,2957814.5511199995,2957814.5511199995 +1083600.0,724378.233,564717.8640000001,1648976.16288,675900.7811600001,675900.7811600001,675900.7811600001,753097.0545,1559167.2821599997,2175531.6704,1206405.63309,1838332.39328,665855.988,665855.988,665855.988,925421.7945000001,724378.233,724378.233,700807.19722,846774.26325,1258661.9912999999,2195340.6825,623058.5937,792413.44635,771157.7339999999,771157.7339999999,771157.7339999999,771157.7339999999,2177963.88722,2177963.88722 +1087200.0,642159.84,506552.502,1479133.30584,570843.09216,570843.09216,570843.09216,676037.7925,1239220.19576,1967673.9488000001,1010355.9862200001,1539590.0742400002,594253.4550000001,594253.4550000001,594253.4550000001,785345.827,642159.84,642159.84,601260.2404899999,736230.2260499999,1094347.1508199999,1908745.0304999999,541720.0181799999,688966.0633899999,676539.6479999999,676539.6479999999,676539.6479999999,676539.6479999999,1930760.5855999999,1930760.5855999999 +1090800.0,887132.0189999999,762383.511,2226159.8521200004,1000855.7309300001,1000855.7309300001,1000855.7309300001,960309.7035000001,1709960.5789599998,3033110.86336,1471770.8611200002,2242698.4550400004,874606.89,874606.89,874606.89,1117198.6665,887132.0189999999,887132.0189999999,1104547.9767399998,1112557.8176999998,1653727.9166799996,2884409.1569999997,818622.7893199999,1041134.3528599999,983877.4679999999,983877.4679999999,983877.4679999999,983877.4679999999,2667310.2704599993,2667310.2704599993 +1094400.0,930040.2810000001,806140.6680000001,2353930.75056,1080438.1137,1080438.1137,1080438.1137,1014638.121,1792483.9954400002,3213824.89984,1548147.9409200002,2359082.5766400006,926587.08,926587.08,926587.08,1175192.5359999998,930040.2810000001,930040.2810000001,1190425.6253499999,1177870.005,1750809.2419999996,3053737.05,866679.6579999999,1102253.659,1042892.925,1042892.925,1042892.925,1042892.925,2796321.11154,2796321.11154 +1098000.0,931826.64,803660.9100000001,2346689.8572000004,1104973.65693,1104973.65693,1104973.65693,1035983.7845000001,1799883.0652,3200260.0096,1554762.5293200002,2369161.94944,925320.504,925320.504,925320.504,1176729.2635000001,931826.64,931826.64,1186846.31676,1179826.7665499998,1753717.81102,3058810.1355,868119.4479799999,1104084.8012899999,1043127.855,1043127.855,1043127.855,1043127.855,2801692.0976,2801692.0976 +1101600.0,983270.679,845131.0560000001,2467782.68352,1209336.14923,1209336.14923,1209336.14923,1133675.4205,1926582.2856799997,3382860.93184,1653002.0341800002,2518860.2425600006,984260.7959999999,984260.7959999999,984260.7959999999,1255974.6185,983270.679,983270.679,1237677.01148,1252875.0410999998,1862298.2092399998,3248194.5509999995,921868.5487599999,1172443.5569799999,1102996.2480000001,1102996.2480000001,1102996.2480000001,1102996.2480000001,2956367.1748599997,2956367.1748599997 +1105200.0,970114.521,832168.23,2429931.2315999996,1195006.2205400001,1195006.2205400001,1195006.2205400001,1119442.0265000002,1896317.7120800002,3323144.7462400002,1629941.8512300001,2483720.91616,967107.774,967107.774,967107.774,1234507.225,970114.521,970114.521,1220929.29855,1233259.3683,1833141.08572,3197339.103,907435.2882800001,1154087.1619400003,1086461.5499999998,1086461.5499999998,1086461.5499999998,1086461.5499999998,2916810.99314,2916810.99314 +1108800.0,969294.543,833844.135,2434824.8742,1181006.03104,1181006.03104,1181006.03104,1107878.7335,1894164.13616,3330263.5628800006,1627020.1794,2479268.8448,968419.254,968419.254,968419.254,1233392.426,969294.543,969294.543,1221357.5569,1231497.8450999998,1830522.7228399997,3192772.1909999996,906139.1551599998,1152438.72418,1086233.613,1086233.613,1086233.613,1086233.613,2914345.59262,2914345.59262 +1112400.0,918883.773,736611.108,2150904.43536,972791.83144,972791.83144,972791.83144,830241.9755000001,1537916.20544,2350287.0464000003,1316565.5151600002,2006195.0707200002,748075.794,748075.794,748075.794,954856.6089999999,918883.773,918883.773,1152588.7800699999,959472.15525,1426178.3641,2487520.4025,705981.9809,897876.41195,929697.096,929697.096,929697.096,929697.096,2762777.21082,2762777.21082 +1116000.0,401231.121,279228.06299999997,815345.94396,513841.0734600001,513841.0734600001,513841.0734600001,344437.387,736742.7705599999,930516.3737600001,610492.94565,930274.9648000001,333417.492,333417.492,333417.492,413888.6325,401231.121,401231.121,652385.81707,211208.75954999996,313944.87221999996,547578.2655,155407.92677999998,197649.67868999997,501249.21599999996,501249.21599999996,501249.21599999996,501249.21599999996,1206368.2371399999,1206368.2371399999 +1119600.0,140260.032,100093.20300000001,292272.15276,149959.52037,149959.52037,149959.52037,61414.03799999999,283751.96944,689419.89312,269337.49248,410419.0361600001,192642.033,192642.033,192642.033,109696.64300000001,140260.032,140260.032,209647.67875999998,84932.3232,126245.08287999999,220194.91199999998,62493.41312,79479.87776,152621.844,152621.844,152621.844,152621.844,421715.16288,421715.16288 +1123200.0,136840.908,105004.644,306613.56048,127328.02489,127328.02489,127328.02489,42458.668000000005,294958.28119999997,687779.80928,260195.36990999998,396488.18272,190644.57300000003,190644.57300000003,190644.57300000003,104514.718,136840.908,136840.908,208123.10115999996,78014.2104,115961.86335999999,202259.064,57403.04864,73005.89072,148540.005,148540.005,148540.005,148540.005,411434.99672,411434.99672 +1126800.0,151657.554,133529.217,389905.31364,129419.99268000001,129419.99268000001,129419.99268000001,49647.297000000006,322518.71872,741401.2147200002,279119.51277000003,425324.9718400001,202868.90700000004,202868.90700000004,202868.90700000004,108280.6375,151657.554,151657.554,223215.35158,93518.90234999999,139008.34373999998,242456.4135,68811.43926,87515.21973,155898.072,155898.072,155898.072,155898.072,455983.71235999995,455983.71235999995 +1130400.0,159660.135,157453.49099999998,459764.1937199999,131358.62322,131358.62322,131358.62322,54930.5505,327895.74688,787449.12832,299589.01412999997,456516.59296,208471.80599999998,208471.80599999998,208471.80599999998,109318.0165,159660.135,159660.135,253392.04098,99439.60545,147808.99378,257806.38450000001,73167.90722000001,93055.82831000001,180253.752,180253.752,180253.752,180253.752,480044.8059,480044.8059 +1134000.0,175823.112,166354.71600000001,485755.77072,139791.63473000002,139791.63473000002,139791.63473000002,63911.420999999995,332528.74736,798431.75936,328135.03380000003,500015.2896,269991.48600000003,269991.48600000003,269991.48600000003,119745.86050000001,175823.112,175823.112,254959.85085999998,113201.56214999998,168265.03805999996,293485.5315,83293.98894,105934.30136999999,226045.467,226045.467,226045.467,226045.467,528641.4900799999,528641.4900799999 +1137600.0,204391.34699999998,180775.953,527865.7827600001,144377.2264,144377.2264,144377.2264,70015.0955,371813.38784000004,796395.01248,348309.02127,530756.6038400001,311250.27900000004,311250.27900000004,311250.27900000004,193433.65649999998,204391.34699999998,204391.34699999998,274933.60192999995,130656.47084999998,194210.35913999996,338738.9985,96137.35385999999,122268.64802999998,263125.725,263125.725,263125.725,263125.725,614536.6499799999,614536.6499799999 +1141200.0,262482.162,200419.272,585224.2742399999,160062.41217999998,160062.41217999998,160062.41217999998,79069.3715,478823.76080000005,834877.8009600001,413144.92715999996,629554.17472,354110.841,354110.841,354110.841,218018.2025,262482.162,262482.162,297762.44393999997,148697.34165,221026.66585999995,385511.62649999995,109411.87113999999,139151.33946999998,325063.52999999997,325063.52999999997,325063.52999999997,325063.52999999997,789196.36708,789196.36708 +1144800.0,421981.929,241482.897,705130.05924,265550.28797,265550.28797,265550.28797,158077.22,973795.81656,1023072.4467200001,658830.3829799999,1003932.0121599999,401552.64600000007,401552.64600000007,401552.64600000007,345370.424,421981.929,421981.929,523603.3676899999,209888.53245,311982.46058,544155.4545000001,154436.50042000003,196414.20691,453433.902,453433.902,453433.902,453433.902,1268758.99986,1268758.99986 +1148400.0,1165471.377,557157.6900000001,1626900.4548,1606979.78089,1606979.78089,1606979.78089,1376950.491,3270971.60168,3828912.9811200006,2766678.5162099996,4215891.072319999,1100526.8760000002,1100526.8760000002,1100526.8760000002,1521791.957,1165471.377,1165471.377,2482426.8104999997,1497999.1526999997,2226655.53068,3883701.5069999998,1102231.47532,1401831.30586,1436246.07,1436246.07,1436246.07,1436246.07,3504183.94018,3504183.94018 +1152000.0,1063214.229,1145773.3110000002,3345658.0681200004,1981126.70019,1981126.70019,1981126.70019,1874702.487,4067280.3691199995,3150110.2489600005,3129753.99702,4769148.9478400005,1305801.396,1305801.396,1305801.396,1689020.5605000001,1063214.229,1063214.229,2175376.2565599997,2088224.0235000001,3103977.4374,5413914.135000001,1536520.3926000001,1954165.1973,1524585.0480000002,1524585.0480000002,1524585.0480000002,1524585.0480000002,3196730.78186,3196730.78186 +1155600.0,2038524.0869999998,2233124.7600000002,6520724.2992,1594903.56993,1594903.56993,1594903.56993,2121527.8734999998,4316693.16776,7319104.44928,3563476.4823000003,5430059.4016,1926198.159,1926198.159,1926198.159,1586357.339,2038524.0869999998,2038524.0869999998,2827269.35166,1837644.5619,2731511.17596,4764263.6790000005,1352143.40604,1719672.3184200001,2286139.743,2286139.743,2286139.743,2286139.743,6129162.42158,6129162.42158 +1159200.0,1400008.062,953020.536,2782819.96512,635813.72723,635813.72723,635813.72723,781581.213,2125137.33336,6715000.26112,1239302.5215899998,1888460.98528,1398169.3769999999,1398169.3769999999,1398169.3769999999,1392956.6524999999,1400008.062,1400008.062,2232999.5515099997,2149405.86285,3194919.3319400004,5572533.718500001,1581538.1410600003,2011419.3136300005,946091.169,946091.169,946091.169,946091.169,4209357.57308,4209357.57308 +1162800.0,618097.9199999999,423254.838,1235904.12696,264615.11186000006,264615.11186000006,264615.11186000006,388365.194,1214038.58296,3090565.77152,666807.4467600001,1016087.53792,467913.65699999995,467913.65699999995,467913.65699999995,408152.7555,618097.9199999999,618097.9199999999,616688.176,748376.8443,1112402.12412,1940236.2630000003,550657.52988,700332.8987400001,441797.877,441797.877,441797.877,441797.877,1858414.4127999998,1858414.4127999998 +1166400.0,764107.923,1167019.797,3407697.80724,626447.14726,626447.14726,626447.14726,927323.6420000001,1698249.078,2754071.1660800003,1286974.21104,1961103.5596800002,699440.97,699440.97,699440.97,1048620.58,764107.923,764107.923,868463.7539499998,829276.08435,1232652.3525399999,2149975.0335,610183.39046,776038.60733,764931.048,764931.048,764931.048,764931.048,2297417.8218199997,2297417.8218199997 +1170000.0,553736.2710000001,570746.052,1666578.47184,408681.1012900001,408681.1012900001,408681.1012900001,790253.8875,1162430.87672,1708243.9283200002,802788.03549,1223296.0540800001,503559.03599999996,503559.03599999996,503559.03599999996,566162.7649999999,553736.2710000001,553736.2710000001,578572.97602,549038.6630999999,816101.9140399998,1423433.5709999998,403984.00395999994,513791.73657999997,498447.24000000005,498447.24000000005,498447.24000000005,498447.24000000005,1664900.38814,1664900.38814 +1173600.0,540225.255,456050.688,1331668.00896,277658.41180000006,277658.41180000006,277658.41180000006,509143.26399999997,1179364.61664,1861075.952,814388.99514,1240973.70688,536933.262,536933.262,536933.262,444469.123,540225.255,540225.255,637895.74979,578228.40225,859490.1189,1499110.6725,425461.8861,541107.56655,526952.166,526952.166,526952.166,526952.166,1624277.2666999998,1624277.2666999998 +1177200.0,930199.2149999999,1077252.168,3145576.3305599997,1421338.8839099999,1421338.8839099999,1421338.8839099999,1389628.457,2128014.66048,2905416.54656,1708884.19233,2604014.00736,870835.065,870835.065,870835.065,1412360.3165000002,930199.2149999999,930199.2149999999,1487716.4487899998,1319101.7426999998,1960738.8866799995,3419893.4069999997,970598.3193199999,1234418.66786,954740.673,954740.673,954740.673,954740.673,2796798.9730999996,2796798.9730999996 +1180800.0,931449.4319999999,1317496.593,3847090.05156,1577818.2919400001,1577818.2919400001,1577818.2919400001,1181619.3585,2456987.41432,3275655.91808,1794077.6063700002,2733832.5430400004,1056118.761,1056118.761,1056118.761,1649550.966,931449.4319999999,931449.4319999999,1621003.0062199999,1373458.9675500002,2041536.53942,3560819.5455000005,1010594.4995800001,1285286.29309,1129807.29,1129807.29,1129807.29,1129807.29,2800557.95888,2800557.95888 +1184400.0,887461.809,1224767.3760000002,3576320.73792,1115961.6028000002,1115961.6028000002,1115961.6028000002,1064043.5785,2451171.80216,3349160.83904,1614904.8971999998,2460807.4624,938555.7509999999,938555.7509999999,938555.7509999999,1345119.0795,887461.809,887461.809,1316837.76926,1198389.6945,1781310.1138,3106936.245,881778.0962,1121456.0351,1100791.614,1100791.614,1100791.614,1100791.614,2668301.8390599997,2668301.8390599997 +1188000.0,2228758.4820000003,1812081.5940000003,5291278.254480001,3519343.04557,3519343.04557,3519343.04557,2913699.761,3518146.3195999996,6842962.8460800005,3745027.68633,5706708.85536,2359115.004,2359115.004,2359115.004,3022060.5205,2228758.4820000003,2228758.4820000003,3739898.83826,2876329.55745,4275433.07058,7457150.7045,2116410.39042,2691676.30191,2501257.857,2501257.857,2501257.857,2501257.857,6701133.83588,6701133.83588 +1191600.0,1654263.171,935832.2309999999,2732630.11452,2115638.97512,2115638.97512,2115638.97512,1762535.6245,2701327.1976799998,4715993.8272,2437260.49434,3713920.7532800003,1638164.433,1638164.433,1638164.433,2040488.9819999998,1654263.171,1654263.171,1352862.7163999998,1881000.8487,2795956.81708,4876668.867000001,1384045.06892,1760245.2386600003,1775209.779,1775209.779,1775209.779,1775209.779,4973817.9341400005,4973817.9341400005 +1195200.0,1246325.379,904380.918,2640792.28056,1307772.6686200001,1307772.6686200001,1307772.6686200001,1323647.227,2096114.1101600002,3910075.1808000007,1824113.0145,2779600.7840000005,1133346.5129999998,1133346.5129999998,1133346.5129999998,1521519.902,1246325.379,1246325.379,1314198.7050399997,1471265.1472500002,2186917.5769,3814391.1225000005,1082560.5281,1376813.55755,1287831.9360000002,1287831.9360000002,1287831.9360000002,1287831.9360000002,3747284.97286,3747284.97286 +1198800.0,1082316.915,903670.5119999999,2638717.8950399994,1247646.23709,1247646.23709,1247646.23709,1228417.729,2006820.49264,3802741.2716800007,1742406.17943,2655095.13056,1096881.858,1096881.858,1096881.858,1445724.2170000002,1082316.915,1082316.915,1324558.21368,1406618.5166999998,2090825.5482799998,3646788.747,1034993.3777199999,1316317.08106,1231303.827,1231303.827,1231303.827,1231303.827,3254166.1911,3254166.1911 +1202400.0,759078.681,655666.2180000001,1914545.3565600002,810164.62329,810164.62329,810164.62329,667461.0635,1052906.19688,2337908.42432,1004522.86767,1530701.5126399999,588850.488,588850.488,588850.488,719357.919,759078.681,759078.681,936321.8919599999,658681.6117499999,979077.3586999999,1707693.0675,484659.5563,616395.87865,777346.464,777346.464,777346.464,777346.464,2282296.5675399997,2282296.5675399997 +1206000.0,133982.277,120795.11099999999,352721.72411999997,162407.0822,162407.0822,162407.0822,67703.78300000001,225794.13336,872901.84512,263407.60005,401383.00960000005,205398.84,205398.84,205398.84,129605.52849999999,133982.277,133982.277,255672.93336,99807.0741,148355.20644,258759.081,73438.29156,93399.70638,172545.75,172545.75,172545.75,172545.75,402840.04617999995,402840.04617999995 +1209600.0,137017.72499999998,121925.484,356022.41328,140595.45973,140595.45973,140595.45973,47246.678499999995,251792.62784,879617.7536,283564.12707,432097.71744,204641.58599999998,204641.58599999998,204641.58599999998,126500.3075,137017.72499999998,137017.72499999998,256363.02887,94659.50385,140703.75634,245413.52850000001,69650.69666,88582.59743000001,176572.95299999998,176572.95299999998,176572.95299999998,176572.95299999998,411966.62649999995,411966.62649999995 +1213200.0,149523.138,142466.91599999997,416003.3947199999,134342.98735,134342.98735,134342.98735,54120.115,320452.26976,867083.3952,302509.13070000004,460966.2944000001,203097.831,203097.831,203097.831,123587.98550000001,149523.138,149523.138,278316.75872,101322.66105,150608.00481999997,262688.38049999997,74553.46418,94817.99639,178115.844,178115.844,178115.844,178115.844,449566.23492,449566.23492 +1216800.0,175899.924,151312.59900000002,441832.78908,133063.01712,133063.01712,133063.01712,60128.512500000004,371312.67208000005,866579.87968,344113.36932,524363.22944,229573.653,229573.653,229573.653,123309.641,175899.924,175899.924,287787.76415999996,119305.29284999998,177337.74394,309310.0185,87785.12905999999,111646.18763,222131.51700000002,222131.51700000002,222131.51700000002,222131.51700000002,528872.43816,528872.43816 +1220400.0,216604.212,163902.825,478596.249,141225.26781,141225.26781,141225.26781,77289.27849999999,407453.71647999994,860464.9497600001,377579.40570000006,575359.0944000001,327491.808,327491.808,327491.808,204190.112,216604.212,216604.212,302132.14615999995,139066.78185,206711.61153999998,360543.5085,102325.68145999999,130139.03783,286525.284,286525.284,286525.284,286525.284,651256.6640799999,651256.6640799999 +1224000.0,250856.20500000002,210730.509,615333.0862799999,154431.09913000002,154431.09913000002,154431.09913000002,77922.30249999999,490542.49168000004,867630.81152,412934.51787,629233.55104,369940.077,369940.077,369940.077,234607.47449999998,250856.20500000002,250856.20500000002,319624.73568999994,153847.1232,228681.40288,398862.912,113201.09312,143970.51776000002,322179.252,322179.252,322179.252,322179.252,754240.9896999999,754240.9896999999 +1227600.0,304214.16000000003,226400.853,661090.49076,174725.47851000002,174725.47851000002,174725.47851000002,85452.6925,558943.66688,919651.8995200001,481780.99011,734142.46112,397765.059,397765.059,397765.059,244557.649,304214.16000000003,304214.16000000003,338349.6183599999,170992.43775,254166.5371,443313.72750000004,125816.6579,160015.14545,392444.652,392444.652,392444.652,392444.652,914670.5743999999,914670.5743999999 +1231200.0,496318.563,264171.711,771381.3961199999,277679.22578000004,277679.22578000004,277679.22578000004,164798.165,1055882.96168,1167970.69824,753864.52596,1148745.94432,446044.029,446044.029,446044.029,374525.8125,496318.563,496318.563,548167.4556799999,250240.88564999998,371962.99545999995,648772.6665,184127.86153999998,234176.03867,523391.448,523391.448,523391.448,523391.448,1492264.47942,1492264.47942 +1234800.0,1227251.319,602466.282,1759201.5434400002,1654954.7146000003,1654954.7146000003,1654954.7146000003,1453304.4295,3386783.6722399998,4151122.5056000003,2919926.65923,4449412.05216,1184250.1260000002,1184250.1260000002,1184250.1260000002,1739276.9764999999,1227251.319,1227251.319,2577312.10763,1573912.1907,2339494.16988,4080513.087,1158088.47612,1472870.91426,1518681.693,1518681.693,1518681.693,1518681.693,3689935.6324599995,3689935.6324599995 +1238400.0,1101876.0899999999,1217157.318,3554099.36856,2076932.09075,2076932.09075,2076932.09075,1950464.439,4191085.8287200006,3229418.93184,3239701.5860999995,4936688.1312,1326008.7,1326008.7,1326008.7,1772962.8244999999,1101876.0899999999,1101876.0899999999,2201776.51395,2147929.5365999998,3192724.8914399995,5568706.205999999,1580451.8565599998,2010037.7638799998,1573898.412,1573898.412,1573898.412,1573898.412,3312974.1106,3312974.1106 +1242000.0,2065825.869,2257751.151,6592633.360920001,1663405.0846600002,1663405.0846600002,1663405.0846600002,2208897.0505000004,4420858.5671999995,7394005.4592,3648362.2591500003,5559409.1568,1961030.3849999998,1961030.3849999998,1961030.3849999998,1638955.6469999999,2065825.869,2065825.869,2548582.58369,1906995.7251,2834596.11484,4944062.991,1403172.16316,1784571.30818,2323520.463,2323520.463,2323520.463,2323520.463,6211249.77946,6211249.77946 +1245600.0,1512533.343,1044360.4980000001,3049532.6541600004,773962.8727600002,773962.8727600002,773962.8727600002,948318.399,2353634.53408,7151734.0256,1460184.9565800002,2225043.74336,1512276.8220000002,1512276.8220000002,1512276.8220000002,1527317.085,1512533.343,1512533.343,2123796.98154,2277832.79655,3385815.66302,5905492.435500001,1676034.9959800001,2131601.55529,1071229.3110000002,1071229.3110000002,1071229.3110000002,1071229.3110000002,4547683.58462,4547683.58462 +1249200.0,788654.406,544168.2270000001,1588971.2228400002,445844.78004,445844.78004,445844.78004,595765.8735,1498334.7352800001,4037905.0950400005,986936.35467,1503903.01664,652238.223,652238.223,652238.223,632208.1535,788654.406,788654.406,844724.9417099998,1147695.37065,1705957.0694599997,2975506.5165,844477.0875399999,1074016.1616699998,638995.116,638995.116,638995.116,638995.116,2371220.9140399997,2371220.9140399997 +1252800.0,814788.03,1170221.1989999998,3417045.9010799993,693560.92223,693560.92223,693560.92223,963862.9770000001,1748690.4719999998,2880967.5763200005,1376875.55166,2098096.07872,743832.2250000001,743832.2250000001,743832.2250000001,1090099.3915,814788.03,814788.03,977421.5285899999,874597.09095,1300018.3919799998,2267473.9395,643530.6990200001,818450.11721,815497.158,815497.158,815497.158,815497.158,2449796.0102,2449796.0102 +1256400.0,652964.622,682220.616,1992084.19872,522967.87345,522967.87345,522967.87345,914803.3964999999,1337986.2699199999,2108161.93792,979836.9453599999,1493084.86912,600427.878,600427.878,600427.878,732975.103,652964.622,652964.622,746000.1198,692740.8724499999,1029703.7165799999,1795994.8545,509720.44441999996,648268.61891,609897.99,609897.99,609897.99,609897.99,1963246.96348,1963246.96348 +1260000.0,555162.306,462697.836,1351077.6811199998,296112.8296500001,296112.8296500001,296112.8296500001,537401.1125,1173479.61944,1874635.61984,831489.16095,1267031.1024,532985.928,532985.928,532985.928,452890.942,555162.306,555162.306,657763.8588299999,593011.7973,881464.4493199999,1537437.993,436339.54468,554941.90414,536144.226,536144.226,536144.226,536144.226,1669188.0000399998,1669188.0000399998 +1263600.0,940078.6379999999,1121648.319,3275213.09148,1470215.3185500002,1470215.3185500002,1470215.3185500002,1378879.3655,2125696.8404,2805558.0243200003,1691059.88877,2576853.16384,850831.7220000001,850831.7220000001,850831.7220000001,1391417.027,940078.6379999999,940078.6379999999,1469218.96368,1290627.86535,1918414.75294,3346072.2435000003,949647.17006,1207772.74313,1001685.7379999999,1001685.7379999999,1001685.7379999999,1001685.7379999999,2826503.10492,2826503.10492 +1267200.0,915645.3869999999,1274624.724,3721904.19408,1659734.8889,1659734.8889,1659734.8889,1154615.112,2362150.206,3087344.7801600005,1754968.49262,2674237.70304,999672.411,999672.411,999672.411,1609220.1160000002,915645.3869999999,915645.3869999999,1564664.8278299998,1324879.76835,1969327.45814,3434873.4735000003,974849.80486,1239825.7585300002,1105790.34,1105790.34,1105790.34,1105790.34,2753040.4635799993,2753040.4635799993 +1270800.0,835999.5660000001,1200012.216,3504035.67072,1051400.85336,1051400.85336,1051400.85336,1000110.6500000001,2268639.97416,3036964.02624,1494418.40268,2277208.99456,844879.7009999999,844879.7009999999,844879.7009999999,1256096.3484999998,835999.5660000001,835999.5660000001,1283006.7400799997,1106303.9859,1644432.09756,2868195.519,814021.20444,1035282.00162,1044084.501,1044084.501,1044084.501,1044084.501,2513572.0284400005,2513572.0284400005 +1274400.0,2173660.401,1750609.7550000004,5111780.484600001,3477990.6815500003,3477990.6815500003,3477990.6815500003,2840507.2010000004,3425659.6703999997,6518973.854080001,3644964.4169400004,5554231.4924800005,2285464.3559999997,2285464.3559999997,2285464.3559999997,2935416.554,2173660.401,2173660.401,3783600.6896999995,2781796.23135,4134916.86734,7212064.3035,2046852.53566,2603211.78193,2422121.16,2422121.16,2422121.16,2422121.16,6535472.272340001,6535472.272340001 +1278000.0,1591192.0470000003,861648.696,2516014.19232,2100412.49055,2100412.49055,2100412.49055,1675913.8935,2518299.34344,4365287.53728,2318753.9424,3533339.3408,1582326.5189999999,1582326.5189999999,1582326.5189999999,1943327.687,1591192.0470000003,1591192.0470000003,1372550.59955,1815630.1510499998,2698788.5208199997,4707189.280499999,1335945.14818,1699071.17839,1702872.108,1702872.108,1702872.108,1702872.108,4784184.08798,4784184.08798 +1281600.0,1150551.21,823765.476,2405395.1899200003,1226445.1146200004,1226445.1146200004,1226445.1146200004,1229933.341,1891988.69528,3520435.877120001,1665551.7893700001,2537983.6790400003,1015707.795,1015707.795,1015707.795,1369213.5835,1150551.21,1150551.21,1219671.7336699998,1334093.1498,1983022.41032,3458760.018,981629.03368,1248447.6636400002,1174371.915,1174371.915,1174371.915,1174371.915,3459323.9713999997,3459323.9713999997 +1285200.0,1004345.4240000001,829354.647,2421715.56924,1164900.3084399998,1164900.3084399998,1164900.3084399998,1136226.0455,1839110.77152,3445947.28448,1611859.2682500002,2456166.504,1001376.6780000001,1001376.6780000001,1001376.6780000001,1320957.2565,1004345.4240000001,1004345.4240000001,1219381.6810499998,1291502.6127,1919714.9946799998,3348340.107,950290.81132,1208591.33386,1134375.507,1134375.507,1134375.507,1134375.507,3019731.90816,3019731.90816 +1288800.0,710565.828,601703.919,1756975.44348,760003.0088200001,760003.0088200001,760003.0088200001,623304.6225,944328.8584799999,2119851.72544,920981.7435000001,1403400.752,534402.429,534402.429,534402.429,662075.2565,710565.828,710565.828,871826.28065,605593.51515,900166.16326,1570057.2615,445597.20374,566715.90677,721254.237,721254.237,721254.237,721254.237,2136434.58952,2136434.58952 +1292400.0,119928.86099999999,106033.53600000001,309617.92512,134013.26851000002,134013.26851000002,134013.26851000002,63608.01299999999,195451.15192,742795.8240000001,216093.25332000002,329284.95744,177033.606,177033.606,177033.606,113833.0935,119928.86099999999,119928.86099999999,219222.49362,86837.53229999999,129077.02331999998,225134.343,63895.270679999994,81262.77713999999,150039.501,150039.501,150039.501,150039.501,360586.10873999994,360586.10873999994 +1296000.0,116921.14199999999,104243.01,304389.5892,120629.39911000001,120629.39911000001,120629.39911000001,42654.892,203839.43007999996,735516.26624,235358.89167000004,358642.12064000004,173239.173,173239.173,173239.173,107970.5375,116921.14199999999,116921.14199999999,219509.53036999996,79827.41159999999,118657.04143999999,206959.95599999998,58737.20655999999,74702.68887999999,149772.615,149772.615,149772.615,149772.615,351542.90028,351542.90028 +1299600.0,125943.72000000002,115960.176,338603.71392,115333.55988000002,115333.55988000002,115333.55988000002,43267.7455,213389.38351999997,732472.3468800001,246468.1863,375570.56960000005,171657.309,171657.309,171657.309,107111.0215,125943.72000000002,125943.72000000002,226742.54382,80571.76514999999,119763.46325999999,208889.7615,59284.903739999994,75399.25676999999,154187.478,154187.478,154187.478,154187.478,378670.7848,378670.7848 +1303200.0,135609.41700000002,128143.27799999999,374178.37176,111423.09574,111423.09574,111423.09574,45581.438,231850.5988,734524.8480000001,273044.09726999997,416067.19584,171020.178,171020.178,171020.178,105570.353,135609.41700000002,135609.41700000002,248478.77508999995,93680.9874,139249.27016,242876.634,68930.70184,87666.89932,159577.008,159577.008,159577.008,159577.008,407732.31378,407732.31378 +1306800.0,156589.22400000002,140036.487,408906.54204,117411.31523000001,117411.31523000001,117411.31523000001,62077.424499999994,276182.73376,736370.08512,301850.81136,459963.14112,181059.951,181059.951,181059.951,115263.06049999999,156589.22400000002,156589.22400000002,249737.27792,107687.85165,160069.34986,279190.7265,79236.98714,100774.55747,209292.87000000002,209292.87000000002,209292.87000000002,209292.87000000002,470811.60016000003,470811.60016000003 +1310400.0,199205.934,148846.302,434631.20184,127158.66405,127158.66405,127158.66405,70757.5015,347192.09384,745002.82112,339027.78504000005,516613.76768000005,265183.107,265183.107,265183.107,188627.95,199205.934,199205.934,268086.83628999995,126053.15984999998,187367.90673999998,326804.4885,92750.22626,117960.85823,253955.87099999998,253955.87099999998,253955.87099999998,253955.87099999998,598945.84156,598945.84156 +1314000.0,237776.38199999998,166947.273,487486.03716,144852.33785000004,144852.33785000004,144852.33785000004,79267.314,433319.1348799999,762873.09056,384025.10832,585181.1174400001,326984.166,326984.166,326984.166,214246.5535,237776.38199999998,237776.38199999998,293846.37282,143885.71485,213874.56874,373037.0385,105871.46426,134648.60723,297873.567,297873.567,297873.567,297873.567,714914.32188,714914.32188 +1317600.0,409291.899,223757.87699999998,653373.0008399999,258539.12689,258539.12689,258539.12689,158864.10400000002,944018.7252799999,898679.4374400001,652207.80576,993840.46592,384842.80500000005,384842.80500000005,384842.80500000005,342784.5505,409291.899,409291.899,514232.21784999996,205747.58159999998,305827.26943999995,533419.656,151389.57856,192539.09488,446552.601,446552.601,446552.601,446552.601,1230604.30966,1230604.30966 +1321200.0,1160409.963,538328.9820000001,1571920.62744,1577056.81529,1577056.81529,1577056.81529,1377596.955,3254670.97616,3636243.05408,2742885.60294,4179635.2044800003,1053634.416,1053634.416,1053634.416,1505163.6355,1160409.963,1160409.963,2468085.89651,1421936.1431999998,2113593.97088,3686501.1119999997,1046264.12512,1330651.3537599999,1427946.21,1427946.21,1427946.21,1427946.21,3488965.95542,3488965.95542 +1324800.0,1047505.041,1130203.686,3300194.76312,1895744.1441400002,1895744.1441400002,1895744.1441400002,1849869.0735000002,4028099.10248,3102177.7888,3096421.01748,4718355.83616,1288619.0729999999,1288619.0729999999,1288619.0729999999,1646016.1725,1047505.041,1047505.041,2166173.34609,2070727.1648999997,3077969.7611599993,5368551.908999999,1523646.1608399998,1937791.5938199998,1511311.971,1511311.971,1511311.971,1511311.971,3149498.4899399998,3149498.4899399998 +1328400.0,2038976.0039999997,2221285.083,6486152.44236,1556250.5520100002,1556250.5520100002,1556250.5520100002,1967789.4285000004,4268937.82336,7273908.461440001,3539244.21774,5393134.046080001,1930950.6239999998,1930950.6239999998,1930950.6239999998,1559605.7155,2038976.0039999997,2038976.0039999997,2289530.8465899997,1771301.15145,2632897.02018,4592262.2445,1303327.76082,1657587.99111,2284410.444,2284410.444,2284410.444,2284410.444,6130521.18536,6130521.18536 +1332000.0,1449619.479,1000524.6089999999,2921531.85828,731171.9957300002,731171.9957300002,731171.9957300002,875739.3855000001,2182943.02576,6933665.674240001,1352957.5848599998,2061649.65312,1455532.827,1455532.827,1455532.827,1478716.974,1449619.479,1449619.479,2004658.5340599997,2220882.57135,3301163.72334,5757843.703500001,1634130.87966,2078307.3939300003,1033275.8879999999,1033275.8879999999,1033275.8879999999,1033275.8879999999,4358522.56686,4358522.56686 +1335600.0,770116.554,523138.026,1527563.03592,423438.18055,423438.18055,423438.18055,572510.568,1447962.55696,3613304.5107200006,960299.3393700001,1463313.2790400002,628518.483,628518.483,628518.483,600707.7125000001,770116.554,770116.554,815641.79619,1020600.8261999999,1517041.2280799998,2646002.142,750960.60792,955080.77316,625601.7690000001,625601.7690000001,625601.7690000001,625601.7690000001,2315483.77236,2315483.77236 +1339200.0,801742.374,1169114.6760000002,3413814.85392,687538.1240200001,687538.1240200001,687538.1240200001,962105.0915,1743955.9898399997,2869467.1660800003,1374223.4228100001,2094054.7395200003,742668.231,742668.231,742668.231,1087967.601,801742.374,801742.374,964708.19354,872704.97145,1297205.90818,2262568.4445,642138.47282,816679.46711,808645.6799999999,808645.6799999999,808645.6799999999,808645.6799999999,2410572.07116,2410572.07116 +1342800.0,654677.079,667581.7710000001,1949338.77132,526933.6163300001,526933.6163300001,526933.6163300001,916097.805,1349942.2099199998,2134641.27936,990481.87896,1509305.72032,611260.5989999999,611260.5989999999,611260.5989999999,711599.182,654677.079,654677.079,742994.6586399998,701291.8844999999,1042414.1097999999,1818164.145,516012.3002,656270.6771,616455.3150000001,616455.3150000001,616455.3150000001,616455.3150000001,1968395.7508599998,1968395.7508599998 +1346400.0,569370.549,477942.7739999999,1395592.9000799998,306934.83755,306934.83755,306934.83755,539790.1109999999,1209517.45352,1942979.9609600003,858922.2327,1308833.8784,556288.4789999999,556288.4789999999,556288.4789999999,474311.8240000001,569370.549,569370.549,666877.7987299999,614483.7066,913380.7194399999,1593105.906,452138.62856,575035.36988,554318.28,554318.28,554318.28,554318.28,1711907.4506599999,1711907.4506599999 +1350000.0,971137.374,1136048.178,3317260.67976,1494649.9583400001,1494649.9583400001,1494649.9583400001,1421614.5019999999,2194412.04408,2969876.8256,1753597.8738600002,2672149.1411200003,901403.514,901403.514,901403.514,1436341.0495,971137.374,971137.374,1507773.0954,1341951.45795,1994703.1547799997,3479133.4095,987411.1962199999,1255801.48781,1033516.4310000001,1033516.4310000001,1033516.4310000001,1033516.4310000001,2919886.3711599996,2919886.3711599996 +1353600.0,957980.895,1315011.483,3839833.5303599997,1675586.1673100002,1675586.1673100002,1675586.1673100002,1192611.203,2444218.26016,3262633.64608,1823753.3244,2779052.6848,1051852.47,1051852.47,1051852.47,1669949.5785,957980.895,957980.895,1601412.78531,1379445.3333,2050434.79172,3576339.753,1014999.28228,1290888.3489400002,1155100.734,1155100.734,1155100.734,1155100.734,2880329.2243,2880329.2243 +1357200.0,878174.5739999998,1234120.692,3603632.42064,1086059.12965,1086059.12965,1086059.12965,1048171.8800000001,2361282.83752,3206570.2464000005,1566098.28816,2386435.48672,893699.517,893699.517,893699.517,1309724.2515,878174.5739999998,878174.5739999998,1331390.30882,1164173.1642,1730449.9872799998,3018226.722,856601.4887199999,1089436.1215599999,1092199.281,1092199.281,1092199.281,1092199.281,2640378.2191599994,2640378.2191599994 +1360800.0,2217104.427,1801684.329,5260918.24068,3520963.2352400003,3520963.2352400003,3520963.2352400003,2892154.006,3520783.6227199994,6747156.797440001,3717164.8363500005,5664251.179200001,2340197.9760000003,2340197.9760000003,2340197.9760000003,2998224.46,2217104.427,2217104.427,3836463.2534799995,2860084.9386,4251286.74824,7415035.026000001,2104457.55976,2676474.54748,2479567.5089999996,2479567.5089999996,2479567.5089999996,2479567.5089999996,6666093.977179999,6666093.977179999 +1364400.0,1651210.815,917335.6499999999,2678620.0979999998,2178008.24934,2178008.24934,2178008.24934,1743188.8425,2647056.11272,4654791.5641600005,2431196.7674399996,3704680.7884799996,1681458.7619999999,1681458.7619999999,1681458.7619999999,2114067.4625,1651210.815,1651210.815,1448287.69072,1913805.4963500001,2844718.29334,4961717.953500001,1408182.80966,1790943.9089300002,1787765.358,1787765.358,1787765.358,1787765.358,4964640.5171,4964640.5171 +1368000.0,1214427.459,875683.3769999999,2556995.46084,1291353.8979,1291353.8979,1291353.8979,1307769.9145,2013332.79344,3777963.87776,1767214.2862500001,2692897.96,1089639.8760000002,1089639.8760000002,1089639.8760000002,1468979.8199999998,1214427.459,1214427.459,1283661.4965199998,1422573.4957499998,2114541.3442999995,3688153.5075,1046733.0907,1331247.7898499998,1251126.687,1251126.687,1251126.687,1251126.687,3651378.5600599996,3651378.5600599996 +1371600.0,1053307.65,876086.508,2558172.60336,1216907.49697,1216907.49697,1216907.49697,1189788.4705,1936183.8997600002,3640492.1728000003,1688918.02044,2573589.36448,1060334.754,1060334.754,1060334.754,1402113.9825,1053307.65,1053307.65,1288095.8259,1359127.0786499998,2020233.3366599996,3523662.7964999997,1000049.0603399999,1271874.4760699999,1193205.8220000002,1193205.8220000002,1193205.8220000002,1193205.8220000002,3166945.0009999997,3166945.0009999997 +1375200.0,750220.2359999999,644339.553,1881471.49476,803153.59652,803153.59652,803153.59652,660014.4809999999,1020882.2765599999,2280314.2848000005,985583.6745300001,1501841.78976,574769.196,574769.196,574769.196,710836.2309999999,750220.2359999999,750220.2359999999,925599.2956600001,648045.03195,963266.93638,1680116.7495000002,476833.13462,606442.14101,767796.3870000001,767796.3870000001,767796.3870000001,767796.3870000001,2255662.17624,2255662.17624 +1378800.0,129469.443,115666.149,337745.15508,155963.02678000001,155963.02678000001,155963.02678000001,66501.491,215612.84087999997,829085.2345600001,240022.86042,365749.12064000004,195646.43700000003,195646.43700000003,195646.43700000003,124582.7975,129469.443,129469.443,243788.30839999998,95144.7708,141425.06672,246671.628,70007.75728,89036.71144,164047.773,164047.773,164047.773,164047.773,389271.45862,389271.45862 +1382400.0,129785.523,115753.284,337999.58928,133589.09311000002,133589.09311000002,133589.09311000002,45900.099,229753.81104,831880.8940799999,268216.29492,408710.54464000004,194042.18099999998,194042.18099999998,194042.18099999998,120671.83800000002,129785.523,129785.523,243470.02588999996,90003.77775000001,133783.39310000002,233343.12750000003,66225.0019,84225.75745,166613.592,166613.592,166613.592,166613.592,390221.80582,390221.80582 +1386000.0,143121.615,134512.041,392775.15972,128504.85318000002,128504.85318000002,128504.85318000002,51487.240000000005,253831.19079999995,829224.0198400001,278191.08051,423910.21792,192177.207,192177.207,192177.207,119238.81199999999,143121.615,143121.615,262302.27257,94485.1149,140444.54116,244961.40899999999,69522.38084,88419.40381999999,171167.823,171167.823,171167.823,171167.823,430318.9891,430318.9891 +1389600.0,156117.6,143517.44999999998,419070.9539999999,125356.85063,125356.85063,125356.85063,54696.11,301224.35008,827637.7049600001,320181.84471000003,487896.1443200001,194738.22,194738.22,194738.22,118568.0475,156117.6,156117.6,275396.80011999997,111292.00335,165426.63214,288534.8235,81888.93086000001,104147.33153000001,197176.251,197176.251,197176.251,197176.251,469393.58400000003,469393.58400000003 +1393200.0,201998.022,159747.696,466463.27232000005,136564.73116,136564.73116,136564.73116,76155.81049999999,367749.53624,832476.63936,354364.07832,539983.3574399999,268015.671,268015.671,268015.671,178452.533,201998.022,201998.022,286525.23055,132710.36355,197263.30582,344063.9055,97648.61318,124190.68589000001,269296.84500000003,269296.84500000003,269296.84500000003,269296.84500000003,607340.71948,607340.71948 +1396800.0,244681.68300000002,176939.301,516662.75892,147173.10883,147173.10883,147173.10883,79123.9715,466182.16976,857695.34784,406984.02548999997,620166.13408,360023.451,360023.451,360023.451,233682.31950000004,244681.68300000002,244681.68300000002,317280.59180999995,152273.31345,226342.06098,394782.6645,112043.08002000001,142497.74271000002,311422.713,311422.713,311422.713,311422.713,735676.2602199999,735676.2602199999 +1400400.0,302691.978,221136.903,645719.7567599999,170894.35088,170894.35088,170894.35088,87801.35699999999,558090.21512,910977.8956800001,485418.12017999997,739684.75456,400749.50100000005,400749.50100000005,400749.50100000005,250194.12600000002,302691.978,302691.978,344567.10131999996,174478.05,259347.62,452350.5,128381.38,163276.99,392865.82200000004,392865.82200000004,392865.82200000004,392865.82200000004,910093.88052,910093.88052 +1404000.0,499355.238,267290.742,780488.96664,279930.1230000001,279930.1230000001,279930.1230000001,166985.90999999997,1060722.62808,1157993.46624,758017.65459,1155074.52128,451350.98400000005,451350.98400000005,451350.98400000005,381294.3295,499355.238,499355.238,555457.65522,244187.81639999998,362965.59375999996,633079.524,179673.99824,228511.56152000002,528365.3520000001,528365.3520000001,528365.3520000001,528365.3520000001,1501394.7489200002,1501394.7489200002 +1407600.0,1242286.7040000001,611610.3,1785902.0760000001,1663104.57621,1663104.57621,1663104.57621,1456139.1565,3399963.85144,4175989.7683200003,2938747.21791,4478090.9987200005,1202384.0969999998,1202384.0969999998,1202384.0969999998,1754487.847,1242286.7040000001,1242286.7040000001,2587170.31807,1585691.7493500002,2357003.53854,4111052.6835000003,1166755.90446,1483894.2543300001,1538543.4540000001,1538543.4540000001,1538543.4540000001,1538543.4540000001,3735142.02336,3735142.02336 +1411200.0,1139704.3530000001,1251251.058,3653653.0893599996,2085642.1593700002,2085642.1593700002,2085642.1593700002,1956780.1434999998,4255775.251759999,3365980.2419200004,3309651.2834700006,5043278.146240001,1375441.731,1375441.731,1375441.731,1833413.3790000002,1139704.3530000001,1139704.3530000001,2237088.2198599996,2188235.8656,3252637.01504,5673204.096,1610109.35296,2047756.52608,1620795.4770000004,1620795.4770000004,1620795.4770000004,1620795.4770000004,3426711.0880199997,3426711.0880199997 +1414800.0,2113564.5480000004,2305323.888,6731545.752959999,1732902.4958300001,1732902.4958300001,1732902.4958300001,2271281.2815000005,4535342.0903199995,7601734.11136,3748280.52228,5711665.557760001,2030485.6440000003,2030485.6440000003,2030485.6440000003,1713474.581,2113564.5480000004,2113564.5480000004,2512550.9025499998,1968132.0829500002,2925470.40478,5102564.6595,1448156.44622,1841782.8628100003,2376804.4469999997,2376804.4469999997,2376804.4469999997,2376804.4469999997,6354784.074320001,6354784.074320001 +1418400.0,1587892.5029999998,1124486.517,3283500.6296400004,824294.3405400001,824294.3405400001,824294.3405400001,1020482.715,2486419.76456,7407644.355200001,1586304.2937,2417225.5904,1598988.2370000002,1598988.2370000002,1598988.2370000002,1619850.351,1587892.5029999998,1587892.5029999998,2168738.13429,2345783.9274,3486819.56616,6081662.034000001,1726033.60584,2195190.3913200004,1157852.4239999999,1157852.4239999999,1157852.4239999999,1157852.4239999999,4774263.459019999,4774263.459019999 +1422000.0,860442.552,594972.609,1737320.01828,493990.84504000004,493990.84504000004,493990.84504000004,670076.2494999999,1646120.4729599997,4376550.42624,1102592.00394,1680140.1964800002,736085.997,736085.997,736085.997,714831.761,860442.552,860442.552,916623.3450399999,1272920.3865,1892094.0066,3300163.9650000003,936617.9634,1191202.0407,715525.242,715525.242,715525.242,715525.242,2587063.93968,2587063.93968 +1425600.0,884622.1830000002,1217730.306,3555772.49352,740487.85129,740487.85129,740487.85129,1022720.748,1865479.9892,3131831.85984,1479639.60249,2254688.91808,813934.8960000002,813934.8960000002,813934.8960000002,1158970.8969999999,884622.1830000002,884622.1830000002,1037036.7407399998,949165.0024499999,1410857.6085799998,2460798.1544999997,698397.95242,888230.95291,890746.596,890746.596,890746.596,890746.596,2659764.03022,2659764.03022 +1429200.0,780837.5759999999,800271.3660000002,2336792.38872,612724.3648900001,612724.3648900001,612724.3648900001,1040764.1194999999,1581688.45376,2575428.93184,1174995.9112500001,1790469.96,738305.661,738305.661,738305.661,897101.7685,780837.5759999999,780837.5759999999,876242.6061999999,845202.3812999999,1256325.51492,2191265.433,621901.99908,790942.47534,741166.323,741166.323,741166.323,741166.323,2347718.3118399996,2347718.3118399996 +1432800.0,531982.746,426613.836,1245712.4011199998,225153.14481000003,225153.14481000003,225153.14481000003,510539.995,1125744.8610399999,1712029.3196800002,768958.1745300001,1171745.78976,509623.50899999996,509623.50899999996,509623.50899999996,419695.00299999997,531982.746,531982.746,562276.3352699999,534113.3277,793916.6006799999,1384738.257,393001.90532,499824.57086000004,495670.2420000001,495670.2420000001,495670.2420000001,495670.2420000001,1599494.78964,1599494.78964 +1436400.0,1084775.028,1282130.547,3743821.1972399997,1567147.5740800002,1567147.5740800002,1567147.5740800002,1545851.594,2452371.6184799997,3315165.55008,1894729.1311200003,2887206.29504,996066.5700000001,996066.5700000001,996066.5700000001,1524791.2855,1084775.028,1084775.028,1613218.1751399997,1465268.2636499999,2178003.69066,3798843.6465,1078148.0063399998,1371201.6590699998,1171145.763,1171145.763,1171145.763,1171145.763,3261556.9175199997,3261556.9175199997 +1440000.0,1073236.683,1416645.453,4136604.72276,1825647.9871300003,1825647.9871300003,1825647.9871300003,1326954.986,2728407.2952,3678802.11072,2046889.47603,3119069.6777600003,1173492.744,1173492.744,1173492.744,1796036.228,1073236.683,1073236.683,1804230.7979799998,1527011.6354999999,2269780.2581999996,3958919.0549999997,1123578.9318,1428981.2589,1287992.274,1287992.274,1287992.274,1287992.274,3226864.96022,3226864.96022 +1443600.0,1018873.338,1428726.357,4171880.96244,1227357.8935200002,1227357.8935200002,1227357.8935200002,1196251.4864999999,2665162.65896,3775173.4624,1805440.7609700002,2751147.8262400003,1058661.819,1058661.819,1058661.819,1488694.109,1018873.338,1018873.338,1529018.32668,1357346.3098499998,2017586.3667399997,3519045.9884999995,998738.76626,1270208.0282299998,1271986.743,1271986.743,1271986.743,1271986.743,3063412.50292,3063412.50292 +1447200.0,2299915.917,1888387.986,5514092.91912,3613673.8792000003,3613673.8792000003,3613673.8792000003,2989857.528,3774678.0724,7161128.37248,3856114.2570299995,5875983.62976,2437873.929,2437873.929,2437873.929,3109664.3899999997,2299915.917,2299915.917,4031401.0912499996,3010058.3380500004,4474210.17162,7803854.950500001,2214808.3573800004,2816820.0249900003,2590038.684,2590038.684,2590038.684,2590038.684,6915080.523779999,6915080.523779999 +1450800.0,1790648.841,1042598.874,3044388.71208,2417649.7801500005,2417649.7801500005,2417649.7801500005,1875586.9965,2927675.76896,5299299.52448,2723991.09213,4150843.5689600003,1840095.456,1840095.456,1840095.456,2517942.966,1790648.841,1790648.841,1625910.3365699998,2175733.71405,3234053.57002,5640791.1105,1600910.23898,2036056.98179,2014604.313,2014604.313,2014604.313,2014604.313,5383884.1819400005,5383884.1819400005 +1454400.0,1353449.262,986064.642,2879308.75464,1497148.20167,1497148.20167,1497148.20167,1537347.5845,2280744.84,4374380.6496,1994474.2435800002,3039198.8473600005,1318561.32,1318561.32,1318561.32,1715070.742,1353449.262,1353449.262,1433510.28366,1619263.64115,2406905.46166,4198090.9215,1191458.18534,1515310.91357,1419916.29,1419916.29,1419916.29,1419916.29,4069370.78108,4069370.78108 +1458000.0,1199844.447,1014925.875,2963583.5549999997,1389940.1281700002,1389940.1281700002,1389940.1281700002,1357080.9735,2235418.97064,4233319.69792,1937153.6148299999,2951853.1273600003,1229590.2119999998,1229590.2119999998,1229590.2119999998,1633500.82,1199844.447,1199844.447,1497433.8561,1566559.6141499998,2328565.1548599997,4061450.8515,1152678.43214,1465990.35497,1371067.7040000001,1371067.7040000001,1371067.7040000001,1371067.7040000001,3607532.3039799994,3607532.3039799994 +1461600.0,835606.434,726696.126,2121952.68792,920257.1668400001,920257.1668400001,920257.1668400001,734975.409,1172332.12368,2601875.0022400003,1114276.62885,1697945.3392,652524.888,652524.888,652524.888,806370.3339999999,835606.434,835606.434,1052385.02746,733656.66975,1090521.7659,1902072.8475000001,539826.3891,686557.72305,865374.5910000001,865374.5910000001,865374.5910000001,865374.5910000001,2512390.01156,2512390.01156 +1465200.0,148921.218,132078.77999999997,385670.0375999999,176639.02971,176639.02971,176639.02971,71739.633,252015.61656000002,970310.13696,307692.85092,468865.29664,226246.098,226246.098,226246.098,142333.6495,148921.218,148921.218,280310.05639,110906.89695,164854.20238,287536.3995,81605.56862,103786.94801000001,192230.93400000004,192230.93400000004,192230.93400000004,192230.93400000004,447756.4621199999,447756.4621199999 +1468800.0,156646.896,137601.537,401796.48804,156712.52135000002,156712.52135000002,156712.52135000002,54744.798500000004,298288.2784,990342.0012800001,322222.93509000004,491006.3772800001,228066.82200000001,228066.82200000001,228066.82200000001,141714.097,156646.896,156646.896,286563.28727,106641.75284999999,158514.40793999998,276478.6185,78467.26505999999,99795.61563,198513.03900000002,198513.03900000002,198513.03900000002,198513.03900000002,470985.00064,470985.00064 +1472400.0,191051.06699999998,172787.379,504539.14667999995,160286.49417000002,160286.49417000002,160286.49417000002,66203.2805,428983.07504,1044166.61248,380467.39794000005,579759.8444800001,249917.385,249917.385,249917.385,146197.1875,191051.06699999998,191051.06699999998,337125.09818000003,132144.09255,196421.58941999997,342595.7955,97231.94958,123660.76809,224806.998,224806.998,224806.998,224806.998,574426.87478,574426.87478 +1476000.0,248087.064,192751.197,562833.49524,170638.3316,170638.3316,170638.3316,90100.77649999999,482945.13056,1068872.2419200002,437982.62256,667402.09152,361678.275,361678.275,361678.275,213751.19150000002,248087.064,248087.064,358050.57509,164664.69749999998,244760.85899999997,426908.475,121160.69099999999,154093.6305,335389.524,335389.524,335389.524,335389.524,745915.1057600001,745915.1057600001 +1479600.0,316052.997,267646.25700000004,781527.07044,193052.47687000004,193052.47687000004,193052.47687000004,99091.32800000001,649202.14584,1145732.41344,526496.67609,802280.6492799999,486266.75999999995,486266.75999999995,486266.75999999995,305745.1075,316052.997,316052.997,409223.72737999994,199604.6226,296696.25384,517493.466,146869.57416000002,186790.49868000002,417438.912,417438.912,417438.912,417438.912,950266.0109799999,950266.0109799999 +1483200.0,409311.471,305988.159,893485.4242799999,219381.43304,219381.43304,219381.43304,101691.5585,781887.54736,1287087.81056,645454.8620099999,983550.26592,550579.7729999999,550579.7729999999,550579.7729999999,332597.195,409311.471,409311.471,444916.86147999996,240747.24824999998,357851.4653,624159.5325,177142.4197,225291.86935,540706.674,540706.674,540706.674,540706.674,1230663.15614,1230663.15614 +1486800.0,533020.794,375668.775,1096952.823,237421.51268,237421.51268,237421.51268,119725.9315,892207.8804799999,1620643.4233600004,786225.90753,1198058.52576,585242.262,585242.262,585242.262,358912.61000000004,533020.794,533020.794,458867.07840999996,322806.47715,479825.92406,836905.6815,237521.80294,302083.09837,629890.14,629890.14,629890.14,629890.14,1602615.85396,1602615.85396 +1490400.0,726986.1510000001,497131.431,1451623.77852,391236.19403,391236.19403,391236.19403,209425.89500000002,1518520.1930399998,1949439.7977600005,1111456.9666199998,1693648.71104,649549.62,649549.62,649549.62,599682.8740000001,726986.1510000001,726986.1510000001,693198.81137,415195.8102,617155.2536800001,1076433.5820000002,305502.10232,388541.26436000003,762995.946,762995.946,762995.946,762995.946,2185805.02734,2185805.02734 +1494000.0,1432334.652,848013.6300000001,2476199.7996,1922960.57602,1922960.57602,1922960.57602,1602228.1485000001,3824026.1015999997,4950256.307840001,3407049.8998200004,5191695.0854400005,1591019.058,1591019.058,1591019.058,2340753.3765000002,1432334.652,1432334.652,2986861.9530099994,1920299.3594999998,2854370.8998,4978553.895,1412961.0102,1797020.8821,1798823.91,1798823.91,1798823.91,1798823.91,4306552.85368,4306552.85368 +1497600.0,1442719.458,1426742.0639999998,4166086.8268799996,2607747.6771500004,2607747.6771500004,2607747.6771500004,2377510.2854999998,4942656.85568,4290612.28736,3815820.14625,5814583.08,1631875.41,1631875.41,1631875.41,2376532.9455,1442719.458,1442719.458,2624351.81528,2515834.5174,3739586.12216,6522533.933999999,1851157.24984,2354324.15332,1953434.367,1953434.367,1953434.367,1953434.367,4337776.50372,4337776.50372 +1501200.0,2328682.9740000004,2470465.707,7213759.86444,2079699.75587,2079699.75587,2079699.75587,2983101.023,5120575.6268,8191634.27456,4233096.31731,6450432.48352,2240037.9899999998,2240037.9899999998,2240037.9899999998,1990127.5765,2328682.9740000004,2328682.9740000004,3260074.09442,2485704.0159,3694799.5495599997,6444417.819,1828987.1524399999,2326127.95562,2595405.633,2595405.633,2595405.633,2595405.633,7001573.47516,7001573.47516 +1504800.0,1738756.6439999999,1217247.1979999999,3554361.81816,850791.8394800001,850791.8394800001,850791.8394800001,1239655.1999999997,2628510.52696,8033433.3952,1791246.9172500002,2729519.112,1710523.845,1710523.845,1710523.845,1725277.96,1738756.6439999999,1738756.6439999999,2166926.67386,2434225.7375999996,3618281.21984,6310955.616,1791109.30816,2277954.45568,1206711.5219999999,1206711.5219999999,1206711.5219999999,1206711.5219999999,5227861.642959999,5227861.642959999 +1508400.0,950200.3439999999,655987.824,1915484.44608,532830.65968,532830.65968,532830.65968,741402.4975,1811782.5440799997,5485117.44512,1231846.64379,1877099.64768,809709.744,809709.744,809709.744,814653.763,950200.3439999999,950200.3439999999,959319.08397,1639939.4500499999,2437638.39242,4251694.8705,1206671.49658,1534659.38659,795448.533,795448.533,795448.533,795448.533,2856935.7009599996,2856935.7009599996 +1512000.0,997783.3559999999,1314710.313,3838954.1139599998,805663.55331,805663.55331,805663.55331,1127113.5015,2062067.6401600002,3526251.63968,1624376.8604700002,2475240.9302400006,913770.0900000001,913770.0900000001,913770.0900000001,1236009.145,997783.3559999999,997783.3559999999,1220481.4875500002,1060944.2532,1577008.49488,2750596.212,780645.4011199999,992834.25176,978358.8060000001,978358.8060000001,978358.8060000001,978358.8060000001,3000001.95704,3000001.95704 +1515600.0,817457.169,883647.1050000001,2580249.5466,635187.91996,635187.91996,635187.91996,1070979.5775,1604458.33928,2634668.07296,1212903.94407,1848234.58144,758758.122,758758.122,758758.122,1030658.601,817457.169,817457.169,940522.2196499999,878337.3672,1305578.0124799998,2277170.952,646282.80352,821950.27696,766116.6810000001,766116.6810000001,766116.6810000001,766116.6810000001,2457821.2214599997,2457821.2214599997 +1519200.0,726979.629,614089.911,1793142.5401199998,417236.57503,417236.57503,417236.57503,798825.881,1478837.58576,2472067.50656,1095656.38959,1669571.64128,705001.968,705001.968,705001.968,615040.356,726979.629,726979.629,859956.0472099999,800496.3996,1189873.66064,2075361.036,589007.22736,749106.50728,709220.4180000001,709220.4180000001,709220.4180000001,709220.4180000001,2185785.41786,2185785.41786 +1522800.0,1172747.628,1509615.3599999999,4408076.851199999,1668984.8715100002,1668984.8715100002,1668984.8715100002,1624116.396,2680839.77104,3609852.80896,2029476.8382,3092536.1344000003,1101756.213,1101756.213,1101756.213,1584289.9239999999,1172747.628,1172747.628,1809524.89081,1557147.99735,2314575.54174,4037050.3635000004,1145753.3412600001,1457182.9407300001,1340102.082,1340102.082,1340102.082,1340102.082,3526061.2015199997,3526061.2015199997 +1526400.0,1187336.814,1521908.4120000002,4443972.56304,1992273.0056900003,1992273.0056900003,1992273.0056900003,1424667.8739999998,3017118.1371199996,4038537.87584,2276195.22816,3468487.96672,1291597.4759999998,1291597.4759999998,1291597.4759999998,1913305.2225000001,1187336.814,1187336.814,1925086.4924199998,1640504.0807999999,2438477.67072,4253158.728,1207086.95328,1535187.76944,1407387.129,1407387.129,1407387.129,1407387.129,3569926.02076,3569926.02076 +1530000.0,1104230.8469999998,1521825.8429999999,4443731.46156,1386434.40111,1386434.40111,1386434.40111,1283844.6354999999,2826477.48664,4068227.9923200007,1959500.7448800001,2985905.8969600005,1170646.896,1170646.896,1170646.896,1587680.5315,1104230.8469999998,1104230.8469999998,1650078.1094199999,1465921.43145,2178974.57218,3800537.0445000003,1078628.6088200002,1371812.8951100002,1363659.471,1363659.471,1363659.471,1363659.471,3320054.0799799995,3320054.0799799995 +1533600.0,2391446.931,1990052.193,5810952.4035600005,3720483.4508600007,3720483.4508600007,3720483.4508600007,3098925.844,4077746.88136,7572933.739520001,4013336.26323,6115560.020160001,2541009.168,2541009.168,2541009.168,3245957.603,2391446.931,2391446.931,4331443.69164,3159797.0967,4696784.82028,8192066.547,2324986.5057200002,2956945.9250600003,2742027.429,2742027.429,2742027.429,2742027.429,7190283.772539999,7190283.772539999 +1537200.0,1919198.544,1164852.909,3401370.49428,2650155.35554,2650155.35554,2650155.35554,1999246.998,3174003.9964000005,5875827.59104,3000505.7859,4572199.2928,1978443.366,1978443.366,1978443.366,2772012.6455,1919198.544,1919198.544,1811911.52142,2458526.10615,3654401.76766,6373956.5715,1808989.57934,2300694.80057,2206659.9390000002,2206659.9390000002,2206659.9390000002,2206659.9390000002,5770390.28896,5770390.28896 +1540800.0,1500699.207,1106942.106,3232270.94952,1829299.0254,1829299.0254,1829299.0254,1762391.7884999998,2574920.77728,4992582.4672,2245489.91352,3421698.9158400004,1491426.597,1491426.597,1491426.597,2083923.8349999997,1500699.207,1500699.207,1613410.2336299997,1828969.1865,2718615.9266,4741771.965,1345760.0434,1711553.8807,1640497.3530000001,1640497.3530000001,1640497.3530000001,1640497.3530000001,4512102.28238,4512102.28238 +1544400.0,1343853.294,1143325.3979999998,3338510.1621599994,1590711.5920300002,1590711.5920300002,1590711.5920300002,1562801.4325,2525812.97648,4773733.34528,2179755.9609,3321532.8928,1376978.289,1376978.289,1376978.289,1853466.9054999999,1343853.294,1343853.294,1709388.5936399999,1767149.9298,2626726.56232,4581499.818000001,1300273.2816800002,1653703.2676400002,1539329.7119999998,1539329.7119999998,1539329.7119999998,1539329.7119999998,4040518.90396,4040518.90396 +1548000.0,942309.5970000001,825947.4719999998,2411766.6182399997,1038918.3627899999,1038918.3627899999,1038918.3627899999,828002.7105,1335742.27912,2986435.19552,1292675.8280100003,1969791.7379200002,747436.3259999999,747436.3259999999,747436.3259999999,922466.685,942309.5970000001,942309.5970000001,1201062.01202,838892.07225,1246945.7469,2174905.3725,617258.8581,785037.27255,986417.331,986417.331,986417.331,986417.331,2833210.8549800003,2833210.8549800003 +1551600.0,173852.022,147720.693,431344.42355999997,197388.91535,197388.91535,197388.91535,77138.5055,310433.22416,1100280.7238399999,362850.49941000005,552915.0467200001,254546.17799999999,254546.17799999999,254546.17799999999,159932.39849999998,173852.022,173852.022,314959.97364,125471.10195,186502.72438,325295.4495,92321.94662,117416.16701,221631.945,221631.945,221631.945,221631.945,522715.07947999996,522715.07947999996 +1555200.0,189668.157,158913.303,464026.84476,175705.53858000002,175705.53858000002,175705.53858000002,66734.171,441271.9768,1106498.9158400001,380959.05329999997,580509.0336,262394.706,262394.706,262394.706,156801.988,189668.157,189668.157,324242.19139,122365.31894999999,181886.22718,317243.4195,90036.70382,114509.76761,222974.685,222974.685,222974.685,222974.685,570268.9253799999,570268.9253799999 +1558800.0,236912.07299999997,193262.028,564325.12176,178886.38603000002,178886.38603000002,178886.38603000002,78029.34650000001,483970.07391999994,1128833.3254400003,437631.29802,666866.73984,307827.15300000005,307827.15300000005,307827.15300000005,158199.3105,236912.07299999997,236912.07299999997,365783.28982,157945.96619999997,234774.00407999996,409489.54199999996,116217.03191999998,147806.22515999997,292501.533,292501.533,292501.533,292501.533,712315.6328199999,712315.6328199999 +1562400.0,294929.28599999996,261956.91599999997,764914.1947199999,192436.10386,192436.10386,192436.10386,102347.64050000001,574679.1030400001,1164422.4364800001,498976.71747,760345.47424,441929.13000000006,441929.13000000006,441929.13000000006,285532.10000000003,294929.28599999996,294929.28599999996,399991.55287,187871.84955,279256.42822,487075.16550000006,138236.57078,175810.94069000002,397161.10199999996,397161.10199999996,397161.10199999996,397161.10199999996,886754.0532399998,886754.0532399998 +1566000.0,362541.21900000004,294241.88100000005,859186.29252,222172.02854000003,222172.02854000003,222172.02854000003,104085.89799999999,728684.91376,1238658.63488,591732.1823699999,901687.13504,529267.269,529267.269,529267.269,328807.864,362541.21900000004,362541.21900000004,438675.4535799999,222977.67479999998,331438.42032,578090.268,164067.52368,208663.05864,482619.50100000005,482619.50100000005,482619.50100000005,482619.50100000005,1090040.59846,1090040.59846 +1569600.0,493959.08999999997,332774.448,971701.3881599999,234733.02941000002,234733.02941000002,234733.02941000002,110225.76950000001,858543.51,1482652.9708800004,749248.63503,1141712.20576,583256.1510000001,583256.1510000001,583256.1510000001,356944.6755,493959.08999999997,493959.08999999997,466037.94665999996,296924.47424999997,441354.40369999997,769804.1925,218477.76129999998,277862.65615,609432.4619999999,609432.4619999999,609432.4619999999,609432.4619999999,1485170.3306,1485170.3306 +1573200.0,604292.235,463544.13300000003,1353548.86836,265169.80809,265169.80809,265169.80809,135298.6495,1041313.24792,1892947.18208,905442.32457,1379721.6374400002,632675.484,632675.484,632675.484,445276.237,604292.235,604292.235,503108.203,369912.01499999996,549844.5259999998,959031.1499999999,272182.17399999994,346164.57699999993,698125.356,698125.356,698125.356,698125.356,1816905.3198999998,1816905.3198999998 +1576800.0,684273.87,523086.23400000005,1527411.80328,413000.33588,413000.33588,413000.33588,225445.8465,1330252.8368,2179387.41184,1090367.98395,1661513.1184,697587.0630000001,697587.0630000001,697587.0630000001,563383.8385,684273.87,684273.87,628084.0520499999,446260.18905,663329.96002,1156970.8605,328359.34898,417611.38679,756949.098,756949.098,756949.098,756949.098,2057383.4357999999,2057383.4357999999 +1580400.0,1403047.374,1330459.5,3884941.7399999998,1261721.33087,1261721.33087,1261721.33087,1152607.1269999999,2353125.1167200003,2828068.6246399996,1968538.58292,2999677.84064,1037927.382,1037927.382,1037927.382,1916796.4059999997,1403047.374,1403047.374,2758698.732399999,900221.2829999999,1338106.6971999998,2333907.03,662385.0427999999,842429.2993999999,1888930.932,1888930.932,1888930.932,1888930.932,4218495.77116,4218495.77116 +1584000.0,2532989.2470000004,2249374.428,6568173.329759999,3187457.06488,3187457.06488,3187457.06488,2277965.9699999997,3795856.3944,4613247.415680001,3699211.91955,5636894.3536,1687769.091,1687769.091,1687769.091,2749549.6455,2532989.2470000004,2532989.2470000004,4248436.987729999,2037710.0016,3028892.39744,5282951.856000001,1499352.0505600001,1906894.0508800002,2720196.4469999997,2720196.4469999997,2720196.4469999997,2720196.4469999997,7615854.33598,7615854.33598 +1587600.0,2903740.668,2861297.481,8354988.644520001,3532449.52005,3532449.52005,3532449.52005,2911319.1835,4994704.6468,10739765.92832,4000870.81086,6096565.04512,2947512.855,2947512.855,2947512.855,3109530.683,2903740.668,2903740.668,3042163.41767,3863658.6292499998,5743018.5057,10016892.7425,2842889.5593,3615621.2851500004,2758971.8490000004,2758971.8490000004,2758971.8490000004,2758971.8490000004,8730580.27512,8730580.27512 +1591200.0,2057375.3250000002,1673314.596,4886078.62032,2560722.75877,2560722.75877,2560722.75877,3226931.6275,3946685.49624,7884240.5792000005,3782437.07961,5763713.6451200005,2895433.536,2895433.536,2895433.536,3425125.5675000004,2057375.3250000002,2057375.3250000002,2031733.62964,3859764.615,5737230.365999999,10006797.15,2840024.3340000003,3611977.257,2135082.63,2135082.63,2135082.63,2135082.63,6185841.8105,6185841.8105 +1594800.0,1537056.63,1266598.4100000001,3698467.3572,2144731.7339800005,2144731.7339800005,2144731.7339800005,2810250.5620000004,3930629.4732799996,7939288.004480001,3250647.9117,4953368.2464000005,1519856.2230000002,1519856.2230000002,1519856.2230000002,2591999.3155,1537056.63,1537056.63,1524713.50174,3114521.0207999996,4629485.56672,8074684.128,2291672.25728,2914576.4614399998,1864546.3200000003,1864546.3200000003,1864546.3200000003,1864546.3200000003,4621416.934199999,4621416.934199999 +1598400.0,1437365.091,1203519.201,3514276.0669199997,1906301.7689100003,1906301.7689100003,1906301.7689100003,2194014.7075,3638842.13688,5730134.42496,2644945.44216,4030393.05472,1445641.3080000002,1445641.3080000002,1445641.3080000002,2310023.289,1437365.091,1437365.091,1498374.9903199999,2053824.84225,3052845.8148999996,5324731.0725,1511209.3901,1921974.35855,1591036.0890000002,1591036.0890000002,1591036.0890000002,1591036.0890000002,4321677.70694,4321677.70694 +1602000.0,1134689.442,959170.713,2800778.48196,1167614.23328,1167614.23328,1167614.23328,1406991.747,2627293.6344799995,3559357.96736,2024254.3282500003,3084578.024,1097681.2349999999,1097681.2349999999,1097681.2349999999,1458163.0805,1134689.442,1134689.442,1166946.3077999998,1403713.0426499997,2086506.7942599996,3639256.0364999995,1032855.5227399999,1313598.1312699998,1246412.1809999999,1246412.1809999999,1246412.1809999999,1246412.1809999999,3411632.92228,3411632.92228 +1605600.0,997544.9280000001,831932.7629999999,2429243.6679599998,964846.0884700001,964846.0884700001,964846.0884700001,1065145.9000000001,2077154.55016,3306998.304,1659943.7439900003,2529438.0860800003,984720.8550000001,984720.8550000001,984720.8550000001,1332486.743,997544.9280000001,997544.9280000001,1048337.2777799999,1224313.53795,1819843.82678,3174146.2095000003,900852.92422,1145715.6318100002,1090775.835,1090775.835,1090775.835,1090775.835,2999285.08352,2999285.08352 +1609200.0,1257505.9109999998,1109302.3229999999,3239162.7831599996,1427314.84456,1427314.84456,1427314.84456,1372853.6605,2491762.19656,4462687.79968,2119163.0892600003,3229200.8979200004,1283350.9649999999,1283350.9649999999,1283350.9649999999,1671243.0805,1257505.9109999998,1257505.9109999998,1589587.06361,1613492.1845999998,2398326.65464,4183127.886,1187211.53336,1509909.97028,1437547.032,1437547.032,1437547.032,1437547.032,3780901.1057399996,3780901.1057399996 +1612800.0,1326906.399,1179609.225,3444458.937,1536791.76398,1536791.76398,1536791.76398,1454824.4165,2633140.44392,4759772.12928,2240846.91663,3414623.8729600003,1366412.991,1366412.991,1366412.991,1755010.4285000002,1326906.399,1326906.399,1711207.74045,1717626.5540999998,2553114.03844,4453105.881,1263833.85956,1607359.17038,1518837.756,1518837.756,1518837.756,1518837.756,3989565.2396599995,3989565.2396599995 +1616400.0,1368536.508,1216921.26,3553410.0791999996,1606718.4584000001,1606718.4584000001,1606718.4584000001,1519646.9575,2729292.91952,4922222.14912,2315883.97089,3528966.05088,1416582.816,1416582.816,1416582.816,1816140.0214999998,1368536.508,1368536.508,1758886.0814199997,1777836.17475,2642610.8079,4609204.8975,1308136.2471,1663703.48205,1565068.23,1565068.23,1565068.23,1565068.23,4114733.1007199995,4114733.1007199995 +1620000.0,1397493.771,1236110.526,3609442.73592,1683194.86137,1683194.86137,1683194.86137,1591381.2215,2801148.7350399997,5002224.87808,2373877.29789,3617336.83488,1444802.3850000002,1444802.3850000002,1444802.3850000002,1853338.8545,1397493.771,1397493.771,1783842.87224,1817658.5692499997,2701803.6016999995,4712448.1425,1337437.6633,1700969.3771499998,1596106.215,1596106.215,1596106.215,1596106.215,4201797.938139999,4201797.938139999 +1623600.0,1411094.67,1248887.172,3646750.54224,1699006.8317200001,1699006.8317200001,1699006.8317200001,1607621.9985,2832709.0527999997,5056110.00384,2398352.8978500003,3654632.9872000003,1460910.474,1460910.474,1460910.474,1872442.019,1411094.67,1411094.67,1799380.7354899996,1835642.7684,2728535.67056,4759073.8440000005,1350670.48144,1717799.0351200001,1611814.2119999998,1611814.2119999998,1611814.2119999998,1611814.2119999998,4242691.3078,4242691.3078 +1627200.0,1425697.701,1265213.565,3694423.6097999997,1703548.13772,1703548.13772,1703548.13772,1613502.135,2865331.3862400004,5126713.609600001,2422732.4822400003,3691782.83008,1480603.881,1480603.881,1480603.881,1894081.5284999998,1425697.701,1425697.701,1818829.44139,1855109.9762999997,2757472.1129199998,4809544.382999999,1364994.5010799998,1736016.4963399998,1630167.7319999998,1630167.7319999998,1630167.7319999998,1630167.7319999998,4286597.7543399995,4286597.7543399995 +1630800.0,1358125.038,1119983.136,3270350.7571199997,1438102.9697099999,1438102.9697099999,1438102.9697099999,1221145.0125,2379733.6576,3704097.9257600005,1997070.02565,3043154.3248,1166418.426,1166418.426,1166418.426,1495959.486,1358125.038,1358125.038,1730923.2089500001,1465285.9581,2178029.99204,3798889.5209999997,1078161.02596,1371218.21758,1406457.216,1406457.216,1406457.216,1406457.216,4083429.2809199993,4083429.2809199993 +1634400.0,612521.427,439992.28199999995,1284777.4634399998,776382.5895100001,776382.5895100001,776382.5895100001,500218.0505,1181533.0903999999,1554364.944,951449.6733,1449828.0736000002,547641.822,547641.822,547641.822,655125.611,612521.427,612521.427,1000643.3139299998,332424.10124999995,494121.7504999999,861840.2625,244598.47449999998,311083.29475,771618.0210000001,771618.0210000001,771618.0210000001,771618.0210000001,1841647.75718,1841647.75718 +1638000.0,233768.847,220906.977,645048.37284,242778.11701000005,242778.11701000005,242778.11701000005,96362.714,528785.29368,1239122.3948800003,444079.23693,676692.17056,338333.30100000004,338333.30100000004,338333.30100000004,179300.16299999997,233768.847,233768.847,342635.76126,144692.5923,215073.92732,375128.94299999997,106465.16668,135403.68514,248708.83500000002,248708.83500000002,248708.83500000002,248708.83500000002,702864.9999800001,702864.9999800001 +1641600.0,257451.42599999998,253268.56500000003,739544.2098000001,230308.62602000005,230308.62602000005,230308.62602000005,95928.9485,545609.22408,1294660.1491200002,465383.55549,709155.89408,371014.626,371014.626,371014.626,173315.93300000002,257451.42599999998,257451.42599999998,363059.12707999995,167200.73055,248530.46862,433483.3755,123026.71038,156466.85649,311072.26499999996,311072.26499999996,311072.26499999996,311072.26499999996,774070.6208399999,774070.6208399999 +1645200.0,301276.527,284830.887,831706.19004,245093.52373000004,245093.52373000004,245093.52373000004,110355.5355,602930.07968,1331271.4361600003,542779.90053,827093.1817600001,496620.08700000006,496620.08700000006,496620.08700000006,231785.064,301276.527,301276.527,427609.11062999995,205658.25075,305694.4863,533188.0575,151323.8487,192455.49885,420317.75999999995,420317.75999999995,420317.75999999995,420317.75999999995,905838.0911799999,905838.0911799999 +1648800.0,398484.927,326907.558,954570.06936,250921.01078,250921.01078,250921.01078,115432.4325,825016.84088,1455821.2153600003,660391.89783,1006311.46336,587226.2189999999,587226.2189999999,587226.2189999999,365226.764,398484.927,398484.927,462716.81963,255678.47639999999,380045.53776,662870.124,188128.85424,239264.54952,536256.057,536256.057,536256.057,536256.057,1198111.34718,1198111.34718 +1652400.0,546152.112,391852.458,1144209.17736,269829.24584000005,269829.24584000005,269829.24584000005,126088.655,987310.4584,1834561.2179200004,827608.1158799999,1261117.12896,659490.963,659490.963,659490.963,442649.4415,546152.112,546152.112,531974.73017,373392.74295,555018.34878,968055.2595,274743.30222,349421.85081000003,666199.728,666199.728,666199.728,666199.728,1642097.35008,1642097.35008 +1656000.0,667932.918,496292.22899999993,1449173.3086799998,297364.07789,297364.07789,297364.07789,149096.3495,1189510.46616,2172599.7932800003,999015.11241,1522308.74272,713254.611,713254.611,713254.611,530311.453,667932.918,667932.918,556902.06936,421486.29855,626505.55982,1092742.2555,310130.65918,394427.91889000003,765329.2920000001,765329.2920000001,765329.2920000001,765329.2920000001,2008251.6401199996,2008251.6401199996 +1659600.0,747293.763,575176.992,1679516.8166399999,376899.1754,376899.1754,376899.1754,160271.2685,1418339.20952,2414176.8000000003,1173766.5023700001,1788596.57504,791273.418,791273.418,791273.418,590321.179,747293.763,747293.763,666325.7405999999,471099.2157,700251.17988,1221368.337,346635.96612,440855.80926,815860.8840000001,815860.8840000001,815860.8840000001,815860.8840000001,2246863.24742,2246863.24742 +1663200.0,842741.811,610365.882,1782268.3754399999,480933.71524000005,480933.71524000005,480933.71524000005,260149.92850000004,1590120.4151200003,2515053.4291200005,1313901.3692700001,2002135.4198400003,880261.911,880261.911,880261.911,683970.8225,842741.811,842741.811,746888.65186,619624.8737999998,921022.6519199997,1606434.8579999998,455921.5120799999,579846.4868399999,906249.51,906249.51,906249.51,906249.51,2533843.7117399997,2533843.7117399997 +1666800.0,1573422.54,1447586.544,4226952.70848,1320904.60095,1320904.60095,1320904.60095,1260401.4185,2622207.5668,3246725.5193600003,2223240.69723,3387795.34816,1198260.441,1198260.441,1198260.441,2068196.8684999999,1573422.54,1573422.54,2846567.92784,1091600.8658999999,1622577.0895599998,2830076.3189999997,803202.6124399999,1021522.78562,2054819.0489999999,2054819.0489999999,2054819.0489999999,2054819.0489999999,4730757.1036,4730757.1036 +1670400.0,2675600.361,2396243.2800000003,6997030.3776,3345527.7574400003,3345527.7574400003,3345527.7574400003,2408251.7970000003,4032267.9339199997,5044001.314560001,3973931.92539,6055515.31488,1850831.73,1850831.73,1850831.73,3049482.184,2675600.361,2675600.361,4810000.0,2190245.6092499997,3255624.3377,5678414.5425,1611588.1273,2049637.24915,2878223.181,2878223.181,2878223.181,2878223.181,8044638.41874,8044638.41874 +1674000.0,3000000.0,3000000.0,8760000.0,3642239.99227,3642239.99227,3642239.99227,3033669.4990000003,5208763.3644,10880000.0,4251277.69311,6478137.437120001,2995886.538,2995886.538,2995886.538,3370835.7095,3000000.0,3000000.0,3099542.4993,4006891.51245,5955922.69258,10388237.2545,2948280.66842,3749658.97091,2875842.1739999996,2875842.1739999996,2875842.1739999996,2875842.1739999996,9020000.0,9020000.0 +1677600.0,2112791.886,1884642.7529999998,5503156.83876,2836333.3867,2836333.3867,2836333.3867,3500000.0,4103470.87832,8419397.032320002,3873596.0314800004,5902622.5241600005,2978628.7529999996,2978628.7529999996,2978628.7529999996,3500000.0,2112791.886,2112791.886,2047258.6838599998,4050000.0,6020000.0,10500000.0,2980000.0,3790000.0,2168967.1950000003,2168967.1950000003,2168967.1950000003,2168967.1950000003,6352460.937239999,6352460.937239999 +1681200.0,1553233.611,1258993.7280000001,3676261.68576,2292716.6775700003,2292716.6775700003,2292716.6775700003,2922148.649,4029318.8098400002,7928929.1129600005,3344038.7631000006,5095678.115200001,1513245.15,1513245.15,1513245.15,2630920.397,1553233.611,1553233.611,1582051.3664799999,3352861.24875,4983759.189499999,8692603.237499999,2467043.5855,3137615.83525,1879439.4810000001,1879439.4810000001,1879439.4810000001,1879439.4810000001,4670055.72374,4670055.72374 +1684800.0,1387585.8509999998,1122760.2149999999,3278459.8277999996,1856520.0238200002,1856520.0238200002,1856520.0238200002,2350413.3415,3535937.1963199996,6243320.992000001,2592407.21376,3950334.80192,1351025.976,1351025.976,1351025.976,2216530.9319999996,1387585.8509999998,1387585.8509999998,1329479.0120299999,1973975.2730999999,2934155.8380399994,5117713.671,1452455.8799599998,1847250.93458,1516944.6389999997,1516944.6389999997,1516944.6389999997,1516944.6389999997,4172008.1253399993,4172008.1253399993 +1688400.0,960108.048,772969.524,2257071.01008,930522.2766400002,930522.2766400002,930522.2766400002,1334122.4679999999,2329959.1332,2747269.0227200002,1702159.74075,2593767.2240000004,878346.723,878346.723,878346.723,1182583.395,960108.048,960108.048,786341.3300599998,1136294.33715,1689010.34806,2945948.2815000005,836088.1789400001,1063347.04637,1009665.5789999999,1009665.5789999999,1009665.5789999999,1009665.5789999999,2886724.8643199997,2886724.8643199997 +1692000.0,782941.4789999999,601123.551,1755280.76892,547165.76541,547165.76541,547165.76541,807100.322,1696250.1686399998,2337456.4147200002,1269562.1528099999,1934570.89952,730952.079,730952.079,730952.079,997631.5090000001,782941.4789999999,782941.4789999999,630534.66047,890566.6662,1323755.88408,2308876.5420000004,655281.1519200001,833394.48516,801884.088,801884.088,801884.088,801884.088,2354044.0468599997,2354044.0468599997 +1695600.0,1269047.643,1115035.443,3255903.4935600003,1409598.19154,1409598.19154,1409598.19154,1386326.648,2525964.6588,4483730.318080001,2113182.40455,3220087.4736,1254253.197,1254253.197,1254253.197,1662462.361,1269047.643,1269047.643,1525229.1096899996,1619522.91405,2407290.85002,4198763.1105,1191648.9589799999,1515553.54179,1420331.595,1420331.595,1420331.595,1420331.595,3815603.24662,3815603.24662 +1699200.0,1403108.0010000002,1249729.077,3649208.90484,1625191.59825,1625191.59825,1625191.59825,1545562.508,2801346.8804,5057338.58432,2380014.26691,3626688.40672,1440419.2740000002,1440419.2740000002,1440419.2740000002,1850034.9875000003,1403108.0010000002,1403108.0010000002,1806531.95489,1819041.19065,2703858.75746,4716032.7165,1338454.99954,1702263.23767,1594210.1400000001,1594210.1400000001,1594210.1400000001,1594210.1400000001,4218678.05634,4218678.05634 +1702800.0,1436282.067,1279311.549,3735589.72308,1689061.26983,1689061.26983,1689061.26983,1598957.8360000001,2876385.01704,5183290.83904,2440208.6442299997,3718413.17216,1479872.883,1479872.883,1479872.883,1895250.147,1436282.067,1436282.067,1847787.3585599998,1867852.09035,2776412.24294,4842579.4935,1374370.1800600002,1747940.59813,1638627.294,1638627.294,1638627.294,1638627.294,4318421.41478,4318421.41478 +1706400.0,1485908.319,1318839.9840000002,3851012.7532800003,1790804.1188400004,1790804.1188400004,1790804.1188400004,1694600.8555,2995923.6791999997,5354445.9904000005,2535323.0763,3863349.4496,1535261.9039999999,1535261.9039999999,1535261.9039999999,1966316.9575000003,1485908.319,1485908.319,1897327.8285,1937622.2300999998,2880119.9568399996,5023465.040999999,1425707.22116,1813231.6671799999,1695844.9080000003,1695844.9080000003,1695844.9080000003,1695844.9080000003,4467631.01246,4467631.01246 +1710000.0,1485246.78,1317691.482,3847659.12744,1788601.86219,1788601.86219,1788601.86219,1694485.296,2993553.924,5345203.87648,2534288.49996,3861772.95232,1532875.4100000001,1532875.4100000001,1532875.4100000001,1963192.511,1485246.78,1485246.78,1895966.4686299998,1935017.7237,2876248.56708,5016712.617000001,1423790.81892,1810794.3636600003,1693744.0769999998,1693744.0769999998,1693744.0769999998,1693744.0769999998,4465641.9852,4465641.9852 +1713600.0,1504257.207,1338307.965,3907859.2578000003,1797027.25466,1797027.25466,1797027.25466,1705413.7135,3036527.69832,5434742.881920001,2566447.16643,3910776.6345600006,1558367.6940000001,1558367.6940000001,1558367.6940000001,1991988.2745000003,1504257.207,1504257.207,1920538.7720999997,1960766.2183499997,2914521.6381399995,5083467.973499999,1442736.6248599999,1834889.8685299999,1717575.003,1717575.003,1717575.003,1717575.003,4522800.0023799995,4522800.0023799995 +1717200.0,1455205.0350000001,1206308.502,3522420.82584,1542574.20427,1542574.20427,1542574.20427,1313216.2295,2584825.57496,4014483.3056,2161112.08362,3293123.1750400006,1259304.078,1259304.078,1259304.078,1610127.0535,1455205.0350000001,1455205.0350000001,1860275.8164899999,1579732.1783999999,2348145.1145599997,4095601.9439999997,1162370.83744,1478317.27312,1512142.362,1512142.362,1512142.362,1512142.362,4375316.4719,4375316.4719 +1720800.0,668044.053,492685.0229999999,1438640.2671599998,842683.6913000001,842683.6913000001,842683.6913000001,539908.747,1310199.3572,1722706.7232,1045722.32814,1593481.64288,609307.035,609307.035,609307.035,711857.4995,668044.053,668044.053,1082779.7637799997,363619.66365,540491.45066,942717.6465,267552.24634,340276.17907,838161.4649999999,838161.4649999999,838161.4649999999,838161.4649999999,2008585.7860199998,2008585.7860199998 +1724400.0,261475.896,264345.396,771888.55632,269718.4156700001,269718.4156700001,269718.4156700001,107962.687,601818.5875200001,1385123.50848,493978.1552999999,752728.6176,377317.98,377317.98,377317.98,195234.3225,261475.896,261475.896,375277.63818999997,164272.6737,244178.14708,425892.117,120872.23892,153726.77366,285037.167,285037.167,285037.167,285037.167,786170.86064,786170.86064 +1728000.0,298128.23099999997,286275.288,835923.8409600001,265988.22404000006,265988.22404000006,265988.22404000006,113395.73000000001,616327.9624,1443021.11296,533192.50992,812483.82464,459475.07999999996,459475.07999999996,459475.07999999996,191500.13050000003,298128.23099999997,298128.23099999997,415618.4396,191855.83049999998,285178.2962,497404.005,141167.9938,179539.1599,384003.924,384003.924,384003.924,384003.924,896372.2145399998,896372.2145399998 +1731600.0,366344.33099999995,336024.642,981191.9546399999,279865.14545,279865.14545,279865.14545,125685.672,773917.3781600001,1516679.46368,635632.18761,968582.38112,596750.5290000001,596750.5290000001,596750.5290000001,322104.4365,366344.33099999995,366344.33099999995,487769.17552999995,250555.94729999997,372431.30931999994,649589.493,184359.68468,234470.87414,513067.07100000005,513067.07100000005,513067.07100000005,513067.07100000005,1101475.2885399999,1101475.2885399999 +1735200.0,512653.14600000007,396097.77,1156605.4884,291525.92337000003,291525.92337000003,291525.92337000003,133055.75149999998,1009723.7652,1791949.1212799998,818973.7035899999,1247959.92928,692840.442,692840.442,692840.442,440358.135,512653.14600000007,512653.14600000007,542525.60466,352899.423,524556.6732,914924.43,259664.2668,330244.15140000003,655953.984,655953.984,655953.984,655953.984,1541377.12564,1541377.12564 +1738800.0,683887.548,480815.14800000004,1403980.2321600001,315376.65654000005,315376.65654000005,315376.65654000005,156028.60700000002,1237130.78976,2322306.43904,1036551.4719,1579507.0048,768417.732,768417.732,768417.732,575941.2435,683887.548,683887.548,599894.12353,459874.8918,683567.12312,1192268.238,338377.08088,430352.05924000003,809640.9749999999,809640.9749999999,809640.9749999999,809640.9749999999,2056221.89432,2056221.89432 +1742400.0,797620.17,628653.051,1835666.9089199998,383498.48911,383498.48911,383498.48911,167409.0005,1503168.74272,2583664.96128,1246559.69802,1899519.53984,841586.478,841586.478,841586.478,630278.8624999999,797620.17,797620.17,686261.1752099999,509590.41164999997,757465.2538599999,1321160.3265,374957.88314,476875.96547,881843.124,881843.124,881843.124,881843.124,2398177.9778,2398177.9778 +1746000.0,893075.5260000001,672624.504,1964063.55168,435167.74961000006,435167.74961000006,435167.74961000006,192886.0255,1714308.27792,2755995.8272000006,1411669.6593300002,2151115.67136,954740.946,954740.946,954740.946,723583.441,893075.5260000001,893075.5260000001,813686.1127199999,644404.6854,957855.85336,1670678.814,474154.55864,603035.49572,968392.149,968392.149,968392.149,968392.149,2685180.4148399998,2685180.4148399998 +1749600.0,1134420.477,779148.135,2275112.5542,630728.80761,630728.80761,630728.80761,403262.153,2220944.0576,2956434.3571200003,1738056.2476199998,2648466.66304,1044581.1779999998,1044581.1779999998,1044581.1779999998,970648.0840000001,1134420.477,1134420.477,1114866.29735,801302.71815,1191072.18846,2077451.4915000002,589600.5185400001,749861.06217,1158680.631,1158680.631,1158680.631,1158680.631,3410824.2341799997,3410824.2341799997 +1753200.0,1837243.7489999998,1145767.7489999998,3345641.8270799997,2277118.14209,2277118.14209,2277118.14209,2068640.917,4387733.76016,5626373.105280001,4011793.10238,6113208.53696,2033849.4449999998,2033849.4449999998,2033849.4449999998,2876366.836,1837243.7489999998,1837243.7489999998,3821016.3809999996,2491433.0811,3703315.3452399997,6459270.951,1833202.61276,2331489.22898,2167631.211,2167631.211,2167631.211,2167631.211,5523979.538659999,5523979.538659999 +1756800.0,1858067.742,1651828.8810000003,4823340.332520001,3099269.2938900003,3099269.2938900003,3099269.2938900003,3063051.8729999997,5533231.23568,5470353.633280001,4482911.68878,6831103.525760001,2028104.8590000002,2028104.8590000002,2028104.8590000002,3143323.9145,1858067.742,1858067.742,3073851.8515899996,2918191.0905,4337656.8802,7565680.605,2147212.2098,2730850.4279,2351495.322,2351495.322,2351495.322,2351495.322,5586590.34428,5586590.34428 +1760400.0,2546546.3189999997,2683900.986,7836990.87912,2805185.6360000004,2805185.6360000004,2805185.6360000004,3429845.0864999997,5840000.0,8879139.30944,4830000.0,7360000.0,2483969.64,2483969.64,2483969.64,2384385.3109999998,2546546.3189999997,2546546.3189999997,3995791.3288799995,3090145.51665,4593253.33586,8011488.3765,2273736.70114,2891765.8044700003,2861519.199,2861519.199,2861519.199,2861519.199,7656615.932459999,7656615.932459999 +1764000.0,2041664.79,1590946.278,4645563.131759999,1190954.88556,1190954.88556,1190954.88556,2295303.7484999998,3439150.6836,9635431.44704,2474852.58237,3771203.93504,1881966.744,1881966.744,1881966.744,2033719.24,2041664.79,2041664.79,3221792.0980700003,2954260.026,4391270.4584,7659192.66,2173751.8216,2764603.8268000004,1537572.8039999998,1537572.8039999998,1537572.8039999998,1537572.8039999998,6138605.4686,6138605.4686 +1767600.0,1237330.377,1067319.018,3116571.5325599997,822180.2930000001,822180.2930000001,822180.2930000001,1158164.9765,2554182.3123999997,7300423.336960001,1810238.0039100002,2758457.91072,1202714.9640000002,1202714.9640000002,1202714.9640000002,1106295.379,1237330.377,1237330.377,2141271.66825,2248724.4340499993,3342548.4180199993,5830026.310499999,1654616.9909799998,2104361.87779,1080923.2230000002,1080923.2230000002,1080923.2230000002,1080923.2230000002,3720240.00018,3720240.00018 +1771200.0,1212636.258,1571448.105,4588628.4666,970809.51352,970809.51352,970809.51352,1341660.2115,2657129.82656,5438251.584,2021988.47382,3081125.29344,1139967.5639999998,1139967.5639999998,1139967.5639999998,1468821.2455,1212636.258,1212636.258,1711248.59659,1435447.4129999997,2133677.3891999996,3721530.3299999996,1056205.7507999998,1343295.2333999998,1200957.0750000002,1200957.0750000002,1200957.0750000002,1200957.0750000002,3645993.01572,3645993.01572 +1774800.0,1009771.6710000001,1064414.673,3108090.84516,757206.1740100001,757206.1740100001,757206.1740100001,1247790.5405000001,1972199.1447199997,3143117.1507200003,1467113.66886,2235601.7811200004,893732.415,893732.415,893732.415,1170413.951,1009771.6710000001,1009771.6710000001,1192554.1369299998,1060038.5031,1575662.17004,2748247.9710000004,779978.9479600001,991986.6485800002,917754.3180000001,917754.3180000001,917754.3180000001,917754.3180000001,3036046.82414,3036046.82414 +1778400.0,889905.978,891414.999,2602931.79708,547493.9580000001,547493.9580000001,547493.9580000001,1054403.861,1787626.1082399997,2981119.66272,1356609.8618100001,2067215.0275200002,827642.1900000002,827642.1900000002,827642.1900000002,889951.2685000001,889905.978,889905.978,1123819.23693,988873.76205,1469881.4932199998,2563746.7905,727615.75578,925390.5081900001,861049.4310000001,861049.4310000001,861049.4310000001,861049.4310000001,2675650.64052,2675650.64052 +1782000.0,1343951.517,1769953.2510000002,5168263.49292,1846856.4844400003,1846856.4844400003,1846856.4844400003,1851125.4895,3063811.16216,4139214.5305600003,2319010.28499,3533729.9580800002,1228860.945,1228860.945,1228860.945,1708456.7255000002,1343951.517,1343951.517,2076721.9732999997,1753243.17345,2606055.28498,4545445.2645,1290040.6560199999,1640689.29071,1634711.0549999997,1634711.0549999997,1634711.0549999997,1634711.0549999997,4040814.22778,4040814.22778 +1785600.0,1362766.3620000002,1819527.1440000003,5313019.260480001,2224464.8980400003,2224464.8980400003,2224464.8980400003,1631914.3820000002,3493102.1687199995,4626369.84896,2645832.1094100005,4031744.1667200006,1428119.07,1428119.07,1428119.07,2143663.3890000004,1362766.3620000002,1362766.3620000002,2177324.28251,1849479.05475,2749102.1999,4794945.6975,1360851.2551,1730747.06605,1605937.6979999999,1605937.6979999999,1605937.6979999999,1605937.6979999999,4097384.19508,4097384.19508 +1789200.0,1289408.796,1683287.571,4915199.707319999,1771713.6861600003,1771713.6861600003,1771713.6861600003,1512410.0599999998,3195531.08904,4679506.387200001,2310086.25624,3520131.43808,1325340.738,1325340.738,1325340.738,1859728.6750000003,1289408.796,1289408.796,1954474.60637,1730929.6782000002,2572888.06488,4487595.462,1273622.3311200002,1619808.2667600003,1577892.8279999997,1577892.8279999997,1577892.8279999997,1577892.8279999997,3876822.44664,3876822.44664 +1792800.0,2503691.757,2111776.593,6166387.651559999,3854072.234650001,3854072.234650001,3854072.234650001,3239494.846,4295573.058879999,8019360.1913600005,4211318.94855,6417247.9216,2641409.1810000003,2641409.1810000003,2641409.1810000003,3382837.7275,2503691.757,2503691.757,4521952.07737,3338661.1428,4962651.8715200005,8655788.148,2456595.11248,3124327.3410400003,2884604.0790000004,2884604.0790000004,2884604.0790000004,2884604.0790000004,7527766.54938,7527766.54938 +1796400.0,2065849.002,1299601.3620000002,3794835.9770400003,3007157.94929,3007157.94929,3007157.94929,2150461.7015,3437778.2368799997,6516910.483840001,3235276.5091500003,4929945.1568,2102929.806,2102929.806,2102929.806,3069696.2415,2065849.002,2065849.002,2234292.44103,2682227.0907,3986915.3298799996,6953922.087,1973589.3161199999,2510034.73426,2365041.732,2365041.732,2365041.732,2365041.732,6211319.33268,6211319.33268 +1800000.0,1651355.2259999998,1232078.334,3597668.7352799997,2315462.2958500003,2315462.2958500003,2315462.2958500003,1948575.5555,2869671.97208,5545464.83392,2572314.78567,3919717.7686400004,1613839.8900000001,1613839.8900000001,1613839.8900000001,2299377.5700000003,1651355.2259999998,1651355.2259999998,1838405.99709,2085730.9974,3100271.75416,5407450.734,1534686.01784,1951832.21732,1842781.1430000002,1842781.1430000002,1842781.1430000002,1842781.1430000002,4965074.712839999,4965074.712839999 +1803600.0,1469048.178,1240191.528,3621359.2617599997,1809482.50879,1809482.50879,1809482.50879,1785664.986,2745326.76216,5158698.75328,2396758.90125,3652204.04,1454586.2370000002,1454586.2370000002,1454586.2370000002,2011876.0165000001,1469048.178,1469048.178,1893839.3279,1944794.2617,2890780.60628,5042059.197,1430984.41972,1819943.27206,1665506.19,1665506.19,1665506.19,1665506.19,4416938.18852,4416938.18852 +1807200.0,1042667.6519999999,895496.625,2614850.145,1146052.34601,1146052.34601,1146052.34601,904257.5885,1458487.90136,3225196.371200001,1456775.92809,2219849.03328,800899.6680000001,800899.6680000001,800899.6680000001,994226.4500000001,1042667.6519999999,1042667.6519999999,1323027.9410400002,916868.5568999999,1362851.5339599997,2377066.6289999997,674634.1480399999,858007.8594199999,1073176.392,1073176.392,1073176.392,1073176.392,3134954.0736799994,3134954.0736799994 +1810800.0,212874.09600000002,162872.385,475587.3642,223535.70239000002,223535.70239000002,223535.70239000002,83970.8205,459461.13568,1206060.90368,438911.64891000005,668817.7507200001,284505.033,284505.033,284505.033,175383.9045,212874.09600000002,212874.09600000002,347859.65213999996,143898.28605000002,213893.25482000003,373069.6305000001,105880.71418000002,134660.37139000001,253362.837,253362.837,253362.837,253362.837,640041.4486400001,640041.4486400001 +1814400.0,250044.66,206589.897,603242.49924,207449.60940000004,207449.60940000004,207449.60940000004,82903.8385,557494.86216,1260617.14048,464319.09594,707533.86048,342026.78099999996,342026.78099999996,342026.78099999996,175532.84,250044.66,250044.66,376365.2802,147115.7721,218675.78964,381411.26100000006,108248.14836000002,137671.30278000003,267692.733,267692.733,267692.733,267692.733,751800.9443999999,751800.9443999999 +1818000.0,313106.181,298724.53500000003,872275.6422,245265.75799000004,245265.75799000004,245265.75799000004,109094.3665,609249.08816,1356292.5312,544752.6319200001,830099.24864,410803.905,410803.905,410803.905,236217.35549999998,313106.181,313106.181,437538.81690999994,206759.68875,307331.68549999996,536043.6375000001,152134.2895,193486.22725,419913.333,419913.333,419913.333,419913.333,941405.9175399999,941405.9175399999 +1821600.0,394305.768,333922.23,975052.9115999999,265244.32979,265244.32979,265244.32979,123304.4925,794057.9379999998,1405644.30912,652479.1793100002,994253.9875200002,572399.112,572399.112,572399.112,366179.0685,394305.768,394305.768,487845.87578999996,245098.56824999998,364319.35329999996,635440.7325,180344.1317,229363.84535000002,515704.926,515704.926,515704.926,515704.926,1185546.0091199998,1185546.0091199998 +1825200.0,542353.236,372629.157,1088077.13844,279220.86445,279220.86445,279220.86445,128441.00149999998,965837.64856,1638698.89216,841724.65545,1282628.0463999999,656695.392,656695.392,656695.392,413339.976,542353.236,542353.236,525889.64246,331593.22755,492886.72341999994,859686.1455,243987.11557999998,310305.76109,674253.435,674253.435,674253.435,674253.435,1630675.39624,1630675.39624 +1828800.0,682487.2320000001,496706.544,1450383.10848,302180.61764,302180.61764,302180.61764,150698.114,1205709.3939200002,2109363.85152,1059631.10043,1614675.9625600001,704194.7250000001,704194.7250000001,704194.7250000001,515059.4225,682487.2320000001,682487.2320000001,589878.27015,425467.5012,632423.29808,1103063.892,313060.03792,398153.53816,790868.9910000002,790868.9910000002,790868.9910000002,790868.9910000002,2052011.61088,2052011.61088 +1832400.0,754806.0719999999,579922.7130000001,1693374.32196,365958.01011000003,365958.01011000003,365958.01011000003,166040.259,1458801.79552,2368728.61376,1210317.29553,1844293.0217600001,750000.51,750000.51,750000.51,612989.958,754806.0719999999,754806.0719999999,733817.30851,487693.2078,724916.8175199999,1264389.798,358845.86648,456384.50804,826329.7740000001,826329.7740000001,826329.7740000001,826329.7740000001,2269450.2564799995,2269450.2564799995 +1836000.0,973618.815,659379.132,1925387.0654399998,572920.73355,572920.73355,572920.73355,307621.377,1939464.2394400002,2511905.9104000004,1497429.2363099998,2281796.93152,864130.155,864130.155,864130.155,802139.4465,973618.815,973618.815,1007534.7356099999,628452.1242,934143.65128,1629320.322,462416.62472,588107.04956,1004721.9809999999,1004721.9809999999,1004721.9809999999,1004721.9809999999,2927347.2370999996,2927347.2370999996 +1839600.0,1717576.206,1027321.686,2999779.32312,2147440.29049,2147440.29049,2147440.29049,1858684.1105,4150839.77824,5327190.992000001,3798820.9805699997,5788679.58944,1863742.7370000002,1863742.7370000002,1863742.7370000002,2589799.94,1717576.206,1717576.206,3608325.9731999994,2300939.75565,3420162.30346,5965399.3665000005,1693037.15354,2153225.1046700003,2039274.192,2039274.192,2039274.192,2039274.192,5164179.12604,5164179.12604 +1843200.0,1744113.8760000002,1578881.349,4610333.53908,2937274.5963000003,2937274.5963000003,2937274.5963000003,2864435.6859999998,5288258.78176,5032888.25408,4284657.80379,6529002.36768,1866217.3350000002,1866217.3350000002,1866217.3350000002,2942568.4225,1744113.8760000002,1744113.8760000002,2966041.1320799994,2785699.90485,4140719.3647399996,7222184.9385,2049724.86826,2606864.84923,2212347.489,2212347.489,2212347.489,2212347.489,5243969.05384,5243969.05384 +1846800.0,2525050.695,2646908.214,7728971.98488,2636441.4783300003,2636441.4783300003,2636441.4783300003,3372607.5565,5697246.33336,8757298.2368,4714041.92994,7183301.988480001,2459774.7539999997,2459774.7539999997,2459774.7539999997,2276381.17,2525050.695,2525050.695,3925334.3045799998,2952923.8661999996,4389284.36408,7655728.541999999,2172768.6719199996,2763353.4451599997,2825604.4439999997,2825604.4439999997,2825604.4439999997,2825604.4439999997,7591985.7563,7591985.7563 +1850400.0,2194215.567,1719578.259,5021168.51628,1330167.3185900003,1330167.3185900003,1330167.3185900003,2200256.8699999996,3618766.6813600003,9953634.280960001,2712528.86457,4133377.3174400004,2066501.1809999999,2066501.1809999999,2066501.1809999999,2142790.517,2194215.567,2194215.567,3319706.9833199997,2989730.75625,4443994.8525,7751153.8125,2199851.2725,2797797.42375,1749782.6220000002,1749782.6220000002,1749782.6220000002,1749782.6220000002,6597274.80478,6597274.80478 +1854000.0,1352642.79,1143107.529,3337873.9846799998,915429.24737,915429.24737,915429.24737,1256777.9595,2749784.62104,7409040.313600002,1973685.8946,3007521.3632,1330997.745,1330997.745,1330997.745,1230566.3754999998,1352642.79,1352642.79,1615706.3015599998,2372486.3347500004,3526510.5519000003,6150890.4975000005,1745681.3031000004,2220178.57005,1199763.606,1199763.606,1199763.606,1199763.606,4066945.9886,4066945.9886 +1857600.0,1354951.4249999998,1639661.6070000003,4787811.892440001,1083950.1655400002,1083950.1655400002,1083950.1655400002,1507631.4505000003,2930156.04032,5696443.07968,2273382.3134399997,3464201.62048,1322543.457,1322543.457,1322543.457,1656905.46,1354951.4249999998,1354951.4249999998,1746958.2915199997,1659462.5925,2466657.977,4302310.425000001,1221036.6730000002,1552929.1915000002,1377753.099,1377753.099,1377753.099,1377753.099,4073887.2844999996,4073887.2844999996 +1861200.0,1196565.453,1187029.2719999999,3466125.47424,897309.0253600001,897309.0253600001,897309.0253600001,1444305.5304999999,2284761.37008,3837118.65536,1761229.2400500001,2683777.8896000003,1115791.605,1115791.605,1115791.605,1367573.5255,1196565.453,1196565.453,1436262.88793,1299883.54905,1932172.58402,3370068.4605,956457.52498,1216434.2347900001,1132056.144,1132056.144,1132056.144,1132056.144,3597673.46202,3597673.46202 +1864800.0,1043679.8999999999,1017305.2679999999,2970531.38256,664452.47352,664452.47352,664452.47352,1224346.5535000002,2129113.3221599995,3580178.84928,1626401.2100700003,2478325.6534400005,1023721.2839999999,1023721.2839999999,1023721.2839999999,1099484.5435,1043679.8999999999,1043679.8999999999,1322531.5875199998,1199116.42245,1782390.33658,3108820.3545000004,882312.8244200001,1122136.1089100002,1045305.5129999999,1045305.5129999999,1045305.5129999999,1045305.5129999999,3137997.5659999996,3137997.5659999996 +1868400.0,1487700.924,1882973.079,5498281.390679999,1954658.62735,1954658.62735,1954658.62735,2036519.5935000002,3388878.7021599994,4711946.43456,2584196.51805,3937823.2656,1405011.048,1405011.048,1405011.048,1884373.1584999997,1487700.924,1487700.924,2254167.84203,1945256.17635,2891467.20534,5043256.753500001,1431324.29766,1820375.53293,1861306.1940000001,1861306.1940000001,1861306.1940000001,1861306.1940000001,4473020.77816,4473020.77816 +1872000.0,1479230.1749999998,1964266.9470000002,5735659.48524,2381053.7361600003,2381053.7361600003,2381053.7361600003,1788283.9905,3806965.6103199995,5073270.36416,2896002.49554,4412956.18368,1559860.137,1559860.137,1559860.137,2361989.2800000003,1479230.1749999998,1479230.1749999998,2309083.1358399997,1996171.68285,2967149.0199399996,5175259.9185,1468788.05306,1868022.38963,1742356.083,1742356.083,1742356.083,1742356.083,4447552.0594999995,4447552.0594999995 +1875600.0,1375158.375,1754784.9809999997,5123972.14452,1923247.9220900002,1923247.9220900002,1923247.9220900002,1629582.6155,3377107.60984,4988079.4528,2475264.84702,3771832.14784,1423267.086,1423267.086,1423267.086,1999432.876,1375158.375,1375158.375,2067083.7433999998,1881248.73705,2796325.28322,4877311.5405,1384227.4657800002,1760477.21319,1675975.4310000003,1675975.4310000003,1675975.4310000003,1675975.4310000003,4134642.8474999997,4134642.8474999997 +1879200.0,2553488.8710000003,2173865.409,6347686.994279999,3980807.0326200007,3980807.0326200007,3980807.0326200007,3298771.0069999998,4401145.9976,8211672.90624,4290012.264509999,6537161.5459199995,2695964.256,2695964.256,2695964.256,3445604.7989999996,2553488.8710000003,2553488.8710000003,4575055.006469999,3414004.58475,5074643.851899999,8851122.9975,2512033.0031,3194833.92005,2951514.972,2951514.972,2951514.972,2951514.972,7677489.872140001,7677489.872140001 +1882800.0,2122178.79,1360473.3329999999,3972582.1323599997,3119220.31993,3119220.31993,3119220.31993,2210929.5215,3556516.0831999998,6811334.414080001,3319408.0815000003,5058145.648000001,2170606.5029999996,2170606.5029999996,2170606.5029999996,3317561.044,2122178.79,2122178.79,2455617.58767,2770556.1569999997,4118209.398799999,7182923.369999999,2038582.0611999999,2592693.2926,2423875.986,2423875.986,2423875.986,2423875.986,6380684.2286,6380684.2286 +1886400.0,1702701.021,1272305.097,3715130.88324,2460131.4836999997,2460131.4836999997,2460131.4836999997,2001027.3569999998,2957589.80824,5784352.44608,2667678.3056699997,4065033.6086399998,1672316.4270000001,1672316.4270000001,1672316.4270000001,2388872.6890000002,1702701.021,1702701.021,1902692.6812399996,2168620.3224,3223480.0841599996,5622348.983999999,1595676.1878399998,2029400.25232,1909930.65,1909930.65,1909930.65,1909930.65,5119454.40314,5119454.40314 +1890000.0,1526094.498,1285955.463,3754989.9519599997,1959810.8118600002,1959810.8118600002,1959810.8118600002,1862571.823,2854377.53184,5336019.06752,2486222.13189,3788528.9628799995,1506859.368,1506859.368,1506859.368,2091869.1045,1526094.498,1526094.498,1966427.9902799998,2020751.7808499997,3003685.3631399996,5238986.098499999,1486874.14986,1891024.5060299998,1727713.659,1727713.659,1727713.659,1727713.659,4588457.457319999,4588457.457319999 +1893600.0,1076295.8250000002,922091.9099999999,2692508.3771999995,1191644.6813700001,1191644.6813700001,1191644.6813700001,933996.5774999999,1505684.8892,3310858.00576,1505507.1794699999,2294106.17824,822491.3700000001,822491.3700000001,822491.3700000001,1033967.683,1076295.8250000002,1076295.8250000002,1365989.51424,947463.7958999999,1408328.90156,2456387.619,697146.2004399999,886638.95962,1107087.2909999997,1107087.2909999997,1107087.2909999997,1107087.2909999997,3236062.7805,3236062.7805 +1897200.0,221007.369,163510.37699999998,477450.3008399999,225693.28265000004,225693.28265000004,225693.28265000004,84727.1005,471386.00104,1209959.27296,444198.00662999996,676873.15296,286068.609,286068.609,286068.609,176616.81100000002,221007.369,221007.369,348723.12409999996,145488.7494,216257.35095999998,377193.054,107050.98104,136148.73092,255574.641,255574.641,255574.641,255574.641,664495.4894600001,664495.4894600001 +1900800.0,249581.31,205360.69199999998,599653.22064,206776.6349,206776.6349,206776.6349,83877.03450000001,543828.8241600001,1242501.77728,460959.99516,702415.23072,333136.20900000003,333136.20900000003,333136.20900000003,173863.998,249581.31,249581.31,369968.33132999996,145800.02834999998,216720.04213999998,378000.0735,107280.02085999999,136440.02653,267498.498,267498.498,267498.498,267498.498,750407.8054,750407.8054 +1904400.0,305476.278,287213.22000000003,838662.6024,240400.93176,240400.93176,240400.93176,107012.864,576942.02712,1298880.53376,528047.961,804644.512,384045.255,384045.255,384045.255,224413.0455,305476.278,305476.278,421282.29156,200967.78374999997,298722.4835,521027.58749999997,147872.59149999998,188066.14825,406645.7729999999,406645.7729999999,406645.7729999999,406645.7729999999,918465.3425199998,918465.3425199998 +1908000.0,379459.944,318244.011,929272.51212,256756.01919,256756.01919,256756.01919,120262.83850000001,738538.36032,1336464.51456,628069.11762,957057.7030400002,535114.728,535114.728,535114.728,351153.03650000005,379459.944,379459.944,467137.50784999994,235294.14195,349745.86037999997,610021.8495,173130.01062000002,220188.83901000003,490872.28799999994,490872.28799999994,490872.28799999994,490872.28799999994,1140909.5649599999,1140909.5649599999 +1911600.0,511196.68200000003,352593.19800000003,1029572.13816,268448.09948,268448.09948,268448.09948,125565.363,902683.0417599999,1526365.3619200003,795971.4178500001,1212908.8272000002,613059.342,613059.342,613059.342,396257.603,511196.68200000003,511196.68200000003,500539.3744,303315.5646,450854.24663999997,786373.686,223180.34136000002,283843.45428,630209.649,630209.649,630209.649,630209.649,1536998.02388,1536998.02388 +1915200.0,657459.9720000001,450755.91300000006,1316207.2659600002,293381.96547,293381.96547,293381.96547,147214.501,1134642.6266400001,1959049.6992000001,1017820.83333,1550965.07936,669724.788,669724.788,669724.788,475751.9865,657459.9720000001,657459.9720000001,572888.67194,405734.16374999995,603091.2754999999,1051903.3875,298540.1995,379687.03225,756431.463,756431.463,756431.463,756431.463,1976762.98248,1976762.98248 +1918800.0,735163.602,554654.373,1619590.76916,356599.65154000005,356599.65154000005,356599.65154000005,163810.7345,1380577.13296,2263661.7049600002,1174219.13616,1789286.30272,716154.594,716154.594,716154.594,593347.755,735163.602,735163.602,712918.87823,471015.8748,700127.3003199999,1221152.268,346574.64368,440777.81864,801447.021,801447.021,801447.021,801447.021,2210391.89668,2210391.89668 +1922400.0,962095.926,647600.547,1890993.5972399998,572417.99901,572417.99901,572417.99901,301954.23299999995,1914443.8281599998,2476861.9200000004,1481356.32456,2257304.8755200002,838153.233,838153.233,838153.233,793911.3910000001,962095.926,962095.926,1014085.11867,609387.44175,905805.5307,1579893.3675,448388.7843,570266.27265,988514.673,988514.673,988514.673,988514.673,2892701.75084,2892701.75084 +1926000.0,1729687.2000000002,1034755.6710000001,3021486.55932,2152549.84175,2152549.84175,2152549.84175,1857140.439,4157103.4585600006,5332287.68448,3808271.04945,5803079.694399999,1867392.5040000002,1867392.5040000002,1867392.5040000002,2580252.7065,1729687.2000000002,1729687.2000000002,3612073.3624299993,2295717.58035,3412399.9589400003,5951860.3935,1689194.66406,2148338.18013,2049949.8990000002,2049949.8990000002,2049949.8990000002,2049949.8990000002,5200592.848,5200592.848 +1929600.0,1779678.699,1604399.6429999997,4684846.957559999,2952315.03303,2952315.03303,2952315.03303,2877350.434,5336755.07032,5119164.98944,4329614.56473,6597507.90816,1905750.2969999998,1905750.2969999998,1905750.2969999998,2953312.74,1779678.699,1779678.699,3001616.48852,2815118.5418999996,4184447.807959999,7298455.478999999,2071371.1740399997,2634394.8824199997,2245493.733,2245493.733,2245493.733,2245493.733,5350900.62166,5350900.62166 +1933200.0,2541150.132,2657888.751,7761035.15292,2652822.4184000003,2652822.4184000003,2652822.4184000003,3385697.7,5719679.46696,8802956.700800002,4742085.56199,7226035.142080001,2478204.6810000003,2478204.6810000003,2478204.6810000003,2291442.5975,2541150.132,2541150.132,3942685.40796,2957357.34045,4395874.36778,7667222.7345,2176030.83322,2767502.30131,2837493.699,2837493.699,2837493.699,2837493.699,7640391.39688,7640391.39688 +1936800.0,2203839.2249999996,1733513.7629999998,5061860.18796,1334478.1934,1334478.1934,1334478.1934,2199201.298,3623809.7958399993,9924983.966080002,2717787.4014899996,4141390.3260799996,2069372.3969999999,2069372.3969999999,2069372.3969999999,2151843.2145,2203839.2249999996,2203839.2249999996,3274313.0364099992,2985810.7045499994,4438168.010219999,7740990.715499999,2196966.8887799997,2794129.0296899998,1754491.9889999998,1754491.9889999998,1754491.9889999998,1754491.9889999998,6626209.936499999,6626209.936499999 +1940400.0,1335698.481,1138516.644,3324468.60048,904321.9121200001,904321.9121200001,904321.9121200001,1241651.7189999998,2690236.10912,7269595.063680001,1935887.5848899998,2949923.93888,1289457.498,1289457.498,1289457.498,1215192.1775,1335698.481,1335698.481,1569730.9266599999,2345220.19575,3485981.6242999993,6080200.507499999,1725618.8106999998,2194662.84985,1171147.266,1171147.266,1171147.266,1171147.266,4016000.09954,4016000.09954 +1944000.0,1336729.356,1614706.6979999999,4714943.55816,1071707.43053,1071707.43053,1071707.43053,1489095.6324999998,2853738.02848,5522994.065280001,2236743.20373,3408370.59616,1289306.4780000001,1289306.4780000001,1289306.4780000001,1648109.0779999997,1336729.356,1336729.356,1713155.5595699998,1627593.85935,2419287.66254,4219687.7835,1197587.58046,1523106.35233,1361202.0089999998,1361202.0089999998,1361202.0089999998,1361202.0089999998,4019099.59704,4019099.59704 +1947600.0,1182180.441,1173400.044,3426328.12848,889794.05526,889794.05526,889794.05526,1432945.8115,2242782.7375999996,3748771.7606400005,1737856.42569,2648162.17248,1091459.409,1091459.409,1091459.409,1353941.0325,1182180.441,1182180.441,1410563.7457599998,1277821.0241999999,1899378.41128,3312869.322,940223.86472,1195788.06956,1113970.2719999999,1113970.2719999999,1113970.2719999999,1113970.2719999999,3554422.5259400005,3554422.5259400005 +1951200.0,1028461.2989999999,994189.2390000001,2903032.5778799998,654580.949,654580.949,654580.949,1210448.876,2080789.4888,3483945.8694400005,1599085.79229,2436702.15968,997280.61,997280.61,997280.61,1077405.0035,1028461.2989999999,1028461.2989999999,1292431.8484999998,1174199.04045,1745352.64778,3044219.7345000003,863978.55322,1098818.36131,1023998.427,1023998.427,1023998.427,1023998.427,3092240.3056599996,3092240.3056599996 +1954800.0,1471491.735,1865290.248,5446647.52416,1945244.05394,1945244.05394,1945244.05394,2034814.2814999998,3340001.37696,4612005.474560001,2555047.03818,3893405.0105600003,1377971.919,1377971.919,1377971.919,1869514.1605000002,1471491.735,1471491.735,2226027.7643499994,1920396.69315,2854515.5784599995,4978806.2415,1413032.62854,1797111.96717,1845928.8539999998,1845928.8539999998,1845928.8539999998,1845928.8539999998,4424285.149900001,4424285.149900001 +1958400.0,1469811.099,1957202.472,5715031.21824,2385079.79237,2385079.79237,2385079.79237,1780495.1465,3775473.5504799993,4999491.09312,2876804.97468,4383702.81856,1541155.2090000003,1541155.2090000003,1541155.2090000003,2340963.562,1469811.099,1469811.099,2289511.51039,1980049.1715,2943184.2006,5133460.815,1456925.0694000002,1852934.9037000001,1728495.336,1728495.336,1728495.336,1728495.336,4419232.03766,4419232.03766 +1962000.0,1370831.9640000002,1748534.889,5105721.87588,1923012.7249300003,1923012.7249300003,1923012.7249300003,1628030.6315,3354571.7448,4936329.23328,2463809.3718000003,3754376.1856000004,1410685.263,1410685.263,1410685.263,1991163.4155,1370831.9640000002,1370831.9640000002,2051808.78032,1874842.038,2786802.2391999997,4860701.58,1379513.4008,1754481.8084,1668515.715,1668515.715,1668515.715,1668515.715,4121634.77176,4121634.77176 +1965600.0,2555286.435,2177991.648,6359735.61216,3990519.9980800007,3990519.9980800007,3990519.9980800007,3304274.7885,4401693.02456,8196434.79168,4293520.080990001,6542506.790080001,2694351.387,2694351.387,2694351.387,3445418.3505,2555286.435,2555286.435,4575979.382649999,3413744.5504499995,5074257.33178,8850448.8345,2511841.66922,3194590.57931,2952066.312,2952066.312,2952066.312,2952066.312,7682894.5479,7682894.5479 +1969200.0,2127947.319,1369571.331,3999148.28652,3134095.17685,3134095.17685,3134095.17685,2219883.491,3567864.9552,6805360.97856,3328367.0359799997,5071797.38816,2172229.2449999996,2172229.2449999996,2172229.2449999996,3319148.5425,2127947.319,2127947.319,2518757.13011,2776502.2414499996,4127047.776179999,7198339.1444999995,2042957.2048199999,2598257.65311,2428160.148,2428160.148,2428160.148,2428160.148,6398028.27246,6398028.27246 +1972800.0,1714369.191,1283769.786,3748607.7751200004,2499412.54332,2499412.54332,2499412.54332,2016905.8035000004,2978066.1914399997,5804367.870720001,2690836.1753700003,4100321.7910400005,1685793.771,1685793.771,1685793.771,2409008.4165,1714369.191,1714369.191,1918847.38851,2187911.7724499996,3252155.2765799994,5672363.854499999,1609870.8844199998,2047453.2389099998,1927255.233,1927255.233,1927255.233,1927255.233,5154536.70094,5154536.70094 +1976400.0,1547614.6739999999,1305911.9130000002,3813262.78596,2024336.3476600002,2024336.3476600002,2024336.3476600002,1895951.3790000002,2894583.3272,5404440.667520001,2520297.7384200003,3840453.69664,1527714.294,1527714.294,1527714.294,2124298.736,1547614.6739999999,1547614.6739999999,1994168.3810099997,2049067.8742499996,3045774.9636999993,5312398.192499999,1507709.2012999998,1917522.7761499998,1751673.846,1751673.846,1751673.846,1751673.846,4653161.453159999,4653161.453159999 +1980000.0,1092627.591,937590.8910000001,2737765.40172,1218016.42952,1218016.42952,1218016.42952,952065.1735000001,1528866.20272,3357923.04704,1529655.12189,2330903.04288,834939.315,834939.315,834939.315,1056709.0065,1092627.591,1092627.591,1388961.4393200001,964155.8060999999,1433140.2352399998,2499663.201,709428.2227599999,902259.3839799999,1125302.832,1125302.832,1125302.832,1125302.832,3285166.95694,3285166.95694 +1983600.0,227410.03799999997,167283.51299999998,488467.85795999994,231174.41677,231174.41677,231174.41677,86171.8165,479785.3752,1243314.0672000002,453943.62804,691723.62368,293303.385,293303.385,293303.385,181255.3715,227410.03799999997,227410.03799999997,356727.97901,149180.41755,221744.71942,386764.0455,109767.31958000001,139603.40309,261223.04700000002,261223.04700000002,261223.04700000002,261223.04700000002,683746.1809199998,683746.1809199998 +1987200.0,257478.648,212104.46400000004,619345.03488,212888.09399000002,212888.09399000002,212888.09399000002,87119.40299999999,557733.96344,1279183.83872,474942.12066,723721.32672,339887.958,339887.958,339887.958,178787.10150000002,257478.648,257478.648,381153.3225499999,151825.79655,225676.86302,393622.4355,111713.79598000001,142078.95529,279660.048,279660.048,279660.048,279660.048,774152.46832,774152.46832 +1990800.0,319927.272,295948.08,864168.3936,249937.65808000002,249937.65808000002,249937.65808000002,113275.2985,601625.7682399999,1337510.3436800002,547197.56343,833824.8585600001,406478.739,406478.739,406478.739,244262.9385,319927.272,319927.272,437171.42429999996,210017.34269999998,312173.92668,544489.407,154531.27932,196534.74786,425254.662,425254.662,425254.662,425254.662,961914.6644799999,961914.6644799999 +1994400.0,400810.233,332289.822,970286.2802399999,266566.83966000006,266566.83966000006,266566.83966000006,124418.5705,784784.5903200001,1388299.2716800002,658838.55534,1003944.46528,565575.8910000001,565575.8910000001,565575.8910000001,369899.8345,400810.233,400810.233,486566.05984999996,249291.95445,370552.48537999997,646312.4745,183429.63562000002,233288.02651000003,518257.55399999995,518257.55399999995,518257.55399999995,518257.55399999995,1205102.7672199998,1205102.7672199998 +1998000.0,559433.781,371819.049,1085711.6230799998,282640.5802,282640.5802,282640.5802,134815.338,967791.3446399999,1650787.5404800002,871508.01003,1328012.20576,651894.012,651894.012,651894.012,425034.862,559433.781,559433.781,524948.3158399999,336487.05315,500161.00245999993,872373.8415,247588.00454,314885.41517,680106.456,680106.456,680106.456,680106.456,1682030.90154,1682030.90154 +2001600.0,701156.154,503080.779,1468995.87468,313899.19363,313899.19363,313899.19363,155834.27300000002,1235903.06408,2119696.22848,1095824.24658,1669827.4233600001,706624.299,706624.299,706624.299,525559.181,701156.154,701156.154,626018.67172,437802.67529999994,650758.5445199999,1135043.973,322136.28948,409696.82454,799190.8289999999,799190.8289999999,799190.8289999999,799190.8289999999,2108142.83636,2108142.83636 +2005200.0,778336.23,587178.753,1714561.9587599998,386503.32534000004,386503.32534000004,386503.32534000004,176777.28600000002,1492413.3431999998,2411173.76768,1242824.56242,1893827.90464,758970.0959999999,758970.0959999999,758970.0959999999,627932.3330000001,778336.23,778336.23,749233.04586,502840.14704999997,747431.5272199999,1303659.6405,369991.02178,470559.05119,843751.206,843751.206,843751.206,843751.206,2340197.5981999994,2340197.5981999994 +2008800.0,1016638.3589999999,682722.516,1993549.74672,594818.0824300001,594818.0824300001,594818.0824300001,343606.998,1976637.54472,2547716.3750400003,1543336.6909800002,2351751.1481600003,893743.0650000002,893743.0650000002,893743.0650000002,827387.3265,1016638.3589999999,1016638.3589999999,1090319.9630699998,678866.46345,1009080.52098,1760024.1645000002,499511.62002000003,635284.9127100001,1036735.2450000001,1036735.2450000001,1036735.2450000001,1036735.2450000001,3056692.6660599997,3056692.6660599997 +2012400.0,1762621.2510000002,1048732.776,3062299.70592,2183689.9693400003,2183689.9693400003,2183689.9693400003,1895478.9630000002,4180182.88744,5365009.18656,3840862.9234500006,5852743.502400001,1917381.678,1917381.678,1917381.678,2616164.5545,1762621.2510000002,1762621.2510000002,3651875.8575,2329823.7967499997,3463096.1127,6040283.9175,1714290.1023,2180254.86165,2065308.756,2065308.756,2065308.756,2065308.756,5299614.56134,5299614.56134 +2016000.0,1783989.3900000001,1597961.0250000001,4666046.193,2978991.13985,2978991.13985,2978991.13985,2915461.6505,5358762.5438399995,5143739.3408,4353954.15189,6634596.80288,1905189.1350000002,1905189.1350000002,1905189.1350000002,3016897.2539999997,1783989.3900000001,1783989.3900000001,3000150.2321699997,2821365.4724999997,4193733.3689999995,7314651.225,2075967.6809999999,2640240.7755,2254429.8329999996,2254429.8329999996,2254429.8329999996,2254429.8329999996,5363861.4326,5363861.4326 +2019600.0,2565176.922,2674113.618,7808411.76456,2717414.7632500003,2717414.7632500003,2717414.7632500003,3410882.4365000003,5765159.42472,8866837.228160001,4793844.3105,7304905.616,2504320.188,2504320.188,2504320.188,2340626.589,2565176.922,2565176.922,3989714.6057599997,3011379.6789,4476174.23876,7807280.649,2215780.60324,2818056.53902,2864298.612,2864298.612,2864298.612,2864298.612,7712631.945479999,7712631.945479999 +2023200.0,2250615.297,1783591.755,5208087.9246,1384624.8669,1384624.8669,1384624.8669,2320261.6745,3732447.8819199996,10111447.038080001,2809175.7928500003,4280648.8272,2110064.4809999997,2110064.4809999997,2110064.4809999997,2217613.0375,2250615.297,2250615.297,3323546.68607,3051471.28905,4535767.200019999,7911221.8605,2245280.10898,2855574.36679,1814960.16,1814960.16,1814960.16,1814960.16,6766849.992979999,6766849.992979999 +2026800.0,1385819.025,1209823.833,3532685.59236,949084.95649,949084.95649,949084.95649,1327506.81,2803437.2791999998,7492567.216,2031334.08429,3095366.22368,1357255.6860000002,1357255.6860000002,1357255.6860000002,1289378.9054999999,1385819.025,1385819.025,1629179.07308,2426108.0431500003,3606214.91846,6289909.7415000005,1785136.28854,2270357.8971700002,1241007.258,1241007.258,1241007.258,1241007.258,4166695.8685,4166695.8685 +2030400.0,1374767.874,1646009.127,4806346.65084,1106510.10635,1106510.10635,1106510.10635,1532029.373,2936896.12448,5742632.23744,2313874.44456,3525903.9155200003,1332274.254,1332274.254,1332274.254,1695923.796,1374767.874,1374767.874,1759114.9316,1696597.5123,2521856.05532,4398586.143,1248360.63868,1587680.14114,1409655.6300000001,1409655.6300000001,1409655.6300000001,1409655.6300000001,4133468.74116,4133468.74116 +2034000.0,1216750.683,1196174.4989999998,3492829.5370799997,915269.31265,915269.31265,915269.31265,1472117.2025000001,2295656.71936,3840976.01792,1792294.93065,2731116.0848,1126948.2449999999,1126948.2449999999,1126948.2449999999,1392099.331,1216750.683,1216750.683,1444020.5857999998,1318238.59455,1959455.8862199998,3417655.6155,969963.21278,1233610.93169,1146444.702,1146444.702,1146444.702,1146444.702,3658363.7202199996,3658363.7202199996 +2037600.0,1034629.794,1013505.8729999999,2959437.1491599996,646275.5482700001,646275.5482700001,646275.5482700001,1228076.451,2096616.70056,3474551.96864,1603052.0288999998,2442745.9488,1001754.867,1001754.867,1001754.867,1118492.151,1034629.794,1034629.794,1268859.3323899999,1174202.7259499999,1745358.1259799998,3044229.2895,863981.2650199999,1098821.81021,1024808.457,1024808.457,1024808.457,1024808.457,3110786.91396,3110786.91396 +2041200.0,1517232.243,1905529.881,5564147.25252,1980581.3731000002,1980581.3731000002,1980581.3731000002,2114789.719,3434385.7984,4773805.82784,2635225.1830800003,4015581.2313600006,1428919.8599999999,1428919.8599999999,1428919.8599999999,1917940.6645,1517232.243,1517232.243,2280129.8555099997,1978059.9370499998,2940227.3632199997,5128303.5405,1455461.38578,1851073.37319,1920453.2309999997,1920453.2309999997,1920453.2309999997,1920453.2309999997,4561811.6106199995,4561811.6106199995 +2044800.0,1516481.5980000002,2035735.5,5944347.66,2427070.1288900003,2427070.1288900003,2427070.1288900003,1839832.3195,3893283.9872800005,5164666.096,2962388.25183,4514115.43136,1591917.6809999999,1591917.6809999999,1591917.6809999999,2411092.467,1516481.5980000002,1516481.5980000002,2341328.4234599997,2050595.6922000002,3048045.94248,5316359.2020000005,1508833.3735200001,1918952.5119600003,1782141.5459999996,1782141.5459999996,1782141.5459999996,1782141.5459999996,4559554.67132,4559554.67132 +2048400.0,1415072.643,1787818.65,5220430.458,2003025.77068,2003025.77068,2003025.77068,1684818.5760000001,3465004.0248799995,5096458.52736,2549531.8881900003,3885000.9724800005,1462866.366,1462866.366,1462866.366,2054743.096,1415072.643,1415072.643,2110672.56465,1954596.5860499998,2905350.9748199997,5067472.6305,1438196.99418,1829116.31139,1720969.7970000003,1720969.7970000003,1720969.7970000003,1720969.7970000003,4254651.746619999,4254651.746619999 +2052000.0,2591288.763,2220739.665,6484559.8218,4070000.0000000005,4070000.0000000005,4070000.0000000005,3348959.2325,4472988.661439999,8345774.193920001,4352611.18005,6632550.3696,2732236.4159999997,2732236.4159999997,2732236.4159999997,3494091.8494999995,2591288.763,2591288.763,4616066.052519999,3468648.3228,5155867.38352,8992791.948,2552240.00048,3245969.6650400003,3000000.0,3000000.0,3000000.0,3000000.0,7791141.54742,7791141.54742 +2055600.0,2180217.378,1428479.2110000001,4171159.29612,3197959.4353300002,3197959.4353300002,3197959.4353300002,2283545.817,3690203.622879999,7018667.73056,3416994.5993399997,5206848.91328,2236058.9189999998,2236058.9189999998,2236058.9189999998,3413843.7795,2180217.378,2180217.378,2668735.5756099997,2857218.5592,4247026.10528,7407603.672,2102348.47072,2673792.18256,2489834.406,2489834.406,2489834.406,2489834.406,6555186.91652,6555186.91652 +2059200.0,1769620.2119999998,1332703.218,3891493.3965600003,2610613.7101000003,2610613.7101000003,2610613.7101000003,2078444.9139999999,3085692.2756000003,6057043.021440001,2795932.87953,4260469.14976,1751636.8350000002,1751636.8350000002,1751636.8350000002,2541662.354,1769620.2119999998,1769620.2119999998,1990609.9526299997,2265388.9366499996,3367318.8638599995,5873230.5764999995,1666878.77314,2119956.56047,2003358.762,2003358.762,2003358.762,2003358.762,5320658.10408,5320658.10408 +2062800.0,1602457.1519999998,1350383.298,3943119.23016,2179468.0647299998,2179468.0647299998,2179468.0647299998,1968274.2344999998,3000015.0372,5601767.36512,2611643.3263200005,3979646.973440001,1579656.2999999998,1579656.2999999998,1579656.2999999998,2199772.5294999997,1602457.1519999998,1602457.1519999998,2062151.6319299997,2121974.4595500003,3154144.75222,5501415.265500001,1561354.0467800002,1985748.9386900002,1812667.5690000001,1812667.5690000001,1812667.5690000001,1812667.5690000001,4818054.503679999,4818054.503679999 +2066400.0,1132295.193,971894.358,2837931.5253600003,1263418.9645000002,1263418.9645000002,1263418.9645000002,986111.182,1593657.2884799999,3482132.6739200004,1590589.5324900001,2423755.4780800003,865821.9209999999,865821.9209999999,865821.9209999999,1102702.5905,1132295.193,1132295.193,1437709.96681,1000967.4386999999,1487857.77308,2595100.767,736514.3129199999,936707.80066,1166895.5129999998,1166895.5129999998,1166895.5129999998,1166895.5129999998,3404434.2136199996,3404434.2136199996 +2070000.0,240210.033,171636.771,501179.37132000003,237467.92696,237467.92696,237467.92696,87880.8525,524038.45992,1280540.1939200002,468346.18571999995,713670.37824,308927.56500000006,308927.56500000006,308927.56500000006,186432.62050000002,240210.033,240210.033,366139.99942,153571.07114999997,228271.07365999997,398147.2215,112997.97333999998,143712.18756999998,268287.444,268287.444,268287.444,268287.444,722231.49922,722231.49922 +2073600.0,268125.483,232917.80099999998,680119.9789199999,221424.39396000002,221424.39396000002,221424.39396000002,91025.9805,573103.2608,1328876.5196800001,494773.40997,753940.43424,354374.613,354374.613,354374.613,184382.4395,268125.483,268125.483,393344.78222,158916.66209999996,236216.86563999995,412006.1609999999,116931.27235999997,148714.60477999997,297719.559,297719.559,297719.559,297719.559,806163.9522199999,806163.9522199999 +2077200.0,338689.98,308271.858,900153.82536,264605.21362,264605.21362,264605.21362,120470.30800000002,635610.55616,1390481.1904000002,572919.74775,873020.5680000001,436063.149,436063.149,436063.149,269806.3515,338689.98,338689.98,457274.50184,221338.42109999998,329001.80124,573840.351,162861.35676,207129.04098,451258.83900000004,451258.83900000004,451258.83900000004,451258.83900000004,1018327.8731999998,1018327.8731999998 +2080800.0,425096.301,346319.59500000003,1011253.2174,276329.94752,276329.94752,276329.94752,129321.241,834312.7601600001,1436586.4416000003,694242.8658900001,1057893.89088,595900.2,595900.2,595900.2,391258.6335,425096.301,425096.301,505585.34338000003,266857.93035000004,396662.89894000004,691853.8935000001,196354.72406000004,249726.31013000003,548734.179,548734.179,548734.179,548734.179,1278122.8783399998,1278122.8783399998 +2084400.0,602353.86,390678.747,1140781.9412399998,293926.71869,293926.71869,293926.71869,142804.109,1022088.7388,1762037.3574400004,940486.68903,1433122.57376,678414.5249999999,678414.5249999999,678414.5249999999,446855.3215,602353.86,602353.86,541196.7170999999,362442.90375,538742.2914999999,939666.7875,266686.3835,339174.96425,722331.0059999999,722331.0059999999,722331.0059999999,722331.0059999999,1811077.2724,1811077.2724 +2088000.0,735609.027,542655.8640000001,1584555.12288,331575.21177,331575.21177,331575.21177,162698.5745,1317753.34464,2242553.1884800005,1156062.21948,1761618.6201600002,729176.388,729176.388,729176.388,568481.081,735609.027,735609.027,675240.1039799999,463656.23505,689187.78642,1202071.7205,341159.40258,433890.64959000004,825141.8130000001,825141.8130000001,825141.8130000001,825141.8130000001,2211731.14118,2211731.14118 +2091600.0,811820.148,605347.086,1767613.49112,409395.23163000005,409395.23163000005,409395.23163000005,191232.5905,1569494.2651199999,2498064.5484800003,1291239.9076500002,1967603.6688,795867.5669999998,795867.5669999998,795867.5669999998,654829.8574999999,811820.148,811820.148,774852.8903699999,539140.212,801388.6608,1397770.9200000002,396700.69920000003,504528.7416,880407.828,880407.828,880407.828,880407.828,2440872.57832,2440872.57832 +2095200.0,1069568.019,719184.084,2100017.52528,615686.3928600001,615686.3928600001,615686.3928600001,382972.71249999997,2040485.6223199998,2634163.0342400004,1611223.9976700002,2455198.4726400003,936305.091,936305.091,936305.091,865528.5835,1069568.019,1069568.019,1162626.0908599999,734037.1348499999,1091087.29674,1903059.2385,540106.33626,686913.76323,1078308.3900000001,1078308.3900000001,1078308.3900000001,1078308.3900000001,3215834.51046,3215834.51046 +2098800.0,1801477.086,1073577.2040000001,3134845.43568,2218869.34401,2218869.34401,2218869.34401,1938227.8860000002,4226074.168079999,5430970.39424,3889727.59392,5927203.95264,1975861.5840000003,1975861.5840000003,1975861.5840000003,2664239.6095000003,1801477.086,1801477.086,3709475.72294,2371862.20545,3525582.8337799995,6149272.3845,1745222.0672199999,2219594.50831,2099845.134,2099845.134,2099845.134,2099845.134,5416441.1052399995,5416441.1052399995 +2102400.0,1809221.0219999999,1607751.633,4694634.76836,3018618.09656,3018618.09656,3018618.09656,2973078.0415,5406829.53984,5220471.5091200005,4404149.16375,6711084.44,1928488.266,1928488.266,1928488.266,3071870.4205,1809221.0219999999,1809221.0219999999,3024661.23219,2842529.3752499996,4225191.8121,7369520.6025,2091540.1328999999,2660046.00795,2279923.3499999996,2279923.3499999996,2279923.3499999996,2279923.3499999996,5439724.53948,5439724.53948 +2106000.0,2576926.44,2677276.05,7817646.066,2773425.4927500007,2773425.4927500007,2773425.4927500007,3438286.019,5787050.01064,8884361.470080001,4828515.86658,7357738.46336,2509286.9159999997,2509286.9159999997,2509286.9159999997,2408883.225,2576926.44,2576926.44,4026567.3298499994,3072040.37235,4566341.4917399995,7964549.1135,2260414.89126,2874822.96573,2882131.161,2882131.161,2882131.161,2882131.161,7747958.8296,7747958.8296 +2109600.0,2275123.089,1804698.966,5269720.98072,1431041.4952900002,1431041.4952900002,1431041.4952900002,2396241.652,3778123.5380800003,10213105.7216,2862867.6715800003,4362465.02336,2122974.714,2122974.714,2122974.714,2241000.4855,2275123.089,2275123.089,3393223.22534,3089815.6806,4592763.06104,8010633.246,2273494.00696,2891457.1430800003,1857639.2970000003,1857639.2970000003,1857639.2970000003,1857639.2970000003,6840536.75426,6840536.75426 +2113200.0,1380273.78,1243707.7859999998,3631626.73512,954586.5789900001,954586.5789900001,954586.5789900001,1344511.8784999999,2779480.4253599998,7489258.91264,2027013.1662900003,3088781.9676800007,1337625.03,1337625.03,1337625.03,1277511.319,1380273.78,1380273.78,1614430.7713299997,2426303.24505,3606505.07042,6290415.8205,1785279.91858,2270540.56759,1224815.451,1224815.451,1224815.451,1224815.451,4150023.1651999997,4150023.1651999997 +2116800.0,1354763.943,1634595.648,4773019.29216,1104029.24192,1104029.24192,1104029.24192,1512468.1879999998,2878541.85168,5675898.39744,2282227.11087,3477679.40704,1296504.456,1296504.456,1296504.456,1669620.9215,1354763.943,1354763.943,1726812.8426899998,1667400.01335,2478456.31614,4322888.9235,1226877.04686,1560357.04953,1380629.637,1380629.637,1380629.637,1380629.637,4073323.58862,4073323.58862 +2120400.0,1183798.608,1166045.97,3404854.2323999996,892665.5094500001,892665.5094500001,892665.5094500001,1450349.5405,2210853.3785599996,3675885.7376000006,1733663.69106,2641773.24352,1076872.683,1076872.683,1076872.683,1356556.313,1183798.608,1183798.608,1394797.3449799998,1271098.36845,1889385.72298,3295440.2145000002,935277.31802,1189496.9917100002,1103336.3279999997,1103336.3279999997,1103336.3279999997,1103336.3279999997,3559287.8147199997,3559287.8147199997 +2124000.0,1018826.118,995626.911,2907230.5801199996,649357.2423800001,649357.2423800001,649357.2423800001,1214545.605,2037638.94352,3384821.1488000005,1575110.7445500002,2400168.7536000004,969868.0619999999,969868.0619999999,969868.0619999999,1102365.5125,1018826.118,1018826.118,1265240.3653499999,1152532.7189999998,1713147.3995999997,2988047.79,848036.4204,1078542.9642,1004729.1300000001,1004729.1300000001,1004729.1300000001,1004729.1300000001,3063270.52812,3063270.52812 +2127600.0,1465020.3900000001,1855092.4439999997,5416869.93648,1945498.1114800002,1945498.1114800002,1945498.1114800002,2066560.1704999998,3305821.86008,4530736.99904,2544128.1518099997,3876766.7075199997,1355255.3399999999,1355255.3399999999,1355255.3399999999,1863736.1995,1465020.3900000001,1465020.3900000001,2208683.9385,1905462.8325,2832317.593,4940088.825,1402044.257,1783136.8235000002,1865150.8199999998,1865150.8199999998,1865150.8199999998,1865150.8199999998,4404827.9726,4404827.9726 +2131200.0,1451348.733,1982709.915,5789512.9518,2389305.3925400004,2389305.3925400004,2389305.3925400004,1768844.6335000002,3734818.60072,4863743.09568,2842556.4734700006,4331514.626240001,1502399.364,1502399.364,1502399.364,2311081.766,1451348.733,1451348.733,2257014.4433199996,1964990.7652499997,2920801.0881,5094420.5024999995,1445845.0569,1838843.2099499998,1700176.2539999997,1700176.2539999997,1700176.2539999997,1700176.2539999997,4363721.85722,4363721.85722 +2134800.0,1341583.092,1717488.435,5015066.2302,1942338.3507,1942338.3507,1942338.3507,1599323.0329999998,3280631.39384,4761808.72384,2407679.38635,3668844.7791999998,1358168.4989999998,1358168.4989999998,1358168.4989999998,1944801.208,1341583.092,1341583.092,2000708.5428199999,1838786.1191999998,2733208.0092799994,4767223.272,1352983.3667199998,1720740.59056,1627891.1430000002,1627891.1430000002,1627891.1430000002,1627891.1430000002,4033693.16328,4033693.16328 +2138400.0,2521040.589,2145425.412,6264642.20304,4000039.6466800002,4000039.6466800002,4000039.6466800002,3267312.3140000002,4320622.21464,7985163.01312,4235622.9772499995,6454282.632,2645543.553,2645543.553,2645543.553,3392405.471,2521040.589,2521040.589,4537177.53593,3354063.1591499993,4985545.732859999,8695719.301499998,2467927.9541399996,3138740.5859699994,2901485.712,2901485.712,2901485.712,2901485.712,7579928.70426,7579928.70426 +2142000.0,2066909.8560000001,1307856.48,3818940.9215999995,3088715.4257300007,3088715.4257300007,3088715.4257300007,2149530.6629999997,3415348.8,6476780.778880001,3218975.72766,4905105.87072,2078724.5309999997,2078724.5309999997,2078724.5309999997,3210499.0574999996,2066909.8560000001,2066909.8560000001,2553030.7610599995,2672522.5698,3972490.33832,6928762.218,1966448.7056800001,2500953.2196400003,2343735.558,2343735.558,2343735.558,2343735.558,6214508.9670400005,6214508.9670400005 +2145600.0,1613625.9780000001,1190247.2280000001,3475521.90576,2433220.55416,2433220.55416,2433220.55416,1904107.5235000001,2754861.4206399997,5287297.7856,2501869.69452,3812372.8678400004,1546636.0950000002,1546636.0950000002,1546636.0950000002,2234807.134,1613625.9780000001,1613625.9780000001,1795472.6970699998,2034982.8936,3024838.77024,5275881.576,1497345.4377600001,1904342.01648,1792071.5760000001,1792071.5760000001,1792071.5760000001,1792071.5760000001,4851635.44052,4851635.44052 +2149200.0,1410626.8020000001,1187815.416,3468421.01472,1962474.02043,1962474.02043,1962474.02043,1740412.7895,2585543.17664,4804857.82656,2284456.33458,3481076.31936,1358517.165,1358517.165,1358517.165,1909010.2605,1410626.8020000001,1410626.8020000001,1830701.78161,1848830.5323,2748138.22332,4793264.343,1360374.0706800001,1730140.1771400003,1581298.185,1581298.185,1581298.185,1581298.185,4241284.58468,4241284.58468 +2152800.0,988585.0980000001,833992.014,2435256.68088,1120721.7404900002,1120721.7404900002,1120721.7404900002,867414.9924999999,1338096.8035999998,2909895.2224,1347648.20736,2053559.17312,725190.567,725190.567,725190.567,936528.5685,988585.0980000001,988585.0980000001,1266929.9884799998,855016.27245,1270913.07658,2216708.8545000004,629123.0844200001,800126.33891,1001019.441,1001019.441,1001019.441,1001019.441,2972345.86132,2972345.86132 +2156400.0,181073.58899999998,140328.036,409757.86512,199864.08585,199864.08585,199864.08585,78827.1575,298088.52704,1002736.83456,370566.25536,564672.3891200001,235321.701,235321.701,235321.701,151094.0305,181073.58899999998,181073.58899999998,295923.91764,122685.5079,182362.16236,318073.539,90272.29964,114809.40122,221817.285,221817.285,221817.285,221817.285,544427.92426,544427.92426 +2160000.0,204863.424,146909.06399999998,428974.46687999996,175486.56851,175486.56851,175486.56851,69867.4445,369326.88519999996,984526.15168,373314.41427,568860.05984,231988.44900000002,231988.44900000002,231988.44900000002,144362.561,204863.424,204863.424,293444.98313,115774.01685,172088.78553999998,300154.8585,85186.80746,108341.61083,218266.65899999999,218266.65899999999,218266.65899999999,218266.65899999999,615956.02816,615956.02816 +2163600.0,229241.739,180279.609,526416.45828,175399.49493000002,175399.49493000002,175399.49493000002,78577.142,425996.86112,988631.88288,411127.5714,626480.1088,230831.61,230831.61,230831.61,146432.685,229241.739,229241.739,327978.10876999993,144333.03734999997,214539.47773999997,374196.76349999994,106200.60525999998,135067.21273,268008.627,268008.627,268008.627,268008.627,689253.49526,689253.49526 +2167200.0,280206.68700000003,230398.49399999998,672763.6024799999,204327.38216,204327.38216,204327.38216,103194.749,464510.93696,1022586.3500800001,474408.30906,722907.8995200001,315338.037,315338.037,315338.037,217232.925,280206.68700000003,280206.68700000003,359867.01868,178529.47154999996,265369.7330199999,462854.18549999996,131362.42597999997,167068.32028999997,359273.787,359273.787,359273.787,359273.787,842488.10558,842488.10558 +2170800.0,352695.729,266088.933,776979.68436,219332.0558,219332.0558,219332.0558,103046.41200000001,597606.77952,1074278.16576,556669.7343900001,848258.64288,431120.934,431120.934,431120.934,298654.9195,352695.729,352695.729,392062.83545,208836.8649,310419.24116,541428.909,153662.68084,195430.05381999997,424426.944,424426.944,424426.944,424426.944,1060438.49186,1060438.49186 +2174400.0,453582.81899999996,290568.654,848460.46968,232210.85448000004,232210.85448000004,232210.85448000004,112701.05000000002,736346.46232,1301110.5312,704878.11051,1074099.97792,489816.327,489816.327,489816.327,329686.917,453582.81899999996,453582.81899999996,419930.37372000003,245505.2976,364923.92383999994,636495.216,180643.40415999998,229744.46368,531293.928,531293.928,531293.928,531293.928,1363772.3424599997,1363772.3424599997 +2178000.0,550202.469,308332.953,900332.2227599999,252030.82245000004,252030.82245000004,252030.82245000004,132793.56999999998,874352.5885600001,1479933.2428800003,841369.70358,1282087.16736,520965.813,520965.813,520965.813,356669.8275,550202.469,550202.469,497794.52384999994,316056.71475000004,469792.9439,819406.2975000001,232555.31110000002,295766.65405,603131.25,603131.25,603131.25,603131.25,1654275.42346,1654275.42346 +2181600.0,614074.89,418047.1919999999,1220697.8006399998,383361.29755,383361.29755,383361.29755,217534.11750000002,1072200.6108000001,1667322.7142400001,983894.13087,1499267.24704,557564.973,557564.973,557564.973,473012.63099999994,614074.89,614074.89,587481.08159,389023.96499999997,578252.906,1008580.65,286244.794,364049.587,649668.9450000001,649668.9450000001,649668.9450000001,649668.9450000001,1846318.5026,1846318.5026 +2185200.0,1325490.132,1255243.209,3665310.1702799997,1234847.87789,1234847.87789,1234847.87789,1140079.2095,2125971.50728,2379853.5660800003,1849864.48794,2818841.12448,845685.9299999999,845685.9299999999,845685.9299999999,1841240.4115,1325490.132,1325490.132,2684662.6833,808028.09145,1201068.91618,2094887.6445,594549.06482,756154.68311,1781726.322,1781726.322,1781726.322,1781726.322,3985306.99688,3985306.99688 +2188800.0,2416601.205,2121951.7529999996,6196099.118759999,3218435.3489200003,3218435.3489200003,3218435.3489200003,2228353.8164999997,3559635.4899999998,4145926.25024,3531833.7660899996,5381841.92928,1481626.401,1481626.401,1481626.401,2494489.5640000002,2416601.205,2416601.205,4311064.18821,1895398.0155,2817357.0502,4913994.855,1394638.5398,1773718.1429,2580370.3950000005,2580370.3950000005,2580370.3950000005,2580370.3950000005,7265914.2897,7265914.2897 +2192400.0,2811074.946,2764682.886,8072874.027120001,3507998.30315,3507998.30315,3507998.30315,2869386.5795000005,4710699.326479999,10390578.203520002,3788692.91493,5773246.34656,2769313.3619999997,2769313.3619999997,2769313.3619999997,2890214.9185,2811074.946,2811074.946,2938641.8425,3738611.68785,5557146.26194,9692696.9685,2750879.71106,3498602.04863,2580526.9080000003,2580526.9080000003,2580526.9080000003,2580526.9080000003,8451965.337639999,8451965.337639999 +2196000.0,2127999.018,1925494.4309999999,5622443.738519999,2759727.3135300004,2759727.3135300004,2759727.3135300004,3248701.2495000004,3949670.47208,7722621.05152,3893497.70355,5932948.881600001,2864878.29,2864878.29,2864878.29,3298643.4285,2127999.018,2127999.018,2286392.0570399994,3813970.3416,5669160.85344,9888071.256000001,2806328.7945600003,3569122.8628800004,2216136.684,2216136.684,2216136.684,2216136.684,6398183.714120001,6398183.714120001 +2199600.0,1631665.7910000002,1379780.841,4028960.0557199996,2410498.16337,2410498.16337,2410498.16337,2884884.233,3956825.3188799997,8083546.261760002,3394167.3238200005,5172064.493440001,1481553.7349999999,1481553.7349999999,1481553.7349999999,2669826.8625000003,1631665.7910000002,1631665.7910000002,1840105.87514,3136121.0397,4661592.26148,8130684.177000001,2307565.60452,2934789.81246,1955229.243,1955229.243,1955229.243,1955229.243,4905875.14494,4905875.14494 +2203200.0,1400856.588,1158907.887,3384011.03004,1964436.2040600004,1964436.2040600004,1964436.2040600004,2181117.2355,3513171.76672,5009355.21664,2632181.9401499997,4010943.9088,1350527.931,1350527.931,1350527.931,2150270.3775,1400856.588,1400856.588,1485096.3407799997,1996201.92015,2967193.96526,5175338.3115,1468810.30174,1868050.68577,1520418.7889999999,1520418.7889999999,1520418.7889999999,1520418.7889999999,4211908.80792,4211908.80792 +2206800.0,1094607.3450000002,912456.6510000001,2664373.42092,1197188.07021,1197188.07021,1197188.07021,1379679.7595,2463821.21296,3210594.0512,1952314.2651599997,2974955.0707199997,991633.6170000001,991633.6170000001,991633.6170000001,1368803.933,1094607.3450000002,1094607.3450000002,1117831.1573,1330245.3662999999,1977302.98892,3448784.2830000003,978797.82508,1244846.89834,1171083.1530000002,1171083.1530000002,1171083.1530000002,1171083.1530000002,3291119.4173000003,3291119.4173000003 +2210400.0,946514.433,775998.8099999999,2265916.5252,938578.9963,938578.9963,938578.9963,1028076.2030000001,1875519.1652799996,2914042.09088,1561744.4971800002,2379801.1385600003,863484.753,863484.753,863484.753,1223610.92,946514.433,946514.433,974498.0923599999,1133306.2714500001,1684568.8281800002,2938201.4445,833889.5528200001,1060550.8071100002,999866.0160000001,999866.0160000001,999866.0160000001,999866.0160000001,2845853.39522,2845853.39522 +2214000.0,1209717.186,1062050.049,3101186.1430800003,1419023.9126800003,1419023.9126800003,1419023.9126800003,1345144.948,2339828.45872,4104715.70432,2031220.5648,3095193.2416000003,1172579.637,1172579.637,1172579.637,1569678.7225000001,1209717.186,1209717.186,1538982.96318,1529882.2026,2274047.12584,3966361.266,1125691.10216,1431667.54268,1357790.643,1357790.643,1357790.643,1357790.643,3637216.3392399997,3637216.3392399997 +2217600.0,1263648.6900000002,1117073.256,3261853.90752,1513278.0960000001,1513278.0960000001,1513278.0960000001,1410133.4239999999,2444914.8670400004,4335316.390400001,2129322.31806,3244681.62752,1236546.129,1236546.129,1236546.129,1628343.6085,1263648.6900000002,1263648.6900000002,1640378.5616399997,1611521.29665,2395397.08786,4178018.1765,1185761.34914,1508065.60847,1413854.991,1413854.991,1413854.991,1413854.991,3799370.3946,3799370.3946 +2221200.0,1279585.53,1130778.591,3301873.48572,1559937.3777900003,1559937.3777900003,1559937.3777900003,1445282.853,2480563.54688,4391391.99744,2160601.86174,3292345.69408,1254973.599,1254973.599,1254973.599,1648790.192,1279585.53,1279585.53,1663607.48021,1637073.3824999998,2433378.2129999995,4244264.324999999,1204562.6369999999,1531977.3135,1434333.7259999998,1434333.7259999998,1434333.7259999998,1434333.7259999998,3847287.1602,3847287.1602 +2224800.0,1283649.657,1126449.555,3289232.7006,1607039.5162799999,1607039.5162799999,1607039.5162799999,1489016.6515000002,2496743.18512,4368516.3948800005,2174646.77724,3313747.4700800003,1253501.133,1253501.133,1253501.133,1648268.9825,1283649.657,1283649.657,1657584.2298599996,1642306.3794,2441156.64296,4257831.354,1208413.08904,1536874.36492,1435395.9989999998,1435395.9989999998,1435395.9989999998,1435395.9989999998,3859506.63538,3859506.63538 +2228400.0,1288800.18,1131570.0089999998,3304184.42628,1611094.55903,1611094.55903,1611094.55903,1495891.642,2511208.97608,4391044.120320001,2184426.92349,3328650.55008,1261098.642,1261098.642,1261098.642,1656042.4160000002,1288800.18,1288800.18,1661291.7201399996,1649108.3705999998,2451267.2570399996,4275466.146,1213418.0109599999,1543239.68508,1441199.895,1441199.895,1441199.895,1441199.895,3874992.5412,3874992.5412 +2232000.0,1271187.834,1117096.4610000001,3261921.66612,1577621.89816,1577621.89816,1577621.89816,1465205.861,2470591.65928,4326264.83968,2151771.38043,3278889.72256,1241532.585,1241532.585,1241532.585,1628641.273,1271187.834,1271187.834,1640754.1937799999,1623279.1716,2412874.22544,4208501.556,1194412.82256,1519068.6568800001,1420354.23,1420354.23,1420354.23,1420354.23,3822038.08756,3822038.08756 +2235600.0,1212977.709,990936.846,2893535.59032,1324016.92181,1324016.92181,1324016.92181,1104087.2885,2026232.72856,3089977.2940800004,1755959.541,2675747.872,971926.617,971926.617,971926.617,1278845.2774999999,1212977.709,1212977.709,1552017.76977,1276105.9139999999,1896829.0376,3308422.74,938961.8824,1194183.0652,1219002.057,1219002.057,1219002.057,1219002.057,3647019.6450599995,3647019.6450599995 +2239200.0,533011.278,364340.478,1063874.19576,709411.5453700001,709411.5453700001,709411.5453700001,452391.786,974430.8698399999,1232560.88448,819086.54688,1248131.88096,433929.44399999996,433929.44399999996,433929.44399999996,553810.2045,533011.278,533011.278,874657.6005699999,285149.8566,423852.37944,739277.4060000001,209813.96856,266843.93988,661742.7930000001,661742.7930000001,661742.7930000001,661742.7930000001,1602587.24252,1602587.24252 +2242800.0,194275.245,132179.988,385965.56496,208243.72338,208243.72338,208243.72338,81654.419,397896.30535999994,919780.0876800001,368106.50058,560924.19136,254053.836,254053.836,254053.836,144872.09449999998,194275.245,194275.245,272079.95398999995,115297.5546,171380.56264000002,298919.586,84836.22536000001,107895.73628000001,205185.918,205185.918,205185.918,205185.918,584120.9033,584120.9033 +2246400.0,201211.14299999998,187071.381,546248.43252,183845.97,183845.97,183845.97,72757.51,411067.67784,938783.6288000002,365023.22178,556225.86176,248341.64099999997,248341.64099999997,248341.64099999997,136265.003,201211.14299999998,201211.14299999998,268150.07336,120380.8878,178936.52951999998,312098.598,88576.55447999999,112652.73204,211587.90899999999,211587.90899999999,211587.90899999999,211587.90899999999,604974.83662,604974.83662 +2250000.0,216757.83899999998,197093.145,575511.9833999999,193281.66264,193281.66264,193281.66264,87894.296,406929.11512,967039.2390400001,393206.74029,599172.17568,253530.12599999996,253530.12599999996,253530.12599999996,138219.53250000003,216757.83899999998,216757.83899999998,301581.57432,137132.4492,203836.38128,355528.57200000004,100902.39472,128328.88456,258632.241,258632.241,258632.241,258632.241,651718.5692599999,651718.5692599999 +2253600.0,250303.191,221583.30299999999,647023.2447599999,195565.42104,195565.42104,195565.42104,91658.462,425302.80632000003,970301.2044800001,436748.48511,665521.50112,348029.814,348029.814,348029.814,173019.9695,250303.191,250303.191,328515.07792999997,166484.60549999998,247466.00619999997,431626.755,122499.78379999999,155796.70489999998,319036.86600000004,319036.86600000004,319036.86600000004,319036.86600000004,752578.26094,752578.26094 +2257200.0,329996.133,242510.28900000002,708130.04388,202338.04755999998,202338.04755999998,202338.04755999998,93911.958,552281.5175200001,1007957.67872,524157.84519,798716.7164800001,406700.166,406700.166,406700.166,270744.4985,329996.133,329996.133,348888.56405,190572.32069999998,283270.46187999996,494076.387,140223.58412,178338.04826,391206.858,391206.858,391206.858,391206.858,992188.37322,992188.37322 +2260800.0,399734.23799999995,260906.11499999996,761845.8557999999,211341.78295999998,211341.78295999998,211341.78295999998,100207.6495,655291.5255199999,1229631.1942399999,613140.62124,934309.51808,443118.849,443118.849,443118.849,292119.05100000004,399734.23799999995,399734.23799999995,389419.17767999996,223099.39349999998,331619.34539999993,578405.835,164157.0846,208776.9633,462519.99899999995,462519.99899999995,462519.99899999995,462519.99899999995,1201867.6089199998,1201867.6089199998 +2264400.0,467052.267,280111.224,817924.7740799999,227656.47564000002,227656.47564000002,227656.47564000002,122239.2185,768905.44344,1300357.5155200001,718845.8474399999,1095384.14848,475679.511,475679.511,475679.511,314060.70149999997,467052.267,467052.267,401805.7646199999,292848.5583,435295.88171999995,759237.0029999999,215478.69228,274048.40394,517615.73400000005,517615.73400000005,517615.73400000005,517615.73400000005,1404270.48278,1404270.48278 +2268000.0,549626.097,322171.821,940741.71732,349183.46441,349183.46441,349183.46441,205534.89950000003,952885.04248,1489983.29472,843296.5548,1285023.3216000001,516703.20000000007,516703.20000000007,516703.20000000007,422301.3445,549626.097,549626.097,478505.63500999997,341340.31395000004,507374.98518,884956.3695,251159.04582000003,319427.10861000005,579001.728,579001.728,579001.728,579001.728,1652542.46498,1652542.46498 +2271600.0,1269731.2680000002,1223746.7519999999,3573340.5158399995,1209737.2558700002,1209737.2558700002,1209737.2558700002,1109819.6795,2027144.23576,2222085.27552,1761813.78114,2684668.6188800004,813261.654,813261.654,813261.654,1799038.2935,1269731.2680000002,1269731.2680000002,2578266.4260599995,754358.76315,1121293.76646,1955744.9415000002,555059.0405400001,705930.7931700001,1708466.8710000003,1708466.8710000003,1708466.8710000003,1708466.8710000003,3817658.6791200005,3817658.6791200005 +2275200.0,2315334.309,2033864.433,5938884.144359999,3051572.6016599997,3051572.6016599997,3051572.6016599997,2130294.446,3434385.9327199995,3955694.8140800004,3388379.2353600003,5163244.549120001,1413056.1269999999,1413056.1269999999,1413056.1269999999,2272575.935,2315334.309,2315334.309,3863041.54821,1795335.6496499998,2668622.3730599997,4654573.9065,1321012.4039399999,1680079.53387,2449800.465,2449800.465,2449800.465,2449800.465,6961438.48906,6961438.48906 +2278800.0,2705996.337,2681368.779,7829596.834679999,3379172.54268,3379172.54268,3379172.54268,2728941.1659999997,4547538.23536,10223761.78944,3653989.60038,5567984.152960001,2712313.8570000003,2712313.8570000003,2712313.8570000003,2779375.5115000005,2705996.337,2705996.337,2808584.8345099995,3624633.6920999996,5387727.11764,9397198.461,2667014.42036,3391941.15878,2414762.832,2414762.832,2414762.832,2414762.832,8136028.986579999,8136028.986579999 +2282400.0,2037183.699,1835845.2240000002,5360668.05408,2544075.8279200005,2544075.8279200005,2544075.8279200005,3102923.7995,3818433.3555200007,7343572.67712,3762987.04635,5734075.4992,2720392.167,2720392.167,2720392.167,3076194.2295,2037183.699,2037183.699,2170163.6162699996,3633380.94285,5400729.20394,9419876.5185,2673450.66906,3400126.8576300004,2127041.787,2127041.787,2127041.787,2127041.787,6125132.32166,6125132.32166 +2286000.0,1554522.5880000002,1319612.313,3853267.95396,2287779.8326900005,2287779.8326900005,2287779.8326900005,2818954.3935,3800544.6879999996,7865166.3398400005,3242429.4686700003,4940844.90464,1381741.698,1381741.698,1381741.698,2589375.2045000005,1554522.5880000002,1554522.5880000002,1641911.2969999996,2964751.5267,4406865.232279999,7686392.847,2181471.49372,2774421.79906,1846046.472,1846046.472,1846046.472,1846046.472,4673931.24792,4673931.24792 +2289600.0,1329292.527,1111934.595,3246849.0174,1866373.8275600001,1866373.8275600001,1866373.8275600001,2036166.9440000001,3364150.4719199995,4710746.620800001,2522197.7589900005,3843348.9660800006,1299786.468,1299786.468,1299786.468,2030871.6645,1329292.527,1329292.527,1380837.83994,1902390.0407999998,2827750.1347199995,4932122.328,1399783.28928,1780261.2974399999,1427538.9330000002,1427538.9330000002,1427538.9330000002,1427538.9330000002,3996739.53118,3996739.53118 +2293200.0,1054328.7510000002,888710.679,2595035.1826799996,1126103.2043800002,1126103.2043800002,1126103.2043800002,1328505.731,2428959.3621599996,3160542.2867200007,1888670.57715,2877974.2128,975665.223,975665.223,975665.223,1319205.2405,1054328.7510000002,1054328.7510000002,1047240.2033599999,1284086.2243499998,1908691.1285399997,3329112.4335,944833.81446,1201651.05933,1130585.5470000003,1130585.5470000003,1130585.5470000003,1130585.5470000003,3170015.11134,3170015.11134 +2296800.0,891048.27,735492.348,2147637.65616,861569.5902000001,861569.5902000001,861569.5902000001,973903.8295000001,1785873.68776,2772750.2982400004,1477995.85206,2252184.15552,824222.6070000001,824222.6070000001,824222.6070000001,1155716.9190000002,891048.27,891048.27,879437.0570699999,1064225.2878,1581885.48952,2759102.598,783059.5944800001,995904.6520400002,940162.7370000001,940162.7370000001,940162.7370000001,940162.7370000001,2679085.1318,2679085.1318 +2300400.0,1175407.632,1037784.459,3030330.62028,1368190.54471,1368190.54471,1368190.54471,1309800.352,2306214.8611999997,4034830.4723200006,1979969.2657500003,3017096.024,1157262.8969999999,1157262.8969999999,1157262.8969999999,1524232.9795,1175407.632,1175407.632,1466913.1843599998,1489923.6673499998,2214651.9697399996,3862765.0634999997,1096289.51326,1394274.24673,1315801.533,1315801.533,1315801.533,1315801.533,3534058.9468799997,3534058.9468799997 +2304000.0,1256492.592,1120330.812,3271365.9710399997,1491601.6341600001,1491601.6341600001,1491601.6341600001,1402198.497,2477235.0155200004,4388335.914240001,2128459.8636000003,3243367.4112000004,1257274.5269999998,1257274.5269999998,1257274.5269999998,1628407.725,1256492.592,1256492.592,1603026.5884099999,1612159.23645,2396345.33418,4179672.0945,1186230.74682,1508662.5941100002,1409307.3990000002,1409307.3990000002,1409307.3990000002,1409307.3990000002,3777854.39328,3777854.39328 +2307600.0,1256139.282,1117071.54,3261848.8967999998,1520798.05999,1520798.05999,1520798.05999,1421903.511,2470880.83856,4366601.51488,2129241.66672,3244558.73024,1252214.481,1252214.481,1252214.481,1624244.048,1256139.282,1256139.282,1608027.61275,1612707.8210999998,2397160.76124,4181094.351,1186634.39676,1509175.96098,1408955.499,1408955.499,1408955.499,1408955.499,3776792.1078799996,3776792.1078799996 +2311200.0,1265025.885,1117063.707,3261826.0244400003,1571905.8477100001,1571905.8477100001,1571905.8477100001,1470642.579,2496779.94792,4362302.39168,2151548.29239,3278549.7788800006,1255962.3869999999,1255962.3869999999,1255962.3869999999,1631077.8295,1265025.885,1265025.885,1608426.6214899998,1624325.5781999999,2414429.62488,4211214.462,1195182.77112,1520047.88676,1415266.434,1415266.434,1415266.434,1415266.434,3803511.1608999996,3803511.1608999996 +2314800.0,1260561.156,1112630.247,3248880.32124,1566877.4278300002,1566877.4278300002,1566877.4278300002,1466225.1415,2487306.8079999997,4341006.38016,2143939.07175,3266954.776,1250338.005,1250338.005,1250338.005,1623412.987,1260561.156,1260561.156,1601671.13522,1617054.3539999998,2403621.5335999997,4192363.14,1189832.5864,1513243.4572,1409562.426,1409562.426,1409562.426,1409562.426,3790087.20904,3790087.20904 +2318400.0,1259168.571,1113791.1600000001,3252270.1872,1551988.52941,1551988.52941,1551988.52941,1453850.6254999998,2483940.8364,4345779.49056,2139946.4247,3260870.7424,1251097.59,1251097.59,1251097.59,1621313.1339999998,1259168.571,1259168.571,1601188.8894299997,1614297.3327,2399523.44268,4185215.307,1187803.96332,1510663.42986,1408705.719,1408705.719,1408705.719,1408705.719,3785900.17014,3785900.17014 +2322000.0,1207210.6409999998,992477.133,2898033.22836,1312313.40482,1312313.40482,1312313.40482,1099948.1115,2056108.00192,3125555.13344,1758889.88751,2680213.16192,986943.963,986943.963,986943.963,1280652.9995000002,1207210.6409999998,1207210.6409999998,1524488.5091799998,1275358.3366499997,1895717.8238599997,3306484.5764999995,938411.8131399999,1193483.4804699998,1217281.902,1217281.902,1217281.902,1217281.902,3629679.9939399995,3629679.9939399995 +2325600.0,539672.04,374238.47099999996,1092776.3353199998,714091.7034900001,714091.7034900001,714091.7034900001,453875.6215,1014392.8335199999,1282766.33984,835372.22013,1272948.14496,458497.19700000004,458497.19700000004,458497.19700000004,561310.75,539672.04,539672.04,870861.66401,289786.43835,430744.28614000004,751298.1735000001,213225.57686000003,271182.86453,667898.7359999999,667898.7359999999,667898.7359999999,667898.7359999999,1622613.9335999999,1622613.9335999999 +2329200.0,197582.60700000002,147794.718,431560.57655999996,214048.32889,214048.32889,214048.32889,82383.833,424682.8436,964199.3849600002,377507.25999,575249.1580800001,271010.54099999997,271010.54099999997,271010.54099999997,149157.2355,197582.60700000002,197582.60700000002,281532.9556,118482.264,176114.3776,307176.24,87179.5424,110875.9952,208441.614,208441.614,208441.614,208441.614,594065.03838,594065.03838 +2332800.0,205017.57600000003,199126.614,581449.71288,189950.39206,189950.39206,189950.39206,74210.423,436583.66568,990668.8582400001,375264.20798999997,571831.17408,265070.007,265070.007,265070.007,140480.1125,205017.57600000003,205017.57600000003,278555.76281,125017.70039999999,185828.77936,324119.964,91988.33264,116991.87272,216885.33599999998,216885.33599999998,216885.33599999998,216885.33599999998,616419.51184,616419.51184 +2336400.0,220178.898,201782.523,589204.96716,196520.49538,196520.49538,196520.49538,87915.842,423767.29511999997,995484.7161600001,399983.75675999996,609499.0579199999,285251.49900000007,285251.49900000007,285251.49900000007,140021.623,220178.898,220178.898,310700.91104,139176.6624,206874.94016,360828.384,102406.53184,130241.86432000001,266972.33099999995,266972.33099999995,266972.33099999995,266972.33099999995,662004.55332,662004.55332 +2340000.0,255812.985,229963.593,671493.6915600001,199179.72349,199179.72349,199179.72349,91922.047,462410.63936,1004584.48704,448036.56702,682722.3878400001,373186.64099999995,373186.64099999995,373186.64099999995,193366.8415,255812.985,255812.985,339755.7833799999,171526.74614999996,254960.74365999995,444698.9715,126209.80333999998,160515.15256999998,331050.816,331050.816,331050.816,331050.816,769144.3748999999,769144.3748999999 +2343600.0,334108.728,251393.598,734069.3061599999,205685.4272,205685.4272,205685.4272,94377.731,604043.1136,1053375.44448,538404.9879599999,820426.6483199999,434830.401,434830.401,434830.401,279597.2095,334108.728,334108.728,362606.20785999997,195074.82314999998,289963.07045999996,505749.5415,143536.53654,182551.50117,406916.92199999996,406916.92199999996,406916.92199999996,406916.92199999996,1004553.57552,1004553.57552 +2347200.0,411659.67000000004,271327.956,792277.63152,215983.39411000002,215983.39411000002,215983.39411000002,101748.997,692390.8088,1270633.54048,631166.16192,961777.00864,472232.22,472232.22,472232.22,301878.962,411659.67000000004,411659.67000000004,402095.71623,245059.2954,364260.97735999996,635338.914,180315.23464,229327.09372,477464.73300000007,477464.73300000007,477464.73300000007,477464.73300000007,1237723.4078000002,1237723.4078000002 +2350800.0,480827.25299999997,297412.731,868445.17452,233314.34544,233314.34544,233314.34544,123059.30699999999,817646.4863999999,1370099.8496,739753.6326599999,1127243.63072,503077.80299999996,503077.80299999996,503077.80299999996,350972.01300000004,480827.25299999997,480827.25299999997,414918.22385,305526.17205,454140.13722,792104.8905,224806.91178,285912.14619,540033.4770000001,540033.4770000001,540033.4770000001,540033.4770000001,1445687.27402,1445687.27402 +2354400.0,670223.9310000001,372349.728,1087261.20576,383073.85380000004,383073.85380000004,383073.85380000004,205591.7955,1399744.2582399999,1656715.8022400003,1024882.42857,1561725.60544,554376.978,554376.978,554376.978,539255.738,670223.9310000001,670223.9310000001,656909.7808,369318.67785000004,548962.57794,957492.8685000001,271745.59506,345609.33063000004,661937.787,661937.787,661937.787,661937.787,2015139.95254,2015139.95254 +2358000.0,1378580.706,776407.4490000001,2267109.7510800003,1917394.64345,1917394.64345,1917394.64345,1598954.2519999999,3662121.8251999994,4691244.8192,3303614.3534100004,5034079.014720001,1443936.42,1443936.42,1443936.42,2175309.6750000003,1378580.706,1378580.706,2951974.7488399995,1838448.8676,2732706.71184,4766348.916,1352735.21616,1720424.98968,1690633.3049999997,1690633.3049999997,1690633.3049999997,1690633.3049999997,4144932.65604,4144932.65604 +2361600.0,1325309.529,1331449.407,3887832.26844,2578352.96906,2578352.96906,2578352.96906,2317056.8680000002,4688855.33208,3763668.5152000007,3701967.85476,5641093.87392,1470916.929,1470916.929,1470916.929,2128505.106,1325309.529,1325309.529,2458295.74276,2401694.80515,3569926.5992599996,6226616.161499999,1767172.96774,2247511.92877,1786393.7459999998,1786393.7459999998,1786393.7459999998,1786393.7459999998,3984763.9838599996,3984763.9838599996 +2365200.0,2260987.443,2391438.891,6983001.561719999,2164524.52249,2164524.52249,2164524.52249,2991823.6040000003,4981556.908799999,7890041.91488,4151621.61204,6326280.5516800005,2137950.5999999996,2137950.5999999996,2137950.5999999996,1911316.022,2260987.443,2260987.443,3337318.6973099997,2382517.8,3541421.5199999996,6176898.0,1753062.48,2229566.04,2527817.8140000002,2527817.8140000002,2527817.8140000002,2527817.8140000002,6798035.57862,6798035.57862 +2368800.0,1813058.16,1458140.385,4257769.924199999,997075.06723,997075.06723,997075.06723,1422794.723,2778522.05216,8168517.03808,1971732.6619200003,3004545.0086400006,1717733.4330000002,1717733.4330000002,1717733.4330000002,1792215.5265000002,1813058.16,1813058.16,3080083.1632999997,2549857.6520999996,3790158.7816399997,6610742.061,1876191.5563599998,2386163.08678,1292655.132,1292655.132,1292655.132,1292655.132,5451261.534399999,5451261.534399999 +2372400.0,985950.6149999999,963741.927,2814126.42684,587308.3178600001,587308.3178600001,587308.3178600001,806562.617,1963742.64952,5513997.80672,1310131.33209,1996390.60128,819213.5789999999,819213.5789999999,819213.5789999999,832336.6135,985950.6149999999,985950.6149999999,1327962.90484,1620734.1110999999,2409091.1972399997,4201903.251,1192540.1607599999,1516686.9829799999,815649.5790000001,815649.5790000001,815649.5790000001,815649.5790000001,2964424.8490999993,2964424.8490999993 +2376000.0,1023463.4459999999,1380197.5229999998,4030176.7671599993,841832.9269900001,841832.9269900001,841832.9269900001,1172181.2305,2171306.52208,3471455.1507200003,1665928.1622900001,2538557.19968,896247.1950000001,896247.1950000001,896247.1950000001,1252477.0440000002,1023463.4459999999,1023463.4459999999,1280732.64904,1073121.73245,1595109.34058,2782167.4545000005,789605.62042,1004229.9669100001,985725.8250000001,985725.8250000001,985725.8250000001,985725.8250000001,3077213.4276399994,3077213.4276399994 +2379600.0,825267.39,922156.527,2692697.05884,645628.2432600001,645628.2432600001,645628.2432600001,1092914.354,1607381.23008,2532325.73376,1209885.26652,1843634.6918400002,717904.2,717904.2,717904.2,932959.6640000001,825267.39,825267.39,937365.6331,863411.6065499999,1283392.0670199997,2238474.5354999998,635300.39198,807982.7132899999,739849.98,739849.98,739849.98,739849.98,2481303.9526,2481303.9526 +2383200.0,642789.51,546484.7790000001,1595735.55468,323424.1373,323424.1373,323424.1373,718800.2640000001,1332239.79168,2021901.64224,949894.23459,1447457.88128,581441.9879999999,581441.9879999999,581441.9879999999,511920.48600000003,642789.51,642789.51,712408.68153,665632.0030499999,989408.55762,1725712.6005000002,489773.67138,622900.0719900001,587670.165,587670.165,587670.165,587670.165,1932653.7934,1932653.7934 +2386800.0,1198954.9170000001,1524956.988,4452874.40496,1698317.19057,1698317.19057,1698317.19057,1684737.1205,2705810.41384,3639368.3340800004,2081520.33936,3171840.51712,1075455.648,1075455.648,1075455.648,1606843.1995,1198954.9170000001,1198954.9170000001,1824522.4227099996,1585574.6679,2356829.50636,4110749.139,1166669.75564,1483784.68922,1314985.5899999999,1314985.5899999999,1314985.5899999999,1314985.5899999999,3604857.78378,3604857.78378 +2390400.0,1184610.4170000001,1537826.643,4490453.79756,2024976.63192,2024976.63192,2024976.63192,1446900.819,2991757.41736,3922002.5984,2302312.1249100002,3508285.1427200004,1226155.185,1226155.185,1226155.185,1881367.9745000002,1184610.4170000001,1184610.4170000001,1925647.88195,1627475.45355,2419111.66182,4219380.805500001,1197500.4571800001,1522995.54789,1379956.863,1379956.863,1379956.863,1379956.863,3561728.6537800003,3561728.6537800003 +2394000.0,1113293.256,1546118.04,4514664.6768000005,1413450.5808500003,1413450.5808500003,1413450.5808500003,1321126.3344999999,2849895.65304,4020420.1625600006,1987844.8464000002,3029096.9088000003,1122287.313,1122287.313,1122287.313,1585435.3514999999,1113293.256,1113293.256,1673284.2285899997,1474394.805,2191569.562,3822505.05,1084863.338,1379742.2989999999,1355544.4770000002,1355544.4770000002,1355544.4770000002,1355544.4770000002,3347301.7230399996,3347301.7230399996 +2397600.0,2370755.0459999996,1975082.25,5767240.17,3721118.48482,3721118.48482,3721118.48482,3094421.9145,3979891.4968,7391459.98528,3986861.9561400004,6075218.2188800005,2495380.833,2495380.833,2495380.833,3192210.2835,2370755.0459999996,2370755.0459999996,4306462.72095,3123237.0987,4642441.3170799995,8097281.367,2298085.56892,2922732.98866,2682367.56,2682367.56,2682367.56,2682367.56,7128070.171639998,7128070.171639998 +2401200.0,1890794.961,1144218.969,3341119.38948,2728417.8535900004,2728417.8535900004,2728417.8535900004,1997177.987,3101504.8348,5645091.242240001,2939900.17755,4479847.8896,1915063.9799999997,1915063.9799999997,1915063.9799999997,2666375.0119999996,1890794.961,1890794.961,1758959.71771,2360606.56695,3508852.23038,6120091.0995000005,1736940.14062,2209061.45401,2151350.6999999997,2151350.6999999997,2151350.6999999997,2151350.6999999997,5684990.182739999,5684990.182739999 +2404800.0,1441651.3080000002,1065529.809,3111347.04228,1812877.97955,1812877.97955,1812877.97955,1726022.585,2468399.36416,4631212.591360001,2171744.97603,3309325.6777600003,1374398.787,1374398.787,1374398.787,1845478.9815000002,1441651.3080000002,1441651.3080000002,1536979.49236,1737588.6355499998,2582786.0706199994,4504859.4255,1278522.00838,1626039.7354899999,1500456.57,1500456.57,1500456.57,1500456.57,4334564.93272,4334564.93272 +2408400.0,1288804.305,1103300.709,3221638.0702799996,1571807.76478,1571807.76478,1571807.76478,1516414.7179999999,2401331.5894400002,4473449.512320001,2106206.2182,3209457.0944,1284108.48,1284108.48,1284108.48,1747039.273,1288804.305,1288804.305,1627045.9535199997,1685977.11225,2506069.6829,4371051.7725,1240546.1221,1577741.54455,1454020.497,1454020.497,1454020.497,1454020.497,3875004.9436999997,3875004.9436999997 +2412000.0,919360.5869999999,799811.0789999999,2335448.3506799997,1031151.4312000001,1031151.4312000001,1031151.4312000001,816470.697,1290985.4360000002,2825708.2521599997,1255863.7898100002,1913697.2035200002,709529.6429999999,709529.6429999999,709529.6429999999,880301.065,919360.5869999999,919360.5869999999,1157370.9013099999,808005.98655,1201036.05902,2094830.3355,594532.79998,756133.9972900001,942884.5140000002,942884.5140000002,942884.5140000002,942884.5140000002,2764210.8315799995,2764210.8315799995 +2415600.0,172220.391,141615.117,413516.14164,198023.31032,198023.31032,198023.31032,77232.491,294405.66536000004,1031698.78528,354781.09569,540618.81248,241689.219,241689.219,241689.219,152426.06399999998,172220.391,172220.391,299967.79527,121148.84474999999,180078.0359,314089.5975,89141.6191,113371.38805,214647.07200000001,214647.07200000001,214647.07200000001,214647.07200000001,517809.30894,517809.30894 +2419200.0,186225.57,148473.41999999998,433542.38639999996,174300.48911000002,174300.48911000002,174300.48911000002,66105.67250000002,405628.67559999996,1024665.82272,370436.67612,564474.9350400001,242036.70299999998,242036.70299999998,242036.70299999998,147679.728,186225.57,186225.57,301015.42289000005,116882.33175,173736.20669999998,303028.2675,86002.30829999999,109378.77464999999,214218.468,214218.468,214218.468,214218.468,559918.2138,559918.2138 +2422800.0,222792.765,175814.499,513378.33707999997,172576.00162000002,172576.00162000002,172576.00162000002,74527.76449999999,454676.4704,1019032.56128,410943.00744,626198.8684800001,276655.02599999995,276655.02599999995,276655.02599999995,145737.725,222792.765,222792.765,335761.39102999994,141949.18305,210996.06961999997,368016.4005,104446.55937999999,132836.39599,253342.761,253342.761,253342.761,253342.761,669863.5801,669863.5801 +2426400.0,277831.539,242522.24699999997,708164.96124,204039.47443,204039.47443,204039.47443,101375.3125,517222.1696,1087348.02688,476240.66615999996,725700.06272,374177.238,374177.238,374177.238,236313.27999999997,277831.539,277831.539,375226.36359,179428.94819999998,266706.73287999997,465186.16199999995,132024.26312,167910.05276,361498.11,361498.11,361498.11,361498.11,835346.82726,835346.82726 +2430000.0,335493.522,273111.639,797485.98588,217681.94349,217681.94349,217681.94349,101544.5935,651034.3640800001,1125758.13696,550490.4593999999,838842.6048,473845.39800000004,473845.39800000004,473845.39800000004,304186.1515,335493.522,335493.522,404663.2317,207126.64304999998,307877.13362,536995.0005,152404.29538,193829.62399,425315.04900000006,425315.04900000006,425315.04900000006,425315.04900000006,1008717.18948,1008717.18948 +2433600.0,451560.015,304477.299,889073.71308,231538.66142000002,231538.66142000002,231538.66142000002,107357.5545,791996.26032,1300887.50208,706965.7234500002,1077281.1024000002,539420.061,539420.061,539420.061,334929.15400000004,451560.015,451560.015,439280.7872699999,258050.90565,383571.96346,669020.8665,189874.49354,241484.67467,545185.068,545185.068,545185.068,545185.068,1357690.4451,1357690.4451 +2437200.0,552973.4820000001,353617.779,1032563.9146799999,251954.13144,251954.13144,251954.13144,130726.64499999997,940084.6268,1589304.84544,839110.0074,1278643.8208,569457.744,569457.744,569457.744,381996.64999999997,552973.4820000001,552973.4820000001,465819.05317999993,335457.24344999995,498630.27297999995,869703.9644999999,246830.26802,313921.71670999995,626080.158,626080.158,626080.158,626080.158,1662606.93588,1662606.93588 +2440800.0,736852.908,474381.672,1385194.48224,426447.9984600001,426447.9984600001,426447.9984600001,217750.89,1539648.95096,1883103.2083200002,1154678.5887000002,1759510.2304000002,626402.166,626402.166,626402.166,614279.9530000001,736852.908,736852.908,747030.13801,422929.29734999995,628650.4617399999,1096483.3635,311192.42126,395778.28073,748313.346,748313.346,748313.346,748313.346,2215471.07672,2215471.07672 +2444400.0,1439593.1670000001,830305.605,2424492.3666,1956019.95688,1956019.95688,1956019.95688,1623752.97,3811719.9134400003,4868372.448640001,3424680.2740499997,5218560.417599999,1552131.459,1552131.459,1552131.459,2321040.9775,1439593.1670000001,1439593.1670000001,3036215.07826,1911746.1726,2841657.27384,4956378.966,1406667.55416,1789016.78868,1778366.8020000001,1778366.8020000001,1778366.8020000001,1778366.8020000001,4328376.78878,4328376.78878 +2448000.0,1419494.9400000002,1394960.82,4073285.5944,2645586.8334500007,2645586.8334500007,2645586.8334500007,2477881.2345,4906889.799039999,4091715.1052800003,3834708.93834,5843366.00128,1554081.3959999997,1554081.3959999997,1554081.3959999997,2298551.388,1419494.9400000002,1419494.9400000002,2595314.3070399994,2481582.4928999995,3688673.2363599995,6433732.3889999995,1825954.52564,2322271.02422,1902402.4379999998,1902402.4379999998,1902402.4379999998,1902402.4379999998,4267948.1196,4267948.1196 +2451600.0,2339622.5250000004,2462300.874,7189918.55208,2224870.1316600004,2224870.1316600004,2224870.1316600004,3068727.0705000004,5138230.51328,8128597.132160001,4275140.931179999,6514500.46656,2223819.213,2223819.213,2223819.213,2003403.0380000002,2339622.5250000004,2339622.5250000004,3481100.93448,2522979.414,3750206.4376,6541057.74,1856414.4824,2361010.3652,2595850.74,2595850.74,2595850.74,2595850.74,7034465.0585,7034465.0585 +2455200.0,1903649.898,1498631.523,4376004.04716,1054557.9035200002,1054557.9035200002,1054557.9035200002,1551858.5215,2935427.5864,8521472.85504,2116657.60887,3225383.0230400003,1835732.307,1835732.307,1835732.307,1878529.261,1903649.898,1903649.898,2558329.0289700003,2630592.2474999996,3910164.2789999996,6820053.975,1935596.271,2461714.7205,1391959.1400000001,1391959.1400000001,1391959.1400000001,1391959.1400000001,5723640.69332,5723640.69332 +2458800.0,1069913.568,964759.7040000001,2817098.33568,651875.51825,651875.51825,651875.51825,880516.5285,2083338.52616,5873397.347200001,1441941.8968500001,2197244.7952,917032.8030000001,917032.8030000001,917032.8030000001,929893.1390000001,1069913.568,1069913.568,1160765.64539,1830281.4796499999,2720566.54506,4745174.2065,1346725.63194,1712781.92787,903020.217,903020.217,903020.217,903020.217,3216873.4611199996,3216873.4611199996 +2462400.0,1098168.654,1432159.548,4181905.8801599997,883722.02226,883722.02226,883722.02226,1235980.844,2274681.67024,3892990.68672,1780828.4188800002,2713643.3049600003,985055.8649999999,985055.8649999999,985055.8649999999,1327170.1695,1098168.654,1098168.654,1353540.87349,1174161.36735,1745296.6497399998,3044122.0634999997,863950.83326,1098783.1067299999,1063563.864,1063563.864,1063563.864,1063563.864,3301827.0863599996,3301827.0863599996 +2466000.0,892389.5490000001,950245.3589999999,2774716.4482799997,693992.4439800001,693992.4439800001,693992.4439800001,1163362.27,1738483.0572000002,2801247.0528,1316923.28292,2006740.24064,804322.9199999999,804322.9199999999,804322.9199999999,1077880.321,892389.5490000001,892389.5490000001,1024939.4175799999,951135.5987999999,1413786.74192,2465907.108,699847.92208,890075.04184,815488.527,815488.527,815488.527,815488.527,2683117.91066,2683117.91066 +2469600.0,761779.737,679131.627,1983064.35084,441449.15155000007,441449.15155000007,441449.15155000007,889581.7945000001,1562386.93256,2517301.8572800006,1156223.10678,1761863.7817600002,714595.809,714595.809,714595.809,640783.0205000001,761779.737,761779.737,892597.5104799998,832625.811,1237631.4523999998,2158659.51,612648.1276,779173.2898,727119.225,727119.225,727119.225,727119.225,2290417.74258,2290417.74258 +2473200.0,1227293.1149999998,1611870.648,4706662.29216,1731350.4338900002,1731350.4338900002,1731350.4338900002,1705348.47,2811112.12544,3719760.3494400005,2127179.5513500003,3241416.4592000004,1127034.369,1127034.369,1127034.369,1624146.7480000001,1227293.1149999998,1227293.1149999998,1880755.1755199998,1612206.0746999998,2396414.9554799995,4179793.527,1186265.21052,1508706.4254599998,1399864.725,1399864.725,1399864.725,1399864.725,3690061.2990999995,3690061.2990999995 +2476800.0,1244524.32,1586621.193,4632933.88356,2095711.61206,2095711.61206,2095711.61206,1504951.7595,3141750.33632,4148209.984,2416718.4125699997,3682618.5334399994,1313274.2280000001,1313274.2280000001,1313274.2280000001,1960381.1325,1244524.32,1244524.32,1988465.9288,1690247.6752499999,2512417.5320999995,4382123.6025,1243688.4128999999,1581737.94795,1445167.827,1445167.827,1445167.827,1445167.827,3741869.7887999997,3741869.7887999997 +2480400.0,1162980.942,1587898.821,4636664.55732,1529383.46044,1529383.46044,1529383.46044,1380061.2665,2949820.6868799995,4203639.90656,2073038.8158900002,3158916.29088,1204893.726,1204893.726,1204893.726,1659600.355,1162980.942,1162980.942,1735910.75567,1544835.2602499998,2296273.6461,4005128.4525,1136693.5988999999,1445660.65095,1411478.85,1411478.85,1411478.85,1411478.85,3496696.03228,3496696.03228 +2484000.0,2415052.503,2030377.7999999998,5928703.176,3767788.0515,3767788.0515,3767788.0515,3145449.909,4125796.3047999996,7601386.9088,4061811.28794,6189426.72448,2550164.451,2550164.451,2550164.451,3266061.7605,2415052.503,2415052.503,4390667.028279999,3196281.8335499996,4751016.4538199995,8286656.6055,2351832.06518,2991088.4318899997,2760687.033,2760687.033,2760687.033,2760687.033,7261257.85902,7261257.85902 +2487600.0,1933417.7399999998,1186914.261,3465789.64212,2812794.02481,2812794.02481,2812794.02481,2029874.9345,3183557.4071199996,5873310.49216,3027692.0784600005,4613626.024320001,1966407.3990000002,1966407.3990000002,1966407.3990000002,2802445.093,1933417.7399999998,1933417.7399999998,1894814.81514,2476433.2135499995,3681019.2458199994,6420382.405499999,1822165.6731799997,2317452.3158899997,2207984.661,2207984.661,2207984.661,2207984.661,5813142.671599999,5813142.671599999 +2491200.0,1504838.991,1120581.996,3272099.42832,2000142.68036,2000142.68036,2000142.68036,1793485.197,2593301.1202399996,4923008.99072,2287887.88536,3486305.3491200004,1457862.2489999998,1457862.2489999998,1457862.2489999998,2044915.3935000002,1504838.991,1504838.991,1617931.9029899999,1832535.5840999999,2723917.0904399995,4751018.181,1348384.2075599998,1714891.32438,1630338.846,1630338.846,1630338.846,1630338.846,4524549.23294,4524549.23294 +2494800.0,1334251.923,1143315.459,3338481.14028,1624792.0422800002,1624792.0422800002,1624792.0422800002,1607022.2385,2487765.9488,4633326.02048,2175846.32223,3315575.34816,1331028.597,1331028.597,1331028.597,1825770.0089999998,1334251.923,1334251.923,1695590.4640999998,1750827.5388,2602464.63792,4539182.508,1288263.22608,1638428.7338400001,1507295.0880000002,1507295.0880000002,1507295.0880000002,1507295.0880000002,4011650.7818199997,4011650.7818199997 +2498400.0,946112.2590000001,823320.3119999999,2404095.31104,1060958.4140100002,1060958.4140100002,1060958.4140100002,837750.1089999999,1326806.93312,2914003.0208000005,1299638.8188,1980402.0096,732318.2729999999,732318.2729999999,732318.2729999999,910154.4235,946112.2590000001,946112.2590000001,1196408.63043,834108.79545,1239835.7897799998,2162504.2845,613739.3112199999,780561.07031,973853.2110000001,973853.2110000001,973853.2110000001,973853.2110000001,2844644.1920600003,2844644.1920600003 +2502000.0,178670.175,145945.59,426161.12279999995,202728.15299,202728.15299,202728.15299,78557.1255,310476.27079999994,1070417.3107200002,369506.49539999996,563057.5168,249717.41100000002,249717.41100000002,249717.41100000002,157569.2125,178670.175,178670.175,309686.51570999995,125665.68825,186791.9613,325799.9325,92465.12370000001,117598.26135000002,222406.788,222406.788,222406.788,222406.788,537201.6595,537201.6595 +2505600.0,198891.71099999998,155498.32799999998,454055.11776,179591.16351,179591.16351,179591.16351,69334.5625,437686.15839999996,1067168.9888,384277.63038,585565.91296,252005.967,252005.967,252005.967,153095.7785,198891.71099999998,198891.71099999998,314759.77181999997,121265.82495,180251.91757999998,314392.8795,89227.69342,113480.85841,221884.326,221884.326,221884.326,221884.326,598001.0777399999,598001.0777399999 +2509200.0,238968.15600000002,194041.137,566600.12004,183881.65983000002,183881.65983000002,183881.65983000002,81466.21350000001,479641.75791999995,1094252.47488,438361.54089,667979.49088,299382.21900000004,299382.21900000004,299382.21900000004,156875.929,238968.15600000002,238968.15600000002,357599.07962999993,157009.76415,233382.41486,407062.3515,115528.17214,146930.12497,284255.397,284255.397,284255.397,284255.397,718497.5890400001,718497.5890400001 +2512800.0,298488.033,261357.51,763163.9292,213596.95368,213596.95368,213596.95368,105866.45300000001,560888.47448,1141192.55936,507347.91891,773101.59072,413030.46,413030.46,413030.46,269988.565,298488.033,298488.033,394608.8887,189477.66645,281643.34617999993,491238.39449999994,139418.13481999998,177313.66811,390804.801,390804.801,390804.801,390804.801,897454.0192199999,897454.0192199999 +2516400.0,364630.983,289546.55700000003,845475.94644,229109.67728000003,229109.67728000003,229109.67728000003,106111.4215,711844.39776,1199105.3849600002,599409.25485,913385.5312000001,513025.395,513025.395,513025.395,325811.92,364630.983,364630.983,430672.38798999996,225692.7381,335474.14404,585129.321,166065.27396,211203.82158,469429.49399999995,469429.49399999995,469429.49399999995,469429.49399999995,1096323.82222,1096323.82222 +2520000.0,497466.948,319192.914,932043.30888,240919.42534000002,240919.42534000002,240919.42534000002,114563.17599999999,837016.5692,1428430.29312,760575.40041,1158972.03872,564686.625,564686.625,564686.625,353035.2385,497466.948,497466.948,455782.79097,289060.35435,429665.02053999994,749415.7335,212691.32246,270503.39333,589104.948,589104.948,589104.948,589104.948,1495717.29032,1495717.29032 +2523600.0,592351.233,409571.9700000001,1195950.1524000003,268552.45428,268552.45428,268552.45428,138103.69999999998,1032099.81864,1743804.03328,901437.2402700001,1373618.6518400002,601156.635,601156.635,601156.635,425385.8455,592351.233,592351.233,492502.65804999997,363255.73065,539950.4934599999,941774.1165,267284.46354,339935.60967000003,666945.885,666945.885,666945.885,666945.885,1781002.7072199997,1781002.7072199997 +2527200.0,776371.191,513148.728,1498394.2857599999,464679.20158,464679.20158,464679.20158,222726.9135,1623063.0959199998,2002233.8336000002,1224307.7962500001,1865611.8800000004,661044.624,661044.624,661044.624,651635.4775,776371.191,776371.191,806567.2068999999,448158.14054999995,666151.1126199999,1161891.4755,329755.86637999996,419387.49448999995,783787.4700000001,783787.4700000001,783787.4700000001,783787.4700000001,2334289.38094,2334289.38094 +2530800.0,1486680.438,859568.7989999999,2509940.8930799994,1997758.2179500002,1997758.2179500002,1997758.2179500002,1668227.47,3871952.85,4968930.500480001,3496112.7138,5327409.8496,1620685.8599999999,1620685.8599999999,1620685.8599999999,2376843.5565,1486680.438,1486680.438,3122687.2188199996,1981789.3431,2945770.8260399997,5137972.371,1458205.49196,1854563.36058,1838656.0110000002,1838656.0110000002,1838656.0110000002,1838656.0110000002,4469952.51692,4469952.51692 +2534400.0,1510333.8419999997,1450917.258,4236678.39336,2704718.3290600004,2704718.3290600004,2704718.3290600004,2583154.5075000003,5022423.295759999,4319051.72608,3950200.62843,6019353.33856,1626482.1120000002,1626482.1120000002,1626482.1120000002,2451777.174,1510333.8419999997,1510333.8419999997,2737379.5810399996,2574232.2085499996,3826389.6038199994,6673935.3555,1894126.4151799998,2408972.85689,1985121.1080000002,1985121.1080000002,1985121.1080000002,1985121.1080000002,4541070.418279999,4541070.418279999 +2538000.0,2391738.132,2512594.4790000003,7336775.87868,2313839.5624300004,2313839.5624300004,2313839.5624300004,3149438.9605000005,5257005.02312,8289211.837440001,4373817.34818,6664864.53056,2276629.533,2276629.533,2276629.533,2072624.5750000002,2391738.132,2391738.132,3570620.022449999,2615316.56685,3887458.20554,6780450.3585,1924356.38746,2447419.70083,2642445.735,2642445.735,2642445.735,2642445.735,7191159.31688,7191159.31688 +2541600.0,1955307.9540000004,1534574.778,4480958.35176,1092889.9775200002,1092889.9775200002,1092889.9775200002,1671977.0795,3029871.76272,8775869.472,2211583.4391,3370031.9072000002,1890839.2980000002,1890839.2980000002,1890839.2980000002,1924894.1530000002,1955307.9540000004,1955307.9540000004,2621029.5097999997,2690246.2931999997,3998835.230879999,6974712.611999999,1979489.8651199997,2517539.12376,1449314.184,1449314.184,1449314.184,1449314.184,5878959.248360001,5878959.248360001 +2545200.0,1101600.594,988524.2759999998,2886490.8859199993,681177.9594400001,681177.9594400001,681177.9594400001,905003.0255,2126991.3756799996,6057725.89376,1499178.2276100002,2284462.06112,968636.973,968636.973,968636.973,962610.4530000001,1101600.594,1101600.594,1191037.0436899997,1924078.0013999997,2859987.5477599995,4988350.374,1415741.3442399998,1800556.94452,931963.872,931963.872,931963.872,931963.872,3312145.7859599995,3312145.7859599995 +2548800.0,1151607.2489999998,1491074.886,4353938.66712,920972.63214,920972.63214,920972.63214,1284505.138,2407126.39368,4224438.843520001,1870891.6128,2850882.4576,1072007.01,1072007.01,1072007.01,1389110.548,1151607.2489999998,1151607.2489999998,1422649.5537799997,1248728.1651,1856134.21084,3237443.3910000003,918817.2671600002,1168562.90018,1129686.237,1129686.237,1129686.237,1129686.237,3462499.1286599995,3462499.1286599995 +2552400.0,953857.0290000001,999774.8489999999,2919342.55908,735454.8608,735454.8608,735454.8608,1220917.3724999998,1861666.2063999998,3014242.21248,1407313.1973599999,2144477.25312,875284.548,875284.548,875284.548,1138314.7545,953857.0290000001,953857.0290000001,1100369.5249299998,1021691.7706500001,1518662.8294600002,2648830.5165000004,751763.3275400001,956101.6816700001,880608.2010000001,880608.2010000001,880608.2010000001,880608.2010000001,2867930.1338600004,2867930.1338600004 +2556000.0,813049.206,743178.0179999999,2170079.81256,477727.91869,477727.91869,477727.91869,962093.776,1664539.5701600001,2706587.9955200003,1238358.45945,1887022.4144000001,774917.9010000001,774917.9010000001,774917.9010000001,722792.007,813049.206,813049.206,959484.3844300001,896749.9874999999,1332946.895,2324907.375,659830.855,839180.8525,783573.0390000001,783573.0390000001,783573.0390000001,783573.0390000001,2444567.94604,2444567.94604 +2559600.0,1292306.7449999999,1705088.808,4978859.31936,1788375.26087,1788375.26087,1788375.26087,1777214.159,2970820.4508800004,3953981.3120000004,2238297.72474,3410739.3900800003,1200390.474,1200390.474,1200390.474,1677749.0695000002,1292306.7449999999,1292306.7449999999,1961632.11725,1689147.4076999999,2510782.0726799998,4379271.057,1242878.83332,1580708.31486,1507528.2000000002,1507528.2000000002,1507528.2000000002,1507528.2000000002,3885535.6133,3885535.6133 +2563200.0,1302849.621,1655946.003,4835362.32876,2152846.24357,2152846.24357,2152846.24357,1570439.199,3295647.7624799996,4373658.94656,2527861.8468600004,3851979.957120001,1378351.044,1378351.044,1378351.044,2042116.867,1302849.621,1302849.621,2056953.1522799998,1758113.15265,2613294.11826,4558071.1365,1293623.9987400002,1645246.6292700002,1510298.781,1510298.781,1510298.781,1510298.781,3917234.52714,3917234.52714 +2566800.0,1218307.7010000001,1633461.396,4769707.27632,1632319.82881,1632319.82881,1632319.82881,1435627.347,3056271.5469599995,4402283.73696,2168628.97881,3304577.49152,1264478.976,1264478.976,1264478.976,1754184.9640000002,1218307.7010000001,1218307.7010000001,1807381.42494,1629185.2987499998,2421653.2095,4223813.7375,1198758.5655,1524595.62525,1490472.279,1490472.279,1490472.279,1490472.279,3663045.1543400004,3663045.1543400004 +2570400.0,2445277.0020000003,2069833.581,6043914.05652,3800682.4630500004,3800682.4630500004,3800682.4630500004,3179775.6515,4189569.3325599995,7733992.14208,4112731.9348500003,6267020.091200001,2583751.245,2583751.245,2583751.245,3314192.6859999998,2445277.0020000003,2445277.0020000003,4433111.314839999,3244627.3437,4822878.1750799995,8411996.817,2387404.81092,3036330.27966,2804812.143,2804812.143,2804812.143,2804812.143,7352132.85268,7352132.85268 +2574000.0,1981307.904,1235132.364,3606586.50288,2891926.62781,2891926.62781,2891926.62781,2072252.231,3280840.5125599997,6111659.098240001,3097916.71875,4720635.0,2018875.83,2018875.83,2018875.83,2926572.327,1981307.904,1981307.904,2045223.5439999998,2551495.7272499995,3792593.6488999994,6614988.922499999,1877396.8560999997,2387696.0015499997,2262186.573,2262186.573,2262186.573,2262186.573,5957132.43136,5957132.43136 +2577600.0,1553938.062,1162818.84,3395431.0128,2147063.55908,2147063.55908,2147063.55908,1845879.0140000002,2687530.1859999998,5127096.172160001,2393786.64483,3647674.8873600005,1519675.683,1519675.683,1519675.683,2177424.6445000004,1553938.062,1553938.062,1688977.2335799998,1931008.1994,2870288.73096,5006317.5540000005,1420840.60104,1807042.2409200002,1720418.9970000002,1720418.9970000002,1720418.9970000002,1720418.9970000002,4672173.773079999,4672173.773079999 +2581200.0,1383450.582,1186026.1770000001,3463196.43684,1694640.7473600002,1694640.7473600002,1694640.7473600002,1691481.1515000002,2580452.0048,4811823.2896,2254161.27048,3434912.41216,1379924.316,1379924.316,1379924.316,1903265.3395000002,1383450.582,1383450.582,1764699.18287,1821025.1114999999,2706807.6966,4721176.215,1339914.7734,1704119.7957000001,1564688.3969999999,1564688.3969999999,1564688.3969999999,1564688.3969999999,4159574.74988,4159574.74988 +2584800.0,971019.3659999999,842435.0939999999,2459910.47448,1088600.71034,1088600.71034,1088600.71034,856076.284,1355680.4187200002,2982611.5827200008,1337721.74592,2038433.13664,748143.855,748143.855,748143.855,935696.251,971019.3659999999,971019.3659999999,1231081.10177,855912.01905,1272244.53202,2219031.1605,629782.17698,800964.58079,999805.8929999999,999805.8929999999,999805.8929999999,999805.8929999999,2919531.5604399997,2919531.5604399997 +2588400.0,181545.47400000002,147050.47499999998,429387.387,204055.37999000002,204055.37999000002,204055.37999000002,79082.9935,318456.67167999997,1078667.3536,377170.90362000006,574736.6150400001,251367.01799999998,251367.01799999998,251367.01799999998,158962.5555,181545.47400000002,181545.47400000002,312101.43873999995,127323.70154999998,189256.46501999997,330098.48549999995,93685.09397999999,119149.83428999998,225850.467,225850.467,225850.467,225850.467,545846.72516,545846.72516 +2592000.0,208969.635,159807.054,466636.59768,183318.99454,183318.99454,183318.99454,71632.6065,458777.66880000004,1092792.18304,394129.62288,600578.47296,260268.465,260268.465,260268.465,156495.6225,208969.635,208969.635,323200.45602000004,124189.39439999999,184597.56895999998,321972.504,91378.86304,116216.74192,227544.822,227544.822,227544.822,227544.822,628302.0358999999,628302.0358999999 +2595600.0,244523.985,204072.969,595893.0694800001,186718.59228000004,186718.59228000004,186718.59228000004,84050.7745,479641.44256,1108118.1971200001,445495.2432,678849.8944000001,300119.598,300119.598,300119.598,159702.3015,244523.985,244523.985,361428.4937899999,161974.79280000002,240762.53152000002,419934.64800000004,119181.45248000002,151576.41104000004,296538.39300000004,296538.39300000004,296538.39300000004,296538.39300000004,735202.1148999999,735202.1148999999 +2599200.0,306284.286,265500.543,775261.5855599999,217995.02010000002,217995.02010000002,217995.02010000002,107325.099,571901.69832,1156192.8697600001,518366.62206,789891.9955200001,423875.493,423875.493,423875.493,281039.24450000003,306284.286,306284.286,400026.81979,193355.8371,287407.93564,501292.911,142271.70236,180942.86978,401253.32100000005,401253.32100000005,401253.32100000005,401253.32100000005,920894.75324,920894.75324 +2602800.0,381882.7949999999,297282.792,868065.75264,234042.78997,234042.78997,234042.78997,108371.1965,735329.73584,1229138.7654400002,621493.41555,947037.5856000001,525443.988,525443.988,525443.988,335157.487,381882.7949999999,381882.7949999999,441293.27203,234489.69854999997,348550.11981999996,607936.2555,172538.09918,219436.03889,489784.158,489784.158,489784.158,489784.158,1148194.2702999997,1148194.2702999997 +2606400.0,529753.851,335560.03500000003,979835.3022,251253.13906000002,251253.13906000002,251253.13906000002,121001.07599999999,882151.6048799999,1534466.4140800002,807880.26585,1231055.6432,589610.9400000001,589610.9400000001,589610.9400000001,373344.825,529753.851,529753.851,473489.3293,309526.6527,460086.53067999997,802476.507,227750.47532,289655.80586,625768.743,625768.743,625768.743,625768.743,1592793.24534,1592793.24534 +2610000.0,630934.242,455435.61,1329871.9812,286052.30247,286052.30247,286052.30247,145895.2425,1111595.56304,1889846.4256000004,973305.3508500002,1483131.9632000003,636001.3019999999,636001.3019999999,636001.3019999999,466458.94750000007,630934.242,630934.242,542637.0571699999,390244.13279999996,580066.58752,1011744.048,287142.59648,365191.42304,706557.99,706557.99,706557.99,706557.99,1897008.9542799997,1897008.9542799997 +2613600.0,841433.8920000001,565134.108,1650191.59536,509540.84577,509540.84577,509540.84577,238427.742,1753263.7584799998,2216469.6179200006,1321901.02779,2014325.3756799998,728485.896,728485.896,728485.896,705003.208,841433.8920000001,841433.8920000001,864668.40421,495440.307,736432.2588,1284474.87,364546.2012,463634.2626,853967.568,853967.568,853967.568,853967.568,2529911.23528,2529911.23528 +2617200.0,1560799.473,918394.503,2681711.94876,2046792.29997,2046792.29997,2046792.29997,1726858.8855,3964438.9093600004,5097014.941440001,3597601.42728,5482059.31776,1715924.451,1715924.451,1715924.451,2444717.8875,1560799.473,1560799.473,3290857.77696,2086354.0858499997,3101197.9251399995,5409066.148499999,1535144.4878599998,1952415.30503,1916740.8420000002,1916740.8420000002,1916740.8420000002,1916740.8420000002,4692803.748819999,4692803.748819999 +2620800.0,1590382.341,1494802.41,4364823.037199999,2762432.10529,2762432.10529,2762432.10529,2665681.97,5125311.604,4538797.16416,4057008.4373700004,6182108.095040001,1687042.956,1687042.956,1687042.956,2589299.9614999997,1590382.341,1590382.341,2805273.58241,2638572.5133,3922026.30372,6840743.553,1941468.1702800002,2469182.6729400004,2055800.0850000002,2055800.0850000002,2055800.0850000002,2055800.0850000002,4781749.57194,4781749.57194 +2624400.0,2435659.4189999998,2555476.917,7461992.597639999,2404306.1467700005,2404306.1467700005,2404306.1467700005,3217683.105,5363030.0596,8429933.213440001,4464153.17628,6802519.12576,2361966.591,2361966.591,2361966.591,2137349.1859999998,2435659.4189999998,2435659.4189999998,3661945.70313,2699882.3488499997,4013158.4543399997,6999694.978499999,1986580.09866,2526556.56843,2691719.3310000002,2691719.3310000002,2691719.3310000002,2691719.3310000002,7323215.986459999,7323215.986459999 +2628000.0,2070716.256,1632240.918,4766143.48056,1198119.8845000002,1198119.8845000002,1198119.8845000002,1854928.4635,3294099.54928,9295099.53088,2436486.56895,3712741.4384000003,1996260.303,1996260.303,1996260.303,2031619.0685,2070716.256,2070716.256,2824698.7433599997,2825132.0373,4199332.06532,7324416.393,2078739.12868,2643765.53614,1596536.6339999996,1596536.6339999996,1596536.6339999996,1596536.6339999996,6225953.54304,6225953.54304 +2631600.0,1253124.036,1121205.2310000001,3273919.2745200004,814346.6256200001,814346.6256200001,814346.6256200001,1085528.2655,2457924.4481599997,6707520.03264,1767585.52005,2693463.6496,1182288.951,1182288.951,1182288.951,1122869.517,1253124.036,1253124.036,1413498.0910699996,2187218.6190000004,3251124.9596,5670566.790000001,1609360.8604000004,2046804.5842000004,1103583.846,1103583.846,1103583.846,1103583.846,3767726.26824,3767726.26824 +2635200.0,1269158.778,1613047.446,4710098.542319999,1013236.0970600001,1013236.0970600001,1013236.0970600001,1404382.2974999999,2698782.5636799997,4897706.22336,2093524.42047,3190132.45024,1222198.044,1222198.044,1222198.044,1526006.9265,1269158.778,1269158.778,1591804.3100700001,1420059.02085,2110803.7791399998,3681634.4985,1044882.93386,1328894.7380300001,1264135.224,1264135.224,1264135.224,1264135.224,3815937.3925199998,3815937.3925199998 +2638800.0,1072301.322,1094774.2769999998,3196740.8888399997,812674.99522,812674.99522,812674.99522,1338947.428,2084280.3312799998,3420235.25504,1581406.89105,2409762.8816,1004131.5389999999,1004131.5389999999,1004131.5389999999,1239831.9745,1072301.322,1072301.322,1243675.44223,1154702.9925,1716373.3369999998,2993674.425,849633.313,1080573.9115,998894.559,998894.559,998894.559,998894.559,3224052.6414799998,3224052.6414799998 +2642400.0,919774.869,868200.249,2535144.7270799996,556278.43843,556278.43843,556278.43843,1102289.4400000002,1880412.7056800001,3101156.7008000007,1409563.37361,2147906.09312,899022.5969999998,899022.5969999998,899022.5969999998,899663.919,919774.869,919774.869,1098806.2123999998,1032064.2296999998,1534080.6574799998,2675722.0769999996,759395.4085199999,965808.2544599999,896161.1340000001,896161.1340000001,896161.1340000001,896161.1340000001,2765456.4394599996,2765456.4394599996 +2646000.0,1401041.535,1817942.1329999997,5308391.028359999,1885102.3965400003,1885102.3965400003,1885102.3965400003,1902050.5665,3214990.1033599996,4376402.51264,2424306.81108,3694181.80736,1326152.2710000002,1326152.2710000002,1326152.2710000002,1814692.3619999997,1401041.535,1401041.535,2102770.2397000003,1837145.95425,2730770.0357,4762970.992500001,1351776.5293,1719205.7201500002,1709032.905,1709032.905,1709032.905,1709032.905,4212464.881899999,4212464.881899999 +2649600.0,1404775.8,1816981.59,5305586.2428,2274157.6810700004,2274157.6810700004,2274157.6810700004,1691238.2655,3592396.0270399996,4782728.972800001,2742918.80919,4179685.80448,1493737.629,1493737.629,1493737.629,2250743.8835,1404775.8,1404775.8,2180575.34227,1899438.2428499998,2823362.5239399993,4924469.518499999,1397611.34906,1777498.9976299999,1656128.1239999998,1656128.1239999998,1656128.1239999998,1656128.1239999998,4223692.572,4223692.572 +2653200.0,1313187.369,1713014.079,5002001.11068,1806726.5856200003,1806726.5856200003,1806726.5856200003,1563658.971,3241485.6344000003,4740423.75744,2352967.12182,3585473.7094400004,1366907.781,1366907.781,1366907.781,1921271.8595000003,1313187.369,1313187.369,1939155.6846999999,1768571.3745,2628839.4258,4585185.045,1301319.1842,1655033.4590999999,1605053.847,1605053.847,1605053.847,1605053.847,3948316.68946,3948316.68946 +2656800.0,2511141.612,2147088.666,6269498.90472,3882921.9046200006,3882921.9046200006,3882921.9046200006,3256224.755,4329103.02176,8029227.535360001,4222144.7366700005,6433744.360640001,2658558.717,2658558.717,2658558.717,3402199.1254999996,2511141.612,2511141.612,4513359.75311,3348698.4157499997,4977571.4723,8681810.7075,2463980.5627,3133720.24585,2896364.136,2896364.136,2896364.136,2896364.136,7550165.78008,7550165.78008 +2660400.0,2062610.424,1316654.433,3844630.9443599996,3037681.1869800007,3037681.1869800007,3037681.1869800007,2147833.744,3445629.51536,6539177.622400002,3220468.5502500003,4907380.648000001,2112510.9690000005,2112510.9690000005,2112510.9690000005,3176010.1555,2062610.424,2062610.424,2278458.039,2683969.5626999997,3989505.3746799994,6958439.607,1974871.43132,2511665.34386,2353605.66,2353605.66,2353605.66,2353605.66,6201582.008160001,6201582.008160001 +2664000.0,1640033.244,1236856.9500000002,3611622.294,2346222.54185,2346222.54185,2346222.54185,1941940.1014999999,2856012.2996799997,5490842.142080001,2560786.11663,3902150.27296,1624138.44,1624138.44,1624138.44,2316380.5140000004,1640033.244,1640033.244,1807614.4838699999,2075754.73365,3085442.83866,5381586.346500001,1527345.4583400001,1942496.4050700003,1838040.588,1838040.588,1838040.588,1838040.588,4931033.28696,4931033.28696 +2667600.0,1466809.947,1255447.9949999999,3665908.1454,1862574.11219,1862574.11219,1862574.11219,1803838.9915,2749570.43904,5117177.13728,2385600.6255900003,3635200.95328,1462268.571,1462268.571,1462268.571,2026793.363,1466809.947,1466809.947,1877498.97868,1940775.2199,2884806.6231599995,5031639.459,1428027.19884,1816182.2428199998,1662133.332,1662133.332,1662133.332,1662133.332,4410208.57398,4410208.57398 +2671200.0,1027067.8049999999,888605.4749999999,2594727.9869999997,1150270.17248,1150270.17248,1150270.17248,902317.5140000001,1432017.25456,3158153.73504,1428372.09396,2176567.00032,789782.247,789782.247,789782.247,992909.5085000001,1027067.8049999999,1027067.8049999999,1302198.3081899998,907360.4974499999,1348718.5665799999,2352416.1045,667638.09442,849110.1939099999,1058506.0350000001,1058506.0350000001,1058506.0350000001,1058506.0350000001,3088050.5337,3088050.5337 +2674800.0,199513.97099999996,157094.016,458714.52671999997,216866.19339,216866.19339,216866.19339,82398.83399999999,393707.33176,1163720.1651200003,412933.38765,629231.8288,272559.213,272559.213,272559.213,170346.981,199513.97099999996,199513.97099999996,334405.89454999997,138030.73919999998,205171.61727999998,357857.47199999995,101563.35871999999,129169.50656,242659.902,242659.902,242659.902,242659.902,599872.00614,599872.00614 +2678400.0,233671.08899999998,174151.926,508523.62392,195612.74700000003,195612.74700000003,195612.74700000003,78459.8815,512019.02744,1171928.30912,428456.90139,652886.7068800001,299194.062,299194.062,299194.062,165882.388,233671.08899999998,233671.08899999998,349593.21942999994,136101.6513,202304.18291999996,352856.133,100143.93108,127364.26134,243845.83199999997,243845.83199999997,243845.83199999997,243845.83199999997,702571.0742599999,702571.0742599999 +2682000.0,276171.789,253496.745,740210.4953999999,212096.91448,212096.91448,212096.91448,97148.03349999999,528894.10456,1215504.33024,489395.85702,745746.06784,343417.02,343417.02,343417.02,191324.749,276171.789,276171.789,391755.82276999997,183904.26299999998,273358.92919999996,476788.83,135317.2108,172098.06339999998,357615.24,357615.24,357615.24,357615.24,830356.51226,830356.51226 +2685600.0,342009.14099999995,289761.174,846102.62808,237459.33926,237459.33926,237459.33926,113691.30500000001,658413.32088,1245478.6540800002,574777.8922199999,875852.0262399999,485802.15599999996,485802.15599999996,485802.15599999996,324044.644,342009.14099999995,342009.14099999995,433559.58086999995,214127.98335,318284.06414,555146.6235,157555.89886000002,200381.49553000001,443984.061,443984.061,443984.061,443984.061,1028307.4839399998,1028307.4839399998 +2689200.0,437759.22299999994,323004.696,943173.71232,247591.05074,247591.05074,247591.05074,113466.80099999999,810262.2736000001,1348311.4854400002,702027.14988,1069755.65696,565063.44,565063.44,565063.44,362760.279,437759.22299999994,437759.22299999994,470014.12353999994,260796.72465,387653.40306,676139.6564999999,191894.87394,244054.21886999998,555833.3489999999,555833.3489999999,555833.3489999999,555833.3489999999,1316196.0638199998,1316196.0638199998 +2692800.0,586014.387,374861.811,1094596.48812,263565.88621,263565.88621,263565.88621,130742.98999999999,975008.32904,1673606.71936,887917.79013,1353017.58496,613078.317,613078.317,613078.317,398873.8495,586014.387,586014.387,498167.57302,349711.59915,519818.22886,906659.7015000001,257318.65814,327260.97797,676720.413,676720.413,676720.413,676720.413,1761949.9235799997,1761949.9235799997 +2696400.0,669954.846,500036.39999999997,1460106.288,316815.1085,316815.1085,316815.1085,154603.365,1210344.04712,2067957.01952,1053713.63559,1605658.8732800002,660807.414,660807.414,660807.414,530616.681,669954.846,669954.846,619198.5630999999,421634.1802499999,626725.3740999999,1093125.6524999999,310239.47089999996,394566.30694999994,738533.109,738533.109,738533.109,738533.109,2014330.90364,2014330.90364 +2700000.0,868131.435,572550.207,1671846.6044400001,530566.37216,530566.37216,530566.37216,251378.39999999997,1765846.0676799999,2251964.1164800003,1351685.9617800002,2059711.9417600003,745185.24,745185.24,745185.24,717953.7155,868131.435,868131.435,878483.0705299999,522581.4710999999,776775.4212399998,1354840.8509999998,384516.73675999994,489033.0309799999,877238.7420000001,877238.7420000001,877238.7420000001,877238.7420000001,2610181.8479,2610181.8479 +2703600.0,1603694.1210000003,940467.4470000002,2746164.9452400003,2078333.3876800002,2078333.3876800002,2078333.3876800002,1778595.8750000002,3985915.7137599993,5100369.33248,3639832.77378,5546411.84576,1744650.912,1744650.912,1744650.912,2474923.4965000004,1603694.1210000003,1603694.1210000003,3424264.85856,2160874.7783999997,3211966.9545599995,5602267.944,1589976.9974399998,2022151.95312,1940176.2510000002,1940176.2510000002,1940176.2510000002,1940176.2510000002,4821773.65714,4821773.65714 +2707200.0,1631792.8710000003,1514117.211,4421222.25612,2804546.7681,2804546.7681,2804546.7681,2727915.603,5140659.04224,4637229.79712,4122359.3516700002,6281690.440640001,1739420.0250000001,1739420.0250000001,1739420.0250000001,2689529.731,1631792.8710000003,1631792.8710000003,2835692.9314999995,2670361.22655,3969277.6750199995,6923158.7355,1964858.38398,2498930.62929,2083872.54,2083872.54,2083872.54,2083872.54,4906257.23214,4906257.23214 +2710800.0,2450955.111,2566304.73,7493609.8116,2468339.19222,2468339.19222,2468339.19222,3268848.863,5440599.199680001,8466845.637120001,4502725.50315,6861296.0048,2374255.113,2374255.113,2374255.113,2162367.7389999996,2450955.111,2450955.111,3719672.7209199993,2742092.1171,4075899.88764,7109127.711,2017638.15036,2566056.57378,2722340.721,2722340.721,2722340.721,2722340.721,7369205.03374,7369205.03374 +2714400.0,2060577.7830000003,1620886.605,4732988.8866,1184641.86786,1184641.86786,1184641.86786,1889811.3325,3274119.788,9269653.256320002,2417696.45376,3684108.88192,1965679.992,1965679.992,1965679.992,2011435.8775,2060577.7830000003,2060577.7830000003,2817176.3074,2812931.00325,4181196.2072999994,7292784.0825,2069761.5777,2632347.77835,1575376.9619999998,1575376.9619999998,1575376.9619999998,1575376.9619999998,6195470.53422,6195470.53422 +2718000.0,1210845.9209999999,1083787.8390000002,3164660.4898800002,781031.8726100001,781031.8726100001,781031.8726100001,1053096.9505,2359052.38968,6567023.37216,1698464.63619,2588136.5884800004,1111017.303,1111017.303,1111017.303,1075054.3614999999,1210845.9209999999,1210845.9209999999,1336291.4342699999,2143176.7563,3185660.2649199995,5556384.183,1576954.74908,2005590.1003400001,1046177.0190000001,1046177.0190000001,1046177.0190000001,1046177.0190000001,3640610.06914,3640610.06914 +2721600.0,1235632.6469999999,1595797.266,4659728.01672,983623.50152,983623.50152,983623.50152,1370422.0074999998,2608757.35184,4754885.203199999,2033437.9936499998,3098572.1807999997,1169583.606,1169583.606,1169583.606,1487824.2714999998,1235632.6469999999,1235632.6469999999,1538077.8654799997,1380545.2970999999,2052069.7996399999,3579191.511,1015808.63836,1291917.69778,1221239.1090000002,1221239.1090000002,1221239.1090000002,1221239.1090000002,3715135.49198,3715135.49198 +2725200.0,1042892.6429999999,1069848.7380000001,3123958.31496,792236.9285600001,792236.9285600001,792236.9285600001,1306489.2889999999,2002801.7959199997,3272916.116480001,1530527.0238299998,2332231.6553599997,955158.3029999998,955158.3029999998,955158.3029999998,1217768.2335,1042892.6429999999,1042892.6429999999,1206957.96572,1114789.0437,1657044.45508,2890193.817,820264.53092,1043222.33966,963229.605,963229.605,963229.605,963229.605,3135630.5466199997,3135630.5466199997 +2728800.0,887770.683,837205.971,2444641.43532,535119.94921,535119.94921,535119.94921,1067033.24,1793058.46456,2944564.6035200004,1353432.6878099998,2062373.61952,847005.897,847005.897,847005.897,861320.2744999999,887770.683,887770.683,1059102.20208,986384.89935,1466181.9985399998,2557294.1835,725784.4444599999,923061.42433,864007.335,864007.335,864007.335,864007.335,2669230.52022,2669230.52022 +2732400.0,1345610.295,1762197.7589999996,5145617.456279999,1845558.0242,1845558.0242,1845558.0242,1845864.8320000002,3070334.6290399996,4113222.2214400005,2324642.38377,3542312.2038400006,1244229.1199999999,1244229.1199999999,1244229.1199999999,1754724.545,1345610.295,1345610.295,2031859.8344199997,1758584.9736,2613995.44224,4559294.376,1293971.16576,1645688.16048,1643699.8260000001,1643699.8260000001,1643699.8260000001,1643699.8260000001,4045801.6203,4045801.6203 +2736000.0,1341340.299,1758921.4500000002,5136050.634000001,2213943.89513,2213943.89513,2213943.89513,1620086.6745,3425445.67528,4481910.0070400005,2617172.1114,3988071.7887999997,1404049.5210000002,1404049.5210000002,1404049.5210000002,2145419.255,1341340.299,1341340.299,2103672.3600099995,1813354.4681999998,2695405.9008799996,4701289.362,1334270.69512,1696941.58876,1576469.2920000004,1576469.2920000004,1576469.2920000004,1576469.2920000004,4032963.16566,4032963.16566 +2739600.0,1257232.497,1658895.816,4843975.78272,1758413.52038,1758413.52038,1758413.52038,1495435.2,3097866.5264800005,4486533.56096,2244109.3353,3419595.1776,1285937.5499999998,1285937.5499999998,1285937.5499999998,1827724.36,1257232.497,1257232.497,1859911.09343,1680542.6642999998,2497991.81212,4356962.4629999995,1236547.4418799998,1572655.97474,1536057.756,1536057.756,1536057.756,1536057.756,3780079.04098,3780079.04098 +2743200.0,2465308.743,2095818.33,6119789.5236,3827561.6465900005,3827561.6465900005,3827561.6465900005,3201521.2809999995,4220597.85992,7787856.6067200005,4145694.42924,6317248.65408,2597531.6730000004,2597531.6730000004,2597531.6730000004,3334588.8065,2465308.743,2465308.743,4465069.15205,3271592.7054000003,4862960.02136,8481907.014,2407245.99064,3061564.5317200003,2831874.654,2831874.654,2831874.654,2831874.654,7412361.620619999,7412361.620619999 +2746800.0,2012191.1609999998,1264576.437,3692563.19604,2968644.58121,2968644.58121,2968644.58121,2095101.358,3322653.89056,6240943.46176,3136487.05083,4779408.839360001,2036801.706,2036801.706,2036801.706,3023073.8545,2012191.1609999998,2012191.1609999998,2245620.3277299996,2596602.8088,3859641.70592,6731933.208000001,1910586.75808,2429907.31984,2290782.009,2290782.009,2290782.009,2290782.009,6049988.09074,6049988.09074 +2750400.0,1580170.146,1183064.34,3454547.8728,2283980.11325,2283980.11325,2283980.11325,1869028.252,2724536.6308,5201037.413760001,2443816.15674,3723910.3340800004,1540073.1539999999,1540073.1539999999,1540073.1539999999,2212602.5390000003,1580170.146,1580170.146,1738218.6225299998,1988473.0176000001,2955705.57184,5155300.416,1463123.35616,1860817.95968,1756885.6500000001,1756885.6500000001,1756885.6500000001,1756885.6500000001,4751044.90564,4751044.90564 +2754000.0,1400471.721,1197762.468,3497466.40656,1776371.23136,1776371.23136,1776371.23136,1723708.63,2591873.1000800002,4826397.33248,2275594.97508,3467573.29536,1380786.201,1380786.201,1380786.201,1920396.1315000001,1400471.721,1400471.721,1800426.17456,1841707.93905,2737551.0600199997,4774798.3605,1355133.24898,1723474.83679,1580565.6150000002,1580565.6150000002,1580565.6150000002,1580565.6150000002,4210751.64114,4210751.64114 +2757600.0,990213.246,853945.158,2493519.86136,1117211.9556400003,1117211.9556400003,1117211.9556400003,872077.6785,1370010.9494399999,3008671.83744,1360333.3716000002,2072888.9472000003,752222.1539999999,752222.1539999999,752222.1539999999,952765.338,990213.246,990213.246,1264238.5481699998,870754.4064,1294306.54976,2257511.424,640703.24224,814854.12352,1017090.441,1017090.441,1017090.441,1017090.441,2977241.1596399997,2977241.1596399997 +2761200.0,185087.43,148435.479,433431.59867999994,206682.04403000002,206682.04403000002,206682.04403000002,80058.9755,319736.07552,1086144.76416,382959.14180999994,583556.7875199999,252916.512,252916.512,252916.512,160586.2125,185087.43,185087.43,314849.50717999996,129002.40225,191751.71889999998,334450.6725,94920.2861,120720.76655,229698.62099999998,229698.62099999998,229698.62099999998,229698.62099999998,556496.2061999999,556496.2061999999 +2764800.0,213556.896,160766.68799999997,469438.7289599999,184653.6615,184653.6615,184653.6615,73317.93000000001,439880.10040000005,1088400.91712,396483.75038999994,604165.71488,256070.51400000002,256070.51400000002,256070.51400000002,156444.7465,213556.896,213556.896,323546.42008,124773.696,185466.08639999997,323487.36,91808.7936,116763.5328,229954.25400000002,229954.25400000002,229954.25400000002,229954.25400000002,642094.40064,642094.40064 +2768400.0,252055.542,206017.977,601572.49284,191135.67374000003,191135.67374000003,191135.67374000003,87937.3495,481736.53088000003,1120793.66912,453525.79439999996,691086.9247999999,290664.192,290664.192,290664.192,163218.59399999998,252055.542,252055.542,366893.13479,167265.48195000002,248626.71638000003,433651.24950000003,123074.35462000001,156527.45101000002,309418.38,309418.38,309418.38,309418.38,757846.99628,757846.99628 +2772000.0,314838.549,269914.72199999995,788150.98824,221900.03044,221900.03044,221900.03044,109572.904,578580.85376,1159927.7996800002,531865.6654500001,810461.9664,426513.8520000001,426513.8520000001,426513.8520000001,288178.226,314838.549,314838.549,404769.73952999996,198876.8619,295614.49596,515606.679,146334.08604,186109.45842,410927.184,410927.184,410927.184,410927.184,946614.57066,946614.57066 +2775600.0,396016.275,299870.007,875620.4204399999,236413.13355000003,236413.13355000003,236413.13355000003,109590.145,736094.91016,1236795.7177600001,636414.89877,969775.08384,521967.23399999994,521967.23399999994,521967.23399999994,339001.63849999994,396016.275,396016.275,442981.72633,239220.54,355582.136,620201.4,176019.064,223863.17200000002,501336.699,501336.699,501336.699,501336.699,1190688.9335,1190688.9335 +2779200.0,534441.0689999999,329424.852,961920.5678399999,250167.6375,250167.6375,250167.6375,122755.899,864394.01616,1535645.5776,813379.6410599999,1239435.64352,572852.5109999999,572852.5109999999,572852.5109999999,371398.4365,534441.0689999999,534441.0689999999,465937.37917999993,307322.41185000003,456810.10354,796761.8085,226128.58946000002,287593.07183000003,623255.292,623255.292,623255.292,623255.292,1606886.14746,1606886.14746 +2782800.0,620984.112,439229.412,1282549.88304,282601.10934,282601.10934,282601.10934,144621.456,1075768.71064,1814716.55488,964236.81333,1469313.23936,608612.583,608612.583,608612.583,450736.21949999995,620984.112,620984.112,557993.3236799999,380846.29814999993,566097.4604599999,987379.2914999999,280227.64654,356396.90617,687559.863,687559.863,687559.863,687559.863,1867092.23008,1867092.23008 +2786400.0,690168.597,498445.25999999995,1455460.1591999999,431200.9526000001,431200.9526000001,431200.9526000001,233806.454,1316413.56688,2052324.5811200002,1101775.18815,1678895.5248,655102.407,655102.407,655102.407,559006.4550000001,690168.597,690168.597,657964.7629099999,449412.9156,668016.2350399999,1165144.596,330679.13296,420561.71608,735995.928,735995.928,735995.928,735995.928,2075106.91498,2075106.91498 +2790000.0,1413167.619,1328566.335,3879413.6982,1268952.1702000003,1268952.1702000003,1268952.1702000003,1180913.888,2317579.03984,2718983.2748800004,1976980.6646100003,3012541.9651200003,988632.0179999999,988632.0179999999,988632.0179999999,1928148.0365,1413167.619,1413167.619,2749308.40028,900255.1815,1338157.0846,2333994.915,662409.9854,842461.0217,1889898.3839999996,1889898.3839999996,1889898.3839999996,1889898.3839999996,4248923.97446,4248923.97446 +2793600.0,2523658.485,2222086.362,6488492.17704,3281860.8207,3281860.8207,3281860.8207,2302822.375,3727677.47208,4455915.6851200005,3692260.81539,5626302.19488,1626161.553,1626161.553,1626161.553,2704055.977,2523658.485,2523658.485,4452248.78969,2027228.3099999998,3013312.2039999994,5255777.1,1491639.596,1897085.258,2698805.505,2698805.505,2698805.505,2698805.505,7587799.8449,7587799.8449 +2797200.0,2722573.923,2722804.653,7950589.586759999,3344799.9966700003,3344799.9966700003,3344799.9966700003,2859792.621,4612828.90976,10046747.997440001,3620488.6334400005,5516935.06048,2694960.906,2694960.906,2694960.906,2840887.343,2722573.923,2722573.923,2550808.15145,3676540.1445,5464881.8938,9531770.745000001,2705207.3162000002,3440515.3451,2448645.4979999997,2448645.4979999997,2448645.4979999997,2448645.4979999997,8185872.261819999,8185872.261819999 +2800800.0,2167931.898,2009543.433,5867866.82436,2813580.09647,2813580.09647,2813580.09647,3347303.6415,4094244.00536,8107258.17728,3989019.1645500003,6078505.3936,2945967.957,2945967.957,2945967.957,3492196.1445000004,2167931.898,2167931.898,2320075.3422599994,3920568.63795,5827610.66678,10164437.2095,2884764.08422,3668877.81181,2296135.3469999996,2296135.3469999996,2296135.3469999996,2296135.3469999996,6518248.5733199995,6518248.5733199995 +2804400.0,1726336.1490000002,1518662.535,4434494.6022,2496523.72244,2496523.72244,2496523.72244,2981515.4425000004,4214845.99136,8469781.84448,3569339.6482800003,5438993.74976,1684834.341,1684834.341,1684834.341,2800908.8729999997,1726336.1490000002,1726336.1490000002,1941316.4906199998,3344735.51505,4971680.93842,8671536.5205,2461064.65058,3130011.7535900003,2074953.708,2074953.708,2074953.708,2074953.708,5190517.35466,5190517.35466 +2808000.0,1503222.279,1264280.394,3691698.75048,2044302.2536199999,2044302.2536199999,2044302.2536199999,2364523.4864999996,3802021.916,5863818.3232,2816357.52951,4291592.425919999,1497147.384,1497147.384,1497147.384,2388510.929,1503222.279,1503222.279,1589180.15204,2154397.52835,3202339.0421399996,5585475.0735,1585211.02086,2016090.52653,1665533.8649999998,1665533.8649999998,1665533.8649999998,1665533.8649999998,4519688.31886,4519688.31886 +2811600.0,1191686.049,1016372.133,2967806.62836,1293816.71188,1293816.71188,1293816.71188,1529880.2435,2720128.31264,3621919.9910400007,2135523.07689,3254130.40288,1128137.541,1128137.541,1128137.541,1520827.6965,1191686.049,1191686.049,1202448.53781,1466127.33345,2179280.62898,3801070.8645,1078780.1120200001,1372005.57871,1289798.58,1289798.58,1289798.58,1289798.58,3583002.72066,3583002.72066 +2815200.0,1031314.0050000001,865895.346,2528414.41032,1002382.7338800001,1002382.7338800001,1002382.7338800001,1113740.061,2155137.4484,3304596.0979199996,1709465.4007199998,2604899.65824,988175.2619999999,988175.2619999999,988175.2619999999,1364777.7780000002,1031314.0050000001,1031314.0050000001,1048663.1168,1258366.2822,1870460.49848,3262431.1020000004,925909.0175200001,1177582.2739600001,1106046.348,1106046.348,1106046.348,1106046.348,3100817.4417,3100817.4417 +2818800.0,1032934.839,883638.798,2580225.29016,1010575.59504,1010575.59504,1010575.59504,1123296.6675,2045151.4435999999,3374969.70048,1690471.35327,2575956.3478400004,991286.6429999999,991286.6429999999,991286.6429999999,1341439.0605,1032934.839,1032934.839,1087049.97596,1248801.05295,1856242.55278,3237632.3595000003,918870.8982200001,1168631.1088100001,1117141.95,1117141.95,1117141.95,1117141.95,3105690.74926,3105690.74926 +2822400.0,1362222.9479999999,1222891.026,3570841.79592,1606448.4830900002,1606448.4830900002,1606448.4830900002,1515874.766,2687838.57304,4789034.24832,2302464.7142700003,3508517.6598400003,1373074.878,1373074.878,1373074.878,1788268.3385,1362222.9479999999,1362222.9479999999,1749397.27417,1752647.4184499998,2605169.7429799996,4543900.7145,1289602.2980199999,1640131.7817099998,1541550.975,1541550.975,1541550.975,1541550.975,4095750.3303199997,4095750.3303199997 +2826000.0,1382211.867,1240295.244,3621662.1124799997,1663794.8848400002,1663794.8848400002,1663794.8848400002,1554209.2510000002,2724875.9348,4857063.87456,2341730.8271700004,3568351.7366400003,1393505.577,1393505.577,1393505.577,1810783.9854999997,1382211.867,1382211.867,1786050.23415,1783718.81595,2651354.88198,4624456.1895,1312464.7090200002,1669208.47221,1564331.2259999998,1564331.2259999998,1564331.2259999998,1564331.2259999998,4155850.34678,4155850.34678 +2829600.0,1400639.673,1250020.878,3650060.96376,1729067.22087,1729067.22087,1729067.22087,1614597.6385000001,2774495.5473599997,4896112.194560001,2381477.83419,3628918.60448,1409959.8360000001,1409959.8360000001,1409959.8360000001,1835362.6515000002,1400639.673,1400639.673,1798348.0621599997,1809632.8705499999,2689874.04462,4691640.7754999995,1331532.33438,1693458.90849,1583868.4019999998,1583868.4019999998,1583868.4019999998,1583868.4019999998,4211256.61682,4211256.61682 +2833200.0,1406519.232,1255526.343,3666136.92156,1733873.9112200001,1733873.9112200001,1733873.9112200001,1622067.7200000002,2789175.386,4918977.2544,2392344.83187,3645477.83904,1417254.078,1417254.078,1417254.078,1841100.3905000002,1406519.232,1406519.232,1803840.9330499999,1816950.4307999997,2700751.0107199997,4710612.228,1336916.61328,1700306.6994399999,1589880.2640000004,1589880.2640000004,1589880.2640000004,1589880.2640000004,4228934.4908799995,4228934.4908799995 +2836800.0,1401427.506,1252929.303,3658553.56476,1714178.7538700001,1714178.7538700001,1714178.7538700001,1605484.342,2776674.76088,4906228.7993600005,2381791.25289,3629396.1948800003,1412676.6720000003,1412676.6720000003,1412676.6720000003,1832475.9425,1401427.506,1401427.506,1799030.7117899999,1808580.25935,2688309.4225399997,4688911.7835,1330757.82046,1692473.87233,1584210.966,1584210.966,1584210.966,1584210.966,4213625.36804,4213625.36804 +2840400.0,1352484.789,1128859.269,3296269.06548,1464088.75569,1464088.75569,1464088.75569,1230811.134,2336855.44904,3597258.68672,1986123.5310000002,3026473.952,1132704.957,1132704.957,1132704.957,1471831.6305000002,1352484.789,1352484.789,1730955.4359499998,1449979.3719,2155277.9799599997,3759205.779,1066898.40204,1356894.27642,1385710.1609999998,1385710.1609999998,1385710.1609999998,1385710.1609999998,4066470.93226,4066470.93226 +2844000.0,600836.208,421074.51,1229537.5692,783390.6696,783390.6696,783390.6696,499517.14400000003,1134074.10848,1464225.6019199998,930119.862,1417325.504,515872.581,515872.581,515872.581,635344.2829999999,600836.208,600836.208,981592.1882,324710.92485,482656.73274,841843.1385000001,238923.10026000004,303865.28523000004,750292.626,750292.626,750292.626,750292.626,1806514.19872,1806514.19872 +2847600.0,222026.127,190849.038,557279.19096,233883.01805,233883.01805,233883.01805,94070.452,480017.85392,1109416.77952,419011.26645,638493.3584,303174.444,303174.444,303174.444,165810.372,222026.127,222026.127,314277.00655,132177.93435,196471.89253999997,342683.53349999996,97256.85045999999,123692.43733,233053.19700000001,233053.19700000001,233053.19700000001,233053.19700000001,667558.55518,667558.55518 +2851200.0,248877.609,240000.52500000002,700801.533,227477.9573,227477.9573,227477.9573,94076.97950000002,520035.7648,1215796.8825600003,448212.97311,682991.19712,319098.696,319098.696,319098.696,166075.735,248877.609,248877.609,339842.05554,159817.49954999998,237555.88821999996,414341.66549999994,117594.11077999999,149557.61069,287117.16900000005,287117.16900000005,287117.16900000005,287117.16900000005,748292.0110599999,748292.0110599999 +2854800.0,288796.55999999994,269084.19,785725.8348,243297.38796000002,243297.38796000002,243297.38796000002,109481.6275,542779.09,1254071.776,517929.08202000003,789225.2678400001,448701.2429999999,448701.2429999999,448701.2429999999,189718.151,288796.55999999994,288796.55999999994,403000.47241999995,194763.03389999998,289499.62075999996,504941.19899999996,143307.12124,182259.72802,386675.11799999996,386675.11799999996,386675.11799999996,386675.11799999996,868314.9903999999,868314.9903999999 +2858400.0,362948.904,293466.31500000006,856921.6398000001,238844.76726000002,238844.76726000002,238844.76726000002,110839.1095,703735.84392,1268417.1539200002,606342.9903300001,923951.2233600001,509339.757,509339.757,509339.757,331502.941,362948.904,362948.904,418021.50116999994,226073.37329999998,336039.92772,586116.1529999999,166345.34628,211560.02094,471139.55999999994,471139.55999999994,471139.55999999994,471139.55999999994,1091266.37136,1091266.37136 +2862000.0,481062.97199999995,331352.238,967548.53496,252980.95174000002,252980.95174000002,252980.95174000002,118232.56899999999,845407.93088,1521176.592,742918.1327399999,1132065.72608,572099.7239999999,572099.7239999999,572099.7239999999,366906.12,481062.97199999995,481062.97199999995,476759.1047699999,310313.27204999997,461255.77722,804515.8905,228329.27178,290391.92619,573806.997,573806.997,573806.997,573806.997,1446396.0024799998,1446396.0024799998 +2865600.0,597485.7509999999,382766.976,1117679.5699200002,273706.54355,273706.54355,273706.54355,140952.51450000002,1040595.1323200001,1862246.05248,912291.1728000001,1390157.9776,628995.651,628995.651,628995.651,467962.36900000006,597485.7509999999,597485.7509999999,505454.30935999996,383146.5969,569516.66996,993343.029,281920.21204,358549.53142,680838.309,680838.309,680838.309,680838.309,1796440.4913399997,1796440.4913399997 +2869200.0,699596.466,520577.68200000003,1520086.8314399999,355141.51706,355141.51706,355141.51706,155964.5185,1265061.4891199998,2149037.22752,1078730.07963,1643779.16896,700585.071,700585.071,700585.071,541568.7829999999,699596.466,699596.466,623526.6684399999,428026.74074999994,636227.4022999998,1109698.9575,314943.13269999996,400548.48085,747197.16,747197.16,747197.16,747197.16,2103453.37444,2103453.37444 +2872800.0,766143.48,548419.116,1601383.81872,463529.19052000006,463529.19052000006,463529.19052000006,245810.5965,1449018.13696,2253683.73312,1214349.47613,1850437.2969600002,758437.5899999999,758437.5899999999,758437.5899999999,627853.6495,766143.48,766143.48,700406.1394199999,518385.44025000004,770538.3581000001,1343962.2525000002,381429.28690000006,485106.37495,808359.675,808359.675,808359.675,808359.675,2303538.0631999997,2303538.0631999997 +2876400.0,1528303.551,1394453.328,4071803.71776,1312491.10916,1312491.10916,1312491.10916,1233883.1505,2514536.7716,3017429.69344,2143367.93391,3266084.47072,1125766.5089999998,1125766.5089999998,1125766.5089999998,2015662.8554999998,1528303.551,1528303.551,2812978.7646999997,1027145.0997,1526768.76548,2662968.7770000002,755775.90052,961204.92046,2000337.618,2000337.618,2000337.618,2000337.618,4595099.34334,4595099.34334 +2880000.0,2587552.7909999997,2291330.0100000002,6690683.6292,3309298.54662,3309298.54662,3309298.54662,2362962.2345,3860198.4542399994,4660635.28832,3828329.07345,5833644.3024,1696536.33,1696536.33,1696536.33,2784007.541,2587552.7909999997,2587552.7909999997,4578422.179629999,2087202.4919999996,3102459.0127999997,5411265.72,1535768.7471999999,1953209.2455999998,2761073.328,2761073.328,2761073.328,2761073.328,7779908.724939999,7779908.724939999 +2883600.0,2545492.2750000004,2565373.509,7490890.64628,3125490.39099,3125490.39099,3125490.39099,2768358.3865,4294006.47888,9445580.941440001,3373927.61937,5141223.03904,2516666.337,2516666.337,2516666.337,2661308.8425000003,2545492.2750000004,2545492.2750000004,2071775.2298099997,3534274.0853999997,5253414.813359999,9162932.814,2600527.59864,3307382.41572,2168552.79,2168552.79,2168552.79,2168552.79,7653446.7735,7653446.7735 +2887200.0,1815804.9269999997,1731733.3710000003,5056661.443320001,2395748.89037,2395748.89037,2395748.89037,3148359.655,3602598.3902399996,6965984.20288,3478522.79082,5300606.15744,2644002.36,2644002.36,2644002.36,3083080.084,1815804.9269999997,1815804.9269999997,1791967.40957,3561243.3675,5293502.487,9232853.175,2620371.663,3332620.3365,1896654.2999999998,1896654.2999999998,1896654.2999999998,1896654.2999999998,5459520.147179998,5459520.147179998 +2890800.0,1387078.326,1155236.421,3373290.34932,1963650.5923100002,1963650.5923100002,1963650.5923100002,2722466.705,3591282.2981600002,7281765.562240001,2982516.0306900004,4544786.33248,1196721.546,1196721.546,1196721.546,2384570.706,1387078.326,1387078.326,1299421.02862,2846778.95115,4231508.46566,7380538.021500001,2094666.9813400002,2664022.7715700003,1670324.9070000001,1670324.9070000001,1670324.9070000001,1670324.9070000001,4170482.1668399996,4170482.1668399996 +2894400.0,1269068.9279999998,1047422.8559999999,3058474.73952,1686205.4363,1686205.4363,1686205.4363,2055554.4204999998,3226889.4888000004,4726008.671360001,2349196.9638900002,3579728.7068800004,1198887.309,1198887.309,1198887.309,1935299.0405,1269068.9279999998,1269068.9279999998,1125840.1728599998,1758744.0981,2614231.96804,4559706.921,1294088.2499600002,1645837.0695800001,1320520.806,1320520.806,1320520.806,1320520.806,3815667.2435199996,3815667.2435199996 +2898000.0,855133.398,689017.758,2011931.85336,723714.57543,723714.57543,723714.57543,1123030.0760000001,2065083.7782400001,2275308.49472,1513616.63838,2306463.44896,739411.308,739411.308,739411.308,1023259.755,855133.398,855133.398,659407.01255,974017.50345,1447798.85698,2525230.5645,716684.48402,911487.98471,865047.7320000001,865047.7320000001,865047.7320000001,865047.7320000001,2571101.08332,2571101.08332 +2901600.0,642012.7110000001,480770.658,1403850.32136,392847.04712000006,392847.04712000006,392847.04712000006,669008.2490000001,1320832.8584,1692152.93056,1032475.10646,1573295.40032,549756.522,549756.522,549756.522,772474.3145,642012.7110000001,642012.7110000001,455201.61791000003,671835.48525,998629.5361,1741795.7025000001,494338.2089000001,628705.3059500001,628131.645,628131.645,628131.645,628131.645,1930318.2177400002,1930318.2177400002 +2905200.0,821362.9770000002,673937.712,1967898.11904,668211.7982100002,668211.7982100002,668211.7982100002,877217.5894999999,1607209.96624,2473076.3328,1299567.4700400003,1980293.2876800005,742446.837,742446.837,742446.837,990766.1259999999,821362.9770000002,821362.9770000002,723894.1534499999,935488.926,1390529.2184,2425341.66,688335.0616,875432.8468,837759.753,837759.753,837759.753,837759.753,2469564.6841800003,2469564.6841800003 +2908800.0,1255755.159,1123410.2489999998,3280357.92708,1465727.64701,1465727.64701,1465727.64701,1392494.5019999999,2457281.3590399995,4359875.7056,2065153.11639,3146899.98688,1211231.6009999998,1211231.6009999998,1211231.6009999998,1610291.7565,1255755.159,1255755.159,1489429.4725699998,1604092.49505,2384354.77042,4158758.3205000004,1180295.21858,1501113.71759,1381325.19,1381325.19,1381325.19,1381325.19,3775637.1780599994,3775637.1780599994 +2912400.0,1357003.7370000002,1219339.632,3560471.7254399997,1624453.38165,1624453.38165,1624453.38165,1528899.0675,2685902.88752,4780440.84352,2280933.55476,3475708.27392,1334594.0010000002,1334594.0010000002,1334594.0010000002,1763012.6324999998,1357003.7370000002,1357003.7370000002,1734883.9457299996,1751159.96685,2602958.76554,4540044.3585,1288507.82746,1638739.82083,1510035.768,1510035.768,1510035.768,1510035.768,4080057.90258,4080057.90258 +2916000.0,1409372.0969999998,1261460.055,3683463.3606,1729280.7045800001,1729280.7045800001,1729280.7045800001,1627323.173,2813955.6389599997,4964967.710720001,2404005.92019,3663247.1164800003,1424593.3739999998,1424593.3739999998,1424593.3739999998,1842866.984,1409372.0969999998,1409372.0969999998,1796712.80165,1824861.4011,2712510.03324,4731122.151,1342737.52476,1707709.80498,1580069.817,1580069.817,1580069.817,1580069.817,4237512.104979999,4237512.104979999 +2919600.0,1439844.5219999999,1290836.259,3769241.87628,1765165.4021100004,1765165.4021100004,1765165.4021100004,1662808.2940000002,2886168.5471200002,5094599.3312,2458537.50891,3746342.87072,1464616.569,1464616.569,1464616.569,1889937.574,1439844.5219999999,1439844.5219999999,1831752.7617999997,1867360.5054,2775681.5413599997,4841305.014,1374008.47064,1747480.5717200001,1628608.5,1628608.5,1628608.5,1628608.5,4329132.52948,4329132.52948 +2923200.0,1431389.688,1284830.895,3751706.2134000002,1742340.1664900002,1742340.1664900002,1742340.1664900002,1642185.6465,2864877.6591199995,5065708.688,2441801.46714,3720840.3308800003,1455187.791,1455187.791,1455187.791,1875626.4415,1431389.688,1431389.688,1823524.3717599998,1853929.45395,2755717.36118,4806483.7695,1364125.86982,1734911.76061,1618744.977,1618744.977,1618744.977,1618744.977,4303711.66192,4303711.66192 +2926800.0,1345106.3340000003,1130453.241,3300923.46372,1445492.8972000002,1445492.8972000002,1445492.8972000002,1231208.734,2355489.8962399997,3614504.3353600004,1993948.93278,3038398.37376,1136660.1,1136660.1,1136660.1,1467619.1215000001,1345106.3340000003,1345106.3340000003,1722412.2987499998,1450574.7178499997,2156162.9139399994,3760749.2684999993,1067336.4590599998,1357451.40263,1384585.1099999999,1384585.1099999999,1384585.1099999999,1384585.1099999999,4044286.3775600004,4044286.3775600004 +2930400.0,593182.509,415964.76900000003,1214617.1254800002,759002.1510500001,759002.1510500001,759002.1510500001,491415.2039999999,1129097.81528,1444298.7840000002,921904.09962,1404806.24704,513952.68,513952.68,513952.68,620475.59,593182.509,593182.509,960641.9638399999,319920.46739999996,475536.10215999995,829423.434,235398.26984,299382.36332,736914.573,736914.573,736914.573,736914.573,1783502.0770599998,1783502.0770599998 +2934000.0,224807.92200000002,200908.90499999997,586654.0025999999,238424.47871000002,238424.47871000002,238424.47871000002,94563.28349999999,495584.28048,1130726.1408000002,425930.70513,649037.2649600001,311477.175,311477.175,311477.175,167481.125,224807.92200000002,224807.92200000002,318809.5561299999,133957.84455,199117.58622000003,347298.1155000001,98566.51278000002,125358.08169000002,235425.963,235425.963,235425.963,235425.963,675922.48548,675922.48548 +2937600.0,242239.95299999998,233856.579,682861.21068,222355.22738000003,222355.22738000003,222355.22738000003,91162.3125,508758.22839999996,1174298.9523200002,436227.57927,664727.73984,309997.59900000005,309997.59900000005,309997.59900000005,160394.136,242239.95299999998,242239.95299999998,328820.5466,154227.30074999997,229246.50629999995,399848.55749999994,113480.82869999998,144326.28884999998,279201.73500000004,279201.73500000004,279201.73500000004,279201.73500000004,728334.7920199999,728334.7920199999 +2941200.0,277509.078,259079.976,756513.52992,236133.10127000004,236133.10127000004,236133.10127000004,105093.471,522656.47063999996,1202650.27392,497404.05014999997,757949.0288,427202.5739999999,427202.5739999999,427202.5739999999,179541.29200000002,277509.078,277509.078,387437.85691000003,185316.05654999998,275457.44701999996,480449.0355,136356.01198,173419.22329,368023.824,368023.824,368023.824,368023.824,834377.29452,834377.29452 +2944800.0,354584.016,292299.243,853513.7895600001,239408.10003000003,239408.10003000003,239408.10003000003,110426.169,693275.8140799999,1260866.67328,596754.00582,909339.43744,507126.312,507126.312,507126.312,320670.798,354584.016,354584.016,417024.67677,223114.09499999997,331641.1979999999,578443.95,164167.90199999997,208790.721,462647.265,462647.265,462647.265,462647.265,1066115.94144,1066115.94144 +2948400.0,471723.537,326657.529,953839.9846799999,252986.18983000002,252986.18983000002,252986.18983000002,116975.63149999999,841402.94064,1500755.34336,728058.6184199998,1109422.65664,570513.999,570513.999,570513.999,361843.16000000003,471723.537,471723.537,471314.35793,301872.5091,448709.26044,782632.4310000001,222118.53756000003,282493.03938000003,564119.589,564119.589,564119.589,564119.589,1418315.43458,1418315.43458 +2952000.0,579586.74,371784.34500000003,1085610.2874,269704.43929,269704.43929,269704.43929,137503.70549999998,1013627.77016,1808855.1507200003,888084.77289,1353272.0348800002,617225.235,617225.235,617225.235,459005.5995,579586.74,579586.74,496013.0682,375730.07489999995,558492.6051599999,974115.009,276463.11684,351609.13181999995,662779.722,662779.722,662779.722,662779.722,1742624.1316,1742624.1316 +2955600.0,665501.0190000001,485008.9110000001,1416226.02012,328822.41029,328822.41029,328822.41029,150666.0785,1201977.3244,2017319.9871999999,1027391.06778,1565548.29376,666041.478,666041.478,666041.478,511635.516,665501.0190000001,665501.0190000001,584391.1808799999,406895.12864999997,604816.9566599999,1054913.2965,299394.44034,380773.46606999997,713056.0619999999,713056.0619999999,713056.0619999999,713056.0619999999,2000939.73046,2000939.73046 +2959200.0,843328.479,549214.785,1603707.1722,511162.2849300001,511162.2849300001,511162.2849300001,234012.99949999998,1711107.07608,2160963.21984,1322561.1149100002,2015331.2227200002,727664.4240000001,727664.4240000001,727664.4240000001,705902.652,843328.479,843328.479,842067.0030499999,505704.0033,751688.41972,1311084.453,372098.25428,473239.05494,839487.213,839487.213,839487.213,839487.213,2535607.62686,2535607.62686 +2962800.0,1550475.969,892164.2819999999,2605119.70344,2079150.11051,2079150.11051,2079150.11051,1776624.507,3944216.3325599995,5035132.9395200005,3593659.5387,5476052.6304,1689816.579,1689816.579,1689816.579,2466038.9250000003,1550475.969,1550475.969,3255939.5242399997,2121742.73475,3153800.3118999996,5500814.4975,1561183.5431,1985532.09005,1889261.1120000002,1889261.1120000002,1889261.1120000002,1889261.1120000002,4661764.4134599995,4661764.4134599995 +2966400.0,1540920.729,1454094.75,4245956.67,2781366.58778,2781366.58778,2781366.58778,2657742.843,5059434.74544,4385886.216960001,4018487.4051000006,6123409.379200001,1634527.809,1634527.809,1634527.809,2543547.4995,1540920.729,1540920.729,2760578.94697,2610515.45385,3880321.7363400003,6768003.028500001,1920823.7166600002,2442926.80743,1999080.4439999997,1999080.4439999997,1999080.4439999997,1999080.4439999997,4633034.9918599995,4633034.9918599995 +2970000.0,2196952.191,2321299.308,6778193.979359999,2145628.5177800003,2145628.5177800003,2145628.5177800003,3062124.8245,4975701.532079999,7513283.432320001,4034114.5609800005,6147222.18816,2014815.5040000002,2014815.5040000002,2014815.5040000002,1843510.0075,2196952.191,2196952.191,3195114.88569,2430466.58835,3612693.5461399993,6301209.6735,1788343.31686,2274436.63453,2421309.738,2421309.738,2421309.738,2421309.738,6605502.92094,6605502.92094 +2973600.0,1909656.7349999999,1544358.825,4509527.768999999,1087414.2768500003,1087414.2768500003,1087414.2768500003,1795632.3525,2972940.73296,8779085.19744,2197701.2849399997,3348878.14848,1841030.781,1841030.781,1841030.781,1861703.2349999999,1909656.7349999999,1909656.7349999999,3196173.0087299994,2698960.8159,4011788.6695599994,6997305.819,1985902.03244,2525694.19562,1378277.175,1378277.175,1378277.175,1378277.175,5741701.249899999,5741701.249899999 +2977200.0,1096656.0750000002,1089599.196,3181629.65232,677601.08878,677601.08878,677601.08878,914076.8770000001,2207125.57808,6169794.01728,1518974.78922,2314628.25024,932777.2289999998,932777.2289999998,932777.2289999998,973590.1175000002,1096656.0750000002,1096656.0750000002,1672632.07917,1919451.2651999998,2853110.2756799995,4976355.131999999,1412336.9803199999,1796227.23336,932070.105,932070.105,932070.105,932070.105,3297279.2655,3297279.2655 +2980800.0,1142837.424,1577214.54,4605466.456800001,919813.70371,919813.70371,919813.70371,1278870.0225,2468914.1776799997,4320963.01568,1877307.6978600002,2860659.3491200004,1028635.425,1028635.425,1028635.425,1369607.4385,1142837.424,1142837.424,1471430.7267399998,1237922.1413999998,1840071.92376,3209427.774,910866.16824,1158450.59652,1110209.538,1110209.538,1110209.538,1110209.538,3436131.18816,3436131.18816 +2984400.0,978846.7440000001,1055910.843,3083259.66156,745471.9977100001,745471.9977100001,745471.9977100001,1241682.5155,1897746.2578399999,3080496.27712,1436835.6546600002,2189463.85472,876021.186,876021.186,876021.186,1149009.1130000001,978846.7440000001,978846.7440000001,1139425.40218,1042569.3221999998,1549695.6344799998,2702957.502,767125.0815199999,975638.9459599999,893645.1510000001,893645.1510000001,893645.1510000001,893645.1510000001,2943065.87696,2943065.87696 +2988000.0,831109.6230000001,797035.848,2327344.67616,485086.5397400001,485086.5397400001,485086.5397400001,971696.6455000001,1698989.6892799998,2748853.0636800006,1260210.25368,1920320.3865600002,776300.0430000001,776300.0430000001,776300.0430000001,698605.1765,831109.6230000001,831109.6230000001,986586.6901799998,910493.42355,1353375.40982,2360538.5055,669943.30918,852041.9938899999,792439.3859999999,792439.3859999999,792439.3859999999,792439.3859999999,2498869.59982,2498869.59982 +2991600.0,1025135.124,1423864.545,4157684.4714,1449144.48492,1449144.48492,1449144.48492,1463241.6715,2459505.83256,2836304.89344,1772547.5191199998,2701024.7910399996,877671.3,877671.3,877671.3,1427345.1570000001,1025135.124,1025135.124,1422738.7167500001,1314516.70935,1953923.6025399999,3408006.2835,967224.64046,1230127.98233,1131389.268,1131389.268,1131389.268,1131389.268,3082239.6061599995,3082239.6061599995 +2995200.0,1287194.034,1646720.634,4808424.25128,2120486.52013,2120486.52013,2120486.52013,1554585.4835,3228168.2035199995,4320551.13152,2483814.28029,3784859.8556800005,1355055.717,1355055.717,1355055.717,1969704.2750000001,1287194.034,1287194.034,2064739.17624,1746784.7316,2596455.32944,4528701.156,1285288.51856,1634645.46488,1495292.961,1495292.961,1495292.961,1495292.961,3870163.3955599996,3870163.3955599996 +2998800.0,1206029.547,1630117.9799999997,4759944.501599999,1547454.6877900003,1547454.6877900003,1547454.6877900003,1425634.798,3027341.73456,4338716.07488,2145101.94738,3268726.77696,1232342.7719999999,1232342.7719999999,1232342.7719999999,1700696.8895,1206029.547,1206029.547,1815509.23788,1592753.9165999999,2367500.8834399995,4129362.006,1171952.26456,1490503.04788,1453321.755,1453321.755,1453321.755,1453321.755,3626128.83798,3626128.83798 +3002400.0,2436407.3310000002,2057788.7909999997,6008743.269719999,3788565.2264900003,3788565.2264900003,3788565.2264900003,3170198.521,4159582.4509599996,7677820.18176,4099413.7411499997,6246725.7008,2560661.121,2560661.121,2560661.121,3282475.5285,2436407.3310000002,2436407.3310000002,4431428.60368,3226165.7750999997,4795436.53484,8364133.491,2373820.74316,3019053.89818,2787027.108,2787027.108,2787027.108,2787027.108,7325464.70854,7325464.70854 +3006000.0,1955755.836,1211284.644,3536951.16048,2835326.2285700003,2835326.2285700003,2835326.2285700003,2054491.5545,3220039.5133599997,5943161.321599999,3067947.55407,4674967.70144,1975677.294,1975677.294,1975677.294,2819247.69,1955755.836,1955755.836,1895868.1185599999,2499700.5324,3715604.24816,6480705.084000001,1839285.82384,2339225.9303200003,2232387.039,2232387.039,2232387.039,2232387.039,5880305.88024,5880305.88024 +3009600.0,1521217.974,1136237.8530000001,3317814.53076,2009603.01685,2009603.01685,2009603.01685,1813003.5665,2613836.7152,4945270.591360001,2315596.55208,3528528.0793600003,1454338.917,1454338.917,1454338.917,2025299.2095,1521217.974,1521217.974,1651518.30038,1846288.34325,2744359.4632999995,4786673.4825,1358503.5217,1727761.19035,1635934.2029999997,1635934.2029999997,1635934.2029999997,1635934.2029999997,4573795.375159999,4573795.375159999 +3013200.0,1346143.512,1154905.668,3372324.5505600004,1643137.0544600002,1643137.0544600002,1643137.0544600002,1617891.5969999998,2496759.9517599996,4647570.899840001,2197842.11325,3349092.744,1324758.72,1324758.72,1324758.72,1822966.1905000003,1346143.512,1346143.512,1720677.78389,1759893.42735,2615940.3537399997,4562686.6635,1294933.92926,1646912.61473,1515026.0909999998,1515026.0909999998,1515026.0909999998,1515026.0909999998,4047404.82608,4047404.82608 +3016800.0,947028.8579999999,816015.2549999999,2382764.5445999997,1055847.0963700002,1055847.0963700002,1055847.0963700002,831482.5329999999,1310519.01544,2870525.4963200004,1298295.55716,1978355.1347200004,718001.247,718001.247,718001.247,894829.691,947028.8579999999,947028.8579999999,1196802.00185,824678.47575,1225818.3763,2138055.3075,606800.4587,771736.15385,965521.575,965521.575,965521.575,965521.575,2847400.0997199994,2847400.0997199994 +3020400.0,177308.77500000002,141671.184,413679.85728,199330.25651000004,199330.25651000004,199330.25651000004,77920.3915,304433.66368,1023396.3008000001,366758.01288000005,558869.35296,239812.08000000002,239812.08000000002,239812.08000000002,151955.741,177308.77500000002,177308.77500000002,300019.69516999996,122528.1006,182128.18904,317665.44600000005,90156.47896000001,114662.09908000001,219314.322,219314.322,219314.322,219314.322,533108.3835,533108.3835 +3024000.0,198378.69,149616.477,436880.11283999996,175860.54046000002,175860.54046000002,175860.54046000002,67949.0945,424585.3389600001,1018286.4544000002,377490.32118,575223.3465600001,241553.19899999996,241553.19899999996,241553.19899999996,147191.96099999998,198378.69,198378.69,301638.73155,117612.44955,174821.46821999998,304921.1655,86539.53078,110062.02069,217780.539,217780.539,217780.539,217780.539,596458.5946,596458.5946 +3027600.0,231730.734,189455.181,553209.12852,178876.99247,178876.99247,178876.99247,77852.25,460901.29136,1042185.00544,424303.7148000001,646558.0416000001,278780.454,278780.454,278780.454,150002.82499999998,231730.734,231730.734,342432.42331999994,147563.37404999998,219341.11401999998,382571.7105,108577.49497999999,138090.16978999999,270321.627,270321.627,270321.627,270321.627,696737.0735599999,696737.0735599999 +3031200.0,282746.241,248845.245,726628.1153999999,209249.96576,209249.96576,209249.96576,102615.8875,508544.56032000005,1075006.53824,481538.83806000004,733773.4675200001,363317.046,363317.046,363317.046,235362.4455,282746.241,282746.241,372933.26343,180472.8519,268258.41196,467892.579,132792.37004,168886.94042000003,365884.473,365884.473,365884.473,365884.473,850123.6979399999,850123.6979399999 +3034800.0,345763.854,274830.83400000003,802506.0352800001,221255.89596000002,221255.89596000002,221255.89596000002,102555.103,646286.38568,1118460.7577600002,560134.21611,853537.8531200001,466555.599,466555.599,466555.599,304133.1965,345763.854,345763.854,404254.19411,210145.86945000003,312364.97138,544822.6245,154625.84962000002,196655.02351000003,434859.67499999993,434859.67499999993,434859.67499999993,434859.67499999993,1039596.6543599999,1039596.6543599999 +3038400.0,456508.52100000007,298793.352,872476.5878399999,231392.81297,231392.81297,231392.81297,108937.514,771303.28904,1319418.02432,705852.44226,1075584.6739200002,518271.84900000005,518271.84900000005,518271.84900000005,329365.904,456508.52100000007,456508.52100000007,429856.50617,253593.55664999998,376946.47186,657464.7765,186594.76514,237313.47647,540141.831,540141.831,540141.831,540141.831,1372568.95314,1372568.95314 +3042000.0,550357.344,339010.125,989909.565,251486.08958000003,251486.08958000003,251486.08958000003,131314.6415,919812.5793600001,1525561.73248,835978.9792200001,1273872.7302400002,549968.8019999999,549968.8019999999,549968.8019999999,372071.32200000004,550357.344,550357.344,458550.99406999996,330747.95205,491630.28922000004,857494.6905,243365.15978000002,309514.75019000005,617288.2949999999,617288.2949999999,617288.2949999999,617288.2949999999,1654741.08096,1654741.08096 +3045600.0,732284.508,461669.88899999997,1348076.07588,426060.44899,426060.44899,426060.44899,216950.3525,1500970.5725599998,1832444.0352000003,1156158.5200200002,1761765.3638400002,604160.61,604160.61,604160.61,607277.398,732284.508,732284.508,776697.1982899999,416156.85495,618583.76958,1078925.1795,306209.24142000003,389440.61241000006,737127.957,737127.957,737127.957,737127.957,2201735.42072,2201735.42072 +3049200.0,1433809.095,816137.2110000001,2383120.65612,1952936.7202400002,1952936.7202400002,1952936.7202400002,1624110.4460000002,3778703.8471999997,4814327.7024,3411807.9135,5198945.392,1510537.041,1510537.041,1510537.041,2300157.2125,1433809.095,1433809.095,3053033.5943899998,1897724.87415,2820815.73886,4920027.4515,1396350.64814,1775895.6229700001,1764987.366,1764987.366,1764987.366,1764987.366,4310986.0123,4310986.0123 +3052800.0,1405236.489,1383188.4479999999,4038910.26816,2632372.27198,2632372.27198,2632372.27198,2465112.7060000002,4857960.60296,3998354.782720001,3818009.55627,5817919.323840001,1522904.571,1522904.571,1522904.571,2240657.447,1405236.489,1405236.489,2627237.6084499997,2465761.4919,3665156.5879599997,6392714.979,1814313.3940400002,2307465.69242,1881477.375,1881477.375,1881477.375,1881477.375,4225077.71026,4225077.71026 +3056400.0,2129517.633,2248894.278,6566771.2917599995,1859722.44634,1859722.44634,1859722.44634,2815022.9274999998,4729730.7944,7260679.4912,3830823.94716,5837446.01472,1941814.8329999996,1941814.8329999996,1941814.8329999996,1719662.6545,2129517.633,2129517.633,3013766.8034499995,2204832.7574999994,3277306.962999999,5716233.074999999,1622321.3869999996,2063287.9384999997,2343938.8319999995,2343938.8319999995,2343938.8319999995,2343938.8319999995,6402749.68322,6402749.68322 +3060000.0,1811692.1520000002,1448022.264,4228225.01088,1000203.4971500001,1000203.4971500001,1000203.4971500001,1427701.0685,2750989.19112,8185000.586240001,1964994.44484,2994277.24928,1733940.405,1733940.405,1733940.405,1774972.8639999998,1811692.1520000002,1811692.1520000002,2447752.22276,2552217.9353999994,3793667.1533599994,6616861.313999999,1877928.2586399997,2388371.8457199996,1267235.8020000001,1267235.8020000001,1267235.8020000001,1267235.8020000001,5447154.40368,5447154.40368 +3063600.0,1043404.665,958331.976,2798329.36992,624428.5330800001,624428.5330800001,624428.5330800001,865472.321,2019205.40984,5664455.94496,1400013.3382199998,2133353.65824,873277.0380000001,873277.0380000001,873277.0380000001,894244.491,1043404.665,1043404.665,1141543.89934,1735221.1837499999,2579267.0434999997,4498721.587499999,1276780.0315,1623824.26825,878415.4349999998,878415.4349999998,878415.4349999998,878415.4349999998,3137170.0261,3137170.0261 +3067200.0,1096519.5899999999,1494738.5639999998,4364636.60688,879748.7661600001,879748.7661600001,879748.7661600001,1237671.8375000001,2246647.39264,3709966.2387200003,1775640.4482599997,2705737.8259199997,966801.396,966801.396,966801.396,1312236.7334999999,1096519.5899999999,1096519.5899999999,1359100.0117499998,1164487.73985,1730917.5787399998,3019042.2885,856832.95426,1089730.50223,1059205.545,1059205.545,1059205.545,1059205.545,3296868.9005999994,3296868.9005999994 +3070800.0,888379.479,954393.3030000001,2786828.4447600003,686719.19118,686719.19118,686719.19118,1159684.0885,1722073.8193599998,2764189.34848,1309963.07421,1996134.20832,783126.9870000001,783126.9870000001,783126.9870000001,1029184.6109999999,888379.479,888379.479,1021380.1426399999,942404.30505,1400808.37442,2443270.4205,693423.41458,881904.27559,808843.47,808843.47,808843.47,808843.47,2671060.96686,2671060.96686 +3074400.0,746713.2509999999,647709.753,1891312.4787599999,420889.16397,420889.16397,420889.16397,858499.3445,1520452.04752,2424164.99904,1126031.29359,1715857.20928,682742.748,682742.748,682742.748,617326.2374999999,746713.2509999999,746713.2509999999,863563.2105099999,805496.7199499999,1197306.2355799999,2088324.8295,592686.47542,753785.81941,705296.874,705296.874,705296.874,705296.874,2245117.84134,2245117.84134 +3078000.0,940127.547,1269267.318,3706260.5685599996,1375462.9631600003,1375462.9631600003,1375462.9631600003,1368540.9955,2244454.7295999997,2492907.8636800004,1622165.4981,2471871.2352,777021.288,777021.288,777021.288,1345372.6685,940127.547,940127.547,1292077.6497199999,1204688.9268,1790673.41712,3123267.5880000005,886413.0868800001,1127350.8722400002,1007937.48,1007937.48,1007937.48,1007937.48,2826650.1579799997,2826650.1579799997 +3081600.0,1197843.7619999999,1554894.006,4540290.49752,2011182.08731,2011182.08731,2011182.08731,1456023.7545,2987138.67232,3959868.1209600004,2297271.23745,3500603.7904000003,1248477.372,1248477.372,1248477.372,1858944.577,1197843.7619999999,1197843.7619999999,1951103.4793899998,1639250.9054999999,2436614.9261999996,4249909.755,1206164.8638,1534015.0449,1394304.885,1394304.885,1394304.885,1394304.885,3601516.9110799995,3601516.9110799995 +3085200.0,1120013.892,1551227.1030000001,4529583.14076,1411605.90219,1411605.90219,1411605.90219,1326368.281,2826823.22632,3995975.4899200005,1988315.30772,3029813.80224,1133141.694,1133141.694,1133141.694,1580782.406,1120013.892,1120013.892,1685829.6176800001,1472531.29875,2188799.6095000003,3817673.7375000003,1083492.1655000001,1377998.42525,1357772.532,1357772.532,1357772.532,1357772.532,3367508.4352800003,3367508.4352800003 +3088800.0,2371166.361,1986229.014,5799788.72088,3721277.0113200005,3721277.0113200005,3721277.0113200005,3091712.722,3996915.4004799994,7359609.982080001,3986538.2109,6074724.8928000005,2483203.266,2483203.266,2483203.266,3187005.9165000003,2371166.361,2371166.361,4324341.73145,3117681.8271000003,4634183.85164,8082878.811000001,2293997.9863600004,2917534.35178,2690818.251,2690818.251,2690818.251,2690818.251,7129306.85874,7129306.85874 +3092400.0,1870450.719,1130563.296,3301244.82432,2687421.25234,2687421.25234,2687421.25234,1968773.023,3037779.7651199996,5501147.60192,2909271.2879999997,4433175.296,1872739.7880000002,1872739.7880000002,1872739.7880000002,2619927.7054999997,1870450.719,1870450.719,1761344.2992599998,2330185.96395,3463634.44518,6041222.8695,1714556.58582,2180593.77861,2131831.1969999997,2131831.1969999997,2131831.1969999997,2131831.1969999997,5623821.8284599995,5623821.8284599995 +3096000.0,1456666.764,1085301.348,3169079.9361599996,1813430.06284,1813430.06284,1813430.06284,1734044.8055,2480289.26544,4657760.24832,2191544.71095,3339496.7024000003,1384202.544,1384202.544,1384202.544,1895404.798,1456666.764,1456666.764,1571977.81715,1752319.71675,2604682.6407,4543051.1175,1289361.1742999998,1639825.11765,1526395.977,1526395.977,1526395.977,1526395.977,4379711.40376,4379711.40376 +3099600.0,1294426.308,1112995.6979999999,3249947.43816,1576577.2268400001,1576577.2268400001,1576577.2268400001,1533732.4379999998,2389220.58576,4453862.52032,2109729.36027,3214825.69184,1279052.967,1279052.967,1279052.967,1741840.7125000001,1294426.308,1294426.308,1645677.84927,1685584.27035,2505485.75494,4370033.2935,1240257.06806,1577373.92213,1458499.731,1458499.731,1458499.731,1458499.731,3891908.43272,3891908.43272 +3103200.0,913621.05,790019.868,2306858.01456,1022755.0456200001,1022755.0456200001,1022755.0456200001,808585.505,1266590.37776,2764093.03872,1235796.1492799998,1883117.9417599998,691946.2409999999,691946.2409999999,691946.2409999999,868042.6335,913621.05,913621.05,1158088.62065,795552.4835999999,1182524.92624,2062543.476,585369.48176,744479.97848,932752.8,932752.8,932752.8,932752.8,2746953.9570000004,2746953.9570000004 +3106800.0,170614.56,139243.209,406590.17027999996,195255.95859000002,195255.95859000002,195255.95859000002,76919.661,278878.32008000003,1007739.5782400002,347745.97851,529898.6339199999,236141.649,236141.649,236141.649,149647.9915,170614.56,170614.56,294478.13746,119287.30274999999,177311.00309999997,309263.3775,87771.8919,111629.35244999999,211615.776,211615.776,211615.776,211615.776,512981.1104,512981.1104 +3110400.0,182553.465,146930.757,429037.81044000003,172936.04603000003,172936.04603000003,172936.04603000003,65820.37,354704.84504,1010990.6310400001,363970.57641,554621.83072,236362.149,236362.149,236362.149,146205.2165,182553.465,182553.465,297649.87069999997,115401.35205,171534.84921999997,299188.6905,84912.59978,107992.87019,213951.897,213951.897,213951.897,213951.897,548877.4181,548877.4181 +3114000.0,224057.51700000002,177701.346,518887.93032,173172.10603,173172.10603,173172.10603,75361.3875,449882.66552,1017645.54624,409098.97140000004,623388.9088000001,249804.744,249804.744,249804.744,146042.3895,224057.51700000002,224057.51700000002,336353.46836,141875.19359999997,210886.09023999996,367824.57599999994,104392.11776,132767.15647999998,253885.059,253885.059,253885.059,253885.059,673666.26778,673666.26778 +3117600.0,269768.97,219419.70900000003,640705.5502800001,191822.97464,191822.97464,191822.97464,99697.3845,483113.88904,1039917.65696,462228.39180000004,704348.0256,345114.552,345114.552,345114.552,220932.88350000003,269768.97,269768.97,361425.77614,174505.22145,259388.00818,452420.94450000004,128401.37282,163302.41711,350876.60399999993,350876.60399999993,350876.60399999993,350876.60399999993,811105.3697999999,811105.3697999999 +3121200.0,327030.246,265047.132,773937.62544,213437.51957,213437.51957,213437.51957,100234.841,613705.4811999999,1077313.12,536471.60658,817480.54336,448152.321,448152.321,448152.321,296107.36399999994,327030.246,327030.246,392679.03974,202110.5682,300421.14088,523990.362,148713.45512,189135.56876000002,412773.00899999996,412773.00899999996,412773.00899999996,412773.00899999996,983270.9396399999,983270.9396399999 +3124800.0,427504.6919999999,286407.543,836310.02556,220832.05837,220832.05837,220832.05837,103123.94750000001,733617.3485599998,1223199.5584,668051.6402700001,1017983.4518400001,497492.64600000007,497492.64600000007,497492.64600000007,315215.621,427504.6919999999,427504.6919999999,416061.8013499999,235660.65885,350290.65833999997,610972.0785000001,173399.69466,220531.82643000002,513173.13300000003,513173.13300000003,513173.13300000003,513173.13300000003,1285364.1072799999,1285364.1072799999 +3128400.0,525472.569,312967.734,913865.78328,240906.81241000004,240906.81241000004,240906.81241000004,125302.53749999999,852212.7631199999,1468437.0214400003,792460.4860200001,1207558.83584,528494.298,528494.298,528494.298,345448.474,525472.569,525472.569,438627.58446,309918.85875,460669.5135,803493.3375,228039.0615,290022.83325,590093.553,590093.553,590093.553,590093.553,1579920.85746,1579920.85746 +3132000.0,710921.043,445313.595,1300315.6974,408680.64138,408680.64138,408680.64138,213855.131,1453827.7332000001,1751565.82528,1111632.26664,1693915.8348800002,588924.6810000001,588924.6810000001,588924.6810000001,579048.274,710921.043,710921.043,734066.6059999998,402985.50974999997,599005.6218999999,1044777.2475,296517.7331,377114.83505,718006.797,718006.797,718006.797,718006.797,2137502.6026199996,2137502.6026199996 +3135600.0,1415505.066,803243.5380000001,2345471.13096,1935829.92416,1935829.92416,1935829.92416,1613558.5515,3749438.64944,4772285.130240001,3375295.70238,5143307.73696,1486564.6860000002,1486564.6860000002,1486564.6860000002,2273639.5885,1415505.066,1415505.066,3009101.1755999997,1872020.5326,2782608.29784,4853386.566000001,1377437.3301600001,1751841.43668,1744036.3860000002,1744036.3860000002,1744036.3860000002,1744036.3860000002,4255951.89844,4255951.89844 +3139200.0,1380214.869,1368134.82,3994953.6744,2600703.45139,2600703.45139,2600703.45139,2408295.3685,4808614.75792,3948974.14016,3772007.47224,5747820.91008,1512477.288,1512477.288,1512477.288,2209820.949,1380214.869,1380214.869,2583756.3724700003,2443800.6747,3632513.5954799997,6335779.527000001,1798154.57052,2286914.7054600003,1858017.264,1858017.264,1858017.264,1858017.264,4149846.0394599997,4149846.0394599997 +3142800.0,2107445.523,2229774.384,6510941.20128,1788827.41345,1788827.41345,1788827.41345,2765257.446,4669813.2996000005,7191665.54048,3770652.3481199997,5745755.95904,1923047.31,1923047.31,1923047.31,1685823.454,2107445.523,2107445.523,2885604.02156,2139245.7290999996,3179817.108439999,5546192.630999999,1574062.2895599997,2001911.4353799997,2319726.624,2319726.624,2319726.624,2319726.624,6336386.20582,6336386.20582 +3146400.0,1768647.3480000002,1403830.9139999999,4099186.26888,963324.48641,963324.48641,963324.48641,1341112.808,2670192.61592,8004699.326080002,1882544.05542,2868638.5606400003,1692019.332,1692019.332,1692019.332,1734041.036,1768647.3480000002,1768647.3480000002,2309331.10577,2504180.3102999995,3722263.0785199995,6492319.322999999,1842582.0554799999,2343418.1175399995,1219993.062,1219993.062,1219993.062,1219993.062,5317733.02632,5317733.02632 +3150000.0,994024.1190000001,904527.5160000001,2641220.3467200003,579397.91063,579397.91063,579397.91063,812134.5155,1885502.58688,5333888.741760001,1308767.21451,1994311.9459200003,814855.074,814855.074,814855.074,837360.0515,994024.1190000001,994024.1190000001,1061387.81788,1634122.1151,2428991.39084,4236612.891000001,1202391.08716,1529215.5101800002,823357.158,823357.158,823357.158,823357.158,2988699.18446,2988699.18446 +3153600.0,1045507.824,1445214.237,4220025.57204,842474.49737,842474.49737,842474.49737,1188664.7149999999,2136633.11056,3488458.5779199996,1691871.08727,2578089.2758400002,914204.919,914204.919,914204.919,1262430.855,1045507.824,1045507.824,1280656.98293,1100562.8922,1635898.42248,2853311.202,809796.89352,1029909.47196,1005620.5409999999,1005620.5409999999,1005620.5409999999,1005620.5409999999,3143493.52416,3143493.52416 +3157200.0,833003.2890000001,907970.2139999999,2651273.0248799995,644921.8092900001,644921.8092900001,644921.8092900001,1103334.0885,1615775.4767200002,2562528.3200000003,1225144.5309600001,1866886.9043200002,727745.172,727745.172,727745.172,970546.5140000001,833003.2890000001,833003.2890000001,938056.8781999999,875971.92825,1302061.9773,2271038.3325,644542.3077,819736.6933500001,754447.971,754447.971,754447.971,754447.971,2504563.22226,2504563.22226 +3160800.0,689515.848,583286.235,1703195.8062,375242.20107000007,375242.20107000007,375242.20107000007,782092.9515000001,1397103.28176,2196676.1344000003,1027260.5032200001,1565349.3382400002,622524.45,622524.45,622524.45,561079.6275000001,689515.848,689515.848,771137.52131,729962.23545,1085030.28578,1892494.6845,537108.0152200001,683100.4623100001,644081.556,644081.556,644081.556,644081.556,2073144.31632,2073144.31632 +3164400.0,875994.111,1180104.819,3445906.07148,1317063.6809,1317063.6809,1317063.6809,1295427.707,2092145.6724799997,2237202.89408,1514851.8819,2308345.7248,710665.596,710665.596,710665.596,1280975.2305,875994.111,875994.111,1188162.03454,1122522.8305499998,1668540.1086199998,2910244.3755,825955.0703799999,1050459.63649,923875.095,923875.095,923875.095,923875.095,2633822.29374,2633822.29374 +3168000.0,1133506.569,1493953.674,4362344.72808,1925058.3761200001,1925058.3761200001,1925058.3761200001,1392027.6789999998,2838274.94072,3724906.2630400006,2166793.79133,3301781.01536,1177804.614,1177804.614,1177804.614,1785393.4665,1133506.569,1133506.569,1871262.0729399996,1566820.8634499998,2328953.4809799995,4062128.1645,1152870.66002,1466234.83271,1323935.331,1323935.331,1323935.331,1323935.331,3408076.4174599997,3408076.4174599997 +3171600.0,1058809.527,1494816.8609999998,4364865.234119999,1338832.89397,1338832.89397,1338832.89397,1253339.5105,2688632.0071199997,3753413.7017600005,1875969.2082600002,2858619.74592,1065240.189,1065240.189,1065240.189,1500456.818,1058809.527,1058809.527,1594107.4005999998,1388888.0581500002,2064470.64446,3600820.8915000004,1021947.2625400001,1299724.8741700002,1289534.148,1289534.148,1289534.148,1289534.148,3183487.31118,3183487.31118 +3175200.0,2327013.5760000004,1937023.2389999998,5656107.857879999,3673716.0861500003,3673716.0861500003,3673716.0861500003,3038425.1905,3878484.84912,7150194.962560001,3910062.61359,5958190.6492800005,2431923.642,2431923.642,2431923.642,3125757.6385000004,2327013.5760000004,2327013.5760000004,4224544.510419999,3044756.8021500004,4525786.654060001,7893813.931500001,2240339.5729400003,2849290.93337,2626133.37,2626133.37,2626133.37,2626133.37,6996554.15184,6996554.15184 +3178800.0,1805749.743,1071449.82,3128633.4743999997,2578906.0739200003,2578906.0739200003,2578906.0739200003,1903338.6084999999,2910710.96024,5176874.18496,2787191.11566,4247148.36672,1798558.386,1798558.386,1798558.386,2472495.991,1805749.743,1805749.743,1678126.75862,2211389.23365,3287052.6386599992,5733231.346499999,1627145.6583399998,2069423.5050699997,2047169.2230000002,2047169.2230000002,2047169.2230000002,2047169.2230000002,5429287.56062,5429287.56062 +3182400.0,1364523.105,1007676.2519999999,2942414.6558399997,1657759.64464,1657759.64464,1657759.64464,1622318.4775,2285401.5684,4255642.6944,2025644.39742,3086696.22464,1278467.916,1278467.916,1278467.916,1733959.43,1364523.105,1364523.105,1468415.8476,1617827.17905,2404770.2760199998,4194366.7605,1190401.2329799999,1513966.66879,1405211.643,1405211.643,1405211.643,1405211.643,4102666.1357,4102666.1357 +3186000.0,1190642.9130000002,1019611.1339999998,2977264.5112799997,1433501.98123,1433501.98123,1433501.98123,1396707.186,2174945.22168,4025894.2713600006,1929433.85964,2940089.69088,1165525.4610000001,1165525.4610000001,1165525.4610000001,1576329.5869999998,1190642.9130000002,1190642.9130000002,1503553.4507499998,1535241.9482999998,2282013.9577199994,3980256.9029999995,1129634.81628,1436683.2059399998,1334507.883,1334507.883,1334507.883,1334507.883,3579866.35842,3579866.35842 +3189600.0,839139.321,717831.744,2096068.69248,941887.8574600001,941887.8574600001,941887.8574600001,743711.2655,1137144.80968,2472258.2656,1109829.94248,1691169.43616,620444.226,620444.226,620444.226,786928.9084999999,839139.321,839139.321,1054512.56261,719696.67615,1069771.35566,1865880.2715,529554.59134,673493.92657,847989.057,847989.057,847989.057,847989.057,2523012.22514,2523012.22514 +3193200.0,147927.615,122382.99300000002,357358.33956000005,173554.46218,173554.46218,173554.46218,71663.1685,236160.1684,863916.0204800001,296031.98478,451096.35776000004,204694.98299999998,204694.98299999998,204694.98299999998,130954.90099999998,147927.615,147927.615,256806.57821,103766.81175,154241.0387,269025.0675,76351.8763,97105.23865,183250.49699999997,183250.49699999997,183250.49699999997,183250.49699999997,444769.0291,444769.0291 +3196800.0,149760.108,123280.986,359980.47912000003,150534.27356000003,150534.27356000003,150534.27356000003,53983.2055,255619.55647999997,862918.2048,301226.28270000004,459011.4784,201822.969,201822.969,201822.969,127544.78450000002,149760.108,149760.108,254914.88697999998,97301.44845,144630.79497999998,252263.0145,71594.64602,91054.93570999999,186101.673,186101.673,186101.673,186101.673,450278.72472,450278.72472 +3200400.0,174651.486,147601.71600000001,430997.01071999996,146828.45716000002,146828.45716000002,146828.45716000002,62481.15299999999,292785.8596,865309.4003200001,332240.46135,506271.1792,202477.62000000002,202477.62000000002,202477.62000000002,125602.3405,174651.486,174651.486,282912.82915999996,110191.26194999999,163790.46837999998,285681.04949999996,81079.00261999998,103117.25501,191073.25199999998,191073.25199999998,191073.25199999998,191073.25199999998,525118.8012400001,525118.8012400001 +3204000.0,205473.65400000004,164032.833,478975.87236000004,149174.0063,149174.0063,149174.0063,77535.2935,363189.76352,851292.11968,365605.01460000005,557112.4032000001,205776.86099999998,205776.86099999998,205776.86099999998,135039.1105,205473.65400000004,205473.65400000004,291768.79913999996,134315.72685,199649.54953999998,348225.9585,98829.84346,125692.98883,250724.93699999998,250724.93699999998,250724.93699999998,250724.93699999998,617790.78636,617790.78636 +3207600.0,244700.142,172869.063,504777.66396,160139.7259,160139.7259,160139.7259,85826.3245,407850.5619999999,857135.8982400001,413233.00220999995,629688.38432,289569.339,289569.339,289569.339,212598.5015,244700.142,244700.142,310507.53461,152938.80945,227331.26738,396508.0245,112532.75362,143120.51551,305905.03500000003,305905.03500000003,305905.03500000003,305905.03500000003,735731.7602799999,735731.7602799999 +3211200.0,298055.25899999996,213492.44999999998,623397.9539999999,181383.77466000002,181383.77466000002,181383.77466000002,86736.552,505565.72815999994,871446.6015999999,474286.88768999994,722722.87648,369615.372,369615.372,369615.372,248389.12000000002,298055.25899999996,298055.25899999996,335644.0126,174236.91705,258989.19521999997,451725.34049999993,128203.95377999998,163051.33719,357846.066,357846.066,357846.066,357846.066,896152.8120599999,896152.8120599999 +3214800.0,362597.319,235140.11700000003,686609.14164,192344.56549000004,192344.56549000004,192344.56549000004,95534.59650000001,589191.71328,1019527.1552000002,561389.29161,855450.34912,399315.4170000001,399315.4170000001,399315.4170000001,261204.45750000002,362597.319,362597.319,349457.0146599999,195750.11204999997,290966.83322,507500.29049999994,144033.41577999998,183183.43819,422958.897,422958.897,422958.897,422958.897,1090209.27246,1090209.27246 +3218400.0,554635.086,266282.247,777544.1612399999,310274.68362,310274.68362,310274.68362,182704.396,1076418.0544,1225700.64192,844513.0241100001,1286876.9891200003,441597.36899999995,441597.36899999995,441597.36899999995,401754.3495,554635.086,554635.086,551992.5264099999,272793.65894999995,405485.8831799999,707242.8194999999,200722.24781999996,255280.97960999995,551687.7990000001,551687.7990000001,551687.7990000001,551687.7990000001,1667602.82524,1667602.82524 +3222000.0,1280100.066,625244.547,1825714.07724,1746736.8287600002,1746736.8287600002,1746736.8287600002,1531868.5515,3470708.12808,4221830.54848,3071908.97034,4681004.145280001,1213524.528,1213524.528,1213524.528,1829485.7629999998,1280100.066,1280100.066,2720106.58244,1647516.8987999998,2448901.66192,4271340.108,1212247.00208,1541750.38184,1565004.06,1565004.06,1565004.06,1565004.06,3848834.19844,3848834.19844 +3225600.0,1169347.779,1243328.622,3630519.57624,2307306.2356300005,2307306.2356300005,2307306.2356300005,2048832.7055000002,4315431.71024,3274661.3120000004,3415408.2921,5204431.6832,1345158.8340000003,1345158.8340000003,1345158.8340000003,1873619.8984999997,1169347.779,1169347.779,2320818.1457499997,2220471.1197,3300552.13348,5756776.977000001,1633828.1325200002,2077922.3564600002,1622933.3939999999,1622933.3939999999,1622933.3939999999,1622933.3939999999,3515838.98886,3515838.98886 +3229200.0,1954307.742,2094558.5189999999,6116110.875479999,1462134.6917100002,1462134.6917100002,1462134.6917100002,2249335.1999999997,4201845.44472,6690442.2624,3380831.14803,5151742.70176,1752623.736,1752623.736,1752623.736,1445232.2465000001,1954307.742,1954307.742,2338545.73745,1737516.0636,2582678.19824,4504671.276000001,1278468.6097600001,1625971.82248,2152482.255,2152482.255,2152482.255,2152482.255,5875951.9442799995,5875951.9442799995 +3232800.0,1497711.8879999998,1214070.543,3545085.98556,766526.1565500001,766526.1565500001,766526.1565500001,975561.1845,2232307.04488,6928372.96768,1430087.92248,2179181.59616,1413989.196,1413989.196,1413989.196,1476626.4100000001,1497711.8879999998,1497711.8879999998,1997512.62971,2252025.1071,3347454.60364,5838583.6110000005,1657045.6343600003,2107450.65578,983347.308,983347.308,983347.308,983347.308,4503120.40992,4503120.40992 +3236400.0,803809.2329999999,748454.91,2185488.3372,445500.90981000004,445500.90981000004,445500.90981000004,630286.027,1492531.38128,3762730.88768,995343.9404999999,1516714.576,615373.923,615373.923,615373.923,632120.1285000001,803809.2329999999,803809.2329999999,820670.30487,1142934.7374,1698880.7701599998,2963164.134,840974.20184,1069561.14932,626709.162,626709.162,626709.162,626709.162,2416786.4272199995,2416786.4272199995 +3240000.0,865271.3940000001,1271494.5929999999,3712764.2115599997,731458.63362,731458.63362,731458.63362,1019491.928,1782916.42272,2883722.9580800007,1432997.18121,2183614.75232,731615.6880000001,731615.6880000001,731615.6880000001,1111806.4335,865271.3940000001,865271.3940000001,1003432.34433,903614.3973,1343150.28932,2342703.993,664881.70468,845604.58414,835916.862,835916.862,835916.862,835916.862,2601582.65796,2601582.65796 +3243600.0,642342.513,680506.326,1987078.47192,490666.77429000003,490666.77429000003,490666.77429000003,911505.5390000001,1265684.3484800002,1871221.3017600002,932581.4328600001,1421076.4691200003,536550.3,536550.3,536550.3,680699.2080000001,642342.513,642342.513,668146.77293,642598.90785,955171.70994,1665997.1685,472825.86306,601345.64463,563913.285,563913.285,563913.285,563913.285,1931309.8224199999,1931309.8224199999 +3247200.0,478948.971,390603.12899999996,1140561.13668,188531.89124000003,188531.89124000003,188531.89124000003,463445.5035,975325.1899199999,1362672.9440000001,675655.3450499999,1029570.0495999999,404069.32200000004,404069.32200000004,404069.32200000004,343614.4355,478948.971,478948.971,490660.5290599999,443573.0586,659335.7562399999,1150004.226,326382.15176,415096.76348,416642.49000000005,416642.49000000005,416642.49000000005,416642.49000000005,1440039.90614,1440039.90614 +3250800.0,545725.362,684792.8369999999,1999595.0840399999,975428.36116,975428.36116,975428.36116,886842.2499999999,1272701.26032,898556.85248,962849.09637,1467198.62304,363420.798,363420.798,363420.798,920622.22,545725.362,545725.362,763386.1245399999,664493.3171999999,987715.9924799999,1722760.452,488935.82352,621834.48696,463170.765,463170.765,463170.765,463170.765,1640814.2550799998,1640814.2550799998 +3254400.0,928378.341,1338019.908,3907018.13136,1498532.9337000002,1498532.9337000002,1498532.9337000002,1222424.861,2404358.4731199997,3059438.8966400004,1717495.4640900001,2617135.94528,990652.5390000001,990652.5390000001,990652.5390000001,1568302.7115,928378.341,928378.341,1435153.5816799998,1351527.2455499999,2008936.7946199998,3503959.5255,994457.0843799999,1264762.53349,1085421.162,1085421.162,1085421.162,1085421.162,2791324.21194,2791324.21194 +3258000.0,949989.2550000001,1319372.5860000001,3852567.9511200003,1173382.2617000001,1173382.2617000001,1173382.2617000001,1150266.4880000001,2477972.05272,3338079.67872,1678375.23651,2557524.16992,912764.658,912764.658,912764.658,1361329.2455,949989.2550000001,949989.2550000001,1337286.47416,1236602.25855,1838110.02382,3206005.8555,909894.99518,1157215.44689,1139178.537,1139178.537,1139178.537,1139178.537,2856301.0267000003,2856301.0267000003 +3261600.0,2263803.795,1871239.5389999999,5464019.453879999,3570859.25779,3570859.25779,3570859.25779,2964964.233,3613345.2108,6821918.15168,3802939.6616399996,5794955.67488,2357994.0990000004,2357994.0990000004,2357994.0990000004,3038950.0154999997,2263803.795,2263803.795,3911213.36632,2898019.81035,4307673.89094,7513384.6935,2132370.13206,2711974.09413,2523166.404,2523166.404,2523166.404,2523166.404,6806503.4103,6806503.4103 +3265200.0,1708421.2920000004,1003705.581,2930820.29652,2302210.26189,2302210.26189,2302210.26189,1830567.6900000004,2761950.83608,4695321.12,2566862.48364,3911409.4988800003,1704922.2330000002,1704922.2330000002,1704922.2330000002,2097323.823,1708421.2920000004,1708421.2920000004,1564382.28362,2000069.41095,2972942.67998,5185365.1395,1471656.01102,1871669.8932100001,1857817.47,1857817.47,1857817.47,1857817.47,5136653.35128,5136653.35128 +3268800.0,1292315.799,957450.9839999999,2795756.87328,1417083.8902,1417083.8902,1417083.8902,1469130.915,2141544.40456,3935542.1817600005,1894323.92793,2886588.8425600003,1149983.298,1149983.298,1149983.298,1542212.308,1292315.799,1292315.799,1382873.4607999998,1505160.1318499998,2237299.7515399996,3902267.0084999995,1107500.5414599997,1408532.5678299998,1322992.401,1322992.401,1322992.401,1322992.401,3885562.83566,3885562.83566 +3272400.0,1140488.367,976805.574,2852272.27608,1348986.0991200001,1348986.0991200001,1348986.0991200001,1311183.979,2086796.7463999998,3861159.32096,1840163.4522600002,2804058.5939200004,1125075.102,1125075.102,1125075.102,1503733.546,1140488.367,1140488.367,1414298.99455,1469210.5944,2183863.64896,3809064.504,1081048.7830400001,1374890.90192,1279635.7619999999,1279635.7619999999,1279635.7619999999,1279635.7619999999,3429068.3567799996,3429068.3567799996 +3276000.0,809680.8990000001,697427.637,2036488.7000399998,882588.1894500001,882588.1894500001,882588.1894500001,722500.114,1099318.77344,2401212.1376,1073255.64654,1635437.17568,604744.551,604744.551,604744.551,765179.352,809680.8990000001,809680.8990000001,1006328.76279,697674.2665500001,1037036.81102,1808785.1355,513350.44798000006,652885.3012900001,819791.559,819791.559,819791.559,819791.559,2434440.56966,2434440.56966 +3279600.0,139036.833,118577.394,346245.99048000004,153850.24908,153850.24908,153850.24908,69839.161,227123.59184000004,838895.9372800001,268058.03030999994,408469.37951999996,198983.838,198983.838,198983.838,127332.4185,139036.833,139036.833,248459.6361,99589.7511,148032.17323999997,258195.65099999998,73278.38476,93196.33498,173117.51400000002,173117.51400000002,173117.51400000002,173117.51400000002,418037.41122,418037.41122 +3283200.0,141038.877,118127.562,344932.48104,142841.89216000002,142841.89216000002,142841.89216000002,49633.8815,239918.24928,831893.40608,283162.82168999995,431486.20447999996,195109.58099999998,195109.58099999998,195109.58099999998,122887.78600000001,141038.877,141038.877,245453.94406,93079.13715,138354.66806,241316.2815,68487.85894,87103.68637000001,174662.32200000001,174662.32200000001,174662.32200000001,174662.32200000001,424056.89018,424056.89018 +3286800.0,154688.709,140021.31900000002,408862.25148,139380.80893000003,139380.80893000003,139380.80893000003,59815.405999999995,266525.97255999997,837713.5968,305071.89006,464871.45152000006,194968.41600000003,194968.41600000003,194968.41600000003,121740.52100000001,154688.709,154688.709,269319.55752,101963.63429999999,151560.76012,264350.163,75025.09388,95417.82074,180323.835,180323.835,180323.835,180323.835,465097.38505999994,465097.38505999994 +3290400.0,189617.184,156589.929,457242.59268,141541.87311000002,141541.87311000002,141541.87311000002,70591.5595,319231.97255999997,848994.56832,349156.97124000004,532048.71808,202239.906,202239.906,202239.906,128259.2815,189617.184,189617.184,285812.95612999995,126238.41089999999,187643.26755999998,327284.769,92886.53444,118134.21661999999,226499.583,226499.583,226499.583,226499.583,570115.66656,570115.66656 +3294000.0,234666.066,170727.88799999998,498525.43295999995,154100.24476,154100.24476,154100.24476,85187.039,401228.28816,861579.8451200002,398777.74923,607661.33216,279014.508,279014.508,279014.508,203449.5575,234666.066,234666.066,310213.67247,150162.08084999997,223203.88313999993,389309.0984999999,110489.62985999999,140522.04602999997,297459.429,297459.429,297459.429,297459.429,705562.6384399999,705562.6384399999 +3297600.0,281619.129,192165.672,561123.76224,171200.16254000002,171200.16254000002,171200.16254000002,86295.23,501798.0288,877941.39584,460159.95878999995,701196.1276799999,370210.374,370210.374,370210.374,249834.781,281619.129,281619.129,336323.98306,171385.29989999998,254750.49516,444332.259,126105.72684,160382.78682,345256.626,345256.626,345256.626,345256.626,846734.84786,846734.84786 +3301200.0,350888.73,234901.515,685912.4238,188558.66370000003,188558.66370000003,188558.66370000003,93169.587,588814.6945600001,959293.2230400001,546967.50087,833474.2870400001,406073.595,406073.595,406073.595,262413.641,350888.73,350888.73,351738.16197,192211.16129999998,285706.46692,498325.23299999995,141429.44707999998,179871.67933999997,416923.64400000003,416923.64400000003,416923.64400000003,416923.64400000003,1055005.4482,1055005.4482 +3304800.0,551752.7999999999,271540.35,792897.8219999999,306246.4988,306246.4988,306246.4988,181448.0465,1090596.61664,1252354.0524800003,839688.6317400001,1279525.5340800001,458789.562,458789.562,458789.562,401698.72750000004,551752.7999999999,551752.7999999999,560096.17391,272354.9427,404833.76668,706105.407,200399.43932,254870.42786000003,556438.686,556438.686,556438.686,556438.686,1658936.7519999996,1658936.7519999996 +3308400.0,1271506.266,627218.61,1831478.3412,1731992.1223000002,1731992.1223000002,1731992.1223000002,1520465.296,3460598.2062400007,4229907.305600001,3035336.24415,4625274.2768,1220283.051,1220283.051,1220283.051,1828646.1515000002,1271506.266,1271506.266,2650320.5723800003,1638413.1387,2435369.65308,4247737.767,1205548.43292,1533231.0606600002,1559876.3879999998,1559876.3879999998,1559876.3879999998,1559876.3879999998,3822995.50644,3822995.50644 +3312000.0,1143243.03,1229418.033,3589900.65636,2237972.37334,2237972.37334,2237972.37334,2016582.5680000004,4278023.531839999,3232116.17088,3366264.9740999998,5129546.627199999,1333384.191,1333384.191,1333384.191,1851447.633,1143243.03,1143243.03,2278739.83766,2198812.56615,3268358.4316599993,5700625.171499999,1617891.7153399999,2057654.2285699998,1597024.878,1597024.878,1597024.878,1597024.878,3437350.7102,3437350.7102 +3315600.0,1921174.935,2066246.535,6033439.8822,1391180.8229000003,1391180.8229000003,1391180.8229000003,2159880.4185,4121840.53992,6581724.819840002,3298431.6378300004,5026181.5433600005,1724183.1119999997,1724183.1119999997,1724183.1119999997,1396943.961,1921174.935,1921174.935,2169399.52853,1680604.7751,2498084.13484,4357123.491,1236593.14316,1572714.09818,2117278.2930000005,2117278.2930000005,2117278.2930000005,2117278.2930000005,5776332.6378999995,5776332.6378999995 +3319200.0,1450498.3530000001,1161591.213,3391846.34196,722402.5213900001,722402.5213900001,722402.5213900001,927511.0495,2148058.91288,6797778.576,1352444.88519,2060868.39648,1387895.4479999999,1387895.4479999999,1387895.4479999999,1435168.392,1450498.3530000001,1450498.3530000001,1918714.0649299999,2208454.3970999997,3282690.23964,5725622.511,1624986.19836,2066677.07778,939417.861,939417.861,939417.861,939417.861,4361165.04802,4361165.04802 +3322800.0,772658.94,722853.135,2110731.1542,417448.17026000004,417448.17026000004,417448.17026000004,603233.1410000001,1440749.3802399999,3588179.46816,951395.0025299999,1449744.76576,597673.167,597673.167,597673.167,601961.6014999999,772658.94,772658.94,769322.4197099999,1071033.43095,1592005.24798,2776753.3395000002,788069.0430200001,1002275.7292100001,602476.335,602476.335,602476.335,602476.335,2323127.8795999996,2323127.8795999996 +3326400.0,828105.4709999999,1243683.8279999997,3631556.7777599995,701489.06652,701489.06652,701489.06652,984537.7814999998,1727214.6604,2782898.73792,1372036.79487,2090722.7350400004,704819.298,704819.298,704819.298,1083396.902,828105.4709999999,828105.4709999999,953220.5042099998,867310.2945,1289187.1538,2248582.245,638169.0562,811631.1151,800472.156,800472.156,800472.156,800472.156,2489837.1161399996,2489837.1161399996 +3330000.0,633765.978,674397.378,1969240.3437599998,494686.69294,494686.69294,494686.69294,903198.4710000001,1256186.7097599998,1877548.7507200004,927327.2477699999,1413070.09184,539351.7,539351.7,539351.7,681196.8765,633765.978,633765.978,666070.20454,641084.4953999999,952920.6573599998,1662070.9139999999,471711.55464,599928.45372,562879.428,562879.428,562879.428,562879.428,1905523.0405199998,1905523.0405199998 +3333600.0,508158.93,426784.36500000005,1246210.3458,234283.42465000003,234283.42465000003,234283.42465000003,491512.294,1038667.99072,1520791.64672,733598.1792299999,1117863.8921599998,445446.36600000004,445446.36600000004,445446.36600000004,384160.7315,508158.93,508158.93,533338.70187,498697.53164999996,741273.86186,1292919.5265,366942.87514,466682.38147,457357.62599999993,457357.62599999993,457357.62599999993,457357.62599999993,1527864.5162,1527864.5162 +3337200.0,682568.13,842780.529,2460919.14468,1113793.94522,1113793.94522,1113793.94522,1069765.0669999998,1573574.15336,1521522.75008,1211307.3440999999,1845801.6672,525575.589,525575.589,525575.589,1092662.529,682568.13,682568.13,937699.0238199999,885640.8942,1316434.11928,2296106.022,651656.75672,828784.93556,633036.54,633036.54,633036.54,633036.54,2052254.8442,2052254.8442 +3340800.0,905768.1510000001,1291852.989,3772210.72788,1567835.09476,1567835.09476,1567835.09476,1178099.993,2292809.23464,2962331.6,1683947.78622,2566015.6742399996,950806.368,950806.368,950806.368,1543326.3825,905768.1510000001,905768.1510000001,1517496.7364700001,1306606.5611999999,1942165.8020799998,3387498.4919999996,961404.3339199999,1222725.64616,1062943.368,1062943.368,1062943.368,1062943.368,2723342.90734,2723342.90734 +3344400.0,871166.5800000001,1237050.3990000002,3612187.16508,1098528.07526,1098528.07526,1098528.07526,1056465.5745,2300593.73272,3046319.89056,1548063.3144899998,2358953.6220799997,845514.2999999999,845514.2999999999,845514.2999999999,1269715.384,871166.5800000001,871166.5800000001,1245019.8564699998,1134967.5693,1687038.21412,2942508.5130000003,835111.9398800001,1062105.45374,1056114.774,1056114.774,1056114.774,1056114.774,2619307.5172,2619307.5172 +3348000.0,2189471.367,1798522.359,5251685.28828,3498430.6285500005,3498430.6285500005,3498430.6285500005,2875602.2015,3453882.8077599998,6477419.6851200005,3678509.02293,5605347.08256,2279003.442,2279003.442,2279003.442,2944182.4615,2189471.367,2189471.367,3806705.0773699996,2778271.164,4129677.1375999996,7202925.24,2044258.7824,2599913.0152000003,2432126.028,2432126.028,2432126.028,2432126.028,6583010.57678,6583010.57678 +3351600.0,1615699.488,916680.6059999999,2676707.3695199997,2176762.97586,2176762.97586,2176762.97586,1729368.963,2564647.14272,4304523.281280001,2384200.2878400004,3633067.1052800003,1603331.892,1603331.892,1603331.892,1922865.7769999998,1615699.488,1615699.488,1433357.23427,1859469.5502,2763952.26968,4820846.982,1368202.28632,1740096.19636,1733896.3800000004,1733896.3800000004,1733896.3800000004,1733896.3800000004,4857869.793919999,4857869.793919999 +3355200.0,1192948.194,882156.558,2575897.1493599997,1308109.7134600002,1308109.7134600002,1308109.7134600002,1333396.5995,1956253.2115999998,3559904.79616,1734688.1871900002,2643334.3804800003,1041327.699,1041327.699,1041327.699,1404947.523,1192948.194,1192948.194,1273169.51086,1373239.41705,2041210.1952199999,3560250.3405,1010432.95378,1285080.83719,1208944.968,1208944.968,1208944.968,1208944.968,3586797.5699599995,3586797.5699599995 +3358800.0,1041920.286,887026.908,2590118.57136,1237449.9347100002,1237449.9347100002,1237449.9347100002,1194676.7035,1895077.8800799998,3474600.80896,1673404.24881,2549949.33152,1020188.76,1020188.76,1020188.76,1357862.7405,1041920.286,1041920.286,1269237.5330700001,1331716.0670999996,1979489.0676399996,3452597.2109999997,979879.9703599998,1246223.1837799998,1163294.9819999998,1163294.9819999998,1163294.9819999998,1163294.9819999998,3132706.9932399997,3132706.9932399997 +3362400.0,735517.062,623596.725,1820902.437,803506.66495,803506.66495,803506.66495,656232.64,966966.17016,2123609.7753600003,959032.6380600001,1461383.0675200003,537707.385,537707.385,537707.385,684080.1065,735517.062,735517.062,903103.24793,623210.5939499999,926352.5371799999,1615731.1694999998,458559.89381999994,583202.01261,738617.979,738617.979,738617.979,738617.979,2211454.63308,2211454.63308 +3366000.0,122837.196,105243.29999999999,307310.436,126456.90244000002,126456.90244000002,126456.90244000002,65355.185,193227.1456,727526.71232,220339.50435,335755.4352,174524.085,174524.085,174524.085,113212.3545,122837.196,122837.196,214894.35460999998,87451.48800000001,129989.6192,226726.08000000002,64347.020800000006,81837.31840000002,150252.618,150252.618,150252.618,150252.618,369330.50263999996,369330.50263999996 +3369600.0,121384.06499999999,102644.90999999997,299723.13719999994,115088.93660000002,115088.93660000002,115088.93660000002,44138.979499999994,206333.03416,713290.41728,236251.94418,360002.96256,169213.05,169213.05,169213.05,106786.4245,121384.06499999999,121384.06499999999,214216.20233,79679.9349,118437.82916,206577.609,58628.69284,74564.67982,149228.535,149228.535,149228.535,149228.535,364961.42209999997,364961.42209999997 +3373200.0,129331.41,114882.954,335458.22568,119074.46782,119074.46782,119074.46782,48016.6855,215350.3212,715695.98528,249596.529,380337.568,168598.179,168598.179,168598.179,106249.5665,129331.41,129331.41,221501.29845999996,80589.2733,119789.48771999999,208935.153,59297.78628,75415.64094,154058.72100000002,154058.72100000002,154058.72100000002,154058.72100000002,388856.4394,388856.4394 +3376800.0,139822.329,129004.17899999999,376692.20268,116271.60941,116271.60941,116271.60941,49770.332500000004,220747.84775999998,725507.47136,277616.28635999997,423034.34112,169871.109,169871.109,169871.109,106746.157,139822.329,139822.329,246109.09973,96538.72005,143497.06042,250285.5705,71033.42858,90341.17259,161803.04700000002,161803.04700000002,161803.04700000002,161803.04700000002,420399.13586,420399.13586 +3380400.0,171981.204,144955.305,423269.49059999996,126967.33742000001,126967.33742000001,126967.33742000001,71690.9165,245209.5112,743148.0748800001,314941.04355,479910.1616,178617.34199999998,178617.34199999998,178617.34199999998,123613.35699999999,171981.204,171981.204,255218.42683999997,116345.87684999999,172938.80953999996,301637.45849999995,85607.58346,108876.75882999999,214662.47099999996,214662.47099999996,214662.47099999996,214662.47099999996,517090.15336,517090.15336 +3384000.0,209424.18000000005,151938.882,443661.53544,134932.22567,134932.22567,134932.22567,75369.97649999999,323472.24471999996,739447.8956800002,353162.80419,538152.84448,256459.473,256459.473,256459.473,186935.9135,209424.18000000005,209424.18000000005,270633.53407999995,133389.20834999997,198272.35413999995,345823.8735,98148.10886,124825.95052999999,257137.773,257137.773,257137.773,257137.773,629668.7012000001,629668.7012000001 +3387600.0,258359.478,170150.43300000002,496839.26436000003,151901.77321,151901.77321,151901.77321,83509.03749999999,433016.96744000004,750919.68064,411842.59011,627569.6611200001,305841.543,305841.543,305841.543,219452.8105,258359.478,258359.478,298934.10703,152174.69999999998,226195.47999999998,394527.0,111970.52,142405.46,304289.226,304289.226,304289.226,304289.226,776800.83052,776800.83052 +3391200.0,334446.08999999997,193574.74200000003,565238.24664,253411.72868000003,253411.72868000003,253411.72868000003,163417.38,565646.94736,887617.2409600001,529302.68874,806556.47808,358259.30999999994,358259.30999999994,358259.30999999994,262249.6275,334446.08999999997,334446.08999999997,329638.37646999996,197842.0545,294076.3378,512923.845,145572.6722,185141.0831,388702.842,388702.842,388702.842,388702.842,1005567.9106,1005567.9106 +3394800.0,1097283.729,1103104.23,3221064.3516,1088472.83908,1088472.83908,1088472.83908,1076061.8469999998,1637884.58376,1620025.8528,1450381.87749,2210105.71808,671923.647,671923.647,671923.647,1633133.3515,1097283.729,1097283.729,2133015.38502,618823.5286499999,919831.5166599998,1604357.2965,455331.88034,579096.58607,1489029.8760000002,1489029.8760000002,1489029.8760000002,1489029.8760000002,3299166.41186,3299166.41186 +3398400.0,2031617.793,1773023.1749999998,5177227.671,2642619.6325100004,2642619.6325100004,2642619.6325100004,1862645.8060000003,3009810.5568,3326037.3465600004,2996647.8330600006,4566320.50752,1231364.298,1231364.298,1231364.298,1857606.5515,2031617.793,2031617.793,3016685.6605599998,1582423.3345499998,2352145.30222,4102579.0154999997,1164350.99678,1480835.66369,2214375.0330000003,2214375.0330000003,2214375.0330000003,2214375.0330000003,6108397.49762,6108397.49762 +3402000.0,2109160.482,2023370.187,5908240.946039999,2472613.86031,2472613.86031,2472613.86031,2179002.1750000003,3465781.25296,8193677.56032,2644496.95251,4029709.6419200003,2127568.302,2127568.302,2127568.302,2073070.7200000002,2109160.482,2109160.482,1835280.37732,3058732.4975999994,4546560.40384,7930047.215999999,2250622.92416,2862369.42368,1667327.19,1667327.19,1667327.19,1667327.19,6341542.515879999,6341542.515879999 +3405600.0,1539926.463,1319122.002,3851836.24584,1636690.20702,1636690.20702,1636690.20702,2310933.7125,3007485.4016799997,5202865.07968,3024556.87716,4608848.57472,2108117.8649999998,2108117.8649999998,2108117.8649999998,2332020.292,1539926.463,1539926.463,1637058.1176299998,2728096.4105999996,4055096.393039999,7072842.545999999,2007340.0749599996,2552959.3570799995,1678803.354,1678803.354,1678803.354,1678803.354,4630045.56542,4630045.56542 +3409200.0,1184962.782,969942.1680000001,2832231.1305600004,1598753.6271300002,1598753.6271300002,1598753.6271300002,2053472.2179999999,3105721.0578400004,5717274.36288,2363826.71511,3602021.6611200003,1005840.456,1005840.456,1005840.456,2012216.493,1184962.782,1184962.782,967630.2733499999,1959835.7105999999,2913138.5130399996,5081055.546,1442051.95496,1834019.09708,1335799.6979999999,1335799.6979999999,1335799.6979999999,1335799.6979999999,3562788.09788,3562788.09788 +3412800.0,974700.6900000002,830329.344,2424561.6844800003,1159525.2059600002,1159525.2059600002,1159525.2059600002,1380358.0,2383281.1364,2763652.83392,1806120.23571,2752183.21632,918094.842,918094.842,918094.842,1296961.3475000001,974700.6900000002,974700.6900000002,933164.2664499999,1257739.4393999998,1869528.7469599997,3260805.954,925447.7850399999,1176995.6729199998,1015916.1000000001,1015916.1000000001,1015916.1000000001,1015916.1000000001,2930600.0746000004,2930600.0746000004 +3416400.0,635009.829,487502.88899999997,1423508.4358799998,505873.34028,505873.34028,505873.34028,653103.8465,1320705.34784,1676057.4828800003,1021034.54145,1555862.1584,550958.7509999999,550958.7509999999,550958.7509999999,783345.682,635009.829,635009.829,505340.94727999996,683588.9619,1016100.13596,1772267.6790000002,502986.44604000007,639704.2384200001,636250.944,636250.944,636250.944,636250.944,1909262.8858599998,1909262.8858599998 +3420000.0,500127.0660000001,388256.79299999995,1133709.8355599998,317474.33454000007,317474.33454000007,317474.33454000007,514073.1435,960388.5139199999,1278862.8678400002,760761.44235,1159255.5312,433150.326,433150.326,433150.326,566436.3635,500127.0660000001,500127.0660000001,355992.2269799999,505206.0639,750948.27276,1309793.499,371731.86924,472773.08202000003,481152.936,481152.936,481152.936,481152.936,1503715.3784400001,1503715.3784400001 +3423600.0,580980.453,467943.099,1366393.8490799998,426521.10380000004,426521.10380000004,426521.10380000004,603402.3135,1092938.13544,1606105.61088,893055.5480700001,1360846.5494400002,515604.4110000001,515604.4110000001,515604.4110000001,659659.182,580980.453,580980.453,466911.63505999994,624942.6250499999,928927.0624199999,1620221.6205,459834.32658,584822.85159,566411.436,566411.436,566411.436,566411.436,1746814.56202,1746814.56202 +3427200.0,957909.087,844717.7309999999,2466575.77452,1074604.8106200001,1074604.8106200001,1074604.8106200001,1055239.1290000002,1808929.5405599999,3173305.68,1537461.85089,2342799.01088,901981.3139999999,901981.3139999999,901981.3139999999,1207935.6135,957909.087,957909.087,1089724.74962,1198373.3041500002,1781285.75086,3106893.7515000002,881766.0361400001,1121440.6969700002,1037861.8200000001,1037861.8200000001,1037861.8200000001,1037861.8200000001,2880113.32158,2880113.32158 +3430800.0,1009717.53,902266.677,2634618.69684,1197679.8279600001,1197679.8279600001,1197679.8279600001,1134605.2165,1946305.5074399998,3422779.0425600004,1675567.26771,2553245.36032,973960.122,973960.122,973960.122,1283432.08,1009717.53,1009717.53,1275180.80274,1278388.9556999998,1900222.5958799997,3314341.7369999997,940641.75012,1196319.5412599999,1110198.2340000002,1110198.2340000002,1110198.2340000002,1110198.2340000002,3035884.0402,3035884.0402 +3434400.0,1018510.302,902215.308,2634468.69936,1262660.0885800002,1262660.0885800002,1262660.0885800002,1183334.6665,1972388.7987199996,3419358.2944000005,1711359.06984,2607785.24928,999694.9950000001,999694.9950000001,999694.9950000001,1294870.353,1018510.302,1018510.302,1280465.6555599999,1290190.7083499997,1917764.9541399996,3344938.8734999998,949325.5088599998,1207363.6505299998,1123586.508,1123586.508,1123586.508,1123586.508,3062320.97468,3062320.97468 +3438000.0,1011574.251,895421.4299999999,2614630.5756,1255287.7434900003,1255287.7434900003,1255287.7434900003,1176185.773,1957477.6902399997,3388512.34112,1699490.73105,2589700.1616,992947.5449999999,992947.5449999999,992947.5449999999,1283545.8265,1011574.251,1011574.251,1270902.6011499998,1279688.0256,1902153.55904,3317709.696,941597.60896,1197535.21408,1121512.794,1121512.794,1121512.794,1121512.794,3041466.58134,3041466.58134 +3441600.0,1012408.9800000001,898801.7850000001,2624501.2122000004,1243052.90021,1243052.90021,1243052.90021,1166461.9224999999,1959796.39216,3404339.3465600004,1699612.07997,2589885.07424,996775.0350000001,996775.0350000001,996775.0350000001,1285260.3399999999,1012408.9800000001,1012408.9800000001,1273163.07989,1280439.3370499997,1903270.3232199997,3319657.5404999997,942150.4257799999,1198238.2931899999,1124711.847,1124711.847,1124711.847,1124711.847,3043976.3332,3043976.3332 +3445200.0,952396.521,801115.0170000001,2339255.84964,1012083.4852700001,1012083.4852700001,1012083.4852700001,876655.1395,1590615.1974399998,2413821.81824,1375728.0789,2096347.5488000002,771722.2920000001,771722.2920000001,771722.2920000001,998270.0244999999,952396.521,952396.521,1201553.0841599999,1001127.3853499999,1488095.5209399997,2595515.4435,736632.00206,936857.47913,962910.318,962910.318,962910.318,962910.318,2863538.87314,2863538.87314 +3448800.0,419646.80700000003,286362.231,836177.71452,527473.8111500001,527473.8111500001,527473.8111500001,362720.575,754281.2191199999,954760.3539200001,636019.56327,969172.6678400001,337269.516,337269.516,337269.516,432599.2055,419646.80700000003,419646.80700000003,679830.06091,221691.4839,329526.60075999994,574755.699,163121.14124,207459.43802,520063.85399999993,520063.85399999993,520063.85399999993,520063.85399999993,1261738.06638,1261738.06638 +3452400.0,146837.44199999998,102458.58299999998,299179.06236,156956.33063,156956.33063,156956.33063,63819.66500000001,284126.38936000003,704836.45056,278182.75842,423897.53664000006,192935.13900000002,192935.13900000002,192935.13900000002,113436.55399999999,146837.44199999998,146837.44199999998,213512.93222999995,88064.43525,130900.71609999999,228315.2025,64798.0289,82410.91595,157165.539,157165.539,157165.539,157165.539,441491.24227999995,441491.24227999995 +3456000.0,144787.38,109433.058,319544.52936,134905.72997000001,134905.72997000001,134905.72997000001,49202.807499999995,304190.22912000003,705746.1491200001,270811.49256,412665.13152,191788.34100000001,191788.34100000001,191788.34100000001,108246.362,144787.38,144787.38,212630.02787000002,81643.94595,121357.17397999999,211669.4895,60073.81702,76402.60621,153598.47,153598.47,153598.47,153598.47,435327.3892,435327.3892 +3459600.0,154052.63400000002,121781.67899999999,355602.50268,130673.57710000002,130673.57710000002,130673.57710000002,51480.653,309129.61936,719669.0566400001,279062.98728,425238.83776,192647.085,192647.085,192647.085,107130.835,154052.63400000002,154052.63400000002,218814.92789,94067.69355,139824.07782,243879.2055,69215.24118,88028.77989,155839.11599999998,155839.11599999998,155839.11599999998,155839.11599999998,463184.91956,463184.91956 +3463200.0,160611.27000000002,149592.81,436811.0052,133988.05079,133988.05079,133988.05079,61200.07950000001,311417.15319999994,753987.9603200001,300139.93842,457356.09664000006,196700.355,196700.355,196700.355,109141.8895,160611.27000000002,160611.27000000002,246272.28379,101415.54375,150746.06749999998,262929.1875,74621.8075,94904.91625,180638.004,180638.004,180638.004,180638.004,482904.5518,482904.5518 +3466800.0,183306.45299999998,165612.94199999998,483589.79063999996,143323.08012000003,143323.08012000003,143323.08012000003,69517.90650000001,325170.55176,786795.09888,334960.3068,510415.70560000004,257931.30000000002,257931.30000000002,257931.30000000002,128421.33849999998,183306.45299999998,183306.45299999998,257035.97672999997,119625.23474999999,177813.31189999997,310139.4975,88020.5431,111945.59005,227554.803,227554.803,227554.803,227554.803,551141.4020199999,551141.4020199999 +3470400.0,219858.348,184104.114,537584.0128799999,151142.19318,151142.19318,151142.19318,74787.8845,374606.56056,801822.8704000001,370436.02407000004,564473.9414400001,312442.473,312442.473,312442.473,196670.62449999998,219858.348,219858.348,279782.88519999996,139287.44204999998,207039.60521999997,361115.59049999993,102488.04377999999,130345.53218999998,270393.603,270393.603,270393.603,270393.603,661040.7663199999,661040.7663199999 +3474000.0,285535.104,203888.598,595354.70616,167204.94065,167204.94065,167204.94065,83758.86400000002,493019.27072,845667.06176,443418.0051,675684.5792,359949.282,359949.282,359949.282,227339.79450000002,285535.104,285535.104,311127.21171999996,159815.16674999997,237552.42069999996,414335.61749999993,117592.39429999999,149555.42765,336458.436,336458.436,336458.436,336458.436,858508.87936,858508.87936 +3477600.0,344580.306,218080.79099999997,636795.9097199999,257655.80665000004,257655.80665000004,257655.80665000004,162002.0255,589847.9540799999,997558.41152,532267.80159,811074.74528,386287.29300000006,386287.29300000006,386287.29300000006,263354.7315,344580.306,344580.306,333940.10377,200152.58355,297510.75382,518914.10550000006,147272.76518000002,187303.28189,391216.728,391216.728,391216.728,391216.728,1036038.12004,1036038.12004 +3481200.0,1081487.799,1105068.888,3226801.15296,1079122.97053,1079122.97053,1079122.97053,1075106.018,1632788.4829600002,1628124.6963200003,1432932.93255,2183516.8496,664955.3820000001,664955.3820000001,664955.3820000001,1623557.0925,1081487.799,1081487.799,2022993.2006699997,634595.5125,943275.3049999999,1645247.625,466936.945,593856.0475,1452147.315,1452147.315,1452147.315,1452147.315,3251673.31566,3251673.31566 +3484800.0,1972711.005,1727749.758,5045029.29336,2559607.5095800003,2559607.5095800003,2559607.5095800003,1801316.5659999999,2934101.6727999994,3217978.688,2926775.74413,4459848.75296,1201799.973,1201799.973,1201799.973,1746670.7684999998,1972711.005,1972711.005,2918486.9756899998,1554030.0198000001,2309940.91832,4028966.7180000003,1143459.12568,1454265.1296400002,2153809.0020000003,2153809.0020000003,2153809.0020000003,2153809.0020000003,5931284.4217,5931284.4217 +3488400.0,2087649.5550000002,2061085.5480000002,6018369.80016,2427393.75494,2427393.75494,2427393.75494,2163351.9915,3434311.3734399998,8336204.853120001,2623009.1857200004,3996966.3782400005,2127866.562,2127866.562,2127866.562,2062055.856,2087649.5550000002,2087649.5550000002,1779652.6455499998,3047564.43225,4529959.9709,7901092.9725,2242405.4341,2851918.3205500003,1616322.327,1616322.327,1616322.327,1616322.327,6276866.3287,6276866.3287 +3492000.0,1560183.7380000001,1347494.532,3934684.03344,1653817.28391,1653817.28391,1653817.28391,2332593.3995,3019625.8097599996,5259203.406080001,3028636.50768,4615065.15456,2078035.5329999998,2078035.5329999998,2078035.5329999998,2312928.6145,1560183.7380000001,1560183.7380000001,1660677.53605,2725018.5078,4050521.3375199996,7064862.798,2005075.34648,2550079.0480400003,1700572.764,1700572.764,1700572.764,1700572.764,4690952.438920001,4690952.438920001 +3495600.0,1189402.782,961687.3859999999,2808127.16712,1610318.46294,1610318.46294,1610318.46294,2078631.8175000001,3162524.29672,5996204.008960001,2400905.82333,3658523.1593600004,1026760.791,1026760.791,1026760.791,2036149.4405,1189402.782,1189402.782,954883.15767,1995347.06235,2965923.28774,5173122.0135,1468181.29526,1867250.7077300001,1341313.797,1341313.797,1341313.797,1341313.797,3576137.69788,3576137.69788 +3499200.0,1023107.7149999999,887262.0179999999,2590805.09256,1245504.68856,1245504.68856,1245504.68856,1447219.7950000002,2525722.95872,3049415.1744000004,1919710.44174,2925273.05408,1007165.4389999999,1007165.4389999999,1007165.4389999999,1410915.3415,1023107.7149999999,1023107.7149999999,987041.5814999999,1339108.2972,1990477.0244799997,3471762.252,985319.1915199999,1253140.85096,1080394.7249999999,1080394.7249999999,1080394.7249999999,1080394.7249999999,3076143.8630999997,3076143.8630999997 +3502800.0,724564.611,585512.559,1709696.67228,629347.09145,629347.09145,629347.09145,752989.9195000001,1565366.32536,2109367.46368,1198078.42812,1825643.3190400002,663941.883,663941.883,663941.883,919097.6654999999,724564.611,724564.611,631913.18242,827699.0265,1230308.1826,2145886.365,609022.9874,774562.7927,752217.258,752217.258,752217.258,752217.258,2178524.26374,2178524.26374 +3506400.0,609886.527,496132.31999999995,1448706.3743999996,464153.16222,464153.16222,464153.16222,640069.6504999999,1195566.1723999998,1765025.7235200002,954180.31863,1453989.0569600002,560994.3840000001,560994.3840000001,560994.3840000001,735655.2455000001,609886.527,609886.527,489343.26245999994,669467.3166,995109.4434400001,1735656.006,492595.70456000004,626489.1678800001,617407.794,617407.794,617407.794,617407.794,1833725.4911800001,1833725.4911800001 +3510000.0,620937.21,509512.65900000004,1487776.9642800002,456311.70486000006,456311.70486000006,456311.70486000006,645073.401,1213984.6155199998,1824966.57024,966662.36688,1473009.3209600002,577863.513,577863.513,577863.513,729688.631,620937.21,620937.21,502639.06445999997,685647.6417,1019160.19828,1777604.997,504501.22772,641630.75606,618674.559,618674.559,618674.559,618674.559,1866951.2113999997,1866951.2113999997 +3513600.0,1019440.311,918869.6160000002,2683099.2787200003,1151521.99052,1151521.99052,1151521.99052,1121376.515,2005273.8795999999,3538526.9779200004,1675314.29163,2552859.8729600003,1009906.1159999999,1009906.1159999999,1009906.1159999999,1307134.3845,1019440.311,1019440.311,1203745.39558,1293353.8272,1922466.67648,3353139.552,951652.93952,1210323.70496,1121535.2519999999,1121535.2519999999,1121535.2519999999,1121535.2519999999,3065117.2017399995,3065117.2017399995 +3517200.0,1067228.721,962693.871,2811066.1033199998,1260685.0356100001,1260685.0356100001,1260685.0356100001,1196257.1075,2106237.42312,3721391.1852800003,1797780.97989,2739475.77888,1071482.679,1071482.679,1071482.679,1375934.98,1067228.721,1067228.721,1338707.11728,1363890.3768,2027313.5971199998,3536012.088,1003553.9068799999,1276331.98224,1186778.238,1186778.238,1186778.238,1186778.238,3208801.02114,3208801.02114 +3520800.0,1097494.131,983306.757,2871255.73044,1340980.9870600002,1340980.9870600002,1340980.9870600002,1269338.105,2181683.2268,3809629.1385600003,1858064.0505000001,2831335.6960000005,1114254.192,1114254.192,1114254.192,1420696.0495,1097494.131,1097494.131,1365412.5066399998,1406299.56705,2090351.45522,3645961.8405,1034758.69378,1316018.6071900001,1226141.109,1226141.109,1226141.109,1226141.109,3299799.0205400004,3299799.0205400004 +3524400.0,1112477.097,997570.869,2912906.9374799994,1358629.2681500001,1358629.2681500001,1358629.2681500001,1287004.2710000002,2216972.84592,3871992.10176,1884956.73219,2872315.02048,1132847.034,1132847.034,1132847.034,1443230.362,1112477.097,1112477.097,1382803.9947799996,1426828.4743499998,2120866.02854,3699184.9335,1049863.9144599999,1335229.60933,1248938.5829999999,1248938.5829999999,1248938.5829999999,1248938.5829999999,3344847.80498,3344847.80498 +3528000.0,1104748.197,992281.9470000002,2897463.28524,1336751.63435,1336751.63435,1336751.63435,1267168.0489999999,2197271.6175999995,3847172.9612800004,1869502.2584700002,2848765.3462400003,1124313.159,1124313.159,1124313.159,1430266.2395000001,1104748.197,1104748.197,1376008.74424,1414746.2025,2102906.701,3667860.525,1040973.749,1323922.9895,1240098.807,1240098.807,1240098.807,1240098.807,3321609.5789799998,3321609.5789799998 +3531600.0,1032605.235,872219.7839999999,2546881.7692799997,1093557.4738000003,1093557.4738000003,1093557.4738000003,943901.0,1779550.8716,2709327.14432,1507832.70855,2297649.8416,864409.2390000001,864409.2390000001,864409.2390000001,1102763.5325,1032605.235,1032605.235,1291557.4674600002,1096398.5364,1629708.44176,2842514.7240000004,806732.7502400001,1026012.45752,1053515.007,1053515.007,1053515.007,1053515.007,3104699.7399,3104699.7399 +3535200.0,458163.60599999997,320251.02,935132.9783999999,577862.53569,577862.53569,577862.53569,387385.86249999993,860304.9708,1095642.1011200002,704069.9597400001,1072868.5100800002,392856.663,392856.663,392856.663,476390.12049999996,458163.60599999997,458163.60599999997,734207.98633,244560.11669999998,363518.98828,634044.747,179947.93772,228859.96106,568352.748,568352.748,568352.748,568352.748,1377545.24204,1377545.24204 +3538800.0,162642.696,114897.16500000001,335499.7218,175891.02883,175891.02883,175891.02883,67029.0915,340722.0688,811412.64384,312515.48517,476214.07263999997,229279.956,229279.956,229279.956,127535.43950000001,162642.696,162642.696,241407.82977999997,99237.34439999999,147508.34895999997,257282.004,73019.08304,92866.55192,174191.835,174191.835,174191.835,174191.835,489012.37264,489012.37264 +3542400.0,163664.157,141405.435,412903.8702,153780.27357000002,153780.27357000002,153780.27357000002,57680.994,366559.96327999997,821393.5206400001,306817.91091000004,467532.0547200001,226834.08899999998,226834.08899999998,226834.08899999998,121259.59650000001,163664.157,163664.157,239600.15962999998,97248.48255,144552.06542,252125.6955,71555.67358,91005.37009000001,170628.903,170628.903,170628.903,170628.903,492083.56538000004,492083.56538000004 +3546000.0,172404.972,168189.81,491114.24519999995,149804.94991000002,149804.94991000002,149804.94991000002,60945.066,361340.34648,846355.33056,315691.70766,481054.03072000004,225210.44700000001,225210.44700000001,225210.44700000001,118904.7825,172404.972,172404.972,256525.99648,107377.73505,159608.38642,278386.7205,79008.80258,100484.34959,184635.315,184635.315,184635.315,184635.315,518364.28248,518364.28248 +3549600.0,185465.097,172404.28499999997,503420.51219999994,155407.79331,155407.79331,155407.79331,68804.2355,358150.08879999997,860920.8,347457.42948,529458.94016,270169.599,270169.599,270169.599,122221.4385,185465.097,185465.097,272926.81701999996,118777.52924999999,176553.2657,307941.7425,87396.7993,111152.30515,230603.892,230603.892,230603.892,230603.892,557631.7249799999,557631.7249799999 +3553200.0,213745.542,193125.59999999998,563926.752,159854.15842,159854.15842,159854.15842,76801.1335,397259.95560000004,866463.7792,374332.90188,570412.04096,326021.703,326021.703,326021.703,184673.923,213745.542,213745.542,293732.28923999995,142209.9747,211383.71547999998,368692.527,104638.45052,133080.44546000002,275501.68799999997,275501.68799999997,275501.68799999997,275501.68799999997,642661.5962799999,642661.5962799999 +3556800.0,267269.00399999996,211914.228,618789.54576,166683.24398000003,166683.24398000003,166683.24398000003,79026.9795,500310.71511999995,893140.87552,438470.20623,668145.07616,376626.588,376626.588,376626.588,234257.03350000002,267269.00399999996,267269.00399999996,310944.70589,158523.49620000002,235632.45608000003,410986.84200000006,116641.97992000001,148346.67916000003,333856.653,333856.653,333856.653,333856.653,803588.8053599999,803588.8053599999 +3560400.0,334277.27999999997,229842.219,671139.27948,183044.96144,183044.96144,183044.96144,87873.89099999999,587830.92904,1008724.8384000001,507692.88716999994,773627.2566399999,409682.57100000005,409682.57100000005,409682.57100000005,251978.64999999997,334277.27999999997,334277.27999999997,351170.50019999995,181667.79225,270034.5949,470990.5725,133671.61010000002,170005.16855,396714.789,396714.789,396714.789,396714.789,1005060.3551999999,1005060.3551999999 +3564000.0,508664.04300000006,274597.79400000005,801825.5584800001,288637.26122000004,288637.26122000004,288637.26122000004,172830.2205,1088737.55776,1231839.76896,788470.03179,1201478.14368,459746.48400000005,459746.48400000005,459746.48400000005,385194.82050000003,508664.04300000006,508664.04300000006,556127.02925,286507.80539999995,425870.8613599999,742798.0139999999,210813.15063999998,268114.71171999996,527784.9,527784.9,527784.9,527784.9,1529383.2226200001,1529383.2226200001 +3567600.0,1246924.185,620012.289,1810435.88388,1677458.20451,1677458.20451,1677458.20451,1472230.2525000002,3458115.6864799997,4191605.11424,2943180.98886,4484847.22112,1233492.195,1233492.195,1233492.195,1780230.858,1246924.185,1246924.185,2610554.2340799994,1636768.95615,2432925.70766,4243475.0715,1204338.63934,1531692.43057,1535051.616,1535051.616,1535051.616,1535051.616,3749085.3829,3749085.3829 +3571200.0,1088954.169,1180781.565,3447882.1698,2140969.51959,2140969.51959,2140969.51959,1950100.0015,4165255.6080000005,3196818.92672,3247999.1831699996,4949332.08864,1296859.449,1296859.449,1296859.449,1781795.617,1088954.169,1088954.169,2170023.82324,2135513.5326,3174269.49784,5536516.566000001,1571316.13016,1998418.8366800002,1526635.9859999998,1526635.9859999998,1526635.9859999998,1526635.9859999998,3274122.2014599997,3274122.2014599997 +3574800.0,1805024.679,1979164.6649999998,5779160.821799999,1180038.5716900001,1180038.5716900001,1180038.5716900001,2002118.846,3871350.0218399996,6157015.30496,3057581.3646,4659171.6032,1591305.321,1591305.321,1591305.321,1218511.9974999998,1805024.679,1805024.679,2415593.2553999997,1544133.6504000002,2295230.75936,4003309.464,1136177.3526400002,1445004.08272,1983990.2400000002,1983990.2400000002,1983990.2400000002,1983990.2400000002,5427107.53486,5427107.53486 +3578400.0,1369483.071,1151515.905,3362426.4426,618226.0932100001,618226.0932100001,618226.0932100001,812781.8685,2088406.5190399997,6639594.593280001,1222844.7216299998,1863382.43296,1360076.388,1360076.388,1360076.388,1349065.011,1369483.071,1369483.071,2050881.1670099997,2141898.3657000004,3183760.0398800005,5553069.837000001,1576014.1061200004,2004393.7792600004,868276.854,868276.854,868276.854,868276.854,4117579.1001399998,4117579.1001399998 +3582000.0,684271.437,700275.5310000001,2044804.5505200003,332941.66543000005,332941.66543000005,332941.66543000005,479098.61650000006,1339772.7375999999,3279312.5228800005,801046.06701,1220641.62592,528973.9349999999,528973.9349999999,528973.9349999999,474414.16400000005,684271.437,684271.437,690014.6779499999,824518.4319,1225580.4839599999,2137640.379,606682.69804,771586.38442,517327.0889999999,517327.0889999999,517327.0889999999,517327.0889999999,2057376.12058,2057376.12058 +3585600.0,706743.075,1158328.9980000001,3382320.67416,546555.2002900001,546555.2002900001,546555.2002900001,853825.4970000001,1544551.4090399998,2390884.2540800003,1166260.95768,1777159.55456,608833.9260000001,608833.9260000001,608833.9260000001,964985.6964999998,706743.075,706743.075,766761.70077,720618.0187499999,1071140.8575,1868268.9375,530232.5175,674356.12125,678726.246,678726.246,678726.246,678726.246,2124940.8455,2124940.8455 +3589200.0,488726.985,532202.157,1554030.29844,334502.39647000004,334502.39647000004,334502.39647000004,697968.4739999999,1004313.7936,1350068.5836800002,681404.84181,1038331.1875199999,409276.686,409276.686,409276.686,475018.0015,488726.985,488726.985,473816.7844799999,440069.7680999999,654128.3960399999,1140921.6209999998,323804.42195999995,411818.37558,410918.55299999996,410918.55299999996,410918.55299999996,410918.55299999996,1469439.1349,1469439.1349 +3592800.0,257963.061,173740.932,507323.52144,82817.82926999999,82817.82926999999,82817.82926999999,151678.4185,537777.6264000001,540497.33632,286813.31154,437048.85568000004,191740.665,191740.665,191740.665,126534.1245,257963.061,257963.061,251695.04893,140895.02474999998,209429.14789999995,365283.39749999996,103670.9071,131849.91204999998,179490.741,179490.741,179490.741,179490.741,775608.9367399999,775608.9367399999 +3596400.0,411951.846,413927.436,1208668.11312,851421.70861,851421.70861,851421.70861,685517.8785,893565.4994399999,513102.8998400001,754055.736,1149037.3120000002,262665.3,262665.3,262665.3,750850.4395,411951.846,411951.846,650636.6557599999,489890.15864999994,728182.40866,1270085.5965,360462.38834,458440.42007,235183.287,235183.287,235183.287,235183.287,1238601.88364,1238601.88364 +3600000.0,795237.6120000001,1256282.2920000001,3668344.29264,875419.12051,875419.12051,875419.12051,1067935.4944999998,2216422.97488,2661284.11072,1442365.43955,2197890.1936000003,904273.1370000001,904273.1370000001,904273.1370000001,1432889.4475,795237.6120000001,795237.6120000001,1281160.36386,1185496.8759,1762145.97356,3073510.4190000007,872291.5284400001,1109390.9036200002,958104.0,958104.0,958104.0,958104.0,2391014.42008,2391014.42008 +3603600.0,840100.7609999999,1128581.856,3295459.0195199996,1045502.5320300001,1045502.5320300001,1045502.5320300001,1045100.3815,2310422.77976,3171261.0342400004,1502460.9999000002,2289464.3808000004,874336.746,874336.746,874336.746,1250411.526,840100.7609999999,840100.7609999999,1080203.34981,1144711.05525,1701521.1241,2967769.4025000003,842281.2209000001,1071223.43195,1003926.5280000002,1003926.5280000002,1003926.5280000002,1003926.5280000002,2525902.95474,2525902.95474 +3607200.0,2205095.031,1849331.9820000003,5400049.387440001,3401688.60482,3401688.60482,3401688.60482,2933886.6585,3504666.65936,6754452.881920001,3731256.4241400003,5685724.07488,2324536.398,2324536.398,2324536.398,2964870.5239999997,2205095.031,2205095.031,3218778.0029599997,2843334.8068500003,4226389.02154,7371608.7585,2092132.7714600002,2660799.73283,2475759.711,2475759.711,2475759.711,2475759.711,6629985.72654,6629985.72654 +3610800.0,1608135.168,990066.8879999999,2890995.31296,1932890.67191,1932890.67191,1932890.67191,1757162.6205,2730717.3948,4417962.79616,2392972.97337,3646435.00704,1520337.7740000002,1520337.7740000002,1520337.7740000002,1828008.987,1608135.168,1608135.168,1332320.06739,1781159.0660999997,2647550.01924,4617819.801,1310581.2387599999,1666813.05198,1677559.6439999999,1677559.6439999999,1677559.6439999999,1677559.6439999999,4835126.405119999,4835126.405119999 +3614400.0,1268859.879,959824.3469999998,2802687.09324,1335738.13923,1335738.13923,1335738.13923,1323835.863,2146323.3991999994,3958281.34912,1864309.18254,2840852.08768,1155708.3599999999,1155708.3599999999,1155708.3599999999,1534915.795,1268859.879,1268859.879,1343875.91923,1486210.5787499999,2209132.7615,3853138.5375,1093557.4135,1390799.5292500001,1290673.4849999999,1290673.4849999999,1290673.4849999999,1290673.4849999999,3815038.70286,3815038.70286 +3618000.0,1125990.732,973984.8629999999,2844035.79996,1297256.50901,1297256.50901,1297256.50901,1284507.9415,2089813.9765599999,3937044.42688,1821948.13122,2776301.9142400003,1132842.48,1132842.48,1132842.48,1495078.9944999998,1125990.732,1125990.732,1375571.3565099998,1462952.92725,2174562.1289,3792840.9225,1076444.3761,1369034.9615500001,1274666.064,1274666.064,1274666.064,1274666.064,3385478.80088,3385478.80088 +3621600.0,792824.283,697313.1059999999,2036154.2695199999,846866.7925300001,846866.7925300001,846866.7925300001,703436.9405,1111726.5776,2452918.91328,1061166.00198,1617014.8601600002,618349.524,618349.524,618349.524,756258.3525,792824.283,792824.283,978175.94823,693359.5383,1030623.31372,1797598.803,510175.66028,648847.56794,812465.2110000001,812465.2110000001,812465.2110000001,812465.2110000001,2383758.34422,2383758.34422 +3625200.0,143607.501,127806.98100000001,373196.38452,143569.09127000003,143569.09127000003,143569.09127000003,70841.183,244254.84639999998,928897.90848,289885.42821,441730.17632,217858.02900000004,217858.02900000004,217858.02900000004,137113.522,143607.501,143607.501,270744.29394999996,106889.32935,158882.41053999998,277120.4835,78649.43246,100027.29833,182194.23599999998,182194.23599999998,182194.23599999998,182194.23599999998,431779.8863399999,431779.8863399999 +3628800.0,140943.47400000002,121979.61000000002,356180.4612,135081.87143000003,135081.87143000003,135081.87143000003,48538.630000000005,261248.48136000003,869946.848,288834.8694,440129.3248,202836.89399999997,202836.89399999997,202836.89399999997,126453.83099999999,140943.47400000002,140943.47400000002,254901.99618,94925.73465,141099.48705999998,246103.75650000002,69846.58994,88831.73687000001,178063.986,178063.986,178063.986,178063.986,423770.04516,423770.04516 +3632400.0,160393.97999999998,149807.943,437439.19356,142928.14767,142928.14767,142928.14767,60056.773,359205.91992,901203.71712,327441.16565999994,498957.96671999997,212372.469,212372.469,212372.469,128440.58149999997,160393.97999999998,160393.97999999998,291723.31577999995,109614.8295,162933.6478,284186.59500000003,80654.8622,102577.82810000001,186213.363,186213.363,186213.363,186213.363,482251.23319999996,482251.23319999996 +3636000.0,202862.48099999997,164474.796,480266.40432,147405.08255,147405.08255,147405.08255,72270.2575,402906.12600000005,922304.2694400001,374068.48836,570009.1251200001,267162.093,267162.093,267162.093,138950.168,202862.48099999997,202862.48099999997,307863.11685999995,135704.75129999997,201714.22291999997,351827.133,99851.89107999999,126992.84134,255117.057,255117.057,255117.057,255117.057,609939.8595399999,609939.8595399999 +3639600.0,250121.631,198612.60900000003,579948.81828,160237.8536,160237.8536,160237.8536,85860.488,479216.41320000007,946075.8182400002,427520.27262,651459.46304,372311.70900000003,372311.70900000003,372311.70900000003,244671.49,250121.631,250121.631,335478.02912,156972.69855,233327.31981999998,406966.25549999997,115500.89918,146895.43889,322539.804,322539.804,322539.804,322539.804,752032.3705399999,752032.3705399999 +3643200.0,314266.452,254727.35700000002,743803.8824400001,195536.49148000003,195536.49148000003,195536.49148000003,92086.10949999999,631271.88,1050269.1174400002,518696.75739000004,790395.05888,461125.914,461125.914,461125.914,283470.75049999997,314266.452,314266.452,384809.23039000004,192902.4882,286734.06888,500117.562,141938.12712,180518.62476,412827.12899999996,412827.12899999996,412827.12899999996,412827.12899999996,944894.4656799999,944894.4656799999 +3646800.0,383154.657,260772.52200000006,761455.76424,196856.89309000003,196856.89309000003,196856.89309000003,95021.402,671176.7168,1104540.76608,586014.24,892974.0800000001,462985.26300000004,462985.26300000004,462985.26300000004,283070.03900000005,383154.657,383154.657,380569.19133999996,213904.4355,317951.7782,554567.055,157391.4118,200172.29890000002,466030.27800000005,466030.27800000005,466030.27800000005,466030.27800000005,1152018.3353799998,1152018.3353799998 +3650400.0,575789.706,305690.139,892615.20588,304935.40528000006,304935.40528000006,304935.40528000006,182257.313,1171506.45864,1370547.85536,872860.5452699999,1330073.21184,500114.56500000006,500114.56500000006,500114.56500000006,417016.57899999997,575789.706,575789.706,579903.85492,310833.62415,462029.23886,805864.9515000001,228712.14814,290878.87297,595259.598,595259.598,595259.598,595259.598,1731207.7160399999,1731207.7160399999 +3654000.0,1288135.335,703281.747,2053582.70124,1728723.5215800002,1728723.5215800002,1728723.5215800002,1520740.7915,3520514.4162400006,4402420.06336,3077746.4793599998,4689899.39712,1301288.232,1301288.232,1301288.232,1968206.688,1288135.335,1288135.335,2682224.37886,1682665.19235,2501146.7797399997,4362465.3135,1238109.2032599999,1574642.24173,1598593.809,1598593.809,1598593.809,1598593.809,3872993.5738999997,3872993.5738999997 +3657600.0,1163321.541,1254215.088,3662308.0569599997,2234752.36435,2234752.36435,2234752.36435,2047173.6459999997,4402262.65232,3453677.1328000003,3389368.9844699996,5164752.73824,1372594.293,1372594.293,1372594.293,1897216.0759999997,1163321.541,1163321.541,2264537.90381,2224112.10615,3305964.16766,5766216.5715,1636507.17934,2081329.60057,1631455.875,1631455.875,1631455.875,1631455.875,3497720.09994,3497720.09994 +3661200.0,1920048.8879999998,2087315.991,6094962.69372,1351065.81214,1351065.81214,1351065.81214,2184630.8784999996,4198067.9108,6653390.835840001,3323018.12976,5063646.67392,1744494.384,1744494.384,1744494.384,1407317.7859999998,1920048.8879999998,1920048.8879999998,2253812.99871,1742260.83705,2589730.92322,4516972.5405,1281959.82578,1630411.99319,2124638.826,2124638.826,2124638.826,2124638.826,5772946.98992,5772946.98992 +3664800.0,1462127.91,1155582.432,3374300.70144,695265.08414,695265.08414,695265.08414,925374.3275000001,2237130.24248,6967491.5942400005,1371737.06439,2090266.00288,1460211.558,1460211.558,1460211.558,1452986.633,1462127.91,1462127.91,1925066.9830599998,2221846.54425,3302596.5916999998,5760342.8925,1634840.1733,2079209.4821499998,958394.661,958394.661,958394.661,958394.661,4396131.249399999,4396131.249399999 +3668400.0,749292.1140000001,719893.203,2102088.15276,382140.0981200001,382140.0981200001,382140.0981200001,563056.1089999999,1424517.91784,3804480.1024000007,914146.22607,1392984.72544,598067.283,598067.283,598067.283,580239.8979999999,749292.1140000001,749292.1140000001,747276.99683,1076344.1514,1599899.20776,2790521.8740000003,791976.68424,1007245.5145200001,587474.571,587474.571,587474.571,587474.571,2252871.6227599997,2252871.6227599997 +3672000.0,789364.8060000001,1215232.7999999998,3548479.7759999996,651860.9720700001,651860.9720700001,651860.9720700001,939042.2125000001,1688067.914,2714361.66848,1308391.50813,1993739.44096,690400.062,690400.062,690400.062,1054161.5525,789364.8060000001,789364.8060000001,909594.1745799999,831219.003,1235540.3451999999,2155012.23,611612.9948,777856.7954000001,773306.613,773306.613,773306.613,773306.613,2373356.85004,2373356.85004 +3675600.0,591986.697,651203.928,1901515.46976,447557.56221000006,447557.56221000006,447557.56221000006,849475.739,1205305.774,1790116.9292800003,863578.51692,1315929.16864,517601.826,517601.826,517601.826,658767.585,591986.697,591986.697,620715.22344,594211.3263000001,883247.4529200001,1540547.8830000001,437222.16108000005,556064.4263400001,530806.4400000001,530806.4400000001,530806.4400000001,530806.4400000001,1779906.66898,1779906.66898 +3679200.0,426440.49000000005,355581.798,1038298.85016,144587.40933999998,144587.40933999998,144587.40933999998,361656.88300000003,894507.4213600002,1247380.31488,593239.8717,903984.5664,374442.837,374442.837,374442.837,299221.7585,426440.49000000005,426440.49000000005,443163.40965,386693.97164999996,574789.55786,1002539.9265000001,284530.37914000003,361869.17347000004,375469.6020000001,375469.6020000001,375469.6020000001,375469.6020000001,1282164.4066,1282164.4066 +3682800.0,637879.392,768992.4929999999,2245458.0795599995,1023495.3542000002,1023495.3542000002,1023495.3542000002,1002379.8260000001,1481021.5647200001,1416288.7027200002,1144704.87054,1744312.18368,502572.3300000001,502572.3300000001,502572.3300000001,1042246.6669999999,637879.392,637879.392,900626.52602,830607.0196499999,1234630.6810599999,2153425.6064999998,611162.69594,777284.0998699999,568077.375,568077.375,568077.375,568077.375,1917890.7052799996,1917890.7052799996 +3686400.0,866380.5869999999,1286274.15,3755920.5179999997,1423330.7297,1423330.7297,1423330.7297,1126600.5765,2286716.42104,2961465.3996800003,1615079.10081,2461072.9155200003,954126.756,954126.756,954126.756,1522963.3265,866380.5869999999,866380.5869999999,1456567.1437199998,1288909.5273,1915860.5813199999,3341617.293,948382.81268,1206164.71814,1041146.2889999999,1041146.2889999999,1041146.2889999999,1041146.2889999999,2604917.63158,2604917.63158 +3690000.0,870476.0790000001,1220237.817,3563094.42564,1088894.59283,1088894.59283,1088894.59283,1042712.2650000001,2349836.90472,3160004.6624,1559753.89962,2376767.84704,868701.297,868701.297,868701.297,1282179.6224999998,870476.0790000001,870476.0790000001,1265298.2488899997,1152976.761,1713807.4323999998,2989199.01,848363.1476,1078958.4998,1047177.402,1047177.402,1047177.402,1047177.402,2617231.41086,2617231.41086 +3693600.0,2207567.433,1821665.4450000003,5319263.099400001,3473854.9836100005,3473854.9836100005,3473854.9836100005,2894106.5685,3476492.1108,6651647.0220800005,3718168.15776,5665780.04992,2319306.0689999997,2319306.0689999997,2319306.0689999997,2986634.077,2207567.433,2207567.433,3678463.23351,2817019.73745,4187273.78258,7303384.5045,2072770.07842,2636174.02591,2462286.762,2462286.762,2462286.762,2462286.762,6637419.41522,6637419.41522 +3697200.0,1620192.435,939493.7550000001,2743321.7646000003,2058430.46904,2058430.46904,2058430.46904,1742747.678,2620347.79544,4425261.68768,2387000.33061,3637333.8371200003,1580544.912,1580544.912,1580544.912,1878708.8005000004,1620192.435,1620192.435,1313732.3995899998,1822978.09845,2709710.6549799996,4726239.5145,1341351.78602,1705947.40571,1729682.844,1729682.844,1729682.844,1729682.844,4871378.5879,4871378.5879 +3700800.0,1211520.72,901457.7449999999,2632256.6153999995,1269087.20059,1269087.20059,1269087.20059,1297873.276,2006968.8812,3671095.9372800007,1760400.9530100003,2682515.73792,1071703.7489999998,1071703.7489999998,1071703.7489999998,1438071.5614999998,1211520.72,1211520.72,1281288.26176,1400297.8517999998,2081430.3871199999,3630401.838,1030342.61688,1310402.1872399999,1233263.943,1233263.943,1233263.943,1233263.943,3642638.9647999997,3642638.9647999997 +3704400.0,1078698.54,925639.236,2702866.56912,1246767.80899,1246767.80899,1246767.80899,1225830.0040000002,1983051.0035199998,3713727.54176,1735908.27417,2645193.5606400003,1075889.4270000001,1075889.4270000001,1075889.4270000001,1419335.197,1078698.54,1078698.54,1314748.53133,1391418.5427,2068232.0066799999,3607381.407,1023809.19932,1302092.9078600002,1216910.091,1216910.091,1216910.091,1216910.091,3243286.9436,3243286.9436 +3708000.0,761422.1339999998,660039.51,1927315.3692,812576.3628400001,812576.3628400001,812576.3628400001,671685.8015,1034327.5684,2296694.36416,1004795.3521199999,1531116.72704,578611.746,578611.746,578611.746,715821.3439999999,761422.1339999998,761422.1339999998,933520.8317499999,655322.6997,974084.6054799999,1698984.777,482188.06052,613252.60046,773412.585,773412.585,773412.585,773412.585,2289342.5495599997,2289342.5495599997 +3711600.0,130521.432,115013.92199999999,335840.65223999997,132548.911,132548.911,132548.911,67192.8005,215693.19928,816111.2480000001,245311.92776999998,373808.65184,193164.564,193164.564,193164.564,123347.6685,130521.432,130521.432,242022.16297999996,95081.9553,141331.69652,246508.77300000002,69961.53748,88977.92854000001,163308.99599999998,163308.99599999998,163308.99599999998,163308.99599999998,392434.43888,392434.43888 +3715200.0,130130.034,112954.70700000001,329827.74444000004,130579.56417000003,130579.56417000003,130579.56417000003,45982.3735,226498.72352,800861.3939200001,266161.29897,405579.12224,187641.53399999999,187641.53399999999,187641.53399999999,117350.828,130130.034,130130.034,237119.39731999996,88137.50940000001,131009.33496000001,228504.654,64851.797040000005,82479.29892,164053.515,164053.515,164053.515,164053.515,391257.63555999997,391257.63555999997 +3718800.0,143987.712,132974.02500000002,388284.153,129912.66618000001,129912.66618000001,129912.66618000001,53060.28,255293.27568,814825.4169600001,281074.42629000003,428303.88768000004,189299.20200000002,189299.20200000002,189299.20200000002,117814.63749999998,143987.712,143987.712,258537.18734999996,93511.9809,138998.05556,242438.469,68806.34644000001,87508.74262,171275.622,171275.622,171275.622,171275.622,432923.05408,432923.05408 +3722400.0,161051.646,142775.59199999998,416904.7286399999,126518.53445000002,126518.53445000002,126518.53445000002,56201.582500000004,303281.44920000003,809593.15968,320800.87200000003,488839.42400000006,191454.516,191454.516,191454.516,116989.4075,161051.646,161051.646,271643.94192,111588.03809999999,165866.66403999997,289302.321,82106.75396,104424.36158,195508.55699999997,195508.55699999997,195508.55699999997,195508.55699999997,484228.61564000003,484228.61564000003 +3726000.0,206234.23199999996,160653.939,469109.50188,139988.17503,139988.17503,139988.17503,78458.31,370152.01296,828013.76128,359488.45233,547791.9273600001,260184.55800000002,260184.55800000002,260184.55800000002,173309.08,206234.23199999996,206234.23199999996,288145.63778,135297.5886,201109.00823999997,350771.52599999995,99552.29976,126611.81748,269091.546,269091.546,269091.546,269091.546,620077.5908799999,620077.5908799999 +3729600.0,246634.287,176302.56,514803.4752,149881.11589,149881.11589,149881.11589,80368.46650000001,460787.23616,848452.8096,411680.9445,627323.344,353430.30000000005,353430.30000000005,353430.30000000005,233704.016,246634.287,246634.287,315828.13535,153478.6704,228133.72736,397907.664,112929.98464,143625.71872,308334.351,308334.351,308334.351,308334.351,741547.08958,741547.08958 +3733200.0,305646.13800000004,221822.24699999997,647720.96124,176820.20169000002,176820.20169000002,176820.20169000002,88266.584,549322.02744,891230.6847999999,486301.43541000003,741030.75872,391397.19,391397.19,391397.19,247087.38950000005,305646.13800000004,305646.13800000004,339529.87211,173809.0791,258353.24844,450616.131,127889.14956,162650.96538,384781.63200000004,384781.63200000004,384781.63200000004,384781.63200000004,918976.05492,918976.05492 +3736800.0,495925.88700000005,263786.16000000003,770255.5872,280509.02758999995,280509.02758999995,280509.02758999995,167685.8995,1051212.67864,1140935.0950400003,760459.35483,1158795.20736,440451.774,440451.774,440451.774,376985.96949999995,495925.88700000005,495925.88700000005,549327.45933,240389.34974999996,357319.47789999994,623231.6475,176879.0771,224956.94705,516241.0739999999,516241.0739999999,516241.0739999999,516241.0739999999,1491083.83358,1491083.83358 +3740400.0,1236078.354,586639.635,1712987.7341999998,1661940.4707400003,1661940.4707400003,1661940.4707400003,1459900.043,3387642.1580799995,4076071.504,2929601.01399,4464153.92608,1172546.5890000002,1172546.5890000002,1172546.5890000002,1703868.8869999999,1236078.354,1236078.354,2579004.57347,1566862.3354500001,2329015.12578,4062235.6845000004,1152901.17522,1466273.6423100003,1523141.244,1523141.244,1523141.244,1523141.244,3716475.5843599997,3716475.5843599997 +3744000.0,1090426.383,1202067.582,3510037.3394400002,2033286.8963000001,2033286.8963000001,2033286.8963000001,1934046.8420000002,4163612.6933600004,3161653.983360001,3228680.6176799997,4919894.27456,1305002.79,1305002.79,1305002.79,1753394.552,1090426.383,1090426.383,2184724.4434599997,2135635.2918,3174450.483119999,5536832.237999999,1571405.7208799997,1998532.7792399996,1546397.223,1546397.223,1546397.223,1546397.223,3278548.65822,3278548.65822 +3747600.0,1861356.384,2031789.684,5932825.87728,1226424.46344,1226424.46344,1226424.46344,1911414.743,3967845.8836000003,6374032.561280001,3145299.5935200006,4792837.47584,1674964.6860000002,1674964.6860000002,1674964.6860000002,1304873.08,1861356.384,1861356.384,1987117.0027799997,1568974.1391,2332154.15244,4067710.731,1154455.04556,1468249.87338,2053630.8390000002,2053630.8390000002,2053630.8390000002,2053630.8390000002,5596478.19456,5596478.19456 +3751200.0,1374333.873,1074939.2040000001,3138822.47568,636692.2733600001,636692.2733600001,636692.2733600001,819712.0365,2044869.93808,6659505.580800001,1215498.1902,1852187.7184000004,1360138.029,1360138.029,1360138.029,1369229.9075000002,1374333.873,1374333.873,1796069.67098,2135842.7733,3174758.88772,5537370.153,1571558.38628,1998726.9409400001,884844.0900000001,884844.0900000001,884844.0900000001,884844.0900000001,4132163.8448199993,4132163.8448199993 +3754800.0,742837.434,711988.1880000001,2079005.50896,372542.94451000006,372542.94451000006,372542.94451000006,550783.8735,1403313.28664,3400458.0044800006,908943.42252,1385056.64384,592679.019,592679.019,592679.019,562588.5719999999,742837.434,742837.434,737070.97048,952132.00815,1415267.82446,2468490.3915,700581.08254,891007.4841700001,588445.9170000001,588445.9170000001,588445.9170000001,588445.9170000001,2233464.55156,2233464.55156 +3758400.0,793527.456,1222764.0420000001,3570471.00264,656605.41584,656605.41584,656605.41584,960281.4619999999,1734328.6447199997,2808859.5712000006,1340215.61982,2042233.32544,717088.047,717088.047,717088.047,1078729.2179999999,793527.456,793527.456,925587.2321799999,860011.5789,1278338.1987599998,2229659.649,632798.64324,804800.95902,793629.4500000001,793629.4500000001,793629.4500000001,793629.4500000001,2385872.55104,2385872.55104 +3762000.0,610903.665,648812.877,1894533.60084,463436.26021000004,463436.26021000004,463436.26021000004,862589.924,1254489.44224,1891795.5014400003,901716.1631100001,1374043.6771200001,549077.592,549077.592,549077.592,653823.401,610903.665,610903.665,641801.16195,625580.82405,929875.69402,1621876.2105,460303.91498000006,585420.0797900001,556998.915,556998.915,556998.915,556998.915,1836783.6860999998,1836783.6860999998 +3765600.0,476456.19299999997,406265.62200000003,1186295.6162400001,192622.99419000003,192622.99419000003,192622.99419000003,416385.8195,1003709.2076000001,1463516.96576,683047.6358999999,1040834.4927999999,436899.29999999993,436899.29999999993,436899.29999999993,356620.3165,476456.19299999997,476456.19299999997,502908.49179999996,460935.5057999999,685143.6407199999,1195017.978,339157.48328,431344.58443999995,434233.224,434233.224,434233.224,434233.224,1432544.95362,1432544.95362 +3769200.0,629030.478,742250.1240000001,2167370.36208,1012544.4982400001,1012544.4982400001,1012544.4982400001,992838.3045,1451945.95088,1384154.6227200003,1131470.43387,1724145.42304,495748.476,495748.476,495748.476,1041684.1855,629030.478,629030.478,884182.6174999999,821325.4686,1220834.4002399999,2129362.3260000004,604333.30776,768598.40148,553688.706,553688.706,553688.706,553688.706,1891284.97052,1891284.97052 +3772800.0,855186.0179999999,1269588.0929999999,3707197.2315599998,1397082.65257,1397082.65257,1397082.65257,1107322.3769999999,2235354.42112,2920745.47648,1589137.8614999999,2421543.408,936978.3839999998,936978.3839999998,936978.3839999998,1519326.4239999999,855186.0179999999,855186.0179999999,1449737.87205,1271391.0012,1889820.69808,3296198.8920000005,935492.6379200001,1189770.83816,1026374.7959999999,1026374.7959999999,1026374.7959999999,1026374.7959999999,2571259.2941199997,2571259.2941199997 +3776400.0,860766.24,1198504.5240000002,3499633.21008,1080731.21882,1080731.21882,1080731.21882,1029096.7329999999,2322617.76848,3135560.77312,1542971.4995099998,2351194.6659199996,862861.4969999999,862861.4969999999,862861.4969999999,1273518.2565,860766.24,860766.24,1251926.6701500001,1142945.4334499997,1698896.6689799996,2963191.8644999997,840982.0720199998,1069571.1587099999,1036094.811,1036094.811,1036094.811,1036094.811,2588037.1616,2588037.1616 +3780000.0,2210143.893,1826623.6950000003,5333741.1894000005,3475667.0778500005,3475667.0778500005,3475667.0778500005,2896736.4405,3470250.4940000004,6671609.93984,3721841.93304,5671378.18368,2324173.7970000003,2324173.7970000003,2324173.7970000003,2992661.9835,2210143.893,2210143.893,3672815.31227,2823517.5696,4196932.28864,7320230.7360000005,2077551.1993600002,2642254.7132800003,2466912.3929999997,2466912.3929999997,2466912.3929999997,2466912.3929999997,6645165.97162,6645165.97162 +3783600.0,1629815.382,951155.1359999999,2777372.99712,2051976.9630800001,2051976.9630800001,2051976.9630800001,1752663.8395000002,2642198.33648,4484754.77888,2399521.4873699998,3656413.69504,1601684.1600000001,1601684.1600000001,1601684.1600000001,1919311.9120000002,1629815.382,1629815.382,1324824.4760399999,1838896.59105,2733372.2168199997,4767509.680500001,1353064.65218,1720843.9703900001,1741720.1970000002,1741720.1970000002,1741720.1970000002,1741720.1970000002,4900311.5818799995,4900311.5818799995 +3787200.0,1235654.058,923296.7339999999,2696026.46328,1293910.8224900002,1293910.8224900002,1293910.8224900002,1317784.195,2055819.0212000003,3769643.049600001,1799838.48744,2742611.0284800003,1103975.46,1103975.46,1103975.46,1480891.615,1235654.058,1235654.058,1308676.45467,1436567.9467499997,2135342.9726999993,3724435.4174999995,1057030.2422999998,1344343.8316499998,1264537.686,1264537.686,1264537.686,1264537.686,3715199.8677199995,3715199.8677199995 +3790800.0,1101763.797,947368.6499999999,2766316.4579999996,1270972.96997,1270972.96997,1270972.96997,1250823.9835,2028954.57152,3809814.7296,1771840.71624,2699947.75808,1105496.2619999999,1105496.2619999999,1105496.2619999999,1459927.8505000002,1101763.797,1101763.797,1344802.12802,1424419.97175,2117285.9827,3692940.6675,1048091.7323,1332975.72665,1246274.406,1246274.406,1246274.406,1246274.406,3312636.48298,3312636.48298 +3794400.0,783204.1140000001,683626.572,1996189.59024,836832.15462,836832.15462,836832.15462,692728.2529999999,1075785.09184,2390596.91328,1039252.8764099999,1583623.43072,602261.8259999999,602261.8259999999,602261.8259999999,745020.864,783204.1140000001,783204.1140000001,964777.2699499999,679984.81425,1010742.8597,1762923.5925000003,500334.5053,636331.4681500001,800849.286,800849.286,800849.286,800849.286,2354833.70276,2354833.70276 +3798000.0,136606.218,121550.103,354926.30076,138112.31610000003,138112.31610000003,138112.31610000003,69022.758,229871.27096,875888.0569600001,261444.43206,398391.51552,205961.958,205961.958,205961.958,130695.03999999998,136606.218,136606.218,256527.13644999996,100940.2884,150039.63856,261697.04400000002,74272.11344,94460.17112000001,172223.253,172223.253,172223.253,172223.253,410729.36212,410729.36212 +3801600.0,144437.50799999997,127304.18999999999,371728.2348,147902.38364000001,147902.38364000001,147902.38364000001,49748.545000000006,256607.08295999997,919402.7692800002,295473.74787,450245.71104,213185.10000000003,213185.10000000003,213185.10000000003,132503.77699999997,144437.50799999997,144437.50799999997,266455.77009999997,99623.63339999999,148082.53655999998,258283.494,73303.31544,93228.04212,183165.231,183165.231,183165.231,183165.231,434275.44071999996,434275.44071999996 +3805200.0,157670.079,149606.634,436851.37127999996,141523.25286,141523.25286,141523.25286,59926.188,290918.06992,902413.23584,316211.51709000004,481846.1212800001,208534.52999999997,208534.52999999997,208534.52999999997,128648.17350000002,157670.079,157670.079,290993.32132,108616.1724,161449.22415999998,281597.484,79920.04784,101643.28232,185954.796,185954.796,185954.796,185954.796,474061.37085999997,474061.37085999997 +3808800.0,197961.48599999998,167708.721,489709.46531999996,148563.47374,148563.47374,148563.47374,73791.62700000001,394399.54696000007,942604.77184,373663.77783000004,569392.4233600001,236058.77699999997,236058.77699999997,236058.77699999997,141961.484,197961.48599999998,197961.48599999998,312845.12726999994,137395.33874999997,204227.14549999996,356210.13749999995,101095.82949999998,128574.89724999998,258142.395,258142.395,258142.395,258142.395,595204.20124,595204.20124 +3812400.0,256318.08000000002,186726.339,545240.90988,161228.31659,161228.31659,161228.31659,88340.4655,488834.36175999994,963855.5769600001,437249.68455000006,666285.2336000002,384070.73699999996,384070.73699999996,384070.73699999996,253053.77649999998,256318.08000000002,256318.08000000002,344534.75888,162714.35520000002,241861.83168,421852.03200000006,119725.62432000002,152268.49536000003,332842.371,332842.371,332842.371,332842.371,770663.0272,770663.0272 +3816000.0,310512.018,242254.329,707382.64068,181990.34304,181990.34304,181990.34304,90715.303,613958.42912,1013985.7427200001,513992.72379,783227.00768,448346.064,448346.064,448346.064,278890.528,310512.018,310512.018,378235.70161,190785.75165,283587.70986,494629.7265,140380.62714,178537.77747,410760.24899999995,410760.24899999995,410760.24899999995,410760.24899999995,933606.13412,933606.13412 +3819600.0,410744.99400000006,274744.968,802255.30656,205051.15026000002,205051.15026000002,205051.15026000002,99588.6745,711628.8258400001,1184997.76768,622186.21143,948093.27456,490779.57,490779.57,490779.57,300085.212,410744.99400000006,410744.99400000006,401056.7706599999,229817.57805,341605.38762,595823.3505000001,169100.34138000003,215063.85699000003,500153.115,500153.115,500153.115,500153.115,1234973.28196,1234973.28196 +3823200.0,612028.8030000001,349436.661,1020355.05012,322283.96343,322283.96343,322283.96343,189056.6685,1233698.2188,1482415.6128,920904.87405,1403283.6176,535181.85,535181.85,535181.85,441357.5285,612028.8030000001,612028.8030000001,604844.2628799999,333211.16610000003,495291.65924,863880.8010000001,245177.59876000002,311819.83198,637359.333,637359.333,637359.333,637359.333,1840166.6010200002,1840166.6010200002 +3826800.0,1335390.909,758115.807,2213698.15644,1777839.2274500001,1777839.2274500001,1777839.2274500001,1543230.4545,3612685.16232,4608582.670080001,3182613.70056,4849697.06752,1389902.232,1389902.232,1389902.232,2093485.5094999997,1335390.909,1335390.909,2749665.53316,1751141.0128499998,2602930.5919399997,4539995.2184999995,1288493.8810599998,1638722.08363,1667781.69,1667781.69,1667781.69,1667781.69,4015075.33306,4015075.33306 +3830400.0,1190893.146,1270148.706,3708834.22152,2276344.3984600003,2276344.3984600003,2276344.3984600003,2072401.9575,4478771.22504,3533957.5519999997,3427592.78337,5222998.52704,1392302.8530000001,1392302.8530000001,1392302.8530000001,1955466.016,1190893.146,1190893.146,2293435.8835699996,2250471.0086999997,3345144.5610799994,5834554.466999999,1655902.1249199999,2105996.32666,1653942.5129999998,1653942.5129999998,1653942.5129999998,1653942.5129999998,3580618.72564,3580618.72564 +3834000.0,1872700.8929999997,2029345.581,5925689.09652,1258197.33765,1258197.33765,1258197.33765,2161063.1035,4091086.2881599995,6423391.86816,3223330.1803499996,4911741.2272,1680672.81,1680672.81,1680672.81,1333566.4685,1872700.8929999997,1872700.8929999997,2077054.99846,1686967.7463,2507542.18092,4373620.083000001,1241275.0330800002,1578668.5823400002,2062561.068,2062561.068,2062561.068,2062561.068,5630587.351619999,5630587.351619999 +3837600.0,1431698.4540000001,1097483.952,3204653.13984,666006.65186,666006.65186,666006.65186,895005.895,2114587.3675200003,6860880.8678399995,1304130.1536899998,1987245.9484799998,1410808.107,1410808.107,1410808.107,1408883.3885,1431698.4540000001,1431698.4540000001,1823894.9197299997,2180586.05145,3241266.1801799997,5653371.2445,1604480.60082,2040597.8111100001,901642.779,901642.779,901642.779,901642.779,4304640.01836,4304640.01836 +3841200.0,718116.927,681917.5889999999,1991199.35988,348595.44709,348595.44709,348595.44709,526122.7125,1331346.4936,3619132.48064,852585.4127699999,1299177.7718399998,550625.067,550625.067,550625.067,537768.1785,718116.927,718116.927,692608.8071499999,1030525.3512,1531793.23808,2671732.3920000005,758263.0979200001,964368.1681600001,548297.7690000001,548297.7690000001,548297.7690000001,548297.7690000001,2159138.22718,2159138.22718 +3844800.0,754559.844,1176840.219,3436373.43948,610491.82744,610491.82744,610491.82744,902724.6094999999,1599875.1481599999,2561959.6876800004,1245179.00871,1897415.63232,645054.6810000001,645054.6810000001,645054.6810000001,1016450.162,754559.844,754559.844,852461.0715399999,785506.72995,1167592.71958,2036498.9295,577977.79142,735079.1374100001,735765.9299999999,735765.9299999999,735765.9299999999,735765.9299999999,2268709.93096,2268709.93096 +3848400.0,549716.943,606747.711,1771703.3161199999,414720.82662999997,414720.82662999997,414720.82662999997,803002.3400000001,1096170.7448,1596935.7836800003,788331.6619500001,1201267.2944,461501.226,461501.226,461501.226,619184.7655,549716.943,549716.943,556292.19984,534002.63715,793752.06806,1384451.2815,392920.45894,499720.98637,483937.58400000003,483937.58400000003,483937.58400000003,483937.58400000003,1652815.6086199998,1652815.6086199998 +3852000.0,417530.17199999996,345584.397,1009106.43924,149152.33762,149152.33762,149152.33762,350687.45249999996,852709.6244799999,1204659.6358400001,577534.84656,880053.09952,353849.343,353849.343,353849.343,290368.68000000005,417530.17199999996,417530.17199999996,426729.41453999997,377858.7468,561656.7051199999,979633.7880000001,278029.39888,353601.14824,366159.549,366159.549,366159.549,366159.549,1255374.0504799997,1255374.0504799997 +3855600.0,564158.367,691451.3640000001,2019037.98288,969833.22227,969833.22227,969833.22227,912217.467,1302054.44352,1107340.78848,1017612.7182900001,1550647.9516800002,407324.33400000003,407324.33400000003,407324.33400000003,956196.8955000001,564158.367,564158.367,802467.1099899999,729675.9045,1084604.6778,1891752.3449999997,536897.3322,682832.5131,488801.445,488801.445,488801.445,488801.445,1696236.1567799998,1696236.1567799998 +3859200.0,788491.809,1205573.832,3520275.5894400002,1304819.7086100003,1304819.7086100003,1304819.7086100003,1035079.192,2089375.9823999999,2599301.67552,1451937.5625300002,2212476.2857600003,861523.125,861523.125,861523.125,1420562.283,788491.809,788491.809,1349525.44701,1178090.32905,1751136.7360200002,3054308.2605000003,866841.7729800001,1102459.8387900002,948026.2289999998,948026.2289999998,948026.2289999998,948026.2289999998,2370732.03906,2370732.03906 +3862800.0,868809.561,1203614.685,3514554.8802,1077263.70906,1077263.70906,1077263.70906,1034345.7284999999,2316422.49208,3141108.9856000002,1531972.13085,2334433.7232,853239.081,853239.081,853239.081,1270894.702,868809.561,868809.561,1246686.9688,1143546.4493999998,1699790.03096,2964750.054,841424.3010399999,1070133.5909199999,1039343.094,1039343.094,1039343.094,1039343.094,2612220.74674,2612220.74674 +3866400.0,2250164.13,1870125.426,5460766.243919999,3491694.4692300004,3491694.4692300004,3491694.4692300004,2947243.8904999997,3569236.28648,6862325.9603200015,3792289.60341,5778727.01472,2371385.7989999996,2371385.7989999996,2371385.7989999996,3041138.912,2250164.13,2250164.13,3732636.1759699993,2881590.9245999996,4283253.670639999,7470791.285999999,2120281.7173599997,2696599.9022799996,2518839.009,2518839.009,2518839.009,2518839.009,6765493.484199999,6765493.484199999 +3870000.0,1705046.0190000003,1027111.515,2999165.6238,2165632.05496,2165632.05496,2165632.05496,1837129.308,2807666.33272,4787024.832,2547135.8169600004,3881349.81632,1721447.178,1721447.178,1721447.178,2028959.877,1705046.0190000003,1705046.0190000003,1450021.73901,1975634.8213499999,2936622.6233399995,5122016.2035,1453676.97966,1848803.9439299998,1857205.9289999998,1857205.9289999998,1857205.9289999998,1857205.9289999998,5126505.03046,5126505.03046 +3873600.0,1339422.7110000001,1008979.827,2946221.09484,1400746.8328700003,1400746.8328700003,1400746.8328700003,1460579.5574999999,2257388.09288,4208268.44352,1961083.46343,2988317.65856,1221276.213,1221276.213,1221276.213,1634446.345,1339422.7110000001,1339422.7110000001,1420893.9230199999,1576024.26165,2342633.59386,4085988.8265,1159642.54314,1474847.39547,1393702.581,1393702.581,1393702.581,1393702.581,4027197.61774,4027197.61774 +3877200.0,1186458.795,1028343.573,3002763.23316,1361597.77556,1361597.77556,1361597.77556,1345881.523,2204003.71848,4159117.97824,1914585.8214,2917464.1088,1205642.157,1205642.157,1205642.157,1591093.7384999997,1186458.795,1186458.795,1465038.95824,1544503.7555999998,2295780.8910399997,4004268.996,1136449.67696,1445350.42808,1349390.475,1349390.475,1349390.475,1349390.475,3567286.1103,3567286.1103 +3880800.0,848410.6560000001,750176.013,2190513.95796,907005.9794399999,907005.9794399999,907005.9794399999,753009.4354999999,1196998.90544,2657067.8604800003,1138186.5247199999,1734379.46624,667677.216,667677.216,667677.216,823741.4325,848410.6560000001,848410.6560000001,1060333.22538,749537.8780499999,1114127.90762,1943246.3505000002,551511.82138,701419.39699,878198.709,878198.709,878198.709,878198.709,2550888.03904,2550888.03904 +3884400.0,148219.28399999999,131005.76400000001,382536.83088,149776.96052,149776.96052,149776.96052,71896.90900000001,251868.55367999998,958626.94272,302292.27819000004,460635.85248000006,223806.82499999998,223806.82499999998,223806.82499999998,141005.648,148219.28399999999,148219.28399999999,277564.20535999996,110096.98604999999,163650.33482,285436.63049999997,81009.63418,103029.03139,188312.202,188312.202,188312.202,188312.202,445645.98056,445645.98056 +3888000.0,148153.41,128363.97299999998,374822.8011599999,148213.58805,148213.58805,148213.58805,52746.757,273191.50328,920726.3212800001,302310.69980999996,460663.92352,213115.11000000004,213115.11000000004,213115.11000000004,133165.998,148153.41,148153.41,267680.45863,99889.80749999998,148478.183,258973.57499999998,73499.16699999999,93477.12849999999,187237.39500000002,187237.39500000002,187237.39500000002,187237.39500000002,445447.9194,445447.9194 +3891600.0,174759.19199999998,161006.271,470138.31132,150536.41845,150536.41845,150536.41845,63299.08900000001,371872.07984,966899.95328,352498.94966999994,537141.2566399999,226124.40000000002,226124.40000000002,226124.40000000002,136718.77099999998,174759.19199999998,174759.19199999998,312796.73386,121230.56970000001,180199.51348,314301.477,89201.75252000001,113447.86646,203561.98200000002,203561.98200000002,203561.98200000002,203561.98200000002,525442.6372799999,525442.6372799999 +3895200.0,216500.748,172469.84999999998,503611.96199999994,152276.92139,152276.92139,152276.92139,78861.5065,410931.88616,945463.61152,386127.59766,588384.91072,284645.907,284645.907,284645.907,168993.64999999997,216500.748,216500.748,316824.91164999997,144841.5918,215295.40311999997,375515.238,106574.80088,135543.11924,286260.915,286260.915,286260.915,286260.915,650945.5823199999,650945.5823199999 +3898800.0,266949.38399999996,205142.274,599015.44008,162958.31079,162958.31079,162958.31079,88590.25,515111.27824,975880.5772800001,450707.00157,686791.62144,393692.688,393692.688,393692.688,258039.2885,266949.38399999996,266949.38399999996,350049.94816999993,167045.4495,248299.65579999998,433080.795,122912.45420000001,156321.5441,343918.347,343918.347,343918.347,343918.347,802627.81456,802627.81456 +3902400.0,321749.295,251739.33899999998,735078.86988,187123.56542000003,187123.56542000003,187123.56542000003,90452.5125,619523.84984,1028155.9308800001,525192.91419,800293.9644800001,448375.917,448375.917,448375.917,279811.1645,321749.295,321749.295,381345.23673999996,193119.68565,287056.91546,500680.6665,142097.94154,180721.87867,421790.334,421790.334,421790.334,421790.334,967392.8803,967392.8803 +3906000.0,421954.05299999996,272221.21499999997,794885.9478,204181.58255000002,204181.58255000002,204181.58255000002,100034.536,706959.6524,1223006.2534400001,632715.6790500002,964138.1776000002,486115.78500000003,486115.78500000003,486115.78500000003,298704.57050000003,421954.05299999996,421954.05299999996,398304.84941,237823.9947,353506.28348,616580.7270000001,174991.48252,222556.28146,505366.143,505366.143,505366.143,505366.143,1268675.18602,1268675.18602 +3909600.0,631279.302,373100.001,1089452.0029199999,332716.41535,332716.41535,332716.41535,192417.9635,1276644.9422399998,1541485.2435200003,949747.98219,1447235.02048,549141.1680000001,549141.1680000001,549141.1680000001,467304.93249999994,631279.302,631279.302,619109.0538099998,346042.4652,514364.35568,897147.132,254618.90032000002,323827.39336,657597.054,657597.054,657597.054,657597.054,1898046.43468,1898046.43468 +3913200.0,1341405.915,763228.5120000001,2228627.25504,1804028.44424,1804028.44424,1804028.44424,1555027.2010000001,3628046.52312,4630039.73824,3215410.1637,4899672.6304,1404188.8020000001,1404188.8020000001,1404188.8020000001,2139274.9805,1341405.915,1341405.915,2781095.74704,1767681.3465,2627516.4706,4582877.565,1300664.2994000001,1654200.5687000002,1675480.6350000002,1675480.6350000002,1675480.6350000002,1675480.6350000002,4033160.4510999997,4033160.4510999997 +3916800.0,1187525.043,1261885.926,3684706.90392,2293338.24797,2293338.24797,2293338.24797,2090607.5855,4474181.119360001,3502608.93184,3417459.5206500003,5207557.364800001,1375529.949,1375529.949,1375529.949,1958405.6100000003,1187525.043,1187525.043,2298956.92663,2253403.12365,3349502.91466,5842156.246499999,1658059.58234,2108740.20707,1645865.31,1645865.31,1645865.31,1645865.31,3570491.96262,3570491.96262 +3920400.0,1728366.447,1865537.2169999997,5447368.67364,1131976.3079900001,1131976.3079900001,1131976.3079900001,1976081.5899999999,3731114.06096,5847942.161920001,2929431.7176599996,4463895.95072,1487219.793,1487219.793,1487219.793,1154844.4319999998,1728366.447,1728366.447,1832063.0597099997,1510685.4294,2245512.66296,3916591.8540000003,1111566.06904,1413703.1549200001,1884749.877,1884749.877,1884749.877,1884749.877,5196621.78398,5196621.78398 +3924000.0,1150161.8129999998,813129.522,2374338.20424,505304.7205800001,505304.7205800001,505304.7205800001,577053.337,1491584.9800800001,5817214.12608,763044.3611699999,1162734.26464,1076833.416,1076833.416,1076833.416,1077515.9605,1150161.8129999998,1150161.8129999998,1284778.4939599999,1874752.8894,2786669.72696,4860470.454,1379447.80504,1754398.3829200002,555055.674,555055.674,555055.674,555055.674,3458153.1844199994,3458153.1844199994 +3927600.0,474331.64999999997,435532.41000000003,1271754.6372,173383.78673,173383.78673,173383.78673,233720.2665,778089.6960799999,2155206.81856,417968.04923999996,636903.6940799999,265829.517,265829.517,265829.517,233033.49649999998,474331.64999999997,474331.64999999997,360066.03724,527427.9684,783979.3505599999,1367405.844,388082.80144,493568.39512,276654.129,276654.129,276654.129,276654.129,1426157.1609999998,1426157.1609999998 +3931200.0,577822.323,1004272.827,2932476.65484,290336.09143000003,290336.09143000003,290336.09143000003,695664.0179999999,1277448.84744,1832790.44352,928512.52011,1414876.2211200001,458147.334,458147.334,458147.334,817247.3505,577822.323,577822.323,522980.6939499999,532418.4513000001,791397.30292,1380344.1330000001,391754.8110800001,498238.5013400001,533734.206,533734.206,533734.206,533734.206,1737319.1178199998,1737319.1178199998 +3934800.0,294166.57200000004,302714.232,883925.55744,218376.00466,218376.00466,218376.00466,474044.86499999993,551160.21416,526574.5920000001,342886.65075,522493.94399999996,179246.505,179246.505,179246.505,299833.31,294166.57200000004,294166.57200000004,237161.48963,181845.27945,270298.41538,471450.7245,133802.20562000002,170171.26151,198629.84999999998,198629.84999999998,198629.84999999998,198629.84999999998,884460.82648,884460.82648 +3938400.0,141909.99599999998,55222.326,161249.19191999998,74351.99321,74351.99321,74351.99321,67025.47950000002,234012.52008000002,153095.97248,106732.52856,162640.04352000004,65857.869,65857.869,65857.869,33495.483,141909.99599999998,141909.99599999998,112833.61491999998,39548.43225,58785.5709,102532.9725,29099.8341,37009.52055,62828.60399999999,62828.60399999999,62828.60399999999,62828.60399999999,426676.05463999993,426676.05463999993 +3942000.0,269113.098,211770.74399999998,618370.57248,743130.25809,743130.25809,743130.25809,490273.1995,503089.45135999995,115684.62464000001,531416.56239,809777.6188800001,124231.25399999999,124231.25399999999,124231.25399999999,514672.1405,269113.098,269113.098,469185.96179,326670.63885,485569.69034,846923.8785,240365.06266,305699.19043,96996.891,96996.891,96996.891,96996.891,809133.3813199999,809133.3813199999 +3945600.0,597359.463,1041677.964,3041699.65488,524277.29420000006,524277.29420000006,524277.29420000006,777082.523,1715283.7448000002,1558391.6537600001,960273.78384,1463274.33728,581290.1370000001,581290.1370000001,581290.1370000001,1094866.7449999999,597359.463,597359.463,1068716.1511,779008.0715999999,1157932.98544,2019650.5559999999,573196.06256,728997.6768799999,681494.502,681494.502,681494.502,681494.502,1796060.7854199999,1796060.7854199999 +3949200.0,754400.223,983324.3190000001,2871307.0114800003,656446.7102600001,656446.7102600001,656446.7102600001,919523.122,2010830.6629599996,2698062.9606399997,1306690.6960800001,1991147.7273600004,752856.6569999999,752856.6569999999,752856.6569999999,1076721.45,754400.223,754400.223,836996.3347199999,966890.41065,1437205.00546,2506752.9165,711440.35154,904818.4336699999,854061.219,854061.219,854061.219,854061.219,2268230.0038199998,2268230.0038199998 +3952800.0,2052189.9270000001,1763974.761,5150806.302119999,3047679.19082,3047679.19082,3047679.19082,2828839.3945,3327824.1944,5895834.355200001,3563758.93587,5430489.80704,2178293.493,2178293.493,2178293.493,2607486.6615,2052189.9270000001,2052189.9270000001,2712940.0431899996,2643933.6765,3929995.2425999995,6854642.865,1945412.9274,2474199.6627,2319901.5360000003,2319901.5360000003,2319901.5360000003,2319901.5360000003,6170251.04718,6170251.04718 +3956400.0,1510617.9299999997,911940.327,2662865.75484,1595583.4064500001,1595583.4064500001,1595583.4064500001,1631242.886,2479059.39648,3842870.0192,2089346.4463199999,3183766.01344,1399284.996,1399284.996,1399284.996,1648258.3985,1510617.9299999997,1510617.9299999997,1194583.30758,1589996.8628999998,2363402.7443599994,4122214.0889999997,1169923.6176399998,1487922.9902199998,1520560.6739999999,1520560.6739999999,1520560.6739999999,1520560.6739999999,4541924.576199999,4541924.576199999 +3960000.0,1208890.818,916015.8060000001,2674766.15352,1269806.26377,1269806.26377,1269806.26377,1227888.333,2018772.8819199998,3700565.85344,1713211.0947000002,2610607.3824000005,1065416.682,1065416.682,1065416.682,1432168.9935,1208890.818,1208890.818,1271936.50103,1400632.4385000002,2081927.7234,3631269.2850000006,1030588.8066000001,1310715.2943000002,1216216.608,1216216.608,1216216.608,1216216.608,3634731.72612,3634731.72612 +3963600.0,1136081.364,981106.422,2864830.75224,1311513.8289,1311513.8289,1311513.8289,1296563.7335,2100860.03288,3971167.9801600007,1816584.4452,2768128.6784,1123387.863,1123387.863,1123387.863,1518235.5755,1136081.364,1136081.364,1383298.4098699999,1481632.23195,2202327.41638,3841268.7495,1090188.65462,1386515.10101,1277225.1779999998,1277225.1779999998,1277225.1779999998,1277225.1779999998,3415817.96776,3415817.96776 +3967200.0,809864.3999999999,718039.617,2096675.6816399998,872011.7043,872011.7043,872011.7043,725196.2865,1127836.06576,2524152.13376,1086169.98462,1655116.16704,624519.615,624519.615,624519.615,787170.2265,809864.3999999999,809864.3999999999,1004962.2177399999,715577.23485,1063648.13674,1855200.2385000002,526523.49626,669638.9432300001,829775.2259999999,829775.2259999999,829775.2259999999,829775.2259999999,2434992.2959999996,2434992.2959999996 +3970800.0,138566.41199999998,123475.02599999998,360547.07592,139402.32702000003,139402.32702000003,139402.32702000003,69644.3895,234920.83863999997,890385.3196800001,261948.69855,399159.9216,208695.756,208695.756,208695.756,132732.1065,138566.41199999998,138566.41199999998,260623.22663,102322.10789999999,152093.60235999996,265279.539,75288.85964,95753.28121999999,166156.278,166156.278,166156.278,166156.278,416623.01207999996,416623.01207999996 +3974400.0,135626.31600000002,118488.729,345987.08868,111562.58278000001,111562.58278000001,111562.58278000001,47364.516500000005,237076.21328,841893.9648,274753.32801,418671.73792000004,195945.108,195945.108,195945.108,123188.88050000001,135626.31600000002,135626.31600000002,247372.42217999997,92064.11804999999,136845.92362,238684.75049999997,67741.00537999999,86153.82899,168865.68300000002,168865.68300000002,168865.68300000002,168865.68300000002,407783.12344,407783.12344 +3978000.0,160689.93300000002,151762.851,443147.52492,115493.31552000002,115493.31552000002,115493.31552000002,60944.555,287023.60751999996,924368.52096,318024.32718,484608.49856000004,212324.58299999998,212324.58299999998,212324.58299999998,131642.294,160689.93300000002,160689.93300000002,295529.81990999996,110215.52549999999,163826.5342,285743.955,81096.85579999999,103139.96089999999,187527.40800000002,187527.40800000002,187527.40800000002,187527.40800000002,483141.06522,483141.06522 +3981600.0,192521.139,166236.717,485411.21364,117292.86602,117292.86602,117292.86602,72150.904,365767.51616,927241.7984000002,365743.19607000006,557322.96544,230796.021,230796.021,230796.021,140551.9465,192521.139,192521.139,308864.8186,135672.24195,201665.90038,351742.8495,99827.97062000001,126962.41901000001,253654.55100000004,253654.55100000004,253654.55100000004,253654.55100000004,578846.89126,578846.89126 +3985200.0,243913.686,178481.57700000002,521166.20484,145827.91684999998,145827.91684999998,145827.91684999998,84863.9435,453575.86983999994,910681.58976,412457.81136,628507.14112,345402.108,345402.108,345402.108,239419.86599999998,243913.686,243913.686,328674.06766999996,154410.58754999997,229518.94741999995,400323.74549999996,113615.69157999998,144497.80909,315661.78500000003,315661.78500000003,315661.78500000003,315661.78500000003,733367.1492399998,733367.1492399998 +3988800.0,288945.669,212094.594,619316.21448,163003.63431,163003.63431,163003.63431,86218.181,557015.88872,936587.51168,475538.46627,724630.0438399999,411311.529,411311.529,411311.529,261075.33899999998,288945.669,288945.669,355485.54157999996,177844.10624999998,264350.9925,461077.3125,130858.13249999999,166426.95375000002,377137.719,377137.719,377137.719,377137.719,868763.31146,868763.31146 +3992400.0,395323.329,269849.211,787959.6961200001,198812.7845,198812.7845,198812.7845,98575.41050000001,693338.0217599999,1130064.50624,602688.1728000001,918381.9776000001,479075.41799999995,479075.41799999995,479075.41799999995,295502.6165,395323.329,395323.329,395113.47693999996,216186.9507,321344.55387999996,560484.687,159070.89212,202308.28226,484099.173,484099.173,484099.173,484099.173,1188605.47586,1188605.47586 +3996000.0,503849.265,320146.62899999996,934828.1566799999,301674.02474,301674.02474,301674.02474,189517.8985,830417.02464,1431128.01088,752433.6143100001,1146565.5075200002,525462.831,525462.831,525462.831,344437.7125,503849.265,503849.265,419452.05288999993,312059.47410000005,463851.36644,809043.0810000001,229614.13156000004,292026.02638000005,571674.294,571674.294,571674.294,571674.294,1514906.7900999999,1514906.7900999999 +3999600.0,1221377.7780000002,1217894.943,3556253.23356,1142225.0278999999,1142225.0278999999,1142225.0278999999,1100819.2089999998,1960272.1068799996,2194648.12416,1665064.8819,2537241.7248,813011.0159999998,813011.0159999998,813011.0159999998,1767808.3255,1221377.7780000002,1221377.7780000002,2390486.4502999997,737541.3042,1096295.96328,1912144.122,542684.7127200001,690192.9735600001,1673587.2630000003,1673587.2630000003,1673587.2630000003,1673587.2630000003,3672275.85252,3672275.85252 +4003200.0,2210233.5810000002,1986021.1979999999,5799181.898159999,2799752.5645100004,2799752.5645100004,2799752.5645100004,2016432.376,3332837.3555199997,3779426.7808,3225449.69061,4914970.957119999,1351183.749,1351183.749,1351183.749,2216254.0855000005,2210233.5810000002,2210233.5810000002,3313779.5577899995,1723865.76945,2562388.1313799997,4469281.6245,1268424.68962,1613197.84351,2364591.273,2364591.273,2364591.273,2364591.273,6645435.63354,6645435.63354 +4006800.0,2138444.136,2113948.4400000004,6172729.444800001,2557731.0523600006,2557731.0523600006,2557731.0523600006,2305560.1555,3616520.8626400004,8727976.27776,2733496.25682,4165327.62944,2214302.163,2214302.163,2214302.163,2171686.1319999998,2138444.136,2138444.136,1766042.7361199998,3119553.2956499998,4636965.639459999,8087730.7665,2295375.01754,2919285.67667,1719816.933,1719816.933,1719816.933,1719816.933,6429588.7022400005,6429588.7022400005 +4010400.0,1619285.1030000001,1379836.0350000001,4029121.2222,1766516.4508200001,1766516.4508200001,1766516.4508200001,2473553.1169999996,3203478.28368,5535897.875840001,3170043.01698,4830541.74016,2312531.5530000003,2312531.5530000003,2312531.5530000003,2564859.766,1619285.1030000001,1619285.1030000001,1686423.2005399999,2988290.556,4441854.1104,7747419.96,2198791.5696,2796449.6808,1747004.8140000002,1747004.8140000002,1747004.8140000002,1747004.8140000002,4868650.54302,4868650.54302 +4014000.0,1179701.91,976943.529,2852675.10468,1565491.8492400001,1565491.8492400001,1565491.8492400001,2183345.2550000004,3106576.5127200005,6119327.300480002,2430036.36477,3702912.55584,984290.508,984290.508,984290.508,2088930.7005,1179701.91,1179701.91,980102.1752599999,2150580.5127,3196665.35468,5575579.107,1582402.45132,2012518.5538599999,1367128.215,1367128.215,1367128.215,1367128.215,3546970.4094,3546970.4094 +4017600.0,957500.4299999999,807294.294,2357299.33848,1119618.34721,1119618.34721,1119618.34721,1419007.7965,2382963.77912,2739872.548480001,1785566.6247299998,2720863.4281599997,898065.2250000001,898065.2250000001,898065.2250000001,1286481.784,957500.4299999999,957500.4299999999,895865.6457399998,1263778.3133999999,1878505.0485599998,3276462.2939999998,929891.20344,1182646.86612,995510.8769999999,995510.8769999999,995510.8769999999,995510.8769999999,2878884.6262,2878884.6262 +4021200.0,618990.243,476979.39300000004,1392779.8275600001,489481.53738,489481.53738,489481.53738,616608.097,1322077.88216,1611226.3481599998,1007845.48263,1535764.54496,523584.924,523584.924,523584.924,741683.6699999999,618990.243,618990.243,510272.74129,668112.0488999999,993094.9467599998,1732142.349,491598.49523999996,625220.90502,622688.211,622688.211,622688.211,622688.211,1861097.33062,1861097.33062 +4024800.0,481600.36199999996,374743.983,1094252.4303599999,303134.10060999996,303134.10060999996,303134.10060999996,482277.306,901580.1636,1226816.2444799999,728206.93323,1109648.66016,403664.7270000001,403664.7270000001,403664.7270000001,528043.334,481600.36199999996,481600.36199999996,353307.60244,484453.4103,720101.11852,1255990.323,356462.01548,453352.69754,466455.774,466455.774,466455.774,466455.774,1448011.7550799998,1448011.7550799998 +4028400.0,467450.32499999995,363595.353,1061698.43076,258378.91541000002,258378.91541000002,258378.91541000002,456411.1615,869670.5496,1186096.4736000001,695606.6550300001,1059972.0457600001,394152.0,394152.0,394152.0,487375.238,467450.32499999995,467450.32499999995,333980.4741,464263.7229,690090.76836,1203646.689,341606.39363999997,434459.13821999996,436694.03400000004,436694.03400000004,436694.03400000004,436694.03400000004,1405467.3105,1405467.3105 +4032000.0,896577.3030000001,777396.0660000001,2269996.51272,966010.0067200001,966010.0067200001,966010.0067200001,970999.9705,1635977.75368,2888963.63648,1423745.10852,2169516.3558400003,829977.603,829977.603,829977.603,1109605.098,896577.3030000001,896577.3030000001,1004970.6592899999,1104319.74915,1641482.6888599999,2863051.2015,812561.19814,1033425.14797,960659.784,960659.784,960659.784,960659.784,2695709.09102,2695709.09102 +4035600.0,984667.9500000001,879636.2550000001,2568537.8646,1132746.34385,1132746.34385,1132746.34385,1092700.049,1886712.5356,3345612.3814400006,1598020.27014,2435078.50688,929956.86,929956.86,929956.86,1242755.0625,984667.9500000001,984667.9500000001,1221014.32011,1244374.1154,1849662.26536,3226155.114,915613.5466400001,1164488.36972,1081636.113,1081636.113,1081636.113,1081636.113,2960568.303,2960568.303 +4039200.0,1073785.416,957595.4309999999,2796178.6585199996,1286398.72988,1286398.72988,1286398.72988,1233345.239,2102972.2616,3692974.9536000006,1805425.74933,2751124.9513600003,1058979.309,1058979.309,1058979.309,1381566.081,1073785.416,1073785.416,1346915.63721,1371203.7615,2038184.3566,3554972.7150000003,1008935.1134,1283175.8657,1192521.777,1192521.777,1192521.777,1192521.777,3228514.81744,3228514.81744 +4042800.0,1122825.1469999999,1005142.1939999999,2935015.2064799997,1357271.6545300002,1357271.6545300002,1357271.6545300002,1290282.112,2219640.67472,3905547.07712,1893237.51603,2884933.35776,1139153.6639999999,1139153.6639999999,1139153.6639999999,1458582.2510000002,1122825.1469999999,1122825.1469999999,1404107.2587099997,1440743.7681,2141549.9960399996,3735261.621,1060102.8219599999,1348251.57558,1257176.6460000002,1257176.6460000002,1257176.6460000002,1257176.6460000002,3375960.9419799997,3375960.9419799997 +4046400.0,1131044.562,1015419.102,2965023.7778399996,1353731.5196900002,1353731.5196900002,1353731.5196900002,1288888.202,2238091.27288,3950867.26016,1906369.87065,2904944.5648000003,1151459.775,1151459.775,1151459.775,1471027.1485,1131044.562,1131044.562,1415933.42293,1451709.5319,2157849.72396,3763691.379,1068171.45804,1358513.36442,1274340.4500000002,1274340.4500000002,1274340.4500000002,1274340.4500000002,3400673.9830799997,3400673.9830799997 +4050000.0,1072713.2370000002,912750.9180000001,2665232.6805600002,1114373.8184700003,1114373.8184700003,1114373.8184700003,980980.0210000002,1858285.8333599998,2857845.4656,1572230.01663,2395779.07296,908707.9470000002,908707.9470000002,908707.9470000002,1163398.523,1072713.2370000002,1072713.2370000002,1354061.9937,1151773.8138000001,1712019.34792,2986080.2580000004,847478.0160800001,1077832.77884,1106647.0620000002,1106647.0620000002,1106647.0620000002,1106647.0620000002,3225291.13258,3225291.13258 +4053600.0,491435.76599999995,348564.696,1017808.91232,593320.75792,593320.75792,593320.75792,411027.89350000006,927007.68712,1201083.0643200001,753610.3230600001,1148358.5875200003,425367.0299999999,425367.0299999999,425367.0299999999,518820.169,491435.76599999995,491435.76599999995,792103.04147,263351.7927,391451.30668,682763.907,193774.89932,246445.25785999998,613924.497,613924.497,613924.497,613924.497,1477583.53644,1477583.53644 +4057200.0,177950.133,128084.44499999998,374006.57939999993,187330.17897000004,187330.17897000004,187330.17897000004,70741.496,385380.55464000005,920826.3737599999,342248.21652,521521.09184,257112.16500000004,257112.16500000004,257112.16500000004,141899.1595,177950.133,177950.133,269143.32393,110298.8421,163950.37764,285959.961,81158.16036,103217.92878,191264.382,191264.382,191264.382,191264.382,535036.73322,535036.73322 +4060800.0,186152.055,177845.391,519308.54172,167991.1222,167991.1222,167991.1222,66496.5735,416344.67263999995,959770.69184,345315.54183,526195.11136,259430.76899999997,259430.76899999997,259430.76899999997,137304.66749999998,186152.055,186152.055,271870.31976,115692.43364999999,171967.51865999997,299943.3465,85126.77834,108265.26507,192622.62300000002,192622.62300000002,192622.62300000002,192622.62300000002,559697.1786999999,559697.1786999999 +4064400.0,201828.12,198127.02000000002,578530.8984000001,172199.11148000002,172199.11148000002,172199.11148000002,76956.2045,418794.13800000004,1008926.6841600001,372290.62814999995,567300.0048,283360.15499999997,283360.15499999997,283360.15499999997,137929.05000000002,201828.12,201828.12,308447.70502,130352.3766,193758.34743999998,337950.606,95913.60056,121984.07588,237964.70999999996,237964.70999999996,237964.70999999996,237964.70999999996,606829.8807999999,606829.8807999999 +4068000.0,227926.287,211140.366,616529.86872,175278.90897,175278.90897,175278.90897,82528.5895,435704.3544,1008029.88928,411024.97253999993,626323.7676799999,363414.546,363414.546,363414.546,173272.14450000002,227926.287,227926.287,326344.71454,152486.80515,226659.39926,395336.16150000005,112200.16774,142697.52877,304845.95699999994,304845.95699999994,304845.95699999994,304845.95699999994,685298.36958,685298.36958 +4071600.0,284011.47,241039.93499999997,703836.6101999999,183638.06219000003,183638.06219000003,183638.06219000003,88707.892,568729.50376,1044911.9360000002,479895.71070000005,731269.6544000001,432683.94000000006,432683.94000000006,432683.94000000006,272390.8075,284011.47,284011.47,353932.3444799999,179705.47005,267117.76042,465903.07050000003,132227.72858000002,168168.82259000003,377328.98699999996,377328.98699999996,377328.98699999996,377328.98699999996,853927.8197999998,853927.8197999998 +4075200.0,361209.336,259546.80599999998,757876.67352,190408.75546000001,190408.75546000001,190408.75546000001,89485.15800000001,663683.59968,1145628.5094400002,558884.75307,851633.9094400001,467893.6320000001,467893.6320000001,467893.6320000001,283933.412,361209.336,361209.336,389318.8410799999,214066.63395,318192.87318,554987.5695,157510.75782,200324.08461000002,446357.25899999996,446357.25899999996,446357.25899999996,446357.25899999996,1086036.07024,1086036.07024 +4078800.0,461728.1610000001,310105.52999999997,905508.1475999999,215954.06569,215954.06569,215954.06569,110143.8345,795177.07472,1443452.6355200002,687363.20709,1047410.6012800001,528205.881,528205.881,528205.881,336519.13750000007,461728.1610000001,461728.1610000001,423449.53325999994,296815.82085,441192.89914,769522.4985,218397.81386000002,277760.97803,548536.9890000001,548536.9890000001,548536.9890000001,548536.9890000001,1388262.67074,1388262.67074 +4082400.0,527229.45,372984.411,1089114.48012,310231.1061300001,310231.1061300001,310231.1061300001,197965.39,933967.24432,1617502.82432,796967.99658,1214427.4233600001,549545.991,549545.991,549545.991,419880.3805,527229.45,527229.45,437887.09458,337600.64115,501816.26166,875260.9215,248407.38534,315927.51357,586703.724,586703.724,586703.724,586703.724,1585203.213,1585203.213 +4086000.0,1246738.311,1231398.984,3595685.0332799996,1182472.04097,1182472.04097,1182472.04097,1104560.3694999998,2050905.4379199997,2310517.5347200003,1701873.9834599998,2593331.7843199996,844745.2440000001,844745.2440000001,844745.2440000001,1794099.2159999998,1246738.311,1246738.311,2381839.06597,747224.838,1110689.7592,1937249.5799999998,549809.8807999999,699254.8484,1678925.028,1678925.028,1678925.028,1678925.028,3748526.5217399998,3748526.5217399998 +4089600.0,2223126.8039999995,1990222.3620000002,5811449.297040001,2810358.49611,2810358.49611,2810358.49611,2019192.5984999998,3341833.10464,3795970.4736,3248590.87749,4950233.71808,1372771.512,1372771.512,1372771.512,2206358.1085,2223126.8039999995,2223126.8039999995,3390683.89166,1726013.30625,2565580.2725,4474849.3125,1270004.8525,1615207.51375,2363441.589,2363441.589,2363441.589,2363441.589,6684201.257359999,6684201.257359999 +4093200.0,2277112.965,2282809.182,6665802.811439999,2695516.1608100003,2695516.1608100003,2695516.1608100003,2447432.2005,3844775.0784799997,9087557.16608,2946440.0265299994,4489813.37376,2342580.825,2342580.825,2342580.825,2326594.1615,2277112.965,2277112.965,1954539.8011099997,3248702.2268999997,4828935.161959999,8422561.329,2390403.12004,3040143.56542,1849218.2489999998,1849218.2489999998,1849218.2489999998,1849218.2489999998,6846519.6481,6846519.6481 +4096800.0,1684103.3940000003,1475594.508,4308735.96336,1917399.6169900002,1917399.6169900002,1917399.6169900002,2613987.1415,3313359.4487999994,5999447.130240001,3272750.6244300003,4987048.570560001,2371681.1580000003,2371681.1580000003,2371681.1580000003,2661085.847,1684103.3940000003,1684103.3940000003,1774539.40872,3142848.3813,4671591.914919999,8148125.433,2312515.59908,2941085.27534,1804494.528,1804494.528,1804494.528,1804494.528,5063537.53796,5063537.53796 +4100400.0,1220151.447,1018868.2379999999,2975095.2549599996,1694559.152,1694559.152,1694559.152,2352418.544,3182190.0996000003,6542757.871359999,2577883.5824700003,3928203.5542400004,1036277.754,1036277.754,1036277.754,2172901.682,1220151.447,1220151.447,1022301.13258,2319157.1942999996,3447241.0641199993,6012629.762999999,1706441.5898799999,2170273.02874,1434494.064,1434494.064,1434494.064,1434494.064,3668588.6839799997,3668588.6839799997 +4104000.0,970386.4469999999,813581.7960000001,2375658.84432,1216657.77398,1216657.77398,1216657.77398,1432223.8069999998,2478679.57456,3022765.7568000006,1823574.2038500002,2778779.7392,919876.677,919876.677,919876.677,1358115.304,970386.4469999999,970386.4469999999,888707.3748799999,1333382.0913,1981965.47892,3456916.5330000003,981105.83508,1247782.25334,1011905.1569999999,1011905.1569999999,1011905.1569999999,1011905.1569999999,2917628.5839799996,2917628.5839799996 +4107600.0,603909.669,471034.41300000006,1375420.4859600002,469888.19108,469888.19108,469888.19108,660824.1045,1379838.29704,1554701.3427200003,1026127.9986299999,1563623.6169599998,501114.48,501114.48,501114.48,711591.398,603909.669,603909.669,482411.9273999999,660376.78785,981597.10194,1712087.9685,485906.87106000003,617982.22863,606678.1499999999,606678.1499999999,606678.1499999999,606678.1499999999,1815755.07146,1815755.07146 +4111200.0,438675.768,333933.564,975086.00688,257147.74041000003,257147.74041000003,257147.74041000003,433800.5945,819121.6003200001,1077375.47328,671035.5804600001,1022530.4083200002,350897.319,350897.319,350897.319,462518.7035,438675.768,438675.768,305710.20895999996,425989.8783,633199.76972,1104418.203,313444.40428,398642.37994,418515.54900000006,418515.54900000006,418515.54900000006,418515.54900000006,1318951.8091199999,1318951.8091199999 +4114800.0,396728.868,298058.757,870331.5704399999,190877.31420999998,190877.31420999998,190877.31420999998,374544.527,730118.0614399998,929957.42464,580370.11935,884373.5152000001,310122.738,310122.738,310122.738,374501.099,396728.868,396728.868,265343.41430999996,367507.06019999995,546269.75368,952796.0819999999,270412.60232,343914.01436,352304.163,352304.163,352304.163,352304.163,1192831.46312,1192831.46312 +4118400.0,834145.746,717523.236,2095167.8491200001,871450.66701,871450.66701,871450.66701,899848.8765000001,1508921.14856,2634334.8403200004,1322854.29591,2015777.9747200003,753680.9759999999,753680.9759999999,753680.9759999999,1007272.0489999999,834145.746,834145.746,902726.5575899999,1012062.16665,1504349.1958599999,2623864.8765000002,744677.84114,947090.2744700001,877272.441,877272.441,877272.441,877272.441,2507998.20964,2507998.20964 +4122000.0,949277.9579999999,846922.9019999999,2473014.8738399995,1089442.0607399999,1089442.0607399999,1089442.0607399999,1052273.446,1809316.5924,3185655.6224000007,1547516.9931900003,2358121.1324800006,887812.0499999999,887812.0499999999,887812.0499999999,1183583.464,949277.9579999999,949277.9579999999,1184537.57448,1196002.75005,1777762.11242,3100747.8705,880021.77658,1119222.32659,1037196.804,1037196.804,1037196.804,1037196.804,2854162.3937199996,2854162.3937199996 +4125600.0,973388.61,861676.1760000002,2516094.43392,1177023.79245,1177023.79245,1177023.79245,1118683.181,1881140.4748000002,3280723.18016,1633301.17902,2488839.89184,938440.932,938440.932,938440.932,1219704.4370000002,973388.61,973388.61,1223900.77225,1229893.2189000002,1828137.5747600002,3188612.0490000006,904958.4672400001,1150937.1110200002,1069691.934,1069691.934,1069691.934,1069691.934,2926655.0873999996,2926655.0873999996 +4129200.0,989180.7659999998,877027.8929999999,2560921.44756,1202524.2757,1202524.2757,1202524.2757,1137830.3159999999,1920211.6632800002,3349434.928000001,1661964.34068,2532517.09056,970390.3799999999,970390.3799999999,970390.3799999999,1244919.2595,989180.7659999998,989180.7659999998,1240999.70176,1252169.2314,1861249.0797599999,3246364.6739999996,921349.2122399999,1171783.05852,1092565.026,1092565.026,1092565.026,1092565.026,2974136.8364399998,2974136.8364399998 +4132800.0,1049037.834,937847.064,2738513.42688,1257746.6177100001,1257746.6177100001,1257746.6177100001,1195861.681,2061952.56296,3623199.46816,1767229.73259,2692921.49728,1050676.968,1050676.968,1050676.968,1340531.633,1049037.834,1049037.834,1313143.2852199997,1337826.92175,1988572.3627,3468440.1675,984376.3523,1251941.73665,1172764.359,1172764.359,1172764.359,1172764.359,3154107.08756,3154107.08756 +4136400.0,988262.3220000002,835489.0409999999,2439627.9997199997,1026622.03809,1026622.03809,1026622.03809,900598.174,1690033.22584,2579945.19808,1440988.06845,2195791.3424,818457.915,818457.915,818457.915,1045496.7110000001,988262.3220000002,988262.3220000002,1244982.7280799998,1048524.9687,1558548.22508,2718398.067,771507.26092,981212.25466,1008764.22,1008764.22,1008764.22,1008764.22,2971375.38148,2971375.38148 +4140000.0,449430.954,314578.395,918568.9134,546846.4657700001,546846.4657700001,546846.4657700001,377575.4255,839604.3374399999,1066165.59168,688228.4677800001,1048729.09376,382115.334,382115.334,382115.334,464260.49250000005,449430.954,449430.954,720387.3267499999,238492.21229999998,354499.53531999997,618313.143,175483.15868,223181.60114,557096.1329999999,557096.1329999999,557096.1329999999,557096.1329999999,1351289.06836,1351289.06836 +4143600.0,168150.41100000002,119753.98199999999,349681.62743999995,178488.71854000003,178488.71854000003,178488.71854000003,68134.0835,358009.76528,850701.73824,323673.45654000004,493216.69568000006,240560.84399999998,240560.84399999998,240560.84399999998,132278.0095,168150.41100000002,168150.41100000002,252205.47169999997,103202.24579999999,153401.85671999998,267561.378,75936.46728,96576.91644,180287.32799999998,180287.32799999998,180287.32799999998,180287.32799999998,505572.23574,505572.23574 +4147200.0,173309.682,155470.512,453973.89504,159986.56773,159986.56773,159986.56773,59579.666999999994,395981.96504000004,887087.2326400001,326043.30569999997,496827.8944,245202.59699999998,245202.59699999998,245202.59699999998,129232.9465,173309.682,173309.682,256293.49550999998,105313.76595,156540.46198,273035.68950000004,77490.12902000001,98552.88221000001,180636.21899999998,180636.21899999998,180636.21899999998,180636.21899999998,521084.44388,521084.44388 +4150800.0,187726.497,188413.59,550167.6828,161264.17736,161264.17736,161264.17736,67909.807,402047.10872,946671.82464,345922.30575000006,527119.7040000001,250941.31200000003,250941.31200000003,250941.31200000003,129956.862,187726.497,187726.497,287996.98954,119013.05699999999,176903.3588,308552.37,87570.10119999999,111372.7126,206130.79499999998,206130.79499999998,206130.79499999998,206130.79499999998,564431.00098,564431.00098 +4154400.0,211468.32300000003,200561.37,585639.2004,172182.70531000002,172182.70531000002,172182.70531000002,77927.39499999999,415187.0444799999,979637.0387200002,393158.59485,599098.8112,332256.13800000004,332256.13800000004,332256.13800000004,141049.46099999998,211468.32300000003,211468.32300000003,309117.1993,138909.06269999998,206477.17468,360134.607,102209.63132,129991.44386,276539.133,276539.133,276539.133,276539.133,635814.75782,635814.75782 +4158000.0,261649.446,233199.93300000002,680943.80436,182342.99633,182342.99633,182342.99633,87047.5585,514948.5524799999,1016052.63808,447458.76378,681841.92576,411504.84300000005,411504.84300000005,411504.84300000005,255891.66050000003,261649.446,261649.446,345888.75463999994,171479.3571,254890.30364,444576.11100000003,126174.93436,160470.80578,346020.28500000003,346020.28500000003,346020.28500000003,346020.28500000003,786692.66764,786692.66764 +4161600.0,321520.84500000003,242746.575,708819.9990000001,181991.99953,181991.99953,181991.99953,85098.825,617672.7917599999,1025489.6345600002,508040.79206999997,774157.39744,436427.20499999996,436427.20499999996,436427.20499999996,263474.792,321520.84500000003,321520.84500000003,358537.56353999994,182466.87344999998,271222.36497999995,473062.2645,134259.57602,170752.95071,408075.921,408075.921,408075.921,408075.921,966706.0073,966706.0073 +4165200.0,402793.78800000006,273068.136,797358.9571199999,201982.58597,201982.58597,201982.58597,99242.913,695987.1684,1262727.4361600003,603317.31411,919340.6691200001,476602.6020000001,476602.6020000001,476602.6020000001,290205.832,402793.78800000006,402793.78800000006,390601.6728899999,251338.6746,373594.77064,651618.786,184935.61736,235203.35228,477289.782,477289.782,477289.782,477289.782,1211066.65592,1211066.65592 +4168800.0,592245.378,327829.944,957263.43648,309040.78579,309040.78579,309040.78579,187237.6695,1247357.78608,1523826.1548800003,902976.59991,1375964.34272,531966.663,531966.663,531966.663,474128.767,592245.378,592245.378,600650.59704,338925.23415,503785.16286,878695.0515000001,249382.02414,317167.07097,620466.921,620466.921,620466.921,620466.921,1780684.4365199998,1780684.4365199998 +4172400.0,1297450.107,725169.453,2117494.80276,1755614.5203300002,1755614.5203300002,1755614.5203300002,1527297.849,3545608.99552,4464889.91168,3084680.2245,4700465.104,1349566.278,1349566.278,1349566.278,2001388.9980000001,1297450.107,1297450.107,2713688.71007,1736797.1561999999,2581609.60008,4502807.442,1277939.63592,1625299.06716,1603099.296,1603099.296,1603099.296,1603099.296,3900999.98838,3900999.98838 +4176000.0,1152176.274,1236608.058,3610895.5293599996,2272373.00235,2272373.00235,2272373.00235,2030382.221,4362989.913759999,3393995.58912,3367428.1347,5131319.0624,1347994.446,1347994.446,1347994.446,1902117.2695000002,1152176.274,1152176.274,2225141.51704,2210090.5485,3285122.2473999998,5729864.385,1626190.0826,2068208.1923,1599266.793,1599266.793,1599266.793,1599266.793,3464209.99716,3464209.99716 +4179600.0,1873156.719,2042673.2759999998,5964605.965919999,1296926.31398,1296926.31398,1296926.31398,2246758.206,4102975.3076,6420341.910400001,3237207.9440400004,4932888.29568,1672892.9460000002,1672892.9460000002,1672892.9460000002,1322767.3655,1873156.719,1873156.719,2551545.38496,1729642.25205,2570974.40922,4484257.6905000005,1272675.03978,1618603.49019,2067450.1379999998,2067450.1379999998,2067450.1379999998,2067450.1379999998,5631957.86846,5631957.86846 +4183200.0,1377448.0380000002,1118262.459,3265326.3802799997,615281.9488199999,615281.9488199999,615281.9488199999,806780.0055,2031763.8276,6734046.484480001,1218175.04865,1856266.7408,1343565.471,1343565.471,1343565.471,1337426.7515,1377448.0380000002,1377448.0380000002,2138457.34206,2130084.0661500003,3166199.0316600003,5522440.171500001,1567321.1153400003,1993337.9285700002,844128.279,844128.279,844128.279,844128.279,4141527.10092,4141527.10092 +4186800.0,635304.747,651924.237,1903618.77204,301853.32452,301853.32452,301853.32452,426450.605,1218238.6759199998,3405815.9257600005,710221.1627699999,1082241.7718399998,459808.40699999995,459808.40699999995,459808.40699999995,432144.4855,635304.747,635304.747,629453.05501,864406.45665,1284870.8318599998,2241053.7765,636032.40514,808913.69647,460370.97900000005,460370.97900000005,460370.97900000005,460370.97900000005,1910149.6059799998,1910149.6059799998 +4190400.0,670714.227,1129350.408,3297703.19136,532215.5524400001,532215.5524400001,532215.5524400001,811920.97,1432816.74472,2222974.60672,1100356.96008,1676734.4153600002,548241.123,548241.123,548241.123,915525.5795,670714.227,670714.227,739127.32244,676761.31395,1005951.38518,1754566.3695,497962.64582000003,633314.90861,639574.458,639574.458,639574.458,639574.458,2016614.1091799997,2016614.1091799997 +4194000.0,460820.22899999993,520255.1340000001,1519144.9912800002,339137.76831,339137.76831,339137.76831,679312.3609999999,918353.3794399999,1265094.4998400002,641596.3488900001,977670.6268800002,361430.457,361430.457,361430.457,468177.1885,460820.22899999993,460820.22899999993,455739.00072999997,419425.89749999996,623442.9389999999,1087400.4749999999,308614.611,392499.7905,387122.625,387122.625,387122.625,387122.625,1385532.8218599998,1385532.8218599998 +4197600.0,333474.414,266292.642,777574.51464,102870.45065,102870.45065,102870.45065,247089.556,676198.13568,887294.5619200001,433476.00072,660534.8582400001,255510.70799999998,255510.70799999998,255510.70799999998,210233.135,333474.414,333474.414,347592.5191699999,271101.24494999996,402970.24557999993,702855.0795,199476.96542,253697.21441,274730.922,274730.922,274730.922,274730.922,1002646.4047600001,1002646.4047600001 +4201200.0,467789.43299999996,526800.396,1538257.1563199998,901991.0475400002,901991.0475400002,901991.0475400002,792364.727,1008147.91128,758493.0201600001,858860.25897,1308739.44224,300549.627,300549.627,300549.627,834325.989,467789.43299999996,467789.43299999996,721458.8263999999,603684.53955,897328.6242199999,1565108.0655,444192.57477999997,564929.48269,337751.787,337751.787,337751.787,337751.787,1406486.8952199998,1406486.8952199998 +4204800.0,693375.921,1139166.372,3326365.80624,1043317.6013699999,1043317.6013699999,1043317.6013699999,938701.4875000002,1921292.01072,2286489.96864,1285179.71148,1958369.08416,769398.804,769398.804,769398.804,1301239.6285,693375.921,693375.921,1241953.0678100002,1055820.2823,1569392.12332,2737311.843,776875.17068,988039.2271400001,846469.101,846469.101,846469.101,846469.101,2084750.26914,2084750.26914 +4208400.0,736943.8200000001,1022143.686,2984659.5631199996,955885.10435,955885.10435,955885.10435,903950.0610000001,2016689.2224799998,2712890.2681600004,1305421.7584799998,1989214.1081599998,737393.3489999999,737393.3489999999,737393.3489999999,1100727.558,736943.8200000001,736943.8200000001,1097080.77882,994947.2352,1478909.2236799998,2579492.832,732084.63232,931074.07936,882507.927,882507.927,882507.927,882507.927,2215744.4188,2215744.4188 +4212000.0,2156710.56,1784415.8850000002,5210494.3842,3334493.82871,3334493.82871,3334493.82871,2860212.3830000004,3374566.6550399996,6404567.041920001,3670923.2181300004,5593787.760960001,2258981.136,2258981.136,2258981.136,2785905.444,2156710.56,2156710.56,3291594.72668,2741199.89805,4074573.67562,7106814.5505,2016981.65338,2565221.6329900003,2409122.4540000004,2409122.4540000004,2409122.4540000004,2409122.4540000004,6484509.7504,6484509.7504 +4215600.0,1485630.741,866559.279,2530353.09468,1765192.9600800003,1765192.9600800003,1765192.9600800003,1597386.063,2428087.1289600004,3821638.0364800002,2127309.73917,3241614.84064,1358180.604,1358180.604,1358180.604,1580210.9785000002,1485630.741,1485630.741,1182973.69918,1576161.8765999998,2342838.14744,4086345.606,1159743.80056,1474976.17588,1501732.1849999998,1501732.1849999998,1501732.1849999998,1501732.1849999998,4466796.42794,4466796.42794 +4219200.0,1173253.566,884583.6959999999,2582984.3923199996,1231004.94726,1231004.94726,1231004.94726,1193726.3904999997,1962943.7959200002,3613836.8364800005,1711421.54589,2607880.45088,1052807.433,1052807.433,1052807.433,1393402.878,1173253.566,1173253.566,1246058.9944399998,1361304.29385,2023469.5923399997,3529307.4285,1001651.06066,1273911.91943,1190680.845,1190680.845,1190680.845,1190680.845,3527582.38844,3527582.38844 +4222800.0,1075086.3,925432.1039999998,2702261.7436799994,1237645.75462,1237645.75462,1237645.75462,1228053.428,1993256.33344,3768442.9747200003,1740180.08556,2651702.9875200004,1081620.822,1081620.822,1081620.822,1426970.713,1075086.3,1075086.3,1296586.8659899998,1401937.2593999999,2083867.2349599998,3634652.154,1031548.89704,1311936.34892,1219517.4540000001,1219517.4540000001,1219517.4540000001,1219517.4540000001,3232426.142,3232426.142 +4226400.0,749872.263,653093.847,1907034.0332399998,795329.1761800001,795329.1761800001,795329.1761800001,661880.051,1023463.7668000001,2289530.05824,990035.86227,1508626.07584,577224.132,577224.132,577224.132,707073.1395,749872.263,749872.263,911553.56175,648918.7344,964565.6249599999,1682381.904,477476.00704,607259.75392,763549.365,763549.365,763549.365,763549.365,2254615.93742,2254615.93742 +4230000.0,120641.598,105739.82699999999,308760.29484,123422.65232000001,123422.65232000001,123422.65232000001,64078.0035,197938.71160000004,733869.64352,221021.46171,336794.60832000006,175279.24200000003,175279.24200000003,175279.24200000003,112977.571,120641.598,120641.598,221545.98335999998,86679.29069999998,128841.80987999999,224724.08699999997,63778.83611999999,81114.69425999999,149231.796,149231.796,149231.796,149231.796,362729.07132,362729.07132 +4233600.0,119565.582,104255.89500000002,304427.2134,99830.16065,99830.16065,99830.16065,43206.205,207548.5776,729421.5078400001,244902.38241000002,373184.58272000006,172096.389,172096.389,172096.389,107784.53349999999,119565.582,119565.582,219319.01588999998,80490.69630000001,119642.96092000001,208679.58300000004,59225.25308000001,75323.39234,150084.612,150084.612,150084.612,150084.612,359493.84987999994,359493.84987999994 +4237200.0,129891.56099999999,118315.068,345479.99856,102577.93975000002,102577.93975000002,102577.93975000002,46186.612499999996,228853.04944000003,744147.9142400001,253744.94838,386658.96895999997,174264.58800000002,174264.58800000002,174264.58800000002,108823.337,129891.56099999999,129891.56099999999,231507.66170999996,82315.4724,122355.34416,213410.484,60567.927840000004,77031.02232,156953.364,156953.364,156953.364,156953.364,390540.62674,390540.62674 +4240800.0,139610.58299999998,131256.117,383267.86163999996,115126.36839000002,115126.36839000002,115126.36839000002,47266.2295,263058.07544,749302.9235200001,289553.72313000006,441224.72096000006,176421.74699999997,176421.74699999997,176421.74699999997,108249.1445,139610.58299999998,139610.58299999998,254333.91593999998,98700.05114999998,146709.70565999998,255889.02149999997,72623.74134,92363.75157,165754.57200000001,165754.57200000001,165754.57200000001,165754.57200000001,419762.48621999996,419762.48621999996 +4244400.0,175268.75699999998,146422.668,427554.19056,124608.12122,124608.12122,124608.12122,67908.3825,326201.76144,760111.344,318278.0664,484995.1488,201465.59699999998,201465.59699999998,201465.59699999998,125875.28099999999,175268.75699999998,175268.75699999998,260840.86950999996,116624.63835000001,173353.16614,302360.17350000003,85812.69686000001,109137.62453000002,224319.41400000002,224319.41400000002,224319.41400000002,224319.41400000002,526974.7293799999,526974.7293799999 +4248000.0,214890.009,156050.95500000002,455668.78859999997,134171.81129,134171.81129,134171.81129,74228.92749999999,384156.71839999995,774312.15936,363622.60389,554091.5868800001,304590.585,304590.585,304590.585,205444.946,214890.009,214890.009,283055.41199,133599.30209999997,198584.64163999996,346368.561,98302.69635999999,125022.55677999998,268879.389,268879.389,268879.389,268879.389,646102.62706,646102.62706 +4251600.0,261053.43600000002,190429.143,556053.09756,158799.68654000002,158799.68654000002,158799.68654000002,83690.222,482357.65576,815459.51424,419803.90326000005,639701.1859200001,358097.57700000005,358097.57700000005,358097.57700000005,229187.2275,261053.43600000002,261053.43600000002,315157.05858,155895.18795,231725.68678,404172.70950000006,114708.06422000001,145887.10181000002,327025.05000000005,327025.05000000005,327025.05000000005,327025.05000000005,784900.66424,784900.66424 +4255200.0,443889.28199999995,253214.454,739386.20568,272840.36208000005,272840.36208000005,272840.36208000005,163575.1635,1005074.0272799998,998182.5318400002,698617.1892,1064559.5264,418980.951,418980.951,418980.951,361990.216,443889.28199999995,443889.28199999995,535312.1871499999,221940.61154999997,329896.90901999996,575401.5854999999,163304.44998,207692.57228999998,477579.63300000003,477579.63300000003,477579.63300000003,477579.63300000003,1334627.1078799998,1334627.1078799998 +4258800.0,1190967.2280000001,554577.975,1619367.687,1600309.2910200001,1600309.2910200001,1600309.2910200001,1412059.621,3315662.23672,3816880.59328,2819856.80655,4296924.6576,1101727.782,1101727.782,1101727.782,1560272.2625,1190967.2280000001,1190967.2280000001,2509096.4086499996,1468413.8540999999,2182679.3584399996,3806998.881,1080462.53956,1374145.31038,1466814.3599999999,1466814.3599999999,1466814.3599999999,1466814.3599999999,3580841.4655199996,3580841.4655199996 +4262400.0,1023944.412,1118385.969,3265687.02948,1875485.9063600001,1875485.9063600001,1875485.9063600001,1859775.7780000002,4024045.19056,2980408.31744,3068833.3615800003,4676317.50336,1246539.1830000002,1246539.1830000002,1246539.1830000002,1633413.4145,1023944.412,1023944.412,2125022.41081,2057776.0870499997,3058719.02322,5334975.0405,1514116.72578,1925671.94319,1463608.347,1463608.347,1463608.347,1463608.347,3078659.53208,3078659.53208 +4266000.0,1758347.382,1913560.257,5587595.95044,1031022.4122000001,1031022.4122000001,1031022.4122000001,1636220.8275,3669734.77328,5892132.968320001,2896038.3824400003,4413010.868480001,1551297.0270000002,1551297.0270000002,1551297.0270000002,1140707.7850000001,1758347.382,1758347.382,1752481.2104800001,1385438.5718999999,2059343.25996,3591877.779,1019409.12204,1296496.83642,1934232.5130000003,1934232.5130000003,1934232.5130000003,1934232.5130000003,5286764.461879999,5286764.461879999 +4269600.0,1213360.119,930554.3190000001,2717218.6114800004,510313.92192,510313.92192,510313.92192,619267.39,1721997.1459999997,6140978.1088000005,919319.8129500002,1400868.2864,1189074.201,1189074.201,1189074.201,1197468.0760000001,1213360.119,1213360.119,1503258.10713,1957198.3991999999,2909218.36128,5074218.072,1440111.41472,1831551.09456,712281.246,712281.246,712281.246,712281.246,3648169.42446,3648169.42446 +4273200.0,639861.048,622275.9809999999,1817045.8645199998,264674.91644,264674.91644,264674.91644,438358.01100000006,1162648.87808,2698916.6816000002,732351.55623,1115964.2761600001,473249.9700000001,473249.9700000001,473249.9700000001,416051.8495,639861.048,639861.048,590544.68603,694057.3857,1031660.60788,1799408.0370000002,510689.1381200001,649500.6152600001,475721.07599999994,475721.07599999994,475721.07599999994,475721.07599999994,1923848.88432,1923848.88432 +4276800.0,692611.071,1119552.6809999999,3269093.8285199995,540870.4237200001,540870.4237200001,540870.4237200001,856148.1005,1533384.5581600002,2386444.3872,1167510.61875,1779063.8,606136.686,606136.686,606136.686,959034.6429999999,692611.071,692611.071,778386.33561,729850.4392499999,1084864.1097,1892204.8424999998,537025.7553,682995.84315,677091.0869999999,677091.0869999999,677091.0869999999,677091.0869999999,2082450.6201399998,2082450.6201399998 +4280400.0,482982.864,494728.728,1444607.88576,343120.39762000006,343120.39762000006,343120.39762000006,678509.279,994618.3949599998,1383439.2736000002,686115.6518999999,1045509.5648,411742.86,411742.86,411742.86,455655.207,482982.864,482982.864,473853.42705999996,451174.2363,670634.29692,1169710.983,331975.11708,422209.96434,417782.772,417782.772,417782.772,417782.772,1452168.47776,1452168.47776 +4284000.0,388458.37500000006,324277.059,946889.01228,122862.92964000002,122862.92964000002,122862.92964000002,314081.0435,823749.56672,1141466.3545600001,534440.93934,814386.19328,341990.283,341990.283,341990.283,267126.9475,388458.37500000006,388458.37500000006,403029.76532,344261.9556,511717.77104,892530.996,253308.79696,322161.18808,341871.43200000003,341871.43200000003,341871.43200000003,341871.43200000003,1167964.8475000001,1167964.8475000001 +4287600.0,443642.805,445443.75899999996,1300695.7762799999,867504.8345700001,867504.8345700001,867504.8345700001,743646.9355,958240.44512,655346.00704,815300.7638999999,1242363.0688,292492.815,292492.815,292492.815,822236.1140000001,443642.805,443642.805,685801.29592,564131.0529,838535.54036,1462561.989,415089.02164000005,527915.2322200001,291038.979,291038.979,291038.979,291038.979,1333886.0337,1333886.0337 +4291200.0,753853.659,1205908.5119999999,3521252.8550399994,1007581.8088600001,1007581.8088600001,1007581.8088600001,1012050.263,2061281.8506399996,2555327.74016,1380919.44984,2104258.20928,852468.2699999999,852468.2699999999,852468.2699999999,1392761.0725,753853.659,753853.659,1257904.9133300001,1144054.2424499998,1700544.8245799998,2966066.5544999996,841797.9364199999,1070608.78491,916559.1089999999,916559.1089999999,916559.1089999999,916559.1089999999,2266586.66806,2266586.66806 +4294800.0,772899.582,1050096.1770000001,3066280.83684,995736.0494400001,995736.0494400001,995736.0494400001,966809.2104999999,2122344.7212799997,2975698.1152,1380318.01341,2103341.73472,804830.646,804830.646,804830.646,1186899.9765,772899.582,772899.582,1134676.4939899999,1067104.0642499998,1586164.5596999999,2766566.0925,785177.8053,998598.61815,938172.2609999999,938172.2609999999,938172.2609999999,938172.2609999999,2323851.40988,2323851.40988 +4298400.0,2139272.106,1774683.384,5182075.48128,3316915.95862,3316915.95862,3316915.95862,2845444.0804999997,3350061.5712,6407738.964480001,3636654.24255,5541568.3696,2243517.069,2243517.069,2243517.069,2836420.335,2139272.106,2139272.106,3184988.0656099995,2729092.09905,4056576.4040199993,7075423.960499999,2008072.70498,2553891.12479,2387634.42,2387634.42,2387634.42,2387634.42,6432078.1320400005,6432078.1320400005 +4302000.0,1509345.7079999999,900253.6950000001,2628740.7894,1752595.8094700002,1752595.8094700002,1752595.8094700002,1621057.69,2489455.8520799996,3972087.971200001,2177066.48649,3317434.64608,1409329.194,1409329.194,1409329.194,1654750.146,1509345.7079999999,1509345.7079999999,1221326.3207599998,1623612.5473500001,2413369.76174,4209365.8635,1194658.1212600002,1519380.63073,1544212.17,1544212.17,1544212.17,1544212.17,4538099.428719999,4538099.428719999 +4305600.0,1161349.239,874378.317,2553184.6856400003,1213750.72764,1213750.72764,1213750.72764,1173991.861,1939259.94456,3550611.2416000003,1690312.9485900002,2575714.9692800003,1042135.6799999999,1042135.6799999999,1042135.6799999999,1379524.7165,1161349.239,1161349.239,1230399.6209699998,1342739.3976,1995874.3638399998,3481176.216,987990.96416,1256538.84368,1172246.127,1172246.127,1172246.127,1172246.127,3491790.04526,3491790.04526 +4309200.0,1014379.617,871189.0800000001,2543872.1136000003,1170651.68649,1170651.68649,1170651.68649,1155289.2715,1867178.5824,3499508.8064000006,1636365.0363899998,2493508.62688,1011254.8500000001,1011254.8500000001,1011254.8500000001,1332891.007,1014379.617,1014379.617,1222310.41309,1311492.4690500002,1949428.31202,3400165.6605,964999.3969800001,1227297.89079,1144821.057,1144821.057,1144821.057,1144821.057,3049901.38178,3049901.38178 +4312800.0,719790.57,621318.501,1814250.0229200001,763859.55767,763859.55767,763859.55767,634265.009,967291.04352,2161978.3020800003,941210.74467,1434225.8966400002,546819.591,546819.591,546819.591,673305.864,719790.57,719790.57,871136.7431,616630.96395,916572.44518,1598672.8695,453718.58582000004,577044.77861,729410.649,729410.649,729410.649,729410.649,2164170.3137999997,2164170.3137999997 +4316400.0,122857.76699999999,108825.98100000001,317771.86452000006,125838.76305000001,125838.76305000001,125838.76305000001,64799.6195,203608.40551999997,765038.44992,221439.79284,337432.06528000004,181731.957,181731.957,181731.957,116727.85250000001,122857.76699999999,122857.76699999999,227498.27659000002,89281.73564999999,132710.13546,231471.1665,65693.72154,83550.06867,151765.125,151765.125,151765.125,151765.125,369392.35277999996,369392.35277999996 +4320000.0,121600.614,107455.473,313769.98116,102356.70676,102356.70676,102356.70676,43969.387,213181.30432,761443.52384,245038.47732,373391.96544,178738.29,178738.29,178738.29,111598.54299999999,121600.614,121600.614,226389.79285,83020.28175,123402.98669999998,215237.7675,61086.5283,77690.58465,152509.173,152509.173,152509.173,152509.173,365612.51276,365612.51276 +4323600.0,131980.80599999998,122735.943,358388.95356,98893.0228,98893.0228,98893.0228,46852.652,228024.25415999998,768283.6384000002,257180.0637,391893.4304,179216.511,179216.511,179216.511,111768.48199999999,131980.80599999998,131980.80599999998,239783.48315999997,85689.7785,127370.9794,222158.685,63050.75060000001,80188.7063,158801.733,158801.733,158801.733,158801.733,396822.29004,396822.29004 +4327200.0,142729.941,134796.168,393604.81055999995,117517.31024,117517.31024,117517.31024,49385.8295,252645.91608000002,777417.3331200001,294032.78016,448049.95072,181154.877,181154.877,181154.877,111809.1625,142729.941,142729.941,261510.85440999997,101599.0452,151018.82768,263404.93200000003,74756.82832,95076.63736000001,170142.225,170142.225,170142.225,170142.225,429141.35594,429141.35594 +4330800.0,177571.233,149915.72100000002,437753.90532,127460.36908000002,127460.36908000002,127460.36908000002,70691.2185,327504.1048,785857.81952,325835.33073,496510.98016000004,217085.307,217085.307,217085.307,139384.94150000002,177571.233,177571.233,268088.45245,120660.6537,179352.37907999998,312823.917,88782.40692000001,112914.53766,233829.60600000003,233829.60600000003,233829.60600000003,233829.60600000003,533897.50722,533897.50722 +4334400.0,220140.50699999998,160275.423,468004.23516000004,135734.23545,135734.23545,135734.23545,75344.92,398464.88776,792622.2745600002,370574.23935000005,564684.5552000001,308642.574,308642.574,308642.574,211760.34249999997,220140.50699999998,220140.50699999998,290288.6467,137587.99320000003,204513.51088000002,356709.612,101237.58512000002,128755.18376000001,275794.317,275794.317,275794.317,275794.317,661889.1243799999,661889.1243799999 +4338000.0,267842.925,184333.194,538252.9264799999,155639.91355,155639.91355,155639.91355,84412.96849999999,499657.3534399999,828150.43584,435142.10922,663073.69024,366618.486,366618.486,366618.486,233629.641,267842.925,267842.925,321640.50087,160276.4577,238238.09268,415531.55700000003,117931.81332,149987.10486,341859.09599999996,341859.09599999996,341859.09599999996,341859.09599999996,805314.3944999999,805314.3944999999 +4341600.0,451331.334,253552.68000000005,740373.8256000001,270559.95329000003,270559.95329000003,270559.95329000003,163205.595,1010353.48072,1001059.7369600001,701437.1943600001,1068856.6771200001,420307.083,420307.083,420307.083,363344.8035,451331.334,451331.334,535727.1410399999,222963.5727,331417.45868,578053.7069999999,164057.14732,208649.86185999998,482352.32100000005,482352.32100000005,482352.32100000005,482352.32100000005,1357002.87756,1357002.87756 +4345200.0,1194861.5129999998,557050.0109999999,1626586.0321199999,1608513.5074800001,1608513.5074800001,1608513.5074800001,1418116.693,3318900.02616,3869046.5484800003,2830194.0063600005,4312676.581120001,1116308.5350000001,1116308.5350000001,1116308.5350000001,1597710.8595,1194861.5129999998,1194861.5129999998,2513203.71094,1489407.1911,2213884.26924,3861426.0510000004,1095909.48876,1393790.92698,1474198.851,1474198.851,1474198.851,1474198.851,3592550.2824199996,3592550.2824199996 +4348800.0,1040540.1599999999,1148041.1400000001,3352280.1288,1896211.9011000004,1896211.9011000004,1896211.9011000004,1869405.8249999997,4055763.94752,3039753.54944,3101848.6671900004,4726626.540480001,1267969.533,1267969.533,1267969.533,1667118.4425,1040540.1599999999,1040540.1599999999,2138689.82379,2077385.5269,3087866.88196,5385814.329,1528545.40004,1944022.50542,1487539.125,1487539.125,1487539.125,1487539.125,3128557.4143999997,3128557.4143999997 +4352400.0,1772235.192,1928051.838,5629911.36696,1057798.87708,1057798.87708,1057798.87708,1677392.1115,3707526.8148800004,5972918.622080001,2928556.7293499997,4462562.635199999,1570961.5409999997,1570961.5409999997,1570961.5409999997,1163167.8694999998,1772235.192,1772235.192,1732421.5528099998,1413660.90375,2101293.4915,3665046.7875,1040175.1835,1322907.36425,1951545.9479999999,1951545.9479999999,1951545.9479999999,1951545.9479999999,5328520.47728,5328520.47728 +4356000.0,1231752.756,936418.6170000001,2734342.3616400003,526406.86472,526406.86472,526406.86472,645517.8485,1732660.01656,6210193.64416,950268.03795,1448027.4864,1203968.202,1203968.202,1203968.202,1218829.955,1231752.756,1231752.756,1530677.4303599996,1978124.9598,2940324.01432,5128472.118000001,1455509.22968,1851134.2216400001,728692.338,728692.338,728692.338,728692.338,3703469.9530399996,3703469.9530399996 +4359600.0,618069.7679999999,596237.37,1741013.1204000001,258901.23886000004,258901.23886000004,258901.23886000004,409692.766,1105641.39104,2608451.5052800006,689970.93858,1051384.28736,444869.08199999994,444869.08199999994,444869.08199999994,393604.4035,618069.7679999999,618069.7679999999,559473.35106,675646.90785,1004294.9099399999,1751677.1685,497142.66306,632272.04463,450803.829,450803.829,450803.829,450803.829,1858329.7691199998,1858329.7691199998 +4363200.0,672760.4789999999,1099621.158,3210893.78136,531785.8499799999,531785.8499799999,531785.8499799999,832990.9839999999,1481452.52752,2297025.0835200003,1131864.02574,1724745.18208,582090.777,582090.777,582090.777,938465.479,672760.4789999999,672760.4789999999,744222.3919,702193.98555,1043755.01062,1820502.9255,516676.06838,657114.86549,657272.412,657272.412,657272.412,657272.412,2022766.5068599998,2022766.5068599998 +4366800.0,487953.1830000001,504381.726,1472794.63992,359677.41403000004,359677.41403000004,359677.41403000004,690164.9335,997758.57464,1409886.67136,697833.36714,1063365.1308799998,416859.651,416859.651,416859.651,471164.41400000005,487953.1830000001,487953.1830000001,479555.37421999994,463758.0966,689339.19544,1202335.806,341234.35256,433985.97188,427608.708,427608.708,427608.708,427608.708,1467112.57022,1467112.57022 +4370400.0,314270.47199999995,243919.776,712245.74592,89553.19087,89553.19087,89553.19087,222915.02450000003,644715.1512000001,812390.41856,397669.36083,605972.35936,249781.79100000003,249781.79100000003,249781.79100000003,193795.14,314270.47199999995,314270.47199999995,313930.76832,240295.45859999998,357179.91624,622988.226,176809.99176,224869.08348,257235.615,257235.615,257235.615,257235.615,944906.5524799998,944906.5524799998 +4374000.0,482189.48699999996,497330.541,1452205.1797200001,884921.8541900001,884921.8541900001,884921.8541900001,794469.9384999999,1045633.1367999999,837133.04,885886.35492,1349922.06464,335087.049,335087.049,335087.049,863046.8665,482189.48699999996,482189.48699999996,727026.0550799998,624518.5252500001,928296.6721,1619122.1025,459522.27290000004,584425.9779500001,346016.391,346016.391,346016.391,346016.391,1449783.05758,1449783.05758 +4377600.0,719594.7660000001,1168794.966,3412881.3007199997,998876.11549,998876.11549,998876.11549,971388.3304999999,1966377.42392,2404219.03232,1320279.65475,2011854.712,810779.9069999999,810779.9069999999,810779.9069999999,1348814.278,719594.7660000001,719594.7660000001,1225179.7127699999,1092777.8607,1624326.59788,2833127.787,804068.64812,1022624.2202600001,875757.8640000001,875757.8640000001,875757.8640000001,875757.8640000001,2163581.59644,2163581.59644 +4381200.0,726289.596,994191.2520000001,2903038.4558400004,949203.58071,949203.58071,949203.58071,906169.285,1990243.78112,2751469.11616,1290213.1365899998,1966039.0652799997,744877.029,744877.029,744877.029,1118814.473,726289.596,726289.596,1071312.9690899998,996534.9323999999,1481269.20816,2583609.084,733252.86384,932559.85032,880381.992,880381.992,880381.992,880381.992,2183710.71864,2183710.71864 +4384800.0,2099738.016,1733226.8039999998,5061022.26768,3264820.53249,3264820.53249,3264820.53249,2798654.67,3266213.06456,6178513.619200001,3576237.4244100004,5449504.646720001,2196643.4280000003,2196643.4280000003,2196643.4280000003,2746127.2265,2099738.016,2099738.016,3157185.58259,2660779.72845,3955035.5469799996,6898317.814499999,1957808.29402,2489964.23971,2340092.145,2340092.145,2340092.145,2340092.145,6313212.301439999,6313212.301439999 +4388400.0,1462057.872,854714.6309999999,2495766.72252,1699541.0639900002,1699541.0639900002,1699541.0639900002,1561406.665,2367303.06576,3750876.8665600005,2069718.95403,3153857.45376,1353468.81,1353468.81,1353468.81,1571739.0325,1462057.872,1462057.872,1166332.0707999999,1548481.99365,2301694.22266,4014582.9465,1139376.87434,1449073.27307,1480423.605,1480423.605,1480423.605,1480423.605,4395920.6684799995,4395920.6684799995 +4392000.0,1113177.582,836350.8060000001,2442144.35352,1164560.5204200002,1164560.5204200002,1164560.5204200002,1117855.6830000002,1846492.1227199999,3360916.1241600006,1611712.29618,2455942.54656,991805.466,991805.466,991805.466,1310429.456,1113177.582,1113177.582,1179377.76242,1276965.7289999998,1898107.0835999998,3310651.89,939594.5364,1194987.6822,1118154.1469999999,1118154.1469999999,1118154.1469999999,1118154.1469999999,3346953.9298799993,3346953.9298799993 +4395600.0,981846.441,842097.9509999999,2458926.01692,1135799.3566700004,1135799.3566700004,1135799.3566700004,1114500.8175,1803578.0040000002,3368602.1696000006,1583249.83068,2412571.17056,978254.973,978254.973,978254.973,1287212.486,981846.441,981846.441,1179669.6235999998,1266643.737,1882764.2707999998,3283891.17,931999.5891999999,1185328.3366,1107654.807,1107654.807,1107654.807,1107654.807,2952084.96594,2952084.96594 +4399200.0,704108.6880000001,604818.606,1766070.3295200001,749132.9057300001,749132.9057300001,749132.9057300001,621541.8965,938827.1696799999,2105547.6153599997,914056.0209900001,1392847.2700800002,533571.279,533571.279,533571.279,659097.6315,704108.6880000001,704108.6880000001,845607.3602599999,602128.14885,895015.1743399999,1561072.9785,443047.37866,563473.00843,714050.817,714050.817,714050.817,714050.817,2117020.12192,2117020.12192 +4402800.0,120514.965,106973.313,312362.07396,123925.86305,123925.86305,123925.86305,64075.543,194660.12391999998,751957.8611200001,214878.006,327433.152,178685.85600000003,178685.85600000003,178685.85600000003,115017.4235,120514.965,120514.965,218258.59367,87643.4904,130275.01535999998,227223.86399999997,64488.29663999999,82016.99472,147975.399,147975.399,147975.399,147975.399,362348.3281,362348.3281 +4406400.0,115906.74,103669.845,302715.94739999995,98765.24108,98765.24108,98765.24108,42685.566,203992.47312,731178.6604800001,225042.39807,342921.74944000004,171964.515,171964.515,171964.515,107504.3725,115906.74,115906.74,217892.14863,79200.3663,117724.98891999999,205334.283,58275.82508,74115.89834,145386.68099999998,145386.68099999998,145386.68099999998,145386.68099999998,348492.9316,348492.9316 +4410000.0,125714.76299999998,116491.81499999999,340156.09979999997,94684.05265000001,94684.05265000001,94684.05265000001,43893.3355,215627.01455999995,739943.1206400001,244976.06406,373296.85952,173026.398,173026.398,173026.398,108159.7755,125714.76299999998,125714.76299999998,228305.26952999996,81398.8602,120992.87367999999,211034.082,59893.48232,76173.25436,151125.45299999998,151125.45299999998,151125.45299999998,151125.45299999998,377982.3874199999,377982.3874199999 +4413600.0,137647.083,131332.554,383491.05768,95780.62461,95780.62461,95780.62461,46877.0785,230779.79391999997,757406.7283200001,274108.87077000004,417689.70784000005,175772.229,175772.229,175772.229,108869.5195,137647.083,137647.083,254736.59470999998,96653.63879999999,143667.87791999997,250583.50799999997,71117.98607999999,90448.71384,160046.43000000002,160046.43000000002,160046.43000000002,160046.43000000002,413858.89622,413858.89622 +4417200.0,161115.597,145434.063,424667.46396,122923.19413,122923.19413,122923.19413,67221.4935,270951.60632,778057.22944,313219.57359,477286.96928,199086.68099999998,199086.68099999998,199086.68099999998,124863.3435,161115.597,161115.597,262593.69122999994,114931.30095,170836.15598,297970.0395,84566.73502000001,107552.99521000001,218582.877,218582.877,218582.877,218582.877,484420.89498,484420.89498 +4420800.0,207924.579,155165.943,453084.55356,130907.90328000001,130907.90328000001,130907.90328000001,73858.38949999999,373615.22056,779348.84864,354567.00111,540292.57312,281406.59400000004,281406.59400000004,281406.59400000004,205875.9045,207924.579,207924.579,281655.29795,132754.56929999997,197329.01411999995,344178.513,97681.13987999999,124232.05373999999,265100.556,265100.556,265100.556,265100.556,625159.9008599999,625159.9008599999 +4424400.0,249296.304,174028.146,508162.18632,148719.15938000003,148719.15938000003,148719.15938000003,82257.798,465953.52208,792731.33568,406661.16897,619674.16224,344178.795,344178.795,344178.795,224959.1715,249296.304,249296.304,309303.76477,153373.53645,227977.45418000003,397635.09450000006,112852.62682000002,143527.33411000003,317185.569,317185.569,317185.569,317185.569,749550.8873599999,749550.8873599999 +4428000.0,429783.90900000004,226262.634,660686.89128,256913.26364000002,256913.26364000002,256913.26364000002,161508.02850000001,980364.0295200001,937190.2745599999,678941.85576,1034578.06592,405513.90300000005,405513.90300000005,405513.90300000005,354738.4435,429783.90900000004,429783.90900000004,526851.3731,214865.92574999997,319380.95629999996,557059.8075,158098.87869999997,201072.06384999998,464754.132,464754.132,464754.132,464754.132,1292216.95306,1292216.95306 +4431600.0,1168178.343,541497.651,1581173.1409199997,1581896.7168400001,1581896.7168400001,1581896.7168400001,1393606.655,3267772.98696,3705340.944,2765658.2753100004,4214336.41952,1075819.065,1075819.065,1075819.065,1545530.3815,1168178.343,1168178.343,2471944.3149699997,1447837.4241,2152094.14644,3753652.5810000002,1065322.35156,1354889.83638,1437553.6350000002,1437553.6350000002,1437553.6350000002,1437553.6350000002,3512322.88462,3512322.88462 +4435200.0,999729.33,1104939.3390000002,3226422.86988,1819911.30178,1819911.30178,1819911.30178,1827244.3069999998,3964075.1299199993,2914325.7324800007,3014129.86833,4592959.7993600005,1228383.9,1228383.9,1228383.9,1603253.4595,999729.33,999729.33,2100896.7928,2026727.8838999998,3012568.3607599996,5254479.699,1491271.38124,1896616.95802,1439077.128,1439077.128,1439077.128,1439077.128,3005852.8521999996,3005852.8521999996 +4438800.0,1733180.238,1874370.369,5473161.47748,996753.79364,996753.79364,996753.79364,1558598.006,3572366.50312,5783373.159039999,2822886.28398,4301541.00416,1526466.882,1526466.882,1526466.882,1090362.896,1733180.238,1733180.238,1574982.7347799998,1327026.7422,1972518.7624799998,3440439.702,976429.55352,1241834.90196,1907246.412,1907246.412,1907246.412,1907246.412,5211095.248919999,5211095.248919999 +4442400.0,1187565.0,894768.033,2612722.65636,497730.54012,497730.54012,497730.54012,589342.0434999999,1621810.43344,6017876.71872,872690.05593,1329813.4185600001,1153309.7820000001,1153309.7820000001,1153309.7820000001,1172424.7534999999,1187565.0,1187565.0,1446214.98476,1925211.7907999998,2861672.8347199997,4991289.828,1416575.58928,1801617.94744,688619.952,688619.952,688619.952,688619.952,3570612.0999999996,3570612.0999999996 +4446000.0,618320.955,596637.147,1742180.46924,247738.33183,247738.33183,247738.33183,418074.09,1112076.3293599999,2545730.78592,697989.2698799999,1063602.6969599999,456346.48199999996,456346.48199999996,456346.48199999996,395968.35599999997,618320.955,618320.955,551916.1388,647055.1269,961795.5219599999,1677550.3290000001,476104.76004,605515.78542,458662.584,458662.584,458662.584,458662.584,1859085.0046999997,1859085.0046999997 +4449600.0,654852.456,1075921.875,3141691.875,508534.77433,508534.77433,508534.77433,812536.3190000001,1440097.7296799999,2209839.87904,1097967.70398,1673093.6441600001,562509.4739999999,562509.4739999999,562509.4739999999,915845.6860000001,654852.456,654852.456,714579.6894599999,674422.1838,1002474.45592,1748501.958,496241.50808000006,631125.94484,634859.379,634859.379,634859.379,634859.379,1968923.0510399998,1968923.0510399998 +4453200.0,461686.968,469287.7799999999,1370320.3175999997,337313.63094,337313.63094,337313.63094,649479.173,935871.82016,1305313.35552,651887.3594099999,993352.16672,387301.515,387301.515,387301.515,434235.774,461686.968,461686.968,442702.57797999994,427250.08035,635072.95894,1107685.3935,314371.66406000004,399821.68013000005,398470.467,398470.467,398470.467,398470.467,1388138.8171199998,1388138.8171199998 +4456800.0,332951.184,267058.641,779811.23172,97225.09203,97225.09203,97225.09203,247970.534,688346.9008000001,910822.63808,435974.75292,664342.48064,276324.255,276324.255,276324.255,216047.2965,332951.184,332951.184,333347.64644999994,271471.2084,403520.16656,703814.244,199749.18544,254043.42712,282503.826,282503.826,282503.826,282503.826,1001073.22656,1001073.22656 +4460400.0,499736.886,506207.40599999996,1478125.62552,885028.42307,885028.42307,885028.42307,814212.5460000001,1092481.0328,921929.06176,915378.2624700001,1394862.11424,365989.677,365989.677,365989.677,886089.8234999999,499736.886,499736.886,742693.2688499999,648922.5656999999,964571.3198799998,1682391.8369999998,477478.82612,607263.33926,364503.918,364503.918,364503.918,364503.918,1502542.23724,1502542.23724 +4464000.0,740867.0009999999,1192313.406,3481555.1455200003,1029942.3685100002,1029942.3685100002,1029942.3685100002,997279.1675000001,2019557.5676799999,2508777.17056,1357998.51579,2069331.0716800003,843359.3699999999,843359.3699999999,843359.3699999999,1379186.0180000002,740867.0009999999,740867.0009999999,1251588.5752499998,1126421.6885999998,1674335.4482399998,2920352.5259999996,828823.8597599999,1054108.1974799999,905254.446,905254.446,905254.446,905254.446,2227540.1163399997,2227540.1163399997 +4467600.0,735286.74,1000018.47,2920053.9324,956541.73373,956541.73373,956541.73373,918481.2070000002,2010889.51264,2812212.1888,1307678.28135,1992652.6192000003,761549.7749999999,761549.7749999999,761549.7749999999,1144978.31,735286.74,735286.74,1086438.2257299998,1013366.5299,1506288.02716,2627246.5590000004,745637.59484,948310.9008200001,893550.801,893550.801,893550.801,893550.801,2210762.1316,2210762.1316 +4471200.0,2095196.2829999998,1731534.882,5056081.85544,3259703.6959300004,3259703.6959300004,3259703.6959300004,2794550.416,3261712.7663999996,6185373.470079999,3570529.01163,5440806.1129600005,2196361.392,2196361.392,2196361.392,2760450.231,2095196.2829999998,2095196.2829999998,3144866.9801899996,2658025.6676999996,3950941.8566799993,6891177.657,1955781.8493199998,2487386.98286,2337088.2180000003,2337088.2180000003,2337088.2180000003,2337088.2180000003,6299556.824219999,6299556.824219999 +4474800.0,1440529.1099999999,834835.566,2437719.85272,1669961.3825400001,1669961.3825400001,1669961.3825400001,1533795.2559999998,2316609.96776,3655149.2844800004,2031527.3374200002,3095660.70464,1336725.924,1336725.924,1336725.924,1546702.4545,1440529.1099999999,1440529.1099999999,1138001.85382,1519212.6072,2258187.62848,3938699.352,1117840.3875199999,1421682.90896,1457216.6670000001,1457216.6670000001,1457216.6670000001,1457216.6670000001,4331190.8574,4331190.8574 +4478400.0,1070770.257,799748.7810000001,2335266.44052,1117311.1415400002,1117311.1415400002,1117311.1415400002,1068736.5815,1760450.4624799998,3181283.91872,1539651.3768299997,2346135.43136,944116.689,944116.689,944116.689,1246046.417,1070770.257,1070770.257,1130912.8662,1215329.05035,1806489.1069399996,3150853.0934999995,894242.1160599999,1137307.9261299998,1066214.5380000002,1066214.5380000002,1066214.5380000002,1066214.5380000002,3219449.2393799997,3219449.2393799997 +4482000.0,932231.874,797286.258,2328075.87336,1080326.94165,1080326.94165,1080326.94165,1050882.476,1701652.7292799999,3156443.7472,1499087.0517,2284323.1264,921603.7559999999,921603.7559999999,921603.7559999999,1210121.0274999999,932231.874,932231.874,1122589.3584099999,1194116.06565,1774957.70746,3095856.4665,878633.54954,1117456.76267,1047068.754,1047068.754,1047068.754,1047068.754,2802910.5011599995,2802910.5011599995 +4485600.0,662838.3150000001,560141.487,1635613.1420399998,705425.6926200001,705425.6926200001,705425.6926200001,583256.5759999999,866634.2927199999,1934166.6496,847063.9692900002,1290764.1436800002,492126.07800000004,492126.07800000004,492126.07800000004,611119.8134999999,662838.3150000001,662838.3150000001,784829.41238,557925.4282499999,829311.3772999999,1446473.3325,410522.9077,522107.99334999995,666610.2990000001,666610.2990000001,666610.2990000001,666610.2990000001,1992933.8671,1992933.8671 +4489200.0,111073.21800000001,97452.981,284562.70452,115327.47523,115327.47523,115327.47523,61124.9345,171198.70648,670341.0297600001,198023.73548999996,301750.45408,160515.915,160515.915,160515.915,104864.263,111073.21800000001,111073.21800000001,191930.49109,79451.72549999999,118098.61419999998,205985.955,58460.775799999996,74351.1209,135412.179,135412.179,135412.179,135412.179,333960.14212000003,333960.14212000003 +4492800.0,106796.31599999999,95955.318,280189.52856,91713.91724,91713.91724,91713.91724,40245.5445,184068.13928,665735.29728,193032.26859000002,294144.40928,157584.033,157584.033,157584.033,98647.4545,106796.31599999999,106796.31599999999,200659.23176,72199.77524999999,107319.1721,187184.6025,53124.772899999996,67564.72795,132675.528,132675.528,132675.528,132675.528,321100.92344,321100.92344 +4496400.0,112633.269,102066.24300000002,298033.42956,86708.00853,86708.00853,86708.00853,36773.943499999994,195437.88928,666333.56672,219407.07285000003,334334.58720000007,157221.963,157221.963,157221.963,98930.874,112633.269,112633.269,203251.42734,71350.06499999999,106056.146,184981.65,52499.554,66769.567,136237.31999999998,136237.31999999998,136237.31999999998,136237.31999999998,338650.69546,338650.69546 +4500000.0,123089.34900000002,117048.999,341783.07707999996,82586.01428,82586.01428,82586.01428,42373.45,196396.426,670746.91904,235457.54925,358792.456,157003.617,157003.617,157003.617,97468.90650000001,123089.34900000002,123089.34900000002,225069.69316,83019.65399999998,123402.05359999997,215236.13999999996,61086.06639999999,77689.99719999998,140973.381,140973.381,140973.381,140973.381,370088.64266,370088.64266 +4503600.0,130817.802,123107.51699999999,359473.94964,84404.74262000002,84404.74262000002,84404.74262000002,49332.465,205632.16408,676769.7932800001,261024.24621,397751.23232000007,158701.098,158701.098,158701.098,100515.32400000001,130817.802,130817.802,229283.77745,90613.1529,134689.18036,234922.98900000003,66673.38164,84796.01222,159192.18000000002,159192.18000000002,159192.18000000002,159192.18000000002,393325.52468,393325.52468 +4507200.0,154607.799,133938.582,391100.65944,112594.86502000003,112594.86502000003,112594.86502000003,65416.97749999999,222662.06543999998,682656.0256,289896.87531000003,441747.61952,198015.87599999996,198015.87599999996,198015.87599999996,135473.6845,154607.799,154607.799,236491.72118,107805.76335,160244.61613999997,279496.4235,79323.74686,100884.89953,207154.45799999998,207154.45799999998,207154.45799999998,207154.45799999998,464854.11565999995,464854.11565999995 +4510800.0,194433.978,144048.168,420620.65056000004,126101.61586,126101.61586,126101.61586,73904.47399999999,326378.71343999996,690596.5216000001,323273.32002,492606.96384,257457.351,257457.351,257457.351,188885.704,194433.978,194433.978,253919.05344,123535.42065,183625.48945999998,320277.0165,90897.66754,115604.75167,239992.07400000002,239992.07400000002,239992.07400000002,239992.07400000002,584598.16052,584598.16052 +4514400.0,340724.68799999997,186814.497,545498.33124,233623.73870000002,233623.73870000002,233623.73870000002,152563.89049999998,842048.90888,749447.88864,565380.6249,861532.3808,311104.689,311104.689,311104.689,312919.70849999995,340724.68799999997,340724.68799999997,478766.236,183941.42985,273414.17473999993,476885.18849999993,135344.55826,172132.84423,368782.362,368782.362,368782.362,368782.362,1024445.5619199999,1024445.5619199999 +4518000.0,1078477.341,474936.72299999994,1386815.2311599997,1505380.5418300002,1505380.5418300002,1505380.5418300002,1277492.1215000001,3119764.68688,3134889.488,2557205.6811,3896694.3712000004,932402.172,932402.172,932402.172,1323196.4619999998,1078477.341,1078477.341,2344415.57766,1288511.5135499998,1915268.9658199998,3340585.4055,948089.95318,1205792.25589,1323194.034,1323194.034,1323194.034,1323194.034,3242621.8719399995,3242621.8719399995 +4521600.0,912852.933,1063782.963,3106246.25196,1631462.0763100001,1631462.0763100001,1631462.0763100001,1726403.77,3744484.3438399998,2690739.56736,2813120.6663699998,4286660.06304,1145130.744,1145130.744,1145130.744,1440750.178,912852.933,912852.933,1999832.6370099997,1898615.6959499998,2822139.8739799997,4922336.9895,1397006.11702,1776729.25621,1345806.849,1345806.849,1345806.849,1345806.849,2744644.4852199997,2744644.4852199997 +4525200.0,1674178.6260000002,1688666.949,4930907.49108,877257.2871700001,877257.2871700001,877257.2871700001,1292646.9045000002,3304251.1161599997,5367423.991680001,2605452.4110299996,3970213.19776,1459274.679,1459274.679,1459274.679,957050.1709999999,1674178.6260000002,1674178.6260000002,1333793.9524,1147629.52575,1705859.1963,2975335.8075,844428.6387,1073954.54385,1837178.9100000001,1837178.9100000001,1837178.9100000001,1837178.9100000001,5033697.06884,5033697.06884 +4528800.0,1089009.807,819964.6199999999,2394296.6903999997,447913.1092700001,447913.1092700001,447913.1092700001,464420.4284999999,1385699.08744,5590796.54976,722280.23343,1100617.49856,1043456.7749999999,1043456.7749999999,1043456.7749999999,1076871.81,1089009.807,1089009.807,1307937.1480499997,1792445.8491,2664326.91644,4647081.831,1318886.08156,1677375.25138,598851.744,598851.744,598851.744,598851.744,3274289.48638,3274289.48638 +4532400.0,548907.3570000001,522991.698,1527135.75816,197135.334,197135.334,197135.334,355054.0595,946980.5513599999,2056847.8758400003,597049.0705200001,909789.05984,381066.03599999996,381066.03599999996,381066.03599999996,320313.6055,548907.3570000001,548907.3570000001,468750.85399999993,494207.21564999997,734599.36746,1281277.9665,363638.88954,462480.33267,396661.155,396661.155,396661.155,396661.155,1650381.45338,1650381.45338 +4536000.0,610138.311,1036736.1000000001,3027269.412,431252.71893,431252.71893,431252.71893,765077.3235,1345640.4367199999,2039297.61984,1022190.9158999999,1557624.2528,515065.029,515065.029,515065.029,868886.585,610138.311,610138.311,633506.93744,608169.3637499999,903994.9554999999,1576735.3875,447492.5195,569126.39225,580417.575,580417.575,580417.575,580417.575,1834482.52174,1834482.52174 +4539600.0,426635.76599999995,407587.72200000007,1190156.1482400002,301817.32944,301817.32944,301817.32944,582533.4445,861173.31456,1181290.0377600002,592125.70662,902286.79104,353312.217,353312.217,353312.217,352167.228,426635.76599999995,426635.76599999995,399067.82122999994,384102.83429999993,570938.0401199999,995822.163,282623.81388,359444.38074,363146.829,363146.829,363146.829,363146.829,1282751.53644,1282751.53644 +4543200.0,301895.886,238606.272,696730.31424,88310.10298,88310.10298,88310.10298,216384.0805,624162.95312,799549.0592,386337.75578999997,588705.15168,247077.02699999997,247077.02699999997,247077.02699999997,190242.976,301895.886,301895.886,299709.8013,235924.07085,350682.1991399999,611654.9985,173593.51385999998,220778.32802999998,252587.84100000001,252587.84100000001,252587.84100000001,252587.84100000001,907700.29724,907700.29724 +4546800.0,440050.49100000004,389125.935,1136247.7302,828195.9524300001,828195.9524300001,828195.9524300001,726369.7805,911926.3543199999,681220.7360000001,810308.51937,1234755.83904,294979.791,294979.791,294979.791,804041.756,440050.49100000004,440050.49100000004,676472.1806699999,564466.3848,839033.9843199999,1463431.368,415335.75968,528229.03664,273894.51300000004,273894.51300000004,273894.51300000004,273894.51300000004,1323085.14294,1323085.14294 +4550400.0,664421.346,1114699.092,3254921.34864,847183.18619,847183.18619,847183.18619,909178.305,1829267.30552,2207251.7881600005,1182923.5206600002,1802550.1267200003,747725.8319999999,747725.8319999999,747725.8319999999,1263907.421,664421.346,664421.346,1151836.31329,1002332.7665999999,1489887.2234399999,2598640.506,737518.92456,937985.4778799999,802718.817,802718.817,802718.817,802718.817,1997693.51364,1997693.51364 +4554000.0,665383.068,874602.7109999999,2553839.9161199997,883829.8813300001,883829.8813300001,883829.8813300001,830326.4585,1771084.89808,2439122.03968,1177831.99065,1794791.6048,682083.8130000001,682083.8130000001,682083.8130000001,1040526.3925000001,665383.068,665383.068,942201.76102,903528.6304499999,1343022.80378,2342481.6345,664818.59722,845524.32331,791555.6969999999,791555.6969999999,791555.6969999999,791555.6969999999,2000585.09112,2000585.09112 +4557600.0,2013764.8559999997,1672225.2690000003,4882897.78548,3152762.58187,3152762.58187,3152762.58187,2730373.275,3148836.9777599997,5810899.73312,3449697.5247,5256681.9424,2128510.425,2128510.425,2128510.425,2603493.3189999997,2013764.8559999997,2013764.8559999997,2879686.46134,2557255.21605,3801154.6668199995,6629920.9305,1881634.7021799998,2393085.74539,2262212.289,2262212.289,2262212.289,2262212.289,6054719.667039999,6054719.667039999 +4561200.0,1360336.518,793240.926,2316263.50392,1493116.08116,1493116.08116,1493116.08116,1423254.014,2170651.12224,3390009.0809600004,1878670.8784200002,2862736.5766400006,1217173.305,1217173.305,1217173.305,1413816.3935,1360336.518,1360336.518,1076031.26163,1382696.7583499998,2055267.7741399996,3584769.3734999998,1017391.6888599999,1293931.0405299999,1325525.724,1325525.724,1325525.724,1325525.724,4090078.4641199997,4090078.4641199997 +4564800.0,1058409.795,816657.3359999999,2384639.4211199996,1130238.51974,1130238.51974,1130238.51974,1070977.481,1798583.26808,3278135.1328000003,1561651.4955300002,2379659.4217600003,971225.898,971225.898,971225.898,1277422.433,1058409.795,1058409.795,1140934.7657499998,1240231.48785,1843504.5819399997,3215414.9684999995,912565.3910599999,1160611.68863,1083238.029,1083238.029,1083238.029,1083238.029,3182285.4502999997,3182285.4502999997 +4568400.0,928189.506,800129.517,2336378.1896399995,1080041.21951,1080041.21951,1080041.21951,1049759.6130000001,1714303.8278400002,3188344.47296,1503299.46375,2290742.04,933866.052,933866.052,933866.052,1222419.5865,928189.506,928189.506,1117077.94978,1200931.3773,1785088.12132,3113525.793,883648.27268,1123834.54814,1050751.158,1050751.158,1050751.158,1050751.158,2790756.44804,2790756.44804 +4572000.0,664461.51,565681.632,1651790.3654399998,708509.55604,708509.55604,708509.55604,587752.4415,876568.0217599999,1967982.3206400003,852469.01943,1299000.41056,502071.75600000005,502071.75600000005,502071.75600000005,620281.704,664461.51,664461.51,780400.8309499999,564929.6723999999,839722.6241599999,1464632.484,415676.64784,528662.5823199999,673166.208,673166.208,673166.208,673166.208,1997814.2734,1997814.2734 +4575600.0,113736.876,101321.43900000001,295858.60188000003,118063.85019,118063.85019,118063.85019,61915.27650000001,177919.24416,708336.07872,202277.46336,308232.32512,168484.365,168484.365,168484.365,109354.6125,113736.876,113736.876,199910.92081999997,82530.6084,122675.12655999999,213968.244,60726.22544,77232.34712,139037.40899999999,139037.40899999999,139037.40899999999,139037.40899999999,341968.87384,341968.87384 +4579200.0,110877.30900000001,101293.119,295775.90748,95744.78419000002,95744.78419000002,95744.78419000002,41474.72,195679.99232,716579.5500800001,199764.54960000003,304403.12320000003,168482.328,168482.328,168482.328,104909.3815,110877.30900000001,110877.30900000001,212649.72481999997,76539.56085,113769.91513999998,198435.89849999998,56317.997859999996,71625.91003,138045.738,138045.738,138045.738,138045.738,333371.10906,333371.10906 +4582800.0,120758.766,113242.128,330667.01375999994,92958.32381,92958.32381,92958.32381,40494.622,212679.35631999996,739138.1856,235007.65407,358106.90144,172825.257,172825.257,172825.257,107858.2925,120758.766,120758.766,223374.02386,79110.15255,117590.89342,205100.39549999998,58209.44558,74031.47609,145805.025,145805.025,145805.025,145805.025,363081.35643999994,363081.35643999994 +4586400.0,132540.093,129097.27799999999,376964.05176,89845.13197,89845.13197,89845.13197,45620.211,215453.58408,751769.3324800002,259505.37543000001,395436.76256000006,174390.522,174390.522,174390.522,107400.59400000001,132540.093,132540.093,251538.44976,94012.02224999998,139741.3269,243734.87249999997,69174.2781,87976.68255,153021.696,153021.696,153021.696,153021.696,398503.87962,398503.87962 +4590000.0,148457.562,140174.079,409308.31068,97397.13907,97397.13907,97397.13907,62042.85500000001,240529.27096,779940.51392,299502.40257000003,456384.61344000004,186256.158,186256.158,186256.158,118394.7905,148457.562,148457.562,258976.41249999998,107364.49965,159588.71305999998,278352.4065,78999.06394000001,100471.96387,198582.495,198582.495,198582.495,198582.495,446362.40307999996,446362.40307999996 +4593600.0,192338.44800000003,153364.63799999998,447824.74295999995,122627.61445000001,122627.61445000001,122627.61445000001,73187.54449999999,330308.22752,790911.6774400001,341059.11399,519709.12607999996,281685.999,281685.999,281685.999,200064.37850000002,192338.44800000003,192338.44800000003,278840.51962,130448.93669999999,193901.87627999997,338200.947,95984.64971999999,122074.43706,257216.553,257216.553,257216.553,257216.553,578297.6003200001,578297.6003200001 +4597200.0,239083.89,172863.774,504762.22008,145043.17608,145043.17608,145043.17608,82165.1075,462082.64744,804068.2412800001,393958.79544,600318.16448,328799.154,328799.154,328799.154,226318.41400000005,239083.89,239083.89,309635.94336999994,152072.81819999998,226044.04087999996,394262.86199999996,111895.55511999999,142310.11875999998,308513.751,308513.751,308513.751,308513.751,718845.5626000001,718845.5626000001 +4600800.0,324756.68100000004,202019.049,589895.62308,243578.97091000003,243578.97091000003,243578.97091000003,162690.33899999998,598842.34832,895967.74976,523704.2937,798025.5904,405243.162,405243.162,405243.162,268726.2095,324756.68100000004,324756.68100000004,345452.20866,196079.616,291456.61439999996,508354.56,144275.8656,183491.7888,404893.50299999997,404893.50299999997,404893.50299999997,404893.50299999997,976435.0875400001,976435.0875400001 +4604400.0,1096294.857,1109736.2219999998,3240429.7682399997,1072027.2185700003,1072027.2185700003,1072027.2185700003,1073244.0740000003,1675487.6312799999,1663948.9024000003,1439318.6417399999,2193247.45408,706723.71,706723.71,706723.71,1643063.345,1096294.857,1096294.857,2060322.8987899998,624914.2062,928884.82008,1620147.942,459813.41592,584796.25716,1487594.244,1487594.244,1487594.244,1487594.244,3296193.20338,3296193.20338 +4608000.0,1978333.4880000001,1779770.1150000002,5196928.735800001,2490514.53431,2490514.53431,2490514.53431,1788324.4679999999,2957453.1171999997,3280978.1094400003,2929933.06683,4464659.91136,1223619.8220000002,1223619.8220000002,1223619.8220000002,1825923.7395,1978333.4880000001,1978333.4880000001,2772906.16889,1557310.4793,2314817.05812,4037471.6130000004,1145872.89588,1457334.9917400002,2184136.3260000004,2184136.3260000004,2184136.3260000004,2184136.3260000004,5948189.35392,5948189.35392 +4611600.0,2001417.039,1898480.7540000002,5543563.8016800005,2234636.82926,2234636.82926,2234636.82926,2045786.7989999999,3358121.95088,8082965.966080002,2506112.3955,3818837.936,2097612.675,2097612.675,2097612.675,2005442.208,2001417.039,2001417.039,1600836.6242699998,2964351.3138,4406270.34792,7685355.258,2181177.01608,2774047.2788400003,1567489.7909999997,1567489.7909999997,1567489.7909999997,1567489.7909999997,6017593.89726,6017593.89726 +4615200.0,1260293.754,996365.7660000001,2909388.03672,1275030.2471500002,1275030.2471500002,1275030.2471500002,2004648.1245,2583333.344,4369962.04224,2576788.99338,3926535.60896,1824782.9819999998,1824782.9819999998,1824782.9819999998,1996628.3155,1260293.754,1260293.754,1295875.72192,2380035.12975,3537731.2298999997,6170461.4475,1751235.7251,2227242.75105,1392039.543,1392039.543,1392039.543,1392039.543,3789283.2203599997,3789283.2203599997 +4618800.0,1012994.8080000002,788845.449,2303428.71108,1185526.87308,1185526.87308,1185526.87308,1729745.3705,2814701.21424,5027673.98144,2014269.8585100002,3069363.5939200004,883090.635,883090.635,883090.635,1776860.4595,1012994.8080000002,1012994.8080000002,738027.18886,1637650.2645,2434235.7018,4245759.945,1204987.1082000001,1532517.1611000001,1127315.4719999998,1127315.4719999998,1127315.4719999998,1127315.4719999998,3045737.7227200004,3045737.7227200004 +4622400.0,766133.3670000001,633467.247,1849724.36124,683975.60418,683975.60418,683975.60418,1033579.8514999999,1934123.2557599999,2004447.61984,1420420.5180900001,2164450.3132800004,718497.1259999999,718497.1259999999,718497.1259999999,998420.0695000001,766133.3670000001,766133.3670000001,559388.14672,952517.1469500001,1415840.30238,2469488.8995000003,700864.46862,891367.8980100001,769972.0380000001,769972.0380000001,769972.0380000001,769972.0380000001,2303507.65678,2303507.65678 +4626000.0,256468.30200000003,141831.177,414147.03684,113053.59879,113053.59879,113053.59879,195342.39549999998,550887.47448,378917.54240000003,362829.81734999997,552883.5312,185147.211,185147.211,185147.211,218142.967,256468.30200000003,256468.30200000003,97487.4927,132259.2786,196592.80424,342894.42600000004,97316.70376,123768.55948000001,215689.80599999998,215689.80599999998,215689.80599999998,215689.80599999998,771114.6946800001,771114.6946800001 +4629600.0,295782.876,204016.62000000002,595728.5304,103938.01979,103938.01979,103938.01979,255242.631,566502.8110400001,572662.90304,413289.46491,629774.42272,239003.54700000002,239003.54700000002,239003.54700000002,249377.5725,295782.876,295782.876,147707.72626999998,217297.44855,322995.21982,563363.7555000001,159887.99918,203347.48889000004,239496.04499999998,239496.04499999998,239496.04499999998,239496.04499999998,889320.5138399999,889320.5138399999 +4633200.0,288098.61600000004,197391.522,576383.24424,86482.41657,86482.41657,86482.41657,239372.1575,540990.5024,554269.4579200001,391901.54387999995,597183.30496,230223.099,230223.099,230223.099,230481.2965,288098.61600000004,288098.61600000004,148573.89183,207167.24834999998,307937.49013999995,537100.2735,152434.17286,193867.62253,230070.276,230070.276,230070.276,230070.276,866216.50544,866216.50544 +4636800.0,725258.334,631851.6000000001,1845006.672,466105.59006,466105.59006,466105.59006,780141.5965,1368024.94648,2262127.4182400005,1137979.16316,1734063.48672,678585.0630000001,678585.0630000001,678585.0630000001,912205.3675,725258.334,725258.334,639628.8841799999,892061.7236999999,1325978.1670799998,2312752.6169999996,656381.2189199999,834793.56366,762858.615,762858.615,762858.615,762858.615,2180610.0575599996,2180610.0575599996 +4640400.0,900278.1299999999,780256.7130000001,2278349.60196,924936.50282,924936.50282,924936.50282,997652.929,1666886.1697599997,2914829.99872,1440396.90543,2194890.52256,850487.2890000001,850487.2890000001,850487.2890000001,1140797.0629999998,900278.1299999999,900278.1299999999,875938.31117,1116795.95235,1660027.56374,2895396.9135,821741.21926,1045100.40973,954754.0170000001,954754.0170000001,954754.0170000001,954754.0170000001,2706836.2441999996,2706836.2441999996 +4644000.0,947695.5689999999,824285.427,2406913.44684,1104449.94968,1104449.94968,1104449.94968,1087786.756,1768994.6335999998,3097140.4032000005,1526395.30176,2325935.6979199997,903818.7810000001,903818.7810000001,903818.7810000001,1210366.22,947695.5689999999,947695.5689999999,1020380.4755299999,1189000.2393,1767353.44212,3082593.2130000005,874869.3118800002,1112669.3597400002,1030528.578,1030528.578,1030528.578,1030528.578,2849404.67746,2849404.67746 +4647600.0,961717.23,854886.1680000001,2496267.6105600004,1137720.68564,1137720.68564,1137720.68564,1104150.621,1863207.2948,3289066.0729600005,1553327.6184300003,2366975.41856,926034.2040000001,926034.2040000001,926034.2040000001,1232046.5744999999,961717.23,961717.23,1127786.1016499999,1221626.3588999999,1815849.5507599998,3167179.4489999996,898875.69124,1143200.96302,1059367.878,1059367.878,1059367.878,1059367.878,2891563.1381999995,2891563.1381999995 +4651200.0,1010219.361,903971.01,2639595.3491999996,1180860.8337899998,1180860.8337899998,1180860.8337899998,1148354.6725,1990616.1628800002,3510072.4595200005,1676224.5099600002,2554246.87232,1003626.492,1003626.492,1003626.492,1308678.497,1010219.361,1010219.361,1240915.92118,1290342.4982999999,1917990.5777199995,3345332.4029999995,949437.1962799998,1207505.6959399998,1120896.7710000002,1120896.7710000002,1120896.7710000002,1120896.7710000002,3037392.87874,3037392.87874 +4654800.0,1006089.0389999999,868498.44,2536015.4447999997,1010332.8480300001,1010332.8480300001,1010332.8480300001,928436.6805,1775270.6596799998,2738020.46784,1489413.4407600001,2269582.3859200003,861882.615,861882.615,861882.615,1112493.3575,1006089.0389999999,1006089.0389999999,1266791.95591,1094449.6521,1626811.58164,2837462.061,805298.75636,1024188.6867800001,1044112.2690000001,1044112.2690000001,1044112.2690000001,1044112.2690000001,3024974.3772599995,3024974.3772599995 +4658400.0,412882.41299999994,290111.061,847124.2981199999,482501.25946000003,482501.25946000003,482501.25946000003,349770.37549999997,758800.7425599999,979288.8569600001,625790.3622600001,953585.3139200001,346012.74,346012.74,346012.74,430398.26550000004,412882.41299999994,412882.41299999994,664401.6780699999,218457.23489999998,324719.14916,566370.6089999999,160741.37284,204432.81982,507775.19999999995,507775.19999999995,507775.19999999995,507775.19999999995,1241399.7884199999,1241399.7884199999 +4662000.0,145956.237,105990.0,309490.8,153105.02801,153105.02801,153105.02801,63195.153000000006,297311.70775999996,744008.2476799999,278630.20479,424579.35968,203908.88100000002,203908.88100000002,203908.88100000002,117374.40400000001,145956.237,145956.237,222633.03855,89727.5475,133372.799,232626.975,66021.751,83967.2605,156849.75900000002,156849.75900000002,156849.75900000002,156849.75900000002,438841.75258,438841.75258 +4665600.0,149384.52,117704.81399999998,343698.05687999993,135578.18351,135578.18351,135578.18351,49501.105500000005,328014.6084,775051.04192,279730.53192000004,426256.04864000005,211190.739,211190.739,211190.739,115650.2305,149384.52,149384.52,228837.07755999998,87935.47515,130709.02725999999,227980.8615,64703.13974,82290.23477,159006.393,159006.393,159006.393,159006.393,449149.4567999999,449149.4567999999 +4669200.0,161138.406,148116.903,432501.35676,133768.50685,133768.50685,133768.50685,52563.7875,341470.09687999997,807873.74976,294752.45499,449146.59807999997,216368.68800000002,216368.68800000002,216368.68800000002,116359.90450000002,161138.406,161138.406,245315.55554999996,101749.6485,151242.6874,263795.385,74867.64259999999,95217.5723,166899.378,166899.378,166899.378,166899.378,484489.47403999994,484489.47403999994 +4672800.0,173663.55,168758.13900000002,492773.76588,141415.86184,141415.86184,141415.86184,64053.86750000001,350521.71728,862448.0147200001,327509.25417000003,499061.72064,256958.91299999997,256958.91299999997,256958.91299999997,120240.52600000001,173663.55,173663.55,273644.53635999997,111759.47864999999,166121.49665999998,289746.7965,82232.90034,104584.79607,208282.23599999998,208282.23599999998,208282.23599999998,208282.23599999998,522148.40699999995,522148.40699999995 +4676400.0,202690.647,187083.021,546282.4213200001,150863.82553000003,150863.82553000003,150863.82553000003,73701.6735,383315.54816,897725.8271999999,363006.88515,553153.3488,326391.255,326391.255,326391.255,167619.102,202690.647,202690.647,292597.59099999996,134879.7258,200487.88872,349688.17799999996,99244.83528,126220.78044,266098.311,266098.311,266098.311,266098.311,609423.2119799999,609423.2119799999 +4680000.0,260070.79499999998,221818.87199999997,647711.10624,166113.41956,166113.41956,166113.41956,81619.89499999999,513998.77576,962615.3113600002,436238.79453,664744.82976,404634.816,404634.816,404634.816,250831.44100000002,260070.79499999998,260070.79499999998,328460.29684,163651.8978,243255.41352,424282.69800000003,120415.47048,153145.85004000002,342188.748,342188.748,342188.748,342188.748,781946.1902999999,781946.1902999999 +4683600.0,356716.608,260280.783,760019.88636,193817.04265000002,193817.04265000002,193817.04265000002,95120.73550000001,674907.95704,1134794.3686400002,551004.83508,839626.4153600001,479402.91000000003,479402.91000000003,479402.91000000003,285369.532,356716.608,356716.608,393944.16112999996,202180.34565,300524.85946,524171.2665,148764.79754,189200.86667000002,449476.43700000003,449476.43700000003,449476.43700000003,449476.43700000003,1072527.93472,1072527.93472 +4687200.0,447356.96100000007,293659.11899999995,857484.6274799999,287775.07649,287775.07649,287775.07649,178009.0025,786791.85672,1347025.69792,675254.286,1028958.9119999999,516224.25600000005,516224.25600000005,516224.25600000005,328576.81149999995,447356.96100000007,447356.96100000007,410081.19645999995,297421.3079999999,442092.9071999999,771092.2799999998,218843.33279999995,278327.59439999994,533445.834,533445.834,533445.834,533445.834,1345053.2627400002,1345053.2627400002 +4690800.0,1203159.066,1220385.525,3563525.733,1120919.26573,1120919.26573,1120919.26573,1095841.5685,1920703.6190399998,2189182.55616,1610625.4978800002,2454286.4729600004,825524.478,825524.478,825524.478,1767476.6130000001,1203159.066,1203159.066,2192401.4487699997,732977.5455,1089512.3022,1900312.1550000003,539326.6878000001,685922.1969000001,1619762.4239999999,1619762.4239999999,1619762.4239999999,1619762.4239999999,3617498.25844,3617498.25844 +4694400.0,2066954.1630000002,1876453.4640000002,5479244.11488,2572296.85383,2572296.85383,2572296.85383,1869168.4130000002,3143575.64,3488107.328,3025573.99788,4610398.47296,1270161.6809999999,1270161.6809999999,1270161.6809999999,1987598.2245000002,2066954.1630000002,2066954.1630000002,2948832.1545799994,1625522.8675499998,2416209.2994199996,4214318.5455,1196063.7395799998,1521168.3130899998,2231998.278,2231998.278,2231998.278,2231998.278,6214642.18342,6214642.18342 +4698000.0,1841888.625,1815412.947,5301005.80524,2199402.79449,2199402.79449,2199402.79449,2021676.5135000001,3153191.4044,7840070.4665600015,2351660.02722,3583481.9462400004,2020462.5750000002,2020462.5750000002,2020462.5750000002,1903021.7955,1841888.625,1841888.625,1320836.42808,2895001.0537499995,4303186.751499999,7505558.2875,2130148.9235,2709149.1342499997,1375636.233,1375636.233,1375636.233,1375636.233,5537945.132499999,5537945.132499999 +4701600.0,1169225.781,858700.125,2507404.3649999998,1233211.55881,1233211.55881,1233211.55881,1988104.6570000001,2491478.63536,4089264.14592,2415355.3672500006,3680541.5120000006,1687382.043,1687382.043,1687382.043,1881540.5525,1169225.781,1169225.781,1238018.7090699999,2327835.91095,3460141.2799799996,6035130.1395,1712827.41102,2178394.59321,1272973.554,1272973.554,1272973.554,1272973.554,3515472.1815399993,3515472.1815399993 +4705200.0,732672.633,497628.735,1453075.9061999999,960137.5217500001,960137.5217500001,960137.5217500001,1477512.3965,2341459.7751200004,4197159.00608,1578852.40065,2405870.3248,582927.159,582927.159,582927.159,1398615.057,732672.633,732672.633,396972.36878,1236394.89045,1837801.78778,3205468.2345000003,909742.41322,1157021.39131,777849.246,777849.246,777849.246,777849.246,2202902.38322,2202902.38322 +4708800.0,630296.943,509997.12599999993,1489191.6079199999,408653.39273,408653.39273,408653.39273,868450.646,1683000.67448,1358285.0182400001,1208320.9889099998,1841251.03072,572673.0120000001,572673.0120000001,572673.0120000001,744556.9425,630296.943,630296.943,304854.41375999997,729651.3614999999,1084568.1966,1891688.7149999999,536879.2734,682809.5456999999,605220.999,605220.999,605220.999,605220.999,1895092.8086199998,1895092.8086199998 +4712400.0,436496.196,326541.01499999996,953499.7637999998,239160.92079,239160.92079,239160.92079,419253.29600000003,894567.85952,1088199.47392,680410.97271,1036816.7203200001,360719.115,360719.115,360719.115,477339.842,436496.196,436496.196,300142.27801999997,424127.20634999993,630431.0573399999,1099589.0535,312073.84566,396899.28693,421073.10599999997,421073.10599999997,421073.10599999997,421073.10599999997,1312398.56264,1312398.56264 +4716000.0,337555.635,246317.81100000002,719248.00812,145843.26889000004,145843.26889000004,145843.26889000004,310432.02749999997,636092.2159999999,753833.1705600001,489894.49173,746505.89216,268098.615,268098.615,268098.615,302257.62,337555.635,337555.635,209896.05753999998,291854.28735,433817.97773999994,756659.2635,214747.10525999998,273117.96272999997,295579.401,295579.401,295579.401,295579.401,1014917.2758999999,1014917.2758999999 +4719600.0,298783.461,208502.046,608825.97432,98785.48933000001,98785.48933000001,98785.48933000001,253655.95499999996,554855.45664,603666.32256,412149.94716,628038.01472,231323.031,231323.031,231323.031,237504.071,298783.461,298783.461,164164.98254,229701.88575,341433.4203,595523.4075,169015.2147,214955.59185,244529.27999999997,244529.27999999997,244529.27999999997,244529.27999999997,898342.2727399999,898342.2727399999 +4723200.0,714575.8439999999,624024.174,1822150.58808,541611.5259500002,541611.5259500002,541611.5259500002,777419.258,1320128.26824,2267903.5449600006,1141578.0348,1739547.4816,649290.1740000001,649290.1740000001,649290.1740000001,873088.7829999999,714575.8439999999,714575.8439999999,646641.6188700001,880173.0094499999,1308306.54738,2281930.0245,647633.47362,823668.07551,748073.592,748073.592,748073.592,748073.592,2148491.3709599995,2148491.3709599995 +4726800.0,822602.4540000001,707733.726,2066582.4799199998,780994.9739900001,780994.9739900001,780994.9739900001,905826.11,1502095.04704,2633558.7481600004,1309429.57173,1995321.25216,752267.121,752267.121,752267.121,1008565.1660000001,822602.4540000001,822602.4540000001,733294.9473199999,1008351.19215,1498833.1300599999,2614243.8315,741947.29694,943617.53537,856634.1270000001,856634.1270000001,856634.1270000001,856634.1270000001,2473291.37836,2473291.37836 +4730400.0,927610.098,813404.7990000001,2375142.01308,1042345.51036,1042345.51036,1042345.51036,1062791.6179999998,1727345.9202400001,3027863.40672,1495171.6363499998,2278356.7791999998,872013.003,872013.003,872013.003,1169764.2774999999,927610.098,927610.098,930042.7784699999,1150674.2833499997,1710384.9841399996,2983229.6234999998,846668.9788599999,1076803.8355299998,986482.5869999999,986482.5869999999,986482.5869999999,986482.5869999999,2789014.3613199997,2789014.3613199997 +4734000.0,995319.7889999999,888854.1300000001,2595454.0596000003,1150340.7666300002,1150340.7666300002,1150340.7666300002,1140923.7875,1920003.00008,3310457.7740800004,1612168.94853,2456638.39776,956245.9680000001,956245.9680000001,956245.9680000001,1277900.2880000002,995319.7889999999,995319.7889999999,1162305.3889199998,1255916.2671,1866818.74764,3256079.211,924106.29036,1175289.54378,1086609.8369999998,1086609.8369999998,1086609.8369999998,1086609.8369999998,2992594.8322599996,2992594.8322599996 +4737600.0,1027758.0989999999,922175.559,2692752.63228,1190140.5803100003,1190140.5803100003,1190140.5803100003,1166671.142,2040711.9398400001,3600183.2416000003,1678966.0179600003,2558424.4083200004,1025828.2409999999,1025828.2409999999,1025828.2409999999,1329780.2280000001,1027758.0989999999,1027758.0989999999,1208507.2955799997,1315020.8776500002,1954673.00826,3409313.3865000005,967595.60874,1230599.7842700002,1138336.0320000001,1138336.0320000001,1138336.0320000001,1138336.0320000001,3090126.01766,3090126.01766 +4741200.0,976391.5319999999,841061.952,2455900.89984,969255.05435,969255.05435,969255.05435,898858.8454999998,1721513.89184,2642082.7712000003,1438597.1943,2192148.1056000004,819297.492,819297.492,819297.492,1066824.0485,976391.5319999999,976391.5319999999,1228200.99402,1057372.14105,1571698.83682,2741335.1805000002,778017.0321800001,989491.4603900001,1003900.797,1003900.797,1003900.797,1003900.797,2935683.8728799997,2935683.8728799997 +4744800.0,454387.971,324622.011,947896.27212,518419.03388,518419.03388,518419.03388,378450.072,866024.3748,1116185.7171200002,696784.61958,1061767.03936,390834.99,390834.99,390834.99,477297.31700000004,454387.971,454387.971,724487.8998499999,242323.8849,360195.00916,628247.109,178302.51284,226767.28982,557521.473,557521.473,557521.473,557521.473,1366193.16614,1366193.16614 +4748400.0,167637.444,122287.149,357078.47508,176557.39772000004,176557.39772000004,176557.39772000004,67822.3665,366939.04935999995,878376.3238400001,323055.87824999995,492275.62399999995,248303.05199999997,248303.05199999997,248303.05199999997,135333.4605,167637.444,167637.444,258407.28849,104038.74899999998,154645.2516,269730.08999999997,76551.9684,97359.71819999999,172582.518,172582.518,172582.518,172582.518,504029.9149599999,504029.9149599999 +4752000.0,172819.66199999998,162517.107,474549.95243999996,157447.63661000002,157447.63661000002,157447.63661000002,58801.981,402889.93168000004,914752.5484800001,324751.9086,494860.0512,251733.726,251733.726,251733.726,131769.582,172819.66199999998,172819.66199999998,261569.54121999998,106900.65719999999,158899.24847999998,277149.85199999996,78657.76752,100037.89895999999,179547.585,179547.585,179547.585,179547.585,519611.11707999994,519611.11707999994 +4755600.0,186051.19800000003,190125.405,555166.1826000001,157616.31369,157616.31369,157616.31369,66439.366,405743.8520799999,963834.4480000001,343175.79387000005,522934.5430400001,257721.37800000003,257721.37800000003,257721.37800000003,131616.1595,186051.19800000003,186051.19800000003,293216.33978,119127.76109999999,177073.85723999998,308849.751,87654.50076,111480.05298,207286.983,207286.983,207286.983,207286.983,559393.93532,559393.93532 +4759200.0,211582.36800000002,201197.511,587496.73212,167477.54111000002,167477.54111000002,167477.54111000002,76724.613,425740.2924,1000459.4112000001,392524.51728000003,598132.59776,355172.52599999995,355172.52599999995,355172.52599999995,146519.702,211582.36800000002,211582.36800000002,315065.35111999995,139122.10484999997,206793.84473999994,360686.93849999993,102366.38825999998,130190.80922999998,279475.041,279475.041,279475.041,279475.041,636157.65312,636157.65312 +4762800.0,253379.364,227541.708,664421.7873600001,171737.03217000002,171737.03217000002,171737.03217000002,83477.513,517716.57816,1003245.44192,432328.87089,658786.85088,411805.176,411805.176,411805.176,258386.30299999999,253379.364,253379.364,341615.90177,166668.86025,247739.88609999997,432104.4525,122635.3589,155969.13095,339695.661,339695.661,339695.661,339695.661,761827.28776,761827.28776 +4766400.0,320747.49600000004,252269.853,736627.9707599999,181331.25945,181331.25945,181331.25945,86179.702,648068.94056,1086285.7689600002,514898.83662,784607.75104,462661.62599999993,462661.62599999993,462661.62599999993,274157.00899999996,320747.49600000004,320747.49600000004,372718.36224999995,188964.47474999996,280880.5279,489907.89749999996,139040.52709999998,176833.42205,421209.195,421209.195,421209.195,421209.195,964380.80464,964380.80464 +4770000.0,397353.1980000001,277466.13,810201.0996000001,194718.80813,194718.80813,194718.80813,96289.354,699564.09248,1238542.0448000003,587820.53442,895726.52864,481475.38499999995,481475.38499999995,481475.38499999995,288963.5805,397353.1980000001,397353.1980000001,392248.54954999994,251729.44694999998,374175.62237999996,652631.8995,185223.14862,235569.03801000002,477687.93000000005,477687.93000000005,477687.93000000005,477687.93000000005,1194708.61532,1194708.61532 +4773600.0,571307.952,325213.422,949623.19224,295047.29144,295047.29144,295047.29144,179196.83250000002,1213799.33568,1515537.3792,866105.6357100001,1319780.0163200002,518474.37,518474.37,518474.37,462237.629,571307.952,571307.952,589121.69082,325921.05269999994,484455.4906799999,844980.5069999999,239813.51531999998,304997.72585999995,602095.584,602095.584,602095.584,602095.584,1717732.5756799998,1717732.5756799998 +4777200.0,1298952.267,737796.363,2154365.37996,1725441.7015000002,1725441.7015000002,1725441.7015000002,1519176.183,3563041.74008,4512905.451520001,3072902.2018799996,4682517.6409599995,1375916.709,1375916.709,1375916.709,2029880.4190000002,1298952.267,1298952.267,2699049.7155699995,1743628.9149,2591764.46116,4520519.409,1282966.46084,1631692.24382,1612521.2880000002,1612521.2880000002,1612521.2880000002,1612521.2880000002,3905516.48278,3905516.48278 +4780800.0,1079312.1779999998,1183467.387,3455724.77004,2141037.68395,2141037.68395,2141037.68395,1973227.1720000003,4244527.84976,3189394.6758400006,3220830.9886200004,4907932.935040001,1276497.4770000002,1276497.4770000002,1276497.4770000002,1819053.1695000003,1079312.1779999998,1079312.1779999998,2146580.71056,2139454.73745,3180127.78258,5546734.5045,1574216.07842,2002107.02591,1507176.0750000002,1507176.0750000002,1507176.0750000002,1507176.0750000002,3245131.9485199996,3245131.9485199996 +4784400.0,1632184.2240000002,1752541.182,5117420.25144,1022647.99648,1022647.99648,1022647.99648,1812628.02,3421983.41376,5446981.01056,2703020.02908,4118887.6633599997,1374486.141,1374486.141,1374486.141,1056633.2315,1632184.2240000002,1632184.2240000002,2128032.58577,1409302.4800500001,2094815.04442,3653747.1705000005,1036968.24458,1318828.74059,1775222.1509999998,1775222.1509999998,1775222.1509999998,1775222.1509999998,4907433.900160001,4907433.900160001 +4788000.0,983178.3929999999,753663.6900000001,2200697.9748,430692.26365000004,430692.26365000004,430692.26365000004,407805.433,1243120.90112,5460252.39104,512777.86287,781375.79104,914881.8629999999,914881.8629999999,914881.8629999999,893283.4085,983178.3929999999,983178.3929999999,1152149.4298599998,1727205.7072499997,2567352.6808999996,4477940.7225,1270882.2241,1616323.36555,406952.01900000003,406952.01900000003,406952.01900000003,406952.01900000003,2956089.70162,2956089.70162 +4791600.0,418188.105,381566.39699999994,1114173.87924,163808.98556,163808.98556,163808.98556,178973.87900000002,662231.92752,1794296.3833600003,341592.8869500001,520522.4944000001,207909.864,207909.864,207909.864,178258.864,418188.105,418188.105,300377.0926,359407.5867,534230.53628,931797.447,264452.98972,336334.50706000003,226922.78999999998,226922.78999999998,226922.78999999998,226922.78999999998,1257352.2357,1257352.2357 +4795200.0,412779.95699999994,843113.0489999999,2461890.10308,235588.12827000002,235588.12827000002,235588.12827000002,500520.44,890403.71176,1166924.8691200002,622178.84568,948082.05056,253454.00400000002,253454.00400000002,253454.00400000002,655672.738,412779.95699999994,412779.95699999994,354409.41471,309317.5755,459775.7541999999,801934.455,227596.63579999996,289460.15089999995,326883.864,326883.864,326883.864,326883.864,1241091.7373799998,1241091.7373799998 +4798800.0,171140.499,167428.91700000002,488892.43764,179303.09298000002,179303.09298000002,179303.09298000002,328696.7705,292216.71072,190765.7856,160169.56683,244067.91136,83383.02900000001,83383.02900000001,83383.02900000001,117319.49250000001,171140.499,171140.499,130514.22735,72521.13464999999,107796.84705999999,188017.7565,53361.22993999999,67865.45687,81296.649,81296.649,81296.649,81296.649,514562.43366,514562.43366 +4802400.0,195332.87699999998,127486.34399999998,372260.12447999994,73620.89911,73620.89911,73620.89911,103939.3985,367398.71575999993,317122.10176,198568.7865,302581.008,117603.636,117603.636,117603.636,85516.3015,195332.87699999998,195332.87699999998,195793.66663999998,101812.2291,151335.70844,263957.631,74913.68956,95276.13538,126496.527,126496.527,126496.527,126496.527,587300.85018,587300.85018 +4806000.0,275496.597,178537.75799999997,521330.25336,662807.5586000001,662807.5586000001,662807.5586000001,443959.31999999995,521894.31560000003,162413.61536,538605.80487,820732.65504,140730.246,140730.246,140730.246,473709.173,275496.597,275496.597,514221.71280999994,307591.77329999994,457210.4877199999,797460.1529999999,226326.78628,287845.14094,117359.568,117359.568,117359.568,117359.568,828326.43498,828326.43498 +4809600.0,468024.843,905125.332,2642965.96944,431444.56245,431444.56245,431444.56245,635210.471,1405443.28064,1345047.7792,740189.52084,1127907.84128,455601.444,455601.444,455601.444,936549.8835000001,468024.843,468024.843,908220.1355499999,638592.09705,949215.90722,1655609.1405000002,469877.64178000006,597596.06119,559195.5,559195.5,559195.5,559195.5,1407194.6946199997,1407194.6946199997 +4813200.0,586793.6370000001,688478.586,2010357.47112,558159.99536,558159.99536,558159.99536,687620.8255,1438187.4014400002,2056643.07072,971675.9455200001,1480649.05984,513018.099,513018.099,513018.099,759003.0314999999,586793.6370000001,586793.6370000001,676420.56456,719673.2792999999,1069736.57812,1865819.613,529537.37588,673472.03174,608622.2009999999,608622.2009999999,608622.2009999999,608622.2009999999,1764292.86858,1764292.86858 +4816800.0,1950747.6809999999,1680432.861,4906863.95412,2675379.27822,2675379.27822,2675379.27822,2718156.8784999996,3200349.8073600004,5377277.62688,3359348.4527399996,5119007.16608,2100458.457,2100458.457,2100458.457,2307747.5575,1950747.6809999999,1950747.6809999999,2165850.30168,2437716.5784,3623470.0745599996,6320005.944,1793677.87744,2281221.19312,2166038.847,2166038.847,2166038.847,2166038.847,5865248.027539999,5865248.027539999 +4820400.0,1334580.216,834769.5179999999,2437526.9925599997,1257943.41442,1257943.41442,1257943.41442,1351525.5705,2195450.17416,3369256.6016,1816082.77725,2767364.2320000003,1141136.4389999998,1141136.4389999998,1141136.4389999998,1376877.936,1334580.216,1334580.216,1071437.69239,1317540.23685,1958417.8335399998,3415845.0585,969449.35946,1232957.40683,1235780.088,1235780.088,1235780.088,1235780.088,4012637.8494399996,4012637.8494399996 +4824000.0,1075521.903,864619.515,2524688.9838,1155596.3698400003,1155596.3698400003,1155596.3698400003,1120201.3129999998,1912371.7085600002,3396176.14784,1615538.09571,2461772.33632,1007326.9949999999,1007326.9949999999,1007326.9949999999,1345356.3445000001,1075521.903,1075521.903,1160790.79207,1308297.48885,1944679.23034,3391882.3785,962648.52266,1224308.02043,1134964.467,1134964.467,1134964.467,1134964.467,3233735.8550199997,3233735.8550199997 +4827600.0,1026251.6729999998,894061.992,2610661.01664,1177680.3445,1177680.3445,1177680.3445,1180675.1879999998,1934319.6316,3670303.2096,1646105.14677,2508350.69984,1034212.059,1034212.059,1034212.059,1383792.585,1026251.6729999998,1026251.6729999998,1226687.84979,1355722.1991,2015172.25644,3514835.3310000002,997543.74156,1268688.18138,1166492.838,1166492.838,1166492.838,1166492.838,3085596.6968199993,3085596.6968199993 +4831200.0,742873.8,661000.767,1930122.23964,786393.6173500001,786393.6173500001,786393.6173500001,662029.3015,1036686.58968,2345751.0656000003,990552.9813900001,1509414.0668800003,570997.416,570997.416,570997.416,717500.2030000001,742873.8,742873.8,899927.6330199998,656471.2554,975791.84136,1701962.514,483033.17064,614327.42172,758595.006,758595.006,758595.006,758595.006,2233573.892,2233573.892 +4834800.0,132085.977,120472.96800000001,351781.06656,133221.80817,133221.80817,133221.80817,67436.1695,225536.48424,865615.0956800001,240215.07510000002,366042.01920000004,202851.153,202851.153,202851.153,129245.116,132085.977,132085.977,255047.35918999996,97945.21619999998,145587.70407999997,253932.04199999996,72068.33192,91657.37516,156363.426,156363.426,156363.426,156363.426,397138.50418,397138.50418 +4838400.0,133183.94100000002,121817.84400000001,355708.10448000004,111227.29211,111227.29211,111227.29211,47112.299499999994,243169.30136,876285.8624,275667.16884,420064.25728,203214.027,203214.027,203214.027,126594.69199999998,133183.94100000002,133183.94100000002,256732.43686999998,93775.19445000001,139389.30138000002,243120.87450000003,69000.01962,87755.05851000002,163951.134,163951.134,163951.134,163951.134,400439.71594,400439.71594 +4842000.0,150998.061,148001.70299999998,432164.97276,109366.60614,109366.60614,109366.60614,55297.0635,294802.56344,904786.0985600002,300155.52483,457379.84736,208489.965,208489.965,208489.965,128908.738,150998.061,150998.061,290475.38051999995,104046.3225,154656.509,269749.72500000003,76557.541,97366.8055,178909.458,178909.458,178909.458,178909.458,454000.83673999994,454000.83673999994 +4845600.0,161663.028,146840.481,428774.20451999997,102712.60384,102712.60384,102712.60384,58865.562,357100.32544,845189.2448000001,329539.44324,502155.34208,213387.495,213387.495,213387.495,121324.9695,161663.028,161663.028,282899.76519999997,116169.98939999999,172677.36695999998,301181.454,85478.16504,108712.16292,212690.37000000002,212690.37000000002,212690.37000000002,212690.37000000002,486066.83752,486066.83752 +4849200.0,226663.854,173520.198,506678.97816,118858.59095,118858.59095,118858.59095,81467.596,449260.25584,913211.1462400001,395706.22182000004,602980.9094400001,360456.972,360456.972,360456.972,226801.0115,226663.854,226663.854,323796.59299,147880.4202,219812.37768,383393.68200000003,108810.77832,138386.86236,301020.46499999997,301020.46499999997,301020.46499999997,301020.46499999997,681502.65436,681502.65436 +4852800.0,281043.168,226334.96399999998,660898.09488,157800.48526000002,157800.48526000002,157800.48526000002,85678.516,578927.4344,971147.61408,461428.29747,703128.83424,430462.61100000003,430462.61100000003,430462.61100000003,264647.5825,281043.168,281043.168,360673.95871,174185.19855,258912.31981999998,451591.25549999997,128165.89918,163002.93889,368773.077,368773.077,368773.077,368773.077,845003.12512,845003.12512 +4856400.0,357402.31500000006,264447.477,772186.63284,190992.92663,190992.92663,190992.92663,94877.93,675001.35616,1087548.4691200003,558014.2953,850307.4976000001,476523.003,476523.003,476523.003,285678.743,357402.31500000006,357402.31500000006,388947.18681,201942.32309999998,300171.05804,523554.171,148589.65996,188978.12457999997,462504.48600000003,462504.48600000003,462504.48600000003,462504.48600000003,1074589.6271000002,1074589.6271000002 +4860000.0,577861.155,324070.476,946285.78992,300233.32207,300233.32207,300233.32207,179033.113,1212786.50448,1415323.58144,869293.7641500001,1324638.1168000002,533932.926,533932.926,533932.926,424094.811,577861.155,577861.155,602566.33346,315055.25505,468304.35442,816809.9205,231818.43458,294829.48559,616703.628,616703.628,616703.628,616703.628,1737435.8727,1737435.8727 +4863600.0,1293598.959,725860.41,2119512.3972,1691107.7635100002,1691107.7635100002,1691107.7635100002,1502526.396,3532123.17408,4446744.84608,3056566.0164900003,4657624.40608,1330754.691,1330754.691,1330754.691,1965583.116,1293598.959,1293598.959,2659193.32926,1679440.0193999996,2496352.8189599994,4354103.754,1235736.1130399997,1571624.11692,1614708.6060000001,1614708.6060000001,1614708.6060000001,1614708.6060000001,3889420.8700599996,3889420.8700599996 +4867200.0,1086812.682,1200222.393,3504649.3875599997,2011974.7645800002,2011974.7645800002,2011974.7645800002,1967187.0889999997,4271868.1952,3261799.12832,3228301.3564199996,4919316.35264,1298323.506,1298323.506,1298323.506,1799549.7275,1086812.682,1086812.682,2169753.8042699997,2148113.66985,3192998.59074,5569183.588500001,1580587.34226,2010210.0762300002,1537897.479,1537897.479,1537897.479,1537897.479,3267683.46388,3267683.46388 +4870800.0,1737686.8110000002,1884528.993,5502824.65956,1080550.51489,1080550.51489,1080550.51489,1837661.7945000003,3715377.0129599995,5977488.39616,2922640.96467,4453548.13664,1513250.541,1513250.541,1513250.541,1142741.208,1737686.8110000002,1737686.8110000002,1789243.93947,1489281.0214500001,2213696.72818,3861098.9445,1095816.6528200002,1393672.8571100002,1914864.648,1914864.648,1914864.648,1914864.648,5224645.01174,5224645.01174 +4874400.0,1155034.983,831726.6270000001,2428641.7508400003,499807.20878000004,499807.20878000004,499807.20878000004,567675.0975,1525586.0440800001,5908220.95232,778330.2292500001,1186027.016,1093731.66,1093731.66,1093731.66,1118473.3735000002,1155034.983,1155034.983,1385896.6901,1896311.6064,2818715.02976,4916363.424,1395310.76224,1774573.0835199999,598609.902,598609.902,598609.902,598609.902,3472805.18222,3472805.18222 +4878000.0,472474.776,440006.463,1284818.87196,174033.43199,174033.43199,174033.43199,230415.65049999996,750311.88208,2197882.2912000003,424060.47117000003,646187.3846400001,259627.2,259627.2,259627.2,241373.17049999998,472474.776,472474.776,376790.08978,526942.179,783257.2636,1366146.39,387725.3564,493113.79219999997,284545.305,284545.305,284545.305,284545.305,1420574.1598399999,1420574.1598399999 +4881600.0,523655.814,956058.8910000001,2791691.96172,323587.03091000003,323587.03091000003,323587.03091000003,645658.3035,1136429.70168,1678334.5689600003,857016.3388500001,1305929.6592,392832.324,392832.324,392832.324,772618.0945,523655.814,523655.814,483809.06405,487322.78264999995,724366.21026,1263429.4365,358573.30673999997,456037.86327,476833.30799999996,476833.30799999996,476833.30799999996,476833.30799999996,1574458.48076,1574458.48076 +4885200.0,310145.316,320988.519,937286.4754799999,237520.78405000002,237520.78405000002,237520.78405000002,474903.9015,569217.85624,685038.9196800002,386227.03287,588536.43104,194193.96899999998,194193.96899999998,194193.96899999998,288912.463,310145.316,310145.316,274370.38941,235482.7302,350026.18168,610510.782,173268.77432,220365.32035999998,228175.929,228175.929,228175.929,228175.929,932503.58344,932503.58344 +4888800.0,179807.61000000002,112255.203,327785.19275999995,72984.38367000001,72984.38367000001,72984.38367000001,99081.1675,320278.10344,290572.2688,175936.87482,268094.28544,101710.716,101710.716,101710.716,73609.08799999999,179807.61000000002,179807.61000000002,173279.5285,95152.0203,141435.84252,246690.423,70013.09148,89043.49554,110804.739,110804.739,110804.739,110804.739,540621.5474,540621.5474 +4892400.0,303821.058,243521.988,711084.20496,791968.13355,791968.13355,791968.13355,537610.4859999999,572609.29024,199995.00672,588098.0952,896149.4784,153455.07,153455.07,153455.07,581290.416,303821.058,303821.058,535595.1209699999,379447.3998,564018.11032,983752.518,279198.33368,355087.81364,134452.179,134452.179,134452.179,134452.179,913488.64772,913488.64772 +4896000.0,516804.267,963433.8360000001,2813226.80112,559844.68232,559844.68232,559844.68232,709278.6925,1474433.5191199998,1543941.2512000003,859414.62705,1309584.1936,510126.927,510126.927,510126.927,1019785.2000000001,516804.267,516804.267,991704.6263799999,756323.14275,1124213.6591,1960837.7775,556504.4359,707769.0644500001,613524.0989999999,613524.0989999999,613524.0989999999,613524.0989999999,1553858.16278,1553858.16278 +4899600.0,587414.2320000001,759801.369,2218619.99748,688345.47771,688345.47771,688345.47771,714124.4565000001,1526167.87744,2108648.38272,1001382.0297600001,1525915.47392,560139.477,560139.477,560139.477,839255.8125,587414.2320000001,587414.2320000001,745524.77636,745235.2755,1107732.4341999998,1932091.4549999998,548345.9558,697393.0109,658430.283,658430.283,658430.283,658430.283,1766158.79088,1766158.79088 +4903200.0,1993071.3869999999,1673283.3390000002,4885987.34988,3015083.96497,3015083.96497,3015083.96497,2726613.386,3173434.3627999993,5518946.585600001,3424112.57034,5217695.34528,2120816.526,2120816.526,2120816.526,2415328.1355,1993071.3869999999,1993071.3869999999,2653589.73217,2508463.3878,3728629.5295200003,6503423.598000001,1845733.5544800002,2347426.23204,2255662.62,2255662.62,2255662.62,2255662.62,5992501.303579999,5992501.303579999 +4906800.0,1370873.298,828048.165,2417900.6418,1420341.06236,1420341.06236,1420341.06236,1425110.3335,2231058.21928,3389012.52736,1847823.5907599998,2815731.18592,1198077.402,1198077.402,1198077.402,1404674.5580000002,1370873.298,1370873.298,1110342.98297,1366688.8376999998,2031473.2846799998,3543267.357,1005613.0213199999,1278950.78886,1299604.65,1299604.65,1299604.65,1299604.65,4121759.0493199998,4121759.0493199998 +4910400.0,1076159.223,846889.9439999999,2472918.63648,1154093.62409,1154093.62409,1154093.62409,1101781.0895,1872679.1382399998,3444673.3235200006,1620086.7095699997,2468703.5574399997,990132.6810000001,990132.6810000001,990132.6810000001,1321265.8724999998,1076159.223,1076159.223,1173089.58689,1292335.6126499998,1920953.1822599997,3350499.7364999996,950903.73474,1209370.85727,1123258.734,1123258.734,1123258.734,1123258.734,3235652.06382,3235652.06382 +4914000.0,1001910.165,870331.344,2541367.52448,1153723.0872199999,1153723.0872199999,1153723.0872199999,1146411.658,1879688.4055199998,3552592.6419200003,1633894.3609799999,2489743.78816,1023895.9290000001,1023895.9290000001,1023895.9290000001,1344824.222,1001910.165,1001910.165,1196267.6397099998,1318379.1012000002,1959664.73808,3418019.8920000005,970066.5979200001,1233742.4181600001,1141834.071,1141834.071,1141834.071,1141834.071,3012409.8961,3012409.8961 +4917600.0,722899.071,635084.25,1854446.01,764246.3501200001,764246.3501200001,764246.3501200001,641573.0125000001,989831.93096,2241829.44,951150.5997000001,1449372.3424000002,567470.505,567470.505,567470.505,691887.5495,722899.071,722899.071,867149.7292899999,631297.2653999999,938372.7253599998,1636696.6139999998,464510.08663999994,590769.53972,739475.442,739475.442,739475.442,739475.442,2173516.5401399997,2173516.5401399997 +4921200.0,127894.449,116296.65600000002,339586.23552000005,129662.04372,129662.04372,129662.04372,66176.3585,215841.68712,831089.0476800001,227605.65975,346827.672,195672.69,195672.69,195672.69,124984.4435,127894.449,127894.449,242744.10549999995,94456.97145,140402.70818,244888.44449999998,69501.67281999999,88393.06711,157196.238,157196.238,157196.238,157196.238,384535.97666,384535.97666 +4924800.0,128116.023,117736.89300000001,343791.72756,108175.04445,108175.04445,108175.04445,46020.023,233670.24352,847105.8656,258238.61615999998,393506.46272,196936.69199999998,196936.69199999998,196936.69199999998,122632.972,128116.023,128116.023,248542.00735,90287.8164,134205.59376,234079.524,66433.99824,84491.56152,161767.26,161767.26,161767.26,161767.26,385202.17582,385202.17582 +4928400.0,142845.096,139470.75900000002,407254.61628,104625.32476,104625.32476,104625.32476,51369.91299999999,257098.0284,860003.9750399999,278123.76963,423807.64895999996,198604.191,198604.191,198604.191,123337.606,142845.096,142845.096,273551.26564999996,97279.41645,144598.04618,252205.8945,71578.43482,91034.31811000001,169896.813,169896.813,169896.813,169896.813,429487.58864,429487.58864 +4932000.0,158115.027,149367.53399999999,436153.19928,104159.06149000001,104159.06149000001,104159.06149000001,57886.647000000004,322381.2568,875266.41728,329035.92539999995,501388.0767999999,205236.60000000003,205236.60000000003,205236.60000000003,124813.64699999998,158115.027,158115.027,290983.92738999997,116502.92775,173172.2531,302044.6275,85723.1419,109023.72745,203956.48500000004,203956.48500000004,203956.48500000004,203956.48500000004,475399.18117999996,475399.18117999996 +4935600.0,211813.27500000002,169225.497,494138.45124,119513.48651,119513.48651,119513.48651,79820.6325,420708.74695999996,894542.6112000002,378893.93367000006,577362.1846400001,328290.38399999996,328290.38399999996,328290.38399999996,210468.35950000002,211813.27500000002,211813.27500000002,312554.68022999994,142486.4196,211794.62864,369409.23600000003,104841.85936,133339.14328000002,289751.751,289751.751,289751.751,289751.751,636851.9135,636851.9135 +4939200.0,261330.852,189813.31199999998,554254.8710399999,150130.83481,150130.83481,150130.83481,82124.56,530737.19104,908637.99936,432176.60031,658554.81952,400161.948,400161.948,400161.948,250056.69850000003,261330.852,261330.852,340923.01645999996,163574.57925,243140.4857,424082.24250000005,120358.57930000001,153073.49515,338768.232,338768.232,338768.232,338768.232,785734.76168,785734.76168 +4942800.0,315605.481,238955.874,697751.15208,166344.63219,166344.63219,166344.63219,88745.7235,597469.2008,958790.92608,504026.59356,768040.52352,426526.299,426526.299,426526.299,259628.94999999998,315605.481,315605.481,357150.09498999995,180006.19874999998,267564.7695,466682.7375,132449.0055,168450.24525,414569.08199999994,414569.08199999994,414569.08199999994,414569.08199999994,948920.47954,948920.47954 +4946400.0,507620.94299999997,270741.972,790566.55824,275339.60663,275339.60663,275339.60663,165678.5655,1081775.1448,1179834.7398400002,766388.11704,1167829.5116800002,460349.34300000005,460349.34300000005,460349.34300000005,382384.92600000004,507620.94299999997,507620.94299999997,557517.01824,263353.87035,391454.39494,682769.2935,193776.42806,246447.20213000002,537812.553,537812.553,537812.553,537812.553,1526246.96862,1526246.96862 +4950000.0,1232691.5760000001,642920.1,1877326.6919999998,1643369.9317200002,1643369.9317200002,1643369.9317200002,1458713.5010000002,3407591.37616,4192835.9251200007,2923707.3030900005,4455173.033280001,1219251.5790000001,1219251.5790000001,1219251.5790000001,1783602.4325,1232691.5760000001,1232691.5760000001,2567757.7352699996,1589108.83965,2362082.76906,4119911.8065,1169270.20794,1487091.97587,1528764.984,1528764.984,1528764.984,1528764.984,3706292.67184,3706292.67184 +4953600.0,992052.342,1129797.5760000001,3299008.92192,1836748.6313000002,1836748.6313000002,1836748.6313000002,1873882.2025000001,4026825.45104,2877941.2390400004,3021938.1864,4604858.1888,1197134.925,1197134.925,1197134.925,1645071.0675000001,992052.342,992052.342,2069953.3797799996,2039271.7788,3031213.8539199997,5287000.908,1500501.21008,1908355.56584,1417520.493,1417520.493,1417520.493,1417520.493,2982770.70828,2982770.70828 +4957200.0,1569493.182,1635041.91,4774322.3772,867911.63107,867911.63107,867911.63107,1426724.8694999998,3149970.9305600002,5027144.081920001,2459460.41565,3747749.2048,1318744.4159999997,1318744.4159999997,1318744.4159999997,982764.8844999998,1569493.182,1569493.182,1283117.8607,1190550.0851999999,1769657.1636799998,3086611.332,876009.69232,1114119.70936,1704637.956,1704637.956,1704637.956,1704637.956,4718942.83388,4718942.83388 +4960800.0,857548.4820000001,616979.004,1801578.6916799997,369707.83135,369707.83135,369707.83135,317215.017,978331.3123999999,4956670.3616,331188.15408000007,504667.66336000006,788092.257,788092.257,788092.257,776221.4670000001,857548.4820000001,857548.4820000001,827437.0513499998,1603014.96825,2382753.1133,4155964.7325,1179502.3717,1500105.3653499999,305483.169,305483.169,305483.169,305483.169,2578362.43588,2578362.43588 +4964400.0,267174.57,215705.09699999998,629858.8832399999,129499.23558000002,129499.23558000002,129499.23558000002,88930.0685,279821.36328,989129.42528,120930.20247,184274.59424,76068.58499999999,76068.58499999999,76068.58499999999,47538.7395,267174.57,267174.57,133249.17411,138793.94955,206306.06821999996,359836.16549999994,102124.93078,129883.72068999999,83178.366,83178.366,83178.366,83178.366,803304.8738,803304.8738 +4968000.0,330198.186,703295.6849999999,2053623.4001999998,195440.34587,195440.34587,195440.34587,397685.49100000004,721133.67112,734007.73248,458313.13584,698381.92128,183699.53399999999,183699.53399999999,183699.53399999999,572572.245,330198.186,330198.186,245926.65161999996,200746.31354999996,298393.28581999993,520453.40549999994,147709.63317999998,187858.89588999999,235455.912,235455.912,235455.912,235455.912,992795.87924,992795.87924 +4971600.0,127039.323,89470.776,261254.66592,149991.96234,149991.96234,149991.96234,284398.80350000004,200436.73072,120824.53248000001,110572.83741,168491.94272,54841.338,54841.338,54841.338,61365.41249999999,127039.323,127039.323,83194.79414999999,52053.22035,77372.93494,134952.7935,38300.888060000005,48711.53213000001,49795.065,49795.065,49795.065,49795.065,381964.89781999995,381964.89781999995 +4975200.0,38226.573000000004,11892.195,34725.2094,60268.69838,60268.69838,60268.69838,49914.4835,58928.44991999999,20224.65792,28415.537220000002,43299.86624,21303.557999999997,21303.557999999997,21303.557999999997,17829.9695,38226.573000000004,38226.573000000004,21200.257779999996,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13288.644,13288.644,13288.644,13288.644,114934.56282,114934.56282 +4978800.0,137734.353,81046.938,236657.05896,364654.73099,364654.73099,364654.73099,203897.9215,252441.57447999998,12604.991360000002,344081.54928,524314.74176,81937.43400000001,81937.43400000001,81937.43400000001,250674.788,137734.353,137734.353,270350.57620999997,157263.49665000002,233759.56786,407720.1765,115714.86914000001,147167.56847,53235.747,53235.747,53235.747,53235.747,414121.28802,414121.28802 +4982400.0,236427.41999999998,547153.194,1597687.32648,367756.1157600001,367756.1157600001,367756.1157600001,372858.241,846768.76184,310595.57056,257577.38916,392498.87872,152871.825,152871.825,152871.825,568847.237,236427.41999999998,236427.41999999998,617097.52624,233679.6054,347345.98136000003,605836.0140000001,171942.03064,218677.95172,225684.61800000002,225684.61800000002,225684.61800000002,225684.61800000002,710858.4428,710858.4428 +4986000.0,460642.04699999996,440983.095,1287670.6374,439505.1364000001,439505.1364000001,439505.1364000001,422650.2,1074763.7225600001,990033.8688,647572.81701,986777.62592,355562.961,355562.961,355562.961,482679.3615,460642.04699999996,460642.04699999996,553130.3222899999,409287.13154999993,608372.4770199999,1061114.7855,301154.48198,383011.90829,397718.64,397718.64,397718.64,397718.64,1384997.0879799998,1384997.0879799998 +4989600.0,1725948.318,1418101.686,4140856.9231199995,1854084.7556000003,1854084.7556000003,1854084.7556000003,2462536.202,2862434.32576,4202713.16992,2889537.6564599997,4403105.00032,1843952.8140000002,1843952.8140000002,1843952.8140000002,1814116.7135,1725948.318,1725948.318,1512637.3089099997,1946785.42395,2893740.30918,5047221.469500001,1432449.5218200001,1821806.6066100001,1804578.051,1804578.051,1804578.051,1804578.051,5189351.27612,5189351.27612 +4993200.0,1118344.9500000002,714656.3099999999,2086796.4252,828479.4849100001,828479.4849100001,828479.4849100001,1029062.3385000002,1693783.3701600002,2696463.87264,1444803.17919,2201604.84448,820561.659,820561.659,820561.659,1106517.118,1118344.9500000002,1118344.9500000002,737707.5451199999,1063395.6128999998,1580652.2443599997,2756951.5889999997,782449.11764,995128.2402199999,980004.4380000001,980004.4380000001,980004.4380000001,980004.4380000001,3362490.483,3362490.483 +4996800.0,898845.3509999999,750729.5009999999,2192130.14292,880387.6015,880387.6015,880387.6015,960106.0735,1638993.9443199998,2857346.70464,1388910.3081,2116434.7552,841837.902,841837.902,841837.902,1139369.8994999998,898845.3509999999,898845.3509999999,796778.60678,1110845.9475,1651183.359,2879970.975,817363.191,1039532.3805000001,936288.7440000001,936288.7440000001,936288.7440000001,936288.7440000001,2702528.35534,2702528.35534 +5000400.0,845974.647,729254.4029999999,2129422.85676,900454.2033300002,900454.2033300002,900454.2033300002,949579.841,1563167.4252000002,2764731.8796800002,1336411.1640599999,2036436.05952,813710.952,813710.952,813710.952,1092119.469,845974.647,845974.647,911939.7037399999,1071378.8028,1592518.61552,2777648.748,788323.1684800001,1002598.9290400001,915940.1039999998,915940.1039999998,915940.1039999998,915940.1039999998,2543563.7719799997,2543563.7719799997 +5004000.0,604282.05,522994.188,1527143.02896,628940.38856,628940.38856,628940.38856,548189.229,816854.96784,1697457.6486400003,757825.93257,1154782.37344,444697.401,444697.401,444697.401,568102.507,604282.05,604282.05,643403.8154699999,500652.6813,744180.03492,1297988.4330000002,368381.47908,468512.01534000004,598757.2440000001,598757.2440000001,598757.2440000001,598757.2440000001,1816874.697,1816874.697 +5007600.0,106812.312,95315.82899999998,278322.22067999997,95531.75632,95531.75632,95531.75632,60281.151000000005,154191.77968,534357.15392,147318.16848000002,224484.82816000003,138850.206,138850.206,138850.206,102303.82749999998,106812.312,106812.312,185004.69234,64777.749299999996,96286.92611999999,167942.313,47663.62788,60619.17774,111197.148,111197.148,111197.148,111197.148,321149.01807999995,321149.01807999995 +5011200.0,104784.38400000002,96453.48,281644.1616,85335.05507999999,85335.05507999999,85335.05507999999,39730.1975,180730.3048,631747.5916800001,146250.97032000002,222858.62144000002,139157.98500000002,139157.98500000002,139157.98500000002,98770.4375,104784.38400000002,104784.38400000002,199810.86801,69764.31179999998,103699.05111999997,180870.43799999997,51332.75287999999,65285.61523999999,115590.114,115590.114,115590.114,115590.114,315051.71456000005,315051.71456000005 +5014800.0,118415.784,113242.09799999998,330666.9261599999,91248.72845000001,91248.72845000001,91248.72845000001,37952.73299999999,215519.95567999998,745005.7913600001,220337.55302999998,335752.46176,155375.598,155375.598,155375.598,109585.728,118415.784,118415.784,226876.82939999996,77532.53985,115245.89873999999,201010.2885,57048.63426,72555.14223,130288.266,130288.266,130288.266,130288.266,356036.79056,356036.79056 +5018400.0,139105.557,138381.492,404073.95664,93653.10537,93653.10537,93653.10537,48172.855500000005,230770.33895999996,807464.9446400001,269586.96681,410799.18752000004,173582.499,173582.499,173582.499,115360.609,139105.557,139105.557,269965.32407,99337.86134999999,147657.75934,257542.60349999997,73093.04366,92960.61593,151477.575,151477.575,151477.575,151477.575,418244.04138,418244.04138 +5022000.0,154783.692,148124.349,432523.09907999996,100651.74713000002,100651.74713000002,100651.74713000002,64649.4415,254256.90928,829538.6476799999,307715.78375999996,468900.24192,205508.05799999996,205508.05799999996,205508.05799999996,126155.52949999999,154783.692,154783.692,277043.14287,112596.4719,167365.61996,291916.77900000004,82848.76204,105368.05642000001,200962.64099999997,200962.64099999997,200962.64099999997,200962.64099999997,465382.96728000004,465382.96728000004 +5025600.0,207365.84100000001,166423.449,485956.47108,113285.72310000002,113285.72310000002,113285.72310000002,78003.065,388213.48607999994,853724.40896,364859.59586999996,555976.52704,311471.841,311471.841,311471.841,225768.50449999998,207365.84100000001,207365.84100000001,305200.96464,141055.56269999998,209667.77467999997,365699.607,103789.03132,132000.14386,274750.437,274750.437,274750.437,274750.437,623479.96194,623479.96194 +5029200.0,231690.321,165977.664,484654.77888,116561.62947,116561.62947,116561.62947,78011.696,449035.50927999994,752142.84288,374977.91457,571394.9174400001,323579.274,323579.274,323579.274,214946.30849999998,231690.321,231690.321,296766.42762,143939.5272,213954.55648,373176.552,105911.05952000001,134698.96496,299631.066,299631.066,299631.066,299631.066,696615.56514,696615.56514 +5032800.0,438078.0,231564.07499999998,676167.0989999999,234431.48311,234431.48311,234431.48311,164203.886,1026640.1895199999,975230.73664,697650.3777600001,1063086.2899200001,439382.577,439382.577,439382.577,367836.12600000005,438078.0,438078.0,548759.64845,221209.87005,328810.72042,573507.0705,162766.76858,207008.74259,487914.90900000004,487914.90900000004,487914.90900000004,487914.90900000004,1317154.52,1317154.52 +5036400.0,1190147.724,565624.9890000001,1651624.96788,1569617.4047400001,1569617.4047400001,1569617.4047400001,1387223.5825,3331894.98392,3864010.35968,2788235.26506,4248739.45152,1139209.584,1139209.584,1139209.584,1582871.108,1190147.724,1190147.724,2471593.52167,1475419.29705,2193092.38722,3825161.1404999997,1085617.16178,1380701.02119,1481184.699,1481184.699,1481184.699,1481184.699,3578377.4901599996,3578377.4901599996 +5040000.0,779034.696,975035.5260000001,2847103.73592,1349157.6577599999,1349157.6577599999,1349157.6577599999,1675665.9815,3618920.52448,2120449.44,2554314.48657,3892288.7414400005,973023.897,973023.897,973023.897,1305359.72,779034.696,779034.696,1811666.4807799999,1768972.50675,2629435.6766999997,4586225.0175,1301614.3383,1655408.83965,1124783.532,1124783.532,1124783.532,1124783.532,2342297.65264,2342297.65264 +5043600.0,1662454.7249999999,1744853.4359999998,5094972.033119999,831845.4807300001,831845.4807300001,831845.4807300001,1349792.7415,3359122.7108,5425802.241920001,2625821.13444,4001251.2524800003,1453054.092,1453054.092,1453054.092,985401.4800000001,1662454.7249999999,1662454.7249999999,1213466.7711399999,1192799.8926000001,1773001.32184,3092444.166,877665.1061600001,1116225.08468,1835979.7740000002,1835979.7740000002,1835979.7740000002,1835979.7740000002,4998447.206499999,4998447.206499999 +5047200.0,1107057.78,800728.1070000001,2338126.07244,424589.07073000004,424589.07073000004,424589.07073000004,479857.1715,1465831.5787199999,5695682.64384,733644.6969600001,1117934.7763200002,1077596.9249999998,1077596.9249999998,1077596.9249999998,1071109.473,1107057.78,1107057.78,1187509.1395699999,1809385.128,2689505.7952,4690998.48,1331350.0448,1693227.0704,615381.249,615381.249,615381.249,615381.249,3328553.7251999998,3328553.7251999998 +5050800.0,536839.542,478305.114,1396650.93288,182352.94748,182352.94748,182352.94748,327859.78750000003,925060.98152,2167380.4179200004,562630.2586800001,857341.3465600001,367616.166,367616.166,367616.166,305209.83150000003,536839.542,536839.542,453946.93902999995,492252.3414,731693.60376,1276209.774,362200.48824,460650.95652,379984.422,379984.422,379984.422,379984.422,1614097.55628,1614097.55628 +5054400.0,491890.776,911503.8569999998,2661591.2624399993,288749.48332999996,288749.48332999996,288749.48332999996,606961.0015,1081934.18552,1521901.64608,789442.60542,1202960.1606400001,374447.493,374447.493,374447.493,733637.135,491890.776,491890.776,416856.78372,429334.31565,638171.00746,1113088.9665,315905.24954000005,401772.11267000006,436598.667,436598.667,436598.667,436598.667,1478951.59984,1478951.59984 +5058000.0,430227.5669999999,417559.22400000005,1219272.9340800003,283510.27408000006,283510.27408000006,283510.27408000006,579735.681,885934.9846399999,1231632.09152,601467.16329,916521.39168,367785.621,367785.621,367785.621,381194.70900000003,430227.5669999999,430227.5669999999,400862.51399999997,392474.23695,583381.45838,1017525.7995,288783.51262,367278.36001,371115.522,371115.522,371115.522,371115.522,1293550.8847799997,1293550.8847799997 +5061600.0,295119.11699999997,230919.69900000002,674285.5210800001,84025.34536,84025.34536,84025.34536,204111.3095,619430.76608,791896.6111999999,372737.75574,567981.34208,245770.191,245770.191,245770.191,184731.3405,295119.11699999997,295119.11699999997,294096.24750999996,227158.182,337652.4088,588928.62,167143.55120000002,212575.1876,247272.21000000002,247272.21000000002,247272.21000000002,247272.21000000002,887324.8117799999,887324.8117799999 +5065200.0,396219.20099999994,320262.525,935166.573,761850.3248400001,761850.3248400001,761850.3248400001,661070.3925000001,810657.71752,518438.46272,734237.22687,1118837.67904,248278.70100000003,248278.70100000003,248278.70100000003,735282.5935,396219.20099999994,396219.20099999994,629182.75706,497331.22769999993,739242.9606799999,1289377.257,365937.54532,465403.79085999995,226086.07200000001,226086.07200000001,226086.07200000001,226086.07200000001,1191299.0643399998,1191299.0643399998 +5068800.0,374674.992,766852.2779999999,2239208.65176,425084.57288000005,425084.57288000005,425084.57288000005,528383.6215,1182607.1423199999,945133.8713600001,591247.81065,900949.0448000001,406496.37,406496.37,406496.37,875823.7250000001,374674.992,374674.992,849384.5811099999,541626.2477999999,805083.9535199999,1404216.1979999999,398529.93048,506855.18003999995,447704.952,447704.952,447704.952,447704.952,1126522.80928,1126522.80928 +5072400.0,653226.033,802200.2219999998,2342424.6482399995,688501.143,688501.143,688501.143,793977.926,1682033.6464,2387263.7164800004,1128981.84399,1720353.28608,667075.077,667075.077,667075.077,977977.3605,653226.033,653226.033,747234.80832,846053.8249499999,1257591.1175799998,2193472.8795,622528.49342,791739.25841,709990.374,709990.374,709990.374,709990.374,1964032.9392199998,1964032.9392199998 +5076000.0,1954311.6870000002,1665593.3790000002,4863532.666680001,2966401.4373399997,2966401.4373399997,2966401.4373399997,2719679.6514999997,3155263.815999999,5529896.08704,3406107.2190599996,5190258.619519999,2109624.4020000002,2109624.4020000002,2109624.4020000002,2501774.3485,1954311.6870000002,1954311.6870000002,2334569.06995,2501893.656,3718864.1503999997,6486390.96,1840899.5296,2341278.2608000003,2220287.5710000005,2220287.5710000005,2220287.5710000005,2220287.5710000005,5875963.80558,5875963.80558 +5079600.0,1305158.4,773117.811,2257504.00812,1281753.74063,1281753.74063,1281753.74063,1334608.4674999998,2092793.5211999998,3142539.8905600007,1743158.52438,2656241.56096,1132314.345,1132314.345,1132314.345,1327550.0034999999,1305158.4,1305158.4,958412.5047899998,1283563.06155,1907913.48902,3327756.0855,944448.8699800001,1201161.48229,1223843.367,1223843.367,1223843.367,1223843.367,3924176.2559999996,3924176.2559999996 +5083200.0,975628.0889999999,758777.8709999999,2215631.3833199996,1037245.1735800001,1037245.1735800001,1037245.1735800001,987733.0225,1665185.4916800002,3011536.70464,1414844.62119,2155953.70848,872119.047,872119.047,872119.047,1162585.1685,975628.0889999999,975628.0889999999,1038012.06925,1142552.7171,1698312.92764,2962173.711,840693.11036,1069203.65378,994257.4319999999,994257.4319999999,994257.4319999999,994257.4319999999,2933388.4542599996,2933388.4542599996 +5086800.0,878773.5900000001,756204.354,2208116.71368,1011180.9587000001,1011180.9587000001,1011180.9587000001,987153.2894999998,1620848.1474399997,2997605.87648,1402540.93035,2137205.2272,859027.3290000001,859027.3290000001,859027.3290000001,1144437.168,878773.5900000001,878773.5900000001,1048771.8612799998,1132084.3824,1682752.58816,2935033.5840000003,832990.4838400001,1059407.3603200002,979672.683,979672.683,979672.683,979672.683,2642179.2606,2642179.2606 +5090400.0,624162.2760000001,529681.8,1546670.856,660377.82151,660377.82151,660377.82151,552789.8635,823669.5704,1828408.25152,798520.54212,1216793.20704,450497.649,450497.649,450497.649,576526.4085,624162.2760000001,624162.2760000001,718911.81115,526057.3107,781941.97788,1363852.287,387074.26812,492285.73026000004,621954.618,621954.618,621954.618,621954.618,1876647.9098399999,1876647.9098399999 +5094000.0,105446.535,93281.41500000001,272381.7318,108852.05639,108852.05639,108852.05639,59320.443,153670.11,630709.6723200001,180198.63981000002,274588.40352000005,148234.035,148234.035,148234.035,100540.6045,105446.535,105446.535,178464.78064999997,74624.2713,110922.99091999998,193470.33299999998,54908.723079999996,69833.57734,120774.65400000001,120774.65400000001,120774.65400000001,120774.65400000001,317042.5819,317042.5819 +5097600.0,101241.12299999999,92064.738,268829.03495999996,85297.52561000003,85297.52561000003,85297.52561000003,38455.55,172764.41632,626532.42688,174634.0113,266108.9696,148298.03399999999,148298.03399999999,148298.03399999999,93927.27049999998,101241.12299999999,101241.12299999999,192324.58401,67420.82789999999,100215.65035999999,174794.73899999997,49608.41164,63092.57721999999,116886.135,116886.135,116886.135,116886.135,304398.30981999997,304398.30981999997 +5101200.0,104805.66,96006.70800000001,280339.58736,80646.59823,80646.59823,80646.59823,33883.1675,186537.09855999998,633316.6182400001,197325.97437,300687.19904000004,149283.70200000002,149283.70200000002,149283.70200000002,95265.13500000001,104805.66,104805.66,194666.75579000002,66612.73545,99014.48577999999,172699.6845,49013.81522,62336.36231,123743.511,123743.511,123743.511,123743.511,315115.68439999997,315115.68439999997 +5104800.0,119301.669,115167.396,336288.79631999996,78715.46463,78715.46463,78715.46463,38961.727,193863.06904,659953.7305599999,221849.31888,338056.10496,154056.582,154056.582,154056.582,96760.489,119301.669,119301.669,221129.88949999996,78358.914,116474.2376,203152.74000000002,57656.682400000005,73328.4652,133539.24300000002,133539.24300000002,133539.24300000002,133539.24300000002,358700.35146,358700.35146 +5108400.0,126937.818,122669.613,358195.26996,82537.19056,82537.19056,82537.19056,44945.684,202379.8564,690186.36736,254148.19058999998,387273.43328,160799.562,160799.562,160799.562,102102.6825,126937.818,126937.818,235132.28530999998,89604.0954,133189.29736,232306.91400000002,65930.91464,83851.73372,149032.224,149032.224,149032.224,149032.224,381659.70612,381659.70612 +5112000.0,146947.245,135993.19499999998,397100.1293999999,93419.83332000002,93419.83332000002,93419.83332000002,64711.5,223354.95224,701303.18144,282925.63487999997,431124.77696,198388.785,198388.785,198388.785,133302.3195,146947.245,146947.245,241326.42534,104461.2693,155273.29412,270825.51300000004,76862.85988,97755.11374000002,201422.898,201422.898,201422.898,201422.898,441821.3833,441821.3833 +5115600.0,188152.54200000002,144007.884,420503.02128,105560.05317000001,105560.05317000001,105560.05317000001,73489.542,307593.10368,701872.3468800001,315352.83969000005,480537.6604800001,259200.327,259200.327,259200.327,190469.475,188152.54200000002,188152.54200000002,256648.70439,122001.8031,181345.89004,316300.971,89769.22796,114169.58858000001,236071.56,236071.56,236071.56,236071.56,565711.97628,565711.97628 +5119200.0,330499.146,188370.50399999996,550041.8716799999,213715.33370000002,213715.33370000002,213715.33370000002,152503.883,848227.04488,761784.62272,553370.52078,843231.26976,317523.441,317523.441,317523.441,315244.9615,330499.146,330499.146,483046.50589,183151.72845,272240.34698,474837.8145,134763.49401999998,171393.83971,366785.361,366785.361,366785.361,366785.361,993700.7656399999,993700.7656399999 +5122800.0,1064128.179,473868.87599999993,1383697.1179199999,1476378.5765300002,1476378.5765300002,1476378.5765300002,1249275.9125,3110039.0078399996,3091446.0832,2517057.28659,3835515.8652800005,923107.9949999999,923107.9949999999,923107.9949999999,1298350.6864999998,1064128.179,1064128.179,2309024.1363799996,1270976.346,1889204.3464,3295123.86,935187.5336,1189382.8028,1311475.758,1311475.758,1311475.758,1311475.758,3199478.7248599995,3199478.7248599995 +5126400.0,703838.8049999999,946192.527,2762882.17884,1269179.09305,1269179.09305,1269179.09305,1529960.985,3385589.46816,1980689.67104,2369883.91668,3611251.68256,910792.17,910792.17,910792.17,1140882.2495,703838.8049999999,703838.8049999999,1628516.6639299998,1618461.9072,2405713.74848,4196012.352000001,1190868.2675200002,1514560.6489600001,1049219.394,1049219.394,1049219.394,1049219.394,2116208.6736999997,2116208.6736999997 +5130000.0,1639529.6130000001,1568449.29,4579871.9268,722846.70491,722846.70491,722846.70491,1152453.7570000002,3163728.3236799994,5112250.412160001,2457400.44963,3744610.20896,1438150.254,1438150.254,1438150.254,890737.9809999999,1639529.6130000001,1639529.6130000001,1150489.79708,1062181.23255,1578847.16542,2753803.1955000004,781555.5735800001,993991.82009,1819751.904,1819751.904,1819751.904,1819751.904,4929519.03642,4929519.03642 +5133600.0,1069567.119,793486.041,2316979.23972,399827.31690000003,399827.31690000003,399827.31690000003,433898.5805,1396828.27032,5535452.709760001,726674.3307599999,1107313.26592,1061004.249,1061004.249,1061004.249,1043301.434,1069567.119,1069567.119,1144408.15333,1752712.7166000002,2605266.80344,4544070.006,1289650.34456,1640192.8878800003,603000.522,603000.522,603000.522,603000.522,3215831.8044600002,3215831.8044600002 +5137200.0,586602.8520000001,525749.91,1535189.7371999999,200060.18252000003,200060.18252000003,200060.18252000003,401617.9195,1059223.93808,2211845.8137600003,675891.2808899999,1029929.5708799999,448583.106,448583.106,448583.106,370774.8765,586602.8520000001,586602.8520000001,519398.16747,519972.0075,772896.663,1348075.5750000002,382596.68700000003,486591.0885,448608.882,448608.882,448608.882,448608.882,1763719.24168,1763719.24168 +5140800.0,674405.679,1099771.1099999999,3211331.6412,438410.85178,438410.85178,438410.85178,836820.9815,1525162.82512,2356378.79104,1144468.34061,1743951.7571200002,616528.926,616528.926,616528.926,951130.9535000001,674405.679,674405.679,698123.3615199999,704761.84755,1047571.9314199999,1827160.3455,518565.50758000003,659517.8770900001,657981.5549999999,657981.5549999999,657981.5549999999,657981.5549999999,2027713.07486,2027713.07486 +5144400.0,491947.614,468685.4040000001,1368561.3796800002,319358.25207,319358.25207,319358.25207,642572.7245,1033090.08408,1479746.32448,703639.84824,1072213.10208,450732.858,450732.858,450732.858,442271.9210000001,491947.614,491947.614,474597.37051999994,473319.15434999997,703550.94054,1227123.7334999999,348269.40246,442933.23333,437800.05299999996,437800.05299999996,437800.05299999996,437800.05299999996,1479122.4927599998,1479122.4927599998 +5148000.0,355783.704,293654.349,857470.6990799999,98957.8172,98957.8172,98957.8172,273557.39249999996,778972.2835999998,1063283.76256,483210.51072,736320.77824,334725.3,334725.3,334725.3,245546.651,355783.704,355783.704,360346.1091099999,306553.45454999997,455667.1102199999,794768.2154999999,225562.78877999997,286873.47969,319435.755,319435.755,319435.755,319435.755,1069723.00336,1069723.00336 +5151600.0,486905.772,429134.79299999995,1253073.5955599998,785860.9683100001,785860.9683100001,785860.9683100001,774932.4205,1051322.0209599999,889619.4656,889448.6779499999,1355350.3664,369472.458,369472.458,369472.458,880386.5035,486905.772,486905.772,723659.68519,624619.28115,928446.4376599999,1619383.3215,459596.40934,584520.26557,326495.037,326495.037,326495.037,326495.037,1463963.35448,1463963.35448 +5155200.0,469995.63899999997,854328.1440000001,2494638.18048,518607.5074400001,518607.5074400001,518607.5074400001,633464.881,1407464.83168,1327181.64416,780269.16513,1188981.58496,533116.3620000001,533116.3620000001,533116.3620000001,1027593.6055000001,469995.63899999997,469995.63899999997,932576.5710299999,675612.4828499999,1004243.7399399999,1751587.9185,497117.33306,632239.82963,547709.9850000001,547709.9850000001,547709.9850000001,547709.9850000001,1413120.2212599998,1413120.2212599998 +5158800.0,749267.52,946122.543,2762677.82556,864798.1950300001,864798.1950300001,864798.1950300001,922557.1530000002,1993078.8616799999,2816981.1104,1321771.27467,2014127.65664,799602.6059999999,799602.6059999999,799602.6059999999,1152030.4845,749267.52,749267.52,901815.5916899999,1016864.71335,1511487.7961399998,2636315.9235,748211.56686,951584.50953,859428.177,859428.177,859428.177,859428.177,2252797.6768,2252797.6768 +5162400.0,2061841.9530000002,1760807.3429999999,5141557.441559999,3155285.8475599997,3155285.8475599997,3155285.8475599997,2825965.3205,3334132.4222399998,6269648.37248,3576963.2913,5450610.7296,2226960.462,2226960.462,2226960.462,2798113.3565,2061841.9530000002,2061841.9530000002,2589387.9012299995,2699875.12365,4013147.7146599996,6999676.246499999,1986574.78234,2526549.80707,2355013.119,2355013.119,2355013.119,2355013.119,6199271.47202,6199271.47202 +5166000.0,1430821.713,867519.4679999999,2533156.8465599995,1482640.9919200002,1482640.9919200002,1482640.9919200002,1495654.4155,2384714.86808,3743425.1763200006,1992702.5947500002,3036499.1920000003,1317904.821,1317904.821,1317904.821,1563428.804,1430821.713,1430821.713,1109379.54959,1487038.24485,2210363.0207399996,3855284.3384999996,1094166.41226,1391574.0612299999,1428276.0150000001,1428276.0150000001,1428276.0150000001,1428276.0150000001,4302003.95042,4302003.95042 +5169600.0,1094188.002,838312.146,2447871.4663199997,1140729.73025,1140729.73025,1140729.73025,1090432.2275,1856385.93536,3400548.6131200003,1587091.1731500002,2418424.6448000004,984024.6869999999,984024.6869999999,984024.6869999999,1319741.0135,1094188.002,1094188.002,1161314.9522,1278789.45615,1900817.90766,3315380.0715,940936.43934,1196694.33057,1111671.2850000001,1111671.2850000001,1111671.2850000001,1111671.2850000001,3289858.5926800002,3289858.5926800002 +5173200.0,982029.7559999999,847994.565,2476144.1297999998,1122440.19624,1122440.19624,1122440.19624,1115272.3785,1822069.1084,3423462.8288000003,1586735.23596,2417882.26432,976258.6109999998,976258.6109999998,976258.6109999998,1306323.7915,982029.7559999999,982029.7559999999,1166364.30261,1276432.21035,1897314.0509400002,3309268.6935000005,939201.9720600002,1194488.4141300002,1106544.621,1106544.621,1106544.621,1106544.621,2952636.1330399998,2952636.1330399998 +5176800.0,700216.134,611517.078,1785629.86776,738985.7689499999,738985.7689499999,738985.7689499999,620408.635,951035.4736,2137533.42272,914953.1645099999,1394214.34592,540866.895,540866.895,540866.895,666399.4995,700216.134,700216.134,842228.7152499999,605798.6112,900471.02208,1570588.992,445748.11392000003,566907.8361600001,711208.209,711208.209,711208.209,711208.209,2105316.5095599997,2105316.5095599997 +5180400.0,119894.93999999999,107915.226,315112.45992,121907.74948,121907.74948,121907.74948,63623.08750000001,199436.16935999997,759686.98048,210976.35615,321487.7808,179091.63,179091.63,179091.63,116187.246,119894.93999999999,119894.93999999999,223599.45412999997,87302.13614999999,129767.61965999998,226338.87149999998,64237.12734,81697.55457,139463.604,139463.604,139463.604,139463.604,360484.1195999999,360484.1195999999 +5184000.0,121970.08799999999,111869.03699999998,326657.58803999994,103085.40770000001,103085.40770000001,103085.40770000001,44349.1335,219342.4576,803246.0505600001,237175.23249,361409.87808,186346.929,186346.929,186346.929,116700.98999999999,121970.08799999999,121970.08799999999,236595.14579999997,85339.79775,126850.76109999999,221251.3275,62793.2339,79861.19345,151518.66900000002,151518.66900000002,151518.66900000002,151518.66900000002,366723.39791999996,366723.39791999996 +5187600.0,129114.30300000001,122950.33200000001,359014.96944,95037.59727000001,95037.59727000001,95037.59727000001,44465.8235,222513.12207999997,770932.1568000001,247842.44688000003,377664.6809600001,178484.23500000002,178484.23500000002,178484.23500000002,112215.03999999998,129114.30300000001,129114.30300000001,241244.52065999998,85310.57699999999,126807.3268,221175.57,62771.7332,79833.8486,153170.96399999998,153170.96399999998,153170.96399999998,153170.96399999998,388203.67102,388203.67102 +5191200.0,138553.359,133949.385,391132.2042,91381.06857,91381.06857,91381.06857,46677.361500000006,237807.86015999998,775216.6464000001,276877.74555,421908.94560000004,178548.41700000002,178548.41700000002,178548.41700000002,111410.60350000001,138553.359,138553.359,260583.42387999996,98407.12275,146274.2911,255129.5775,72408.20390000001,92089.62845,161855.943,161855.943,161855.943,161855.943,416583.76606,416583.76606 +5194800.0,160123.78499999997,145006.434,423418.78728,98872.02567,98872.02567,98872.02567,66710.13650000001,279765.5212,776314.112,308910.39732,470720.60544,216953.316,216953.316,216953.316,141336.5415,160123.78499999997,160123.78499999997,263198.00519999996,114766.25129999999,170590.82291999998,297542.133,84445.29108,107398.54134,222917.66400000002,222917.66400000002,222917.66400000002,222917.66400000002,481438.84689999995,481438.84689999995 +5198400.0,205531.61699999997,154748.32799999998,451865.11776,108859.02423000001,108859.02423000001,108859.02423000001,71728.111,376430.05968,772392.5030400001,345685.00784999994,526758.1072,283702.434,283702.434,283702.434,204519.546,205531.61699999997,205531.61699999997,281472.48428,129983.25554999999,193209.67861999996,336993.62549999997,95642.00038,121638.65148999999,262337.814,262337.814,262337.814,262337.814,617965.0617799999,617965.0617799999 +5202000.0,244045.842,173230.035,505831.7022,140532.44799000002,140532.44799000002,140532.44799000002,80187.7055,466465.06519999995,784517.1641599999,397190.90586,605243.28512,342746.859,342746.859,342746.859,222424.8075,244045.842,244045.842,308087.57550999994,150751.99169999998,224080.73828,390838.497,110923.68772,141074.08606,317920.635,317920.635,317920.635,317920.635,733764.4982799999,733764.4982799999 +5205600.0,319823.69700000004,195412.257,570603.79044,233350.78415000002,233350.78415000002,233350.78415000002,158810.90750000003,571546.21168,869604.4761600001,502982.11572,766448.93824,383133.94499999995,383133.94499999995,383133.94499999995,257502.73849999998,319823.69700000004,319823.69700000004,330487.7888,188323.45695,279927.70638,488245.9995,138568.86462,176233.55601,390526.866,390526.866,390526.866,390526.866,961603.24898,961603.24898 +5209200.0,1070610.657,1104562.149,3225321.47508,1053977.72502,1053977.72502,1053977.72502,1067221.3090000001,1621895.52224,1599437.29152,1394337.9867899998,2124705.5036799996,666307.53,666307.53,666307.53,1622640.0785,1070610.657,1070610.657,2024400.6595799997,608512.47165,904504.9578599998,1577624.9264999998,447744.97913999995,569447.47347,1448102.145,1448102.145,1448102.145,1448102.145,3218969.3753799996,3218969.3753799996 +5212800.0,1747436.1509999998,1603484.2319999998,4682173.957439999,2222111.6850900003,2222111.6850900003,2222111.6850900003,1667347.2025000001,2594525.54048,2612654.3404800002,2585733.09078,3940164.7097600005,981268.371,981268.371,981268.371,1579100.7435,1747436.1509999998,1747436.1509999998,2196212.59455,1365820.7282999998,2030182.9097199999,3541016.7029999997,1004974.26428,1278138.40994,1883883.9270000001,1883883.9270000001,1883883.9270000001,1883883.9270000001,5253958.02734,5253958.02734 +5216400.0,1893907.845,1758905.691,5136004.6177199995,1982686.50327,1982686.50327,1982686.50327,1900910.116,3197411.3588000005,7561997.58784,2350447.96287,3581634.99104,2016733.17,2016733.17,2016733.17,1902354.5834999997,1893907.845,1893907.845,1435592.3114,2800470.1293,4162674.1181199998,7260478.113,2060592.8358800001,2620686.86174,1437105.135,1437105.135,1437105.135,1437105.135,5694349.5873,5694349.5873 +5220000.0,1377838.095,1094297.766,3195349.47672,1283152.0054100002,1283152.0054100002,1283152.0054100002,2084458.1344999997,2744692.77176,4763795.34656,2737572.67539,4171539.3148800004,1891561.9889999998,1891561.9889999998,1891561.9889999998,2092786.3389999997,1377838.095,1377838.095,1449887.65545,2480269.1265,3686721.0226,6430327.365,1824988.1474,2321041.9727,1545264.576,1545264.576,1545264.576,1545264.576,4142699.8723,4142699.8723 +5223600.0,1001045.073,758338.593,2214348.6915599997,1146816.99319,1146816.99319,1146816.99319,1657125.8725,2750511.01192,4873538.90368,1949778.32679,2971090.7836800003,856896.7410000002,856896.7410000002,856896.7410000002,1710755.1755000001,1001045.073,1001045.073,698627.5360999999,1575327.24855,2341597.5398199996,4084181.7555,1159129.67918,1474195.12889,1100311.872,1100311.872,1100311.872,1100311.872,3009808.8528199997,3009808.8528199997 +5227200.0,721615.89,584435.694,1706552.2264800002,622221.0586900001,622221.0586900001,622221.0586900001,951773.242,1827110.14384,1848496.9094400003,1327983.97809,2023594.6332800002,664943.3910000001,664943.3910000001,664943.3910000001,916225.4605,721615.89,721615.89,522000.87771,878280.10425,1305492.8957,2277022.4925,646240.6693,821896.69015,715135.9349999999,715135.9349999999,715135.9349999999,715135.9349999999,2169658.4425999997,2169658.4425999997 +5230800.0,396264.15,283567.94999999995,828018.4139999999,186343.30164999998,186343.30164999998,186343.30164999998,363521.095,796861.2197599999,916513.4873600001,599265.25806,913166.1075200001,330153.195,330153.195,330153.195,434885.19550000003,396264.15,396264.15,249445.13294999997,352500.2955,523963.40219999995,913889.655,259370.5878,329870.6469,381195.11699999997,381195.11699999997,381195.11699999997,381195.11699999997,1191434.2110000001,1191434.2110000001 +5234400.0,399066.129,301756.41599999997,881128.73472,181211.63400999998,181211.63400999998,181211.63400999998,376187.679,768174.1703199999,994517.7888,586458.2136,893650.6112,348092.106,348092.106,348092.106,410882.626,399066.129,399066.129,265871.67736999993,376211.89934999996,559208.7985399999,975364.1834999999,276817.64446,352060.02433,368923.05299999996,368923.05299999996,368923.05299999996,368923.05299999996,1199858.82786,1199858.82786 +5238000.0,365971.275,269253.468,786220.12656,125816.6833,125816.6833,125816.6833,325818.101,701917.7526400001,867122.3891200001,520657.99338,793383.6089600001,316713.54000000004,316713.54000000004,316713.54000000004,354515.98350000003,365971.275,365971.275,225572.06879999995,321285.19995,477564.66758,832961.6295,236402.44342,300659.48341000004,327169.89,327169.89,327169.89,327169.89,1100353.6335,1100353.6335 +5241600.0,472999.06500000006,374363.91599999997,1093142.63472,243578.98719,243578.98719,243578.98719,463395.52349999995,906203.5164000001,1295957.2300800001,706131.39408,1076009.74336,429396.774,429396.774,429396.774,520230.2664999999,472999.06500000006,472999.06500000006,348061.12860999996,488559.88349999994,726205.0613999999,1266636.7349999999,359483.5686,457195.5453,456355.7729999999,456355.7729999999,456355.7729999999,456355.7729999999,1422150.5221,1422150.5221 +5245200.0,895690.899,772733.292,2256381.21264,880097.7157500001,880097.7157500001,880097.7157500001,986853.2660000001,1659953.85616,2905707.59744,1431333.8258099998,2181080.1155199995,844972.416,844972.416,844972.416,1132205.8475000001,895690.899,895690.899,844688.6502599999,1107942.0529499997,1646866.9527799997,2872442.3594999993,815226.4982199998,1036814.9088099998,949110.684,949110.684,949110.684,949110.684,2693043.9696599995,2693043.9696599995 +5248800.0,913099.0020000001,788542.122,2302542.9962400002,1053420.77401,1053420.77401,1053420.77401,1043174.909,1698564.22192,2961644.15808,1466437.03899,2234570.72608,860911.602,860911.602,860911.602,1152253.3435,913099.0020000001,913099.0020000001,975744.7433499999,1138761.65385,1692677.81634,2952345.0285,837903.63666,1065655.96743,988058.655,988058.655,988058.655,988058.655,2745384.33268,2745384.33268 +5252400.0,906852.372,799737.06,2335232.2152,1062763.41424,1062763.41424,1062763.41424,1036690.7775,1737404.85304,3040730.30144,1459258.69782,2223632.30144,859856.118,859856.118,859856.118,1142274.4935,906852.372,906852.372,1062673.41063,1141397.32095,1696595.52398,2959178.2395,839842.96702,1068122.43121,989268.654,989268.654,989268.654,989268.654,2726602.79848,2726602.79848 +5256000.0,898901.955,794139.243,2318886.5895599998,1046259.5927299999,1046259.5927299999,1046259.5927299999,1016735.7969999999,1727886.6633600001,3027570.8326400006,1453438.1179499999,2214762.8464,858507.8400000001,858507.8400000001,858507.8400000001,1130223.7449999999,898901.955,898901.955,1084113.3747599998,1129646.6064,1679129.0297599998,2928713.4239999996,831196.76224,1057126.0835199999,985240.662,985240.662,985240.662,985240.662,2702698.5447,2702698.5447 +5259600.0,844339.302,717633.267,2095489.1396399997,838275.88944,838275.88944,838275.88944,771583.7324999999,1417781.85744,2168560.37568,1216236.1659,1853312.2528,670827.999,670827.999,670827.999,884737.658,844339.302,844339.302,1060248.5934300001,891107.001,1324559.0484,2310277.41,655678.7316,833900.1318000001,851454.978,851454.978,851454.978,851454.978,2538646.83468,2538646.83468 +5263200.0,376907.055,261721.32,764226.2544,414678.2178,414678.2178,414678.2178,321307.728,675738.01376,859214.8704000001,564843.46611,860713.8531200001,290085.255,290085.255,290085.255,386353.177,376907.055,376907.055,606146.04609,196628.0994,292271.89096,509776.554,144679.44104,184005.06092000002,458735.049,458735.049,458735.049,458735.049,1133233.8787,1133233.8787 +5266800.0,128503.31400000001,93083.745,271804.5354,115051.59842000001,115051.59842000001,115051.59842000001,59220.679,246928.92400000003,626168.0012800001,241560.14315999998,368091.64672,167792.80800000002,167792.80800000002,167792.80800000002,101601.0975,128503.31400000001,128503.31400000001,193977.29038999995,77329.33515,114943.85126,200483.4615,56899.11574,72364.98277,132447.807,132447.807,132447.807,132447.807,386366.63076,386366.63076 +5270400.0,121634.19600000001,91542.255,267303.3846,105755.44166,105755.44166,105755.44166,37861.1555,243752.11584,606979.84832,226692.16185,345435.6752,160583.20200000002,160583.20200000002,160583.20200000002,94481.569,121634.19600000001,121634.19600000001,188004.44883999997,68595.8949,101962.29316,177841.20900000003,50473.028840000006,64192.20782,125480.106,125480.106,125480.106,125480.106,365713.48264,365713.48264 +5274000.0,125452.78199999999,103293.70799999998,301617.62736,99179.59557,99179.59557,99179.59557,40469.2575,249149.74168,592744.7392,225593.95992,343762.22464000003,156154.41,156154.41,156154.41,91099.358,125452.78199999999,125452.78199999999,184136.58834999998,73534.16924999999,109302.6417,190644.1425,54106.6233,68813.45715,128482.40400000001,128482.40400000001,128482.40400000001,128482.40400000001,377194.69787999993,377194.69787999993 +5277600.0,130450.104,106549.749,311125.26707999996,94978.20783000001,94978.20783000001,94978.20783000001,38284.3195,249813.06056,605642.4352000001,231884.04477000004,353347.11584000004,157902.68399999998,157902.68399999998,157902.68399999998,90291.7785,130450.104,130450.104,202474.29968999999,76544.92305,113777.88561999999,198449.8005,56321.94338,71630.92799,131809.80899999998,131809.80899999998,131809.80899999998,131809.80899999998,392219.97936,392219.97936 +5281200.0,131947.12199999997,109087.806,318536.39352,99082.52200000001,99082.52200000001,99082.52200000001,48503.357,245582.31343999997,603090.9664000002,249026.55518999998,379469.03648,156334.101,156334.101,156334.101,92108.73000000001,131947.12199999997,131947.12199999997,207286.14192,81652.76685,121370.28553999998,211692.3585,60080.307459999996,76410.86083,149805.375,149805.375,149805.375,149805.375,396721.01347999997,396721.01347999997 +5284800.0,147535.929,134020.761,391340.62212,107573.64497000002,107573.64497000002,107573.64497000002,55675.655,255978.7048,629360.48704,270139.0503,411640.45759999997,210432.57299999997,210432.57299999997,210432.57299999997,104608.476,147535.929,147535.929,211406.56588999997,94061.31075,139814.5903,243862.65750000003,69210.54470000001,88022.80685000001,178892.022,178892.022,178892.022,178892.022,443591.35986,443591.35986 +5288400.0,172116.054,145193.856,423966.05951999995,121427.17202,121427.17202,121427.17202,67284.896,283534.75648,652662.8032000001,287146.86168,437557.12256,243817.20599999995,243817.20599999995,243817.20599999995,157305.729,172116.054,172116.054,229982.10287,108770.5665,161678.7186,281997.765,80033.6514,101787.7647,209951.88900000002,209951.88900000002,209951.88900000002,209951.88900000002,517495.60235999996,517495.60235999996 +5292000.0,231187.02900000004,163179.294,476483.53848,212858.81034000003,212858.81034000003,212858.81034000003,145665.3275,395554.56464,673789.40224,367623.81936,560188.67712,281093.667,281093.667,281093.667,204062.096,231187.02900000004,231187.02900000004,249899.08631999997,145225.18754999997,215865.58741999997,376509.74549999996,106857.05157999998,135902.08909,262689.59699999995,262689.59699999995,262689.59699999995,262689.59699999995,695102.33386,695102.33386 +5295600.0,958512.423,933803.3640000001,2726705.82288,977337.90341,977337.90341,977337.90341,1034838.441,1461996.89456,1282692.83456,1202979.0958500002,1833111.0032000002,564920.25,564920.25,564920.25,1517124.5635000002,958512.423,958512.423,1748280.0747099996,514663.48620000004,765005.97208,1334312.742,378690.66392,481623.36116000003,1270149.867,1270149.867,1270149.867,1270149.867,2881927.35182,2881927.35182 +5299200.0,1519897.644,1477932.5459999999,4315563.03432,2006598.1602700003,2006598.1602700003,2006598.1602700003,1457358.112,2255989.30776,2371378.96,2276815.0041,3469432.3872,875361.6420000001,875361.6420000001,875361.6420000001,1154810.4645,1519897.644,1519897.644,1856187.0952299999,1214182.1835,1804784.3813999998,3147879.735,893398.2486,1136234.6853,1640368.2149999999,1640368.2149999999,1640368.2149999999,1640368.2149999999,4569825.58296,4569825.58296 +5302800.0,1675375.713,1517590.593,4431364.53156,1630317.66964,1630317.66964,1630317.66964,1564570.2765000002,2727768.00792,6414760.88384,2063869.1671499999,3144943.4928,1778428.008,1778428.008,1778428.008,1564092.327,1675375.713,1675375.713,1209669.8581499998,2403131.67225,3572062.3869,6230341.3725,1768230.2181,2248856.55255,1200250.224,1200250.224,1200250.224,1200250.224,5037296.31042,5037296.31042 +5306400.0,1192849.857,924923.2050000001,2700775.7586000003,1032917.5100200002,1032917.5100200002,1032917.5100200002,1879653.2930000003,2406156.796,4169334.0588800004,2369954.70033,3611359.54336,1533162.693,1533162.693,1533162.693,1796578.9905,1192849.857,1192849.857,1303428.3983499997,2128298.18625,3163544.4645,5517810.1125,1566007.0605,1991666.6977499998,1354665.918,1354665.918,1354665.918,1354665.918,3586501.90338,3586501.90338 +5310000.0,867776.541,607971.2609999999,1775276.08212,1003756.3141100002,1003756.3141100002,1003756.3141100002,1317970.647,2365813.95336,3944038.6022400004,1656881.23419,2524771.40448,729679.5360000001,729679.5360000001,729679.5360000001,1430530.3425,867776.541,867776.541,515237.94074999995,1263271.0185,1877750.9954,3275147.085,929517.9346,1182172.1383,902596.9619999999,902596.9619999999,902596.9619999999,902596.9619999999,2609114.79994,2609114.79994 +5313600.0,722454.978,601127.1359999999,1755291.23712,596824.4092799999,596824.4092799999,596824.4092799999,898436.7279999999,1741170.3448799998,1952218.4953600003,1307571.55284,1992489.9852800001,661479.8099999999,661479.8099999999,661479.8099999999,877405.4345,722454.978,722454.978,538599.66823,871897.6161,1296005.83924,2260475.301,641544.41876,815923.94198,729793.179,729793.179,729793.179,729793.179,2172181.30052,2172181.30052 +5317200.0,454592.63399999996,350514.474,1023502.26408,279608.84534,279608.84534,279608.84534,444623.1335,870058.88624,1207699.99744,705681.78387,1075324.62304,396222.204,396222.204,396222.204,507858.31600000005,454592.63399999996,454592.63399999996,325124.96588000003,457682.2299,680307.90716,1186583.559,336763.71484,428300.16082,449189.562,449189.562,449189.562,449189.562,1366808.51956,1366808.51956 +5320800.0,334346.33999999997,242227.74299999996,707305.0095599999,130118.10350000001,130118.10350000001,130118.10350000001,302343.0585,642143.5364,769530.07296,479668.84559999994,730923.9552,280442.65499999997,280442.65499999997,280442.65499999997,304597.9965,334346.33999999997,334346.33999999997,200636.3554,286318.9701,425590.17283999996,742308.441,210674.20516,267937.99918,293385.996,293385.996,293385.996,293385.996,1005267.9955999999,1005267.9955999999 +5324400.0,280284.939,189647.72400000002,553771.35408,81166.12966,81166.12966,81166.12966,227969.54599999997,532494.58136,565924.89728,380639.74683,580022.47136,225292.87800000003,225292.87800000003,225292.87800000003,219656.857,280284.939,280284.939,141685.98145,200759.55704999997,298412.97121999995,520487.74049999996,147719.37777999998,187871.28919,224885.451,224885.451,224885.451,224885.451,842723.3832599999,842723.3832599999 +5328000.0,376276.04699999996,286378.836,836226.2011199999,145445.91886,145445.91886,145445.91886,349966.5435,716916.42024,937271.3632,541589.92377,825279.88384,324295.374,324295.374,324295.374,370815.4485,376276.04699999996,376276.04699999996,249871.56830999994,353349.75059999997,525226.04904,916091.946,259995.61896,330665.56908,343411.374,343411.374,343411.374,343411.374,1131336.64798,1131336.64798 +5331600.0,779240.124,672703.044,1964292.88848,698644.2749000001,698644.2749000001,698644.2749000001,855986.0924999999,1446050.0036799998,2496346.8358400003,1246490.8318800002,1899414.6009600002,725063.622,725063.622,725063.622,965438.495,779240.124,779240.124,699725.3416399999,960698.4709499999,1428001.1839799997,2490699.7394999997,706884.30702,899024.0012099999,818498.3940000001,818498.3940000001,818498.3940000001,818498.3940000001,2342915.3061599997,2342915.3061599997 +5335200.0,816396.5939999999,696122.922,2032678.93224,932201.3022300001,932201.3022300001,932201.3022300001,933626.4805000001,1508372.2761600001,2611807.41952,1308711.1575300002,1994226.5257600003,755912.019,755912.019,755912.019,1005654.559,816396.5939999999,816396.5939999999,832197.6959399999,1000403.9136,1487020.13824,2593639.776,736099.66976,936180.45248,865298.004,865298.004,865298.004,865298.004,2454632.4259599997,2454632.4259599997 +5338800.0,818678.952,718677.3929999999,2098537.98756,952878.1964900001,952878.1964900001,952878.1964900001,937180.6290000001,1528218.43576,2623122.75008,1315146.51429,2004032.7836800003,764073.585,764073.585,764073.585,1010334.906,818678.952,818678.952,929617.6418099998,1006871.3747999999,1496633.5003199999,2610407.2679999997,740858.4436799999,942232.71864,876433.977,876433.977,876433.977,876433.977,2461494.71568,2461494.71568 +5342400.0,814878.5430000001,717221.502,2094286.78584,945824.20273,945824.20273,945824.20273,922077.9085,1556448.98408,2646957.47904,1307658.45903,1992622.41376,764318.586,764318.586,764318.586,1005236.372,814878.5430000001,814878.5430000001,947498.4079599999,1013137.5388499999,1505947.6503399997,2626652.8784999996,745469.10266,948096.61043,882504.108,882504.108,882504.108,882504.108,2450068.1526200003,2450068.1526200003 +5346000.0,750150.183,633506.295,1849838.3814,743360.89685,743360.89685,743360.89685,683451.426,1241200.03168,1873672.7616000003,1047880.29003,1596769.96576,578695.068,578695.068,578695.068,762194.3175000001,750150.183,750150.183,932258.44725,778268.3958,1156833.51672,2017732.8780000003,572651.8072800001,728305.4864400001,746830.779,746830.779,746830.779,746830.779,2255451.5502199996,2255451.5502199996 +5349600.0,327340.05,222887.691,650832.0577199999,364940.92118,364940.92118,364940.92118,282786.1225,576377.1180799999,710539.82272,487290.87057,742538.46944,240193.533,240193.533,240193.533,326467.701,327340.05,327340.05,521829.8244899999,167982.82604999997,249692.99081999995,435511.03049999994,123602.17817999999,157198.74339,391197.375,391197.375,391197.375,391197.375,984202.4169999999,984202.4169999999 +5353200.0,110679.552,80054.481,233759.08452,97458.22977,97458.22977,97458.22977,54953.521,206396.32224,513350.03904000006,206982.69963000002,315402.20896,130787.57100000001,130787.57100000001,130787.57100000001,86478.6195,110679.552,110679.552,165271.52784999998,65139.77475,96825.04789999999,168880.8975,47930.0071,60957.96205,113144.19600000001,113144.19600000001,113144.19600000001,113144.19600000001,332776.51967999997,332776.51967999997 +5356800.0,103784.484,77237.091,225532.30572,76139.3622,76139.3622,76139.3622,33642.5075,191593.28879999998,496220.45824,192068.80917,292676.28064,132064.2,132064.2,132064.2,79511.551,103784.484,103784.484,159770.3549,56589.56865,84115.85265999999,146713.6965,41638.74434,52956.65807,106773.438,106773.438,106773.438,106773.438,312045.34856,312045.34856 +5360400.0,103136.09999999999,81126.39899999999,236889.08508,78162.20918,78162.20918,78162.20918,28615.013,208572.68584000002,489871.66272,188632.40424,287439.85408,129977.47200000001,129977.47200000001,129977.47200000001,77496.0095,103136.09999999999,103136.09999999999,157843.98356999998,54684.9387,81284.77308,141775.767,40237.31292,51174.30066,104956.875,104956.875,104956.875,104956.875,310095.87399999995,310095.87399999995 +5364000.0,109003.056,89806.383,262234.63836,78639.78705,78639.78705,78639.78705,31742.073999999997,207420.40712,492148.37888000003,193658.20278000002,295098.21376,130502.96699999998,130502.96699999998,130502.96699999998,76230.455,109003.056,109003.056,160383.30281999998,62560.354049999994,92990.94601999999,162193.5105,46032.06298,58544.13379,108988.92300000001,108988.92300000001,108988.92300000001,108988.92300000001,327735.85504,327735.85504 +5367600.0,112047.543,91592.16,267449.1072,79414.16967000002,79414.16967000002,79414.16967000002,32416.713,209538.75032000002,498248.12032,198490.81581,302462.19552,131994.606,131994.606,131994.606,76708.6985,112047.543,112047.543,175118.13176,63001.06694999999,93646.03038,163336.09949999998,46356.340619999995,58956.55401,111830.703,111830.703,111830.703,111830.703,336889.61262,336889.61262 +5371200.0,115503.78899999999,95609.86799999999,279180.81455999997,85286.72790000001,85286.72790000001,85286.72790000001,41099.16649999999,214149.66391999996,512023.86496000004,216931.34526,330562.04992,135659.115,135659.115,135659.115,81235.6825,115503.78899999999,115503.78899999999,181092.37783,69469.7229,103261.16836,180106.689,51115.99364,65009.938220000004,124783.76400000001,124783.76400000001,124783.76400000001,124783.76400000001,347281.39226,347281.39226 +5374800.0,127006.80300000001,106125.948,309887.76816,102650.58111,102650.58111,102650.58111,55130.565,229388.3088,540546.2528,240660.57980999997,366720.88352,167727.501,167727.501,167727.501,92023.5435,127006.80300000001,127006.80300000001,187710.03355,81688.32990000001,121423.14716000001,211784.55900000004,60106.47484000001,76444.14082000002,143937.915,143937.915,143937.915,143937.915,381867.12102,381867.12102 +5378400.0,240399.603,170135.289,496795.04387999995,222964.14822000003,222964.14822000003,222964.14822000003,144274.69700000001,699203.20968,690596.05376,449603.15819999995,685109.5743999999,257248.97100000002,257248.97100000002,257248.97100000002,231562.46399999998,240399.603,240399.603,422348.17793999997,147581.02395,219367.34918000002,382617.46950000006,108590.48182000002,138106.68661000003,274241.535,274241.535,274241.535,274241.535,722801.4730199999,722801.4730199999 +5382000.0,922172.577,409676.154,1196254.36968,1361467.71057,1361467.71057,1361467.71057,1056888.21,2820993.29448,2548473.94944,2194749.4401000002,3344380.0992000005,790416.3659999999,790416.3659999999,790416.3659999999,981934.5725,922172.577,922172.577,2150982.2405499998,1059835.9139999999,1575361.0375999997,2747722.7399999998,779829.8823999999,991797.0652,1117352.7780000002,1117352.7780000002,1117352.7780000002,1117352.7780000002,2772665.54818,2772665.54818 +5385600.0,618034.797,903617.4840000002,2638563.05328,1200576.7237200004,1200576.7237200004,1200576.7237200004,1380294.244,3058244.82456,1830636.4755200003,2106489.7198799998,3209889.0969599998,822806.499,822806.499,822806.499,978786.5255,618034.797,618034.797,1666681.54159,1401048.00495,2082545.4295799998,3632346.6794999996,1030894.58142,1311104.18241,937254.831,937254.831,937254.831,937254.831,1858224.6229799998,1858224.6229799998 +5389200.0,1564392.051,1404187.299,4100226.91308,625360.8683300001,625360.8683300001,625360.8683300001,852688.7915,2854457.41136,4483352.43392,2188155.1377,3334331.6384,1302411.5969999998,1302411.5969999998,1302411.5969999998,758739.3695,1564392.051,1564392.051,1432977.1721199998,932120.7637499999,1385522.7155,2416609.3874999997,685856.7594999999,872280.9122499999,1723884.5609999998,1723884.5609999998,1723884.5609999998,1723884.5609999998,4703605.43334,4703605.43334 +5392800.0,932971.797,767808.4559999999,2242000.69152,349343.04504000006,349343.04504000006,349343.04504000006,332706.2865,1179004.0141599998,5098286.19328,548345.17143,835573.59456,937779.912,937779.912,937779.912,904522.2655,932971.797,932971.797,988429.42523,1502230.3699499997,2232944.89558,3894671.3294999995,1105344.8154199999,1405790.8894099998,464646.09300000005,464646.09300000005,464646.09300000005,464646.09300000005,2805135.2029799996,2805135.2029799996 +5396400.0,497303.62200000003,439173.963,1282387.97196,161455.18245999998,161455.18245999998,161455.18245999998,302657.859,883314.2729600001,1579571.4233600004,533605.41696,813113.0163199999,349146.753,349146.753,349146.753,285168.9435,497303.62200000003,497303.62200000003,445426.7792,349285.79429999995,519185.30411999987,905555.7629999999,257005.34987999997,326862.50873999996,355522.35,355522.35,355522.35,355522.35,1495226.22348,1495226.22348 +5400000.0,593169.747,1028891.6430000002,3004363.5975600006,323674.44637,323674.44637,323674.44637,712532.7335,1362041.07808,2042207.3343999998,988881.5937,1506867.1904,523004.30700000003,523004.30700000003,523004.30700000003,816445.8890000001,593169.747,593169.747,565184.13419,585350.3596499999,870076.3370599998,1517575.0064999997,430702.23993999994,547772.31187,564829.3500000001,564829.3500000001,564829.3500000001,564829.3500000001,1783463.7059799999,1783463.7059799999 +5403600.0,373325.001,313470.978,915335.25576,208312.08717,208312.08717,208312.08717,440526.429,773272.5896,1006659.5315200002,485941.96266,740482.99072,315733.695,315733.695,315733.695,243454.0185,373325.001,373325.001,352537.78118,307292.53095000004,456765.68798,796684.3395000001,226106.60302,287565.10921,304942.386,304942.386,304942.386,304942.386,1122463.83634,1122463.83634 +5407200.0,275369.559,221159.262,645785.04504,79721.23896,79721.23896,79721.23896,185467.5865,613708.36616,756283.3248,349950.22628999996,533257.4876799999,246984.99600000004,246984.99600000004,246984.99600000004,171068.6495,275369.559,275369.559,293728.62402,207377.3583,308249.80172,537645.003,152588.77228,194064.24394000001,233858.538,233858.538,233858.538,233858.538,827944.47406,827944.47406 +5410800.0,333520.851,218069.95500000002,636764.2686,603747.2269400001,603747.2269400001,603747.2269400001,539327.1065,695889.82728,310180.97728000005,619481.34864,943971.57888,207876.39600000004,207876.39600000004,207876.39600000004,624473.0660000001,333520.851,333520.851,567695.2187399999,385830.6129,573506.24436,1000301.589,283895.11764,361061.24022,158788.251,158788.251,158788.251,158788.251,1002786.0253399999,1002786.0253399999 +5414400.0,344515.35,732390.723,2138580.91116,369120.0378800001,369120.0378800001,369120.0378800001,499561.29299999995,1192097.40512,909926.6156800002,528585.02319,805462.89248,392976.05399999995,392976.05399999995,392976.05399999995,824421.115,344515.35,344515.35,829779.82438,492805.75364999997,732516.20666,1277644.5465,362607.69034000003,461168.84107,412217.16000000003,412217.16000000003,412217.16000000003,412217.16000000003,1035842.8189999999,1035842.8189999999 +5418000.0,652921.6740000001,699553.6529999999,2042696.6667599997,598485.42919,598485.42919,598485.42919,778668.548,1609019.26832,2403696.2265600003,1117058.72817,1702184.72864,686716.0140000001,686716.0140000001,686716.0140000001,925609.2720000001,652921.6740000001,652921.6740000001,757649.75702,836947.0921499999,1244054.69006,2169862.8315,615827.73694,783217.15537,696823.6499999999,696823.6499999999,696823.6499999999,696823.6499999999,1963117.8331600002,1963117.8331600002 +5421600.0,1928642.844,1635303.8339999998,4775087.19528,2739105.2543800003,2739105.2543800003,2739105.2543800003,2722009.4650000003,3185675.81456,5523426.926080001,3364271.3916,5126508.7872,2097664.008,2097664.008,2097664.008,2454793.656,1928642.844,1928642.844,1860652.9734,2420682.18525,3598149.8161,6275842.702500001,1781143.9289000002,2265280.36595,2105583.039,2105583.039,2105583.039,2105583.039,5798786.150959999,5798786.150959999 +5425200.0,1213670.643,770488.5630000001,2249826.60396,1133936.6967500001,1133936.6967500001,1133936.6967500001,1182552.952,2008633.29288,3069897.74272,1687298.4827999999,2571121.4976,1038771.4949999999,1038771.4949999999,1038771.4949999999,1275553.7515,1213670.643,1213670.643,910463.5965100001,1229875.7269499998,1828111.5743799997,3188566.6994999996,904945.5966199999,1150920.74201,1124292.195,1124292.195,1124292.195,1124292.195,3649103.0666199997,3649103.0666199997 +5428800.0,920349.3660000002,757762.224,2212665.6940800003,1026601.6514600001,1026601.6514600001,1026601.6514600001,981289.3755,1673952.8676,3070278.7712000003,1417979.4505799997,2160730.59136,879447.795,879447.795,879447.795,1167360.229,920349.3660000002,920349.3660000002,998828.16423,1147704.5681999999,1705970.7408799997,2975530.3619999997,844483.85512,1074024.76876,993347.0969999998,993347.0969999998,993347.0969999998,993347.0969999998,2767183.7604400003,2767183.7604400003 +5432400.0,873663.213,753314.8559999999,2199679.37952,998397.0480000001,998397.0480000001,998397.0480000001,985065.3295000001,1631402.8787199997,3042796.50048,1393814.1684599998,2123907.3043199996,867624.2609999999,867624.2609999999,867624.2609999999,1148120.176,873663.213,873663.213,1032314.4799499998,1133273.8512,1684520.6380799997,2938117.3919999995,833865.69792,1060520.46816,979821.216,979821.216,979821.216,979821.216,2626814.06042,2626814.06042 +5436000.0,615202.572,527281.1129999999,1539660.8499599998,644847.17363,644847.17363,644847.17363,542419.7170000001,821973.9263999999,1849105.71072,793033.53654,1208432.05568,455427.129,455427.129,455427.129,568556.3169999999,615202.572,615202.572,710521.4395499999,523495.8234,778134.53256,1357211.394,385189.51944,489888.68412,612741.1740000001,612741.1740000001,612741.1740000001,612741.1740000001,1849709.06648,1849709.06648 +5439600.0,105959.214,95374.086,278492.33112,110010.59003,110010.59003,110010.59003,59278.184,167825.0144,652974.4064,183860.12757,280167.81344000006,145142.93099999998,145142.93099999998,145142.93099999998,102380.88,105959.214,105959.214,187865.35325999997,76165.1829,113213.43235999999,197465.28900000002,56042.52964,71275.56622000001,122087.26499999998,122087.26499999998,122087.26499999998,122087.26499999998,318584.03676000005,318584.03676000005 +5443200.0,102703.80900000001,95029.155,277485.1326,87437.85314,87437.85314,87437.85314,38750.04,178907.26704,658529.4841600001,182786.30265,278531.5088,155053.29,155053.29,155053.29,97050.079,102703.80900000001,102703.80900000001,199694.53335,69917.6286,103926.94424,181267.926,51445.563760000005,65429.08948,121017.21900000001,121017.21900000001,121017.21900000001,121017.21900000001,308796.11906,308796.11906 +5446800.0,105972.78600000001,98869.84500000002,288699.94740000006,82060.63426,82060.63426,82060.63426,33956.279,191117.96536,657888.72832,210431.94753,320658.20576,154428.687,154428.687,154428.687,97447.27649999999,105972.78600000001,105972.78600000001,201133.76230999996,69089.95844999999,102696.67898,179122.1145,50836.56202,64654.55371,124760.26500000001,124760.26500000001,124760.26500000001,124760.26500000001,318624.84324,318624.84324 +5450400.0,117205.37700000001,115112.73000000001,336129.1716,77830.96002,77830.96002,77830.96002,38201.779,194460.39591999998,661965.8451200001,222715.41516,339375.87072,154426.146,154426.146,154426.146,96190.10450000002,117205.37700000001,117205.37700000001,222255.79986999996,78168.74625,116191.5685,202659.7125,57516.756499999996,73150.50575,134108.376,134108.376,134108.376,134108.376,352397.50018000003,352397.50018000003 +5454000.0,122926.14300000001,118286.10600000001,345395.42952,80108.07618,80108.07618,80108.07618,42544.642,214675.76616,675065.47392,250470.45471000002,381669.26432,157509.15899999999,157509.15899999999,157509.15899999999,99020.6805,122926.14300000001,122926.14300000001,230006.64349,86821.88309999999,129053.76203999999,225093.771,63883.75596,81248.13258,144633.93,144633.93,144633.93,144633.93,369597.93662,369597.93662 +5457600.0,142940.643,132686.901,387445.75092,90921.79756,90921.79756,90921.79756,61394.942,274445.47976,692772.0864000001,282198.48803999997,430016.74367999996,203960.58299999998,203960.58299999998,203960.58299999998,130020.0475,142940.643,142940.643,237255.85702,102069.68354999999,151718.39382,264625.1055,75103.12518,95517.06189,197381.18699999998,197381.18699999998,197381.18699999998,197381.18699999998,429774.86662,429774.86662 +5461200.0,187959.0,142495.38299999997,416086.5183599999,104158.4225,104158.4225,104158.4225,72312.1175,351172.78968,708324.57856,318020.87856000004,484603.2435200001,272147.562,272147.562,272147.562,188503.37099999998,187959.0,187959.0,257576.19744999998,120231.62909999999,178714.66843999998,311711.631,88466.72956,112513.05538,235102.554,235102.554,235102.554,235102.554,565130.0599999999,565130.0599999999 +5464800.0,329677.719,190824.636,557207.93712,230257.97894000003,230257.97894000003,230257.97894000003,153469.31600000002,871279.82,797505.1859200001,559320.0519900001,852297.2220800001,355038.225,355038.225,355038.225,318696.1785,329677.719,329677.719,491500.89859,184804.0839,274696.44075999997,479121.69899999996,135979.30124,172940.11802,372721.95900000003,372721.95900000003,372721.95900000003,372721.95900000003,991231.0084599998,991231.0084599998 +5468400.0,1057711.2510000002,472900.608,1380869.7753599999,1473257.61506,1473257.61506,1473257.61506,1234274.3244999999,3121862.5141600003,3108784.63616,2492508.53145,3798108.2384,943054.665,943054.665,943054.665,1281700.5074999998,1057711.2510000002,1057711.2510000002,2297147.6547499998,1262373.37245,1876416.71658,3272819.8545000004,928857.4444200001,1181332.11891,1306296.3539999998,1306296.3539999998,1306296.3539999998,1306296.3539999998,3180185.16134,3180185.16134 +5472000.0,587011.827,877130.4870000001,2561221.02204,1167028.52365,1167028.52365,1167028.52365,1405082.462,3124586.5996799995,1691969.4176000003,2106581.3401499996,3210028.7087999997,776874.6780000001,776874.6780000001,776874.6780000001,995707.4575000001,587011.827,587011.827,1522563.5760399997,1462758.77025,2174273.5301,3792337.5525,1076301.5149,1368853.26895,908770.455,908770.455,908770.455,908770.455,1764948.89318,1764948.89318 +5475600.0,1527709.02,1397023.6709999999,4079309.1193199996,602848.79886,602848.79886,602848.79886,889051.0789999999,2810261.18488,4386509.107840001,2148971.5405200003,3274623.2998400005,1278940.935,1278940.935,1278940.935,765129.7325,1527709.02,1527709.02,926194.7399899999,893066.5408499999,1327471.7471399999,2315357.6985,657120.56586,835733.87403,1674682.5869999998,1674682.5869999998,1674682.5869999998,1674682.5869999998,4593311.7868,4593311.7868 +5479200.0,957006.96,714227.58,2085544.5335999997,341700.46823000006,341700.46823000006,341700.46823000006,348623.87,1209375.07432,5177930.970240001,585348.63702,891959.82784,943428.963,943428.963,943428.963,878946.691,957006.96,957006.96,936350.24691,1585875.03615,2357275.97966,4111527.8715000004,1166890.76734,1484065.7745700001,485256.801,485256.801,485256.801,485256.801,2877400.9263999998,2877400.9263999998 +5482800.0,478660.356,390845.76599999995,1141269.6367199998,151321.64762000003,151321.64762000003,151321.64762000003,273848.7465,822814.8688800001,1591419.03616,487389.75516,742689.15072,324536.03099999996,324536.03099999996,324536.03099999996,258209.33949999997,478660.356,478660.356,409759.21025,322629.95385,479563.53634,836448.0285,237391.91666000002,301917.90743,337167.08400000003,337167.08400000003,337167.08400000003,337167.08400000003,1439172.1370400002,1439172.1370400002 +5486400.0,529048.248,962650.9980000001,2810940.91416,254840.26612000004,254840.26612000004,254840.26612000004,638692.964,1215737.1002399998,1756157.3376,860029.0175399999,1310520.40768,449305.614,449305.614,449305.614,783321.728,529048.248,529048.248,482683.7260699999,486065.05919999996,722496.70528,1260168.672,357647.87072,454860.88256,489074.1329999999,489074.1329999999,489074.1329999999,489074.1329999999,1590671.73232,1590671.73232 +5490000.0,363895.89300000004,303867.753,887293.83876,209866.55041,209866.55041,209866.55041,442470.994,741529.74264,955457.4464,471855.0165,719017.1680000001,298603.722,298603.722,298603.722,241351.8905,363895.89300000004,363895.89300000004,336464.41101000004,292662.12464999995,435018.76305999997,758753.6564999999,215341.51393999998,273873.93887,295352.877,295352.877,295352.877,295352.877,1094113.6516200001,1094113.6516200001 +5493600.0,198098.58000000002,131872.452,385067.55983999994,73218.70578,73218.70578,73218.70578,106390.844,417586.70632,407735.38752,211611.54945000002,322455.69440000004,152654.193,152654.193,152654.193,95647.4785,198098.58000000002,198098.58000000002,191828.30263999998,101606.70375,151030.2115,263424.78750000003,74762.4635,95083.80425,140189.81699999998,140189.81699999998,140189.81699999998,140189.81699999998,595616.3972,595616.3972 +5497200.0,284731.407,166404.94199999998,485902.43064,556097.92579,556097.92579,556097.92579,481342.4560000001,569576.52568,174080.07616,546816.82902,833244.69184,159595.53900000002,159595.53900000002,159595.53900000002,561779.6414999999,284731.407,284731.407,511873.08600999997,337915.19655000005,502283.82302,876076.4355000001,248638.83598000003,316221.87529000005,114379.194,114379.194,114379.194,114379.194,856092.4303799999,856092.4303799999 +5500800.0,165830.20799999998,522101.36699999997,1524535.99164,301272.9872900001,301272.9872900001,301272.9872900001,317766.841,778451.81696,249477.67104000002,215720.48358,328716.92736,198919.19999999998,198919.19999999998,198919.19999999998,588892.8045,165830.20799999998,165830.20799999998,598983.0999099999,244532.60909999997,363478.10043999995,633973.431,179927.69756,228834.21938,218267.93099999998,218267.93099999998,218267.93099999998,218267.93099999998,498596.15871999995,498596.15871999995 +5504400.0,609434.334,639019.29,1865936.3268,438793.55795000005,438793.55795000005,438793.55795000005,640909.024,1482949.0742400002,1977650.6585600001,964860.20211,1470263.16512,586121.2860000001,586121.2860000001,586121.2860000001,809845.883,609434.334,609434.334,720269.1258099999,688363.02495,1023196.39758,1784644.8795,506499.21342,644171.8184100001,620943.141,620943.141,620943.141,620943.141,1832365.8975599997,1832365.8975599997 +5508000.0,1877974.3620000002,1587372.807,4635128.5964399995,2318395.7524200003,2318395.7524200003,2318395.7524200003,2697521.4945,3160573.63744,5304800.45248,3285862.84278,5007029.093760001,2069182.3710000003,2069182.3710000003,2069182.3710000003,2332854.5975,1877974.3620000002,1877974.3620000002,1646479.7868999997,2341239.6086999997,3480064.801079999,6069880.466999999,1722689.8849199999,2190937.80666,2040482.433,2040482.433,2040482.433,2040482.433,5646442.91508,5646442.91508 +5511600.0,1221053.604,787085.8949999999,2298290.8134,1086806.07233,1086806.07233,1086806.07233,1181238.3275,2000618.03304,3053394.38208,1693303.77153,2580272.41376,1046888.5499999999,1046888.5499999999,1046888.5499999999,1292503.0860000001,1221053.604,1221053.604,812703.5499699999,1223001.6862499998,1817893.8644999997,3170745.1125,899887.6604999999,1144487.9977499999,1108939.53,1108939.53,1108939.53,1108939.53,3671301.16936,3671301.16936 +5515200.0,966709.404,801075.855,2339141.4965999997,1060290.05896,1060290.05896,1060290.05896,1034500.5825000001,1768666.5832800001,3143530.2969600004,1490107.11087,2270639.40704,931350.7559999999,931350.7559999999,931350.7559999999,1242603.0085,966709.404,966709.404,979473.7920499999,1206471.38445,1793322.8973799997,3127888.7745,887724.62362,1129018.90051,1042827.9450000001,1042827.9450000001,1042827.9450000001,1042827.9450000001,2906572.9413599996,2906572.9413599996 +5518800.0,908519.529,786245.601,2295837.15492,1029716.0073200001,1029716.0073200001,1029716.0073200001,1027274.3005000001,1699219.25968,3183197.63456,1441993.5440400003,2197323.49568,907709.0549999999,907709.0549999999,907709.0549999999,1204595.3675,908519.529,908519.529,1025255.6317899999,1182661.3736999999,1757931.2270799999,3066159.1169999996,870205.15892,1106737.4336599999,1022842.4249999999,1022842.4249999999,1022842.4249999999,1022842.4249999999,2731615.38386,2731615.38386 +5522400.0,641974.713,560601.186,1636955.46312,676624.8911400001,676624.8911400001,676624.8911400001,571204.739,873373.4892,1970626.2694400002,801984.0433499999,1222070.9232,484128.426,484128.426,484128.426,605372.488,641974.713,641974.713,758360.8770399999,556172.973,826706.4931999999,1441929.93,409233.44680000003,520468.04140000005,648904.7880000001,648904.7880000001,648904.7880000001,648904.7880000001,1930203.97042,1930203.97042 +5526000.0,109512.315,98678.301,288140.63892,112781.83268,112781.83268,112781.83268,60357.941,176891.6728,680702.86976,178195.81269,271536.47648,144420.52500000002,144420.52500000002,144420.52500000002,105963.389,109512.315,109512.315,198166.73304999998,78992.37045,117415.81977999999,204795.0345,58122.781220000004,73921.25531000001,120751.989,120751.989,120751.989,120751.989,329267.0271,329267.0271 +5529600.0,104872.695,96717.102,282413.93783999997,88815.21033,88815.21033,88815.21033,39364.059,183849.04,671893.59488,189852.36081,289298.83552,140524.785,140524.785,140524.785,99137.8255,104872.695,104872.695,203342.22571,71370.96704999999,106087.21521999998,185035.8405,52514.93378,66789.12719,119556.05100000002,119556.05100000002,119556.05100000002,119556.05100000002,315317.2363,315317.2363 +5533200.0,109547.829,102226.038,298500.03095999995,83515.51274,83515.51274,83515.51274,34562.923500000004,194796.04408,671044.57408,215582.64987,328506.89504000003,150819.771,150819.771,150819.771,99284.4685,109547.829,109547.829,205929.54394999996,70722.96299999999,105124.00919999999,183355.83,52038.1308,66182.7234,127468.33800000002,127468.33800000002,127468.33800000002,127468.33800000002,329373.80585999996,329373.80585999996 +5536800.0,119854.902,116916.081,341394.95652,78869.71356,78869.71356,78869.71356,40340.2195,197190.50832,670040.98112,226976.63919000002,345869.16448000004,155683.641,155683.641,155683.641,97273.6905,119854.902,119854.902,226173.73245999997,81015.39405,120422.88202,210039.91050000003,59611.32698000001,75814.40579000002,131025.84300000001,131025.84300000001,131025.84300000001,131025.84300000001,360363.73867999995,360363.73867999995 +5540400.0,124636.641,119102.58299999998,347779.54235999996,79764.10827000001,79764.10827000001,79764.10827000001,43693.692,212673.66231999997,671150.0774400001,253206.26331,385838.11552,156321.267,156321.267,156321.267,99069.978,124636.641,124636.641,229027.99607999998,87381.5526,129885.66583999999,226544.766,64295.562159999994,81771.87268,145334.742,145334.742,145334.742,145334.742,374740.83394,374740.83394 +5544000.0,142364.451,129398.352,377843.18783999997,88686.00818,88686.00818,88686.00818,60396.12949999999,250936.97439999998,661548.0422400001,272485.42566,415215.88672,200392.215,200392.215,200392.215,132197.744,142364.451,142364.451,229306.53837,100075.66604999999,148754.44681999998,259455.43049999996,73635.92218,93651.05539,194934.24600000004,194934.24600000004,194934.24600000004,194934.24600000004,428042.44934,428042.44934 +5547600.0,179771.196,136158.74099999998,397583.52371999994,99526.00955,99526.00955,99526.00955,69238.2565,324256.35232,664478.6790400001,301532.57232,459478.20544,244101.80400000003,244101.80400000003,244101.80400000003,177572.53149999998,179771.196,179771.196,244003.54147,113884.48935,169280.15454,295256.0835,83796.48846000001,106573.38633000001,223105.185,223105.185,223105.185,223105.185,540512.06264,540512.06264 +5551200.0,307007.92799999996,177591.861,518568.23412000004,207145.67401000002,207145.67401000002,207145.67401000002,147979.7235,812382.76008,718960.3660800001,521181.92763,794181.98496,307900.68,307900.68,307900.68,296939.0725,307007.92799999996,307007.92799999996,464700.2327499999,171140.09264999998,254386.01425999994,443696.53649999993,125925.30273999998,160153.32127,339923.352,339923.352,339923.352,339923.352,923070.5035199999,923070.5035199999 +5554800.0,1022139.7320000001,445115.5140000001,1299737.3008800002,1444492.1208300001,1444492.1208300001,1444492.1208300001,1205574.426,3038409.3521600002,2916823.5520000006,2425331.92545,3695743.8864,878409.6659999999,878409.6659999999,878409.6659999999,1220593.675,1022139.7320000001,1022139.7320000001,2250474.41619,1213622.77725,1803952.8689,3146429.4225,892986.6361,1135711.19155,1253682.636,1253682.636,1253682.636,1253682.636,3073233.4608799997,3073233.4608799997 +5558400.0,634069.197,907650.318,2650338.9285599994,1185557.14574,1185557.14574,1185557.14574,1443075.508,3199976.98176,1820222.38976,2209264.71066,3366498.60672,830457.4980000001,830457.4980000001,830457.4980000001,1028672.085,634069.197,634069.197,1559757.459,1505277.1809,2237473.73556,3902570.4690000005,1107586.66644,1408642.10262,969056.9369999999,969056.9369999999,969056.9369999999,969056.9369999999,1906434.71898,1906434.71898 +5562000.0,1557554.0790000001,1428445.98,4171062.2616,647787.99283,647787.99283,647787.99283,933231.943,2853347.02296,4583649.70304,2214801.6198,3374935.8016000004,1312460.781,1312460.781,1312460.781,788189.6785,1557554.0790000001,1557554.0790000001,1020050.9135699999,932939.4186,1386739.58024,2418731.8260000004,686459.1277600001,873047.0114800001,1718760.507,1718760.507,1718760.507,1718760.507,4683045.93086,4683045.93086 +5565600.0,932200.2779999999,681321.4770000001,1989458.7128400002,353559.7970300001,353559.7970300001,353559.7970300001,315850.19550000003,1087605.9059199998,5035807.118720001,514288.8462600001,783678.2419200002,884195.1359999999,884195.1359999999,884195.1359999999,873372.367,932200.2779999999,932200.2779999999,960603.23372,1566010.8999,2327749.53516,4060028.259,1152274.68684,1465476.86682,449911.53599999996,449911.53599999996,449911.53599999996,449911.53599999996,2802815.5025199996,2802815.5025199996 +5569200.0,466051.401,387846.89099999995,1132512.92172,149095.71578,149095.71578,149095.71578,260525.881,776893.50056,1490710.27456,469140.66759,714881.01728,299853.363,299853.363,299853.363,249087.64299999995,466051.401,466051.401,393656.6241399999,314423.50365,467365.30666,815172.0465,231353.59034000002,294238.29107000004,322374.024,322374.024,322374.024,322374.024,1401261.21234,1401261.21234 +5572800.0,541097.9099999999,976991.4719999998,2852815.0982399997,276297.4445,276297.4445,276297.4445,659616.7235,1220571.9077599999,1806236.5196800004,895242.76527,1364179.45184,452324.934,452324.934,452324.934,794636.9865,541097.9099999999,541097.9099999999,492914.7932799999,511187.34285,759838.96394,1325300.5185,376132.90906000003,478370.37763000006,505281.80700000003,505281.80700000003,505281.80700000003,505281.80700000003,1626901.0493999997,1626901.0493999997 +5576400.0,361132.092,300103.98,876303.6216,219403.76106000005,219403.76106000005,219403.76106000005,446379.7765,723857.21352,947969.7542400002,470736.20012999995,717312.30496,290260.623,290260.623,290260.623,233252.992,361132.092,361132.092,330481.84844999993,295247.99700000003,438862.4548,765457.77,217244.20520000003,276293.80460000003,294786.08999999997,294786.08999999997,294786.08999999997,294786.08999999997,1085803.82328,1085803.82328 +5580000.0,235254.93600000002,173703.282,507213.58343999996,76292.40234,76292.40234,76292.40234,145308.3275,492339.64072,561909.6224,278418.20643,424256.31456,186703.71600000001,186703.71600000001,186703.71600000001,130950.2775,235254.93600000002,235254.93600000002,235982.64521,154265.0103,229302.55852000002,399946.32300000003,113508.57548000001,144361.57754000003,186947.652,186947.652,186947.652,186947.652,707333.17424,707333.17424 +5583600.0,348936.849,235044.72000000003,686330.5824000001,649324.87774,649324.87774,649324.87774,558608.869,703213.6428,356396.51904000004,648680.41812,988465.39904,209672.517,209672.517,209672.517,648402.1425000001,348936.849,348936.849,581687.2153299999,415383.61275,617434.4071,1076920.4775,305640.2879,388717.01045,177518.238,177518.238,177518.238,177518.238,1049136.7926599998,1049136.7926599998 +5587200.0,281059.43700000003,673706.472,1967222.8982399998,336538.51165,336538.51165,336538.51165,425652.577,1002074.358,615490.4998400001,409465.64085,623947.6432,306969.801,306969.801,306969.801,736797.74,281059.43700000003,281059.43700000003,748162.9411099999,399971.44710000005,594525.45964,1036963.0110000002,294299.97836,374294.26778000005,345020.673,345020.673,345020.673,345020.673,845052.04058,845052.04058 +5590800.0,596254.728,633345.408,1849368.59136,524072.56506000005,524072.56506000005,524072.56506000005,698627.5449999999,1452583.9592,2136738.6169600002,996998.4956400001,1519235.8028800003,593099.8859999999,593099.8859999999,593099.8859999999,840400.6309999999,596254.728,596254.728,683794.3330399999,745131.19455,1107577.7262199998,1931821.6155,548269.37278,697295.61169,626111.571,626111.571,626111.571,626111.571,1792739.2155199999,1792739.2155199999 +5594400.0,1869290.5950000002,1573312.449,4594072.35108,2622585.63545,2622585.63545,2622585.63545,2646054.8345,3040458.0416800003,5160572.496,3243596.72511,4942623.58112,2020179.756,2020179.756,2020179.756,2290537.1125000003,1869290.5950000002,1869290.5950000002,1885815.1175499998,2318389.8084,3446100.40656,6010640.244000001,1705876.9454400002,2169554.90712,2039832.534,2039832.534,2039832.534,2039832.534,5620333.7223000005,5620333.7223000005 +5598000.0,1146411.849,701162.181,2047393.5685199997,1046078.4695899999,1046078.4695899999,1046078.4695899999,1099892.864,1804580.5276000001,2682828.01216,1537879.9888199999,2343436.17344,949632.8489999999,949632.8489999999,949632.8489999999,1140505.723,1146411.849,1146411.849,833311.3071399999,1090431.5175,1620838.9470000002,2827044.6750000003,802342.2030000001,1020428.5065000001,1024073.406,1024073.406,1024073.406,1024073.406,3446878.29266,3446878.29266 +5601600.0,836905.0829999999,686741.139,2005284.12588,929996.93732,929996.93732,929996.93732,890126.0129999999,1499792.0780800001,2609499.6953600002,1279233.6820200002,1949308.4678400003,782311.968,782311.968,782311.968,1035438.2324999999,836905.0829999999,836905.0829999999,900278.6235299999,1023541.5798000001,1521412.4223200001,2653626.3180000004,753124.42168,957832.7376400001,889520.301,889520.301,889520.301,889520.301,2516294.6162199997,2516294.6162199997 +5605200.0,794568.186,681084.7590000001,1988767.49628,905939.9039900001,905939.9039900001,905939.9039900001,874554.387,1459806.7836,2676351.60512,1252344.88365,1908335.0607999999,771557.499,771557.499,771557.499,1018143.1960000001,794568.186,794568.186,944356.09268,1012304.68875,1504709.6855,2624493.6374999997,744856.2895,947317.22725,880150.98,880150.98,880150.98,880150.98,2389001.6792399995,2389001.6792399995 +5608800.0,569240.709,475019.691,1387057.4977199999,596617.3276800001,596617.3276800001,596617.3276800001,500668.31149999995,746331.5074400001,1646638.6700800003,714342.7659900001,1088522.3100800002,408348.186,408348.186,408348.186,515126.6645000001,569240.709,569240.709,632574.9710799999,473591.97045,703956.45978,1227831.0345,348470.14122,443188.53531,560829.7679999999,560829.7679999999,560829.7679999999,560829.7679999999,1711517.06506,1711517.06506 +5612400.0,96155.76,82694.091,241466.74572,101524.75399,101524.75399,101524.75399,56504.4585,132275.04223999998,571095.4105600001,155944.39875,237629.56,121488.75900000002,121488.75900000002,121488.75900000002,91278.1205,96155.76,96155.76,162637.69691,68098.2552,101222.59168,176551.032,50106.86432000001,63726.515360000005,108670.58699999998,108670.58699999998,108670.58699999998,108670.58699999998,289108.3184,289108.3184 +5616000.0,90864.828,82835.997,241881.11124000003,76519.80952000001,76519.80952000001,76519.80952000001,35156.0265,141014.61392,552192.3244800001,156066.83442,237816.12864000004,127782.831,127782.831,127782.831,83380.045,90864.828,90864.828,163946.26703000002,59474.0394,88403.38695999999,154191.954,43761.14504,55655.95292,104148.687,104148.687,104148.687,104148.687,273200.24951999995,273200.24951999995 +5619600.0,90779.493,84108.171,245595.85932,71480.03434000001,71480.03434000001,71480.03434000001,30464.542500000003,163294.21391999998,555530.3520000001,157744.05675,240371.896,131814.786,131814.786,131814.786,84412.9825,90779.493,90779.493,172751.94365,58208.02965,86521.56506,150909.7065,42829.611939999995,54471.21787,105234.045,105234.045,105234.045,105234.045,272943.67562,272943.67562 +5623200.0,99054.42899999999,93480.61200000001,272963.38704,66367.43872,66367.43872,66367.43872,27743.036999999997,165918.56975999998,553219.3856,179156.11329000004,272999.79168,130830.282,130830.282,130830.282,82733.35350000001,99054.42899999999,99054.42899999999,179332.27376999997,60967.282499999994,90622.973,158063.32499999998,44859.877,57053.3335,107361.21299999999,107361.21299999999,107361.21299999999,107361.21299999999,297823.64985999995,297823.64985999995 +5626800.0,105563.4,101266.75799999999,295698.93335999997,67646.06585000001,67646.06585000001,67646.06585000001,34991.4635,167140.42039999997,560649.84896,198574.49555999998,302589.70752,132144.126,132144.126,132144.126,83383.3805,105563.4,105563.4,195704.53734,69817.44374999999,103778.0275,181008.1875,51371.847499999996,65335.33625,116623.158,116623.158,116623.158,116623.158,317393.95599999995,317393.95599999995 +5630400.0,110260.02600000001,107145.76800000001,312865.64256,71125.36232999999,71125.36232999999,71125.36232999999,40409.6525,171306.16248,574891.75808,220370.80758,335803.13536,135727.449,135727.449,135727.449,88086.78550000001,110260.02600000001,110260.02600000001,199204.92826,75235.47705,111831.49922,195054.9405,55358.44978,70405.54519,128694.291,128694.291,128694.291,128694.291,331515.14484,331515.14484 +5634000.0,125845.46100000001,116060.409,338896.39428,87987.52699000001,87987.52699000001,87987.52699000001,61636.575000000004,185725.77656000003,589160.9542400001,239701.60746000003,365259.59232000005,163719.609,163719.609,163719.609,108389.491,125845.46100000001,125845.46100000001,204403.81194999994,88224.5034,131138.64456,228730.19400000002,64915.807440000004,82560.70812000001,163408.359,163408.359,163408.359,163408.359,378375.35274,378375.35274 +5637600.0,239339.811,153897.651,449381.14092000003,195010.37479000003,195010.37479000003,195010.37479000003,142645.538,639594.80856,654502.67648,441361.83546000003,672551.36832,235990.11899999998,235990.11899999998,235990.11899999998,259620.6655,239339.811,239339.811,417396.889,146701.3032,218059.71487999998,380336.712,107943.18112000001,137283.44176000002,274053.936,274053.936,274053.936,274053.936,719615.0317399999,719615.0317399999 +5641200.0,924707.145,400142.88,1168417.2096,1359461.62385,1359461.62385,1359461.62385,1080724.5435,2853313.0633599996,2589331.2761600004,2217716.10942,3379376.92864,779282.601,779282.601,779282.601,1055156.7565,924707.145,924707.145,2145167.12371,1068556.3902,1588323.32568,2770331.382,786246.43032,999957.7083600002,1145263.875,1145263.875,1145263.875,1145263.875,2780286.1493,2780286.1493 +5644800.0,595621.923,880109.955,2569921.0686,1039591.08088,1039591.08088,1039591.08088,1341794.3035000002,3007156.7556800004,1696066.3142400002,2060321.05398,3139536.84416,802218.459,802218.459,802218.459,960341.4135,595621.923,595621.923,1350832.4394499997,1359086.0319,2020172.32396,3523556.379,1000018.8580400001,1271836.06442,915530.226,915530.226,915530.226,915530.226,1790836.58182,1790836.58182 +5648400.0,1474034.901,1200841.092,3506455.98864,537415.33967,537415.33967,537415.33967,715705.5044999999,2494799.09584,3900869.68896,1933803.9567,2946748.8864,1191864.543,1191864.543,1191864.543,661998.26,1474034.901,1474034.901,855572.1266300001,803274.7725,1194003.489,2082564.225,591051.561,751706.5155000001,1610319.6209999998,1610319.6209999998,1610319.6209999998,1610319.6209999998,4431931.60234,4431931.60234 +5652000.0,858678.684,642997.635,1877553.0942000002,320086.67625,320086.67625,320086.67625,285014.69850000006,981451.08128,4802317.07456,458381.21469,698485.6604800001,800580.054,800580.054,800580.054,808135.496,858678.684,858678.684,844233.8358999998,1413970.3237499997,2101753.4195,3665848.9875,1040402.8555,1323196.92025,392519.277,392519.277,392519.277,392519.277,2581760.57656,2581760.57656 +5655600.0,410254.88700000005,321994.06200000003,940222.66104,137482.91909,137482.91909,137482.91909,217768.9185,676929.584,1074486.9856,392248.23645,597711.5984,252047.56200000003,252047.56200000003,252047.56200000003,202657.03499999997,410254.88700000005,410254.88700000005,340320.6842099999,242824.8456,360939.64703999995,629545.896,178671.12096,227236.09008,271829.628,271829.628,271829.628,271829.628,1233499.6935800002,1233499.6935800002 +5659200.0,520449.05999999994,964255.3859999999,2815625.72712,236606.39343,236606.39343,236606.39343,630479.997,1200682.1525599998,1766538.3916800001,854556.65169,1302181.56448,443284.99199999997,443284.99199999997,443284.99199999997,747719.0665,520449.05999999994,520449.05999999994,476195.34872,491823.5031,731056.17004,1275097.971,361884.94796,460249.64858000004,490351.13700000005,490351.13700000005,490351.13700000005,490351.13700000005,1564816.8403999999,1564816.8403999999 +5662800.0,357048.708,274357.81500000006,801124.8198,199213.20738,199213.20738,199213.20738,419460.50299999997,732434.40984,954367.8361600001,463621.45074,706470.78208,301837.092,301837.092,301837.092,233876.07950000002,357048.708,357048.708,326065.38341,289268.74305,429974.77361999993,749956.0005,212844.65537999998,270698.40398999996,294482.604,294482.604,294482.604,294482.604,1073526.44872,1073526.44872 +5666400.0,78950.87700000001,26092.380000000005,76189.74960000001,64643.264619999994,64643.264619999994,64643.264619999994,51894.41249999999,142262.20144,87818.75776000001,49805.96985,75894.81120000001,49701.405,49701.405,49701.405,21202.433,78950.87700000001,78950.87700000001,63953.278999999995,22648.5882,33665.30888,58718.562,16664.88712,21194.60476,31742.024999999998,31742.024999999998,31742.024999999998,31742.024999999998,237378.97018,237378.97018 +5670000.0,302662.26900000003,174626.96099999998,509910.72611999995,501950.66614000004,501950.66614000004,501950.66614000004,427442.848,614929.4284,225963.54304,556406.51871,847857.55232,176519.952,176519.952,176519.952,533637.566,302662.26900000003,302662.26900000003,521595.9719099999,325542.20355,483892.36181999993,843998.3055,239534.75718,304643.19789,133539.843,133539.843,133539.843,133539.843,910004.5554600001,910004.5554600001 +5673600.0,232561.863,569180.154,1662006.04968,302628.15891000006,302628.15891000006,302628.15891000006,355120.353,926881.80008,416924.92928,307772.77776,468987.08992,256009.82999999996,256009.82999999996,256009.82999999996,646724.2215000001,232561.863,232561.863,667725.5371799999,286332.25814999995,425609.9244599999,742342.8914999999,210683.98253999997,267950.43416999996,276337.578,276337.578,276337.578,276337.578,699236.00142,699236.00142 +5677200.0,585485.859,615009.264,1795827.0508799998,454859.99691000005,454859.99691000005,454859.99691000005,634131.1795,1393780.58456,1923249.77728,928005.79032,1414104.06144,563593.7729999999,563593.7729999999,563593.7729999999,760614.8865,585485.859,585485.859,689546.8092499999,673376.4899999999,1000920.1159999998,1745790.9,495472.084,630147.382,598084.581,598084.581,598084.581,598084.581,1760360.81606,1760360.81606 +5680800.0,1835415.5729999999,1522551.4619999998,4445850.26904,2223239.6774500003,2223239.6774500003,2223239.6774500003,2629832.9715,3073264.51616,5112341.00992,3196092.5593800005,4870236.280960001,2021216.9789999998,2021216.9789999998,2021216.9789999998,2241970.0625,1835415.5729999999,1835415.5729999999,1594604.66321,2258535.4456499997,3357131.69946,5855462.2665,1661835.9575399999,2113543.04667,1964744.7510000002,1964744.7510000002,1964744.7510000002,1964744.7510000002,5518482.822819999,5518482.822819999 +5684400.0,1129129.401,726265.4789999999,2120695.19868,988952.8531300001,988952.8531300001,988952.8531300001,1077117.027,1816770.10264,2747581.40928,1556855.34417,2372351.00064,956865.6930000001,956865.6930000001,956865.6930000001,1180170.7995,1129129.401,1129129.401,746133.9580499999,1121304.76065,1666729.54546,2907086.4165000003,825058.81154,1049319.76367,1014927.7679999999,1014927.7679999999,1014927.7679999999,1014927.7679999999,3394915.73234,3394915.73234 +5688000.0,872618.139,730318.5959999999,2132530.30032,971479.8099600001,971479.8099600001,971479.8099600001,944208.4085,1602416.5526399997,2807788.4025600003,1354053.28002,2063319.2838400002,839435.655,839435.655,839435.655,1118545.54,872618.139,872618.139,868494.79769,1082796.72885,1609490.44634,2807250.7785,796724.50666,1013283.85243,941725.281,941725.281,941725.281,941725.281,2623671.87126,2623671.87126 +5691600.0,865499.3879999999,746456.601,2179653.2749199998,975247.00603,975247.00603,975247.00603,964879.8250000001,1613956.52112,2946976.4166400004,1370115.5609400002,2087795.1404800003,864328.5240000001,864328.5240000001,864328.5240000001,1142099.5705,865499.3879999999,865499.3879999999,965104.87424,1119321.0868499998,1663780.97354,2901943.5585,823599.2194599999,1047463.43683,970334.217,970334.217,970334.217,970334.217,2602268.1599199995,2602268.1599199995 +5695200.0,607262.847,523054.581,1527319.37652,638988.09524,638988.09524,638988.09524,541145.024,817776.2103200001,1835692.55296,754679.08614,1149987.17888,454877.496,454877.496,454877.496,569431.513,607262.847,607262.847,687117.62457,521204.32529999997,774728.4045199999,1351270.473,383503.42948,487744.29454,611749.131,611749.131,611749.131,611749.131,1825836.9599799998,1825836.9599799998 +5698800.0,104133.61799999999,94112.23199999999,274807.71744,108600.94553000001,108600.94553000001,108600.94553000001,58882.358499999995,155229.88056,648586.3936000001,157981.80384,240734.17728,137749.935,137749.935,137749.935,100969.946,104133.61799999999,104133.61799999999,181083.28692999997,75287.84759999998,111909.34383999997,195190.71599999996,55396.98415999999,70454.55367999998,115340.331,115340.331,115340.331,115340.331,313095.07811999996,313095.07811999996 +5702400.0,101846.715,94598.364,276227.22288,86337.36991,86337.36991,86337.36991,38456.7015,176775.18232,657188.21952,174910.29213000002,266529.96896,138093.186,138093.186,138093.186,96814.9245,101846.715,101846.715,198437.83907999998,69339.19545,103067.14977999999,179768.2845,51019.95122,64887.790310000004,113644.58699999998,113644.58699999998,113644.58699999998,113644.58699999998,306219.12309999997,306219.12309999997 +5706000.0,103482.24,97712.61300000001,285320.82996,80711.54321999999,80711.54321999999,80711.54321999999,33579.497,188604.73304,653878.1862400001,193805.47431000002,295322.62752000004,143725.005,143725.005,143725.005,96969.0995,103482.24,103482.24,198952.90830999997,67672.35315,100589.52245999998,175446.84149999998,49793.48454,63327.955169999994,120642.426,120642.426,120642.426,120642.426,311136.6016,311136.6016 +5709600.0,115408.644,113043.465,330086.9178,75861.71901,75861.71901,75861.71901,36688.176,189390.93136,652028.86912,213512.18343,325351.89856,151723.218,151723.218,151723.218,95004.7035,115408.644,115408.644,217901.74457999997,76950.6237,114380.92707999998,199501.617,56620.45892,72010.58365999999,124054.79099999998,124054.79099999998,124054.79099999998,124054.79099999998,346995.32296,346995.32296 +5713200.0,119153.106,115634.63399999999,337653.13128,77546.10886000001,77546.10886000001,77546.10886000001,39976.062,191676.14088,659259.4668800001,237916.90797,362540.05024,153395.769,153395.769,153395.769,97084.95999999999,119153.106,119153.106,224432.51245999997,84049.16805000001,124932.34362,217905.25050000002,61843.585380000004,78653.41899,132649.62,132649.62,132649.62,132649.62,358253.67204,358253.67204 +5716800.0,133488.381,126906.81600000002,370567.90272,85979.75936000001,85979.75936000001,85979.75936000001,58615.8055,209723.46368,668412.04928,261150.94677,397944.29984,185747.772,185747.772,185747.772,120325.8175,133488.381,133488.381,227448.9789,94564.16685,140562.04554,245166.3585,69580.54746,88493.38083,180758.63400000002,180758.63400000002,180758.63400000002,180758.63400000002,401355.06554,401355.06554 +5720400.0,163853.751,133494.342,389803.47864,98048.18034,98048.18034,98048.18034,68456.7135,265876.11488,666287.20704,286831.07145,437075.9184,239043.261,239043.261,239043.261,175338.76150000002,163853.751,163853.751,238748.67899999995,111034.8729,165044.42836,287868.189,81699.73364,103906.70822,214429.36499999996,214429.36499999996,214429.36499999996,214429.36499999996,492653.61134,492653.61134 +5724000.0,297861.684,176511.81299999997,515414.49395999993,205444.45064000002,205444.45064000002,205444.45064000002,148183.43399999998,803343.69568,732029.0303999999,509743.39122,776751.83424,296260.614,296260.614,296260.614,297003.6615,297861.684,297861.684,464412.19071,170127.60885,252881.03834,441071.5785,125180.31466,159205.83643000002,331116.576,331116.576,331116.576,331116.576,895570.7965599999,895570.7965599999 +5727600.0,1009555.6079999999,447007.1399999999,1305260.8487999998,1426983.1395599998,1426983.1395599998,1426983.1395599998,1184266.6395,3028537.5972,2906527.9712,2397865.5605099997,3653890.37792,864452.1720000001,864452.1720000001,864452.1720000001,1220276.925,1009555.6079999999,1009555.6079999999,2233460.09939,1204582.3065,1790514.9345999998,3122991.165,886334.6353999999,1127251.0966999999,1249075.5869999998,1249075.5869999998,1249075.5869999998,1249075.5869999998,3035397.1947199996,3035397.1947199996 +5731200.0,633019.158,908886.786,2653949.41512,1123620.74044,1123620.74044,1123620.74044,1428622.9545,3192635.15568,1825271.09056,2194710.67452,3344321.0278399996,841960.728,841960.728,841960.728,1024811.193,633019.158,633019.158,1469870.1414799998,1486718.9549999998,2209888.422,3854456.55,1093931.478,1391275.2689999999,965796.6779999998,965796.6779999998,965796.6779999998,965796.6779999998,1903277.60172,1903277.60172 +5734800.0,1445004.117,1215970.491,3550633.8337199995,525418.6117400001,525418.6117400001,525418.6117400001,758365.524,2443999.73904,3909223.9187200004,1898570.2659,2893059.4528,1195941.81,1195941.81,1195941.81,682928.9355,1445004.117,1445004.117,730850.8324,807341.0615999999,1200047.7014399997,2093106.4559999998,594043.5465599999,755511.75888,1580844.111,1580844.111,1580844.111,1580844.111,4344645.71178,4344645.71178 +5738400.0,818155.5720000002,583914.399,1705030.04508,306352.20891000004,306352.20891000004,306352.20891000004,244659.39400000003,911087.4850399999,4606439.28832,366660.16673999996,558720.25408,747422.103,747422.103,747422.103,736906.282,818155.5720000002,818155.5720000002,697546.3154399999,1370594.2284,2037278.3345599996,3553392.4439999997,1008486.61744,1282605.46312,326840.079,326840.079,326840.079,326840.079,2459921.08648,2459921.08648 +5742000.0,409565.526,305684.622,892599.09624,136452.84279000002,136452.84279000002,136452.84279000002,186749.402,669449.44336,1137578.15808,383682.99459,584659.80128,254904.97499999998,254904.97499999998,254904.97499999998,191123.478,409565.526,409565.526,308848.9456,214897.45905,319427.82802,557141.5605,158122.08098,201101.57279,259891.79700000002,259891.79700000002,259891.79700000002,259891.79700000002,1231427.01484,1231427.01484 +5745600.0,554200.461,1001860.0499999999,2925431.346,234018.11763,234018.11763,234018.11763,656925.2270000001,1294903.4569599999,1969695.4745599998,898318.15185,1368865.7552,487696.74900000007,487696.74900000007,487696.74900000007,801717.4025000001,554200.461,554200.461,524026.65249999997,523362.5298,777936.40232,1356865.818,385091.44168,489763.94764,529473.6300000001,529473.6300000001,529473.6300000001,529473.6300000001,1666296.05274,1666296.05274 +5749200.0,282937.542,198817.689,580547.65188,180608.75305,180608.75305,180608.75305,339552.416,558068.6888799999,605832.9113600001,324821.0259,494965.3728,212334.375,212334.375,212334.375,155723.68699999998,282937.542,282937.542,232908.04991999996,176742.80999999997,262714.00399999996,458222.1,130047.79599999999,165396.35799999998,203640.945,203640.945,203640.945,203640.945,850698.87628,850698.87628 +5752800.0,225381.22499999998,160754.301,469402.55892,75273.19294000001,75273.19294000001,75273.19294000001,131504.6705,478775.21871999995,532800.36736,260539.75374000001,397012.95808,185311.29,185311.29,185311.29,122602.5745,225381.22499999998,225381.22499999998,217635.17918999997,136231.7292,202497.53327999997,353193.372,100239.64272,127485.98856,177104.283,177104.283,177104.283,177104.283,677646.2165,677646.2165 +5756400.0,377074.077,264331.509,771848.0062800001,547353.53893,547353.53893,547353.53893,541489.6025,777168.16744,484185.06752,685232.76654,1044164.2156800001,245935.35900000003,245935.35900000003,245935.35900000003,650070.4,377074.077,377074.077,610322.85769,427863.5298,635984.80232,1109275.818,314823.04168,400395.74764,212059.73100000003,212059.73100000003,212059.73100000003,212059.73100000003,1133736.05818,1133736.05818 +5760000.0,303921.44999999995,678063.522,1979945.48424,321371.68514,321371.68514,321371.68514,460604.27699999994,1085558.77568,754739.58336,457296.20832000003,696832.31744,352488.594,352488.594,352488.594,767657.0335,303921.44999999995,303921.44999999995,761935.8614399999,423407.39174999995,629361.1106999998,1097722.8675,311544.2043,396225.68265,377534.295,377534.295,377534.295,377534.295,913790.4929999999,913790.4929999999 +5763600.0,636885.4199999999,672423.558,1963476.7893599998,516497.70898000005,516497.70898000005,516497.70898000005,747212.6585,1553361.00816,2303719.6889600004,1067628.5613000002,1626862.5696000003,660463.215,660463.215,660463.215,892885.9940000001,636885.4199999999,636885.4199999999,728053.17286,805744.5313500001,1197674.58734,2088967.3035000002,592868.8156600001,754017.7219300001,675113.841,675113.841,675113.841,675113.841,1914902.1627999998,1914902.1627999998 +5767200.0,1881094.809,1605255.2759999998,4687345.40592,2431693.1035100003,2431693.1035100003,2431693.1035100003,2693118.9845000003,3143103.7095999997,5341922.729600001,3295577.1464700005,5021831.842240001,2073887.6130000001,2073887.6130000001,2073887.6130000001,2391995.417,1881094.809,1881094.809,1730790.6886399998,2378955.7845,3536126.8697999995,6167663.145,1750441.5402,2226232.6971,2067652.197,2067652.197,2067652.197,2067652.197,5655825.05906,5655825.05906 +5770800.0,1206503.3399999999,759919.5899999999,2218965.2027999996,1068608.6180000002,1068608.6180000002,1068608.6180000002,1162794.213,1961186.4056000002,2942778.0966399997,1649310.6487200002,2513235.27424,1039128.6000000001,1039128.6000000001,1039128.6000000001,1246454.902,1206503.3399999999,1206503.3399999999,803503.21766,1179125.0554499999,1752674.77378,3056990.8845,867603.12722,1103428.13831,1089709.077,1089709.077,1089709.077,1089709.077,3627553.3755999994,3627553.3755999994 +5774400.0,906183.648,743767.734,2171801.78328,988532.6215600001,988532.6215600001,988532.6215600001,960655.1500000001,1632706.1564799997,2881547.3932800004,1380978.15849,2104347.67008,861081.6600000001,861081.6600000001,861081.6600000001,1141551.6805,906183.648,906183.648,963991.8113800001,1114217.73045,1656195.24378,2888712.6345,819844.15722,1042687.70331,966306.159,966306.159,966306.159,966306.159,2724592.16832,2724592.16832 +5778000.0,881486.4299999999,760587.3269999999,2220914.99484,996157.84796,996157.84796,996157.84796,985236.7350000001,1641873.1343999999,3060866.9836800005,1395027.0780600002,2125755.54752,880117.89,880117.89,880117.89,1164938.0329999998,881486.4299999999,881486.4299999999,1013248.8953599998,1141808.5133999998,1697206.7285599997,2960244.2939999998,840145.52344,1068507.22612,990413.0430000001,990413.0430000001,990413.0430000001,990413.0430000001,2650335.8662,2650335.8662 +5781600.0,627180.936,541360.005,1580771.2145999998,657473.0991400001,657473.0991400001,657473.0991400001,556563.497,842910.09864,1901112.3936,777984.92772,1185500.8422400001,469623.375,469623.375,469623.375,589085.5599999999,627180.936,627180.936,724216.7120499999,538978.79115,801148.7216599999,1397352.4215,396581.92533999996,504377.68357,631277.337,631277.337,631277.337,631277.337,1885724.01424,1885724.01424 +5785200.0,107795.709,97731.132,285374.90544,111247.12929000001,111247.12929000001,111247.12929000001,59897.4985,166736.0588,674642.70976,170744.02107,260181.36544,143009.304,143009.304,143009.304,105237.279,107795.709,107795.709,190568.1596,77974.2126,115902.40984,202155.366,57373.61816,72968.46068,119209.33499999999,119209.33499999999,119209.33499999999,119209.33499999999,324105.76505999995,324105.76505999995 +5788800.0,103660.818,96120.14700000001,280670.82924,87591.20667000001,87591.20667000001,87591.20667000001,39006.8805,180976.32064,668906.0774400001,179100.79047,272915.49024,140222.103,140222.103,140222.103,98589.5715,103660.818,103660.818,201805.07958,70653.68775,105021.03709999999,183176.2275,51987.1579,66117.89545,116469.58499999999,116469.58499999999,116469.58499999999,116469.58499999999,311673.52612,311673.52612 +5792400.0,106073.319,99792.74099999998,291394.80371999997,81411.72567000001,81411.72567000001,81411.72567000001,33934.782,190637.67792,659649.1014400001,200687.54328,305809.58976,146417.898,146417.898,146417.898,97832.0735,106073.319,106073.319,201801.30372999999,68611.85595,101986.01797999999,177882.5895,50484.77302,64207.144210000006,122518.39499999999,122518.39499999999,122518.39499999999,122518.39499999999,318927.11246,318927.11246 +5796000.0,115968.76499999998,113006.001,329977.52292,75538.1011,75538.1011,75538.1011,37710.28799999999,188121.42632,646611.95648,214696.90515,327157.1888,150208.866,150208.866,150208.866,94378.564,115968.76499999998,115968.76499999998,217757.81494999997,77471.54280000001,115155.23152,200852.14800000002,57003.75248,72498.06104,124444.62,124444.62,124444.62,124444.62,348679.4201,348679.4201 +5799600.0,116167.185,111222.216,324768.87072,74487.04801999999,74487.04801999999,74487.04801999999,38952.403,184773.26088,627053.0784,230637.18026999998,351447.13184,146185.40399999998,146185.40399999998,146185.40399999998,93308.369,116167.185,116167.185,215270.39078999998,80771.23574999999,120059.96029999999,209406.9075,59431.674699999996,75585.92185,130008.06600000002,130008.06600000002,130008.06600000002,130008.06600000002,349276.00289999996,349276.00289999996 +5803200.0,129191.90699999999,122295.09899999999,357101.68908,82050.04819,82050.04819,82050.04819,56093.243500000004,198660.36039999998,629001.7081600002,249476.2137,380154.2304,172742.805,172742.805,172742.805,112473.774,129191.90699999999,129191.90699999999,216146.11381999997,89777.28555,133446.73062,232755.9255,66058.34838,84013.80549,173057.796,173057.796,173057.796,173057.796,388437.00038,388437.00038 +5806800.0,158144.754,128989.533,376649.43636,94983.72675000002,94983.72675000002,94983.72675000002,66489.8465,240021.27272,637485.1270399999,275478.43659,419776.66528,225851.304,225851.304,225851.304,167593.71649999998,158144.754,158144.754,228664.67753999998,106564.96485,158400.26874,276279.5385,78410.76426000001,99723.75723000002,205084.00499999998,205084.00499999998,205084.00499999998,205084.00499999998,475488.56035999994,475488.56035999994 +5810400.0,204910.908,145822.479,425801.63868000003,187829.75519000003,187829.75519000003,187829.75519000003,145212.4275,386204.67208000005,659953.7632,344029.28868000006,524235.10656000004,266226.78,266226.78,266226.78,204030.946,204910.908,204910.908,258303.24818999998,142394.33475,211657.7519,369170.4975,104774.10310000001,133252.97005,249157.827,249157.827,249157.827,249157.827,616098.79672,616098.79672 +5814000.0,943611.1140000001,947043.5190000001,2765367.07548,956530.41099,956530.41099,956530.41099,1037731.2399999999,1447599.33232,1218054.75456,1194482.63802,1820164.01984,548345.0669999999,548345.0669999999,548345.0669999999,1563498.6184999999,943611.1140000001,943611.1140000001,1751309.4944799999,519902.59859999997,772793.4922399999,1347895.626,382545.61576,486526.13548,1262894.22,1262894.22,1262894.22,1262894.22,2837124.0827599997,2837124.0827599997 +5817600.0,1488430.5269999998,1446477.465,4223714.1978,1921208.99047,1921208.99047,1921208.99047,1438627.2285000002,2253943.07688,2331086.42496,2210829.65481,3368883.28352,855086.757,855086.757,855086.757,1120875.6825,1488430.5269999998,1488430.5269999998,1658209.1354399996,1174123.27305,1745240.02562,3044023.3005000004,863922.80338,1098747.45799,1628799.054,1628799.054,1628799.054,1628799.054,4475214.45118,4475214.45118 +5821200.0,1610171.37,1385453.682,4045524.7514400003,1516419.9040100002,1516419.9040100002,1516419.9040100002,1468854.4325,2640888.9384,6066906.87296,1996683.1136699999,3042564.7446399997,1749579.558,1749579.558,1749579.558,1565816.4585,1610171.37,1610171.37,1113181.52751,2309357.9196,3432675.22864,5987224.2360000005,1699231.2593600003,2161102.84328,1161367.368,1161367.368,1161367.368,1161367.368,4841248.5858000005,4841248.5858000005 +5824800.0,1133640.129,803672.841,2346724.6957199997,912071.50551,912071.50551,912071.50551,1816320.9364999998,2345762.3133599996,3942325.8944,2280348.3616199996,3474816.55104,1505941.251,1505941.251,1505941.251,1727038.019,1133640.129,1133640.129,1223334.06286,2027579.9350499997,3013834.8664199994,5256688.7205,1491898.32258,1897414.3095899997,1304185.857,1304185.857,1304185.857,1304185.857,3408477.9878599998,3408477.9878599998 +5828400.0,807537.3839999998,562281.15,1641860.958,827373.6944000002,827373.6944000002,827373.6944000002,1185782.6575000002,2229027.70384,3471612.8454400003,1517154.1545300002,2311853.94976,690041.91,690041.91,690041.91,1330210.6125,807537.3839999998,807537.3839999998,473382.65312,1167070.3722,1734756.45448,3025738.0020000003,858733.2615200001,1092147.33596,838496.5380000001,838496.5380000001,838496.5380000001,838496.5380000001,2427995.73456,2427995.73456 +5832000.0,699817.845,577301.8319999999,1685721.3494399998,515214.0554,515214.0554,515214.0554,826757.5854999999,1663502.1700799998,1912193.33632,1237290.3774,1885394.8608000001,651718.296,651718.296,651718.296,842240.1925,699817.845,699817.845,531671.5558699999,824530.4928,1225598.41152,2137671.648,606691.5724800001,771597.67104,715244.682,715244.682,715244.682,715244.682,2104118.9872999997,2104118.9872999997 +5835600.0,430126.746,330185.088,964140.45696,237423.82444,237423.82444,237423.82444,412578.9325,820643.6795199999,1131025.42784,646582.89885,985269.1792,383640.561,383640.561,383640.561,472963.1095,430126.746,430126.746,303137.36401,425240.1908999999,632085.41956,1102474.569,312892.78244,397940.82061999995,419747.196,419747.196,419747.196,419747.196,1293247.7496399998,1293247.7496399998 +5839200.0,339177.55199999997,245511.024,716892.19008,120914.35202000002,120914.35202000002,120914.35202000002,300549.123,658644.83016,799416.9216,485769.16458000004,740219.6793600001,300271.374,300271.374,300271.374,324336.6805,339177.55199999997,339177.55199999997,203781.63844999997,289722.1203,430648.68252,751131.423,213178.25148,271122.67554,301929.669,301929.669,301929.669,301929.669,1019793.8396799999,1019793.8396799999 +5842800.0,299668.81200000003,205925.619,601302.8074800001,80552.65041999999,80552.65041999999,80552.65041999999,240340.982,582753.8374399999,660634.86208,407334.56756999996,620700.29344,262071.72000000003,262071.72000000003,262071.72000000003,262592.51550000004,299668.81200000003,299668.81200000003,157243.88796999998,221137.11179999998,328702.57112,573318.438,162713.23288,206940.65524,250268.421,250268.421,250268.421,250268.421,901004.22808,901004.22808 +5846400.0,82361.199,17562.027000000002,51281.118839999996,60484.371750000006,60484.371750000006,60484.371750000006,47907.849500000004,124794.86072,67657.54112,68892.2703,104978.6976,32215.125,32215.125,32215.125,22164.5795,82361.199,82361.199,13030.32848,18335.5326,27254.297839999996,47536.56599999999,13491.330159999998,17158.43668,38504.505,38504.505,38504.505,38504.505,247632.67166,247632.67166 +5850000.0,711936.0449999999,587638.1760000001,1715903.4739200003,269889.41672,269889.41672,269889.41672,707757.9774999999,1421817.63616,1996211.7536000002,1086872.04444,1656185.9724800002,693757.986,693757.986,693757.986,817319.6884999999,711936.0449999999,711936.0449999999,525823.24041,752019.9893999998,1117817.3669599998,1949681.4539999997,553338.1650399999,703742.1629199999,708530.34,708530.34,708530.34,708530.34,2140554.3753,2140554.3753 +5853600.0,883535.6160000002,763790.0280000002,2230266.8817600003,831959.73377,831959.73377,831959.73377,1020283.9500000001,1681273.91496,2893855.73056,1435142.2180199998,2186883.37984,855553.2690000001,855553.2690000001,855553.2690000001,1144185.0315,883535.6160000002,883535.6160000002,798787.10405,1114738.98165,1656970.04186,2890064.0265,820227.6951400001,1043175.4914700001,948992.274,948992.274,948992.274,948992.274,2656497.08544,2656497.08544 +5857200.0,901800.1020000002,772409.7180000001,2255436.3765600002,995995.53636,995995.53636,995995.53636,1029858.9349999999,1693623.2548800001,2961319.71648,1453609.66023,2215024.2441600002,864038.0190000001,864038.0190000001,864038.0190000001,1151832.101,901800.1020000002,901800.1020000002,857515.65042,1120736.1689999998,1665884.3795999999,2905612.29,824640.4404,1048787.6742,965312.2710000002,965312.2710000002,965312.2710000002,965312.2710000002,2711412.3066800004,2711412.3066800004 +5860800.0,880776.0389999999,773241.585,2257865.4282,990172.1722200001,990172.1722200001,990172.1722200001,993121.7309999999,1655391.51384,2885617.1008,1414016.7591900004,2154692.2044800003,844353.927,844353.927,844353.927,1116871.4725000001,880776.0389999999,880776.0389999999,939668.0021299998,1098471.55725,1632789.8209000002,2847889.2225000006,808258.0841000001,1027952.3955500001,957825.6299999999,957825.6299999999,957825.6299999999,957825.6299999999,2648199.9572599996,2648199.9572599996 +5864400.0,812232.411,697792.458,2037553.97736,795672.03298,795672.03298,795672.03298,746797.0195,1381252.17272,2121221.6153599997,1137478.09896,1733299.96032,646035.324,646035.324,646035.324,864383.8910000001,812232.411,812232.411,960630.69882,864608.7906,1285171.58504,2241578.346,636181.28296,809103.04108,824858.145,824858.145,824858.145,824858.145,2442112.11574,2442112.11574 +5868000.0,364079.961,256136.25,747917.85,395203.36141,395203.36141,395203.36141,309358.224,658619.59552,845059.6640000001,505539.82289999997,770346.3968,272565.59400000004,272565.59400000004,272565.59400000004,374382.967,364079.961,364079.961,582097.79212,190083.9717,282544.57028,492810.29699999996,139864.25572,177881.05006,437882.83200000005,437882.83200000005,437882.83200000005,437882.83200000005,1094667.08274,1094667.08274 +5871600.0,126828.723,94043.106,274605.86951999995,108176.07416,108176.07416,108176.07416,58741.291,250567.7112,638555.5232,222231.86454000004,338639.0316800001,155141.28900000002,155141.28900000002,155141.28900000002,102540.06,126828.723,126828.723,196552.98285999996,77300.09415,114900.38686000001,200407.65150000004,56877.60014000001,72337.61897000001,125289.61499999999,125289.61499999999,125289.61499999999,125289.61499999999,381331.69382,381331.69382 +5875200.0,122256.50699999998,94244.18400000001,275193.01728000003,84993.90768,84993.90768,84993.90768,37915.6435,252819.05456,635115.4848000001,228163.45713000002,347677.64896,152583.153,152583.153,152583.153,97623.7535,122256.50699999998,122256.50699999998,194582.69142,70255.73475,104429.5119,182144.4975,51694.343100000006,65745.49005000001,121323.255,121323.255,121323.255,121323.255,367584.56437999994,367584.56437999994 +5878800.0,131518.962,111041.64300000001,324241.59756,82304.96857,82304.96857,82304.96857,40996.3365,275529.62903999997,654153.73312,237696.51506999996,362204.21343999996,164422.947,164422.947,164422.947,98543.84049999999,131518.962,131518.962,200539.73692999996,79797.36465,118612.37905999999,206882.0565,58715.09794,74674.57087,128552.751,128552.751,128552.751,128552.751,395433.67908000003,395433.67908000003 +5882400.0,136399.197,114786.47399999999,335176.5040799999,77327.24461000001,77327.24461000001,77327.24461000001,39923.9155,274510.94616,663991.4508800001,244170.48768000002,372069.31456,174557.118,174557.118,174557.118,97283.84749999999,136399.197,136399.197,221127.49893,82378.7415,122449.38859999999,213574.515,60614.4814,77090.2297,132632.95799999998,132632.95799999998,132632.95799999998,132632.95799999998,410106.91897999996,410106.91897999996 +5886000.0,142606.935,127312.48499999999,371752.45619999996,90056.05158000001,90056.05158000001,90056.05158000001,52757.1275,279443.76055999997,686615.4752000001,274475.15382,418247.85344,199925.92500000002,199925.92500000002,199925.92500000002,102011.18549999999,142606.935,142606.935,229670.74195,90814.72545,134988.80177999998,235445.5845,66821.69922,84984.64431,161847.52500000002,161847.52500000002,161847.52500000002,161847.52500000002,428771.51790000004,428771.51790000004 +5889600.0,165099.67200000002,151999.94100000002,443839.82772,117113.76567,117113.76567,117113.76567,61363.3825,301074.15112,725620.56896,295762.79922,450686.17024,255896.91599999997,255896.91599999997,255896.91599999997,133608.9685,165099.67200000002,165099.67200000002,239613.14181999996,107352.0459,159570.20156,278320.119,78989.90044,100460.30962,205493.592,205493.592,205493.592,205493.592,496399.68048,496399.68048 +5893200.0,198677.17500000002,169151.193,493921.48355999996,131281.28508,131281.28508,131281.28508,72199.925,361348.98968,746856.7296000001,327569.42147999996,499153.40416,300694.17,300694.17,300694.17,196970.5535,198677.17500000002,198677.17500000002,262110.57001999996,124783.28639999998,185480.34175999998,323512.224,91815.85024,116772.50752,250028.07299999997,250028.07299999997,250028.07299999997,250028.07299999997,597356.0395000001,597356.0395000001 +5896800.0,266280.252,193172.376,564063.33792,227204.60389,227204.60389,227204.60389,152214.307,501391.82759999996,800914.9996800002,426349.34055,649675.1856000001,345023.577,345023.577,345023.577,233942.8525,266280.252,266280.252,299019.14783,166222.1979,247075.95836000002,430946.439,122306.70364,155551.14322000003,324432.519,324432.519,324432.519,324432.519,800615.95768,800615.95768 +5900400.0,1012015.8929999999,1027056.111,2999003.84412,1006106.4135100001,1006106.4135100001,1006106.4135100001,1060119.2455,1564960.61472,1460728.0083200003,1277761.85061,1947065.6771200001,634881.8010000001,634881.8010000001,634881.8010000001,1599052.1679999998,1012015.8929999999,1012015.8929999999,1809050.00432,547411.5877500001,813683.3971000001,1419215.2275,402786.7979,512269.11545000004,1336805.2200000002,1336805.2200000002,1336805.2200000002,1336805.2200000002,3042794.45162,3042794.45162 +5904000.0,1567843.746,1500026.814,4380078.29688,2001633.2975100002,2001633.2975100002,2001633.2975100002,1489729.1885000002,2350568.68008,2439115.34848,2366452.2886200002,3606022.5350400005,908350.293,908350.293,908350.293,1262681.3045,1567843.746,1567843.746,1795771.77806,1256188.7835,1867223.8214,3256785.735,924306.8086,1175544.5653000001,1705413.264,1705413.264,1705413.264,1705413.264,4713983.529639999,4713983.529639999 +5907600.0,1739721.396,1594588.0919999997,4656197.228639999,1667977.2819600003,1667977.2819600003,1667977.2819600003,1655684.604,2930340.76536,6944654.387200001,2163648.85758,3296988.7353600003,1883818.545,1883818.545,1883818.545,1717113.412,1739721.396,1739721.396,1199230.79211,2554961.0773499995,3797744.6137399995,6623973.1635,1879946.6692599999,2390938.8847299996,1277030.994,1277030.994,1277030.994,1277030.994,5230762.330639999,5230762.330639999 +5911200.0,1299639.114,983459.1479999998,2871700.7121599996,1083115.0992200002,1083115.0992200002,1083115.0992200002,1966269.1615,2599358.54344,4505912.288,2536825.3077300005,3865638.5641600005,1709302.926,1709302.926,1709302.926,1933281.0909999998,1299639.114,1299639.114,1374408.73622,2275360.0488,3382140.12192,5899081.608,1674215.5420799998,2129287.55184,1468950.393,1468950.393,1468950.393,1468950.393,3907581.6027599997,3907581.6027599997 +5914800.0,966975.798,697936.2779999999,2037973.9317599998,1059409.32724,1059409.32724,1059409.32724,1478427.6815000002,2634785.7529599997,4610683.783040001,1844754.6957000003,2811054.7744000005,854784.048,854784.048,854784.048,1623496.9764999999,966975.798,966975.798,628522.74329,1436755.3686,2135621.56024,3724921.3260000004,1057168.14776,1344519.22148,1044198.36,1044198.36,1044198.36,1044198.36,2907373.89932,2907373.89932 +5918400.0,746991.9180000001,625643.796,1826879.88432,618269.47534,618269.47534,618269.47534,944942.0819999999,1855015.59104,2059072.9337600002,1364302.4675699999,2078937.09344,701723.9820000001,701723.9820000001,701723.9820000001,949338.2465,746991.9180000001,746991.9180000001,551471.97859,919758.1104,1367146.62336,2384558.0640000002,676760.28864,860711.91072,754035.327,754035.327,754035.327,754035.327,2245955.70012,2245955.70012 +5922000.0,481375.062,369846.729,1079952.44868,282356.70584000007,282356.70584000007,282356.70584000007,464926.48999999993,952210.0552800001,1324210.6643200002,755305.54197,1150941.7782400001,434828.8169999999,434828.8169999999,434828.8169999999,560664.426,481375.062,481375.062,348957.90501,490297.80735,728788.34574,1271142.4635,360762.33726,458821.89873,486693.6269999999,486693.6269999999,486693.6269999999,486693.6269999999,1447334.3530799998,1447334.3530799998 +5925600.0,426678.792,321954.579,940107.3706799999,173305.49621,173305.49621,173305.49621,398644.3265,850418.4289599999,1150321.8476800001,635027.48127,967660.92384,397820.481,397820.481,397820.481,461181.42350000003,426678.792,426678.792,285190.05151,412248.70214999997,612774.6140599999,1068792.9315,303333.61294,385783.35337,404618.217,404618.217,404618.217,404618.217,1282880.9012799999,1282880.9012799999 +5929200.0,413103.012,305414.442,891810.1706399999,124396.81496000002,124396.81496000002,124396.81496000002,366968.301,828469.7992800002,1099274.36736,600386.8226999999,914875.1584,389981.37,389981.37,389981.37,438655.30449999997,413103.012,413103.012,259376.31109,380791.9431,566016.66604,987238.371,280187.65196,356346.04058000003,383516.46599999996,383516.46599999996,383516.46599999996,383516.46599999996,1242063.0560799998,1242063.0560799998 +5932800.0,472212.048,363821.889,1062359.91588,196586.76719,196586.76719,196586.76719,447840.61699999997,938813.1069599999,1329822.5030400003,702945.37152,1071154.8518400001,449724.05999999994,449724.05999999994,449724.05999999994,529289.1625,472212.048,472212.048,330871.61237,476090.01855,707669.6078199999,1234307.4555,350308.21118,445526.21489,456513.08400000003,456513.08400000003,456513.08400000003,456513.08400000003,1419784.22432,1419784.22432 +5936400.0,957526.5210000002,845018.0849999998,2467452.8081999994,915947.8752600001,915947.8752600001,915947.8752600001,1056463.2015,1885276.3803199998,3250865.38112,1549863.9867899998,2361697.50368,960908.6160000002,960908.6160000002,960908.6160000002,1246510.79,957526.5210000002,957526.5210000002,868498.28494,1201489.60905,1785917.88802,3114973.0605,884059.02098,1124356.94279,1035080.1600000001,1035080.1600000001,1035080.1600000001,1035080.1600000001,2878963.0731400005,2878963.0731400005 +5940000.0,1024362.3570000001,916485.7109999999,2676138.2761199996,1148590.95153,1148590.95153,1148590.95153,1163107.8235,2050720.80048,3565099.18016,1666572.5953799998,2539539.1929599997,1033879.923,1033879.923,1033879.923,1332388.2285,1024362.3570000001,1024362.3570000001,1049843.33207,1311531.8958,1949486.91672,3400267.878,965028.40728,1227334.7864400002,1126034.9130000002,1126034.9130000002,1126034.9130000002,1126034.9130000002,3079916.15338,3079916.15338 +5943600.0,1027135.395,918320.934,2681497.12728,1177423.27516,1177423.27516,1177423.27516,1166500.076,2055860.65456,3625485.2256,1689667.0181999998,2574730.6944,1039256.5319999999,1039256.5319999999,1039256.5319999999,1336023.3424999998,1027135.395,1027135.395,1171287.4145699998,1315985.73345,1956107.1889799999,3411814.8645,968305.5520200001,1231502.6987100001,1139507.0489999999,1139507.0489999999,1139507.0489999999,1139507.0489999999,3088253.7543,3088253.7543 +5947200.0,1011490.122,904897.899,2642301.86508,1151468.527,1151468.527,1151468.527,1137437.4585,2016219.1784,3563518.4032000005,1661102.62521,2531204.00032,1021502.1659999999,1021502.1659999999,1021502.1659999999,1309739.6375,1011490.122,1011490.122,1189616.41019,1292099.0724,1920601.58416,3349886.484,950729.68784,1209149.50232,1121284.563,1121284.563,1121284.563,1121284.563,3041213.63348,3041213.63348 +5950800.0,914053.9140000001,778051.7069999999,2271910.98444,891909.42148,891909.42148,891909.42148,828552.3995,1590404.96912,2441419.76512,1324845.95607,2018812.88544,754785.8430000001,754785.8430000001,754785.8430000001,980269.2969999999,914053.9140000001,914053.9140000001,1136241.7545699999,975083.56875,1449383.4774999998,2527994.4375,717468.8975,912485.61125,932836.2,932836.2,932836.2,932836.2,2748255.43476,2748255.43476 +5954400.0,407331.80700000003,289681.377,845869.62084,464812.51850000006,464812.51850000006,464812.51850000006,339158.8025,763971.75888,979818.21248,619028.67621,943281.7923199999,331756.96200000006,331756.96200000006,331756.96200000006,421264.89999999997,407331.80700000003,407331.80700000003,649561.6063299999,214839.39015,319341.51326,556991.0115,158079.35374,201047.23176999998,493382.217,493382.217,493382.217,493382.217,1224710.9663799999,1224710.9663799999 +5958000.0,143947.575,105461.817,307948.50564,147851.10164,147851.10164,147851.10164,62344.334500000004,302628.11671999993,734752.5120000001,274257.12279,417915.61568,198952.479,198952.479,198952.479,115844.81300000001,143947.575,143947.575,222362.23074,88230.23009999999,131147.15683999998,228745.04099999997,64920.02116,82566.06718,148558.608,148558.608,148558.608,148558.608,432802.37549999997,432802.37549999997 +5961600.0,143996.478,115032.42899999999,335894.69268,127924.89038999999,127924.89038999999,127924.89038999999,45155.9045,324185.95696,751242.97984,270722.67852,412529.79584000004,206582.343,206582.343,206582.343,112566.559,143996.478,143996.478,224941.58842999997,84505.49775,125610.6411,219088.3275,62179.3539,79080.45345,147131.98500000002,147131.98500000002,147131.98500000002,147131.98500000002,432949.41052,432949.41052 +5965200.0,155091.468,147007.95299999998,429263.22276,125360.37932000001,125360.37932000001,125360.37932000001,50249.167499999996,335982.4124,778528.8339200001,281973.16371000005,429673.39232000004,209797.566,209797.566,209797.566,112515.40999999999,155091.468,155091.468,237571.14289999998,97101.09495,144332.98558,251743.57950000002,71447.22542,90867.44441000001,152082.81,152082.81,152082.81,152082.81,466308.34712,466308.34712 +5968800.0,161469.363,161149.881,470557.65252,126294.79027000001,126294.79027000001,126294.79027000001,56724.01,335237.88831999997,810380.46912,302962.77879,461657.56768000004,230115.84,230115.84,230115.84,112207.1265,161469.363,161469.363,260871.49958999996,102131.9928,151811.01152,264786.64800000004,75148.97248000001,95575.37104000001,188326.824,188326.824,188326.824,188326.824,485484.55142,485484.55142 +5972400.0,182556.996,171646.815,501208.6998,135028.29395000002,135028.29395000002,135028.29395000002,65094.20749999999,350085.22984,828050.98176,333082.24824,507553.90207999997,292198.971,292198.971,292198.971,135969.883,182556.996,182556.996,267858.47192,118403.2161,175996.87923999998,306971.30100000004,87121.37876,110802.02198,237139.827,237139.827,237139.827,237139.827,548888.03464,548888.03464 +5976000.0,223686.46200000003,197584.173,576945.78516,145639.39445000002,145639.39445000002,145639.39445000002,73419.108,430158.7896799999,862935.40608,373089.38456999994,568517.15744,352776.183,352776.183,352776.183,223821.05200000003,223686.46200000003,223686.46200000003,298781.39915,141921.40814999997,210954.78445999997,367944.39149999997,104426.12254,132810.40417,292049.232,292049.232,292049.232,292049.232,672550.6290800001,672550.6290800001 +5979600.0,274742.634,213051.40499999997,622110.1026,158454.78253000003,158454.78253000003,158454.78253000003,81081.497,536362.3199199999,898095.9321600002,434051.37930000003,661411.6256,381697.149,381697.149,381697.149,231507.8605,274742.634,274742.634,319756.84715,156277.8522,232294.48648,405164.802,114989.62952000002,146245.19996000003,352078.644,352078.644,352078.644,352078.644,826059.51956,826059.51956 +5983200.0,439521.033,251068.719,733120.65948,262166.8603400001,262166.8603400001,262166.8603400001,159340.139,1000458.3599199998,1078004.7942400002,673706.8023000001,1026600.8416000003,421212.789,421212.789,421212.789,355215.4445,439521.033,439521.033,536412.97489,227151.6696,337642.72864,588911.736,167138.75936,212569.09328,469662.591,469662.591,469662.591,469662.591,1321493.2392199999,1321493.2392199999 +5986800.0,1147043.0520000001,561987.408,1641003.2313599999,1574007.8846800001,1574007.8846800001,1574007.8846800001,1358511.2485,3259788.3812799994,3846199.22304,2734919.72544,4167496.7244800003,1096526.124,1096526.124,1096526.124,1527403.9095,1147043.0520000001,1147043.0520000001,2451224.25392,1494749.7850499998,2221825.6064199996,3875277.2204999994,1099840.58258,1398790.5395899997,1419024.441,1419024.441,1419024.441,1419024.441,3448776.1096799998,3448776.1096799998 +5990400.0,728953.263,943578.3329999999,2755248.73236,1446152.4854700002,1446152.4854700002,1446152.4854700002,1645567.9065,3515180.43472,2010412.4384000003,2452630.74252,3737342.08384,912236.298,912236.298,912236.298,1243911.4415000002,728953.263,728953.263,1780714.2462199996,1720722.3417,2557715.67828,4461131.997,1266111.74772,1610256.2160600002,1061490.783,1061490.783,1061490.783,1061490.783,2191719.47742,2191719.47742 +5994000.0,1686001.017,1760327.9220000003,5140157.532240001,836106.27826,836106.27826,836106.27826,1404285.855,3432067.54616,5525087.290240001,2710373.36115,4130092.7407999993,1489836.687,1489836.687,1489836.687,1034187.1470000001,1686001.017,1686001.017,1905913.7121699997,1240344.2479499998,1843672.1907799998,3215707.3095,912648.3602199999,1160717.20981,1866948.345,1866948.345,1866948.345,1866948.345,5069243.05778,5069243.05778 +5997600.0,1127931.099,850728.435,2484127.0302,418918.92988,418918.92988,418918.92988,445040.81999999995,1611371.29328,5806069.480960001,757791.70719,1154730.2204800001,1114399.32,1114399.32,1114399.32,1060119.4135,1127931.099,1127931.099,1224414.77366,1797338.26935,2671599.10654,4659765.8835,1322485.93646,1681953.59033,650315.9130000001,650315.9130000001,650315.9130000001,650315.9130000001,3391312.8376599997,3391312.8376599997 +6001200.0,575587.998,511583.40599999996,1493823.54552,184896.33932000003,184896.33932000003,184896.33932000003,356436.745,1037499.04464,2390068.28672,627964.44669,956898.2044800001,427837.845,427837.845,427837.845,342147.52249999996,575587.998,575587.998,509199.02904,505768.32945,751784.03538,1311251.2245,372145.58562,473299.25151000003,423563.355,423563.355,423563.355,423563.355,1730601.2473199998,1730601.2473199998 +6004800.0,650296.08,1070906.0219999999,3127045.5842399998,393237.87294000003,393237.87294000003,393237.87294000003,783297.9979999999,1465984.9488,2218460.65792,1081444.81977,1647915.9158400001,579044.232,579044.232,579044.232,905616.397,650296.08,650296.08,634429.1876000001,647493.7702499998,962447.5300999997,1678687.5524999998,476427.51489999995,605926.2689499999,619952.049,619952.049,619952.049,619952.049,1955223.5471999997,1955223.5471999997 +6008400.0,467233.52100000007,461269.6769999999,1346907.4568399999,287144.42592000007,287144.42592000007,287144.42592000007,596068.2104999999,986959.4393600001,1378974.2630399999,657252.47994,1001527.5884799999,420878.364,420878.364,420878.364,400118.3095,467233.52100000007,467233.52100000007,459616.2984399999,430495.4547,639896.94748,1116099.327,316759.61852,402858.70946,410287.88399999996,410287.88399999996,410287.88399999996,410287.88399999996,1404815.45314,1404815.45314 +6012000.0,294583.74600000004,223564.206,652807.48152,82418.88787,82418.88787,82418.88787,187318.6665,644093.7168,784051.88096,365913.15411,557581.94912,258525.60900000003,258525.60900000003,258525.60900000003,175774.1825,294583.74600000004,294583.74600000004,305199.55049999995,210934.21409999998,313536.78244,546866.4809999999,155205.91556,197392.75837999998,246664.67699999997,246664.67699999997,246664.67699999997,246664.67699999997,885715.12964,885715.12964 +6015600.0,450837.042,368861.46300000005,1077075.47196,730636.5831600002,730636.5831600002,730636.5831600002,704103.827,963248.7356799999,743903.8649599999,824552.5419600001,1256461.0163200002,326390.799,326390.799,326390.799,800148.6605000001,450837.042,450837.042,701477.68236,559190.04075,831191.1223,1449751.9575000003,411453.41270000004,523291.42085000005,286879.521,286879.521,286879.521,286879.521,1355516.7062799998,1355516.7062799998 +6019200.0,395102.052,779194.608,2275248.25536,414164.93382000003,414164.93382000003,414164.93382000003,532610.8445,1266308.69704,1031521.9417600002,628179.41067,957225.76864,449643.78899999993,449643.78899999993,449643.78899999993,906904.3829999999,395102.052,395102.052,883855.2681399998,556215.0686999998,826769.0650799997,1442039.0669999998,409264.42091999995,520507.4346599999,470648.42400000006,470648.42400000006,470648.42400000006,470648.42400000006,1187940.16968,1187940.16968 +6022800.0,712816.392,857134.3559999999,2502832.31952,694527.10767,694527.10767,694527.10767,855445.059,1843986.05608,2645129.42144,1243469.18871,1894810.19232,755181.222,755181.222,755181.222,1066733.948,712816.392,712816.392,832134.34343,929697.72975,1381921.0699,2410327.4475000002,684073.8851000001,870013.4310500001,778305.0689999999,778305.0689999999,778305.0689999999,778305.0689999999,2143201.2852799995,2143201.2852799995 +6026400.0,2023382.508,1738528.548,5076503.36016,3003222.33662,3003222.33662,3003222.33662,2801350.524,3310244.1650399994,6019685.17056,3520696.01793,5364870.12256,2195681.904,2195681.904,2195681.904,2694683.5755,2023382.508,2023382.508,2243394.61086,2636521.57305,3918977.7456199997,6835426.3005,1939959.08338,2467263.39799,2304047.913,2304047.913,2304047.913,2304047.913,6083636.74072,6083636.74072 +6030000.0,1392114.537,856544.661,2501110.4101199997,1338311.38859,1338311.38859,1338311.38859,1406596.8595,2345332.92736,3690955.99552,1936616.7989700001,2951035.12224,1219127.781,1219127.781,1219127.781,1465345.1155,1392114.537,1392114.537,1072590.5772399998,1420775.0729999999,2111868.1331999996,3683490.9299999997,1045409.8067999999,1329564.8214,1334658.6,1334658.6,1334658.6,1334658.6,4185624.37458,4185624.37458 +6033600.0,1094471.742,851829.4139999999,2487341.8888799995,1147171.08726,1147171.08726,1147171.08726,1100967.098,1897721.8875199999,3526289.3824,1603075.35297,2442781.49024,1002919.5899999999,1002919.5899999999,1002919.5899999999,1340818.1745,1094471.742,1094471.742,1169972.4134799999,1308615.34095,1945151.6919800001,3392706.4395000003,962882.3990200001,1224605.4672100001,1139226.54,1139226.54,1139226.54,1139226.54,3290711.70428,3290711.70428 +6037200.0,1005057.4110000001,868361.6880000001,2535616.12896,1136866.77522,1136866.77522,1136866.77522,1140607.0969999998,1878854.44184,3570650.8307200004,1621839.33786,2471374.2291200003,1004910.633,1004910.633,1004910.633,1342053.2965,1005057.4110000001,1005057.4110000001,1205033.50396,1315779.0659999999,1955799.9943999997,3411279.0599999996,968153.4855999999,1231309.2988,1138778.673,1138778.673,1138778.673,1138778.673,3021872.6157400003,3021872.6157400003 +6040800.0,723607.131,638330.826,1863926.01192,753201.5870500001,753201.5870500001,753201.5870500001,635562.0915,1003942.43384,2270662.3212800003,957305.18856,1458750.76352,551066.379,551066.379,551066.379,689650.0660000001,723607.131,723607.131,876229.3546499999,633226.8676499999,941240.9242599999,1641699.2865,465929.89274,592575.26627,734923.71,734923.71,734923.71,734923.71,2175645.44054,2175645.44054 +6044400.0,129685.332,118338.30299999999,345547.84475999995,130541.06604,130541.06604,130541.06604,66471.3,220333.7684,848746.41728,236166.34209000002,359872.52128000004,197753.13300000003,197753.13300000003,197753.13300000003,126731.255,129685.332,129685.332,250716.02633999995,96133.25834999999,142894.37414,249234.3735,70735.08886,89961.74053,154208.001,154208.001,154208.001,154208.001,389920.56487999996,389920.56487999996 +6048000.0,125609.916,114943.74299999999,335635.72955999995,104813.28143,104813.28143,104813.28143,44899.29149999999,227013.86407999997,821254.5939200001,259633.18206,395631.51552,189750.84600000002,189750.84600000002,189750.84600000002,119037.54099999998,125609.916,125609.916,242774.8895,88092.10889999999,130941.85075999999,228386.949,64818.39124,82436.81302,153096.081,153096.081,153096.081,153096.081,377667.14744,377667.14744 +6051600.0,136919.83800000002,132115.395,385776.95339999994,98878.79408,98878.79408,98878.79408,48275.604999999996,255290.96303999997,810011.9417600002,265789.45659,405012.50528000004,186214.251,186214.251,186214.251,116624.05299999999,136919.83800000002,136919.83800000002,259131.22715999995,91367.79749999999,135810.89899999998,236879.47499999998,67228.651,85502.21049999999,160255.113,160255.113,160255.113,160255.113,411672.31292,411672.31292 +6055200.0,146289.285,138479.97,404361.51239999995,94342.08311,94342.08311,94342.08311,50230.603500000005,320566.74544,802875.2601600001,305552.6103,465603.97760000004,188291.049,188291.049,188291.049,114746.37299999999,146289.285,146289.285,270339.57574,105521.63220000001,156849.43848,273574.602,77643.07752,98747.40396000001,183626.397,183626.397,183626.397,183626.397,439843.11689999996,439843.11689999996 +6058800.0,186253.149,153341.388,447756.85296,107594.85374,107594.85374,107594.85374,70006.4365,355897.05768,800139.7670400001,333402.2937,508041.59040000004,273922.857,273922.857,273922.857,167320.8285,186253.149,186253.149,275131.59114999993,123829.9812,184063.33007999999,321040.692,91114.40592,115880.40216,251114.373,251114.373,251114.373,251114.373,560001.13466,560001.13466 +6062400.0,222240.765,163393.521,477109.08132000006,130470.19106,130470.19106,130470.19106,73140.08099999999,431649.6424,802161.6192000001,369710.36487,563368.17504,331098.525,331098.525,331098.525,212757.9125,222240.765,222240.765,296344.41264999995,136597.82085000002,203041.69914,354142.49850000005,100509.01386,127828.57803000002,280016.24100000004,280016.24100000004,280016.24100000004,280016.24100000004,668203.9001,668203.9001 +6066000.0,258527.84100000001,201971.00700000004,589755.34044,145268.00288000001,145268.00288000001,145268.00288000001,80447.2235,492087.83744,822336.0224000001,416198.73813,634207.6009600001,359182.81200000003,359182.81200000003,359182.81200000003,226638.461,258527.84100000001,258527.84100000001,316467.85091999994,154184.05890000003,229182.23076000003,399736.4490000001,113449.01124000002,144285.82302,341280.627,341280.627,341280.627,341280.627,777307.0419399999,777307.0419399999 +6069600.0,441287.57999999996,250708.749,732069.5470799999,259341.2954,259341.2954,259341.2954,159719.231,996484.1406399999,992296.00576,678649.54416,1034132.63872,412907.904,412907.904,412907.904,354738.49950000003,441287.57999999996,441287.57999999996,529658.8209899999,215618.5494,320499.67095999996,559011.054,158652.66104,201776.37092000002,473501.16300000006,473501.16300000006,473501.16300000006,473501.16300000006,1326804.6571999998,1326804.6571999998 +6073200.0,1152149.325,537242.472,1568748.01824,1565533.6929100002,1565533.6929100002,1565533.6929100002,1382310.888,3255032.0984,3762087.9776,2745593.90952,4183762.14784,1065286.308,1065286.308,1065286.308,1542104.165,1152149.325,1152149.325,2459842.76863,1450830.0825,2156542.493,3761411.325,1067524.357,1357690.3735,1423433.061,1423433.061,1423433.061,1423433.061,3464128.9704999994,3464128.9704999994 +6076800.0,721468.47,943723.3049999999,2755672.0505999997,1388913.14914,1388913.14914,1388913.14914,1625363.341,3507115.0501599996,1985991.41888,2445962.5459499997,3727181.0224,899837.2080000001,899837.2080000001,899837.2080000001,1218428.1549999998,721468.47,721468.47,1773857.7259,1710930.13425,2543160.3477,4435744.7925,1258906.6173,1601092.64415,1058593.314,1058593.314,1058593.314,1058593.314,2169215.1997999996,2169215.1997999996 +6080400.0,1646602.7970000003,1697105.088,4955546.85696,792257.9297600001,792257.9297600001,792257.9297600001,1266755.364,3285789.4979199995,5266964.50176,2565927.51639,3909984.78688,1428951.687,1428951.687,1428951.687,959674.758,1646602.7970000003,1646602.7970000003,1291465.90911,1143629.2597499997,1699913.1218999997,2964964.7474999996,841485.2331,1070211.0850499999,1818764.4450000003,1818764.4450000003,1818764.4450000003,1818764.4450000003,4950785.742980001,4950785.742980001 +6084000.0,1086941.4989999998,773149.674,2257597.0480799996,405368.9108700001,405368.9108700001,405368.9108700001,440121.465,1457091.46976,5608160.05056,713517.4397400001,1087264.67008,1056450.3599999999,1056450.3599999999,1056450.3599999999,1033723.971,1086941.4989999998,1086941.4989999998,1154361.55367,1775460.3110999998,2639079.2772399997,4603045.251,1306388.08076,1661480.14298,602712.8369999999,602712.8369999999,602712.8369999999,602712.8369999999,3268070.7736599995,3268070.7736599995 +6087600.0,558260.8979999999,465470.754,1359174.60168,182296.95649,182296.95649,182296.95649,341453.22750000004,983173.96888,2181554.06592,603549.70956,919694.7955199999,398025.204,398025.204,398025.204,322954.8525,558260.8979999999,558260.8979999999,486065.1368299999,489705.11415,727907.35486,1269605.8514999999,360326.23214,458267.25496999995,407532.96599999996,407532.96599999996,407532.96599999996,407532.96599999996,1678504.4333199998,1678504.4333199998 +6091200.0,640423.677,1061799.252,3100453.8158400003,374334.78643000004,374334.78643000004,374334.78643000004,782185.7995,1437997.4788,2183046.11648,1071729.79641,1633112.07072,562133.976,562133.976,562133.976,892712.4184999999,640423.677,640423.677,627312.66273,640424.07405,951938.99402,1660358.7105,471225.61498,599310.4297900001,611681.8200000001,611681.8200000001,611681.8200000001,611681.8200000001,1925540.52218,1925540.52218 +6094800.0,447443.46900000004,421180.4339999999,1229846.8672799997,280111.94617999997,280111.94617999997,280111.94617999997,579687.9655,925728.8731200001,1276200.9561600003,622018.5717900001,947837.8236800001,386614.914,386614.914,386614.914,376811.86549999996,447443.46900000004,447443.46900000004,428996.58399,402300.5616,597987.50144,1043001.4560000001,296013.74656,376473.85888,386334.216,386334.216,386334.216,386334.216,1345313.36346,1345313.36346 +6098400.0,310583.244,240108.56399999998,701117.0068799999,85263.31319000002,85263.31319000002,85263.31319000002,209040.1425,663498.74616,844344.1952000002,396957.75693,604888.01056,266891.556,266891.556,266891.556,192833.0775,310583.244,310583.244,318387.38243,237063.81780000002,352376.34152,614609.898,174432.14248,221844.90604000003,265027.524,265027.524,265027.524,265027.524,933820.28696,933820.28696 +6102000.0,425984.99100000004,339749.59500000003,992068.8174,742625.80194,742625.80194,742625.80194,676920.867,889972.83072,622905.76384,780271.62843,1188985.33856,286950.60000000003,286950.60000000003,286950.60000000003,767094.013,425984.99100000004,425984.99100000004,666371.77711,523924.56044999993,778771.81578,1358322.9345,385504.98522,490289.89731,256879.818,256879.818,256879.818,256879.818,1280794.87294,1280794.87294 +6105600.0,359027.559,738646.1129999999,2156846.6499599996,397450.44911,397450.44911,397450.44911,491177.01149999996,1161573.96184,850107.04832,559608.37884,852736.5772800001,392965.32300000003,392965.32300000003,392965.32300000003,853811.203,359027.559,359027.559,839230.3247899999,503683.85925,748685.6377,1305847.0425,370611.8273,471348.59914999997,427151.373,427151.373,427151.373,427151.373,1079476.19406,1079476.19406 +6109200.0,686415.399,823899.3840000001,2405786.20128,660386.97494,660386.97494,660386.97494,820055.145,1760233.1385599999,2513842.02816,1187038.6178700002,1808820.7510400002,710344.032,710344.032,710344.032,1020091.8034999999,686415.399,686415.399,794430.5716099999,886233.92355,1317315.60982,2297643.5055,652093.10918,829339.89389,745126.6950000001,745126.6950000001,745126.6950000001,745126.6950000001,2063822.29966,2063822.29966 +6112800.0,2005182.435,1717265.7029999997,5014415.852759999,2974913.6551200002,2974913.6551200002,2974913.6551200002,2778270.6875,3264140.8690400003,5819174.343040001,3485707.5945300004,5311554.429760001,2169595.944,2169595.944,2169595.944,2628896.2455,2005182.435,2005182.435,2300131.0909199994,2588638.9941,3847804.1344399997,6711286.2809999995,1904726.9635599998,2422454.7623799997,2281566.984,2281566.984,2281566.984,2281566.984,6028915.1879,6028915.1879 +6116400.0,1372081.059,834057.897,2435449.05924,1309820.7984399998,1309820.7984399998,1309820.7984399998,1386295.197,2262512.70456,3554768.02176,1884270.4761299998,2871269.29696,1192375.74,1192375.74,1192375.74,1425925.473,1372081.059,1372081.059,1048006.2391499999,1385759.52225,2059820.3268999998,3592709.8724999996,1019645.2780999999,1296797.1825499998,1305665.895,1305665.895,1305665.895,1305665.895,4125390.3840599996,4125390.3840599996 +6120000.0,1113536.31,872820.189,2548634.95188,1177260.0071100001,1177260.0071100001,1177260.0071100001,1129429.6230000001,1939696.41448,3610682.03904,1639969.90689,2499001.7628800003,1028393.7119999999,1028393.7119999999,1028393.7119999999,1377194.42,1113536.31,1113536.31,1207152.87173,1341402.55335,1993887.2521399998,3477710.3235,987007.31086,1255287.8215299998,1165617.849,1165617.849,1165617.849,1165617.849,3348032.5054,3348032.5054 +6123600.0,1009927.584,872505.8700000001,2547717.1404000004,1147543.6184299998,1147543.6184299998,1147543.6184299998,1146421.6014999999,1885151.0656,3574801.3984000003,1630877.82795,2485147.1664,1008730.0560000001,1008730.0560000001,1008730.0560000001,1349705.0280000002,1009927.584,1009927.584,1212893.3421799997,1322279.60355,1965462.52182,3428132.3055000002,972936.59718,1237392.51789,1144388.316,1144388.316,1144388.316,1144388.316,3036515.6025599996,3036515.6025599996 +6127200.0,711135.1799999999,622850.568,1818723.65856,743021.00708,743021.00708,743021.00708,625183.9755000001,973985.9728000001,2199803.1008,935564.1655500002,1425621.5856,536038.7819999999,536038.7819999999,536038.7819999999,674341.4404999999,711135.1799999999,711135.1799999999,861266.9453699999,618180.1335,918875.1614,1602689.235,454858.4686,578494.4953000001,720485.6070000001,720485.6070000001,720485.6070000001,720485.6070000001,2138146.4412,2138146.4412 +6130800.0,121778.646,109522.16700000002,319804.72764,123498.85493,123498.85493,123498.85493,64127.007,203890.46,771254.54208,217029.33146999998,330711.36224,181094.649,181094.649,181094.649,117272.106,121778.646,121778.646,230176.89825,88912.42020000001,132161.17768,230513.682,65421.97832,83204.46236,143145.465,143145.465,143145.465,143145.465,366147.79563999997,366147.79563999997 +6134400.0,118750.66199999998,107559.58499999999,314073.98819999996,99541.14588000001,99541.14588000001,99541.14588000001,43138.095,210947.25904,762371.6204799999,238479.60297,363397.49024,176979.51299999998,176979.51299999998,176979.51299999998,111402.4765,118750.66199999998,118750.66199999998,227358.72405999998,82092.0015,122023.17259999999,212831.11500000002,60403.4974,76821.8977,143103.98100000003,143103.98100000003,143103.98100000003,143103.98100000003,357043.65708,357043.65708 +6138000.0,127367.187,120211.85100000002,351018.60492,93612.82458,93612.82458,93612.82458,43801.34150000001,221668.004,751911.9257600001,246415.5876,375490.4192,173810.451,173810.451,173810.451,109478.0435,127367.187,127367.187,235849.42263999998,83103.95880000001,123527.36592000001,215454.70800000004,61148.09808000001,77768.88984000002,150980.35499999998,150980.35499999998,150980.35499999998,150980.35499999998,382950.67558,382950.67558 +6141600.0,140053.473,134857.983,393785.31036,92129.9038,92129.9038,92129.9038,46951.856,252533.85816,778203.8374400001,284812.15077,433999.46784,179087.658,179087.658,179087.658,111266.02549999999,140053.473,140053.473,262567.57774,99447.79860000001,147821.17224,257827.62600000002,73173.93576000001,93063.49548000001,165237.07499999998,165237.07499999998,165237.07499999998,165237.07499999998,421094.10882,421094.10882 +6145200.0,164633.277,146145.59100000001,426745.12572,98772.11124,98772.11124,98772.11124,65355.47549999999,317394.34648,772805.27936,311790.95619,475110.02848000004,213874.57799999998,213874.57799999998,213874.57799999998,135849.553,164633.277,164633.277,263080.32374,114676.92855,170458.05182,297310.5555,84379.56718,107314.95289,224924.49600000004,224924.49600000004,224924.49600000004,224924.49600000004,494997.38618,494997.38618 +6148800.0,205293.82499999998,153324.096,447706.36032,110690.06839000001,110690.06839000001,110690.06839000001,71049.51000000001,376039.80168,762690.0672,345082.8227700001,525840.4918400001,291058.773,291058.773,291058.773,200762.513,205293.82499999998,205293.82499999998,278546.06104,128812.31145000001,191469.16418,333957.8445,94780.41682,120542.87911000001,261527.022,261527.022,261527.022,261527.022,617250.1005,617250.1005 +6152400.0,238490.92799999999,169566.714,495134.80488,140088.90753000003,140088.90753000003,140088.90753000003,78744.2845,454438.74152,773243.3407999999,387465.4497,590423.5424,337306.25399999996,337306.25399999996,337306.25399999996,216600.1495,238490.92799999999,238490.92799999999,299989.31521,145774.72394999999,216682.42917999998,377934.4695,107261.40182,136416.34661,308608.80000000005,308608.80000000005,308608.80000000005,308608.80000000005,717062.7235199999,717062.7235199999 +6156000.0,407633.319,230478.294,672996.61848,243990.09789,243990.09789,243990.09789,157043.5685,942662.9751200001,890619.5878400002,642085.1690400001,978415.49568,380373.83400000003,380373.83400000003,380373.83400000003,338921.95399999997,407633.319,407633.319,511295.2510899999,202779.4338,301415.35592,525724.458,149205.60808,189761.49484,442053.441,442053.441,442053.441,442053.441,1225617.51246,1225617.51246 +6159600.0,1123777.299,518595.37200000003,1514298.48624,1543887.16999,1543887.16999,1543887.16999,1346549.799,3200006.6256,3535182.1504000006,2673506.22231,4073914.2435200005,1009777.4010000001,1009777.4010000001,1009777.4010000001,1463926.0999999999,1123777.299,1123777.299,2417278.27055,1392966.4122000001,2070532.79048,3611394.4020000002,1024948.1255200001,1303541.40796,1380701.808,1380701.808,1380701.808,1380701.808,3378823.74566,3378823.74566 +6163200.0,702440.046,935079.015,2730430.7238,1341809.8018600002,1341809.8018600002,1341809.8018600002,1575399.6055,3440430.59552,1944426.82688,2393265.65688,3646881.0009600003,884224.8870000001,884224.8870000001,884224.8870000001,1176178.822,702440.046,702440.046,1756285.9301,1674135.3172499998,2488467.8049,4340350.8225,1231832.9001,1566659.96355,1038191.742,1038191.742,1038191.742,1038191.742,2112003.0716399997,2112003.0716399997 +6166800.0,1632811.176,1638249.057,4783687.24644,757837.89092,757837.89092,757837.89092,1201806.1405,3194407.146,5142314.408960001,2496561.1381200003,3804283.6390400003,1413591.276,1413591.276,1413591.276,916367.494,1632811.176,1632811.176,1179618.29128,1082049.77115,1608380.1536599998,2805314.2215,796174.89334,1012584.84757,1800765.8070000003,1800765.8070000003,1800765.8070000003,1800765.8070000003,4909318.9358399995,4909318.9358399995 +6170400.0,1083660.135,779364.348,2275743.89616,398917.89574999997,398917.89574999997,398917.89574999997,440847.0115,1446240.70304,5584120.723200001,729272.35395,1111272.1584,1060231.149,1060231.149,1060231.149,1034071.6505,1083660.135,1083660.135,1153301.36714,1770592.5269999998,2631843.7068,4590425.069999999,1302806.3531999998,1656924.8586,609899.574,609899.574,609899.574,609899.574,3258204.8058999996,3258204.8058999996 +6174000.0,591371.751,494318.649,1443410.45508,190722.60944,190722.60944,190722.60944,390263.3175,1068110.52008,2265772.10944,670741.9985699999,1022083.04544,446279.45999999996,446279.45999999996,446279.45999999996,357993.42949999997,591371.751,591371.751,520697.34846999997,522086.0103,776038.9585200001,1353556.323,384152.17548000003,488569.3775400001,448599.05399999995,448599.05399999995,448599.05399999995,448599.05399999995,1778057.7313400002,1778057.7313400002 +6177600.0,673474.032,1090273.23,3183597.8315999997,404393.52316000004,404393.52316000004,404393.52316000004,822496.745,1513174.4380799998,2315070.69504,1131835.94895,1724702.3984,604413.102,604413.102,604413.102,937318.382,673474.032,673474.032,676327.847,684093.0816,1016849.4694399999,1773574.656,503357.37856,640175.99488,648549.252,648549.252,648549.252,648549.252,2024911.92288,2024911.92288 +6181200.0,475140.735,445315.551,1300321.4089199998,297306.27575,297306.27575,297306.27575,614273.7964999999,988075.6385599999,1381870.5952,669203.2378499999,1019738.2672,421252.43700000003,421252.43700000003,421252.43700000003,408939.426,475140.735,475140.735,456957.52283999993,437570.16479999997,650412.93632,1134441.168,321965.20768,409479.24064000003,415943.04299999995,415943.04299999995,415943.04299999995,415943.04299999995,1428589.8099,1428589.8099 +6184800.0,326759.667,254826.957,744094.71444,88383.96127,88383.96127,88383.96127,228460.0745,700679.2696799999,906956.1907200001,425191.70547,647911.17024,287668.26300000004,287668.26300000004,287668.26300000004,208671.57499999998,326759.667,326759.667,331219.04829,256878.4833,381829.25172,665981.253,189011.82228,240387.51894,282930.507,282930.507,282930.507,282930.507,982457.39878,982457.39878 +6188400.0,427784.08199999994,348070.482,1016365.80744,749207.03671,749207.03671,749207.03671,685382.019,893415.53992,616323.47264,783325.89342,1193639.45664,286665.675,286665.675,286665.675,786278.6085,427784.08199999994,427784.08199999994,661752.6090499999,530229.25215,788143.2340599999,1374668.4315,390143.99294,496189.84337,256892.08199999997,256892.08199999997,256892.08199999997,256892.08199999997,1286204.13988,1286204.13988 +6192000.0,356171.61,730578.207,2133288.36444,403489.96688,403489.96688,403489.96688,487210.16399999993,1144982.52768,819596.3296,556575.1002,848114.4384000001,385471.989,385471.989,385471.989,856199.5329999999,356171.61,356171.61,828809.4934599999,499516.8385499999,742491.6958199999,1295043.6554999999,367545.72318,467449.09089,421036.23600000003,421036.23600000003,421036.23600000003,421036.23600000003,1070889.3073999998,1070889.3073999998 +6195600.0,692549.208,835676.9310000001,2440176.63852,671494.91255,671494.91255,671494.91255,829400.138,1783076.6956800001,2526843.6064000004,1197506.20836,1824771.3651200002,715792.902,715792.902,715792.902,1032842.412,692549.208,692549.208,797335.8741399999,896620.04325,1332753.7433,2324570.4825,659735.2417,839059.25035,753392.1510000001,753392.1510000001,753392.1510000001,753392.1510000001,2082264.61872,2082264.61872 +6199200.0,2015210.5050000004,1726010.8739999998,5039951.75208,3013858.14609,3013858.14609,3013858.14609,2788540.4924999997,3275423.8541599996,5910616.01024,3505304.1555,5341415.856,2179071.324,2179071.324,2179071.324,2670561.9359999998,2015210.5050000004,2015210.5050000004,2348481.3023099997,2616186.1018499997,3888750.6995399995,6782704.7085,1924996.19346,2448233.41383,2296662.7290000003,2296662.7290000003,2296662.7290000003,2296662.7290000003,6059066.251700001,6059066.251700001 +6202800.0,1376985.2850000001,830086.4430000001,2423852.4135600002,1324909.08209,1324909.08209,1324909.08209,1398118.8445000001,2270031.8564,3540059.5020800005,1891236.45669,2881884.12448,1206525.6630000002,1206525.6630000002,1206525.6630000002,1439448.64,1376985.2850000001,1376985.2850000001,1043153.9111499999,1390807.8837,2067324.31108,3605798.2169999997,1023359.87492,1301521.45166,1321193.595,1321193.595,1321193.595,1321193.595,4140135.7569,4140135.7569 +6206400.0,1061703.207,818638.971,2390425.79532,1114710.0818699999,1114710.0818699999,1114710.0818699999,1063823.978,1812128.44728,3328939.2492800006,1539406.4282100003,2345762.1763200006,954107.124,954107.124,954107.124,1279702.5885,1061703.207,1061703.207,1146421.6049,1250718.7158,1859093.0047199999,3242604.0779999997,920281.9192799999,1170425.6624399999,1089519.534,1089519.534,1089519.534,1089519.534,3192187.64238,3192187.64238 +6210000.0,951365.6160000002,816733.452,2384861.67984,1084846.72956,1084846.72956,1084846.72956,1072730.2774999999,1757138.8262399998,3297093.45664,1528367.58396,2328941.08032,934927.8809999999,934927.8809999999,934927.8809999999,1251257.973,951365.6160000002,951365.6160000002,1141659.9309699999,1232088.3431999998,1831400.4508799997,3194303.1119999997,906573.64512,1152991.31376,1068634.23,1068634.23,1068634.23,1068634.23,2860439.2854400002,2860439.2854400002 +6213600.0,671563.7729999999,578251.71,1688494.9932,703605.81654,703605.81654,703605.81654,589645.5355000001,899302.36504,2021046.6809600003,870506.46123,1326486.0361600001,491560.48199999996,491560.48199999996,491560.48199999996,626321.3775,671563.7729999999,671563.7729999999,807864.8150299999,574439.31135,853857.9393399999,1489287.1035,422673.86366,537561.72593,673659.4739999999,673659.4739999999,673659.4739999999,673659.4739999999,2019168.4108199999,2019168.4108199999 +6217200.0,115060.938,102324.14100000002,298786.49172000005,117621.41677,117621.41677,117621.41677,62129.707500000004,184766.26456,709056.30208,202535.82006,308626.01152,167389.848,167389.848,167389.848,109606.95899999999,115060.938,115060.938,207745.50653999997,82965.38805000001,123321.39162000001,215095.45050000004,61046.13738000001,77639.21499000001,133478.29499999998,133478.29499999998,133478.29499999998,133478.29499999998,345949.88691999996,345949.88691999996 +6220800.0,111108.58800000002,100879.17899999999,294567.20268,94089.59252,94089.59252,94089.59252,41277.719,194264.30624,704898.6841600001,210731.96781,321115.37952,164461.611,164461.611,164461.611,103756.9575,111108.58800000002,111108.58800000002,212175.51653999998,75822.1884,112703.59856,196576.04400000002,55790.15344000001,70954.59112000001,132758.17200000002,132758.17200000002,132758.17200000002,132758.17200000002,334066.48792000004,334066.48792000004 +6224400.0,118933.50899999999,110503.374,322669.85208,89279.93921,89279.93921,89279.93921,39234.044499999996,205352.67919999998,706773.0688000001,230630.72739000001,351437.29888,164219.29499999998,164219.29499999998,164219.29499999998,103902.08850000001,118933.50899999999,118933.50899999999,217503.85657,76251.36690000001,113341.53796000002,197688.72900000002,56105.94404000001,71356.21742000002,140108.511,140108.511,140108.511,140108.511,357593.41705999995,357593.41705999995 +6228000.0,129280.39499999999,124772.676,364336.21392,85753.1499,85753.1499,85753.1499,44005.0765,212531.30648,714805.97952,250068.16884,381056.25728,164834.94,164834.94,164834.94,102862.35399999999,129280.39499999999,129280.39499999999,242600.66168,89858.5731,133567.55803999997,232966.671,66118.15996,84089.87458,148225.632,148225.632,148225.632,148225.632,388703.05429999996,388703.05429999996 +6231600.0,140205.186,132451.50300000003,386758.38876,88904.07064,88904.07064,88904.07064,54895.1585,229014.42032,715026.8761600002,281807.45123999997,429420.87808,166666.509,166666.509,166666.509,107884.182,140205.186,140205.186,242404.68785,98660.83904999998,146651.42001999996,255787.36049999998,72594.88897999999,92327.05678999999,183675.447,183675.447,183675.447,183675.447,421550.25924,421550.25924 +6235200.0,175388.71500000003,140939.40600000002,411543.06552,98525.51808000001,98525.51808000001,98525.51808000001,67324.1555,298918.8232,715352.8844800001,307514.66256,468593.77152000007,240174.594,240174.594,240174.594,167857.74599999998,175388.71500000003,175388.71500000003,250903.24597,116507.3544,173178.83296,302056.104,85726.39904,109027.86992,230396.229,230396.229,230396.229,230396.229,527335.4031,527335.4031 +6238800.0,218541.906,161475.21600000001,471507.63072,122579.55182000001,122579.55182000001,122579.55182000001,77917.413,407675.50216,749772.1344,357189.43995,544288.6704000001,294796.353,294796.353,294796.353,209000.20750000002,218541.906,218541.906,286016.05357,136970.30745000002,203595.37058000002,355108.20450000005,100783.09042000001,128177.15191000002,274426.986,274426.986,274426.986,274426.986,657082.66404,657082.66404 +6242400.0,379850.52,204219.40800000005,596320.6713600002,240807.15439,240807.15439,240807.15439,156446.8115,908846.4084000001,830409.53728,615750.3765,938286.2880000001,361861.716,361861.716,361861.716,331651.089,379850.52,379850.52,503688.7074699999,197866.31399999998,294112.39759999997,512986.74,145590.5224,185163.78519999998,419375.142,419375.142,419375.142,419375.142,1142083.8968,1142083.8968 +6246000.0,1103600.883,496634.7570000001,1450173.49044,1513651.4371000002,1513651.4371000002,1513651.4371000002,1304401.917,3169377.0987199997,3356650.3808000004,2614329.57912,3983740.31104,980308.5689999999,980308.5689999999,980308.5689999999,1393243.425,1103600.883,1103600.883,2383941.7238,1342209.8560499998,1995087.2428199996,3479803.3304999997,987601.3261799999,1256043.29739,1355376.342,1355376.342,1355376.342,1355376.342,3318159.9882199997,3318159.9882199997 +6249600.0,682810.53,926529.015,2705464.7238,1297280.42026,1297280.42026,1297280.42026,1528477.0095,3377673.2663999996,1907605.9366400002,2338606.2180600003,3563590.4275200004,869949.777,869949.777,869949.777,1131379.228,682810.53,682810.53,1671936.61089,1620164.2518,2408244.14712,4200425.8379999995,1192120.8568799999,1516153.70724,1018431.4439999999,1018431.4439999999,1018431.4439999999,1018431.4439999999,2052983.6602,2052983.6602 +6253200.0,1621014.9809999997,1584705.3900000001,4627339.7387999995,720369.7924500001,720369.7924500001,720369.7924500001,1138448.2165,3115687.3156799995,5013187.42464,2429308.09737,3701802.81504,1398758.724,1398758.724,1398758.724,875979.384,1621014.9809999997,1621014.9809999997,1127798.3815799998,1038499.4772,1543646.1364799999,2692406.052,764130.47952,971830.37496,1787112.0750000002,1787112.0750000002,1787112.0750000002,1787112.0750000002,4873851.709539999,4873851.709539999 +6256800.0,1045298.2620000001,748182.657,2184693.35844,383513.92662000004,383513.92662000004,383513.92662000004,397053.21249999997,1337319.5872,5406399.3504,673455.0047400001,1026217.1500800002,1012219.7880000001,1012219.7880000001,1012219.7880000001,998630.1465000001,1045298.2620000001,1045298.2620000001,1095293.9600199999,1712678.3369999998,2545758.9107999997,4440277.17,1260192.9492,1602728.6165999998,568670.1,568670.1,568670.1,568670.1,3142863.44108,3142863.44108 +6260400.0,539979.741,436025.868,1273195.53456,175346.29596,175346.29596,175346.29596,333920.71650000004,932418.35368,1940425.68512,583235.69073,888740.10016,377310.171,377310.171,377310.171,308519.176,539979.741,539979.741,460789.5151599999,435166.20629999996,646839.6449199999,1128208.683,320196.36908,407229.61034,392477.91900000005,392477.91900000005,392477.91900000005,392477.91900000005,1623539.08794,1623539.08794 +6264000.0,597767.076,1019064.1440000001,2975667.30048,338660.58523,338660.58523,338660.58523,737769.8615,1327936.16136,1990437.0086400001,995284.60395,1516624.1584,505282.70699999994,505282.70699999994,505282.70699999994,850898.258,597767.076,597767.076,561569.5442499999,583250.82345,866955.5449799999,1512131.7645,429157.39602,545807.56071,562786.884,562786.884,562786.884,562786.884,1797286.34184,1797286.34184 +6267600.0,409358.04,365553.414,1067415.9688799998,253562.09076,253562.09076,253562.09076,527509.2165,827957.42104,1108897.09632,554497.89108,844949.1673600001,337629.069,337629.069,337629.069,317478.861,409358.04,409358.04,374291.16971999995,351577.87155000004,522592.29302000004,911498.1855000001,258691.86598000003,329007.44029000006,343967.376,343967.376,343967.376,343967.376,1230803.1735999999,1230803.1735999999 +6271200.0,277490.70300000004,204962.619,598490.84748,81423.17051000001,81423.17051000001,81423.17051000001,179897.8265,578340.21072,694136.7648,340130.73485999997,518294.45311999996,224522.45100000003,224522.45100000003,224522.45100000003,163279.263,277490.70300000004,277490.70300000004,273917.38360999996,195622.22925,290776.7457,507168.74250000005,143939.3193,183063.76515000002,227969.454,227969.454,227969.454,227969.454,834322.04702,834322.04702 +6274800.0,386594.16,272093.673,794513.52516,717823.6859200001,717823.6859200001,717823.6859200001,626438.246,785044.64552,461445.95456,714743.7091199999,1089133.27104,239289.723,239289.723,239289.723,716670.9305,386594.16,386594.16,614408.82763,468858.7719,696920.93996,1215559.779,344987.44204,438759.19642,212457.906,212457.906,212457.906,212457.906,1162359.7743999998,1162359.7743999998 +6278400.0,350832.855,730077.3960000001,2131825.99632,365639.34132000007,365639.34132000007,365639.34132000007,486155.999,1144478.61744,806586.0038400001,530752.41324,808765.58208,382543.75800000003,382543.75800000003,382543.75800000003,828374.785,350832.855,350832.855,827176.50327,481464.33209999994,715658.0936399999,1248240.861,354262.64436,450555.51078,417697.701,417697.701,417697.701,417697.701,1054837.4507,1054837.4507 +6282000.0,688460.7930000001,804632.457,2349526.7744400003,620166.60002,620166.60002,620166.60002,823339.4330000001,1745504.4424799997,2512744.52992,1185378.97674,1806291.7740800001,714706.149,714706.149,714706.149,1018441.9770000001,688460.7930000001,688460.7930000001,778187.17756,884939.5030499999,1315391.5576199999,2294287.6005,651140.67138,828128.5719900001,740947.845,740947.845,740947.845,740947.845,2069972.11762,2069972.11762 +6285600.0,1986260.868,1706961.6149999998,4984327.9158,2914435.8157200003,2914435.8157200003,2914435.8157200003,2768534.9545000005,3245268.83312,5714466.855040001,3460207.14102,5272696.59584,2152437.591,2152437.591,2152437.591,2597587.3315,1986260.868,1986260.868,2225653.0412999997,2554187.661,3796594.9924,6621968.01,1879377.5876,2390215.1198,2249461.9050000003,2249461.9050000003,2249461.9050000003,2249461.9050000003,5972024.343119999,5972024.343119999 +6289200.0,1343129.886,815740.3500000001,2381961.822,1271323.4051100002,1271323.4051100002,1271323.4051100002,1352846.369,2193907.60824,3395117.4912,1831985.06925,2791596.296,1170185.3909999998,1170185.3909999998,1170185.3909999998,1390854.2375,1343129.886,1343129.886,1013861.40557,1348470.8158500001,2004393.65714,3496035.4485000004,992208.1558600002,1261902.3190300001,1264825.965,1264825.965,1264825.965,1264825.965,4038343.85724,4038343.85724 +6292800.0,1016855.004,791891.493,2312323.15956,1080705.54526,1080705.54526,1080705.54526,1029778.8445,1747358.0175999997,3193108.65088,1487419.09512,2266543.3830399998,918630.1529999999,918630.1529999999,918630.1529999999,1229110.3054999998,1016855.004,1016855.004,1089522.31115,1204512.6383999998,1790411.3785599999,3122810.5439999998,886283.37344,1127185.90112,1048274.3430000001,1048274.3430000001,1048274.3430000001,1048274.3430000001,3057344.04536,3057344.04536 +6296400.0,914151.7320000001,784159.9710000001,2289747.1153200003,1046521.00883,1046521.00883,1046521.00883,1028862.4184999999,1685200.07104,3139952.4198400006,1453644.4024200002,2215077.18464,895270.2479999999,895270.2479999999,895270.2479999999,1196481.258,914151.7320000001,914151.7320000001,1098102.8942,1179775.6029,1753641.76036,3058677.489,868081.8016400001,1104036.92222,1023914.214,1023914.214,1023914.214,1023914.214,2748549.5408799998,2748549.5408799998 +6300000.0,649209.672,554745.243,1619856.10956,682446.78194,682446.78194,682446.78194,571566.2679999999,861726.3099999999,1931403.1187200001,835407.7447800001,1273002.27776,471799.55999999994,471799.55999999994,471799.55999999994,602216.2615,649209.672,649209.672,770923.92845,552143.8790999999,820717.5684399998,1431484.1309999998,406268.8295599999,516697.60537999996,647078.7239999999,647078.7239999999,647078.7239999999,647078.7239999999,1951957.08048,1951957.08048 +6303600.0,111431.65200000002,98817.62699999998,288547.47083999997,114561.18784000001,114561.18784000001,114561.18784000001,61047.78749999999,174299.83408,680098.7577600001,196002.11484,298669.88928,152752.104,152752.104,152752.104,105996.2365,111431.65200000002,111431.65200000002,196126.55711999998,79957.2546,118850.04263999999,207296.58599999998,58832.74536,74824.19628,128647.527,128647.527,128647.527,128647.527,335037.83368000004,335037.83368000004 +6307200.0,108739.176,98980.59899999999,289023.34907999996,92416.76961,92416.76961,92416.76961,40657.973999999995,188899.62384000001,690229.5283199999,195537.83109000002,297962.40928,161276.556,161276.556,161276.556,101630.2105,108739.176,108739.176,207779.03223999997,74130.75855,110189.42382,192190.8555,54545.59518,69371.74689,128430.444,128430.444,128430.444,128430.444,326942.45584,326942.45584 +6310800.0,114063.90000000001,105953.862,309385.27703999996,86940.38518000001,86940.38518000001,86940.38518000001,36848.825999999994,199535.33255999998,685738.0140800001,221731.84845000002,337877.10240000003,159810.759,159810.759,159810.759,101274.7505,114063.90000000001,114063.90000000001,210319.89068999997,72891.36135,108347.15934,188977.60350000003,53633.64366000001,68211.91593,131934.67500000002,131934.67500000002,131934.67500000002,131934.67500000002,342952.126,342952.126 +6314400.0,125781.13199999998,121420.24799999999,354547.12415999995,83559.44839,83559.44839,83559.44839,42967.2565,202134.14424,696602.1619200001,240420.38874,366354.87808,160985.70599999998,160985.70599999998,160985.70599999998,100600.57,125781.13199999998,125781.13199999998,234950.61160999996,86745.60539999999,128940.38135999998,224896.01399999997,63827.630639999996,81176.75171999999,143176.845,143176.845,143176.845,143176.845,378181.93687999994,378181.93687999994 +6318000.0,135768.684,129046.11600000001,376814.65872,86867.53218000001,86867.53218000001,86867.53218000001,51848.65350000001,219943.35271999997,711945.27936,271273.07633999997,413368.49728,164982.603,164982.603,164982.603,105557.431,135768.684,135768.684,240703.60249000002,95385.86325,141783.4313,247296.6825,70185.1537,89262.32635,171049.995,171049.995,171049.995,171049.995,408211.17656,408211.17656 +6321600.0,159397.143,136765.503,399355.26875999995,95457.56836,95457.56836,95457.56836,65441.13799999999,241878.60296000002,695138.23616,291704.14539,444501.55488,218008.21500000003,218008.21500000003,218008.21500000003,151063.5595,159397.143,159397.143,242029.03165999998,110324.90789999999,163989.12235999998,286027.539,81177.33964,103242.32122,214887.615,214887.615,214887.615,214887.615,479254.07662,479254.07662 +6325200.0,195899.43300000002,146722.176,428428.75392,107466.10336000001,107466.10336000001,107466.10336000001,73056.2595,349359.16015999997,691722.01408,323379.9954,492769.51680000004,262836.378,262836.378,262836.378,190280.741,195899.43300000002,195899.43300000002,257194.08623999998,123501.30345,183574.77698,320188.56450000004,90872.56402,115572.82471,242213.454,242213.454,242213.454,242213.454,589004.29522,589004.29522 +6328800.0,357068.913,197360.43899999998,576292.48188,222870.5952,222870.5952,222870.5952,154938.161,880260.0464000001,794164.85184,586747.85904,894091.97568,331157.364,331157.364,331157.364,324808.67299999995,357068.913,357068.913,496238.10886,192216.12255,285713.84142,498338.0955,141433.09758,179876.32209,395485.353,395485.353,395485.353,395485.353,1073587.19842,1073587.19842 +6332400.0,1078092.3360000001,479399.62200000003,1399846.8962400001,1490776.78761,1490776.78761,1490776.78761,1272283.586,3127120.2778399996,3196356.8204800007,2556161.27088,3895102.88896,946318.9500000001,946318.9500000001,946318.9500000001,1339538.2945,1078092.3360000001,1078092.3360000001,2343594.9531799997,1300768.0083,1933487.26172,3372361.503,957108.3122800001,1217261.91394,1323899.6339999998,1323899.6339999998,1323899.6339999998,1323899.6339999998,3241464.29024,3241464.29024 +6336000.0,643085.0759999999,904961.3099999998,2642487.0251999996,1237537.57402,1237537.57402,1237537.57402,1474788.483,3265763.9860799992,1810656.6176000002,2248171.40877,3425785.00384,827464.1639999999,827464.1639999999,827464.1639999999,1065323.014,643085.0759999999,643085.0759999999,1563932.5678599996,1546465.3326,2298696.61784,4009354.566,1137893.01016,1447186.0766800002,976318.3500000001,976318.3500000001,976318.3500000001,976318.3500000001,1933542.4618399998,1933542.4618399998 +6339600.0,1550992.983,1440380.559,4205911.23228,665087.46271,665087.46271,665087.46271,977319.623,2828955.87752,4572391.98208,2219976.9020100003,3382821.9459200003,1301102.193,1301102.193,1301102.193,796112.912,1550992.983,1550992.983,989267.54849,934866.0400500001,1389603.34842,2423726.7705,687876.74058,874849.94859,1696337.544,1696337.544,1696337.544,1696337.544,4663318.90222,4663318.90222 +6343200.0,917937.6300000001,637859.46,1862549.6231999998,353251.54337,353251.54337,353251.54337,290336.984,1032370.7888,4898707.24864,470146.00311000005,716412.95712,826951.0170000001,826951.0170000001,826951.0170000001,838845.0385,917937.6300000001,917937.6300000001,924411.1246499999,1548750.8690999998,2302093.8844399997,4015280.0309999995,1139574.7135599998,1449324.88738,416095.74,416095.74,416095.74,416095.74,2759932.4742,2759932.4742 +6346800.0,450032.586,342122.75700000004,998998.45044,146698.27414000002,146698.27414000002,146698.27414000002,239991.08349999998,708988.1764,1394477.81696,432786.1125,659483.6,265674.34199999995,265674.34199999995,265674.34199999995,224778.372,450032.586,450032.586,363160.2332799999,285825.79349999997,424857.1053999999,741029.8349999998,210311.32459999996,267476.48329999996,300692.532,300692.532,300692.532,300692.532,1353097.9752399998,1353097.9752399998 +6350400.0,528635.832,960188.0190000001,2803749.01548,263205.33305,263205.33305,263205.33305,643877.7975,1180837.82672,1734476.66368,868016.0552699999,1322691.13184,424054.78500000003,424054.78500000003,424054.78500000003,784791.4095,528635.832,528635.832,473267.17945,492219.5121,731644.8056399999,1276124.661,362176.33236,460620.23478,488212.32,488212.32,488212.32,488212.32,1589431.7348800001,1589431.7348800001 +6354000.0,362154.77999999997,296612.871,866109.58332,222207.32358000003,222207.32358000003,222207.32358000003,456906.4325,718116.59864,928664.4998400001,473634.45129,721728.6876800001,283738.02599999995,283738.02599999995,283738.02599999995,233492.44449999998,362154.77999999997,362154.77999999997,324676.78450999997,292454.18955,434709.68422,758214.5655,215188.51478000003,273679.35269,294696.162,294696.162,294696.162,294696.162,1088878.7052,1088878.7052 +6357600.0,233287.34999999998,161460.843,471465.6615599999,76998.87701000001,76998.87701000001,76998.87701000001,140831.33049999998,474802.0156,518045.95584000007,269560.57086,410758.96512,175051.611,175051.611,175051.611,124829.64549999998,233287.34999999998,233287.34999999998,223182.9899,144322.06994999998,214523.17557999998,374168.3295,106192.53542,135056.94941,179893.437,179893.437,179893.437,179893.437,701417.2989999999,701417.2989999999 +6361200.0,345623.673,222038.52899999998,648352.5046799999,651802.4088400002,651802.4088400002,651802.4088400002,562353.9425,686998.9996,320903.89184000005,641568.73578,977628.54976,200594.11799999996,200594.11799999996,200594.11799999996,630986.5625,345623.673,345623.673,567450.0145599999,400227.39089999994,594905.8995599999,1037626.5689999999,294488.30244,374533.78062,171315.096,171315.096,171315.096,171315.096,1039175.1768199999,1039175.1768199999 +6364800.0,269730.90599999996,660133.233,1927589.04036,320168.27975000005,320168.27975000005,320168.27975000005,405519.15599999996,969594.88264,541923.79136,382856.90037,583400.99104,290606.72400000005,290606.72400000005,290606.72400000005,714434.6545000001,269730.90599999996,269730.90599999996,718157.1077199999,366958.3662,545454.16408,951373.542,270008.87192,343400.54516,329501.544,329501.544,329501.544,329501.544,810990.92404,810990.92404 +6368400.0,627752.6070000001,658178.274,1921880.56008,512590.5049100001,512590.5049100001,512590.5049100001,735369.1029999999,1540795.67584,2211073.64928,1049372.8035,1599044.2719999999,625726.965,625726.965,625726.965,885503.0555,627752.6070000001,627752.6070000001,714002.6818599999,780659.8235999999,1160388.1822399998,2023932.876,574411.42576,730543.39048,659731.071,659731.071,659731.071,659731.071,1887442.8383799999,1887442.8383799999 +6372000.0,1911079.404,1636105.023,4777426.66716,2621874.11805,2621874.11805,2621874.11805,2702162.8655000003,3132944.69672,5345791.135360001,3321202.65834,5060880.241280001,2071785.039,2071785.039,2071785.039,2388219.5050000004,1911079.404,1911079.404,1963765.09732,2408343.27705,3579809.01922,6243852.9405000005,1772064.9297800001,2253733.5851900005,2107629.969,2107629.969,2107629.969,2107629.969,5745978.741359999,5745978.741359999 +6375600.0,1250345.5829999999,770600.091,2250152.26572,1146103.77453,1146103.77453,1146103.77453,1227702.0070000002,1995659.3416,3006022.1222400004,1692142.7796,2578503.2832,1066692.435,1066692.435,1066692.435,1270960.46,1250345.5829999999,1250345.5829999999,906303.38903,1211802.9947999998,1801247.9083199997,3141711.468,891647.63568,1134008.23464,1141625.304,1141625.304,1141625.304,1141625.304,3759372.3862199998,3759372.3862199998 +6379200.0,950480.1149999999,765686.298,2235803.99016,1034972.2128900001,1034972.2128900001,1034972.2128900001,995359.0009999999,1684375.6966400002,2984359.770240001,1430742.78354,2180179.47968,886023.198,886023.198,886023.198,1178637.558,950480.1149999999,950480.1149999999,1007887.7318899998,1156754.11905,1719422.1720200002,2998992.1605,851142.5369800001,1082493.36079,1002251.793,1002251.793,1002251.793,1002251.793,2857776.8790999996,2857776.8790999996 +6382800.0,894781.5689999999,768284.0160000001,2243389.3267200002,1023551.7237000001,1023551.7237000001,1023551.7237000001,1004049.242,1656690.7561599999,3077712.4768000003,1416067.0314000002,2157816.4288000003,882632.5530000001,882632.5530000001,882632.5530000001,1175339.6445,894781.5689999999,894781.5689999999,1069663.44212,1156719.8884500002,1719371.29098,2998903.4145000004,851117.3500200001,1082461.32771,1002923.142,1002923.142,1002923.142,1002923.142,2690309.9174599997,2690309.9174599997 +6386400.0,624348.42,530950.485,1550375.4161999999,658420.18,658420.18,658420.18,552600.3770000001,826938.1307999999,1846539.3472000002,785332.9323,1196697.8016000001,454298.784,454298.784,454298.784,577699.801,624348.42,624348.42,726859.3789599999,529759.5007499999,787444.9862999999,1373450.5574999999,389798.3487,495750.24885,622286.706,622286.706,622286.706,622286.706,1877207.5828,1877207.5828 +6390000.0,105250.98300000001,93444.435,272857.75019999995,109357.19630000001,109357.19630000001,109357.19630000001,59258.926999999996,157465.1756,634615.9404800001,181161.38922,276055.45024000003,134051.343,134051.343,134051.343,100391.41700000002,105250.98300000001,105250.98300000001,179884.74555999998,75091.63724999999,111617.69289999998,194682.02249999996,55252.61209999999,70270.93955,117297.88200000001,117297.88200000001,117297.88200000001,117297.88200000001,316454.62221999996,316454.62221999996 +6393600.0,101117.853,91971.85800000001,268557.82536,85786.47506,85786.47506,85786.47506,38391.181500000006,172381.13712,630280.9132800001,174673.62696,266169.33632,143074.04700000002,143074.04700000002,143074.04700000002,93762.081,101117.853,101117.853,192068.91808,67871.2122,100885.11048,175962.402,49939.80552,63514.04796,117470.082,117470.082,117470.082,117470.082,304027.67802,304027.67802 +6397200.0,105658.131,97112.601,283568.79491999996,82008.39174,82008.39174,82008.39174,34098.4105,188090.12975999998,645556.05248,199986.02441999997,304740.60864,151215.219,151215.219,151215.219,96172.37700000001,105658.131,105658.131,196705.39252,67942.09935,100990.47854,176146.1835,49991.96446,63580.38433000001,122121.426,122121.426,122121.426,122121.426,317678.78054,317678.78054 +6400800.0,117518.65499999998,113076.59400000001,330183.65448,77750.90312,77750.90312,77750.90312,38483.980500000005,189919.60903999998,649104.1728000001,217800.70179000002,331886.78368000005,150997.245,150997.245,150997.245,94775.28550000001,117518.65499999998,117518.65499999998,216853.77545,77418.37844999999,115076.20697999997,200714.31449999998,56964.63401999999,72448.30970999999,126514.137,126514.137,126514.137,126514.137,353339.42269999994,353339.42269999994 +6404400.0,122933.40000000001,118600.299,346312.87308,80362.37792000001,80362.37792000001,80362.37792000001,42754.8345,194661.01160000003,667073.51552,245608.21446000002,374260.13632000005,155045.127,155045.127,155045.127,98541.16649999999,122933.40000000001,122933.40000000001,227031.89417999997,86535.0459,128627.40155999998,224350.119,63672.70044,80979.70962,143655.96,143655.96,143655.96,143655.96,369619.756,369619.756 +6408000.0,138603.807,129854.84700000001,379176.15324,89161.05451,89161.05451,89161.05451,61474.34999999999,211234.95495999997,668901.3011200001,268616.33001000003,409320.12192000006,179597.415,179597.415,179597.415,118377.4375,138603.807,138603.807,229203.38311,97954.4097,145601.36948,253955.877,72075.09652,91665.97846,188921.928,188921.928,188921.928,188921.928,416735.44638,416735.44638 +6411600.0,177051.73500000002,138685.935,404962.93019999994,102803.95499,102803.95499,102803.95499,71617.8995,269325.83791999996,683269.5814400001,301669.71051,459687.17792000005,245035.55400000003,245035.55400000003,245035.55400000003,182228.6585,177051.73500000002,177051.73500000002,245980.68234999996,117304.16355,174363.22582,304121.9055,86312.69318,109773.52589,224851.38299999997,224851.38299999997,224851.38299999997,224851.38299999997,532335.5499,532335.5499 +6415200.0,236159.478,162674.862,475010.59703999996,200511.67983,200511.67983,200511.67983,151958.5095,444622.6184,726287.0342400001,391544.80974,596639.71008,299964.771,299964.771,299964.771,225976.0755,236159.478,236159.478,287214.98455,160508.30805000002,238582.71962000002,416132.65050000005,118102.40938000001,150204.07099,289446.66,289446.66,289446.66,289446.66,710052.83052,710052.83052 +6418800.0,955633.602,968825.2319999998,2828969.6774399993,979194.9426600001,979194.9426600001,979194.9426600001,1048430.6734999999,1448408.13728,1222873.11488,1211660.5523400002,1846339.8892800002,546798.966,546798.966,546798.966,1562716.7149999999,955633.602,955633.602,1798962.9004099998,526849.56765,783119.60426,1365906.2865000002,387657.21274000005,493027.12627000007,1282467.369,1282467.369,1282467.369,1282467.369,2873271.6966799996,2873271.6966799996 +6422400.0,1496836.047,1434240.678,4187982.7797600003,1948086.2244800003,1948086.2244800003,1948086.2244800003,1455316.4885,2270750.36328,2292655.42528,2218146.70392,3380033.0726400004,840960.162,840960.162,840960.162,1144968.3665,1496836.047,1496836.047,1669353.2705199998,1180679.4819,1754985.30396,3061020.879,868746.87804,1104882.7744200001,1634545.128,1634545.128,1634545.128,1634545.128,4500487.047979999,4500487.047979999 +6426000.0,1602628.1940000001,1372865.8530000001,4008768.29076,1534984.5333900002,1534984.5333900002,1534984.5333900002,1483603.9785000002,2623683.10704,6032606.726400001,1983690.02727,3022765.75584,1739655.9809999997,1739655.9809999997,1739655.9809999997,1550673.1344999997,1602628.1940000001,1602628.1940000001,1094805.3025,2309681.8224,3433156.6841599997,5988063.983999999,1699469.58784,2161405.9523199997,1138264.287,1138264.287,1138264.287,1138264.287,4818568.76996,4818568.76996 +6429600.0,1131129.5699999998,783796.8450000001,2288686.7874000003,925505.37486,925505.37486,925505.37486,1820572.264,2341632.9953599996,3909990.8934400002,2275675.08546,3467695.36832,1488955.9379999998,1488955.9379999998,1488955.9379999998,1707840.3824999998,1131129.5699999998,1131129.5699999998,1211338.6587899998,2016636.6892499998,2997568.6097,5228317.3425,1483846.2552999998,1887173.5931499999,1284894.453,1284894.453,1284894.453,1284894.453,3400929.5737999994,3400929.5737999994 +6433200.0,823024.0109999999,574092.7590000001,1676350.8562800002,850760.6795600001,850760.6795600001,850760.6795600001,1216918.99,2260452.7905599996,3492916.4512,1547313.4859699998,2357811.02624,698771.802,698771.802,698771.802,1349310.522,823024.0109999999,823024.0109999999,484582.3821799999,1184253.3314999999,1760297.5445999997,3070286.415,871376.5253999999,1108227.1916999999,849204.852,849204.852,849204.852,849204.852,2474558.8597399998,2474558.8597399998 +6436800.0,694399.809,566274.8999999999,1653522.7079999999,500126.88286,500126.88286,500126.88286,825133.9739999999,1648732.8275999997,1844704.35904,1223720.2992,1864716.6464000002,632881.425,632881.425,632881.425,824729.808,694399.809,694399.809,520693.35136,809757.48195,1203639.51638,2099371.2495,595821.5546200001,757773.05101,701055.2339999999,701055.2339999999,701055.2339999999,701055.2339999999,2087828.7590599998,2087828.7590599998 +6440400.0,426520.386,321659.799,939246.61308,233631.26413,233631.26413,233631.26413,409404.49199999997,809164.0791199999,1087121.2224,640699.5869400001,976304.1324800001,372152.211,372152.211,372152.211,462712.2885,426520.386,426520.386,295127.07860999997,414325.5219,615861.63996,1074177.279,304861.74204,387726.84642,411935.35199999996,411935.35199999996,411935.35199999996,411935.35199999996,1282404.6272399998,1282404.6272399998 +6444000.0,303799.023,207016.03799999997,604486.8309599999,105114.42073,105114.42073,105114.42073,260391.7785,580318.5282399999,632826.7027200001,425352.84393,648156.71456,252977.55299999999,252977.55299999999,252977.55299999999,260349.77150000003,303799.023,303799.023,165205.17389999997,232120.58625000002,345028.62450000003,601794.1125,170794.90050000002,217219.01775000003,254834.96099999998,254834.96099999998,254834.96099999998,254834.96099999998,913422.39582,913422.39582 +6447600.0,232252.851,137010.63900000002,400071.06588,68243.69244,68243.69244,68243.69244,166354.4435,434834.65576,381054.05888,292177.45641,445222.79072,178319.193,178319.193,178319.193,145007.8665,232252.851,232252.851,94417.34184999998,121261.40639999999,180245.34975999998,314381.424,89224.44224,113476.72352,171239.445,171239.445,171239.445,171239.445,698306.9053399999,698306.9053399999 +6451200.0,278779.179,184442.05800000002,538570.80936,81971.50126,81971.50126,81971.50126,224041.5275,529443.07624,540649.8956800001,373122.13196999993,568567.0582399999,227454.40199999997,227454.40199999997,227454.40199999997,220261.69550000003,278779.179,278779.179,130724.95344999999,190689.72209999998,283444.96963999997,494380.761,140309.96836,178447.91277999998,220952.952,220952.952,220952.952,220952.952,838196.0648599999,838196.0648599999 +6454800.0,752373.036,653173.2239999999,1907265.81408,486425.74475,486425.74475,486425.74475,829283.056,1432576.30024,2377127.50592,1193488.87518,1818649.71456,716451.027,716451.027,716451.027,959408.324,752373.036,752373.036,671630.13164,939233.3332499999,1396094.9792999998,2435049.3825,691090.2056999999,878936.87235,797055.4380000001,797055.4380000001,797055.4380000001,797055.4380000001,2262134.92824,2262134.92824 +6458400.0,837433.2660000001,713976.078,2084810.1477599998,873603.75399,873603.75399,873603.75399,960923.4284999999,1555151.52296,2655492.6540800002,1345462.4826300002,2050228.5449600003,782204.0490000001,782204.0490000001,782204.0490000001,1048691.9730000002,837433.2660000001,837433.2660000001,747695.13013,1033463.80845,1536161.01898,2679350.6145,760425.22202,967117.9837100001,882339.987,882339.987,882339.987,882339.987,2517882.68644,2517882.68644 +6462000.0,843012.558,716589.072,2092440.09024,959550.94928,959550.94928,959550.94928,965095.432,1563350.2172,2705451.9168000002,1352992.6748100002,2061703.1235200004,791296.8359999999,791296.8359999999,791296.8359999999,1053220.3255,843012.558,843012.558,870731.2216199999,1036816.5321000001,1541144.57364,2688042.861,762892.16436,970255.4707800001,897747.2850000001,897747.2850000001,897747.2850000001,897747.2850000001,2534657.7577199996,2534657.7577199996 +6465600.0,833701.23,721655.598,2107234.34616,952820.25597,952820.25597,952820.25597,942437.1880000001,1539441.68352,2675143.81632,1335726.8834699998,2035393.3462399999,785127.219,785127.219,785127.219,1037940.379,833701.23,833701.23,951276.13867,1027451.7859499999,1527224.62998,2663763.8895,756001.56102,961491.91821,896729.49,896729.49,896729.49,896729.49,2506661.6981999995,2506661.6981999995 +6469200.0,776189.1329999999,660020.55,1927260.006,767007.5765000001,767007.5765000001,767007.5765000001,713732.628,1256997.72808,1932805.8662400001,1077737.8575600001,1642267.2115200001,602544.297,602544.297,602544.297,808239.3235,776189.1329999999,776189.1329999999,918803.7468999999,815729.1786,1212515.96424,2114853.426,600215.54376,763361.37948,779691.531,779691.531,779691.531,779691.531,2333741.9932199996,2333741.9932199996 +6472800.0,345099.49199999997,238218.63900000002,695598.42588,380234.87414,380234.87414,380234.87414,296653.84,607406.43384,770549.1916800002,467658.45168,712622.40256,246246.489,246246.489,246246.489,350037.968,345099.49199999997,345099.49199999997,552350.01042,178565.24115,265422.90166,462946.9215,131388.74534,167101.79356999998,414401.92500000005,414401.92500000005,414401.92500000005,414401.92500000005,1037599.1392799999,1037599.1392799999 +6476400.0,117812.41799999999,86261.739,251884.27788,102572.09116000001,102572.09116000001,102572.09116000001,56823.3505,220700.22839999996,569471.8752,213395.30226,325173.79392,125162.562,125162.562,125162.562,93504.2815,117812.41799999999,117812.41799999999,178790.94675,70607.2545,104952.01779999999,183055.845,51952.9922,66074.4431,115702.203,115702.203,115702.203,115702.203,354222.67011999997,354222.67011999997 +6480000.0,111118.128,84084.126,245525.64792000002,78042.49420000002,78042.49420000002,78042.49420000002,35554.4665,211465.16775999998,553189.5744,205259.65026,312776.60992,120451.97999999998,120451.97999999998,120451.97999999998,87148.25,111118.128,111118.128,173546.26224,62305.050149999995,92611.45726,161531.6115,45844.20974,58305.219769999996,112359.53099999999,112359.53099999999,112359.53099999999,112359.53099999999,334095.17152,334095.17152 +6483600.0,115670.694,94725.09300000001,276597.27156,74368.57846,74368.57846,74368.57846,34394.444,234091.2024,564967.34848,209325.88236,318972.77311999997,144783.114,144783.114,144783.114,87140.5745,115670.694,115670.694,176226.03348999997,66392.73539999999,98687.47335999999,172129.314,48851.93864,62130.485720000004,115386.96300000002,115386.96300000002,115386.96300000002,115386.96300000002,347783.21996,347783.21996 +6487200.0,130956.444,108494.60699999999,316804.25243999995,75055.26479000002,75055.26479000002,75055.26479000002,38645.509000000005,259566.67231999998,623451.2761600001,232628.02416,354480.79872,164797.155,164797.155,164797.155,93090.58499999999,130956.444,130956.444,202485.13181,78312.3552,116405.03168,203032.032,57622.424320000006,73284.89536000001,124874.364,124874.364,124874.364,124874.364,393742.37496,393742.37496 +6490800.0,134268.33899999998,112198.671,327620.11932,81604.70065,81604.70065,81604.70065,45428.866,261499.36775999996,636833.8176000001,249951.73203,380878.82976,166970.274,166970.274,166970.274,94897.376,134268.33899999998,134268.33899999998,217350.73022,82877.2398,123190.36631999999,214866.918,60981.27768,77556.72564,139855.02000000002,139855.02000000002,139855.02000000002,139855.02000000002,403700.13925999997,403700.13925999997 +6494400.0,145289.51100000003,125350.69200000001,366024.02064000006,109473.84250000001,109473.84250000001,109473.84250000001,56032.85799999999,267667.51151999994,657412.4563200001,275920.59894,420450.43648,210663.711,210663.711,210663.711,104205.605,145289.51100000003,145289.51100000003,220306.9466,94058.5446,139810.47864,243855.48599999998,69208.50936,88020.21828,172265.7,172265.7,172265.7,172265.7,436837.12974000006,436837.12974000006 +6498000.0,182276.62199999997,160714.97400000002,469287.72408,132057.67828,132057.67828,132057.67828,72768.1185,325980.79336,742882.27648,311937.78336,475333.76512,279502.833,279502.833,279502.833,173570.7855,182276.62199999997,182276.62199999997,252328.65099,119592.68895,177764.93518,310055.11950000003,87996.59582,111915.13361,226708.89299999998,226708.89299999998,226708.89299999998,226708.89299999998,548045.04348,548045.04348 +6501600.0,251216.87100000004,187874.71499999997,548594.1677999999,227507.24909000003,227507.24909000003,227507.24909000003,152555.487,461465.12,784547.01888,407390.58590999997,620785.65472,334557.624,334557.624,334557.624,231776.4295,251216.87100000004,251216.87100000004,285018.99828999996,161852.16689999998,240580.25796,419616.729,119091.22404,151461.65742,299193.69299999997,299193.69299999997,299193.69299999997,299193.69299999997,755325.39214,755325.39214 +6505200.0,964529.283,958051.2690000001,2797509.70548,968366.8786,968366.8786,968366.8786,1039048.4720000001,1495541.43408,1293150.57088,1211451.02211,1846020.60512,582938.958,582938.958,582938.958,1553069.2029999997,964529.283,964529.283,1736895.36267,519524.1828,772231.00752,1346914.548,382267.17648,486172.01304,1272773.481,1272773.481,1272773.481,1272773.481,2900018.04422,2900018.04422 +6508800.0,1490960.916,1456851.207,4254005.52444,1928640.1674100002,1928640.1674100002,1928640.1674100002,1435989.8595000003,2250439.2287199995,2342696.21184,2240629.88541,3414293.15872,859870.677,859870.677,859870.677,1134251.9965000001,1490960.916,1490960.916,1647020.97924,1195377.57585,1776832.84114,3099127.0485,879561.77186,1118637.28703,1617751.8120000002,1617751.8120000002,1617751.8120000002,1617751.8120000002,4482822.48744,4482822.48744 +6512400.0,1640905.5599999996,1458926.52,4260065.4384,1548669.99386,1548669.99386,1548669.99386,1527026.3715000001,2720668.2031199997,6346341.96032,2031982.36689,3096354.08288,1774898.5380000002,1774898.5380000002,1774898.5380000002,1572106.9349999998,1640905.5599999996,1640905.5599999996,1082292.91963,2360880.93015,3509260.0492599998,6120802.411499999,1737142.0177399998,2209318.20377,1179051.549,1179051.549,1179051.549,1179051.549,4933656.050399999,4933656.050399999 +6516000.0,1136082.108,812793.1440000001,2373355.98048,930346.0375000001,930346.0375000001,930346.0375000001,1817563.1774999998,2336578.7206399995,3974750.06784,2251841.78856,3431377.96352,1489734.723,1489734.723,1489734.723,1716101.0895,1136082.108,1136082.108,1201997.7061299998,2013402.38355,2992761.0738199996,5219932.1055,1481466.44518,1884146.92189,1280301.159,1280301.159,1280301.159,1280301.159,3415820.20472,3415820.20472 +6519600.0,835952.2109999999,566109.9750000001,1653041.127,892294.8382700002,892294.8382700002,892294.8382700002,1239030.0440000002,2314961.72704,3759097.7836800003,1580978.6970600002,2409110.3955200003,719824.446,719824.446,719824.446,1397241.4959999998,835952.2109999999,835952.2109999999,472738.18526999996,1201652.7916499998,1786160.4458599999,3115396.1265,884179.0911399999,1124509.6494699998,860745.7080000001,860745.7080000001,860745.7080000001,860745.7080000001,2513429.6477399995,2513429.6477399995 +6523200.0,681245.4509999999,557212.7609999999,1627061.2621199999,445566.2495900001,445566.2495900001,445566.2495900001,833739.7215,1708694.8816,1836994.6931200002,1239543.7366199999,1888828.55104,645101.922,645101.922,645101.922,827318.2889999999,681245.4509999999,681245.4509999999,499202.55515,810345.3354,1204513.31336,2100895.3140000002,596254.09864,758323.16572,694354.653,694354.653,694354.653,694354.653,2048277.9893399996,2048277.9893399996 +6526800.0,426561.792,317736.939,927791.86188,212204.68808000002,212204.68808000002,212204.68808000002,405634.91849999997,835166.87184,1112110.81984,652126.67625,993716.8400000001,381946.40699999995,381946.40699999995,381946.40699999995,471922.87450000003,426561.792,426561.792,287183.54157999996,411243.92955,611281.10022,1066187.9655000002,302594.29878,384843.08469000005,415739.45699999994,415739.45699999994,415739.45699999994,415739.45699999994,1282529.1212799998,1282529.1212799998 +6530400.0,214757.697,112207.227,327645.10284,81756.97970000001,81756.97970000001,81756.97970000001,145944.7255,420637.69168000005,348728.04480000003,272244.14784,414848.22528,163136.919,163136.919,163136.919,120875.61849999998,214757.697,214757.697,84904.09018,90860.06924999999,135056.20169999998,235563.1425,66855.0633,85027.07715,154387.91999999998,154387.91999999998,154387.91999999998,154387.91999999998,645704.8089799999,645704.8089799999 +6534000.0,143286.3,49507.83899999999,144562.88987999997,60666.96009,60666.96009,60666.96009,69139.03499999999,266263.9376,185938.90624000004,156861.84276000003,239027.56992000004,89636.895,89636.895,89636.895,50072.491,143286.3,143286.3,44471.82661999999,37750.430700000004,56112.98588,97871.48700000001,27776.86012,35326.946260000004,80423.01,80423.01,80423.01,80423.01,430814.142,430814.142 +6537600.0,139458.144,47681.433000000005,139229.78436000002,65754.84674000001,65754.84674000001,65754.84674000001,71696.9225,257075.60864000002,175324.50879999998,151786.22759999998,231293.29919999998,84384.738,84384.738,84384.738,48125.728,139458.144,139458.144,42454.20958999999,37047.1158,55067.564719999995,96048.078,27259.35928,34668.78244,77500.674,77500.674,77500.674,77500.674,419304.15296,419304.15296 +6541200.0,731422.0290000001,614138.6610000001,1793284.89012,182332.83354000002,182332.83354000002,182332.83354000002,745865.1725,1468127.91344,2027456.6112000004,1122856.08057,1711018.7894400002,716519.952,716519.952,716519.952,857634.2949999999,731422.0290000001,731422.0290000001,485243.69946,765052.29,1137188.8360000001,1983468.9000000001,562927.3640000001,715937.822,719689.953,719689.953,719689.953,719689.953,2199142.23386,2199142.23386 +6544800.0,898089.1410000001,775557.4920000001,2264627.87664,699462.53619,699462.53619,699462.53619,1047045.0760000001,1744324.6398399998,2939500.6272000005,1460730.56787,2225875.15104,878358.855,878358.855,878358.855,1180931.0135,898089.1410000001,898089.1410000001,813358.6671599998,1154580.13575,1716190.7203,2993355.9075,849542.9147000001,1080458.94185,973755.159,973755.159,973755.159,973755.159,2700254.68394,2700254.68394 +6548400.0,954435.6869999999,823543.2270000002,2404746.2228400004,977717.1215900001,977717.1215900001,977717.1215900001,1088802.4559999998,1817957.65496,3156195.55264,1540887.93411,2348019.7091200002,912055.47,912055.47,912055.47,1222585.469,954435.6869999999,954435.6869999999,848261.2681400001,1188134.0414999998,1766065.9085999997,3080347.515,874231.9614,1111858.7697,1015048.479,1015048.479,1015048.479,1015048.479,2869669.9655799996,2869669.9655799996 +6552000.0,978023.4990000001,872224.095,2546894.3573999996,1080544.54013,1080544.54013,1080544.54013,1104584.159,1921794.8172,3269049.75616,1582551.1905,2411506.576,972534.717,972534.717,972534.717,1260345.6320000002,978023.4990000001,978023.4990000001,972425.3238700001,1227390.9507,1824418.1538799999,3182124.687,903117.29212,1148595.48226,1057029.2280000001,1057029.2280000001,1057029.2280000001,1057029.2280000001,2940590.6536600003,2940590.6536600003 +6555600.0,893360.3099999998,771643.542,2253199.1426399997,867657.8787800001,867657.8787800001,867657.8787800001,826324.73,1580371.5104,2401821.5264000003,1277108.12943,1946069.5305599999,747644.745,747644.745,747644.745,974476.181,893360.3099999998,893360.3099999998,994806.19615,967090.46445,1437502.3693799998,2507271.5745,711587.55162,905005.64451,917325.0900000001,917325.0900000001,917325.0900000001,917325.0900000001,2686036.6653999994,2686036.6653999994 +6559200.0,409410.24899999995,291788.847,852023.43324,436035.98236,436035.98236,436035.98236,342618.19550000003,771421.1344,987945.0067200001,585914.33145,892821.8384,335835.348,335835.348,335835.348,426350.61000000004,409410.24899999995,409410.24899999995,650397.1802899999,216645.17174999998,322025.6626999999,561672.6675,159408.05229999998,202737.08664999998,489537.21900000004,489537.21900000004,489537.21900000004,489537.21900000004,1230960.1486599997,1230960.1486599997 +6562800.0,144476.23200000002,106172.84999999999,310024.72199999995,119921.63425,119921.63425,119921.63425,62596.1875,305781.75176,741371.9148800002,238456.85367,363362.82464,188601.441,188601.441,188601.441,116854.626,144476.23200000002,144476.23200000002,223719.98791999999,88753.4172,131924.83247999998,230101.452,65304.983519999994,83055.66696,141939.051,141939.051,141939.051,141939.051,434391.87088000006,434391.87088000006 +6566400.0,142226.367,113622.489,331777.66788,100284.58022,100284.58022,100284.58022,44963.975,320399.44112,741041.3587200001,261171.63366000002,397975.82272000005,186289.24200000003,186289.24200000003,186289.24200000003,111444.158,142226.367,142226.367,222132.95727999997,83087.07435,123502.26854,215410.9335,61135.67446,77753.08933,138561.759,138561.759,138561.759,138561.759,427627.27677999996,427627.27677999996 +6570000.0,152760.753,143555.388,419181.73296,121931.56305000001,121931.56305000001,121931.56305000001,49742.196,330394.11055999994,765221.8649599999,276790.67031,421776.25952,188484.48900000003,188484.48900000003,188484.48900000003,111063.9495,152760.753,152760.753,233155.23101,95309.09144999999,141669.31618,247097.6445,70128.66482,89190.48311,143748.47999999998,143748.47999999998,143748.47999999998,143748.47999999998,459300.66401999997,459300.66401999997 +6573600.0,157112.073,156445.767,456821.63964,122780.95984000001,122780.95984000001,122780.95984000001,55337.5515,325686.60336,786968.0473600001,293524.83321,447275.93632,216993.105,216993.105,216993.105,109481.19350000001,157112.073,157112.073,254285.67164,98822.88360000002,146892.28624000002,256207.47600000002,72714.12176000001,92478.69848,174555.918,174555.918,174555.918,174555.918,472383.63281999994,472383.63281999994 +6577200.0,177297.885,165731.31900000002,483935.45148,132009.29005,132009.29005,132009.29005,63625.3275,340224.52999999997,808194.0678400001,324811.63638000004,494951.06496000005,283891.206,283891.206,283891.206,127672.853,177297.885,177297.885,261182.11977,114643.97774999999,170409.07309999998,297225.1275,84355.3219,107284.11744999999,221337.84,221337.84,221337.84,221337.84,533075.6409,533075.6409 +6580800.0,205410.969,181451.193,529837.48356,135473.4095,135473.4095,135473.4095,69190.1455,389217.03168,801399.4643199999,344347.57602000004,524720.1158400001,321190.47,321190.47,321190.47,207716.6035,205410.969,205410.969,279140.33653999993,131368.36364999998,195268.53065999996,340584.6465,96661.16634,122934.83906999999,258212.337,258212.337,258212.337,258212.337,617602.31346,617602.31346 +6584400.0,253883.82,200331.477,584967.91284,150377.02911000003,150377.02911000003,150377.02911000003,78155.25899999999,495455.526,840231.2832000001,406717.43847000005,619759.90624,358381.34699999995,358381.34699999995,358381.34699999995,219325.2775,253883.82,253883.82,301186.23079999996,147046.39154999997,218572.66101999997,381231.3855,108197.09797999999,137606.37629,323511.43200000003,323511.43200000003,323511.43200000003,323511.43200000003,763344.0188,763344.0188 +6588000.0,426293.31000000006,247389.006,722375.8975199999,260544.62346,260544.62346,260544.62346,158897.025,990868.5718400001,1024229.7196800001,659233.9005,1004546.8960000001,415498.05299999996,415498.05299999996,415498.05299999996,351562.44550000003,426293.31000000006,426293.31000000006,533611.74633,214697.71305,319130.92162,556623.7005,157975.10738,200914.64999,457654.17000000004,457654.17000000004,457654.17000000004,457654.17000000004,1281721.8854,1281721.8854 +6591600.0,1106452.7519999999,524247.07499999995,1530801.4589999998,1539261.3463700002,1539261.3463700002,1539261.3463700002,1328621.3955,3185455.51224,3635756.0435200003,2641396.59,4024985.2800000003,1028981.5109999999,1028981.5109999999,1028981.5109999999,1459681.9265,1106452.7519999999,1106452.7519999999,2384132.6327,1441489.7497499997,2142658.8378999997,3737195.6474999995,1060651.7170999998,1348949.6670499998,1352172.0269999998,1352172.0269999998,1352172.0269999998,1352172.0269999998,3326734.6076799994,3326734.6076799994 +6595200.0,602422.7550000001,871243.3049999999,2544030.4506,1310928.9861800002,1310928.9861800002,1310928.9861800002,1519965.6955,3210421.37792,1667127.0592,2170604.00445,3307587.0544,773834.1510000001,773834.1510000001,773834.1510000001,1089555.2045,602422.7550000001,602422.7550000001,1634458.7310999997,1581780.2431499998,2351189.39846,4100911.7415,1163877.8085399999,1480233.85717,918169.047,918169.047,918169.047,918169.047,1811284.4167000002,1811284.4167000002 +6598800.0,1554395.538,1508512.854,4404857.53368,664744.36985,664744.36985,664744.36985,1097959.7125,3008653.46008,4661776.20864,2329545.86256,3549784.17152,1299619.3769999999,1299619.3769999999,1299619.3769999999,858390.204,1554395.538,1554395.538,1419192.21236,995239.6532999999,1479343.8797199999,2580250.9529999997,732299.7942799999,931347.72494,1691163.105,1691163.105,1691163.105,1691163.105,4673549.25092,4673549.25092 +6602400.0,1003648.9619999999,761861.355,2224635.1566,351757.26729,351757.26729,351757.26729,346081.4245,1379513.5288,5349147.887360001,614385.1431900001,936205.9324800001,977034.5279999999,977034.5279999999,977034.5279999999,881891.9585000001,1003648.9619999999,1003648.9619999999,966139.44271,1625208.7779,2415742.43036,4213504.239,1195832.63164,1520874.3872200001,513537.54300000006,513537.54300000006,513537.54300000006,513537.54300000006,3017637.87908,3017637.87908 +6606000.0,480398.03099999996,377227.73699999996,1101504.99204,151466.57218000002,151466.57218000002,151466.57218000002,255692.91999999998,803013.1691999999,1779273.6601600002,469125.89262,714858.50304,312862.527,312862.527,312862.527,244699.86450000003,480398.03099999996,480398.03099999996,400715.76089999994,320067.95220000006,475755.32648000005,829805.8020000001,235506.78952000002,299520.37996000005,326028.606,326028.606,326028.606,326028.606,1444396.74654,1444396.74654 +6609600.0,608664.507,1042220.3250000001,3043283.349,298864.4956,298864.4956,298864.4956,734242.0785000001,1408050.8932,2114693.5827200003,995882.84775,1517535.768,542328.522,542328.522,542328.522,860742.5819999999,608664.507,608664.507,580183.4073099999,593471.88945,882148.3393799999,1538630.8245,436678.08162,555372.45951,581179.5989999999,581179.5989999999,581179.5989999999,581179.5989999999,1830051.2843799999,1830051.2843799999 +6613200.0,464374.81799999997,433161.123,1264830.4791599999,248165.49868000002,248165.49868000002,248165.49868000002,569551.9794999999,997052.7639199999,1389326.47424,652344.5575499999,994048.8496,429668.064,429668.064,429668.064,353818.9935,464374.81799999997,464374.81799999997,452200.7695399999,425285.57519999996,632152.8796799999,1102592.232,312926.17631999997,397983.29136,409988.292,409988.292,409988.292,409988.292,1396220.2861199998,1396220.2861199998 +6616800.0,143367.93300000002,64576.99799999999,188564.83415999997,70582.31037,70582.31037,70582.31037,67207.34999999999,294378.06551999995,210003.27936,121424.52399000002,185027.84608000002,101313.41399999999,101313.41399999999,101313.41399999999,47918.5,143367.93300000002,143367.93300000002,131230.92697,43514.406899999994,64680.673959999986,112815.12899999999,32018.008039999997,40720.88942,77589.18299999999,77589.18299999999,77589.18299999999,77589.18299999999,431059.58522,431059.58522 +6620400.0,355359.456,227563.947,664486.7252399999,572225.08101,572225.08101,572225.08101,533370.6595,733497.9264,349819.7984,648374.2299300001,987998.8265600002,221680.16700000002,221680.16700000002,221680.16700000002,615592.355,355359.456,355359.456,579547.3184799999,380529.85140000004,565627.08776,986558.8740000001,279994.80424,356100.77452000004,176671.41,176671.41,176671.41,176671.41,1068447.43104,1068447.43104 +6624000.0,263451.684,642493.9770000001,1876082.4128400001,323356.31889,323356.31889,323356.31889,379025.248,999925.4657599999,542061.06432,369956.56446,563743.3363200001,296409.162,296409.162,296409.162,708170.1059999999,263451.684,263451.684,713976.22686,342005.87475,508364.2879,886681.8975000001,251648.7671,320049.94205,319524.01800000004,319524.01800000004,319524.01800000004,319524.01800000004,792111.39656,792111.39656 +6627600.0,662595.591,693346.434,2024571.5872799999,472140.11394,472140.11394,472140.11394,756666.7535000001,1660664.9170400002,2310290.24064,1098367.23192,1673702.44864,674710.152,674710.152,674710.152,936405.6799999999,662595.591,662595.591,781424.2257899999,815102.9027999999,1211585.05552,2113229.748,599754.7284799999,762775.30904,700657.827,700657.827,700657.827,700657.827,1992204.07694,1992204.07694 +6631200.0,1953194.5769999998,1700599.8060000003,4965751.43352,2526545.5971800005,2526545.5971800005,2526545.5971800005,2783602.521,3300673.9234399996,5670075.36704,3435844.2925800006,5235572.255360001,2150875.128,2150875.128,2150875.128,2522333.401,1953194.5769999998,1953194.5769999998,1757785.1157099998,2500629.5943,3716985.2241200004,6483113.763000001,1839969.4298800002,2340095.3487400003,2161986.09,2161986.09,2161986.09,2161986.09,5872605.028179999,5872605.028179999 +6634800.0,1332060.5729999999,854428.1160000002,2494930.09872,1211415.6139800001,1211415.6139800001,1211415.6139800001,1315886.747,2235075.47352,3416775.1648,1866543.94143,2844257.43456,1159790.82,1159790.82,1159790.82,1426755.694,1332060.5729999999,1332060.5729999999,907231.6180199999,1348751.3836500002,2004810.6986600002,3496762.8465000005,992414.5983400001,1262164.8750700003,1229284.065,1229284.065,1229284.065,1229284.065,4005062.1228199997,4005062.1228199997 +6638400.0,1059152.832,849925.374,2481782.09208,1127664.25695,1127664.25695,1127664.25695,1100581.0585,1893724.13304,3495425.55328,1594726.9249800001,2430060.07616,998553.1259999999,998553.1259999999,998553.1259999999,1330499.037,1059152.832,1059152.832,1091851.3468199999,1303245.4337999998,1937169.7559199997,3378784.4579999996,958931.2080799999,1219580.2948399999,1123870.2719999999,1123870.2719999999,1123870.2719999999,1123870.2719999999,3184519.5148799997,3184519.5148799997 +6642000.0,1040824.902,903969.714,2639591.56488,1176461.1963500003,1176461.1963500003,1176461.1963500003,1190973.511,1966636.2585600002,3746205.69088,1659603.23865,2528919.2208,1056696.4109999998,1056696.4109999998,1056696.4109999998,1410190.1345,1040824.902,1040824.902,1196664.79179,1375354.66725,2044354.3449,3565734.3225,1011989.3600999999,1287060.29355,1186671.507,1186671.507,1186671.507,1186671.507,3129413.53868,3129413.53868 +6645600.0,756936.522,681471.747,1989897.5012400001,794454.20758,794454.20758,794454.20758,674934.0499999999,1080026.15824,2441767.38112,978126.83073,1490478.98016,594568.155,594568.155,594568.155,739937.492,756936.522,756936.522,921554.47046,677486.15055,1007028.79662,1756445.5755000003,498495.98238000006,633993.2124900001,778564.101,778564.101,778564.101,778564.101,2275855.80948,2275855.80948 +6649200.0,137482.746,126813.16500000001,370294.4418,137450.72132,137450.72132,137450.72132,68926.046,238793.51200000002,922062.8640000001,248146.38912,378127.83104,193325.87099999998,193325.87099999998,193325.87099999998,136005.17,137482.746,137482.746,269562.82808,103413.66795,153716.11878,268109.50950000004,76092.03222000001,96774.76581000001,157979.136,157979.136,157979.136,157979.136,413364.78964,413364.78964 +6652800.0,140637.804,130085.622,379850.01624,116450.33939000001,116450.33939000001,116450.33939000001,48938.47,264950.80192,942412.4678400002,290685.16995,442948.83040000004,195017.59199999998,195017.59199999998,195017.59199999998,134958.292,140637.804,140637.804,274254.50207999995,99930.03614999999,148537.97965999998,259077.87149999998,73528.76733999999,93514.77457,167465.29499999998,167465.29499999998,167465.29499999998,167465.29499999998,422850.99736000004,422850.99736000004 +6656400.0,160017.486,159030.85499999998,464370.09659999993,114018.43299,114018.43299,114018.43299,59275.363,361003.95664,961497.4784000001,324169.86945,493973.1344,221600.73299999998,221600.73299999998,221600.73299999998,135745.57499999998,160017.486,160017.486,312002.65095999994,114029.20395,169495.26118,295631.2695,83902.96982,106708.81061,181321.632,181321.632,181321.632,181321.632,481119.24124,481119.24124 +6660000.0,197603.05800000002,170639.532,498267.43344,117826.85816,117826.85816,117826.85816,72313.6295,432146.71400000004,978894.0326400002,383011.52316000004,583636.60672,310814.00399999996,310814.00399999996,310814.00399999996,168636.6115,197603.05800000002,197603.05800000002,325452.47397,140573.7828,208951.64752,364450.548,103434.53648,131549.29304000002,266013.966,266013.966,266013.966,266013.966,594126.52772,594126.52772 +6663600.0,260085.47099999996,206926.608,604225.69536,139067.27241,139067.27241,139067.27241,86654.26699999999,543028.13096,1000567.10144,438192.56817000004,667722.00864,411610.338,411610.338,411610.338,258309.31350000002,260085.47099999996,260085.47099999996,357957.97777999996,163399.31144999998,242879.96417999998,423627.8445,120229.61682,152909.47911,338668.70699999994,338668.70699999994,338668.70699999994,338668.70699999994,781990.3161399999,781990.3161399999 +6667200.0,316527.003,259604.136,758044.07712,172782.09420999998,172782.09420999998,172782.09420999998,89827.92,653080.2796,1073354.87808,513262.64031,782114.4995200001,475831.11600000004,475831.11600000004,475831.11600000004,286130.88,316527.003,316527.003,392596.91861,192409.66799999998,286001.53119999997,498839.88,141575.50879999998,180057.4424,425134.983,425134.983,425134.983,425134.983,951691.1890199999,951691.1890199999 +6670800.0,409679.63399999996,287255.52,838786.1184,200910.80438000002,200910.80438000002,200910.80438000002,98455.2975,744829.2433599998,1228315.81312,619624.53882,944189.77344,515191.218,515191.218,515191.218,307192.732,409679.63399999996,409679.63399999996,413975.4975199999,247166.1378,367392.62951999996,640801.098,181865.45448,231298.68204,520179.51,520179.51,520179.51,520179.51,1231770.09956,1231770.09956 +6674400.0,621045.699,395726.598,1155521.66616,308685.70678,308685.70678,308685.70678,187188.2915,1283610.0124000001,1643309.0528000002,928117.40196,1414274.13632,568292.5319999999,568292.5319999999,568292.5319999999,472618.92649999994,621045.699,621045.699,620908.27279,342934.95284999994,509745.2879399999,889090.6184999999,252332.38505999997,320919.37562999997,656597.484,656597.484,656597.484,656597.484,1867277.40166,1867277.40166 +6678000.0,1274890.8599999999,712492.053,2080476.79476,1689165.3885700002,1689165.3885700002,1689165.3885700002,1510231.569,3532356.80912,4440392.77568,3058731.30066,4660923.886720001,1332262.482,1332262.482,1332262.482,2041364.7869999998,1274890.8599999999,1274890.8599999999,2667347.30379,1697017.2866999998,2522480.0162799996,4399674.447,1248669.50972,1588072.96706,1587526.2689999999,1587526.2689999999,1587526.2689999999,1587526.2689999999,3833171.8523999997,3833171.8523999997 +6681600.0,812664.7890000001,985777.071,2878469.04732,1623184.0504000003,1623184.0504000003,1623184.0504000003,1819316.0684999998,3829395.0647199997,2303645.65056,2691211.85277,4100894.2518400005,983977.503,983977.503,983977.503,1461704.7795000002,812664.7890000001,812664.7890000001,1844862.99881,1862097.3967499998,2767858.3526999997,4827659.9175,1370135.8623,1742555.34165,1155346.131,1155346.131,1155346.131,1155346.131,2443412.1322600003,2443412.1322600003 +6685200.0,1704747.684,1815459.6119999997,5301142.067039999,939028.7516500001,939028.7516500001,939028.7516500001,1694026.334,3622160.49224,5707266.09024,2831670.1316400003,4314925.91488,1499561.274,1499561.274,1499561.274,1073932.3769999999,1704747.684,1704747.684,1563012.80447,1389727.41255,2065718.27742,3602996.9955,1022564.86158,1300510.34409,1895985.66,1895985.66,1895985.66,1895985.66,5125608.03656,5125608.03656 +6688800.0,1190179.0499999998,827444.802,2416138.82184,450968.69840000005,450968.69840000005,450968.69840000005,586537.1575000001,1655445.6448000001,6086149.545600001,856134.93147,1304586.56224,1167737.6099999999,1167737.6099999999,1167737.6099999999,1130558.513,1190179.0499999998,1190179.0499999998,1249885.0560299999,1920308.71095,2854384.7999799997,4978578.1395,1412967.89102,1797029.63321,672344.154,672344.154,672344.154,672344.154,3578471.6769999997,3578471.6769999997 +6692400.0,545317.875,442900.02,1293268.0584,183335.57165000003,183335.57165000003,183335.57165000003,301505.32649999997,960233.7130400001,2412699.024,552874.92897,842476.0822400001,371737.32,371737.32,371737.32,301545.0725,545317.875,545317.875,459553.4990799999,556594.2620999999,827332.70564,1443022.161,409543.43236,520862.28478,371336.382,371336.382,371336.382,371336.382,1639589.0775,1639589.0775 +6696000.0,582954.354,993727.2779999999,2901683.65176,326961.5371,326961.5371,326961.5371,703643.7239999999,1290094.69584,1887931.1756799999,949990.6752,1447604.8384,481113.003,481113.003,481113.003,818531.7035000001,582954.354,582954.354,522865.9754499999,545858.16975,811374.3659,1415187.8475000001,401643.78910000005,510815.42305000004,539271.129,539271.129,539271.129,539271.129,1752749.42436,1752749.42436 +6699600.0,246650.34600000002,230288.577,672442.64484,211718.33529,211718.33529,211718.33529,382896.8325,460246.42880000005,382132.11456,256162.38753000004,390342.6857600001,150705.549,150705.549,150705.549,241112.24550000002,246650.34600000002,246650.34600000002,182872.96768,120424.99229999998,179002.08732,312212.94299999997,88609.00667999999,112694.00514,146572.098,146572.098,146572.098,146572.098,741595.37364,741595.37364 +6703200.0,218231.96999999997,132580.60499999998,387135.36659999995,77053.79352,77053.79352,77053.79352,110761.67199999999,434049.66632,420795.93536000006,226404.35181,344997.10751999996,151861.623,151861.623,151861.623,98624.876,218231.96999999997,218231.96999999997,201549.06733,105585.95835,156945.05414,273741.3735,77690.40886,98807.60053,149189.67299999998,149189.67299999998,149189.67299999998,149189.67299999998,656150.7897999999,656150.7897999999 +6706800.0,392873.337,308331.183,900327.05436,705695.97725,705695.97725,705695.97725,589766.8385000001,809750.7947199999,499722.91520000005,720603.9819299999,1098063.21056,246816.237,246816.237,246816.237,674539.0225,392873.337,392873.337,632827.55861,456354.83025,678334.8341,1183142.1525,335787.0109,427057.97695,222234.885,222234.885,222234.885,222234.885,1181239.16658,1181239.16658 +6710400.0,284394.111,675462.273,1972349.83716,345730.17523000005,345730.17523000005,345730.17523000005,413600.495,1009827.0748,597264.672,431580.66524999996,657646.7279999999,314679.21300000005,314679.21300000005,314679.21300000005,727363.6335,284394.111,284394.111,740476.4600999999,390452.64704999997,580376.5272199999,1012284.6405,287296.02178,365386.55119,356353.842,356353.842,356353.842,356353.842,855078.2937399999,855078.2937399999 +6714000.0,622184.7390000001,717588.7799999999,2095359.2375999999,473021.71664000006,473021.71664000006,473021.71664000006,716912.105,1605510.5787999996,2134288.6912000002,1030760.3163899999,1570682.38688,603398.94,603398.94,603398.94,880478.6795,622184.7390000001,622184.7390000001,717417.33934,761168.3723999999,1131415.70416,1973399.484,560069.5678399999,712303.24232,665172.429,665172.429,665172.429,665172.429,1870702.1152599999,1870702.1152599999 +6717600.0,1970254.779,1710990.096,4996091.08032,2676975.24732,2676975.24732,2676975.24732,2772684.4075,3269077.04144,5633410.73536,3446494.20591,5251800.69472,2149198.743,2149198.743,2149198.743,2521250.6655,1970254.779,1970254.779,2059888.92135,2540973.34125,3776952.9665,6587708.662500001,1869654.4585000002,2377849.1267500003,2231781.282,2231781.282,2231781.282,2231781.282,5923899.36886,5923899.36886 +6721200.0,1388596.185,852533.919,2489399.04348,1271571.0727499998,1271571.0727499998,1271571.0727499998,1414823.375,2308705.63288,3477999.623040001,1894719.91065,2887192.2448,1205868.519,1205868.519,1205868.519,1451194.9375,1388596.185,1388596.185,953009.5231799999,1382529.5014499999,2055019.16018,3584335.7445,1017268.6208200001,1293774.52111,1298146.695,1298146.695,1298146.695,1298146.695,4175045.8629,4175045.8629 +6724800.0,1093444.8,845775.492,2469664.43664,1133138.2238,1133138.2238,1133138.2238,1098892.0845,1876769.8421599998,3448022.2636800003,1587828.1587,2419547.6704,986813.457,986813.457,986813.457,1317577.6845,1093444.8,1093444.8,1104597.6544199998,1294783.01145,1924591.04418,3356844.8445,952704.53682,1211661.13911,1123919.6940000001,1123919.6940000001,1123919.6940000001,1123919.6940000001,3287624.032,3287624.032 +6728400.0,1044816.936,902088.0720000002,2634097.1702400004,1182864.97912,1182864.97912,1182864.97912,1188192.551,1952327.4175999996,3707469.1699200002,1657670.3402700003,2525973.8518400006,1044747.1409999998,1044747.1409999998,1044747.1409999998,1400326.6725,1044816.936,1044816.936,1210303.8017199999,1370770.43985,2037540.25874,3553849.2885,1008616.27426,1282770.36223,1184564.868,1184564.868,1184564.868,1184564.868,3141416.2542399997,3141416.2542399997 +6732000.0,751236.198,668764.068,1952791.07856,790063.41425,790063.41425,790063.41425,668036.068,1050509.4433600002,2377085.0739200003,966206.66121,1472314.9123200001,576626.952,576626.952,576626.952,727299.993,751236.198,751236.198,916896.4039299999,665282.4597,988888.98948,1724806.377,489516.47652,622572.96846,767923.476,767923.476,767923.476,767923.476,2258716.8353199996,2258716.8353199996 +6735600.0,132541.542,120260.54999999999,351160.806,132669.63941,132669.63941,132669.63941,67485.26049999999,224590.43928,861195.38944,239687.80815,365238.5648,180078.891,180078.891,180078.891,128730.08400000002,132541.542,132541.542,254561.78006999998,97865.9172,145469.83247999998,253726.452,72009.98352,91583.16696,150068.487,150068.487,150068.487,150068.487,398508.23627999995,398508.23627999995 +6739200.0,131777.163,119941.02600000001,350227.79592,109161.79153000002,109161.79153000002,109161.79153000002,46650.625,238063.09152000002,856471.7939200001,269662.42107,410914.16544,185013.90899999999,185013.90899999999,185013.90899999999,124190.43,131777.163,131777.163,252339.90639,92043.135,136814.734,238630.35,67725.566,86134.193,157194.954,157194.954,157194.954,157194.954,396210.00341999996,396210.00341999996 +6742800.0,131924.28,125335.758,365980.41336,93760.31324,93760.31324,93760.31324,48101.6165,234519.02912000002,748011.4457600001,251091.61685999998,382615.79712,172355.28900000002,172355.28900000002,172355.28900000002,109238.1815,131924.28,131924.28,243977.99074999997,85939.20585,127741.73314,222805.34850000002,63234.27986,80422.12103000001,147769.713,147769.713,147769.713,147769.713,396652.3352,396652.3352 +6746400.0,140098.998,130673.65499999998,381567.07259999996,89218.51070000001,89218.51070000001,89218.51070000001,47933.137,266980.90272,741509.65568,286444.58451,436486.98592,172917.885,172917.885,172917.885,107729.475,140098.998,140098.998,252954.86007999995,99017.2188,147181.14992,256711.308,72857.11408,92660.55784,167757.108,167757.108,167757.108,167757.108,421230.98731999996,421230.98731999996 +6750000.0,173087.25900000002,144763.704,422710.01568,97918.0136,97918.0136,97918.0136,66334.219,314622.53063999995,736867.1488,308063.77077,469430.50784000003,221553.114,221553.114,221553.114,148186.44400000002,173087.25900000002,173087.25900000002,256706.75627999997,115297.4979,171380.47835999998,298919.439,84836.18364,107895.68322,228442.25699999998,228442.25699999998,228442.25699999998,228442.25699999998,520415.69206000003,520415.69206000003 +6753600.0,206943.273,152583.744,445544.53248,103726.26176000001,103726.26176000001,103726.26176000001,69803.83200000001,376047.72656000004,737677.6979200001,342660.94002000004,522150.0038400001,290471.763,290471.763,290471.763,196783.8775,206943.273,206943.273,275311.48514999996,127161.8919,189015.94796000002,329678.97900000005,93566.03404000001,118998.41242000001,256564.57799999998,256564.57799999998,256564.57799999998,256564.57799999998,622209.44082,622209.44082 +6757200.0,241348.407,168784.44,492850.5648,127733.20560000002,127733.20560000002,127733.20560000002,77629.96849999999,445047.17472,752115.80608,384609.2195400001,586071.1916800002,326494.893,326494.893,326494.893,212340.12449999998,241348.407,241348.407,296292.42617,144054.13815,214124.91646,373473.6915,105995.39054000001,134806.21817,309044.706,309044.706,309044.706,309044.706,725654.21038,725654.21038 +6760800.0,408764.66099999996,231390.58499999996,675660.5081999999,242156.60359,242156.60359,242156.60359,156067.68800000002,933240.6198399999,887358.68864,639252.5672399999,974099.1500799999,370557.582,370557.582,370557.582,335425.125,408764.66099999996,408764.66099999996,505294.1556,201643.93125,299727.52249999996,522780.5625,148370.1025,188698.88875,435984.471,435984.471,435984.471,435984.471,1229019.08074,1229019.08074 +6764400.0,1115747.691,508333.05000000005,1484332.506,1540586.1232300003,1540586.1232300003,1540586.1232300003,1355930.6005000002,3182150.17152,3486800.71616,2665715.2439400004,4062042.2764800005,988539.648,988539.648,988539.648,1454939.0939999998,1115747.691,1115747.691,2407167.92953,1384394.13765,2057790.7922599998,3589169.9864999996,1018640.62474,1295519.45227,1363406.868,1363406.868,1363406.868,1363406.868,3354681.39094,3354681.39094 +6768000.0,661684.197,910767.015,2659439.6837999998,1310753.82559,1310753.82559,1310753.82559,1547185.0835,3357802.63136,1827391.3305600004,2319621.58911,3534661.4691200005,830416.635,830416.635,830416.635,1129695.5075,661684.197,661684.197,1714602.8597099998,1635415.18695,2430913.43838,4239965.299500001,1203342.5326200002,1530425.5700100001,996287.8110000001,996287.8110000001,996287.8110000001,996287.8110000001,1989463.81898,1989463.81898 +6771600.0,1596627.42,1567062.471,4575822.41532,724891.6479200001,724891.6479200001,724891.6479200001,1142195.1834999998,3057512.82144,4882738.868480001,2393858.87265,3647784.9488,1351030.3499999999,1351030.3499999999,1351030.3499999999,877637.9745,1596627.42,1596627.42,1088027.39201,1022337.5755500001,1519622.76662,2650504.8255000003,752238.5123800001,956706.0274900001,1746851.6189999997,1746851.6189999997,1746851.6189999997,1746851.6189999997,4800526.4428,4800526.4428 +6775200.0,1007235.1530000002,711701.211,2078167.5361199998,375569.6692,375569.6692,375569.6692,363579.8005,1266549.5328,5270080.22912,602206.11465,917647.4128000002,945196.074,945196.074,945196.074,927918.628,1007235.1530000002,1007235.1530000002,1035892.09061,1675407.4101,2490358.66884,4343648.841,1232768.90916,1567850.39118,513314.454,513314.454,513314.454,513314.454,3028420.36002,3028420.36002 +6778800.0,520971.72,411675.024,1202091.07008,166417.89218999998,166417.89218999998,166417.89218999998,305870.901,880484.3024,1879368.0390400004,545202.26628,830784.4057600001,347759.799,347759.799,347759.799,287209.4155,520971.72,520971.72,439933.69185999996,409861.1016,609225.63744,1062602.856,301576.81056,383549.03088,370824.363,370824.363,370824.363,370824.363,1566388.3047999998,1566388.3047999998 +6782400.0,604044.9450000001,1028179.9980000001,3002285.5941600003,311148.50041000004,311148.50041000004,311148.50041000004,742036.057,1359432.46688,2035312.0038400004,1003895.97231,1529746.24352,518111.96400000004,518111.96400000004,518111.96400000004,851310.3165,604044.9450000001,604044.9450000001,564419.98392,586649.2675499999,872007.0594199998,1520942.5454999998,431657.9795799999,548987.8330899999,570663.219,570663.219,570663.219,570663.219,1816161.8013,1816161.8013 +6786000.0,402839.724,355883.196,1039178.93232,244285.54733000003,244285.54733000003,244285.54733000003,518882.55649999995,813672.08608,1079415.4841600002,542149.2570900001,826132.2012800002,326639.088,326639.088,326639.088,304059.714,402839.724,402839.724,369924.15628999996,341292.85605,507304.44281999994,884833.3305,251124.12618,319382.69739,335570.39099999995,335570.39099999995,335570.39099999995,335570.39099999995,1211204.7701599998,1211204.7701599998 +6789600.0,261362.16,185445.195,541499.9694000001,80192.58973,80192.58973,80192.58973,162932.952,537047.9768,615741.8387200001,309941.19177,472291.33984,200629.72499999998,200629.72499999998,200629.72499999998,145238.0195,261362.16,261362.16,256311.55706,172127.29635,255853.41334,446255.9535,126651.68966,161077.14893000002,206726.40300000002,206726.40300000002,206726.40300000002,206726.40300000002,785828.8944,785828.8944 +6793200.0,356176.671,228143.625,666179.385,694582.36199,694582.36199,694582.36199,584055.29,710524.29496,341883.71968000004,662612.4951599999,1009695.2307199999,206260.66199999995,206260.66199999995,206260.66199999995,659413.468,356176.671,356176.671,580494.7441799999,421736.12684999994,626876.9095399999,1093389.9585,310314.48345999996,394661.70882999996,177437.31900000002,177437.31900000002,177437.31900000002,177437.31900000002,1070904.5241399999,1070904.5241399999 +6796800.0,257361.25499999998,640545.741,1870393.56372,327523.63259000005,327523.63259000005,327523.63259000005,381860.3495,923979.4018400001,455151.59168,362381.60784,552200.5452800001,269851.416,269851.416,269851.416,697477.669,257361.25499999998,257361.25499999998,709151.6140799999,351487.2609,522457.60756,911263.2690000001,258625.19444000002,328922.64662,313486.77,313486.77,313486.77,313486.77,773799.5066999999,773799.5066999999 +6800400.0,625753.773,691289.622,2018565.69624,501634.52482000005,501634.52482000005,501634.52482000005,726611.375,1557841.4620000003,2177373.73056,1043726.01669,1590439.64448,607019.3130000001,607019.3130000001,607019.3130000001,896776.9824999999,625753.773,625753.773,714091.6860999999,771903.2133,1147372.1837199999,2001230.553,567968.29028,722348.93294,657127.341,657127.341,657127.341,657127.341,1881433.01082,1881433.01082 +6804000.0,1921148.664,1651805.0039999997,4823270.611679999,2689696.1300000004,2689696.1300000004,2689696.1300000004,2708844.782,3138367.3469599998,5379006.32832,3348296.27769,5102165.75648,2074794.465,2074794.465,2074794.465,2424614.2165,1921148.664,1921148.664,2018817.2067699998,2431756.1772,3614610.4164799997,6304553.051999999,1789292.1995199998,2275643.4349599998,2131342.569,2131342.569,2131342.569,2131342.569,5776253.64976,5776253.64976 +6807600.0,1267982.682,766595.778,2238459.67176,1158424.2384000001,1158424.2384000001,1158424.2384000001,1252555.7974999999,2024793.62408,3017499.2057600003,1706431.9143900003,2600277.2028800007,1063109.7869999998,1063109.7869999998,1063109.7869999998,1262676.555,1267982.682,1267982.682,900210.32153,1221833.57715,1816157.56406,3167716.6815,899028.1629400001,1143394.87837,1149731.304,1149731.304,1149731.304,1149731.304,3812401.26388,3812401.26388 +6811200.0,964189.2390000001,760638.993,2221065.85956,1030829.40873,1030829.40873,1030829.40873,990343.942,1673012.3472799999,2974543.5948800007,1427196.88251,2174776.20192,872259.6359999999,872259.6359999999,872259.6359999999,1163553.2405,964189.2390000001,964189.2390000001,1010369.2734199999,1151473.2633,1711572.6037199998,2985301.053,847256.87028,1077551.52294,998731.611,998731.611,998731.611,998731.611,2898995.6452599997,2898995.6452599997 +6814800.0,895812.1499999999,766672.122,2238682.59624,1022809.0016100002,1022809.0016100002,1022809.0016100002,1003883.4435,1651199.5443199999,3064656.17216,1416693.3858,2158770.8736,872906.7989999999,872906.7989999999,872906.7989999999,1165466.659,895812.1499999999,895812.1499999999,1065430.67098,1155024.6678,1716851.48152,2994508.398,849870.00248,1080874.93604,1001023.494,1001023.494,1001023.494,1001023.494,2693408.531,2693408.531 +6818400.0,664243.2180000001,571824.927,1669728.78684,699851.96193,699851.96193,699851.96193,589227.429,889769.8264799998,2008695.34592,832625.0079000001,1268761.9168,490673.706,490673.706,490673.706,623010.696,664243.2180000001,664243.2180000001,779175.43054,571770.14265,849890.4342600001,1482367.0365000002,420709.8827400001,535063.91127,667454.652,667454.652,667454.652,667454.652,1997157.94212,1997157.94212 +6822000.0,118614.027,106693.647,311545.44924,120804.95449000002,120804.95449000002,120804.95449000002,63392.1155,184901.51896,745060.2239999999,205988.95610999997,313887.93312,156568.91999999998,156568.91999999998,156568.91999999998,114324.07,118614.027,118614.027,210747.15818,86264.1657,128224.75988,223647.83700000003,63473.38612,80726.21926000001,131154.744,131154.744,131154.744,131154.744,356632.84118,356632.84118 +6825600.0,115439.72099999999,106026.90599999999,309598.56551999995,97968.21298,97968.21298,97968.21298,42774.2455,206048.87728000002,747733.168,209243.61297,318847.41024,163796.061,163796.061,163796.061,109538.13150000002,115439.72099999999,115439.72099999999,223568.50178,79746.4116,118536.64144,206749.956,58677.60656000001,74626.88888000001,136570.971,136570.971,136570.971,136570.971,347088.76113999996,347088.76113999996 +6829200.0,128359.074,123220.617,359804.20164,96184.00638,96184.00638,96184.00638,43874.8975,224935.98040000003,780199.33824,247733.39031000002,377498.49952,179864.688,179864.688,179864.688,113369.68999999999,128359.074,128359.074,242707.89101,85521.57795,127120.96278,221722.60950000002,62926.98822000001,80031.30381000001,145927.566,145927.566,145927.566,145927.566,385932.94915999996,385932.94915999996 +6832800.0,138336.846,135513.438,395699.23896,92319.24427,92319.24427,92319.24427,47308.94,230134.77176,781904.2886400002,273652.44543,416994.20256000006,179134.119,179134.119,179134.119,111930.693,138336.846,138336.846,263660.89554999996,98835.93269999999,146911.68267999997,256241.30699999997,72723.72331999999,92490.90985999999,155149.041,155149.041,155149.041,155149.041,415932.78364,415932.78364 +6836400.0,150985.647,140662.91100000002,410735.70012,95241.77696,95241.77696,95241.77696,64207.5035,243055.71336,748048.7424000002,296637.9759,452019.77280000004,195949.119,195949.119,195949.119,125491.26450000002,150985.647,150985.647,254746.28685999996,108553.17465,161355.58306,281434.1565,79873.69394,101584.32887,210372.039,210372.039,210372.039,210372.039,453963.51197999995,453963.51197999995 +6840000.0,205667.60100000002,157892.313,461045.55396,107991.24325000001,107991.24325000001,107991.24325000001,73783.192,380388.68616,792907.1347200001,350481.00464999996,534066.2927999999,288124.54799999995,288124.54799999995,288124.54799999995,209587.112,205667.60100000002,205667.60100000002,287303.97435999993,133227.0909,198031.37956,345403.569,98028.82244,124674.24062000001,266401.18200000003,266401.18200000003,266401.18200000003,266401.18200000003,618373.9203400001,618373.9203400001 +6843600.0,251635.89899999998,179067.74699999997,522877.82123999996,126399.09623000001,126399.09623000001,126399.09623000001,82947.8405,488506.59176000004,812629.90912,408172.46631,621977.09152,350168.169,350168.169,350168.169,230706.24499999997,251635.89899999998,251635.89899999998,318327.69995,156267.93374999997,232279.74349999995,405139.08749999997,114982.33149999999,146235.91825,328216.67699999997,328216.67699999997,328216.67699999997,328216.67699999997,756585.2696599999,756585.2696599999 +6847200.0,395271.48300000007,203914.917,595431.5576399999,228911.94854,228911.94854,228911.94854,154055.6185,914237.90808,835212.8940800001,625014.4131,952402.9151999999,358412.958,358412.958,358412.958,327679.88399999996,395271.48300000007,395271.48300000007,496421.50935,195185.3355,290127.33819999994,506036.05499999993,143617.85179999997,182654.9189,423353.253,423353.253,423353.253,423353.253,1188449.5922200002,1188449.5922200002 +6850800.0,1091717.28,489027.408,1427960.03136,1519030.634,1519030.634,1519030.634,1331097.11,3140903.3085600007,3388334.28992,2611626.3681900003,3979621.1324800006,962083.779,962083.779,962083.779,1436041.166,1091717.28,1091717.28,2367281.91362,1367507.86515,2032690.70326,3545390.7615000005,1006215.6637400001,1279717.23677,1332838.644,1332838.644,1332838.644,1332838.644,3282429.9551999997,3282429.9551999997 +6854400.0,634610.196,896120.592,2616672.12864,1263692.3016300001,1263692.3016300001,1263692.3016300001,1507851.2540000002,3285313.90584,1752950.0659200004,2251722.84981,3431196.72352,804990.369,804990.369,804990.369,1099137.375,634610.196,634610.196,1597488.5275699997,1586820.3385499998,2358681.09582,4113978.6555,1167586.3231799998,1484950.39089,966331.9049999998,966331.9049999998,966331.9049999998,966331.9049999998,1908061.3226400001,1908061.3226400001 +6858000.0,1565286.537,1507821.969,4402840.149479999,691203.44799,691203.44799,691203.44799,1081711.4175,2936565.44032,4700871.58464,2298309.1078500003,3502185.3072,1317153.5729999999,1317153.5729999999,1317153.5729999999,836637.9979999999,1565286.537,1565286.537,1007133.58161,975363.0876,1449798.95984,2528719.116,717674.56816,912747.18568,1706927.6220000002,1706927.6220000002,1706927.6220000002,1706927.6220000002,4706294.85458,4706294.85458 +6861600.0,963830.265,674101.209,1968375.5302799998,361555.40564000007,361555.40564000007,361555.40564000007,323671.88350000005,1162820.60328,5097847.12,542942.31894,827340.67648,891652.335,891652.335,891652.335,869359.645,963830.265,963830.265,959500.69033,1615465.00845,2401259.09898,4188242.6145,1188663.14202,1511756.14371,463037.40300000005,463037.40300000005,463037.40300000005,463037.40300000005,2897916.3301,2897916.3301 +6865200.0,485726.2649999999,369370.089,1078560.65988,153546.37474000003,153546.37474000003,153546.37474000003,274429.00800000003,794706.4466399999,1670306.77184,487073.50125000003,742207.24,308436.471,308436.471,308436.471,255657.31800000003,485726.2649999999,485726.2649999999,398933.94931,350879.00354999996,521553.4818199999,909686.3055,258177.63718,328353.43789,337003.42500000005,337003.42500000005,337003.42500000005,337003.42500000005,1460416.9700999998,1460416.9700999998 +6868800.0,573317.4990000001,1002093.801,2926113.89892,289410.91124,289410.91124,289410.91124,704164.1005000001,1297004.05824,1929043.2358400002,948146.56188,1444794.76096,486087.351,486087.351,486087.351,826877.7195,573317.4990000001,573317.4990000001,523978.13402999996,548838.585,815804.5139999999,1422914.8499999999,403836.78599999996,513604.5029999999,539084.517,539084.517,539084.517,539084.517,1723774.61366,1723774.61366 +6872400.0,372090.099,318673.18200000003,930525.69144,229718.29287,229718.29287,229718.29287,478293.54300000006,740833.9592,957508.5766400001,488125.21443,743809.85056,291918.963,291918.963,291918.963,269164.364,372090.099,372090.099,333993.74007999996,301807.00035,448611.88694,782462.5935000001,222070.33606,282431.73613000003,302377.5,302377.5,302377.5,302377.5,1118750.89766,1118750.89766 +6876000.0,236767.76700000002,161289.41100000002,470965.08012,77552.49062000001,77552.49062000001,77552.49062000001,141576.3965,480921.5764,523052.15936,271303.7565,413415.248,175836.49200000003,175836.49200000003,175836.49200000003,125170.49649999998,236767.76700000002,236767.76700000002,225776.44088999997,145295.31735,215969.82974,376691.56350000005,106908.65326,135967.71673000001,180326.709,180326.709,180326.709,180326.709,711881.75278,711881.75278 +6879600.0,340550.556,213104.18099999998,622264.20852,663977.1829900001,663977.1829900001,663977.1829900001,561021.664,675759.72104,296145.75552,636691.5370199999,970196.62784,194496.79200000002,194496.79200000002,194496.79200000002,628680.7204999999,340550.556,340550.556,559696.74189,396350.41095,589143.0799799999,1027575.1395,291635.61102,370905.69321,163942.65600000002,163942.65600000002,163942.65600000002,163942.65600000002,1023922.00504,1023922.00504 +6883200.0,236166.75,624971.736,1824917.46912,313527.0002700001,313527.0002700001,313527.0002700001,365220.7755,886169.0168000001,404769.98912,323859.76896,493500.60032,253132.62000000002,253132.62000000002,253132.62000000002,669859.8865,236166.75,236166.75,675879.22792,323572.2795,480964.22779999994,838891.095,238085.2822,302799.7381,293321.33400000003,293321.33400000003,293321.33400000003,293321.33400000003,710074.695,710074.695 +6886800.0,619687.65,650185.14,1898540.6088,484771.74966000003,484771.74966000003,484771.74966000003,715113.5075000001,1531875.6481599999,2135441.85152,1024571.95617,1561252.50464,601681.5869999999,601681.5869999999,601681.5869999999,873416.2885,619687.65,619687.65,708640.5708199999,757705.55355,1126268.50182,1964421.8055,557521.61718,709062.72789,645259.737,645259.737,645259.737,645259.737,1863194.2010000001,1863194.2010000001 +6890400.0,1914433.0380000002,1653050.304,4826906.887680001,2596241.84006,2596241.84006,2596241.84006,2712879.813,3153256.3451999994,5368511.52384,3338069.50617,5086582.1046400005,2080539.1080000002,2080539.1080000002,2080539.1080000002,2406909.2739999997,1914433.0380000002,1914433.0380000002,1931564.7735799998,2422984.7641499997,3601572.41486,6281812.3515,1782838.17214,2267435.12497,2119083.7199999997,2119083.7199999997,2119083.7199999997,2119083.7199999997,5756062.00092,5756062.00092 +6894000.0,1263570.801,775191.051,2263557.86892,1148897.45916,1148897.45916,1148897.45916,1248516.773,2024708.5936800002,3036766.2822400006,1709281.47432,2604619.38944,1072607.697,1072607.697,1072607.697,1277805.8824999998,1263570.801,1263570.801,883341.8872199999,1223145.7082999998,1818107.9417199995,3171118.5029999996,899993.6322799999,1144622.77394,1147106.2859999998,1147106.2859999998,1147106.2859999998,1147106.2859999998,3799136.20834,3799136.20834 +6897600.0,981273.327,784238.379,2289976.0666799997,1053988.0709600002,1053988.0709600002,1053988.0709600002,1020484.4650000002,1729284.4732,3047069.664,1466754.34584,2235054.24128,908373.351,908373.351,908373.351,1210091.106,981273.327,981273.327,1029208.75434,1184971.9311,1761365.68524,3072149.4510000004,871905.2727600001,1108899.65898,1025419.773,1025419.773,1025419.773,1025419.773,2950361.80318,2950361.80318 +6901200.0,961820.79,829049.751,2420825.27292,1095985.90442,1095985.90442,1095985.90442,1087305.576,1795956.3309599997,3368542.2208,1527849.7596600002,2328152.0147200003,960564.42,960564.42,960564.42,1282311.4605,961820.79,961820.79,1123946.9760999999,1256394.1670999997,1867529.1076399996,3257318.2109999997,924457.9303599999,1175736.76378,1085895.9,1085895.9,1085895.9,1085895.9,2891874.5086,2891874.5086 +6904800.0,698954.208,613128.351,1790334.78492,738991.10879,738991.10879,738991.10879,624732.5,956270.7124000001,2168714.2732800003,882015.24999,1344023.23808,530771.166,530771.166,530771.166,670355.994,698954.208,698954.208,828793.97159,612857.15775,910962.9850999999,1588888.9275,450941.8099,573513.24145,710734.416,710734.416,710734.416,710734.416,2101522.31872,2101522.31872 +6908400.0,123569.976,112100.61300000001,327333.78996,125318.5967,125318.5967,125318.5967,64862.66150000001,201539.31104,794752.6329600001,216259.61301000003,329538.45792,167351.84999999998,167351.84999999998,167351.84999999998,120402.8315,123569.976,123569.976,227737.91559999998,90786.90195,134947.44438,235373.4495,66801.22662,84958.60701,137084.124,137084.124,137084.124,137084.124,371533.72783999995,371533.72783999995 +6912000.0,120806.67,111597.90599999999,325865.88551999995,102636.67392,102636.67392,102636.67392,44302.4785,220063.04351999998,798659.9891200002,228582.51276,348316.20992,171678.372,171678.372,171678.372,116190.3015,120806.67,120806.67,235907.07048999998,84731.427,125946.4668,219674.07,62345.5932,79291.8786,143373.033,143373.033,143373.033,143373.033,363225.38779999997,363225.38779999997 +6915600.0,125454.46800000001,119423.52900000001,348716.70468,91748.05233,91748.05233,91748.05233,43693.0305,214970.4,737530.7526400002,237869.99901,362468.56992000004,170603.778,170603.778,170603.778,107925.48199999999,125454.46800000001,125454.46800000001,233287.65030999997,82078.64055,122003.31261999998,212796.47549999997,60393.666379999995,76809.39448999999,140540.376,140540.376,140540.376,140540.376,377199.76712000003,377199.76712000003 +6919200.0,130316.20799999998,126332.51699999999,368890.94964,85912.10782,85912.10782,85912.10782,44226.360499999995,217498.80463999996,720485.38304,257421.04206,392260.63552,166076.421,166076.421,166076.421,104362.35949999999,130316.20799999998,130316.20799999998,244993.05466999995,91902.06135,136605.03934,238264.60350000003,67621.76366000001,86002.17593000001,145336.41900000002,145336.41900000002,145336.41900000002,145336.41900000002,391817.39871999994,391817.39871999994 +6922800.0,147599.907,137029.764,400126.91088,92886.59413000001,92886.59413000001,92886.59413000001,61654.106499999994,238537.61488,729450.8947200001,289175.53413000004,440648.43296000006,192857.49,192857.49,192857.49,123714.332,147599.907,147599.907,248686.33620999998,106088.15024999999,157691.52209999997,275043.3525,78059.9229,99277.55295,202945.87800000003,202945.87800000003,202945.87800000003,202945.87800000003,443783.72038,443783.72038 +6926400.0,191799.82799999998,147716.862,431333.23704,101135.43814,101135.43814,101135.43814,69266.1935,347074.88504,739360.77952,325934.14287,496661.55104,265110.75,265110.75,265110.75,193987.34949999998,191799.82799999998,191799.82799999998,268530.9965,123533.93430000001,183623.28012,320273.163,90896.57388000001,115603.36074,246851.17500000002,246851.17500000002,246851.17500000002,246851.17500000002,576678.14952,576678.14952 +6930000.0,223264.23600000003,162440.775,474327.06299999997,115110.70703,115110.70703,115110.70703,76753.558,424612.85704,734332.8377600001,363328.53417,553643.48064,304563.21,304563.21,304563.21,208197.787,223264.23600000003,223264.23600000003,288554.75233,139383.33795,207182.14677999995,361364.20949999994,102558.60421999998,130435.27180999999,284007.711,284007.711,284007.711,284007.711,671281.13624,671281.13624 +6933600.0,386924.92799999996,205985.07,601476.4044,220852.03393,220852.03393,220852.03393,155525.776,917951.6925599999,835278.06528,623025.57849,949372.31008,366035.949,366035.949,366035.949,331355.248,386924.92799999996,386924.92799999996,502166.76093999995,197585.26829999997,293694.64572,512258.10299999994,145383.72827999998,184900.78194,422850.615,422850.615,422850.615,422850.615,1163354.2835199998,1163354.2835199998 +6937200.0,1100832.342,490368.87,1431877.1004,1517037.5997700002,1517037.5997700002,1517037.5997700002,1327458.5100000002,3160240.6231199997,3388624.2201600005,2616153.20841,3986519.17472,981307.581,981307.581,981307.581,1435770.6125000003,1100832.342,1100832.342,2371907.76277,1360313.30745,2021996.57058,3526738.2045000005,1000921.8904200001,1272984.5519100002,1348342.05,1348342.05,1348342.05,1348342.05,3309835.9082799996,3309835.9082799996 +6940800.0,675519.8759999999,920606.1270000001,2688169.89084,1282193.5082,1282193.5082,1282193.5082,1542565.8255,3377210.0259199995,1879751.3958400004,2334501.2590199998,3557335.25184,859450.9319999999,859450.9319999999,859450.9319999999,1141266.5635,675519.8759999999,675519.8759999999,1635516.6761699999,1628264.2599,2420284.15916,4221425.859,1198080.86284,1523733.71482,1011046.767,1011046.767,1011046.767,1011046.767,2031063.0938399998,2031063.0938399998 +6944400.0,1625638.242,1602637.8900000001,4679702.6388,731508.5684500001,731508.5684500001,731508.5684500001,1181755.5505000001,3148077.3981600003,5061940.66112,2461680.38025,3751132.008,1413138.669,1413138.669,1413138.669,894468.862,1625638.242,1625638.242,1113659.91087,1061708.6623499996,1578144.7277399995,2752578.0134999994,781207.8552599999,993549.5877299998,1793428.395,1793428.395,1793428.395,1793428.395,4887752.31428,4887752.31428 +6948000.0,1017882.852,708689.01,2069371.9092,377963.19143,377963.19143,377963.19143,369573.20050000004,1265923.1869599998,5280826.11136,608783.2947,927669.7824,970455.4439999999,970455.4439999999,970455.4439999999,961741.7669999999,1017882.852,1017882.852,1030255.47287,1681823.53755,2499895.72742,4360283.2455,1237489.91158,1573854.61909,528723.501,528723.501,528723.501,528723.501,3060434.4416799997,3060434.4416799997 +6951600.0,443651.916,322033.72199999995,940338.46824,147404.83428,147404.83428,147404.83428,219300.543,699568.3732,1515722.0128000001,398058.65883,606565.57536,257533.73400000003,257533.73400000003,257533.73400000003,204968.28799999997,443651.916,443651.916,342097.64731999993,298705.66425,444001.9997,774422.0925,219788.3653,279529.49815,278204.811,278204.811,278204.811,278204.811,1333913.42744,1333913.42744 +6955200.0,545796.441,970332.423,2833370.67516,275033.95777000004,275033.95777000004,275033.95777000004,670396.3805,1214119.97504,1783940.95168,895757.87511,1364964.38112,445001.796,445001.796,445001.796,796673.9689999999,545796.441,545796.441,484628.8323499999,510868.55114999996,759365.10566,1324474.0215,375898.34134,478072.05157,504665.334,504665.334,504665.334,504665.334,1641027.9659399998,1641027.9659399998 +6958800.0,246991.044,187676.943,548016.67356,201374.16167000003,201374.16167000003,201374.16167000003,351916.62799999997,442588.20184,409142.13888,267460.40475000005,407558.71200000006,146850.34500000003,146850.34500000003,146850.34500000003,158456.2385,246991.044,246991.044,188450.88898999998,142447.23990000002,211736.39116,369307.65900000004,104813.03084,133302.47882000002,156965.775,156965.775,156965.775,156965.775,742619.73896,742619.73896 +6962400.0,30256.515,8872.353,25907.27076,58419.563070000004,58419.563070000004,58419.563070000004,49914.4835,56421.33208,16658.139520000004,28202.051219999998,42974.55424,21919.739999999998,21919.739999999998,21919.739999999998,17829.9695,30256.515,30256.515,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12635.526000000002,12635.526000000002,12635.526000000002,12635.526000000002,90971.2551,90971.2551 +6966000.0,144135.3,84609.606,247060.04952,378635.57171000005,378635.57171000005,378635.57171000005,275598.51550000004,282029.07016,12337.789440000002,364598.51505,555578.6896,84558.177,84558.177,84558.177,350227.164,144135.3,144135.3,294069.98490999994,212567.85045,315965.05178,551101.8345,156407.94922,198921.51931,54812.628,54812.628,54812.628,54812.628,433366.80199999997,433366.80199999997 +6969600.0,22640.238,344526.342,1006016.9186399999,261412.23757,261412.23757,261412.23757,219531.65499999997,426403.44775999995,43886.231680000004,39247.65747,59805.95424,25234.932,25234.932,25234.932,438129.1845,22640.238,22640.238,310936.4904099999,130316.99579999999,193705.75671999998,337858.878,95887.56728,121950.96644,107450.90400000001,107450.90400000001,107450.90400000001,107450.90400000001,68071.64891999999,68071.64891999999 +6973200.0,129404.343,95527.49399999999,278940.28247999994,312498.21823000006,312498.21823000006,312498.21823000006,127237.6735,186127.59192,86538.70400000001,95536.72863000001,145579.77696000002,48428.406,48428.406,48428.406,109301.44750000001,129404.343,129404.343,182885.92582,55393.1136,82337.41824,143611.776,40758.38976,51837.01248,49975.086,49975.086,49975.086,49975.086,389075.72461999994,389075.72461999994 +6976800.0,1394204.1120000002,973145.328,2841584.35776,1270302.8200500002,1270302.8200500002,1270302.8200500002,1995554.7255000002,2285782.4824,2413041.02592,2234180.02899,3404464.80608,1449012.441,1449012.441,1449012.441,1240277.6645,1394204.1120000002,1394204.1120000002,908106.9610599999,1263437.12115,1877997.8936599998,3275577.7215,929640.15334,1182327.57757,1318815.8250000002,1318815.8250000002,1318815.8250000002,1318815.8250000002,4191907.03008,4191907.03008 +6980400.0,1037773.485,655110.246,1912921.91832,703633.31753,703633.31753,703633.31753,869718.4195000001,1614504.40656,2058464.2304,1302079.85733,1984121.68736,765126.3870000001,765126.3870000001,765126.3870000001,1035977.4985,1037773.485,1037773.485,656802.68134,904295.3156999999,1344162.41988,2344469.337,665382.72612,846241.78926,836763.132,836763.132,836763.132,836763.132,3120238.9449,3120238.9449 +6984000.0,937252.023,782256.3119999999,2284188.4310399997,788724.25808,788724.25808,788724.25808,998718.5424999999,1739679.84256,3038998.5209600003,1458268.7313599999,2222123.78112,881590.0560000001,881590.0560000001,881590.0560000001,1222090.5375,937252.023,937252.023,818900.56638,1170078.0966,1739227.19544,3033535.8060000003,860946.35256,1094961.97188,991997.25,991997.25,991997.25,991997.25,2818004.41582,2818004.41582 +6987600.0,924876.4470000002,797920.332,2329927.36944,884816.88889,884816.88889,884816.88889,1025966.5115000001,1731653.5918400001,3079495.9808000005,1469101.02066,2238630.12672,913268.2949999999,913268.2949999999,913268.2949999999,1225310.779,924876.4470000002,924876.4470000002,821160.0638799999,1184525.1999,1760701.6551599998,3070991.259,871576.56684,1108481.60682,998999.979,998999.979,998999.979,998999.979,2780795.18398,2780795.18398 +6991200.0,628997.835,557735.745,1628588.3754,638422.78038,638422.78038,638422.78038,577302.1765,869604.27144,1815033.44576,804366.78861,1225701.77312,474413.04300000006,474413.04300000006,474413.04300000006,607457.1055000001,628997.835,628997.835,675441.9411999999,534151.3734,793973.15256,1384836.894,393029.89944,499860.17412000004,618531.402,618531.402,618531.402,618531.402,1891186.8239,1891186.8239 +6994800.0,106161.06899999999,96851.06999999998,282805.1244,94656.96273,94656.96273,94656.96273,60210.15349999999,166940.9844,535084.1337600001,146737.63629,223600.20768000002,138705.552,138705.552,138705.552,101631.5055,106161.06899999999,106161.06899999999,188850.7491,60527.82105,89969.74882,156923.9805,44536.52018,56642.084389999996,107319.26699999999,107319.26699999999,107319.26699999999,107319.26699999999,319190.94745999994,319190.94745999994 +6998400.0,101240.17499999999,93851.64,274046.7888,75128.40269,75128.40269,75128.40269,38906.92049999999,178246.75136,587278.10496,141866.02101,216176.79392,134508.98100000003,134508.98100000003,134508.98100000003,93613.933,101240.17499999999,101240.17499999999,196268.95716999998,67113.71235,99759.14774,173998.5135,49382.43526,62805.17773,109674.405,109674.405,109674.405,109674.405,304395.4595,304395.4595 +7002000.0,105524.76,97399.97400000002,284407.92408,78002.09131000002,78002.09131000002,78002.09131000002,33977.664000000004,188078.9228,636320.0096,160472.70729,244529.83968,133342.605,133342.605,133342.605,95101.139,105524.76,105524.76,196604.50276999996,66576.54060000001,98960.68504000001,172605.84600000002,48987.182960000006,62302.49108000001,114379.545,114379.545,114379.545,114379.545,317277.77839999995,317277.77839999995 +7005600.0,117664.31399999998,113467.5,331325.1,76616.32549999999,76616.32549999999,76616.32549999999,39386.7635,190164.59704000002,643295.09056,184514.03712000002,281164.24704000005,133712.649,133712.649,133712.649,94440.95850000001,117664.31399999998,117664.31399999998,217694.91457999998,77379.3486,115018.19223999999,200613.126,56935.915759999996,72411.78547999999,119854.18500000001,119854.18500000001,119854.18500000001,119854.18500000001,353777.37075999996,353777.37075999996 +7009200.0,129569.277,125076.40499999998,365223.1025999999,83551.17408,83551.17408,83551.17408,46153.4395,204659.40696,705051.02592,257681.67852,392657.79584000004,146570.397,146570.397,146570.397,104037.55249999999,129569.277,129569.277,239959.97168,91970.32815,136706.51246,238441.5915,67671.99454,86066.06017000001,143000.49,143000.49,143000.49,143000.49,389571.62617999996,389571.62617999996 +7012800.0,154714.158,142436.679,415915.10268,97545.3644,97545.3644,97545.3644,68163.84049999999,222957.95487999998,736935.02912,286551.51587999996,436649.92896,202389.774,202389.774,202389.774,150770.0775,154714.158,154714.158,253856.94672,111336.70725,165493.0809,288650.72250000003,81921.8241,104189.16555,206700.12,206700.12,206700.12,206700.12,465173.90171999997,465173.90171999997 +7016400.0,182605.42799999999,138385.026,404084.27592000004,100493.36715,100493.36715,100493.36715,70231.1085,282467.67167999997,659683.42784,288497.20410000003,439614.7872,241008.741,241008.741,241008.741,179922.722,182605.42799999999,182605.42799999999,245702.19297,114411.89654999999,170064.10301999998,296623.43549999996,84184.55597999999,107066.93529,219594.522,219594.522,219594.522,219594.522,549033.6535199999,549033.6535199999 +7020000.0,229187.59199999995,156317.92799999999,456448.34975999995,194528.27922000003,194528.27922000003,194528.27922000003,148485.66250000003,425572.14712,676373.72864,372831.19208999997,568123.72128,283038.99600000004,283038.99600000004,283038.99600000004,214739.9135,229187.59199999995,229187.59199999995,275894.26475,153993.51855,228899.00782,399242.4555,113308.81118,144107.51489,276023.841,276023.841,276023.841,276023.841,689090.6932799999,689090.6932799999 +7023600.0,954875.169,977215.416,2853469.01472,977207.4273500001,977207.4273500001,977207.4273500001,1051238.2405,1446381.92592,1210792.7680000002,1204940.82933,1836100.3113600002,542187.42,542187.42,542187.42,1559881.6625,954875.169,954875.169,1793867.1671699996,525765.03435,781507.5325399998,1363094.5335,386859.21046,492012.21732999996,1273504.122,1273504.122,1273504.122,1273504.122,2870991.34146,2870991.34146 +7027200.0,1484188.452,1417620.075,4139450.6189999995,1926002.3352900003,1926002.3352900003,1926002.3352900003,1450737.6660000002,2264136.51656,2255483.5136,2200415.83188,3353014.60096,828055.1939999999,828055.1939999999,828055.1939999999,1141486.2515,1484188.452,1484188.452,1478167.8099499997,1169750.23695,1738739.85838,3032685.7995000007,860705.1126200001,1094655.1600100002,1620977.1360000002,1620977.1360000002,1620977.1360000002,1620977.1360000002,4462459.94568,4462459.94568 +7030800.0,1575037.8599999999,1344205.7310000001,3925080.7345200004,1496977.6198300002,1496977.6198300002,1496977.6198300002,1467772.7435,2590122.7236,5915896.6726400005,1952188.13454,2974762.8716800003,1720474.029,1720474.029,1720474.029,1526037.6705,1575037.8599999999,1575037.8599999999,941978.5192999999,2279401.57215,3388147.5220599994,5909559.6315,1677189.30494,2133069.61937,1111403.7480000001,1111403.7480000001,1111403.7480000001,1111403.7480000001,4735613.8324,4735613.8324 +7034400.0,1101414.438,745829.565,2177822.3298,876129.2174800001,876129.2174800001,876129.2174800001,1794806.2965,2300466.3389600003,3793212.6982400003,2217089.0595,3378421.424,1445320.932,1445320.932,1445320.932,1656520.4005,1101414.438,1101414.438,1150352.2166499998,1968795.1043999998,2926455.9329599994,5104283.603999999,1448644.29904,1842403.31992,1243162.605,1243162.605,1243162.605,1243162.605,3311586.07692,3311586.07692 +7038000.0,794220.207,543499.7609999999,1587019.30212,785770.9643300001,785770.9643300001,785770.9643300001,1179685.682,2206675.0571199995,3355965.63712,1495924.63818,2279504.21056,671420.754,671420.754,671420.754,1299971.6415,794220.207,794220.207,449331.7584599999,1139826.09105,1694260.0168199998,2955104.6805,838686.8521799999,1066652.0703899998,805650.7050000001,805650.7050000001,805650.7050000001,805650.7050000001,2387955.42238,2387955.42238 +7041600.0,678711.33,554487.609,1619103.81828,451605.25861,451605.25861,451605.25861,806739.0275,1622568.20264,1803493.4431999999,1197857.03541,1825305.95872,616847.61,616847.61,616847.61,809967.1684999999,678711.33,678711.33,509386.49397999997,790784.4105,1175437.5681999999,2050181.805,581861.1218,740018.0039,688197.402,688197.402,688197.402,688197.402,2040658.7321999997,2040658.7321999997 +7045200.0,425346.99600000004,319411.18799999997,932680.6689599999,223973.40240000002,223973.40240000002,223973.40240000002,408739.75800000003,813952.3710400001,1082348.4275200001,637120.4651700001,970850.2326400002,373698.387,373698.387,373698.387,461889.533,425346.99600000004,425346.99600000004,289755.42934,411525.76094999997,611700.01998,1066918.6395,302801.67102,385106.82321,409344.9630000001,409344.9630000001,409344.9630000001,409344.9630000001,1278876.63464,1278876.63464 +7048800.0,277052.27100000007,181018.83899999998,528575.0098799999,94373.24710000002,94373.24710000002,94373.24710000002,229731.9255,528073.58456,531625.69728,380195.11152000003,579344.9318400001,224021.832,224021.832,224021.832,216810.132,277052.27100000007,277052.27100000007,135254.49197,190958.27354999998,283844.14982,495077.00549999997,140507.56918,178699.22389,221764.506,221764.506,221764.506,221764.506,833003.8281400001,833003.8281400001 +7052400.0,212950.49700000003,115675.17299999998,337771.50515999994,65403.25165,65403.25165,65403.25165,144270.63350000003,400345.07576,325984.8192,259593.26211,395570.68512000004,158595.981,158595.981,158595.981,117970.1635,212950.49700000003,212950.49700000003,81425.41159999999,93504.03075,138986.2383,242417.8575,68800.4967,87501.30285000001,150698.41199999998,150698.41199999998,150698.41199999998,150698.41199999998,640271.16098,640271.16098 +7056000.0,238662.50399999996,141268.33800000002,412503.54696,73204.87592,73204.87592,73204.87592,176733.298,450883.87512000004,399651.0144000001,302426.04504,460839.68768,185047.239,185047.239,185047.239,152213.4215,238662.50399999996,238662.50399999996,97992.02322,127263.99644999999,189167.71817999997,329943.6945,93641.16282,119093.96211,177306.993,177306.993,177306.993,177306.993,717578.5953599999,717578.5953599999 +7059600.0,754896.864,657733.077,1920580.58484,396075.79033,396075.79033,396075.79033,828436.938,1462226.66936,2347555.9596800003,1194619.7279100001,1820372.9187200002,728126.379,728126.379,728126.379,976187.5655,754896.864,754896.864,643282.46398,940451.80005,1397906.13242,2438208.3705,691986.7565799999,880077.11659,793723.047,793723.047,793723.047,793723.047,2269723.2377599995,2269723.2377599995 +7063200.0,907636.5869999999,778075.9380000001,2271981.73896,879621.42807,879621.42807,879621.42807,1046635.4325,1709840.6604,2941647.4579200004,1465647.91842,2233368.25664,867276.831,867276.831,867276.831,1164359.0385,907636.5869999999,907636.5869999999,811098.7223299999,1135261.87065,1687475.6694599998,2943271.5165,835328.4875399999,1062380.86167,964873.092,964873.092,964873.092,964873.092,2728960.67158,2728960.67158 +7066800.0,934243.3559999999,798219.081,2330799.71652,1034897.6789800001,1034897.6789800001,1034897.6789800001,1071762.825,1757536.26744,3069903.58528,1508276.2426200002,2298325.70304,894912.051,894912.051,894912.051,1197878.577,934243.3559999999,934243.3559999999,902509.7805100001,1163787.3895499997,1729876.5642199996,3017226.5654999996,856317.6347799998,1089075.1126899999,996065.2920000001,996065.2920000001,996065.2920000001,996065.2920000001,2808958.3570399997,2808958.3570399997 +7070400.0,956791.2000000001,837277.4069999999,2444850.0284399996,1075962.18818,1075962.18818,1075962.18818,1084079.5665000002,1805311.5729599998,3165442.6060800003,1541462.4239700001,2348895.12224,924978.1560000001,924978.1560000001,924978.1560000001,1231099.7089999998,956791.2000000001,956791.2000000001,1029926.51216,1196896.2327,1779090.2026799999,3103064.307,880679.20332,1120058.44986,1040615.802,1040615.802,1040615.802,1040615.802,2876752.208,2876752.208 +7074000.0,898307.133,774761.6670000001,2262304.06764,879984.03251,879984.03251,879984.03251,832724.627,1561730.2712800002,2368479.39648,1271796.77163,1937976.0329600002,728309.1059999999,728309.1059999999,728309.1059999999,980478.0404999999,898307.133,898307.133,1061139.1408799998,970976.8930500001,1443279.23362,2517347.5005,714447.19538,908642.5739900001,920564.73,920564.73,920564.73,920564.73,2700910.11322,2700910.11322 +7077600.0,413541.03899999993,295086.549,861652.72308,442649.4800200001,442649.4800200001,442649.4800200001,348059.145,770653.1043199999,992387.3651200002,584168.3782200001,890161.3382400001,332372.613,332372.613,332372.613,434263.26649999997,413541.03899999993,413541.03899999993,658079.5920399999,218576.24819999997,324896.05288,566679.162,160828.94311999998,204544.19275999998,498292.647,498292.647,498292.647,498292.647,1243380.0572599997,1243380.0572599997 +7081200.0,148196.745,109348.497,319297.61124,121768.79561,121768.79561,121768.79561,63642.655999999995,309394.98896,767236.0467200001,252568.82889,384866.78687999997,192892.35600000003,192892.35600000003,192892.35600000003,120447.215,148196.745,148196.745,230384.11786,91237.01084999999,135616.49513999998,236540.39849999998,67132.41786,85379.82003,145164.051,145164.051,145164.051,145164.051,445578.2133,445578.2133 +7084800.0,157787.862,127999.299,373757.95307999995,106511.08600000001,106511.08600000001,106511.08600000001,50431.9795,361016.44256,839799.7932800001,293338.66569,446992.25248,211637.799,211637.799,211637.799,124422.80200000001,157787.862,157787.862,247119.10833999998,95656.22099999999,142185.2964,247997.61,70384.0836,89515.3278,151949.574,151949.574,151949.574,151949.574,474415.50508,474415.50508 +7088400.0,172268.133,164161.509,479351.60627999995,104466.49301000002,104466.49301000002,104466.49301000002,56601.709500000004,377567.89608,889542.9574400001,313194.35615999997,477248.54271999997,224768.19900000002,224768.19900000002,224768.19900000002,126159.63500000001,172268.133,172268.133,273183.66621,110017.00259999999,163531.44583999997,285229.266,80950.78216,102954.18268,168665.865,168665.865,168665.865,168665.865,517952.85322,517952.85322 +7092000.0,191399.223,186703.461,545174.10612,128645.26004000001,128645.26004000001,128645.26004000001,71077.10399999999,393183.78744,956711.2576000001,360036.67665000004,548627.3168,306410.211,306410.211,306410.211,132576.58749999997,191399.223,191399.223,299962.34554,123442.04789999999,183486.69835999998,320034.939,90828.96364,115517.37322,231387.33599999998,231387.33599999998,231387.33599999998,231387.33599999998,575473.6638199999,575473.6638199999 +7095600.0,223298.463,204697.296,597716.10432,153941.14846,153941.14846,153941.14846,78834.23800000001,446258.70608,958437.6633600001,387771.78761999996,590890.34304,368449.707,368449.707,368449.707,218847.93349999998,223298.463,223298.463,320397.52472,150119.9406,223141.24504,389199.846,110458.62296000001,140482.61108,289476.87,289476.87,289476.87,289476.87,671384.04542,671384.04542 +7099200.0,287467.755,240586.173,702511.62516,167775.66454,167775.66454,167775.66454,84343.6335,600867.89392,1028582.2636800001,473084.73933,720891.03136,442480.13700000005,442480.13700000005,442480.13700000005,266832.9615,287467.755,287467.755,354831.29981,175449.4587,260791.54107999997,454868.967,129096.14491999999,164186.03666,380504.53500000003,380504.53500000003,380504.53500000003,380504.53500000003,864319.7167,864319.7167 +7102800.0,367114.863,260040.54899999997,759318.4030799998,183241.87618000002,183241.87618000002,183241.87618000002,92510.06450000001,665991.3632799999,1142092.9881600002,549078.88707,836691.6374400001,472059.25800000003,472059.25800000003,472059.25800000003,281642.739,367114.863,367114.863,391700.75308,219088.8081,325657.93204,568008.021,161206.08596,205023.84758,453177.243,453177.243,453177.243,453177.243,1103792.02142,1103792.02142 +7106400.0,451426.017,299394.06,874230.6552,276661.32692,276661.32692,276661.32692,176759.1105,794002.0725599999,1396146.21056,671890.11372,1023832.5542400001,508672.25099999993,508672.25099999993,508672.25099999993,334784.177,451426.017,451426.017,402946.49940999993,296288.1828,440408.60751999996,768154.548,218009.57648,277267.21304,532632.3300000001,532632.3300000001,532632.3300000001,532632.3300000001,1357287.55778,1357287.55778 +7110000.0,1092437.787,1137572.994,3321713.14248,1053633.81409,1053633.81409,1053633.81409,1070583.1570000001,1704936.45616,1755884.0864000001,1428580.52778,2176884.61376,686284.1880000001,686284.1880000001,686284.1880000001,1668540.4295,1092437.787,1092437.787,2044852.46212,649277.45505,965098.83442,1683311.9205,477739.95458,607595.44559,1462600.656,1462600.656,1462600.656,1462600.656,3284596.27958,3284596.27958 +7113600.0,1660147.7519999999,1580601.0990000002,4615355.20908,2150536.1400599997,2150536.1400599997,2150536.1400599997,1652928.2595,2504384.62656,2419875.5264000003,2462618.76714,3752561.9308800003,877064.883,877064.883,877064.883,1540022.358,1660147.7519999999,1660147.7519999999,1827354.0312299998,1349995.86765,2006660.5242599996,3499989.2864999995,993330.29274,1263329.46627,1770949.017,1770949.017,1770949.017,1770949.017,4991510.907679999,4991510.907679999 +7117200.0,1789073.583,1695732.0270000002,4951537.518840001,1918320.25506,1918320.25506,1918320.25506,1904144.0180000002,3059565.55224,7463398.0992,2256436.49028,3438379.41376,1978951.479,1978951.479,1978951.479,1856583.1130000004,1789073.583,1789073.583,1165995.3227,2746717.1158499997,4082774.5771399997,7121118.4485,2021041.23586,2570384.6590299997,1297436.295,1297436.295,1297436.295,1297436.295,5379147.90622,5379147.90622 +7120800.0,1324632.834,955151.5530000001,2789042.53476,1198060.71891,1198060.71891,1198060.71891,2068179.3265000002,2688919.16576,4530093.980160001,2616306.71547,3986753.0902400003,1802970.1380000003,1802970.1380000003,1802970.1380000003,2017373.792,1324632.834,1324632.834,1359474.08545,2405875.6484999997,3576141.0873999996,6237455.385,1770249.2426,2251424.3723,1450447.887,1450447.887,1450447.887,1450447.887,3982729.3875599997,3982729.3875599997 +7124400.0,884565.111,628031.01,1833850.5492,990701.39839,990701.39839,990701.39839,1571382.7850000001,2591752.76688,4672681.591680001,1793864.28459,2733507.48128,742411.0290000001,742411.0290000001,742411.0290000001,1587489.5470000003,884565.111,884565.111,561650.0107399999,1415402.58195,2103882.35638,3669562.2495,1041456.71462,1324537.23101,951414.2370000001,951414.2370000001,951414.2370000001,951414.2370000001,2659592.43374,2659592.43374 +7128000.0,809658.2550000001,672783.138,1964526.76296,640718.78134,640718.78134,640718.78134,1078593.5405000001,2024453.91128,2182199.83744,1505089.7612100001,2293470.1123200003,768911.688,768911.688,768911.688,1038442.6395,809658.2550000001,809658.2550000001,604348.94351,1010304.1345500001,1501736.02222,2619307.0155,743384.2767800001,945445.10369,825573.993,825573.993,825573.993,825573.993,2434372.4867000002,2434372.4867000002 +7131600.0,406538.77800000005,282886.36199999996,826028.17704,173808.30808000005,173808.30808000005,173808.30808000005,366564.4675,866625.02464,964409.4016000001,621858.21579,947593.4716800001,343065.348,343065.348,343065.348,443252.817,406538.77800000005,406538.77800000005,250828.22439999998,359189.42939999996,533906.26296,931231.8539999999,264292.46904,336130.35491999995,391356.92699999997,391356.92699999997,391356.92699999997,391356.92699999997,1222326.59252,1222326.59252 +7135200.0,79177.32900000001,14312.478,41792.43576,77080.81425000001,77080.81425000001,77080.81425000001,53520.2115,127183.42655999999,59826.8352,78697.04955,119919.31360000001,23788.577999999998,23788.577999999998,23788.577999999998,27608.903000000002,79177.32900000001,79177.32900000001,12767.00022,19409.973299999998,28851.367719999995,50322.15299999999,14281.906279999997,18163.900939999996,40388.886,40388.886,40388.886,40388.886,238059.83586000002,238059.83586000002 +7138800.0,41767.69499999999,4694.85,13708.962,50470.51119,50470.51119,50470.51119,39254.5755,48211.93895999999,16050.078080000001,32205.174540000004,49074.551680000004,7080.963,7080.963,7080.963,13803.846000000001,41767.69499999999,41767.69499999999,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,17273.268,17273.268,17273.268,17273.268,125581.53629999998,125581.53629999998 +7142400.0,43638.561,5144.892,15023.08464,55454.06746000001,55454.06746000001,55454.06746000001,44095.583,51864.35088,18037.17952,32122.658819999997,48948.81344,7945.608,7945.608,7945.608,15529.3285,43638.561,43638.561,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,18111.639,18111.639,18111.639,18111.639,131206.60674,131206.60674 +7146000.0,404874.291,170398.242,497562.86663999996,125997.29769,125997.29769,125997.29769,189700.50749999998,820108.2157599999,610116.71552,503292.99867000006,766922.6646400001,291961.986,291961.986,291961.986,151020.7055,404874.291,404874.291,150076.20393999998,119681.22194999999,177896.53238,310284.6495,88061.73861999999,111997.98301,253842.30599999998,253842.30599999998,253842.30599999998,253842.30599999998,1217322.03494,1217322.03494 +7149600.0,812929.626,669332.1359999999,1954449.83712,224746.02271000002,224746.02271000002,224746.02271000002,843094.6825,1643027.3578400002,2131998.0160000003,1238653.6207500002,1887472.1840000004,779418.186,779418.186,779418.186,913653.4890000001,812929.626,812929.626,499777.4992599999,795101.3743499999,1181854.38854,2061373.9334999998,585037.55446,744057.82933,786684.4049999998,786684.4049999998,786684.4049999998,786684.4049999998,2444208.40884,2444208.40884 +7153200.0,939140.955,812277.3929999999,2371849.98756,575641.2029500001,575641.2029500001,575641.2029500001,1093724.6705,1837712.4827999999,3038903.11424,1528367.04783,2328940.26336,919050.735,919050.735,919050.735,1247660.8934999998,939140.955,939140.955,855323.1898899999,1219814.316,1813156.0944,3162481.5600000005,897542.3856,1141505.2488000002,1019551.3949999999,1019551.3949999999,1019551.3949999999,1019551.3949999999,2823683.8046999997,2823683.8046999997 +7156800.0,983779.7189999999,840003.4170000001,2452809.97764,920896.0469500001,920896.0469500001,920896.0469500001,1117317.2955,1857835.0496,3259662.62272,1588090.96383,2419948.1353599997,938881.089,938881.089,938881.089,1264926.936,983779.7189999999,983779.7189999999,880668.21505,1230979.4208,1829752.12672,3191428.128,905757.6972800001,1151953.58144,1047477.6510000001,1047477.6510000001,1047477.6510000001,1047477.6510000001,2957897.68846,2957897.68846 +7160400.0,906089.7449999999,789360.7559999999,2304933.40752,830386.0804800001,830386.0804800001,830386.0804800001,846893.4670000001,1579141.0866399999,2313411.81056,1299292.1697,1979873.7824,737091.5730000001,737091.5730000001,737091.5730000001,993324.8884999999,906089.7449999999,906089.7449999999,878946.6823799999,964545.3431999999,1433719.2508799997,2500673.1119999997,709714.84512,902623.9137599999,905390.7390000001,905390.7390000001,905390.7390000001,905390.7390000001,2724309.8332999996,2724309.8332999996 +7164000.0,419721.25800000003,298524.97199999995,871692.9182399999,421784.65758,421784.65758,421784.65758,350917.8435,784370.09048,904857.10144,582828.96126,888120.32192,334786.926,334786.926,334786.926,434014.952,419721.25800000003,419721.25800000003,667676.0278499998,214509.5703,318851.26252,556135.923,157836.67148,200738.58554,490499.75099999993,490499.75099999993,490499.75099999993,490499.75099999993,1261961.91572,1261961.91572 +7167600.0,147802.002,108019.905,315418.1226,112107.12843000001,112107.12843000001,112107.12843000001,63539.34649999999,310470.57096,747770.8998400001,237738.97076999999,362268.90784,189897.47999999998,189897.47999999998,189897.47999999998,118602.155,147802.002,147802.002,227714.29849999998,89548.72785000001,133106.99794,232163.3685,65890.17506000001,83799.92063000001,142695.294,142695.294,142695.294,142695.294,444391.35268,444391.35268 +7171200.0,143271.68399999998,114193.695,333445.5894,94594.54521000001,94594.54521000001,94594.54521000001,46488.984500000006,318179.01472,727721.0617600002,229959.87902999998,350415.05376,181740.099,181740.099,181740.099,110346.68399999998,143271.68399999998,143271.68399999998,220856.33998999998,82919.60280000001,123253.33552000001,214976.74800000002,61012.44848000001,77596.36904,137431.101,137431.101,137431.101,137431.101,430770.19655999995,430770.19655999995 +7174800.0,144229.94400000002,128409.693,374956.30356,86493.35673000001,86493.35673000001,86493.35673000001,47305.3595,298518.22255999997,690204.17792,223158.98304000002,340051.78368000005,167032.12800000003,167032.12800000003,167032.12800000003,102403.2975,144229.94400000002,144229.94400000002,214878.15453,87457.3119,129998.27596,226741.179,64351.30604,81842.76842000001,132086.061,132086.061,132086.061,132086.061,433651.36496,433651.36496 +7178400.0,158567.55599999998,155481.459,454005.86027999996,94097.54530000001,94097.54530000001,94097.54530000001,56028.864499999996,322849.65984,774790.87936,278421.08028,424260.69376000005,193967.18699999998,193967.18699999998,193967.18699999998,108968.937,158567.55599999998,158567.55599999998,253582.19471,98741.81474999999,146771.78389999998,255997.2975,72654.4711,92402.83405,168143.712,168143.712,168143.712,168143.712,476759.78504,476759.78504 +7182000.0,175861.43700000003,163035.018,476062.25256,118320.61428000001,118320.61428000001,118320.61428000001,63003.97600000001,328821.70808,780000.3104,317721.18672,484146.57024000003,254577.96000000002,254577.96000000002,254577.96000000002,120388.0685,175861.43700000003,175861.43700000003,255566.29565999997,111977.6643,166445.81212,290312.463,82393.44188,104788.97474,211103.538,211103.538,211103.538,211103.538,528756.7205800001,528756.7205800001 +7185600.0,203688.138,177873.12,519389.51039999997,131794.28823,131794.28823,131794.28823,68769.435,371490.37744,775245.30432,335999.40402,511999.09184,294298.596,294298.596,294298.596,201257.6335,203688.138,203688.138,273418.16332999995,128373.08085,190816.28313999998,332819.0985,94457.22986,120131.84603,251646.40499999997,251646.40499999997,251646.40499999997,251646.40499999997,612422.3349199999,612422.3349199999 +7189200.0,252950.079,194274.02400000003,567280.15008,145532.42264,145532.42264,145532.42264,77160.84950000001,471123.59816,805322.8902400001,393662.06439,599866.00288,340512.576,340512.576,340512.576,212798.3235,252950.079,252950.079,292222.16569,143198.5797,212853.19747999997,371255.577,105365.86852,134005.58445999998,307006.308,307006.308,307006.308,307006.308,760536.57086,760536.57086 +7192800.0,409242.423,234042.92700000003,683405.34684,250703.89663000003,250703.89663000003,250703.89663000003,155959.61849999998,951240.5218399998,963135.1033600001,633081.9621,964696.3232,384186.363,384186.363,384186.363,337246.25899999996,409242.423,409242.423,515983.64466999995,202906.64025,301604.43809999997,526054.2525,149299.2069,189880.53495,428068.72200000007,428068.72200000007,428068.72200000007,428068.72200000007,1230455.55182,1230455.55182 +7196400.0,1108541.1570000001,519662.99399999995,1517415.94248,1531050.8417600002,1531050.8417600002,1531050.8417600002,1326260.4775,3173544.1781599997,3579817.5353600006,2644121.07225,4029136.872000001,1009288.953,1009288.953,1009288.953,1428053.9980000001,1108541.1570000001,1108541.1570000001,2384852.1605999996,1427672.6685,2122120.8554,3701373.585,1050485.0746,1336019.6083000002,1344313.908,1344313.908,1344313.908,1344313.908,3333013.74538,3333013.74538 +7200000.0,597892.119,869230.4370000002,2538152.8760400005,1300131.93145,1300131.93145,1300131.93145,1515221.0045,3187597.5132799996,1647771.7459200004,2162480.30187,3295208.07904,766787.841,766787.841,766787.841,1081829.273,597892.119,597892.119,1631776.6414299998,1576382.8931999998,2343166.6708799996,4086918.6119999997,1159906.42512,1475183.00376,912008.376,912008.376,912008.376,912008.376,1797662.3044599998,1797662.3044599998 +7203600.0,1491365.172,1397062.518,4079422.5525599997,615130.9721700001,615130.9721700001,615130.9721700001,985787.5650000001,2776727.36176,4262315.333120001,2145039.0511200004,3268630.9350400004,1219542.261,1219542.261,1219542.261,804939.7685,1491365.172,1491365.172,1230765.84475,919802.64015,1367212.81326,2384673.5115,676793.05374,860753.58177,1610707.332,1610707.332,1610707.332,1610707.332,4484037.95048,4484037.95048 +7207200.0,886724.4540000001,654691.755,1911699.9245999998,316557.42866000003,316557.42866000003,316557.42866000003,260073.0475,1118230.8191999998,4861323.56864,438809.10318,668661.4905600001,798516.39,798516.39,798516.39,732730.9079999999,886724.4540000001,886724.4540000001,672905.2963099999,1469993.2204500001,2185026.95978,3811093.5345000005,1081624.64122,1375623.2853100002,372367.122,372367.122,372367.122,372367.122,2666084.85836,2666084.85836 +7210800.0,483464.4330000001,379652.703,1108585.89276,149360.84372,149360.84372,149360.84372,251124.4715,808091.69744,1696152.75584,487001.6308500001,742097.7232000001,312500.151,312500.151,312500.151,247847.75749999995,483464.4330000001,483464.4330000001,402309.36681,295081.16939999996,438614.4789599999,765025.254,217121.45304,276137.68692,325028.79000000004,325028.79000000004,325028.79000000004,325028.79000000004,1453616.39522,1453616.39522 +7214400.0,584318.403,1020388.1699999999,2979533.4563999996,265967.63798000006,265967.63798000006,265967.63798000006,691509.35,1352300.0048,2042926.02368,933780.46587,1422903.5670399999,501573.46800000005,501573.46800000005,501573.46800000005,831105.03,584318.403,584318.403,561750.6503699999,553618.8364500001,822909.97418,1435308.0945000001,407354.10682000004,518077.8741100001,552115.653,552115.653,552115.653,552115.653,1756850.66502,1756850.66502 +7218000.0,410219.517,361163.781,1054598.24052,218907.06640000004,218907.06640000004,218907.06640000004,491408.99150000006,855215.86048,1147149.9251200003,547792.10745,834730.8304,348809.142,348809.142,348809.142,275454.51499999996,410219.517,410219.517,392969.92449,348087.5208,517404.16672,902449.128,256123.65728,325741.16144000005,346101.97199999995,346101.97199999995,346101.97199999995,346101.97199999995,1233393.34778,1233393.34778 +7221600.0,271273.569,199496.13,582528.6996,80359.66323000002,80359.66323000002,80359.66323000002,171961.0445,586669.26544,684538.5376,330601.97562,503774.43904,225960.57299999997,225960.57299999997,225960.57299999997,156134.5765,271273.569,271273.569,279194.53562,184981.21469999998,274959.73147999996,479580.92699999997,136109.63452,173105.87746,220343.84699999998,220343.84699999998,220343.84699999998,220343.84699999998,815629.1974599999,815629.1974599999 +7225200.0,375215.61600000004,249203.376,727673.85792,573664.0050900001,573664.0050900001,573664.0050900001,591836.007,776720.3211999999,436689.6352,683482.84305,1041497.6656,235679.46600000001,235679.46600000001,235679.46600000001,637431.018,375215.61600000004,375215.61600000004,611179.8072899999,416348.2377,618868.24468,1079421.357,306350.06132,389619.70886,197094.73200000002,197094.73200000002,197094.73200000002,197094.73200000002,1128148.28544,1128148.28544 +7228800.0,251885.05799999996,630142.458,1840015.97736,320880.81465,320880.81465,320880.81465,384799.33449999994,968648.5632000001,517360.37440000003,360392.58969,549169.66048,284259.411,284259.411,284259.411,702802.968,251885.05799999996,251885.05799999996,697570.6684699999,344140.164,511536.7376,892215.24,253219.18240000002,322047.21520000004,309210.15,309210.15,309210.15,309210.15,757334.4077199999,757334.4077199999 +7232400.0,648951.21,679133.6460000001,1983070.2463200002,493837.38976000005,493837.38976000005,493837.38976000005,758188.8300000001,1602868.9715999998,2293563.2307200003,1092109.00092,1664166.0966400001,658655.8319999999,658655.8319999999,658655.8319999999,910712.3585,648951.21,648951.21,753866.7016400001,808736.44455,1202121.82622,2096724.1155,595070.27278,756817.56169,684260.1749999999,684260.1749999999,684260.1749999999,684260.1749999999,1951179.9714,1951179.9714 +7236000.0,1929741.336,1671342.645,4880320.523399999,2478425.33191,2478425.33191,2478425.33191,2755677.6799999997,3247759.5697599994,5516825.453440001,3389194.5248700003,5164486.895040001,2114747.949,2114747.949,2114747.949,2428697.7890000003,1929741.336,1929741.336,1725075.34563,2438094.82815,3624032.3124599997,6320986.5915,1793956.19454,2281575.16017,2114349.522,2114349.522,2114349.522,2114349.522,5802088.950239999,5802088.950239999 +7239600.0,1278778.8329999999,809559.2160000001,2363912.9107200005,1147643.6875200002,1147643.6875200002,1147643.6875200002,1245421.2155000002,2114288.6106399996,3185968.4659200003,1776289.5133200001,2706726.87744,1082075.1239999998,1082075.1239999998,1082075.1239999998,1339441.922,1278778.8329999999,1278778.8329999999,857259.4553899999,1270702.48095,1888797.26798,3294413.8395000002,934986.0230200001,1189126.51921,1154984.727,1154984.727,1154984.727,1154984.727,3844861.6912199995,3844861.6912199995 +7243200.0,996270.783,799179.135,2333603.0741999997,1062600.22352,1062600.22352,1062600.22352,1039292.1979999999,1772546.6267199998,3143313.04512,1501798.60887,2288455.0230400003,924486.771,924486.771,924486.771,1234937.5675,996270.783,996270.783,1043642.6552499998,1211521.08645,1800828.87418,3140980.5945,891440.2068200001,1133744.42411,1040070.5129999999,1040070.5129999999,1040070.5129999999,1040070.5129999999,2995454.15422,2995454.15422 +7246800.0,935787.0,805067.277,2350796.44884,1052881.73507,1052881.73507,1052881.73507,1062760.6675,1745056.2808800002,3266179.971200001,1485412.18665,2263485.2368,924301.119,924301.119,924301.119,1232896.7245,935787.0,935787.0,1044949.69098,1216918.21365,1808851.2706600002,3154973.1465000003,895411.4263400001,1138795.0690700002,1047645.4199999999,1047645.4199999999,1047645.4199999999,1047645.4199999999,2813599.58,2813599.58 +7250400.0,659869.248,573683.229,1675155.0286800002,688102.66965,688102.66965,688102.66965,584147.1125,895869.92256,2007345.2684799999,826413.33327,1259296.5078399999,490929.7860000001,490929.7860000001,490929.7860000001,617220.2715,659869.248,659869.248,776537.62654,568115.55225,844458.1788999999,1472892.1725,418020.8261,531643.93655,661478.406,661478.406,661478.406,661478.406,1984006.8723199998,1984006.8723199998 +7254000.0,114617.85,102808.54200000002,300200.94264,115870.16903000002,115870.16903000002,115870.16903000002,62072.419499999996,186533.70552000002,704201.2326400001,164421.35787,250546.83104,149887.84500000003,149887.84500000003,149887.84500000003,109631.97,114617.85,114617.85,209349.13167999996,82091.77469999998,122022.83547999998,212830.52699999997,60403.33051999999,76821.68546,125825.385,125825.385,125825.385,125825.385,344617.669,344617.669 +7257600.0,111285.65099999998,101760.74699999999,297141.38123999996,92711.71844000001,92711.71844000001,92711.71844000001,41340.376000000004,196551.45464,703673.52,205186.20528000002,312664.69376000005,147419.415,147419.415,147419.415,104247.82549999999,111285.65099999998,111285.65099999998,214508.98222,75484.46699999999,112201.6028,195700.47,55541.6572,70638.5506,125888.199,125888.199,125888.199,125888.199,334598.85733999993,334598.85733999993 +7261200.0,119208.65399999998,111945.14700000003,326879.82924000005,88149.65137,88149.65137,88149.65137,39305.6055,208611.21816000002,709017.2320000001,230833.86753,351746.84576,147804.66,147804.66,147804.66,104839.5425,119208.65399999998,119208.65399999998,221015.32973,75978.7047,112936.24748,196981.82700000002,55905.31852000001,71101.05946,132586.266,132586.266,132586.266,132586.266,358420.68635999993,358420.68635999993 +7264800.0,129634.758,126130.587,368301.31404,84505.08033000001,84505.08033000001,84505.08033000001,44144.989,223338.64112,714997.2281599999,249252.4881,379813.3152,157655.81699999998,157655.81699999998,157655.81699999998,103533.7275,129634.758,129634.758,246053.99637,89532.75059999998,133083.24904,232121.946,65878.41896,83784.96908,140980.053,140980.053,140980.053,140980.053,389768.50572,389768.50572 +7268400.0,146860.60499999998,137892.99,402647.53079999995,91490.48238,91490.48238,91490.48238,57632.064,278856.30912,748155.56224,293263.22109,446877.28928,178868.496,178868.496,178868.496,113134.99050000001,146860.60499999998,146860.60499999998,255085.65640999997,103801.32585,154292.34113999997,269114.5485,76377.27186,97137.53702999999,187392.261,187392.261,187392.261,187392.261,441560.8856999999,441560.8856999999 +7272000.0,211488.075,163514.91,477463.5372,111433.42947,111433.42947,111433.42947,77076.42599999999,403803.60552,837182.50048,361338.56451000005,550611.14592,310773.297,310773.297,310773.297,211131.6025,211488.075,211488.075,299564.35652,137987.76870000002,205107.74508000002,357746.06700000004,101531.74092000001,129129.29466000001,267405.42600000004,267405.42600000004,267405.42600000004,267405.42600000004,635874.1455000001,635874.1455000001 +7275600.0,245393.13299999997,175434.288,512268.12096,123191.07746000001,123191.07746000001,123191.07746000001,82026.71049999999,479346.84375999996,808405.6512000001,397791.55983000004,606158.5673600001,357513.003,357513.003,357513.003,227326.715,245393.13299999997,245393.13299999997,313355.82901999995,150440.8788,223618.29392,390031.908,110694.77008,140782.94584,307562.84400000004,307562.84400000004,307562.84400000004,307562.84400000004,737815.3532199999,737815.3532199999 +7279200.0,416022.16799999995,239042.478,698004.03576,238413.78682,238413.78682,238413.78682,160276.529,981450.56736,924857.2940800001,658861.29981,1003979.12352,405698.448,405698.448,405698.448,351024.4255,416022.16799999995,416022.16799999995,528937.49896,209607.07364999998,311564.09465999994,543425.7465,154229.40234,196150.81707,457638.537,457638.537,457638.537,457638.537,1250839.9851199999,1250839.9851199999 +7282800.0,1108278.726,509409.45300000004,1487475.6027600002,1522812.7710400003,1522812.7710400003,1522812.7710400003,1333990.2975,3187228.96256,3471863.596800001,2631851.05134,4010439.69728,991200.633,991200.633,991200.633,1437769.0635000002,1108278.726,1108278.726,2374929.19794,1375791.2410499998,2045003.2768199996,3566866.1805,1012310.5921799999,1287468.8403899998,1356777.1199999999,1356777.1199999999,1356777.1199999999,1356777.1199999999,3332224.70284,3332224.70284 +7286400.0,641788.686,899393.244,2626228.27248,1263097.5850900002,1263097.5850900002,1263097.5850900002,1515568.257,3314930.3504000003,1783476.0710400003,2263421.71839,3449023.5708800005,812154.021,812154.021,812154.021,1097848.7275,641788.686,641788.686,1687914.29573,1602841.9846499998,2382495.9870599997,4155516.2564999997,1179375.0899399999,1499943.48687,972427.185,972427.185,972427.185,972427.185,1929644.6492399997,1929644.6492399997 +7290000.0,1578402.06,1535101.3499999999,4482495.942,682495.2882000001,682495.2882000001,682495.2882000001,1095642.023,3019205.96048,4783910.00768,2341960.62891,3568701.91072,1332805.0860000001,1332805.0860000001,1332805.0860000001,856289.6124999999,1578402.06,1578402.06,999175.4173699999,993285.5930999999,1476439.3260399997,2575184.871,730861.99196,929519.11058,1723675.815,1723675.815,1723675.815,1723675.815,4745728.8604,4745728.8604 +7293600.0,985927.8570000001,695181.309,2029929.42228,358015.57198,358015.57198,358015.57198,337397.7145,1248308.77168,5193836.0832,576285.33039,878149.0748800001,942244.341,942244.341,942244.341,898176.02,985927.8570000001,985927.8570000001,932495.2195,1633602.5446499998,2428219.09106,4235265.8565,1202008.7859399999,1528729.2948699999,491156.796,491156.796,491156.796,491156.796,2964356.42338,2964356.42338 +7297200.0,510467.562,391565.385,1143370.9242,156724.77205000003,156724.77205000003,156724.77205000003,295359.85150000005,868775.8616000001,1839209.6217600002,527681.19012,804085.62304,344322.351,344322.351,344322.351,278097.14449999994,510467.562,510467.562,433359.02791999996,384470.1531,571484.03004,996774.471,282894.08796,359788.11858,362729.63399999996,362729.63399999996,362729.63399999996,362729.63399999996,1534805.8030799998,1534805.8030799998 +7300800.0,600693.075,1027808.1089999999,3001199.6782799996,295764.51498000004,295764.51498000004,295764.51498000004,735259.056,1371628.81632,2046064.1312,994774.36275,1515846.648,525077.466,525077.466,525077.466,851487.161,600693.075,600693.075,560222.94627,583118.5261499999,866758.8956599999,1511788.7715,429060.05134,545683.75657,569374.782,569374.782,569374.782,569374.782,1806083.8454999998,1806083.8454999998 +7304400.0,404416.968,356220.165,1040162.8817999999,234533.56685000003,234533.56685000003,234533.56685000003,510978.3735,831526.1808,1099750.87872,543432.26448,828087.2601600001,338043.97199999995,338043.97199999995,338043.97199999995,303909.2175,404416.968,404416.968,376587.52625,341466.23655,507562.15901999996,885282.8354999999,251251.69998,319544.94729,337973.205,337973.205,337973.205,337973.205,1215947.0171199997,1215947.0171199997 +7308000.0,259101.79499999998,184100.427,537573.24684,79334.51977000001,79334.51977000001,79334.51977000001,159651.0265,546076.3539999999,619705.08544,307500.66522,468572.44224000006,207018.945,207018.945,207018.945,143529.792,259101.79499999998,259101.79499999998,257977.94788999998,168395.9787,250307.10908,436582.167,123906.17692,157585.37266,204930.309,204930.309,204930.309,204930.309,779032.7302999999,779032.7302999999 +7311600.0,360003.864,231437.202,675796.62984,646074.4332900002,646074.4332900002,646074.4332900002,579324.011,732899.89872,366471.584,667615.17732,1017318.36544,217132.785,217132.785,217132.785,653917.866,360003.864,360003.864,587133.58314,417042.62235,619900.39174,1081221.6135,306860.99126000004,390269.51573000004,181071.183,181071.183,181071.183,181071.183,1082411.61776,1082411.61776 +7315200.0,255961.68,642883.215,1877218.9878,320448.8859,320448.8859,320448.8859,380081.772,948813.4704,480822.21184000006,358281.19383000006,545952.2953600001,279993.87,279993.87,279993.87,699214.201,255961.68,255961.68,709273.0232899999,344692.71765,512358.06426,893647.7865,253625.75274000003,322564.29627000005,313589.757,313589.757,313589.757,313589.757,769591.4511999999,769591.4511999999 +7318800.0,641599.458,675458.358,1972338.40536,486004.9678,486004.9678,486004.9678,745734.22,1606957.9352000002,2249120.21504,1071827.91786,1633261.58912,645600.966,645600.966,645600.966,920165.5365,641599.458,641599.458,740857.57083,794797.1828999999,1181402.2323599998,2060585.2889999999,584813.72964,743773.16622,674576.346,674576.346,674576.346,674576.346,1929075.7037199999,1929075.7037199999 +7322400.0,1944586.068,1690337.034,4935784.13928,2618508.00013,2618508.00013,2618508.00013,2756591.6805000002,3237928.2801599996,5565845.2064000005,3407710.1753100003,5192701.219520001,2122042.992,2122042.992,2122042.992,2494135.2835,1944586.068,1944586.068,1876252.97704,2482792.17525,3690471.3320999998,6436868.6025,1826844.6128999998,2323403.04795,2157130.29,2157130.29,2157130.29,2157130.29,5846722.11112,5846722.11112 +7326000.0,1309128.201,816560.889,2384357.7958799996,1187516.1547700001,1187516.1547700001,1187516.1547700001,1300586.966,2149200.3817600003,3241156.3520000004,1801526.3647500002,2745183.032,1119635.097,1119635.097,1119635.097,1356276.4005,1309128.201,1309128.201,888701.8770499999,1289375.77545,1916553.62178,3342826.0845000003,948725.8792200001,1206601.03431,1193895.513,1193895.513,1193895.513,1193895.513,3936112.1243399996,3936112.1243399996 +7329600.0,1009170.279,802587.0929999999,2343554.3115599994,1072653.3188800002,1072653.3188800002,1072653.3188800002,1043415.737,1777930.1898400001,3203175.8604800007,1506488.1090000002,2295600.9280000003,932046.396,932046.396,932046.396,1241754.6435,1009170.279,1009170.279,1050505.26503,1222337.69685,1816906.8975399998,3169023.6585,899399.09546,1143866.63483,1056268.6860000002,1056268.6860000002,1056268.6860000002,1056268.6860000002,3034238.63886,3034238.63886 +7333200.0,939586.2930000001,808324.0860000001,2360306.33112,1064162.04532,1064162.04532,1064162.04532,1065612.9190000002,1748580.72088,3270032.3072,1490910.8277,2271864.1184,928477.089,928477.089,928477.089,1239385.868,939586.2930000001,939586.2930000001,1060914.5619799998,1220933.1852,1814819.2036799998,3165382.332,898365.65232,1142552.28936,1055332.575,1055332.575,1055332.575,1055332.575,2825022.78762,2825022.78762 +7336800.0,664782.7649999999,577645.236,1686724.0891200001,695725.93431,695725.93431,695725.93431,589180.8825,900824.1522400001,2019503.4400000002,831518.14095,1267075.2624000001,494203.49100000004,494203.49100000004,494203.49100000004,623643.6185,664782.7649999999,664782.7649999999,787006.6829299999,572747.7599999999,851343.5839999998,1484901.5999999999,421429.21599999996,535978.7679999999,667175.868,667175.868,667175.868,667175.868,1998780.1800999998,1998780.1800999998 +7340400.0,115576.959,103495.96800000001,302208.22656000004,116862.55713,116862.55713,116862.55713,62333.558,187086.63088,712927.0144,181587.60774000004,276704.92608000006,151312.548,151312.548,151312.548,110625.956,115576.959,115576.959,210205.70609999998,82951.58565,123300.87546,215059.6665,61035.98154,77626.29867,126752.967,126752.967,126752.967,126752.967,347501.39005999995,347501.39005999995 +7344000.0,111716.52600000001,102135.927,298236.90684,93429.99611,93429.99611,93429.99611,41511.4105,197482.35064,709572.24256,209530.59225,319284.712,148287.13799999998,148287.13799999998,148287.13799999998,104921.1485,111716.52600000001,111716.52600000001,215129.50108,75996.7353,112963.04852,197028.573,55918.58548,71117.93254,126355.647,126355.647,126355.647,126355.647,335894.35484000004,335894.35484000004 +7347600.0,119798.48700000002,112295.103,327901.70076,88624.49827,88624.49827,88624.49827,39671.0265,208751.384,712139.3024,230353.11831,351014.27552,153694.041,153694.041,153694.041,105133.595,119798.48700000002,119798.48700000002,221173.10735,76679.5977,113978.06868,198798.957,56421.03732,71756.95686,136289.709,136289.709,136289.709,136289.709,360194.11758,360194.11758 +7351200.0,129691.12800000001,126282.12,368743.7904,84967.57478000001,84967.57478000001,84967.57478000001,44260.7375,218160.43576,718080.7942400001,249457.05792,380125.04064,164909.74200000003,164909.74200000003,164909.74200000003,103823.15299999999,129691.12800000001,129691.12800000001,246202.45220999996,90072.6885,133885.8234,233521.78500000003,66275.7066,84290.2443,141364.035,141364.035,141364.035,141364.035,389937.99152000004,389937.99152000004 +7354800.0,142063.461,133719.039,390459.59388,88864.18057000001,88864.18057000001,88864.18057000001,56174.118,242494.44848,721991.1315199999,283278.98319,431663.21248000005,168978.744,168978.744,168978.744,109820.68299999999,142063.461,142063.461,246443.02917,100145.01015,148857.52125999998,259635.2115,73686.94574,93715.94777,180928.701,180928.701,180928.701,180928.701,427137.47274,427137.47274 +7358400.0,182018.109,143806.101,419913.81492,98641.83868000002,98641.83868000002,98641.83868000002,68317.2175,328336.77784,725998.6924800002,313138.37163,477163.23296,254191.32300000003,254191.32300000003,254191.32300000003,178489.5245,182018.109,182018.109,259548.55238,119064.25709999999,176979.46363999997,308685.111,87607.77436,111420.62578,229752.228,229752.228,229752.228,229752.228,547267.78106,547267.78106 +7362000.0,216069.63300000003,158517.618,462871.44456,112694.18930000001,112694.18930000001,112694.18930000001,76239.079,406168.21567999996,727516.5504000001,350062.85706,533429.1155200001,298459.50899999996,298459.50899999996,298459.50899999996,204201.19999999998,216069.63300000003,216069.63300000003,281708.57350999996,133622.8002,198619.56968,346429.482,98319.98632,125044.54636,267136.239,267136.239,267136.239,267136.239,649649.36322,649649.36322 +7365600.0,378178.317,203278.182,593572.29144,220237.62673000002,220237.62673000002,220237.62673000002,155958.796,915570.4325599999,828160.9785600002,613238.11479,934458.0796800001,365610.861,365610.861,365610.861,331070.103,378178.317,378178.317,504319.20227,196589.85525,292215.0441,509677.4025,144651.3009,183969.27195,416149.098,416149.098,416149.098,416149.098,1137056.1397799999,1137056.1397799999 +7369200.0,772303.8509999999,271371.924,792406.0180800001,1262013.70746,1262013.70746,1262013.70746,1082440.2820000001,2610543.29976,2171192.3891200004,1956314.9106900003,2981051.2924800003,542165.121,542165.121,542165.121,1006107.851,772303.8509999999,772303.8509999999,1860811.66011,997804.1133,1483155.74372,2586899.553,734186.73028,933747.55294,916639.17,916639.17,916639.17,916639.17,2322060.2453399994,2322060.2453399994 +7372800.0,499058.304,821792.934,2399635.36728,862382.7843400001,862382.7843400001,862382.7843400001,1272128.6795,2751227.4455999997,1428955.38368,1842055.6240800002,2806941.9033600003,686733.7320000001,686733.7320000001,686733.7320000001,874177.9410000001,499058.304,499058.304,1268982.79066,1229509.25055,1827566.83662,3187616.5755000003,904675.94238,1150577.7924900001,763524.585,763524.585,763524.585,763524.585,1500501.9673600001,1500501.9673600001 +7376400.0,1376305.221,1067120.304,3115991.2876799996,427331.0622900001,427331.0622900001,427331.0622900001,641691.3125,2302382.0108,3318960.4832000006,1754606.8029,2673686.5568000004,1062024.462,1062024.462,1062024.462,602411.691,1376305.221,1376305.221,648172.12239,717639.2721000001,1066713.18964,1860546.2610000002,528040.7483600001,671568.6027800001,1476895.041,1476895.041,1476895.041,1476895.041,4138091.03114,4138091.03114 +7380000.0,744079.821,528563.517,1543405.46964,262258.84641,262258.84641,262258.84641,215313.889,788616.3778399999,4275474.73664,305170.42689,465021.60288,634578.306,634578.306,634578.306,566741.462,744079.821,744079.821,432877.64793,1198362.8065499999,1781270.1470199998,3106866.5354999998,881758.3119799999,1121430.87329,260963.715,260963.715,260963.715,260963.715,2237199.9951400002,2237199.9951400002 +7383600.0,378949.665,211674.921,618090.76932,134060.43167,134060.43167,134060.43167,186195.4325,570035.00072,767775.30304,341080.74273,519742.08415999997,199622.44199999998,199622.44199999998,199622.44199999998,150976.2555,378949.665,378949.665,266120.08982,201212.73585,299086.58514,521662.6485,148052.82786,188295.37503,230343.82799999998,230343.82799999998,230343.82799999998,230343.82799999998,1139375.3261,1139375.3261 +7387200.0,474870.768,919587.462,2685195.3890400003,178774.61569000004,178774.61569000004,178774.61569000004,558134.101,1098586.1921599999,1564702.2060800001,758027.27112,1155089.1750400001,370692.153,370692.153,370692.153,666807.1025,474870.768,474870.768,432403.57433,402433.78634999995,598185.5293399999,1043346.8535,296111.77366,376598.53093,425172.95699999994,425172.95699999994,425172.95699999994,425172.95699999994,1427778.10912,1427778.10912 +7390800.0,341250.321,238638.07800000004,696823.1877600001,160947.86917,160947.86917,160947.86917,382032.4935,672776.09424,857251.9987200001,426601.73219999997,650059.7824,260432.19900000002,260432.19900000002,260432.19900000002,210931.4515,341250.321,341250.321,310211.96972999995,257025.38085,382047.60313999996,666362.0985,189119.90986,240524.98603,271083.864,271083.864,271083.864,271083.864,1026025.96514,1026025.96514 +7394400.0,205218.56700000004,133662.087,390293.29404,74960.96696,74960.96696,74960.96696,115818.27600000001,419858.94519999996,415555.71392000007,225881.00199000002,344199.62208000006,148956.55500000002,148956.55500000002,148956.55500000002,100630.6385,205218.56700000004,205218.56700000004,196959.79342,110848.26104999999,164767.04481999998,287384.38049999997,81562.42418,103732.07639,148574.66999999998,148574.66999999998,148574.66999999998,148574.66999999998,617023.8247800001,617023.8247800001 +7398000.0,300612.75299999997,186033.96300000002,543219.1719600001,408414.12964000006,408414.12964000006,408414.12964000006,411058.2945,606956.20488,216337.50656000004,554843.4824099999,845475.78272,164335.86599999998,164335.86599999998,164335.86599999998,513122.82349999994,300612.75299999997,300612.75299999997,531244.5240699999,311875.75395,463578.28117999993,808566.7694999999,229478.94981999998,291854.10060999996,133838.11800000002,133838.11800000002,133838.11800000002,133838.11800000002,903842.3440199998,903842.3440199998 +7401600.0,180052.902,493782.91799999995,1441846.1205599997,291860.24945,291860.24945,291860.24945,331207.5235,797743.2174399999,281323.70304,234694.34646,357629.48032000003,204591.59699999998,204591.59699999998,204591.59699999998,583535.26,180052.902,180052.902,583586.7853400001,243973.76175,362647.4187,632524.5675,179516.49630000003,228311.24865000002,219699.636,219699.636,219699.636,219699.636,541359.0586799999,541359.0586799999 +7405200.0,303114.699,272466.066,795600.9127199999,326287.41486,326287.41486,326287.41486,281241.69850000006,689826.6692,752736.16192,419576.84979,639355.1996800001,239181.498,239181.498,239181.498,330843.5865,303114.699,303114.699,357652.15797999996,249564.6045,370957.75779999996,647019.345,183630.2522,233543.1731,259461.50700000004,259461.50700000004,259461.50700000004,259461.50700000004,911364.86166,911364.86166 +7408800.0,1753811.7030000002,1436054.19,4193278.2347999997,1710086.1857200002,1710086.1857200002,1710086.1857200002,2559455.15,3036694.3252,4622759.462400001,3036799.9031999996,4627504.614399999,1925137.8390000002,1925137.8390000002,1925137.8390000002,2022801.4310000003,1753811.7030000002,1753811.7030000002,1228291.2199999997,2080961.8146,3093182.74664,5395086.186,1531176.84136,1947369.2042800002,1832060.6009999998,1832060.6009999998,1832060.6009999998,1832060.6009999998,5273127.18702,5273127.18702 +7412400.0,1123316.907,741744.9450000001,2165895.2394,853321.87358,853321.87358,853321.87358,1049336.085,1801392.3431199999,2821559.2729600007,1558536.08274,2374912.12608,928038.96,928038.96,928038.96,1174992.9239999999,1123316.907,1123316.907,733316.14499,1131469.11855,1681838.04782,2933438.4555,832537.77118,1058831.59489,1006118.493,1006118.493,1006118.493,1006118.493,3377439.5003799996,3377439.5003799996 +7416000.0,893022.834,745284.717,2176231.37364,895150.87123,895150.87123,895150.87123,971827.5804999999,1640978.09016,2857447.4969599997,1393212.01719,2122989.74048,843416.8049999999,843416.8049999999,843416.8049999999,1138278.4525,893022.834,893022.834,773892.16502,1107281.24685,1645884.7175399999,2870729.1585,814740.27546,1036196.52483,935887.3469999998,935887.3469999998,935887.3469999998,935887.3469999998,2685021.98756,2685021.98756 +7419600.0,881499.1799999999,755643.873,2206480.10916,961134.8264100001,961134.8264100001,961134.8264100001,989061.815,1635632.9133600001,2905262.2464,1395306.5563500002,2126181.4192000004,857069.787,857069.787,857069.787,1149256.3285,881499.1799999999,881499.1799999999,920951.4888599999,1117148.4197999998,1660551.4783199998,2896310.718,822000.5656799999,1045430.2496399999,949086.1709999999,949086.1709999999,949086.1709999999,949086.1709999999,2650374.2012,2650374.2012 +7423200.0,619665.534,539026.425,1573957.161,638104.09531,638104.09531,638104.09531,558544.959,842037.3398399999,1759614.47936,780044.06781,1188638.5795200001,463200.23699999996,463200.23699999996,463200.23699999996,584118.3565,619665.534,619665.534,665062.95687,518135.1462,770166.31608,1343313.3420000002,381245.11992,484872.14916000003,611508.237,611508.237,611508.237,611508.237,1863127.7055600001,1863127.7055600001 +7426800.0,106960.71300000002,97013.439,283279.24188,96119.99749000001,96119.99749000001,96119.99749000001,60261.3655,162844.13096,588813.5449600001,151291.51485,230539.4512,139784.99699999997,139784.99699999997,139784.99699999997,102070.71,106960.71300000002,106960.71300000002,187648.26352999997,75380.25645,112046.70218,195430.2945,55464.97882,70541.03010999999,115005.44699999999,115005.44699999999,115005.44699999999,115005.44699999999,321595.21042,321595.21042 +7430400.0,103275.141,95008.581,277425.05652,83613.25786,83613.25786,83613.25786,39232.76700000001,179920.79903999998,646713.43424,145788.68136,222154.18112,136549.188,136549.188,136549.188,96729.71,103275.141,103275.141,199060.24826999998,69042.11984999999,102625.57073999998,178998.08849999998,50801.362259999994,64609.78622999999,113708.09399999998,113708.09399999998,113708.09399999998,113708.09399999998,310513.92393999995,310513.92393999995 +7434000.0,106989.79799999998,99611.931,290866.83852,80252.33326,80252.33326,80252.33326,34397.328,191193.16120000003,645303.14688,170464.59108,259755.56736000004,135695.121,135695.121,135695.121,96880.5985,106989.79799999998,106989.79799999998,200678.90466,67932.3186,100975.94024,176120.826,49984.76776,63571.23148,116681.541,116681.541,116681.541,116681.541,321682.65932,321682.65932 +7437600.0,118988.226,115193.505,336365.03459999996,76743.29321999999,76743.29321999999,76743.29321999999,39872.9555,192471.92263999995,649607.08992,198440.65143,302385.75456000003,135476.06100000002,135476.06100000002,135476.06100000002,95510.191,118988.226,118988.226,221556.7289,78407.39655,116546.30302,203278.43550000002,57692.35598000001,73373.83529,121443.885,121443.885,121443.885,121443.885,357757.93283999996,357757.93283999996 +7441200.0,123473.706,118582.25400000002,346260.18168000004,78130.57307000001,78130.57307000001,78130.57307000001,43882.14600000001,197519.03752,656234.0652800001,243383.08176000003,370869.45792,137095.407,137095.407,137095.407,97991.04699999999,123473.706,123473.706,226883.95300999997,85862.7459,127628.08155999999,222607.119,63178.02044,80350.56962,134666.673,134666.673,134666.673,134666.673,371244.27604,371244.27604 +7444800.0,145676.244,134910.21,393937.8132,90950.09627000002,90950.09627000002,90950.09627000002,63649.813500000004,222968.1632,686913.5545600001,277267.02423,422502.13216,181058.73,181058.73,181058.73,132748.882,145676.244,145676.244,239265.91754,103355.09685,153629.05754,267957.6585,76048.93546000001,96719.95483,192419.18399999998,192419.18399999998,192419.18399999998,192419.18399999998,437999.90696,437999.90696 +7448400.0,186526.77000000002,141855.762,414218.82504,102620.24740000001,102620.24740000001,102620.24740000001,72298.695,317521.98552,684406.51968,306353.61267,466824.55264000007,248792.865,248792.865,248792.865,186088.168,186526.77000000002,186526.77000000002,253403.03182999996,119032.98705,176932.98322,308604.0405,87584.76578,111391.36319,225526.116,225526.116,225526.116,225526.116,560823.8218,560823.8218 +7452000.0,316774.02,181653.885,530429.3441999999,207759.93062,207759.93062,207759.93062,149740.76249999998,824418.9124799999,724555.2646400001,527368.19163,803608.67296,299572.98,299572.98,299572.98,303810.955,316774.02,316774.02,471489.69685999997,175355.55944999997,260651.96737999996,454625.52449999994,129027.05361999998,164098.16551,343406.38800000004,343406.38800000004,343406.38800000004,343406.38800000004,952433.8868000001,952433.8868000001 +7455600.0,824642.946,318090.438,928824.0789600001,1272402.6795700002,1272402.6795700002,1272402.6795700002,1085837.571,2708933.2604,2297850.63616,2050011.0325799999,3123826.33536,611211.198,611211.198,611211.198,1008550.9384999999,824642.946,824642.946,1960277.6982099998,1015468.5203999999,1509412.46736,2632696.164,747184.2446399999,950277.94872,971091.78,971091.78,971091.78,971091.78,2479426.45764,2479426.45764 +7459200.0,548924.2320000001,849212.235,2479699.7262,944957.82997,944957.82997,944957.82997,1319875.9,2917971.33584,1542080.9888,1966171.72353,2996071.1977600004,738791.517,738791.517,738791.517,934015.845,548924.2320000001,548924.2320000001,1313064.95918,1310567.24655,1948053.04302,3397766.9355,964318.6159800001,1226432.06529,853220.298,853220.298,853220.298,853220.298,1650432.19088,1650432.19088 +7462800.0,1446689.3129999998,1164891.282,3401482.5434399997,479658.9831,479658.9831,479658.9831,708841.0,2457832.328,3701957.67744,1900405.4871900002,2895855.9804800004,1159040.142,1159040.142,1159040.142,643768.5415,1446689.3129999998,1446689.3129999998,685064.0335499999,778440.26565,1157088.98746,2018178.4665,572778.26954,728466.32267,1582483.155,1582483.155,1582483.155,1582483.155,4349712.534419999,4349712.534419999 +7466400.0,832742.1569999999,593304.027,1732447.7588399998,294366.42114000005,294366.42114000005,294366.42114000005,264083.92499999993,928158.6284800002,4595489.69984,413031.78923999995,629381.77408,755981.4330000001,755981.4330000001,755981.4330000001,705492.046,832742.1569999999,832742.1569999999,646847.6504099999,1340233.1523,1992149.0313199998,3474678.543,986146.86268,1254193.49314,347205.294,347205.294,347205.294,347205.294,2503778.0853799996,2503778.0853799996 +7470000.0,427080.717,291944.913,852479.14596,140056.78302,140056.78302,140056.78302,222145.0875,699202.0007999999,1111912.16192,418860.95202,638264.30784,263581.34699999995,263581.34699999995,263581.34699999995,211789.6725,427080.717,427080.717,351282.79926999996,252675.52695,375581.89437999995,655084.6995,185919.27662,236454.38201,287745.498,287745.498,287745.498,287745.498,1284089.3557799999,1284089.3557799999 +7473600.0,539534.376,980344.6379999999,2862606.3429599996,222674.67354,222674.67354,222674.67354,645043.007,1245378.6276,1841360.1408000002,877254.12096,1336768.18432,455913.333,455913.333,455913.333,764306.4975,539534.376,539534.376,500659.6243999999,508740.2721,756201.58964,1318956.2610000002,374332.34836000006,476080.40278000006,509403.537,509403.537,509403.537,509403.537,1622200.0238400002,1622200.0238400002 +7477200.0,368307.051,277266.396,809617.8763199999,193836.6397,193836.6397,193836.6397,429851.9015,746333.17184,968162.5011199999,479960.6065800001,731368.5433600001,302263.113,302263.113,302263.113,239655.34600000002,368307.051,368307.051,334469.68957999995,296209.69785,440291.94593999995,767951.0685,217951.82706,277193.76663,301575.321,301575.321,301575.321,301575.321,1107376.5333399998,1107376.5333399998 +7480800.0,217296.77999999997,146196.04499999998,426892.45139999996,75388.67105,75388.67105,75388.67105,125328.861,453668.76087999996,474112.18944,245417.3232,373969.25440000003,167178.675,167178.675,167178.675,112172.669,217296.77999999997,217296.77999999997,207213.08283,124011.2916,184332.83344,321510.756,91247.81456,116050.07288,163342.035,163342.035,163342.035,163342.035,653338.9851999999,653338.9851999999 +7484400.0,310646.37,187268.754,546824.76168,494235.09795,494235.09795,494235.09795,474360.91150000005,621281.02992,226393.02016000001,577002.2955900001,879241.5932800001,174907.008,174907.008,174907.008,562531.1124999999,310646.37,310646.37,531226.87137,343878.93090000004,511148.43556,891537.9690000002,253026.96644000002,321802.75262000004,138853.143,138853.143,138853.143,138853.143,934010.0858,934010.0858 +7488000.0,173624.307,508302.849,1484244.3190799998,294449.68927000003,294449.68927000003,294449.68927000003,326810.20399999997,780390.04872,258179.2992,227005.56123,345913.23616000003,198777.012,198777.012,198777.012,592887.6904999999,173624.307,173624.307,601101.42872,250307.11935000002,372061.44654000003,648944.3835000001,184176.59646000003,234238.02033000003,219183.45,219183.45,219183.45,219183.45,522030.41637999995,522030.41637999995 +7491600.0,287785.014,254434.81199999998,742949.6510399999,322810.58887000004,322810.58887000004,322810.58887000004,260498.7175,675608.5935199999,691593.7824,391299.02553,596265.1817600001,226048.413,226048.413,226048.413,336658.3885,287785.014,287785.014,336816.17111999996,226056.92219999997,336015.47448,586073.502,166333.24151999998,211544.62596,241959.987,241959.987,241959.987,241959.987,865273.60876,865273.60876 +7495200.0,1773204.6870000002,1452399.84,4241007.5328,1820139.81193,1820139.81193,1820139.81193,2572072.8425,3042579.2406400004,4697687.2697600005,3077975.95266,4690249.07072,1955895.0150000001,1955895.0150000001,1955895.0150000001,2088731.8235000002,1773204.6870000002,1773204.6870000002,1299108.03711,2121725.61945,3153774.87138,5500770.1245,1561170.94962,1985516.07351,1865295.1290000002,1865295.1290000002,1865295.1290000002,1865295.1290000002,5331435.4255800005,5331435.4255800005 +7498800.0,1164739.305,766981.041,2239584.63972,894655.1655799999,894655.1655799999,894655.1655799999,1114100.9355000001,1878438.8090399997,2936476.83584,1621563.79602,2470954.3558400003,977419.926,977419.926,977419.926,1237613.8775000002,1164739.305,1164739.305,784478.3256699999,1180911.0041999999,1755329.4432799998,3061621.122,868917.23272,1105099.43356,1051445.484,1051445.484,1051445.484,1051445.484,3501982.8436999996,3501982.8436999996 +7502400.0,901753.5119999999,751034.196,2193019.85232,955584.8156800001,955584.8156800001,955584.8156800001,977852.862,1654460.1448000001,2887379.14944,1401273.7895099998,2135274.3459199998,854653.662,854653.662,854653.662,1151236.786,901753.5119999999,901753.5119999999,779527.32052,1115280.1953,1657774.5125199999,2891467.173,820625.92148,1043681.96054,946268.514,946268.514,946268.514,946268.514,2711272.2260799995,2711272.2260799995 +7506000.0,891611.355,765866.298,2236329.59016,986439.9333800001,986439.9333800001,986439.9333800001,1001724.6190000002,1659643.5243999998,2954664.74688,1411857.0295199999,2151401.18784,877408.125,877408.125,877408.125,1171950.3075,891611.355,891611.355,929526.9781199999,1132523.1553499997,1683404.7889399996,2936171.1434999993,833313.3340599998,1059817.96513,975293.6939999999,975293.6939999999,975293.6939999999,975293.6939999999,2680778.1407,2680778.1407 +7509600.0,659245.722,580882.6140000001,1696177.23288,680310.58953,680310.58953,680310.58953,595027.2999999999,906241.5464799999,1949555.46304,835459.62381,1273081.3315200002,505629.77100000007,505629.77100000007,505629.77100000007,633262.3745,659245.722,659245.722,709372.39308,575821.3859999999,855912.2823999999,1492870.26,423690.7976,538855.0748,665452.6919999999,665452.6919999999,665452.6919999999,665452.6919999999,1982132.1374799998,1982132.1374799998 +7513200.0,118406.79299999999,109253.751,319020.95292,117457.32658000001,117457.32658000001,117457.32658000001,63664.13899999999,192006.89511999997,766188.8358400001,170229.39422999998,259397.17216,162892.488,162892.488,162892.488,115606.3265,118406.79299999999,118406.79299999999,217725.15024,87007.40955,129329.53222,225574.7655,64020.266780000005,81421.74869000001,131344.932,131344.932,131344.932,131344.932,356009.75761999993,356009.75761999993 +7516800.0,118295.83800000002,111061.578,324299.80776,99913.84392,99913.84392,99913.84392,43777.3455,216925.24072,790717.9916800001,176984.05745999998,269689.99231999996,165989.607,165989.607,165989.607,115247.7025,118295.83800000002,118295.83800000002,234899.07245999997,82900.7946,123225.37863999998,214927.98599999998,60998.609359999995,77578.76827999999,133935.405,133935.405,133935.405,133935.405,355676.15292,355676.15292 +7520400.0,131501.51400000002,128769.513,376006.97796,96633.33031000002,96633.33031000002,96633.33031000002,45150.293999999994,232350.33344000002,807765.9180800001,224319.83490000005,341820.70080000005,168546.912,168546.912,168546.912,117120.50349999999,131501.51400000002,131501.51400000002,253935.21503999998,88859.3733,132082.32772,230376.15300000002,65382.94628000001,83154.82094,141926.064,141926.064,141926.064,141926.064,395381.21876,395381.21876 +7524000.0,144279.015,143212.926,418181.74392,95339.69709000002,95339.69709000002,95339.69709000002,50084.1005,247322.96048,834502.29952,285802.00614,435507.81888000004,173045.64299999998,173045.64299999998,173045.64299999998,119140.75949999999,144279.015,144279.015,279821.80290999997,105248.6784,156443.71456,272866.944,77442.23744,98491.97312000001,158585.82,158585.82,158585.82,158585.82,433798.90510000003,433798.90510000003 +7527600.0,174896.66700000002,158842.506,463820.11751999997,107429.92106000001,107429.92106000001,107429.92106000001,74329.70999999999,321263.8896,863961.47712,337244.23026,513895.96992,243354.65400000004,243354.65400000004,243354.65400000004,175150.7345,174896.66700000002,174896.66700000002,292915.57048,128491.79039999998,190992.73536,333126.864,94544.57664,120242.93471999999,246453.59699999998,246453.59699999998,246453.59699999998,246453.59699999998,525855.97878,525855.97878 +7531200.0,233160.67500000002,176076.225,514142.57700000005,115451.8992,115451.8992,115451.8992,79184.7455,477814.58543999994,871208.9171200001,387248.89665,590093.5568,345728.613,345728.613,345728.613,235881.1735,233160.67500000002,233160.67500000002,322050.87082999997,149472.2079,222178.44236,387520.539,109982.01964,139876.46122,295954.19700000004,295954.19700000004,295954.19700000004,295954.19700000004,701036.4295,701036.4295 +7534800.0,286768.5,200279.89200000002,584817.2846400001,133776.48812,133776.48812,133776.48812,87918.026,572958.26528,905889.0803200001,470500.01796,716952.40832,413258.439,413258.439,413258.439,253774.50700000004,286768.5,286768.5,354566.74981,174387.7917,259213.45828,452116.497,128314.96772,163192.52606,380173.851,380173.851,380173.851,380173.851,862217.2899999999,862217.2899999999 +7538400.0,478260.80999999994,253296.27,739625.1083999999,234042.96905,234042.96905,234042.96905,164427.97699999998,1060418.28816,1050031.52,722046.4855800001,1100261.3113600002,452920.89,452920.89,452920.89,378917.1995,478260.80999999994,478260.80999999994,557717.4798,236897.47215,352129.08206,614178.6315,174309.74494,221689.23937,510338.8890000001,510338.8890000001,510338.8890000001,510338.8890000001,1437970.8353999997,1437970.8353999997 +7542000.0,805962.9089999999,305960.01300000004,893403.2379599999,1318318.1444400002,1318318.1444400002,1318318.1444400002,1188507.2815,2682130.16576,2543821.9334400003,2075667.0459000003,3162921.2128000003,610664.034,610664.034,610664.034,1212116.661,805962.9089999999,805962.9089999999,1925268.3585199998,1132410.2616,1683236.98144,2935878.4560000002,833230.26656,1059712.3188800002,964829.175,964829.175,964829.175,964829.175,2423261.8130599996,2423261.8130599996 +7545600.0,495534.174,808559.967,2360995.10364,837254.52294,837254.52294,837254.52294,1309765.5795,2815959.4948,1452710.17728,1871630.5303500001,2852008.4272000003,681688.086,681688.086,681688.086,909974.9574999999,495534.174,495534.174,1249374.70541,1273572.6713999999,1893063.5757599997,3301855.0739999996,937097.9162399999,1191812.45052,754531.437,754531.437,754531.437,754531.437,1489906.08316,1489906.08316 +7549200.0,1216090.866,883220.4450000001,2579003.6994,331947.25046999997,331947.25046999997,331947.25046999997,562445.8489999999,1947287.8071199998,2666755.9020800004,1455635.15454,2218110.71168,897926.868,897926.868,897926.868,521522.13399999996,1216090.866,1216090.866,478050.7869799999,611671.65795,909200.83478,1585815.4095000003,450069.51622000005,572403.8478100001,1260400.875,1260400.875,1260400.875,1260400.875,3656379.8704399997,3656379.8704399997 +7552800.0,531283.197,415883.10599999997,1214378.66952,186391.30730000001,186391.30730000001,186391.30730000001,162879.577,426897.01536,3463204.7814400005,113882.43069000001,173535.13248,425340.603,425340.603,425340.603,343655.277,531283.197,531283.197,190246.04352,906371.83575,1347249.0003,2349852.9075,666910.6347,848185.0018500001,125286.921,125286.921,125286.921,125286.921,1597391.47898,1597391.47898 +7556400.0,158128.005,34435.746,100552.37831999999,112689.31751,112689.31751,112689.31751,85337.66500000001,73385.0312,101297.70688000001,52513.387709999995,80020.40032,23086.296000000002,23086.296000000002,23086.296000000002,30483.495,158128.005,158128.005,31087.765929999998,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,28079.367000000002,28079.367000000002,28079.367000000002,28079.367000000002,475438.20170000003,475438.20170000003 +7560000.0,206650.533,494305.149,1443371.03508,116696.76975000002,116696.76975000002,116696.76975000002,302373.0675,374745.8796,410063.38112,208958.68161,318413.22912000003,99354.44699999999,99354.44699999999,99354.44699999999,359285.871,206650.533,206650.533,139174.34375,100049.97284999999,148716.25594,259388.8185,73617.01706,93627.01163000001,96824.77200000001,96824.77200000001,96824.77200000001,96824.77200000001,621329.2692199999,621329.2692199999 +7563600.0,73422.093,14181.984,41411.393280000004,84362.03203999999,84362.03203999999,84362.03203999999,168413.91350000002,109691.24248,34929.28256000001,57375.08217,87428.69664,34051.437,34051.437,34051.437,32742.493,73422.093,73422.093,35399.07956,30139.14825,44799.425299999995,78138.5325,22176.4597,28204.289350000003,26166.500999999997,26166.500999999997,26166.500999999997,26166.500999999997,220755.75961999997,220755.75961999997 +7567200.0,20782.005,8177.028,23876.921759999997,57502.76708000001,57502.76708000001,57502.76708000001,49914.4835,52157.19768,15936.305920000003,28071.74748,42775.99616,19438.518,19438.518,19438.518,17829.9695,20782.005,20782.005,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12398.616000000002,12398.616000000002,12398.616000000002,12398.616000000002,62484.5617,62484.5617 +7570800.0,84806.802,36163.005,105595.97459999999,47889.01601000001,47889.01601000001,47889.01601000001,53635.428,160503.03264,12337.789440000002,175737.43446000002,267790.37632000004,41343.174,41343.174,41343.174,33435.115,84806.802,84806.802,143193.75772,27547.2333,40946.75172,71418.753,20269.32228,25778.76894,28063.041000000005,28063.041000000005,28063.041000000005,28063.041000000005,254985.78467999995,254985.78467999995 +7574400.0,16734.740999999998,127728.73199999999,372967.89744,259573.0819,259573.0819,259573.0819,165487.1785,192262.10895999998,43886.231680000004,28217.231910000002,42997.686720000005,12192.645,12192.645,12192.645,237904.8105,16734.740999999998,16734.740999999998,115790.52875,69856.21035,103835.65093999999,181108.6935,51400.37206,65371.61413,40657.308,40657.308,40657.308,40657.308,50315.787939999995,50315.787939999995 +7578000.0,27273.699,11340.186,33113.34312,265434.46798,265434.46798,265434.46798,72208.178,49299.08416,52625.493760000005,40073.89659,61064.98528,12527.268,12527.268,12527.268,25307.054500000002,27273.699,27273.699,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17501.736,17501.736,17501.736,17501.736,82002.92165999999,82002.92165999999 +7581600.0,746749.7760000001,330953.47199999995,966384.1382399999,228941.12637,228941.12637,228941.12637,876174.5615000001,928286.2908799999,532872.7520000001,856934.6249100001,1305805.1427200004,597870.681,597870.681,597870.681,208795.44,746749.7760000001,746749.7760000001,73433.03382999999,221410.1385,329108.4034,574026.285,162914.12660000002,207196.15430000002,458994.459,458994.459,458994.459,458994.459,2245227.65984,2245227.65984 +7585200.0,568476.5819999999,357853.248,1044931.48416,269811.03666000004,269811.03666000004,269811.03666000004,572716.039,1044072.39096,853680.432,724461.05088,1103940.64896,436512.615,436512.615,436512.615,365623.23,568476.5819999999,568476.5819999999,207905.43904,381905.2314,567671.47976,990124.674,281006.81224,357387.85852,406650.80999999994,406650.80999999994,406650.80999999994,406650.80999999994,1709219.5898799999,1709219.5898799999 +7588800.0,658238.538,523873.833,1529711.59236,340009.35474000004,340009.35474000004,340009.35474000004,653938.5965,1334622.2138399999,1224223.0726400001,981970.16316,1496335.48672,605765.007,605765.007,605765.007,697725.2729999999,658238.538,658238.538,499029.03921,583075.87965,866695.50506,1511678.2065,429028.67194000003,545643.84787,597950.8829999999,597950.8829999999,597950.8829999999,597950.8829999999,1979103.87092,1979103.87092 +7592400.0,757839.8910000001,638960.1900000001,1865763.7548,423504.97332000005,423504.97332000005,423504.97332000005,754734.5715000001,1505684.63224,2009108.2201600003,1184234.49375,1804547.8,715361.8859999999,715361.8859999999,715361.8859999999,941516.401,757839.8910000001,757839.8910000001,602960.0944899999,846268.75845,1257910.59898,2194030.1145,622686.64202,791940.3937100001,751138.3200000001,751138.3200000001,751138.3200000001,751138.3200000001,2278571.9389400003,2278571.9389400003 +7596000.0,561907.008,509770.725,1488530.5169999998,429994.34005000006,429994.34005000006,429994.34005000006,519869.8400000001,837893.87152,1549398.04992,772185.1796400001,1176663.13088,410962.581,410962.581,410962.581,549474.366,561907.008,561907.008,484198.41912,440509.53735,654782.07774,1142061.7635000001,324128.00526,412229.91273000004,576441.375,576441.375,576441.375,576441.375,1689467.07072,1689467.07072 +7599600.0,99077.805,95436.234,278673.80328,40479.45891,40479.45891,40479.45891,48968.1745,123924.63648,561852.19776,139385.22675,212396.53600000002,129581.82599999999,129581.82599999999,129581.82599999999,104076.154,99077.805,99077.805,184189.43100999994,55336.80645,82253.72218,143465.7945,40716.95882,51784.32011,85680.51299999999,85680.51299999999,85680.51299999999,85680.51299999999,297893.93369999994,297893.93369999994 +7603200.0,102030.93000000002,101108.454,295236.68568,16742.90552,16742.90552,16742.90552,40818.645,191415.00528,560353.6736000001,136231.84532999998,207591.38336,143834.853,143834.853,143834.853,99533.09800000001,102030.93000000002,102030.93000000002,206972.94358,50294.694149999996,74759.02685999998,130393.65149999999,37006.960139999996,47065.898969999995,81462.87,81462.87,81462.87,81462.87,306772.99620000005,306772.99620000005 +7606800.0,115711.416,112809.99600000001,329405.18832,12913.873940000001,12913.873940000001,12913.873940000001,38994.851,216058.37448,584158.5043200001,160259.53524,244205.00608,152124.612,152124.612,152124.612,103921.1285,115711.416,115711.416,228358.11218999999,52391.60595,77875.91798,135830.0895,38549.87302,49028.19421,84403.34999999999,84403.34999999999,84403.34999999999,84403.34999999999,347905.65744,347905.65744 +7610400.0,124653.33300000001,123945.74699999999,361921.58123999997,22336.8519,22336.8519,22336.8519,43076.6525,207123.05183999997,562222.8684800001,189925.99416,289411.03872,145289.529,145289.529,145289.529,98648.4975,124653.33300000001,124653.33300000001,240750.44226999997,63144.4977,93859.22868,163707.957,46461.87732,59090.776860000005,89976.936,89976.936,89976.936,89976.936,374791.02122,374791.02122 +7614000.0,129870.76499999998,123239.08200000001,359858.11944000004,40957.11411,40957.11411,40957.11411,49301.700000000004,202714.03872,559055.9833600001,225914.43525,344250.568,146834.397,146834.397,146834.397,102984.79449999999,129870.76499999998,129870.76499999998,237938.51145999998,70704.40185,105096.41953999999,183307.7085,52024.47346,66165.35383000001,115410.897,115410.897,115410.897,115410.897,390478.1001,390478.1001 +7617600.0,159891.429,131146.35,382947.342,68848.80783,68848.80783,68848.80783,67311.21599999999,224445.05247999998,601854.87872,255691.30313999997,389624.84288,234293.23199999996,234293.23199999996,234293.23199999996,180344.43000000002,159891.429,159891.429,253995.31118,100353.18824999999,149166.9613,260174.9325,73840.1237,93910.76135,200476.608,200476.608,200476.608,200476.608,480740.22985999996,480740.22985999996 +7621200.0,201643.215,150543.153,439586.00675999996,86919.33107,86919.33107,86919.33107,74248.0655,302113.29735999997,705790.97472,284343.64077,433285.54784,264224.82300000003,264224.82300000003,264224.82300000003,198929.206,201643.215,201643.215,277442.50755,122608.1124,182247.12016,317872.884,90215.35184,114736.97432000001,238817.62800000003,238817.62800000003,238817.62800000003,238817.62800000003,606273.9330999999,606273.9330999999 +7624800.0,246886.12200000003,165746.385,483979.4442,189256.46927,189256.46927,189256.46927,149638.9475,443749.40991999995,691242.69568,365535.86832,557007.0374400001,285109.983,285109.983,285109.983,222836.66999999998,246886.12200000003,246886.12200000003,289470.44646,158259.78045,235240.46378,410303.13450000004,116447.93722,148099.89331,299852.049,299852.049,299852.049,299852.049,742304.2734800001,742304.2734800001 +7628400.0,728612.412,754680.1379999999,2203666.0029599997,771687.45379,771687.45379,771687.45379,956591.2090000001,1114801.81648,588045.78688,857846.57721,1307194.78432,284956.005,284956.005,284956.005,1342076.7744999998,728612.412,728612.412,1298464.6274599999,390072.8987999999,579812.0619199999,1011300.1079999999,287016.60208,365031.18184,917105.346,917105.346,917105.346,917105.346,2190694.65208,2190694.65208 +7632000.0,1253013.381,1222779.447,3570515.98524,1313949.67913,1313949.67913,1313949.67913,1267702.695,2001865.57384,1961954.77888,1848058.55094,2816089.22048,721836.663,721836.663,721836.663,849861.9779999999,1253013.381,1253013.381,411918.90506,980477.0874,1457400.5101599998,2541977.634,721437.46184,917532.8793200001,1349018.787,1349018.787,1349018.787,1349018.787,3767393.5655399994,3767393.5655399994 +7635600.0,1101217.401,907448.841,2649750.6157199997,702793.1392900001,702793.1392900001,702793.1392900001,865342.632,1839874.25808,3689933.80864,1495696.8312300001,2279157.07616,1290335.865,1290335.865,1290335.865,1053003.4655000002,1101217.401,1101217.401,482007.41601999995,1505863.7829,2238345.6723599997,3904091.289,1108018.28964,1409191.04622,738384.6269999999,738384.6269999999,738384.6269999999,738384.6269999999,3310993.65234,3310993.65234 +7639200.0,702799.767,393757.71900000004,1149772.53948,337846.11718,337846.11718,337846.11718,1217122.3155,1679945.0171200002,2482674.0051200003,1326982.8253499998,2022069.0671999997,865981.9260000002,865981.9260000002,865981.9260000002,1157525.817,702799.767,702799.767,595992.67962,1247577.714,1854424.1575999998,3234460.74,917970.7624,1167486.3052,733735.722,733735.722,733735.722,733735.722,2113084.63278,2113084.63278 +7642800.0,393886.956,232414.149,678649.31508,336014.13692,336014.13692,336014.13692,690098.1605000001,1238274.71144,1348760.6009600002,798308.7997500001,1216470.5520000001,285403.65,285403.65,285403.65,498446.90349999996,393886.956,393886.956,138565.10434,537903.9494999999,799551.0557999999,1394565.7949999997,395791.05419999996,503371.84409999993,332176.926,332176.926,332176.926,332176.926,1184286.78104,1184286.78104 +7646400.0,327425.898,179535.23100000003,524242.87452,147750.5645,147750.5645,147750.5645,290938.648,770148.3414400001,501627.9488000001,500699.96004000003,762971.36768,247902.456,247902.456,247902.456,232888.03650000005,327425.898,327425.898,133655.91732999997,228417.23789999998,339523.89436,592192.839,168069.96764,213753.41522,247119.735,247119.735,247119.735,247119.735,984460.5333199999,984460.5333199999 +7650000.0,68312.208,15555.122999999998,45420.95915999999,80201.7513,80201.7513,80201.7513,62439.660500000005,103822.37535999999,34786.352,77464.506,118041.152,15284.889,15284.889,15284.889,21621.635,68312.208,68312.208,10662.423200000001,21568.9311,32060.485239999998,55919.451,15870.47276,20184.258980000002,35686.992,35686.992,35686.992,35686.992,205392.03872,205392.03872 +7653600.0,56650.326,10124.541,29563.659719999996,64110.33068000001,64110.33068000001,64110.33068000001,52514.567,74877.42567999999,28034.245759999998,52429.39884,79892.41728000001,11516.769,11516.769,11516.769,18290.6955,56650.326,56650.326,7299.805109999998,18060.1569,26844.973960000003,46822.62900000001,13288.708040000001,16900.73942,26369.316,26369.316,26369.316,26369.316,170328.64683999997,170328.64683999997 +7657200.0,73066.842,19324.86,56428.591199999995,53786.10413000001,53786.10413000001,53786.10413000001,45131.261,104789.80640000002,38671.697920000006,65883.132,100393.344,15317.034,15317.034,15317.034,15194.616499999998,73066.842,73066.842,11092.403529999998,15546.9375,23109.274999999998,40306.875,11439.475,14548.8625,33570.009000000005,33570.009000000005,33570.009000000005,33570.009000000005,219687.63828,219687.63828 +7660800.0,63622.704,13518.987,39475.442039999994,57743.7355,57743.7355,57743.7355,47170.515,87691.7172,31297.081600000005,55786.59177,85008.13984,13389.642,13389.642,13389.642,16355.7205,63622.704,63622.704,8809.211969999998,16468.887600000002,24479.67984,42697.116,12117.848160000001,15411.625680000001,29169.519,29169.519,29169.519,29169.519,191292.26335999998,191292.26335999998 +7664400.0,64423.41900000001,12045.615,35173.1958,87925.78102,87925.78102,87925.78102,73448.56049999999,93436.78799999999,36633.25376,63374.50245,96570.6704,15989.636999999999,15989.636999999999,15989.636999999999,25786.719,64423.41900000001,64423.41900000001,10625.506449999999,25729.0425,38244.157,66704.925,18931.493000000002,24077.3015,32448.624000000003,32448.624000000003,32448.624000000003,32448.624000000003,193699.74646,193699.74646 +7668000.0,427891.68,239803.554,700226.3776799999,180071.61887000003,180071.61887000003,180071.61887000003,295003.6215,835785.7541599999,631337.7856000001,552592.08417,842045.0806400001,323420.68799999997,323420.68799999997,323420.68799999997,157698.3065,427891.68,427891.68,182533.01130999997,168064.26750000002,249814.04700000002,435722.17500000005,123662.10300000002,157274.95650000003,278354.637,278354.637,278354.637,278354.637,1286527.6512,1286527.6512 +7671600.0,602532.0299999999,415605.19200000004,1213567.1606400001,198279.48426,198279.48426,198279.48426,608353.9979999999,1187020.45952,1060470.7168,855920.39736,1304259.65312,533765.622,533765.622,533765.622,485907.2435,602532.0299999999,602532.0299999999,292754.71446,480544.7877,714291.2646799999,1245856.857,353586.04132,449694.99886,521239.0739999999,521239.0739999999,521239.0739999999,521239.0739999999,1811612.9701999996,1811612.9701999996 +7675200.0,713285.184,599633.664,1750930.29888,272025.0841,272025.0841,272025.0841,744929.059,1384404.37112,1960662.5068800002,1081990.7788200001,1648747.8534400002,657555.201,657555.201,657555.201,799219.7955,713285.184,713285.184,454747.01999999996,819216.6579,1217699.8223599999,2123895.039,602781.63964,766624.97122,694451.9879999999,694451.9879999999,694451.9879999999,694451.9879999999,2144610.78656,2144610.78656 +7678800.0,669272.469,605027.385,1766679.9641999998,340084.27937,340084.27937,340084.27937,608622.6545000001,1142732.14208,1682246.7776,950239.3091100001,1447983.7091200002,510935.0519999999,510935.0519999999,510935.0519999999,729366.89,669272.469,669272.469,603667.11158,703113.48135,1045121.76734,1822886.8035000002,517352.6356600001,657975.3319300001,665948.223,665948.223,665948.223,665948.223,2012279.22346,2012279.22346 +7682400.0,317144.76,239093.613,698153.34996,188769.93740000002,188769.93740000002,188769.93740000002,284701.65150000004,523704.75064000004,645596.30848,433212.75123000005,660133.7161600001,213652.476,213652.476,213652.476,333542.79699999996,317144.76,317144.76,465091.19917,154050.72074999998,228984.03429999997,399390.75749999995,113350.90069999998,144161.04484999998,364806.417,364806.417,364806.417,364806.417,953548.5783999999,953548.5783999999 +7686000.0,105808.60800000001,87598.63500000001,255788.0142,40293.72446000001,40293.72446000001,40293.72446000001,56767.476500000004,161179.70760000002,475366.39232000004,156885.69813,239063.92096,121166.688,121166.688,121166.688,89716.613,105808.60800000001,105808.60800000001,182930.36059999996,50179.7349,74588.14916,130095.60900000001,36922.37284,46958.319820000004,79640.976,79640.976,79640.976,79640.976,318131.21472,318131.21472 +7689600.0,108750.88200000001,87968.595,256868.2974,17440.650040000004,17440.650040000004,17440.650040000004,36233.606499999994,164633.08648,477145.97952,162076.35423,246973.49216,122616.084,122616.084,122616.084,86979.5185,108750.88200000001,108750.88200000001,183246.6181,44430.415649999995,66042.24746,115189.9665,32692.00954,41578.09267,80326.94699999999,80326.94699999999,80326.94699999999,80326.94699999999,326977.65188,326977.65188 +7693200.0,119653.782,103767.126,303000.00792,22709.370860000003,22709.370860000003,22709.370860000003,36670.466,192667.22976,506274.93824000005,178018.59999000002,271266.43808000005,130577.68500000001,130577.68500000001,130577.68500000001,91764.505,119653.782,119653.782,193759.34447999997,51741.661949999994,76909.82837999999,134145.0495,38071.64262,48419.975009999995,85156.35,85156.35,85156.35,85156.35,359759.03788,359759.03788 +7696800.0,124886.955,108805.09199999998,317710.86863999994,34775.75684,34775.75684,34775.75684,37958.018000000004,189483.45448,502888.9625600001,180596.55453,275194.74976000004,127894.29299999999,127894.29299999999,127894.29299999999,88844.52500000001,124886.955,124886.955,206390.02448999998,55347.96015,82270.30126,143494.7115,40725.165740000004,51794.757770000004,90540.159,90540.159,90540.159,90540.159,375493.4447,375493.4447 +7700400.0,131083.446,110803.74600000001,323546.93832,50289.70551,50289.70551,50289.70551,45132.045,188420.65624,505833.28640000004,198998.77725,303236.232,129756.72299999998,129756.72299999998,129756.72299999998,91178.696,131083.446,131083.446,214955.22515999997,60070.58415,89290.10286,155738.5515,44200.08414,56214.200970000005,117403.98000000001,117403.98000000001,117403.98000000001,117403.98000000001,394124.22763999994,394124.22763999994 +7704000.0,144455.28600000002,116580.045,340413.7314,62187.27603000001,62187.27603000001,62187.27603000001,54423.348,232297.55151999998,515889.8880000001,221627.46732000003,337718.0454400001,192395.616,192395.616,192395.616,102274.935,144455.28600000002,144455.28600000002,218257.76635000002,75445.52625,112143.7205,195599.5125,55513.0045,70602.10975,147039.243,147039.243,147039.243,147039.243,434328.89324,434328.89324 +7707600.0,168055.491,129046.66500000001,376816.2618,78654.32509,78654.32509,78654.32509,66453.541,288997.70856,540486.1625600001,233703.63134999998,356119.81919999997,219891.46200000003,219891.46200000003,219891.46200000003,168351.253,168055.491,168055.491,233311.06539,103572.3429,153951.97636,268520.889,76208.78564,96923.25422,188748.24599999998,188748.24599999998,188748.24599999998,188748.24599999998,505286.84294,505286.84294 +7711200.0,887715.999,862642.059,2518914.81228,776958.60033,776958.60033,776958.60033,940676.2294999999,1382730.03144,1145856.28224,1066913.58606,1625773.08352,526607.061,526607.061,526607.061,1436821.862,887715.999,887715.999,1549741.0765200001,469473.84945,697835.20338,1217154.4245,345440.01762,439334.78751,1126160.6400000001,1126160.6400000001,1126160.6400000001,1126160.6400000001,2669066.1036599996,2669066.1036599996 +7714800.0,1422155.49,1427925.4500000002,4169542.3140000002,1684519.8865,1684519.8865,1684519.8865,1387185.5025000002,2163983.63512,2300577.75168,2141624.96562,3263428.51904,831432.3450000002,831432.3450000002,831432.3450000002,1065744.5749999997,1422155.49,1422155.49,917092.6855999999,1137139.3494,1690266.3909599998,2948139.054,836709.94104,1064137.8109199998,1537847.505,1537847.505,1537847.505,1537847.505,4275947.5066,4275947.5066 +7718400.0,1485429.237,1274036.871,3720187.66332,1205503.9430500001,1205503.9430500001,1205503.9430500001,1306953.3679999998,2448548.32232,5543315.076480001,1826651.72529,2783469.29568,1602249.7769999998,1602249.7769999998,1602249.7769999998,1375734.1885000002,1485429.237,1485429.237,567503.42961,2099957.72805,3121418.64762,5444334.8505,1545154.08138,1965145.62699,1055441.787,1055441.787,1055441.787,1055441.787,4466190.572579999,4466190.572579999 +7722000.0,989802.882,586718.9040000001,1713219.19968,760117.13976,760117.13976,760117.13976,1695501.6435,2129187.4376,3493799.27616,1972611.33552,3005883.93984,1304090.6609999998,1304090.6609999998,1304090.6609999998,1540521.458,989802.882,989802.882,1014899.7017899998,1753034.77665,2605745.51986,4544904.9765,1289887.31714,1640494.27247,1111907.019,1111907.019,1111907.019,1111907.019,2976007.33188,2976007.33188 +7725600.0,632260.911,386167.005,1127607.6546,638129.1827900001,638129.1827900001,638129.1827900001,923169.8210000001,1847166.2456,2639689.1385600003,1186272.40116,1807653.1827200002,514019.073,514019.073,514019.073,990594.5420000001,632260.911,632260.911,267184.71117,868420.1241,1290836.82644,2251459.5810000002,638985.67156,812669.6963800001,609693.414,609693.414,609693.414,609693.414,1900997.8057399997,1900997.8057399997 +7729200.0,377398.578,263581.284,769657.34928,161972.13351,161972.13351,161972.13351,398827.99950000003,1045624.32424,682677.5027200001,677633.57781,1032584.4995200001,316324.542,316324.542,316324.542,358956.101,377398.578,377398.578,161352.99881999998,318258.80504999997,473066.17442,825115.4205,234175.61458,297827.37559,338725.953,338725.953,338725.953,338725.953,1134711.72452,1134711.72452 +7732800.0,368907.59400000004,268227.264,783223.61088,154169.10509000003,154169.10509000003,154169.10509000003,352822.715,721851.23776,879698.34176,544245.34185,829326.2352,318660.666,318660.666,318660.666,365668.653,368907.59400000004,368907.59400000004,194755.55800999998,330118.81289999996,490695.12435999996,855863.589,242902.23764,308926.00022,333186.705,333186.705,333186.705,333186.705,1109182.16596,1109182.16596 +7736400.0,251448.13500000004,157261.794,459204.43847999995,92838.44196000001,92838.44196000001,92838.44196000001,204514.02300000002,479493.59712,456996.85056000005,338253.13998000004,515433.3561600001,198393.273,198393.273,198393.273,172449.2315,251448.13500000004,251448.13500000004,110232.88159,157655.54474999997,234342.3159,408736.5975,116003.3391,147534.44805,193591.10700000002,193591.10700000002,193591.10700000002,193591.10700000002,756020.7259000001,756020.7259000001 +7740000.0,31437.222,4580.772,13375.854239999999,59006.13554,59006.13554,59006.13554,49914.4835,46344.2252,16421.1296,32660.04945,49767.6944,8792.835,8792.835,8792.835,17829.9695,31437.222,31437.222,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,16840.596,16840.596,16840.596,16840.596,94521.24748,94521.24748 +7743600.0,17289.711,3203.478,9354.15576,44388.262489999994,44388.262489999994,44388.262489999994,38643.472,31885.65832,12337.789440000002,23705.891160000003,36123.262720000006,6807.357,6807.357,6807.357,13803.846000000001,17289.711,17289.711,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,10946.298,10946.298,10946.298,10946.298,51984.39774,51984.39774 +7747200.0,16200.710999999998,3603.9120000000003,10523.42304,49677.10946,49677.10946,49677.10946,43473.906,32682.75408,13880.007679999999,26163.23577,39867.78784,7658.277,7658.277,7658.277,15529.3285,16200.710999999998,16200.710999999998,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11427.264000000001,11427.264000000001,11427.264000000001,11427.264000000001,48710.13773999999,48710.13773999999 +7750800.0,54045.156,6834.813,19957.65396,85331.89269000002,85331.89269000002,85331.89269000002,70846.3665,71994.31696,23224.676480000002,47528.60553,72424.54176,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,54045.156,54045.156,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,26615.286,26615.286,26615.286,26615.286,162495.76903999998,162495.76903999998 +7754400.0,254938.854,63081.344999999994,184197.5274,178752.99585,178752.99585,178752.99585,141034.887,422061.59463999997,258070.67328000002,233516.93253,355835.32576000004,109725.864,109725.864,109725.864,63272.96149999999,254938.854,254938.854,44457.007009999994,55320.49305,82229.47361999999,143423.5005,40704.95538,51769.05399,126316.69499999998,126316.69499999998,126316.69499999998,126316.69499999998,766516.1543599999,766516.1543599999 +7758000.0,563877.1950000001,327108.387,955156.49004,190550.52170000004,190550.52170000004,190550.52170000004,373011.92949999997,1184121.8572799999,968452.76864,762036.93426,1161199.1379200001,484276.65599999996,484276.65599999996,484276.65599999996,308303.99250000005,563877.1950000001,563877.1950000001,267444.78786999994,240578.3349,357600.38915999996,623721.6089999999,177018.13283999998,225133.79982,423928.93200000003,423928.93200000003,423928.93200000003,423928.93200000003,1695390.7663,1695390.7663 +7761600.0,683878.887,601782.735,1757205.5862,182075.36534000002,182075.36534000002,182075.36534000002,585622.0160000001,1242002.66376,1342191.4201600002,933604.43652,1422635.3318399999,559706.433,559706.433,559706.433,649751.627,683878.887,683878.887,435995.03779,578990.50695,860622.92638,1501086.4995000002,426022.64462000004,541820.74601,652001.148,652001.148,652001.148,652001.148,2056195.8535799999,2056195.8535799999 +7765200.0,355501.839,272453.529,795564.30468,205865.44329999998,205865.44329999998,205865.44329999998,331003.5575,607231.8645599999,751663.5244800001,498824.78982000006,760113.96544,260053.41599999997,260053.41599999997,260053.41599999997,375052.5905,355501.839,355501.839,518213.01714,174402.80099999998,259235.76839999997,452155.41,128326.0116,163206.5718,392802.549,392802.549,392802.549,392802.549,1068875.52926,1068875.52926 +7768800.0,130209.84900000002,104631.648,305524.41216,78948.42329,78948.42329,78948.42329,94620.155,214160.976,573009.3331200001,207834.13203,316699.62976000004,153022.46099999998,153022.46099999998,153022.46099999998,117271.77350000001,130209.84900000002,130209.84900000002,219984.39761999997,69594.55604999998,103446.72281999997,180430.33049999995,51207.84617999999,65126.75738999999,102930.42300000001,102930.42300000001,102930.42300000001,102930.42300000001,391497.61266,391497.61266 +7772400.0,137978.415,106392.01800000001,310664.69256,41922.432640000006,41922.432640000006,41922.432640000006,61586.14699999999,224601.83896000002,577935.2096000001,210112.8246,320171.92319999996,153424.329,153424.329,153424.329,111926.06950000001,137978.415,137978.415,221308.42707999996,60012.58005,89203.88442,155588.1705,44157.40458,56159.92059,100237.22399999999,100237.22399999999,100237.22399999999,100237.22399999999,414855.10109999997,414855.10109999997 +7776000.0,147915.984,122575.239,357919.69788,32831.61552,32831.61552,32831.61552,48790.5285,250691.46079999997,583514.6912,211701.9912,322593.5104,153588.174,153588.174,153588.174,107094.83750000001,147915.984,147915.984,228699.94445999997,66488.26275,98829.4671,172376.9775,48922.2279,62219.88045,99250.26000000001,99250.26000000001,99250.26000000001,99250.26000000001,444734.05856,444734.05856 +7779600.0,155037.081,131485.572,383937.87023999996,46721.23126,46721.23126,46721.23126,53703.114499999996,300370.81072,601774.8454400001,233075.29665,355162.3568,187991.84399999998,187991.84399999998,187991.84399999998,107900.618,155037.081,155037.081,257829.2756,70328.54565,104537.73946,182333.2665,51747.91754,65813.62667,111013.29000000001,111013.29000000001,111013.29000000001,111013.29000000001,466144.82354,466144.82354 +7783200.0,173048.391,135401.06999999998,395371.1244,68383.1225,68383.1225,68383.1225,61724.9535,341399.56136,621230.50496,270796.14765,412641.74880000006,272971.689,272971.689,272971.689,124610.72399999999,173048.391,173048.391,265835.60237,91424.85795,135895.71477999998,237027.4095,67270.63622,85555.60781,174659.193,174659.193,174659.193,174659.193,520298.82894,520298.82894 +7786800.0,208300.12200000003,149304.537,435969.24804000003,72744.53043000001,72744.53043000001,72744.53043000001,69258.9345,403733.14008,746921.83552,305837.61894,466038.27648000006,319422.44100000005,319422.44100000005,319422.44100000005,216018.14500000002,208300.12200000003,208300.12200000003,291300.07907,128756.1096,191385.62464,333812.136,94739.06336,120490.28528000001,249250.662,249250.662,249250.662,249250.662,626289.0334800001,626289.0334800001 +7790400.0,258854.088,171600.555,501073.62059999997,101187.38355,101187.38355,101187.38355,72314.165,523697.56743999996,851114.29696,378585.64926000003,576892.41792,363946.707,363946.707,363946.707,229022.48599999998,258854.088,258854.088,317994.97301,146418.58889999997,217639.48275999998,379603.74899999995,107735.15924,137018.87701999999,321185.964,321185.964,321185.964,321185.964,778287.95792,778287.95792 +7794000.0,419426.916,233466.63900000002,681722.58588,133558.21809,133558.21809,133558.21809,83129.0285,983770.1394399999,996892.5011200001,603876.7971600001,920193.21472,417041.0669999999,417041.0669999999,417041.0669999999,336565.2885,419426.916,419426.916,545337.87217,192867.9498,286682.73032,500028.018,141912.71368,180486.30364,449400.95699999994,449400.95699999994,449400.95699999994,449400.95699999994,1261076.92744,1261076.92744 +7797600.0,1140127.974,575104.116,1679304.01872,1284321.6664300002,1284321.6664300002,1284321.6664300002,1259600.2125000001,3270427.52392,3824043.4195200005,2629291.36386,4006539.22112,1087674.096,1087674.096,1087674.096,1534402.2925,1140127.974,1140127.974,2213104.29964,1472288.85765,2188439.24026,3817045.1865000003,1083313.7767400001,1377771.5482700001,1412350.4880000001,1412350.4880000001,1412350.4880000001,1412350.4880000001,3427984.7751599997,3427984.7751599997 +7801200.0,610210.11,874766.457,2554318.05444,1005068.4780400001,1005068.4780400001,1005068.4780400001,1557508.008,3275440.5332,1663589.8732800002,2183502.61122,3327242.07424,777507.6779999998,777507.6779999998,777507.6779999998,1121481.4835,610210.11,610210.11,1606896.68074,1596002.44995,2372329.56758,4137784.1295,1174342.54342,1493543.03341,917069.4870000001,917069.4870000001,917069.4870000001,917069.4870000001,1834698.3974,1834698.3974 +7804800.0,1407030.525,1250438.694,3651280.98648,368474.27133,368474.27133,368474.27133,867561.422,2584827.95768,3826170.04608,1966033.1798100001,2995860.08352,1141905.5010000002,1141905.5010000002,1141905.5010000002,723721.509,1407030.525,1407030.525,840897.6247099999,843975.6565499998,1254502.0870199997,2188085.0354999998,620999.3719799999,789794.5032899999,1510010.0069999998,1510010.0069999998,1510010.0069999998,1510010.0069999998,4230471.7785,4230471.7785 +7808400.0,634803.4920000001,476328.423,1390878.99516,249562.23721000002,249562.23721000002,249562.23721000002,224147.42349999998,623691.5775199999,4148970.81152,170632.82964,260011.93088,555495.681,555495.681,555495.681,483648.02150000003,634803.4920000001,634803.4920000001,226442.23627999998,1147071.4317,1705029.63428,2973888.8970000003,844017.99172,1073432.2780600002,168134.439,168134.439,168134.439,168134.439,1908642.49928,1908642.49928 +7812000.0,162987.03300000002,56182.53,164052.9876,125852.80455,125852.80455,125852.80455,98218.8235,73555.87456000001,279961.24416,56545.833959999996,86165.08032,19073.304,19073.304,19073.304,35084.777,162987.03300000002,162987.03300000002,20657.579149999998,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,30573.347999999998,30573.347999999998,30573.347999999998,30573.347999999998,490047.67922000005,490047.67922000005 +7815600.0,126258.03,405325.88399999996,1183551.58128,118926.71054000001,118926.71054000001,118926.71054000001,299941.8835,196457.8336,194035.39968000003,117491.6337,179034.8704,46298.028,46298.028,46298.028,351737.10949999996,126258.03,126258.03,59998.27574,48514.468049999996,72112.86361999999,125778.2505,35697.06538,45399.95899,48598.371,48598.371,48598.371,48598.371,379615.8102,379615.8102 +7819200.0,186837.96899999998,106338.762,310509.18504,109956.27181,109956.27181,109956.27181,211379.3395,345308.90992,303312.93376,133114.68891,202841.43072,124413.405,124413.405,124413.405,71006.439,186837.96899999998,186837.96899999998,154868.66187,67126.54680000001,99778.22512,174031.78800000003,49391.878880000004,62817.18824000001,80344.065,80344.065,80344.065,80344.065,561759.4934599999,561759.4934599999 +7822800.0,60983.064,16790.589,49028.51987999999,72203.1024,72203.1024,72203.1024,57965.20799999999,91244.34104,50885.5424,39545.22411,60259.38912000001,31645.733999999997,31645.733999999997,31645.733999999997,20705.7725,60983.064,60983.064,48982.33196999999,22032.58725,32749.6729,57121.52250000001,16211.6321,20618.149550000002,22087.5,22087.5,22087.5,22087.5,183355.74575999996,183355.74575999996 +7826400.0,115786.362,63245.952000000005,184678.17984,120168.29660000002,120168.29660000002,120168.29660000002,97225.121,231118.04088000002,15993.763200000003,248166.55437,378158.55904,57283.27500000001,57283.27500000001,57283.27500000001,104085.98199999999,115786.362,115786.362,224563.97937999998,66991.97744999999,99578.19857999998,173682.9045,49292.86242,62691.25791,39446.859,39446.859,39446.859,39446.859,348130.99507999996,348130.99507999996 +7830000.0,17094.312,183918.972,537043.39824,254080.57213000004,254080.57213000004,254080.57213000004,174484.135,250246.95503999997,42344.01344,32833.83285,50032.5072,19270.95,19270.95,19270.95,293437.68649999995,17094.312,17094.312,153607.09026,78945.94124999999,117346.80649999998,204674.66249999998,58088.61849999999,73877.80674999999,57035.354999999996,57035.354999999996,57035.354999999996,57035.354999999996,51396.89808,51396.89808 +7833600.0,12955.443,6569.540999999999,19183.059719999997,256188.06697000004,256188.06697000004,256188.06697000004,43473.906,28964.18664,43886.231680000004,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,12955.443,12955.443,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,38952.698619999996,38952.698619999996 +7837200.0,545517.966,124205.37299999999,362679.68915999995,119172.90077000001,119172.90077000001,119172.90077000001,438543.2905,513662.78304,139316.44160000002,467752.89267000003,712766.3126400001,311157.804,311157.804,311157.804,52966.291,545517.966,545517.966,9502.102089999998,68449.57245,101744.79658,177461.85450000002,50365.364420000005,64055.27891,249466.713,249466.713,249466.713,249466.713,1640190.6844399997,1640190.6844399997 +7840800.0,339211.58700000006,165306.846,482695.99032,193358.27225000004,193358.27225000004,193358.27225000004,444783.339,507667.07112000004,395945.30816,448832.11149000004,683934.6460800001,259284.90000000002,259284.90000000002,259284.90000000002,116587.6985,339211.58700000006,339211.58700000006,33929.80252999999,135450.74339999998,201336.66055999996,351168.594,99664.99143999998,126755.14012,223053.57299999997,223053.57299999997,223053.57299999997,223053.57299999997,1019896.1715800001,1019896.1715800001 +7844400.0,542023.56,386559.36299999995,1128753.3399599998,243546.65918,243546.65918,243546.65918,599324.915,1170967.18136,1038486.0665600001,765723.44625,1166816.68,489575.22899999993,489575.22899999993,489575.22899999993,380204.68499999994,542023.56,542023.56,252937.54888999998,359237.38544999994,533977.5457799999,931356.1845,264327.75522,336175.23231,444107.50800000003,444107.50800000003,444107.50800000003,444107.50800000003,1629684.1704000002,1629684.1704000002 +7848000.0,697923.906,572995.1039999999,1673145.7036799998,280200.50937999994,280200.50937999994,280200.50937999994,676972.4115,1455648.324,1392387.0182400001,1047830.17878,1596693.60576,658747.206,658747.206,658747.206,755604.3915,697923.906,697923.906,425942.17626999994,588830.6704500001,875249.5397800001,1526598.0345000003,433263.06122000003,551029.1953100001,624297.237,624297.237,624297.237,624297.237,2098424.54404,2098424.54404 +7851600.0,535907.436,460428.36899999995,1344450.83748,323371.67906999995,323371.67906999995,323371.67906999995,449060.451,832343.37784,1147852.1747200002,698326.71783,1064116.90336,387079.461,387079.461,387079.461,498666.8785,535907.436,535907.436,462031.77942999994,370647.8554499999,550938.2937799998,960938.8844999998,272723.60721999995,346853.17830999993,536546.328,536546.328,536546.328,536546.328,1611295.02424,1611295.02424 +7855200.0,101903.53800000002,85994.538,251104.05096,78953.06716,78953.06716,78953.06716,76530.4435,148079.66488,583715.45984,141834.32172,216128.49024,125226.73499999999,125226.73499999999,125226.73499999999,111421.11400000002,101903.53800000002,101903.53800000002,150275.79489,52391.41155,77875.62902,135829.5855,38549.72998,49028.01229,81620.766,81620.766,81620.766,81620.766,306389.97092000005,306389.97092000005 +7858800.0,104125.32,101905.299,297563.47307999997,40665.270690000005,40665.270690000005,40665.270690000005,52787.2275,160888.13392,598641.4924800001,146843.49057,223761.50944000002,144620.706,144620.706,144620.706,110563.26049999999,104125.32,104125.32,199921.26232,57681.205649999996,85738.48345999999,149543.8665,42441.97354,53978.21467,89963.06099999999,89963.06099999999,89963.06099999999,89963.06099999999,313070.1288,313070.1288 +7862400.0,107851.677,112270.19700000001,327828.97524000006,16910.447070000002,16910.447070000002,16910.447070000002,42080.4965,223736.40936000002,596292.3699200001,155939.80542,237622.56064,154541.859,154541.859,154541.859,106351.3115,107851.677,107851.677,233049.66593999995,54743.5179,81371.84636,141927.639,40280.41564,51229.11922,86253.696,86253.696,86253.696,86253.696,324274.04218,324274.04218 +7866000.0,132552.717,127541.36399999997,372420.78287999996,13816.770880000002,13816.770880000002,13816.770880000002,44723.356999999996,227756.65368000002,613460.75968,204245.68836,311231.52512,159819.26400000002,159819.26400000002,159819.26400000002,108108.76299999999,132552.717,132552.717,252710.30524999998,69657.60644999999,103540.44217999998,180593.7945,51254.23882,65185.76011,94601.19,94601.19,94601.19,94601.19,398541.83577999996,398541.83577999996 +7869600.0,140146.779,132520.605,386960.1666,18199.20443,18199.20443,18199.20443,48056.631,219347.15295999998,597167.25248,242053.61943,368843.61056,187436.199,187436.199,187436.199,125345.72050000001,140146.779,140146.779,257888.10189999998,75896.26694999999,112813.71037999999,196768.09949999998,55844.660619999995,71023.91401,113239.13699999999,113239.13699999999,113239.13699999999,113239.13699999999,421374.64886,421374.64886 +7873200.0,155052.86700000003,124475.02799999999,363467.08176,39108.14160000001,39108.14160000001,39108.14160000001,56303.544499999996,220741.85008,543576.57216,243390.44751,370880.68192,219551.07,219551.07,219551.07,175120.869,155052.86700000003,155052.86700000003,240929.93222999998,77313.5685,114920.4154,200442.585,56887.5146,72350.2283,147557.04,147557.04,147557.04,147557.04,466192.28678,466192.28678 +7876800.0,189992.73,136610.691,398903.21771999996,57595.39621,57595.39621,57595.39621,61781.9825,302729.72104,547142.33984,270549.6486,412266.13120000006,252014.41500000004,252014.41500000004,252014.41500000004,183680.2065,189992.73,189992.73,264420.28873,95146.2288,141427.23392,246675.408,70008.83008,89038.07584,204442.863,204442.863,204442.863,204442.863,571244.8082,571244.8082 +7880400.0,318185.22000000003,172116.27000000002,502579.50840000005,92343.62764,92343.62764,92343.62764,69091.197,791941.72056,604176.4857600001,468578.93859000003,714025.04928,279538.68299999996,279538.68299999996,279538.68299999996,276394.321,318185.22000000003,318185.22000000003,466136.92684,139141.0953,206822.07252,360736.173,102380.36148,130208.58054000001,335147.499,335147.499,335147.499,335147.499,956676.8948,956676.8948 +7884000.0,1031217.051,467853.333,1366131.73236,848373.23384,848373.23384,848373.23384,1080120.2405,3070858.494559999,3043466.3168,2341917.04299,3568635.49408,855218.3640000001,855218.3640000001,855218.3640000001,1286727.7465000001,1031217.051,1031217.051,1944101.4517599999,1222467.8436,1817100.3502399998,3169361.0760000004,899494.85776,1143988.4264800001,1246537.02,1246537.02,1246537.02,1246537.02,3100525.93334,3100525.93334 +7887600.0,581691.819,835241.082,2438903.95944,792638.4747600001,792638.4747600001,792638.4747600001,1433813.7170000002,3148057.9509599996,1563840.46656,2087340.1899,3180708.8608000004,760966.92,760966.92,760966.92,990858.351,581691.819,581691.819,1340249.35239,1451645.0802,2157753.92168,3763524.282,1068124.03432,1358453.05036,890184.117,890184.117,890184.117,890184.117,1748953.40246,1748953.40246 +7891200.0,1476812.5350000001,1259987.448,3679163.3481600005,367610.97956,367610.97956,367610.97956,825513.416,2672611.2928,4066695.7292800006,2063836.64193,3144893.9305600002,1214909.007,1214909.007,1214909.007,730659.7024999999,1476812.5350000001,1476812.5350000001,680293.46112,852588.7713,1267304.79092,2210415.333,627336.9230800001,797854.67734,1620571.6469999999,1620571.6469999999,1620571.6469999999,1620571.6469999999,4440283.0219,4440283.0219 +7894800.0,803760.573,533018.412,1556413.76304,287462.16675,287462.16675,287462.16675,253594.26050000003,830324.91032,4462157.6934400005,313636.55715000007,477922.37280000007,713644.5299999999,713644.5299999999,713644.5299999999,682407.4844999999,803760.573,803760.573,382214.43740999995,1393994.0308499997,2072060.2631399997,3614058.5985,1025704.2498599999,1304503.0560299999,288865.536,288865.536,288865.536,288865.536,2416640.1228199997,2416640.1228199997 +7898400.0,277958.556,148480.68899999998,433563.6118799999,138776.11682,138776.11682,138776.11682,106672.216,323484.50288,613530.8704,160518.46671,244599.56832000002,91821.51299999999,91821.51299999999,91821.51299999999,69242.3025,277958.556,277958.556,151527.22702,71043.21269999999,105600.03468,184186.107,52273.77132,66482.41386,110138.43,110138.43,110138.43,110138.43,835728.7250399999,835728.7250399999 +7902000.0,284031.714,667555.1429999999,1949261.0175599998,156336.62022,156336.62022,156336.62022,395143.448,627506.5691999999,621449.9654399999,404273.10588,616035.2089600001,153183.207,153183.207,153183.207,479457.50999999995,284031.714,284031.714,189572.30682,156310.6491,232343.23643999998,405249.831,115013.76156,146275.89138000002,198483.88799999998,198483.88799999998,198483.88799999998,198483.88799999998,853988.68676,853988.68676 +7905600.0,396063.8549999999,308318.65499999997,900290.4726,176895.50076,176895.50076,176895.50076,427797.61150000006,807716.1737599999,1056376.00704,530883.97278,808966.05376,301988.403,301988.403,301988.403,260741.68049999996,396063.8549999999,396063.8549999999,376761.64825,324710.07435,482655.46854,841840.9335,238922.47446000003,303864.48933,331072.512,331072.512,331072.512,331072.512,1190831.9906999997,1190831.9906999997 +7909200.0,253050.738,184714.713,539366.96196,86159.95047000001,86159.95047000001,86159.95047000001,162741.4215,530650.1458399999,612110.73664,307254.7506,468197.71520000004,199869.59100000001,199869.59100000001,199869.59100000001,147554.1235,253050.738,253050.738,251489.41662,171224.361,254511.2724,443915.01,125987.3076,160232.1798,205875.987,205875.987,205875.987,205875.987,760839.21892,760839.21892 +7912800.0,323865.492,207001.344,604443.92448,423014.78659000003,423014.78659000003,423014.78659000003,452962.6185,647966.87488,285373.38048,590642.85315,900027.2048,187570.548,187570.548,187570.548,529859.834,323865.492,323865.492,553750.98545,332978.4369,494945.72595999995,863277.429,245006.35604,311602.04342,158657.04,158657.04,158657.04,158657.04,973755.57928,973755.57928 +7916400.0,48239.78999999999,394812.39,1152852.1788,267022.525,267022.525,267022.525,281458.324,488517.41328,49609.318400000004,66940.17267,102004.07264,95059.71900000001,95059.71900000001,95059.71900000001,507193.28099999996,48239.78999999999,48239.78999999999,388685.49876,169857.95984999998,252480.22673999998,440372.48850000004,124981.90626,158953.49823,122256.999,122256.999,122256.999,122256.999,145040.9686,145040.9686 +7920000.0,80012.739,28489.050000000003,83188.026,268766.69908000005,268766.69908000005,268766.69908000005,75336.667,124769.25816000001,110765.60256000001,49909.10001,76051.96192000002,29431.854,29431.854,29431.854,51535.253,80012.739,80012.739,85267.3991,22839.914249999998,33949.6997,59214.5925,16805.6653,21373.648149999997,30605.493000000002,30605.493000000002,30605.493000000002,30605.493000000002,240571.63525999998,240571.63525999998 +7923600.0,1149423.981,800070.423,2336205.63516,764717.1717900002,764717.1717900002,764717.1717900002,1673764.855,1901285.50808,1918559.27872,1923316.2734100001,2930767.6547200005,1254228.4859999998,1254228.4859999998,1254228.4859999998,872614.2529999999,1149423.981,1149423.981,573684.2844199999,950100.7751999999,1412248.5596799997,2463224.232,699086.4963199999,889106.6513599999,1053912.321,1053912.321,1053912.321,1053912.321,3455934.76954,3455934.76954 +7927200.0,947591.7480000001,625694.817,1827028.86564,502308.97673000005,502308.97673000005,502308.97673000005,798249.767,1566699.62656,2019194.5024000003,1234766.2194,1881548.5248000002,736445.8559999999,736445.8559999999,736445.8559999999,955066.511,947591.7480000001,947591.7480000001,589246.74601,834850.9134,1240938.8885599999,2164428.2939999998,614285.36344,781255.54612,793287.3060000001,793287.3060000001,793287.3060000001,793287.3060000001,2849092.52232,2849092.52232 +7930800.0,855460.2150000001,710380.0950000001,2074309.8774,623732.1153800001,623732.1153800001,623732.1153800001,914034.443,1602094.30144,2748541.15584,1322144.38251,2014696.2019200001,801670.896,801670.896,801670.896,1101750.7725,855460.2150000001,855460.2150000001,664369.29715,1055926.09665,1569549.40786,2737586.1765,776953.02914,988138.24847,904404.807,904404.807,904404.807,904404.807,2572083.7131000003,2572083.7131000003 +7934400.0,841353.846,717274.662,2094442.0130399999,692773.2185,692773.2185,692773.2185,903043.3999999999,1574087.5944799997,2746361.77216,1312199.55258,1999542.17536,810460.5989999999,810460.5989999999,810460.5989999999,1084517.9064999998,841353.846,841353.846,655674.45736,1058839.63425,1573880.1476999999,2745139.7925,779096.8172999999,990864.7441499999,891337.0319999999,891337.0319999999,891337.0319999999,891337.0319999999,2529670.56364,2529670.56364 +7938000.0,582694.719,507502.74900000007,1481908.0270800001,496137.38746,496137.38746,496137.38746,556181.7625000001,824244.0044799999,1663573.99936,756993.78153,1153514.33376,441682.233,441682.233,441682.233,560154.5179999999,582694.719,582694.719,473574.7067999999,494502.7846499999,735038.7070599999,1282044.2565,363856.36994,462756.92686999997,563850.654,563850.654,563850.654,563850.654,1751968.78846,1751968.78846 +7941600.0,109087.13999999998,89293.266,260736.33672,91767.23831,91767.23831,91767.23831,92043.3815,159131.71888,516414.06464,151081.37604000003,230219.23968000003,136693.746,136693.746,136693.746,107697.87,109087.13999999998,109087.13999999998,172393.15131999998,65241.5148,96976.27631999999,169144.668,48004.867679999996,61053.17064,88127.277,88127.277,88127.277,88127.277,327988.6676,327988.6676 +7945200.0,103092.47099999999,94908.066,277131.55272,70119.92581,70119.92581,70119.92581,58733.633,180056.20528,521134.5376000001,150053.44578,228652.86976,134669.49599999998,134669.49599999998,134669.49599999998,98051.492,103092.47099999999,103092.47099999999,189672.05179,54042.0336,80329.14624,140108.97600000002,39764.26176,50572.66848000001,82916.26800000001,82916.26800000001,82916.26800000001,82916.26800000001,309964.69613999996,309964.69613999996 +7948800.0,100360.878,96072.96,280533.0432,60489.54879000001,60489.54879000001,60489.54879000001,37846.224500000004,189728.93888,517135.83296,144723.04329,220530.35168000002,133018.362,133018.362,133018.362,94849.32800000001,100360.878,100360.878,196737.74457999997,46671.62894999999,69373.63117999998,121000.51949999998,34341.099819999996,43675.42561,90969.28199999999,90969.28199999999,90969.28199999999,90969.28199999999,301751.70651999995,301751.70651999995 +7952400.0,115025.43,112699.413,329082.28595999995,59838.90638000001,59838.90638000001,59838.90638000001,40342.900499999996,193273.4276,524104.58176000003,178066.2576,271339.0592,134214.76499999998,134214.76499999998,134214.76499999998,95716.38650000001,115025.43,115025.43,217306.44936,61928.4204,92051.62736,160555.16400000002,45567.08464,57952.76872,103078.62299999999,103078.62299999999,103078.62299999999,103078.62299999999,345843.12619999994,345843.12619999994 +7956000.0,125099.74799999999,123269.334,359946.45528,62186.388770000005,62186.388770000005,62186.388770000005,42363.317500000005,203765.3964,609427.8265600001,218000.46093,332191.17856000003,145769.29499999998,145769.29499999998,145769.29499999998,102559.82800000001,125099.74799999999,125099.74799999999,240359.97608999995,84865.35239999999,126145.53615999999,220021.28399999999,62444.135839999995,79417.20632,126981.456,126981.456,126981.456,126981.456,376133.24231999996,376133.24231999996 +7959600.0,142665.59999999998,132842.001,387898.64292,77925.88056,77925.88056,77925.88056,59609.7985,208022.90239999996,686559.45408,238985.57928,364168.50176,193708.596,193708.596,193708.596,138111.848,142665.59999999998,142665.59999999998,243812.09866,98174.0331,145927.82204,254525.271,72236.69596,91871.50258,179952.54599999997,179952.54599999997,179952.54599999997,179952.54599999997,428947.904,428947.904 +7963200.0,182066.856,146112.615,426648.8358,86302.33535,86302.33535,86302.33535,65156.1365,294939.48808,698506.9561600001,264920.66517,403688.63264,249304.728,249304.728,249304.728,192024.119,182066.856,182066.856,265038.92688,114656.72309999999,170428.01804,297258.171,84364.69996,107296.04458,222383.21399999998,222383.21399999998,222383.21399999998,222383.21399999998,547414.3470399999,547414.3470399999 +7966800.0,311092.56,184981.506,540145.99752,116354.75137000001,116354.75137000001,116354.75137000001,73729.376,811632.30256,734589.56224,461366.01462000003,703033.9270400001,299206.695,299206.695,299206.695,291891.642,311092.56,311092.56,483581.59914999997,152414.93385,226552.56834,395149.8285,112147.28466,142630.27143000002,340980.09599999996,340980.09599999996,340980.09599999996,340980.09599999996,935351.6304,935351.6304 +7970400.0,1045994.271,476017.437,1389970.9160399998,1202048.3990900002,1202048.3990900002,1202048.3990900002,1151003.336,3098703.9649600005,3065921.4835200002,2409330.6474300004,3671360.98656,897798.045,897798.045,897798.045,1263362.219,1045994.271,1045994.271,2131406.3438199996,1231498.5336,1830523.7462399998,3192773.976,906139.66176,1152439.36848,1286638.899,1286638.899,1286638.899,1286638.899,3144956.1081399997,3144956.1081399997 +7974000.0,670825.0349999999,923228.832,2695828.18944,1041976.2799600001,1041976.2799600001,1041976.2799600001,1505095.508,3334896.94832,1872168.9824000003,2283716.28681,3479948.62752,871675.4940000001,871675.4940000001,871675.4940000001,1078715.5925,670825.0349999999,670825.0349999999,1515013.13145,1561916.2729500001,2321663.20078,4049412.5595000004,1149261.8502200001,1461645.1048100002,999264.0899999999,999264.0899999999,999264.0899999999,999264.0899999999,2016947.2718999996,2016947.2718999996 +7977600.0,1546367.2110000001,1398106.755,4082471.7245999994,524901.0664700001,524901.0664700001,524901.0664700001,931300.6185,2872664.13112,4554412.08576,2211830.9331300003,3370409.0409600004,1297948.365,1297948.365,1297948.365,788578.3570000001,1546367.2110000001,1546367.2110000001,740754.0019099999,920467.6218,1368201.2551199999,2386397.538,677282.3488800001,861375.87324,1701703.983,1701703.983,1701703.983,1701703.983,4649410.74774,4649410.74774 +7981200.0,886453.0319999999,579363.714,1691742.0448800002,341704.53416,341704.53416,341704.53416,275038.393,980759.79464,4715248.47104,399037.61772,608057.32224,827594.853,827594.853,827594.853,809423.9615,886453.0319999999,886453.0319999999,431683.9309899999,1486248.1101,2209188.54884,3853235.841,1093585.02916,1390834.65118,377127.411,377127.411,377127.411,377127.411,2665268.78288,2665268.78288 +7984800.0,363705.42,212339.62200000003,620031.6962400001,146897.75705000001,146897.75705000001,146897.75705000001,155286.978,535046.20584,1033848.53184,280391.82171,427263.72832,180760.221,180760.221,180760.221,132849.0345,363705.42,363705.42,245585.73324999996,155360.50694999998,230930.92638,402786.4995,114314.64461999999,145386.74601,196097.92500000002,196097.92500000002,196097.92500000002,196097.92500000002,1093540.9627999999,1093540.9627999999 +7988400.0,398095.191,807143.4870000001,2356858.98204,190604.23349,190604.23349,190604.23349,486842.86699999997,911074.88232,1127476.16512,607167.04146,925206.9203199999,288098.541,288098.541,288098.541,636095.6175,398095.191,398095.191,322068.72555,285810.30224999995,424834.0788999999,740989.6724999999,210299.92609999998,267461.98655,332498.796,332498.796,332498.796,332498.796,1196939.54094,1196939.54094 +7992000.0,495128.73600000003,434975.853,1270129.49076,231482.92277,231482.92277,231482.92277,581784.8609999999,1061463.1575999998,1569135.2947200001,714490.5495,1088747.504,456109.245,456109.245,456109.245,376612.369,495128.73600000003,495128.73600000003,494423.7912899999,478192.32899999997,710794.5236,1239757.89,351855.0964,447493.5622,465655.446,465655.446,465655.446,465655.446,1488687.06624,1488687.06624 +7995600.0,383810.355,321843.57,939783.2244,106354.04912000001,106354.04912000001,106354.04912000001,301220.9795,865481.0504,1214081.69408,537945.8433300001,819726.99936,381463.81799999997,381463.81799999997,381463.81799999997,277279.16299999994,383810.355,383810.355,397860.45832000003,343739.41245,510941.05257999996,891176.2545,252924.30842000002,321672.19091,360471.192,360471.192,360471.192,360471.192,1153989.8007,1153989.8007 +7999200.0,430162.18499999994,302204.97899999993,882438.5386799999,556078.7438800001,556078.7438800001,556078.7438800001,651691.3305,903613.8501599998,655924.21376,779268.34083,1187456.51936,302489.031,302489.031,302489.031,725064.9105,430162.18499999994,430162.18499999994,659144.7328700001,500179.0014,743475.94776,1296760.374,368032.94424000004,468068.74452000007,263442.126,263442.126,263442.126,263442.126,1293354.3028999998,1293354.3028999998 +8002800.0,210317.208,577116.612,1685180.50704,291506.95310000004,291506.95310000004,291506.95310000004,334819.45,851785.4503199998,342375.43040000007,280585.99254,427559.60768,242194.476,242194.476,242194.476,681680.3245,210317.208,210317.208,656769.01615,283773.53699999995,421806.59079999995,735709.1699999999,208801.26919999998,265555.9766,264941.376,264941.376,264941.376,264941.376,632353.73872,632353.73872 +8006400.0,175955.58899999998,117956.84999999999,344434.002,275977.11108,275977.11108,275977.11108,132115.50449999998,463916.73448000004,337689.33824,194227.24923,295965.33216,123852.777,123852.777,123852.777,244382.13799999998,175955.58899999998,175955.58899999998,200335.81697999997,79739.65215,118526.59405999999,206732.4315,58672.632939999996,74620.56337,124196.05799999999,124196.05799999999,124196.05799999999,124196.05799999999,529039.80426,529039.80426 +8010000.0,1417871.8739999998,1111765.5750000002,3246355.4790000003,1297960.0939800001,1297960.0939800001,1297960.0939800001,2112771.3109999998,2425216.37184,3250183.5424000006,2490970.58217,3795764.69664,1629962.7719999999,1629962.7719999999,1629962.7719999999,1589271.2395,1417871.8739999998,1417871.8739999998,910287.2570999999,1529334.3266999999,2273232.7522799997,3964940.847,1125287.97372,1431154.83906,1457509.938,1457509.938,1457509.938,1457509.938,4263068.10116,4263068.10116 +8013600.0,1154955.102,752490.7110000001,2197272.87612,699021.79996,699021.79996,699021.79996,1051430.394,1867630.76776,2885583.5795200006,1538858.21838,2344926.80896,954720.0179999999,954720.0179999999,954720.0179999999,1213621.9165,1154955.102,1154955.102,707639.5713399999,1165058.4942,1731765.95928,3020522.0220000003,857252.9167200001,1090264.61556,1035618.714,1035618.714,1035618.714,1035618.714,3472565.0066799996,3472565.0066799996 +8017200.0,958494.7919999999,796645.4610000001,2326204.7461200003,828970.94148,828970.94148,828970.94148,1043773.7975000001,1776676.2425599997,3100083.9872000003,1489109.6675700003,2269119.4934400003,920945.9759999999,920945.9759999999,920945.9759999999,1239890.134,958494.7919999999,958494.7919999999,731950.69181,1191971.2261499998,1771769.5756599996,3090295.7715,877055.37134,1115449.6165699998,1006152.294,1006152.294,1006152.294,1006152.294,2881874.3412799994,2881874.3412799994 +8020800.0,932656.4879999999,799978.3049999999,2335936.6506,897132.7373800002,897132.7373800002,897132.7373800002,1041808.0785000001,1756855.91912,3109729.7817600006,1482953.15154,2259738.13568,921379.9380000001,921379.9380000001,921379.9380000001,1236238.3565,932656.4879999999,932656.4879999999,732278.23357,1190232.4518000002,1769185.0271200002,3085787.8380000005,875775.9768800001,1113822.4672400001,1009942.3500000001,1009942.3500000001,1009942.3500000001,1009942.3500000001,2804187.1739199995,2804187.1739199995 +8024400.0,644546.2200000001,565030.128,1649887.9737600002,640274.76469,640274.76469,640274.76469,605596.9325,904692.4456,1863804.4275200001,831349.0474800001,1266817.5961600002,492153.87599999993,492153.87599999993,492153.87599999993,625012.8394999999,644546.2200000001,644546.2200000001,539623.47673,548443.00935,815216.5225399999,1421889.2835,403545.72046,513234.32233,629506.821,629506.821,629506.821,629506.821,1937935.6348,1937935.6348 +8028000.0,122293.09199999998,108616.677,317160.69684,134455.09957,134455.09957,134455.09957,96132.351,198792.7824,603081.72928,179348.83511999997,273293.46304,161195.979,161195.979,161195.979,123335.46400000002,122293.09199999998,122293.09199999998,212043.91974999997,85910.51564999999,127699.08745999998,222730.96649999998,63213.169539999995,80395.27266999999,116149.00199999998,116149.00199999998,116149.00199999998,116149.00199999998,367694.56327999994,367694.56327999994 +8031600.0,121816.647,112611.46500000003,328825.47780000005,105783.97236,105783.97236,105783.97236,64199.121,228803.9,775434.27904,179835.21612,274034.61504,167987.001,167987.001,167987.001,121402.505,121816.647,121816.647,237735.43806999997,86729.2272,128916.03648,224853.552,63815.57952,81161.42496,130566.954,130566.954,130566.954,130566.954,366262.05198,366262.05198 +8035200.0,130473.63,128868.636,376296.41712,93720.52085,93720.52085,93720.52085,48458.9945,236458.17192,798507.44064,211670.68314,322545.80288000003,169714.53,169714.53,169714.53,119443.83850000001,130473.63,130473.63,255396.28139999998,87689.49435,130343.39653999999,227343.1335,64522.146459999996,82060.04533,138240.006,138240.006,138240.006,138240.006,392290.7142,392290.7142 +8038800.0,144359.952,143676.003,419533.92876,94858.26493,94858.26493,94858.26493,53503.110499999995,241322.9036,820177.61536,250591.54281,381853.77952000004,172997.39399999997,172997.39399999997,172997.39399999997,120467.977,144359.952,144359.952,281181.56104999996,103781.46059999999,154262.81303999998,269063.046,76362.65496,97118.94708,153867.411,153867.411,153867.411,153867.411,434042.25567999994,434042.25567999994 +8042400.0,170310.879,155360.436,453652.47312,98830.16572000002,98830.16572000002,98830.16572000002,71231.15999999999,292519.02999999997,839792.19904,281583.81741,429080.10272,238465.93499999997,238465.93499999997,238465.93499999997,171998.6905,170310.879,170310.879,289911.48498,121730.96744999998,180943.31457999998,315598.80449999997,89569.94642,113916.13991,232745.577,232745.577,232745.577,232745.577,512068.0428599999,512068.0428599999 +8046000.0,224356.52999999997,171265.377,500094.90084,105395.46237000001,105395.46237000001,105395.46237000001,74992.22150000001,453933.05592,835160.1478400001,331618.66647,505323.68224,312783.999,312783.999,312783.999,228542.99649999998,224356.52999999997,224356.52999999997,314624.83207999996,140533.21395,208891.34518,364345.36950000003,103404.68582,131511.32861,277317.933,277317.933,277317.933,277317.933,674565.3001999999,674565.3001999999 +8049600.0,268353.135,189221.343,552526.32156,113506.29268000001,113506.29268000001,113506.29268000001,75670.9065,528919.0004799999,832642.8857600002,396441.54102000006,604101.3958400001,369620.772,369620.772,369620.772,239356.08200000002,268353.135,268353.135,337430.67747999995,158906.41965000003,236201.64106000002,411979.60650000005,116923.73594000001,148705.01987000002,347989.62,347989.62,347989.62,347989.62,806848.4259,806848.4259 +8053200.0,445861.55700000003,228718.509,667858.04628,137729.59772000002,137729.59772000002,137729.59772000002,83893.6245,989439.5004799999,968478.65216,622769.13447,948981.5382400001,412093.827,412093.827,412093.827,342339.4135,445861.55700000003,445861.55700000003,541806.17777,194670.9531,289362.75004,504702.471,143239.36796,182173.55858,473209.698,473209.698,473209.698,473209.698,1340557.0813799999,1340557.0813799999 +8056800.0,1178821.044,570095.988,1664680.28496,1450914.54013,1450914.54013,1450914.54013,1337540.148,3305358.4035199997,3929398.59392,2728419.40518,4157591.47456,1111343.262,1111343.262,1111343.262,1614222.1585,1178821.044,1178821.044,2389369.63564,1478638.1763,2197876.99292,3833506.3830000004,1087985.62108,1383713.25634,1451313.717,1451313.717,1451313.717,1451313.717,3544321.93896,3544321.93896 +8060400.0,764596.35,966941.0190000001,2823467.77548,1231974.03461,1231974.03461,1231974.03461,1691589.865,3625771.4109599995,2070573.8553600002,2529396.06738,3854317.81696,954003.54,954003.54,954003.54,1305993.0554999998,764596.35,764596.35,1756804.93872,1760031.8766,2616146.14744,4563045.606000001,1295035.8005600001,1647042.1758800002,1099557.3150000002,1099557.3150000002,1099557.3150000002,1099557.3150000002,2298886.3589999997,2298886.3589999997 +8064000.0,1624828.989,1694346.87,4947492.860400001,682675.03975,682675.03975,682675.03975,1276534.042,3285535.02576,5231908.935040001,2544825.65211,3877829.56512,1398790.2510000002,1398790.2510000002,1398790.2510000002,949025.0245000002,1624828.989,1624828.989,876219.4556699999,1139743.2847499999,1694136.9318999997,2954889.9974999996,838625.9230999999,1066574.58005,1793915.2740000002,1793915.2740000002,1793915.2740000002,1793915.2740000002,4885319.16026,4885319.16026 +8067600.0,1039588.14,673448.6639999999,1966470.0988799997,400877.31585,400877.31585,400877.31585,404923.9985,1319627.85032,5323598.4704,589519.4724300001,898315.3865600001,996987.423,996987.423,996987.423,970923.9715,1039588.14,1039588.14,531681.8348399999,1695839.34825,2520729.1053,4396620.5325,1247802.7797,1586970.64935,521194.827,521194.827,521194.827,521194.827,3125695.0075999997,3125695.0075999997 +8071200.0,453022.6619999999,303220.96499999997,885405.2178,161653.6845,161653.6845,161653.6845,221820.312,740919.1881599999,1706536.6496,402623.10060000006,613520.9152,277455.546,277455.546,277455.546,206645.936,453022.6619999999,453022.6619999999,342534.45303999993,321126.86924999993,477329.3216999999,832551.1425,236285.94329999998,300511.31714999996,285441.936,285441.936,285441.936,285441.936,1362088.1370799998,1362088.1370799998 +8074800.0,463360.743,865811.6129999999,2528169.90996,233317.62993000002,233317.62993000002,233317.62993000002,555068.024,1055489.5617600002,1370918.8524800001,723371.9679899999,1102281.09408,359243.62200000003,359243.62200000003,359243.62200000003,705428.0765,463360.743,463360.743,385186.84424999997,371992.96979999996,552937.69832,964426.218,273713.34567999997,348111.93964,407158.55700000003,407158.55700000003,407158.55700000003,407158.55700000003,1393171.3006199999,1393171.3006199999 +8078400.0,540588.27,524685.315,1532081.1197999998,287019.06992000004,287019.06992000004,287019.06992000004,695840.3445,1157729.19784,1745994.6233599999,802856.4138,1223400.2496,510340.596,510340.596,510340.596,491429.72549999994,540588.27,540588.27,531675.8896799999,548302.7740499999,815008.0740199998,1421525.7104999998,403442.53497999994,513103.08978999994,509818.005,509818.005,509818.005,509818.005,1625368.7318,1625368.7318 +8082000.0,348836.27999999997,276898.42500000005,808543.4010000001,103346.27028000001,103346.27028000001,103346.27028000001,261821.49700000003,742971.6328,1010683.8912000002,467958.97427999997,713080.34176,311689.383,311689.383,311689.383,235376.813,348836.27999999997,348836.27999999997,349037.00065,294162.26085,437248.59514,762642.8985000001,216445.31786,275277.77003,311510.45999999996,311510.45999999996,311510.45999999996,311510.45999999996,1048834.4152,1048834.4152 +8085600.0,405433.03500000003,296482.434,865728.70728,670330.8477800001,670330.8477800001,670330.8477800001,658945.147,826425.2970400001,525733.6768,742959.8494500001,1132129.2944,257861.47199999998,257861.47199999998,257861.47199999998,726738.2150000001,405433.03500000003,405433.03500000003,627648.2900999999,488704.73579999997,726420.3727199999,1267012.278,359590.15128,457331.09844,233088.56100000002,233088.56100000002,233088.56100000002,233088.56100000002,1219001.9919,1219001.9919 +8089200.0,223779.86699999997,596335.6950000001,1741300.2294,300483.42357,300483.42357,300483.42357,337572.9245,846771.6175999999,331458.88448000007,310328.03130000003,472880.80960000004,246499.362,246499.362,246499.362,688744.8295,223779.86699999997,223779.86699999997,671987.4713499999,302906.89125000004,450246.78650000005,785314.1625000001,222879.63850000003,283461.01675000007,279335.421,279335.421,279335.421,279335.421,672831.4667799999,672831.4667799999 +8092800.0,196102.94400000002,173355.279,506197.41468,278720.83239,278720.83239,278720.83239,147509.908,562931.15464,390230.86016000004,225181.77737999998,343134.13696,138750.837,138750.837,138750.837,288955.282,196102.94400000002,196102.94400000002,221742.83742,100563.7761,149479.98324,260720.901,73995.07476,94107.82998000001,153509.037,153509.037,153509.037,153509.037,589616.18496,589616.18496 +8096400.0,1439185.6619999998,1136486.409,3318540.31428,1492175.21112,1492175.21112,1492175.21112,2141084.3965000003,2398277.4621599996,3305564.38528,2527366.6172999996,3851225.3216,1641150.8789999997,1641150.8789999997,1641150.8789999997,1647207.8945,1439185.6619999998,1439185.6619999998,1038028.0769299999,1601673.9970500001,2380759.86722,4152488.1405000007,1178515.6817800002,1498850.4811900002,1533845.193,1533845.193,1533845.193,1533845.193,4327151.55708,4327151.55708 +8100000.0,1200636.504,749073.696,2187295.19232,736289.46721,736289.46721,736289.46721,1099275.8279999997,1898525.79272,2879926.8608,1556101.1445,2371201.744,965928.2040000001,965928.2040000001,965928.2040000001,1210527.7765000002,1200636.504,1200636.504,706967.9077499999,1163122.5820499999,1728888.3812199999,3015502.9905,855828.46778,1088452.98419,1054841.322,1054841.322,1054841.322,1054841.322,3609913.75536,3609913.75536 +8103600.0,993250.4759999999,808131.294,2359743.37848,869304.0554000001,869304.0554000001,869304.0554000001,1057991.0565000002,1791350.6967200001,3130920.88832,1511954.1282300001,2303930.1001600004,927416.493,927416.493,927416.493,1253275.7719999999,993250.4759999999,993250.4759999999,750457.9412199999,1208525.9859,1796376.89756,3133215.519,889236.40444,1130941.60162,1022095.7849999999,1022095.7849999999,1022095.7849999999,1022095.7849999999,2986373.0978399995,2986373.0978399995 +8107200.0,952119.2550000001,815622.3060000001,2381617.13352,966707.5029700001,966707.5029700001,966707.5029700001,1061219.7015,1783478.58696,3166860.0416,1512397.44012,2304605.62304,935301.765,935301.765,935301.765,1260728.714,952119.2550000001,952119.2550000001,831268.7791199998,1215161.2791,1806239.7284399997,3150418.131,894118.66956,1137150.92538,1032096.5969999998,1032096.5969999998,1032096.5969999998,1032096.5969999998,2862705.2267,2862705.2267 +8110800.0,673506.75,589968.27,1722707.3484,692480.9843600001,692480.9843600001,692480.9843600001,630739.746,941114.8144800001,1947905.8374400004,866938.0524,1321048.4608,512092.10399999993,512092.10399999993,512092.10399999993,655457.4075000001,673506.75,673506.75,657799.35182,581152.4495999999,863836.48064,1506691.536,427613.40736,543843.89728,663752.031,663752.031,663752.031,663752.031,2025010.295,2025010.295 +8114400.0,126897.16500000001,112495.61999999998,328487.2103999999,139354.15857000003,139354.15857000003,139354.15857000003,97677.895,204933.93368000002,727963.4355200002,186294.39443999997,283877.17248,167177.78100000002,167177.78100000002,167177.78100000002,127517.41099999998,126897.16500000001,126897.16500000001,219830.19382999995,97203.6936,144485.49023999998,252009.576,71522.71776,90963.45648000001,135307.32,135307.32,135307.32,135307.32,381537.47609999997,381537.47609999997 +8118000.0,121944.273,111214.16399999999,324745.35887999996,114254.85115,114254.85115,114254.85115,64223.4215,227620.93792,768476.6604800001,179447.11596,273443.22432000004,164727.864,164727.864,164727.864,120471.12,121944.273,121944.273,234371.81949999995,87310.29284999998,129779.74393999997,226360.01849999998,64243.12905999999,81705.18762999999,132616.797,132616.797,132616.797,132616.797,366645.78082,366645.78082 +8121600.0,130765.845,127424.61900000002,372079.88748000003,95756.05809,95756.05809,95756.05809,49406.469,231957.75696,783044.9151999999,209660.64483000003,319482.88736000005,164859.222,164859.222,164859.222,117132.84800000003,130765.845,130765.845,250721.30290999997,87159.23190000001,129555.20396,225968.37900000002,64131.97804000001,81563.82442,138224.277,138224.277,138224.277,138224.277,393169.3073,393169.3073 +8125200.0,142851.726,140466.72,410162.82239999995,94883.03495,94883.03495,94883.03495,53044.130999999994,234309.92792000002,800185.77856,246992.39586,376369.36512000003,167384.754,167384.754,167384.754,117861.828,142851.726,142851.726,274031.34213,102581.93969999999,152479.82147999998,265953.177,75480.04452,95996.43246,154632.399,154632.399,154632.399,154632.399,429507.52284,429507.52284 +8128800.0,170949.027,156147.171,455949.73932,100126.36304000001,100126.36304000001,100126.36304000001,71757.53199999999,271695.6048,829620.0409600001,278721.68982,424718.76544,228204.249,228204.249,228204.249,167183.88749999998,170949.027,170949.027,286192.82587999996,121930.23555,181239.51062,316115.4255,89716.56838,114102.61549,233467.38299999997,233467.38299999997,233467.38299999997,233467.38299999997,513986.74117999995,513986.74117999995 +8132400.0,234570.369,178495.242,521206.10663999995,112231.53205000001,112231.53205000001,112231.53205000001,78422.645,463893.38031999994,870377.65248,345201.14811,526020.79712,320270.25,320270.25,320270.25,238393.512,234570.369,234570.369,324926.13972,148315.56435,220459.18454,384521.8335,109130.95846,138794.07133,291826.18799999997,291826.18799999997,291826.18799999997,291826.18799999997,705274.90946,705274.90946 +8136000.0,288424.26300000004,202257.477,590591.8328399999,122813.51170000002,122813.51170000002,122813.51170000002,80450.3735,568682.9706400001,894474.3392000002,427583.48283,651555.78336,386738.79300000006,386738.79300000006,386738.79300000006,253803.23849999998,288424.26300000004,288424.26300000004,356825.36227000004,171228.07484999998,254516.79273999998,443924.63849999994,125990.04026,160235.65522999997,377773.476,377773.476,377773.476,377773.476,867195.61742,867195.61742 +8139600.0,491242.842,244879.44899999996,715047.99108,149221.85322,149221.85322,149221.85322,90286.651,1053871.92848,1106623.90528,678601.22001,1034059.0019200001,450652.71,450652.71,450652.71,367922.3345,491242.842,491242.842,569974.25446,220223.4804,327344.53136,570949.7640000001,162040.98064000002,206085.67672000002,520038.519,520038.519,520038.519,520038.519,1477003.47828,1477003.47828 +8143200.0,1209010.512,619355.8859999999,1808519.18712,1488212.9603,1488212.9603,1488212.9603,1367959.873,3356831.92408,4099503.02016,2818504.16505,4294863.4896,1160512.194,1160512.194,1160512.194,1688692.39,1209010.512,1209010.512,2474430.2528399997,1529527.2929999998,2273519.5812,3965441.13,1125429.9588,1431335.4174,1488388.284,1488388.284,1488388.284,1488388.284,3635091.60608,3635091.60608 +8146800.0,731239.176,944525.7209999999,2758015.1053199996,1255797.80403,1255797.80403,1255797.80403,1687951.2475,3579412.10688,1968682.17664,2485803.26463,3787890.6889600004,901522.5689999999,901522.5689999999,901522.5689999999,1282410.2795,731239.176,731239.176,1725881.2466999998,1740252.9766499999,2586746.39986,4511766.9765,1280482.43714,1628533.03247,1059757.077,1059757.077,1059757.077,1059757.077,2198592.45584,2198592.45584 +8150400.0,1607228.583,1652024.178,4823910.59976,698549.93637,698549.93637,698549.93637,1276284.317,3204017.25144,5096559.1238400005,2499234.80394,3808357.79648,1364556.2850000001,1364556.2850000001,1364556.2850000001,939342.8030000002,1607228.583,1607228.583,851892.89991,1123160.9688,1669488.6499199998,2911898.808,826424.61408,1051056.80784,1763387.697,1763387.697,1763387.697,1763387.697,4832400.60622,4832400.60622 +8154000.0,989030.8200000001,630168.7799999999,1840092.8375999997,399052.30343,399052.30343,399052.30343,370677.377,1183288.90976,5120611.006720001,503067.55842,766579.13664,909736.3470000001,909736.3470000001,909736.3470000001,909019.8319999999,989030.8200000001,989030.8200000001,471939.0182,1653663.60405,2458038.24602,4287276.0105,1216769.7629799999,1547502.48379,452707.704,452707.704,452707.704,452707.704,2973685.9987999997,2973685.9987999997 +8157600.0,357811.407,206257.557,602272.06644,153340.14784000002,153340.14784000002,153340.14784000002,135775.90600000002,491299.44912,1228223.89888,239920.9764,365593.86880000005,153555.852,153555.852,153555.852,111504.56799999998,357811.407,357811.407,220915.22882,199018.01249999998,295824.305,515972.625,146437.945,186241.54750000002,171392.517,171392.517,171392.517,171392.517,1075819.63038,1075819.63038 +8161200.0,237872.44800000003,631983.2729999999,1845391.15716,186153.30184,186153.30184,186153.30184,365091.02349999995,505093.71016,448222.78336000006,320413.59777,488249.29184,103197.438,103197.438,103197.438,496672.75,237872.44800000003,237872.44800000003,121899.30570999999,94837.7889,140968.76275999998,245875.749,69781.87924000001,88749.43702000001,138931.404,138931.404,138931.404,138931.404,715203.16032,715203.16032 +8164800.0,468128.169,412889.0070000001,1205635.9004400002,227857.04931000003,227857.04931000003,227857.04931000003,540346.744,977682.38328,1292902.9529600001,658174.54626,1002932.64192,380053.12799999997,380053.12799999997,380053.12799999997,350757.10949999996,468128.169,468128.169,455133.67185,399545.66655,593892.57102,1035859.1355000001,293986.68798,373895.82129,425708.33999999997,425708.33999999997,425708.33999999997,425708.33999999997,1407505.3614599998,1407505.3614599998 +8168400.0,304009.21499999997,230189.202,672152.4698399999,93765.49842,93765.49842,93765.49842,216063.0675,626835.71672,813209.18208,388134.0279599999,591442.32832,246490.794,246490.794,246490.794,192531.416,304009.21499999997,304009.21499999997,300805.39904999995,230152.8168,342103.69311999995,596692.488,169347.01088,215377.57424,262220.409,262220.409,262220.409,262220.409,914054.3731,914054.3731 +8172000.0,336594.417,204830.241,598104.30372,581454.9334,581454.9334,581454.9334,524349.882,661062.9230399999,280688.62656,626521.04466,954698.7347200001,187580.793,187580.793,187580.793,592250.512,336594.417,336594.417,550361.9075499999,377107.0911,560539.42924,977685.0510000001,277476.32876,352897.74698000005,162720.21,162720.21,162720.21,162720.21,1012027.2137799999,1012027.2137799999 +8175600.0,162911.607,550296.6390000001,1606866.18588,286752.15932000004,286752.15932000004,286752.15932000004,313527.5255,732799.04192,216767.64736,212027.73605999997,323089.88352,189693.30599999998,189693.30599999998,189693.30599999998,606015.5954999999,162911.607,162911.607,568826.15075,235737.30509999997,350404.58683999995,611170.791,173456.09115999998,220603.55218,230804.16,230804.16,230804.16,230804.16,489820.89837999997,489820.89837999997 +8179200.0,119527.122,56967.642,166345.51464,273461.47664,273461.47664,273461.47664,103529.04100000001,320324.39712,181824.11200000002,110819.23986,168867.41312,61793.448000000004,61793.448000000004,61793.448000000004,141882.44,119527.122,119527.122,127575.74543999998,40948.4727,60866.61868,106162.70700000001,30129.98732,38319.681860000004,66975.633,66975.633,66975.633,66975.633,359378.21348000003,359378.21348000003 +8182800.0,1339109.598,1024630.527,2991921.13884,1198693.5794900001,1198693.5794900001,1198693.5794900001,1976196.3375000001,2215054.6862399997,2657319.9936,2281983.9396900004,3477308.8604800003,1518298.128,1518298.128,1518298.128,1306910.6505,1339109.598,1339109.598,874476.4222999999,1322906.2317000001,1966393.95428,3429756.8970000003,973397.6717200001,1237978.91806,1369399.893,1369399.893,1369399.893,1369399.893,4026256.1913199998,4026256.1913199998 +8186400.0,1108537.908,701021.4060000001,2046982.5055200001,610320.20775,610320.20775,610320.20775,973149.6214999999,1721073.73688,2561161.3568,1421156.46036,2165571.74912,839133.2519999999,839133.2519999999,839133.2519999999,1110559.1315,1108537.908,1108537.908,669970.33051,1051072.61715,1562335.1000599999,2725003.0815,773381.82694,983596.35037,950578.9110000001,950578.9110000001,950578.9110000001,950578.9110000001,3333003.9767199997,3333003.9767199997 +8190000.0,924215.742,757375.686,2211537.00312,760207.1437400001,760207.1437400001,760207.1437400001,977125.6530000002,1681410.23808,2918717.83616,1410027.65253,2148613.56576,859246.0889999999,859246.0889999999,859246.0889999999,1168832.6475,924215.742,924215.742,705527.08668,1136992.5450000002,1690048.178,2947758.45,836601.922,1064000.431,954090.129,954090.129,954090.129,954090.129,2778808.6642799997,2778808.6642799997 +8193600.0,897885.8640000001,767010.3060000001,2239670.09352,835418.1145200001,835418.1145200001,835418.1145200001,994519.5469999999,1668634.4963999998,2936801.277440001,1422793.1445,2168065.744,868092.927,868092.927,868092.927,1169613.977,897885.8640000001,897885.8640000001,746944.77013,1138586.1714,1692416.97576,2951890.0740000005,837774.5162400001,1065491.7505200002,960807.0120000001,960807.0120000001,960807.0120000001,960807.0120000001,2699643.4977599997,2699643.4977599997 +8197200.0,625877.277,541642.125,1581595.005,595944.9921700001,595944.9921700001,595944.9921700001,591617.096,869401.31976,1775548.4569600003,804550.89855,1225982.3216000001,465135.08999999997,465135.08999999997,465135.08999999997,601547.31,625877.277,625877.277,587104.38644,530311.1026499999,788264.8982599999,1374880.6365,390204.21874,496266.43927,604928.835,604928.835,604928.835,604928.835,1881804.3461799999,1881804.3461799999 +8200800.0,115312.16100000001,96997.57500000001,283232.919,119119.88088000003,119119.88088000003,119119.88088000003,94210.893,170827.3,547185.23968,162299.93976,247314.19392000002,144282.342,144282.342,144282.342,114369.93050000002,115312.16100000001,115312.16100000001,190812.51721999998,68009.96925,101091.3617,176322.1425,50041.9033,63643.89715,102245.90400000001,102245.90400000001,102245.90400000001,102245.90400000001,346705.23074,346705.23074 +8204400.0,108840.705,98230.245,286832.31539999996,92947.05398,92947.05398,92947.05398,60567.57,191674.19032000002,540144.42176,157685.76348,240283.06815999997,141200.76299999998,141200.76299999998,141200.76299999998,104021.2005,108840.705,108840.705,198794.47172,68744.7,102183.48,178227.0,50582.52,64331.46,110232.29999999999,110232.29999999999,110232.29999999999,110232.29999999999,327247.7197,327247.7197 +8208000.0,108518.58899999999,102894.42,300451.70639999997,72178.32831000001,72178.32831000001,72178.32831000001,39716.400499999996,197839.87543999997,638594.8544000001,158432.13372,241420.39424000002,138303.90899999999,138303.90899999999,138303.90899999999,100786.9905,108518.58899999999,108518.58899999999,206148.92805,68601.65805,101970.85962,177856.15050000002,50477.26938,64197.60099,113686.416,113686.416,113686.416,113686.416,326279.22426,326279.22426 +8211600.0,122368.06499999999,118121.91,344915.9772,78150.32478000001,78150.32478000001,78150.32478000001,45728.1335,198830.35695999998,656987.984,192996.19332,294089.43744,138369.471,138369.471,138369.471,99382.822,122368.06499999999,122368.06499999999,227304.01992999998,81517.82084999999,121169.69914,211342.4985,59981.01386,76284.57803,120796.194,120796.194,120796.194,120796.194,367919.98209999996,367919.98209999996 +8215200.0,126874.659,122070.264,356445.17087999993,75050.3523,75050.3523,75050.3523,45544.040499999996,196409.01703999998,662246.7558400001,217592.42253000004,331569.40576000005,139212.426,139212.426,139212.426,100415.9835,126874.659,126874.659,231378.37853000002,87006.56309999998,129328.27403999999,225572.571,64019.643959999994,81420.95658,140551.983,140551.983,140551.983,140551.983,381469.80805999995,381469.80805999995 +8218800.0,145567.038,133541.946,389942.48232,84646.4355,84646.4355,84646.4355,61711.86,203437.24096,665456.91072,234380.56551000001,357151.33792,183788.64899999998,183788.64899999998,183788.64899999998,138974.934,145567.038,145567.038,236356.27638999998,101234.42369999998,150476.84707999998,262459.61699999997,74488.53891999999,94735.42366,188740.62,188740.62,188740.62,188740.62,437671.56091999996,437671.56091999996 +8222400.0,182101.24200000003,142599.606,416390.84952,91019.38802,91019.38802,91019.38802,63905.926,269624.48384,669083.21472,258022.36257000003,393176.93344000005,233259.50699999998,233259.50699999998,233259.50699999998,183953.79799999998,182101.24200000003,182101.24200000003,252167.77092,114103.3311,169605.44524,295823.451,83957.51276,106778.17898,218994.462,218994.462,218994.462,218994.462,547517.73428,547517.73428 +8226000.0,225697.608,158718.48,463457.96160000004,106644.99714,106644.99714,106644.99714,72454.84749999999,384939.08567999996,677726.72192,314277.27597,478898.7062400001,268600.848,268600.848,268600.848,198375.90149999998,225697.608,225697.608,280033.45252999995,131583.13515,195587.77125999998,341141.4615,96819.19574,123135.82277,271566.837,271566.837,271566.837,271566.837,678597.47472,678597.47472 +8229600.0,979745.3430000001,1014992.565,2963778.2898,911972.7591700001,911972.7591700001,911972.7591700001,999316.346,1473795.41152,1292947.3216000001,1198828.3146,1826786.0032000002,560997.4739999999,560997.4739999999,560997.4739999999,1564954.7865,979745.3430000001,979745.3430000001,1852884.8474499998,524604.1869,779782.02596,1360084.929,386005.05604,490925.89342000004,1276789.8900000001,1276789.8900000001,1276789.8900000001,1276789.8900000001,2945767.66462,2945767.66462 +8233200.0,1567529.454,1483880.835,4332932.0382,1969853.40662,1969853.40662,1969853.40662,1539951.287,2374016.92832,2391576.9075200004,2333451.54063,3555735.68096,872479.692,872479.692,872479.692,1260675.836,1567529.454,1567529.454,1336335.4313400001,1233540.02115,1833558.25366,3198066.7215,907641.79334,1154349.79757,1713333.7320000003,1713333.7320000003,1713333.7320000003,1713333.7320000003,4713038.558359999,4713038.558359999 +8236800.0,1632941.7659999998,1409748.33,4116465.1235999996,1483023.82833,1483023.82833,1483023.82833,1501468.556,2712307.92776,6256961.74848,2006634.29022,3057728.4422400002,1761531.921,1761531.921,1761531.921,1577211.5625,1632941.7659999998,1632941.7659999998,634821.04868,2376735.0722999997,3532825.9593199994,6161905.743,1748807.5346799998,2224154.54914,1158246.399,1158246.399,1158246.399,1158246.399,4909711.576439999,4909711.576439999 +8240400.0,1094069.607,702870.7050000001,2052382.4586,866828.5511600001,866828.5511600001,866828.5511600001,1816581.8335,2296877.65312,3720992.32448,2214533.04282,3374526.5414400003,1454281.0890000002,1454281.0890000002,1454281.0890000002,1640343.8835,1094069.607,1094069.607,1137187.5400599998,1977815.1509999998,2939863.5083999997,5127668.91,1455281.2715999999,1850844.3018,1229211.267,1229211.267,1229211.267,1229211.267,3289502.61838,3289502.61838 +8244000.0,704118.066,445273.45499999996,1300198.4885999998,665402.44815,665402.44815,665402.44815,1094531.7704999999,2073217.7886399997,3025132.6899200003,1346388.6592799998,2051639.8617599998,569535.372,569535.372,569535.372,1164288.2615,704118.066,704118.066,318371.37956,985328.0396999998,1464611.0614799997,2554554.1769999997,725006.8045199999,922072.4124599999,695183.139,695183.139,695183.139,695183.139,2117048.31844,2117048.31844 +8247600.0,474733.395,342239.853,999340.37076,208384.39072,208384.39072,208384.39072,548389.093,1256454.82416,943948.15808,848268.43605,1292599.5216,404206.38899999997,404206.38899999997,404206.38899999997,498165.6225,474733.395,474733.395,256808.18475,460490.0058,684481.44072,1193862.9780000001,338829.68328,430927.68444000004,436899.59099999996,436899.59099999996,436899.59099999996,436899.59099999996,1427365.0743,1427365.0743 +8251200.0,546432.2069999999,444299.901,1297355.71092,309234.2288200001,309234.2288200001,309234.2288200001,570862.572,1037419.04248,1562252.97664,859106.94639,1309115.34688,489605.238,489605.238,489605.238,644474.082,546432.2069999999,546432.2069999999,445420.08368,615773.6518499999,915298.1195399998,1596450.2084999997,453087.77345999994,576242.50383,561413.0759999999,561413.0759999999,561413.0759999999,561413.0759999999,1642939.5023799997,1642939.5023799997 +8254800.0,304260.906,206359.875,602570.835,115417.06814,115417.06814,115417.06814,266233.41150000005,570146.68488,613414.5088000001,426212.52597,649466.7062400001,242621.532,242621.532,242621.532,250003.12399999998,304260.906,304260.906,168121.68853999997,233947.5615,347744.2766,606530.715,172139.19340000002,218928.70570000002,254645.859,254645.859,254645.859,254645.859,914811.12404,914811.12404 +8258400.0,197605.05599999998,104080.12199999999,303913.95623999997,77416.06829,77416.06829,77416.06829,140595.77000000002,355510.93439999997,262134.81024,239953.09107,365642.80544,132354.366,132354.366,132354.366,93805.131,197605.05599999998,197605.05599999998,72756.09847999999,86781.16034999999,128993.23094,224988.1935,63853.79206,81210.02413,135521.643,135521.643,135521.643,135521.643,594132.53504,594132.53504 +8262000.0,134312.499,52075.14,152059.4088,60017.11540000001,60017.11540000001,60017.11540000001,72781.59349999999,230317.06736,150679.98144000003,144616.87023,220368.56416,72655.989,72655.989,72655.989,38920.976500000004,134312.499,134312.499,39265.2325,37142.01134999999,55208.61933999998,96294.10349999998,27329.183659999995,34757.585929999994,74267.832,74267.832,74267.832,74267.832,403832.91366,403832.91366 +8265600.0,92414.826,24735.852,72228.68784,62077.22323,62077.22323,62077.22323,53887.344,142857.40256,75700.34176000001,86845.72806,132336.34752,34447.416,34447.416,34447.416,23362.6365,92414.826,92414.826,16750.97411,19756.560149999998,29366.541259999995,51220.7115,14536.925739999999,18488.23777,44264.985,44264.985,44264.985,44264.985,277860.57684,277860.57684 +8269200.0,223080.01199999996,112759.5,329257.74,102351.81869000001,102351.81869000001,102351.81869000001,160474.867,416480.40008,301574.52736000007,277725.10143,423200.15456,151974.348,151974.348,151974.348,92831.837,223080.01199999996,223080.01199999996,88552.81188,90065.12715,133874.58406,233502.1815,66270.14294,84283.16837,147995.349,147995.349,147995.349,147995.349,670727.2360799998,670727.2360799998 +8272800.0,666259.218,544031.031,1588570.6105199999,241022.62019000002,241022.62019000002,241022.62019000002,705795.0935000001,1280815.53152,1566267.4681600002,1008105.21105,1536160.3216000001,603479.91,603479.91,603479.91,700017.619,666259.218,666259.218,447030.34180999995,667631.1235499999,992380.0898199999,1730895.5055,491244.62918,624770.85389,625456.407,625456.407,625456.407,625456.407,2003219.3821199997,2003219.3821199997 +8276400.0,782051.6579999999,678579.951,1981453.45692,487418.61718,487418.61718,487418.61718,896288.2075,1488753.92912,2484951.10208,1248458.49177,1902412.9398400001,723862.5989999999,723862.5989999999,723862.5989999999,997850.0454999999,782051.6579999999,782051.6579999999,700532.4933099999,982549.9341,1460481.6304399997,2547351.681,722962.66756,919472.65438,835885.632,835885.632,835885.632,835885.632,2351368.6517199995,2351368.6517199995 +8280000.0,755920.491,663410.592,1937158.92864,563658.2845300001,563658.2845300001,563658.2845300001,720084.589,1261596.06232,1852578.2694400002,1078470.20631,1643383.17152,594040.0109999999,594040.0109999999,594040.0109999999,814143.6625,755920.491,755920.491,691364.15712,807321.30975,1200018.3418999999,2093055.2475,594029.0131,755493.27505,747334.0380000001,747334.0380000001,747334.0380000001,747334.0380000001,2272800.94294,2272800.94294 +8283600.0,353758.80299999996,246144.71999999997,718742.5824,318525.55449,318525.55449,318525.55449,328174.31149999995,582896.91744,687291.18848,491472.73287,748910.8310400001,248450.343,248450.343,248450.343,365700.4715,353758.80299999996,353758.80299999996,485768.10970999993,172303.2891,256115.01243999996,446712.23099999997,126781.18556,161241.84337999998,392338.25100000005,392338.25100000005,392338.25100000005,392338.25100000005,1063634.80102,1063634.80102 +8287200.0,124813.701,91596.81899999999,267462.71148,106183.76439000001,106183.76439000001,106183.76439000001,91302.3895,192776.68888,491601.59359999996,197681.80047,301229.41024,130677.45000000001,130677.45000000001,130677.45000000001,105697.75649999999,124813.701,124813.701,189357.61247,64669.61835,96126.19814,167661.97350000002,47584.06486,60517.98853,96418.39199999999,96418.39199999999,96418.39199999999,96418.39199999999,375273.19434,375273.19434 +8290800.0,121327.42799999999,91149.39300000001,266156.22756,79954.91801000002,79954.91801000002,79954.91801000002,57828.459500000004,184365.7924,492465.55264,181452.00066000002,276498.28672000003,127655.51699999999,127655.51699999999,127655.51699999999,98302.2985,121327.42799999999,121327.42799999999,187552.24631000002,53246.176199999994,79146.16807999999,138045.642,39178.66792,49827.90316,105827.058,105827.058,105827.058,105827.058,364791.1335199999,364791.1335199999 +8294400.0,117663.834,97331.55900000001,284208.15228000004,62141.65133,62141.65133,62141.65133,40150.6175,181302.47879999998,467083.70944000006,167516.03063999998,255262.52287999997,119504.091,119504.091,119504.091,87978.7335,117663.834,117663.834,178103.08307999998,52436.61765,77942.82426,135946.7865,38582.99274,49070.31627,99642.06,99642.06,99642.06,99642.06,353775.92756,353775.92756 +8298000.0,120017.742,98980.26000000001,289022.35920000006,56896.149860000005,56896.149860000005,56896.149860000005,39953.2175,206195.46128000002,455331.88416,167623.08759,255425.65728000004,116332.284,116332.284,116332.284,84308.05249999999,120017.742,120017.742,184754.38956,67336.99695,100091.04238,174577.39950000003,49546.72862,63014.12801000001,104576.883,104576.883,104576.883,104576.883,360853.34427999996,360853.34427999996 +8301600.0,120146.994,100367.955,293074.4286,59595.24769000001,59595.24769000001,59595.24769000001,39429.445999999996,218187.20632000003,522537.33952000004,176291.2809,268634.33280000003,116635.215,116635.215,116635.215,83178.032,120146.994,120146.994,193301.52868,69245.19089999999,102927.41955999998,179524.569,50950.782439999995,64799.82061999999,114498.18599999999,114498.18599999999,114498.18599999999,114498.18599999999,361241.96196,361241.96196 +8305200.0,126658.10699999999,106270.28100000002,310309.22052000003,67879.46,67879.46,67879.46,46710.163499999995,222854.65695999996,541799.77024,204355.05888,311398.18496000004,142461.35100000002,142461.35100000002,142461.35100000002,90376.37,126658.10699999999,126658.10699999999,195516.76455999998,77048.40689999999,114526.27395999999,199755.129,56692.408039999995,72102.08941999999,133324.932,133324.932,133324.932,133324.932,380818.70837999997,380818.70837999997 +8308800.0,148315.251,116732.31299999998,340858.3539599999,75993.03349000002,75993.03349000002,75993.03349000002,54368.573,246403.31232,571668.57984,224404.65936000002,341949.95712000004,183636.981,183636.981,183636.981,120450.757,148315.251,148315.251,207980.43655999997,92388.9807,137328.80588,239526.98700000002,67980.04012,86457.83626000001,165051.408,165051.408,165051.408,165051.408,445934.52134,445934.52134 +8312400.0,184985.457,134288.478,392122.35576,91776.56268000002,91776.56268000002,91776.56268000002,64942.3705,294235.25415999995,609908.1024000001,255443.727,389247.58400000003,235169.727,235169.727,235169.727,171374.11549999999,184985.457,184985.457,229648.70734,106279.00245,157975.20857999998,275538.1545,78200.35242,99456.15291,203230.41,203230.41,203230.41,203230.41,556189.6073800001,556189.6073800001 +8316000.0,912209.2590000001,874812.3960000002,2554452.19632,824843.24109,824843.24109,824843.24109,952287.2694999999,1381102.27744,1143122.41024,1089299.63625,1659885.1600000001,519920.85599999997,519920.85599999997,519920.85599999997,1443316.1645,912209.2590000001,912209.2590000001,1647438.1072500001,474060.6647999999,704653.1363199999,1229046.1679999998,348815.00768,443627.14063999994,1156281.846,1156281.846,1156281.846,1156281.846,2742709.1720600002,2742709.1720600002 +8319600.0,1409917.944,1387152.42,4050485.0664,1796397.89021,1796397.89021,1796397.89021,1384655.664,2136548.8743999996,2205761.6415999997,2113407.08649,3220429.84608,792088.7399999999,792088.7399999999,792088.7399999999,1021578.5404999999,1409917.944,1409917.944,1012314.88475,1130661.1313999998,1680637.0397599998,2931343.6739999996,831943.25224,1058075.47852,1510961.4449999998,1510961.4449999998,1510961.4449999998,1510961.4449999998,4239153.28496,4239153.28496 +8323200.0,1429868.298,1240133.52,3621189.8784,1238488.46847,1238488.46847,1238488.46847,1289227.1804999998,2296307.8092799997,5312749.30432,1761651.1212300002,2684420.7561600003,1549898.535,1549898.535,1549898.535,1287344.7615,1429868.298,1429868.298,544865.37625,2036332.24425,3026844.4717,5279379.8925,1498338.2933,1905604.74215,980874.1950000001,980874.1950000001,980874.1950000001,980874.1950000001,4299137.34932,4299137.34932 +8326800.0,870302.301,525340.122,1533993.1562399997,745166.8209700001,745166.8209700001,745166.8209700001,1573251.1305,1929886.11968,3310289.3625600003,1817378.53584,2769338.72128,1131657.78,1131657.78,1131657.78,1428960.3965,870302.301,870302.301,934630.8210199999,1639465.8754499997,2436934.4617799995,4250467.0845,1206323.03922,1534216.21431,981238.2300000001,981238.2300000001,981238.2300000001,981238.2300000001,2616708.91834,2616708.91834 +8330400.0,449480.21699999995,252440.24700000003,737125.52124,580650.4246400001,580650.4246400001,580650.4246400001,796960.9130000001,1438478.4144799998,1881975.75744,932678.2164000002,1421223.9488000001,321675.327,321675.327,321675.327,732972.415,449480.21699999995,449480.21699999995,162856.19116,694263.1702499999,1031966.4900999998,1799941.5524999998,510840.55489999993,649693.1889499999,415354.0140000001,415354.0140000001,415354.0140000001,415354.0140000001,1351437.1857799997,1351437.1857799997 +8334000.0,93825.74999999999,43398.093,126722.43156,127902.65191000002,127902.65191000002,127902.65191000002,115982.37700000001,403978.89312,29409.456000000006,237872.59272000002,362472.52224,38971.995,38971.995,38971.995,83366.514,93825.74999999999,93825.74999999999,18899.38466,58448.9601,86879.68884,151534.34100000001,43006.88916,54696.68118,93899.181,93899.181,93899.181,93899.181,282102.75499999995,282102.75499999995 +8337600.0,132471.59999999998,52469.436,153210.75312,104101.83729000001,104101.83729000001,104101.83729000001,113616.384,226601.70024,124203.70816,159503.29731000002,243052.64352,48903.411,48903.411,48903.411,40136.558000000005,132471.59999999998,132471.59999999998,27564.53713,44168.522399999994,65652.96415999999,114510.984,32499.307839999998,41333.012319999994,69912.162,69912.162,69912.162,69912.162,398297.94399999996,398297.94399999996 +8341200.0,79707.177,26079.398999999998,76151.84508,75030.45814,75030.45814,75030.45814,67239.7845,125518.68784,65887.12576,87174.03765000001,132836.6288,25585.913999999997,25585.913999999997,25585.913999999997,25088.6335,79707.177,79707.177,15597.430289999998,25014.962699999996,37182.734679999994,64853.606999999996,18406.07132,23409.06386,40112.85,40112.85,40112.85,40112.85,239652.91217999996,239652.91217999996 +8344800.0,60804.126000000004,17872.233,52186.92036,63867.36796,63867.36796,63867.36796,55059.018000000004,88343.58383999999,35216.75392,61294.38567,93400.96864,13447.467,13447.467,13447.467,18945.038,60804.126000000004,60804.126000000004,9536.29638,19026.3006,28281.06904,49327.445999999996,13999.59896,17804.85908,29970.426,29970.426,29970.426,29970.426,182817.73884,182817.73884 +8348400.0,35411.058000000005,6294.294,18379.33848,47560.57922,47560.57922,47560.57922,38834.0855,48443.16792,15705.367040000001,32101.75458,48916.95936,7530.897,7530.897,7530.897,13803.846000000001,35411.058000000005,35411.058000000005,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,17604.573,17604.573,17604.573,17604.573,106469.24772000001,106469.24772000001 +8352000.0,36616.899,6703.152,19573.20384,52914.52177,52914.52177,52914.52177,43638.9065,51764.60368,17335.702400000002,34817.99685,53055.995200000005,8388.375,8388.375,8388.375,15529.3285,36616.899,36616.899,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,18763.578,18763.578,18763.578,18763.578,110094.80966,110094.80966 +8355600.0,66035.14199999999,18713.055,54642.120599999995,87860.54706000001,87860.54706000001,87860.54706000001,74812.40199999999,93533.63272,36672.00832,69121.34754,105327.76768,15164.045999999998,15164.045999999998,15164.045999999998,25902.414999999997,66035.14199999999,66035.14199999999,9563.078459999999,25757.68005,38286.72442,66779.17050000001,18952.564580000002,24104.100590000002,34311.306,34311.306,34311.306,34311.306,198545.66027999998,198545.66027999998 +8359200.0,319785.504,169799.274,495813.88008,171568.0824,171568.0824,171568.0824,227785.56149999998,577382.61424,396674.61632000003,389890.55406,594118.93952,188779.563,188779.563,188779.563,95657.457,319785.504,319785.504,119226.79755999999,117556.88355,174738.87381999998,304777.1055,86498.64517999999,110010.02189,181429.28699999998,181429.28699999998,181429.28699999998,181429.28699999998,961488.41536,961488.41536 +8362800.0,472892.088,316535.868,924284.73456,182579.51217000003,182579.51217000003,182579.51217000003,404323.115,894781.1713599999,705891.4624,636736.2918000001,970264.8256000002,378821.943,378821.943,378821.943,261174.494,472892.088,472892.088,235205.59933,267144.81614999997,397089.3316599999,692597.6714999999,196565.81533999997,249994.77856999997,375553.29600000003,375553.29600000003,375553.29600000003,375553.29600000003,1421828.8779199999,1421828.8779199999 +8366400.0,487345.761,372376.968,1087340.7465599999,179868.44040000002,179868.44040000002,179868.44040000002,429273.4285,808522.26896,517410.9664000001,612676.85913,933602.83296,345930.348,345930.348,345930.348,301394.7755,487345.761,487345.761,305529.16055999993,384288.41744999995,571213.89458,996303.3045,282760.36642,359618.04991,427300.779,427300.779,427300.779,427300.779,1465286.25474,1465286.25474 +8370000.0,250578.204,170868.774,498936.82008,170164.31905000002,170164.31905000002,170164.31905000002,200747.883,405739.41952,441177.67872,318541.41249,485396.43808000005,143177.95799999998,143177.95799999998,143177.95799999998,216484.471,250578.204,250578.204,316300.27051999996,93418.0695,138858.46379999997,242194.995,68737.2462,87420.86009999999,243992.844,243992.844,243992.844,243992.844,753405.13336,753405.13336 +8373600.0,84520.34700000001,66435.06,193990.3752,77552.25863000001,77552.25863000001,77552.25863000001,73067.01499999998,105968.4936,370551.48608,115296.67884000001,175690.17728,64525.10399999999,64525.10399999999,64525.10399999999,81264.414,84520.34700000001,84520.34700000001,126622.04268999999,48896.23725,72680.3329,126768.0225,35977.9721,45757.21955,67528.962,67528.962,67528.962,67528.962,254124.50998,254124.50998 +8377200.0,85685.589,72324.282,211186.90344,39252.85045,39252.85045,39252.85045,45423.3185,111836.09928,387005.04896,118725.57795,180915.16640000002,68709.378,68709.378,68709.378,75350.2645,85685.589,85685.589,148098.53396,42118.537950000005,62605.82678,109196.20950000001,30990.924220000004,39414.631810000006,63822.33,63822.33,63822.33,63822.33,257628.00426,257628.00426 +8380800.0,81379.998,72259.614,210998.07288,16514.66399,16514.66399,16514.66399,31102.672999999995,137993.98488,385942.1491200001,122026.61730000001,185945.32160000002,94574.13,94574.13,94574.13,70329.89600000001,81379.998,81379.998,148104.95049999998,36194.65155,53800.44502,93837.98550000001,26632.113980000002,33871.044290000005,63462.864,63462.864,63462.864,63462.864,244682.52732,244682.52732 +8384400.0,91370.35800000001,77097.879,225125.80668,11178.46257,11178.46257,11178.46257,27177.122,151893.54111999998,404177.70368000004,137089.91898,208898.92416,101611.42799999999,101611.42799999999,101611.42799999999,72771.559,91370.35800000001,91370.35800000001,154601.44713,41048.50364999999,61015.30665999999,106422.0465,30203.59034,38413.29107,67830.85800000001,67830.85800000001,67830.85800000001,67830.85800000001,274720.20972,274720.20972 +8388000.0,103503.65100000001,82820.01,241834.42919999998,21811.31315,21811.31315,21811.31315,26722.601499999997,155721.41584,422736.20928000007,149965.89237000002,228519.45504,106544.397,106544.397,106544.397,75365.52100000001,103503.65100000001,103503.65100000001,167701.58795,46317.49695,68847.24238,120082.3995,34080.52862,43344.02801,79910.388,79910.388,79910.388,79910.388,311200.97734000004,311200.97734000004 +8391600.0,106042.095,94082.25899999999,274720.19628,30178.472060000004,30178.472060000004,30178.472060000004,31581.151000000005,159690.32072,430068.44800000003,158808.86888999998,241994.46688,107992.55399999999,107992.55399999999,107992.55399999999,76146.2765,106042.095,106042.095,176818.76979,48118.39425,71524.13169999998,124751.39249999999,35405.633299999994,45029.31215,85660.11000000002,85660.11000000002,85660.11000000002,85660.11000000002,318833.2323,318833.2323 +8395200.0,112246.71300000002,96125.03099999999,280685.09051999997,44509.58105,44509.58105,44509.58105,33858.737499999996,162948.44504,439435.64928,181295.51831999997,276259.83744,117438.783,117438.783,117438.783,82046.23700000001,112246.71300000002,112246.71300000002,184297.25196999998,53521.114499999996,79554.8418,138758.445,39380.9682,50085.191100000004,96415.35299999999,96415.35299999999,96415.35299999999,96415.35299999999,337488.45042,337488.45042 +8398800.0,188187.82799999998,129640.875,378551.355,77868.12726000001,77868.12726000001,77868.12726000001,51997.858499999995,545498.88312,499968.82496000006,322655.7948600001,491665.9731200001,184964.748,184964.748,184964.748,163388.78850000002,188187.82799999998,188187.82799999998,392975.10485999996,85596.20324999999,127231.88729999997,221916.0825,62981.897699999994,80101.13835,177821.40000000002,177821.40000000002,177821.40000000002,177821.40000000002,565818.0695199999,565818.0695199999 +8402400.0,798923.3550000001,340953.339,995583.7498799999,842065.16119,842065.16119,842065.16119,797459.9955000001,2567185.16584,2036184.40576,1884722.8684200002,2871958.65664,617274.567,617274.567,617274.567,800559.249,798923.3550000001,798923.3550000001,1820569.4781299997,854475.58935,1270109.39454,2215307.0835,628725.24846,799620.36633,949481.2440000001,949481.2440000001,949481.2440000001,949481.2440000001,2402096.2207000004,2402096.2207000004 +8406000.0,470244.645,741104.3099999999,2164024.5851999996,647802.08317,647802.08317,647802.08317,1125293.1375,2560652.4600799996,1262368.18944,1670022.93969,2544796.86048,673836.48,673836.48,673836.48,765557.8105,470244.645,470244.645,1279187.75881,1095251.6007,1628003.6138799998,2839541.187,805888.83212,1024939.15226,713081.967,713081.967,713081.967,713081.967,1413868.8993,1413868.8993 +8409600.0,1050273.447,595046.508,1737535.80336,230230.90937,230230.90937,230230.90937,393869.0945,1349074.0472,2025873.6582400005,1057411.88931,1611294.30752,675266.8049999999,675266.8049999999,675266.8049999999,360926.391,1050273.447,1050273.447,407557.35579,425614.86854999996,632642.3478199999,1103445.9555,313168.47118,398291.44489,1063677.747,1063677.747,1063677.747,1063677.747,3157822.1639799997,3157822.1639799997 +8413200.0,430898.67000000004,381922.581,1115213.93652,188588.01247000002,188588.01247000002,188588.01247000002,167949.635,311016.40072,2418545.5334400004,89811.71514,136855.94688,334229.361,334229.361,334229.361,290102.0675,430898.67000000004,430898.67000000004,155068.95989,587880.71055,873837.50062,1524135.1755,432564.07838,550140.22049,109462.39499999999,109462.39499999999,109462.39499999999,109462.39499999999,1295568.6678000002,1295568.6678000002 +8416800.0,92963.32199999999,11116.965,32461.537800000002,112736.65975,112736.65975,112736.65975,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,92963.32199999999,92963.32199999999,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,279509.72147999995,279509.72147999995 +8420400.0,45668.754,146296.935,427187.0502,99788.42687000001,99788.42687000001,99788.42687000001,174765.899,99784.61688000002,34036.839680000005,56198.81295,85636.2864,19502.931,19502.931,19502.931,125469.60650000001,45668.754,45668.754,11445.71246,35682.1686,53038.680239999994,92509.326,26255.02776,33391.46148,24322.494,24322.494,24322.494,24322.494,137310.72035999998,137310.72035999998 +8424000.0,54278.066999999995,17804.532,51989.233439999996,87285.53746,87285.53746,87285.53746,114014.19750000001,92527.83288,29328.36736,43911.77595,66913.1824,34686.777,34686.777,34686.777,30635.9725,54278.066999999995,54278.066999999995,9718.056659999998,28343.0988,42129.74192,73482.10800000001,20854.92208,26523.54184,23919.612,23919.612,23919.612,23919.612,163196.05477999998,163196.05477999998 +8427600.0,30077.882999999998,11081.343,32357.521559999997,66680.10019000001,66680.10019000001,66680.10019000001,57965.20799999999,48556.17192,21068.47808,32672.0037,49785.91040000001,14349.156000000003,14349.156000000003,14349.156000000003,20705.7725,30077.882999999998,30077.882999999998,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14899.917000000001,14899.917000000001,14899.917000000001,14899.917000000001,90434.16821999999,90434.16821999999 +8431200.0,60945.90000000001,21180.663,61847.53596,56990.549439999995,56990.549439999995,56990.549439999995,63153.153000000006,126494.62192,15936.305920000003,90545.1603,137973.57760000002,24457.425,24457.425,24457.425,17829.9695,60945.90000000001,60945.90000000001,88078.96916,18017.0811,26780.94524,46710.951,13257.012760000001,16860.42898,17037.285,17037.285,17037.285,17037.285,183244.00600000002,183244.00600000002 +8434800.0,19271.67,58484.76299999999,170775.50796,253248.14317000002,253248.14317000002,253248.14317000002,126985.1135,89657.12247999999,42344.01344,23503.14708,35814.31936,8924.304,8924.304,8924.304,131716.2735,19271.67,19271.67,66202.42538,45240.86925,67246.9217,117291.14250000002,33288.3433,42336.51715000001,12721.886999999999,12721.886999999999,12721.886999999999,12721.886999999999,57943.487799999995,57943.487799999995 +8438400.0,16142.793000000001,6902.447999999999,20155.148159999997,234815.98415000003,234815.98415000003,234815.98415000003,43473.906,30119.09336,43886.231680000004,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,16142.793000000001,16142.793000000001,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11031.024,11031.024,11031.024,11031.024,48535.99762,48535.99762 +8442000.0,377507.727,63393.441000000006,185108.84772,110193.44292000002,110193.44292000002,110193.44292000002,203352.233,322572.26568,54174.773120000005,288383.24991,439441.14272,141787.87800000003,141787.87800000003,141787.87800000003,51468.004,377507.727,377507.727,9502.102089999998,38601.89055,57378.61262,100078.9755,28403.36638,36123.74449,173903.445,173903.445,173903.445,173903.445,1135039.89918,1135039.89918 +8445600.0,215489.706,122440.035,357524.9022,163345.75851,163345.75851,163345.75851,257328.7815,314938.69656,206427.19744000002,282475.06833,430438.19936,162245.13299999997,162245.13299999997,162245.13299999997,95329.556,215489.706,215489.706,40425.52475,68058.84464999998,101164.01105999999,176448.8565,50077.865939999996,63689.634869999994,104749.01999999999,104749.01999999999,104749.01999999999,104749.01999999999,647905.71604,647905.71604 +8449200.0,302080.65300000005,237691.99800000002,694060.6341600001,172614.76837,172614.76837,172614.76837,398796.8075,489779.8344,548717.69856,410350.1346,625295.4432,272836.41599999997,272836.41599999997,272836.41599999997,135132.56749999998,302080.65300000005,302080.65300000005,99500.97313,172313.52345,256130.22498000003,446738.76450000005,126788.71602000002,161251.42071000003,177099.039,177099.039,177099.039,177099.039,908255.83002,908255.83002 +8452800.0,430566.30600000004,334517.109,976789.9582799999,194761.54313000003,194761.54313000003,194761.54313000003,465583.39450000005,857258.3596,754781.8630400001,575083.89687,876318.3190400001,384994.605,384994.605,384994.605,274967.014,430566.30600000004,430566.30600000004,190685.88916000002,321034.67100000003,477192.27640000003,832312.1100000001,236218.10360000003,300425.03780000005,346518.036,346518.036,346518.036,346518.036,1294569.3600400002,1294569.3600400002 +8456400.0,366100.17,309958.101,905077.65492,218760.14347,218760.14347,218760.14347,352027.361,532659.70736,469244.7712000001,416064.48345,634003.0224,206029.116,206029.116,206029.116,227223.11499999996,366100.17,366100.17,238560.58875999998,206566.67385,307044.78433999995,535543.2285,151992.26866,193305.60343,334238.385,334238.385,334238.385,334238.385,1100741.1778,1100741.1778 +8460000.0,42227.024999999994,26563.371,77565.04332,77335.73463,77335.73463,77335.73463,66015.9325,102481.56392,95595.28128000001,69984.65208,106643.27936000002,27155.919,27155.919,27155.919,24397.66,42227.024999999994,42227.024999999994,55581.29603,23931.34065,35572.017459999995,62044.2165,17608.73954,22395.00767,20774.628,20774.628,20774.628,20774.628,126962.58849999998,126962.58849999998 +8463600.0,54301.418999999994,52493.511,153281.05211999998,39039.236500000006,39039.236500000006,39039.236500000006,37554.321,83264.60591999999,319636.80704000004,69974.27724,106627.47008,52335.702000000005,52335.702000000005,52335.702000000005,39627.2905,54301.418999999994,54301.418999999994,100009.24582999999,13508.661599999998,20079.541439999997,35022.456,9939.706559999999,12641.43888,27650.267999999996,27650.267999999996,27650.267999999996,27650.267999999996,163266.26645999998,163266.26645999998 +8467200.0,65660.54699999999,62610.75899999999,182823.41627999998,15366.74084,15366.74084,15366.74084,18676.497000000003,86158.06312,397886.69184000004,80046.94278,121976.29375999999,62194.172999999995,62194.172999999995,62194.172999999995,64424.01,65660.54699999999,65660.54699999999,103942.11828,25868.5002,38451.44968,67066.48199999999,19034.10632,24207.80636,50375.526,50375.526,50375.526,50375.526,197419.37798,197419.37798 +8470800.0,71632.194,72176.583,210755.62236,9956.93347,9956.93347,9956.93347,14069.415500000003,104033.52639999999,411485.16864000005,93675.41085000001,142743.48320000002,77559.64199999999,77559.64199999999,77559.64199999999,69346.94900000001,71632.194,71632.194,142379.49686999997,33993.93015,50529.24926,88132.4115,25012.81774,31811.60377,58102.785,58102.785,58102.785,58102.785,215374.12996,215374.12996 +8474400.0,83879.505,75964.698,221816.91815999997,4519.787910000001,4519.787910000001,4519.787910000001,13734.5285,141238.82903999998,419265.66336,95624.45592000001,145713.45664000002,99950.46300000002,99950.46300000002,99950.46300000002,72165.324,83879.505,83879.505,153745.21903,39056.51115,58054.36966,101257.62150000001,28737.877340000003,36549.17957,58336.070999999996,58336.070999999996,58336.070999999996,58336.070999999996,252197.71169999999,252197.71169999999 +8478000.0,94148.637,82701.558,241488.54936,5445.63558,5445.63558,5445.63558,23007.662999999997,157932.80776,438735.70624,110996.23038,169137.11296,109946.883,109946.883,109946.883,75711.09000000001,94148.637,94148.637,167876.56131999998,47061.068849999996,69952.50233999999,122010.1785,34627.65066,44039.86443,61831.47600000001,61831.47600000001,61831.47600000001,61831.47600000001,283073.56858,283073.56858 +8481600.0,102519.22799999997,88998.435,259875.4302,8620.540830000002,8620.540830000002,8620.540830000002,25759.489,169003.45048,464393.61856000003,151031.27445,230142.89440000002,118628.43599999999,118628.43599999999,118628.43599999999,82898.179,102519.22799999997,102519.22799999997,183192.44307,52801.31205,78484.91322,136892.2905,38851.33578,49411.598190000004,73271.94,73271.94,73271.94,73271.94,308241.1455199999,308241.1455199999 +8485200.0,169751.097,130131.38400000002,379983.64128000004,51370.221320000004,51370.221320000004,51370.221320000004,42527.64600000001,544691.6140800001,505473.36512000003,305632.67721,465725.98432,183717.15000000002,183717.15000000002,183717.15000000002,164315.858,169751.097,169751.097,390812.11519999994,69872.08635000001,103859.24934000001,181149.85350000003,51412.053660000005,65386.47093000001,148600.743,148600.743,148600.743,148600.743,510384.96498,510384.96498 +8488800.0,761266.467,342532.113,1000193.76996,425706.94100000005,425706.94100000005,425706.94100000005,629074.264,2493633.7997600003,1892446.6694400003,1768858.0463400001,2695402.7372800005,600407.76,600407.76,600407.76,739071.2315,761266.467,761266.467,1608480.6714599996,734524.55235,1091811.80374,1904322.9135,540464.97926,687369.88973,855010.9439999999,855010.9439999999,855010.9439999999,855010.9439999999,2288874.51078,2288874.51078 +8492400.0,470565.90900000004,655593.633,1914333.40836,490537.69017,490537.69017,490537.69017,1048113.8745,2548007.59864,1156433.8182400002,1662952.93542,2534023.5206400002,678830.5140000001,678830.5140000001,678830.5140000001,747567.7545,470565.90900000004,470565.90900000004,896917.82843,1037874.1612499999,1542716.6544999997,2690784.8625,763670.3705,971245.2027499999,707559.186,707559.186,707559.186,707559.186,1414834.83306,1414834.83306 +8496000.0,1178859.3990000002,759584.2860000001,2217986.11512,231767.23262000002,231767.23262000002,231767.23262000002,431458.552,1614606.5014399998,2357161.22624,1293524.73432,1971085.3094400002,828030.345,828030.345,828030.345,428556.191,1178859.3990000002,1178859.3990000002,443337.58455999993,509442.5987999999,757245.5419199999,1320777.1079999998,374849.12207999994,476737.64183999994,1269516.7079999999,1269516.7079999999,1269516.7079999999,1269516.7079999999,3544437.25966,3544437.25966 +8499600.0,602433.846,445959.621,1302202.09332,225962.48466000002,225962.48466000002,225962.48466000002,192213.32200000001,548938.06496,3513514.2387200003,167269.60886999997,254887.02303999997,540141.1799999999,540141.1799999999,540141.1799999999,477442.5145,602433.846,602433.846,286850.59338,941953.1390999999,1400137.75244,2442100.731,693091.44556,881482.07338,177232.314,177232.314,177232.314,177232.314,1811317.76364,1811317.76364 +8503200.0,194816.055,69979.85399999999,204341.17367999998,123081.86308000001,123081.86308000001,123081.86308000001,99775.76000000001,232002.48552000002,198779.36256,110217.95316,167951.16672,73439.83499999999,73439.83499999999,73439.83499999999,47868.729999999996,194816.055,194816.055,110341.32784999999,57048.52275,84798.0511,147903.5775,41976.4439,53386.14845,70041.174,70041.174,70041.174,70041.174,585746.9386999999,585746.9386999999 +8506800.0,220169.853,548752.488,1602357.26496,118063.63855,118063.63855,118063.63855,305152.7045,523695.69864,464751.3312,303649.75934999995,462704.39519999997,126260.073,126260.073,126260.073,356567.708,220169.853,220169.853,150151.15816999998,105019.57395,156103.16918,272272.9695,77273.66182000001,98277.57661,144480.18,144480.18,144480.18,144480.18,661977.3580199999,661977.3580199999 +8510400.0,267729.486,180060.237,525775.89204,109111.31132000001,109111.31132000001,109111.31132000001,263477.4135,572382.07336,570391.31136,319400.69847,486705.8262400001,206494.12800000003,206494.12800000003,206494.12800000003,161777.6965,267729.486,267729.486,226106.18082,167281.71029999998,248650.83851999996,433693.323,123086.29547999999,156542.63754,201347.88299999997,201347.88299999997,201347.88299999997,201347.88299999997,804973.32124,804973.32124 +8514000.0,138821.739,76554.73800000001,223539.83496,74821.93983,74821.93983,74821.93983,82347.1075,274874.5212,223728.24704000005,131554.6134,200464.1728,98685.65399999998,98685.65399999998,98685.65399999998,62005.6465,138821.739,138821.739,125651.72138999999,61821.93779999999,91893.34951999999,160279.098,45488.73448,57853.12204,88204.11,88204.11,88204.11,88204.11,417390.69526,417390.69526 +8517600.0,182723.016,119006.55899999998,347499.15228,206169.84267,206169.84267,206169.84267,147878.8115,372285.24816,84184.75072,361445.11914,550773.51488,89895.51,89895.51,89895.51,260703.1105,182723.016,182723.016,394110.7506699999,162187.68915,241078.98486,420486.6015,119338.10214,151775.63997000002,57544.30799999999,57544.30799999999,57544.30799999999,57544.30799999999,549387.20144,549387.20144 +8521200.0,48209.76000000001,270960.72899999993,791205.3286799999,258834.81646000003,258834.81646000003,258834.81646000003,251164.81950000004,359985.92783999996,55861.52128000001,46376.5008,70668.95360000001,77978.17199999999,77978.17199999999,77978.17199999999,390016.9595,48209.76000000001,48209.76000000001,315801.16086999996,131911.9344,196076.50495999996,341993.904,97061.12703999999,123443.51392,86786.364,86786.364,86786.364,86786.364,144950.6784,144950.6784 +8524800.0,29707.562999999995,9580.413,27974.805959999998,234948.61324,234948.61324,234948.61324,52492.398,36177.678719999996,50630.896,25429.940339999997,38750.38528,8388.147,8388.147,8388.147,15529.3285,29707.562999999995,29707.562999999995,16482.412569999997,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11885.604000000001,11885.604000000001,11885.604000000001,11885.604000000001,89320.73941999998,89320.73941999998 +8528400.0,796337.772,447849.468,1307720.4465599998,252631.83121000003,252631.83121000003,252631.83121000003,1125089.567,1178198.70736,996466.9843199999,1219438.48005,1858191.9696,824771.55,824771.55,824771.55,336010.3985,796337.772,796337.772,47190.49152999999,457191.7668,679578.87312,1185311.988,336402.83088,427841.18424000003,590018.898,590018.898,590018.898,590018.898,2394322.23448,2394322.23448 +8532000.0,538812.045,333929.91299999994,975075.34596,311341.91902,311341.91902,311341.91902,500431.862,1007121.14,912606.5772800001,707051.11302,1077411.2198400002,439409.10000000003,439409.10000000003,439409.10000000003,416405.9935,538812.045,538812.045,358494.37935999996,374490.5562,556650.16008,970901.442,275551.07592000003,350449.18716000003,413215.8089999999,413215.8089999999,413215.8089999999,413215.8089999999,1620028.2153,1620028.2153 +8535600.0,606730.272,520598.5800000001,1520147.8536,357533.65549000003,357533.65549000003,357533.65549000003,617010.2925,1195242.37944,1568565.4329600001,938922.33897,1430738.80224,583270.41,583270.41,583270.41,722573.726,606730.272,606730.272,477118.62822,634183.03215,942662.1860599999,1644178.2315,466633.44093999994,593470.0473699999,585882.801,585882.801,585882.801,585882.801,1824235.6844799998,1824235.6844799998 +8539200.0,664426.149,564279.735,1647696.8262,389946.15054999996,389946.15054999996,389946.15054999996,706168.883,1284469.4151199998,2003083.57248,1054908.89154,1607480.21568,639130.317,639130.317,639130.317,836007.1895,664426.149,664426.149,529184.56461,797104.4436,1184831.79024,2066567.0760000001,586511.41776,745932.30648,673346.5109999999,673346.5109999999,673346.5109999999,673346.5109999999,1997707.9546599998,1997707.9546599998 +8542800.0,488581.998,426559.59300000005,1245554.01156,380503.27436,380503.27436,380503.27436,450520.27999999997,697226.8836000001,1378623.6332800002,646580.01051,985264.77792,360311.736,360311.736,360311.736,459494.098,488581.998,488581.998,398879.75503999996,386274.2013,574165.60292,1001451.633,284221.51108,361476.35134,483901.20000000007,483901.20000000007,483901.20000000007,483901.20000000007,1469003.2073199998,1469003.2073199998 +8546400.0,93867.462,68335.023,199538.26716,77892.5147,77892.5147,77892.5147,83150.9385,138619.13351999997,469364.16832000006,133767.81117,203836.66464,117290.394,117290.394,117290.394,98371.0,93867.462,93867.462,122250.98886,58337.240849999995,86713.62714,151244.6985,42924.68586,54592.13403,77865.429,77865.429,77865.429,77865.429,282228.16907999996,282228.16907999996 +8550000.0,91681.272,76864.887,224445.47004000001,40569.300090000004,40569.300090000004,40569.300090000004,54865.6535,130295.86624,478147.6140800001,118479.24795,180539.80640000003,123126.23100000001,123126.23100000001,123126.23100000001,89619.2605,91681.272,91681.272,141397.10246999998,49568.9463,73680.26092,128512.08300000001,36472.95308,46386.742340000004,72209.77799999999,72209.77799999999,72209.77799999999,72209.77799999999,275655.02447999996,275655.02447999996 +8553600.0,90194.35800000001,88711.62299999999,259037.93915999998,17573.64543,17573.64543,17573.64543,35092.5505,158949.10208,495322.78208000003,116932.63364999999,178183.0608,126217.872,126217.872,126217.872,87759.67550000001,90194.35800000001,90194.35800000001,174142.52907999998,43985.5272,65380.95647999999,114036.552,32364.659519999997,41161.76496,71084.526,71084.526,71084.526,71084.526,271184.36971999996,271184.36971999996 +8557200.0,98186.289,101170.512,295417.89504,35990.26519,35990.26519,35990.26519,31069.878,185980.9904,510216.05504000006,133259.40054,203061.94368000003,131171.07,131171.07,131171.07,89702.2525,98186.289,98186.289,200027.23142999999,48544.50285,72157.50794,125856.11850000001,35719.16506,45428.065630000005,73330.23300000001,73330.23300000001,73330.23300000001,73330.23300000001,295213.44226,295213.44226 +8560800.0,111730.15499999998,114999.41700000002,335798.29764,34785.40681000001,34785.40681000001,34785.40681000001,36812.740999999995,190793.37816,538382.37312,168176.88573,256269.54016,137707.16700000002,137707.16700000002,137707.16700000002,92625.3825,111730.15499999998,111730.15499999998,225060.21745999999,57262.763699999996,85116.50308,148459.017,42134.08292,53586.63566,88328.652,88328.652,88328.652,88328.652,335935.3326999999,335935.3326999999 +8564400.0,120375.65699999999,119419.749,348705.66708,54076.04686000001,54076.04686000001,54076.04686000001,41583.171,196830.12192,559675.07712,215926.00008,329030.09536000004,162600.603,162600.603,162600.603,100140.2745,120375.65699999999,120375.65699999999,232570.78233999995,65224.54529999999,96951.05251999998,169100.67299999998,47992.38148,61037.290539999995,117380.81400000001,117380.81400000001,117380.81400000001,117380.81400000001,361929.47537999996,361929.47537999996 +8568000.0,145196.36099999998,125423.55899999998,366236.79227999994,61928.1839,61928.1839,61928.1839,59724.2065,217732.57984000002,576893.48224,238540.2243,363489.8656,234776.553,234776.553,234776.553,179429.50550000003,145196.36099999998,145196.36099999998,242782.6817,79864.01144999999,118711.44417999998,207054.84449999998,58764.13681999999,74736.93910999999,168369.138,168369.138,168369.138,168369.138,436557.05873999995,436557.05873999995 +8571600.0,258219.56699999998,170750.628,498591.83375999995,92607.38399,92607.38399,92607.38399,69507.9385,677351.5824,607280.48448,408403.04085,622328.4432,278677.971,278677.971,278677.971,272741.357,258219.56699999998,258219.56699999998,464098.66047999996,127651.93379999998,189744.35591999997,330949.458,93926.60807999999,119456.99484,283743.54000000004,283743.54000000004,283743.54000000004,283743.54000000004,776380.16478,776380.16478 +8575200.0,954891.1079999999,431866.143,1261049.13756,908851.5046600001,908851.5046600001,908851.5046600001,983684.737,2956418.8064800003,2709509.9500800003,2164715.679,3298614.3680000002,791879.967,791879.967,791879.967,1131168.5839999998,954891.1079999999,954891.1079999999,1872032.5531699997,1100169.44685,1635313.59754,2852291.1585,809507.39546,1029541.28483,1171793.1239999998,1171793.1239999998,1171793.1239999998,1171793.1239999998,2871039.2647199994,2871039.2647199994 +8578800.0,506563.608,751623.534,2194740.71928,728532.4501400001,728532.4501400001,728532.4501400001,1268755.0435,2790708.23416,1407162.3737600003,1841259.46137,2805728.70304,708980.9639999999,708980.9639999999,708980.9639999999,887354.7374999999,506563.608,506563.608,1054639.0078899998,1249843.05315,1857791.4024599998,3240333.8415,919637.60454,1169606.21517,781669.563,781669.563,781669.563,781669.563,1523067.9147199998,1523067.9147199998 +8582400.0,1211394.081,832002.942,2429448.59064,269716.46614000003,269716.46614000003,269716.46614000003,508830.371,1846588.12648,2621993.89568,1379221.3957200001,2101670.6982400003,930263.7629999999,930263.7629999999,930263.7629999999,484205.3685,1211394.081,1211394.081,445996.96141,572567.5836,851075.7662399999,1484434.476,421296.64175999997,535810.15848,1305860.418,1305860.418,1305860.418,1305860.418,3642258.2035399997,3642258.2035399997 +8586000.0,516532.551,394495.03799999994,1151925.5109599999,216639.93802,216639.93802,216639.93802,176591.25749999998,424223.51008,3285625.6211200007,119287.96383000002,181772.13536000004,440202.147,440202.147,440202.147,367397.9085,516532.551,516532.551,193294.91012,840199.8779999999,1248889.6951999997,2178295.98,618221.1447999999,786261.1203999999,133246.197,133246.197,133246.197,133246.197,1553041.2033399998,1553041.2033399998 +8589600.0,114835.31099999999,19489.626,56909.70792,115937.82463999999,115937.82463999999,115937.82463999999,98218.8235,67030.18263999998,53723.633920000015,55702.97481,84880.72352,17302.032,17302.032,17302.032,35084.777,114835.31099999999,114835.31099999999,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24698.976000000002,24698.976000000002,24698.976000000002,24698.976000000002,345271.50174,345271.50174 +8593200.0,96566.703,319537.548,933049.64016,107240.64571000001,107240.64571000001,107240.64571000001,240181.1545,166238.79448,111315.58656,93310.6734,142187.6928,29670.839999999997,29670.839999999997,29670.839999999997,293511.33,96566.703,96566.703,11445.71246,42297.458849999995,62871.77833999999,109660.07849999999,31122.57466,39582.06643,36967.422,36967.422,36967.422,36967.422,290343.88701999997,290343.88701999997 +8596800.0,134519.925,80332.926,234572.14392,98002.9545,98002.9545,98002.9545,168762.99649999998,191465.23512000003,258343.8592,84521.44512,128794.58304,103290.135,103290.135,103290.135,66701.222,134519.925,134519.925,87356.86791,48737.60685,72444.54153999999,126356.7585,35861.25146,45608.772829999994,47290.901999999995,47290.901999999995,47290.901999999995,47290.901999999995,404456.5745,404456.5745 +8600400.0,52917.447,14441.960999999998,42170.526119999995,69988.94507,69988.94507,69988.94507,57965.20799999999,73297.79912,47727.317760000005,36466.34061000001,55567.75712000001,30941.562000000005,30941.562000000005,30941.562000000005,20705.7725,52917.447,52917.447,31954.609699999997,21659.4486,32195.032239999997,56154.126,15937.07576,20268.96548,19049.529,19049.529,19049.529,19049.529,159105.12398,159105.12398 +8604000.0,94589.64000000001,47584.182,138945.81144,57664.78157000001,57664.78157000001,57664.78157000001,64906.442999999985,201328.01984000002,16193.11744,185693.95299000002,282962.21408,45091.83,45091.83,45091.83,42355.8275,94589.64000000001,94589.64000000001,183559.76833999995,39077.42535,58085.45693999999,101311.84349999999,28753.266059999998,36568.75113,29905.635000000002,29905.635000000002,29905.635000000002,29905.635000000002,284399.5176,284399.5176 +8607600.0,15464.907,108224.655,316015.9926,254080.57213000004,254080.57213000004,254080.57213000004,157961.86349999998,183562.03904,42344.01344,26053.16973,39700.06816,17386.073999999997,17386.073999999997,17386.073999999997,250377.73250000004,15464.907,15464.907,130701.92317,73724.3046,109585.26264000002,191137.08600000004,54246.52536000001,68991.38628,37473.36,37473.36,37473.36,37473.36,46497.82038,46497.82038 +8611200.0,12024.006,5769.2880000000005,16846.32096,85169.82122,85169.82122,85169.82122,43473.906,28903.76016,29872.759040000004,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,12024.006,12024.006,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,36152.17804,36152.17804 +8614800.0,449489.88300000003,81220.128,237162.77375999998,111948.4839,111948.4839,111948.4839,213888.3705,420318.26703999995,114229.94688,336881.35235999996,513343.01312,255938.274,255938.274,255938.274,42752.048500000004,449489.88300000003,449489.88300000003,9502.102089999998,39558.7881,58800.96404,102559.82100000001,29107.453960000003,37019.21158,204115.31700000004,204115.31700000004,204115.31700000004,204115.31700000004,1351466.24822,1351466.24822 +8618400.0,292945.545,125669.57100000001,366955.14732000005,173140.96239000003,173140.96239000003,173140.96239000003,352671.935,425888.27800000005,318768.80064000003,392541.06486,598157.81312,253217.12999999998,253217.12999999998,253217.12999999998,102168.03099999999,292945.545,292945.545,22738.861339999996,106000.86464999999,157561.77906,274817.0565,77995.69794,99195.87087,159325.785,159325.785,159325.785,159325.785,880789.6052999999,880789.6052999999 +8622000.0,481466.445,313176.81299999997,914476.2939599999,190688.99938000002,190688.99938000002,190688.99938000002,536083.863,1070459.9988,968093.0540800001,642999.35763,979808.54496,465532.42500000005,465532.42500000005,465532.42500000005,320675.02249999996,481466.445,481466.445,221041.09209,263423.38455,391557.72222000005,682949.5155000001,193827.57678000003,246512.25369000004,400844.328,400844.328,400844.328,400844.328,1447609.1113,1447609.1113 +8625600.0,633789.867,538814.0580000001,1573337.04936,209137.80877000003,209137.80877000003,209137.80877000003,641011.4445,1363965.70848,1266413.6345600002,932508.0555,1420964.6560000002,625405.473,625405.473,625405.473,633461.297,633789.867,633789.867,307665.56054,497154.03209999995,738979.57364,1288917.861,365807.16436,465237.97078,564407.892,564407.892,564407.892,564407.892,1905594.8667799998,1905594.8667799998 +8629200.0,493494.32100000005,437128.167,1276414.24764,254664.12059,254664.12059,254664.12059,429741.32950000005,793839.53368,994266.3846400002,619866.23685,944558.0752000001,371577.921,371577.921,371577.921,459093.0645,493494.32100000005,493494.32100000005,317065.41164999997,320724.1899,476730.77115999995,831507.159,235989.65084,300134.48881999997,465783.873,465783.873,465783.873,465783.873,1483772.9251400002,1483772.9251400002 +8632800.0,88129.176,80057.52900000001,233767.98468,78622.42443,78622.42443,78622.42443,75484.46500000001,143267.29464,544868.7136,120388.90436999999,183449.75904,117729.88799999998,117729.88799999998,117729.88799999998,98519.589,88129.176,88129.176,144600.45184,33109.56405,49214.71002,85839.6105,24362.09898,30984.01179,59694.87299999999,59694.87299999999,59694.87299999999,59694.87299999999,264975.05584,264975.05584 +8636400.0,93481.506,91607.136,267492.83712,40280.59871,40280.59871,40280.59871,42204.785,137140.94192,565611.47712,130566.81561,198958.95712,129125.43,129125.43,129125.43,100519.88799999999,93481.506,93481.506,174275.94404999996,53545.1553,79590.57651999999,138820.773,39398.65748,50107.68854,81915.76800000001,81915.76800000001,81915.76800000001,81915.76800000001,281067.72804,281067.72804 +8640000.0,96838.701,105262.326,307365.99192,16579.604910000002,16579.604910000002,16579.604910000002,30435.573000000004,196686.09,573280.4844800001,131264.38353000002,200021.91776000004,144654.63900000002,144654.63900000002,144654.63900000002,100327.164,96838.701,96838.701,214426.21654999998,48030.93045000001,71394.12378000001,124524.63450000001,35341.27722,44947.46331000001,81018.654,81018.654,81018.654,81018.654,291161.69434,291161.69434 +8643600.0,112856.40000000001,112454.058,328365.84936,11399.88685,11399.88685,11399.88685,35247.9645,214132.62864,584601.7664000001,160919.77692,245211.08864000003,150451.92,150451.92,150451.92,102910.556,112856.40000000001,112856.40000000001,233199.34352,63513.60659999999,94407.87943999999,164664.906,46733.46856,59436.18988,83096.313,83096.313,83096.313,83096.313,339321.576,339321.576 +8647200.0,130598.745,125260.113,365759.52995999996,8344.33028,8344.33028,8344.33028,37002.1155,216262.69856,601922.42176,218232.40719,332544.62048,174931.029,174931.029,174931.029,108799.054,130598.745,130598.745,247962.00311999998,68223.84569999999,101409.27188,176876.637,50199.27412,63844.04326,97954.51199999999,97954.51199999999,97954.51199999999,97954.51199999999,392666.8933,392666.8933 +8650800.0,155498.37900000002,136002.26400000002,397126.61088,18191.328980000002,18191.328980000002,18191.328980000002,48546.9495,236514.7148,613887.5168000001,255989.62808999998,390079.43328,248325.201,248325.201,248325.201,190342.86250000002,155498.37900000002,155498.37900000002,263724.11337999994,80416.6056,119532.83104,208487.496,59170.73696,75254.05808,130563.264,130563.264,130563.264,130563.264,467531.79286000005,467531.79286000005 +8654400.0,195484.506,152333.43300000002,444813.62436,45344.789820000005,45344.789820000005,45344.789820000005,59567.35399999999,317043.25736,630018.46592,291488.78052000003,444173.37984,295817.94,295817.94,295817.94,213625.04799999998,195484.506,195484.506,294235.42967,95383.90710000001,141780.52364,247291.61100000003,70183.71436000001,89260.49578000001,198011.58000000002,198011.58000000002,198011.58000000002,198011.58000000002,587756.7480399999,587756.7480399999 +8658000.0,363652.329,200660.97300000003,585930.04116,87358.79339,87358.79339,87358.79339,77464.443,863105.11064,677976.50496,530972.27484,809100.60928,354205.42500000005,354205.42500000005,354205.42500000005,314052.50800000003,363652.329,363652.329,522774.40747999994,142466.0805,211764.39620000002,369356.50500000006,104826.89380000002,133320.1099,376664.08199999994,376664.08199999994,376664.08199999994,376664.08199999994,1093381.33586,1093381.33586 +8661600.0,1055617.128,491982.939,1436590.1818799998,651224.6112900001,651224.6112900001,651224.6112900001,1043894.9500000001,3139197.6431199997,3121331.4304000004,2359112.4081,3594837.9552,935505.3059999999,935505.3059999999,935505.3059999999,1375077.7179999999,1055617.128,1055617.128,1866943.4721600001,1242452.5402499998,1846805.9980999997,3221173.2524999995,914199.6468999999,1162690.1549499999,1288658.583,1288658.583,1288658.583,1288658.583,3173888.8315199995,3173888.8315199995 +8665200.0,543773.058,769480.773,2246883.85716,606541.18426,606541.18426,606541.18426,1377458.74,3033593.4253599998,1473042.112,1986537.03213,3027104.04896,726549.267,726549.267,726549.267,929378.1105,543773.058,543773.058,1167528.93829,1346279.6321999999,2001136.6384799997,3490354.602,990595.87752,1259851.80396,828156.0989999999,828156.0989999999,828156.0989999999,828156.0989999999,1634944.3277199997,1634944.3277199997 +8668800.0,1295599.902,945021.0840000001,2759461.56528,254353.75867000004,254353.75867000004,254353.75867000004,568785.8295,2174589.3204,2996511.85984,1640696.3678700002,2500108.75104,1044889.953,1044889.953,1044889.953,530861.996,1295599.902,1295599.902,503109.5065099999,676259.7012,1005205.77808,1753265.892,497593.55792,632845.49816,1403163.2040000001,1403163.2040000001,1403163.2040000001,1403163.2040000001,3895437.0386799998,3895437.0386799998 +8672400.0,558688.9739999999,421544.51399999997,1230909.98088,220379.33192000003,220379.33192000003,220379.33192000003,203351.1095,492000.90904,3732517.9328,141527.66019,215661.19647999998,476401.11299999995,476401.11299999995,476401.11299999995,400554.0105,558688.9739999999,558688.9739999999,205788.50513,996297.6429,1480916.49636,2582993.889,733078.26564,932337.79422,142990.533,142990.533,142990.533,142990.533,1679791.51516,1679791.51516 +8676000.0,143163.99599999998,21858.341999999997,63826.35863999999,122535.0423,122535.0423,122535.0423,98218.8235,70144.7364,86508.59904,56166.12351,85586.47392,17476.128,17476.128,17476.128,35084.777,143163.99599999998,143163.99599999998,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,27963.752999999997,27963.752999999997,27963.752999999997,27963.752999999997,430446.4146399999,430446.4146399999 +8679600.0,124761.91500000001,389177.62799999997,1136398.67376,113345.80444,113345.80444,113345.80444,281552.3165,205078.21087999997,191515.3088,112948.6323,172112.2016,49306.518,49306.518,49306.518,351374.5165,124761.91500000001,124761.91500000001,24797.54615,46895.306399999994,69706.10975999999,121580.424,34505.68224,43884.743519999996,46640.361000000004,46640.361000000004,46640.361000000004,46640.361000000004,375117.4911,375117.4911 +8683200.0,200990.25,113481.12899999999,331364.89667999995,103527.0027,103527.0027,103527.0027,191749.992,360642.93368,346232.46656000003,138086.75853,210417.91776,137445.963,137445.963,137445.963,100515.78950000001,200990.25,200990.25,154767.79617,83520.18944999999,124146.05937999999,216533.8245,61454.36162,78158.39951,92045.229,92045.229,92045.229,92045.229,604310.6849999999,604310.6849999999 +8686800.0,134923.94400000002,60842.109000000004,177658.95828000002,78104.06109000002,78104.06109000002,78104.06109000002,76183.78600000001,266156.82616,203539.56928000003,101107.49607,154068.56544,86933.34599999999,86933.34599999999,86933.34599999999,54719.567,134923.94400000002,134923.94400000002,119319.64498999999,49194.884249999996,73124.24769999999,127542.2925,36197.717300000004,46036.69415,71998.041,71998.041,71998.041,71998.041,405671.32496,405671.32496 +8690400.0,155054.982,76795.881,224243.97252,130491.59926,130491.59926,130491.59926,117958.5925,268754.756,36409.65888,283898.0298,432606.5216,69974.679,69974.679,69974.679,158715.354,155054.982,155054.982,275778.73816999997,88218.65114999999,131129.94565999997,228715.02149999997,64911.501339999995,82555.23156999999,46806.132,46806.132,46806.132,46806.132,466198.64587999997,466198.64587999997 +8694000.0,49981.575,244436.65499999997,713755.0325999999,260571.50174000004,260571.50174000004,260571.50174000004,217873.8345,343418.68296,54228.096000000005,43762.04595,66685.0224,37848.207,37848.207,37848.207,386287.5975,49981.575,49981.575,242033.17788,110469.69134999998,164204.33133999998,286402.90349999996,81283.87165999999,103377.80992999999,82718.736,82718.736,82718.736,82718.736,150277.93549999996,150277.93549999996 +8697600.0,77505.951,23961.624000000003,69967.94208000001,166912.43789000003,166912.43789000003,166912.43789000003,52010.833,127778.51088,119343.4816,48744.031559999996,74276.61952,37187.784,37187.784,37187.784,28873.859000000004,77505.951,77505.951,73292.76942,21988.25595,32683.777979999995,57006.589499999995,16179.013019999999,20576.66421,31102.152000000002,31102.152000000002,31102.152000000002,31102.152000000002,233034.55933999998,233034.55933999998 +8701200.0,700261.689,333610.506,974142.6775199999,144009.08268999998,144009.08268999998,144009.08268999998,844949.2520000001,978181.2302400001,695479.0848,932862.30219,1421504.4604800001,681758.1479999999,681758.1479999999,681758.1479999999,173644.3975,700261.689,700261.689,9591.57771,231580.27575,344225.4963,600393.3075,170397.3387,216713.39385000002,501920.967,501920.967,501920.967,501920.967,2105453.47826,2105453.47826 +8704800.0,621700.0650000001,370780.35,1082678.622,247255.50773,247255.50773,247255.50773,573655.4915,1132823.344,988859.16608,775962.38937,1182418.87904,491750.50800000003,491750.50800000003,491750.50800000003,456394.51200000005,621700.0650000001,621700.0650000001,236292.53907999996,390567.46859999996,580547.2002399999,1012582.326,287380.50776,365494.00148,453786.348,453786.348,453786.348,453786.348,1869244.8621,1869244.8621 +8708400.0,696113.4299999999,586231.125,1711794.885,300248.22234000004,300248.22234000004,300248.22234000004,669012.0885000001,1464334.4246399999,1541516.0121600004,1055519.80443,1608411.13056,673460.3609999999,673460.3609999999,673460.3609999999,773749.221,696113.4299999999,696113.4299999999,474302.50308999995,627416.0288999999,932603.57876,1626634.149,461654.26324,587137.46902,640164.294,640164.294,640164.294,640164.294,2092981.0462,2092981.0462 +8712000.0,782570.043,665815.53,1944181.3476,402607.54204000003,402607.54204000003,402607.54204000003,773738.301,1557663.96688,2261271.4560000002,1229108.99013,1872927.98496,769665.1320000001,769665.1320000001,769665.1320000001,1034592.6640000001,782570.043,782570.043,641299.82046,870594.3949500001,1294068.70558,2257096.5795000005,640585.5054200001,814704.38441,795488.5260000001,795488.5260000001,795488.5260000001,795488.5260000001,2352927.2626199997,2352927.2626199997 +8715600.0,550680.5519999999,479218.53,1399318.1076,327786.94531000004,327786.94531000004,327786.94531000004,524190.569,841095.97272,1489099.42528,768962.4490800002,1171752.3033600003,434304.00899999996,434304.00899999996,434304.00899999996,538947.7904999999,550680.5519999999,550680.5519999999,475157.54312000005,442959.43095,658423.64798,1148413.3395,325930.64302,414522.52921,576773.679,576773.679,576773.679,576773.679,1655712.8596799998,1655712.8596799998 +8719200.0,103084.74,87942.68400000001,256792.63728000002,78754.04416,78754.04416,78754.04416,80704.981,147173.39031999998,548746.672,153272.66493,233558.34656,133706.382,133706.382,133706.382,112259.2625,103084.74,103084.74,161444.73032999996,64621.13175,96054.1267,167536.26750000002,47548.388300000006,60472.61465,89985.03600000001,89985.03600000001,89985.03600000001,89985.03600000001,309941.45160000003,309941.45160000003 +8722800.0,98694.96899999998,99612.20999999999,290867.6532,40389.845649999996,40389.845649999996,40389.845649999996,59639.34900000001,176824.64711999998,549150.9184000001,143733.55017,219022.55264,141781.155,141781.155,141781.155,103681.47649999999,98694.96899999998,98694.96899999998,195280.38191999999,55139.45805,81960.37961999999,142954.15050000002,40571.74938,51599.64099,83224.05300000001,83224.05300000001,83224.05300000001,83224.05300000001,296742.87346,296742.87346 +8726400.0,102887.25,103729.296,302889.54432,17302.799140000003,17302.799140000003,17302.799140000003,38997.5215,202742.88247999997,547784.96704,148095.3831,225669.1552,141153.94800000003,141153.94800000003,141153.94800000003,99085.2835,102887.25,102887.25,213213.70212999996,48931.5411,72732.80924,126859.551,36003.94876,45790.256980000006,79429.66799999999,79429.66799999999,79429.66799999999,79429.66799999999,309347.665,309347.665 +8730000.0,120031.89899999998,119666.001,349424.72292000003,12927.11772,12927.11772,12927.11772,43263.1115,205146.2352,554581.49632,177744.01932,270848.02944,142668.843,142668.843,142668.843,98322.406,120031.89899999998,120031.89899999998,235131.43394,60666.65909999999,90176.12043999998,157283.93099999998,44638.67756,56772.009379999996,84941.66399999999,84941.66399999999,84941.66399999999,84941.66399999999,360895.90965999995,360895.90965999995 +8733600.0,126972.33,123406.35600000001,360346.55952,25323.336500000005,25323.336500000005,25323.336500000005,41080.676,203976.5124,562624.06848,219319.73196,334201.49632,144777.738,144777.738,144777.738,101307.8815,126972.33,126972.33,241637.86321999997,67356.17775,100119.5531,174627.12750000003,49560.84190000001,63032.07745000001,102287.295,102287.295,102287.295,102287.295,381763.47219999996,381763.47219999996 +8737200.0,147907.36200000002,127375.65599999999,371936.91552,39378.40995,39378.40995,39378.40995,57238.77949999999,211307.44103999998,571566.12288,242170.39917,369021.56064,223776.90000000002,223776.90000000002,223776.90000000002,166805.6985,147907.36200000002,147907.36200000002,243786.70185999997,80087.78205,119044.06121999999,207634.99049999999,58928.78778,74946.34418999999,148409.778,148409.778,148409.778,148409.778,444708.13508000004,444708.13508000004 +8740800.0,182445.573,140821.842,411199.77864,59121.988090000006,59121.988090000006,59121.988090000006,63970.2455,280969.81096,582574.9094400001,269978.85852,411396.35584000003,258643.443,258643.443,258643.443,194625.6445,182445.573,182445.573,271649.59848,96344.93565,143209.01546,249783.1665,70890.84154,90159.82867,206601.369,206601.369,206601.369,206601.369,548553.02282,548553.02282 +8744400.0,323894.625,185133.543,540589.9455599999,99757.76756000001,99757.76756000001,99757.76756000001,72583.68950000001,793889.0977599999,629440.9881600001,473989.66881,722269.97152,302690.658,302690.658,302690.658,296110.122,323894.625,323894.625,489636.61954999994,148581.29295,220854.16878,385210.75950000004,109326.48222,139042.74081000002,347543.589,347543.589,347543.589,347543.589,973843.1725,973843.1725 +8748000.0,1037860.47,483600.52499999997,1412113.5329999998,764993.5247899999,764993.5247899999,764993.5247899999,1062599.1495,3089105.9074399993,3055353.8156800005,2336356.48617,3560162.26464,862348.6740000001,862348.6740000001,862348.6740000001,1284176.8694999998,1037860.47,1037860.47,1886185.7424799998,1219193.8276499999,1812233.7882599998,3160872.8864999996,897085.8287399999,1140924.59427,1261138.473,1261138.473,1261138.473,1261138.473,3120500.4798,3120500.4798 +8751600.0,593775.465,823245.4139999999,2403876.6088799997,779279.5218999999,779279.5218999999,779279.5218999999,1427529.9255,3173630.35904,1606133.7683200003,2096388.4704,3194496.7168,777517.7490000001,777517.7490000001,777517.7490000001,994423.7589999998,593775.465,593775.465,1301274.63427,1458002.3328,2167203.46752,3780006.048,1072801.71648,1364402.18304,901793.166,901793.166,901793.166,901793.166,1785284.8980999999,1785284.8980999999 +8755200.0,1371025.551,1091208.3029999998,3186328.2447599997,310272.09510000004,310272.09510000004,310272.09510000004,649911.465,2279349.73992,3459275.5564800003,1757735.61894,2678454.27648,1118345.001,1118345.001,1118345.001,605496.3845,1371025.551,1371025.551,531903.6431799999,738207.70335,1097286.51214,1913871.8235000002,543175.0508600001,690816.5915300001,1491402.15,1491402.15,1491402.15,1491402.15,4122216.8233399997,4122216.8233399997 +8758800.0,657000.579,466109.475,1361039.667,258514.43420000002,258514.43420000002,258514.43420000002,227678.9375,585029.11312,4101713.248640001,181355.90298,276351.85216000007,571492.458,571492.458,571492.458,522408.97799999994,657000.579,657000.579,260323.71274000002,1171377.5350499998,1741158.7064199995,3036904.7204999994,861902.4825799998,1096177.98959,183842.97,183842.97,183842.97,183842.97,1975381.7408599998,1975381.7408599998 +8762400.0,296641.284,90639.315,264666.7998,138990.88665,138990.88665,138990.88665,104470.28899999999,354342.39712,495044.5152,157290.29757000002,239680.45344000004,126546.22200000001,126546.22200000001,126546.22200000001,90299.818,296641.284,296641.284,161490.13191999996,102869.16165,152906.75386,266697.8265,75691.38314,96265.21547000001,124625.92499999999,124625.92499999999,124625.92499999999,124625.92499999999,891901.4605599999,891901.4605599999 +8766000.0,250536.726,617672.649,1803604.13508,141508.38922,141508.38922,141508.38922,358177.6835,582363.36336,531101.03104,328256.16053999995,500199.86368,141720.039,141720.039,141720.039,465533.2535,250536.726,250536.726,157514.58995999998,114604.43355,170350.29382000002,297122.60550000006,84326.22518000001,107247.11189000001,161219.16,161219.16,161219.16,161219.16,753280.4228399999,753280.4228399999 +8769600.0,434097.99900000007,307289.98199999996,897286.74744,151043.17414999998,151043.17414999998,151043.17414999998,374282.8145,953405.6317599999,1165336.1497600002,565484.43609,861690.56928,359659.66500000004,359659.66500000004,359659.66500000004,295795.4965,434097.99900000007,434097.99900000007,369132.69484,296825.0264999999,441206.5825999999,769546.3649999999,218404.58739999996,277769.5927,359429.214,359429.214,359429.214,359429.214,1305187.9836600001,1305187.9836600001 +8773200.0,312933.83700000006,247239.04200000002,721938.0026400001,92742.73184000001,92742.73184000001,92742.73184000001,189351.2635,682594.4891199999,855304.99008,398565.5093699999,607337.91904,278417.199,278417.199,278417.199,193657.21899999998,312933.83700000006,312933.83700000006,293307.00347,215459.27099999998,320262.9164,558598.11,158535.4636,201627.3178,264291.83400000003,264291.83400000003,264291.83400000003,264291.83400000003,940887.73658,940887.73658 +8776800.0,401830.21499999997,278502.951,813228.61692,369533.32603,369533.32603,369533.32603,487498.1405000001,825970.19168,565939.69408,702614.83047,1070651.1702400001,273940.84500000003,273940.84500000003,273940.84500000003,583756.1414999999,401830.21499999997,401830.21499999997,629113.41129,391577.9517,582049.20228,1015202.0970000001,288124.02372,366439.61406,237044.92500000002,237044.92500000002,237044.92500000002,237044.92500000002,1208169.5130999999,1208169.5130999999 +8780400.0,198516.13199999998,513164.70300000004,1498440.93276,281004.76173,281004.76173,281004.76173,323698.746,855398.6174399998,366611.55520000006,254551.68879,387888.28768,234942.978,234942.978,234942.978,650616.428,198516.13199999998,198516.13199999998,587129.62451,242584.14599999998,360581.8664,628921.86,178494.0136,227010.8428,246208.33800000005,246208.33800000005,246208.33800000005,246208.33800000005,596871.83688,596871.83688 +8784000.0,72691.66500000001,22501.638,65704.78296,243261.66557,243261.66557,243261.66557,85530.4695,138748.0924,106607.27744,47509.618800000004,72395.60960000001,33316.965000000004,33316.965000000004,33316.965000000004,102941.79699999999,72691.66500000001,72691.66500000001,59030.8693,20510.572949999998,30487.32078,53175.5595,15091.73022,19193.84481,31121.387999999995,31121.387999999995,31121.387999999995,31121.387999999995,218559.6061,218559.6061 +8787600.0,964933.389,653934.066,1909487.47272,441677.4622700001,441677.4622700001,441677.4622700001,1497429.766,1569513.45536,1610090.13888,1662590.1830999998,2533470.7551999995,1144783.4640000002,1144783.4640000002,1144783.4640000002,754568.9375,964933.389,964933.389,265406.29543999996,781355.43945,1161422.1593799999,2025736.3245,574923.26162,731194.34951,888182.874,888182.874,888182.874,888182.874,2901233.05626,2901233.05626 +8791200.0,914845.683,569990.0819999999,1664371.03944,434277.7301500001,434277.7301500001,434277.7301500001,743615.061,1585881.44528,1834736.38592,1161659.1123900001,1770147.21888,733669.623,733669.623,733669.623,856736.314,914845.683,914845.683,559918.75225,695649.9186,1034027.78024,1803536.8260000001,511860.92776000005,650990.91148,735512.241,735512.241,735512.241,735512.241,2750636.02022,2750636.02022 +8794800.0,923759.379,774070.8300000001,2260286.8236000002,586296.29201,586296.29201,586296.29201,992794.0749999998,1814209.74152,2942965.4502400006,1468825.13589,2238209.73088,922323.246,922323.246,922323.246,1251912.9349999998,923759.379,923759.379,749315.27762,1173489.39945,1744297.8233799997,3042379.9244999997,863456.39762,1098154.27751,1008061.4789999998,1008061.4789999998,1008061.4789999998,1008061.4789999998,2777436.5328599997,2777436.5328599997 +8798400.0,968310.1140000001,819988.503,2394366.42876,683471.4044400001,683471.4044400001,683471.4044400001,1041216.827,1855502.0571999997,3244545.45024,1506398.5125,2295464.4,968388.0,968388.0,968388.0,1300549.6840000001,968310.1140000001,968310.1140000001,770738.78674,1245123.7542,1850776.54328,3228098.6220000004,916165.1327200001,1165189.8835600002,1050916.878,1050916.878,1050916.878,1050916.878,2911385.74276,2911385.74276 +8802000.0,673175.682,610337.697,1782186.07524,537032.4462800001,537032.4462800001,537032.4462800001,647517.8955000001,985741.82856,2026616.5881600003,900596.61741,1372337.70272,540052.0739999999,540052.0739999999,540052.0739999999,681758.504,673175.682,673175.682,563991.5379799999,593419.041,882069.7843999999,1538493.81,436639.1956,555323.0038000001,673761.657,673761.657,673761.657,673761.657,2024014.8838799999,2024014.8838799999 +8805600.0,128362.797,113152.305,330404.73059999995,80921.4087,80921.4087,80921.4087,98049.441,201306.38848000002,643419.0464,184312.94006999998,280857.81344,172133.44199999998,172133.44199999998,172133.44199999998,129752.59150000001,128362.797,128362.797,225546.79705999998,74923.9956,111368.50704,194247.396,55129.26096,70114.06008,104019.53099999999,104019.53099999999,104019.53099999999,104019.53099999999,385944.14298,385944.14298 +8809200.0,124746.93,117653.64300000001,343548.63756,71551.33667,71551.33667,71551.33667,65237.879,241968.2236,654758.9548800001,184076.56953,280497.62976000004,174460.39500000002,174460.39500000002,174460.39500000002,124068.203,124746.93,124746.93,249119.89036999998,64488.3282,95856.72488000001,167191.96200000003,47450.671120000006,60348.336760000006,99889.374,99889.374,99889.374,99889.374,375072.43619999994,375072.43619999994 +8812800.0,134782.167,135037.731,394310.17451999994,64008.63766000001,64008.63766000001,64008.63766000001,51119.523,242847.14943999998,662020.5171200001,209544.73931999996,319306.26943999995,173029.68300000002,173029.68300000002,173029.68300000002,122314.51399999998,134782.167,134782.167,266865.3416,69828.81615,103794.93166,181037.6715,51380.21534,65345.97857000001,108298.503,108298.503,108298.503,108298.503,405245.04877999995,405245.04877999995 +8816400.0,149269.998,146777.082,428589.07943999994,75098.56959000001,75098.56959000001,75098.56959000001,54804.547000000006,244412.90016,772099.8745599999,261419.65899,398353.76608000003,176457.744,176457.744,176457.744,123639.73649999998,149269.998,149269.998,287762.44432,104332.08239999998,155081.26815999998,270490.584,76767.80384,97634.22032,149437.08000000002,149437.08000000002,149437.08000000002,149437.08000000002,448805.12731999997,448805.12731999997 +8820000.0,182626.275,160267.869,467982.17748,80783.71246,80783.71246,80783.71246,73178.6685,291559.60559999995,842900.2233600001,293521.57295999996,447270.96832,273157.611,273157.611,273157.611,204013.124,182626.275,182626.275,300717.47705999995,125408.92634999998,186410.30533999996,325134.2535,92276.19765999999,117357.98293,248478.50700000004,248478.50700000004,248478.50700000004,248478.50700000004,549096.3335,549096.3335 +8823600.0,243926.22000000003,184800.345,539617.0074,99661.04401,99661.04401,99661.04401,77519.6835,494794.14599999995,864920.7667200001,341666.08076999994,520634.02783999994,339434.733,339434.733,339434.733,246147.28600000002,243926.22000000003,243926.22000000003,339126.15437999996,148834.64474999998,221230.75589999996,385867.5975,109512.8991,139279.82804999998,303777.375,303777.375,303777.375,303777.375,733404.8348000001,733404.8348000001 +8827200.0,309207.123,212976.321,621890.8573200001,116654.72665,116654.72665,116654.72665,80806.24300000002,604427.99296,923964.4051200001,444575.14269,677447.83648,417892.12200000003,417892.12200000003,417892.12200000003,262776.808,309207.123,309207.123,370229.09105,174002.9202,258641.37767999998,451118.68200000003,128031.77832,162832.36236,402299.61600000004,402299.61600000004,402299.61600000004,402299.61600000004,929682.7498199999,929682.7498199999 +8830800.0,402269.01599999995,233529.99,681907.5708,130551.25325000001,130551.25325000001,130551.25325000001,90392.8935,690588.87096,1080444.9715200001,541241.37165,824748.7568,452987.1390000001,452987.1390000001,452987.1390000001,282093.11549999996,402269.01599999995,402269.01599999995,389450.34648,204558.9471,304060.45963999996,530338.0109999999,150514.97835999998,191426.76778,473563.533,473563.533,473563.533,473563.533,1209488.8414399999,1209488.8414399999 +8834400.0,1101925.98,1122795.363,3278562.4599599997,947390.0009200001,947390.0009200001,947390.0009200001,1011395.756,1679889.9400799999,1701048.89728,1395139.90686,2125927.47712,692907.2069999999,692907.2069999999,692907.2069999999,1627804.9935,1101925.98,1101925.98,2056959.0781999999,628604.145,934369.618,1629714.4500000002,462528.4820000001,588249.3110000001,1432310.988,1432310.988,1432310.988,1432310.988,3313124.1132,3313124.1132 +8838000.0,1577898.546,1525394.898,4454153.10216,1733129.7320700001,1733129.7320700001,1733129.7320700001,1614953.6235,2448645.05608,2271202.14336,2355174.54291,3588837.39872,816486.885,816486.885,816486.885,1469941.543,1577898.546,1577898.546,551562.58456,1268027.2817999998,1884820.7991199996,3287478.1379999993,933017.6048799999,1186623.06124,1716538.1699999997,1716538.1699999997,1716538.1699999997,1716538.1699999997,4744214.96164,4744214.96164 +8841600.0,1438496.334,1261136.1030000001,3682517.42076,1118029.4477000001,1118029.4477000001,1118029.4477000001,1433980.142,2500405.29144,5820438.6208,1840307.36211,2804277.88512,1711869.318,1711869.318,1711869.318,1558096.386,1438496.334,1438496.334,553236.3106399999,2253981.6337499996,3350362.8234999995,5843656.087499999,1658485.2514999998,2109281.57825,974243.001,974243.001,974243.001,974243.001,4325078.97756,4325078.97756 +8845200.0,885579.8489999999,511122.444,1492477.53648,591617.2675600001,591617.2675600001,591617.2675600001,1686698.433,2065745.24,3332603.6768,1845154.185,2811663.52,1205038.7370000002,1205038.7370000002,1205038.7370000002,1388952.8695,885579.8489999999,885579.8489999999,869119.8331399999,1783358.694,2650819.5895999996,4623522.54,1312199.7304,1668871.4692,980872.971,980872.971,980872.971,980872.971,2662643.41266,2662643.41266 +8848800.0,498445.36199999996,261236.766,762811.35672,457081.82619000005,457081.82619000005,457081.82619000005,852516.805,1694169.67448,2288979.59552,1001130.76833,1525532.59936,387396.1919999999,387396.1919999999,387396.1919999999,879896.2445,498445.36199999996,498445.36199999996,179462.61033999998,717611.3270999999,1066671.6516399998,1860473.811,528020.1863599999,671542.45178,445808.16299999994,445808.16299999994,445808.16299999994,445808.16299999994,1498659.0550799998,1498659.0550799998 +8852400.0,423063.41399999993,225854.61000000004,659495.4612,166687.30991000004,166687.30991000004,166687.30991000004,400554.62649999995,1218250.87568,690426.9894400002,694071.0434699999,1057632.06624,341056.02,341056.02,341056.02,348378.19450000004,423063.41399999993,423063.41399999993,177367.66775,265938.92864999996,395296.8766599999,689471.2964999999,195678.52033999996,248866.30606999996,340844.349,340844.349,340844.349,340844.349,1272010.6647599998,1272010.6647599998 +8856000.0,598717.242,449402.1989999999,1312254.4210799998,194480.06600000002,194480.06600000002,194480.06600000002,576668.4805,1243689.7521600001,1559812.5926400002,874758.73044,1332965.68448,566568.579,566568.579,566568.579,633879.2005,598717.242,598717.242,286779.01096,561447.6606,834546.8930399999,1455605.0459999999,413114.57496,525404.10708,580716.507,580716.507,580716.507,580716.507,1800143.17428,1800143.17428 +8859600.0,491464.599,375844.86600000004,1097467.00872,157923.78184000004,157923.78184000004,157923.78184000004,455213.12200000003,990582.02056,1328721.0444800002,712769.3934899999,1086124.79008,457573.608,457573.608,457573.608,554228.591,491464.599,491464.599,259425.27207999997,475546.0428,706861.03152,1232897.148,349907.95248,445017.16104,466527.408,466527.408,466527.408,466527.408,1477670.2276599999,1477670.2276599999 +8863200.0,407098.614,289062.819,844063.43148,107172.90056000002,107172.90056000002,107172.90056000002,346939.306,820084.82656,1031877.98976,579113.70111,882458.9731200001,374677.66500000004,374677.66500000004,374677.66500000004,411881.01149999996,407098.614,407098.614,220002.44955,337965.56234999996,502358.68773999996,876207.0135,248675.89526,316269.00773,363329.184,363329.184,363329.184,363329.184,1224009.83276,1224009.83276 +8866800.0,335834.838,220971.384,645236.4412799999,78137.19903000002,78137.19903000002,78137.19903000002,251693.70799999998,664914.2453600001,751976.4659200002,452963.47614000004,690230.05888,292048.521,292048.521,292048.521,292452.3805,335834.838,335834.838,165807.04919999998,227282.52104999998,337837.22881999996,589250.9805,167235.04017999998,212691.54439,279764.103,279764.103,279764.103,279764.103,1009743.4129199999,1009743.4129199999 +8870400.0,309904.776,195353.094,570431.03448,80177.92959,80177.92959,80177.92959,224321.678,608028.26536,643413.7696,408879.80049,623054.93408,260064.98999999996,260064.98999999996,260064.98999999996,247467.101,309904.776,309904.776,145829.15672,187874.2107,279259.93788,487081.287,138238.30812,175813.15026000002,249113.83500000002,249113.83500000002,249113.83500000002,249113.83500000002,931780.35984,931780.35984 +8874000.0,364387.128,243670.554,711518.0176799999,118630.1215,118630.1215,118630.1215,311865.5855,717951.45512,824991.36256,506647.56891000003,772034.39072,313920.381,313920.381,313920.381,333357.63300000003,364387.128,364387.128,185304.45154,274656.88169999997,408255.41427999997,712073.397,202093.21172,257024.58805999998,310052.964,310052.964,310052.964,310052.964,1095590.63152,1095590.63152 +8877600.0,941997.648,792023.9430000001,2312709.9135600002,441498.07702,441498.07702,441498.07702,1072221.57,1866209.33512,3003755.23072,1511451.92415,2303164.8368,933294.993,933294.993,933294.993,1261428.8855,941997.648,941997.648,750835.58875,1219685.8499999999,1812965.14,3162148.5,897447.86,1141385.03,1002142.548,1002142.548,1002142.548,1002142.548,2832272.92832,2832272.92832 +8881200.0,1052899.569,908001.096,2651363.20032,694712.39849,694712.39849,694712.39849,1226037.841,2073515.01544,3569815.98656,1736264.8779,2645736.9568000003,1052722.041,1052722.041,1052722.041,1420055.231,1052899.569,1052899.569,975675.7054199999,1367008.4799,2031948.4071599997,3544096.059,1005848.2148399999,1279249.9108199999,1158108.936,1158108.936,1158108.936,1158108.936,3165718.03746,3165718.03746 +8884800.0,981125.2080000001,877090.1369999999,2561103.2000399996,690282.3825699999,690282.3825699999,690282.3825699999,946726.3854999999,1729395.38648,2547621.87136,1449900.8577899998,2209372.73568,812169.7590000001,812169.7590000001,812169.7590000001,1125650.3720000002,981125.2080000001,981125.2080000001,916141.22431,1078084.6996499998,1602486.3930599997,2795034.4064999996,793257.3839399999,1008874.3238699998,1004332.2149999999,1004332.2149999999,1004332.2149999999,1004332.2149999999,2949916.45872,2949916.45872 +8888400.0,476181.73799999995,343098.57300000003,1001847.83316,372698.79295000003,372698.79295000003,372698.79295000003,412586.48899999994,870740.3208,969010.8473600001,665969.60598,1014810.8281599999,380686.413,380686.413,380686.413,501266.63300000003,476181.73799999995,476181.73799999995,650574.78954,224987.31314999997,334425.58645999996,583300.4415,165546.22053999998,210543.68316999997,524649.465,524649.465,524649.465,524649.465,1431719.7589199997,1431719.7589199997 +8892000.0,176034.07799999998,128204.832,374358.10944,118471.89618000001,118471.89618000001,118471.89618000001,101767.5015,379007.28672,702564.3475200001,275434.39182,419709.54944000003,227502.86700000003,227502.86700000003,227502.86700000003,147439.06800000003,176034.07799999998,176034.07799999998,269431.7171,87263.56799999998,129710.29119999998,226238.87999999998,64208.748799999994,81661.46239999999,129894.51,129894.51,129894.51,129894.51,529275.79452,529275.79452 +8895600.0,180617.91,146652.00900000002,428223.86628,105179.30467,105179.30467,105179.30467,80518.23849999999,410216.35183999996,856030.3052800002,275907.63522,420430.68224000005,229121.66100000002,229121.66100000002,229121.66100000002,140174.47849999997,180617.91,180617.91,270064.26576999994,109887.67799999999,163339.21519999998,284893.98,80855.62479999999,102833.1604,143648.763,143648.763,143648.763,143648.763,543057.8494,543057.8494 +8899200.0,191644.767,161927.36099999998,472827.89411999995,89914.87549,89914.87549,89914.87549,71738.33799999999,405202.88119999995,946677.90656,305409.58917000005,465386.0406400001,254092.82399999996,254092.82399999996,254092.82399999996,135575.2895,191644.767,191644.767,303110.44724999997,118666.71719999998,176388.55247999998,307654.452,87315.26352,111048.60696,189580.902,189580.902,189580.902,189580.902,576211.9327799999,576211.9327799999 +8902800.0,217800.261,200086.458,584252.45736,110940.97982000001,110940.97982000001,110940.97982000001,81104.6215,428197.0344,977915.8553600002,351259.4316,535252.4672000001,335996.679,335996.679,335996.679,167884.199,217800.261,217800.261,323616.25646999996,140340.66885,208605.14234,363846.1785,103263.01066,131331.14443000001,266920.65599999996,266920.65599999996,266920.65599999996,266920.65599999996,654852.7847399999,654852.7847399999 +8906400.0,267533.28599999996,229403.40300000002,669857.9367600001,114972.35552000001,114972.35552000001,114972.35552000001,83227.158,533714.3412799999,987826.5996800001,394609.12596000003,601309.1443200001,396552.588,396552.588,396552.588,264952.1525,267533.28599999996,267533.28599999996,349427.7169499999,164708.96804999997,244826.66361999995,427023.25049999997,121193.26537999998,154135.05899,336401.166,336401.166,336401.166,336401.166,804383.4132399999,804383.4132399999 +8910000.0,335965.167,253581.309,740457.42228,125209.98061000001,125209.98061000001,125209.98061000001,84146.181,649712.21144,1087638.8057600001,476739.38781,726460.0195200001,442648.14,442648.14,442648.14,278627.35599999997,335965.167,335965.167,384347.48963,185461.5447,275673.70347999997,480826.227,136463.06252,173555.37146,415755.9269999999,415755.9269999999,415755.9269999999,415755.9269999999,1010135.2687799999,1010135.2687799999 +8913600.0,416938.746,288293.157,841816.0184399999,133405.90241,133405.90241,133405.90241,87829.8855,714865.8560799999,1241588.7276800002,555939.46737,847145.8550399999,465424.833,465424.833,465424.833,293433.7665,416938.746,416938.746,400663.64936,246628.34639999998,366593.24575999996,639406.824,181469.74624,230795.41552,483091.28099999996,483091.28099999996,483091.28099999996,483091.28099999996,1253595.82964,1253595.82964 +8917200.0,481684.58700000006,353137.34699999995,1031161.0532399999,150053.2891,150053.2891,150053.2891,107227.652,820715.5816000002,1506597.5551999998,649959.2910300001,990414.1577600001,499241.8140000001,499241.8140000001,499241.8140000001,366810.5735,481684.58700000006,481684.58700000006,415201.31639999995,290507.9013,431816.68292,753168.633,213756.43108,271858.01134,532121.139,532121.139,532121.139,532121.139,1448264.99158,1448264.99158 +8920800.0,1179075.426,1197974.5829999999,3498085.7823599996,982687.15732,982687.15732,982687.15732,1033178.7270000001,1901442.4405600003,2065485.99744,1522300.7851800001,2319696.43456,766171.98,766171.98,766171.98,1734510.6485000001,1179075.426,1179075.426,2216199.15465,684792.6381,1017889.30404,1775388.3210000002,503872.11396000005,640830.64158,1522211.316,1522211.316,1522211.316,1522211.316,3545086.7808399997,3545086.7808399997 +8924400.0,1837612.4640000002,1712624.3429999999,5000863.08156,2074547.4899600002,2074547.4899600002,2074547.4899600002,1796769.1665,2742784.1137599996,2688633.89568,2683296.54537,4088832.83104,976655.9820000001,976655.9820000001,976655.9820000001,1751082.669,1837612.4640000002,1837612.4640000002,1260785.9061199997,1452971.3134499998,2159725.26098,3766962.6645,1069099.88002,1359694.14271,1920436.809,1920436.809,1920436.809,1920436.809,5525088.14176,5525088.14176 +8928000.0,1865084.625,1788506.904,5222440.15968,1857891.49986,1857891.49986,1857891.49986,2008498.5165000001,3229656.99472,7866160.119040001,2363604.93117,3601683.70464,2027651.88,2027651.88,2027651.88,1935602.1474999997,1865084.625,1865084.625,651150.4792,2880493.45155,4281622.365019999,7467945.9855,2119474.19398,2695572.88429,1375842.8699999999,1375842.8699999999,1375842.8699999999,1375842.8699999999,5607687.7725,5607687.7725 +8931600.0,1096609.5359999998,672155.88,1962695.1696,970550.2138200001,970550.2138200001,970550.2138200001,1943482.772,2387213.10912,3898788.8672,2278028.99079,3471282.2716800002,1571346.471,1571346.471,1571346.471,1786703.7020000003,1096609.5359999998,1096609.5359999998,1152653.88823,2240197.02945,3329873.11538,5807918.2245000005,1648342.50562,2096381.91151,1206164.2920000001,1206164.2920000001,1206164.2920000001,1206164.2920000001,3297139.33824,3297139.33824 +8935200.0,574383.786,343591.728,1003287.8457599999,693169.7016200001,693169.7016200001,693169.7016200001,1249974.04,2030402.5236000002,3584819.3542400007,1305055.1711400002,1988655.4988800003,431142.43200000003,431142.43200000003,431142.43200000003,1205943.669,574383.786,574383.786,286534.47056,1004397.1326,1492955.73784,2603992.566,739037.8901600001,939917.31668,606774.2220000001,606774.2220000001,606774.2220000001,606774.2220000001,1726980.5832399998,1726980.5832399998 +8938800.0,398631.89099999995,218753.571,638760.42732,172996.57507000002,172996.57507000002,172996.57507000002,501817.8095000001,1258585.13936,489926.85696000006,768227.5452599999,1170632.44992,315216.546,315216.546,315216.546,310370.5955,398631.89099999995,398631.89099999995,142099.7136,307763.3475,457465.519,797904.975,226453.031,288005.7005,307707.144,307707.144,307707.144,307707.144,1198553.2189399998,1198553.2189399998 +8942400.0,525110.4029999999,369146.127,1077906.69084,180480.35269000003,180480.35269000003,180480.35269000003,484797.33400000003,1079933.65848,1173880.2137600002,759034.9443600001,1156624.6771200001,458822.8829999999,458822.8829999999,458822.8829999999,518370.874,525110.4029999999,525110.4029999999,245262.90529,426455.6445,633892.0937999999,1105625.745,313787.1162,399078.2451,485417.6610000001,485417.6610000001,485417.6610000001,485417.6610000001,1578831.9450199998,1578831.9450199998 +8946000.0,230664.71399999998,113772.945,332216.99940000003,99375.37071,99375.37071,99375.37071,154784.10849999997,443303.26311999996,349573.73632,295276.45686000003,449945.07712000003,156575.436,156575.436,156575.436,120175.363,230664.71399999998,230664.71399999998,86738.65303999998,94799.43135,140911.74734,245776.3035,69753.65566,88713.54193,163444.71600000001,163444.71600000001,163444.71600000001,163444.71600000001,693531.9067599999,693531.9067599999 +8949600.0,78405.90299999999,12888.084,37633.20528,71640.26210000002,71640.26210000002,71640.26210000002,53282.123999999996,113317.99927999999,50661.403520000014,64811.19561,98759.91712000001,19520.121,19520.121,19520.121,18463.774,78405.90299999999,78405.90299999999,12282.02235,18951.93855,28170.535819999997,49134.6555,13944.88318,17735.27089,35560.473,35560.473,35560.473,35560.473,235740.41502,235740.41502 +8953200.0,49163.38799999999,5396.607,15758.09244,53699.649190000004,53699.649190000004,53699.649190000004,39770.84999999999,54324.70784,19549.81504,31416.90405,47873.3776,7481.985000000001,7481.985000000001,7481.985000000001,13803.846000000001,49163.38799999999,49163.38799999999,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,18923.259,18923.259,18923.259,18923.259,147817.91992,147817.91992 +8956800.0,49038.10800000001,5582.286,16300.275119999998,58787.503280000004,58787.503280000004,58787.503280000004,44547.17049999999,55846.0804,20479.23904,33456.81591,50981.81472,8193.249,8193.249,8193.249,15529.3285,49038.10800000001,49038.10800000001,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,19607.244000000002,19607.244000000002,19607.244000000002,19607.244000000002,147441.24472000002,147441.24472000002 +8960400.0,101910.195,17042.196,49763.21232,99163.60047,99163.60047,99163.60047,73637.90000000001,145330.1228,64879.60512,83007.07106999999,126486.96544,19896.855,19896.855,19896.855,25646.2255,101910.195,101910.195,14673.996869999999,25947.1674,38568.382159999994,67270.434,19091.98984,24281.423319999998,44967.624,44967.624,44967.624,44967.624,306409.9863,306409.9863 +8964000.0,526474.0109999999,241137.07800000004,704120.2677600001,195278.88083000004,195278.88083000004,195278.88083000004,297288.35850000003,1109605.8283199999,844894.6905600001,712248.52629,1085331.0876799999,399303.9419999999,399303.9419999999,399303.9419999999,225622.887,526474.0109999999,526474.0109999999,217787.25695999997,182700.04004999998,271568.94842,473666.7705,134431.14058,170971.14859,365363.37,365363.37,365363.37,365363.37,1582931.85974,1582931.85974 +8967600.0,856824.987,707327.8800000001,2065397.4096000001,211874.61108,211874.61108,211874.61108,842637.1765,1708975.1373599998,2144556.4736,1283097.3584099999,1955195.9747199998,798066.36,798066.36,798066.36,922307.029,856824.987,856824.987,498079.44419999997,782118.3946499999,1162556.23106,2027714.3565,575484.64594,731908.32487,818741.3999999999,818741.3999999999,818741.3999999999,818741.3999999999,2576187.1275799996,2576187.1275799996 +8971200.0,848435.3220000002,741713.559,2165803.59228,256543.22331,256543.22331,256543.22331,804849.2235,1523989.3764,2005304.34368,1250285.03838,1905196.24896,697620.6479999999,697620.6479999999,697620.6479999999,983339.385,848435.3220000002,848435.3220000002,725325.9221,935264.6126999999,1390195.7946799998,2424760.107,688170.0113199999,875222.93386,858395.2200000002,858395.2200000002,858395.2200000002,858395.2200000002,2550962.2014800003,2550962.2014800003 +8974800.0,423829.149,311925.876,910823.5579199999,227879.80468000003,227879.80468000003,227879.80468000003,385708.351,716307.14472,845208.1977600001,594886.92585,906494.3632,309851.601,309851.601,309851.601,446632.74950000003,423829.149,423829.149,600567.6245399999,206736.12180000002,307296.65512,535982.5380000001,152116.94888,193464.17324000003,472851.573,472851.573,472851.573,472851.573,1274312.97466,1274312.97466 +8978400.0,159623.049,116218.68599999999,339358.56311999995,80450.1027,80450.1027,80450.1027,99047.08799999999,244854.04792,625645.97888,250462.99719,381657.90048,169270.74,169270.74,169270.74,132082.468,159623.049,159623.049,245418.98016999997,76442.61195,113625.80838,198184.54950000002,56246.66262,71535.18501,117474.342,117474.342,117474.342,117474.342,479933.30065999995,479933.30065999995 +8982000.0,158808.9,124469.74200000001,363451.64664000005,42720.181130000004,42720.181130000004,42720.181130000004,71780.8875,314421.89744000003,605159.02592,232713.47652,354611.01184,175576.407,175576.407,175576.407,119710.5315,158808.9,158808.9,237431.83086999998,67947.2226,100998.09384,176159.46600000001,49995.73416,63585.178680000005,109233.807,109233.807,109233.807,109233.807,477485.4259999999,477485.4259999999 +8985600.0,165612.267,134795.103,393601.70076,42906.758069999996,42906.758069999996,42906.758069999996,58449.65349999999,330783.77288,610064.94848,240456.31428,366409.62176,190155.699,190155.699,190155.699,114864.547,165612.267,165612.267,252764.6823,73878.8526,109814.98584,191537.766,54360.242159999994,69136.01268,117120.41700000002,117120.41700000002,117120.41700000002,117120.41700000002,497940.88278,497940.88278 +8989200.0,179937.699,141581.463,413417.87195999996,61012.07981,61012.07981,61012.07981,69758.1815,353871.25512,648369.83808,277647.89388,423082.50496,244683.48299999998,244683.48299999998,244683.48299999998,121287.0925,179937.699,179937.699,276476.27475,94622.98095,140649.46798,245318.8395,69623.82302,88548.41921000001,170395.52399999998,170395.52399999998,170395.52399999998,170395.52399999998,541012.68166,541012.68166 +8992800.0,204631.962,149039.664,435195.81888,75692.65121000001,75692.65121000001,75692.65121000001,70358.7955,374323.54832,801755.6537600001,303373.62825,462283.624,291771.615,291771.615,291771.615,175440.71649999998,204631.962,204631.962,287380.60247,126553.57785,188111.73794,328101.86850000004,93118.43506,118429.15063,236137.06199999998,236137.06199999998,236137.06199999998,236137.06199999998,615260.09908,615260.09908 +8996400.0,256797.024,190793.133,557115.94836,90740.99595,90740.99595,90740.99595,75072.445,488765.36215999996,868848.8928,372580.7421,567742.0832,351099.411,351099.411,351099.411,235706.53749999998,256797.024,256797.024,313092.76531,148317.44355,220461.97782,384526.7055,109132.34118,138795.82989,309604.77,309604.77,309604.77,309604.77,772103.05216,772103.05216 +9000000.0,297814.50899999996,219438.99299999996,640761.8595599999,105132.45490000001,105132.45490000001,105132.45490000001,74812.871,548723.17048,916846.85056,422490.94818,643795.73056,368129.277,368129.277,368129.277,236018.71299999996,297814.50899999996,297814.50899999996,340872.66538,159815.02905,237552.21602,414335.26050000003,117592.29298000001,149555.29879000003,360178.608,360178.608,360178.608,360178.608,895428.9570599999,895428.9570599999 +9003600.0,469870.287,265954.08,776585.9136,135948.70410000003,135948.70410000003,135948.70410000003,86011.6495,1012082.9616799998,1130969.26528,655447.10322,998776.53824,412773.525,412773.525,412773.525,348976.04,469870.287,469870.287,544151.08644,224869.95629999996,334251.14491999993,582996.183,165459.86907999997,210433.86033999998,477526.55700000003,477526.55700000003,477526.55700000003,477526.55700000003,1412743.32958,1412743.32958 +9007200.0,1168985.2079999999,578202.303,1688350.72476,1292309.31412,1292309.31412,1292309.31412,1321916.6239999998,3301548.28824,3907663.65056,2711610.0198600003,4131977.1731200004,1075633.8390000002,1075633.8390000002,1075633.8390000002,1602254.7765,1168985.2079999999,1168985.2079999999,2228774.42827,1525227.1002,2267127.68968,3954292.482,1122265.86632,1427311.28636,1415776.626,1415776.626,1415776.626,1415776.626,3514748.8587199994,3514748.8587199994 +9010800.0,652676.784,894788.682,2612782.95144,1095244.0940100001,1095244.0940100001,1095244.0940100001,1634726.142,3383476.0772800003,1735169.53472,2321824.0353,3538017.5776,802996.0199999999,802996.0199999999,802996.0199999999,1204749.805,652676.784,652676.784,1671960.70418,1676366.2192499998,2491783.8617,4346134.6425,1233474.4033,1568747.6471499999,963849.771,963849.771,963849.771,963849.771,1962381.53056,1962381.53056 +9014400.0,1501182.804,1452211.824,4240458.52608,465473.33591,465473.33591,465473.33591,1131209.926,2857642.8101600003,4397202.494080001,2235527.6328,3406518.2976,1214461.692,1214461.692,1214461.692,850031.763,1501182.804,1501182.804,1220742.12702,993594.0573,1476897.83332,2575984.593,731088.96068,929807.77214,1620725.0100000002,1620725.0100000002,1620725.0100000002,1620725.0100000002,4513556.297359999,4513556.297359999 +9018000.0,767214.594,536872.92,1567668.9264,280034.29058,280034.29058,280034.29058,259864.13600000003,829627.6610399999,4545674.172800001,255201.67155,388878.7376,670393.125,670393.125,670393.125,606583.7085,767214.594,767214.594,347610.42679999996,1395964.8783,2074989.7697199997,3619168.2029999997,1027154.4042799999,1306347.37994,247269.825,247269.825,247269.825,247269.825,2306758.5459600003,2306758.5459600003 +9021600.0,193293.468,100575.495,293680.4454,134786.69061000002,134786.69061000002,134786.69061000002,98218.8235,94292.89112,592510.1446400001,59789.005079999995,91107.05536,24547.134000000002,24547.134000000002,24547.134000000002,36781.4405,193293.468,193293.468,43160.90922,35156.4138,52257.187920000004,91146.25800000002,25868.176080000005,32899.45884000001,37402.065,37402.065,37402.065,37402.065,581169.02712,581169.02712 +9025200.0,254343.32399999996,565739.418,1651959.1005599997,152599.42819000004,152599.42819000004,152599.42819000004,360039.5575,545869.72312,465676.8492800001,279822.52410000004,426396.2272,120909.273,120909.273,120909.273,409307.24450000003,254343.32399999996,254343.32399999996,186531.06887999998,93976.69005,139688.80842000002,243643.27050000004,69148.28058,87943.61859000001,132437.343,132437.343,132437.343,132437.343,764725.5941599999,764725.5941599999 +9028800.0,330154.137,215820.44999999998,630195.7139999999,146075.01469,146075.01469,146075.01469,284654.7235,679783.75552,612193.63136,383000.42381999997,583619.69344,215557.40400000004,215557.40400000004,215557.40400000004,171904.0015,330154.137,330154.137,274380.51446,173592.18135,258030.84733999998,450053.8035,127729.55566,162447.99193,224647.215,224647.215,224647.215,224647.215,992663.43858,992663.43858 +9032400.0,133062.234,52265.09999999999,152614.09199999998,79941.30386,79941.30386,79941.30386,74553.822,243829.47248000003,170732.41984000002,115686.98631000001,176284.93152,74014.85399999999,74014.85399999999,74014.85399999999,36320.2,133062.234,133062.234,121766.2563,44762.9247,66536.49548,116052.027,32936.67052,41889.25546,71331.063,71331.063,71331.063,71331.063,400073.78356,400073.78356 +9036000.0,227273.487,126962.64300000001,370730.91756000003,278477.93072000006,278477.93072000006,278477.93072000006,297449.75049999997,416029.43528,101586.47296000001,435162.51114,663104.77888,106108.227,106108.227,106108.227,312954.852,227273.487,227273.487,424621.20596999995,197753.33114999998,293944.45765999996,512693.8215,145507.38934,185058.05557,81721.011,81721.011,81721.011,81721.011,683335.61758,683335.61758 +9039600.0,21446.574,313632.762,915807.66504,257251.92427000005,257251.92427000005,257251.92427000005,242635.46300000002,377110.77008000005,42344.01344,45974.48058,70056.35136,36177.477,36177.477,36177.477,397223.967,21446.574,21446.574,254702.72749999998,118595.74905,176283.06402,307470.46050000004,87263.04498,110982.19479000001,93846.32400000001,93846.32400000001,93846.32400000001,93846.32400000001,64482.69916,64482.69916 +9043200.0,13296.03,6713.352000000001,19602.98784,257472.31477000006,257472.31477000006,257472.31477000006,50207.461500000005,28903.76016,43886.231680000004,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,13296.03,13296.03,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10647.594,10647.594,10647.594,10647.594,39976.7302,39976.7302 +9046800.0,642029.1690000001,247933.815,723966.7398,155523.49120000002,155523.49120000002,155523.49120000002,611261.4865,716971.45056,328830.36352,715539.55305,1090345.9856,454469.3730000001,454469.3730000001,454469.3730000001,71657.005,642029.1690000001,642029.1690000001,9502.102089999998,147300.18885,218949.91034,381889.3785,108383.84266000001,137843.88043000002,387683.54400000005,387683.54400000005,387683.54400000005,387683.54400000005,1930367.7014600001,1930367.7014600001 +9050400.0,365241.59699999995,177499.641,518298.95171999995,231736.58145000003,231736.58145000003,231736.58145000003,474130.97550000006,486987.98152000003,427543.77664000005,469048.09580999997,714739.95552,248460.54300000003,248460.54300000003,248460.54300000003,182266.8015,365241.59699999995,365241.59699999995,17574.09498,189825.8409,282160.87956,492141.069,139674.32244,177639.49062,222760.899,222760.899,222760.899,222760.899,1098159.73498,1098159.73498 +9054000.0,524246.21699999995,348927.21900000004,1018867.47948,282484.5771,282484.5771,282484.5771,600833.4395000001,1082932.26488,934803.2352,763797.6528,1163882.1376,447210.82200000004,447210.82200000004,447210.82200000004,378965.73749999993,524246.21699999995,524246.21699999995,348725.59163,394201.41209999996,585948.76564,1022003.661,290054.37236,368894.65478,412155.26399999997,412155.26399999997,412155.26399999997,412155.26399999997,1576233.6257799997,1576233.6257799997 +9057600.0,701785.2509999999,530962.338,1550410.02696,321050.04932000005,321050.04932000005,321050.04932000005,685619.0355000001,1364588.86568,1422157.3203200002,1041759.44838,1587442.96896,618418.611,618418.611,618418.611,705731.0819999999,701785.2509999999,701785.2509999999,529566.5218999999,629651.08215,935925.8060600001,1632428.7315000002,463298.82094000006,589229.03737,661399.203,661399.203,661399.203,661399.203,2110034.32134,2110034.32134 +9061200.0,514723.36199999996,445569.28500000003,1301062.3122,310265.85986,310265.85986,310265.85986,450809.4639999999,765255.57192,1155016.83968,687848.8249499999,1048150.5904,353892.276,353892.276,353892.276,469482.06200000003,514723.36199999996,514723.36199999996,449624.03329999995,371346.86115,551977.30966,962751.1215000001,273237.93734000006,347507.30957000004,515811.51599999995,515811.51599999995,515811.51599999995,515811.51599999995,1547601.5750799999,1547601.5750799999 +9064800.0,98732.83800000002,73495.896,214608.01631999997,78760.75966000001,78760.75966000001,78760.75966000001,76882.48049999999,135510.75264,498612.70912,142556.80761,217229.42111999998,97128.621,97128.621,97128.621,104285.909,98732.83800000002,98732.83800000002,132134.12472,54896.33655,81598.99901999999,142323.8355,40392.85998,51372.12729,83168.895,83168.895,83168.895,83168.895,296856.73292000004,296856.73292000004 +9068400.0,93929.29199999999,78439.25700000001,229042.63044,40353.12204000001,40353.12204000001,40353.12204000001,58821.759499999986,131304.78464,493136.06528000004,129996.19458,198089.43936,115101.03600000001,115101.03600000001,115101.03600000001,94450.9895,93929.29199999999,93929.29199999999,134194.01202999998,51640.84935,76759.97854,133883.68349999998,37997.464459999996,48325.63433,78256.659,78256.659,78256.659,78256.659,282414.07128,282414.07128 +9072000.0,98925.84900000002,93114.159,271893.34428,17091.79813,17091.79813,17091.79813,38596.7295,154024.70312,501918.4012800001,127668.90738,194543.09696000002,127564.374,127564.374,127564.374,90250.139,98925.84900000002,98925.84900000002,180075.90938999996,46865.8548,69662.33232,121504.06800000001,34484.01168,43857.182640000006,75377.514,75377.514,75377.514,75377.514,297437.05266,297437.05266 +9075600.0,113098.272,106558.563,311151.00396,12958.342760000001,12958.342760000001,12958.342760000001,41982.601500000004,195789.61495999998,515059.73312000005,151275.57585000002,230515.16320000004,131165.40899999999,131165.40899999999,131165.40899999999,92544.9525,113098.272,113098.272,206876.40688,54953.8425,81684.477,142472.92500000002,40435.173,51425.9415,77301.393,77301.393,77301.393,77301.393,340048.80448,340048.80448 +9079200.0,121801.008,117687.68999999999,343648.0548,11199.08119,11199.08119,11199.08119,41016.619,195363.7972,525484.02432,193906.48893,295476.55456,134070.75300000003,134070.75300000003,134070.75300000003,94453.1805,121801.008,121801.008,228316.62112999996,62439.80985,92811.76674,161880.9885,45943.36626,58431.32823000001,86443.04400000001,86443.04400000001,86443.04400000001,86443.04400000001,366215.03072,366215.03072 +9082800.0,139713.993,125302.137,365882.24004,40205.55605,40205.55605,40205.55605,57047.97350000001,203798.80704,549475.34912,237208.32765000002,361460.30880000006,169829.592,169829.592,169829.592,123328.3905,139713.993,139713.993,237887.53508,76711.75064999999,114025.86145999999,198882.3165,56444.69553999999,71787.04566999999,122234.17500000002,122234.17500000002,122234.17500000002,122234.17500000002,420073.40562,420073.40562 +9086400.0,174254.68799999997,134587.443,392995.33356,54921.60971,54921.60971,54921.60971,65864.3895,233306.24799999996,565633.16096,263572.89714,401634.89088,234624.903,234624.903,234624.903,189161.08749999997,174254.68799999997,174254.68799999997,258202.06983999995,91133.2296,135462.23264,236271.33600000004,67056.05536000001,85282.70128000001,193008.666,193008.666,193008.666,193008.666,523925.7619199999,523925.7619199999 +9090000.0,309012.327,181712.613,530600.82996,94830.82499,94830.82499,94830.82499,74044.60699999999,710052.9485599999,583533.7529600001,459181.93209,699705.80128,284139.966,284139.966,284139.966,287927.17799999996,309012.327,309012.327,478535.94281999994,136939.28850000002,203549.26340000003,355027.78500000003,100760.26660000002,128148.12430000002,324846.91199999995,324846.91199999995,324846.91199999995,324846.91199999995,929097.0631799999,929097.0631799999 +9093600.0,1014084.243,447874.623,1307793.89916,789077.1108,789077.1108,789077.1108,1043473.4450000001,3024273.44528,2791470.1542400005,2304841.76979,3512139.83968,793196.9940000001,793196.9940000001,793196.9940000001,1174429.0145,1014084.243,1014084.243,1910358.359,1162296.6209999998,1727660.6563999995,3013361.6099999994,855220.7235999998,1087680.0477999998,1204932.096,1204932.096,1204932.096,1204932.096,3049013.29062,3049013.29062 +9097200.0,521286.30600000004,766800.129,2239056.37668,687867.41958,687867.41958,687867.41958,1318100.6755000001,2868743.96104,1436248.96576,1906301.6130899999,2904840.5532799996,707202.879,707202.879,707202.879,936396.8564999999,521286.30600000004,521286.30600000004,1202332.86212,1305987.44985,1941245.54274,3385893.3885000004,960948.79026,1222146.2802300001,794462.043,794462.043,794462.043,794462.043,1567334.16004,1567334.16004 +9100800.0,1389564.747,1077475.929,3146229.71268,314331.5985700001,314331.5985700001,314331.5985700001,656436.382,2309353.12536,3444207.2787200003,1780435.09266,2713043.95072,1059602.304,1059602.304,1059602.304,605925.145,1389564.747,1389564.747,622142.69195,736364.7387,1094547.09308,1909093.767,541818.99292,689091.94066,1499298.993,1499298.993,1499298.993,1499298.993,4177958.00598,4177958.00598 +9104400.0,712068.0689999999,501161.226,1463390.77992,268935.86456,268935.86456,268935.86456,236336.2435,708089.51136,4230506.12992,251267.53029,382883.85568000004,594725.7990000001,594725.7990000001,594725.7990000001,554593.802,712068.0689999999,712068.0689999999,351726.98834,1214931.4416,1805898.0934400002,3149822.2560000005,893949.5545600001,1136935.8428800001,220273.42200000002,220273.42200000002,220273.42200000002,220273.42200000002,2140951.32746,2140951.32746 +9108000.0,271611.249,110779.437,323475.95603999996,138592.49877,138592.49877,138592.49877,102653.4775,311314.32832,369429.0182400001,166828.40286,254214.70912,91168.395,91168.395,91168.395,68916.092,271611.249,271611.249,146499.05022999996,73703.9169,109554.95795999999,191084.229,54231.52404,68972.30742,111772.80900000001,111772.80900000001,111772.80900000001,111772.80900000001,816644.4886599999,816644.4886599999 +9111600.0,216648.59999999998,575594.0700000001,1680734.6844,139103.99195,139103.99195,139103.99195,361527.754,482574.96216000005,423261.38688000006,305512.05762,465542.18304,97842.12300000002,97842.12300000002,97842.12300000002,382509.30199999997,216648.59999999998,216648.59999999998,135921.06177,99880.05914999999,148463.69285999998,258948.30149999997,73491.99414,93468.00597,131292.987,131292.987,131292.987,131292.987,651390.124,651390.124 +9115200.0,216091.734,113789.253,332264.61876,122018.50232,122018.50232,122018.50232,263945.5455,404259.16056,328208.68032000004,234924.22548,357979.77216,127924.725,127924.725,127924.725,111250.6885,216091.734,216091.734,172641.15491999997,117631.9827,174850.50268,304971.80700000003,86553.90332,110080.29986,138311.93700000003,138311.93700000003,138311.93700000003,138311.93700000003,649715.8135599999,649715.8135599999 +9118800.0,140913.093,67862.202,198157.62984,78633.97509000002,78633.97509000002,78633.97509000002,83086.21650000001,257522.91176000002,190775.3056,132650.24577,202133.70784000002,79488.369,79488.369,79488.369,49898.2435,140913.093,140913.093,130783.52481999998,58951.54889999999,87626.74675999998,152837.349,43376.695239999994,55167.00502,84692.799,84692.799,84692.799,84692.799,423678.69962,423678.69962 +9122400.0,216912.09900000005,127681.113,372828.84995999996,261251.17546,261251.17546,261251.17546,256623.017,399044.38512000005,98592.74304000002,415706.24235,633457.1312000001,97220.06700000001,97220.06700000001,97220.06700000001,317702.11549999996,216912.09900000005,216912.09900000005,407425.51369,196659.1062,292317.98008,509856.94200000004,144702.25592,184034.07716000002,76977.429,76977.429,76977.429,76977.429,652182.3776600001,652182.3776600001 +9126000.0,59259.450000000004,333686.91000000003,974365.7772,265111.43208000006,265111.43208000006,265111.43208000006,264175.625,425644.18351999996,58811.86176000001,62202.662339999995,94785.00928,76172.88,76172.88,76172.88,426400.93649999995,59259.450000000004,59259.450000000004,345834.02645999996,143613.8424,213470.45216,372332.184,105671.41984,134394.18832,104403.435,104403.435,104403.435,104403.435,178173.413,178173.413 +9129600.0,46131.078,13855.601999999999,40458.35784,242731.68238,242731.68238,242731.68238,66702.4295,55366.63392,54611.202560000005,31391.52723,47834.70816,9556.947,9556.947,9556.947,15529.3285,46131.078,46131.078,38971.86579,16329.490650000002,24272.477460000002,42335.7165,12015.279540000001,15281.177670000001,16478.442000000003,16478.442000000003,16478.442000000003,16478.442000000003,138700.77452,138700.77452 +9133200.0,868931.7750000001,523801.21199999994,1529499.5390399997,365557.44071000005,365557.44071000005,365557.44071000005,1271869.067,1274388.5356,1047678.0889600001,1336908.8858999999,2037194.4928,846713.619,846713.619,846713.619,369017.089,868931.7750000001,868931.7750000001,217131.16333999994,532343.2630500001,791285.54162,1380149.2005000003,391699.48738000006,498168.13999000005,664822.9349999999,664822.9349999999,664822.9349999999,664822.9349999999,2612588.2035000003,2612588.2035000003 +9136800.0,613051.8690000001,344488.74,1005907.1208,326993.44997,326993.44997,326993.44997,520142.2975,1021603.2654399999,871860.3136000001,769018.3708200001,1171837.51744,421846.245,421846.245,421846.245,409960.4705,613051.8690000001,613051.8690000001,375928.55144,396348.1632,589139.73888,1027569.312,291633.95712000004,370903.58976,459579.99899999995,459579.99899999995,459579.99899999995,459579.99899999995,1843242.6194600002,1843242.6194600002 +9140400.0,633836.2559999999,510238.377,1489896.06084,407432.17702000006,407432.17702000006,407432.17702000006,657234.4975,1194766.24424,1442957.3017600002,970493.92377,1478847.88384,546404.583,546404.583,546404.583,690880.4034999999,633836.2559999999,633836.2559999999,471929.91767999995,680469.4332,1011463.20688,1764180.012,500691.08912,636784.9757600001,591151.35,591151.35,591151.35,591151.35,1905734.3430399997,1905734.3430399997 +9144000.0,703384.554,579925.569,1693382.66148,474001.08481,474001.08481,474001.08481,731190.635,1275356.1944,2030089.4080000003,1081230.1214400001,1647588.7564800002,615371.388,615371.388,615371.388,853660.843,703384.554,703384.554,542926.24399,820090.3400999999,1218998.4808399999,2126160.141,603424.4971599999,767442.5651799999,691388.379,691388.379,691388.379,691388.379,2114842.89236,2114842.89236 +9147600.0,497370.59400000004,421040.556,1229438.4235199997,391888.08593,391888.08593,391888.08593,464339.295,682078.15136,1294801.2192000002,644865.6358200001,982652.3974400001,323315.367,323315.367,323315.367,454250.94749999995,497370.59400000004,497370.59400000004,399645.66095999995,380138.1678,565044.8815199999,985543.3979999999,279706.60248,355734.23604,477794.076,477794.076,477794.076,477794.076,1495427.58596,1495427.58596 +9151200.0,94317.399,65787.189,192098.59188,78117.60605000002,78117.60605000002,78117.60605000002,87971.36600000001,125237.45679999999,427168.07936,131631.17373,200580.83616000004,92194.134,92194.134,92194.134,92883.504,94317.399,94317.399,114549.04850999998,57184.469099999995,85000.12443999999,148256.031,42076.47356,53513.367379999996,75273.393,75273.393,75273.393,75273.393,283580.97966,283580.97966 +9154800.0,92311.032,73765.344,215394.80448,40840.276620000004,40840.276620000004,40840.276620000004,55595.386,127610.51160000001,447705.4176,119015.70639,181357.26688,113815.374,113815.374,113815.374,86048.8055,92311.032,92311.032,132381.41644,48782.14065,72510.73745999999,126472.2165,35894.01954,45650.44767,71051.853,71051.853,71051.853,71051.853,277548.50288,277548.50288 +9158400.0,95338.41900000001,90056.778,262965.79176,17587.300280000003,17587.300280000003,17587.300280000003,37082.129,151783.76664000002,492956.89344,126673.42506,193026.17152,125252.619,125252.619,125252.619,89361.79,95338.41900000001,95338.41900000001,172776.79210999998,45287.08379999999,67315.61592,117410.95799999998,33322.348079999996,42379.764839999996,72952.809,72952.809,72952.809,72952.809,286650.84646000003,286650.84646000003 +9162000.0,100290.30299999999,99785.739,291374.35788,24298.96634,24298.96634,24298.96634,33646.984000000004,182207.80727999998,486183.9302400001,135482.80893,206449.99456000002,124238.40000000001,124238.40000000001,124238.40000000001,87189.34000000001,100290.30299999999,100290.30299999999,192685.60817999998,47790.98415,71037.46286,123902.5515,35164.72414,44722.92097,72579.072,72579.072,72579.072,72579.072,301539.5110199999,301539.5110199999 +9165600.0,111380.568,110302.84199999998,322084.29863999994,35221.633480000004,35221.633480000004,35221.633480000004,37698.227,182788.76464,500919.37792,167839.66479,255755.67968,126107.74799999999,126107.74799999999,126107.74799999999,88524.34150000001,111380.568,111380.568,213564.17315999998,55474.6725,82458.649,143823.225,40818.401000000005,51913.3355,81721.89600000001,81721.89600000001,81721.89600000001,81721.89600000001,334884.24111999996,334884.24111999996 +9169200.0,113932.92899999999,108212.96100000001,315981.84612,43680.94126,43680.94126,43680.94126,41664.6685,177422.10832,490417.71904,196887.55044000002,300019.12448,123984.65699999999,123984.65699999999,123984.65699999999,92508.325,113932.92899999999,113932.92899999999,207091.2792,59055.496199999994,87781.25607999999,153106.842,43453.179919999995,55264.27916,106595.772,106595.772,106595.772,106595.772,342558.33985999995,342558.33985999995 +9172800.0,128034.672,113731.31099999999,332095.42812,54063.18159,54063.18159,54063.18159,54291.7935,178643.28736,485063.46432,209442.64760999999,319150.70112,167332.992,167332.992,167332.992,122068.0195,128034.672,128034.672,207305.81000999996,69966.89684999999,104000.17753999998,181395.6585,51481.81546,65475.19482999999,139499.757,139499.757,139499.757,139499.757,384957.58048,384957.58048 +9176400.0,226153.57499999998,148679.124,434143.04208,81935.85213,81935.85213,81935.85213,63144.6165,585049.8217600001,507497.71968000004,365770.6980900001,557364.87328,210779.24699999997,210779.24699999997,210779.24699999997,236196.97849999997,226153.57499999998,226153.57499999998,411727.07263999997,105583.6458,156941.61672,273735.378,77688.70728,98805.43644,232032.35700000002,232032.35700000002,232032.35700000002,232032.35700000002,679968.4154999999,679968.4154999999 +9180000.0,880855.4130000001,375614.65499999997,1096794.7925999998,785844.2731700001,785844.2731700001,785844.2731700001,924495.6594999998,2765715.35264,2333868.6585600004,2049082.8225,3122411.92,669983.613,669983.613,669983.613,981822.6285,880855.4130000001,880855.4130000001,1795037.0746099998,994896.02295,1478833.10078,2579360.0595,732046.95022,931026.15481,1053161.1030000001,1053161.1030000001,1053161.1030000001,1053161.1030000001,2648438.60842,2648438.60842 +9183600.0,530327.946,758435.1569999999,2214630.65844,785507.21612,785507.21612,785507.21612,1293551.3955,2818174.4491199995,1408316.7744000002,1881621.73794,2867233.12448,723491.9400000001,723491.9400000001,723491.9400000001,910217.882,530327.946,530327.946,1142363.54739,1273178.9142,1892478.2872799998,3300834.222,936808.18872,1191443.97156,822232.3620000001,822232.3620000001,822232.3620000001,822232.3620000001,1594519.3576399998,1594519.3576399998 +9187200.0,1349227.0829999999,1008666.777,2945306.9888400002,341871.46928,341871.46928,341871.46928,578921.2660000001,2019442.8175199998,3220309.184,1618747.51962,2466662.88704,969955.698,969955.698,969955.698,579708.409,1349227.0829999999,1349227.0829999999,553246.7627699999,688871.59155,1023952.34102,1785963.3855,506873.41798,644647.73629,1458491.8260000001,1458491.8260000001,1458491.8260000001,1458491.8260000001,4056676.0962199997,4056676.0962199997 +9190800.0,623842.53,475875.882,1389557.5754399998,263464.14842,263464.14842,263464.14842,217339.15350000001,520578.68624,3876242.34112,167269.05825,254886.184,536937.213,536937.213,536937.213,515212.705,623842.53,623842.53,270975.75596,1084222.989,1611610.4675999999,2810948.49,797773.9524,1014618.5502,166264.164,166264.164,166264.164,166264.164,1875686.5402,1875686.5402 +9194400.0,195635.83499999996,82840.26,241893.5592,130162.95490000001,130162.95490000001,130162.95490000001,99109.28649999999,188903.30304,167272.06848000002,88844.91819,135382.73248,45942.363,45942.363,45942.363,42647.926999999996,195635.83499999996,195635.83499999996,95302.79550999998,51378.328349999996,76369.76213999999,133203.0735,37804.300859999996,48079.96653,55486.308000000005,55486.308000000005,55486.308000000005,55486.308000000005,588211.7438999999,588211.7438999999 +9198000.0,221345.184,529064.4,1544868.0480000002,139659.42484999998,139659.42484999998,139659.42484999998,332258.549,492310.16624,423544.97408,299390.53494000004,456214.14848000003,105052.12800000001,105052.12800000001,105052.12800000001,353343.844,221345.184,221345.184,151294.22580999997,108611.3853,161442.10851999998,281585.073,79916.52548,101638.80254,135141.378,135141.378,135141.378,135141.378,665511.18656,665511.18656 +9201600.0,283774.137,178075.09500000003,519979.2774,136602.92811,136602.92811,136602.92811,279697.4145,565323.46392,544881.2256000001,332842.4484,507188.4928,194344.119,194344.119,194344.119,162686.335,283774.137,283774.137,236553.76056,176784.03089999998,262775.27556,458328.969,130078.12644,165434.93261999998,206520.06,206520.06,206520.06,206520.06,853214.23858,853214.23858 +9205200.0,156864.039,86839.068,253570.07856,77994.83857,77994.83857,77994.83857,92677.8545,302275.02447999996,248135.15520000004,155645.51352,237174.11584,102305.58599999998,102305.58599999998,102305.58599999998,70168.7035,156864.039,156864.039,139946.71430999998,73805.82704999999,109706.43921999999,191348.4405,54306.50978,69067.67519,102198.183,102198.183,102198.183,102198.183,471637.87726,471637.87726 +9208800.0,222420.741,134051.271,391429.71131999994,285858.79025,285858.79025,285858.79025,242052.28949999996,427813.7844,119089.69472000001,424924.70790000004,647504.3168,107095.86000000002,107095.86000000002,107095.86000000002,330226.3125,222420.741,222420.741,422147.28829,207340.18334999998,308194.54413999995,537548.6235,152561.41885999998,194029.45552999998,81278.991,81278.991,81278.991,81278.991,668745.0279399999,668745.0279399999 +9212400.0,74288.31599999999,330899.883,966227.6583599999,264801.11086,264801.11086,264801.11086,267935.53500000003,453224.9676,93605.81888,71580.04938,109074.36096,94563.201,94563.201,94563.201,423967.57899999997,74288.31599999999,74288.31599999999,380272.98672999995,146522.39445,217793.78137999997,379872.8745,107811.53962,137116.01851,110524.365,110524.365,110524.365,110524.365,223360.20343999995,223360.20343999995 +9216000.0,48400.62300000001,13708.755000000001,40029.5646,225204.17040000003,225204.17040000003,225204.17040000003,64957.431,60839.51399999999,66913.8496,32500.002569999997,49523.81344,12934.323,12934.323,12934.323,17629.678499999998,48400.62300000001,48400.62300000001,37987.638779999994,16890.326549999998,25106.115019999997,43789.7355,12427.94398,15806.00929,17081.540999999997,17081.540999999997,17081.540999999997,17081.540999999997,145524.53982,145524.53982 +9219600.0,876972.6900000002,533377.851,1557463.32492,392619.2329400001,392619.2329400001,392619.2329400001,1292138.1935,1308704.06024,1133605.16288,1403986.26921,2139407.64832,896625.8520000002,896625.8520000002,896625.8520000002,422919.42000000004,876972.6900000002,876972.6900000002,223835.65399,574172.40825,853461.2092999999,1488595.1325,422477.4757,537311.95735,684484.7250000001,684484.7250000001,684484.7250000001,684484.7250000001,2636764.5546000004,2636764.5546000004 +9223200.0,598639.9920000001,356106.168,1039830.01056,323860.11977,323860.11977,323860.11977,518871.6925,1036053.23,913249.9552000002,770523.41814,1174130.92288,442653.132,442653.132,442653.132,440116.85550000006,598639.9920000001,598639.9920000001,372636.25554999994,400887.43155000004,595886.99702,1039337.7855000001,294973.96198,375151.44829000003,467318.454,467318.454,467318.454,467318.454,1799910.90928,1799910.90928 +9226800.0,642957.1109999999,528243.591,1542471.2857199998,437235.14681,437235.14681,437235.14681,662360.5029999999,1215616.9948,1626311.68576,986269.90644,1502887.4764800002,577476.885,577476.885,577476.885,754686.7545,642957.1109999999,642957.1109999999,495846.69029999996,703563.0313500001,1045789.9873400001,1824052.3035000002,517683.41566000006,658396.02193,606948.111,606948.111,606948.111,606948.111,1933157.7137399998,1933157.7137399998 +9230400.0,698221.668,572737.692,1672394.06064,484100.79388,484100.79388,484100.79388,730378.0434999999,1284544.66352,2063113.9072000002,1075645.7817,1639079.2864,627715.1699999999,627715.1699999999,627715.1699999999,855632.8375,698221.668,698221.668,538688.49931,821159.5887,1220587.83308,2128932.267,604211.25292,768443.17066,699895.7729999999,699895.7729999999,699895.7729999999,699895.7729999999,2099319.81512,2099319.81512 +9234000.0,466792.07999999996,396801.654,1158660.82968,376314.57281000004,376314.57281000004,376314.57281000004,441369.495,641477.51944,1264904.05632,604301.0064,920839.6288,312463.96499999997,312463.96499999997,312463.96499999997,424985.666,466792.07999999996,466792.07999999996,378899.74135,362594.2644,538967.2769599999,940059.204,266797.75504,339316.60792000004,448458.80700000003,448458.80700000003,448458.80700000003,448458.80700000003,1403488.1871999998,1403488.1871999998 +9237600.0,88335.183,59387.079,173410.27068,77827.32958,77827.32958,77827.32958,85452.4965,122762.21952,392462.544,122681.21271000002,186942.80032000004,92608.176,92608.176,92608.176,86509.598,88335.183,88335.183,105801.32276999998,54093.954600000005,80406.32264,140243.586,39802.46536,50621.25628,69779.283,69779.283,69779.283,69779.283,265594.45022,265594.45022 +9241200.0,80387.223,62427.558000000005,182288.46936000002,40294.03785000001,40294.03785000001,40294.03785000001,51575.377,109074.19391999999,380968.2048,103447.6359,157634.4928,95295.93900000001,95295.93900000001,95295.93900000001,74293.6425,80387.223,80387.223,101076.74836999999,43039.273049999996,63974.425619999995,111583.3005,31668.40338,40276.25799,61410.780000000006,61410.780000000006,61410.780000000006,61410.780000000006,241697.58382,241697.58382 +9244800.0,75065.652,65696.52,191833.8384,16492.482490000002,16492.482490000002,16492.482490000002,30580.1825,108359.29032000001,373597.2659200001,93494.0202,142467.0784,91467.957,91467.957,91467.957,67421.228,75065.652,75065.652,130388.28712,35533.5012,52817.698079999995,92123.89199999999,26145.637919999997,33252.33816,56629.106999999996,56629.106999999996,56629.106999999996,56629.106999999996,225697.39368,225697.39368 +9248400.0,75567.91500000001,71486.103,208739.42076,16086.373820000003,16086.373820000003,16086.373820000003,25875.479,124872.53856,375393.68448,99913.14816000001,152248.60672,91779.741,91779.741,91779.741,67467.71500000001,75567.91500000001,75567.91500000001,132616.50999999998,34054.68015,50619.54926,88289.9115,25057.51774,31868.45377,56227.941000000006,56227.941000000006,56227.941000000006,56227.941000000006,227207.5311,227207.5311 +9252000.0,84261.15299999999,80505.984,235077.47327999998,25294.6023,25294.6023,25294.6023,22304.222499999996,143769.24264,392037.66912,108658.80017999999,165575.31456,96779.583,96779.583,96779.583,68733.2835,84261.15299999999,84261.15299999999,153916.79653999998,39422.7405,58598.7402,102207.105,29007.3498,36891.8979,58626.996,58626.996,58626.996,58626.996,253345.20002,253345.20002 +9255600.0,92717.754,89357.49900000001,260923.89708000002,28463.817690000003,28463.817690000003,28463.817690000003,30203.222,148578.84472,411149.99936,125556.13497000001,191323.63424,101217.456,101217.456,101217.456,72122.12700000001,92717.754,92717.754,171480.73760999998,45001.45755,66891.05541999999,116670.4455,33112.18358,42112.47509,72148.884,72148.884,72148.884,72148.884,278771.38036,278771.38036 +9259200.0,96376.098,91472.508,267099.72336,39412.6183,39412.6183,39412.6183,32374.506499999996,151037.31536,418218.36544,159136.29941999997,242493.40863999998,103446.12899999999,103446.12899999999,103446.12899999999,76557.8415,96376.098,96376.098,174285.07823999997,48386.81205,71923.11322,125447.2905,35603.135780000004,45280.498190000006,82734.405,82734.405,82734.405,82734.405,289770.80132,289770.80132 +9262800.0,158753.43000000002,118976.51400000001,347411.42088000005,67773.04171000002,67773.04171000002,67773.04171000002,47243.150499999996,515312.74656000006,433970.0377600001,285848.81367,435579.14464,112543.647,112543.647,112543.647,140654.472,158753.43000000002,158753.43000000002,364691.87677000003,68921.20709999999,102445.84363999998,178684.61099999998,50712.39436,64496.63578,155749.04700000002,155749.04700000002,155749.04700000002,155749.04700000002,477318.6462,477318.6462 +9266400.0,715606.851,310383.03,906318.4476000001,595297.1987599999,595297.1987599999,595297.1987599999,719264.7559999999,2377815.8016,1844879.0156800002,1693858.83513,2581118.2249600003,527367.7079999999,527367.7079999999,527367.7079999999,712406.8665,715606.851,715606.851,1618471.8399199997,777799.87965,1156137.10506,2016518.2065,572307.07194,727867.04787,861351.4290000001,861351.4290000001,861351.4290000001,861351.4290000001,2151591.26534,2151591.26534 +9270000.0,423872.922,611136.708,1784519.18736,504914.33025,504914.33025,504914.33025,929474.5599999999,2254780.35184,1030191.9052800001,1507360.94796,2296930.96832,609941.031,609941.031,609941.031,662677.218,423872.922,423872.922,757789.0594299999,956019.3885,1421046.1034,2478568.785,703441.4266,894645.3043000001,650743.245,650743.245,650743.245,650743.245,1274444.5854800001,1274444.5854800001 +9273600.0,882905.4510000001,371346.91199999995,1084332.9830399998,199874.30562000003,199874.30562000003,199874.30562000003,322157.9725,934092.48312,1314458.0716800003,798233.07501,1216355.16192,461308.578,461308.578,461308.578,282877.7875,882905.4510000001,882905.4510000001,290028.05052,321396.49395,477730.09718,833250.1695,236484.33382,300763.63261000003,855605.916,855605.916,855605.916,855605.916,2654602.38934,2654602.38934 +9277200.0,373789.911,318976.746,931412.09832,180245.20844000002,180245.20844000002,180245.20844000002,163729.601,261061.53127999997,1758479.44512,85902.54981000001,130899.12352000002,289968.36600000004,289968.36600000004,289968.36600000004,239802.29,373789.911,373789.911,132874.53764,462934.05525,688114.3241,1200199.4025,340628.0209,433214.83195,97510.884,97510.884,97510.884,97510.884,1123861.66574,1123861.66574 +9280800.0,49368.270000000004,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,49368.270000000004,49368.270000000004,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,148433.9318,148433.9318 +9284400.0,35330.148,89892.486,262486.05912,98192.18915,98192.18915,98192.18915,136761.2085,84350.58312,29181.38944,53366.312580000005,81320.09536,18087.996,18087.996,18087.996,74682.8775,35330.148,35330.148,11445.71246,32435.23905,48212.38002,84091.3605,23865.92898,30352.97679,21076.734,21076.734,21076.734,21076.734,106225.97832,106225.97832 +9288000.0,40383.717,14292.933,41735.36436000001,85150.57826000001,85150.57826000001,85150.57826000001,82298.4295,85547.26336,23133.34976,42296.60463,64451.96896,33791.07,33791.07,33791.07,28050.1305,40383.717,40383.717,9718.056659999998,27190.837349999998,40416.99773999999,70494.76349999999,20007.085259999996,25445.252729999997,21270.549,21270.549,21270.549,21270.549,121420.37577999999,121420.37577999999 +9291600.0,16573.953,6779.5650000000005,19796.3298,65894.00818,65894.00818,65894.00818,57965.20799999999,39247.50976,18506.68416,32585.957250000003,49654.79200000001,10590.915,10590.915,10590.915,20705.7725,16573.953,16573.953,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,49832.35202,49832.35202 +9295200.0,33205.11,6003.027000000001,17528.83884,56724.84356000001,56724.84356000001,56724.84356000001,58650.7985,82116.0064,15936.305920000003,39628.189020000005,60385.81184000001,11182.749,11182.749,11182.749,17829.9695,33205.11,33205.11,18615.93136,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,14072.310000000001,14072.310000000001,14072.310000000001,14072.310000000001,99836.69739999999,99836.69739999999 +9298800.0,11495.997,3203.478,9354.15576,195258.58374000003,195258.58374000003,195258.58374000003,86511.58600000001,38211.89088,42344.01344,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,11495.997,11495.997,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,34564.630979999994,34564.630979999994 +9302400.0,11380.547999999999,5374.923000000001,15694.775160000001,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29442.40672,15254.619520000004,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,11380.547999999999,11380.547999999999,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,34217.514319999995,34217.514319999995 +9306000.0,195770.94,5873.043000000001,17149.28556,87523.58362,87523.58362,87523.58362,70846.3665,93491.44455999999,22619.26976,95948.37987,146207.05504,20927.147999999997,20927.147999999997,20927.147999999997,26788.4575,195770.94,195770.94,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,84365.199,84365.199,84365.199,84365.199,588617.9596,588617.9596 +9309600.0,103247.40600000002,12604.575,36805.359000000004,151965.92048,151965.92048,151965.92048,129946.14850000001,158443.50992,40097.804800000005,105076.05108,160115.88736000002,39439.461,39439.461,39439.461,51779.672,103247.40600000002,103247.40600000002,16844.63443,45410.05799999999,67498.40719999999,117729.77999999998,33412.8328,42494.844399999994,64206.306,64206.306,64206.306,64206.306,310430.53404,310430.53404 +9313200.0,157574.925,49982.634000000005,145949.29128,159758.89193,159758.89193,159758.89193,189232.1515,234477.27895999997,75216.41024000001,168604.66917000004,256921.40064000007,69863.184,69863.184,69863.184,80326.253,157574.925,157574.925,17060.589,51959.851650000004,77234.14986,134710.72650000002,38232.18714,48624.157470000006,81705.486,81705.486,81705.486,81705.486,473775.27449999994,473775.27449999994 +9316800.0,207809.682,100951.899,294779.54508,146006.67939,146006.67939,146006.67939,207646.579,268509.42928,133580.88640000002,251677.8726,383509.13920000003,120602.04900000001,120602.04900000001,120602.04900000001,107654.47,207809.682,207809.682,48095.17557,65907.6345,97966.40980000001,170871.64500000002,48495.0002,61676.52710000001,92937.744,92937.744,92937.744,92937.744,624814.4438799999,624814.4438799999 +9320400.0,167366.937,80254.65,234343.57799999998,121489.92328,121489.92328,121489.92328,180357.849,168118.94744,199667.57312000002,169959.64839,258986.13088,102559.17,102559.17,102559.17,36376.508,167366.937,167366.937,17170.175229999997,39992.36895,59445.447179999996,103683.91949999999,29426.483819999998,37424.95761,61397.676,61397.676,61397.676,61397.676,503216.59057999996,503216.59057999996 +9324000.0,20886.684,11312.934000000001,33033.76728,75964.94642000001,75964.94642000001,75964.94642000001,66015.9325,50453.34847999999,23725.678720000004,37111.78317,56551.288640000006,11831.793000000001,11831.793000000001,11831.793000000001,23581.572,20886.684,20886.684,9368.778509999998,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,62799.296559999995,62799.296559999995 +9327600.0,19167.113999999998,15498.494999999999,45255.6054,37834.21125,37834.21125,37834.21125,32202.8945,54578.12295999999,33225.25696,23671.37598,36070.66816,6638.5650000000005,6638.5650000000005,6638.5650000000005,11503.205,19167.113999999998,19167.113999999998,30967.525549999995,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,57629.12275999999,57629.12275999999 +9331200.0,20212.674,19718.208,57577.16736,14819.342120000001,14819.342120000001,14819.342120000001,11271.011499999999,54297.48759999999,40627.56288,25774.1841,39274.947199999995,5262.465,5262.465,5262.465,4026.1234999999997,20212.674,20212.674,34578.301159999995,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,4895.847,4895.847,4895.847,4895.847,60772.77316,60772.77316 +9334800.0,24586.179,19703.055,57532.920600000005,9372.06226,9372.06226,9372.06226,6440.577499999999,57158.398479999996,49887.40032,32788.81725,49963.912000000004,14469.51,14469.51,14469.51,2850.5085,24586.179,24586.179,39215.88671,2567.9592000000002,3817.0652800000003,6657.6720000000005,1889.5107200000002,2403.1025600000003,4753.2119999999995,4753.2119999999995,4753.2119999999995,4753.2119999999995,73922.44486,73922.44486 +9338400.0,39626.634000000005,39701.523,115928.44716,4017.3179200000004,4017.3179200000004,4017.3179200000004,4708.0915,69886.83032000001,226802.88064000005,44041.86717,67111.41664,34177.338,34177.338,34177.338,7712.18,39626.634000000005,39626.634000000005,85290.22735999999,2229.8206499999997,3314.44946,5781.0165,1640.7075399999999,2086.6716699999997,15379.320000000002,15379.320000000002,15379.320000000002,15379.320000000002,119144.07956,119144.07956 +9342000.0,53062.125,50539.383,147574.99836,3977.273190000001,3977.273190000001,3977.273190000001,7836.1325,76193.04920000001,311776.2464,56931.060269999994,86752.09184,47830.632,47830.632,47830.632,45113.8695,53062.125,53062.125,83614.90436,7039.1268,10463.09712,18249.588,5179.4068800000005,6587.23224,30801.777000000002,30801.777000000002,30801.777000000002,30801.777000000002,159540.1225,159540.1225 +9345600.0,63684.047999999995,54922.53,160373.78759999998,5825.6352,5825.6352,5825.6352,9503.0285,79995.28632,322574.49408000003,70682.95416000001,107707.35872,50312.91299999999,50312.91299999999,50312.91299999999,52017.0875,63684.047999999995,63684.047999999995,104902.73780999999,24455.13525,36350.5961,63402.2025,17994.1489,22885.17595,44683.485,44683.485,44683.485,44683.485,191476.70432,191476.70432 +9349200.0,108569.409,75953.844,221785.22448,27655.24707,27655.24707,27655.24707,17877.464500000002,424052.28128000005,350479.01759999996,124491.92658000001,189701.98336,59218.029,59218.029,59218.029,65262.78850000001,108569.409,108569.409,239419.42387999996,35036.9064,52079.549759999994,90836.424,25780.24224,32787.62352,100252.323,100252.323,100252.323,100252.323,326432.02306,326432.02306 +9352800.0,430584.62399999995,200063.376,584185.05792,130061.72993,130061.72993,130061.72993,191536.534,1519108.70152,674654.97152,894102.1028100001,1362441.2995200001,257225.913,257225.913,257225.913,187674.6025,430584.62399999995,430584.62399999995,1351828.68184,225078.68115,334561.39765999996,583537.3215,165613.44934,210629.18557,449587.14599999995,449587.14599999995,449587.14599999995,449587.14599999995,1294624.4361599998,1294624.4361599998 +9356400.0,293175.201,401126.592,1171289.64864,201941.25919,201941.25919,201941.25919,504336.94499999995,1684296.6697599997,566534.1446400001,1145613.82341,1745697.25472,432900.7739999999,432900.7739999999,432900.7739999999,391304.48,293175.201,293175.201,293006.0562,534027.73905,793789.3800199999,1384516.3605,392938.92898,499744.47679,386983.188,386983.188,386983.188,386983.188,881480.10434,881480.10434 +9360000.0,832292.286,249694.002,729106.48584,167551.03717,167551.03717,167551.03717,177020.109,763572.4897599999,830611.1436800001,669526.52424,1020230.8940800001,379724.93700000003,379724.93700000003,379724.93700000003,175981.337,832292.286,832292.286,254937.93649999995,209980.593,312119.3012,544394.13,154504.2388,196500.35739999998,769998.3119999999,769998.3119999999,769998.3119999999,769998.3119999999,2502425.4732399997,2502425.4732399997 +9363600.0,362609.49,326045.007,952051.4204399999,170847.24063000001,170847.24063000001,170847.24063000001,156224.29200000002,244484.10144,1431498.3334400002,89264.91567000002,136022.72864000002,292989.339,292989.339,292989.339,201488.9275,362609.49,362609.49,125840.50426999999,354538.8711,526993.58124,919174.851,260870.57676,331778.35098,92533.413,92533.413,92533.413,92533.413,1090245.8666,1090245.8666 +9367200.0,35522.97,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,35522.97,35522.97,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,106805.72979999999,106805.72979999999 +9370800.0,30166.311,86439.546,252403.47432,97160.79824,97160.79824,97160.79824,124996.0495,79062.45728,27341.744640000004,53062.848509999996,80857.67392,17909.523,17909.523,17909.523,60120.784499999994,30166.311,30166.311,11445.71246,31846.466249999994,47337.21649999999,82564.91249999999,23432.708499999997,29802.001749999996,20891.298,20891.298,20891.298,20891.298,90700.04174,90700.04174 +9374400.0,26915.501999999997,7559.901,22074.910920000002,83436.22507,83436.22507,83436.22507,87018.057,84553.31288,23133.34976,41791.599149999995,63682.436799999996,33090.191999999995,33090.191999999995,33090.191999999995,29085.003499999995,26915.501999999997,26915.501999999997,9718.056659999998,26936.4933,40038.935719999994,69835.353,19819.93828,25207.23694,20759.340000000004,20759.340000000004,20759.340000000004,20759.340000000004,80925.94268,80925.94268 +9378000.0,14591.982,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14591.982,14591.982,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43873.22588,43873.22588 +9381600.0,20971.458,4620.795,13492.7214,56724.84356000001,56724.84356000001,56724.84356000001,51315.628,66711.488,15936.305920000003,29061.92163,44284.83296000001,9249.288,9249.288,9249.288,17829.9695,20971.458,20971.458,11900.555679999998,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13295.613000000001,13295.613000000001,13295.613000000001,13295.613000000001,63054.18371999999,63054.18371999999 +9385200.0,10261.158,3203.478,9354.15576,136590.77508999998,136590.77508999998,136590.77508999998,54309.19899999999,25692.233199999995,33638.19648,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,10261.158,10261.158,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,30851.881719999998,30851.881719999998 +9388800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +9392400.0,59887.716,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,72093.01296,22619.26976,55421.10084,84451.20128000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,59887.716,59887.716,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,39403.229999999996,39403.229999999996,39403.229999999996,39403.229999999996,180062.39943999998,180062.39943999998 +9396000.0,57597.19500000001,10411.305,30401.010599999998,143533.36888000002,143533.36888000002,143533.36888000002,125591.28399999999,88910.79968,40097.804800000005,84702.58944,129070.61248000001,22373.664,22373.664,22373.664,44862.503,57597.19500000001,57597.19500000001,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,45838.08900000001,45838.08900000001,45838.08900000001,45838.08900000001,173175.5663,173175.5663 +9399600.0,77732.74799999999,10544.784,30790.769279999997,145640.15147,145640.15147,145640.15147,127201.42749999999,91918.48144,40611.8848,91733.51901,139784.40992,23735.493,23735.493,23735.493,45437.66499999999,77732.74799999999,77732.74799999999,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,52963.30500000001,52963.30500000001,52963.30500000001,52963.30500000001,233716.46231999996,233716.46231999996 +9403200.0,93151.83,9350.985,27304.8762,129824.92105000002,129824.92105000002,129824.92105000002,120606.8395,113480.42136000001,35985.208320000005,93714.92025000001,142803.68800000002,25774.929,25774.929,25774.929,41894.3385,93151.83,93151.83,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,58663.191000000006,58663.191000000006,58663.191000000006,58663.191000000006,280076.5022,280076.5022 +9406800.0,86071.515,18026.900999999998,52638.550919999994,111362.38762000001,111362.38762000001,111362.38762000001,93388.3895,94166.85224,32002.203520000003,56832.040440000004,86601.20448000001,28435.302000000003,28435.302000000003,28435.302000000003,33359.297999999995,86071.515,86071.515,12525.494929999999,33983.78489999999,50514.16915999999,88106.109,25005.352839999996,31802.109819999998,29949.885000000002,29949.885000000002,29949.885000000002,29949.885000000002,258788.3551,258788.3551 +9410400.0,17277.864,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17277.864,17277.864,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51948.777760000004,51948.777760000004 +9414000.0,9261.369,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,9261.369,9261.369,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,27845.849459999998,27845.849459999998 +9417600.0,6141.644999999999,6344.184,18525.01728,12808.83538,12808.83538,12808.83538,11271.011499999999,9780.68016,3598.5164800000002,6336.15822,9655.098240000001,2179.653,2179.653,2179.653,4026.1234999999997,6141.644999999999,6141.644999999999,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,18465.879299999997,18465.879299999997 +9421200.0,6745.176000000001,12098.759999999998,35328.379199999996,7764.265740000001,7764.265740000001,7764.265740000001,6440.577499999999,32556.27136,17120.659200000002,3620.65977,5517.19584,2095.089,2095.089,2095.089,2300.6409999999996,6745.176000000001,6745.176000000001,24418.989529999995,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,20280.495840000003,20280.495840000003 +9424800.0,13799.73,18613.757999999998,54352.17335999999,2803.46077,2803.46077,2803.46077,1610.1435,46729.83456,38235.61664,14937.968009999999,22762.61792,3054.405,3054.405,3054.405,575.162,13799.73,13799.73,33215.743599999994,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,1973.16,1973.16,1973.16,1973.16,41491.1882,41491.1882 +9428400.0,18411.486,18916.923,55237.41516,3134.36805,3134.36805,3134.36805,1610.1435,49956.27104000001,40078.78656,25913.27844,39486.90048,12461.613000000001,12461.613000000001,12461.613000000001,575.162,18411.486,18411.486,33825.223509999996,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2851.995,2851.995,2851.995,2851.995,55357.20124,55357.20124 +9432000.0,32795.499,33938.643000000004,99100.83756000001,5583.27891,5583.27891,5583.27891,3220.2905,56955.14312,175723.34784,37824.82158,57637.82336000001,29501.283000000003,29501.283000000003,29501.283000000003,3834.9185,32795.499,32795.499,75323.84002,2462.4566999999997,3660.24428,6384.147,1811.88172,2304.37306,9905.193000000001,9905.193000000001,9905.193000000001,9905.193000000001,98605.13366,98605.13366 +9435600.0,51911.043000000005,49531.557,144632.14644,14828.137390000002,14828.137390000002,14828.137390000002,15451.408,84170.30232,318455.39136,54108.08466,82450.41472,51432.69899999999,51432.69899999999,51432.69899999999,33737.087999999996,51911.043000000005,51911.043000000005,87961.34542,5912.8785,8789.0194,15329.685,4350.7106,5533.2863,24358.035,24358.035,24358.035,24358.035,156079.20262,156079.20262 +9439200.0,501959.652,319302.31200000003,932362.75104,141288.83307000002,141288.83307000002,141288.83307000002,331397.1045,702624.88904,382046.2713600001,465578.09823,709452.34016,188046.99599999998,188046.99599999998,188046.99599999998,515476.7205,501959.652,501959.652,525098.1329099999,115929.83655,172320.39902,300558.83550000004,85301.45998,108487.42729,382434.498,382434.498,382434.498,382434.498,1509225.35368,1509225.35368 +9442800.0,583834.872,459867.19200000004,1342812.2006400002,242658.12934,242658.12934,242658.12934,530277.7585,780481.2636800001,769725.0969600001,543727.96191,828537.8467199999,325922.127,325922.127,325922.127,128307.242,583834.872,583834.872,95218.01445,235603.29465,350205.39106,610823.3565,173357.48593999998,220478.14487,461845.03800000006,461845.03800000006,461845.03800000006,461845.03800000006,1755396.84848,1755396.84848 +9446400.0,349660.43700000003,289450.137,845194.40004,146030.70053000003,146030.70053000003,146030.70053000003,220105.27700000003,434134.42808,420208.23040000006,512226.45558000007,780535.5513600002,324672.186,324672.186,324672.186,67567.451,349660.43700000003,349660.43700000003,131405.22212999998,76605.8634,113868.46856000001,198607.79400000002,56366.78344000001,71687.95612,212351.364,212351.364,212351.364,212351.364,1051312.38058,1051312.38058 +9450000.0,191440.95,43149.042,125995.20263999999,166539.95556,166539.95556,166539.95556,226050.02000000002,255940.49951999998,341868.94464,169750.79436000003,258667.87712000005,165739.79700000002,165739.79700000002,165739.79700000002,151885.4645,191440.95,191440.95,72446.48839999999,60234.196050000006,89533.29882,156162.7305,44320.470180000004,56367.30939000001,129701.71500000003,129701.71500000003,129701.71500000003,129701.71500000003,575599.123,575599.123 +9453600.0,53233.27500000001,49934.529,145808.82468,116562.25218000001,116562.25218000001,116562.25218000001,98218.8235,352353.89463999995,31358.54272,162601.83408,247774.22336000003,20780.900999999998,20780.900999999998,20780.900999999998,35943.9675,53233.27500000001,53233.27500000001,13173.368259999997,42700.3488,63470.641919999995,110704.60800000001,31419.02208,39959.09184,48602.343,48602.343,48602.343,48602.343,160054.7135,160054.7135 +9457200.0,21487.191,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,59948.20736000001,27245.94624,57235.543470000004,87216.06624,15032.913,15032.913,15032.913,30483.495,21487.191,21487.191,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64604.82094,64604.82094 +9460800.0,19767.168,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,50608.49392,23133.34976,42846.37455,65289.7136,12763.794,12763.794,12763.794,25882.213000000003,19767.168,19767.168,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17780.91,17780.91,17780.91,17780.91,59433.28512,59433.28512 +9464400.0,14548.568999999998,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32834.54286,50033.58912,10211.037,10211.037,10211.037,20705.7725,14548.568999999998,14548.568999999998,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43742.69745999999,43742.69745999999 +9468000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +9471600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +9475200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +9478800.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +9482400.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +9486000.0,34005.356999999996,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,74581.16022,113647.48224000001,22407.549,22407.549,22407.549,45437.66499999999,34005.356999999996,34005.356999999996,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,102242.77337999998,102242.77337999998 +9489600.0,33983.994000000006,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,33983.994000000006,33983.994000000006,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,28180.461000000003,28180.461000000003,28180.461000000003,28180.461000000003,102178.54196,102178.54196 +9493200.0,23598.729,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23598.729,23598.729,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70953.51186,70953.51186 +9496800.0,16877.643,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16877.643,16877.643,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,50745.44662,50745.44662 +9500400.0,8793.471000000001,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8793.471000000001,8793.471000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26439.03614,26439.03614 +9504000.0,3583.017,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3583.017,3583.017,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10772.937779999998,10772.937779999998 +9507600.0,2768.721,1506.897,4400.1392399999995,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2768.721,2768.721,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,8324.62114,8324.62114 +9511200.0,4108.086,7961.093999999999,23246.39448,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,11896.827519999999,4402.0044800000005,905.16615,1379.3008,773.7150000000001,773.7150000000001,773.7150000000001,575.162,4108.086,4108.086,5607.820269999999,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,12351.64524,12351.64524 +9514800.0,6160.14,17583.555,51343.980599999995,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,40492.118879999995,29228.597760000004,905.16615,1379.3008,1381.4370000000001,1381.4370000000001,1381.4370000000001,575.162,6160.14,6160.14,36975.667689999995,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,845.583,845.583,845.583,845.583,18521.4876,18521.4876 +9518400.0,14101.125,20227.674,59064.808079999995,4654.77353,4654.77353,4654.77353,3220.2905,51920.07616,43777.312000000005,20229.84159,30826.42528,9171.972,9171.972,9171.972,1150.3204999999998,14101.125,14101.125,36745.86513,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,3468.951,3468.951,3468.951,3468.951,42397.3825,42397.3825 +9522000.0,25854.569999999996,25939.419,75743.10347999999,13873.42528,13873.42528,13873.42528,11271.011499999999,62557.77632,109941.1488,36225.1932,55200.2944,24782.345999999998,24782.345999999998,24782.345999999998,4026.1234999999997,25854.569999999996,25854.569999999996,61965.62827,4228.9776,6286.03584,10964.016,3111.69216,3957.48768,7152.537,7152.537,7152.537,7152.537,77736.07379999998,77736.07379999998 +9525600.0,343019.361,137549.856,401645.57951999997,108789.62666000001,108789.62666000001,108789.62666000001,146044.8815,454728.28288,253631.04576,263101.20417,400916.12064000004,126151.40400000001,126151.40400000001,126151.40400000001,179715.01450000002,343019.361,343019.361,140980.83544999998,47024.9226,69898.77384,121916.466,34601.05416,44006.038680000005,205488.237,205488.237,205488.237,205488.237,1031344.87874,1031344.87874 +9529200.0,444186.53099999996,265933.07700000005,776524.58484,203174.95352,203174.95352,203174.95352,274975.2145,518567.61215999996,403480.66559999995,279026.10057,425182.62944000005,208105.776,208105.776,208105.776,63568.9005,444186.53099999996,444186.53099999996,56894.54628,78239.2041,116296.29844,202842.381,57568.59956,73216.44038,261887.95500000002,261887.95500000002,261887.95500000002,261887.95500000002,1335520.8365399998,1335520.8365399998 +9532800.0,286344.86100000003,165610.527,483582.73883999995,140399.05781,140399.05781,140399.05781,150970.39299999998,298154.12192,341659.9072,321985.83522,490645.08224,164240.12699999998,164240.12699999998,164240.12699999998,52510.3145,286344.86100000003,286344.86100000003,88198.57462,42525.34019999999,63210.50567999999,110250.88199999998,31290.250319999996,39795.31836,166093.46099999998,166093.46099999998,166093.46099999998,166093.46099999998,860943.5487400001,860943.5487400001 +9536400.0,164039.61,28434.279000000002,83028.09468000001,161884.75061000002,161884.75061000002,161884.75061000002,158841.4695,191965.10992,242607.58208000005,129338.67219,197087.50048000002,126579.47400000002,126579.47400000002,126579.47400000002,81615.5935,164039.61,164039.61,25927.732609999995,49689.263699999996,73859.10307999999,128824.01699999999,36561.48292,46499.33566,116210.16300000002,116210.16300000002,116210.16300000002,116210.16300000002,493212.4273999999,493212.4273999999 +9540000.0,48558.642,47819.687999999995,139633.48896,114156.98800000001,114156.98800000001,114156.98800000001,98218.8235,359309.70256,31358.54272,156192.99885,238008.3792,21008.877,21008.877,21008.877,35084.777,48558.642,48558.642,13173.368259999997,43867.02825,65204.8173,113729.33250000002,32277.467700000005,41050.87335000001,44886.084,44886.084,44886.084,44886.084,145999.65028,145999.65028 +9543600.0,21450.525,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,60635.85567999999,27245.94624,59090.22,90042.24,15032.913,15032.913,15032.913,30483.495,21450.525,21450.525,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64494.578499999996,64494.578499999996 +9547200.0,19416.288,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,49709.268240000005,23133.34976,42620.369190000005,64945.32448000001,12763.794,12763.794,12763.794,25882.213000000003,19416.288,19416.288,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,58378.30592,58378.30592 +9550800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32684.56653,49805.05376,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +9554400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +9558000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +9561600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +9565200.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +9568800.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +9572400.0,32710.221000000005,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,73514.37744,112021.90848000001,22407.549,22407.549,22407.549,45437.66499999999,32710.221000000005,32710.221000000005,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,98348.73114,98348.73114 +9576000.0,33693.695999999996,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,33693.695999999996,33693.695999999996,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,101305.71264,101305.71264 +9579600.0,23495.31,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23495.31,23495.31,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70642.5654,70642.5654 +9583200.0,17102.934,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17102.934,17102.934,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51422.82156,51422.82156 +9586800.0,8914.842,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8914.842,8914.842,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26803.95828,26803.95828 +9590400.0,3689.5769999999998,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3689.5769999999998,3689.5769999999998,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,11093.328179999999,11093.328179999999 +9594000.0,3510.129,4927.539,14388.413879999998,7319.33334,7319.33334,7319.33334,6440.577499999999,5713.34208,2101.2761600000003,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,3510.129,3510.129,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,10553.787859999999,10553.787859999999 +9597600.0,4717.977,10449.273,30511.87716,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,21494.3536,17990.08,905.16615,1379.3008,1134.1889999999999,1134.1889999999999,1134.1889999999999,575.162,4717.977,4717.977,21735.764700000003,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,14185.38418,14185.38418 +9601200.0,7239.8730000000005,19032.285,55574.2722,2030.4416000000003,2030.4416000000003,2030.4416000000003,1610.1435,48213.4924,39184.79872,3631.76877,5534.12384,3053.664,3053.664,3053.664,575.162,7239.8730000000005,7239.8730000000005,37088.91432999999,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2054.646,2054.646,2054.646,2054.646,21767.88482,21767.88482 +9604800.0,17254.923,21381.557999999997,62434.149359999996,4744.948450000001,4744.948450000001,4744.948450000001,3220.2905,54957.99744,57061.99872000001,26190.568740000002,39909.43808,14313.864000000001,14313.864000000001,14313.864000000001,1150.3204999999998,17254.923,17254.923,39144.2129,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,3668.6669999999995,3668.6669999999995,3668.6669999999995,3668.6669999999995,51879.80181999999,51879.80181999999 +9608400.0,52806.795,35852.945999999996,104690.60231999999,16250.520990000003,16250.520990000003,16250.520990000003,11271.011499999999,217436.81888,176053.37088,45723.639359999994,69674.11712,37630.065,37630.065,37630.065,4026.1234999999997,52806.795,52806.795,119893.26154,4622.435100000001,6870.87884,11984.091,3401.19916,4325.686180000001,33892.187999999995,33892.187999999995,33892.187999999995,33892.187999999995,158772.43029999998,158772.43029999998 +9612000.0,202747.026,86052.01800000001,251271.89256,111831.10917000001,111831.10917000001,111831.10917000001,90168.099,695606.2544,205896.28608000002,244822.39277999997,373062.69376,77349.729,77349.729,77349.729,32974.333,202747.026,202747.026,886458.04091,34722.711449999995,51612.52417999999,90021.8445,25549.05682,32493.59911,167638.701,167638.701,167638.701,167638.701,609592.72484,609592.72484 +9615600.0,148694.904,209400.25799999997,611448.75336,176267.43871,176267.43871,176267.43871,149743.45400000003,948248.63728,134160.28992,621041.5400700001,946349.0134400001,147384.303,147384.303,147384.303,53489.9085,148694.904,148694.904,117014.7459,121511.64779999999,180617.31352,315030.198,89408.57048,113710.90004000001,202160.373,202160.373,202160.373,202160.373,447076.01136,447076.01136 +9619200.0,361542.42,36863.556000000004,107641.58352,144852.21982000003,144852.21982000003,144852.21982000003,115930.41599999998,252903.84552,122604.54400000002,167809.39035000003,255709.54720000003,85356.897,85356.897,85356.897,41411.5415,361542.42,361542.42,61754.26244,43724.330550000006,64992.708620000005,113359.37550000001,32172.470380000002,40917.33649,170740.086,170740.086,170740.086,170740.086,1087037.5428,1087037.5428 +9622800.0,234282.34500000003,139307.043,406776.56555999996,163211.49328,163211.49328,163211.49328,136862.2955,149824.8204,765252.23104,77156.52105,117571.8416,174933.903,174933.903,174933.903,48888.6265,234282.34500000003,234282.34500000003,59161.13852999999,110050.488,163581.2192,285316.08,80975.42079999999,102985.5184,52954.41900000001,52954.41900000001,52954.41900000001,52954.41900000001,704408.9173,704408.9173 +9626400.0,27613.319999999996,8661.812999999998,25292.493959999996,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,27613.319999999996,27613.319999999996,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,83024.04879999999,83024.04879999999 +9630000.0,23004.798,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,57050.668000000005,27245.94624,47973.77214,73102.89088,16148.151000000002,16148.151000000002,16148.151000000002,30483.495,23004.798,23004.798,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,69167.75932,69167.75932 +9633600.0,20427.96,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,68455.59232,23133.34976,40732.447770000006,62068.49184000001,25784.361,25784.361,25784.361,25882.213000000003,20427.96,20427.96,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,61420.066399999996,61420.066399999996 +9637200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +9640800.0,14173.746,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,52845.97896000001,15936.305920000003,28384.040790000003,43251.871680000004,8792.835,8792.835,8792.835,17829.9695,14173.746,14173.746,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13285.635,13285.635,13285.635,13285.635,42615.72963999999,42615.72963999999 +9644400.0,9690.834,3203.478,9354.15576,72193.90013000001,72193.90013000001,72193.90013000001,38643.472,25692.233199999995,26320.341120000005,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +9648000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +9651600.0,55982.883,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,74597.13488,22619.26976,61041.15843,93015.09856000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,55982.883,55982.883,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,53685.801,53685.801,53685.801,53685.801,168321.86821999997,168321.86821999997 +9655200.0,45043.013999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,88054.36368,40097.804800000005,83883.35381999999,127822.25344,22123.911,22123.911,22123.911,44862.503,45043.013999999996,45043.013999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,44100.335999999996,44100.335999999996,44100.335999999996,44100.335999999996,135429.32876,135429.32876 +9658800.0,56236.914,10544.784,30790.769279999997,144821.90239000003,144821.90239000003,144821.90239000003,127201.42749999999,103092.42208,40611.8848,87323.76765000001,133064.7888,22523.648999999998,22523.648999999998,22523.648999999998,45437.66499999999,56236.914,56236.914,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,50220.267,50220.267,50220.267,50220.267,169085.65475999998,169085.65475999998 +9662400.0,69886.071,12058.454999999998,35210.688599999994,128818.68681000003,128818.68681000003,128818.68681000003,112710.12550000001,119993.97192,35985.208320000005,95373.52293,145331.08256,21550.977000000003,21550.977000000003,21550.977000000003,40261.221,69886.071,69886.071,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,51656.472,51656.472,51656.472,51656.472,210124.12013999998,210124.12013999998 +9666000.0,60250.29,7741.74,22605.8808,107094.43910000002,107094.43910000002,107094.43910000002,93388.3895,72024.14768,29867.297280000003,55609.789619999996,84738.72704,17362.920000000002,17362.920000000002,17362.920000000002,33359.297999999995,60250.29,60250.29,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,28078.86,28078.86,28078.86,28078.86,181152.5386,181152.5386 +9669600.0,17114.148,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17114.148,17114.148,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51456.53832,51456.53832 +9673200.0,8671.335000000001,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8671.335000000001,8671.335000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26071.8139,26071.8139 +9676800.0,4295.601000000001,1151.559,3362.55228,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,4295.601000000001,4295.601000000001,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,12915.440340000001,12915.440340000001 +9680400.0,4352.421,5701.128,16647.29376,7319.33334,7319.33334,7319.33334,6440.577499999999,5675.84344,2056.2982400000005,3620.65977,5517.19584,1512.033,1512.033,1512.033,2300.6409999999996,4352.421,4352.421,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,13086.279139999999,13086.279139999999 +9684000.0,4152.915,9475.695,27669.0294,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,14129.944239999999,513.5360000000001,905.16615,1379.3008,1064.5980000000002,1064.5980000000002,1064.5980000000002,575.162,4152.915,4152.915,14271.35177,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,12486.4311,12486.4311 +9687600.0,5254.455,15214.014,44424.92088,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,36251.87592,15113.90848,945.2793,1440.4256,1330.959,1330.959,1330.959,575.162,5254.455,5254.455,26768.352259999996,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,15798.3947,15798.3947 +9691200.0,8724.096000000001,16276.983,47528.79036,3800.8224100000007,3800.8224100000007,3800.8224100000007,3220.2905,41122.14976,33029.81952,15777.47514,24041.86688,6607.040999999999,6607.040999999999,6607.040999999999,1150.3204999999998,8724.096000000001,8724.096000000001,29038.667449999994,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2653.4730000000004,2653.4730000000004,2653.4730000000004,2653.4730000000004,26230.44864,26230.44864 +9694800.0,31920.603000000003,17197.902000000002,50217.87384,14368.634390000001,14368.634390000001,14368.634390000001,11271.011499999999,154860.90936000002,36307.822080000005,25274.283929999998,38513.194559999996,14972.859,14972.859,14972.859,4026.1234999999997,31920.603000000003,31920.603000000003,60266.12058999999,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,21899.232000000004,21899.232000000004,21899.232000000004,21899.232000000004,95974.61302,95974.61302 +9698400.0,135074.877,58972.842000000004,172200.69864000002,106923.05954000002,106923.05954000002,106923.05954000002,90168.099,471899.41296,65720.75968,155224.54038000002,236532.63296000005,43582.284,43582.284,43582.284,32949.0315,135074.877,135074.877,639721.1111199999,32674.525199999996,48568.05967999999,84711.73199999999,24041.99632,30576.90136,116763.456,116763.456,116763.456,116763.456,406125.13018,406125.13018 +9702000.0,137186.274,199689.83400000003,583094.31528,175297.56585,175297.56585,175297.56585,149743.45400000003,827717.5663999999,96572.69696000002,584139.57693,890117.45056,110281.88399999999,110281.88399999999,110281.88399999999,53489.9085,137186.274,137186.274,97444.80394999999,119434.2975,177529.49899999998,309644.47500000003,87880.051,111766.9105,190447.992,190447.992,190447.992,190447.992,412473.39716,412473.39716 +9705600.0,388229.84699999995,31215.839999999997,91150.25279999999,143699.83188,143699.83188,143699.83188,116281.95599999999,231178.15784000003,143885.552,184146.72045,280604.5264,95572.68000000001,95572.68000000001,95572.68000000001,41411.5415,388229.84699999995,388229.84699999995,73345.61208,46945.39275,69780.5591,121710.2775,34542.5359,43931.61445,197258.724,197258.724,197258.724,197258.724,1167277.7399799998,1167277.7399799998 +9709200.0,227273.08500000002,221946.22499999998,648082.977,161349.15082,161349.15082,161349.15082,136862.2955,154500.48792,745018.4992,79356.7551,120924.5792,161930.553,161930.553,161930.553,48888.6265,227273.08500000002,227273.08500000002,70994.75825,122694.9849,182376.24916,318098.109,90279.27284,114818.26982,55844.916000000005,55844.916000000005,55844.916000000005,55844.916000000005,683334.4089,683334.4089 +9712800.0,26804.666999999998,9295.562999999998,27143.043959999995,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,26804.666999999998,26804.666999999998,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,80592.69877999999,80592.69877999999 +9716400.0,30111.182999999997,51586.455,150632.4486,96981.18507,96981.18507,96981.18507,94222.954,59525.30376,27321.192320000002,47973.77214,73102.89088,16665.345,16665.345,16665.345,30483.495,30111.182999999997,30111.182999999997,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,21005.913,21005.913,21005.913,21005.913,90534.29022,90534.29022 +9720000.0,37551.678,17187.288,50186.88096,82355.96974,82355.96974,82355.96974,73050.908,83110.57591999999,32520.613760000004,40732.447770000006,62068.49184000001,31562.823000000004,31562.823000000004,31562.823000000004,27836.829999999998,37551.678,37551.678,9718.056659999998,26025.36075,38684.6103,67473.1575,19149.5247,24354.59685,20169.837,20169.837,20169.837,20169.837,112905.37851999998,112905.37851999998 +9723600.0,18486.978,6447.407999999999,18826.43136,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38788.79528,18703.34016,32585.957250000003,49654.79200000001,10345.191,10345.191,10345.191,20705.7725,18486.978,18486.978,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14437.698,14437.698,14437.698,14437.698,55584.180519999994,55584.180519999994 +9727200.0,30046.670999999995,8320.827,24296.81484,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,83216.20399999998,15936.305920000003,37378.20597,56957.266240000004,10901.664,10901.664,10901.664,17829.9695,30046.670999999995,30046.670999999995,15833.572429999998,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,15181.851,15181.851,15181.851,15181.851,90340.32413999998,90340.32413999998 +9730800.0,10132.062,3203.478,9354.15576,136400.49852,136400.49852,136400.49852,62529.8765,26958.187519999996,33476.8896,21723.97311,33103.19712,9271.065,9271.065,9271.065,13803.846000000001,10132.062,10132.062,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,30463.733079999998,30463.733079999998 +9734400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +9738000.0,128555.37899999999,6092.9220000000005,17791.33224,81479.60106000002,81479.60106000002,81479.60106000002,70846.3665,107421.00088,22619.26976,114174.75195,173980.5744,17463.506999999998,17463.506999999998,17463.506999999998,25307.054500000002,128555.37899999999,128555.37899999999,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,100683.951,100683.951,100683.951,100683.951,386523.17285999993,386523.17285999993 +9741600.0,67548.384,15782.460000000003,46084.783200000005,143321.48875000002,143321.48875000002,143321.48875000002,125591.28399999999,140635.0548,41572.784640000005,109088.96480999999,166230.80352,30132.521999999997,30132.521999999997,30132.521999999997,45028.34,67548.384,67548.384,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,52056.951,52056.951,52056.951,52056.951,203095.47456,203095.47456 +9745200.0,94257.807,25591.295999999995,74726.58432,146909.74727,146909.74727,146909.74727,129226.6815,174460.62096,74807.0176,123885.84369,188778.42848,38157.972,38157.972,38157.972,50053.811499999996,94257.807,94257.807,17060.589,45318.54015,67362.37326,117492.51150000001,33345.493740000005,42409.20177000001,59513.637,59513.637,59513.637,59513.637,283401.80637999997,283401.80637999997 +9748800.0,115490.769,69580.944,203176.35648000002,132395.53305,132395.53305,132395.53305,126160.90550000002,182769.72624,106361.83552000001,140013.3924,213353.74080000003,52071.132,52071.132,52071.132,45568.9885,115490.769,115490.769,15116.978629999998,40835.664000000004,60698.937600000005,105870.24,30046.982400000004,38214.11520000001,63787.74900000001,63787.74900000001,63787.74900000001,63787.74900000001,347242.24546,347242.24546 +9752400.0,91131.387,32499.477,94898.47283999999,110425.7748,110425.7748,110425.7748,93388.3895,89582.27704,93328.24832000001,65768.60787,100218.83104,44334.515999999996,44334.515999999996,44334.515999999996,33359.297999999995,91131.387,91131.387,12525.494929999999,33982.6509,50512.48356,88103.16900000001,25004.51844,31801.04862,29982.006,29982.006,29982.006,29982.006,274001.70358,274001.70358 +9756000.0,18797.997000000003,9425.619,27522.80748,75023.18098,75023.18098,75023.18098,66015.9325,44789.734000000004,21077.05152,37111.78317,56551.288640000006,11808.033,11808.033,11808.033,23581.572,18797.997000000003,18797.997000000003,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,56519.31098,56519.31098 +9759600.0,11049.819,8606.871,25132.063319999997,36596.67484,36596.67484,36596.67484,32202.8945,31538.890799999997,10596.86976,18103.308510000003,27585.993920000004,6359.013000000001,6359.013000000001,6359.013000000001,11503.205,11049.819,11049.819,11512.91778,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,33223.12246,33223.12246 +9763200.0,6710.969999999999,13406.202000000001,39146.109840000005,12808.83538,12808.83538,12808.83538,11271.011499999999,31936.19184,14088.272640000001,6336.15822,9655.098240000001,2741.463,2741.463,2741.463,4026.1234999999997,6710.969999999999,6710.969999999999,24794.751539999997,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,20177.649799999996,20177.649799999996 +9766800.0,7238.679,14449.767,42193.31964,7319.33334,7319.33334,7319.33334,6440.577499999999,37445.76464,26155.61792,9227.41554,14060.82368,4849.893,4849.893,4849.893,2300.6409999999996,7238.679,7238.679,25332.360429999997,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,2500.689,2500.689,2500.689,2500.689,21764.294859999998,21764.294859999998 +9770400.0,8124.474,13720.767,40064.63964,1913.6977200000001,1913.6977200000001,1913.6977200000001,1610.1435,33320.68648,25703.782400000004,14027.49369,21375.22848,6959.169,6959.169,6959.169,575.162,8124.474,8124.474,24004.89182,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2001.897,2001.897,2001.897,2001.897,24427.58516,24427.58516 +9774000.0,11397.015,13218.03,38596.647600000004,2324.31595,2324.31595,2324.31595,1610.1435,31937.7628,24196.956800000004,15800.316209999999,24076.672319999998,11972.954999999998,11972.954999999998,11972.954999999998,575.162,11397.015,11397.015,22973.31036,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,1915.269,1915.269,1915.269,1915.269,34267.02509999999,34267.02509999999 +9777600.0,16934.556,17259.384,50397.40128,4168.46551,4168.46551,4168.46551,3220.2905,36249.84944,46911.05664,21624.368850000003,32951.419200000004,14880.696,14880.696,14880.696,2435.7200000000003,16934.556,16934.556,37715.71986,1956.0203999999999,2907.46736,5071.164,1439.2446400000001,1830.44872,3388.1939999999995,3388.1939999999995,3388.1939999999995,3388.1939999999995,50916.565039999994,50916.565039999994 +9781200.0,41890.716,29925.618000000002,87382.80456,15380.379410000001,15380.379410000001,15380.379410000001,11271.011499999999,194446.77704000002,111542.97856000002,34750.39134,52952.97728000001,18771.912,18771.912,18771.912,6429.094,41890.716,41890.716,93820.56996000001,4933.22805,7332.847619999999,12789.850499999999,3629.88138,4616.526989999999,33020.019,33020.019,33020.019,33020.019,125951.41944,125951.41944 +9784800.0,144891.94199999998,70921.992,207092.21663999997,107230.97132000001,107230.97132000001,107230.97132000001,90168.099,523414.68952,125689.52448000001,196839.36636000004,299945.70112000004,58232.174999999996,58232.174999999996,58232.174999999996,33515.349,144891.94199999998,144891.94199999998,681580.87686,32633.267849999997,48506.73394,84604.76849999999,24011.639059999998,30538.29263,138751.56600000002,138751.56600000002,138751.56600000002,138751.56600000002,435641.77228,435641.77228 +9788400.0,138947.952,193913.109,566226.27828,175216.14957000004,175216.14957000004,175216.14957000004,149743.45400000003,816825.25976,106810.23296000001,602619.85728,918277.87776,119452.938,119452.938,119452.938,56311.741500000004,138947.952,138947.952,101421.93320999999,129098.31434999999,191894.28453999996,334699.33349999995,94990.85845999999,120810.52132999999,192679.398,192679.398,192679.398,192679.398,417770.1756799999,417770.1756799999 +9792000.0,375806.26800000004,42848.751,125118.35291999999,141024.97904,141024.97904,141024.97904,116615.3345,226293.61688,103745.65248,178589.55912,272136.47104,98803.365,98803.365,98803.365,41411.5415,375806.26800000004,375806.26800000004,75978.60127,48049.5645,71421.82179999999,124572.945,35354.9882,44964.9011,199047.73200000002,199047.73200000002,199047.73200000002,199047.73200000002,1129924.17912,1129924.17912 +9795600.0,172330.824,178559.157,521392.73844,159771.96477,159771.96477,159771.96477,136862.2955,125175.8448,521247.1673600001,76939.06479,117240.47968,112924.74600000001,112924.74600000001,112924.74600000001,48888.6265,172330.824,172330.824,55816.41363999999,77226.1209,114790.43156,200215.869,56823.17044,72268.39462,44549.43,44549.43,44549.43,44549.43,518141.34416,518141.34416 +9799200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +9802800.0,21522.9,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15453.678,15453.678,15453.678,30483.495,21522.9,21522.9,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64712.186,64712.186 +9806400.0,19120.947,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,60704.73264,23133.34976,40732.447770000006,62068.49184000001,20453.670000000002,20453.670000000002,20453.670000000002,25882.213000000003,19120.947,19120.947,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,57490.31398,57490.31398 +9810000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +9813600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,41369.427039999995,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +9817200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,15152.01024,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +9820800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +9824400.0,36364.908,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,62731.37615999999,22619.26976,42537.89694,64819.652480000004,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,36364.908,36364.908,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,33219.104999999996,33219.104999999996,33219.104999999996,33219.104999999996,109337.15672,109337.15672 +9828000.0,39247.89,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,88406.31128,40097.804800000005,80442.33624,122578.79808,22123.911,22123.911,22123.911,44862.503,39247.89,39247.89,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,44524.47,44524.47,44524.47,44524.47,118005.32259999998,118005.32259999998 +9831600.0,46925.838,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,91319.82304,40611.8848,89816.32296000002,136862.96832,22407.549,22407.549,22407.549,45437.66499999999,46925.838,46925.838,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,50739.792,50739.792,50739.792,50739.792,141090.35292,141090.35292 +9835200.0,58709.11200000001,10266.458999999999,29978.060279999998,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,116601.39912000002,35985.208320000005,89627.43615000001,136575.14080000002,20508.966,20508.966,20508.966,40261.221,58709.11200000001,58709.11200000001,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,56159.526,56159.526,56159.526,56159.526,176518.73008,176518.73008 +9838800.0,59901.231,7741.74,22605.8808,106632.20513000002,106632.20513000002,106632.20513000002,93388.3895,69605.66352,39674.38784,55270.05708,84221.03936,17392.488,17392.488,17392.488,33359.297999999995,59901.231,59901.231,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,28719.747,28719.747,28719.747,28719.747,180103.03454,180103.03454 +9842400.0,17261.091,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17261.091,17261.091,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51898.346939999996,51898.346939999996 +9846000.0,8785.761,2760.8759999999997,8061.757919999999,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8785.761,8785.761,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26415.85474,26415.85474 +9849600.0,4946.139,6027.407999999999,17600.03136,12808.83538,12808.83538,12808.83538,11271.011499999999,11073.68536,3598.5164800000002,6336.15822,9655.098240000001,2049.837,2049.837,2049.837,4026.1234999999997,4946.139,4946.139,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,14871.391259999999,14871.391259999999 +9853200.0,4695.753,10144.044,29620.60848,7319.33334,7319.33334,7319.33334,6440.577499999999,20928.38168,14030.83712,3620.65977,5517.19584,1979.9759999999999,1979.9759999999999,1979.9759999999999,2300.6409999999996,4695.753,4695.753,22280.11721,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,14118.56402,14118.56402 +9856800.0,4941.399,15997.635,46713.0942,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,33918.70247999999,27851.396480000003,905.16615,1379.3008,1486.9650000000001,1486.9650000000001,1486.9650000000001,575.162,4941.399,4941.399,28679.370069999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,1183.407,1183.407,1183.407,1183.407,14857.139659999999,14857.139659999999 +9860400.0,7928.619000000001,17128.989,50016.647880000004,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,42448.7408,35885.721600000004,9744.85344,14849.30048,9198.822,9198.822,9198.822,575.162,7928.619000000001,7928.619000000001,31006.342249999994,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2599.839,2599.839,2599.839,2599.839,23838.71446,23838.71446 +9864000.0,11893.931999999999,17418.516000000003,50862.06672,4007.27316,4007.27316,4007.27316,3220.2905,43903.134399999995,63172.41344,22070.139210000005,33630.68832000001,16333.743,16333.743,16333.743,1150.3204999999998,11893.931999999999,11893.931999999999,44176.93995,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,3019.4939999999997,3019.4939999999997,3019.4939999999997,3019.4939999999997,35761.088879999996,35761.088879999996 +9867600.0,39684.46799999999,36390.693,106260.82355999999,14527.91791,14527.91791,14527.91791,11271.011499999999,168706.504,159886.97472000003,30427.753859999997,46366.10112,31864.466999999997,31864.466999999997,31864.466999999997,4026.1234999999997,39684.46799999999,39684.46799999999,100036.57143999999,4725.661499999999,7024.316599999999,12251.715,3477.1533999999997,4422.285699999999,27302.271,27302.271,27302.271,27302.271,119317.96711999999,119317.96711999999 +9871200.0,159918.963,82895.997,242056.31123999998,107170.39751,107170.39751,107170.39751,90168.099,542301.3196,212615.05599999998,184358.15853,280926.71775999997,73799.076,73799.076,73799.076,33994.7335,159918.963,159918.963,676165.2112799999,33005.68965,49060.30906,85570.3065,24285.667940000003,30886.805870000004,137453.57700000002,137453.57700000002,137453.57700000002,137453.57700000002,480823.01541999995,480823.01541999995 +9874800.0,141326.76,207869.124,606977.84208,175033.8095,175033.8095,175033.8095,149743.45400000003,914571.99112,133641.9776,626205.76641,954218.3107200001,137073.6,137073.6,137073.6,68540.276,141326.76,141326.76,97963.24018,122675.30595,182346.99798,318047.0895,90264.79302,114799.85421,199227.024,199227.024,199227.024,199227.024,424922.45839999994,424922.45839999994 +9878400.0,459180.46499999997,46657.896,136241.05632,145060.03809000002,145060.03809000002,145060.03809000002,118016.11850000001,304133.36504,217668.80512000003,214974.13749000002,327579.63808000006,133598.421,133598.421,133598.421,41709.724,459180.46499999997,459180.46499999997,86361.46246000001,52377.43904999999,77854.86002,135793.36049999998,38539.448979999994,49014.93679,300661.73699999996,300661.73699999996,300661.73699999996,300661.73699999996,1380602.5980999998,1380602.5980999998 +9882000.0,266766.273,191602.81199999998,559480.21104,161614.51889,161614.51889,161614.51889,136862.2955,188808.36800000002,1045071.07776,82795.78272,126165.00224,238100.865,238100.865,238100.865,110729.90599999999,266766.273,266766.273,86161.15963000001,175659.66989999998,261104.00315999993,455413.9589999999,129250.81883999998,164382.75282,69205.959,69205.959,69205.959,69205.959,802077.26082,802077.26082 +9885600.0,30585.045,9961.308,29087.019360000002,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,32007.904640000004,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,30585.045,30585.045,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24242.178,24242.178,24242.178,24242.178,91959.03529999999,91959.03529999999 +9889200.0,31815.765,80479.26000000001,234999.43920000002,96981.18507,96981.18507,96981.18507,103143.075,64578.328720000005,29421.717760000003,47973.77214,73102.89088,17443.134000000002,17443.134000000002,17443.134000000002,30483.495,31815.765,31815.765,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,21202.122000000003,21202.122000000003,21202.122000000003,21202.122000000003,95659.40009999998,95659.40009999998 +9892800.0,41672.709,15147.402,44230.41384,82516.51089,82516.51089,82516.51089,73219.32449999999,88357.34288,38444.34944,40732.447770000006,62068.49184000001,33119.712,33119.712,33119.712,28553.041999999994,41672.709,41672.709,9718.056659999998,26390.2941,39227.05444,68419.281,19418.043560000002,24696.10238,20665.176,20665.176,20665.176,20665.176,125295.94506,125295.94506 +9896400.0,21341.508,7459.200000000001,21780.864,65880.60160000001,65880.60160000001,65880.60160000001,57965.20799999999,41155.648,23056.44992,32585.957250000003,49654.79200000001,11613.056999999999,11613.056999999999,11613.056999999999,20705.7725,21341.508,21341.508,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14590.782,14590.782,14590.782,14590.782,64166.80072,64166.80072 +9900000.0,49160.903999999995,18332.013,53529.47796,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,103305.26088,18855.59488,51460.86792,78416.56064,14998.437000000002,14998.437000000002,14998.437000000002,17829.9695,49160.903999999995,49160.903999999995,58356.300469999995,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,15897.324,15897.324,15897.324,15897.324,147810.45135999998,147810.45135999998 +9903600.0,11637.897,4506.546,13159.11432,136529.27739,136529.27739,136529.27739,76692.756,45298.228639999994,34035.78432,21972.8775,33482.48,16529.904,16529.904,16529.904,29967.164500000003,11637.897,11637.897,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9463.956,9463.956,9463.956,9463.956,34991.276979999995,34991.276979999995 +9907200.0,11421.429,4499.286,13137.91512,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29086.06744,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,11421.429,11421.429,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,34340.42986,34340.42986 +9910800.0,214410.102,37553.297999999995,109655.63016,85605.55135000001,85605.55135000001,85605.55135000001,70846.3665,215334.91527999996,60754.96448000001,188784.02276999998,287670.89184,52914.07800000001,52914.07800000001,52914.07800000001,30237.395999999997,214410.102,214410.102,9502.102089999998,26416.1331,39265.46204,68486.27100000001,19437.05596,24720.282580000003,142068.834,142068.834,142068.834,142068.834,644659.70668,644659.70668 +9914400.0,127669.176,53381.435999999994,155873.79312,148478.5247,148478.5247,148478.5247,126210.238,216524.89119999998,114925.14624,147184.86047999997,224281.69215999998,78238.584,78238.584,78238.584,50569.379,127669.176,127669.176,16844.63443,46181.7936,68645.53024,119730.576,33980.67776,43217.03648,71805.246,71805.246,71805.246,71805.246,383858.65583999996,383858.65583999996 +9918000.0,182679.30899999998,78917.94,230440.3848,152873.68514000002,152873.68514000002,152873.68514000002,143428.9535,247668.04607999997,220008.88640000005,199234.25424,303595.05408000003,138657.62099999998,138657.62099999998,138657.62099999998,87905.66750000001,182679.30899999998,182679.30899999998,17060.589,61359.51285,91205.99194,159080.21850000002,45148.481060000006,57420.383630000004,88406.043,88406.043,88406.043,88406.043,549255.78906,549255.78906 +9921600.0,228105.87900000002,141681.28499999997,413709.35219999996,138241.16009000002,138241.16009000002,138241.16009000002,142287.4775,311568.1172,401326.24064,256223.31798000002,390435.53216000006,188153.568,188153.568,188153.568,96049.98199999999,228105.87900000002,228105.87900000002,71597.13859999999,86793.03899999999,129010.88759999997,225018.98999999996,63862.53239999999,81221.1402,106225.93500000001,106225.93500000001,106225.93500000001,106225.93500000001,685838.34286,685838.34286 +9925200.0,181535.001,88266.387,257737.85004,114290.3619,114290.3619,114290.3619,113221.437,197303.71672,193670.08192000003,135358.92426,206261.21792,110544.348,110544.348,110544.348,35398.0935,181535.001,181535.001,56084.66253,34800.106949999994,51727.56637999999,90222.49949999999,25606.004619999996,32566.026009999994,97927.42499999999,97927.42499999999,97927.42499999999,97927.42499999999,545815.23634,545815.23634 +9928800.0,22855.284,21369.135000000002,62397.8742,75023.18098,75023.18098,75023.18098,66015.9325,82952.0316,53767.33888,41690.879160000004,63528.95872,16720.938,16720.938,16720.938,23581.572,22855.284,22855.284,37946.63352999999,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,18068.19,18068.19,18068.19,18068.19,68718.22056,68718.22056 +9932400.0,19959.258,19343.634,56483.41127999999,37257.93995,37257.93995,37257.93995,32202.8945,61603.018079999994,55164.309120000005,36171.09237,55117.85504,17125.826999999997,17125.826999999997,17125.826999999997,11503.205,19959.258,19959.258,34260.8604,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,10022.349,10022.349,10022.349,10022.349,60010.83572,60010.83572 +9936000.0,21556.107,26410.452,77118.51984000001,13575.863510000001,13575.863510000001,13575.863510000001,11271.011499999999,50803.11776,118300.22016000001,28933.612680000002,44089.314560000006,23910.504,23910.504,23910.504,4026.1234999999997,21556.107,21556.107,58402.885319999994,4402.3742999999995,6543.776119999999,11413.562999999998,3239.2778799999996,4119.75274,7029.450000000001,7029.450000000001,7029.450000000001,7029.450000000001,64812.028379999996,64812.028379999996 +9939600.0,31036.032,41746.95,121901.094,8147.330070000001,8147.330070000001,8147.330070000001,6440.577499999999,52596.45328,234402.38656,36098.26563,55006.88096,40537.824,40537.824,40537.824,4168.8675,31036.032,31036.032,75143.96045,3593.5447499999996,5341.515899999999,9316.5975,2644.1391,3362.84805,12427.431,12427.431,12427.431,12427.431,93315.00287999999,93315.00287999999 +9943200.0,34418.562,40501.461,118264.26612,3108.4462200000007,3108.4462200000007,3108.4462200000007,1610.1435,51057.12856,267973.55136,35731.19046,54447.52832,41020.839,41020.839,41020.839,3777.634,34418.562,34418.562,72983.16415,1850.1817499999997,2750.1467,4796.7675,1361.3682999999999,1731.40465,15493.11,15493.11,15493.11,15493.11,103485.14308,103485.14308 +9946800.0,39800.364,42853.32,125131.69440000001,3342.12934,3342.12934,3342.12934,1610.1435,64909.643599999996,282875.49568000005,42225.19791,64343.15872000001,43152.954,43152.954,43152.954,30249.764999999996,39800.364,39800.364,76371.12612999999,1908.85005,2837.35242,4948.8705,1404.53658,1786.3065900000001,23155.92,23155.92,23155.92,23155.92,119666.42775999999,119666.42775999999 +9950400.0,47209.281,46115.208,134656.40736,5167.3127,5167.3127,5167.3127,6242.684,65836.81368,280366.36096,48189.81321,73432.09632,43291.776,43291.776,43291.776,33861.2645,47209.281,47209.281,75960.98224,4997.392199999999,7428.222479999999,12956.202,3677.09352,4676.57196,30527.784,30527.784,30527.784,30527.784,141942.57154,141942.57154 +9954000.0,79454.58600000001,52735.29299999999,153987.05555999998,21480.389590000002,21480.389590000002,21480.389590000002,15472.484999999997,335723.47264,283857.77472000004,81337.74579,123943.23168000001,46320.051,46320.051,46320.051,40231.799999999996,79454.58600000001,79454.58600000001,170225.38532999996,21232.635299999998,31560.608519999998,55047.573000000004,15623.02548,19869.55254,78273.93000000001,78273.93000000001,78273.93000000001,78273.93000000001,238893.45524,238893.45524 +9957600.0,299752.008,144298.42200000002,421351.39224,117527.75386,117527.75386,117527.75386,108639.503,1109573.25864,418792.67711999995,514173.44307000004,783502.38944,183113.442,183113.442,183113.442,50421.8995,299752.008,299752.008,1046900.58369,82045.6047,121954.20747999998,212710.827,60369.358519999994,76778.47946,287184.951,287184.951,287184.951,287184.951,901254.3707199999,901254.3707199999 +9961200.0,226592.352,259498.077,757734.38484,180918.97659,180918.97659,180918.97659,171243.506,1391911.51592,408336.9644800001,984977.92008,1500918.7353599998,321060.264,321060.264,321060.264,245524.727,226592.352,226592.352,181848.13465,256076.02844999998,380636.46697999997,663900.8145,188421.37402,239636.57971,285738.99,285738.99,285738.99,285738.99,681287.6716799999,681287.6716799999 +9964800.0,711306.537,135794.511,396519.97212,153572.54077000002,153572.54077000002,153572.54077000002,126748.51349999999,582774.00296,340440.60736,435730.93935000006,663970.9552000001,322772.83800000005,322772.83800000005,322772.83800000005,94421.53,711306.537,711306.537,178384.12657,112643.34255,167435.28942,292038.2955,82883.24958,105411.91809,651058.8570000001,651058.8570000001,651058.8570000001,651058.8570000001,2138661.65458,2138661.65458 +9968400.0,365409.441,271680.9,793308.228,167429.93839000002,167429.93839000002,167429.93839000002,140182.168,261094.55648,1486843.03296,91261.16916,139064.63872000002,344914.02900000004,344914.02900000004,344914.02900000004,245609.07,365409.441,365409.441,129708.90348,318647.01780000003,473643.22152,826121.8980000002,234461.26248000003,298190.66604000004,97766.98800000001,97766.98800000001,97766.98800000001,97766.98800000001,1098664.38594,1098664.38594 +9972000.0,42037.308,12234.249,35724.007079999996,111763.98266000001,111763.98266000001,111763.98266000001,98218.8235,65301.09296000001,39140.68032000001,55224.82413,84152.11296,17302.032,17302.032,17302.032,35084.777,42037.308,42037.308,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24629.871,24629.871,24629.871,24629.871,126392.17271999999,126392.17271999999 +9975600.0,50051.523,130172.193,380102.80356,100105.39033000001,100105.39033000001,100105.39033000001,122347.57499999998,118492.05824,61163.93280000001,59247.006629999996,90281.15295999999,28221.423000000003,28221.423000000003,28221.423000000003,122110.60399999999,50051.523,50051.523,11445.71246,31669.606799999994,47074.32911999999,82106.38799999999,23302.574879999996,29636.496239999997,23537.199,23537.199,23537.199,23537.199,150488.24581999998,150488.24581999998 +9979200.0,76350.198,30601.034999999996,89355.02219999999,86818.79800000001,86818.79800000001,86818.79800000001,146751.451,112044.06168,144411.49120000002,53486.07243,81502.58656,60745.041000000005,60745.041000000005,60745.041000000005,37090.347,76350.198,76350.198,29727.113129999998,33752.485349999995,50170.36094,87506.4435,24835.16206,31585.65913,28895.933999999997,28895.933999999997,28895.933999999997,28895.933999999997,229559.59532,229559.59532 +9982800.0,25218.272999999994,8599.977,25111.93284,66004.19122000001,66004.19122000001,66004.19122000001,57965.20799999999,46774.23024,25337.898879999997,32596.882709999998,49671.44032,14667.516,14667.516,14667.516,20705.7725,25218.272999999994,25218.272999999994,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14696.301,14696.301,14696.301,14696.301,75822.94081999999,75822.94081999999 +9986400.0,61579.701,43689.99,127574.7708,56724.84356000001,56724.84356000001,56724.84356000001,54639.388999999996,154359.76728,15936.305920000003,102668.07873,156446.59616,28174.694999999996,28174.694999999996,28174.694999999996,17829.9695,61579.701,61579.701,157149.39070999998,17993.5182,26745.920879999998,46649.862,13239.67512,16838.37876,17154.312,17154.312,17154.312,17154.312,185149.63434,185149.63434 +9990000.0,11529.774,22643.505,66119.0346,157383.42829000004,157383.42829000004,157383.42829000004,98186.5675,60308.786479999995,35761.42848,23010.2649,35063.2608,19075.089,19075.089,19075.089,97654.8895,11529.774,11529.774,47816.93149999999,33416.73225,49671.2909,86635.9725,24588.1141,31271.46055,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,34666.187159999994,34666.187159999994 +9993600.0,11052.882,4233.995999999999,12363.26832,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,11052.882,11052.882,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,33232.33188,33232.33188 +9997200.0,244692.30599999998,52630.236000000004,153680.28912,88576.30947,88576.30947,88576.30947,70846.3665,242185.4132,61669.46112000001,216925.04211,330552.44512,88019.79000000001,88019.79000000001,88019.79000000001,37018.555,244692.30599999998,244692.30599999998,9502.102089999998,28490.259599999998,42348.484639999995,73863.636,20963.20336,26661.255279999998,155300.16,155300.16,155300.16,155300.16,735708.2000399999,735708.2000399999 +10000800.0,119770.215,49784.931,145371.99852,148742.76131000003,148742.76131000003,148742.76131000003,129936.74750000001,208701.52208,96411.55328000002,158401.6854,241373.9968,76075.002,76075.002,76075.002,53550.7175,119770.215,119770.215,16844.63443,47948.64255,71271.80941999999,124311.29550000001,35280.72958,44870.45809,71692.63799999999,71692.63799999999,71692.63799999999,71692.63799999999,360109.11309999996,360109.11309999996 +10004400.0,178837.194,80297.44499999999,234468.53939999998,154557.83893,154557.83893,154557.83893,164956.26,259371.89664000002,176489.77856,208997.80461,318472.84512,125490.513,125490.513,125490.513,81644.745,178837.194,178837.194,28096.330729999998,60801.07455,90375.91821999999,157632.4155,44737.580780000004,56897.795690000006,92544.855,92544.855,92544.855,92544.855,537703.8299599999,537703.8299599999 +10008000.0,251726.193,139903.94400000002,408519.51648,141831.25011,141831.25011,141831.25011,201723.87550000002,335177.74799999996,471759.28064000007,280360.66338,427216.24896000006,204499.09199999995,204499.09199999995,204499.09199999995,100749.95700000001,251726.193,251726.193,78805.42383999999,96147.61155,142915.70902,249271.58550000002,70745.64998,89975.17229,128258.886,128258.886,128258.886,128258.886,756856.75362,756856.75362 +10011600.0,183101.418,85940.15400000001,250945.24968,115308.54566,115308.54566,115308.54566,145957.112,212883.00879999998,195787.22112,155332.93524,236697.80608,109248.144,109248.144,109248.144,35343.777,183101.418,183101.418,56523.93097,39904.812000000005,59315.300800000005,103456.92000000001,29362.059200000003,37343.0216,110370.045,110370.045,110370.045,110370.045,550524.93012,550524.93012 +10015200.0,23739.18,21508.884,62805.94128,75529.50526000002,75529.50526000002,75529.50526000002,66015.9325,82136.09599999999,52642.782080000004,43794.34899,66734.24608000001,16395.645,16395.645,16395.645,23581.572,23739.18,23739.18,37339.467229999995,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,18182.568,18182.568,18182.568,18182.568,71375.80119999999,71375.80119999999 +10018800.0,20932.188000000002,19248.606,56205.92952,37361.17143,37361.17143,37361.17143,32202.8945,61114.852479999994,55907.53280000001,36364.52904,55412.61568,16905.411,16905.411,16905.411,11503.205,20932.188000000002,20932.188000000002,33900.89442999999,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,9999.24,9999.24,9999.24,9999.24,62936.11192,62936.11192 +10022400.0,24080.61,29940.381,87425.91252,13649.15607,13649.15607,13649.15607,11271.011499999999,53143.35176,152559.29472,31195.13943,47535.450560000005,27632.721000000005,27632.721000000005,27632.721000000005,4026.1234999999997,24080.61,24080.61,70264.57619999998,4547.538449999999,6759.550979999999,11789.914499999999,3346.0900199999996,4255.59771,7967.241,7967.241,7967.241,7967.241,72402.3674,72402.3674 +10026000.0,33015.954,41735.769,121868.44547999998,8804.9973,8804.9973,8804.9973,6440.577499999999,52360.83263999999,245315.12448,37647.3867,57367.44640000001,40781.390999999996,40781.390999999996,40781.390999999996,5037.347000000001,33015.954,33015.954,75572.77194999998,3589.6486499999996,5335.72466,9306.4965,2641.27234,3359.20207,14195.901000000002,14195.901000000002,14195.901000000002,14195.901000000002,99267.96835999998,99267.96835999998 +10029600.0,37307.004,41604.051,121483.82892,3364.60795,3364.60795,3364.60795,1610.1435,53934.8528,277771.41568000003,39565.258949999996,60289.9184,42183.825,42183.825,42183.825,25166.743,37307.004,37307.004,75451.65133999998,1882.3144499999999,2797.90938,4880.0745,1385.01162,1761.47451,19285.307999999997,19285.307999999997,19285.307999999997,19285.307999999997,112169.72536,112169.72536 +10033200.0,42594.231,42560.418000000005,124276.42056,3382.0112700000004,3382.0112700000004,3382.0112700000004,4878.1565,64123.10656,279970.92736000003,46724.34291,71198.99872,42518.322,42518.322,42518.322,34195.178499999995,42594.231,42594.231,75969.93845999999,4034.1726000000003,5996.473840000001,10458.966,2968.3541600000003,3775.18868,29804.292,29804.292,29804.292,29804.292,128066.65453999999,128066.65453999999 +10036800.0,49391.538,46974.576,137165.76192000002,5249.0871400000005,5249.0871400000005,5249.0871400000005,7577.997000000001,67638.60552000001,286666.49024,54430.308450000004,82941.42240000001,45291.909,45291.909,45291.909,39578.014,49391.538,49391.538,77596.93538999998,19308.747600000002,28700.903840000003,50059.71600000001,14207.424160000002,18069.173680000004,36282.081,36282.081,36282.081,36282.081,148503.89092,148503.89092 +10040400.0,55371.654,49041.82800000001,143202.13776,14430.41699,14430.41699,14430.41699,15687.77,78694.71832,294388.03712,64847.980890000006,98815.97088000001,48879.369,48879.369,48879.369,43325.0405,55371.654,55371.654,93273.80764,22680.028349999997,33712.04214,58800.0735,16688.02086,21224.02653,39414.306000000004,39414.306000000004,39414.306000000004,39414.306000000004,166484.10636,166484.10636 +10044000.0,437043.483,257213.85600000003,751064.45952,109235.59691000001,109235.59691000001,109235.59691000001,219621.8465,634095.96384,192941.93792000003,384773.36226,586321.3139200001,175275.867,175275.867,175275.867,340020.8665,437043.483,437043.483,360704.77157000004,70611.36929999999,104958.13411999999,183066.51299999998,51956.01988,66078.29374,346957.26900000003,346957.26900000003,346957.26900000003,346957.26900000003,1314044.07222,1314044.07222 +10047600.0,672836.592,547907.2379999999,1599889.13496,222471.36076,222471.36076,222471.36076,503396.6875,965262.6012800001,889489.0688000001,665553.40005,1014176.6096000002,414810.204,414810.204,414810.204,159094.31650000002,672836.592,672836.592,138498.33191999997,256936.03379999998,381914.79591999995,666130.458,189054.16808,240441.37484,618963.741,618963.741,618963.741,618963.741,2022995.35328,2022995.35328 +10051200.0,572534.406,437522.142,1277564.65464,158698.71798000002,158698.71798000002,158698.71798000002,239102.2725,780080.61632,706328.7078399999,774763.14384,1180591.45728,535097.928,535097.928,535097.928,102375.5425,572534.406,572534.406,260880.33555999998,154299.48794999998,229353.80677999996,400035.70949999994,113533.94421999999,144393.84180999998,392709.29099999997,392709.29099999997,392709.29099999997,392709.29099999997,1721420.11404,1721420.11404 +10054800.0,375369.501,187251.55800000002,546774.54936,178473.61070000002,178473.61070000002,178473.61070000002,283012.7545,844280.9393599998,1345505.56608,518812.88508000004,790572.0153600001,561098.9610000001,561098.9610000001,561098.9610000001,520183.55549999996,375369.501,375369.501,278881.49601,375441.5529,558063.7403599999,973366.9890000001,276250.82164,351339.13222,321951.096,321951.096,321951.096,321951.096,1128610.96634,1128610.96634 +10058400.0,148904.96699999998,125528.805,366544.11059999996,126102.38102000002,126102.38102000002,126102.38102000002,268744.7735,711034.3372,112184.21312,393858.22517999995,600164.91456,109457.45700000001,109457.45700000001,109457.45700000001,63661.507,148904.96699999998,148904.96699999998,26215.26479,176120.9892,261789.71728,456609.97200000007,129590.25872000001,164814.45656000002,127778.94600000001,127778.94600000001,127778.94600000001,127778.94600000001,447707.6007799999,447707.6007799999 +10062000.0,81248.89199999999,26401.77,77093.1684,101702.33623000002,101702.33623000002,101702.33623000002,87369.9645,134771.21592,124230.54912000001,107492.40348000001,163797.94816000003,50198.15700000001,50198.15700000001,50198.15700000001,38548.5485,81248.89199999999,81248.89199999999,11982.546939999998,36334.388699999996,54008.15308,94200.26699999999,26734.93292,34001.81066,45830.709,45830.709,45830.709,45830.709,244288.33528,244288.33528 +10065600.0,172974.762,83576.739,244044.07788,93144.68911,93144.68911,93144.68911,108622.2725,307515.08128,294415.53088000003,192029.96148,292617.08416,135822.93899999998,135822.93899999998,135822.93899999998,88635.834,172974.762,172974.762,65929.24624,82145.3076,122102.40784,212969.31600000002,60442.720160000004,76871.78168,99263.21100000001,99263.21100000001,99263.21100000001,99263.21100000001,520077.45107999997,520077.45107999997 +10069200.0,93029.45400000001,37025.538,108114.57096,71196.72978000001,71196.72978000001,71196.72978000001,62220.28050000001,153535.06584,131288.86208000002,93692.69742,142769.82464,59794.81500000001,59794.81500000001,59794.81500000001,34672.099,93029.45400000001,93029.45400000001,24861.1584,33384.834449999995,49623.87738,86553.2745,24564.64362,31241.61051,52507.134000000005,52507.134000000005,52507.134000000005,52507.134000000005,279708.55836,279708.55836 +10072800.0,52211.796,14555.687999999998,42502.60896,59237.32375,59237.32375,59237.32375,49979.33500000001,76834.94696,55149.610239999995,50319.76593,76677.73856000001,23589.341999999997,23589.341999999997,23589.341999999997,17923.136,52211.796,52211.796,7044.6153699999995,18821.09115,27976.04166,48795.4215,13848.60534,17612.82357,27620.748000000003,27620.748000000003,27620.748000000003,27620.748000000003,156983.46664,156983.46664 +10076400.0,27691.326,5126.736,14970.06912,44559.57286000001,44559.57286000001,44559.57286000001,38643.472,46567.4592,19002.61632,29288.38584,44629.92128,7133.055,7133.055,7133.055,13803.846000000001,27691.326,27691.326,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,16414.944,16414.944,16414.944,16414.944,83258.58684,83258.58684 +10080000.0,19547.931,3977.3729999999996,11613.92916,49464.867099999996,49464.867099999996,49464.867099999996,43473.906,40292.78216,15198.174079999999,28162.54665,42914.3568,7658.277,7658.277,7658.277,15529.3285,19547.931,19547.931,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,14579.547,14579.547,14579.547,14579.547,58774.112539999995,58774.112539999995 +10083600.0,51092.00099999999,10256.214,29948.144880000003,82058.84753000001,82058.84753000001,82058.84753000001,70846.3665,81986.738,40169.27552,53026.06323,80801.62016,13630.071,13630.071,13630.071,25307.054500000002,51092.00099999999,51092.00099999999,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,28531.791000000005,28531.791000000005,28531.791000000005,28531.791000000005,153616.61633999998,153616.61633999998 +10087200.0,117806.091,38525.082,112493.23944,149754.16852,149754.16852,149754.16852,125591.28399999999,177461.80864,146919.40736,121544.49635999999,185210.66112,70744.506,70744.506,70744.506,44903.358499999995,117806.091,117806.091,18186.67734,47855.54115,71133.42165999999,124069.9215,35212.22534,44783.333569999995,63883.265999999996,63883.265999999996,63883.265999999996,63883.265999999996,354203.64694,354203.64694 +10090800.0,315730.602,159218.616,464918.35872,165827.32298000003,165827.32298000003,165827.32298000003,158334.2565,597860.4340799999,541434.10432,341536.83963,520437.08896,248591.349,248591.349,248591.349,149361.3135,315730.602,315730.602,131113.09639999998,121324.43655,180339.03902,314544.83550000004,89270.81998,113535.70729,203733.06,203733.06,203733.06,203733.06,949296.6766799999,949296.6766799999 +10094400.0,359111.24399999995,194798.874,568812.71208,145111.83291,145111.83291,145111.83291,189889.2415,597115.46032,398579.0406400001,353818.62159,539152.18528,241789.671,241789.671,241789.671,155465.387,359111.24399999995,359111.24399999995,194772.25832999998,117017.45189999999,173937.05195999995,303378.57899999997,86101.73004,109505.22041999998,281401.74,281401.74,281401.74,281401.74,1079727.80696,1079727.80696 +10098000.0,190103.748,58057.83900000001,169528.88988,118244.24073000002,118244.24073000002,118244.24073000002,100764.14600000001,310048.00023999996,298895.24032,202957.74471,309268.94432,131384.856,131384.856,131384.856,87932.06450000001,190103.748,190103.748,128160.76168999998,43355.51729999999,64444.49731999999,112403.19299999998,31901.096679999995,40572.20013999999,151206.714,151206.714,151206.714,151206.714,571578.60232,571578.60232 +10101600.0,56924.397,56903.304000000004,166157.64768,77114.54234000001,77114.54234000001,77114.54234000001,66015.9325,102514.64168,347954.71616000007,81129.37476,123625.71392000002,61171.979999999996,61171.979999999996,61171.979999999996,46103.3475,56924.397,56924.397,102898.82447,25097.420699999995,37305.30187999999,65067.386999999995,18466.74412,23486.228259999996,34093.215,34093.215,34093.215,34093.215,171152.68697999997,171152.68697999997 +10105200.0,60870.735,61983.35399999999,180991.39367999998,38780.79557000001,38780.79557000001,38780.79557000001,34835.563,86281.38639999999,384593.71456,74084.43336,112890.56512,63709.93499999999,63709.93499999999,63709.93499999999,59488.7615,60870.735,60870.735,108012.52786999999,13785.21585,20490.61714,35739.4485,10143.19586,12900.23903,39103.884,39103.884,39103.884,39103.884,183018.00989999998,183018.00989999998 +10108800.0,63400.62299999999,65865.258,192326.55336,15078.279590000002,15078.279590000002,15078.279590000002,17356.129,97484.14744000002,392543.9264,75588.06066,115181.80672000001,64575.975000000006,64575.975000000006,64575.975000000006,57695.08499999999,63400.62299999999,63400.62299999999,135555.57392,27376.011449999998,40692.244179999994,70974.8445,20143.33682,25618.53911,49923.58200000001,49923.58200000001,49923.58200000001,49923.58200000001,190624.53981999998,190624.53981999998 +10112400.0,65251.974,68436.50700000001,199834.60044,9575.85937,9575.85937,9575.85937,12468.256500000001,107411.88464,385705.91168,81560.19626999999,124282.20383999999,71794.83,71794.83,71794.83,57951.0645,65251.974,65251.974,143576.83093,28233.931049999996,41967.472819999995,73199.0805,20774.596179999997,26421.38239,52486.083,52486.083,52486.083,52486.083,196190.93516,196190.93516 +10116000.0,72712.794,69405.822,202665.00024,4111.554700000001,4111.554700000001,4111.554700000001,7694.5960000000005,110001.84872000001,386730.28544000007,80111.29287,122074.35104000002,78198.576,78198.576,78198.576,60044.3095,72712.794,72712.794,144066.94106999997,26768.25225,39788.8589,69399.1725,19696.1461,25049.796550000003,52030.748999999996,52030.748999999996,52030.748999999996,52030.748999999996,218623.13395999998,218623.13395999998 +10119600.0,74703.20999999999,71795.217,209642.03364,4116.328810000001,4116.328810000001,4116.328810000001,7691.705,116604.4476,385241.1942400001,80764.84983,123070.24736000001,78853.33499999999,78853.33499999999,78853.33499999999,59906.098,74703.20999999999,74703.20999999999,144816.29578,34162.195499999994,50779.36219999999,88568.65499999998,25136.627799999995,31969.066899999994,52238.969999999994,52238.969999999994,52238.969999999994,52238.969999999994,224607.65139999997,224607.65139999997 +10123200.0,77080.74299999999,73120.04999999999,213510.54599999997,5989.92075,5989.92075,5989.92075,9414.741,124688.92896,392195.46176000003,104434.49667,159138.28064,90952.32,90952.32,90952.32,63137.9315,77080.74299999999,77080.74299999999,152721.91077,36056.724749999994,53595.42789999999,93480.39749999999,26530.627099999994,33741.97205,58126.773,58126.773,58126.773,58126.773,231756.10061999998,231756.10061999998 +10126800.0,82388.595,73454.39700000001,214486.83924000003,15368.65781,15368.65781,15368.65781,17336.27,132211.81840000002,387006.50688000006,125634.97988999999,191443.77888,128799.555,128799.555,128799.555,66017.42,82388.595,82388.595,150802.639,40309.488000000005,59916.8192,104506.08000000002,29659.8208,37721.718400000005,63368.774999999994,63368.774999999994,63368.774999999994,63368.774999999994,247715.04229999997,247715.04229999997 +10130400.0,563480.574,486733.12799999997,1421260.73376,119656.66097,119656.66097,119656.66097,359087.3545,883193.05208,392426.19392000005,571745.5506000001,871231.3152000001,248640.924,248640.924,248640.924,683125.3485,563480.574,563480.574,669887.36282,147009.65804999997,218518.05961999996,381136.1505,108170.06937999999,137572.00099,545962.1849999999,545962.1849999999,545962.1849999999,545962.1849999999,1694198.25916,1694198.25916 +10134000.0,904402.6499999999,822791.622,2402551.53624,241371.10987000001,241371.10987000001,241371.10987000001,700851.3855,1412787.50112,1353782.0691200001,1132731.5855100001,1726067.1779200002,572020.788,572020.788,572020.788,297010.8855,904402.6499999999,904402.6499999999,231069.07148,470914.155,699976.102,1220888.55,346499.798,440682.629,933380.8620000001,933380.8620000001,933380.8620000001,933380.8620000001,2719237.301,2719237.301 +10137600.0,810955.98,590524.557,1724331.7064399999,190946.86644,190946.86644,190946.86644,403012.0255,1280530.39936,1143182.55488,1147036.8476699998,1747865.67264,863175.4380000001,863175.4380000001,863175.4380000001,274575.9135,810955.98,810955.98,375192.64068,481995.91889999993,716448.2547599999,1249619.0489999999,354653.78724,451052.97101999994,571366.746,571366.746,571366.746,571366.746,2438274.3131999997,2438274.3131999997 +10141200.0,535366.215,269746.362,787659.37704,192280.78452000002,192280.78452000002,192280.78452000002,539677.558,1301171.92024,1948722.55552,865542.74268,1318922.27456,805640.0159999998,805640.0159999998,805640.0159999998,853408.1185,535366.215,535366.215,417372.43496,725114.51505,1077824.53842,1879926.5205,533541.05058,678563.95359,492653.64,492653.64,492653.64,492653.64,1609667.7530999999,1609667.7530999999 +10144800.0,254959.38,179894.793,525292.79556,145323.7049,145323.7049,145323.7049,417440.6215,896095.2063999999,324794.57984,550328.2390200001,838595.4118400001,195116.15399999998,195116.15399999998,195116.15399999998,276596.6735,254959.38,254959.38,63617.237969999995,290884.75379999995,432376.84391999996,754145.6579999999,214033.72007999997,272210.67084,195804.702,195804.702,195804.702,195804.702,766577.8692000001,766577.8692000001 +10148400.0,135420.38400000002,55698.402,162639.33384,112809.42321000001,112809.42321000001,112809.42321000001,100564.8035,342772.54536,197868.72832000002,181586.58378,276703.36576,92006.877,92006.877,92006.877,62742.469999999994,135420.38400000002,135420.38400000002,44375.70358,58963.945949999994,87645.17397999999,152869.4895,43385.81702,55178.60621,91103.796,91103.796,91103.796,91103.796,407163.95456000004,407163.95456000004 +10152000.0,243942.93899999998,130497.738,381053.39496,100368.90655,100368.90655,100368.90655,137937.20500000002,469561.12367999996,402931.85664,282384.27399,430299.84608,191031.243,191031.243,191031.243,140679.6895,243942.93899999998,243942.93899999998,118773.54164,99331.7256,147648.63904,257526.69600000003,73088.52896000001,92954.87408000001,173642.31900000002,173642.31900000002,173642.31900000002,173642.31900000002,733455.1032599999,733455.1032599999 +10155600.0,127753.062,56808.531,165880.91052,75257.83276000002,75257.83276000002,75257.83276000002,74565.2285,224415.22176000001,190967.64224000004,136353.36330000003,207776.5536,86027.016,86027.016,86027.016,52720.9865,127753.062,127753.062,44598.29114,45658.8738,67868.25192,118374.85800000001,33595.91208,42727.68684,81846.93599999999,81846.93599999999,81846.93599999999,81846.93599999999,384110.87308,384110.87308 +10159200.0,54146.70599999999,14834.226,43315.93992,60516.34567000001,60516.34567000001,60516.34567000001,50412.5265,77661.87344,56048.98368,52033.02972,79288.42624,22051.581,22051.581,22051.581,18050.6445,54146.70599999999,54146.70599999999,7015.360949999999,18966.1338,28191.635919999997,49171.458,13955.32808,17748.55484,28045.026,28045.026,28045.026,28045.026,162801.09603999997,162801.09603999997 +10162800.0,28254.267,5153.889000000001,15049.355880000001,45165.844130000005,45165.844130000005,45165.844130000005,38643.472,46638.899919999996,18217.700480000003,29488.00974,44934.11008,7039.4400000000005,7039.4400000000005,7039.4400000000005,13803.846000000001,28254.267,28254.267,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,16222.046999999999,16222.046999999999,16222.046999999999,16222.046999999999,84951.16278,84951.16278 +10166400.0,32719.83,5923.182,17295.69144,50998.50822,50998.50822,50998.50822,43473.906,52414.02336000001,21495.452800000003,33142.2042,50502.4064,8104.697999999999,8104.697999999999,8104.697999999999,15529.3285,32719.83,32719.83,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,18049.656,18049.656,18049.656,18049.656,98377.6222,98377.6222 +10170000.0,52032.978,11325.474,33070.384079999996,83651.27573000002,83651.27573000002,83651.27573000002,70846.3665,82609.81344,41134.016,54454.73376,82978.64192000001,14852.604,14852.604,14852.604,25307.054500000002,52032.978,52032.978,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,28984.058999999997,28984.058999999997,28984.058999999997,28984.058999999997,156445.82052,156445.82052 +10173600.0,123136.773,41838.447,122168.26524,152053.8569,152053.8569,152053.8569,127209.4845,183784.48463999998,171775.1808,130885.54247999999,199444.63616,75379.449,75379.449,75379.449,45606.533,123136.773,123136.773,20001.29794,49411.3041,73445.93844,128103.381,36356.95956,46239.22038,68118.07500000001,68118.07500000001,68118.07500000001,68118.07500000001,370231.23082,370231.23082 +10177200.0,369083.463,185834.22,542635.9223999999,171966.02665,171966.02665,171966.02665,178947.69199999998,716485.48664,631386.8,420081.06315000006,640123.5248000001,285869.403,285869.403,285869.403,177556.52599999998,369083.463,369083.463,164868.93084999998,143297.19315,212999.77846,371511.2415,105438.42854000001,134097.86717,256776.84600000002,256776.84600000002,256776.84600000002,256776.84600000002,1109710.94542,1109710.94542 +10180800.0,455307.67799999996,258751.521,755554.44132,153393.49740000002,153393.49740000002,153393.49740000002,242918.60599999997,764466.8390400001,580060.00832,499561.16195999994,761236.05632,349053.777,349053.777,349053.777,190024.268,455307.67799999996,455307.67799999996,257812.87349999996,169175.76165,251466.19386,438603.8265000001,124479.94314000002,158315.09547000003,378242.685,378242.685,378242.685,378242.685,1368958.4185199998,1368958.4185199998 +10184400.0,233069.37,152367.954,444914.42568,120042.66384000001,120042.66384000001,120042.66384000001,117142.53250000002,373509.44064000004,477876.46272,267031.66014,406905.38688,157795.863,157795.863,157795.863,135076.49049999999,233069.37,233069.37,165620.19032,56701.1988,84281.78192,147003.108,41720.88208,53061.12184,207888.57299999997,207888.57299999997,207888.57299999997,207888.57299999997,700761.9058,700761.9058 +10188000.0,79199.295,75913.809,221668.32228,77656.31225000002,77656.31225000002,77656.31225000002,71321.76449999999,128906.03384,454632.8768,105014.81151,160022.56992,78961.959,78961.959,78961.959,80884.02699999999,79199.295,79199.295,142890.54013,30292.1694,45026.878959999995,78535.254,22289.05304,28347.48692,57970.599,57970.599,57970.599,57970.599,238125.8803,238125.8803 +10191600.0,79975.506,80968.78199999999,236428.84343999997,39336.22847,39336.22847,39336.22847,39470.392499999994,118894.67951999999,462388.09728000005,104446.39296,159156.40832,89563.374,89563.374,89563.374,78085.3885,79975.506,79975.506,172980.62548000002,42892.47675,63756.2247,111202.7175,31560.390300000003,40138.885650000004,67833.957,67833.957,67833.957,67833.957,240459.68803999998,240459.68803999998 +10195200.0,76774.542,80512.479,235096.43868000002,15537.31047,15537.31047,15537.31047,18483.5245,134068.6464,450376.10944000003,104064.34479,158574.23968,94648.821,94648.821,94648.821,74238.5245,76774.542,76774.542,169488.527,35203.005,52326.441999999995,91267.05,25902.458000000002,32943.059,64806.018000000004,64806.018000000004,64806.018000000004,64806.018000000004,230835.45627999998,230835.45627999998 +10198800.0,90168.97200000001,88336.203,257941.71275999997,10205.33371,10205.33371,10205.33371,14095.679499999998,153851.48288,477471.74847999995,132373.94561999998,201712.67904,111050.457,111050.457,111050.457,79435.0655,90168.97200000001,90168.97200000001,182138.03334999995,43838.74709999999,65162.77963999999,113656.011,32256.658359999998,41024.40778,69865.611,69865.611,69865.611,69865.611,271108.04248,271108.04248 +10202400.0,93833.889,87979.239,256899.37788,4707.724230000001,4707.724230000001,4707.724230000001,9215.598,157536.12576,470806.0294400001,137773.48473,209940.54816,114731.43900000001,114731.43900000001,114731.43900000001,77471.65650000001,93833.889,93833.889,186058.31322,44240.40585,65759.81314,114697.34850000001,32552.19986,41400.281030000006,72352.36799999999,72352.36799999999,72352.36799999999,72352.36799999999,282127.22625999997,282127.22625999997 +10206000.0,104787.78300000002,98262.12,286925.3904,5435.6885,5435.6885,5435.6885,9869.8985,172333.07392,514022.3904,176167.82127000001,268446.20384000003,167127.147,167127.147,167127.147,84981.204,104787.78300000002,104787.78300000002,203045.83350999994,50220.178199999995,74648.26487999999,130200.462,36952.13112,46996.16676,85615.464,85615.464,85615.464,85615.464,315061.93422000005,315061.93422000005 +10209600.0,113740.113,109779.909,320557.33428,8788.8394,8788.8394,8788.8394,11617.8475,176398.75344,525212.29632,201891.67677,307644.45984,194829.009,194829.009,194829.009,109768.19000000002,113740.113,113740.113,209902.04117999997,55152.4059,81979.62556,142987.719,40581.27644,51611.757620000004,90414.20999999999,90414.20999999999,90414.20999999999,90414.20999999999,341978.60641999997,341978.60641999997 +10213200.0,183641.268,131411.712,383722.1990399999,32092.792490000003,32092.792490000003,32092.792490000003,25515.8785,551558.58976,516223.16416,303616.22466,462653.29472,204267.273,204267.273,204267.273,176677.151,183641.268,183641.268,400780.44096999994,67812.00525,100797.1041,175808.90250000003,49896.240900000004,63458.641950000005,149599.641,149599.641,149599.641,149599.641,552148.07912,552148.07912 +10216800.0,645161.817,253749.684,740949.07728,138253.58173,138253.58173,138253.58173,313783.10599999997,2288795.90488,1115822.2272,1321789.8266999999,2014155.9264,418160.99400000006,418160.99400000006,418160.99400000006,354335.618,645161.817,645161.817,1402286.15904,426136.5855,633417.8382,1104798.555,313552.3518,398779.6689,721308.888,721308.888,721308.888,721308.888,1939786.52978,1939786.52978 +10220400.0,448443.027,558731.6699999999,1631496.4763999998,214467.00165,214467.00165,214467.00165,868761.4355,2416171.29808,1063173.83104,1571713.7572499998,2394992.392,650931.606,650931.606,650931.606,683235.1925,448443.027,448443.027,916173.24929,906375.7278,1347254.78552,2349862.998,666913.49848,848188.64404,647672.535,647672.535,647672.535,647672.535,1348318.7011799999,1348318.7011799999 +10224000.0,1080696.942,479684.274,1400678.08008,176203.61297000002,176203.61297000002,176203.61297000002,228118.05099999998,1427466.25936,1513536.55808,1051573.67994,1602397.98848,704384.3999999999,704384.3999999999,704384.3999999999,288884.46650000004,1080696.942,1080696.942,370222.22237,338245.08524999995,502774.1760999999,876931.7024999999,248881.56889999998,316530.58595,1187741.049,1187741.049,1187741.049,1187741.049,3249295.47228,3249295.47228 +10227600.0,506059.03799999994,327185.53500000003,955381.7622,185889.08151000002,185889.08151000002,185889.08151000002,169110.87900000002,391102.86111999996,2628139.8444800004,110246.76894000001,167995.07648000002,446213.68500000006,446213.68500000006,446213.68500000006,388167.53150000004,506059.03799999994,506059.03799999994,181338.53919999997,644193.0,957541.2,1670130.0,473998.8,602837.4,133689.141,133689.141,133689.141,133689.141,1521550.8409199999,1521550.8409199999 +10231200.0,123422.049,19925.712,58183.07904,115992.04518000002,115992.04518000002,115992.04518000002,98218.8235,72490.77536,82005.16032000001,55657.55349,84811.51008000001,28141.005000000005,28141.005000000005,28141.005000000005,35084.777,123422.049,123422.049,16322.831199999999,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,26641.593,26641.593,26641.593,26641.593,371088.96066,371088.96066 +10234800.0,84001.908,329574.399,962357.24508,105949.16145000001,105949.16145000001,105949.16145000001,200576.18699999998,180330.24143999998,158870.09728,104047.93728,158549.23776000002,33454.503,33454.503,33454.503,233016.52150000003,84001.908,84001.908,30554.918939999996,40110.8679,59621.586359999994,103991.139,29513.675639999998,37535.84922,32701.332000000002,32701.332000000002,32701.332000000002,32701.332000000002,252565.73672,252565.73672 +10238400.0,132595.668,65049.807,189945.43644,94839.20105,94839.20105,94839.20105,170317.97300000003,188748.65983999998,229242.15488000002,96351.96501,146822.04192000002,83306.21100000001,83306.21100000001,83306.21100000001,65432.47200000001,132595.668,132595.668,99408.04874,69195.13694999999,102853.01837999998,179394.79949999996,50913.95261999999,64752.98000999999,57082.251000000004,57082.251000000004,57082.251000000004,57082.251000000004,398670.97511999996,398670.97511999996 +10242000.0,78960.68400000001,28711.368000000002,83837.19456,71240.88114,71240.88114,71240.88114,60884.4915,110682.40144,111662.51712,54637.539600000004,83257.2032,45574.872,45574.872,45574.872,26676.2825,78960.68400000001,78960.68400000001,63125.21344999999,34845.7869,51795.46596,90340.929,25639.616040000004,32608.773420000005,36689.958,36689.958,36689.958,36689.958,237408.45656000002,237408.45656000002 +10245600.0,109108.773,72832.056,212669.60351999998,58537.9146,58537.9146,58537.9146,64906.442999999985,227605.00056000001,24494.503040000003,197892.40779,301550.33568,48437.873999999996,48437.873999999996,48437.873999999996,27886.152,109108.773,109108.773,249306.00850999999,24551.0271,36493.13164,63650.811,18064.70636,22974.91178,27858.828,27858.828,27858.828,27858.828,328053.71082,328053.71082 +10249200.0,26138.376000000004,151540.962,442499.60903999995,254687.26668000003,254687.26668000003,254687.26668000003,159413.8315,192441.12247999996,48206.62528000001,27958.52745,42603.470400000006,30849.785999999996,30849.785999999996,30849.785999999996,260514.55150000003,26138.376000000004,26138.376000000004,170060.87852,85839.22350000001,127593.1174,222546.13500000004,63160.712600000006,80328.55730000001,41462.646,41462.646,41462.646,41462.646,78589.38384000001,78589.38384000001 +10252800.0,14511.135,7153.857,20889.262440000002,56194.87258000001,56194.87258000001,56194.87258000001,43473.906,29416.84504,24082.54272,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,14511.135,14511.135,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10934.438999999998,10934.438999999998,10934.438999999998,10934.438999999998,43630.145899999996,43630.145899999996 +10256400.0,515037.495,179364.057,523743.04644,118539.62912000001,118539.62912000001,118539.62912000001,291453.0675,584190.45992,337428.54464,556860.76572,848549.7382400001,359671.88399999996,359671.88399999996,359671.88399999996,68468.45599999999,515037.495,515037.495,9502.102089999998,61021.59705,90703.70722,158204.1405,44899.841779999995,57104.16119,279525.411,279525.411,279525.411,279525.411,1548546.0683,1548546.0683 +10260000.0,154262.43,55963.461,163413.30612,155288.26962,155288.26962,155288.26962,161788.893,235151.54200000002,172913.55520000003,187617.60675000004,285893.49600000004,102797.87100000001,102797.87100000001,102797.87100000001,53544.9565,154262.43,154262.43,16844.63443,54334.97415,80764.57886000001,140868.45150000002,39979.80814,50846.802970000004,83128.569,83128.569,83128.569,83128.569,463815.70619999996,463815.70619999996 +10263600.0,382912.377,227891.81999999995,665444.1143999998,173907.47770000002,173907.47770000002,173907.47770000002,333184.11,714759.9301599999,701888.61248,481585.76151,733844.9699200001,334939.476,334939.476,334939.476,183736.98349999997,382912.377,382912.377,152904.07989999998,187244.81234999996,278324.38774,485449.51349999994,137775.19525999998,175224.15772999998,270480.918,270480.918,270480.918,270480.918,1151289.8801799999,1151289.8801799999 +10267200.0,468036.2579999999,326194.41000000003,952487.6772,163052.14464,163052.14464,163052.14464,399781.97000000003,938170.9639199999,841434.4044800001,607862.61459,926266.84128,422486.895,422486.895,422486.895,288573.7295,468036.2579999999,468036.2579999999,223493.95159,286950.17475,426528.4079,743944.8975000001,211138.6471,268528.68205,418705.74899999995,418705.74899999995,418705.74899999995,418705.74899999995,1407229.0157199998,1407229.0157199998 +10270800.0,347990.886,285632.292,834046.2926400001,132484.81664,132484.81664,132484.81664,280008.7605,504029.10736,574262.3283200001,388248.54243000003,591616.8265600001,242555.18099999998,242555.18099999998,242555.18099999998,157944.941,347990.886,347990.886,162176.69207999998,145247.4747,215898.71547999998,376567.527,106873.45052,135922.94546000002,316185.255,316185.255,316185.255,316185.255,1046292.5972399999,1046292.5972399999 +10274400.0,59905.011,57657.549,168360.04308,77395.68573000001,77395.68573000001,77395.68573000001,66015.9325,103595.93519999999,345094.81024,85598.11974,130435.23008000001,60910.338,60910.338,60910.338,51807.084,59905.011,59905.011,104401.14138999999,25157.76165,37394.99386,65223.8265,18511.14314,23542.695470000002,36505.998,36505.998,36505.998,36505.998,180114.39974,180114.39974 +10278000.0,60834.242999999995,54701.04,159727.0368,38963.904870000006,38963.904870000006,38963.904870000006,38247.86,82806.0024,370090.17407999997,79554.43251,121225.80192000001,60217.070999999996,60217.070999999996,60217.070999999996,59238.29100000001,60834.242999999995,60834.242999999995,99577.93312999999,17972.25165,26714.309859999998,46594.7265,13224.02714,16818.477469999998,45484.806,45484.806,45484.806,45484.806,182908.29061999999,182908.29061999999 +10281600.0,60613.922999999995,56696.652,165554.22384000002,15200.4325,15200.4325,15200.4325,17456.0155,81612.18376,368158.35391999997,78911.09582999999,120245.47936,60399.267,60399.267,60399.267,58242.71949999999,60613.922999999995,60613.922999999995,97822.75450999998,29953.957949999996,44524.15478,77658.4095,22040.196219999998,28030.98781,50744.981999999996,50744.981999999996,50744.981999999996,50744.981999999996,182245.86182,182245.86182 +10285200.0,61110.747,60279.312,176015.59104,9726.03016,9726.03016,9726.03016,12673.318000000001,90248.5276,369411.58848000003,81795.87129,124641.32768,73461.507,73461.507,73461.507,58828.69999999999,61110.747,61110.747,118298.68882,28468.709549999996,42316.45221999999,73807.7655,20947.34678,26641.08869,51190.338,51190.338,51190.338,51190.338,183739.64598,183739.64598 +10288800.0,66238.218,69599.598,203230.82615999997,4251.9737700000005,4251.9737700000005,4251.9737700000005,7891.156,93505.75256,370684.4832,80232.97023,122259.76416000002,78137.616,78137.616,78137.616,58724.2285,66238.218,66238.218,130528.72468999999,28696.17375,42654.559499999996,74397.4875,21114.715500000002,26853.95025,50397.009000000005,50397.009000000005,50397.009000000005,50397.009000000005,199156.24211999998,199156.24211999998 +10292400.0,76342.242,71456.54999999999,208653.126,4277.797920000001,4277.797920000001,4277.797920000001,7969.450999999999,118780.59512,375526.97536000004,85197.98805,129825.5056,86301.12899999999,86301.12899999999,86301.12899999999,61819.957500000004,76342.242,76342.242,142942.46407999998,35952.0849,53439.88916,93209.10900000001,26453.632840000002,33644.04982,51543.084,51543.084,51543.084,51543.084,229535.67428,229535.67428 +10296000.0,80585.922,73141.962,213574.52904000002,6315.73646,6315.73646,6315.73646,9718.155999999999,130467.06,384950.42624,92154.26997000001,140425.55424000003,90678.56999999999,90678.56999999999,90678.56999999999,63992.470499999996,80585.922,80585.922,152808.62063999998,37848.6999,56259.055159999996,98126.259,27849.16684,35418.906820000004,54051.972,54051.972,54051.972,54051.972,242295.00548,242295.00548 +10299600.0,128563.845,97567.362,284896.69704,28788.33914,28788.33914,28788.33914,17652.5125,479832.32296,390935.6992,188909.39990999998,287861.94272,92542.47899999999,92542.47899999999,92542.47899999999,88427.0135,128563.845,128563.845,323697.43002999993,46065.17385,68472.18433999999,119428.2285,33894.86866,43107.90343,111566.33699999998,111566.33699999998,111566.33699999998,111566.33699999998,386548.62729999993,386548.62729999993 +10303200.0,456647.022,192076.26,560862.6792,129692.26754,129692.26754,129692.26754,203535.3145,1729184.24128,549643.93472,914091.3138,1392901.0496,272984.316,272984.316,272984.316,210561.5995,456647.022,456647.022,1283019.0152,241376.16059999997,358786.29303999996,625790.046,177605.17495999997,225880.40707999998,514302.129,514302.129,514302.129,514302.129,1372985.37948,1372985.37948 +10306800.0,356200.839,443584.902,1295267.9138399998,201591.06011000002,201591.06011000002,201591.06011000002,553827.9704999999,1945435.33576,780685.34784,1341527.64102,2044232.59584,551720.4299999999,551720.4299999999,551720.4299999999,527065.8925000001,356200.839,356200.839,469048.32364,675612.11835,1004243.1981399999,1751586.9735,497117.06486,632239.48853,505156.776,505156.776,505156.776,505156.776,1070977.18926,1070977.18926 +10310400.0,926285.0790000001,268804.63800000004,784909.54296,169596.23659000001,169596.23659000001,169596.23659000001,166601.0815,981198.6998399999,1137551.30624,820779.4956899999,1250711.61248,489991.72199999995,489991.72199999995,489991.72199999995,223916.79099999997,926285.0790000001,926285.0790000001,304851.60953,259061.4252,385074.01967999997,671640.732,190618.03631999998,242430.32136,966183.6630000001,966183.6630000001,966183.6630000001,966183.6630000001,2785030.4708600002,2785030.4708600002 +10314000.0,482337.669,300425.133,877241.38836,181291.41822,181291.41822,181291.41822,161558.29200000002,341576.65936,2267030.04416,116378.68095000001,177338.9424,459629.496,459629.496,459629.496,390964.02099999995,482337.669,482337.669,177633.12683999998,606675.3228000001,901774.1835200001,1572861.948,446393.20048000006,567728.2650400001,130981.398,130981.398,130981.398,130981.398,1450228.59146,1450228.59146 +10317600.0,114676.18500000001,23303.283,68045.58636,116567.54318000002,116567.54318000002,116567.54318000002,98218.8235,102522.41471999999,116318.38464,69300.48741,105600.74272000001,39703.182,39703.182,39703.182,39091.7555,114676.18500000001,114676.18500000001,54887.37656999999,44667.42165,66394.53786,115804.4265,32866.39914,41799.88347,38623.146,38623.146,38623.146,38623.146,344793.0629,344793.0629 +10321200.0,158465.349,414685.539,1210881.77388,113187.1884,113187.1884,113187.1884,215755.176,365958.198,342420.21248000005,179804.38623,273987.63616,73422.52200000001,73422.52200000001,73422.52200000001,245606.8755,158465.349,158465.349,110145.73882,68001.89355,101079.35781999999,176301.2055,50035.96118,63636.33989,83754.459,83754.459,83754.459,83754.459,476452.4826599999,476452.4826599999 +10324800.0,222700.965,130506.50700000001,381079.00044000003,99062.24526,99062.24526,99062.24526,217565.411,456370.60183999996,372644.05824000004,223335.9639,340321.46880000003,164653.30800000002,164653.30800000002,164653.30800000002,109763.55949999999,222700.965,222700.965,189624.78392,101309.17859999998,150587.96423999997,262653.426,74543.54375999999,94805.37947999999,165986.47499999998,165986.47499999998,165986.47499999998,165986.47499999998,669587.5680999999,669587.5680999999 +10328400.0,125850.021,56117.672999999995,163863.60516,74295.31846000001,74295.31846000001,74295.31846000001,69459.726,234569.77871999997,212000.77120000005,109691.58459,167149.08127999998,87681.93599999999,87681.93599999999,87681.93599999999,51896.333999999995,125850.021,125850.021,106981.95650999999,49710.78135,73891.08734,128879.8035,36577.31566,46519.47193,82492.638,82492.638,82492.638,82492.638,378389.06314,378389.06314 +10332000.0,159307.02,107652.58499999999,314345.54819999996,64661.954060000004,64661.954060000004,64661.954060000004,65305.28200000001,324898.01648,87575.17632000001,281843.60379,429475.96768000006,75098.60699999999,75098.60699999999,75098.60699999999,59181.6225,159307.02,159307.02,359690.81876,55152.36944999999,81979.57138,142987.62449999998,40581.249619999995,51611.723509999996,46433.694,46433.694,46433.694,46433.694,478983.10679999995,478983.10679999995 +10335600.0,40434.135,191084.451,557966.59692,253945.88362,253945.88362,253945.88362,188699.0245,250213.76048,57062.85824,31719.537360000002,48334.53312,68998.302,68998.302,68998.302,293133.204,40434.135,40434.135,221382.45297999997,102336.61905,152115.17202,265317.1605,75299.53698,95766.86079,57503.520000000004,57503.520000000004,57503.520000000004,57503.520000000004,121571.9659,121571.9659 +10339200.0,29333.661,10441.908,30490.371359999997,52930.36628000001,52930.36628000001,52930.36628000001,43589.966,36913.05736,29363.13984,25016.4054,38120.236800000006,10832.22,10832.22,10832.22,15529.3285,29333.661,29333.661,12601.084079999999,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,12136.479,12136.479,12136.479,12136.479,88196.54074,88196.54074 +10342800.0,639860.754,294660.108,860407.51536,126807.47596,126807.47596,126807.47596,516499.9490000001,862677.9672,637481.0688000001,875879.7637800002,1334673.9257600002,556318.572,556318.572,556318.572,109483.96900000001,639860.754,639860.754,9502.102089999998,148233.18735000002,220336.73774,384308.26350000006,109070.34526000002,138716.98273000002,398463.07500000007,398463.07500000007,398463.07500000007,398463.07500000007,1923848.00036,1923848.00036 +10346400.0,201578.631,78366.198,228829.29815999998,160401.41062,160401.41062,160401.41062,183496.46,355077.05744,313424.78400000004,233159.38212,355290.48704,138271.941,138271.941,138271.941,84061.691,201578.631,201578.631,46352.118149999995,80899.82325,120251.09529999999,209740.2825,59526.2897,75706.25435,127097.74800000002,127097.74800000002,127097.74800000002,127097.74800000002,606079.7505399999,606079.7505399999 +10350000.0,477364.107,313539.672,915535.84224,181481.22267000002,181481.22267000002,181481.22267000002,443416.113,980952.3803199999,890293.4815999999,634039.7897399999,966155.8700799999,442454.01600000006,442454.01600000006,442454.01600000006,305374.9895,477364.107,477364.107,227117.31496999998,298673.71379999997,443954.5079199999,774339.2579999999,219764.85607999997,279499.59884,413217.801,413217.801,413217.801,413217.801,1435274.74838,1435274.74838 +10353600.0,559125.726,461803.71,1348466.8332,167207.17101000002,167207.17101000002,167207.17101000002,464545.68299999996,1102262.7992,1173429.02016,796711.2724199999,1214036.22464,552790.5630000001,552790.5630000001,552790.5630000001,474924.3169999999,559125.726,559125.726,352747.3336399999,396988.07535,590090.91694,1029228.3435000001,292104.80606000003,371502.42113000003,504839.706,504839.706,504839.706,504839.706,1681104.68284,1681104.68284 +10357200.0,395371.68,341028.66000000003,995803.6872,134105.69414000004,134105.69414000004,134105.69414000004,300765.4895,598125.94968,827177.70944,482636.94339000003,735446.77088,295137.05700000003,295137.05700000003,295137.05700000003,297838.919,395371.68,395371.68,345288.01449999993,208671.50744999998,310173.45057999995,541000.2045,153541.01042,195275.31191,369571.446,369571.446,369571.446,369571.446,1188750.8512,1188750.8512 +10360800.0,75483.384,60424.788,176440.38096,77528.43285000001,77528.43285000001,77528.43285000001,72587.9105,115759.17183999998,405700.1856000001,107862.00474,164361.15008,75817.17300000001,75817.17300000001,75817.17300000001,79050.02,75483.384,75483.384,109408.59188999998,46204.1334,68678.73655999999,119788.494,33997.11544,43237.94212,63173.469,63173.469,63173.469,63173.469,226953.37456,226953.37456 +10364400.0,71903.031,60081.174,175437.02808,39188.50375,39188.50375,39188.50375,39029.9525,95961.64192,411760.50880000007,102505.56371999999,156198.95424,87438.486,87438.486,87438.486,73949.03950000001,71903.031,71903.031,108655.15349,40313.930850000004,59923.42314,104517.59850000001,29663.089860000004,37725.87603,62022.678,62022.678,62022.678,62022.678,216188.44653999998,216188.44653999998 +10368000.0,76689.861,73409.094,214354.55448,15721.384360000002,15721.384360000002,15721.384360000002,19037.273500000003,105100.61704,468359.78112,102938.18199,156858.18208,106063.35600000001,106063.35600000001,106063.35600000001,78346.702,76689.861,76689.861,137610.22795,37949.002199999995,56408.146479999996,98386.302,27922.96952,35512.76996,64855.10399999999,64855.10399999999,64855.10399999999,64855.10399999999,230580.84874,230580.84874 +10371600.0,86130.228,90445.128,264099.77376,10384.65791,10384.65791,10384.65791,14638.337000000001,141279.90175999998,494926.54336,106243.31718,161894.57856,121836.297,121836.297,121836.297,82662.062,86130.228,86130.228,172967.82606999998,38809.6353,57687.40852,100617.573,28556.22548,36318.15254,67459.284,67459.284,67459.284,67459.284,258964.88551999998,258964.88551999998 +10375200.0,99300.94499999998,95605.96500000001,279169.4178,4982.7585500000005,4982.7585500000005,4982.7585500000005,10453.768499999998,171471.2476,507820.09408000007,116602.8171,177680.4832,125786.82900000003,125786.82900000003,125786.82900000003,85245.26499999998,99300.94499999998,99300.94499999998,200004.98998999997,50034.509999999995,74372.28399999999,129719.09999999999,36815.515999999996,46822.418,69073.26299999999,69073.26299999999,69073.26299999999,69073.26299999999,298564.8412999999,298564.8412999999 +10378800.0,100677.50399999999,100212.771,292621.29131999996,5634.963840000001,5634.963840000001,5634.963840000001,21663.096,167139.84224,495565.22112,144199.17666,219732.07872,123499.89000000001,123499.89000000001,123499.89000000001,83423.284,100677.50399999999,100677.50399999999,195428.8089,51784.563599999994,76973.59823999999,134256.276,38103.20976,48460.12248,71573.418,71573.418,71573.418,71573.418,302703.69535999995,302703.69535999995 +10382400.0,103663.422,101961.318,297727.04855999997,7674.71353,7674.71353,7674.71353,22254.182999999997,161578.84824,475033.87776000006,170067.51195000001,259150.49440000003,158076.09,158076.09,158076.09,91622.258,103663.422,103663.422,196126.5475,51812.945999999996,77015.7864,134329.86,38124.0936,48486.6828,80844.58499999999,80844.58499999999,80844.58499999999,80844.58499999999,311681.35548,311681.35548 +10386000.0,167126.127,120270.084,351188.64528,31775.434240000002,31775.434240000002,31775.434240000002,34309.0125,524019.47407999996,461446.12864000007,288372.48867,439424.74464000005,174240.978,174240.978,174240.978,167868.435,167126.127,167126.127,377814.12915999995,63942.452999999994,95045.32519999998,165776.72999999998,47049.0148,59837.505399999995,137305.59,137305.59,137305.59,137305.59,502492.55518,502492.55518 +10389600.0,606539.175,237180.58500000002,692567.3082000001,137249.0284,137249.0284,137249.0284,346374.6405,2192000.42192,1202252.8928,1273090.7479500002,1939947.8064000004,389559.27900000004,389559.27900000004,389559.27900000004,412576.58400000003,606539.175,606539.175,1384949.95704,482366.36025,716998.8861,1250579.4525000001,354926.3589,451399.63095,700513.8060000001,700513.8060000001,700513.8060000001,700513.8060000001,1823661.1195,1823661.1195 +10393200.0,429614.24399999995,549043.953,1603208.3427600001,214493.79039000004,214493.79039000004,214493.79039000004,833689.129,2289033.3476,992702.6022400002,1530781.09149,2332618.80608,625583.577,625583.577,625583.577,667064.986,429614.24399999995,429614.24399999995,677468.40382,925314.00975,1375405.0218999998,2398962.2475,680848.3331,865911.13505,643072.422,643072.422,643072.422,643072.422,1291706.82696,1291706.82696 +10396800.0,1083248.358,518019.07499999995,1512615.699,183672.66533000002,183672.66533000002,183672.66533000002,316234.4045,1368407.3379999998,1910038.4870400003,1122960.39408,1711177.74336,683992.89,683992.89,683992.89,329048.3245,1083248.358,1083248.358,379112.58384999994,393046.17795,584231.60278,1019008.6095,289204.34822,367813.58381,1189927.29,1189927.29,1189927.29,1189927.29,3256966.7297199997,3256966.7297199997 +10400400.0,542517.459,336851.27999999997,983605.7375999999,191217.73308,191217.73308,191217.73308,170909.4415,433827.9624,2943756.90496,132308.12238000002,201612.37696000002,497098.34400000004,497098.34400000004,497098.34400000004,445256.581,542517.459,542517.459,219228.0155,794567.0214,1181060.11576,2059988.574,584644.37624,743557.78052,150813.405,150813.405,150813.405,150813.405,1631169.16006,1631169.16006 +10404000.0,144323.418,29928.546000000002,87391.35432,119765.83058000002,119765.83058000002,119765.83058000002,98218.8235,138136.25896,132823.96480000002,75677.63301,115318.29792,42443.58,42443.58,42443.58,40941.6245,144323.418,144323.418,70006.24071999999,46915.264800000004,69735.77632,121632.16800000002,34520.36768,43903.420640000004,47860.869,47860.869,47860.869,47860.869,433932.41012,433932.41012 +10407600.0,185054.80199999997,468783.31799999997,1368847.28856,115176.74685000001,115176.74685000001,115176.74685000001,253142.4595,418694.30903999996,371230.62656,216497.76099,329901.35008,92734.188,92734.188,92734.188,309225.21699999995,185054.80199999997,185054.80199999997,120051.38547999998,77995.19159999999,115933.59344,202209.756,57389.05456,72988.09288,111015.13200000001,111015.13200000001,111015.13200000001,111015.13200000001,556398.1046799999,556398.1046799999 +10411200.0,150725.814,65392.011,190944.67212,94913.29133000001,94913.29133000001,94913.29133000001,199601.53499999997,298087.55176,224928.15872,147820.03929000002,225249.58368,106159.47899999999,106159.47899999999,106159.47899999999,73551.4955,150725.814,150725.814,118535.0907,68062.72049999998,101169.77219999998,176458.90499999997,50080.71779999999,63693.26189999999,99642.79200000002,99642.79200000002,99642.79200000002,99642.79200000002,453182.28076,453182.28076 +10414800.0,33318.291,10799.394,31534.23048,67165.15058,67165.15058,67165.15058,57965.20799999999,61222.9684,26630.181760000003,32807.20989,49991.93888,22446.549,22446.549,22446.549,20705.7725,33318.291,33318.291,11797.987239999997,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,15141.392999999998,15141.392999999998,15141.392999999998,15141.392999999998,100176.99493999999,100176.99493999999 +10418400.0,122154.56100000002,82570.824,241106.80608,61143.36580000001,61143.36580000001,61143.36580000001,64906.442999999985,250902.74032,26228.82944,237010.84827000002,361159.38784000004,55763.409,55763.409,55763.409,42330.928499999995,122154.56100000002,122154.56100000002,281610.83911999996,41182.0848,61213.86431999999,106768.36799999999,30301.87968,38538.29664,31779.510000000002,31779.510000000002,31779.510000000002,31779.510000000002,367278.04674,367278.04674 +10422000.0,40392.462,183965.20200000002,537178.3898400001,240611.66415000003,240611.66415000003,240611.66415000003,189093.25400000002,243287.28688,53483.58848000001,30518.553029999995,46504.46176,44242.89,44242.89,44242.89,288322.293,40392.462,40392.462,214840.61729,97576.9578,145040.31751999998,252977.298,71797.36648,91312.75804,56256.98700000001,56256.98700000001,56256.98700000001,56256.98700000001,121446.66907999999,121446.66907999999 +10425600.0,31660.905,10796.103,31524.620759999998,53288.73385,53288.73385,53288.73385,43769.404,37897.61712,28098.067840000003,25394.768280000004,38696.78976000001,11582.678999999998,11582.678999999998,11582.678999999998,15529.3285,31660.905,31660.905,13939.288609999998,15462.288449999998,22983.450979999998,40087.4145,11377.190019999998,14469.64771,12543.432,12543.432,12543.432,12543.432,95193.7877,95193.7877 +10429200.0,634604.6039999999,264268.806,771664.91352,126496.36923000001,126496.36923000001,126496.36923000001,512646.04999999993,804875.6795199999,568030.0140800001,797901.8867400001,1215850.49408,544013.439,544013.439,544013.439,104968.402,634604.6039999999,634604.6039999999,9502.102089999998,141723.76004999998,210660.99641999998,367431.9705,104280.69258,132625.44459,383516.00099999993,383516.00099999993,383516.00099999993,383516.00099999993,1908044.5093599998,1908044.5093599998 +10432800.0,206162.49299999996,76328.86200000001,222880.27704000002,162458.42932000002,162458.42932000002,162458.42932000002,190729.10849999997,339747.87504,320390.23616000003,240554.70138,366559.54496,141815.619,141815.619,141815.619,87836.6615,206162.49299999996,206162.49299999996,39312.00493999999,81709.45469999999,121454.54747999998,211839.327,60122.01852,76463.90946,124325.00399999999,124325.00399999999,124325.00399999999,124325.00399999999,619861.8956199999,619861.8956199999 +10436400.0,483022.32,328215.14400000003,958388.22048,184720.22635,184720.22635,184720.22635,465584.14,1002861.7944,896251.39136,645548.6074799999,983693.1161599999,451472.304,451472.304,451472.304,301360.696,483022.32,483022.32,233676.64462999997,312768.25244999997,464904.90857999993,810880.6545,230135.65241999997,292689.30290999997,414591.081,414591.081,414591.081,414591.081,1452287.1088,1452287.1088 +10440000.0,600468.897,477509.409,1394327.4742799997,172200.17375000002,172200.17375000002,172200.17375000002,504222.649,1210690.82048,1260550.3046400002,863433.45753,1315708.12576,597532.689,597532.689,597532.689,553008.7990000001,600468.897,600468.897,377224.75986,432489.24135,642860.55134,1121268.4035,318226.65166000003,404724.49993,542752.4639999999,542752.4639999999,542752.4639999999,542752.4639999999,1805409.81698,1805409.81698 +10443600.0,443395.32,393364.191,1148623.43772,138122.48296000002,138122.48296000002,138122.48296000002,353081.26,681310.1388,961567.46944,544269.48219,829363.0204800001,337122.642,337122.642,337122.642,393819.223,443395.32,443395.32,393538.14903,263259.99944999994,391314.86337999994,682525.9244999998,193707.35761999997,246359.35750999997,420334.743,420334.743,420334.743,420334.743,1333141.9287999999,1333141.9287999999 +10447200.0,86992.431,70909.83299999998,207056.71235999998,78039.30332,78039.30332,78039.30332,74017.84599999999,129711.37568,491023.63712,123338.09271,187943.76032,100404.012,100404.012,100404.012,93018.1805,86992.431,86992.431,128703.91651,51355.39725,76335.6769,133143.6225,37787.428100000005,48058.50755,73582.974,73582.974,73582.974,73582.974,261557.24253999998,261557.24253999998 +10450800.0,87147.3,78483.54299999999,229171.94555999996,39812.12543,39812.12543,39812.12543,40776.490999999995,116257.91952,518045.6512000001,123935.77140000001,188854.5088,115734.312,115734.312,115734.312,92298.815,87147.3,87147.3,139142.50635999997,48446.19315,72011.37846,125601.2415,35646.82854,45336.06717,76043.904,76043.904,76043.904,76043.904,262022.882,262022.882 +10454400.0,86631.67499999999,92269.038,269425.59096,16130.455990000004,16130.455990000004,16130.455990000004,20134.499,140536.54568,529647.3107200001,115965.17499,176708.83808000002,130846.95599999998,130846.95599999998,130846.95599999998,90030.045,86631.67499999999,86631.67499999999,182336.84027,43117.6527,64090.93068,111786.50700000001,31726.075320000004,40349.60586,73323.64199999999,73323.64199999999,73323.64199999999,73323.64199999999,260472.56949999998,260472.56949999998 +10458000.0,102315.23700000002,101128.42500000002,295295.00100000005,10719.973000000002,10719.973000000002,10719.973000000002,19039.5765,186518.87191999998,540586.03008,120657.57311999999,183859.15904,135860.844,135860.844,135860.844,92417.836,102315.23700000002,102315.23700000002,210714.44056,50490.30915,75049.79286,130900.8015,37150.894140000004,47248.95597,74696.307,74696.307,74696.307,74696.307,307627.81258,307627.81258 +10461600.0,110729.307,110719.89600000001,323302.09632,5915.4397500000005,5915.4397500000005,5915.4397500000005,25248.188000000002,189314.67848,553646.29504,156978.47759999998,239205.29919999998,139974.852,139974.852,139974.852,93536.611,110729.307,110729.307,218570.54140999998,57978.16785,86179.89394,150313.7685,42660.47906,54256.112629999996,77902.008,77902.008,77902.008,77902.008,332926.11637999996,332926.11637999996 +10465200.0,121086.39000000001,120687.30300000001,352406.92476,6661.30795,6661.30795,6661.30795,27421.0265,194984.5476,564205.80288,202704.70101000002,308883.35392,188206.83899999998,188206.83899999998,188206.83899999998,116706.19100000002,121086.39000000001,121086.39000000001,235340.50058999998,62027.434799999995,92198.80432,160811.868,45639.939679999996,58045.42664,95500.545,95500.545,95500.545,95500.545,364066.41260000004,364066.41260000004 +10468800.0,143522.586,124077.10500000001,362305.14660000004,11151.1895,11151.1895,11151.1895,36793.851500000004,218026.78152000002,568006.2848000001,227999.00045999998,347427.04832,229543.98,229543.98,229543.98,169929.095,143522.586,143522.586,238309.93003999998,71395.5789,106123.79875999999,185099.649,52533.04324,66812.15902,121745.32199999999,121745.32199999999,121745.32199999999,121745.32199999999,431524.57524,431524.57524 +10472400.0,232606.305,147344.871,430247.02332000004,34506.85194000001,34506.85194000001,34506.85194000001,41860.587999999996,620110.60048,537325.9904,359911.66659,548436.82528,242432.91,242432.91,242432.91,228607.2495,232606.305,232606.305,424590.39310999995,88356.53745,131334.90258,229072.5045,65012.95842,82684.26591,205640.604,205640.604,205640.604,205640.604,699369.6237,699369.6237 +10476000.0,710749.5930000001,279530.967,816230.4236399999,165712.94784,165712.94784,165712.94784,498379.66150000005,2479382.3543200004,1647024.4531200002,1570687.38708,2393428.39936,470727.98099999997,470727.98099999997,470727.98099999997,672627.0425,710749.5930000001,710749.5930000001,1454654.5001299998,680436.6646499999,1011414.4990599998,1764095.0565,500666.97793999995,636754.3108699999,815395.464,815395.464,815395.464,815395.464,2136987.1096200002,2136987.1096200002 +10479600.0,469406.13300000003,607473.738,1773823.31496,235726.66293000002,235726.66293000002,235726.66293000002,999892.81,2532039.87648,1138729.2076800002,1664435.21412,2536282.23104,670361.9879999999,670361.9879999999,670361.9879999999,764606.0974999999,469406.13300000003,469406.13300000003,818516.2762399999,1051656.57855,1563203.1118199998,2726517.0555,773811.50718,984142.82289,707275.869,707275.869,707275.869,707275.869,1411347.77322,1411347.77322 +10483200.0,1167845.922,631226.274,1843180.7200799999,190728.57606,190728.57606,190728.57606,384711.9115,1618213.2737599998,2311195.23904,1284365.12232,1957127.80544,810601.6950000001,810601.6950000001,810601.6950000001,403755.072,1167845.922,1167845.922,415078.01205,481506.11999999994,715720.2079999999,1248349.2,354293.392,450594.616,1307703.9870000002,1307703.9870000002,1307703.9870000002,1307703.9870000002,3511323.4054799997,3511323.4054799997 +10486800.0,564140.574,345750.69,1009592.0147999999,198054.07137999998,198054.07137999998,198054.07137999998,181578.1135,465638.51832000003,3283270.5580800003,138141.78189,210501.76288,496773.60599999997,496773.60599999997,496773.60599999997,439933.0425,564140.574,564140.574,235648.36945,892460.6000999999,1326571.06484,2313786.741,656674.7131599999,835166.83318,153089.07,153089.07,153089.07,153089.07,1696182.65916,1696182.65916 +10490400.0,164089.75799999997,33310.346999999994,97266.21323999998,123575.73723000001,123575.73723000001,123575.73723000001,98282.8875,134622.6288,160665.78688000003,79599.21144000001,121294.03648000001,45098.990999999995,45098.990999999995,45098.990999999995,43108.915499999996,164089.75799999997,164089.75799999997,70677.9957,50414.238,74936.71919999999,130703.57999999999,37094.9208,47177.76839999999,50957.844,50957.844,50957.844,50957.844,493363.2057199999,493363.2057199999 +10494000.0,198401.88300000003,498550.392,1455767.14464,116513.44474000002,116513.44474000002,116513.44474000002,278716.57800000004,436532.92192,389319.66016,238392.54705000002,363264.8336,100598.661,100598.661,100598.661,345754.465,198401.88300000003,198401.88300000003,129928.92730999998,88510.44555,131563.67462,229471.52550000002,65126.20438,82828.29349,128290.977,128290.977,128290.977,128290.977,596528.32822,596528.32822 +10497600.0,269779.599,164826.78,481294.1976,102152.97884,102152.97884,102152.97884,232658.468,553822.50664,501844.34112,298248.32204999996,454473.6336,200261.68499999997,200261.68499999997,200261.68499999997,142682.82,269779.599,269779.599,220865.97922999997,144494.3772,214779.29647999996,374615.05199999997,106319.31951999999,135218.19496,207731.84999999998,207731.84999999998,207731.84999999998,207731.84999999998,811137.32766,811137.32766 +10501200.0,165622.521,86806.593,253475.25155999998,77524.05353,77524.05353,77524.05353,79851.4535,325150.36871999997,296603.31392000004,158926.6581,242173.9552,123804.783,123804.783,123804.783,81999.06049999999,165622.521,165622.521,141275.44795,70067.3895,104149.55179999999,181656.195,51555.7582,65569.2361,117338.988,117338.988,117338.988,117338.988,497971.71314,497971.71314 +10504800.0,212610.37800000003,126989.967,370810.70364,120336.50970000001,120336.50970000001,120336.50970000001,119324.83499999999,408165.84024000005,129829.50592000001,375050.21967,571505.09664,107037.282,107037.282,107037.282,212915.0905,212610.37800000003,212610.37800000003,407198.73662,145571.97285,216381.05594,377408.8185,107112.21706,136226.61163,78364.68900000001,78364.68900000001,78364.68900000001,78364.68900000001,639248.53652,639248.53652 +10508400.0,55785.606,278258.886,812515.94712,261135.77061,261135.77061,261135.77061,246830.23049999998,368767.64096,77668.86016000001,47029.74864,71664.37888,88151.87400000001,88151.87400000001,88151.87400000001,393809.27249999996,55785.606,55785.606,319437.71808,135666.0171,201656.64763999998,351726.711,99823.39035999999,126956.59378,91004.073,91004.073,91004.073,91004.073,167728.72204,167728.72204 +10512000.0,35661.558,11287.275,32958.84299999999,82019.93833,82019.93833,82019.93833,55681.2235,39190.926,35279.46624,26655.895770000003,40618.507840000006,12191.880000000001,12191.880000000001,12191.880000000001,15529.3285,35661.558,35661.558,16810.060149999998,15709.37085,23350.719139999997,40727.9985,11558.99386,14700.86803,13110.669,13110.669,13110.669,13110.669,107222.41772,107222.41772 +10515600.0,790650.5280000002,449097.06299999997,1311363.4239599998,139616.62066000002,139616.62066000002,139616.62066000002,911927.639,1148481.2191199998,975311.67296,1170196.14222,1783156.02624,804459.4439999999,804459.4439999999,804459.4439999999,255260.23950000003,790650.5280000002,790650.5280000002,16031.51836,361848.7282499999,537859.0972999999,938126.3324999999,266249.18769999995,338618.93334999995,577402.419,577402.419,577402.419,577402.419,2377222.58752,2377222.58752 +10519200.0,272300.47199999995,98730.13799999998,288292.00295999995,168394.74410000004,168394.74410000004,168394.74410000004,201088.9125,434183.67096,330955.28192000004,274166.75349000003,417777.91008,157092.807,157092.807,157092.807,118059.8195,272300.47199999995,272300.47199999995,76619.79832,104440.82895,155242.91118,270772.5195,76847.81982,97735.98561,158711.148,158711.148,158711.148,158711.148,818716.7524799999,818716.7524799999 +10522800.0,567615.1830000001,416460.768,1216065.4425599999,195867.69587000003,195867.69587000003,195867.69587000003,525334.166,1161389.3536,1145819.77984,813451.84956,1239545.67552,547985.373,547985.373,547985.373,507635.8594999999,567615.1830000001,567615.1830000001,427979.8125199999,420593.7717,625178.8902799999,1090428.297,309473.93572,393592.69006,509730.06899999996,509730.06899999996,509730.06899999996,509730.06899999996,1706629.65022,1706629.65022 +10526400.0,656772.483,552683.619,1613836.1674799998,218352.83008000004,218352.83008000004,218352.83008000004,584700.2174999999,1296386.88704,1763445.01184,994155.75567,1514904.00864,648947.448,648947.448,648947.448,736156.4,656772.483,656772.483,543946.57967,653892.9686999999,971959.4250799997,1695278.0669999998,481136.0609199999,611914.6546599999,635768.949,635768.949,635768.949,635768.949,1974695.9322199998,1974695.9322199998 +10530000.0,459900.0299999999,390344.454,1139805.80568,217549.86792,217549.86792,217549.86792,365489.9955,691472.7082400001,1136251.13536,612428.50053,933224.38176,345674.40300000005,345674.40300000005,345674.40300000005,412574.169,459900.0299999999,459900.0299999999,393636.72516999993,331899.57765,493342.08826,860480.3865,244212.52874,310592.44427000004,474637.296,474637.296,474637.296,474637.296,1382766.0901999997,1382766.0901999997 +10533600.0,86913.525,67037.853,195750.53076,77957.32945,77957.32945,77957.32945,73717.2205,124754.55304000001,457899.15072,130811.54205000002,199331.87360000002,102147.43500000001,102147.43500000001,102147.43500000001,93410.1525,86913.525,86913.525,121450.91269999999,55946.72835,83160.32213999999,145047.0735,41165.74086,52355.08653,76123.824,76123.824,76123.824,76123.824,261319.9985,261319.9985 +10537200.0,81983.664,71382.02399999999,208435.51007999998,39597.51433,39597.51433,39597.51433,40098.933,110776.31447999999,459828.5881600001,114354.67428,174254.74176,111343.701,111343.701,111343.701,85244.2395,81983.664,81983.664,121399.34469,45513.32085,67651.89914,117997.4985,33488.81386,42591.47803,69478.083,69478.083,69478.083,69478.083,246497.54976000002,246497.54976000002 +10540800.0,83760.159,79068.378,230879.66376,15848.65733,15848.65733,15848.65733,22831.350499999997,123878.00408,460027.14816000004,103939.57622999999,158384.11616,113869.848,113869.848,113869.848,78970.68549999999,83760.159,83760.159,160206.81429999997,38870.90775,57778.48509999999,100776.42749999999,28601.309899999997,36375.491449999994,65516.259000000005,65516.259000000005,65516.259000000005,65516.259000000005,251838.87806,251838.87806 +10544400.0,88212.762,86724.447,253235.38524,10369.14307,10369.14307,10369.14307,26376.805,153398.67848,459424.68992000003,104077.39545,158594.12639999998,113339.40600000002,113339.40600000002,113339.40600000002,79381.806,88212.762,88212.762,170939.64146999997,41434.32285,61588.795939999996,107422.3185,30487.47706,38774.34163,64624.221,64624.221,64624.221,64624.221,265226.37108,265226.37108 +10548000.0,96129.873,96747.37499999999,282502.33499999996,4953.4423400000005,4953.4423400000005,4953.4423400000005,22021.489,163555.18016,467183.92512,123195.73329,187726.83168,115976.505,115976.505,115976.505,79506.126,96129.873,96129.873,186415.88861999998,48425.34375,71980.3875,125547.1875,35631.4875,45316.55625,65782.20000000001,65782.20000000001,65782.20000000001,65782.20000000001,289030.48482,289030.48482 +10551600.0,103468.704,103991.274,303654.52008,6714.28714,6714.28714,6714.28714,27851.8205,169024.63215999998,485233.94304000004,158490.92448,241509.98016,121160.013,121160.013,121160.013,83408.6295,103468.704,103468.704,204074.85605,52971.5052,78737.89168,137333.532,38976.56432,49570.86536,74531.898,74531.898,74531.898,74531.898,311095.90336,311095.90336 +10555200.0,113295.53099999999,108476.244,316750.63248,9508.94857,9508.94857,9508.94857,32976.2965,174194.5856,497218.73088,191486.8956,291789.5552,167955.954,167955.954,167955.954,108454.95850000001,113295.53099999999,113295.53099999999,208521.54231999998,58119.52905,86390.01602,150680.2605,42764.49298,54388.39879,91573.068,91573.068,91573.068,91573.068,340641.8965399999,340641.8965399999 +10558800.0,193394.09999999998,131169.16199999998,383013.95303999993,33928.964850000004,33928.964850000004,33928.964850000004,40122.7085,550663.3236,498765.82336000004,322966.71162,492139.75104,198923.637,198923.637,198923.637,199864.91700000002,193394.09999999998,193394.09999999998,395017.84452,78142.08105,116151.93281999999,202590.5805,57497.13618,73125.55239,166049.142,166049.142,166049.142,166049.142,581471.5939999999,581471.5939999999 +10562400.0,664490.67,261344.991,763127.37372,179128.27427,179128.27427,179128.27427,468218.779,2340009.4344800003,1549068.3097599999,1475085.8350199999,2247749.84384,444413.655,444413.655,444413.655,605820.887,664490.67,664490.67,1452437.04684,641027.4470999999,952835.8596399998,1661923.011,471669.5783599999,599875.0677799999,778805.895,778805.895,778805.895,778805.895,1997901.9478,1997901.9478 +10566000.0,469840.827,607752.855,1774638.3366,268492.27526,268492.27526,268492.27526,979356.6684999999,2468201.6743199998,1107279.2294400001,1633856.0880599997,2489685.46752,662498.34,662498.34,662498.34,736252.44,469840.827,469840.827,788229.6350499998,1041934.2133500001,1548751.59614,2701310.9235,766657.7668600001,975044.6095300001,708835.59,708835.59,708835.59,708835.59,1412654.75318,1412654.75318 +10569600.0,1185935.07,652789.008,1906143.90336,198611.77941000002,198611.77941000002,198611.77941000002,427788.51499999996,1603963.1189599999,2424008.76224,1302696.24744,1985060.9484800003,804231.6449999999,804231.6449999999,804231.6449999999,427880.4215,1185935.07,1185935.07,450015.52881999995,497342.87955,739260.28022,1289407.4655000002,365946.11878,465414.69469000003,1309852.389,1309852.389,1309852.389,1309852.389,3565711.4438,3565711.4438 +10573200.0,584099.703,360869.187,1053738.02604,199949.69016000003,199949.69016000003,199949.69016000003,184440.5255,485729.63672,3341086.5734400004,149707.67091000002,228125.97472000003,531800.8080000001,531800.8080000001,531800.8080000001,480352.9535,584099.703,584099.703,246337.06968,910473.372,1353345.6047999999,2360486.52,669928.5552,852023.2296,165046.83299999998,165046.83299999998,165046.83299999998,165046.83299999998,1756193.10702,1756193.10702 +10576800.0,188748.99300000002,42713.418000000005,124723.18056000001,126427.69205000001,126427.69205000001,126427.69205000001,98947.59349999999,224880.9676,204834.34368,105555.08082,160845.83744,67536.534,67536.534,67536.534,49610.025499999996,188748.99300000002,188748.99300000002,101183.69872,57856.3803,85998.86652,149998.023,42570.86748,54142.14354,72452.05500000001,72452.05500000001,72452.05500000001,72452.05500000001,567505.30562,567505.30562 +10580400.0,233892.009,537375.1410000001,1569135.4117200002,118294.40755,118294.40755,118294.40755,288788.8675,545237.87016,492400.01152,314134.40457,478680.99744000006,137025.357,137025.357,137025.357,364481.7785,233892.009,233892.009,153538.97103999997,104320.01745,155063.33458,270459.3045,76758.92642,97622.92991,160605.186,160605.186,160605.186,160605.186,703235.3070599999,703235.3070599999 +10584000.0,316405.65599999996,205109.61,598920.0612,103765.30527000001,103765.30527000001,103765.30527000001,258013.41649999996,657364.1940799999,739099.13728,372698.16423,567921.01216,255316.86000000004,255316.86000000004,255316.86000000004,191304.91449999998,316405.65599999996,316405.65599999996,277289.28018999996,187241.03370000003,278318.77108000003,485439.71700000006,137772.41492,175220.62166000003,256670.055,256670.055,256670.055,256670.055,951326.3390399999,951326.3390399999 +10587600.0,200305.989,121490.919,354753.48348,79893.55462,79893.55462,79893.55462,94392.053,407635.64999999997,450795.41376,209783.63112,319670.29504,160784.565,160784.565,160784.565,107306.388,200305.989,200305.989,180719.72788999998,102516.0786,152381.92424,265782.42600000004,75431.58376000001,95934.79948,154803.213,154803.213,154803.213,154803.213,602253.34026,602253.34026 +10591200.0,252846.24299999996,159544.45799999998,465869.81736,155628.27742000003,155628.27742000003,155628.27742000003,147810.13450000001,519670.53119999997,203619.72224000003,453378.30552,690862.17984,142220.478,142220.478,142220.478,299042.0195,252846.24299999996,252846.24299999996,479965.09482999996,188129.42955,279639.30022,487742.96550000005,138426.09878,176051.98469,108507.58499999999,108507.58499999999,108507.58499999999,108507.58499999999,760224.3706199998,760224.3706199998 +10594800.0,98679.984,323854.314,945654.59688,266811.43445,266811.43445,266811.43445,268277.6145,502551.08511999995,150422.19072,89666.79582,136635.11744,135616.50900000002,135616.50900000002,135616.50900000002,455001.24950000003,98679.984,98679.984,400111.58641999995,161175.63465,239574.64706,417862.7565,118593.42994,150828.55687,126867.444,126867.444,126867.444,126867.444,296697.81856,296697.81856 +10598400.0,74319.94200000001,28362.669,82818.99348,103093.61282000001,103093.61282000001,103093.61282000001,66896.78099999999,122404.17495999999,109181.0176,51530.67108,78522.92736,37809.54,37809.54,37809.54,35399.8925,74319.94200000001,74319.94200000001,67323.20829,25095.11625,37301.8765,65061.4125,18465.0485,23484.07175,34053.885,34053.885,34053.885,34053.885,223455.29228,223455.29228 +10602000.0,918053.496,572178.51,1670761.2492,176815.61073,176815.61073,176815.61073,1207190.2429999998,1487580.87168,1400782.98368,1491796.5869100003,2273213.8467200003,1016065.2270000002,1016065.2270000002,1016065.2270000002,523235.94749999995,918053.496,918053.496,158802.61656999998,577533.47895,858457.17118,1497309.0195,424950.55981999997,540457.25561,724215.72,724215.72,724215.72,724215.72,2760280.84464,2760280.84464 +10605600.0,426717.921,210011.613,613233.90996,181276.85169,181276.85169,181276.85169,291741.142,719234.64328,636865.0105600001,470733.51464999997,717308.2128,303134.292,303134.292,303134.292,259413.266,426717.921,426717.921,178163.21288999997,194946.41384999998,289772.20034,505416.6285,143442.05266000002,182431.33543,297738.81299999997,297738.81299999997,297738.81299999997,297738.81299999997,1282998.54914,1282998.54914 +10609200.0,711068.241,583413.336,1703566.9411199999,244774.37468,244774.37468,244774.37468,653792.398,1417612.53248,1905858.53248,1079497.7067,1644948.8864,709733.0249999999,709733.0249999999,709733.0249999999,855169.686,711068.241,711068.241,575173.60953,703714.2381000001,1046014.74404,1824444.3210000002,517794.67396000004,658537.5215800001,705015.597,705015.597,705015.597,705015.597,2137945.17794,2137945.17794 +10612800.0,779745.702,644191.512,1881039.21504,273252.4902800001,273252.4902800001,273252.4902800001,760909.7685,1528140.7053600003,2317114.89472,1237962.92592,1886419.6966400002,789645.1409999998,789645.1409999998,789645.1409999998,997812.1545000002,779745.702,779745.702,631710.77281,941094.7335,1398861.8014,2439875.235,692459.8286,880678.7753,845930.808,845930.808,845930.808,845930.808,2344435.4106799997,2344435.4106799997 +10616400.0,538577.9789999999,465244.68,1358514.4656,242366.42837000004,242366.42837000004,242366.42837000004,474351.6294999999,800354.57928,1617128.0083200003,734408.46969,1119098.62048,432988.485,432988.485,432988.485,520729.4715,538577.9789999999,538577.9789999999,467585.54492,439321.13369999995,653015.61108,1138980.717,323253.57492,411117.80166,554288.955,554288.955,554288.955,554288.955,1619324.4568599998,1619324.4568599998 +10620000.0,102703.40399999998,82217.679,240075.62268,78475.72942,78475.72942,78475.72942,84144.928,155570.7088,543142.48192,148111.04196,225693.01632,142315.785,142315.785,142315.785,110326.832,102703.40399999998,102703.40399999998,140755.25126,63874.1538,94943.80391999999,165599.658,46998.76008,59773.590840000004,87770.475,87770.475,87770.475,87770.475,308794.9013599999,308794.9013599999 +10623600.0,100276.42800000001,91594.01699999999,267454.52963999996,40067.38362000001,40067.38362000001,40067.38362000001,56082.761,148447.9236,533844.0204800001,129524.68998,197370.95616,137043.228,137043.228,137043.228,98556.84300000001,100276.42800000001,100276.42800000001,184075.50616,53381.56365,79347.41066,138396.6465,39278.28634,49954.59907,79927.01699999999,79927.01699999999,79927.01699999999,79927.01699999999,301497.79352,301497.79352 +10627200.0,99468.84599999999,99325.01999999999,290029.0584,16691.021160000004,16691.021160000004,16691.021160000004,35950.764500000005,190842.98312,542691.0054400001,132989.51946,202650.69632000002,138306.729,138306.729,138306.729,96316.983,99468.84599999999,99468.84599999999,201031.60752999998,47182.80374999999,70133.4515,122325.78749999999,34717.2235,44153.78425,76838.814,76838.814,76838.814,76838.814,299069.66364,299069.66364 +10630800.0,110172.42300000001,114291.70200000002,333731.76984,12007.765770000002,12007.765770000002,12007.765770000002,33291.943999999996,194402.06016,543791.98528,148713.50235000002,226611.05120000002,138844.029,138844.029,138844.029,94949.3545,110172.42300000001,110172.42300000001,223253.38906,56250.7821,83612.27364,145835.361,41389.46436,52639.620780000005,78536.352,78536.352,78536.352,78536.352,331251.75182,331251.75182 +10634400.0,117847.10999999999,119540.226,349057.45992,7746.4269300000005,7746.4269300000005,7746.4269300000005,36731.037000000004,194828.07064000002,555562.05632,195536.82645000002,297960.87840000005,141469.38900000002,141469.38900000002,141469.38900000002,96708.3425,117847.10999999999,117847.10999999999,235190.03897999995,61201.20645,90970.68217999999,158669.7945,45031.99882,57272.24011,88891.46699999999,88891.46699999999,88891.46699999999,88891.46699999999,354326.9773999999,354326.9773999999 +10638000.0,135770.352,126042.006,368042.65752,8992.22137,8992.22137,8992.22137,38216.171,205394.14319999996,577856.0467200001,232264.06917,353926.20064,209285.81399999998,209285.81399999998,209285.81399999998,144711.8015,135770.352,135770.352,244011.56454999998,72236.205,107373.322,187279.05000000002,53151.57800000001,67598.819,135949.836,135949.836,135949.836,135949.836,408216.19168,408216.19168 +10641600.0,166854.56999999998,135567.387,395856.77004,12589.120499999999,12589.120499999999,12589.120499999999,51382.3345,248158.99152,582498.9561600001,248953.16334000003,379357.20128000004,249201.0,249201.0,249201.0,186323.79499999998,166854.56999999998,166854.56999999998,258445.34520999997,85815.08954999999,127557.24422,222483.5655,63142.95478,80305.97269,182941.029,182941.029,182941.029,182941.029,501676.07379999995,501676.07379999995 +10645200.0,191416.902,145129.272,423777.47424,30902.236090000002,30902.236090000002,30902.236090000002,62377.931,323520.7576,572814.1024000001,274575.90279,418401.37568000006,273182.328,273182.328,273182.328,190432.4345,191416.902,191416.902,278443.90625999996,93841.59825,139488.0053,243293.0325,69048.8797,87817.19935,222471.45299999998,222471.45299999998,222471.45299999998,222471.45299999998,575526.8186799999,575526.8186799999 +10648800.0,692868.792,714852.4890000001,2087369.26788,245240.84959,245240.84959,245240.84959,817656.749,1057051.76176,477384.52352000005,781409.48949,1190719.22208,268653.75899999996,268653.75899999996,268653.75899999996,1228031.5355,692868.792,692868.792,1168537.0613799999,337412.25945,501536.24738,874772.5245,248268.77362000002,315751.22551,839636.811,839636.811,839636.811,839636.811,2083225.50128,2083225.50128 +10652400.0,1110002.6519999998,1032340.149,3014433.2350799995,600650.6244200001,600650.6244200001,600650.6244200001,1104066.1904999998,1826541.05336,1725908.09792,1641177.19437,2500841.43904,673645.293,673645.293,673645.293,703912.825,1110002.6519999998,1110002.6519999998,289694.48663999996,843124.1764499999,1253236.4301799997,2185877.4944999996,620372.8508199999,788997.6861099999,1202527.3469999998,1202527.3469999998,1202527.3469999998,1202527.3469999998,3337407.9736799994,3337407.9736799994 +10656000.0,935736.9209999999,641035.569,1871823.8614800002,286714.73160000006,286714.73160000006,286714.73160000006,596625.5295000001,1623356.73112,2735603.29088,1323104.9825700002,2016159.9734400003,1115911.6709999999,1115911.6709999999,1115911.6709999999,802607.477,935736.9209999999,935736.9209999999,429979.95001,1120680.2141999998,1665801.2072799997,2905467.222,824599.2687199999,1048735.31156,658967.283,658967.283,658967.283,658967.283,2813449.0091399997,2813449.0091399997 +10659600.0,721646.169,369429.97199999995,1078735.51824,220534.09367000003,220534.09367000003,220534.09367000003,1057439.978,1715947.77616,2408439.9283200004,1245094.788,1897287.296,921174.6300000001,921174.6300000001,921174.6300000001,1110437.9895000001,721646.169,721646.169,553588.30163,1158303.7057500002,1721725.5083,3003009.6075000004,852282.7267000001,1083943.4678500001,719949.213,719949.213,719949.213,719949.213,2169749.48146,2169749.48146 +10663200.0,352949.74199999997,206608.79700000002,603297.68724,172787.76779,172787.76779,172787.76779,567713.1005000001,1114802.3946399998,1108519.0707200002,675229.35354,1028920.91968,254139.594,254139.594,254139.594,437284.386,352949.74199999997,352949.74199999997,108401.88293999998,448086.7431,666044.98604,1161706.371,329703.33196000004,419320.68058000004,301092.83400000003,301092.83400000003,301092.83400000003,301092.83400000003,1061202.22428,1061202.22428 +10666800.0,183922.179,69723.615,203592.9558,129952.73533000001,129952.73533000001,129952.73533000001,115211.92899999999,491275.14303999994,229361.92192,262357.6788,399783.12960000004,121214.91,121214.91,121214.91,86051.92749999999,183922.179,183922.179,57818.06147,64239.334200000005,95486.61528000001,166546.42200000002,47267.46072,60115.327560000005,130925.043,130925.043,130925.043,130925.043,552992.68486,552992.68486 +10670400.0,333747.945,180222.35100000002,526249.26492,115062.97,115062.97,115062.97,214638.067,680437.47344,630851.2646400001,437383.15194,666488.61248,294476.961,294476.961,294476.961,237274.4605,333747.945,333747.945,156967.56789999997,189770.80544999999,282079.07378,491998.38450000004,139633.82722,177587.98831000002,265286.505,265286.505,265286.505,265286.505,1003468.8213,1003468.8213 +10674000.0,317171.16,171611.346,501105.13032,93936.88205000001,93936.88205000001,93936.88205000001,223614.1145,636499.3807999999,648651.1948800001,406444.55313,619344.08096,280535.637,280535.637,280535.637,234289.12150000004,317171.16,317171.16,134976.68561,203978.54565000001,303197.73946,528833.2665,150087.91754000002,190883.62667000003,259477.32,259477.32,259477.32,259477.32,953627.9543999998,953627.9543999998 +10677600.0,195763.995,96928.11300000001,283030.08996,76026.20806,76026.20806,76026.20806,105847.77350000001,374291.41664,312699.0336,226362.91524,344933.96608,150262.59,150262.59,150262.59,96636.8515,195763.995,195763.995,73156.7811,71787.4893,106706.34212,186115.71300000002,52821.41188,67178.90974,137592.324,137592.324,137592.324,137592.324,588597.0782999999,588597.0782999999 +10681200.0,29457.384000000002,3691.7309999999998,10779.854519999999,46525.435770000004,46525.435770000004,46525.435770000004,38649.69149999999,39248.91136,14138.15744,26352.818100000004,40156.675200000005,6807.357,6807.357,6807.357,13803.846000000001,29457.384000000002,29457.384000000002,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,14646.341999999999,14646.341999999999,14646.341999999999,14646.341999999999,88568.53456,88568.53456 +10684800.0,103927.85699999999,24201.425999999996,70668.16391999999,65392.94234,65392.94234,65392.94234,46933.243,143851.21871999998,94471.22496,74135.14836,112967.84512,43265.319,43265.319,43265.319,18398.1105,103927.85699999999,103927.85699999999,10595.37661,17610.165449999997,26176.097779999993,45655.98449999999,12957.603219999997,16479.636309999998,46054.323000000004,46054.323000000004,46054.323000000004,46054.323000000004,312476.42338,312476.42338 +10688400.0,48361.254,7757.946,22653.20232,85367.5581,85367.5581,85367.5581,71248.82800000001,70622.7112,30650.689920000004,47996.74845,73137.9024,12885.621,12885.621,12885.621,25307.054500000002,48361.254,48361.254,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,25339.56,25339.56,25339.56,25339.56,145406.17036000002,145406.17036000002 +10692000.0,198233.001,67222.557,196289.86643999998,165585.72371000002,165585.72371000002,165585.72371000002,137792.662,376448.95207999996,267836.19136,217666.25391,331681.91072,122822.823,122822.823,122822.823,78944.8835,198233.001,198233.001,56705.23911,58973.65785,87659.60994,152894.6685,43392.96306,55187.694630000005,119021.205,119021.205,119021.205,119021.205,596020.55634,596020.55634 +10695600.0,615936.726,398298.948,1163032.92816,191830.63845,191830.63845,191830.63845,393902.33400000003,1283959.3612,1222306.73472,832717.9467600001,1268903.53792,576077.196,576077.196,576077.196,400973.49250000005,615936.726,615936.726,317768.06126,308654.18955,458789.68422,800214.5655,227108.51478000003,288839.35269,519376.407,519376.407,519376.407,519376.407,1851916.42284,1851916.42284 +10699200.0,685760.88,588960.2220000001,1719763.8482400002,169087.84882,169087.84882,169087.84882,527983.2494999999,1256292.19768,1402627.4048,908632.7714099999,1384583.27072,571073.565,571073.565,571073.565,651335.3489999999,685760.88,685760.88,422440.98208000005,569551.9455,846593.2622,1476616.1550000003,419077.72780000005,532988.1169,659195.2949999999,659195.2949999999,659195.2949999999,659195.2949999999,2061854.3791999999,2061854.3791999999 +10702800.0,340425.015,268104.102,782863.97784,126532.92597,126532.92597,126532.92597,242596.648,586268.69984,747537.0233600001,449849.01003000006,685484.20576,253727.943,253727.943,253727.943,356291.2255,340425.015,340425.015,378981.5498299999,142709.53815,212126.27646,369987.6915,105006.03054,133547.93817,351571.092,351571.092,351571.092,351571.092,1023544.5451,1023544.5451 +10706400.0,109557.852,104093.661,303953.49012,78801.08115,78801.08115,78801.08115,75870.30850000001,183581.85416,572664.5024000001,184154.61267000003,280616.55264,139139.835,139139.835,139139.835,114773.981,109557.852,109557.852,219039.26147999996,65478.20085,97328.09113999999,169758.2985,48179.02186,61274.66203,96968.121,96968.121,96968.121,96968.121,329403.94168,329403.94168 +10710000.0,107782.85699999999,100884.20999999999,294581.8932,40310.70857,40310.70857,40310.70857,49324.2015,195354.34223999997,547160.11776,178434.44850000003,271900.112,140931.40800000002,140931.40800000002,140931.40800000002,103977.7375,107782.85699999999,107782.85699999999,209360.23315999997,53105.268599999996,78936.72024,137680.326,39074.98776,49696.04148,90516.9,90516.9,90516.9,90516.9,324067.12337999995,324067.12337999995 +10713600.0,127221.315,109866.91799999999,320811.40056,16606.043630000004,16606.043630000004,16606.043630000004,39749.1185,204367.01567999998,555612.72448,186605.90046,284351.84832000005,143191.005,143191.005,143191.005,99161.118,127221.315,127221.315,216631.06283,61949.38725,92082.7929,160609.5225,45582.5121,57972.38955,91922.829,91922.829,91922.829,91922.829,382512.0871,382512.0871 +10717200.0,139554.846,125035.86000000002,365104.7112,11586.95626,11586.95626,11586.95626,44540.10049999999,209229.23031999997,576269.2857600001,208631.52156,317914.69952,148405.15800000002,148405.15800000002,148405.15800000002,102391.919,139554.846,139554.846,243644.66255999997,64876.05495,96433.04957999999,168197.1795,47735.96142,60711.17241,100661.74499999998,100661.74499999998,100661.74499999998,100661.74499999998,419594.90364,419594.90364 +10720800.0,157125.804,131648.63999999998,384414.0288,10388.105200000002,10388.105200000002,10388.105200000002,41581.239,239374.16567999998,604763.62496,250296.5892,381404.3264,228961.914,228961.914,228961.914,110622.575,157125.804,157125.804,258997.01373,72978.7725,108477.08899999999,189204.225,53697.961,68293.7155,135854.916,135854.916,135854.916,135854.916,472424.91736,472424.91736 +10724400.0,172557.03,129213.987,377304.84203999996,11858.56364,11858.56364,11858.56364,47313.763000000006,288858.68736,568748.4204800001,243468.57759,370999.73728,238631.649,238631.649,238631.649,177055.956,172557.03,172557.03,252897.64512999996,85662.55845,127330.51898,222088.1145,63030.72202,80163.23371,176613.615,176613.615,176613.615,176613.615,518821.4702,518821.4702 +10728000.0,211334.76299999998,148774.60499999998,434421.84659999993,17297.320920000002,17297.320920000002,17297.320920000002,51348.398499999996,375145.8028,574667.5321600001,279091.00128,425281.52576,280672.272,280672.272,280672.272,191255.2005,211334.76299999998,211334.76299999998,271294.39440999995,94938.05069999999,141117.79387999998,246135.68699999998,69855.65212,88843.26226,227861.241,227861.241,227861.241,227861.241,635413.1874199999,635413.1874199999 +10731600.0,228583.37099999998,149985.75,437958.39,29923.95054,29923.95054,29923.95054,60416.762,409501.10952,574008.7155200001,306903.45504,467662.40768,289981.071,289981.071,289981.071,187786.3225,228583.37099999998,228583.37099999998,281339.38195999997,96472.74554999999,143398.99461999998,250114.52550000002,70984.88438,90279.43349,251148.963,251148.963,251148.963,251148.963,687274.0021399999,687274.0021399999 +10735200.0,775825.575,827654.658,2416751.6013599997,284224.5265200001,284224.5265200001,284224.5265200001,886632.194,1153018.89328,732284.1337600001,898416.0994200001,1369015.0086400001,355584.918,355584.918,355584.918,1334375.091,775825.575,775825.575,1400934.5394199998,375225.46514999995,557742.54326,972806.7614999999,276091.82373999996,351136.91676999995,930806.655,930806.655,930806.655,930806.655,2332648.8954999996,2332648.8954999996 +10738800.0,1230638.685,1167217.638,3408275.50296,673570.2421800001,673570.2421800001,673570.2421800001,1238102.978,2006031.3801600002,1944365.05024,1884491.47761,2871606.0611199997,737811.24,737811.24,737811.24,852350.4255,1230638.685,1230638.685,345394.64739,996903.4419000001,1481816.96796,2584564.4790000003,733524.01404,932904.7024200001,1361706.648,1361706.648,1361706.648,1361706.648,3700120.3129,3700120.3129 +10742400.0,1221863.535,871663.293,2545256.8155599996,412094.77716000006,412094.77716000006,412094.77716000006,889522.711,2092249.3207999999,4201893.644800001,1601522.9571600002,2440415.9347200003,1386778.0860000001,1386778.0860000001,1386778.0860000001,1133029.233,1221863.535,1221863.535,518574.8542,1685143.0917,2504829.97828,4368889.497,1239932.44772,1576961.06606,842968.0079999999,842968.0079999999,842968.0079999999,842968.0079999999,3673736.3618999994,3673736.3618999994 +10746000.0,803619.177,410520.38700000005,1198719.53004,260508.71792000002,260508.71792000002,260508.71792000002,1345338.9775,1845176.0670399999,2980417.02144,1512577.5315,2304880.048,1030382.7660000001,1030382.7660000001,1030382.7660000001,1292303.9465,803619.177,803619.177,659164.78576,1440729.8644499998,2141529.3293799995,3735225.5744999996,1060092.5916199998,1348238.56451,848724.7319999998,848724.7319999998,848724.7319999998,848724.7319999998,2416214.99218,2416214.99218 +10749600.0,525967.26,294428.07300000003,859729.97316,233879.11899000002,233879.11899000002,233879.11899000002,796995.108,1544057.0822399997,1843037.26016,921156.7344,1403667.4048,410776.377,410776.377,410776.377,714245.7664999999,525967.26,525967.26,214595.20627999998,663489.2979,986223.59836,1720157.439,488197.06364,620894.92322,464624.679,464624.679,464624.679,464624.679,1581408.2284000001,1581408.2284000001 +10753200.0,387929.052,212671.76400000002,621001.55088,149759.03217,149759.03217,149759.03217,296935.10349999997,1044481.9735199999,656610.8940800001,618561.5331,942569.9552,312711.83400000003,312711.83400000003,312711.83400000003,309886.50700000004,387929.052,387929.052,156654.31183999998,258451.53165000002,384167.46186000004,670059.5265,190169.27514,241859.58147000003,346971.309,346971.309,346971.309,346971.309,1166373.34968,1166373.34968 +10756800.0,500533.45499999996,360306.789,1052095.82388,142497.59458000003,142497.59458000003,142497.59458000003,440958.91,1003805.17632,1308085.66656,726465.7133999999,1106995.3728,461771.93999999994,461771.93999999994,461771.93999999994,468823.53700000007,500533.45499999996,500533.45499999996,258881.59777999998,484276.725,719838.49,1255532.25,356332.01,453187.355,477786.948,477786.948,477786.948,477786.948,1504937.2546999997,1504937.2546999997 +10760400.0,155227.07700000002,60748.155000000006,177384.61260000002,84552.01964,84552.01964,84552.01964,90314.3885,282876.10959999997,213023.13216000004,181653.02526,276804.60992,98354.81099999999,98354.81099999999,98354.81099999999,59980.634000000005,155227.07700000002,155227.07700000002,51999.38522999999,50697.2034,75357.32456,131437.194,37303.12744,47442.568119999996,99034.31399999998,99034.31399999998,99034.31399999998,99034.31399999998,466716.07818,466716.07818 +10764000.0,232609.605,123647.454,361050.56568,79363.15222,79363.15222,79363.15222,128375.88749999998,450130.4976,398597.28640000004,277894.66341,423458.53472,182438.523,182438.523,182438.523,121997.64150000001,232609.605,232609.605,96099.52390999999,90576.42345,134634.58498,234827.76450000002,66646.35602,84761.64071,169775.307,169775.307,169775.307,169775.307,699379.5457,699379.5457 +10767600.0,178581.29700000002,79524.708,232212.14736,63264.63759,63264.63759,63264.63759,82645.0485,337350.7828,278920.30016000004,200456.00274,305456.76608000003,127497.01499999998,127497.01499999998,127497.01499999998,76633.431,178581.29700000002,178581.29700000002,64825.00010999999,55213.006049999996,82069.70281999999,143144.8305,40625.86618,51668.467390000005,117365.15099999998,117365.15099999998,117365.15099999998,117365.15099999998,536934.43298,536934.43298 +10771200.0,158008.518,60465.795,176560.1214,67348.21511000002,67348.21511000002,67348.21511000002,74260.4905,295887.01056,230859.20576,173733.06657,264736.10144,105843.93600000002,105843.93600000002,105843.93600000002,60370.0895,158008.518,158008.518,52753.21804999999,45219.307049999996,67214.87121999999,117235.24049999999,33272.477779999994,42316.33918999999,98138.35800000001,98138.35800000001,98138.35800000001,98138.35800000001,475078.94412,475078.94412 +10774800.0,218615.316,110372.946,322289.00231999997,101957.51302000001,101957.51302000001,101957.51302000001,134035.99649999998,423150.88311999995,360232.35008,262099.49115,399389.7008,165076.59000000003,165076.59000000003,165076.59000000003,113508.2445,218615.316,218615.316,88616.21248999998,83209.4451,123684.16284,215728.19100000002,61225.71516000001,77867.60418000001,155600.26499999998,155600.26499999998,155600.26499999998,155600.26499999998,657303.3834399999,657303.3834399999 +10778400.0,249726.83400000003,130907.043,382248.56556,165202.12214,165202.12214,165202.12214,208297.0435,494748.36624,420882.6816,320505.92322,488389.97824,193039.05299999999,193039.05299999999,193039.05299999999,148655.0555,249726.83400000003,249726.83400000003,108205.97163999999,118859.1894,176674.64695999998,308153.454,87456.88504,111228.72292,189237.14399999997,189237.14399999997,189237.14399999997,189237.14399999997,750845.34756,750845.34756 +10782000.0,772323.3660000002,631329.1499999999,1843481.1179999998,201508.43911,201508.43911,201508.43911,751020.165,1561320.58944,2154578.5856,1181989.96377,1801127.56384,761553.978,761553.978,761553.978,896427.8435,772323.3660000002,772323.3660000002,472821.01346999995,771447.3007499999,1146694.5063,2000048.5575,567632.8287,721922.28885,764404.878,764404.878,764404.878,764404.878,2322118.92044,2322118.92044 +10785600.0,766400.574,678924.4680000001,1982459.44656,207386.02379000004,207386.02379000004,207386.02379000004,675457.6955,1402904.51,1895585.72352,1128480.62523,1719589.52416,650425.296,650425.296,650425.296,890382.073,766400.574,766400.574,661087.75642,853589.7045,1268792.5978,2213010.345,628073.4122,798791.3531000001,783808.788,783808.788,783808.788,783808.788,2304311.05916,2304311.05916 +10789200.0,378143.508,287505.294,839515.4584799999,197337.35659,197337.35659,197337.35659,332368.88999999996,649999.83728,792770.75392,535999.6721099999,816761.40512,289124.364,289124.364,289124.364,389500.5625,378143.508,378143.508,546930.2851999999,179126.25119999997,266256.79808,464401.392,131801.53792,167626.78816,427775.12400000007,427775.12400000007,427775.12400000007,427775.12400000007,1136951.4807199999,1136951.4807199999 +10792800.0,139105.668,109712.14199999999,320359.45464,79051.82571,79051.82571,79051.82571,94517.605,220817.84016,602335.20896,223239.17070000002,340173.9744,161648.715,161648.715,161648.715,122767.52250000002,139105.668,139105.668,231848.97449999995,72220.06575,107349.33229999998,187237.2075,53139.702699999994,67583.71585,109869.81599999999,109869.81599999999,109869.81599999999,109869.81599999999,418244.3751199999,418244.3751199999 +10796400.0,146886.372,118336.125,345541.485,41151.485100000005,41151.485100000005,41151.485100000005,61779.92100000001,242064.16312,613019.2928,219107.96544,333878.80448,161879.592,161879.592,161879.592,118380.44750000001,146886.372,146886.372,235240.23132999998,63875.05695,94945.14637999999,165601.9995,46999.42462,59774.436010000005,105465.69600000001,105465.69600000001,105465.69600000001,105465.69600000001,441638.35848,441638.35848 +10800000.0,151392.804,128258.74200000001,374515.52664000005,18267.242620000005,18267.242620000005,18267.242620000005,52236.051,287430.32263999997,598705.66272,215543.29020000002,328446.9184,159587.721,159587.721,159587.721,109505.69700000001,151392.804,151392.804,239490.44833999997,68319.32445,101551.19338,177124.17450000002,50269.52762,63933.392510000005,101797.59,101797.59,101797.59,101797.59,455187.69735999993,455187.69735999993 +10803600.0,168076.39500000002,141668.967,413673.38364,14567.1812,14567.1812,14567.1812,55408.948000000004,331355.21103999997,645771.7484800001,257389.64706,392212.79552,236596.67700000003,236596.67700000003,236596.67700000003,116300.5585,168076.39500000002,168076.39500000002,279808.48882999993,76708.42559999999,114020.91903999998,198873.696,56442.24896,71783.93407999999,141105.426,141105.426,141105.426,141105.426,505349.69430000003,505349.69430000003 +10807200.0,190459.52399999998,146650.869,428220.53748,21363.84921,21363.84921,21363.84921,59943.799999999996,368664.45984,660140.7468800001,285830.37273,435551.04416000005,295979.409,295979.409,295979.409,161247.3905,190459.52399999998,190459.52399999998,286846.57703,92665.58355,137739.95382,240244.1055,68183.56518,86716.68188999999,197447.54099999997,197447.54099999997,197447.54099999997,197447.54099999997,572648.30216,572648.30216 +10810800.0,231279.69899999996,162641.232,474912.39744,42601.74413000001,42601.74413000001,42601.74413000001,66127.6735,448280.05272,671704.5766400001,318387.11814000004,485161.3228800001,346563.348,346563.348,346563.348,224686.20299999998,231279.69899999996,231279.69899999996,308218.44117999997,110962.49535,164936.84493999998,287680.5435,81646.47806000001,103838.97713,252490.91100000002,252490.91100000002,252490.91100000002,252490.91100000002,695380.9616599999,695380.9616599999 +10814400.0,277433.718,182958.82799999998,534239.77776,50453.25846,50453.25846,50453.25846,70284.9245,547395.22456,750188.1420800001,386306.70372,588657.83424,378293.772,378293.772,378293.772,235805.21300000002,277433.718,277433.718,336941.69768999994,124754.58,185437.672,323437.80000000005,91794.728,116745.64400000001,318358.36199999996,318358.36199999996,318358.36199999996,318358.36199999996,834150.71212,834150.71212 +10818000.0,415877.982,217951.305,636417.8106,72067.81967,72067.81967,72067.81967,75087.6525,944263.70744,822524.2137600001,580147.3597500001,884034.0720000002,389452.851,389452.851,389452.851,322872.4485,415877.982,415877.982,528492.7904099999,161106.47685,239471.84954,417683.4585,118542.54346,150763.83883,400110.945,400110.945,400110.945,400110.945,1250406.46588,1250406.46588 +10821600.0,833762.283,356334.75600000005,1040497.4875200001,336011.22687,336011.22687,336011.22687,979438.005,2723706.37552,2660860.6393600004,2075393.85144,3162504.91648,640012.272,640012.272,640012.272,1140016.7275,833762.283,833762.283,1641893.0959599996,1154776.7268,1716482.9371200001,2993865.5880000005,849687.5668800002,1080642.9122400002,940072.473,940072.473,940072.473,940072.473,2506845.26422,2506845.26422 +10825200.0,590168.709,877377.0720000002,2561941.0502400002,539109.37135,539109.37135,539109.37135,1459058.3105000001,3144500.47992,1614781.67104,2099493.32481,3199227.9235200007,757242.096,757242.096,757242.096,1004312.2880000001,590168.709,590168.709,1591275.20045,1491850.43865,2217515.96066,3867760.3965,1097707.2363399998,1396077.3240699999,887182.578,887182.578,887182.578,887182.578,1774440.5850599997,1774440.5850599997 +10828800.0,1467933.5219999999,1192828.7040000001,3483059.81568,272744.56242000003,272744.56242000003,272744.56242000003,811227.879,2760653.18224,4173695.2416,2086419.4904699998,3179305.89024,1223395.317,1223395.317,1223395.317,742050.1165,1467933.5219999999,1467933.5219999999,868791.05521,861686.4604499999,1280827.7757799998,2234001.9345,634031.02522,806368.31731,1619428.923,1619428.923,1619428.923,1619428.923,4413586.78948,4413586.78948 +10832400.0,829756.284,510553.968,1490817.58656,244692.35197000005,244692.35197000005,244692.35197000005,242225.34350000002,905243.1225599999,4527411.01568,327688.42785000004,499334.74720000004,752816.319,752816.319,752816.319,664213.1475000001,829756.284,829756.284,393306.3455099999,1347259.3434000001,2002592.90056,3492894.5940000005,991316.75144,1260768.62012,317899.275,317899.275,317899.275,317899.275,2494800.56056,2494800.56056 +10836000.0,332640.951,116036.271,338825.91131999996,142651.51384,142651.51384,142651.51384,117333.04800000001,450695.26064,931095.1571200001,227120.77122,346088.79424,145959.612,145959.612,145959.612,103629.0745,332640.951,332640.951,203000.62432,104739.2694,155686.51896000002,271546.254,77067.41304000001,98015.26692000001,163580.43300000002,163580.43300000002,163580.43300000002,163580.43300000002,1000140.4593400001,1000140.4593400001 +10839600.0,359226.59699999995,750080.661,2190235.53012,131812.99802,131812.99802,131812.99802,422017.79549999995,819888.2229599999,938998.5958400001,522164.32548,795678.97216,236349.549,236349.549,236349.549,560107.2889999999,359226.59699999995,359226.59699999995,270568.28161999997,221966.13059999997,329934.84103999997,575467.7459999999,163323.22696,207716.45308,280266.732,280266.732,280266.732,280266.732,1080074.6349799999,1080074.6349799999 +10843200.0,438700.0530000001,345579.114,1009091.0128799999,116643.94522000001,116643.94522000001,116643.94522000001,443289.931,914912.4864800001,1270543.32352,597305.63046,910180.00832,379146.68700000003,379146.68700000003,379146.68700000003,294809.4275,438700.0530000001,438700.0530000001,437367.06623999996,371392.39125,552044.9865,962869.1625,273271.4385,347549.91675,396993.74100000004,396993.74100000004,396993.74100000004,396993.74100000004,1319024.8260200003,1319024.8260200003 +10846800.0,297572.103,216242.86800000002,631429.1745600001,90521.82645000001,90521.82645000001,90521.82645000001,180955.08550000002,643844.3196,831172.4864,377865.01808999997,575794.31328,263651.814,263651.814,263651.814,183040.3155,297572.103,297572.103,305722.18104999996,216975.97979999997,322517.38232,562530.318,159651.46168,203046.65764,263571.837,263571.837,263571.837,263571.837,894700.1230199999,894700.1230199999 +10850400.0,301888.317,173675.94,507133.74480000004,268941.01311,268941.01311,268941.01311,428861.657,603630.5467999999,219192.67968,555203.02278,846023.65376,169154.118,169154.118,169154.118,516932.8605,301888.317,301888.317,526367.3235599999,311398.75304999994,462869.25761999993,807330.1005,229127.97137999997,291407.72199,132486.07799999998,132486.07799999998,132486.07799999998,132486.07799999998,907677.53978,907677.53978 +10854000.0,149753.646,464769.309,1357126.38228,276083.40320000006,276083.40320000006,276083.40320000006,303884.581,732032.51272,232520.84288000004,182257.61568,277725.89056,185428.68899999998,185428.68899999998,185428.68899999998,579911.0835000001,149753.646,149753.646,543311.22677,214752.38805,319212.19162,556765.4505,158015.33738,200965.81499,195502.407,195502.407,195502.407,195502.407,450259.29563999997,450259.29563999997 +10857600.0,112060.33200000001,48704.94,142218.42479999998,268738.5509600001,268738.5509600001,268738.5509600001,92310.806,232232.37128000002,184928.2848,100927.03761,153793.58112,64921.59000000001,64921.59000000001,64921.59000000001,113529.178,112060.33200000001,112060.33200000001,124345.62842,37357.73865,55529.28066,96853.3965,27487.91634,34959.46407,61804.494,61804.494,61804.494,61804.494,336928.06488,336928.06488 +10861200.0,1115012.592,798541.7069999999,2331741.7844399996,377268.19823,377268.19823,377268.19823,1619842.6475,1882853.0489599998,1984617.8841600001,1903554.86454,2900655.03168,1249911.6030000001,1249911.6030000001,1249911.6030000001,924223.1705000001,1115012.592,1115012.592,455154.64826,940527.28395,1398018.3331799998,2438404.0695,692042.29782,880147.7546100001,1021528.4310000001,1021528.4310000001,1021528.4310000001,1021528.4310000001,3352471.19328,3352471.19328 +10864800.0,600930.6359999999,279659.841,816606.73572,196272.59982000003,196272.59982000003,196272.59982000003,387765.15400000004,901462.55768,853284.7264,646688.05761,985429.4211200001,380592.51300000004,380592.51300000004,380592.51300000004,386052.394,600930.6359999999,600930.6359999999,239356.45135999998,306656.54325000005,455820.3433,795035.4825,225638.64170000004,286969.95035000006,387749.45999999996,387749.45999999996,387749.45999999996,387749.45999999996,1806798.11224,1806798.11224 +10868400.0,819192.0540000001,651469.3859999999,1902290.60712,381889.67509000003,381889.67509000003,381889.67509000003,830131.071,1590766.3716799999,2474795.2096,1277087.16723,1946037.5881600003,794545.6020000002,794545.6020000002,794545.6020000002,1056559.728,819192.0540000001,819192.0540000001,656203.6679899999,993369.7601999999,1476564.4336799998,2575403.082,730923.92232,929597.87436,870446.592,870446.592,870446.592,870446.592,2463037.44236,2463037.44236 +10872000.0,891359.544,717573.057,2095313.32644,423157.60696,423157.60696,423157.60696,933243.871,1691777.8090399997,2919617.2748800004,1376169.47811,2097020.15712,872856.2009999999,872856.2009999999,872856.2009999999,1163681.358,891359.544,891359.544,709473.86003,1134366.52095,1686144.8039799999,2940950.2395,834669.6870200001,1061542.9912100001,958335.513,958335.513,958335.513,958335.513,2680021.02896,2680021.02896 +10875600.0,640034.472,554090.538,1617944.37096,333579.17802000005,333579.17802000005,333579.17802000005,603179.052,932097.46904,1897815.49248,848463.85302,1292897.29984,507978.816,507978.816,507978.816,632709.287,640034.472,640034.472,534426.32945,558171.3726,829676.95384,1447110.966,410703.87416,522338.14868000004,634660.7609999999,634660.7609999999,634660.7609999999,634660.7609999999,1924370.3124799998,1924370.3124799998 +10879200.0,125154.438,104383.65299999999,304800.26675999997,80412.78487,80412.78487,80412.78487,96399.8805,180977.50032,624965.92448,172230.26520000002,262446.11840000004,166737.38999999998,166737.38999999998,166737.38999999998,125901.20550000001,125154.438,125154.438,197853.15953,73404.10755,109109.31542,190306.9455,54010.92358,68691.74509000001,101007.813,101007.813,101007.813,101007.813,376297.67692,376297.67692 +10882800.0,117124.27799999999,110094.88200000001,321477.05544,42214.28420000001,42214.28420000001,42214.28420000001,62431.78199999999,217163.49519999998,609510.8953600001,169082.95026,257650.20992000002,160385.961,160385.961,160385.961,114763.73650000001,117124.27799999999,117124.27799999999,224647.58199,61088.912099999994,90803.76563999998,158378.661,44949.372359999994,57167.15478,92783.69399999999,92783.69399999999,92783.69399999999,92783.69399999999,352153.66251999995,352153.66251999995 +10886400.0,121163.27700000002,123147.135,359589.6342,20326.678900000003,20326.678900000003,20326.678900000003,44649.895500000006,224765.41151999997,607555.81376,178984.09767000002,272737.67264000006,158441.661,158441.661,158441.661,110062.974,121163.27700000002,121163.27700000002,245045.86847,57727.8333,85807.79172,149664.753,42476.28228,54021.84894,93154.626,93154.626,93154.626,93154.626,364297.58618000004,364297.58618000004 +10890000.0,139462.614,140534.06100000002,410359.45812,41798.94477,41798.94477,41798.94477,51061.4685,233121.25431999995,638198.08256,242106.58038000003,368924.31296,167000.985,167000.985,167000.985,116252.15000000001,139462.614,139462.614,276621.96002999996,74284.22924999999,110417.54569999999,192588.7425,54658.5193,69515.36515,112429.953,112429.953,112429.953,112429.953,419317.59275999997,419317.59275999997 +10893600.0,159361.932,143765.397,419794.95924,38110.259000000005,38110.259000000005,38110.259000000005,56499.03,237761.85847999997,636196.65216,263682.50432999997,401801.91136,221371.434,221371.434,221371.434,157374.08749999997,159361.932,159361.932,276289.92572999996,87691.43430000001,130346.28012,227348.16300000003,64523.57388,82061.86074,182092.41,182092.41,182092.41,182092.41,479148.20888,479148.20888 +10897200.0,202523.865,163503.19199999998,477429.32064,44081.33972,44081.33972,44081.33972,69477.54800000001,384381.83872,649730.12096,302231.01447,460542.49824000004,289553.466,289553.466,289553.466,217854.4375,202523.865,202523.865,304671.8935,106935.795,158951.478,277240.95,78683.622,100070.781,228023.00400000002,228023.00400000002,228023.00400000002,228023.00400000002,608921.7541,608921.7541 +10900800.0,258237.195,184969.62300000002,540111.29916,54855.280920000005,54855.280920000005,54855.280920000005,72344.1635,505739.47984,664863.3523200001,350514.93057,534117.98944,345783.042,345783.042,345783.042,235930.99599999998,258237.195,258237.195,334187.23195,125050.63094999999,185877.72798,324205.3395,92012.56302,117022.68921,303458.088,303458.088,303458.088,303458.088,776433.1663,776433.1663 +10904400.0,393937.35599999997,209625.30599999998,612105.8935199999,75033.02224,75033.02224,75033.02224,74173.7955,909517.9792000001,691309.23776,554991.80688,845701.80096,365501.11199999996,365501.11199999996,365501.11199999996,311298.7325,393937.35599999997,393937.35599999997,510758.37812999997,149457.22694999998,222156.17437999998,387481.6995,109970.99662,139862.44201,384405.33,384405.33,384405.33,384405.33,1184438.3170399999,1184438.3170399999 +10908000.0,870099.027,365659.92600000004,1067726.98392,398585.29128,398585.29128,398585.29128,1027681.4905,2787741.6192799998,2660608.02752,2142625.29726,3264952.83392,656090.9010000001,656090.9010000001,656090.9010000001,1173949.7315000002,870099.027,870099.027,1693963.7702000001,1135530.43425,1687874.8676999998,2943967.7925,835526.0973,1062632.18415,989082.9839999999,989082.9839999999,989082.9839999999,989082.9839999999,2616097.74118,2616097.74118 +10911600.0,593149.026,863686.6409999998,2521964.99172,667364.3468800001,667364.3468800001,667364.3468800001,1434584.69,3157451.93552,1620006.13824,2112713.6820300003,3219373.2297600005,767085.6029999999,767085.6029999999,767085.6029999999,997896.9734999998,593149.026,593149.026,1388792.1321299996,1474512.5141999999,2191744.5272799996,3822810.222,1084949.94872,1379852.45156,904989.3660000002,904989.3660000002,904989.3660000002,904989.3660000002,1783401.4048399997,1783401.4048399997 +10915200.0,1475069.0729999999,1208513.574,3528859.63608,313031.0178600001,313031.0178600001,313031.0178600001,771266.482,2672208.92848,4099568.5395200006,2041019.65431,3110125.1875199997,1219134.5010000002,1219134.5010000002,1219134.5010000002,724168.6410000001,1475069.0729999999,1475069.0729999999,665579.6374499999,833106.2098500001,1238345.5267400001,2159904.9885000004,613001.60626,779622.8482300001,1623163.98,1623163.98,1623163.98,1623163.98,4435041.01282,4435041.01282 +10918800.0,803196.3629999999,498860.82599999994,1456673.6119199998,272096.86669,272096.86669,272096.86669,248919.40849999996,833511.44792,4458593.710080001,307031.02983,467856.80736,721306.7609999999,721306.7609999999,721306.7609999999,660375.7720000001,803196.3629999999,803196.3629999999,378619.1019,1367507.1968999999,2032689.70996,3545389.029,1006215.17204,1279716.61142,295850.082,295850.082,295850.082,295850.082,2414943.7314199996,2414943.7314199996 +10922400.0,326500.023,89589.44399999999,261601.17647999997,143107.39047,143107.39047,143107.39047,114296.21350000001,440838.47943999997,801969.95712,224109.24206999998,341499.79744,140670.351,140670.351,140670.351,101643.2025,326500.023,326500.023,197890.41778999995,102521.5785,152390.0994,265796.685,75435.6306,95939.94630000001,161473.23,161473.23,161473.23,161473.23,981676.73582,981676.73582 +10926000.0,346788.336,732953.6429999999,2140224.6375599997,136775.46762,136775.46762,136775.46762,416302.362,779911.78776,878027.6416000001,501526.98645,764231.5984,218113.842,218113.842,218113.842,553506.485,346788.336,346788.336,250794.17440999998,211090.60484999997,313769.24473999994,547271.9384999999,155320.98825999998,197539.10922999997,265421.49,265421.49,265421.49,265421.49,1042676.9302399999,1042676.9302399999 +10929600.0,437464.2209999999,328909.641,960416.1517200001,126922.76685000001,126922.76685000001,126922.76685000001,452802.35349999997,904467.71656,1259921.1360000002,598118.29728,911418.35776,365416.20599999995,365416.20599999995,365416.20599999995,293852.132,437464.2209999999,437464.2209999999,430921.85863999993,369891.07649999997,549813.4025999999,958976.8649999999,272166.76739999995,346144.9827,393281.967,393281.967,393281.967,393281.967,1315309.0911399997,1315309.0911399997 +10933200.0,279010.374,196254.96,573064.4832,89504.07004,89504.07004,89504.07004,172057.0075,589516.9779200001,738985.1910400001,347769.40401,529934.32992,234553.91999999998,234553.91999999998,234553.91999999998,166917.3835,279010.374,279010.374,280190.36435,197929.60335000002,294206.47214,513150.82350000006,145637.09086000003,185223.01153000002,240738.61800000002,240738.61800000002,240738.61800000002,240738.61800000002,838891.1911599999,838891.1911599999 +10936800.0,337076.37,203759.88,594978.8496000001,292995.64107,292995.64107,292995.64107,446482.8235,669160.4568,307415.67296,607825.29801,926209.9779200001,194023.44,194023.44,194023.44,553466.2105,337076.37,337076.37,559644.1301099999,345902.8455,514156.8222,896785.155,254516.1678,323696.7369,166152.62099999998,166152.62099999998,166152.62099999998,166152.62099999998,1013476.2857999998,1013476.2857999998 +10940400.0,126316.85399999999,457199.085,1335021.3282,274781.73987,274781.73987,274781.73987,300332.5045,672570.4619999999,173521.43168,153951.68082,234593.03744000001,159787.926,159787.926,159787.926,562079.9765,126316.85399999999,126316.85399999999,517566.55794999993,207534.27555,308483.04662,538051.8255,152704.23238,194211.08749,177592.83000000002,177592.83000000002,177592.83000000002,177592.83000000002,379792.67435999995,379792.67435999995 +10944000.0,90705.213,35416.587,103416.43404000001,211779.8045,211779.8045,211779.8045,88852.83750000001,174718.64384,138741.00928,72431.78124000001,110372.23808000001,41388.58500000001,41388.58500000001,41388.58500000001,93105.894,90705.213,90705.213,92191.06220999997,29048.126849999997,43177.709539999996,75309.9585,21373.683459999997,27183.308829999998,42957.708,42957.708,42957.708,42957.708,272720.34041999996,272720.34041999996 +10947600.0,1027759.983,710315.64,2074121.6688,408861.65056000004,408861.65056000004,408861.65056000004,1542691.4475,1648090.2757599999,1698136.0819200003,1752725.5034100001,2670819.8147200006,1153767.459,1153767.459,1153767.459,792007.09,1027759.983,1027759.983,420336.25594999996,860835.8470499999,1279563.40722,2231796.6404999997,633405.14178,805572.3111899999,939909.39,939909.39,939909.39,939909.39,3090131.68222,3090131.68222 +10951200.0,481461.426,161573.14500000002,471793.5834,181388.29236000002,181388.29236000002,181388.29236000002,285888.75,683322.4567999999,480217.8496,458989.83333,699413.0793600001,251100.90899999999,251100.90899999999,251100.90899999999,221897.80549999996,481461.426,481461.426,138747.28308999998,172879.70535,256971.80894,448206.6435,127205.31406,161781.25513,257254.119,257254.119,257254.119,257254.119,1447594.02084,1447594.02084 +10954800.0,758018.613,597651.546,1745142.51432,346453.98403,346453.98403,346453.98403,746014.9339999999,1461352.8360000001,1995386.2988800001,1151036.50305,1753960.3856,708953.0430000001,708953.0430000001,708953.0430000001,908136.2255,758018.613,758018.613,598703.1434799999,813161.4704999999,1208699.2721999998,2108196.405,598326.2178,760958.5118999999,761197.02,761197.02,761197.02,761197.02,2279109.29642,2279109.29642 +10958400.0,869288.658,695593.3559999999,2031132.59952,419531.00497,419531.00497,419531.00497,902635.1529999999,1630051.17568,2777546.4416000005,1338148.7517300001,2039083.8121600004,830658.8430000001,830658.8430000001,830658.8430000001,1120128.303,869288.658,869288.658,691163.8350499999,1086902.70795,1615593.6547799997,2817895.9095,799745.6962199999,1017126.23781,930930.408,930930.408,930930.408,930930.408,2613661.23172,2613661.23172 +10962000.0,627260.787,542744.5800000001,1584814.1736,349847.37502000004,349847.37502000004,349847.37502000004,595554.0115,910277.02736,1845422.3302400003,830602.55166,1265680.07872,492217.239,492217.239,492217.239,618817.108,627260.787,627260.787,524853.67428,547000.1766,813071.86744,1418148.606,402484.08056,511884.11588,621224.595,621224.595,621224.595,621224.595,1885964.09958,1885964.09958 +10965600.0,119167.818,90247.431,263522.49851999996,79941.96727000001,79941.96727000001,79941.96727000001,94747.26800000001,172145.31792,581267.82976,163822.16256000003,249633.77152000004,154615.05,154615.05,154615.05,118827.2855,119167.818,119167.818,160345.03926999998,70352.70389999998,104573.64875999997,182395.89899999998,51765.69323999999,65836.23401999999,95659.236,95659.236,95659.236,95659.236,358297.90612,358297.90612 +10969200.0,110405.604,101736.927,297071.82684,41939.40454,41939.40454,41939.40454,60814.221999999994,178646.89064,567113.50464,150636.01623,229540.59616,147730.995,147730.995,147730.995,107360.841,110405.604,110405.604,199494.00444999998,58115.3859,86383.85756,150669.519,42761.44444,54384.52162000001,87366.09,87366.09,87366.09,87366.09,331952.84936,331952.84936 +10972800.0,106132.581,104487.68700000002,305104.04604000004,17948.4965,17948.4965,17948.4965,38532.753,197394.07319999998,531089.0739200001,145729.59597,222064.14624,137116.98,137116.98,137116.98,96517.064,106132.581,106132.581,208636.42436,48672.337049999995,72347.52321999999,126187.54049999999,35813.22577999999,45547.69319,80073.432,80073.432,80073.432,80073.432,319105.29354,319105.29354 +10976400.0,116987.98499999999,117134.44499999998,342032.57939999993,33571.871190000005,33571.871190000005,33571.871190000005,44006.207,195774.93904,529119.93536,177464.14497,270421.55424,135545.613,135545.613,135545.613,95807.6735,116987.98499999999,116987.98499999999,227612.19182,60318.934199999996,89659.25528,156382.422,44382.82072,56446.607560000004,84232.398,84232.398,84232.398,84232.398,351743.87489999994,351743.87489999994 +10980000.0,124126.815,118080.261,344794.36212,31926.659160000007,31926.659160000007,31926.659160000007,40863.7565,192670.10304000002,531861.9782400001,212561.50419,323903.24448,136594.40999999997,136594.40999999997,136594.40999999997,98141.97050000001,124126.815,124126.815,229415.73979999998,65006.533800000005,96626.99592,168535.458,47831.968080000006,60833.274840000005,109315.251,109315.251,109315.251,109315.251,373207.9571,373207.9571 +10983600.0,142517.727,125292.06899999999,365852.84147999994,35300.54264000001,35300.54264000001,35300.54264000001,53326.752499999995,195891.51712,530387.69472,226881.40608,345724.04735999997,194685.71399999998,194685.71399999998,194685.71399999998,145685.932,142517.727,142517.727,231557.66165999998,77706.66149999999,115504.71659999999,201461.71499999997,57176.753399999994,72718.0857,156717.492,156717.492,156717.492,156717.492,428503.29918,428503.29918 +10987200.0,168566.964,138128.856,403336.25951999996,40328.551450000006,40328.551450000006,40328.551450000006,58844.03349999999,252513.76271999997,533595.1296,247997.98737000002,377901.69504,227883.222,227883.222,227883.222,176007.6815,168566.964,168566.964,247300.60887999999,89546.63399999999,133103.88559999998,232157.94,65888.6344,83797.96119999999,181931.649,181931.649,181931.649,181931.649,506824.67176,506824.67176 +10990800.0,279544.392,167166.225,488125.37700000004,65215.63686000001,65215.63686000001,65215.63686000001,64067.96199999999,697247.1192,531399.55648,415434.31335,633042.7632,252089.14500000002,252089.14500000002,252089.14500000002,260649.52549999996,279544.392,279544.392,448564.30372,113821.7751,169186.93483999997,295093.491,83750.34316,106514.69818,281301.897,281301.897,281301.897,281301.897,840496.80528,840496.80528 +10994400.0,782664.876,301225.161,879577.47012,354488.96988999995,354488.96988999995,354488.96988999995,873540.1465,2622700.346,2152924.8800000004,1908397.4998200003,2908034.2854400007,535974.228,535974.228,535974.228,930186.7294999999,782664.876,782664.876,1564465.1406799997,940261.32855,1397623.01182,2437714.5555,691846.6071799999,879898.87289,894959.094,894959.094,894959.094,894959.094,2353212.39384,2353212.39384 +10998000.0,532711.455,756889.26,2210116.6392,572312.1912200002,572312.1912200002,572312.1912200002,1290635.3915,2860232.06176,1430087.2736000002,1900683.9028800002,2896280.23296,717690.2189999999,717690.2189999999,717690.2189999999,908492.7145,532711.455,532711.455,1138077.78929,1277278.82235,1898572.47174,3311463.6135000004,939824.9112600001,1195280.67573,815596.986,815596.986,815596.986,815596.986,1601685.7746999997,1601685.7746999997 +11001600.0,1369067.8739999998,977937.909,2855578.69428,277583.91859,277583.91859,277583.91859,571608.7754999999,2173464.06336,3293396.1715200003,1682011.09146,2563064.52032,1029568.7220000001,1029568.7220000001,1029568.7220000001,577033.8875,1369067.8739999998,1369067.8739999998,574693.42242,692046.4635000001,1028671.5334,1794194.5350000001,509209.4966,647618.7893000001,1498088.946,1498088.946,1498088.946,1498088.946,4116330.7411599997,4116330.7411599997 +11005200.0,689418.798,457561.64400000003,1336080.0004800002,252962.61639,252962.61639,252962.61639,225313.8125,635897.9951200001,4116144.1107199998,224193.9168,341628.8256,594729.291,594729.291,594729.291,558682.775,689418.798,689418.798,323532.66348,1152687.39255,1713377.30942,2988448.7955000005,848150.22958,1078687.70809,209419.293,209419.293,209419.293,209419.293,2072852.51932,2072852.51932 +11008800.0,280274.253,68105.34599999999,198867.61031999998,138402.49082,138402.49082,138402.49082,101879.13049999998,361021.24304,333026.10496,179882.78196,274107.09632,109514.973,109514.973,109514.973,72067.317,280274.253,280274.253,160545.91449,80522.43209999999,119690.13363999999,208761.86099999998,59248.60436,75353.09078,125130.58799999999,125130.58799999999,125130.58799999999,125130.58799999999,842691.25402,842691.25402 +11012400.0,314648.61600000004,649272.483,1895875.6503599999,128484.89797,128484.89797,128484.89797,379044.4945,728805.282,760750.4243200001,452830.95060000004,690028.1152000001,197083.785,197083.785,197083.785,468268.3075,314648.61600000004,314648.61600000004,223981.19496999998,178193.28105,264870.01282,461982.5805,131115.05618,166753.71239,239800.20900000003,239800.20900000003,239800.20900000003,239800.20900000003,946043.50544,946043.50544 +11016000.0,410046.471,311070.468,908325.76656,121889.41413000002,121889.41413000002,121889.41413000002,407682.716,849739.51144,1130232.9612800002,551818.68042,840866.56064,328953.585,328953.585,328953.585,269853.17799999996,410046.471,410046.471,379910.2790599999,331814.556,493215.7104,860259.9600000001,244149.9696,310512.88080000004,354268.902,354268.902,354268.902,354268.902,1232873.05614,1232873.05614 +11019600.0,279659.56799999997,196620.68700000003,574132.40604,88637.38796000001,88637.38796000001,88637.38796000001,174063.69400000002,595557.26656,735746.66112,347561.59809,529617.67328,239322.612,239322.612,239322.612,168031.472,279659.56799999997,279659.56799999997,276298.53563,194902.9533,289707.59972,505303.95300000004,143410.07428,182390.66494000002,239687.88299999997,239687.88299999997,239687.88299999997,239687.88299999997,840843.10112,840843.10112 +11023200.0,333724.887,211339.167,617110.36764,268630.14244,268630.14244,268630.14244,366570.456,678400.84352,338305.42912000004,595896.18816,908032.28672,196827.44400000002,196827.44400000002,196827.44400000002,511130.30499999993,333724.887,333724.887,565233.0374599999,324942.48765,483000.93226,842443.4865,239093.48474,304081.98227000004,168721.608,168721.608,168721.608,168721.608,1003399.49358,1003399.49358 +11026800.0,111956.37299999999,411483.21599999996,1201530.99072,272540.70019,272540.70019,272540.70019,294701.568,613235.18016,151174.40128000002,131843.95938,200905.08096,147351.381,147351.381,147351.381,547129.072,111956.37299999999,111956.37299999999,486411.31253,195492.9573,290584.59332,506833.593,143844.20068,182942.79214,155061.702,155061.702,155061.702,155061.702,336615.49481999996,336615.49481999996 +11030400.0,89099.583,34285.863,100114.71995999999,185769.45200000002,185769.45200000002,185769.45200000002,84287.3885,159484.27384,130722.10112000002,70261.55598,107065.22816000001,40858.044,40858.044,40858.044,53667.0155,89099.583,89099.583,88416.34255999999,28365.628950000002,42163.23118,73540.51950000001,20871.49982,26544.625610000003,41550.966,41550.966,41550.966,41550.966,267892.74622,267892.74622 +11034000.0,999956.658,672090.309,1962503.70228,383615.47718999995,383615.47718999995,383615.47718999995,1496055.1095000003,1610087.10648,1627568.6848,1714816.56255,2613053.8096,1124433.471,1124433.471,1124433.471,741640.1229999999,999956.658,999956.658,369626.95600999997,814336.3106999999,1210445.5778799998,2111242.287,599190.6681199999,762057.9302599999,876462.4140000001,876462.4140000001,876462.4140000001,876462.4140000001,3006536.3517199997,3006536.3517199997 +11037600.0,428964.333,140452.815,410122.21979999996,179232.27905,179232.27905,179232.27905,268212.20650000003,613555.5391999999,406790.5356800001,412608.81165000005,628737.2368000001,222566.691,222566.691,222566.691,189178.4475,428964.333,428964.333,127445.38000999998,156054.83085,231962.98314,404586.5985,114825.52986,146036.49603,232483.16999999998,232483.16999999998,232483.16999999998,232483.16999999998,1289752.76122,1289752.76122 +11041200.0,703739.619,559115.193,1632616.36356,337701.6159000001,337701.6159000001,337701.6159000001,702139.963,1362285.8850399998,1789848.7155199999,1069940.85618,1630386.06656,654606.48,654606.48,654606.48,829453.135,703739.619,703739.619,555067.4199199999,742290.0101999999,1103354.5336799999,1924455.582,546178.82232,694636.82436,697452.63,697452.63,697452.63,697452.63,2115910.4544599997,2115910.4544599997 +11044800.0,849491.2050000001,680962.719,1988411.13948,419112.3891900001,419112.3891900001,419112.3891900001,881801.5849999998,1597493.5143999998,2700845.9667200004,1309208.3963700002,1994984.2230400003,809790.396,809790.396,809790.396,1096037.2219999998,849491.2050000001,849491.2050000001,673897.05097,1053809.4613499998,1566403.1993399998,2732098.6034999997,775395.6036599999,986157.4959299999,908784.459,908784.459,908784.459,908784.459,2554136.8897,2554136.8897 +11048400.0,540079.9199999999,457945.461,1337200.74612,325163.91171,325163.91171,325163.91171,514679.8685,763487.5352800001,1526128.05824,706035.19014,1075863.14688,403384.64099999995,403384.64099999995,403384.64099999995,513927.1584999999,540079.9199999999,540079.9199999999,450488.93383,458264.09745,681172.80658,1188092.1045,337191.85442,428844.67391,526894.578,526894.578,526894.578,526894.578,1623840.2927999997,1623840.2927999997 +11052000.0,102263.20200000002,71779.446,209595.98231999998,78727.86999000002,78727.86999000002,78727.86999000002,89406.41149999999,148440.22648,470365.21536,139976.21589000002,213297.09088000003,123462.774,123462.774,123462.774,100053.6495,102263.20200000002,102263.20200000002,124582.90090999998,61770.79034999999,91817.32293999998,160146.49349999998,45451.10006,57805.258129999995,81165.444,81165.444,81165.444,81165.444,307471.36068000004,307471.36068000004 +11055600.0,95658.20399999998,79176.15299999999,231194.36675999998,41156.69877,41156.69877,41156.69877,56208.974500000004,134552.44952,472916.91264,125340.31125,190994.76,121329.91500000001,121329.91500000001,121329.91500000001,90206.4625,95658.20399999998,95658.20399999998,149180.00955,50764.69665,75457.64786,131612.1765,37352.78914,47505.72847,74533.047,74533.047,74533.047,74533.047,287612.33335999993,287612.33335999993 +11059200.0,92421.024,88368.777,258036.82883999997,17419.4372,17419.4372,17419.4372,35627.9875,154653.80544,473790.9574400001,123310.59552,187901.85984000002,119993.34300000001,119993.34300000001,119993.34300000001,86036.664,92421.024,92421.024,167626.99927999996,43900.793099999995,65255.00603999999,113816.871,32302.31196,41082.47058,71098.191,71098.191,71098.191,71098.191,277879.21216,277879.21216 +11062800.0,102475.57200000001,102166.38,298325.8296,18333.56327,18333.56327,18333.56327,33953.171,181284.29304,488556.39040000003,135619.8795,206658.86400000003,124785.75,124785.75,124785.75,87412.7205,102475.57200000001,102475.57200000001,198296.28078,49727.0583,73915.28172,128922.003,36589.29228,46534.70394,73340.67,73340.67,73340.67,73340.67,308109.88648000004,308109.88648000004 +11066400.0,110178.378,109354.87800000001,319316.24376000004,29955.086040000006,29955.086040000006,29955.086040000006,36707.174,179527.12464,494352.97152,167752.08723,255622.22816000003,125388.831,125388.831,125388.831,88215.05,110178.378,110178.378,212511.53352,55855.6236,83024.90224,144810.87600000002,41098.705760000004,52269.830480000004,78180.966,78180.966,78180.966,78180.966,331269.65651999996,331269.65651999996 +11070000.0,125223.62100000001,118695.522,346590.92423999996,33681.78561,33681.78561,33681.78561,43954.561,192409.37039999999,535185.7964800001,215572.73388,328491.78496,138780.012,138780.012,138780.012,102662.8575,125223.62100000001,125223.62100000001,228096.01047999997,66395.88629999998,98692.15691999998,172137.48299999998,48854.257079999996,62133.43433999999,111570.47099999999,111570.47099999999,111570.47099999999,111570.47099999999,376505.68714,376505.68714 +11073600.0,144035.562,127102.455,371139.1686,38337.2022,38337.2022,38337.2022,56959.58799999999,198019.83503999995,530050.98048,228349.15614,347960.61888,206337.34500000003,206337.34500000003,206337.34500000003,153793.16400000002,144035.562,144035.562,229174.82613999996,79018.6347,117454.85948,204863.127,58142.10652,73945.83346000001,156665.20500000002,156665.20500000002,156665.20500000002,156665.20500000002,433066.92308,433066.92308 +11077200.0,235173.174,152428.24800000002,445090.48416000005,59979.581860000006,59979.581860000006,59979.581860000006,61515.21950000001,612711.7468,512844.24960000004,371234.82396,565691.16032,222298.98,222298.98,222298.98,239304.94700000001,235173.174,235173.174,418292.4388499999,101811.8322,151335.11848,263956.602,74913.39752,95275.76396000001,235823.67599999998,235823.67599999998,235823.67599999998,235823.67599999998,707087.34316,707087.34316 +11080800.0,659930.835,230286.53999999998,672436.6967999999,306067.61416,306067.61416,306067.61416,706878.9875,2371135.6592,1687961.4867200002,1619895.0117,2468411.4464000002,427706.7359999999,427706.7359999999,427706.7359999999,740499.9839999999,659930.835,659930.835,1445479.94942,772822.8387,1148739.1330799998,2003614.767,568644.95292,723209.52066,777539.3520000001,777539.3520000001,777539.3520000001,777539.3520000001,1984192.0439,1984192.0439 +11084400.0,436345.32,620849.7119999999,1812881.1590399998,374085.86116000003,374085.86116000003,374085.86116000003,956765.173,2367998.6739999996,1077934.29184,1542117.8501400002,2349893.86688,617393.9489999999,617393.9489999999,617393.9489999999,685416.8055,436345.32,436345.32,794894.45282,984581.2602,1463501.03368,2552618.0820000004,724457.32232,921373.5743600001,634632.75,634632.75,634632.75,634632.75,1311944.9287999999,1311944.9287999999 +11088000.0,1059930.453,533943.4739999999,1559114.9440799998,207026.66721,207026.66721,207026.66721,399803.6875,1333003.65784,1905311.8995200002,1078397.29263,1643272.0649600003,634231.509,634231.509,634231.509,383782.3955,1059930.453,1059930.453,372028.18496999994,420959.20319999993,625722.07488,1091375.7119999998,309742.82112,393934.66176,1098816.501,1098816.501,1098816.501,1098816.501,3186857.56202,3186857.56202 +11091600.0,522741.47400000005,332877.60299999994,972002.6007599998,208247.7771,208247.7771,208247.7771,174555.0765,419282.508,2922333.3472,127972.79649000001,195006.16608000002,426520.41000000003,426520.41000000003,426520.41000000003,371211.70099999994,522741.47400000005,522741.47400000005,220901.74639,776642.0494499999,1154416.0833799997,2013516.4244999997,571455.1376199999,726783.54751,137609.055,137609.055,137609.055,137609.055,1571709.36516,1571709.36516 +11095200.0,125023.68899999998,18786.528000000002,54856.66176,121477.62374000001,121477.62374000001,121477.62374000001,98218.8235,73107.14648000001,44284.983680000005,58294.574100000005,88829.82720000001,18622.962,18622.962,18622.962,35084.777,125023.68899999998,125023.68899999998,31981.771769999996,35385.34005,52597.468420000005,91739.77050000001,26036.620580000003,33113.688590000005,27224.453999999998,27224.453999999998,27224.453999999998,27224.453999999998,375904.55825999996,375904.55825999996 +11098800.0,161309.481,413374.596,1207053.82032,116636.72911000001,116636.72911000001,116636.72911000001,262839.2305,328357.9128,312102.52672,185537.12289,282723.23488,66593.577,66593.577,66593.577,252355.37249999997,161309.481,161309.481,97687.18946999998,63571.2219,94493.51995999999,164814.279,46775.86204,59490.106420000004,80220.20999999999,80220.20999999999,80220.20999999999,80220.20999999999,485003.83953999996,485003.83953999996 +11102400.0,198849.126,97124.841,283604.53572,99980.16457000001,99980.16457000001,99980.16457000001,213999.74049999999,386702.07655999996,282519.83936000004,189409.13103000002,288623.43776000006,119899.845,119899.845,119899.845,90857.6865,198849.126,198849.126,159623.15446999998,87222.21749999998,129648.82699999998,226131.675,64178.323,81622.7665,126463.65,126463.65,126463.65,126463.65,597873.0388399999,597873.0388399999 +11106000.0,138471.72000000003,61845.042,180587.52263999998,77166.89068,77166.89068,77166.89068,79122.869,249877.68016,194123.10336,124097.98212,189101.68704000002,81264.64799999999,81264.64799999999,81264.64799999999,51184.1645,138471.72000000003,138471.72000000003,118641.23297,57981.4443,86184.76411999999,150322.263,42662.88988,54259.17874,85074.441,85074.441,85074.441,85074.441,416338.30480000004,416338.30480000004 +11109600.0,140619.318,80899.00200000001,236225.08584,105732.58454000001,105732.58454000001,105732.58454000001,70095.942,250474.59823999996,26178.748799999998,270310.14339,411901.17088,56078.183999999994,56078.183999999994,56078.183999999994,126016.69499999999,140619.318,140619.318,278457.25401,78783.95745,117106.03058,204254.70450000002,57969.430420000004,73726.22191000001,38329.547999999995,38329.547999999995,38329.547999999995,38329.547999999995,422795.41611999995,422795.41611999995 +11113200.0,22056.642,196165.50300000003,572803.26876,255378.90213,255378.90213,255378.90213,221896.094,251918.10607999997,42344.01344,30569.016870000003,46581.35904,34742.793,34742.793,34742.793,288047.71099999995,22056.642,22056.642,206956.69058999998,97678.24829999999,145190.87772,253239.903,71871.89628,91407.54594,59686.424999999996,59686.424999999996,59686.424999999996,59686.424999999996,66316.97028,66316.97028 +11116800.0,26138.982000000004,8502.582,24827.53944,66262.52226,66262.52226,66262.52226,43905.015,30448.01384,24651.229440000006,25156.832820000003,38334.22144000001,7698.4439999999995,7698.4439999999995,7698.4439999999995,15529.3285,26138.982000000004,26138.982000000004,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11449.734,11449.734,11449.734,11449.734,78591.20588000001,78591.20588000001 +11120400.0,643890.861,268575.65400000004,784240.90968,131085.08259,131085.08259,131085.08259,681781.7755,805082.9703200001,497934.0908800001,818968.74801,1247952.37792,539700.987,539700.987,539700.987,117485.29449999999,643890.861,643890.861,9502.102089999998,194411.94345,288977.75298,504030.9645,143048.78802,181931.17671,391750.455,391750.455,391750.455,391750.455,1935965.18874,1935965.18874 +11124000.0,186318.51,59583.549,173983.96308000002,165656.58648,165656.58648,165656.58648,194953.787,257605.27912000002,147693.46496,208844.67429000002,318239.50368,92158.69200000001,92158.69200000001,92158.69200000001,78126.96500000001,186318.51,186318.51,19955.94926,71594.44605,106419.39881999999,185615.2305,52679.37018,66998.25938999999,95503.659,95503.659,95503.659,95503.659,560197.6534000001,560197.6534000001 +11127600.0,447210.59099999996,299007.483,873101.85036,204629.94596,204629.94596,204629.94596,498308.31049999996,918639.03136,786891.0496,624290.4009300001,951299.6585600001,396653.739,396653.739,396653.739,275921.569,447210.59099999996,447210.59099999996,199456.27962,303391.8747,450967.6754799999,786571.5269999999,223236.49052,283914.86546,356778.69299999997,356778.69299999997,356778.69299999997,356778.69299999997,1344613.17694,1344613.17694 +11131200.0,579319.602,438525.10800000007,1280493.3153600001,225560.31167999998,225560.31167999998,225560.31167999998,559895.098,1147638.9100799998,1054938.13888,866126.47233,1319811.76736,534472.5179999999,534472.5179999999,534472.5179999999,560377.762,579319.602,579319.602,425679.00674,494096.0229,734434.0883599999,1280989.689,363557.07363999996,462376.27822,521093.349,521093.349,521093.349,521093.349,1741820.9366799998,1741820.9366799998 +11134800.0,456573.68100000004,377502.71699999995,1102307.93364,232925.1639,232925.1639,232925.1639,388946.1275,689589.5068,932601.0470400001,587800.04073,895695.30016,313222.731,313222.731,313222.731,377760.13450000004,456573.68100000004,456573.68100000004,386564.90443999995,304549.8669,452688.93796,789573.729,224088.54404,284998.51742000005,444180.60599999997,444180.60599999997,444180.60599999997,444180.60599999997,1372764.86754,1372764.86754 +11138400.0,81224.766,65582.949,191502.21108,78039.23006,78039.23006,78039.23006,74145.22850000001,116200.51231999998,428883.23520000005,112937.99181,172095.98752,74227.19399999999,74227.19399999999,74227.19399999999,87056.6935,81224.766,81224.766,117450.77239999997,37396.79685,55587.33753999999,96954.6585,27516.65546,34996.01483,58682.379,58682.379,58682.379,58682.379,244215.79644,244215.79644 +11142000.0,77935.299,62875.793999999994,183597.31848,39568.478950000004,39568.478950000004,39568.478950000004,40208.010500000004,101966.90808,423554.73344000004,108994.30647000001,166086.56224,83797.34700000001,83797.34700000001,83797.34700000001,79327.255,77935.299,77935.299,111069.93221999999,44031.14639999999,65448.76575999999,114154.824,32398.226239999996,41204.455519999996,66655.548,66655.548,66655.548,66655.548,234325.46565999996,234325.46565999996 +11145600.0,76834.155,68250.111,199290.32412,15805.06356,15805.06356,15805.06356,24035.6305,108197.13104,422618.10688000004,100734.20469,153499.74048,96250.23,96250.23,96250.23,74288.3995,76834.155,76834.155,123221.57952,37578.921299999995,55858.050919999994,97426.83299999998,27650.66308,35166.44734,62299.17,62299.17,62299.17,62299.17,231014.6927,231014.6927 +11149200.0,87913.977,84078.114,245508.09288,10421.62572,10421.62572,10421.62572,28703.801,134423.09352,442985.97824,102971.25783,156908.58336,110486.247,110486.247,110486.247,77320.95700000001,87913.977,87913.977,157705.72011999995,40223.49434999999,59788.99653999999,104283.1335,29596.546459999998,37641.24533,64190.240999999995,64190.240999999995,64190.240999999995,64190.240999999995,264328.02418,264328.02418 +11152800.0,95908.16100000001,87202.494,254631.28248,5727.149340000001,5727.149340000001,5727.149340000001,25121.6175,162250.41904,446536.3616,122089.39764,186040.98687999998,111519.98999999999,111519.98999999999,111519.98999999999,77512.421,95908.16100000001,95908.16100000001,175204.6348,48390.1533,71928.07972,125455.953,35605.59428,45283.62494,64610.46000000001,64610.46000000001,64610.46000000001,64610.46000000001,288363.87074,288363.87074 +11156400.0,102006.82199999999,98072.328,286371.19775999995,7119.88299,7119.88299,7119.88299,32915.879499999995,163802.50415999998,453491.32544000004,147810.66426,225235.29792,114100.887,114100.887,114100.887,80114.64649999999,102006.82199999999,102006.82199999999,183319.40783,52209.2385,77604.8434,135357.285,38415.6866,48857.5343,68514.102,68514.102,68514.102,68514.102,306700.51148,306700.51148 +11160000.0,108679.773,102191.109,298398.03828,9749.33498,9749.33498,9749.33498,34707.5295,166646.02352000002,458063.92832,180182.4738,274563.7696,127218.78899999999,127218.78899999999,127218.78899999999,88539.5735,108679.773,108679.773,193572.73090999995,57405.833999999995,85329.1656,148829.94,42239.3544,53720.521199999996,81157.014,81157.014,81157.014,81157.014,326763.85082,326763.85082 +11163600.0,179296.29,121761.62700000001,355543.95084,42018.31777,42018.31777,42018.31777,42721.532,531411.5241599999,451565.4892800001,313301.61597,477411.98624,171810.204,171810.204,171810.204,185237.829,179296.29,179296.29,376214.88592999993,76663.49085,113954.12714,198757.19850000003,56409.185860000005,71741.88403,149510.022,149510.022,149510.022,149510.022,539084.1786,539084.1786 +11167200.0,636594.426,245312.796,716313.3643199999,220792.95788,220792.95788,220792.95788,539778.1165,2260361.52304,1534258.704,1475429.19489,2248273.05888,413772.08999999997,413772.08999999997,413772.08999999997,630236.4145,636594.426,636594.426,1434977.1893600002,665543.39715,989276.85206,1725482.8815000001,489708.47494000004,622817.15437,741365.3430000001,741365.3430000001,741365.3430000001,741365.3430000001,1914027.2408399999,1914027.2408399999 +11170800.0,466277.202,607123.2690000001,1772799.94548,341945.30315,341945.30315,341945.30315,1015723.1770000001,2408060.7819999997,1094708.8800000001,1624173.91836,2474931.68512,648350.706,648350.706,648350.706,727944.924,466277.202,466277.202,786256.7173499999,1043039.3611499999,1550394.3096599998,2704176.1215,767470.93734,976078.8095699999,702302.319,702302.319,702302.319,702302.319,1401940.12068,1401940.12068 +11174400.0,1162277.3850000002,657689.6429999999,1920453.7575599998,214252.7772,214252.7772,214252.7772,453506.14400000003,1518875.11904,2346518.39936,1274458.8357899997,1942032.5116799998,730917.333,730917.333,730917.333,443972.8895,1162277.3850000002,1162277.3850000002,439265.49628,508347.18315,755617.29446,1317937.1415000001,374043.11254,475712.54917,1240078.824,1240078.824,1240078.824,1240078.824,3494580.6709000003,3494580.6709000003 +11178000.0,596503.8389999999,395932.995,1156124.3454,210992.78046000004,210992.78046000004,210992.78046000004,193274.249,528950.05176,3320226.3712,168365.79186,256557.39711999998,527981.361,527981.361,527981.361,473509.694,596503.8389999999,596503.8389999999,270378.06055,915407.5396499999,1360679.84906,2373278.8065,673559.1279399999,856640.63587,174005.604,174005.604,174005.604,174005.604,1793488.2092599997,1793488.2092599997 +11181600.0,197435.658,43546.18199999999,127154.85143999998,127313.66186,127313.66186,127313.66186,99774.9515,238980.53216,201465.39519999997,126401.33667,192611.56064,73301.1,73301.1,73301.1,50200.969,197435.658,197435.658,110980.65380999997,59509.2906,88455.78503999999,154283.346,43787.08296,55688.941080000004,78736.86,78736.86,78736.86,78736.86,593623.2117199999,593623.2117199999 +11185200.0,230392.37099999998,537523.281,1569567.98052,117863.84632000001,117863.84632000001,117863.84632000001,303396.989,536262.4617600001,471373.18208000006,321891.64538999996,490501.55487999995,127741.22999999998,127741.22999999998,127741.22999999998,339260.1765,230392.37099999998,230392.37099999998,150858.75727,107986.57964999999,160513.38505999997,279965.2065,79456.79194,101054.10786999999,153655.785,153655.785,153655.785,153655.785,692713.0621399999,692713.0621399999 +11188800.0,298359.27900000004,179467.158,524044.10136,103336.04644,103336.04644,103336.04644,278566.78500000003,611322.10712,657860.9625600001,362116.58574000007,551796.7020800001,224112.738,224112.738,224112.738,187388.369,298359.27900000004,298359.27900000004,246483.04836999997,193693.00364999997,287909.10666,502167.0465,142519.79033999998,181258.39106999998,234499.785,234499.785,234499.785,234499.785,897066.8988600001,897066.8988600001 +11192400.0,168381.11099999998,89796.03600000001,262204.42512,78053.29191,78053.29191,78053.29191,93062.249,332496.896,311013.09056000004,170034.85632000002,259100.73344000004,120178.02900000001,120178.02900000001,120178.02900000001,81784.0625,168381.11099999998,168381.11099999998,147176.71188999998,83643.00165,124328.60986,216852.22650000002,61544.72714,78273.32747,117454.011,117454.011,117454.011,117454.011,506265.87373999995,506265.87373999995 +11196000.0,224542.28399999999,136408.188,398311.90896,193241.34929,193241.34929,193241.34929,163613.331,454845.1004,134536.44416,423412.97585999995,645200.72512,112192.737,112192.737,112192.737,304959.3995,224542.28399999999,224542.28399999999,439223.90901999996,187078.0698,278076.53832,485017.218,137652.50568,175068.11964000002,84494.22899999999,84494.22899999999,84494.22899999999,84494.22899999999,675123.80056,675123.80056 +11199600.0,51602.484000000004,284270.84699999995,830070.8732399999,261715.06185,261715.06185,261715.06185,265264.2685,372905.70728000003,53163.346560000005,50553.59106,77034.04352,87090.426,87090.426,87090.426,399256.886,51602.484000000004,51602.484000000004,315862.24305999995,137624.88869999998,204568.35307999997,356805.267,101264.73292,128789.71066,91169.96699999999,91169.96699999999,91169.96699999999,91169.96699999999,155151.46856,155151.46856 +11203200.0,30686.852999999996,9316.728,27204.84576,109138.59253000001,109138.59253000001,109138.59253000001,56090.961500000005,34729.317839999996,35097.868160000005,25485.031320000002,38834.33344,8357.124,8357.124,8357.124,15529.3285,30686.852999999996,30686.852999999996,10076.95962,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11932.323,11932.323,11932.323,11932.323,92265.13801999998,92265.13801999998 +11206800.0,797365.353,448108.755,1308477.5646,211479.08034000001,211479.08034000001,211479.08034000001,1102152.6705,1162888.9780000001,947813.7024000001,1239587.19696,1888894.7763200002,827186.415,827186.415,827186.415,360068.4605,797365.353,797365.353,42010.81417,457708.6683,680347.20572,1186652.1030000001,336783.16828,428324.90194,591670.2209999999,591670.2209999999,591670.2209999999,591670.2209999999,2397411.82802,2397411.82802 +11210400.0,139317.261,13015.374,38004.89208,155667.41861000002,155667.41861000002,155667.41861000002,125923.72099999999,149121.74864,47894.83712,102267.76833,155836.59936000002,25577.838,25577.838,25577.838,55739.330500000004,139317.261,139317.261,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,56335.221,56335.221,56335.221,56335.221,418880.56474,418880.56474 +11214000.0,431469.37200000003,246679.14,720303.0888,196204.85060000003,196204.85060000003,196204.85060000003,402589.7995,897012.2908,776155.3075200001,589064.22078,897621.6697600001,372833.979,372833.979,372833.979,279971.17400000006,431469.37200000003,431469.37200000003,218975.83200999998,251990.5545,374563.73779999994,653308.845,185415.2722,235813.3831,321056.214,321056.214,321056.214,321056.214,1297284.5784800001,1297284.5784800001 +11217600.0,661783.326,515495.91299999994,1505248.0659599998,251304.42513000002,251304.42513000002,251304.42513000002,633699.0485,1299039.3566400001,1510614.8211199997,976601.5698599999,1488154.77312,635115.297,635115.297,635115.297,705627.58,661783.326,661783.326,516393.11996999994,594480.4650000001,883647.506,1541245.6500000001,437420.1940000001,556316.2870000001,617927.493,617927.493,617927.493,617927.493,1989761.86684,1989761.86684 +11221200.0,503173.1010000001,432113.97,1261772.7924,281410.55701,281410.55701,281410.55701,456859.053,764101.5703999999,1239201.60128,685039.11252,1043869.12384,375519.612,375519.612,375519.612,475353.78099999996,503173.1010000001,503173.1010000001,433343.53491,384637.15485,571732.26474,997207.4385,283016.96826,359944.39923000004,512944.6320000001,512944.6320000001,512944.6320000001,512944.6320000001,1512873.79034,1512873.79034 +11224800.0,94791.588,72780.28499999999,212518.43219999998,78263.96325,78263.96325,78263.96325,74934.8915,133260.01080000002,503715.98400000005,140479.27005,214063.6496,114288.47099999999,114288.47099999999,114288.47099999999,103147.912,94791.588,94791.588,130832.02885999998,60962.139,90615.3276,158049.99000000002,44856.0924,57048.520200000006,83106.369,83106.369,83106.369,83106.369,285006.70791999996,285006.70791999996 +11228400.0,89554.737,72673.281,212205.98051999998,39849.10952,39849.10952,39849.10952,53446.5855,131385.45839999997,493959.40928,123567.51771,188293.36032,122946.41100000001,122946.41100000001,122946.41100000001,92441.132,89554.737,89554.737,126577.25677999998,49680.041849999994,73845.39554,128800.1085,36554.697459999996,46490.70583,75176.553,75176.553,75176.553,75176.553,269261.24257999996,269261.24257999996 +11232000.0,92584.80900000001,84121.137,245633.72004000001,16432.97095,16432.97095,16432.97095,35795.105500000005,143736.0948,498339.34911999997,114265.72017,174119.19264,126693.426,126693.426,126693.426,86858.6215,92584.80900000001,92584.80900000001,160123.3608,44777.7477,66558.52868,116090.45700000001,32947.577320000004,41903.126860000004,71654.313,71654.313,71654.313,71654.313,278371.65906000003,278371.65906000003 +11235600.0,102436.17,100982.03100000002,294867.53052000003,11927.904230000002,11927.904230000002,11927.904230000002,34370.630000000005,176998.69663999998,510011.34784,130126.02980999999,198287.28352,129709.149,129709.149,129709.149,89414.19900000001,102436.17,102436.17,193885.67912999997,51365.5344,76350.74496,133169.904,37794.88704,48067.99392,72900.126,72900.126,72900.126,72900.126,307991.4178,307991.4178 +11239200.0,110448.687,114597.033,334623.33635999996,7297.6565200000005,7297.6565200000005,7297.6565200000005,37794.263499999994,189315.50192,528936.0416,157756.03514999998,240390.1488,135477.981,135477.981,135477.981,91811.993,110448.687,110448.687,223818.89595,58737.81014999999,87309.04125999998,152283.21149999998,43219.42574,54966.98776999999,76871.856,76871.856,76871.856,76871.856,332082.38558,332082.38558 +11242800.0,120539.751,116072.331,338931.20652,23978.95445,23978.95445,23978.95445,38518.165,189612.17392,531807.6870400001,199287.78996000002,303676.63232000003,157327.671,157327.671,157327.671,102028.6645,120539.751,120539.751,223944.68707,65373.139800000004,97171.92632,169485.918,48101.71768,61176.34564000001,92858.355,92858.355,92858.355,92858.355,362422.85134,362422.85134 +11246400.0,143874.531,119911.46100000001,350141.46612,36223.549450000006,36223.549450000006,36223.549450000006,55354.69800000001,204934.944,537974.36224,227893.56155999997,347266.37951999996,217053.23100000003,217053.23100000003,217053.23100000003,169531.894,143874.531,143874.531,228764.65338999996,76947.72794999999,114376.62277999998,199494.1095,56618.328219999996,72007.87380999999,138714.771,138714.771,138714.771,138714.771,432582.7565399999,432582.7565399999 +11250000.0,158047.476,123514.398,360662.04216,43709.915590000004,43709.915590000004,43709.915590000004,61368.055,243476.08239999998,510018.94208000007,233082.47886,355173.30112,226574.87100000004,226574.87100000004,226574.87100000004,166582.2725,158047.476,158047.476,238537.6162,83701.60919999999,124415.72527999998,217004.172,61587.850719999995,78328.17255999999,168555.138,168555.138,168555.138,168555.138,475196.07784,475196.07784 +11253600.0,723851.9130000001,740578.446,2162489.06232,464137.73285000003,464137.73285000003,464137.73285000003,867849.7030000001,1101425.6352,644289.1635200001,832659.3781800001,1268814.29056,309258.705,309258.705,309258.705,1267811.041,723851.9130000001,723851.9130000001,1283945.7482800002,361073.6028,536706.9355199999,936116.7479999999,265678.84848,337893.56904,888580.6379999999,888580.6379999999,888580.6379999999,888580.6379999999,2176381.41842,2176381.41842 +11257200.0,1265816.04,1215750.2729999998,3549990.7971599996,1015593.14395,1015593.14395,1015593.14395,1273137.005,2024736.3979199997,1949130.33792,1887643.3569,2876408.9248,737571.5819999999,737571.5819999999,737571.5819999999,871832.4615,1265816.04,1265816.04,377816.71212999994,1006645.80195,1496298.20438,2609822.4495,740692.46662,942021.62701,1379043.9749999999,1379043.9749999999,1379043.9749999999,1379043.9749999999,3805886.8935999996,3805886.8935999996 +11260800.0,1225550.034,959340.408,2801273.99136,611744.50425,611744.50425,611744.50425,870001.7585,2067670.37264,4159114.6163200005,1609295.35935,2452259.5952000003,1383748.308,1383748.308,1383748.308,1155117.964,1225550.034,1225550.034,524220.31753,1681803.18225,2499865.4709,4360230.4725,1237474.9341000002,1573835.57055,852441.0090000001,852441.0090000001,852441.0090000001,852441.0090000001,3684820.43556,3684820.43556 +11264400.0,810250.179,424130.33400000003,1238460.5752800002,314591.83030000003,314591.83030000003,314591.83030000003,1310521.2645,1859007.56976,2816346.78464,1528768.55607,2329552.08544,1076645.781,1076645.781,1076645.781,1333615.1500000001,810250.179,810250.179,683370.46141,1429511.1903,2124853.6705199997,3706140.1229999997,1051837.8634799998,1337740.10154,878873.0759999999,878873.0759999999,878873.0759999999,878873.0759999999,2436152.20486,2436152.20486 +11268000.0,368279.56200000003,212250.64200000002,619771.87464,320702.43469,320702.43469,320702.43469,702286.1965,1197320.3974399997,1352178.2156800001,713936.7706800001,1087903.6505600002,253920.162,253920.162,253920.162,540688.9635,368279.56200000003,368279.56200000003,125536.03126999999,551569.6093499999,819863.96254,1429995.2835,405846.28046,516160.20233,344395.584,344395.584,344395.584,344395.584,1107293.88308,1107293.88308 +11271600.0,211413.612,84188.85,245831.442,133261.02669,133261.02669,133261.02669,137138.288,574964.62064,255591.31712,318883.98507,485918.45344,135828.63299999997,135828.63299999997,135828.63299999997,115637.22099999999,211413.612,211413.612,68832.40350999999,74585.88945,110865.93938,193370.8245,54880.48162,69797.65951,150734.87699999998,150734.87699999998,150734.87699999998,150734.87699999998,635650.2600799999,635650.2600799999 +11275200.0,226380.876,109365.681,319347.78852,105890.72439,105890.72439,105890.72439,159079.91749999998,440061.18711999996,358615.79968,292811.90589,446189.57088,171477.45,171477.45,171477.45,124627.9335,226380.876,226380.876,96809.83104,102161.61045,151855.03577999998,264863.4345,75170.76522,95603.08731,160380.55800000002,160380.55800000002,160380.55800000002,160380.55800000002,680651.83384,680651.83384 +11278800.0,42000.144,6644.621999999999,19402.296239999996,69366.38973000001,69366.38973000001,69366.38973000001,58144.432499999995,60597.5044,22960.97792,43040.44394999999,65585.4384,10685.07,10685.07,10685.07,20705.7725,42000.144,42000.144,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,22010.1,22010.1,22010.1,22010.1,126280.43295999999,126280.43295999999 +11282400.0,24699.975,4397.535,12840.802199999998,57828.09439,57828.09439,57828.09439,49914.4835,43108.76008,15936.305920000003,31318.35273,47723.20416,8792.835,8792.835,8792.835,17829.9695,24699.975,24699.975,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,15896.751,15896.751,15896.751,15896.751,74264.59149999998,74264.59149999998 +11286000.0,11459.58,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,26330.802159999996,12337.789440000002,22997.51853,35043.83776,6807.357,6807.357,6807.357,13803.846000000001,11459.58,11459.58,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9476.937000000002,9476.937000000002,9476.937000000002,9476.937000000002,34455.1372,34455.1372 +11289600.0,20369.178,3603.9120000000003,10523.42304,49947.731900000006,49947.731900000006,49947.731900000006,43473.906,37749.12344,13880.007679999999,26748.75252,40760.00384,7658.277,7658.277,7658.277,15529.3285,20369.178,20369.178,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,13436.499,13436.499,13436.499,13436.499,61243.32852,61243.32852 +11293200.0,48554.787,6799.068000000001,19853.278560000002,83875.64262,83875.64262,83875.64262,70846.3665,69499.82519999999,23023.86432,47536.44944999999,72436.4944,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,48554.787,48554.787,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,26506.884000000002,26506.884000000002,26506.884000000002,26506.884000000002,145988.05958,145988.05958 +11296800.0,70657.57199999999,12217.104,35673.94368,147425.34301,147425.34301,147425.34301,125591.28399999999,109061.48024,45949.656319999995,82636.45551,125922.21792,22128.701999999997,22128.701999999997,22128.701999999997,44862.503,70657.57199999999,70657.57199999999,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,40973.64,40973.64,40973.64,40973.64,212443.76647999996,212443.76647999996 +11300400.0,226872.168,61332.507000000005,179090.92044000002,175413.23932000002,175413.23932000002,175413.23932000002,140093.7685,329731.95384,208617.66783999998,198202.73046000002,302023.20832000003,95688.225,95688.225,95688.225,52020.997,226872.168,226872.168,26127.73241,51265.029599999994,76201.35263999998,132909.33599999998,37720.935359999996,47973.94128,106812.70199999999,106812.70199999999,106812.70199999999,106812.70199999999,682128.98512,682128.98512 +11304000.0,412836.7649999999,178744.51499999998,521933.9838,157706.88747000002,157706.88747000002,157706.88747000002,214248.73400000003,711920.2068,351085.904,428646.42576,653175.50592,244009.353,244009.353,244009.353,122442.978,412836.7649999999,412836.7649999999,186607.41319999998,107724.94559999999,160124.48703999998,279286.896,79264.28096,100809.27008,267352.392,267352.392,267352.392,267352.392,1241262.5400999996,1241262.5400999996 +11307600.0,256285.94400000002,123158.97600000002,359624.20992000005,124238.42277,124238.42277,124238.42277,160584.942,449030.45768,368142.2624,289203.0603,440690.3776,150741.528,150741.528,150741.528,138066.6175,256285.94400000002,256285.94400000002,131989.78624,57784.0149,85891.30116,149810.409,42517.62084,54074.42382,230382.84600000002,230382.84600000002,230382.84600000002,230382.84600000002,770566.40496,770566.40496 +11311200.0,79575.636,74056.521,216245.04132,78209.09558,78209.09558,78209.09558,74100.85900000001,125806.55311999998,441065.64736,106634.74521,162491.04032,75928.071,75928.071,75928.071,73230.5945,79575.636,79575.636,127278.74718,27227.21445,40471.06938,70589.0745,20033.85162,25479.29451,46772.154,46772.154,46772.154,46772.154,239257.41223999998,239257.41223999998 +11314800.0,85929.831,82066.098,239633.00616,39810.64802000001,39810.64802000001,39810.64802000001,40961.319,134358.5148,480451.16032,111516.52281000001,169929.93952,102548.90100000001,102548.90100000001,102548.90100000001,85191.6835,85929.831,85929.831,173683.47710999998,41665.79249999999,61932.85699999999,108022.42499999999,30657.792999999994,38990.951499999996,68627.667,68627.667,68627.667,68627.667,258362.35854000002,258362.35854000002 +11318400.0,89906.265,88491.75,258395.91,16111.82353,16111.82353,16111.82353,20282.689,157204.40208,490686.54208000004,133765.53624,203833.19808,111995.772,111995.772,111995.772,85200.731,89906.265,89906.265,185905.18206,41944.0923,62346.52731999999,108743.94299999998,30862.566679999996,39251.38514,73616.72400000002,73616.72400000002,73616.72400000002,73616.72400000002,270318.1701,270318.1701 +11322000.0,102428.41500000001,93913.43399999998,274227.22727999993,10664.348310000001,10664.348310000001,10664.348310000001,30481.5665,179778.1512,496264.0870400001,149559.79080000002,227900.63360000003,125697.41100000001,125697.41100000001,125697.41100000001,87298.722,102428.41500000001,102428.41500000001,195761.43482999998,50380.55010000001,74886.64484000001,130616.24100000002,37070.133160000005,47146.243180000005,77391.258,77391.258,77391.258,77391.258,307968.10109999997,307968.10109999997 +11325600.0,116381.29800000001,97789.203,285544.47276,6040.19339,6040.19339,6040.19339,26525.1665,182051.47632,504638.61887999997,175717.9116,267760.6272,132741.804,132741.804,132741.804,87045.9905,116381.29800000001,116381.29800000001,200676.06195,56161.6902,83479.84568,145604.382,41323.91032,52556.248360000005,86962.97099999999,86962.97099999999,86962.97099999999,86962.97099999999,349919.76932,349919.76932 +11329200.0,131229.771,113990.658,332852.72135999997,9597.3449,9597.3449,9597.3449,36377.656,189922.14943999998,529368.36928,220328.62719,335738.86048000003,195912.225,195912.225,195912.225,98988.06049999999,131229.771,131229.771,218080.51784999997,60959.8467,90611.92027999999,158044.047,44854.40572,57046.37506,94580.844,94580.844,94580.844,94580.844,394564.17814,394564.17814 +11332800.0,157842.747,125937.65699999999,367737.95843999996,12989.470120000002,12989.470120000002,12989.470120000002,41558.433,220243.09072,562330.0255999999,240381.77772,366296.04224000004,224298.495,224298.495,224298.495,168329.18199999997,157842.747,157842.747,238424.52347999995,71929.0935,106916.8254,186482.835,52925.6046,67311.42330000001,116742.04199999999,116742.04199999999,116742.04199999999,116742.04199999999,474580.52598000003,474580.52598000003 +11336400.0,163685.55599999998,119523.09599999999,349007.44032,35507.082930000004,35507.082930000004,35507.082930000004,46897.7425,238245.34623999996,487199.18656,222743.96529,339419.37568,207507.47999999998,207507.47999999998,207507.47999999998,154768.201,163685.55599999998,163685.55599999998,219315.90863,74918.88045,111360.90378,194234.13450000001,55125.497220000005,70109.27331,145854.56699999998,145854.56699999998,145854.56699999998,145854.56699999998,492147.90504,492147.90504 +11340000.0,639537.204,624030.2880000001,1822168.44096,237838.81792000003,237838.81792000003,237838.81792000003,734366.2025,996446.1047199998,403691.30240000004,722742.78804,1101322.34368,252033.94199999998,252033.94199999998,252033.94199999998,1068517.1,639537.204,639537.204,930607.25602,290306.34495,431517.08557999996,752646.0795,213608.12542,271669.39441,728145.1109999999,728145.1109999999,728145.1109999999,728145.1109999999,1922875.19336,1922875.19336 +11343600.0,1007922.051,906237.0719999999,2646212.2502399995,484453.1215700001,484453.1215700001,484453.1215700001,1024474.1745,1640519.8895999999,1562444.6496,1440708.07335,2195364.6832,610591.152,610591.152,610591.152,576979.802,1007922.051,1007922.051,247977.66929,715759.0515,1063918.3926,1855671.615,526657.2774,669809.0877,1063177.509,1063177.509,1063177.509,1063177.509,3030485.6333399997,3030485.6333399997 +11347200.0,852773.1300000001,563989.896,1646850.49632,239445.23064000002,239445.23064000002,239445.23064000002,548577.988,1430855.0712,1959337.4208000002,1222613.58198,1863030.22016,967032.9509999999,967032.9509999999,967032.9509999999,608865.915,852773.1300000001,852773.1300000001,403491.02989,831858.6559499999,1236491.1379799999,2156670.5895,612083.65302,778455.3842099999,598108.464,598108.464,598108.464,598108.464,2564004.5442,2564004.5442 +11350800.0,547153.0650000001,266519.49900000007,778236.9370800001,201958.86194,201958.86194,201958.86194,816370.919,1368403.13904,1894528.88384,927094.4949,1412715.4208,692218.956,692218.956,692218.956,842417.9890000001,547153.0650000001,547153.0650000001,430969.59307999996,813019.49775,1208488.2411,2107828.3275,598221.7539,760825.65345,526355.73,526355.73,526355.73,526355.73,1645106.8821,1645106.8821 +11354400.0,319613.904,188706.027,551021.59884,165760.63603000002,165760.63603000002,165760.63603000002,499358.46449999994,1048240.51576,800316.9260800002,645497.9021399999,983615.8508799999,232102.65600000002,232102.65600000002,232102.65600000002,356218.562,319613.904,319613.904,102792.25411000001,379070.2962,563457.57608,982774.8420000001,278920.85992,354734.91916000005,255330.513,255330.513,255330.513,255330.513,960972.4713599999,960972.4713599999 +11358000.0,190369.88999999998,71947.656,210087.15552,129164.91764000001,129164.91764000001,129164.91764000001,145167.3615,490618.65696000005,285331.84064,289609.1667,441309.2064,140563.356,140563.356,140563.356,108394.0235,190369.88999999998,190369.88999999998,71379.16864,91645.29944999999,136223.38337999998,237598.92449999996,67432.83761999999,85761.89751,132836.046,132836.046,132836.046,132836.046,572378.8025999999,572378.8025999999 +11361600.0,242729.907,131259.996,383279.18832,108396.32628,108396.32628,108396.32628,194545.24599999998,509559.88519999996,420531.52960000007,337030.73943,513570.65056000004,203811.84,203811.84,203811.84,153487.124,242729.907,242729.907,102095.70839,163383.1317,242855.91428,423585.89700000006,120217.71172,152894.33806,176838.915,176838.915,176838.915,176838.915,729807.9203799999,729807.9203799999 +11365200.0,93187.668,27681.102,80828.81783999999,76355.89434000001,76355.89434000001,76355.89434000001,66684.6285,157489.85544,96473.15584,95627.83692000002,145718.60864000002,43649.520000000004,43649.520000000004,43649.520000000004,28652.197,93187.668,93187.668,20640.647950000002,27874.38825,41433.0413,72266.93250000001,20510.043700000002,26084.92135,49227.36600000001,49227.36600000001,49227.36600000001,49227.36600000001,280184.25512,280184.25512 +11368800.0,38821.092,6051.147,17669.34924,60233.19984,60233.19984,60233.19984,50065.344,55472.7584,20247.27744,36294.15111,55305.373120000004,9238.356,9238.356,9238.356,17829.9695,38821.092,38821.092,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,19600.920000000002,19600.920000000002,19600.920000000002,19600.920000000002,116722.08327999999,116722.08327999999 +11372400.0,10310.733,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.928159999996,12337.789440000002,22612.813860000002,34457.62112,6807.357,6807.357,6807.357,13803.846000000001,10310.733,10310.733,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,31000.93722,31000.93722 +11376000.0,11746.365,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29026.038079999995,13880.007679999999,25451.65602,38783.47584,7658.277,7658.277,7658.277,15529.3285,11746.365,11746.365,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,35317.4041,35317.4041 +11379600.0,19254.918,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47604.54976,22619.26976,41110.74786000001,62644.94912000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,19254.918,19254.918,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,57893.12012,57893.12012 +11383200.0,42696.783,10411.305,30401.010599999998,143209.92191000003,143209.92191000003,143209.92191000003,125591.28399999999,94876.33632,40097.804800000005,73612.75005,112171.80960000001,22123.911,22123.911,22123.911,44862.503,42696.783,42696.783,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,33063.45,33063.45,33063.45,33063.45,128374.99422,128374.99422 +11386800.0,158854.29,22469.376,65610.57792,163335.46548,163335.46548,163335.46548,128558.32499999998,195127.91376,75665.9936,111786.68402999999,170341.61376,26659.317000000003,26659.317000000003,26659.317000000003,45437.66499999999,158854.29,158854.29,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,67102.497,67102.497,67102.497,67102.497,477621.89859999996,477621.89859999996 +11390400.0,285176.049,92111.481,268965.52452,155410.00332000002,155410.00332000002,155410.00332000002,145827.80800000002,413955.00304000004,208853.10016000003,235361.87178,358646.66176,111027.681,111027.681,111027.681,43852.501000000004,285176.049,285176.049,76645.01714999999,51309.48239999999,76267.42816,133024.584,37753.64384,48015.54032,147860.43,147860.43,147860.43,147860.43,857429.32066,857429.32066 +11394000.0,200130.174,33913.962,99028.76904,123594.47144000002,123594.47144000002,123594.47144000002,106282.1445,356477.54784,118351.80223999999,204581.47479,311743.19968,77441.19,77441.19,77441.19,86116.891,200130.174,200130.174,102828.20404999999,41132.39535,61140.00494,106639.54350000001,30265.31806,38491.797130000006,141290.29799999998,141290.29799999998,141290.29799999998,141290.29799999998,601724.72316,601724.72316 +11397600.0,55431.87300000001,35998.212,105114.77904000001,78321.11826,78321.11826,78321.11826,66015.9325,120855.30184,249874.35584,84020.54513999999,128031.30687999999,48213.15899999999,48213.15899999999,48213.15899999999,23581.572,55431.87300000001,55431.87300000001,83443.14887999998,23955.01695,35607.21038,62105.599500000004,17626.160620000002,22417.16401,26481.510000000002,26481.510000000002,26481.510000000002,26481.510000000002,166665.16482,166665.16482 +11401200.0,73747.599,76745.391,224096.54171999998,40008.08779,40008.08779,40008.08779,38734.741500000004,123034.12991999998,456949.51168000005,90311.01639,137616.78688,73940.016,73940.016,73940.016,58170.39549999999,73747.599,73747.599,132370.24761999998,14344.816499999999,21322.418599999997,37190.265,10554.9514,13423.9147,39678.372,39678.372,39678.372,39678.372,221734.44765999998,221734.44765999998 +11404800.0,92718.849,94309.026,275382.35592,16488.29446,16488.29446,16488.29446,21284.6515,161905.38015999997,558020.09856,114996.80829,175233.23168000003,117654.024,117654.024,117654.024,88288.4485,92718.849,92718.849,206247.54748,34664.006700000005,51525.26428,89869.64700000001,25505.861720000004,32438.663060000003,71465.952,71465.952,71465.952,71465.952,278774.67266,278774.67266 +11408400.0,112111.48800000001,106702.23599999999,311570.52911999996,11126.407270000002,11126.407270000002,11126.407270000002,16801.337,187276.34912,580024.83328,165053.84636999998,251510.62303999998,136402.698,136402.698,136402.698,99834.8505,112111.48800000001,112111.48800000001,225854.26669000002,50794.452,75501.8768,131689.32,37374.6832,47533.5736,88085.523,88085.523,88085.523,88085.523,337081.87392000004,337081.87392000004 +11412000.0,130862.163,114452.17500000002,334200.351,7452.605490000001,7452.605490000001,7452.605490000001,29660.627500000002,212758.76280000003,599859.51936,208155.09036,317188.70912,191987.05199999997,191987.05199999997,191987.05199999997,102595.75200000001,130862.163,130862.163,238038.40073,63803.542050000004,94838.84522,165416.59050000002,46946.80378,59707.51219,104305.61700000001,104305.61700000001,104305.61700000001,104305.61700000001,393458.90342,393458.90342 +11415600.0,161149.152,133773.522,390618.68424,10067.022900000002,10067.022900000002,10067.022900000002,44079.2275,232646.62583999996,620951.97696,259869.38355000003,395991.4416000001,241128.68399999995,241128.68399999995,241128.68399999995,163644.1695,161149.152,161149.152,257563.29221999997,72042.33959999999,107085.15663999999,186776.436,53008.93136,67417.39928,112810.938,112810.938,112810.938,112810.938,484521.78367999993,484521.78367999993 +11419200.0,209390.08500000002,150328.167,438958.24763999996,17018.4608,17018.4608,17018.4608,46895.31,322355.8236,632787.6000000001,286837.761,437086.112,278407.55700000003,278407.55700000003,278407.55700000003,200405.191,209390.08500000002,209390.08500000002,282208.58262999996,86296.46445,128272.76938,223731.5745,63497.15162,80756.44451,177402.075,177402.075,177402.075,177402.075,629566.1889000001,629566.1889000001 +11422800.0,314830.44299999997,170254.05299999999,497141.83475999994,41112.48636,41112.48636,41112.48636,59206.7245,774544.5766400001,574002.49216,454753.8219,692958.2048,286670.10599999997,286670.10599999997,286670.10599999997,253187.58150000003,314830.44299999997,314830.44299999997,474823.2384999999,108830.96415,161768.49486,282154.3515,80078.09214000001,101844.28497000001,292167.639,292167.639,292167.639,292167.639,946590.1986199999,946590.1986199999 +11426400.0,686812.365,254216.54700000002,742312.31724,208667.44294,208667.44294,208667.44294,622186.1415,2456649.4943999997,1670423.23136,1586187.25314,2417047.2428800003,437241.159,437241.159,437241.159,710436.2265,686812.365,686812.365,1412040.9256199996,710681.9755500001,1056371.72662,1842508.8255000003,522921.55238000007,665057.94749,792913.2180000001,792913.2180000001,792913.2180000001,792913.2180000001,2065015.8441,2065015.8441 +11430000.0,443008.584,614735.433,1795027.4643599999,270924.53575000004,270924.53575000004,270924.53575000004,960115.3275000001,2573518.2312,1099764.1305600002,1587763.77963,2419449.56896,629641.233,629641.233,629641.233,679212.5585,443008.584,443008.584,1024994.7325799998,957531.4883999999,1423293.71856,2482489.0439999998,704554.0334399999,896060.33112,635203.638,635203.638,635203.638,635203.638,1331979.1425599998,1331979.1425599998 +11433600.0,992688.828,364584.201,1064585.8669200002,181315.95218000002,181315.95218000002,181315.95218000002,283764.663,1412989.12128,1310271.6217600002,935343.4828499999,1425285.3072,655556.7749999999,655556.7749999999,655556.7749999999,268971.6295,992688.828,992688.828,341338.08097999997,323813.94299999997,481323.44119999994,839517.63,238263.09879999998,303025.8874,1022234.3099999998,1022234.3099999998,1022234.3099999998,1022234.3099999998,2984684.4095199998,2984684.4095199998 +11437200.0,432903.02100000007,226244.679,660634.46268,186846.80949,186846.80949,186846.80949,164824.135,314599.30496,2248720.67968,92562.13931999999,141047.06944,316042.83,316042.83,316042.83,242228.6545,432903.02100000007,432903.02100000007,147602.54119,491697.6777,730869.14068,1274771.757,361792.36532,460131.90086,103560.54000000001,103560.54000000001,103560.54000000001,103560.54000000001,1301595.08314,1301595.08314 +11440800.0,96494.10299999999,13316.877,38885.28084,114656.42177,114656.42177,114656.42177,98218.8235,65301.09296000001,31412.855680000004,55250.2734,84190.8928,17302.032,17302.032,17302.032,35084.777,96494.10299999999,96494.10299999999,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24071.778000000002,24071.778000000002,24071.778000000002,24071.778000000002,290125.60302,290125.60302 +11444400.0,63651.77100000001,214324.533,625827.63636,104186.31828,104186.31828,104186.31828,178206.189,123554.46224000001,64412.526719999994,64295.20671,97973.64832,20579.94,20579.94,20579.94,184847.0225,63651.77100000001,63651.77100000001,11445.71246,35269.157699999996,52424.772679999995,91438.55699999999,25951.133319999997,33004.96486,27780.816000000003,27780.816000000003,27780.816000000003,27780.816000000003,191379.65814,191379.65814 +11448000.0,94797.03600000001,48969.863999999994,142992.00288,95065.3913,95065.3913,95065.3913,128178.17599999998,126682.22608,112813.81696,53503.6971,81529.4432,52904.880000000005,52904.880000000005,52904.880000000005,44015.95450000001,94797.03600000001,94797.03600000001,11727.60732,28767.2391,42760.19244,74581.731,21167.00556,26920.45338,29776.176,29776.176,29776.176,29776.176,285023.08824,285023.08824 +11451600.0,57911.240999999995,17105.661,49948.530119999996,71229.90028,71229.90028,71229.90028,58073.23200000001,65283.91751999999,64905.57568000001,35101.44057,53487.90944,27609.246,27609.246,27609.246,20705.7725,57911.240999999995,57911.240999999995,32264.48914,20637.3582,30675.776879999998,53504.262,15185.01912,19312.49076,18422.697,18422.697,18422.697,18422.697,174119.79794,174119.79794 +11455200.0,118967.313,44379.537,129588.24803999999,62974.454730000005,62974.454730000005,62974.454730000005,65072.36400000001,179749.82136,62811.45856000001,146685.81039,223521.23488,45539.03999999999,45539.03999999999,45539.03999999999,20649.517,118967.313,118967.313,172124.43585999997,23015.206349999997,34210.25734,59669.053499999995,16934.64566,21537.68693,29485.917,29485.917,29485.917,29485.917,357695.05442,357695.05442 +11458800.0,36225.336,101824.44,297327.36480000004,245880.98733,245880.98733,245880.98733,158792.5045,157899.76504,50446.17536,27431.77248,41800.796160000005,19362.612,19362.612,19362.612,219462.488,36225.336,36225.336,128486.14856999999,68838.255,102322.542,178469.55000000002,50651.35800000001,64419.009000000005,31178.619,31178.619,31178.619,31178.619,108917.51024,108917.51024 +11462400.0,11847.915,6037.781999999999,17630.323439999996,50145.704840000006,50145.704840000006,50145.704840000006,43473.906,28920.0888,18038.202240000002,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,11847.915,11847.915,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,35622.731100000005,35622.731100000005 +11466000.0,411419.24700000003,82850.634,241923.85128,114931.48865000001,114931.48865000001,114931.48865000001,178516.702,386735.84344,82773.09248,321551.08692000003,489982.60864000005,188553.396,188553.396,188553.396,45278.159499999994,411419.24700000003,411419.24700000003,9502.102089999998,36741.28005,54612.96442,95255.17050000001,27034.32458,34382.58059,188806.28399999999,188806.28399999999,188806.28399999999,188806.28399999999,1237000.53598,1237000.53598 +11469600.0,102693.435,25415.724,74213.91407999999,151876.23803,151876.23803,151876.23803,129590.4155,165268.04632,59405.37664,126249.55392,192380.27264,37604.577000000005,37604.577000000005,37604.577000000005,46984.1855,102693.435,102693.435,16844.63443,45293.21955,67324.73621999999,117426.8655,33326.86278,42385.50669,53045.364,53045.364,53045.364,53045.364,308764.92789999995,308764.92789999995 +11473200.0,286270.419,112006.842,327059.97864,175774.87103,175774.87103,175774.87103,273663.488,435476.56519999995,432977.98848000006,390291.99468,594730.65856,261823.707,261823.707,261823.707,85295.462,286270.419,286270.419,27511.42511,79867.89134999999,118717.21133999998,207064.90349999996,58766.99165999999,74740.56992999998,147489.627,147489.627,147489.627,147489.627,860719.7264599999,860719.7264599999 +11476800.0,459574.13099999994,286653.621,837028.57332,167117.92405,167117.92405,167117.92405,447922.32800000004,938558.53552,795990.7987200002,581925.60153,886743.77376,398912.409,398912.409,398912.409,237943.98950000003,459574.13099999994,459574.13099999994,201521.09718,235430.92260000002,349949.17384,610376.466,173230.65416,220316.83868000002,333110.673,333110.673,333110.673,333110.673,1381786.2205399997,1381786.2205399997 +11480400.0,373378.71,298350.95999999996,871184.8032,139492.94557,139492.94557,139492.94557,347184.614,579089.79808,498998.59008000005,403151.14518,614325.55456,228293.21999999997,228293.21999999997,228293.21999999997,172010.6885,373378.71,373378.71,132732.9601,138300.5583,205572.68172,358557.003,101761.89228,129422.00394,344874.168,344874.168,344874.168,344874.168,1122625.3214,1122625.3214 +11484000.0,48404.585999999996,31286.268000000004,91355.90256,78177.28853,78177.28853,78177.28853,66015.9325,116410.60632,168064.51328,79956.14361,121837.93312,35398.047,35398.047,35398.047,23581.572,48404.585999999996,48404.585999999996,67563.05412999999,23603.5377,35084.76468,61194.357,17367.54132,22088.248860000003,24311.556,24311.556,24311.556,24311.556,145536.45523999998,145536.45523999998 +11487600.0,63664.029,62590.062,182762.98103999998,39856.26458,39856.26458,39856.26458,36818.2815,101320.32664,387525.33056000003,81939.90189,124860.80288,65715.16500000001,65715.16500000001,65715.16500000001,33713.6765,63664.029,63664.029,122345.64485,13680.0657,20334.31988,35466.837,10065.82612,12801.839259999999,31517.930999999997,31517.930999999997,31517.930999999997,31517.930999999997,191416.51386,191416.51386 +11491200.0,75017.985,74596.554,217821.93768,16167.961040000002,16167.961040000002,16167.961040000002,20222.7445,119242.43400000001,483304.00512000005,92898.52466999998,141559.65664,85984.602,85984.602,85984.602,73692.26550000001,75017.985,75017.985,130432.44773,20466.650700000002,30422.033880000003,53061.687000000005,15059.41212,19152.742260000003,53935.512,53935.512,53935.512,53935.512,225554.07489999998,225554.07489999998 +11494800.0,89789.754,88134.462,257352.62903999997,10771.572460000001,10771.572460000001,10771.572460000001,15655.451,134097.56024,499224.16512,111876.57516000001,170478.59072000004,106931.34899999999,106931.34899999999,106931.34899999999,82991.405,89789.754,89789.754,174507.12707999998,43611.84585,64825.509139999995,113067.7485,32089.70386,40812.07303,71218.269,71218.269,71218.269,71218.269,269967.86036,269967.86036 +11498400.0,97804.51200000002,95397.924,278561.93808,6062.13069,6062.13069,6062.13069,16313.668,171931.644,504199.51296,129182.78877000001,196849.96384,122151.91500000001,122151.91500000001,122151.91500000001,85953.9205,97804.51200000002,97804.51200000002,198376.92523999998,52307.82765,77751.38825999999,135612.88650000002,38488.22874,48949.794270000006,71986.353,71986.353,71986.353,71986.353,294065.56608,294065.56608 +11502000.0,115818.078,104846.409,306151.51428,7028.002740000001,7028.002740000001,7028.002740000001,28040.253500000003,194483.09016000002,539872.90048,179012.23242000001,272780.54464000004,155825.319,155825.319,155825.319,96567.59349999999,115818.078,115818.078,214654.28751,60080.8185,89305.31539999999,155765.085,44207.6146,56223.778300000005,83974.344,83974.344,83974.344,83974.344,348226.35452,348226.35452 +11505600.0,144250.257,125012.84999999999,365037.52199999994,11923.459789999999,11923.459789999999,11923.459789999999,40564.943999999996,211919.18688,575158.5683200001,233953.82052,356501.05984,227760.89099999997,227760.89099999997,227760.89099999997,172792.1055,144250.257,144250.257,233660.46859999996,68896.94355,102409.77781999999,178621.7055,50694.54118,64473.92989,109345.203,109345.203,109345.203,109345.203,433712.43938,433712.43938 +11509200.0,234663.45299999998,151135.59900000002,441315.94908,35979.82971,35979.82971,35979.82971,46982.719,622947.6783200001,540883.23904,378627.87312,576956.75904,234199.32,234199.32,234199.32,224714.05250000002,234663.45299999998,234663.45299999998,426753.21923,90933.8562,135165.88008,235754.442,66909.35592,85096.12716,183499.03499999997,183499.03499999997,183499.03499999997,183499.03499999997,705554.7820199999,705554.7820199999 +11512800.0,697255.422,268093.311,782832.46812,188549.54690000002,188549.54690000002,188549.54690000002,544758.144,2444853.5178400003,1587762.5619200002,1559266.4705100001,2376025.0979200006,454528.563,454528.563,454528.563,660240.6545,697255.422,697255.422,1438090.1973099997,656575.6968,975947.08512,1702233.2880000002,483110.01888,614425.15824,782756.9099999999,782756.9099999999,782756.9099999999,782756.9099999999,2096414.63548,2096414.63548 +11516400.0,487934.93999999994,620170.698,1810898.43816,297682.90541,297682.90541,297682.90541,1069868.912,2652938.14904,1161583.888,1734983.6817599998,2643784.65792,678466.908,678466.908,678466.908,746129.7479999999,487934.93999999994,487934.93999999994,897250.87283,1029944.41515,1530929.7232599999,2670226.2615,757835.64374,963824.52677,727127.409,727127.409,727127.409,727127.409,1467057.7195999997,1467057.7195999997 +11520000.0,1206193.755,659316.315,1925203.6397999998,200155.38389,200155.38389,200155.38389,419079.4195,1732393.82936,2240492.56,1348323.52347,2054588.2262399998,858954.978,858954.978,858954.978,431969.419,1206193.755,1206193.755,439277.44431999995,499957.4421,743146.61764,1296185.9610000001,367869.92036,467861.40878000006,1340194.977,1340194.977,1340194.977,1340194.977,3626622.5566999996,3626622.5566999996 +11523600.0,529124.346,322835.88,942680.7696,197542.29737000001,197542.29737000001,197542.29737000001,177848.7725,434435.49760000006,2922654.45952,126295.75770000002,192450.67840000003,453142.50600000005,453142.50600000005,453142.50600000005,391053.593,529124.346,529124.346,204379.52144999997,767367.6425999999,1140630.42184,1989471.666,564631.00616,718104.53468,138258.429,138258.429,138258.429,138258.429,1590900.53364,1590900.53364 +11527200.0,98580.17699999998,15985.199999999999,46676.78399999999,116213.36364,116213.36364,116213.36364,98218.8235,65301.09296000001,39113.882880000005,55620.077520000006,84754.40384000001,17302.032,17302.032,17302.032,35084.777,98580.17699999998,98580.17699999998,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,296397.73217999993,296397.73217999993 +11530800.0,70452.969,226765.227,662154.4628399999,104403.04578000001,104403.04578000001,104403.04578000001,217979.0235,128094.6184,56086.70464,77042.90013000001,117398.70496000002,22583.76,22583.76,22583.76,232180.837,70452.969,70452.969,11445.71246,40619.746349999994,60377.99333999999,105310.45349999999,29888.10966,38012.05893,32699.889,32699.889,32699.889,32699.889,211828.59346,211828.59346 +11534400.0,99961.524,54605.12100000001,159446.95332,95261.47169,95261.47169,95261.47169,154024.0415,126220.76096,88543.22432000001,66374.99988,101142.85695999999,46445.562,46445.562,46445.562,48828.241,99961.524,99961.524,30868.280819999996,32360.366700000002,48101.08828,83897.247,23810.837720000003,30282.911060000002,29926.926,29926.926,29926.926,29926.926,300550.98216,300550.98216 +11538000.0,37950.702000000005,11292.906,32975.28552,68447.67270000001,68447.67270000001,68447.67270000001,57965.20799999999,57950.46599999999,25815.59616,32979.84375,50255.0,19655.526,19655.526,19655.526,20705.7725,37950.702000000005,37950.702000000005,17872.69497,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,15405.470999999998,15405.470999999998,15405.470999999998,15405.470999999998,114105.11068,114105.11068 +11541600.0,110662.76999999999,53667.486000000004,156709.05912,60995.95854,60995.95854,60995.95854,64906.442999999985,194723.31855999999,25656.040960000002,179771.22828,273937.10976,41526.363000000005,41526.363000000005,41526.363000000005,26999.972999999998,110662.76999999999,110662.76999999999,195871.11245000002,26104.61925,38802.4217,67678.6425,19207.8433,24428.76715,28886.73,28886.73,28886.73,28886.73,332726.06179999997,332726.06179999997 +11545200.0,29792.057999999997,135541.19700000001,395780.29524,220383.44262000002,220383.44262000002,220383.44262000002,170336.313,187563.43184,46912.242560000006,27185.91099,41426.15008,20122.602000000003,20122.602000000003,20122.602000000003,231427.41649999996,29792.057999999997,29792.057999999997,151199.85841999998,74062.52010000001,110087.99284,192013.94100000002,54495.385160000005,69307.88918,40285.218,40285.218,40285.218,40285.218,89574.78772,89574.78772 +11548800.0,29626.902000000002,9529.971,27827.515319999995,52720.99327,52720.99327,52720.99327,43827.755999999994,33536.54456,22848.51136,24878.16114,37909.57888,8291.220000000001,8291.220000000001,8291.220000000001,15529.3285,29626.902000000002,29626.902000000002,14193.982919999999,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11844.485999999999,11844.485999999999,11844.485999999999,11844.485999999999,89078.21867999999,89078.21867999999 +11552400.0,543594.96,149878.554,437645.37768000003,124332.57408000002,124332.57408000002,124332.57408000002,384601.595,570826.3324,233957.37280000004,567696.3684,865061.1328,353639.967,353639.967,353639.967,65370.592000000004,543594.96,543594.96,9502.102089999998,73370.43585,109059.26513999999,190219.64849999998,53986.14786,68660.23503,267861.066,267861.066,267861.066,267861.066,1634408.8464,1634408.8464 +11556000.0,110146.479,21513.264,62818.730879999996,154857.58222,154857.58222,154857.58222,129493.62299999999,160801.07704,63962.61696000001,115395.62622,175840.95424000002,31536.254999999997,31536.254999999997,31536.254999999997,46558.5015,110146.479,110146.479,17271.36801,44768.189699999995,66544.32148,116065.677,32940.544519999996,41894.182459999996,54956.38799999999,54956.38799999999,54956.38799999999,54956.38799999999,331173.74686,331173.74686 +11559600.0,329425.839,186834.864,545557.80288,177801.32403000005,177801.32403000005,177801.32403000005,376664.24950000003,609776.77304,577764.0019200001,431388.86595,657354.4624,287634.885,287634.885,287634.885,135398.63050000003,329425.839,329425.839,93968.12151999999,146762.72145,218151.00818,380495.94450000004,107988.37282,137340.91711,204591.537,204591.537,204591.537,204591.537,990473.6892599999,990473.6892599999 +11563200.0,472867.86,326703.579,953974.45068,169455.03201,169455.03201,169455.03201,477696.8595,974188.69088,830246.0543999999,632786.5689600001,964246.2003200001,405634.1699999999,405634.1699999999,405634.1699999999,292115.096,472867.86,472867.86,228967.04376,306210.75164999993,455157.70985999994,793879.7264999999,225310.62713999997,286552.77747,383856.372,383856.372,383856.372,383856.372,1421756.0324,1421756.0324 +11566800.0,379405.071,316204.27800000005,923316.49176,142466.69107000003,142466.69107000003,142466.69107000003,356243.83199999994,570659.7872799999,486108.99968,450052.42065,685794.1648,232590.354,232590.354,232590.354,246657.4985,379405.071,379405.071,126216.11235999998,203665.0068,302731.68912,528020.388,149857.21488,190590.21624,343727.24700000003,343727.24700000003,343727.24700000003,343727.24700000003,1140744.58014,1140744.58014 +11570400.0,59649.77100000001,42185.676,123182.17392,77999.66152000001,77999.66152000001,77999.66152000001,68113.96549999999,113173.58776,261549.36832,85838.40741,130801.38272000001,48681.789,48681.789,48681.789,25841.956000000002,59649.77100000001,59649.77100000001,92933.23078,24983.73315,37136.31446,64772.641500000005,18383.09254,23379.839170000003,30599.241,30599.241,30599.241,30599.241,179346.97814,179346.97814 +11574000.0,69661.31999999999,63721.383,186066.43836,39636.49272,39636.49272,39636.49272,40310.364499999996,94921.47952,405551.00992000004,89252.19345,136003.3424,67125.645,67125.645,67125.645,56433.1635,69661.31999999999,69661.31999999999,114749.98144999998,18375.984,27314.425600000002,47641.44000000001,13521.094400000002,17196.291200000003,42304.431,42304.431,42304.431,42304.431,209448.36879999997,209448.36879999997 +11577600.0,76352.844,71390.84399999998,208461.26447999995,15954.60757,15954.60757,15954.60757,19687.43,113490.98591999999,452200.36992,99580.47708000001,151741.67936,83817.855,83817.855,83817.855,75352.249,76352.844,76352.844,123267.70261,32849.910449999996,48828.75578,85166.4345,24171.04522,30741.02731,62428.865999999995,62428.865999999995,62428.865999999995,62428.865999999995,229567.55096,229567.55096 +11581200.0,84250.077,84507.693,246762.46356,10565.097290000002,10565.097290000002,10565.097290000002,15143.8455,123585.40839999999,469917.75360000005,107704.59987,164121.29504,103329.051,103329.051,103329.051,79584.708,84250.077,84250.077,164345.32867999998,40813.32015,60665.72526,105812.31150000001,30030.541740000004,38193.20577000001,66696.069,66696.069,66696.069,66696.069,253311.89818,253311.89818 +11584800.0,101729.484,97176.144,283754.34047999996,5722.700830000001,5722.700830000001,5722.700830000001,25891.6105,183276.62072,515606.5728,128888.41959,196401.40128000002,128572.25700000001,128572.25700000001,128572.25700000001,87873.807,101729.484,101729.484,200665.23944999996,53771.2587,79926.66107999999,139406.967,39565.024919999996,50319.276659999996,72915.71100000001,72915.71100000001,72915.71100000001,72915.71100000001,305866.64856,305866.64856 +11588400.0,114827.196,101403.99900000001,296099.67708000005,6817.091270000001,6817.091270000001,6817.091270000001,26966.275,188696.95831999998,521623.75680000003,168932.24459999998,257420.56319999998,133428.522,133428.522,133428.522,90714.3685,114827.196,114827.196,207114.94439999998,58481.4735,86928.0174,151618.635,43030.812600000005,54727.1073,78277.851,78277.851,78277.851,78277.851,345247.10263999994,345247.10263999994 +11592000.0,128746.113,116744.63399999999,340894.33128,11651.30296,11651.30296,11651.30296,37505.909,195382.91736,533344.96576,212642.85105000003,324027.20160000003,205180.85700000002,205180.85700000002,205180.85700000002,142432.388,128746.113,128746.113,219001.00755,61804.583549999996,91867.55381999999,160234.1055,45475.96518,57836.88189,97272.762,97272.762,97272.762,97272.762,387096.64641999995,387096.64641999995 +11595600.0,198485.727,128257.578,374512.12775999994,33705.67651,33705.67651,33705.67651,41013.623,554660.29552,460861.6006400001,326121.41646,496946.92032000003,186329.694,186329.694,186329.694,192829.13999999998,198485.727,198485.727,381193.21187999996,76239.144,113323.36959999999,197657.04,56096.9504,71344.7792,147180.189,147180.189,147180.189,147180.189,596780.41918,596780.41918 +11599200.0,558202.4789999999,194300.886,567358.58712,165269.22830000002,165269.22830000002,165269.22830000002,403584.3945,2051093.1472,1069239.4310400002,1201362.54315,1830647.6848000002,342003.816,342003.816,342003.816,432074.71650000004,558202.4789999999,558202.4789999999,1317972.16928,461423.00025000004,685868.2621,1196281.8525,339516.1829,431800.78295,631503.465,631503.465,631503.465,631503.465,1678328.7868599999,1678328.7868599999 +11602800.0,368913.933,452037.82800000004,1319950.4577600001,208346.54379000003,208346.54379000003,208346.54379000003,671610.296,2036364.4219199999,803775.47136,1325018.7348300002,2019076.1673600005,545976.117,545976.117,545976.117,508432.70800000004,368913.933,368913.933,526574.35558,691893.15075,1028443.6462999999,1793797.0575,509096.6887,647475.31885,509409.91799999995,509409.91799999995,509409.91799999995,509409.91799999995,1109201.22522,1109201.22522 +11606400.0,779371.5419999999,179948.136,525448.55712,170476.23164,170476.23164,170476.23164,176063.24049999999,846737.3484799999,614868.04416,613869.0673499999,935419.5312,374529.084,374529.084,374529.084,179822.09,779371.5419999999,779371.5419999999,228199.04549,207087.09884999998,307818.35433999996,536892.4785,152375.19866,193792.61843,741362.0580000001,741362.0580000001,741362.0580000001,741362.0580000001,2343310.4362799996,2343310.4362799996 +11610000.0,351936.942,193983.786,566432.6551199999,176106.02658,176106.02658,176106.02658,159660.865,248468.88528,1403650.58176,85932.64554,130944.98367999999,252515.241,252515.241,252515.241,185130.37900000002,351936.942,351936.942,121902.96130999998,314207.05950000003,467043.5798,814610.895,231194.33020000003,294035.74210000003,86290.26000000001,86290.26000000001,86290.26000000001,86290.26000000001,1058157.07228,1058157.07228 +11613600.0,60473.024999999994,12794.736,37360.62912,112430.60389000001,112430.60389000001,112430.60389000001,98218.8235,65301.09296000001,33598.33216,55371.4098,84375.4816,17302.032,17302.032,17302.032,35084.777,60473.024999999994,60473.024999999994,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,181822.2285,181822.2285 +11617200.0,53172.246,120516.297,351907.58724,102421.3465,102421.3465,102421.3465,150306.14549999998,114364.66744,56439.00992,59865.797249999996,91224.072,20223.63,20223.63,20223.63,124110.01750000002,53172.246,53172.246,11445.71246,33189.4422,49333.44247999999,86046.70199999999,24420.873519999997,31058.761959999996,24310.713000000003,24310.713000000003,24310.713000000003,24310.713000000003,159871.21963999997,159871.21963999997 +11620800.0,67154.709,23168.718,67652.65656,90397.4676,90397.4676,90397.4676,104605.046,97543.16064,49559.66208,45475.2711,69295.65120000001,40836.471,40836.471,40836.471,31968.394500000002,67154.709,67154.709,9718.056659999998,27864.6561,41418.57524,72241.701,20502.88276,26075.813980000003,25990.703999999998,25990.703999999998,25990.703999999998,25990.703999999998,201911.82506,201911.82506 +11624400.0,20895.57,8131.263000000001,23743.28796,66120.10482,66120.10482,66120.10482,57965.20799999999,42686.03752,18506.68416,32585.957250000003,49654.79200000001,12548.274,12548.274,12548.274,20705.7725,20895.57,20895.57,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14412.491999999998,14412.491999999998,14412.491999999998,14412.491999999998,62826.01379999999,62826.01379999999 +11628000.0,60158.844,14515.908000000001,42386.45136,57496.1167,57496.1167,57496.1167,64091.342000000004,111182.17112,16920.65216,82030.47888,124998.82496000001,16480.326,16480.326,16480.326,17829.9695,60158.844,60158.844,48207.35919999999,18069.447600000003,26858.78384,46846.71600000001,13295.544160000001,16909.433680000002,15813.99,15813.99,15813.99,15813.99,180877.59096,180877.59096 +11631600.0,20915.805,27351.498,79866.37415999999,145972.84955,145972.84955,145972.84955,113357.475,67186.61872,34286.73152,22647.20829,34510.03168,10069.908,10069.908,10069.908,101130.701,20915.805,20915.805,25423.817769999998,34107.889050000005,50698.64002,88427.86050000001,25096.668980000002,31918.246790000005,10545.633,10545.633,10545.633,10545.633,62886.8537,62886.8537 +11635200.0,13260.866999999998,6194.457,18087.81444,49483.072210000006,49483.072210000006,49483.072210000006,43473.906,29168.650879999997,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,13260.866999999998,13260.866999999998,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10651.839,10651.839,10651.839,10651.839,39871.006779999996,39871.006779999996 +11638800.0,342445.611,51590.019,150642.85548,111832.4075,111832.4075,111832.4075,113825.2605,281928.2776,64027.059199999996,227364.33363000004,346459.93696,106845.834,106845.834,106845.834,43069.719,342445.611,342445.611,9502.102089999998,29854.979999999996,44377.03199999999,77401.79999999999,21967.368,27938.363999999998,163832.988,163832.988,163832.988,163832.988,1029619.8037399999,1029619.8037399999 +11642400.0,105563.61600000001,29791.782,86992.00343999999,152192.22062,152192.22062,152192.22062,134976.55849999998,174294.05831999998,73615.79904000001,124586.31444,189845.81248000002,45148.557,45148.557,45148.557,48356.640499999994,105563.61600000001,105563.61600000001,16844.63443,46044.2232,68441.04288000001,119373.91200000001,33879.453120000006,43088.29776000001,55651.36200000001,55651.36200000001,55651.36200000001,55651.36200000001,317394.60544,317394.60544 +11646000.0,248347.74,99815.067,291459.99564,169474.09589,169474.09589,169474.09589,230024.78100000002,333956.52808,304457.73824000004,312201.31299,475735.33408000006,188819.199,188819.199,188819.199,102371.31450000001,248347.74,248347.74,40588.3192,69233.49854999999,102910.03981999999,179494.2555,50942.17918,64788.87889,114262.48199999999,114262.48199999999,114262.48199999999,114262.48199999999,746698.8716,746698.8716 +11649600.0,365235.48600000003,226277.62800000003,660730.67376,158330.21204000004,158330.21204000004,158330.21204000004,332422.902,643957.7616,635726.3097600001,451567.04103,688102.1577600001,327994.18799999997,327994.18799999997,327994.18799999997,165560.122,365235.48600000003,365235.48600000003,137779.10223999998,170968.26735,254130.60973999999,443251.06350000005,125798.87326000001,159992.52673,226302.804,226302.804,226302.804,226302.804,1098141.36124,1098141.36124 +11653200.0,296542.527,195292.437,570253.9160399999,131429.89706000002,131429.89706000002,131429.89706000002,297757.02249999996,448622.2884,352749.16224000003,297287.17137,453009.02304,167979.26400000002,167979.26400000002,167979.26400000002,112970.26650000001,296542.527,296542.527,100670.86133,76562.46764999999,113803.96425999998,198495.2865,56334.852739999995,71647.34627,245547.31500000003,245547.31500000003,245547.31500000003,245547.31500000003,891604.53118,891604.53118 +11656800.0,37237.701,26276.421000000002,76727.14932000001,77640.00376,77640.00376,77640.00376,66015.9325,100029.40048,66853.75936000001,60099.55476,91580.27392,15505.743,15505.743,15505.743,23581.572,37237.701,37237.701,48898.2195,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,19167.951,19167.951,19167.951,19167.951,111961.35433999999,111961.35433999999 +11660400.0,36825.822,26103.654000000002,76222.66968,39342.63872000001,39342.63872000001,39342.63872000001,32202.8945,86872.57543999999,113094.71680000001,55421.337510000005,84451.56192000001,22084.466999999997,22084.466999999997,22084.466999999997,11503.205,36825.822,36825.822,55405.014339999994,11634.7914,17294.18376,30164.274,8560.90824,10887.86652,14161.161000000002,14161.161000000002,14161.161000000002,14161.161000000002,110722.97148,110722.97148 +11664000.0,51847.47899999999,53226.039000000004,155420.03388000003,15669.292430000001,15669.292430000001,15669.292430000001,14502.7505,89923.22207999999,318277.07904000004,62183.31336,94755.52512,54268.602,54268.602,54268.602,8032.965499999999,51847.47899999999,51847.47899999999,106944.55395,6012.59355,8937.237819999998,15588.205499999998,4424.081179999999,5626.5998899999995,22832.994,22832.994,22832.994,22832.994,155888.08685999998,155888.08685999998 +11667600.0,66446.81999999999,68865.65400000001,201087.70968,10258.64664,10258.64664,10258.64664,14347.2665,103463.64752,418563.89248,79436.53221,121046.14432,64985.117999999995,64985.117999999995,64985.117999999995,61134.08,66446.81999999999,66446.81999999999,127499.28567999999,11087.43795,16480.586779999998,28745.2095,8158.164220000001,10375.651810000001,43977.96,43977.96,43977.96,43977.96,199783.43879999997,199783.43879999997 +11671200.0,82616.088,78519.003,229275.48876,4860.82949,4860.82949,4860.82949,9778.09,117090.11368,440161.95456,95414.89188,145394.12096,84589.68299999999,84589.68299999999,84589.68299999999,70656.09599999999,82616.088,82616.088,154104.98297999997,34037.58104999999,50594.132819999984,88245.58049999998,25044.936179999997,31852.452389999995,60897.456000000006,60897.456000000006,60897.456000000006,60897.456000000006,248399.03791999997,248399.03791999997 +11674800.0,95052.59099999999,89340.231,260873.47451999996,5851.239570000001,5851.239570000001,5851.239570000001,10369.499,155188.16543999998,481410.90687999997,115779.94449000001,176426.58208000002,108555.516,108555.516,108555.516,81884.0295,95052.59099999999,95052.59099999999,182387.01818999997,48356.262899999994,71877.70435999999,125368.08899999999,35580.65764,45251.91022,68248.05,68248.05,68248.05,68248.05,285791.45693999995,285791.45693999995 +11678400.0,104042.32800000001,91440.633,267006.64836,8328.306690000001,8328.306690000001,8328.306690000001,21719.1135,169461.45247999998,476046.8057600001,150005.14095,228579.2624,137869.071,137869.071,137869.071,86401.2555,104042.32800000001,104042.32800000001,188276.53611,51984.4554,77270.72136,134774.514,38250.29064,48647.18172,74657.895,74657.895,74657.895,74657.895,312820.59952000005,312820.59952000005 +11682000.0,162841.86000000002,110499.69600000001,322659.11232,30971.03537,30971.03537,30971.03537,31768.754500000003,531838.76104,452521.73248000006,275620.80084,419993.60128,170989.932,170989.932,170989.932,153066.7845,162841.86000000002,162841.86000000002,352607.93983999995,59207.18895,88006.73518,153500.1195,43564.79582000001,55406.23361,129860.37,129860.37,129860.37,129860.37,489611.1924,489611.1924 +11685600.0,550934.286,215614.071,629593.08732,144878.28003000002,144878.28003000002,144878.28003000002,337373.5785,1995476.5320800003,932725.1552000002,1180900.33026,1799467.16992,325500.51900000003,325500.51900000003,325500.51900000003,329133.76300000004,550934.286,550934.286,1314685.3616000002,373743.99135,555540.45134,968965.9035,275001.75166,349750.54993000004,591795.42,591795.42,591795.42,591795.42,1656475.7532399998,1656475.7532399998 +11689200.0,404801.382,481540.857,1406099.30244,221190.80038,221190.80038,221190.80038,784435.7745,2158946.55336,858481.7651200001,1453956.96621,2215553.47232,588497.796,588497.796,588497.796,552318.7705000001,404801.382,404801.382,592935.32337,769547.1703499999,1143870.11494,1995122.2935,566234.70806,720144.14213,571470.105,571470.105,571470.105,571470.105,1217102.82188,1217102.82188 +11692800.0,1063693.65,482558.63399999996,1409071.21128,184367.22711000004,184367.22711000004,184367.22711000004,309017.233,1321313.4612,1517417.0406400003,1062878.16936,1619623.87712,628659.501,628659.501,628659.501,311895.178,1063693.65,1063693.65,366227.95508,360719.5274999999,536180.6309999999,935198.7749999999,265418.31899999996,337562.22449999995,1135832.067,1135832.067,1135832.067,1135832.067,3198172.241,3198172.241 +11696400.0,546879.906,341525.88,997255.5696,192926.08709000002,192926.08709000002,192926.08709000002,173306.532,448098.3528,2766060.5996800005,135677.14398,206746.12416,481015.44299999997,481015.44299999997,481015.44299999997,429089.7485,546879.906,546879.906,226814.26572999998,746260.7598,1109256.7343199998,1934750.118,549100.50968,698352.66164,149546.802,149546.802,149546.802,149546.802,1644285.5840399999,1644285.5840399999 +11700000.0,127525.48199999999,23435.121,68430.55332,119305.69266000002,119305.69266000002,119305.69266000002,98218.8235,105091.2672,88734.09216000001,65423.881109999995,99693.53312,30216.42,30216.42,30216.42,35084.777,127525.48199999999,127525.48199999999,47824.362949999995,37460.2968,55681.725119999996,97119.288,27563.37888,35055.43824,35708.34299999999,35708.34299999999,35708.34299999999,35708.34299999999,383426.61588,383426.61588 +11703600.0,83339.89199999999,354099.50399999996,1033970.5516799999,106655.59135,106655.59135,106655.59135,245371.69999999998,201346.12384000001,150255.1936,125552.12607,191317.52544,28685.79,28685.79,28685.79,249236.7255,83339.89199999999,83339.89199999999,13542.56943,45046.193849999996,66957.55234,116786.4285,33145.10066,42154.33943,36967.488000000005,36967.488000000005,36967.488000000005,36967.488000000005,250575.27528,250575.27528 +11707200.0,163127.769,87149.841,254477.53571999999,97674.83517,97674.83517,97674.83517,201603.948,300605.28672,233424.88384000005,135045.19644,205783.15648000003,86833.95,86833.95,86833.95,67373.999,163127.769,163127.769,139308.36959,66555.97065,98930.10945999999,172552.5165,48972.04754,62283.24167,83009.478,83009.478,83009.478,83009.478,490470.82546,490470.82546 +11710800.0,22865.337,8232.357,24038.48244,66251.24022,66251.24022,66251.24022,57965.20799999999,57239.79056,19076.752640000002,32594.84445,49668.3344,20828.385000000002,20828.385000000002,20828.385000000002,20705.7725,22865.337,22865.337,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14515.970999999998,14515.970999999998,14515.970999999998,14515.970999999998,68748.44658,68748.44658 +11714400.0,83401.776,53589.458999999995,156481.22027999998,57385.343510000006,57385.343510000006,57385.343510000006,64906.442999999985,195916.60576,15936.305920000003,185054.68800000002,281988.0960000001,41138.604,41138.604,41138.604,30475.892999999996,83401.776,83401.776,193939.21442999996,26576.26605,39503.48682,68901.4305,19554.88218,24870.13539,25431.069000000003,25431.069000000003,25431.069000000003,25431.069000000003,250761.33984,250761.33984 +11718000.0,20796.411,123526.26299999998,360696.68795999995,212291.23663,212291.23663,212291.23663,166620.19150000002,171267.88128,42344.01344,27289.727010000002,41584.34592000001,22866.759,22866.759,22866.759,212224.894,20796.411,20796.411,142368.4002,69428.49794999999,103199.89077999999,179999.8095,51085.66022,64971.35981,35289.159,35289.159,35289.159,35289.159,62527.875739999996,62527.875739999996 +11721600.0,20122.164,7410.0,21637.2,50646.534620000006,50646.534620000006,50646.534620000006,43473.906,30078.213359999998,14571.409920000002,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,20122.164,20122.164,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11235.768,11235.768,11235.768,11235.768,60500.63976,60500.63976 +11725200.0,483575.448,124091.88,362348.28959999996,115485.20401000002,115485.20401000002,115485.20401000002,320056.6285,504241.82936,205747.4912,495936.44982000004,755712.68544,308807.145,308807.145,308807.145,66760.96350000001,483575.448,483575.448,9502.102089999998,57032.15265,84773.71826,147861.13650000002,41964.398740000004,53370.82927,247186.398,247186.398,247186.398,247186.398,1453950.1803199998,1453950.1803199998 +11728800.0,121762.63500000001,33092.022000000004,96628.70424,152546.76239000002,152546.76239000002,152546.76239000002,150042.53949999998,197800.48463999998,97118.29632000001,152925.32997,233029.07424,59237.409,59237.409,59237.409,49333.7145,121762.63500000001,121762.63500000001,16844.63443,48132.12375,71544.5395,124786.9875,35415.7355,45042.16025,63719.307,63719.307,63719.307,63719.307,366099.6559,366099.6559 +11732400.0,300967.06200000003,169091.736,493747.86912000005,174375.85737,174375.85737,174375.85737,398154.1445,488154.0952,439709.80351999996,413916.76599,630730.3100800001,263116.329,263116.329,263116.329,140158.1755,300967.06200000003,300967.06200000003,65205.7549,135177.95969999998,200931.18947999997,350461.377,99464.27652,126499.86846,176177.32200000001,176177.32200000001,176177.32200000001,176177.32200000001,904907.63308,904907.63308 +11736000.0,453512.33999999997,305738.559,892756.59228,166513.59417,166513.59417,166513.59417,454945.97750000004,934843.11,783624.7212799999,601778.36019,916995.5964800001,390019.365,390019.365,390019.365,253796.1615,453512.33999999997,453512.33999999997,223023.61536,292997.32695,435517.01437999995,759622.6995,215588.15662,274187.62201,373053.816,373053.816,373053.816,373053.816,1363560.4356,1363560.4356 +11739600.0,348437.13,256808.43600000002,749880.63312,135492.11115,135492.11115,135492.11115,316096.0985,517114.69023999997,425241.07904000004,399429.8185500001,608654.9616000002,217848.66,217848.66,217848.66,204990.576,348437.13,348437.13,116557.64678999997,168895.24649999998,251049.23059999998,437876.565,124273.5394,158052.5887,317582.85,317582.85,317582.85,317582.85,1047634.3042,1047634.3042 +11743200.0,51009.303,32365.515000000003,94507.30380000001,77534.02502999999,77534.02502999999,77534.02502999999,66099.5895,104843.43512,186307.90144000002,76443.41502000001,116485.20384000002,37473.99,37473.99,37473.99,25088.556500000002,51009.303,51009.303,71436.43169,24638.588099999997,36623.28404,63877.820999999996,18129.13396,23056.85158,26519.388,26519.388,26519.388,26519.388,153367.97101999997,153367.97101999997 +11746800.0,56265.219,54302.90700000001,158564.48844000002,39107.05491,39107.05491,39107.05491,38966.60249999999,82373.4628,317775.38048000005,73102.13694,111393.73248,54662.456999999995,54662.456999999995,54662.456999999995,26431.426,56265.219,56265.219,97323.86130999998,14244.291449999999,21172.99618,36929.6445,10480.98482,13329.84311,29407.836000000003,29407.836000000003,29407.836000000003,29407.836000000003,169170.75845999998,169170.75845999998 +11750400.0,61150.202999999994,53788.188,157061.50896,15328.804370000002,15328.804370000002,15328.804370000002,18067.735,83200.29,358527.7913600001,73869.45006,112562.97152,57951.66,57951.66,57951.66,56790.670999999995,61150.202999999994,61150.202999999994,95078.02902,18333.932849999997,27251.919939999996,47532.4185,13490.15306,17156.93963,43522.011,43522.011,43522.011,43522.011,183858.27701999998,183858.27701999998 +11754000.0,63089.33099999999,59193.731999999996,172845.69744,9859.351150000002,9859.351150000002,9859.351150000002,13300.521499999999,95118.42768,361562.36480000004,83224.91856,126818.92352000003,65299.865999999995,65299.865999999995,65299.865999999995,58552.294499999996,63089.33099999999,63089.33099999999,102514.66419999998,29472.7734,43808.91256,76410.894,21686.13944,27580.69412,51743.217000000004,51743.217000000004,51743.217000000004,51743.217000000004,189688.58853999997,189688.58853999997 +11757600.0,69778.26,66057.783,192888.72635999997,4400.7689,4400.7689,4400.7689,8564.2585,95423.75455999999,366659.90592,84250.11987,128381.13504000001,76276.80900000001,76276.80900000001,76276.80900000001,59565.39399999999,69778.26,69778.26,129338.06691,31840.873199999998,47328.902879999994,82550.412,23428.593119999998,29796.76776,51397.827000000005,51397.827000000005,51397.827000000005,51397.827000000005,209799.96839999998,209799.96839999998 +11761200.0,79889.649,73820.34599999999,215555.41032,4483.12128,4483.12128,4483.12128,14783.961500000001,126465.27591999999,383425.616,94134.78249000001,143443.47808000003,89330.226,89330.226,89330.226,64009.463,79889.649,79889.649,140122.18791999997,38758.06665,57610.75586,100483.8765,28518.28114,36269.89447,54475.182,54475.182,54475.182,54475.182,240201.54466,240201.54466 +11764800.0,89885.958,76974.76199999999,224766.30503999998,7098.568400000001,7098.568400000001,7098.568400000001,22133.2195,145463.14632,402127.41120000003,113102.40500999999,172346.52192,98264.256,98264.256,98264.256,69653.89199999999,89885.958,89885.958,159885.86705,44895.91859999999,66734.18023999999,116396.82599999999,33034.52776,42013.71148,58383.198,58383.198,58383.198,58383.198,270257.11372,270257.11372 +11768400.0,135494.022,95493.39899999999,278840.72508,29973.246380000004,29973.246380000004,29973.246380000004,27713.500500000002,490389.91,372234.75264,213213.4431,324896.6752,93353.562,93353.562,93353.562,97602.1935,135494.022,135494.022,320264.0520299999,49054.77449999999,72915.9858,127179.04499999998,36094.6242,45905.579099999995,110967.261,110967.261,110967.261,110967.261,407385.35948,407385.35948 +11772000.0,474095.33999999997,187548.669,547642.1134799999,146242.57659,146242.57659,146242.57659,298836.545,1761531.38808,701507.94304,995256.90873,1516581.95616,279941.763,279941.763,279941.763,277313.575,474095.33999999997,474095.33999999997,1278392.38683,327646.98855,487020.95582000003,849455.1555000001,241083.46318000002,306612.86089,520809.76800000004,520809.76800000004,520809.76800000004,520809.76800000004,1425446.6556,1425446.6556 +11775600.0,371471.61,446828.283,1304738.5863599998,221476.4574,221476.4574,221476.4574,686186.536,1983939.41352,783147.41568,1363682.72061,2077992.7171200002,557881.443,557881.443,557881.443,521962.3499999999,371471.61,371471.61,470689.80347999994,708296.99535,1052826.6449399998,1836325.5435,521166.67806,662826.07713,522017.39999999997,522017.39999999997,522017.39999999997,522017.39999999997,1116891.3073999998,1116891.3073999998 +11779200.0,930351.8879999999,312686.058,913043.2893599999,176579.59957,176579.59957,176579.59957,256071.12649999995,1006519.1236,1156507.04064,865082.04762,1318220.26304,490133.937,490133.937,490133.937,252564.711,930351.8879999999,930351.8879999999,299601.30694,292631.68889999995,434973.52275999996,758674.749,215319.11924,273845.45702,948494.013,948494.013,948494.013,948494.013,2797258.0099199996,2797258.0099199996 +11782800.0,485003.346,320333.601,935374.11492,184000.76024000003,184000.76024000003,184000.76024000003,167221.628,348278.3572,2289911.7504000003,116797.20528,177976.69376,438530.33700000006,438530.33700000006,438530.33700000006,379926.0395,485003.346,485003.346,178767.17573,620125.9236000001,921767.42224,1607733.8760000002,456290.18576,580315.37048,129452.37299999999,129452.37299999999,129452.37299999999,129452.37299999999,1458243.39364,1458243.39364 +11786400.0,111641.784,20552.421000000002,60013.06932,116671.26713000001,116671.26713000001,116671.26713000001,98218.8235,93072.75744,100953.25696,63018.80193000001,96028.65056000001,34350.126000000004,34350.126000000004,34350.126000000004,35903.696500000005,111641.784,111641.784,47909.88955999999,41431.8807,61585.16588,107415.98700000001,30485.68012,38772.056260000005,33985.89,33985.89,33985.89,33985.89,335669.63055999996,335669.63055999996 +11790000.0,155253.03600000002,410365.95000000007,1198268.5740000003,112783.98571000001,112783.98571000001,112783.98571000001,241797.36000000002,348088.74408,314201.49632000003,174692.47845,266198.0624,67297.73700000001,67297.73700000001,67297.73700000001,243771.234,155253.03600000002,155253.03600000002,94555.3648,67716.42525,100655.0321,175561.1025,49825.912899999996,63369.19795,77114.268,77114.268,77114.268,77114.268,466794.12824,466794.12824 +11793600.0,169024.668,88638.94200000001,258825.71064,95992.25240000001,95992.25240000001,95992.25240000001,205488.8115,319054.79864,236813.38368,156196.90149000002,238014.32608000003,102662.262,102662.262,102662.262,80938.305,169024.668,169024.668,142168.63127999997,79197.21134999998,117720.29933999998,205326.10349999997,58273.503659999995,74112.94593,107398.92899999999,107398.92899999999,107398.92899999999,107398.92899999999,508200.83512,508200.83512 +11797200.0,108303.984,42420.864,123868.92288,73292.35650000001,73292.35650000001,73292.35650000001,69011.65250000001,186026.8928,146082.48512000003,85020.60147000001,129555.20224000001,63095.331000000006,63095.331000000006,63095.331000000006,39846.7265,108303.984,108303.984,90244.70533,42516.36945,63197.17138,110227.6245,31283.64962,39786.92351,61495.062,61495.062,61495.062,61495.062,325633.97856,325633.97856 +11800800.0,147697.377,90511.29000000001,264292.9668,63590.41667,63590.41667,63590.41667,65307.9945,290106.02376,66295.44128,269019.95862,409935.17504,66192.873,66192.873,66192.873,68240.5815,147697.377,147697.377,306276.05254999996,65036.71035,96671.85093999999,168613.6935,47854.17206,60861.51413,42084.177,42084.177,42084.177,42084.177,444076.78018,444076.78018 +11804400.0,39060.3,184657.92299999998,539201.13516,246939.26873,246939.26873,246939.26873,209037.2375,246926.43032,51424.84224,31385.330339999997,47825.26528,49266.0,49266.0,49266.0,279824.02,39060.3,39060.3,212371.23543999996,96044.0571,142761.78364,249003.11100000003,70669.45436,89878.26578000002,56654.759999999995,56654.759999999995,56654.759999999995,56654.759999999995,117441.302,117441.302 +11808000.0,28268.061,8914.218,26029.51656,52502.336590000006,52502.336590000006,52502.336590000006,43548.228500000005,33790.8532,25721.647360000006,24927.832860000002,37985.269120000004,8432.279999999999,8432.279999999999,8432.279999999999,15529.3285,28268.061,28268.061,8122.49789,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11634.357,11634.357,11634.357,11634.357,84992.63674,84992.63674 +11811600.0,620253.6359999999,265836.45900000003,776242.46028,128176.93328000001,128176.93328000001,128176.93328000001,648100.9955,813604.37712,524146.16512,848027.28864,1292232.0588800001,529299.054,529299.054,529299.054,127976.96449999997,620253.6359999999,620253.6359999999,9502.102089999998,179720.16749999998,267139.60699999996,465941.175,132238.543,168182.5765,382574.505,382574.505,382574.505,382574.505,1864895.93224,1864895.93224 +11815200.0,155675.487,43258.992,126316.25664,156267.45464000004,156267.45464000004,156267.45464000004,156643.7145,242960.20016000004,165072.97024,174601.64064000003,266059.64288000006,90991.31099999999,90991.31099999999,90991.31099999999,63837.105500000005,155675.487,155675.487,22752.266809999997,55331.91405,82246.45002,143453.1105,40713.358980000005,51779.74179000001,83107.86,83107.86,83107.86,83107.86,468064.29757999995,468064.29757999995 +11818800.0,419168.451,268219.401,783200.65092,179384.28134000002,179384.28134000002,179384.28134000002,436827.3105,866307.6148,740537.8867200001,565101.65376,861107.28192,373491.6,373491.6,373491.6,248893.659,419168.451,419168.451,193171.75006999998,265592.92905,394782.57602,688574.2605000001,195423.93298,248542.51879000003,337201.671,337201.671,337201.671,337201.671,1260299.80934,1260299.80934 +11822400.0,528909.981,422068.55700000003,1232440.18644,193009.67268000002,193009.67268000002,193009.67268000002,510421.779,1061418.19544,945039.75936,775235.68206,1181311.5155200001,505182.19200000004,505182.19200000004,505182.19200000004,469609.448,528909.981,528909.981,245927.48374999998,399804.11325,594276.7313,1036529.1825,294176.8537,374137.67635,474587.07,474587.07,474587.07,474587.07,1590256.00954,1590256.00954 +11826000.0,381066.267,317624.11199999996,927462.40704,192767.74781,192767.74781,192767.74781,337293.55449999997,580310.93624,653372.86464,470365.88402999996,716748.01376,271103.61000000004,271103.61000000004,271103.61000000004,302394.9985,381066.267,381066.267,290055.09234,238393.53405,354352.85802,618057.3105,175410.55098,223089.25779,350243.928,350243.928,350243.928,350243.928,1145739.24278,1145739.24278 +11829600.0,66836.478,56788.341,165821.95572,77446.84563000001,77446.84563000001,77446.84563000001,72647.20749999999,104040.61615999999,347886.97728,94694.67609000001,144296.64928,62817.88500000001,62817.88500000001,62817.88500000001,55789.503000000004,66836.478,66836.478,101481.93315,28708.28325,42672.5593,74428.8825,21123.6257,26865.28235,41859.699,41859.699,41859.699,41859.699,200955.01052,200955.01052 +11833200.0,66446.946,54283.836,158508.80112000002,39031.116850000006,39031.116850000006,39031.116850000006,38868.774,89857.306,364844.61056000006,87228.47658000002,132919.58336000002,62819.70599999999,62819.70599999999,62819.70599999999,65583.448,66446.946,66446.946,97513.84187999999,31725.695249999997,47157.700099999995,82251.80249999999,23343.844899999996,29688.983949999998,52105.21200000001,52105.21200000001,52105.21200000001,52105.21200000001,199783.81764,199783.81764 +11836800.0,63956.390999999996,55872.414,163147.44887999998,15284.579750000003,15284.579750000003,15284.579750000003,18060.6685,87213.70152,366759.92575999995,86697.78999000002,132110.91808000003,74847.054,74847.054,74847.054,61331.28400000001,63956.390999999996,63956.390999999996,96631.74078999998,31473.4086,46782.69624,81597.72600000001,23158.211760000002,29452.893480000002,52904.505000000005,52904.505000000005,52904.505000000005,52904.505000000005,192295.54893999998,192295.54893999998 +11840400.0,66672.183,62988.672000000006,183926.92224,9878.18711,9878.18711,9878.18711,13474.9265,99672.79256,381966.5427200001,87543.76449,133400.02208000002,82504.551,82504.551,82504.551,63539.17500000001,66672.183,66672.183,116986.88637999998,31349.05335,46597.852139999995,81275.3235,23066.71086,29336.521529999998,53897.441999999995,53897.441999999995,53897.441999999995,53897.441999999995,200461.03022000002,200461.03022000002 +11844000.0,78549.003,74893.185,218688.1002,4465.04234,4465.04234,4465.04234,18436.393500000002,115061.29768,395409.18528,88999.55064,135618.36288,95369.82,95369.82,95369.82,65579.84300000001,78549.003,78549.003,139138.80266,35262.7587,52415.26107999999,91421.96699999999,25946.424919999998,32998.97666,54806.181,54806.181,54806.181,54806.181,236170.66902,236170.66902 +11847600.0,82747.989,74428.185,217330.3002,4679.05515,4679.05515,4679.05515,19676.951,140122.29111999998,390522.49856000004,101494.92486,154658.93312,94772.94900000001,94772.94900000001,94772.94900000001,65537.521,82747.989,82747.989,153012.90615,40637.943,60405.04119999999,105357.62999999999,29901.498799999998,38029.0874,54987.384000000005,54987.384000000005,54987.384000000005,54987.384000000005,248795.62026,248795.62026 +11851200.0,85429.692,75298.17,219870.65639999998,7636.48809,7636.48809,7636.48809,20883.5655,138297.67656,382715.98976,113941.48227,173625.11583999998,93667.40999999999,93667.40999999999,93667.40999999999,66233.66399999999,85429.692,85429.692,151397.9246,42788.9061,63602.275239999995,110934.201,31484.18276,40041.96398,55592.50199999999,55592.50199999999,55592.50199999999,55592.50199999999,256858.60727999997,256858.60727999997 +11854800.0,83676.75,76892.184,224525.17727999997,16810.98034,16810.98034,16810.98034,31773.1925,133558.31216,358270.4032,126307.00677,192467.81984,88436.226,88436.226,88436.226,65285.5665,83676.75,83676.75,140569.24855999998,41922.777149999994,62314.844059999996,108688.6815,30846.88294,39231.43837,57750.99900000001,57750.99900000001,57750.99900000001,57750.99900000001,251588.095,251588.095 +11858400.0,573042.4980000001,521145.135,1521743.7942000001,203327.77795000005,203327.77795000005,203327.77795000005,634905.25,914507.69856,353979.712,643265.71281,980214.41952,239635.614,239635.614,239635.614,890479.3485,573042.4980000001,573042.4980000001,903250.3040599998,251466.78825,373785.2013,651950.9325,185029.8837,235323.24135,633724.4310000001,633724.4310000001,633724.4310000001,633724.4310000001,1722947.77732,1722947.77732 +11862000.0,870258.639,790447.5120000001,2308106.73504,477550.84927000006,477550.84927000006,477550.84927000006,825798.407,1364013.98776,1263063.75872,1213359.6014399999,1848928.91648,519236.2949999999,519236.2949999999,519236.2949999999,488751.6094999999,870258.639,870258.639,236270.34092999998,601782.2343,894501.00012,1560176.1630000002,442792.85388,563149.30074,879408.855,879408.855,879408.855,879408.855,2616577.64126,2616577.64126 +11865600.0,600495.066,447395.46599999996,1306394.76072,193821.40569000004,193821.40569000004,193821.40569000004,372558.991,883388.0963999999,944405.7164800001,884431.75212,1347705.52704,632907.1529999999,632907.1529999999,632907.1529999999,282711.4815,600495.066,600495.066,278610.93351,454751.77139999997,675952.0157599999,1178986.074,334607.47624,425557.83051999996,410503.00800000003,410503.00800000003,410503.00800000003,410503.00800000003,1805488.49844,1805488.49844 +11869200.0,342372.162,153116.733,447100.86036,183488.92518,183488.92518,183488.92518,382027.268,814815.76248,1074098.98304,511604.48199,779587.78208,461953.5,461953.5,461953.5,455907.73899999994,342372.162,342372.162,250767.57991999996,345137.85719999997,513019.72848,894801.8520000001,253953.28752,322980.85896,297320.274,297320.274,297320.274,297320.274,1029398.96708,1029398.96708 +11872800.0,120023.829,104507.367,305161.51164,130763.28804000001,130763.28804000001,130763.28804000001,270908.68,636096.6836,83801.7856,354826.3866,540687.8272,86802.27,86802.27,86802.27,72491.81450000001,120023.829,120023.829,33930.129609999996,157315.13009999998,233836.31683999998,407854.04099999997,115752.86116,147215.88718,110882.226,110882.226,110882.226,110882.226,360871.64586,360871.64586 +11876400.0,28396.428,7373.364,21530.22288,98923.78386000001,98923.78386000001,98923.78386000001,85337.66500000001,73315.89144,27245.94624,66473.44494,101292.86848,15032.913,15032.913,15032.913,30483.495,28396.428,28396.428,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,24670.757999999998,24670.757999999998,24670.757999999998,24670.757999999998,85378.59352,85378.59352 +11880000.0,55121.511,14317.863000000001,41808.15996,86888.63513000001,86888.63513000001,86888.63513000001,73545.01000000001,97742.92951999999,25595.123840000007,69222.34767,105481.67264,15543.675000000001,15543.675000000001,15543.675000000001,26349.8865,55121.511,55121.511,9718.056659999998,26992.942199999998,40122.84248,69981.702,19861.47352,25260.06196,35532.579,35532.579,35532.579,35532.579,165732.00973999998,165732.00973999998 +11883600.0,23482.389,5334.867,15577.81164,66306.75095,66306.75095,66306.75095,57965.20799999999,48953.18096,18506.68416,37218.08181,56713.26752,10211.037,10211.037,10211.037,20705.7725,23482.389,23482.389,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,18338.406,18338.406,18338.406,18338.406,70603.71626,70603.71626 +11887200.0,20333.16,4564.062,13327.06104,57037.71667000001,57037.71667000001,57037.71667000001,49914.4835,42579.837120000004,15936.305920000003,32246.81397,49138.00224,8792.835,8792.835,8792.835,17829.9695,20333.16,20333.16,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,15993.891,15993.891,15993.891,15993.891,61135.0344,61135.0344 +11890800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +11894400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +11898000.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,40313.80269,61430.55648,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +11901600.0,33387.603,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83704.55064,40097.804800000005,72798.5328,110931.09760000001,22123.911,22123.911,22123.911,44862.503,33387.603,33387.603,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,100385.39302,100385.39302 +11905200.0,53173.69500000001,11596.56,33861.9552,144902.48839000004,144902.48839000004,144902.48839000004,127201.42749999999,115881.56072,40611.8848,80702.26268999999,122974.87647999999,22407.549,22407.549,22407.549,45437.66499999999,53173.69500000001,53173.69500000001,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,42890.157,42890.157,42890.157,42890.157,159875.57630000002,159875.57630000002 +11908800.0,107684.859,11152.136999999999,32564.240039999997,133648.97502,133648.97502,133648.97502,112710.12550000001,84748.49736,65446.32256000001,79897.97591999998,121749.29663999999,23441.688000000002,23441.688000000002,23441.688000000002,40261.221,107684.859,107684.859,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,56652.04200000001,56652.04200000001,56652.04200000001,56652.04200000001,323772.47606,323772.47606 +11912400.0,51074.211,7741.74,22605.8808,111003.53165000002,111003.53165000002,111003.53165000002,93388.3895,75100.15744,29816.313600000005,55169.50131,84067.81152,16961.163,16961.163,16961.163,33359.297999999995,51074.211,51074.211,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,24628.743000000002,24628.743000000002,24628.743000000002,24628.743000000002,153563.12774,153563.12774 +11916000.0,19223.972999999998,8767.695,25601.669399999995,75023.18098,75023.18098,75023.18098,66015.9325,44371.33304,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,19223.972999999998,19223.972999999998,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,57800.078819999995,57800.078819999995 +11919600.0,12666.828,11675.199,34091.58108,37471.12655,37471.12655,37471.12655,32202.8945,42057.472480000004,18492.99712,18103.308510000003,27585.993920000004,6359.648999999999,6359.648999999999,6359.648999999999,11503.205,12666.828,12666.828,20282.63965,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,38084.92952,38084.92952 +11923200.0,13329.411,17843.664,52103.49888,13823.396840000001,13823.396840000001,13823.396840000001,11271.011499999999,49198.17479999999,31072.333440000002,14132.21292,21534.80064,3033.843,3033.843,3033.843,4026.1234999999997,13329.411,13329.411,33851.26966,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,3974.8979999999997,3974.8979999999997,3974.8979999999997,3974.8979999999997,40077.09574,40077.09574 +11926800.0,18586.803,19288.176,56321.47392,9195.277740000001,9195.277740000001,9195.277740000001,6440.577499999999,50922.277120000006,39108.96512,25970.427000000003,39573.984000000004,9309.783,9309.783,9309.783,2300.6409999999996,18586.803,18586.803,34210.63919,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,4017.8010000000004,4017.8010000000004,4017.8010000000004,4017.8010000000004,55884.32102,55884.32102 +11930400.0,25608.996,19224.704999999998,56136.1386,3751.34749,3751.34749,3751.34749,1610.1435,58772.697120000004,99233.25952,30147.20331,45938.59552,16882.374000000003,16882.374000000003,16882.374000000003,808.9200000000001,25608.996,25608.996,56207.29347999999,1052.7084,1564.7665599999998,2729.244,774.58544,985.12712,5448.543,5448.543,5448.543,5448.543,76997.71464,76997.71464 +11934000.0,38758.692,43784.178,127849.79976000001,3762.3894000000005,3762.3894000000005,3762.3894000000005,2134.4085,71025.02296,235448.40064000004,39937.46358,60857.087360000005,39498.558,39498.558,39498.558,4413.2865,38758.692,38758.692,78339.3156,2052.8883,3051.45372,5322.303,1510.52028,1921.09794,14623.32,14623.32,14623.32,14623.32,116534.46728,116534.46728 +11937600.0,52222.490999999995,48530.409,141708.79428,5633.78354,5633.78354,5633.78354,8812.916000000001,73548.6972,297739.04448,51215.175480000005,78042.17216,45655.527,45655.527,45655.527,28563.8115,52222.490999999995,52222.490999999995,80531.41057,4095.3154499999996,6087.357779999999,10617.4845,3013.3432199999997,3832.40631,26301.477,26301.477,26301.477,26301.477,157015.62294,157015.62294 +11941200.0,53621.688,44820.027,130874.47884,14533.571140000002,14533.571140000002,14533.571140000002,15994.6885,69992.85552,254423.05536000003,57373.34819999999,87426.0544,40371.852,40371.852,40371.852,38679.248999999996,53621.688,53621.688,80645.57110999999,16909.430399999997,25134.511359999997,43839.263999999996,12442.000639999998,15823.886719999999,33906.138,33906.138,33906.138,33906.138,161222.54192,161222.54192 +11944800.0,396461.283,203974.281,595604.9005199999,108698.99183000001,108698.99183000001,108698.99183000001,220190.026,574276.9781599999,131727.29344,339733.96485,517689.85120000003,135914.718,135914.718,135914.718,326456.6655,396461.283,396461.283,267262.96025,68210.09999999999,101388.84,176841.0,50189.159999999996,63831.18,284413.503,284413.503,284413.503,284413.503,1192026.92422,1192026.92422 +11948400.0,638111.46,454244.649,1326394.37508,225300.25903000004,225300.25903000004,225300.25903000004,464820.8914999999,881878.3396,756544.3251199999,589260.20286,897920.30912,350344.533,350344.533,350344.533,145785.08000000002,638111.46,638111.46,128293.94578,234536.38695,348619.51837999996,608057.2995,172572.45262,219479.73001,533513.949,533513.949,533513.949,533513.949,1918588.4563999998,1918588.4563999998 +11952000.0,553782.3300000001,352932.555,1030563.0606,162670.50074000002,162670.50074000002,162670.50074000002,276648.7395,719161.99952,642245.27936,736457.30739,1122220.65888,493882.836,493882.836,493882.836,110527.3085,553782.3300000001,553782.3300000001,241289.1286,190346.76405,282935.19002,493491.6105,140057.61898,178126.97179,361136.19299999997,361136.19299999997,361136.19299999997,361136.19299999997,1665038.8722,1665038.8722 +11955600.0,347700.096,151897.104,443539.54367999994,181599.62711000003,181599.62711000003,181599.62711000003,300812.3929999999,757224.7951999999,1127222.2041600002,468855.69276,714446.76992,464605.767,464605.767,464605.767,410378.6925,347700.096,347700.096,234213.91200999997,320515.80525,476421.0241,830966.9025,235836.3209,299939.48195,291469.43700000003,291469.43700000003,291469.43700000003,291469.43700000003,1045418.28864,1045418.28864 +11959200.0,125753.103,117472.797,343020.56724,128366.81506000002,128366.81506000002,128366.81506000002,239843.85950000002,677800.6492,67800.21056,379364.53989,578079.29888,87632.031,87632.031,87632.031,55303.388,125753.103,125753.103,25527.583899999998,156333.47895000002,232377.17118,405309.01950000005,115030.55982000001,146297.25561000002,117501.48599999999,117501.48599999999,117501.48599999999,117501.48599999999,378097.66302,378097.66302 +11962800.0,57308.943,13730.247,40092.32124,100979.99263000001,100979.99263000001,100979.99263000001,85953.434,105641.52952,37122.33152,85029.39207,129568.59744000001,18051.755999999998,18051.755999999998,18051.755999999998,30899.459499999997,57308.943,57308.943,11533.745079999999,31990.221,47550.8964,82937.61,23538.483600000003,29936.527800000003,35735.729999999996,35735.729999999996,35735.729999999996,35735.729999999996,172308.88861999998,172308.88861999998 +11966400.0,89830.935,24142.646999999997,70496.52923999999,88609.09332,88609.09332,88609.09332,85343.34899999999,134567.97808,125674.80384000001,107174.87445,163314.0944,47327.58900000001,47327.58900000001,47327.58900000001,32838.694,89830.935,89830.935,12902.247799999997,39766.84875,59110.2295,103099.2375,29260.5455,37213.91525,49486.058999999994,49486.058999999994,49486.058999999994,49486.058999999994,270091.6779,270091.6779 +11970000.0,38529.702000000005,9433.508999999998,27545.846279999998,67458.06441,67458.06441,67458.06441,58399.59299999999,65937.11568,25920.784000000003,48768.51,74313.92,11385.687,11385.687,11385.687,20705.7725,38529.702000000005,38529.702000000005,7774.446289999999,20852.9883,30996.29372,54063.30300000001,15343.68028,19514.277940000004,24244.286999999997,24244.286999999997,24244.286999999997,24244.286999999997,115845.97068,115845.97068 +11973600.0,17861.561999999998,4587.6449999999995,13395.9234,56728.93798,56728.93798,56728.93798,49914.4835,42018.5372,15936.305920000003,31675.212450000003,48266.9904,8792.835,8792.835,8792.835,17829.9695,17861.561999999998,17861.561999999998,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,15270.033000000001,15270.033000000001,15270.033000000001,15270.033000000001,53703.76307999999,53703.76307999999 +11977200.0,11118.507,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,27961.53456,12337.789440000002,23113.332270000003,35220.31584,6807.357,6807.357,6807.357,13803.846000000001,11118.507,11118.507,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9943.940999999999,9943.940999999999,9943.940999999999,9943.940999999999,33429.64438,33429.64438 +11980800.0,12459.621000000001,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,31424.69544,13880.007679999999,25862.452349999996,39409.451199999996,7658.277,7658.277,7658.277,15529.3285,12459.621000000001,12459.621000000001,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11235.761999999999,11235.761999999999,11235.761999999999,11235.761999999999,37461.92714,37461.92714 +11984400.0,22856.415,6061.149000000001,17698.555080000002,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,57233.722799999996,22619.26976,42193.70148,64295.164160000015,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,22856.415,22856.415,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,20291.643,20291.643,20291.643,20291.643,68721.6211,68721.6211 +11988000.0,51074.346,12308.058,35939.52936000001,142972.77522,142972.77522,142972.77522,125591.28399999999,109485.56936,40097.804800000005,81564.96831,124289.47551999999,22123.911,22123.911,22123.911,44862.503,51074.346,51074.346,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,40393.167,40393.167,40393.167,40393.167,153563.53363999998,153563.53363999998 +11991600.0,138893.77800000002,31993.914000000004,93422.22888000001,152689.00482000003,152689.00482000003,152689.00482000003,127569.05000000002,191248.45432,91355.80224000002,135999.1794,207236.84480000002,30104.561999999998,30104.561999999998,30104.561999999998,45437.66499999999,138893.77800000002,138893.77800000002,17060.589,47179.0413,70127.85892,122316.03300000001,34714.45508,44150.263340000005,69845.37899999999,69845.37899999999,69845.37899999999,69845.37899999999,417607.29252,417607.29252 +11995200.0,200412.28799999997,64320.306,187815.29351999998,138324.57474000004,138324.57474000004,138324.57474000004,137089.659,209514.84719999996,144022.10688,149014.69149,227070.00608,80504.256,80504.256,80504.256,43899.8735,200412.28799999997,200412.28799999997,32564.791869999997,61178.1417,90936.39828,158609.997,45015.02772,57250.65606,85432.11,85432.11,85432.11,85432.11,602572.9459199999,602572.9459199999 +11998800.0,109696.98599999999,18973.416,55402.37472000001,114113.46749,114113.46749,114113.46749,96942.678,178015.2596,42725.60768000001,86300.91855,131506.16160000002,26411.163000000004,26411.163000000004,26411.163000000004,33359.297999999995,109696.98599999999,109696.98599999999,56586.08097999999,33995.9268,50532.21712,88137.588,25014.28688,31813.472240000003,60571.575000000004,60571.575000000004,60571.575000000004,60571.575000000004,329822.27124,329822.27124 +12002400.0,28527.462,22381.449,65353.83108,75934.2749,75934.2749,75934.2749,66015.9325,86705.80256,50522.44416000001,50382.16953,76772.82976000001,14831.388,14831.388,14831.388,23581.572,28527.462,28527.462,40052.15811999999,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,17821.194,17821.194,17821.194,17821.194,85772.56908,85772.56908 +12006000.0,24307.203,20497.425000000003,59852.481,37821.4925,37821.4925,37821.4925,32202.8945,67017.06599999999,50047.8912,40847.69157,62244.10144,16241.324999999999,16241.324999999999,16241.324999999999,11503.205,24307.203,24307.203,36056.95288,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,10185.891,10185.891,10185.891,10185.891,73083.65702,73083.65702 +12009600.0,30765.57,25543.926,74588.26392,14519.037170000001,14519.037170000001,14519.037170000001,11271.011499999999,56910.98103999999,133383.52320000003,35082.06261,53458.381120000005,22824.021,22824.021,22824.021,5466.4715,30765.57,30765.57,58043.46287999999,4976.86275,7397.7071,12902.9775,3661.9879,4657.36045,9266.786999999998,9266.786999999998,9266.786999999998,9266.786999999998,92501.8138,92501.8138 +12013200.0,38091.513,41368.977,120797.41283999999,9004.43951,9004.43951,9004.43951,8275.715,62765.31824,234413.48416000002,40535.267850000004,61768.027200000004,39862.788,39862.788,39862.788,5898.2035,38091.513,38091.513,73846.58800999999,3655.1331,5433.06204,9476.271,2689.4559600000002,3420.4825800000003,15335.255999999998,15335.255999999998,15335.255999999998,15335.255999999998,114528.48242,114528.48242 +12016800.0,43659.407999999996,43003.187999999995,125569.30895999998,3498.5597900000002,3498.5597900000002,3498.5597900000002,6497.218,65435.34872,267795.32607999997,44746.994040000005,68185.89568000002,40768.347,40768.347,40768.347,26374.6105,43659.407999999996,43659.407999999996,72521.67831999999,4678.1388,6953.677919999999,12128.508,3442.18608,4377.81384,22817.304,22817.304,22817.304,22817.304,131269.28671999997,131269.28671999997 +12020400.0,49528.287,46272.615,135116.03579999998,3491.33961,3491.33961,3491.33961,6477.1314999999995,65161.114,266696.6528,53077.72491,80880.34272,41717.850000000006,41717.850000000006,41717.850000000006,37883.1565,49528.287,49528.287,80807.22077999999,16304.6601,24235.56884,42271.341,11997.00916,15257.94118,34677.204000000005,34677.204000000005,34677.204000000005,34677.204000000005,148915.04958,148915.04958 +12024000.0,55421.655,47382.723,138357.55116,5333.5762700000005,5333.5762700000005,5333.5762700000005,8125.302500000002,77865.96392,270082.16064,60190.856250000004,91719.40000000001,44204.976,44204.976,44204.976,42078.4735,55421.655,55421.655,94465.90361,20518.786349999995,30499.529339999994,53196.85349999999,15097.773659999997,19201.530929999997,38024.835,38024.835,38024.835,38024.835,166634.44269999999,166634.44269999999 +12027600.0,83011.023,58125.41099999999,169726.20012,24998.534220000005,24998.534220000005,24998.534220000005,15615.775000000001,365990.46984,244767.79520000002,91558.43151,139517.60992000002,41391.687,41391.687,41391.687,40455.583000000006,83011.023,83011.023,192284.11747999996,21828.56445,32446.409379999997,56592.5745,16061.511620000001,20427.22451,80091.90299999999,80091.90299999999,80091.90299999999,80091.90299999999,249586.47582,249586.47582 +12031200.0,270291.105,97103.769,283543.00548,115263.93032000001,115263.93032000001,115263.93032000001,132835.8885,1061488.81856,202442.51712000003,483856.33485,737304.8912000001,141053.511,141053.511,141053.511,61218.213,270291.105,270291.105,1142427.7320299998,94127.0625,139912.32499999998,244033.125,69258.925,88084.3375,276845.70900000003,276845.70900000003,276845.70900000003,276845.70900000003,812675.2557,812675.2557 +12034800.0,259522.749,284476.998,830672.83416,187037.55818000002,187037.55818000002,187037.55818000002,286968.63300000003,1460386.8941600001,458312.2860800001,1038361.55304,1582265.22368,340352.019,340352.019,340352.019,315375.74950000003,259522.749,259522.749,242387.12653999997,367840.0309499999,546764.6879799999,953659.3394999999,270657.60302,344225.60920999997,312394.581,312394.581,312394.581,312394.581,780298.39866,780298.39866 +12038400.0,669127.176,137535.912,401604.86304,153936.39063,153936.39063,153936.39063,124840.149,547032.3094400001,289027.6896,437051.03631,665982.53152,275897.463,275897.463,275897.463,105547.351,669127.176,669127.176,175947.87118999995,114451.99154999999,170123.70101999998,296727.3855,84214.05798,107104.45629,563962.143,563962.143,563962.143,563962.143,2011842.3758399999,2011842.3758399999 +12042000.0,361097.871,235774.929,688462.79268,168985.71624,168985.71624,168985.71624,153445.0015,242987.03496,1407266.3321600002,96813.58743000001,147525.46656000003,320647.32,320647.32,320647.32,227911.5755,361097.871,361097.871,120277.97015000001,325506.2436,483838.91023999994,843905.076,239508.29776,304609.54648,89987.073,89987.073,89987.073,89987.073,1085700.93214,1085700.93214 +12045600.0,59526.939000000006,13880.286000000002,40530.43512,112186.57076,112186.57076,112186.57076,98218.8235,66788.17888,40605.29152,55444.270350000006,84486.50720000001,19166.010000000002,19166.010000000002,19166.010000000002,35084.777,59526.939000000006,59526.939000000006,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,25255.92,25255.92,25255.92,25255.92,178977.66326,178977.66326 +12049200.0,71911.755,131354.757,383555.89044,101962.35632,101962.35632,101962.35632,137232.21749999997,123686.53968,120564.93568000002,64547.149170000004,98357.56064000001,38010.465000000004,38010.465000000004,38010.465000000004,99188.2045,71911.755,71911.755,34012.563389999996,32667.6564,48557.84976,84693.92400000001,24036.94224,30570.473520000003,26826.117000000002,26826.117000000002,26826.117000000002,26826.117000000002,216214.67669999998,216214.67669999998 +12052800.0,116497.92300000001,43188.093,126109.23156,90185.81539000002,90185.81539000002,90185.81539000002,176935.47549999997,158501.60624,193542.24192,79676.97444,121412.53248000001,74937.87,74937.87,74937.87,59242.456000000006,116497.92300000001,116497.92300000001,84528.54462,60465.357899999995,89876.90236,156762.039,44490.55964,56583.631219999996,45818.445,45818.445,45818.445,45818.445,350270.42182,350270.42182 +12056400.0,56772.19499999999,17861.427,52155.36684,67593.41226000001,67593.41226000001,67593.41226000001,58415.2345,67971.00080000001,74618.67392,42162.243689999996,64247.22847999999,28357.902000000002,28357.902000000002,28357.902000000002,20778.4255,56772.19499999999,56772.19499999999,38034.76235,25950.743549999996,38573.697819999994,67279.7055,19094.62118,24284.76989,22236.579,22236.579,22236.579,22236.579,170695.06629999998,170695.06629999998 +12060000.0,75040.344,56152.041,163963.95971999998,56972.804240000005,56972.804240000005,56972.804240000005,58092.20899999999,194642.25936,21428.562560000002,133749.11907000002,203808.18144000001,30260.511,30260.511,30260.511,17829.9695,75040.344,75040.344,198159.78740999996,18726.730199999998,27835.781679999996,48550.782,13779.17432,17524.52036,19296.174,19296.174,19296.174,19296.174,225621.30096,225621.30096 +12063600.0,16871.958,51166.763999999996,149406.95088,207706.70316,207706.70316,207706.70316,119486.84650000001,88120.44327999999,42587.899520000006,27040.329959999995,41204.31232,28214.28,28214.28,28214.28,139817.7165,16871.958,16871.958,85459.07278999999,46806.35625,69573.8925,121349.8125,34440.2325,43801.50375,11067.579,11067.579,11067.579,11067.579,50728.35372,50728.35372 +12067200.0,14874.059999999998,6109.371,17839.36332,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29529.446079999994,15259.31968,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,14874.059999999998,14874.059999999998,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11032.635,11032.635,11032.635,11032.635,44721.340399999994,44721.340399999994 +12070800.0,341422.74,100861.43400000001,294515.38728,102003.4796,102003.4796,102003.4796,143269.2345,417661.89048,140405.38816000003,357016.26996,544024.79232,174667.16100000002,174667.16100000002,174667.16100000002,52869.0295,341422.74,341422.74,9502.102089999998,38057.76495,56569.813579999995,98668.27949999999,28002.99742,35614.550409999996,198559.515,198559.515,198559.515,198559.515,1026544.3716,1026544.3716 +12074400.0,76459.299,20844.444,60865.77648,145233.51777,145233.51777,145233.51777,125591.28399999999,145160.78032,61724.81856000001,99967.00749000002,152330.67808000004,30572.265,30572.265,30572.265,45525.4065,76459.299,76459.299,16844.63443,44761.458600000005,66534.31624,116048.22600000001,32935.59176,41887.883480000004,48202.977000000006,48202.977000000006,48202.977000000006,48202.977000000006,229887.62566,229887.62566 +12078000.0,222802.98599999998,95619.03899999999,279207.59388,159845.11488,159845.11488,159845.11488,241183.9535,323718.10872,336305.56544,286446.531,436489.95200000005,174758.673,174758.673,174758.673,82979.386,222802.98599999998,222802.98599999998,22682.79117,71123.54444999999,105719.44137999999,184394.37449999998,52332.87961999999,66557.58851,115910.466,115910.466,115910.466,115910.466,669894.31124,669894.31124 +12081600.0,336899.64,196774.179,574580.60268,148682.74508999998,148682.74508999998,148682.74508999998,282168.7435,673217.42304,573850.30272,421064.30142,641621.79264,303688.62,303688.62,303688.62,149672.6525,336899.64,336899.64,173609.84082,152397.69705,226526.94722,395105.14050000004,112134.60178,142614.14119,229337.397,229337.397,229337.397,229337.397,1012944.9176,1012944.9176 +12085200.0,261753.40499999997,133619.28900000002,390168.32388000004,123375.37927,123375.37927,123375.37927,187050.77999999997,372846.66488,264475.7184,248744.58945,379039.37440000003,159133.12199999997,159133.12199999997,159133.12199999997,90209.245,261753.40499999997,261753.40499999997,98670.75751,56205.981,83545.6804,145719.21,41356.4996,52597.6958,204953.766,204953.766,204953.766,204953.766,787005.2376999999,787005.2376999999 +12088800.0,34060.539000000004,24277.623,70890.65916,76322.93955,76322.93955,76322.93955,66015.9325,92655.33176,98582.26560000001,62154.39132,94711.45344000001,25092.927000000003,25092.927000000003,25092.927000000003,23581.572,34060.539000000004,34060.539000000004,42656.17186999999,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,19315.302,19315.302,19315.302,19315.302,102408.68726,102408.68726 +12092400.0,36357.237,36415.704000000005,106333.85568000001,38358.18305000001,38358.18305000001,38358.18305000001,32202.8945,72422.66928,209686.83456000005,48845.316660000004,74430.95872000001,38687.513999999996,38687.513999999996,38687.513999999996,12468.644999999999,36357.237,36357.237,75307.63513,12599.8902,18728.72568,32666.382,9271.030320000002,11791.008360000002,16588.779,16588.779,16588.779,16588.779,109314.09258,109314.09258 +12096000.0,38719.99800000001,44121.36,128834.37120000001,14567.942290000003,14567.942290000003,14567.942290000003,13460.559,58364.107359999995,268636.27392,46957.28415000001,71553.95680000001,43767.765,43767.765,43767.765,18463.9875,38719.99800000001,38719.99800000001,79195.16371,5432.33385,8074.72834,14083.8285,3997.12466,5083.59143,18342.06,18342.06,18342.06,18342.06,116418.12732,116418.12732 +12099600.0,45840.735,43855.428,128057.84976,9085.55461,9085.55461,9085.55461,11590.537,64373.216239999994,293967.2096,51298.541280000005,78169.20576000001,46065.104999999996,46065.104999999996,46065.104999999996,40319.7445,45840.735,45840.735,78822.3358,8585.8947,12762.24348,22259.727000000003,6317.52252,8034.701460000001,28410.792,28410.792,28410.792,28410.792,137827.8099,137827.8099 +12103200.0,47474.16,44337.168000000005,129464.53056,3593.03263,3593.03263,3593.03263,6747.9615,73832.21168000001,291574.06656,57775.50366,88038.86272,47302.950000000004,47302.950000000004,47302.950000000004,41859.9265,47474.16,47474.16,77994.52037,21318.078149999998,31687.612459999997,55269.0915,15685.89454,19949.51017,37982.706,37982.706,37982.706,37982.706,142738.9744,142738.9744 +12106800.0,53174.26199999999,49949.240999999995,145851.78371999998,3669.81318,3669.81318,3669.81318,6970.788999999999,78393.58455999999,306737.40288,66592.3692,101474.0864,52651.437,52651.437,52651.437,46306.7885,53174.26199999999,53174.26199999999,85062.92118999998,22399.0677,33294.416679999995,58071.657,16481.28932,20961.10286,40939.74,40939.74,40939.74,40939.74,159877.28107999996,159877.28107999996 +12110400.0,59699.904,54474.429000000004,159065.33268,5529.050230000001,5529.050230000001,5529.050230000001,8661.400999999998,80540.53792,312580.49600000004,68769.21639,104791.18688,63341.708999999995,63341.708999999995,63341.708999999995,48595.029,59699.904,59699.904,107989.75732999998,28367.868599999994,42166.56023999999,73546.32599999999,20873.147759999996,26546.721479999997,42109.284,42109.284,42109.284,42109.284,179497.71136,179497.71136 +12114000.0,93386.712,69090.261,201743.56212,26636.115,26636.115,26636.115,16150.7325,390754.984,287506.35008,112847.12019000002,171957.51648000002,59119.329,59119.329,59119.329,52810.947,93386.712,93386.712,228628.31394,31162.433399999998,46320.45656,80791.494,22929.39544,29161.88212,86892.26699999999,86892.26699999999,86892.26699999999,86892.26699999999,280782.71407999995,280782.71407999995 +12117600.0,306184.19999999995,115426.47,337045.2924,118096.38984,118096.38984,118096.38984,143215.5515,1237004.6749599997,237077.07136,576617.75514,878655.6268800001,171981.396,171981.396,171981.396,98487.921,306184.19999999995,306184.19999999995,1088281.2301399999,127277.75430000002,189188.16812000002,329979.363,93651.28588000001,119106.83674000001,330820.833,330820.833,330820.833,330820.833,920593.8279999999,920593.8279999999 +12121200.0,265751.841,315525.453,921334.32276,187852.43323,187852.43323,187852.43323,353455.00049999997,1541701.1386400003,529786.92288,1066468.4387700001,1625094.7638400001,396684.35400000005,396684.35400000005,396684.35400000005,361244.2855,265751.841,265751.841,233412.01286,443368.9143,659032.31212,1149474.9630000002,326231.94188000006,414905.72474000003,344542.044,344542.044,344542.044,344542.044,799027.2019399999,799027.2019399999 +12124800.0,715972.851,165783.528,484087.90176,155964.29662,155964.29662,155964.29662,127455.37350000002,627151.92936,442784.94847999996,534059.01675,813804.216,340620.35699999996,340620.35699999996,340620.35699999996,139126.4315,715972.851,715972.851,202224.31436999998,163291.94595,242720.37398,423349.4895,120150.61702,152809.00621000002,662007.891,662007.891,662007.891,662007.891,2152691.70534,2152691.70534 +12128400.0,383962.43399999995,256403.38199999998,748697.87544,169833.85540000003,169833.85540000003,169833.85540000003,154042.39549999998,266505.17632,1576131.0368000004,102829.58427,156692.69984000002,348218.694,348218.694,348218.694,283252.606,383962.43399999995,383962.43399999995,131915.63528,396427.95225,589258.3388999999,1027776.1724999999,291692.6661,370978.25655,100765.94699999999,100765.94699999999,100765.94699999999,100765.94699999999,1154447.0515599998,1154447.0515599998 +12132000.0,65216.064,16381.832999999999,47834.952359999996,112784.79157000002,112784.79157000002,112784.79157000002,98218.8235,69085.49471999999,69608.52096,56642.74791,86312.75872,26793.899999999998,26793.899999999998,26793.899999999998,35084.777,65216.064,65216.064,23733.112389999995,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,26761.476000000002,26761.476000000002,26761.476000000002,26761.476000000002,196082.96575999996,196082.96575999996 +12135600.0,89366.418,211215.55800000002,616749.42936,104875.74372000001,104875.74372000001,104875.74372000001,174447.7875,180577.36688,210383.20896000002,94736.36865000002,144360.18080000003,47578.701,47578.701,47578.701,153243.7795,89366.418,89366.418,50366.78465,44757.20205,66527.98921999999,116037.1905,32932.45978,41883.90019,34400.406,34400.406,34400.406,34400.406,268695.03012,268695.03012 +12139200.0,147773.742,75245.871,219717.94332,92316.84297000001,92316.84297000001,92316.84297000001,189884.632,251236.00576,234420.46912000002,113510.49171,172968.36832,91565.322,91565.322,91565.322,81921.413,147773.742,147773.742,122177.20345999998,70865.27189999999,105335.53995999998,183724.77899999998,52142.842039999996,66315.89641999999,81823.758,81823.758,81823.758,81823.758,444306.38427999994,444306.38427999994 +12142800.0,77715.87899999999,28434.834000000003,83029.71528,69508.89264000002,69508.89264000002,69508.89264000002,61751.91750000001,124027.60152,111667.69600000001,54591.76569,83187.45248,42697.449,42697.449,42697.449,29651.825000000004,77715.87899999999,77715.87899999999,64811.76298999999,33626.60325,49983.247299999995,87180.0825,24742.5377,31467.85835,39260.574,39260.574,39260.574,39260.574,233665.74285999997,233665.74285999997 +12146400.0,106505.091,72747.46800000001,212422.60656000001,58451.081150000005,58451.081150000005,58451.081150000005,61257.27650000001,235843.03888,50135.12704,179295.07722,273211.54624,47901.098999999995,47901.098999999995,47901.098999999995,26783.249499999998,106505.091,106505.091,254587.047,24488.30475,36399.8999,63488.1975,18018.555099999998,22916.21605,25639.131,25639.131,25639.131,25639.131,320225.30694,320225.30694 +12150000.0,25902.791999999998,100117.59900000002,292343.38908,197126.06660999998,197126.06660999998,197126.06660999998,144352.922,151769.9492,47124.06528000001,28919.146829999998,44067.27136,38808.099,38808.099,38808.099,196595.8575,25902.791999999998,25902.791999999998,131708.29060999997,66422.11815,98731.14846,172205.4915,48873.558540000005,62157.98217,29431.11,29431.11,29431.11,29431.11,77881.06128,77881.06128 +12153600.0,19067.007,7161.8730000000005,20912.66916,49536.185710000005,49536.185710000005,49536.185710000005,43473.906,30033.00008,17419.500160000003,24514.636019999998,37355.63584,7762.869000000001,7762.869000000001,7762.869000000001,15529.3285,19067.007,19067.007,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11245.806,11245.806,11245.806,11245.806,57328.13438,57328.13438 +12157200.0,441373.842,156105.003,455826.60876,110511.73320000002,110511.73320000002,110511.73320000002,275043.643,581429.58824,297875.80608,545908.98222,831861.3062400001,303403.194,303403.194,303403.194,64118.1485,441373.842,441373.842,9502.102089999998,57322.8333,85205.79172,148614.753,42178.28228,53642.84894,264453.504,264453.504,264453.504,264453.504,1327064.01828,1327064.01828 +12160800.0,101452.071,30887.82,90192.4344,148350.16504000002,148350.16504000002,148350.16504000002,127455.78300000001,171222.42856,83501.64992,122547.78396000002,186739.48032000003,51204.458999999995,51204.458999999995,51204.458999999995,46540.0915,101452.071,101452.071,16844.63443,46224.2619,68708.65595999999,119840.67899999999,34011.92604,43256.778419999995,58932.585,58932.585,58932.585,58932.585,305032.56013999996,305032.56013999996 +12164400.0,309001.21200000006,155798.643,454932.03756,165919.34161000003,165919.34161000003,165919.34161000003,289888.9175,583635.4321600001,568351.53984,398896.59138,607842.42496,290967.828,290967.828,290967.828,133163.863,309001.21200000006,309001.21200000006,110033.13672,130615.58205,194149.58122,338632.9905,96107.26778000001,122230.38419000001,194868.47400000002,194868.47400000002,194868.47400000002,194868.47400000002,929063.64408,929063.64408 +12168000.0,420932.364,265511.424,775293.35808,156808.19077000002,156808.19077000002,156808.19077000002,386417.619,845033.5167999999,706216.16512,541422.88788,825025.3529600002,391829.034,391829.034,391829.034,251941.47299999997,420932.364,420932.364,208312.31212999995,240688.20734999998,357763.70573999995,624006.4635,177098.97725999999,225236.61873,343985.778,343985.778,343985.778,343985.778,1265603.30776,1265603.30776 +12171600.0,309200.694,233238.15000000002,681055.398,129035.49571000002,129035.49571000002,129035.49571000002,269482.00299999997,461329.41591999994,457395.77664000005,339662.97834,517581.68128,214808.772,214808.772,214808.772,137587.513,309200.694,309200.694,108900.06425999998,129142.269,191959.6196,334813.29000000004,95023.20040000002,120851.65420000002,283941.192,283941.192,283941.192,283941.192,929663.41996,929663.41996 +12175200.0,48766.152,48526.074,141696.13608,76944.02562000001,76944.02562000001,76944.02562000001,66015.9325,97477.85192,278741.10656000004,71815.35732000001,109432.92544,52196.74800000001,52196.74800000001,52196.74800000001,24659.313000000002,48766.152,48766.152,92050.44185999999,24893.835299999995,37002.688519999996,64539.57299999999,18316.94548,23295.712539999997,26664.932999999997,26664.932999999997,26664.932999999997,26664.932999999997,146623.56368000002,146623.56368000002 +12178800.0,48322.239,48775.69499999999,142425.0294,38524.62163,38524.62163,38524.62163,35849.6985,75096.60672,312451.76384,65071.0641,99155.9072,51732.971999999994,51732.971999999994,51732.971999999994,47222.567,48322.239,48322.239,87765.24652999999,13138.26075,19528.970299999997,34062.1575,9667.1647,12294.81685,27769.472999999998,27769.472999999998,27769.472999999998,27769.472999999998,145288.86526,145288.86526 +12182400.0,51227.01000000001,47407.803,138430.78475999998,14753.831400000001,14753.831400000001,14753.831400000001,16808.4105,67325.36544000001,321433.57376,60828.79299,92691.49408,52719.279,52719.279,52719.279,47430.936,51227.01000000001,51227.01000000001,85654.20487,18409.24665,27363.867860000002,47727.6765,13545.569140000001,17227.41847,36674.388,36674.388,36674.388,36674.388,154022.54340000002,154022.54340000002 +12186000.0,53439.93299999999,48387.675,141292.011,9291.73267,9291.73267,9291.73267,12055.2075,79138.13784,324977.85344000004,68628.09828,104576.14976,60256.53599999999,60256.53599999999,60256.53599999999,49616.3045,53439.93299999999,53439.93299999999,86157.92249999999,25359.37065,37694.66946,65746.5165,18659.487540000002,23731.361670000002,44474.01,44474.01,44474.01,44474.01,160676.06521999996,160676.06521999996 +12189600.0,54291.345,53235.21000000001,155446.81320000003,3840.4072300000003,3840.4072300000003,3840.4072300000003,7332.7905,83005.98736,330577.23456,71154.33318,108425.65056000001,67237.641,67237.641,67237.641,50649.5395,54291.345,54291.345,92817.16066999998,24270.27705,36075.81922,62922.9405,17858.12978,22712.18519,44224.434,44224.434,44224.434,44224.434,163235.9773,163235.9773 +12193200.0,61775.051999999996,57859.8,168950.616,3849.60136,3849.60136,3849.60136,7354.368,83254.38591999999,331773.0336,72205.30254,110027.12768,68620.089,68620.089,68620.089,52325.0175,61775.051999999996,61775.051999999996,114556.78779999999,28458.51975,42301.3059,73781.3475,20939.8491,26631.553050000002,44568.378,44568.378,44568.378,44568.378,185736.98967999997,185736.98967999997 +12196800.0,67740.28199999999,62138.574,181444.63608,5678.464000000001,5678.464000000001,5678.464000000001,8956.339,103141.15104,331456.4256000001,77615.99895000001,118271.99840000001,75756.087,75756.087,75756.087,54354.8915,67740.28199999999,67740.28199999999,116805.39065,32238.789749999996,47920.37389999999,83582.0475,23721.3811,30169.139049999998,44963.541,44963.541,44963.541,44963.541,203672.44787999996,203672.44787999996 +12200400.0,99940.97400000002,76899.606,224546.84952000002,27838.94652,27838.94652,27838.94652,16342.567500000001,429325.02455999993,304362.83200000005,124989.06399000001,190459.52608,69396.261,69396.261,69396.261,66540.2675,99940.97400000002,99940.97400000002,269099.69723,33960.5055,50479.566199999994,88045.75499999999,24988.2238,31780.3249,91542.651,91542.651,91542.651,91542.651,300489.19516,300489.19516 +12204000.0,342954.075,134282.577,392105.12483999995,119737.17371000002,119737.17371000002,119737.17371000002,166164.2745,1370435.4999199999,354979.08352000004,661596.77997,1008147.4742400001,199459.803,199459.803,199459.803,145513.54650000003,342954.075,342954.075,1147794.85509,172519.48619999998,256436.37207999994,447272.74199999997,126940.26391999998,161444.16116,384456.336,384456.336,384456.336,384456.336,1031148.5855,1031148.5855 +12207600.0,249144.024,287511.723,839534.2311600001,185815.62615000003,185815.62615000003,185815.62615000003,297214.47,1456532.73944,488402.36224,992634.51336,1512585.92512,361682.283,361682.283,361682.283,335359.70999999996,249144.024,249144.024,208961.68136999998,396575.7084,589477.96656,1028159.244,291801.38544,371116.52712,321033.00899999996,321033.00899999996,321033.00899999996,321033.00899999996,749093.03216,749093.03216 +12211200.0,585829.2420000001,106335.0,310498.2,152711.49156999998,152711.49156999998,152711.49156999998,124009.20000000001,476671.67991999997,230351.05536000003,400308.06228,609993.23776,257520.93600000002,257520.93600000002,257520.93600000002,104539.372,585829.2420000001,585829.2420000001,154527.31059999997,116557.66754999998,173253.61941999997,302186.5455,85763.41958,109074.95309,495134.787,495134.787,495134.787,495134.787,1761393.25428,1761393.25428 +12214800.0,314708.592,197425.24199999997,576481.7066399999,166800.71639000002,166800.71639000002,166800.71639000002,148867.52300000002,223382.75648,1194084.87424,86663.66121,132058.91232,276545.80500000005,276545.80500000005,276545.80500000005,205349.8405,314708.592,314708.592,105185.1281,280071.34289999993,416303.5763599999,726110.8889999999,206077.18563999998,262091.45421999996,81566.15400000001,81566.15400000001,81566.15400000001,81566.15400000001,946223.83328,946223.83328 +12218400.0,43163.418,12941.328,37788.67776,112140.71407,112140.71407,112140.71407,98218.8235,65301.09296000001,38650.93888,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,43163.418,43163.418,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24862.551,24862.551,24862.551,24862.551,129778.01011999998,129778.01011999998 +12222000.0,49544.21400000001,95706.80399999999,279463.86767999997,99881.38974000001,99881.38974000001,99881.38974000001,124656.84,101209.04543999999,52420.862720000005,54183.96879,82566.04768,24377.865,24377.865,24377.865,91129.619,49544.21400000001,49544.21400000001,11445.71246,31797.084600000002,47263.81464,82436.886,23396.37336,29755.79028,23808.824999999997,23808.824999999997,23808.824999999997,23808.824999999997,148962.93676,148962.93676 +12225600.0,56677.353,18232.017,53237.48964,86156.54795000001,86156.54795000001,86156.54795000001,132072.03100000002,92946.73024,86222.03072,44589.56985,67946.01120000001,46124.520000000004,46124.520000000004,46124.520000000004,31403.634499999996,56677.353,56677.353,9718.056659999998,27542.7378,40940.06952,71407.098,20266.01448,25774.56204,24630.351000000002,24630.351000000002,24630.351000000002,24630.351000000002,170409.90802,170409.90802 +12229200.0,24692.352,8318.048999999999,24288.70308,66081.00433000001,66081.00433000001,66081.00433000001,57965.20799999999,40330.0764,22931.319040000002,32588.744160000002,49659.038720000004,11207.387999999999,11207.387999999999,11207.387999999999,20705.7725,24692.352,24692.352,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14725.371,14725.371,14725.371,14725.371,74241.67168,74241.67168 +12232800.0,40898.586,18725.613,54678.78996,56724.84356000001,56724.84356000001,56724.84356000001,54528.0155,122339.31008,15936.305920000003,73439.0391,111907.1072,14011.451999999997,14011.451999999997,14011.451999999997,17829.9695,40898.586,40898.586,87669.69106999999,17856.138150000002,26541.716460000003,46293.69150000001,13138.590540000001,16709.818170000002,15515.457000000002,15515.457000000002,15515.457000000002,15515.457000000002,122968.41524,122968.41524 +12236400.0,10546.212,3203.478,9354.15576,89910.06475,89910.06475,89910.06475,67407.6025,35281.851919999994,25569.621120000007,21723.97311,33103.19712,8561.538,8561.538,8561.538,13803.846000000001,10546.212,10546.212,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,31708.944079999997,31708.944079999997 +12240000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +12243600.0,159964.218,5873.043000000001,17149.28556,83952.61446000001,83952.61446000001,83952.61446000001,70846.3665,105968.1724,22619.26976,107300.82635999999,163506.02112,16668.951,16668.951,16668.951,25307.054500000002,159964.218,159964.218,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,100884.273,100884.273,100884.273,100884.273,480959.08212,480959.08212 +12247200.0,46063.962,10803.923999999999,31547.45808,143609.31915000002,143609.31915000002,143609.31915000002,125591.28399999999,110604.94552000001,40097.804800000005,80176.08249,122173.07807999999,22525.695,22525.695,22525.695,44862.503,46063.962,46063.962,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,39682.767,39682.767,39682.767,39682.767,138498.97908,138498.97908 +12250800.0,101694.71399999999,29616.372,86479.80623999999,151179.46624,151179.46624,151179.46624,127201.42749999999,184302.37,68335.58272,135501.2064,206478.0288,40747.95,40747.95,40747.95,50864.173500000004,101694.71399999999,101694.71399999999,17060.589,45830.82465,68123.84306,118820.65650000001,33722.43394,42888.59887,67947.216,67947.216,67947.216,67947.216,305762.10675999994,305762.10675999994 +12254400.0,165972.489,68818.155,200949.0126,141291.71870000003,141291.71870000003,141291.71870000003,139411.36649999997,258152.41704000003,135666.64768000002,191559.0558,291899.5136,99167.63399999999,99167.63399999999,99167.63399999999,76431.432,165972.489,165972.489,15116.978629999998,48309.8742,71808.75128,125247.822,35546.52472,45208.49956,84424.656,84424.656,84424.656,84424.656,499023.95025999995,499023.95025999995 +12258000.0,169552.137,65233.143000000004,190480.77756000002,119184.98460000001,119184.98460000001,119184.98460000001,108487.687,139989.95672,169580.91328,125886.73881000001,191827.41152000002,97468.45499999999,97468.45499999999,97468.45499999999,35605.8255,169552.137,169552.137,13704.3153,34948.66499999999,51948.38599999999,90607.65,25715.314,32705.047,59639.600999999995,59639.600999999995,59639.600999999995,59639.600999999995,509786.75857999997,509786.75857999997 +12261600.0,21542.367,17739.501,51799.34292,75406.29008,75406.29008,75406.29008,66015.9325,70563.33592,42303.35488,37111.78317,56551.288640000006,12459.381000000001,12459.381000000001,12459.381000000001,23581.572,21542.367,21542.367,37603.74305999999,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,64770.716779999995,64770.716779999995 +12265200.0,21765.729,23985.939,70038.94188,37825.965430000004,37825.965430000004,37825.965430000004,32202.8945,77939.83992,59729.39392,30794.84352,46925.47584,11679.920999999998,11679.920999999998,11679.920999999998,11503.205,21765.729,21765.729,46049.41522999999,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,11008.17,11008.17,11008.17,11008.17,65442.29185999999,65442.29185999999 +12268800.0,27526.332,27855.702,81338.64984,14919.240270000002,14919.240270000002,14919.240270000002,11271.011499999999,69097.274,180039.66144,39339.543390000006,59945.97088000001,32535.333,32535.333,32535.333,4026.1234999999997,27526.332,27526.332,72362.58756999999,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,9067.749,9067.749,9067.749,9067.749,82762.50488,82762.50488 +12272400.0,43494.263999999996,57424.676999999996,167680.05683999998,9693.413180000001,9693.413180000001,9693.413180000001,6440.577499999999,71927.29128,354886.28800000006,49812.74151,75905.12992,55083.405000000006,55083.405000000006,55083.405000000006,19867.6135,43494.263999999996,43494.263999999996,104145.67747999998,4000.9463999999994,5947.085759999999,10372.823999999999,2943.90624,3744.09552,18310.446,18310.446,18310.446,18310.446,130772.75375999999,130772.75375999999 +12276000.0,58782.549,59934.93299999999,175010.00435999996,4241.41212,4241.41212,4241.41212,5973.0265,92736.7472,408292.76992000005,62776.03647000001,95658.72224,62617.458,62617.458,62617.458,54245.2155,58782.549,58782.549,104637.06708000001,4886.02125,7262.678499999999,12667.4625,3595.1465,4572.35075,35291.292,35291.292,35291.292,35291.292,176739.53066,176739.53066 +12279600.0,73856.40299999999,68357.403,199603.61676000003,4329.14504,4329.14504,4329.14504,8678.586,102755.03360000001,423038.55360000004,80859.53715,123214.5328,82670.27100000001,82670.27100000001,82670.27100000001,61525.8595,73856.40299999999,73856.40299999999,133813.56988999998,30242.74725,44953.4169,78407.1225,22252.6881,28301.23755,53730.372,53730.372,53730.372,53730.372,222061.58502,222061.58502 +12283200.0,72734.976,70395.666,205555.34472000002,6027.96304,6027.96304,6027.96304,9876.6885,110877.25888000001,394271.69216000004,85709.07933000001,130604.31136000002,82703.28899999999,82703.28899999999,82703.28899999999,61489.61000000001,72734.976,72734.976,138085.33569999997,36242.66834999999,53871.81813999999,93962.4735,26667.444859999996,33915.97852999999,54010.443000000014,54010.443000000014,54010.443000000014,54010.443000000014,218689.82783999998,218689.82783999998 +12286800.0,94539.504,70945.521,207160.92131999996,26648.890730000003,26648.890730000003,26648.890730000003,16188.073999999999,446474.52327999996,299094.85568000004,121229.86533,184731.22336,73979.748,73979.748,73979.748,51216.067,94539.504,94539.504,247111.21031999995,31446.836549999996,46743.19901999999,81528.8355,23138.65998,29428.027289999998,96612.77399999999,96612.77399999999,96612.77399999999,96612.77399999999,284248.77536,284248.77536 +12290400.0,276040.34699999995,95219.04599999999,278039.61432,117100.44049000001,117100.44049000001,117100.44049000001,113266.94750000001,1084192.01128,208184.82880000005,485880.82935,740389.8352000001,139788.951,139788.951,139788.951,49431.668999999994,276040.34699999995,276040.34699999995,952478.0229899999,71665.4871,106524.99564,185799.41100000002,52731.642360000005,67064.73978,276192.681,276192.681,276192.681,276192.681,829961.3099799999,829961.3099799999 +12294000.0,223518.141,243776.142,711826.3346399999,184439.85219,184439.85219,184439.85219,196807.597,1353433.04656,379996.09856,917319.6375000001,1397820.4000000001,309569.499,309569.499,309569.499,227736.8485,223518.141,223518.141,172375.09457999998,264413.97809999995,393030.16003999993,685517.7209999999,194556.45795999997,247439.25358,281546.001,281546.001,281546.001,281546.001,672044.54394,672044.54394 +12297600.0,635181.747,102879.67499999999,300408.65099999995,156399.71743000002,156399.71743000002,156399.71743000002,124624.14300000001,542458.72512,286144.75072,395580.26025,602788.968,275726.127,275726.127,275726.127,81399.8465,635181.747,635181.747,155157.89679,98826.01425,146896.9397,256215.5925,72716.4253,92481.62815,541648.0109999999,541648.0109999999,541648.0109999999,541648.0109999999,1909779.78598,1909779.78598 +12301200.0,330041.17500000005,158570.83800000002,463026.84696,168390.62526000003,168390.62526000003,168390.62526000003,143811.465,233462.39208,1319039.26976,87023.70390000001,132607.54880000002,307277.643,307277.643,307277.643,207500.7165,330041.17500000005,330041.17500000005,109534.88325,266045.50440000003,395455.29296,689747.604,195756.93904000003,248966.03992000004,85211.47200000001,85211.47200000001,85211.47200000001,85211.47200000001,992323.7995,992323.7995 +12304800.0,34454.199,10542.599999999999,30784.391999999996,111673.21352,111673.21352,111673.21352,98218.8235,65301.09296000001,31685.182080000002,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,34454.199,34454.199,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24233.856,24233.856,24233.856,24233.856,103592.29166,103592.29166 +12308400.0,38491.626,100416.006,293214.73752,99456.40034000001,99456.40034000001,99456.40034000001,116487.01750000002,102798.47152000002,43546.35136000001,53347.26789,81291.07488,20413.053,20413.053,20413.053,89731.07849999999,38491.626,38491.626,11445.71246,31484.493449999998,46799.172979999996,81626.4645,23166.368019999998,29463.26671,22752.306,22752.306,22752.306,22752.306,115731.48883999999,115731.48883999999 +12312000.0,54269.774999999994,20590.461,60124.14612,86128.2004,86128.2004,86128.2004,127547.609,92042.51135999999,41090.245760000005,45061.60575,68665.304,34315.971,34315.971,34315.971,31099.8485,54269.774999999994,54269.774999999994,9718.056659999998,27464.97375,40824.4795,71205.4875,20208.7955,25701.790250000002,23407.293,23407.293,23407.293,23407.293,163171.1235,163171.1235 +12315600.0,24456.729,8288.922,24203.65224,66083.32423,66083.32423,66083.32423,57965.20799999999,42032.62912,23231.47648,32585.957250000003,49654.79200000001,12139.019999999999,12139.019999999999,12139.019999999999,20705.7725,24456.729,24456.729,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14676.426000000003,14676.426000000003,14676.426000000003,14676.426000000003,73533.23186,73533.23186 +12319200.0,51620.952000000005,22443.033000000003,65533.65636,56724.84356000001,56724.84356000001,56724.84356000001,55899.473,121668.14808,15936.305920000003,90112.01556,137313.54752,20396.583,20396.583,20396.583,17829.9695,51620.952000000005,51620.952000000005,88697.65059999998,18062.279099999996,26848.128439999993,46828.130999999994,13290.269559999997,16902.725379999996,15736.433999999997,15736.433999999997,15736.433999999997,15736.433999999997,155206.99568,155206.99568 +12322800.0,11715.579,16803.054,49064.91768,129423.34229,129423.34229,129423.34229,96769.6835,52092.210159999995,31005.203840000002,22192.111199999996,33816.5504,12916.470000000001,12916.470000000001,12916.470000000001,68232.108,11715.579,11715.579,26318.90586,26422.293149999998,39274.61846,68502.2415,19441.58854,24726.04717,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,35224.84086,35224.84086 +12326400.0,11005.302,3609.1589999999997,10538.744279999999,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,11005.302,11005.302,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,33089.274679999995,33089.274679999995 +12330000.0,209225.06699999998,22678.389,66220.89588,88805.19406,88805.19406,88805.19406,70846.3665,167121.80248,36672.911360000006,177771.41991000003,270889.78272,44353.839,44353.839,44353.839,34609.183,209225.06699999998,209225.06699999998,9502.102089999998,26470.3464,39346.04575999999,68626.824,19476.94624,24771.01552,132594.79499999998,132594.79499999998,132594.79499999998,132594.79499999998,629070.03478,629070.03478 +12333600.0,38079.126,10988.67,32086.9164,142801.54218,142801.54218,142801.54218,125591.28399999999,103697.10152,40097.804800000005,76048.82817,115883.92864,22123.911,22123.911,22123.911,44862.503,38079.126,38079.126,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,35646.726,35646.726,35646.726,35646.726,114491.23883999999,114491.23883999999 +12337200.0,102939.59700000001,40661.661,118732.05012,150360.66364,150360.66364,150360.66364,133232.2495,187060.56696,69720.55232,140529.47307,214140.14944,47941.563,47941.563,47941.563,50819.307,102939.59700000001,102939.59700000001,17060.589,47240.0748,70218.58032,122474.26800000001,34759.36368,44207.37864,65445.09299999999,65445.09299999999,65445.09299999999,65445.09299999999,309505.05498,309505.05498 +12340800.0,178719.99,77362.776,225899.30592,140484.12895,140484.12895,140484.12895,155724.618,246959.70079999996,152286.89216000002,199734.34761,304357.10112,109594.07100000001,109594.07100000001,109594.07100000001,68234.0015,178719.99,178719.99,19603.097279999998,50502.87224999999,75068.46689999998,130933.3725,37160.1381,47260.71255,86395.713,86395.713,86395.713,86395.713,537351.4366,537351.4366 +12344400.0,165808.965,69558.97200000001,203112.19824,117261.82820000002,117261.82820000002,117261.82820000002,136123.89,137130.34816,181856.71936000002,126996.36369000001,193518.26848000003,98912.21100000001,98912.21100000001,98912.21100000001,35798.434,165808.965,165808.965,13600.39044,36238.837049999995,53866.12321999999,93952.54049999999,26664.62578,33912.393189999995,62758.956000000006,62758.956000000006,62758.956000000006,62758.956000000006,498532.28809999995,498532.28809999995 +12348000.0,20734.5,15214.196999999998,44425.455239999996,75023.18098,75023.18098,75023.18098,66015.9325,60499.45664,26511.121920000005,37111.78317,56551.288640000006,12390.348,12390.348,12390.348,23581.572,20734.5,20734.5,25285.708239999996,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,62341.729999999996,62341.729999999996 +12351600.0,14956.755000000001,21115.281,61656.62052,37470.54861,37470.54861,37470.54861,32202.8945,67159.92992,40007.5008,22027.09425,33565.096,6961.689,6961.689,6961.689,11503.205,14956.755000000001,14956.755000000001,39406.56473,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,9235.53,9235.53,9235.53,9235.53,44969.9767,44969.9767 +12355200.0,18708.222,20585.805,60110.5506,13817.837220000001,13817.837220000001,13817.837220000001,11271.011499999999,55742.840879999996,47133.05216000001,28233.948539999998,43023.15968,12582.905999999999,12582.905999999999,12582.905999999999,4026.1234999999997,18708.222,18708.222,37093.589649999994,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,5391.504000000001,5391.504000000001,5391.504000000001,5391.504000000001,56249.387480000005,56249.387480000005 +12358800.0,28632.741,32293.301999999996,94296.44183999998,9118.54196,9118.54196,9118.54196,6440.577499999999,59137.323359999995,185636.22464,35484.21324,54071.18208,31390.479,31390.479,31390.479,2776.7005,28632.741,28632.741,78267.48787,2983.0356,4434.04304,7733.796,2194.92496,2791.53208,8274.066,8274.066,8274.066,8274.066,86089.10794,86089.10794 +12362400.0,39413.724,47531.793,138792.83555999998,3732.0394100000008,3732.0394100000008,3732.0394100000008,1610.1435,64324.87271999999,298362.56640000007,43266.61353000001,65930.07776000001,47059.24800000001,47059.24800000001,47059.24800000001,12608.6835,39413.724,39413.724,85805.71987,2119.03695,3149.77838,5493.799500000001,1559.19262,1983.0000100000002,17401.122,17401.122,17401.122,17401.122,118503.93015999999,118503.93015999999 +12366000.0,52473.204,49479.65700000001,144480.59844,3729.2962300000004,3729.2962300000004,3729.2962300000004,6703.8859999999995,73844.22455999999,324078.16448,53012.54889,80781.02687999999,48795.566999999995,48795.566999999995,48795.566999999995,42207.924499999994,52473.204,52473.204,85401.18443999998,6381.52425,9485.6237,16544.6925,4695.541300000001,5971.84615,32596.92,32596.92,32596.92,32596.92,157769.43336,157769.43336 +12369600.0,63079.68299999999,56102.33099999999,163818.80651999998,5685.8225600000005,5685.8225600000005,5685.8225600000005,9047.3285,85109.7364,348605.07904000004,69101.68461,105297.80512,56077.89600000001,56077.89600000001,56077.89600000001,51098.4495,63079.68299999999,63079.68299999999,102788.06941,25578.4797,38020.35748,66314.577,18820.70852,23936.40446,45325.350000000006,45325.350000000006,45325.350000000006,45325.350000000006,189659.58021999997,189659.58021999997 +12373200.0,83113.22099999999,58337.727,170346.16284,24630.956240000003,24630.956240000003,24630.956240000003,15748.494999999999,363917.94727999996,270715.19168000005,89819.21130000001,136867.3696,47734.202999999994,47734.202999999994,47734.202999999994,42341.0855,83113.22099999999,83113.22099999999,189978.12171,25381.5687,37727.66508,65804.067,18675.820920000002,23752.13466,81470.907,81470.907,81470.907,81470.907,249893.75113999998,249893.75113999998 +12376800.0,241429.76400000002,89226.924,260542.61807999996,114805.08259000002,114805.08259000002,114805.08259000002,106886.6295,924422.09136,179201.65120000002,413351.24544,629868.5644800001,119017.83,119017.83,119017.83,47412.3265,241429.76400000002,241429.76400000002,893467.5769499999,66199.97159999999,98400.94543999998,171629.55599999998,48710.10256,61950.09688,233883.59100000001,233883.59100000001,233883.59100000001,233883.59100000001,725898.8237599999,725898.8237599999 +12380400.0,208363.56,237457.359,693375.4882799999,181649.13866,181649.13866,181649.13866,200275.124,1253236.9024,339084.00192,884461.26825,1347750.504,268233.93299999996,268233.93299999996,268233.93299999996,222373.2525,208363.56,208363.56,158838.55208,260858.60865,387745.38866,676300.0965,191940.40834,244112.13007,265855.098,265855.098,265855.098,265855.098,626479.7704,626479.7704 +12384000.0,583751.754,84242.157,245987.09844,151730.56459000002,151730.56459000002,151730.56459000002,123592.30799999999,434711.45512000006,232859.98336,342636.5775,522112.88,232464.04499999998,232464.04499999998,232464.04499999998,76476.95649999999,583751.754,583751.754,151551.93598999997,89341.6554,132799.20136,231626.51400000002,65737.81064000001,83606.14172,481320.924,481320.924,481320.924,481320.924,1755146.94036,1755146.94036 +12387600.0,295540.704,180084.15899999999,525845.74428,165527.34363000002,165527.34363000002,165527.34363000002,141026.949,216899.87176,1193765.30688,83442.27822,127150.13824,272192.019,272192.019,272192.019,172578.16449999998,295540.704,295540.704,103696.51968,248589.38880000002,369508.17792,644491.008,182912.68608,232630.56384000002,78952.77,78952.77,78952.77,78952.77,888592.38336,888592.38336 +12391200.0,27608.292,9099.597,26570.82324,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,27608.292,27608.292,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,83008.93128,83008.93128 +12394800.0,29941.382999999998,79675.66500000001,232652.9418,97438.20944,97438.20944,97438.20944,110154.37299999999,82281.52952,32638.661760000006,50995.87416,77707.99872,18749.424,18749.424,18749.424,52197.614,29941.382999999998,29941.382999999998,11445.71246,30700.3284,45633.574559999994,79593.44399999999,22589.37744,28729.44312,21329.862,21329.862,21329.862,21329.862,90023.75821999999,90023.75821999999 +12398400.0,29361.066,8426.721,24606.025319999997,82932.09045,82932.09045,82932.09045,95632.9465,83327.54359999999,24117.152000000002,41086.10036999999,62607.391039999995,31294.188000000002,31294.188000000002,31294.188000000002,29942.983000000004,29361.066,29361.066,9718.056659999998,26688.38625,39670.1445,69192.1125,19637.3805,24975.05775,20225.184,20225.184,20225.184,20225.184,88278.93843999998,88278.93843999998 +12402000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +12405600.0,26956.518000000004,7226.763000000001,21102.147960000002,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,83092.834,15936.305920000003,39063.368819999996,59525.13344,10391.175,10391.175,10391.175,17829.9695,26956.518000000004,26956.518000000004,19243.15055,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,14499.792000000001,14499.792000000001,14499.792000000001,14499.792000000001,81049.26412,81049.26412 +12409200.0,9956.934000000001,3203.478,9354.15576,49706.80418000001,49706.80418000001,49706.80418000001,45300.7135,25692.233199999995,19462.07872,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9956.934000000001,9956.934000000001,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29937.18156,29937.18156 +12412800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +12416400.0,58941.431999999986,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,70528.90912,22619.26976,60745.96815,92565.28480000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,58941.431999999986,58941.431999999986,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,53181.132000000005,53181.132000000005,53181.132000000005,53181.132000000005,177217.23887999996,177217.23887999996 +12420000.0,31928.748000000003,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,71212.5057,108514.2944,22123.911,22123.911,22123.911,44862.503,31928.748000000003,31928.748000000003,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,95999.10232,95999.10232 +12423600.0,53557.341,10544.784,30790.769279999997,144898.36955000003,144898.36955000003,144898.36955000003,127201.42749999999,90599.65176,40611.8848,87499.59897,133332.72224,22407.549,22407.549,22407.549,45437.66499999999,53557.341,53557.341,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,48358.509000000005,48358.509000000005,48358.509000000005,48358.509000000005,161029.07194,161029.07194 +12427200.0,80959.53600000001,9343.479,27282.95868,129310.93703,129310.93703,129310.93703,112710.12550000001,111652.75832,35985.208320000005,90584.09009999999,138032.89919999999,21316.092,21316.092,21316.092,40261.221,80959.53600000001,80959.53600000001,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,58463.478,58463.478,58463.478,58463.478,243418.33824,243418.33824 +12430800.0,72997.59599999999,12082.611,35281.22412,108883.78204,108883.78204,108883.78204,93388.3895,74440.59952,51033.35808,52499.598060000004,79999.38752,19362.789,19362.789,19362.789,33359.297999999995,72997.59599999999,72997.59599999999,12525.494929999999,33199.74945,49348.763380000004,86073.42450000001,24428.45762,31068.407510000005,29087.612999999998,29087.612999999998,29087.612999999998,29087.612999999998,219479.43863999998,219479.43863999998 +12434400.0,17401.296000000002,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17401.296000000002,17401.296000000002,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,52319.896640000006,52319.896640000006 +12438000.0,9655.547999999999,5747.28,16782.0576,36596.67484,36596.67484,36596.67484,32202.8945,21846.93192,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,9655.547999999999,9655.547999999999,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,29031.014319999995,29031.014319999995 +12441600.0,6630.738,10603.670999999998,30962.719319999997,12808.83538,12808.83538,12808.83538,11271.011499999999,27693.583679999996,19539.09824,6336.15822,9655.098240000001,2545.3500000000004,2545.3500000000004,2545.3500000000004,4026.1234999999997,6630.738,6630.738,20588.079459999997,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,19936.41892,19936.41892 +12445200.0,7540.671,17802.822,51984.24023999999,7704.94956,7704.94956,7704.94956,6440.577499999999,44977.682720000004,36239.865600000005,3620.65977,5517.19584,2834.313,2834.313,2834.313,2300.6409999999996,7540.671,7540.671,36495.413239999994,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,3170.367,3170.367,3170.367,3170.367,22672.28414,22672.28414 +12448800.0,14039.493,20575.613999999998,60080.79287999999,2875.8782800000004,2875.8782800000004,2875.8782800000004,1610.1435,51496.60024,55349.84576000001,20326.514040000005,30973.73568000001,10708.839,10708.839,10708.839,575.162,14039.493,14039.493,37470.568589999995,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,3163.617,3163.617,3163.617,3163.617,42212.075619999996,42212.075619999996 +12452400.0,24816.453,33209.024999999994,96970.35299999999,3263.54578,3263.54578,3263.54578,1610.1435,56778.66416,203307.72736000002,31154.0796,47472.883200000004,36518.53200000001,36518.53200000001,36518.53200000001,575.162,24816.453,24816.453,81962.95796,695.11365,1033.23066,1802.1465,511.46634,650.4890700000001,6841.851000000001,6841.851000000001,6841.851000000001,6841.851000000001,74614.80201999999,74614.80201999999 +12456000.0,44106.144,52770.56999999999,154090.06439999997,5762.428100000001,5762.428100000001,5762.428100000001,3220.2905,65754.85512,332701.17376,45846.79953,69861.78975999999,51671.997,51671.997,51671.997,16619.1235,44106.144,44106.144,95347.41307000001,2853.0953999999997,4240.897359999999,7396.914,2099.31464,2669.93372,17565.654,17565.654,17565.654,17565.654,132612.47296,132612.47296 +12459600.0,43772.94,42475.908,124029.65136,14427.06738,14427.06738,14427.06738,11477.074,70513.88279999999,270960.3616,46950.37241999999,71543.42464,42673.932,42673.932,42673.932,36551.51149999999,43772.94,43772.94,73678.35826,5293.3904999999995,7868.200199999999,13723.605,3894.8898,4953.5679,23754.195,23754.195,23754.195,23754.195,131610.6396,131610.6396 +12463200.0,396692.4,199750.34100000001,583270.99572,107474.60559,107474.60559,107474.60559,190887.1055,520721.8188,116754.18304000002,311182.36653,474182.65376,134161.602,134161.602,134161.602,279197.814,396692.4,396692.4,99137.06777000001,55841.57414999999,83004.01886,144774.4515,41088.36814,52256.68297,269989.356,269989.356,269989.356,269989.356,1192721.816,1192721.816 +12466800.0,595801.4909999999,442921.35900000005,1293330.36828,217130.25906,217130.25906,217130.25906,428339.751,806622.4118399998,749897.8745600001,491689.50327000004,749241.1478400001,357535.38,357535.38,357535.38,107902.186,595801.4909999999,595801.4909999999,86945.32911999998,173099.26799999998,257298.17119999995,448775.88,127366.8688,161986.7224,476217.31799999997,476217.31799999997,476217.31799999997,476217.31799999997,1791376.4829399998,1791376.4829399998 +12470400.0,485961.798,226357.467,660963.8036399999,152927.56787,152927.56787,152927.56787,196688.55849999998,624034.222,626653.82592,656383.72716,1000203.7747200001,461862.846,461862.846,461862.846,69866.66399999999,485961.798,485961.798,185238.00619999997,96042.50594999998,142759.47797999997,248999.08949999997,70668.31301999999,89876.81420999998,315512.67,315512.67,315512.67,315512.67,1461125.13932,1461125.13932 +12474000.0,321708.83700000006,127962.51,373650.5292,174973.23162,174973.23162,174973.23162,265559.735,594942.8168,1087794.7488,369734.32167,563404.68064,457517.1,457517.1,457517.1,412946.128,321708.83700000006,321708.83700000006,205742.16559,246632.37209999998,366599.22964,639417.2609999999,181472.70836,230799.18278,252498.06299999997,252498.06299999997,252498.06299999997,252498.06299999997,967271.23658,967271.23658 +12477600.0,120831.639,110417.949,322420.41108,123934.08038000001,123934.08038000001,123934.08038000001,209801.37149999998,648471.3632799999,42060.32832,332551.20423,506744.69216,68433.939,68433.939,68433.939,46850.163499999995,120831.639,120831.639,18537.735189999996,138277.88235,205538.97573999997,358498.21349999995,101745.20726,129400.78373,110607.41400000002,110607.41400000002,110607.41400000002,110607.41400000002,363300.46125999995,363300.46125999995 +12481200.0,31188.72,7854.4529999999995,22935.00276,97401.57130000001,97401.57130000001,97401.57130000001,85337.66500000001,78485.24336,28267.94816,69550.92774,105982.36608,15032.913,15032.913,15032.913,30483.495,31188.72,31188.72,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,25655.346000000005,25655.346000000005,25655.346000000005,25655.346000000005,93774.0848,93774.0848 +12484800.0,41745.474,9406.671,27467.479320000002,83475.80989000002,83475.80989000002,83475.80989000002,72456.51000000001,76072.79776,32013.27936,54092.60934,82426.83328,13531.647,13531.647,13531.647,25882.213000000003,41745.474,41745.474,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,28241.853000000003,28241.853000000003,28241.853000000003,28241.853000000003,125514.72516,125514.72516 +12488400.0,20482.631999999998,5295.647999999999,15463.292159999999,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,48713.56576,18602.99392,36723.24831,55959.23552,10211.037,10211.037,10211.037,20705.7725,20482.631999999998,20482.631999999998,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,18006.066,18006.066,18006.066,18006.066,61584.446879999996,61584.446879999996 +12492000.0,19847.001,4873.907999999999,14231.81136,56765.03074000001,56765.03074000001,56765.03074000001,49914.4835,45104.90712,16425.93856,33064.85658,50384.54336,8792.835,8792.835,8792.835,17829.9695,19847.001,19847.001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,16637.295000000002,16637.295000000002,16637.295000000002,16637.295000000002,59673.31634,59673.31634 +12495600.0,11224.605,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,28428.635280000002,12337.789440000002,23085.65154,35178.13568,6807.357,6807.357,6807.357,13803.846000000001,11224.605,11224.605,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,10282.071,10282.071,10282.071,10282.071,33748.645699999994,33748.645699999994 +12499200.0,11996.679,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29830.334559999996,13880.007679999999,25578.612569999998,38976.93344,7658.277,7658.277,7658.277,15529.3285,11996.679,11996.679,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10807.239,10807.239,10807.239,10807.239,36070.014859999996,36070.014859999996 +12502800.0,19686.347999999998,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,51476.4756,22619.26976,41378.107679999994,63052.35455999999,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,19686.347999999998,19686.347999999998,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,18657.968999999997,18657.968999999997,18657.968999999997,18657.968999999997,59190.28632,59190.28632 +12506400.0,36644.448000000004,10698.69,31240.1748,142727.02862,142727.02862,142727.02862,125591.28399999999,95808.55216,40097.804800000005,73418.55024,111875.88608000001,22123.911,22123.911,22123.911,44862.503,36644.448000000004,36644.448000000004,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,34856.637,34856.637,34856.637,34856.637,110177.64032,110177.64032 +12510000.0,87332.064,18513.225,54058.617,146611.13544,146611.13544,146611.13544,127201.42749999999,150484.70536,60781.065600000016,100929.41397000001,153797.20224,23606.745000000003,23606.745000000003,23606.745000000003,45437.66499999999,87332.064,87332.064,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,57197.990999999995,57197.990999999995,57197.990999999995,57197.990999999995,262578.40576,262578.40576 +12513600.0,135649.809,26899.986,78547.95912,133865.65774999998,133865.65774999998,133865.65774999998,113125.84850000001,104040.68624000001,110931.13088000001,110522.30595000001,168414.9424,31295.673,31295.673,31295.673,40261.221,135649.809,135649.809,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,62757.894,62757.894,62757.894,62757.894,407853.75906,407853.75906 +12517200.0,66739.836,13254.711,38703.75612,110375.22133000001,110375.22133000001,110375.22133000001,93388.3895,89166.62088,32758.755200000003,63310.519440000004,96473.17248000001,17998.905,17998.905,17998.905,33359.297999999995,66739.836,66739.836,12595.71612,33559.085699999996,49882.887879999995,87005.037,24692.858119999997,31404.67526,31208.591999999997,31208.591999999997,31208.591999999997,31208.591999999997,200664.44023999997,200664.44023999997 +12520800.0,20966.346,16591.815000000002,48448.0998,75023.18098,75023.18098,75023.18098,66015.9325,66730.27528,34959.22432000001,37111.78317,56551.288640000006,12544.005000000001,12544.005000000001,12544.005000000001,23581.572,20966.346,20966.346,37071.62238,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,63038.81364,63038.81364 +12524400.0,14857.329000000002,19425.762,56723.22504,37408.46890000001,37408.46890000001,37408.46890000001,32202.8945,63580.07416,42086.29888,24457.14936,37268.03712,8898.414,8898.414,8898.414,11503.205,14857.329000000002,14857.329000000002,35441.373889999995,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,9773.423999999999,9773.423999999999,9773.423999999999,9773.423999999999,44671.035859999996,44671.035859999996 +12528000.0,19407.783,20530.86,59950.1112,13797.92271,13797.92271,13797.92271,11271.011499999999,55566.22176000001,59352.260480000004,29065.350929999997,44290.05856,14466.282,14466.282,14466.282,4026.1234999999997,19407.783,19407.783,37070.78543999999,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,5383.581,5383.581,5383.581,5383.581,58352.73421999999,58352.73421999999 +12531600.0,29624.31,35537.28599999999,103768.87511999998,9008.538,9008.538,9008.538,6440.577499999999,60155.23536,206580.77952000004,35969.90355,54811.2816,35378.346,35378.346,35378.346,2300.6409999999996,29624.31,29624.31,80468.61121,3095.7713999999996,4601.615759999999,8026.073999999999,2277.8762399999996,2897.03052,9287.697,9287.697,9287.697,9287.697,89070.4254,89070.4254 +12535200.0,37523.574,45838.706999999995,133849.02443999998,3638.07939,3638.07939,3638.07939,1610.1435,64664.20591999999,284362.59584,41219.85756,62811.21152,44979.003,44979.003,44979.003,10087.668500000002,37523.574,37523.574,82724.68879999999,2053.0179,3051.6463599999993,5322.638999999999,1510.6156399999998,1921.2192199999997,16502.337,16502.337,16502.337,16502.337,112820.87916,112820.87916 +12538800.0,45511.770000000004,46124.931,134684.79851999998,3516.1544,3516.1544,3516.1544,4938.3425,67172.91223999999,285619.71456,45032.70303,68621.26176,43369.85399999999,43369.85399999999,43369.85399999999,35852.1765,45511.770000000004,45511.770000000004,76962.93891,2381.2623,3539.55532,6173.643,1752.13868,2228.39114,25285.878,25285.878,25285.878,25285.878,136838.7218,136838.7218 +12542400.0,49444.134000000005,45470.076,132772.62191999998,5228.028960000001,5228.028960000001,5228.028960000001,7639.1245,66056.4736,261794.48384,50445.7758,76869.75360000001,41847.936,41847.936,41847.936,34826.365,49444.134000000005,49444.134000000005,84381.12774,15139.9773,22504.36132,39251.793,11140.03268,14168.02814,31676.601000000002,31676.601000000002,31676.601000000002,31676.601000000002,148662.02956,148662.02956 +12546000.0,45839.448000000004,39501.969,115345.74948,14167.5479,14167.5479,14167.5479,14911.4735,69085.93272,222815.36064,49152.987660000006,74899.79072,37526.754,37526.754,37526.754,32767.966,45839.448000000004,45839.448000000004,78459.07978999999,18315.881999999998,27225.088799999994,47485.619999999995,13476.8712,17140.047599999998,30623.411999999997,30623.411999999997,30623.411999999997,30623.411999999997,137823.94032,137823.94032 +12549600.0,400475.64,204387.79499999998,596812.3613999999,108461.87770000001,108461.87770000001,108461.87770000001,201376.532,554813.2568,131279.76640000002,331069.56309,504486.95327999996,145299.10499999998,145299.10499999998,145299.10499999998,293130.0085,400475.64,400475.64,214819.17911999996,62801.037449999996,93348.70258,162817.5045,46209.15842,58769.36591,293728.956,293728.956,293728.956,293728.956,1204096.7576,1204096.7576 +12553200.0,608854.602,451441.07100000005,1318207.92732,218892.39405000003,218892.39405000003,218892.39405000003,427369.201,845431.06312,726894.2143999999,532876.4637,812002.2304,358207.302,358207.302,358207.302,123995.249,608854.602,608854.602,114559.28418999998,194170.84695,288619.38237999997,503405.8995,142871.38862,181705.55801,508944.621,508944.621,508944.621,508944.621,1830622.8366799997,1830622.8366799997 +12556800.0,493826.4689999999,275640.762,804871.02504,150887.06116,150887.06116,150887.06116,199354.7955,627068.94296,595222.20224,632437.64976,963714.51392,421421.93100000004,421421.93100000004,421421.93100000004,74672.892,493826.4689999999,493826.4689999999,216030.05332999997,93513.48345,139000.28897999998,242442.3645,68807.45202,87510.14871,329221.917,329221.917,329221.917,329221.917,1484771.5834599996,1484771.5834599996 +12560400.0,304806.27,125725.137,367117.40004,174772.35270000002,174772.35270000002,174772.35270000002,250239.3775,627220.72456,1070449.3196800002,385553.25753000006,587509.7257600001,440099.18100000004,440099.18100000004,440099.18100000004,363006.79799999995,304806.27,304806.27,196216.10008,264170.93354999996,392668.89381999994,684887.6055,194377.62517999997,247211.81188999998,248232.387,248232.387,248232.387,248232.387,916450.8518000001,916450.8518000001 +12564000.0,99237.41700000002,108049.506,315504.55752,122488.41231000001,122488.41231000001,122488.41231000001,189451.423,618564.72328,41130.392960000005,338058.9981300001,515137.5209600001,73072.04999999999,73072.04999999999,73072.04999999999,43320.5395,99237.41700000002,99237.41700000002,19439.489939999996,132680.35304999998,197218.69761999996,343986.1005,97626.53138,124162.60199,103603.29599999997,103603.29599999997,103603.29599999997,103603.29599999997,298373.83378,298373.83378 +12567600.0,32951.088,9010.082999999999,26309.442359999997,97209.95163000001,97209.95163000001,97209.95163000001,85337.66500000001,84140.29056,28360.983040000003,72313.88577000001,110192.58784000001,15367.022999999997,15367.022999999997,15367.022999999997,30483.495,32951.088,32951.088,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,27453.588,27453.588,27453.588,27453.588,99072.93792,99072.93792 +12571200.0,47590.401,14801.463,43220.27196,84194.16896,84194.16896,84194.16896,72456.51000000001,89973.01392,36605.248640000005,67817.2089,103340.50880000001,14924.28,14924.28,14924.28,26232.094,47590.401,47590.401,9718.056659999998,27742.9455,41237.6622,71926.155,20413.327800000003,25961.916900000004,34682.742,34682.742,34682.742,34682.742,143088.47233999998,143088.47233999998 +12574800.0,24776.681999999993,6491.192999999999,18954.283559999996,66126.75927,66126.75927,66126.75927,57965.20799999999,55638.6144,21557.816960000004,40626.42444,61906.93248,10446.939,10446.939,10446.939,20705.7725,24776.681999999993,24776.681999999993,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,20572.029,20572.029,20572.029,20572.029,74495.22387999998,74495.22387999998 +12578400.0,14517.137999999999,4302.963,12564.65196,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,38465.5104,15936.305920000003,29727.1527,45298.5184,8792.835,8792.835,8792.835,17829.9695,14517.137999999999,14517.137999999999,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13641.768,13641.768,13641.768,13641.768,43648.194919999994,43648.194919999994 +12582000.0,10500.561,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,26051.527519999996,12337.789440000002,22678.8303,34558.2176,6807.357,6807.357,6807.357,13803.846000000001,10500.561,10500.561,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,31571.686739999997,31571.686739999997 +12585600.0,11453.328000000001,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28975.89,13880.007679999999,25193.333130000003,38389.84096,7658.277,7658.277,7658.277,15529.3285,11453.328000000001,11453.328000000001,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,34436.33952,34436.33952 +12589200.0,18652.148999999998,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47542.441360000004,22619.26976,40848.232529999994,62244.92575999999,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,18652.148999999998,18652.148999999998,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,56080.79465999999,56080.79465999999 +12592800.0,33525.867,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,88601.8228,40097.804800000005,72535.74216000001,110530.65472,22123.911,22123.911,22123.911,44862.503,33525.867,33525.867,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,31275.855,31275.855,31275.855,31275.855,100801.10677999999,100801.10677999999 +12596400.0,53586.165,14332.737,41851.592039999996,144556.86399,144556.86399,144556.86399,127201.42749999999,132093.93799999997,41701.82144,88818.16965,135341.9728,22407.549,22407.549,22407.549,45437.66499999999,53586.165,53586.165,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,48332.952,48332.952,48332.952,48332.952,161115.7361,161115.7361 +12600000.0,94308.306,14443.250999999998,42174.29291999999,130605.08307,130605.08307,130605.08307,112710.12550000001,85784.18632,76466.55488,90380.01294,137721.92448000002,23364.087,23364.087,23364.087,40261.221,94308.306,94308.306,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,55156.935,55156.935,55156.935,55156.935,283553.64003999997,283553.64003999997 +12603600.0,49789.34999999999,8893.26,25968.3192,108642.10544000001,108642.10544000001,108642.10544000001,93388.3895,73515.71288,29816.313600000005,57191.12679,87148.38368,17016.84,17016.84,17016.84,33359.297999999995,49789.34999999999,49789.34999999999,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,25066.134000000002,25066.134000000002,25066.134000000002,25066.134000000002,149699.97899999996,149699.97899999996 +12607200.0,19472.694,11292.891,32975.24172,75023.18098,75023.18098,75023.18098,66015.9325,51971.45648,21077.05152,37111.78317,56551.288640000006,11989.59,11989.59,11989.59,23581.572,19472.694,19472.694,10741.355299999997,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,58547.899959999995,58547.899959999995 +12610800.0,11960.796,13952.369999999999,40740.920399999995,36596.67484,36596.67484,36596.67484,32202.8945,41217.09648,18381.77088,18103.308510000003,27585.993920000004,6477.108,6477.108,6477.108,11503.205,11960.796,11960.796,29268.123689999997,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,35962.12664,35962.12664 +12614400.0,8283.081,16637.864999999998,48582.5658,13062.437080000002,13062.437080000002,13062.437080000002,11271.011499999999,45090.72176,27557.320960000005,8696.400510000001,13251.657920000001,3687.2999999999997,3687.2999999999997,3687.2999999999997,4026.1234999999997,8283.081,8283.081,29335.48774,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,4033.653,4033.653,4033.653,4033.653,24904.46354,24904.46354 +12618000.0,10757.817,16357.136999999999,47762.840039999995,8034.656190000001,8034.656190000001,8034.656190000001,6440.577499999999,42191.94432,32278.392320000003,19146.327690000002,29175.356480000006,9186.213,9186.213,9186.213,2300.6409999999996,10757.817,10757.817,28925.92586,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,3561.468,3561.468,3561.468,3561.468,32345.169779999997,32345.169779999997 +12621600.0,15970.605,16487.718,48144.13656,2578.44675,2578.44675,2578.44675,1610.1435,40780.74919999999,61042.000640000006,21464.66973,32708.068160000003,14852.862,14852.862,14852.862,575.162,15970.605,15970.605,42653.877499999995,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2611.773,2611.773,2611.773,2611.773,48018.28569999999,48018.28569999999 +12625200.0,26199.557999999997,35401.764,103373.15088000002,2776.01676,2776.01676,2776.01676,1610.1435,46017.74,184030.26048,29199.306150000004,44494.18080000001,29064.686999999998,29064.686999999998,29064.686999999998,2471.2905,26199.557999999997,26199.557999999997,68248.44545999999,1719.49635,2555.89334,4457.9535,1265.20966,1609.10893,7955.358,7955.358,7955.358,7955.358,78773.33772,78773.33772 +12628800.0,35937.783,39562.371,115522.12332,5092.04212,5092.04212,5092.04212,3220.2905,58228.14632,247466.62272,35610.05406,54262.93952,39795.495,39795.495,39795.495,4373.04,35937.783,35937.783,71113.95967,2400.6213,3568.3309199999994,6223.833,1766.3830799999998,2246.50734,14931.357000000002,14931.357000000002,14931.357000000002,14931.357000000002,108052.93422,108052.93422 +12632400.0,61610.46,37399.323000000004,109206.02316,19306.08977,19306.08977,19306.08977,13181.3325,262511.84856,216189.27744,53579.58606,81645.08352,34384.224,34384.224,34384.224,28092.042999999998,61610.46,61610.46,118909.18844999999,5118.738300000001,7608.593720000001,13270.803000000002,3766.3802800000008,4790.127940000001,53204.691000000006,53204.691000000006,53204.691000000006,53204.691000000006,185242.1164,185242.1164 +12636000.0,168459.939,59970.654,175114.30968,109376.59392000001,109376.59392000001,109376.59392000001,90168.099,579558.63328,87217.6704,214376.32839,326668.69088,57274.074,57274.074,57274.074,32208.977499999994,168459.939,168459.939,835480.0399399999,34844.41395,51793.425180000006,90337.36950000002,25638.605820000004,32607.488610000004,152873.574,152873.574,152873.574,152873.574,506502.88326,506502.88326 +12639600.0,165533.55,214306.65300000002,625775.4267600001,177236.66851000002,177236.66851000002,177236.66851000002,149743.45400000003,1002881.5044,189594.24896,718935.8883000001,1095521.3536,160423.242,160423.242,160423.242,126652.99850000002,165533.55,165533.55,128583.19993999998,143481.94605,213274.39882,371990.23050000006,105574.37018000001,134270.75939000002,221187.408,221187.408,221187.408,221187.408,497704.20699999994,497704.20699999994 +12643200.0,458214.858,54165.827999999994,158164.21775999997,146502.02688,146502.02688,146502.02688,119472.241,288961.68744,161253.37216,227109.49800000002,346071.61600000004,130213.91399999999,130213.91399999999,130213.91399999999,44344.888000000006,458214.858,458214.858,88434.09146,53685.9657,79799.87988,139185.837,39502.26612,50239.45926,300111.23400000005,300111.23400000005,300111.23400000005,300111.23400000005,1377699.3397199998,1377699.3397199998 +12646800.0,265208.757,113467.79999999999,331325.97599999997,163088.34729,163088.34729,163088.34729,136862.2955,181294.32616,980990.64128,81857.85468000002,124735.77856000002,225495.543,225495.543,225495.543,116224.91649999999,265208.757,265208.757,79667.75102,173761.20809999996,258282.09203999993,450492.02099999995,127853.92595999998,162606.16757999998,64059.816000000006,64059.816000000006,64059.816000000006,64059.816000000006,797394.3293799999,797394.3293799999 +12650400.0,27311.481,9937.716,29018.13072,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,27311.481,27311.481,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24240.357000000004,24240.357000000004,24240.357000000004,24240.357000000004,82116.51954,82116.51954 +12654000.0,37186.704,59518.265999999996,173793.33672,97049.84597,97049.84597,97049.84597,98929.628,67209.20784,33402.51392,47973.77214,73102.89088,16811.583,16811.583,16811.583,30483.495,37186.704,37186.704,11445.71246,30333.528,45088.3552,78642.48,22319.484800000002,28386.1904,21721.517999999996,21721.517999999996,21721.517999999996,21721.517999999996,111808.02335999999,111808.02335999999 +12657600.0,53717.064,21585.402000000002,63029.37384,83026.00977,83026.00977,83026.00977,97207.45999999999,84858.4412,54851.31328,40766.62485,62120.571200000006,38459.406,38459.406,38459.406,30751.829500000003,53717.064,53717.064,9718.056659999998,26375.912549999997,39205.67742,68381.9955,19407.46158,24682.64409,21362.766,21362.766,21362.766,21362.766,161509.30576,161509.30576 +12661200.0,28523.345999999998,9195.876,26851.957919999997,66048.09024,66048.09024,66048.09024,57965.20799999999,39577.388000000006,26850.295039999997,32655.465780000002,49760.709760000005,10904.076000000001,10904.076000000001,10904.076000000001,20705.7725,28523.345999999998,28523.345999999998,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,15049.812000000002,15049.812000000002,15049.812000000002,15049.812000000002,85760.19363999998,85760.19363999998 +12664800.0,42914.676,26469.405,77290.6626,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,115499.18087999999,16726.37888,52182.310529999995,79515.90176,13390.493999999999,13390.493999999999,13390.493999999999,17829.9695,42914.676,42914.676,99007.00056,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,16001.832000000002,16001.832000000002,16001.832000000002,16001.832000000002,129030.12584,129030.12584 +12668400.0,10827.240000000002,4378.7880000000005,12786.060959999999,119577.89426,119577.89426,119577.89426,72196.166,42641.82872,31880.54336,22428.85848,34177.30816,16466.703,16466.703,16466.703,21907.024999999998,10827.240000000002,10827.240000000002,5182.962589999999,14233.4172,21156.832479999997,36901.452,10472.98352,13319.66696,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,32553.9016,32553.9016 +12672000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +12675600.0,140291.74800000002,7523.178,21967.67976,82324.22374000002,82324.22374000002,82324.22374000002,70846.3665,130773.97536,24423.424,111874.27125,170475.08000000002,16634.358,16634.358,16634.358,25307.054500000002,140291.74800000002,140291.74800000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,100380.15299999999,100380.15299999999,100380.15299999999,100380.15299999999,421810.52232000005,421810.52232000005 +12679200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,86128.7288,40097.804800000005,70795.25649,107878.48608,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +12682800.0,58456.416000000005,15030.849000000002,43890.07908,145760.97756000003,145760.97756000003,145760.97756000003,127201.42749999999,135844.3568,48272.17728,97334.02959,148318.52128000002,23716.307999999997,23716.307999999997,23716.307999999997,45437.66499999999,58456.416000000005,58456.416000000005,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,50367.243,50367.243,50367.243,50367.243,175758.95744,175758.95744 +12686400.0,113323.38,42440.667,123926.74763999999,134172.12468,134172.12468,134172.12468,112710.12550000001,188488.93751999998,94134.08640000001,134510.36571,204968.17632000003,40800.756,40800.756,40800.756,43430.03,113323.38,113323.38,15116.978629999998,40483.59345,60175.61298,104957.4645,29787.928020000003,37884.64671,64442.969999999994,64442.969999999994,64442.969999999994,64442.969999999994,340725.62919999997,340725.62919999997 +12690000.0,97793.613,41868.744,122256.73247999999,112997.31883,112997.31883,112997.31883,93388.3895,91564.61248,108278.19520000002,63269.19879,96410.20768,60881.49900000001,60881.49900000001,60881.49900000001,33359.297999999995,97793.613,97793.613,12525.494929999999,34341.092099999994,51045.27763999999,89032.461,25268.260359999997,32136.478779999998,33338.01299999999,33338.01299999999,33338.01299999999,33338.01299999999,294032.79641999997,294032.79641999997 +12693600.0,19428.927,11703.105000000001,34173.0666,75023.18098,75023.18098,75023.18098,66015.9325,55710.48144,29411.9584,37111.78317,56551.288640000006,11827.848000000002,11827.848000000002,11827.848000000002,23581.572,19428.927,19428.927,12667.038799999998,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,58416.307179999996,58416.307179999996 +12697200.0,12257.568,14696.048999999999,42912.46308,36596.67484,36596.67484,36596.67484,32202.8945,43761.08808,25526.188160000005,18103.308510000003,27585.993920000004,6598.836,6598.836,6598.836,11503.205,12257.568,12257.568,34410.39368,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,36854.42112,36854.42112 +12700800.0,9298.038,18244.425000000003,53273.721000000005,13111.000320000001,13111.000320000001,13111.000320000001,11271.011499999999,51136.208000000006,40146.72128,10263.57612,15639.73504,6548.364,6548.364,6548.364,4026.1234999999997,9298.038,9298.038,33941.77943,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,5060.556,5060.556,5060.556,5060.556,27956.100919999997,27956.100919999997 +12704400.0,14662.266,18907.278,55209.25175999999,8191.477360000001,8191.477360000001,8191.477360000001,6440.577499999999,49023.0332,65272.78656000001,24395.66829,37174.35168000001,13451.358,13451.358,13451.358,2300.6409999999996,14662.266,14662.266,34116.25255999999,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,4003.08,4003.08,4003.08,4003.08,44084.54643999999,44084.54643999999 +12708000.0,21086.133,30208.134000000002,88207.75128,2696.2447600000005,2696.2447600000005,2696.2447600000005,1610.1435,47480.940319999994,172834.06592,25405.35081,38712.91552,30543.198000000004,30543.198000000004,30543.198000000004,575.162,21086.133,21086.133,71493.6755,891.05265,1324.4782599999999,2310.1365,655.63874,833.84927,5777.97,5777.97,5777.97,5777.97,63398.97322,63398.97322 +12711600.0,31437.351000000002,42340.497,123634.25124,3240.11072,3240.11072,3240.11072,1610.1435,50441.16624,251247.67296,34925.78796,53220.248320000006,40278.63,40278.63,40278.63,2324.3289999999997,31437.351000000002,31437.351000000002,76421.26076,1917.4603499999998,2850.15094,4971.1935,1410.87206,1794.36413,12513.351,12513.351,12513.351,12513.351,94521.63534,94521.63534 +12715200.0,40713.846000000005,42979.68,125500.6656,5251.05702,5251.05702,5251.05702,3220.2905,64471.877199999995,289125.91424,42589.90155,64898.897600000004,44018.07,44018.07,44018.07,34974.5025,40713.846000000005,40713.846000000005,77607.12778,2506.0671,3725.0676399999998,6497.211,1843.97036,2345.1837800000003,20501.058,20501.058,20501.058,20501.058,122412.96364,122412.96364 +12718800.0,68929.14899999999,40856.801999999996,119301.86184,20173.55329,20173.55329,20173.55329,14514.2795,282246.90216,243765.39904000002,60147.90789,91653.95488,38611.869,38611.869,38611.869,32444.608000000004,68929.14899999999,68929.14899999999,132904.81658999997,8263.55925,12283.117699999999,21424.0425,6080.3473,7733.05915,61755.153,61755.153,61755.153,61755.153,207246.97465999998,207246.97465999998 +12722400.0,181095.504,67921.41,198330.5172,110375.35564000001,110375.35564000001,110375.35564000001,90168.099,671952.6250400001,110410.21824,255290.70294000002,389014.40448,72013.923,72013.923,72013.923,32208.977499999994,181095.504,181095.504,755134.0981599999,35569.590749999996,52871.3423,92217.4575,26172.1927,33286.11085,166595.31900000002,166595.31900000002,166595.31900000002,166595.31900000002,544493.81536,544493.81536 +12726000.0,173923.515,221424.34499999997,646559.0874,177912.99262000003,177912.99262000003,177912.99262000003,149743.45400000003,1106254.15304,236503.5104,766702.15398,1168308.04416,213399.86700000003,213399.86700000003,213399.86700000003,146219.77300000002,173923.515,173923.515,131876.16922999997,156167.7246,232130.79064,404879.286,114908.59736,146142.14228,231040.962,231040.962,231040.962,231040.962,522930.03510000004,522930.03510000004 +12729600.0,563397.591,76869.03,224457.5676,150344.96565,150344.96565,150344.96565,121914.772,426103.87328,255427.29024000003,310201.77027000004,472688.4118400001,218879.886,218879.886,218879.886,61107.501000000004,563397.591,563397.591,116448.10866,73086.19875,108636.76949999998,189482.7375,53777.00549999999,68394.24524999999,446655.43499999994,446655.43499999994,446655.43499999994,446655.43499999994,1693948.75694,1693948.75694 +12733200.0,319426.539,123500.949,360622.77108,165995.29188000003,165995.29188000003,165995.29188000003,136862.2955,223479.47856,1316683.3472000002,90054.19562999999,137225.44096,311304.75600000005,311304.75600000005,311304.75600000005,191134.909,319426.539,319426.539,101888.30118999998,238690.5894,354794.40696,618827.454,175629.12504,223367.24292000002,81515.35800000001,81515.35800000001,81515.35800000001,81515.35800000001,960409.1272599999,960409.1272599999 +12736800.0,51682.929000000004,15672.186,45762.78312,112265.91134000002,112265.91134000002,112265.91134000002,98218.8235,67950.16368,65488.10176000001,56066.181150000004,85434.1808,26822.900999999998,26822.900999999998,26822.900999999998,35084.777,51682.929000000004,51682.929000000004,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,26140.707,26140.707,26140.707,26140.707,155393.33986,155393.33986 +12740400.0,72869.676,121851.843,355807.38155999995,101836.53227,101836.53227,101836.53227,117182.26450000002,127633.63215999998,128557.13344000002,57605.386230000004,87779.63616000001,42331.458,42331.458,42331.458,108870.65,72869.676,72869.676,31149.093429999997,35400.292649999996,52619.69426,91778.5365,26047.62274,33127.68127,29080.545,29080.545,29080.545,29080.545,219094.82583999998,219094.82583999998 +12744000.0,118112.421,42806.019,124993.57548,89186.98855000001,89186.98855000001,89186.98855000001,135187.619,167014.948,189456.67136000004,77214.795,117660.64,78341.181,78341.181,78341.181,62301.90400000001,118112.421,118112.421,84522.80629,58625.78715,87142.52806,151992.7815,43136.998940000005,54862.156370000004,54230.109000000004,54230.109000000004,54230.109000000004,54230.109000000004,355124.67913999996,355124.67913999996 +12747600.0,52094.975999999995,17174.688,50150.088959999994,67182.95683,67182.95683,67182.95683,58058.455,62316.08792,73537.56096000002,40216.87425,61282.85600000001,28875.429,28875.429,28875.429,20705.7725,52094.975999999995,52094.975999999995,31854.561700000002,24207.344099999995,35982.274439999994,62759.780999999995,17811.823559999997,22653.29238,21500.952,21500.952,21500.952,21500.952,156632.22783999998,156632.22783999998 +12751200.0,72604.962,52876.157999999996,154398.38135999997,56843.46371,56843.46371,56843.46371,55967.9995,172689.47744000002,21401.406080000004,111609.44717999999,170071.53856,29110.776,29110.776,29110.776,17829.9695,72604.962,72604.962,181446.69685999997,17983.907549999996,26731.635419999995,46624.945499999994,13232.603579999999,16829.38509,18148.572,18148.572,18148.572,18148.572,218298.91907999996,218298.91907999996 +12754800.0,11282.286,14004.123,40892.03916,106371.17975000001,106371.17975000001,106371.17975000001,91837.046,62433.641279999996,27994.000640000002,24590.53947,37471.298240000004,23279.949,23279.949,23279.949,93789.8745,11282.286,11282.286,24230.57221,31668.995249999996,47073.42009999999,82104.80249999999,23302.1249,29635.923949999997,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,33922.07324,33922.07324 +12758400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +12762000.0,163155.924,6065.292,17710.65264,82618.16321,82618.16321,82618.16321,70846.3665,129624.87944,22619.26976,113781.52233,173381.36736,20936.082,20936.082,20936.082,25307.054500000002,163155.924,163155.924,9502.102089999998,25395.516900000002,37748.39796,65840.229,18686.08404,23765.187420000002,102135.546,102135.546,102135.546,102135.546,490555.47815999994,490555.47815999994 +12765600.0,32043.957,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,87404.45344,40097.804800000005,71391.17223,108786.54815999999,22123.911,22123.911,22123.911,44862.503,32043.957,32043.957,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,96345.49737999999,96345.49737999999 +12769200.0,74536.27200000001,18236.334000000003,53250.09528,146497.48883000002,146497.48883000002,146497.48883000002,127201.42749999999,156592.7672,56802.358400000005,107592.15747,163949.95424000002,28423.344,28423.344,28423.344,45844.8445,74536.27200000001,74536.27200000001,17060.589,45519.0354,67660.39336,118012.314,33493.01864,42596.82572,58290.384000000005,58290.384000000005,58290.384000000005,58290.384000000005,224105.72448,224105.72448 +12772800.0,121406.418,61977.654,180974.74968,136060.43374,136060.43374,136060.43374,112710.12550000001,220885.57248,92689.76640000001,154651.85210999998,235659.96511999998,78395.997,78395.997,78395.997,47771.0135,121406.418,121406.418,15116.978629999998,41294.954249999995,61381.63569999999,107060.9925,30384.9293,38643.92015,79222.662,79222.662,79222.662,79222.662,365028.63012000005,365028.63012000005 +12776400.0,109476.717,49571.841,144749.77572,115999.71713000002,115999.71713000002,115999.71713000002,93388.3895,107156.39048,139474.34304,81726.02466000001,124534.89472000001,76459.923,76459.923,76459.923,33359.297999999995,109476.717,109476.717,12525.494929999999,34589.600099999996,51414.66484,89676.741,25451.11316,32369.03318,37159.136999999995,37159.136999999995,37159.136999999995,37159.136999999995,329159.99578,329159.99578 +12780000.0,20678.718,16314.851999999999,47639.36784,75023.18098,75023.18098,75023.18098,66015.9325,65264.31848,40262.8,37111.78317,56551.288640000006,12257.508,12257.508,12257.508,23581.572,20678.718,20678.718,34469.840469999996,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,62174.01212,62174.01212 +12783600.0,17819.505,22321.224000000002,65177.97408,37597.491910000004,37597.491910000004,37597.491910000004,32202.8945,75707.65759999999,61173.22432,24623.06952,37520.867840000006,11677.785,11677.785,11677.785,11503.205,17819.505,17819.505,46730.97779999999,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,10989.455999999998,10989.455999999998,10989.455999999998,10989.455999999998,53577.3117,53577.3117 +12787200.0,24694.199999999997,24791.409,72390.91428,14247.97924,14247.97924,14247.97924,11271.011499999999,67240.69712000001,167748.4384,36807.48351,56087.59392,32329.091999999997,32329.091999999997,32329.091999999997,4026.1234999999997,24694.199999999997,24694.199999999997,61939.668699999995,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,8806.014000000001,8806.014000000001,8806.014000000001,8806.014000000001,74247.22799999999,74247.22799999999 +12790800.0,40728.149999999994,60074.133,175416.46836,9780.649560000002,9780.649560000002,9780.649560000002,6440.577499999999,72963.40655999999,362380.47552000004,46801.60842,71316.73664,57611.558999999994,57611.558999999994,57611.558999999994,10414.39,40728.149999999994,40728.149999999994,111577.94517999998,3557.96955,5288.636219999999,9224.3655,2617.96278,3329.55669,15184.854000000001,15184.854000000001,15184.854000000001,15184.854000000001,122455.97099999999,122455.97099999999 +12794400.0,58889.505000000005,63536.364,185526.18288,4422.160820000001,4422.160820000001,4422.160820000001,2110.8045,97206.216,456750.81024,64111.55562,97693.79904,68676.02399999999,68676.02399999999,68676.02399999999,59556.3535,58889.505000000005,58889.505000000005,115965.91097000001,2613.1409999999996,3884.224399999999,6774.8099999999995,1922.7555999999997,2445.3837999999996,32363.811,32363.811,32363.811,32363.811,177061.1117,177061.1117 +12798000.0,76674.558,67583.838,197344.80696,4476.04762,4476.04762,4476.04762,8943.228,110170.25096,462844.4371200001,79916.84673,121778.05216,83859.051,83859.051,83859.051,63495.960499999994,76674.558,76674.558,117459.40634999999,25319.0934,37634.80056,65642.09400000001,18629.851440000002,23693.670120000002,53130.042,53130.042,53130.042,53130.042,230534.83772,230534.83772 +12801600.0,82020.069,76353.369,222951.83748,6329.4605,6329.4605,6329.4605,10583.23,118225.45056,463396.80383999995,94553.98785,144082.2672,97077.48599999999,97077.48599999999,97077.48599999999,68664.1305,82020.069,82020.069,155955.16390999997,33246.328499999996,49417.99939999999,86194.185,24462.7306,31111.9963,62909.74800000001,62909.74800000001,62909.74800000001,62909.74800000001,246607.00746,246607.00746 +12805200.0,99609.285,78250.161,228490.47011999998,26278.337580000003,26278.337580000003,26278.337580000003,16593.0695,452142.19655999995,346991.79264000006,128422.70616,195691.74272,93863.61000000002,93863.61000000002,93863.61000000002,52817.0195,99609.285,99609.285,248018.70339999997,33619.21605,49972.266820000004,87160.93050000002,24737.10218,31460.945390000004,102365.124,102365.124,102365.124,102365.124,299491.9169,299491.9169 +12808800.0,273940.836,94675.63200000001,276452.84544,116588.3653,116588.3653,116588.3653,99368.262,1069656.77688,205233.97696000003,457997.97834,697901.68128,137907.912,137907.912,137907.912,38455.3715,273940.836,273940.836,917938.12968,58888.65239999999,87533.25615999999,152674.28399999999,43330.41584,55108.14632,266368.863,266368.863,266368.863,266368.863,823648.78024,823648.78024 +12812400.0,192013.72499999998,225067.30199999997,657196.52184,178946.58133000004,178946.58133000004,178946.58133000004,149743.45400000003,1221795.52792,285744.16000000003,795822.9146699999,1212682.5366399998,265939.05299999996,265939.05299999996,265939.05299999996,143078.446,192013.72499999998,192013.72499999998,149126.41653,159764.724,237477.4416,414204.84,117555.27840000001,149508.2232,245215.52999999997,245215.52999999997,245215.52999999997,245215.52999999997,577321.2664999999,577321.2664999999 +12816000.0,456959.4929999999,53253.28199999999,155499.58343999996,151576.96686000002,151576.96686000002,151576.96686000002,119747.81699999998,368793.58807999996,198151.92384,246621.53397,375804.24224,168098.799,168098.799,168098.799,41579.761999999995,456959.4929999999,456959.4929999999,95692.89613,55325.4705,82236.8722,143436.405,40708.6178,51773.7119,310405.86899999995,310405.86899999995,310405.86899999995,310405.86899999995,1373924.8756199998,1373924.8756199998 +12819600.0,208463.673,60439.719,176483.97948,163420.21508999998,163420.21508999998,163420.21508999998,136862.2955,148986.85632,790082.6105600001,77154.55041,117568.83871999999,197366.29499999998,197366.29499999998,197366.29499999998,78034.838,208463.673,208463.673,51702.4495,92976.2631,138201.75403999997,241049.571,68412.16395999999,87007.41657999999,50145.537,50145.537,50145.537,50145.537,626780.77682,626780.77682 +12823200.0,25179.504,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,25179.504,25179.504,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,75706.37535999999,75706.37535999999 +12826800.0,23370.891,13503.015,39428.8038,96981.18507,96981.18507,96981.18507,85337.66500000001,60568.73656,27245.94624,47973.77214,73102.89088,16121.369999999999,16121.369999999999,16121.369999999999,30483.495,23370.891,23370.891,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,70268.47893999999,70268.47893999999 +12830400.0,23231.415,9896.781,28898.60052,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,67001.87031999999,23133.34976,40732.447770000006,62068.49184000001,25345.053,25345.053,25345.053,25882.213000000003,23231.415,23231.415,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,69849.1211,69849.1211 +12834000.0,14725.503,5831.679,17028.50268,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14725.503,14725.503,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,44274.67902,44274.67902 +12837600.0,15075.159,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,54081.477679999996,15936.305920000003,29455.23336,44884.16512,8792.835,8792.835,8792.835,17829.9695,15075.159,15075.159,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13402.74,13402.74,13402.74,13402.74,45325.978059999994,45325.978059999994 +12841200.0,9810.213,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9810.213,9810.213,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29496.040419999998,29496.040419999998 +12844800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +12848400.0,76881.64199999999,5873.043000000001,17149.28556,81441.4326,81441.4326,81441.4326,70846.3665,71334.04656,22619.26976,65622.94956,99996.87552,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,76881.64199999999,76881.64199999999,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,60379.46400000001,60379.46400000001,60379.46400000001,60379.46400000001,231157.47027999998,231157.47027999998 +12852000.0,31827.243000000002,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,71183.75754,108470.48768,22123.911,22123.911,22123.911,44862.503,31827.243000000002,31827.243000000002,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,95693.91062,95693.91062 +12855600.0,57955.274999999994,10544.784,30790.769279999997,145221.06357000003,145221.06357000003,145221.06357000003,127201.42749999999,93635.49984,40611.8848,86446.48509,131727.97728000002,22407.549,22407.549,22407.549,45437.66499999999,57955.274999999994,57955.274999999994,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,47181.386999999995,47181.386999999995,47181.386999999995,47181.386999999995,174252.1935,174252.1935 +12859200.0,89934.58499999999,9881.664,28854.45888,131787.46691000002,131787.46691000002,131787.46691000002,112710.12550000001,126997.59192,35985.208320000005,85495.87347,130279.42624000002,21366.300000000003,21366.300000000003,21366.300000000003,40261.221,89934.58499999999,89934.58499999999,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,56119.481999999996,56119.481999999996,56119.481999999996,56119.481999999996,270403.3189,270403.3189 +12862800.0,73276.467,13271.544,38752.90848,111920.97070000002,111920.97070000002,111920.97070000002,93388.3895,72834.67544,64001.14304000001,54731.879160000004,83400.95872000001,18905.358,18905.358,18905.358,33359.297999999995,73276.467,73276.467,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,29244.432,29244.432,29244.432,29244.432,220317.91078,220317.91078 +12866400.0,17304.147,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17304.147,17304.147,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,52027.80198,52027.80198 +12870000.0,8836.125,2976.7889999999998,8692.22388,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8836.125,8836.125,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26567.282499999998,26567.282499999998 +12873600.0,5458.941,5894.298000000001,17211.35016,12808.83538,12808.83538,12808.83538,11271.011499999999,13154.518240000001,6331.86624,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,5458.941,5458.941,3464.5275599999995,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,16413.21594,16413.21594 +12877200.0,4803.1230000000005,9110.97,26604.032399999996,7344.705720000001,7344.705720000001,7344.705720000001,6440.577499999999,19690.41848,13483.812480000002,3620.65977,5517.19584,1624.3980000000001,1624.3980000000001,1624.3980000000001,2300.6409999999996,4803.1230000000005,4803.1230000000005,19481.322509999998,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,14441.38982,14441.38982 +12880800.0,4919.039999999999,14894.235,43491.1662,2682.8463200000006,2682.8463200000006,2682.8463200000006,1610.1435,32130.75144,25654.757120000002,905.16615,1379.3008,1156.752,1156.752,1156.752,575.162,4919.039999999999,4919.039999999999,28654.372499999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,1445.241,1445.241,1445.241,1445.241,14789.913599999998,14789.913599999998 +12884400.0,8738.349,17008.245,49664.0754,2693.8923000000004,2693.8923000000004,2693.8923000000004,1610.1435,41617.77888,33098.61376,8853.520410000001,13491.078720000001,4677.222,4677.222,4677.222,575.162,8738.349,8738.349,30120.45569,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2535.036,2535.036,2535.036,2535.036,26273.302659999998,26273.302659999998 +12888000.0,14593.689,16743.21,48890.1732,4709.01849,4709.01849,4709.01849,3220.2905,41605.9704,41061.07648,20536.759110000003,31294.109120000005,9655.244999999999,9655.244999999999,9655.244999999999,1150.3204999999998,14593.689,14593.689,29526.81511,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2861.277,2861.277,2861.277,2861.277,43878.35826,43878.35826 +12891600.0,36226.932,15543.954000000002,45388.34568,18012.444340000002,18012.444340000002,18012.444340000002,11271.011499999999,162417.9044,89570.44864000002,24485.868540000003,37311.799680000004,15756.18,15756.18,15756.18,4026.1234999999997,36226.932,36226.932,88750.68084999999,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,25676.685,25676.685,25676.685,25676.685,108922.30888,108922.30888 +12895200.0,117790.55399999999,34574.943,100958.83356,108799.32547000001,108799.32547000001,108799.32547000001,90168.099,349840.82583999995,44162.877440000004,97999.96583999999,149333.28128,21345.699,21345.699,21345.699,32208.977499999994,117790.55399999999,117790.55399999999,521667.54470999993,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,88235.196,88235.196,88235.196,88235.196,354156.93236,354156.93236 +12898800.0,124137.27900000001,178491.55800000002,521195.34936,175812.83192000003,175812.83192000003,175812.83192000003,149743.45400000003,717858.79768,81236.72768000001,504788.23143,769201.11456,80770.761,80770.761,80770.761,53489.9085,124137.27900000001,124137.27900000001,74269.93053999999,100302.84675,149092.1327,260044.4175,73803.08230000001,93863.65165000001,171070.347,171070.347,171070.347,171070.347,373239.41886,373239.41886 +12902400.0,371431.851,38070.075000000004,111164.619,148041.66311000002,148041.66311000002,148041.66311000002,117699.49450000002,239020.62960000001,151466.75776,182373.96071999997,277903.17824,89369.229,89369.229,89369.229,41411.5415,371431.851,371431.851,62640.04798999999,44745.2667,66510.24828,116006.247,32923.67772,41872.73106,217378.566,217378.566,217378.566,217378.566,1116771.76534,1116771.76534 +12906000.0,240954.68700000003,81054.606,236679.44952,163461.18371,163461.18371,163461.18371,136862.2955,164022.95248,840049.98976,79249.11855000001,120760.56160000002,202680.59999999998,202680.59999999998,202680.59999999998,81797.88399999999,240954.68700000003,240954.68700000003,64433.28332999999,135669.21659999999,201661.40344,351735.006,99825.74456,126959.58788,58525.75800000001,58525.75800000001,58525.75800000001,58525.75800000001,724470.42558,724470.42558 +12909600.0,35082.588,11760.489,34340.62788,111774.87398000002,111774.87398000002,111774.87398000002,98218.8235,65301.09296000001,36993.7952,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,35082.588,35082.588,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24538.301999999996,24538.301999999996,24538.301999999996,24538.301999999996,105481.64791999999,105481.64791999999 +12913200.0,45657.681000000004,66807.984,195079.31328,99053.75931000002,99053.75931000002,99053.75931000002,98953.0535,72362.62240000001,40047.16928,48072.5553,73253.4176,17322.378,17322.378,17322.378,30483.495,45657.681000000004,45657.681000000004,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,21947.127,21947.127,21947.127,21947.127,137277.42754,137277.42754 +12916800.0,66246.801,25136.004,73397.13167999999,85803.84175,85803.84175,85803.84175,74908.6835,92505.75768,104203.47200000001,42705.68148,65075.32416,54244.901999999995,54244.901999999995,54244.901999999995,28189.951999999997,66246.801,66246.801,10628.180809999998,26426.76435,39281.26454,68513.83350000001,19444.87846,24730.231330000002,23586.176999999996,23586.176999999996,23586.176999999996,23586.176999999996,199182.04833999998,199182.04833999998 +12920400.0,25840.788,8718.609,25458.33828,66065.7459,66065.7459,66065.7459,57965.20799999999,39403.78816,25097.200640000003,32589.69084,49660.48128,10739.034000000001,10739.034000000001,10739.034000000001,20705.7725,25840.788,25840.788,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14711.391,14711.391,14711.391,14711.391,77694.63591999999,77694.63591999999 +12924000.0,43263.278999999995,16765.053,48953.95475999999,56724.84356000001,56724.84356000001,56724.84356000001,52109.2215,101993.58519999999,15936.305920000003,54890.95521000001,83643.36032,13500.336,13500.336,13500.336,17829.9695,43263.278999999995,43263.278999999995,55637.58746,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,15808.932,15808.932,15808.932,15808.932,130078.25885999999,130078.25885999999 +12927600.0,10506.494999999999,3203.478,9354.15576,48226.15853,48226.15853,48226.15853,66494.96,38544.91104,21067.662080000002,21962.710349999998,33466.987199999996,13582.883999999998,13582.883999999998,13582.883999999998,13803.846000000001,10506.494999999999,10506.494999999999,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,31589.528299999998,31589.528299999998 +12931200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +12934800.0,156401.082,8229.216,24029.31072,84269.01626,84269.01626,84269.01626,70846.3665,128191.70839999999,26749.230720000003,129952.98057,198023.58944,17685.753,17685.753,17685.753,25307.054500000002,156401.082,156401.082,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,108759.924,108759.924,108759.924,108759.924,470245.91988,470245.91988 +12938400.0,34809.666,10783.548,31487.96016,142727.02862,142727.02862,142727.02862,125591.28399999999,95096.62112000001,40097.804800000005,73712.34948,112323.58016,22123.911,22123.911,22123.911,44862.503,34809.666,34809.666,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,33984.072,33984.072,33984.072,33984.072,104661.06244,104661.06244 +12942000.0,74840.538,22480.299,65642.47308,148139.08670000004,148139.08670000004,148139.08670000004,127201.42749999999,153710.76223999998,60685.94176000001,117630.54933000001,179246.55136,29855.25,29855.25,29855.25,46509.554,74840.538,74840.538,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,57298.59,57298.59,57298.59,57298.59,225020.55092,225020.55092 +12945600.0,100819.59300000001,46933.16099999999,137044.83012,134011.39224,134011.39224,134011.39224,112710.12550000001,172733.43512,85063.70240000001,129252.23934,196955.79328,41784.528000000006,41784.528000000006,41784.528000000006,45940.9825,100819.59300000001,100819.59300000001,15116.978629999998,40712.750550000004,60516.23662,105551.5755,29956.542380000003,38099.09249,63319.56899999999,63319.56899999999,63319.56899999999,63319.56899999999,303130.90962,303130.90962 +12949200.0,78883.842,31491.858,91956.22536,111518.88726000002,111518.88726000002,111518.88726000002,93388.3895,88570.12911999998,89184.30656000003,60691.94943000001,92482.97056000002,43980.411,43980.411,43980.411,33359.297999999995,78883.842,78883.842,12525.494929999999,33942.900149999994,50453.39726,88000.1115,24975.26974,31763.84977,30626.79,30626.79,30626.79,30626.79,237177.41828,237177.41828 +12952800.0,18635.457000000002,8489.661,24789.810120000002,75023.18098,75023.18098,75023.18098,66015.9325,44207.147280000005,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,18635.457000000002,18635.457000000002,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,56030.60738,56030.60738 +12956400.0,10525.461,7277.439,21250.12188,36596.67484,36596.67484,36596.67484,32202.8945,28951.18096,10281.4912,18103.308510000003,27585.993920000004,6100.503,6100.503,6100.503,11503.205,10525.461,10525.461,6189.5176200000005,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,31646.552739999996,31646.552739999996 +12960000.0,6024.807,9589.431,28001.138519999997,12808.83538,12808.83538,12808.83538,11271.011499999999,19593.678880000003,5305.816960000001,6336.15822,9655.098240000001,2624.799,2624.799,2624.799,4026.1234999999997,6024.807,6024.807,19597.205029999997,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,18114.58638,18114.58638 +12963600.0,5186.013,12830.844000000001,37466.06448,7399.972250000001,7399.972250000001,7399.972250000001,6440.577499999999,32008.62536,9759.54496,3620.65977,5517.19584,1811.2379999999998,1811.2379999999998,1811.2379999999998,2300.6409999999996,5186.013,5186.013,21665.596419999998,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,15592.61242,15592.61242 +12967200.0,6122.886,12811.332000000002,37409.08944,2356.86781,2356.86781,2356.86781,1610.1435,30473.394479999995,21667.31328,6831.94806,10410.587520000001,2740.314,2740.314,2740.314,575.162,6122.886,6122.886,21935.240209999996,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,1831.6679999999997,1831.6679999999997,1831.6679999999997,1831.6679999999997,18409.47724,18409.47724 +12970800.0,7844.741999999999,13201.635,38548.7742,2378.03588,2378.03588,2378.03588,1610.1435,31532.828879999997,22959.313280000006,13387.620120000001,20400.183040000004,6144.731999999999,6144.731999999999,6144.731999999999,575.162,7844.741999999999,7844.741999999999,22741.016219999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,1904.1750000000002,1904.1750000000002,1904.1750000000002,1904.1750000000002,23586.524279999998,23586.524279999998 +12974400.0,11925.282,13692.420000000002,39981.8664,4227.8753,4227.8753,4227.8753,3220.2905,33583.790160000004,24593.92448,16479.08094,25110.980480000002,9857.619,9857.619,9857.619,1150.3204999999998,11925.282,11925.282,23705.28654,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2363.418,2363.418,2363.418,2363.418,35855.34788,35855.34788 +12978000.0,31499.04,12640.788,36911.10096,14795.61402,14795.61402,14795.61402,11271.011499999999,157095.38096,38242.69952,21809.299890000002,33233.21888000001,13116.468,13116.468,13116.468,4026.1234999999997,31499.04,31499.04,67807.07505,4171.7916,6201.033439999999,10815.756,3069.6145599999995,3903.97288,23195.331,23195.331,23195.331,23195.331,94707.1136,94707.1136 +12981600.0,89480.538,31311.543,91429.70556,105782.35657,105782.35657,105782.35657,90168.099,300061.32576,32706.487680000006,88117.03236,134273.57312,18653.913,18653.913,18653.913,32208.977499999994,89480.538,89480.538,477380.70107,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,79466.886,79466.886,79466.886,79466.886,269038.15092,269038.15092 +12985200.0,100619.41199999998,146380.002,427429.60584000003,172557.80872,172557.80872,172557.80872,149743.45400000003,538510.96104,47808.917760000004,404326.15377,616116.0438399999,60982.356,60982.356,60982.356,53489.9085,100619.41199999998,100619.41199999998,58030.47107,93350.10644999999,138757.44217999998,242018.7945,68687.23882,87357.26011,135028.674,135028.674,135028.674,135028.674,302529.03208,302529.03208 +12988800.0,246286.137,14013.047999999999,40918.100159999995,138772.89745,138772.89745,138772.89745,115930.41599999998,151317.72879999998,85035.09888,132063.18342000002,201239.13664,56662.404,56662.404,56662.404,41411.5415,246286.137,246286.137,36366.38499,42460.04205,63113.445219999994,110081.59049999999,31242.203779999996,39734.21219,93701.931,93701.931,93701.931,93701.931,740500.31858,740500.31858 +12992400.0,153830.328,50698.779,148040.43468,158936.57692000002,158936.57692000002,158936.57692000002,136862.2955,112192.43272,409196.4736,76939.06479,117240.47968,96101.78700000001,96101.78700000001,96101.78700000001,48888.6265,153830.328,153830.328,40639.08394,59925.424049999994,89074.33402,155362.2105,44093.27498,56078.35979,41178.87,41178.87,41178.87,41178.87,462516.51952000003,462516.51952000003 +12996000.0,24670.322999999997,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24670.322999999997,24670.322999999997,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74175.43781999999,74175.43781999999 +12999600.0,23258.493000000002,7933.167,23164.84764,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15748.665,15748.665,15748.665,30483.495,23258.493000000002,23258.493000000002,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,69930.53562,69930.53562 +13003200.0,25236.108,9405.897,27465.21924,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,65823.93648,25222.36416,40732.447770000006,62068.49184000001,23997.693000000003,23997.693000000003,23997.693000000003,25882.213000000003,25236.108,25236.108,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,75876.56472,75876.56472 +13006800.0,18358.847999999998,6630.189,19360.15188,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38830.5396,19850.6144,32585.957250000003,49654.79200000001,10367.556,10367.556,10367.556,20705.7725,18358.847999999998,18358.847999999998,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,55198.93632,55198.93632 +13010400.0,19874.289,4785.965999999999,13975.020719999999,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,57345.09744,15936.305920000003,34391.07798,52405.45216,9044.157,9044.157,9044.157,17829.9695,19874.289,19874.289,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,14990.715000000002,14990.715000000002,14990.715000000002,14990.715000000002,59755.362259999994,59755.362259999994 +13014000.0,9712.850999999999,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,16770.25792,21723.97311,33103.19712,8658.923999999999,8658.923999999999,8658.923999999999,13803.846000000001,9712.850999999999,9712.850999999999,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29203.305339999995,29203.305339999995 +13017600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +13021200.0,74810.42099999999,5873.043000000001,17149.28556,80557.19254000002,80557.19254000002,80557.19254000002,70846.3665,80498.24464,22619.26976,80295.54771,122355.12032,12493.593,12493.593,12493.593,25307.054500000002,74810.42099999999,74810.42099999999,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,77039.817,77039.817,77039.817,77039.817,224929.99913999997,224929.99913999997 +13024800.0,33230.90700000001,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,87515.22072,40097.804800000005,72467.81787,110427.15104000001,22123.911,22123.911,22123.911,44862.503,33230.90700000001,33230.90700000001,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,32684.334000000003,32684.334000000003,32684.334000000003,32684.334000000003,99914.26038,99914.26038 +13028400.0,60981.552,12953.61,37824.5412,145039.87531,145039.87531,145039.87531,127201.42749999999,127195.67304,40611.8848,98722.29717,150433.97664,22997.106,22997.106,22997.106,45437.66499999999,60981.552,60981.552,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,52458.19499999999,52458.19499999999,52458.19499999999,52458.19499999999,183351.19968,183351.19968 +13032000.0,91551.516,21239.568,62019.53855999999,130544.30169,130544.30169,130544.30169,112710.12550000001,159289.358,72480.5472,117723.50751000001,179388.20192000002,25996.053,25996.053,25996.053,40261.221,91551.516,91551.516,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,56580.13799999999,56580.13799999999,56580.13799999999,56580.13799999999,275264.89144,275264.89144 +13035600.0,74784.486,26663.076,77856.18192,109050.82298,109050.82298,109050.82298,93388.3895,78446.45408,78389.19232,55827.54051,85070.53792,25291.044,25291.044,25291.044,33359.297999999995,74784.486,74784.486,12525.494929999999,33228.860850000005,49392.03514,86148.89850000001,24449.877860000004,31095.650030000004,28648.970999999998,28648.970999999998,28648.970999999998,28648.970999999998,224852.02124,224852.02124 +13039200.0,17262.444,6438.6720000000005,18800.92224,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17262.444,17262.444,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51902.41496,51902.41496 +13042800.0,10775.097,8123.406000000001,23720.34552,36596.67484,36596.67484,36596.67484,32202.8945,28229.683999999997,10281.4912,18103.308510000003,27585.993920000004,5877.8460000000005,5877.8460000000005,5877.8460000000005,11503.205,10775.097,10775.097,5034.011319999999,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,32397.12498,32397.12498 +13046400.0,6015.9929999999995,10818.822,31590.960239999997,12808.83538,12808.83538,12808.83538,11271.011499999999,23880.77032,12668.117120000003,6336.15822,9655.098240000001,2781.855,2781.855,2781.855,4026.1234999999997,6015.9929999999995,6015.9929999999995,24598.614169999997,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,18088.085619999998,18088.085619999998 +13050000.0,5820.849,15323.838,44745.60696,7319.33334,7319.33334,7319.33334,6440.577499999999,36242.088079999994,22043.021440000004,3620.65977,5517.19584,1996.308,1996.308,1996.308,2300.6409999999996,5820.849,5820.849,27113.864179999997,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,2379.0029999999997,2379.0029999999997,2379.0029999999997,2379.0029999999997,17501.352659999997,17501.352659999997 +13053600.0,7810.221,16500.423,48181.23516,1925.24431,1925.24431,1925.24431,1610.1435,40555.37776,33237.551360000005,10162.43592,15485.61664,7882.289999999999,7882.289999999999,7882.289999999999,575.162,7810.221,7810.221,29661.461439999995,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2490.996,2490.996,2490.996,2490.996,23482.731139999996,23482.731139999996 +13057200.0,11459.394,17168.175,50131.070999999996,2575.4186700000005,2575.4186700000005,2575.4186700000005,1610.1435,42340.02336,54819.50016,20475.55335,31200.8432,13884.681000000002,13884.681000000002,13884.681000000002,575.162,11459.394,11459.394,36637.49583,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2606.118,2606.118,2606.118,2606.118,34454.57796,34454.57796 +13060800.0,21855.726000000002,31560.021,92155.26131999999,4422.156750000001,4422.156750000001,4422.156750000001,3220.2905,45569.274719999994,148733.17952,25496.10651,38851.20992,26155.821,26155.821,26155.821,1150.3204999999998,21855.726000000002,21855.726000000002,70177.73645999999,1737.34875,2582.4294999999997,4504.2375,1278.3455000000001,1625.81525,5568.363,5568.363,5568.363,5568.363,65712.88284,65712.88284 +13064400.0,22210.965000000004,28478.979,83158.61868,13353.572320000001,13353.572320000001,13353.572320000001,11271.011499999999,42217.05048,147005.68576,28166.434800000003,42920.2816,25978.662,25978.662,25978.662,5545.473499999999,22210.965000000004,22210.965000000004,50911.55563,4840.7868,7195.44112,12550.188,3561.86288,4530.020240000001,9018.024000000001,9018.024000000001,9018.024000000001,9018.024000000001,66780.9681,66780.9681 +13068000.0,279772.776,11952.057,34900.006440000005,106901.7246,106901.7246,106901.7246,105812.25200000001,270708.94264,44583.23712,179964.35583000001,274231.39936000004,74734.37100000001,74734.37100000001,74734.37100000001,122257.84549999998,279772.776,279772.776,70311.72863,40105.129049999996,59613.056019999996,103976.2605,29509.452980000002,37530.47879,146483.358,146483.358,146483.358,146483.358,841183.47984,841183.47984 +13071600.0,397363.218,267567.654,781297.5496799999,195742.10381,195742.10381,195742.10381,213280.63050000003,425890.54392,364679.18016000005,221738.38827000002,337887.06784000003,187336.905,187336.905,187336.905,59919.688500000004,397363.218,397363.218,45569.86785,65138.97285,96823.85594,168878.8185,47929.41706,60957.21163,238418.34000000003,238418.34000000003,238418.34000000003,238418.34000000003,1194738.7421199998,1194738.7421199998 +13075200.0,288620.208,111767.98199999999,326362.50743999996,138408.897,138408.897,138408.897,149476.84149999998,290218.81752000004,375086.66176000005,339866.34066000005,517891.56672000006,184151.337,184151.337,184151.337,54304.327000000005,288620.208,288620.208,94129.30942999998,41505.509699999995,61694.60947999999,107606.877,30539.856519999998,38840.95846,176899.929,176899.929,176899.929,176899.929,867784.75872,867784.75872 +13078800.0,187636.63199999998,43979.823,128421.08315999998,161399.98105,161399.98105,161399.98105,168391.39800000002,234872.23816,489520.97856,168865.494,257318.84800000003,218235.054,218235.054,218235.054,106487.507,187636.63199999998,187636.63199999998,30656.381079999996,94016.5704,139748.08736,243746.66400000002,69177.62464000001,87980.93872,121644.24,121644.24,121644.24,121644.24,564160.8068799999,564160.8068799999 +13082400.0,54721.433999999994,65983.989,192673.24788,114476.05158000001,114476.05158000001,114476.05158000001,98218.8235,399796.0865600001,31358.54272,197391.54162000003,300787.11104000005,30124.592999999997,30124.592999999997,30124.592999999997,35716.947,54721.433999999994,54721.433999999994,13173.368259999997,56157.27569999999,83473.28387999999,145592.93699999998,41320.66211999999,52552.11726,59834.361000000004,59834.361000000004,59834.361000000004,59834.361000000004,164529.11156,164529.11156 +13086000.0,23117.73,7353.054,21470.91768,96981.18507,96981.18507,96981.18507,85337.66500000001,65034.590399999994,27245.94624,57379.694820000004,87435.72544000001,15032.913,15032.913,15032.913,30483.495,23117.73,23117.73,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,22575.183,22575.183,22575.183,22575.183,69507.3082,69507.3082 +13089600.0,22096.917,7920.231,23127.07452,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,65905.98263999999,23133.34976,47038.98842999999,71678.45855999998,12763.794,12763.794,12763.794,25882.213000000003,22096.917,22096.917,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,23738.331,23738.331,23738.331,23738.331,66438.06378,66438.06378 +13093200.0,15325.437000000002,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38899.40488,18506.68416,33427.58475,50937.272000000004,10211.037,10211.037,10211.037,20705.7725,15325.437000000002,15325.437000000002,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,46078.48058,46078.48058 +13096800.0,12841.608,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28477.57857,43394.40544,8792.835,8792.835,8792.835,17829.9695,12841.608,12841.608,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,38610.43472,38610.43472 +13100400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21743.7423,33133.3216,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +13104000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +13107600.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +13111200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70803.2598,107890.6816,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +13114800.0,34413.183,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84712.26599999999,40611.8848,74094.24792000001,112905.52064000002,22407.549,22407.549,22407.549,45437.66499999999,34413.183,34413.183,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,103468.97021999999,103468.97021999999 +13118400.0,32876.634000000005,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,32876.634000000005,32876.634000000005,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,30313.401,30313.401,30313.401,30313.401,98849.07956,98849.07956 +13122000.0,24146.940000000002,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,24146.940000000002,24146.940000000002,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,72601.7996,72601.7996 +13125600.0,17056.344,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17056.344,17056.344,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51282.74096,51282.74096 +13129200.0,8597.511,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8597.511,8597.511,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25849.849739999998,25849.849739999998 +13132800.0,3350.973,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3350.973,3350.973,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10075.25882,10075.25882 +13136400.0,2593.923,1163.259,3396.7162799999996,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2593.923,2593.923,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,7799.061819999999,7799.061819999999 +13140000.0,2567.457,5158.713000000001,15063.44196,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,3533.9708799999994,513.5360000000001,905.16615,1379.3008,588.723,588.723,588.723,575.162,2567.457,2567.457,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,7719.48738,7719.48738 +13143600.0,2998.086,9531.282,27831.34344,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,15033.78352,513.5360000000001,905.16615,1379.3008,993.144,993.144,993.144,575.162,2998.086,2998.086,17536.673179999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,9014.245239999998,9014.245239999998 +13147200.0,4057.959,13003.485,37970.1762,3659.66667,3659.66667,3659.66667,3220.2905,25678.421599999998,5832.3110400000005,1810.3323,2758.6016,1255.125,1255.125,1255.125,1150.3204999999998,4057.959,4057.959,21551.830299999998,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,12200.930059999999,12200.930059999999 +13150800.0,4965.4439999999995,8090.439,23624.08188,12808.83538,12808.83538,12808.83538,11271.011499999999,19888.44704,8326.735999999999,6336.15822,9655.098240000001,2524.308,2524.308,2524.308,4026.1234999999997,4965.4439999999995,4965.4439999999995,12615.037890000001,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2894.634,2894.634,2894.634,2894.634,14929.434959999999,14929.434959999999 +13154400.0,94357.56,7474.782,21826.36344,102758.34250000001,102758.34250000001,102758.34250000001,90168.099,83167.31736,28788.164480000003,63802.6095,97223.024,18405.834000000003,18405.834000000003,18405.834000000003,32208.977499999994,94357.56,94357.56,14130.13017,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,27471.891000000003,27471.891000000003,27471.891000000003,27471.891000000003,283701.73039999994,283701.73039999994 +13158000.0,158870.22000000003,52754.631,154043.52252,174550.67201000004,174550.67201000004,174550.67201000004,149743.45400000003,123270.84264,97876.12096000001,101287.30248,154342.55616,52541.16,52541.16,52541.16,53489.9085,158870.22000000003,158870.22000000003,20083.98665,53608.0032,79683.99488,138983.712,39444.90112,50166.50176,47040.345,47040.345,47040.345,47040.345,477669.79480000003,477669.79480000003 +13161600.0,101080.36499999999,29568.288,86339.40096,132329.71708000003,132329.71708000003,132329.71708000003,115930.41599999998,81457.73912,139399.96736,156096.53408999997,237861.38528,25105.611,25105.611,25105.611,41411.5415,101080.36499999999,101080.36499999999,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,83839.38,83839.38,83839.38,83839.38,303914.9640999999,303914.9640999999 +13165200.0,72218.37,15083.744999999999,44044.5354,155535.86807,155535.86807,155535.86807,136862.2955,117662.86584,43696.332160000005,87269.15483999999,132981.56928,30912.279000000002,30912.279000000002,30912.279000000002,48888.6265,72218.37,72218.37,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,67823.80799999999,67823.80799999999,67823.80799999999,67823.80799999999,217136.5658,217136.5658 +13168800.0,28104.924000000003,27414.096000000005,80049.16032000001,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,220885.29799999998,31358.54272,108526.92669000001,165374.36448000002,17302.032,17302.032,17302.032,35084.777,28104.924000000003,28104.924000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,31614.972,31614.972,31614.972,31614.972,84502.13816,84502.13816 +13172400.0,21431.787,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,51354.39057,78254.30944000001,15032.913,15032.913,15032.913,30483.495,21431.787,21431.787,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64438.23958,64438.23958 +13176000.0,18420.402000000002,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,41256.382020000005,62866.86784000001,12763.794,12763.794,12763.794,25882.213000000003,18420.402000000002,18420.402000000002,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,55384.00868,55384.00868 +13179600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32778.05118,49947.50656000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +13183200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +13186800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +13190400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +13194000.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +13197600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +13201200.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +13204800.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +13208400.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +13212000.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +13215600.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +13219200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +13222800.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +13226400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +13230000.0,716.391,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,716.391,716.391,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2153.9489399999998,2153.9489399999998 +13233600.0,1208.232,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1208.232,1208.232,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3632.75088,3632.75088 +13237200.0,3173.973,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3173.973,3173.973,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9543.078819999999,9543.078819999999 +13240800.0,24173.64,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,24173.64,24173.64,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,72682.0776,72682.0776 +13244400.0,48167.841,35252.1,102936.13199999998,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,216784.07039999997,47808.917760000004,124106.40080999999,189114.51552000002,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,48167.841,48167.841,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,45673.979999999996,45673.979999999996,45673.979999999996,45673.979999999996,144824.64194,144824.64194 +13248000.0,31767.290999999997,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,66052.6167,100651.6064,20422.071,20422.071,20422.071,41411.5415,31767.290999999997,31767.290999999997,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,95513.65494,95513.65494 +13251600.0,34507.989,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34507.989,34507.989,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103754.02026,103754.02026 +13255200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +13258800.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +13262400.0,18200.466,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18200.466,18200.466,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54722.73444,54722.73444 +13266000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +13269600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,37653.732879999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +13273200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +13276800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +13280400.0,30846.729,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,54795.49943999999,22619.26976,43168.26024,65780.20608,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,30846.729,30846.729,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,18662.976000000002,18662.976000000002,18662.976000000002,18662.976000000002,92745.83186,92745.83186 +13284000.0,32164.203,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83653.56744,40097.804800000005,71348.51367,108721.54464,22123.911,22123.911,22123.911,44862.503,32164.203,32164.203,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,96707.03701999999,96707.03701999999 +13287600.0,35210.346,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88351.25760000001,40611.8848,74850.77565,114058.32479999999,22407.549,22407.549,22407.549,45437.66499999999,35210.346,35210.346,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,35045.934,35045.934,35045.934,35045.934,105865.77363999998,105865.77363999998 +13291200.0,33961.623,9526.025999999998,27815.995919999998,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,100946.80024,35985.208320000005,69966.34155,106615.3776,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,33961.623,33961.623,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,38383.602,38383.602,38383.602,38383.602,102111.27981999998,102111.27981999998 +13294800.0,25633.721999999994,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,25633.721999999994,25633.721999999994,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,26277.192000000003,26277.192000000003,26277.192000000003,26277.192000000003,77072.05747999999,77072.05747999999 +13298400.0,17018.907,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17018.907,17018.907,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51170.18038,51170.18038 +13302000.0,8563.362000000001,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8563.362000000001,8563.362000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25747.17508,25747.17508 +13305600.0,3354.0150000000003,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3354.0150000000003,3354.0150000000003,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10084.4051,10084.4051 +13309200.0,2171.013,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2171.013,2171.013,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6527.512419999999,6527.512419999999 +13312800.0,1013.241,2452.491,7161.27372,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1013.241,1013.241,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,3046.4779399999998,3046.4779399999998 +13316400.0,1966.3140000000003,5483.049,16010.50308,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,7161.60368,513.5360000000001,905.16615,1379.3008,627.276,627.276,627.276,575.162,1966.3140000000003,1966.3140000000003,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,5912.050760000001,5912.050760000001 +13320000.0,3185.016,8779.719,25636.779479999997,3659.66667,3659.66667,3659.66667,3220.2905,16570.865680000003,1559.3216,1810.3323,2758.6016,1296.9,1296.9,1296.9,1150.3204999999998,3185.016,3185.016,20781.508799999996,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,9576.28144,9576.28144 +13323600.0,7489.305,9940.998,29027.714159999996,12808.83538,12808.83538,12808.83538,11271.011499999999,23309.06352,11345.196160000001,6336.15822,9655.098240000001,2538.126,2538.126,2538.126,4026.1234999999997,7489.305,7489.305,18106.29743,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,22517.843699999998,22517.843699999998 +13327200.0,35164.635,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,63539.84823999999,28788.164480000003,51972.69336,79196.48512,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,35164.635,35164.635,145076.31475999998,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,23407.149,23407.149,23407.149,23407.149,105728.33589999999,105728.33589999999 +13330800.0,52426.740000000005,74458.533,217418.91635999997,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,331606.50624,47808.917760000004,187410.81996000002,285578.39232000004,28376.577,28376.577,28376.577,53489.9085,52426.740000000005,52426.740000000005,20083.98665,56338.5456,83742.72704,146062.896,41454.04096,52721.750080000005,68396.952,68396.952,68396.952,68396.952,157629.7316,157629.7316 +13334400.0,65515.281,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,56848.45696000001,67642.60923,103074.45216000002,20422.071,20422.071,20422.071,41411.5415,65515.281,65515.281,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,196982.61153999998,196982.61153999998 +13338000.0,39863.493,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,47712.5536,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,39863.493,39863.493,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,119856.23561999999,119856.23561999999 +13341600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +13345200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +13348800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +13352400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +13356000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,36957.272,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +13359600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +13363200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +13366800.0,28799.589,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,53029.19728,22619.26976,39965.835,60900.32,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,28799.589,28799.589,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,86590.76426,86590.76426 +13370400.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70698.58404,107731.17568,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +13374000.0,34329.315,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,86403.822,40611.8848,73139.55495,111450.75040000002,22407.549,22407.549,22407.549,45437.66499999999,34329.315,34329.315,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31754.126999999997,31754.126999999997,31754.126999999997,31754.126999999997,103216.80709999999,103216.80709999999 +13377600.0,31075.695,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,77981.96384,35985.208320000005,65558.85063,99899.20096,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31075.695,31075.695,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,30564.261,30564.261,30564.261,30564.261,93434.2563,93434.2563 +13381200.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,24637.512000000002,24637.512000000002,24637.512000000002,24637.512000000002,70414.6751,70414.6751 +13384800.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +13388400.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +13392000.0,3049.0739999999996,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3049.0739999999996,3049.0739999999996,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9167.549159999999,9167.549159999999 +13395600.0,2049.705,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2049.705,2049.705,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6162.7797,6162.7797 +13399200.0,852.6210000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,852.6210000000001,852.6210000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2563.54714,2563.54714 +13402800.0,864.072,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,864.072,864.072,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2597.97648,2597.97648 +13406400.0,1283.9520000000002,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1283.9520000000002,1283.9520000000002,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3860.41568,3860.41568 +13410000.0,3559.563,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3559.563,3559.563,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10702.419419999998,10702.419419999998 +13413600.0,25682.112,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,25682.112,25682.112,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,77217.55008,77217.55008 +13417200.0,46892.913,54044.001000000004,157808.48292,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,278560.28536000004,47808.917760000004,155426.48750999998,236840.36192,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,46892.913,46892.913,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,53295.594,53295.594,53295.594,53295.594,140991.35841999998,140991.35841999998 +13420800.0,49516.659,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,47560.66880000001,67495.18314000001,102849.80288000002,20422.071,20422.071,20422.071,41411.5415,49516.659,49516.659,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,148880.08805999998,148880.08805999998 +13424400.0,38970.873,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,54354.47808,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,38970.873,38970.873,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,117172.42481999999,117172.42481999999 +13428000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +13431600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +13435200.0,18484.536,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,50679.204639999996,23133.34976,40732.447770000006,62068.49184000001,14106.342,14106.342,14106.342,25882.213000000003,18484.536,18484.536,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,55576.83824,55576.83824 +13438800.0,14638.926,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14638.926,14638.926,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,44014.370839999996,44014.370839999996 +13442400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,38193.24376,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +13446000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +13449600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +13453200.0,34831.185,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,59605.0256,22619.26976,46157.90949,70335.86207999999,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,34831.185,34831.185,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,30944.532000000003,30944.532000000003,30944.532000000003,30944.532000000003,104725.7629,104725.7629 +13456800.0,31499.379,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70662.66816,107676.44671999999,22123.911,22123.911,22123.911,44862.503,31499.379,31499.379,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94708.13286,94708.13286 +13460400.0,35995.542,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88691.1164,40611.8848,77194.78431,117630.14752,22407.549,22407.549,22407.549,45437.66499999999,35995.542,35995.542,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,37520.277,37520.277,37520.277,37520.277,108226.59627999998,108226.59627999998 +13464000.0,34515.312000000005,9652.637999999999,28185.70296,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,104267.1556,35985.208320000005,73512.24258,112018.65536,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,34515.312000000005,34515.312000000005,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,42046.569,42046.569,42046.569,42046.569,103776.03808000001,103776.03808000001 +13467600.0,26442.804,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62301.137520000004,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,26442.804,26442.804,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,26259.534,26259.534,26259.534,26259.534,79504.69735999999,79504.69735999999 +13471200.0,17045.907,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17045.907,17045.907,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51251.36038,51251.36038 +13474800.0,8664.399000000001,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8664.399000000001,8664.399000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26050.95966,26050.95966 +13478400.0,3429.0090000000005,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3429.0090000000005,3429.0090000000005,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10309.887060000001,10309.887060000001 +13482000.0,2243.9700000000003,3157.5029999999997,9219.90876,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2243.9700000000003,2243.9700000000003,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6746.8697999999995,6746.8697999999995 +13485600.0,1747.518,5027.465999999999,14680.200719999999,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,6428.71288,513.5360000000001,905.16615,1379.3008,458.073,458.073,458.073,575.162,1747.518,1747.518,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,5254.204119999999,5254.204119999999 +13489200.0,2414.076,6487.868999999999,18944.577479999996,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,12818.35616,513.5360000000001,905.16615,1379.3008,925.917,925.917,925.917,575.162,2414.076,2414.076,13899.46662,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,7258.32184,7258.32184 +13492800.0,3109.2480000000005,9409.932,27477.00144,3659.66667,3659.66667,3659.66667,3220.2905,16108.69976,7601.21408,1810.3323,2758.6016,1198.326,1198.326,1198.326,1150.3204999999998,3109.2480000000005,3109.2480000000005,19729.816729999995,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,9348.47232,9348.47232 +13496400.0,7846.758000000001,10983.039,32070.473879999998,12808.83538,12808.83538,12808.83538,11271.011499999999,25894.7936,11139.73824,6336.15822,9655.098240000001,2536.551,2536.551,2536.551,4026.1234999999997,7846.758000000001,7846.758000000001,18231.088069999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,23592.585720000003,23592.585720000003 +13500000.0,37324.386,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,63773.33144,28788.164480000003,54361.461630000005,82836.51296000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,37324.386,37324.386,180537.82812,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,24386.922000000002,24386.922000000002,24386.922000000002,24386.922000000002,112221.98723999999,112221.98723999999 +13503600.0,59728.455,102254.979,298584.53868,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,396420.82936,47808.917760000004,230540.37741,351299.62272,35489.943,35489.943,35489.943,53489.9085,59728.455,59728.455,20083.98665,71638.23465,106484.48706,185728.75650000002,52711.589940000005,67039.23687000001,88563.231,88563.231,88563.231,88563.231,179583.5547,179583.5547 +13507200.0,103422.468,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,78783.39648000001,73988.56269,112744.47648,23389.161,23389.161,23389.161,41411.5415,103422.468,103422.468,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28652.715000000004,28652.715000000004,28652.715000000004,28652.715000000004,310956.88711999997,310956.88711999997 +13510800.0,70042.29000000001,23844.063,69624.66395999999,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,109179.85343999999,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,70042.29000000001,70042.29000000001,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,210593.8186,210593.8186 +13514400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +13518000.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +13521600.0,18322.863,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,57412.543600000005,23133.34976,40732.447770000006,62068.49184000001,17713.227000000003,17713.227000000003,17713.227000000003,25882.213000000003,18322.863,18322.863,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,55090.74142,55090.74142 +13525200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +13528800.0,13551.183,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,44078.813279999995,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,13551.183,13551.183,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13128.678000000002,13128.678000000002,13128.678000000002,13128.678000000002,40743.89022,40743.89022 +13532400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +13536000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +13539600.0,37488.479999999996,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,61664.07528,22619.26976,48164.475029999994,73393.48576,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,37488.479999999996,37488.479999999996,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,37620.357,37620.357,37620.357,37620.357,112715.36319999999,112715.36319999999 +13543200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +13546800.0,35821.521,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,87338.88192,40611.8848,76698.24582,116873.51744000001,22407.549,22407.549,22407.549,45437.66499999999,35821.521,35821.521,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,37250.358,37250.358,37250.358,37250.358,107703.37314,107703.37314 +13550400.0,37697.30699999999,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,97859.67111999998,35985.208320000005,79090.73319000001,120519.21248000002,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,37697.30699999999,37697.30699999999,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,44821.137,44821.137,44821.137,44821.137,113343.23637999999,113343.23637999999 +13554000.0,28875.333000000002,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62997.26551999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,28875.333000000002,28875.333000000002,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,27187.617,27187.617,27187.617,27187.617,86818.50122,86818.50122 +13557600.0,17160.21,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17160.21,17160.21,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51595.03139999999,51595.03139999999 +13561200.0,8754.96,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8754.96,8754.96,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26323.246399999996,26323.246399999996 +13564800.0,3495.222,2306.826,6735.93192,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3495.222,3495.222,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10508.96748,10508.96748 +13568400.0,2839.104,5326.5779999999995,15553.607759999999,7319.33334,7319.33334,7319.33334,6440.577499999999,10475.93216,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2839.104,2839.104,1033.18319,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,8536.23936,8536.23936 +13572000.0,3068.277,8369.142,24437.89464,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,15942.24808,8801.7024,905.16615,1379.3008,1019.9309999999999,1019.9309999999999,1019.9309999999999,575.162,3068.277,3068.277,20575.32815,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,9225.28618,9225.28618 +13575600.0,3352.8329999999996,13814.073,40337.09316,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,26001.00568,13480.646400000001,905.16615,1379.3008,1091.22,1091.22,1091.22,575.162,3352.8329999999996,3352.8329999999996,26431.031769999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,10080.851219999999,10080.851219999999 +13579200.0,4643.286,14984.16,43753.7472,3659.66667,3659.66667,3659.66667,3220.2905,29756.277519999996,25168.094719999997,1810.3323,2758.6016,2097.7200000000003,2097.7200000000003,2097.7200000000003,1150.3204999999998,4643.286,4643.286,25457.44448,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,1922.103,1922.103,1922.103,1922.103,13960.81324,13960.81324 +13582800.0,11692.842,11689.518,34133.39256,12808.83538,12808.83538,12808.83538,11271.011499999999,27125.112240000002,21735.1392,6398.06916,9749.43872,6254.985,6254.985,6254.985,4026.1234999999997,11692.842,11692.842,19347.86425,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,3885.5850000000005,3885.5850000000005,3885.5850000000005,3885.5850000000005,35156.478279999996,35156.478279999996 +13586400.0,43845.162,14250.954000000002,41612.78568,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,75142.25216,28788.164480000003,62143.518990000004,94694.88608000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,43845.162,43845.162,256412.05719999998,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,26636.196,26636.196,26636.196,26636.196,131827.78707999998,131827.78707999998 +13590000.0,65541.84,118420.59,345788.12279999995,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,439221.66375999997,47808.917760000004,272265.01344,414880.02048,40851.78,40851.78,40851.78,53489.9085,65541.84,65541.84,20083.98665,77839.41645,115702.04617999999,201805.8945,57274.43482,72842.31811000001,95620.356,95620.356,95620.356,95620.356,197062.46559999997,197062.46559999997 +13593600.0,145192.329,9610.437,28062.476039999998,133208.74754,133208.74754,133208.74754,115930.41599999998,81019.99608,88553.23392,84136.61004,128208.16768,30220.568999999996,30220.568999999996,30220.568999999996,41411.5415,145192.329,145192.329,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,32230.625999999997,32230.625999999997,32230.625999999997,32230.625999999997,436544.93585999997,436544.93585999997 +13597200.0,103581.27600000001,35199.234,102781.76328,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,128020.60800000001,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,103581.27600000001,103581.27600000001,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,36123.600000000006,36123.600000000006,36123.600000000006,36123.600000000006,311434.36984,311434.36984 +13600800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +13604400.0,22136.061,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,22136.061,22136.061,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,66555.75674,66555.75674 +13608000.0,18965.811,6104.975999999999,17826.529919999997,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,61195.00064,23133.34976,40732.447770000006,62068.49184000001,19739.394,19739.394,19739.394,25882.213000000003,18965.811,18965.811,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,57023.871739999995,57023.871739999995 +13611600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +13615200.0,14265.923999999999,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,47550.868480000005,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,14265.923999999999,14265.923999999999,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13750.782,13750.782,13750.782,13750.782,42892.87816,42892.87816 +13618800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +13622400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +13626000.0,45735.153000000006,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,66446.59144,22619.26976,61468.850099999996,93666.8192,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,45735.153000000006,45735.153000000006,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,54317.549999999996,54317.549999999996,54317.549999999996,54317.549999999996,137510.36002,137510.36002 +13629600.0,33457.365,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,84758.40784,40097.804800000005,72979.56120000001,111206.95040000002,22123.911,22123.911,22123.911,44862.503,33457.365,33457.365,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,33466.677,33466.677,33466.677,33466.677,100595.14409999999,100595.14409999999 +13633200.0,43641.984,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,110676.1468,40611.8848,87020.42916000001,132602.55872000003,22407.549,22407.549,22407.549,45437.66499999999,43641.984,43641.984,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,48783.882,48783.882,48783.882,48783.882,131216.89856,131216.89856 +13636800.0,50054.74800000001,12845.349000000002,37508.41908,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,124249.69671999998,39445.71200000001,86420.70255,131688.6896,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,50054.74800000001,50054.74800000001,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,53294.418000000005,53294.418000000005,53294.418000000005,53294.418000000005,150497.94232,150497.94232 +13640400.0,44912.892,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,65631.03544,42800.91904,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,44912.892,44912.892,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,27670.911,27670.911,27670.911,27670.911,135038.09527999998,135038.09527999998 +13644000.0,17140.155,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17140.155,17140.155,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51534.73269999999,51534.73269999999 +13647600.0,8646.876,3148.386,9193.287119999999,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8646.876,8646.876,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25998.273839999998,25998.273839999998 +13651200.0,3904.572,4435.449,12951.511079999998,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3904.572,3904.572,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,11739.74648,11739.74648 +13654800.0,3604.146,5417.61,15819.421199999999,7319.33334,7319.33334,7319.33334,6440.577499999999,14283.88664,2056.2982400000005,3620.65977,5517.19584,1514.6280000000002,1514.6280000000002,1514.6280000000002,2300.6409999999996,3604.146,3604.146,6165.85242,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,10836.46564,10836.46564 +13658400.0,2603.469,8092.8150000000005,23631.0198,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,11877.3628,2516.3481600000005,905.16615,1379.3008,862.866,862.866,862.866,575.162,2603.469,2603.469,17498.50102,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,7827.763459999999,7827.763459999999 +13662000.0,2678.034,10972.212,32038.85904,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,20438.569199999998,7854.141439999999,905.16615,1379.3008,881.424,881.424,881.424,575.162,2678.034,2678.034,18359.981639999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,8051.955559999999,8051.955559999999 +13665600.0,3868.6050000000005,11437.533000000001,33397.59636,3659.66667,3659.66667,3659.66667,3220.2905,22283.74056,11338.091520000002,1810.3323,2758.6016,1164.807,1164.807,1164.807,1150.3204999999998,3868.6050000000005,3868.6050000000005,18657.629249999998,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,1009.2780000000001,1009.2780000000001,1009.2780000000001,1009.2780000000001,11631.6057,11631.6057 +13669200.0,5789.727000000001,11703.603,34174.52076,12808.83538,12808.83538,12808.83538,11271.011499999999,27188.01488,21954.16448,6418.31652,9780.291840000002,4806.654,4806.654,4806.654,4026.1234999999997,5789.727000000001,5789.727000000001,19403.900749999997,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,3903.6059999999998,3903.6059999999998,3903.6059999999998,3903.6059999999998,17407.77918,17407.77918 +13672800.0,108757.76699999999,7474.782,21826.36344,102960.40172000001,102960.40172000001,102960.40172000001,90168.099,83338.03808,28788.164480000003,69176.00382,105411.05344,19785.366,19785.366,19785.366,32208.977499999994,108757.76699999999,108757.76699999999,14600.360579999997,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,30242.514,30242.514,30242.514,30242.514,326998.35277999996,326998.35277999996 +13676400.0,209940.30000000002,89616.258,261679.47335999997,177683.98593000002,177683.98593000002,177683.98593000002,149743.45400000003,144286.64328,128620.41152000001,116447.24763,177443.42496,71017.077,71017.077,71017.077,53489.9085,209940.30000000002,209940.30000000002,20083.98665,53846.333549999996,80038.25382,139601.6055,39620.26518,50389.53189,60761.469,60761.469,60761.469,60761.469,631220.502,631220.502 +13680000.0,163631.289,48739.272,142318.67424,133729.63835,133729.63835,133729.63835,115930.41599999998,96712.52576,243229.90720000005,199585.50149999998,304130.288,37919.601,37919.601,37919.601,41899.935,163631.289,163631.289,20630.758589999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,107685.831,107685.831,107685.831,107685.831,491984.74225999997,491984.74225999997 +13683600.0,121169.796,27525.438000000002,80374.27896000001,157298.89846,157298.89846,157298.89846,136862.2955,138435.80424,43696.332160000005,104619.16689,159419.68288,86721.828,86721.828,86721.828,48888.6265,121169.796,121169.796,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,88604.679,88604.679,88604.679,88604.679,364317.18663999997,364317.18663999997 +13687200.0,43615.758,55567.03499999999,162255.74219999998,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,367864.45576,31358.54272,166175.41101,253219.67392000003,21381.126,21381.126,21381.126,35084.777,43615.758,43615.758,13173.368259999997,42396.74055,63019.35262,109917.4755,31195.62638,39674.97449,51079.614,51079.614,51079.614,51079.614,131138.04572,131138.04572 +13690800.0,25337.049000000003,7925.637000000001,23142.860040000003,96981.18507,96981.18507,96981.18507,85337.66500000001,69813.27552,27340.99392,57322.38687000001,87348.39904000002,15032.913,15032.913,15032.913,30483.495,25337.049000000003,25337.049000000003,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,25020.099,25020.099,25020.099,25020.099,76180.06066,76180.06066 +13694400.0,37977.615,12425.928000000002,36283.709760000005,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,89476.00072,37749.7376,61949.92293,94399.88256,14344.002,14344.002,14344.002,25882.213000000003,37977.615,37977.615,9718.056659999998,25893.2376,38488.219840000005,67130.61600000001,19052.30816,24230.955680000003,32144.607000000004,32144.607000000004,32144.607000000004,32144.607000000004,114186.0291,114186.0291 +13698000.0,26332.611,7491.665999999999,21875.664719999997,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,61543.12304,26070.64512,42278.78193,64424.81056,10767.75,10767.75,10767.75,20705.7725,26332.611,26332.611,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,22156.2,22156.2,22156.2,22156.2,79173.38374,79173.38374 +13701600.0,13228.574999999999,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33533.20992,15936.305920000003,28935.1293,44091.6256,8792.835,8792.835,8792.835,17829.9695,13228.574999999999,13228.574999999999,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12234.173999999999,12234.173999999999,12234.173999999999,12234.173999999999,39773.915499999996,39773.915499999996 +13705200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +13708800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +13712400.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +13716000.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +13719600.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71736.29505,109312.4496,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +13723200.0,32027.057999999997,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,32027.057999999997,32027.057999999997,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27959.022000000004,27959.022000000004,27959.022000000004,27959.022000000004,96294.68771999999,96294.68771999999 +13726800.0,24473.13,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,24473.13,24473.13,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,73582.5442,73582.5442 +13730400.0,17216.07,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17216.07,17216.07,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51762.9838,51762.9838 +13734000.0,8745.069,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8745.069,8745.069,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26293.50746,26293.50746 +13737600.0,3513.7200000000003,4426.880999999999,12926.49252,12808.83538,12808.83538,12808.83538,11271.011499999999,9035.064,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3513.7200000000003,3513.7200000000003,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10564.584799999999,10564.584799999999 +13741200.0,3877.17,6951.279,20297.73468,7319.33334,7319.33334,7319.33334,6440.577499999999,17785.9536,9663.126400000001,3620.65977,5517.19584,1381.218,1381.218,1381.218,2300.6409999999996,3877.17,3877.17,10702.014309999999,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,11657.3578,11657.3578 +13744800.0,3313.8509999999997,10952.207999999999,31980.44736,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,18768.4168,12488.80384,905.16615,1379.3008,1063.2269999999999,1063.2269999999999,1063.2269999999999,575.162,3313.8509999999997,3313.8509999999997,25457.074109999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,9963.64534,9963.64534 +13748400.0,4092.5190000000002,15040.880999999998,43919.37252,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,30216.89584,24359.775999999998,905.16615,1379.3008,1169.472,1169.472,1169.472,575.162,4092.5190000000002,4092.5190000000002,26601.122989999996,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,1366.4250000000002,1366.4250000000002,1366.4250000000002,1366.4250000000002,12304.84046,12304.84046 +13752000.0,5628.675,15688.557,45810.58644,3659.66667,3659.66667,3659.66667,3220.2905,32244.713200000002,31161.560320000004,2009.6663999999998,3062.3488,6583.299,6583.299,6583.299,1150.3204999999998,5628.675,5628.675,26849.208359999997,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2687.1059999999998,2687.1059999999998,2687.1059999999998,2687.1059999999998,16923.5495,16923.5495 +13755600.0,8890.254,14229.554999999998,41550.300599999995,12808.83538,12808.83538,12808.83538,11271.011499999999,38349.82,28911.02144,9855.682620000001,15018.183040000002,8871.726,8871.726,8871.726,4026.1234999999997,8890.254,8890.254,25237.598619999997,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,4336.83,4336.83,4336.83,4336.83,26730.03036,26730.03036 +13759200.0,135712.31399999998,7556.082,22063.759439999998,104368.21879,104368.21879,104368.21879,90168.099,99485.69647999998,28788.164480000003,77552.29125000001,118174.92000000001,26164.395,26164.395,26164.395,32208.977499999994,135712.31399999998,135712.31399999998,25653.90412,32340.339449999996,48071.31937999999,83845.32449999999,23796.101619999998,30264.169509999996,45216.432,45216.432,45216.432,45216.432,408041.6907599999,408041.6907599999 +13762800.0,257712.12000000002,122187.62700000001,356787.87084,182813.55752000003,182813.55752000003,182813.55752000003,149743.45400000003,164908.7812,143108.05632,124545.32222999999,189783.34816,85155.159,85155.159,85155.159,53489.9085,257712.12000000002,257712.12000000002,20083.98665,54694.273949999995,81298.64918,141799.9695,40244.18182,51183.03661,86866.752,86866.752,86866.752,86866.752,774854.4408,774854.4408 +13766400.0,194946.372,53598.87599999999,156508.71791999997,135505.71716,135505.71716,135505.71716,115930.41599999998,120506.37935999999,285722.14976000006,202587.08568,308704.13056,54363.666,54363.666,54363.666,43638.3395,194946.372,194946.372,28461.486689999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,121705.53899999999,121705.53899999999,121705.53899999999,121705.53899999999,586138.75848,586138.75848 +13770000.0,131711.085,27529.074,80384.89608,158061.48622000002,158061.48622000002,158061.48622000002,136862.2955,140270.49279999998,134091.3216,109029.07764,166139.54688,112666.02900000001,112666.02900000001,112666.02900000001,49378.854,131711.085,131711.085,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,94931.124,94931.124,94931.124,94931.124,396011.32889999996,396011.32889999996 +13773600.0,43301.781,56331.41700000001,164487.73764,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,388270.11656,31358.54272,170921.4801,260451.77919999996,22176.492,22176.492,22176.492,35084.777,43301.781,43301.781,13173.368259999997,46860.25364999999,69654.00665999998,121489.5465,34479.89034,43851.94106999999,51543.549,51543.549,51543.549,51543.549,130194.02153999999,130194.02153999999 +13777200.0,23971.176000000003,7995.540000000001,23346.9768,96981.18507,96981.18507,96981.18507,85337.66500000001,70777.61136,27245.94624,60065.69646,91528.68032,15032.913,15032.913,15032.913,30483.495,23971.176000000003,23971.176000000003,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,23503.653000000002,23503.653000000002,23503.653000000002,23503.653000000002,72073.33584,72073.33584 +13780800.0,24678.321,8573.418,25034.38056,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,71028.32256,23133.34976,50559.599579999995,77043.19936,12857.061,12857.061,12857.061,25882.213000000003,24678.321,24678.321,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,25420.344,25420.344,25420.344,25420.344,74199.48513999999,74199.48513999999 +13784400.0,17341.521,5426.007,15843.940439999998,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,48490.99168,18506.68416,35853.32667,54633.640640000005,10211.037,10211.037,10211.037,20705.7725,17341.521,17341.521,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,17138.037,17138.037,17138.037,17138.037,52140.17313999999,52140.17313999999 +13788000.0,13415.157,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,34339.97672,15936.305920000003,29089.69896,44327.16032,8792.835,8792.835,8792.835,17829.9695,13415.157,13415.157,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12293.97,12293.97,12293.97,12293.97,40334.90538,40334.90538 +13791600.0,9969.222,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,22214.83635,33851.179200000006,6807.357,6807.357,6807.357,13803.846000000001,9969.222,9969.222,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29974.12748,29974.12748 +13795200.0,11042.400000000001,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24803.19954,37795.35168000001,7658.277,7658.277,7658.277,15529.3285,11042.400000000001,11042.400000000001,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,33200.816,33200.816 +13798800.0,18184.356,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,40471.83546,61671.36832000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,18184.356,18184.356,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,54674.29704,54674.29704 +13802400.0,32725.875,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,72047.44365,109786.5808,22123.911,22123.911,22123.911,44862.503,32725.875,32725.875,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,98395.7975,98395.7975 +13806000.0,38229.843,11689.998,34134.79416,144556.86399,144556.86399,144556.86399,127201.42749999999,114924.25624,40611.8848,76389.57018,116403.15456,22407.549,22407.549,22407.549,45437.66499999999,38229.843,38229.843,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,38247.381,38247.381,38247.381,38247.381,114944.39462,114944.39462 +13809600.0,49742.997,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,75901.77335999999,49467.43232000001,72623.4936,110664.37120000001,20372.304,20372.304,20372.304,40261.221,49742.997,49742.997,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,45069.075000000004,45069.075000000004,45069.075000000004,45069.075000000004,149560.61098,149560.61098 +13813200.0,29118.197999999997,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,65074.950639999995,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,29118.197999999997,29118.197999999997,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,23512.809,23512.809,23512.809,23512.809,87548.71531999999,87548.71531999999 +13816800.0,17170.599000000002,5887.548000000001,17191.64016,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17170.599000000002,17170.599000000002,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51626.26766,51626.26766 +13820400.0,9516.096000000001,6638.997000000001,19385.87124,36596.67484,36596.67484,36596.67484,32202.8945,22969.99896,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,9516.096000000001,9516.096000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,28611.72864,28611.72864 +13824000.0,5058.543,6902.405999999999,20155.025519999996,12808.83538,12808.83538,12808.83538,11271.011499999999,19310.619919999997,3598.5164800000002,6336.15822,9655.098240000001,2446.863,2446.863,2446.863,4026.1234999999997,5058.543,5058.543,11737.24656,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,15209.352619999998,15209.352619999998 +13827600.0,4104.936,10711.818000000001,31278.508560000002,7319.33334,7319.33334,7319.33334,6440.577499999999,20132.4656,10186.672,3620.65977,5517.19584,1788.9989999999998,1788.9989999999998,1788.9989999999998,2300.6409999999996,4104.936,4104.936,21255.226459999994,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,12342.174239999998,12342.174239999998 +13831200.0,3585.4440000000004,12764.706,37272.94152,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,24093.2412,12594.78592,905.16615,1379.3008,948.2909999999999,948.2909999999999,948.2909999999999,575.162,3585.4440000000004,3585.4440000000004,21017.405629999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,586.767,586.767,586.767,586.767,10780.234960000002,10780.234960000002 +13834800.0,4144.449,12820.059000000001,37434.57228,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,24520.41384,22534.7104,963.52704,1468.23168,2762.124,2762.124,2762.124,575.162,4144.449,4144.449,21180.887909999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,1823.2350000000001,1823.2350000000001,1823.2350000000001,1823.2350000000001,12460.976659999998,12460.976659999998 +13838400.0,6192.731999999999,12755.792999999998,37246.915559999994,3659.66667,3659.66667,3659.66667,3220.2905,30449.00664,22709.628160000004,4136.98677,6303.97984,6502.974,6502.974,6502.974,1150.3204999999998,6192.731999999999,6192.731999999999,22128.13564,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2192.4269999999997,2192.4269999999997,2192.4269999999997,2192.4269999999997,18619.480879999996,18619.480879999996 +13842000.0,18147.033000000003,11294.61,32980.2612,12808.83538,12808.83538,12808.83538,11271.011499999999,75380.5884,21408.543360000003,10055.25339,15322.29088,6861.674999999999,6861.674999999999,6861.674999999999,4026.1234999999997,18147.033000000003,18147.033000000003,31985.826599999997,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,11052.666000000001,11052.666000000001,11052.666000000001,11052.666000000001,54562.07922,54562.07922 +13845600.0,59305.122,20127.402000000002,58772.01384,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,127369.71087999998,28788.164480000003,73082.56577999999,111363.90976,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,59305.122,59305.122,388820.77039,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,38950.028999999995,38950.028999999995,38950.028999999995,38950.028999999995,178310.73348,178310.73348 +13849200.0,79238.955,135114.93,394535.59559999994,170531.38421000002,170531.38421000002,170531.38421000002,149743.45400000003,439543.68136,47808.917760000004,311241.43743000005,474272.66656000004,44284.488000000005,44284.488000000005,44284.488000000005,53489.9085,79238.955,79238.955,20083.98665,84598.68825,125749.1613,219329.93250000002,62247.92370000001,79167.66135000001,105925.251,105925.251,105925.251,105925.251,238245.1247,238245.1247 +13852800.0,111170.688,9610.437,28062.476039999998,133383.72498,133383.72498,133383.72498,115930.41599999998,77076.69376,75805.8016,76054.18947,115892.09824,23168.913,23168.913,23168.913,41411.5415,111170.688,111170.688,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,29288.523,29288.523,29288.523,29288.523,334253.20191999996,334253.20191999996 +13856400.0,63780.537,17090.067,49902.995639999994,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,81367.18976000001,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,63780.537,63780.537,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,191766.81458,191766.81458 +13860000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +13863600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +13867200.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,52130.684080000006,23133.34976,40732.447770000006,62068.49184000001,14883.864000000001,14883.864000000001,14883.864000000001,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +13870800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +13874400.0,12798.465,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,41643.33472,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12798.465,12798.465,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12386.001,12386.001,12386.001,12386.001,38480.7181,38480.7181 +13878000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +13881600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +13885200.0,33525.183,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,60127.9684,22619.26976,42858.09213,65307.568960000004,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,33525.183,33525.183,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,28348.002,28348.002,28348.002,28348.002,100799.05021999999,100799.05021999999 +13888800.0,32364.069000000003,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83942.18608,40097.804800000005,71635.25145,109158.47839999999,22123.911,22123.911,22123.911,44862.503,32364.069000000003,32364.069000000003,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30869.682,30869.682,30869.682,30869.682,97307.96746,97307.96746 +13892400.0,37699.115999999995,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88830.59311999999,40611.8848,79737.0693,121504.1056,22407.549,22407.549,22407.549,45437.66499999999,37699.115999999995,37699.115999999995,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,42736.5,42736.5,42736.5,42736.5,113348.67543999999,113348.67543999999 +13896000.0,36642.393,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,90814.26008000001,35985.208320000005,75943.13811,115722.87712,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,36642.393,36642.393,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,41890.554000000004,41890.554000000004,41890.554000000004,41890.554000000004,110171.46161999999,110171.46161999999 +13899600.0,28935.06,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,64776.462400000004,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,28935.06,28935.06,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,27380.787,27380.787,27380.787,27380.787,86998.0804,86998.0804 +13903200.0,17134.878,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17134.878,17134.878,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51518.866519999996,51518.866519999996 +13906800.0,8659.716,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8659.716,8659.716,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26036.87944,26036.87944 +13910400.0,3396.369,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3396.369,3396.369,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10211.749459999999,10211.749459999999 +13914000.0,2407.947,2071.839,6049.769879999999,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2407.947,2407.947,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,7239.89398,7239.89398 +13917600.0,2165.697,4471.125,13055.685,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,5423.0532,513.5360000000001,905.16615,1379.3008,328.197,328.197,328.197,575.162,2165.697,2165.697,2607.5346699999996,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,6511.52898,6511.52898 +13921200.0,2627.556,7683.357,22435.40244,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,12531.331839999999,513.5360000000001,905.16615,1379.3008,901.539,901.539,901.539,575.162,2627.556,2627.556,13929.832149999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,7900.185039999999,7900.185039999999 +13924800.0,3179.9219999999996,11489.880000000001,33550.4496,3659.66667,3659.66667,3659.66667,3220.2905,21018.64472,7007.013760000001,1810.3323,2758.6016,1198.4969999999998,1198.4969999999998,1198.4969999999998,1150.3204999999998,3179.9219999999996,3179.9219999999996,20007.142089999998,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,9560.965479999999,9560.965479999999 +13928400.0,9200.361,12239.658,35739.80136,12808.83538,12808.83538,12808.83538,11271.011499999999,28385.41928,16203.072640000002,6336.15822,9655.098240000001,2586.774,2586.774,2586.774,4026.1234999999997,9200.361,9200.361,20451.36483,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,3004.464,3004.464,3004.464,3004.464,27662.41874,27662.41874 +13932000.0,38834.379,10272.783,29996.52636,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,64450.263360000004,28788.164480000003,58020.17214,88411.69088000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,38834.379,38834.379,211877.69577,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,25643.697,25643.697,25643.697,25643.697,116762.03285999999,116762.03285999999 +13935600.0,62827.416000000005,112048.34700000001,327181.17324,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,414784.69184,47808.917760000004,259038.33375,394725.08,36947.553,36947.553,36947.553,53489.9085,62827.416000000005,62827.416000000005,20083.98665,73932.7743,109895.13612,191677.56300000002,54399.91788,69186.47274000001,91039.011,91039.011,91039.011,91039.011,188901.09744,188901.09744 +13939200.0,144074.112,10072.713000000002,29412.32196,133614.95389,133614.95389,133614.95389,115930.41599999998,84703.63448000001,87527.14112,85657.4418,130525.6256,29653.680000000004,29653.680000000004,29653.680000000004,41411.5415,144074.112,144074.112,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,35970.659999999996,35970.659999999996,35970.659999999996,35970.659999999996,433182.83008,433182.83008 +13942800.0,115631.862,38887.905,113552.6826,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,131695.24096000002,76939.06479,117240.47968,45963.386999999995,45963.386999999995,45963.386999999995,48888.6265,115631.862,115631.862,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,36366.15,36366.15,36366.15,36366.15,347666.46507999994,347666.46507999994 +13946400.0,24690.012000000002,8274.09,24160.3428,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24690.012000000002,24690.012000000002,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74234.63608,74234.63608 +13950000.0,22518.846,7835.877,22880.760840000003,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15058.377000000002,15058.377000000002,15058.377000000002,30483.495,22518.846,22518.846,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,67706.66364,67706.66364 +13953600.0,21532.194,9246.332999999999,26999.29236,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,63265.362400000005,24305.35424,40732.447770000006,62068.49184000001,21039.918,21039.918,21039.918,25882.213000000003,21532.194,21532.194,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,64740.12996,64740.12996 +13957200.0,15113.73,5901.03,17231.0076,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,15113.73,15113.73,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,45441.9482,45441.9482 +13960800.0,15065.211,4219.92,12322.1664,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,51818.080559999995,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,15065.211,15065.211,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,14240.795999999998,14240.795999999998,14240.795999999998,14240.795999999998,45296.06774,45296.06774 +13964400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +13968000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +13971600.0,44643.831,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,65532.67232,22619.26976,58466.391690000004,89091.64448,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,44643.831,44643.831,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,50279.835,50279.835,50279.835,50279.835,134229.11854,134229.11854 +13975200.0,32476.905,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,84092.34999999999,40097.804800000005,71731.45056,109305.06752000001,22123.911,22123.911,22123.911,44862.503,32476.905,32476.905,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,31092.237,31092.237,31092.237,31092.237,97647.2277,97647.2277 +13978800.0,41072.202000000005,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,105529.13288,40611.8848,84573.72504,128874.24768,22407.549,22407.549,22407.549,45437.66499999999,41072.202000000005,41072.202000000005,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,45242.268000000004,45242.268000000004,45242.268000000004,45242.268000000004,123490.42068,123490.42068 +13982400.0,45854.208,12156.141,35495.93171999999,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,119088.75439999999,35985.208320000005,82408.30563000002,125574.56096000002,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,45854.208,45854.208,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,51249.375,51249.375,51249.375,51249.375,137868.31872,137868.31872 +13986000.0,46120.691999999995,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,65001.57687999999,41113.57248,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,46120.691999999995,46120.691999999995,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,27796.563000000002,27796.563000000002,27796.563000000002,27796.563000000002,138669.54727999997,138669.54727999997 +13989600.0,17206.593,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17206.593,17206.593,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51734.48962,51734.48962 +13993200.0,8708.073,4343.657999999999,12683.48136,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8708.073,8708.073,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26182.272820000002,26182.272820000002 +13996800.0,4562.061,5851.3679999999995,17085.99456,12808.83538,12808.83538,12808.83538,11271.011499999999,15098.71848,3598.5164800000002,6336.15822,9655.098240000001,2052.711,2052.711,2052.711,4026.1234999999997,4562.061,4562.061,3894.8878799999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,13716.596739999999,13716.596739999999 +14000400.0,4105.467000000001,8259.725999999999,24118.399919999996,7319.33334,7319.33334,7319.33334,6440.577499999999,16944.21688,9111.28192,3620.65977,5517.19584,1798.362,1798.362,1798.362,2300.6409999999996,4105.467000000001,4105.467000000001,18745.1953,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,12343.770779999999,12343.770779999999 +14004000.0,2946.3720000000003,11626.791000000001,33950.22972,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,21820.28984,9846.17152,905.16615,1379.3008,954.558,954.558,954.558,575.162,2946.3720000000003,2946.3720000000003,21286.65019,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,8858.75848,8858.75848 +14007600.0,3887.4750000000004,12990.693000000003,37932.823560000004,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,24721.666080000003,21072.78656,905.16615,1379.3008,1103.805,1103.805,1103.805,575.162,3887.4750000000004,3887.4750000000004,21576.84711,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,1452.5639999999999,1452.5639999999999,1452.5639999999999,1452.5639999999999,11688.3415,11688.3415 +14011200.0,4708.281,13001.412,37964.12304,3659.66667,3659.66667,3659.66667,3220.2905,25889.55512,23944.606080000005,2029.3389899999997,3092.32608,5629.785,5629.785,5629.785,1150.3204999999998,4708.281,4708.281,21685.73589,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2255.256,2255.256,2255.256,2255.256,14156.231539999999,14156.231539999999 +14014800.0,16255.973999999998,12131.268,35423.30256,12808.83538,12808.83538,12808.83538,11271.011499999999,53043.26584,23478.46336,8912.14695,13580.4144,7503.552000000001,7503.552000000001,7503.552000000001,4026.1234999999997,16255.973999999998,16255.973999999998,26708.462949999997,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,7469.457,7469.457,7469.457,7469.457,48876.295159999994,48876.295159999994 +14018400.0,53740.58700000001,18657.006,54478.45752,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,91883.59912,28788.164480000003,67615.95246,103033.83232,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,53740.58700000001,53740.58700000001,300157.08800999995,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,30850.122,30850.122,30850.122,30850.122,161580.03158,161580.03158 +14022000.0,72498.07500000001,129120.927,377033.10684,170744.77431000004,170744.77431000004,170744.77431000004,149743.45400000003,439941.78831999993,47808.917760000004,304649.65146,464228.04032000003,43297.788,43297.788,43297.788,53489.9085,72498.07500000001,72498.07500000001,20083.98665,82176.039,122148.0876,213048.99000000002,60465.3324,76900.5402,101431.83,101431.83,101431.83,101431.83,217977.5455,217977.5455 +14025600.0,165906.201,9610.437,28062.476039999998,134143.03639,134143.03639,134143.03639,115930.41599999998,92517.44352,87926.87232000001,97268.48649,148218.64608,35212.979999999996,35212.979999999996,35212.979999999996,41411.5415,165906.201,165906.201,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,43455.354,43455.354,43455.354,43455.354,498824.64434,498824.64434 +14029200.0,121826.69099999999,41028.047999999995,119801.90015999999,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,172542.46016,76939.06479,117240.47968,60824.80500000001,60824.80500000001,60824.80500000001,48888.6265,121826.69099999999,121826.69099999999,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,37109.871,37109.871,37109.871,37109.871,366292.25093999994,366292.25093999994 +14032800.0,24730.017,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24730.017,24730.017,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74354.91777999999,74354.91777999999 +14036400.0,24093.555,9475.209,27667.61028,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,28714.19136,47973.77214,73102.89088,15381.105,15381.105,15381.105,30483.495,24093.555,24093.555,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,72441.28869999999,72441.28869999999 +14040000.0,35003.178,12681.186,37029.06312,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,66062.38952,40461.07712,40732.447770000006,62068.49184000001,23352.213,23352.213,23352.213,25882.213000000003,35003.178,35003.178,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,18072.606,18072.606,18072.606,18072.606,105242.88852,105242.88852 +14043600.0,22177.863,8190.474,23916.18408,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,39278.59024,26094.298240000004,32585.957250000003,49654.79200000001,10607.565,10607.565,10607.565,20705.7725,22177.863,22177.863,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14661.357,14661.357,14661.357,14661.357,66681.44142,66681.44142 +14047200.0,19548.678,5955.903,17391.23676,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,56631.192480000005,17508.552960000005,31476.13917,47963.640640000005,8792.835,8792.835,8792.835,17829.9695,19548.678,19548.678,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,15101.957999999999,15101.957999999999,15101.957999999999,15101.957999999999,58776.358519999994,58776.358519999994 +14050800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,9709.931999999999,9709.931999999999,9709.931999999999,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +14054400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +14058000.0,68356.78499999999,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,97632.78712,22619.26976,79698.97509,121446.05728000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,68356.78499999999,68356.78499999999,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,76155.285,76155.285,76155.285,76155.285,205526.06689999998,205526.06689999998 +14061600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +14065200.0,38747.238000000005,11716.773,34212.977159999995,144556.86399,144556.86399,144556.86399,127201.42749999999,109186.78327999999,40611.8848,79325.12826,120876.38592,22407.549,22407.549,22407.549,45437.66499999999,38747.238000000005,38747.238000000005,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,40059.543000000005,40059.543000000005,40059.543000000005,40059.543000000005,116500.02892,116500.02892 +14068800.0,66808.332,17929.593,52354.41156,128206.67277,128206.67277,128206.67277,112710.12550000001,143459.61751999997,47448.53952000001,100740.79764,153509.78688,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,66808.332,66808.332,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,55771.40699999999,55771.40699999999,55771.40699999999,55771.40699999999,200870.38488,200870.38488 +14072400.0,67446.582,7741.74,22605.8808,108721.14891,108721.14891,108721.14891,93388.3895,66673.22432,75026.09728,52499.598060000004,79999.38752,17209.284,17209.284,17209.284,33359.297999999995,67446.582,67446.582,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,28512.524999999998,28512.524999999998,28512.524999999998,28512.524999999998,202789.38987999997,202789.38987999997 +14076000.0,17316.342,7809.782999999999,22804.56636,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17316.342,17316.342,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,52064.46828,52064.46828 +14079600.0,10337.64,9580.719,27975.69948,36596.67484,36596.67484,36596.67484,32202.8945,36636.84872,21892.69248,18103.308510000003,27585.993920000004,5870.352000000001,5870.352000000001,5870.352000000001,11503.205,10337.64,10337.64,13997.47518,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,31081.8376,31081.8376 +14083200.0,5859.537,12032.880000000001,35136.0096,12808.83538,12808.83538,12808.83538,11271.011499999999,26867.778479999997,16511.45536,6336.15822,9655.098240000001,2800.4759999999997,2800.4759999999997,2800.4759999999997,4026.1234999999997,5859.537,5859.537,28186.878979999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,17617.67458,17617.67458 +14086800.0,5522.625,15328.101,44758.05492,7319.33334,7319.33334,7319.33334,6440.577499999999,33483.59912,30914.725760000005,3620.65977,5517.19584,2859.447,2859.447,2859.447,2300.6409999999996,5522.625,5522.625,27258.3662,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,3104.1810000000005,3104.1810000000005,3104.1810000000005,3104.1810000000005,16604.6925,16604.6925 +14090400.0,6324.129000000001,15729.978,45931.53576,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,35115.172479999994,31105.98528,2712.0353400000004,4132.62528,7763.109,7763.109,7763.109,575.162,6324.129000000001,6324.129000000001,27596.427429999996,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2340.4889999999996,2340.4889999999996,2340.4889999999996,2340.4889999999996,19014.54786,19014.54786 +14094000.0,7644.693000000001,15749.741999999998,45989.24664,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,37806.27952,31109.292800000003,9887.49783,15066.66336,8808.957,8808.957,8808.957,575.162,7644.693000000001,7644.693000000001,28147.321539999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2343.66,2343.66,2343.66,2343.66,22985.04362,22985.04362 +14097600.0,7753.343999999999,15278.483999999999,44613.173279999995,4158.6527399999995,4158.6527399999995,4158.6527399999995,3220.2905,37309.21376,30082.85184,17470.11483,26621.12736,12718.728,12718.728,12718.728,1150.3204999999998,7753.343999999999,7753.343999999999,30826.828239999995,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2642.013,2642.013,2642.013,2642.013,23311.72096,23311.72096 +14101200.0,24083.013,13928.963999999998,40672.57487999999,14152.6924,14152.6924,14152.6924,11271.011499999999,133055.24288,47695.18912,19421.0919,29594.0448,13283.325,13283.325,13283.325,4026.1234999999997,24083.013,24083.013,72160.3415,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,19898.337,19898.337,19898.337,19898.337,72409.59242,72409.59242 +14104800.0,91552.437,31402.743000000002,91696.00956,103368.08955,103368.08955,103368.08955,90168.099,263137.51112,31780.371200000005,88217.40942,134426.52864,16521.351000000002,16521.351000000002,16521.351000000002,32208.977499999994,91552.437,91552.437,455027.69311999995,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,68897.397,68897.397,68897.397,68897.397,275267.66057999997,275267.66057999997 +14108400.0,97835.136,163997.238,478871.93496,172640.61694,172640.61694,172640.61694,149743.45400000003,579552.03992,47808.917760000004,408160.58450999996,621958.98592,65386.115999999995,65386.115999999995,65386.115999999995,53489.9085,97835.136,97835.136,47510.88562999999,96312.969,143161.49959999998,249700.29,70867.3204,90129.9142,134893.35,134893.35,134893.35,134893.35,294157.64223999996,294157.64223999996 +14112000.0,270320.874,14217.726,41515.759920000004,139882.73354,139882.73354,139882.73354,115930.41599999998,140171.17192,103326.63104000002,135848.02455,207006.5136,63614.319,63614.319,63614.319,41411.5415,270320.874,270320.874,25530.628629999996,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,105862.58699999998,105862.58699999998,105862.58699999998,105862.58699999998,812764.76116,812764.76116 +14115600.0,174667.899,58809.899999999994,171724.908,157295.91515000002,157295.91515000002,157295.91515000002,136862.2955,118496.84119999998,559294.57088,76939.06479,117240.47968,150415.464,150415.464,150415.464,48888.6265,174667.899,174667.899,39398.267479999995,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,44700.303,44700.303,44700.303,44700.303,525168.14966,525168.14966 +14119200.0,25429.122,9756.992999999999,28490.419559999995,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31562.401280000005,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,25429.122,25429.122,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,76456.89348,76456.89348 +14122800.0,25611.438000000002,9342.921,27281.32932,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,28989.303040000003,47973.77214,73102.89088,15913.605,15913.605,15913.605,30483.495,25611.438000000002,25611.438000000002,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,77005.05692,77005.05692 +14126400.0,30655.647000000004,10406.064,30385.70688,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,70145.7876,34699.77984,40732.447770000006,62068.49184000001,26329.464000000004,26329.464000000004,26329.464000000004,25882.213000000003,30655.647000000004,30655.647000000004,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,18063.156,18063.156,18063.156,18063.156,92171.31198,92171.31198 +14130000.0,20519.937,7773.219000000001,22697.79948,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,39089.15816,24353.704960000006,32585.957250000003,49654.79200000001,10506.09,10506.09,10506.09,20705.7725,20519.937,20519.937,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14539.203,14539.203,14539.203,14539.203,61696.61058,61696.61058 +14133600.0,25609.029000000002,5814.414000000001,16978.08888,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,58622.731759999995,16331.793920000002,34723.88913,52912.59296,10278.054,10278.054,10278.054,17829.9695,25609.029000000002,25609.029000000002,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,15218.721000000001,15218.721000000001,15218.721000000001,15218.721000000001,76997.81386000001,76997.81386000001 +14137200.0,9727.734,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,10050.24,10050.24,10050.24,13803.846000000001,9727.734,9727.734,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29248.053559999997,29248.053559999997 +14140800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +14144400.0,76846.896,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,83118.67016,22619.26976,81267.73977,123836.55584,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,76846.896,76846.896,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,80880.036,80880.036,80880.036,80880.036,231053.00063999995,231053.00063999995 +14148000.0,32798.538,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,88076.72503999999,40097.804800000005,72022.76718,109748.97856,22123.911,22123.911,22123.911,44862.503,32798.538,32798.538,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,31980.227999999996,31980.227999999996,31980.227999999996,31980.227999999996,98614.27092,98614.27092 +14151600.0,64723.545,14266.250999999998,41657.452919999996,145186.25693,145186.25693,145186.25693,127201.42749999999,141278.5644,43508.61952,102008.66298000001,155441.77216000002,22422.012,22422.012,22422.012,45437.66499999999,64723.545,64723.545,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,56683.239,56683.239,56683.239,56683.239,194602.12529999999,194602.12529999999 +14155200.0,100810.41,24904.254,72720.42168,131361.51292,131361.51292,131361.51292,112710.12550000001,169117.39471999998,95904.96960000001,121706.27721,185457.18432000003,24351.03,24351.03,24351.03,40261.221,100810.41,100810.41,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,59627.888999999996,59627.888999999996,59627.888999999996,59627.888999999996,303103.2994,303103.2994 +14158800.0,77446.104,29740.631999999998,86842.64544,109654.47317000001,109654.47317000001,109654.47317000001,93388.3895,77663.19912,81532.45696000001,54220.2759,82621.3728,23297.526,23297.526,23297.526,33359.297999999995,77446.104,77446.104,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,29161.626000000004,29161.626000000004,29161.626000000004,29161.626000000004,232854.61936,232854.61936 +14162400.0,17890.578,10122.141,29556.651719999998,75023.18098,75023.18098,75023.18098,66015.9325,50113.52472,23391.53216,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17890.578,17890.578,9027.80242,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,53791.004519999995,53791.004519999995 +14166000.0,10956.354000000001,10402.389000000001,30374.97588,36596.67484,36596.67484,36596.67484,32202.8945,35843.44384,21577.08544,18103.308510000003,27585.993920000004,6190.011,6190.011,6190.011,11503.205,10956.354000000001,10956.354000000001,23229.05806,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,32942.104360000005,32942.104360000005 +14169600.0,6049.014,13523.820000000002,39489.5544,12808.83538,12808.83538,12808.83538,11271.011499999999,31060.8576,20168.702080000003,6336.15822,9655.098240000001,2767.464,2767.464,2767.464,4026.1234999999997,6049.014,6049.014,26848.6504,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,3038.1270000000004,3038.1270000000004,3038.1270000000004,3038.1270000000004,18187.368759999998,18187.368759999998 +14173200.0,6197.160000000001,16426.097999999998,47964.20616,7319.33334,7319.33334,7319.33334,6440.577499999999,35825.392400000004,33270.99648,3620.65977,5517.19584,4604.232,4604.232,4604.232,2300.6409999999996,6197.160000000001,6197.160000000001,28098.793449999997,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,3572.562,3572.562,3572.562,3572.562,18632.794400000002,18632.794400000002 +14176800.0,8198.256000000001,16852.335000000003,49208.8182,2057.46233,2057.46233,2057.46233,1610.1435,40772.79512,34108.68032,8364.44427,12745.81984,9519.161999999998,9519.161999999998,9519.161999999998,575.162,8198.256000000001,8198.256000000001,30303.346319999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2533.2059999999997,2533.2059999999997,2533.2059999999997,2533.2059999999997,24649.42304,24649.42304 +14180400.0,8379.429,17037.735,49750.1862,2543.5465,2543.5465,2543.5465,1610.1435,41257.12384,42210.42880000001,19233.41742,29308.064640000004,13557.953999999998,13557.953999999998,13557.953999999998,575.162,8379.429,8379.429,39555.97776,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2564.7780000000002,2564.7780000000002,2564.7780000000002,2564.7780000000002,25194.149859999998,25194.149859999998 +14184000.0,12277.98,17805.500999999997,51992.06292,4332.63303,4332.63303,4332.63303,3220.2905,40300.870559999996,65102.471040000004,19743.14181,30084.78752,16784.540999999997,16784.540999999997,16784.540999999997,1150.3204999999998,12277.98,12277.98,62234.68523999999,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,3111.96,3111.96,3111.96,3111.96,36915.7932,36915.7932 +14187600.0,33874.409999999996,28000.788,81762.30096,15303.46455,15303.46455,15303.46455,11271.011499999999,161624.94336,92837.04896,22625.55057,34477.02944,19234.023,19234.023,19234.023,4026.1234999999997,33874.409999999996,33874.409999999996,85207.76471999999,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,25152.606000000003,25152.606000000003,25152.606000000003,25152.606000000003,101849.05939999998,101849.05939999998 +14191200.0,103509.999,37531.809,109592.88228,105560.67588000001,105560.67588000001,105560.67588000001,90168.099,318102.5224,38552.32256000001,96781.82535,147477.06720000002,19976.574,19976.574,19976.574,32208.977499999994,103509.999,103509.999,511138.2430699999,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,85248.417,85248.417,85248.417,85248.417,311220.06366,311220.06366 +14194800.0,111027.285,173835.729,507600.32868000004,173195.45562,173195.45562,173195.45562,149743.45400000003,640398.7721599999,47808.917760000004,478538.44688999996,729201.44288,78812.328,78812.328,78812.328,53489.9085,111027.285,111027.285,62567.017759999995,102230.41995,151957.31558,265041.8295,75221.39542,95667.47941,157670.54099999997,157670.54099999997,157670.54099999997,157670.54099999997,333822.0369,333822.0369 +14198400.0,328626.678,23560.458,68796.53736,142123.41913,142123.41913,142123.41913,115930.41599999998,179899.66408,118525.75168000002,161180.25882000002,245608.01344000004,82150.566,82150.566,82150.566,41411.5415,328626.678,328626.678,44057.12765999999,41865.57495,62229.817579999995,108540.3795,30804.79342,39177.908410000004,164683.45799999998,164683.45799999998,164683.45799999998,164683.45799999998,988070.87852,988070.87852 +14202000.0,194528.427,65841.39300000001,192256.86756,158699.99189,158699.99189,158699.99189,136862.2955,138016.35207999998,674818.0844800001,76939.06479,117240.47968,174861.756,174861.756,174861.756,48888.6265,194528.427,194528.427,50717.91946,57662.53514999999,85710.73125999999,149495.46149999998,42428.23574,53960.74277,47007.822,47007.822,47007.822,47007.822,584882.13718,584882.13718 +14205600.0,24702.888,8371.17,24443.8164,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24702.888,24702.888,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74273.34992,74273.34992 +14209200.0,22808.208,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15739.788,15739.788,15739.788,30483.495,22808.208,22808.208,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,68576.67872,68576.67872 +14212800.0,20289.693,6181.434,18049.78728,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,65271.86376,23133.34976,40732.447770000006,62068.49184000001,23164.59,23164.59,23164.59,25882.213000000003,20289.693,20289.693,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,61004.34361999999,61004.34361999999 +14216400.0,14638.838999999998,5099.112,14889.40704,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14638.838999999998,14638.838999999998,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,44014.10925999999,44014.10925999999 +14220000.0,14073.494999999999,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,46116.12648,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,14073.494999999999,14073.494999999999,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13337.052,13337.052,13337.052,13337.052,42314.3083,42314.3083 +14223600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +14227200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +14230800.0,36674.169,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,61058.73008,22619.26976,42948.71742,65445.66464000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,36674.169,36674.169,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,33665.826,33665.826,33665.826,33665.826,110267.00146,110267.00146 +14234400.0,31968.357000000004,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,71094.03063000001,108333.76096000001,22123.911,22123.911,22123.911,44862.503,31968.357000000004,31968.357000000004,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,96118.19338,96118.19338 +14238000.0,37452.762,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88840.8248,40611.8848,78695.07408,119916.30336,22407.549,22407.549,22407.549,45437.66499999999,37452.762,37452.762,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,42195.414,42195.414,42195.414,42195.414,112607.97108,112607.97108 +14241600.0,38429.340000000004,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,80015.57448,35985.208320000005,78791.34081000001,120062.99552000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,38429.340000000004,38429.340000000004,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,43911.492,43911.492,43911.492,43911.492,115544.2156,115544.2156 +14245200.0,28056.947999999997,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,28056.947999999997,28056.947999999997,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,26831.997,26831.997,26831.997,26831.997,84357.89031999999,84357.89031999999 +14248800.0,17126.148,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17126.148,17126.148,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51492.61832,51492.61832 +14252400.0,8652.294,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8652.294,8652.294,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26014.56396,26014.56396 +14256000.0,3402.7019999999998,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3402.7019999999998,3402.7019999999998,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10230.790679999998,10230.790679999998 +14259600.0,2203.308,791.223,2310.3711599999997,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2203.308,2203.308,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6624.61272,6624.61272 +14263200.0,2270.964,4393.397999999999,12828.72216,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,2489.154,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,2270.964,2270.964,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,6828.031759999999,6828.031759999999 +14266800.0,2715.087,6467.991000000001,18886.533720000003,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,12430.93056,513.5360000000001,905.16615,1379.3008,746.436,746.436,746.436,575.162,2715.087,2715.087,11166.01096,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,8163.36158,8163.36158 +14270400.0,3188.607,10769.595,31447.217399999998,3659.66667,3659.66667,3659.66667,3220.2905,18295.35344,5224.032,1810.3323,2758.6016,1190.88,1190.88,1190.88,1150.3204999999998,3188.607,3188.607,19616.80578,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,9587.078379999999,9587.078379999999 +14274000.0,5362.566,11595.444,33858.69648,12808.83538,12808.83538,12808.83538,11271.011499999999,26913.867759999997,13145.45536,6336.15822,9655.098240000001,2553.6,2553.6,2553.6,4026.1234999999997,5362.566,5362.566,19062.501379999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2772.906,2772.906,2772.906,2772.906,16123.448439999998,16123.448439999998 +14277600.0,99960.933,7474.782,21826.36344,103554.48741000002,103554.48741000002,103554.48741000002,90168.099,84048.52664000001,28788.164480000003,62960.31062999999,95939.52096,17390.979,17390.979,17390.979,32208.977499999994,99960.933,99960.933,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,28890.363000000005,28890.363000000005,28890.363000000005,28890.363000000005,300549.20522,300549.20522 +14281200.0,193700.00699999998,84638.976,247145.80991999997,180333.32394000003,180333.32394000003,180333.32394000003,149743.45400000003,134127.64208,123649.40480000002,109759.20459,167252.12128,64923.09300000001,64923.09300000001,64923.09300000001,53489.9085,193700.00699999998,193700.00699999998,20083.98665,53522.58869999999,79557.03308,138762.267,39382.05292,50086.57066,54267.70499999999,54267.70499999999,54267.70499999999,54267.70499999999,582391.3543799999,582391.3543799999 +14284800.0,142148.073,38234.616,111645.07872,133632.54035999998,133632.54035999998,133632.54035999998,115930.41599999998,90382.14095999999,213559.44,196355.30375999998,299208.08191999997,29507.864999999998,29507.864999999998,29507.864999999998,42093.436,142148.073,142148.073,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,103030.839,103030.839,103030.839,103030.839,427391.87282,427391.87282 +14288400.0,110482.806,24096.012000000002,70360.35504000001,157396.19181000002,157396.19181000002,157396.19181000002,136862.2955,132118.32584,43696.332160000005,101540.17713,154727.88895999998,50691.651,50691.651,50691.651,48888.6265,110482.806,110482.806,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,86534.313,86534.313,86534.313,86534.313,332184.97004,332184.97004 +14292000.0,40769.58,43689.096,127572.16032,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,331997.14384,31358.54272,141822.81183000002,216110.95136000004,18469.731,18469.731,18469.731,35084.777,40769.58,40769.58,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,40476.867,40476.867,40476.867,40476.867,122580.5372,122580.5372 +14295600.0,25110.267,8214.96,23987.683199999996,96981.18507,96981.18507,96981.18507,85337.66500000001,71084.95304,27245.94624,57626.54646,87811.88032,15032.913,15032.913,15032.913,30483.495,25110.267,25110.267,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,25386.887999999995,25386.887999999995,25386.887999999995,25386.887999999995,75498.20277999999,75498.20277999999 +14299200.0,31049.240999999998,10779.897,31477.29924,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,81753.35991999999,27355.290240000002,57978.51339,88348.21088000001,13476.948,13476.948,13476.948,25882.213000000003,31049.240999999998,31049.240999999998,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,29269.455,29269.455,29269.455,29269.455,93354.71793999999,93354.71793999999 +14302800.0,19865.760000000002,5788.662,16902.89304,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,51501.59344,20019.26528,37844.07396,57667.16032,10262.807999999999,10262.807999999999,10262.807999999999,20705.7725,19865.760000000002,19865.760000000002,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,18867.309,18867.309,18867.309,18867.309,59729.7184,59729.7184 +14306400.0,13852.854000000001,4140.426,12090.04392,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,36888.81552,15936.305920000003,29351.098560000002,44725.48352,8792.835,8792.835,8792.835,17829.9695,13852.854000000001,13852.854000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13059.915,13059.915,13059.915,13059.915,41650.91436,41650.91436 +14310000.0,10158.855000000001,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,22352.602440000002,34061.10848,6807.357,6807.357,6807.357,13803.846000000001,10158.855000000001,10158.855000000001,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,30544.2907,30544.2907 +14313600.0,11064.065999999999,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24760.618260000003,37730.46592,7658.277,7658.277,7658.277,15529.3285,11064.065999999999,11064.065999999999,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,33265.958439999995,33265.958439999995 +14317200.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +14320800.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70844.25684,107953.15328000001,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +14324400.0,35823.156,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,91412.68488,40611.8848,75272.11587,114700.36704,22407.549,22407.549,22407.549,45437.66499999999,35823.156,35823.156,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,32414.625,32414.625,32414.625,32414.625,107708.28904,107708.28904 +14328000.0,42155.076,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,37893.31008,69545.50365,105974.10080000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,42155.076,42155.076,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,43374.621,43374.621,43374.621,43374.621,126746.26183999999,126746.26183999999 +14331600.0,30686.933999999997,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,65094.68399999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,30686.933999999997,30686.933999999997,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,23517.111,23517.111,23517.111,23517.111,92265.38156,92265.38156 +14335200.0,17259.932999999997,6088.677,17778.93684,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17259.932999999997,17259.932999999997,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51894.86521999999,51894.86521999999 +14338800.0,9519.27,7361.397,21495.27924,36596.67484,36596.67484,36596.67484,32202.8945,26706.65872,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,9519.27,9519.27,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,28621.2718,28621.2718 +14342400.0,5433.389999999999,8395.443,24514.693559999996,12808.83538,12808.83538,12808.83538,11271.011499999999,21472.733920000002,12472.146560000001,6336.15822,9655.098240000001,2601.741,2601.741,2601.741,4026.1234999999997,5433.389999999999,5433.389999999999,19392.116249999995,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,16336.392599999997,16336.392599999997 +14346000.0,4835.637000000001,13841.055,40415.880600000004,7319.33334,7319.33334,7319.33334,6440.577499999999,28741.127839999997,16568.792960000002,3620.65977,5517.19584,1924.209,1924.209,1924.209,2300.6409999999996,4835.637000000001,4835.637000000001,26446.18327,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1645.188,1645.188,1645.188,1645.188,14539.148580000001,14539.148580000001 +14349600.0,4522.701,15437.835,45078.4782,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,29783.28752,30521.631360000003,905.16615,1379.3008,2638.164,2638.164,2638.164,575.162,4522.701,4522.701,26131.04169,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2302.9080000000004,2302.9080000000004,2302.9080000000004,2302.9080000000004,13598.25434,13598.25434 +14353200.0,6438.273000000001,14474.709,42266.15028,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,33591.779279999995,27636.3424,3363.56853,5125.43776,7576.722,7576.722,7576.722,575.162,6438.273000000001,6438.273000000001,25437.583989999996,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2135.538,2135.538,2135.538,2135.538,19357.740820000003,19357.740820000003 +14356800.0,6680.655000000001,13085.147999999997,38208.632159999994,3659.66667,3659.66667,3659.66667,3220.2905,31603.02568,24086.862080000003,8278.88565,12615.4448,7150.38,7150.38,7150.38,1150.3204999999998,6680.655000000001,6680.655000000001,22861.280649999997,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2280.1349999999998,2280.1349999999998,2280.1349999999998,2280.1349999999998,20086.5027,20086.5027 +14360400.0,6907.287,10104.777,29505.94884,12885.14381,12885.14381,12885.14381,11271.011499999999,27922.856239999997,18760.2752,13281.87693,20239.050560000003,6581.9580000000005,6581.9580000000005,6581.9580000000005,4026.1234999999997,6907.287,6907.287,17354.64835,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,3710.1719999999996,3710.1719999999996,3710.1719999999996,3710.1719999999996,20767.90958,20767.90958 +14364000.0,117477.909,7474.782,21826.36344,104024.49508000001,104024.49508000001,104024.49508000001,90168.099,88771.03095999999,28788.164480000003,71946.85407,109633.30144,22418.457000000002,22418.457000000002,22418.457000000002,32208.977499999994,117477.909,117477.909,20317.141779999998,32133.611249999998,47764.034499999994,83309.36249999999,23643.9905,30070.71275,36991.452,36991.452,36991.452,36991.452,353216.91306,353216.91306 +14367600.0,195493.04099999997,70899.84900000002,207027.55908000004,178808.72228999998,178808.72228999998,178808.72228999998,149743.45400000003,137294.5748,111220.51712,109704.81879,167169.24768,59375.886,59375.886,59375.886,53489.9085,195493.04099999997,195493.04099999997,20083.98665,53673.98174999999,79782.0667,139154.7675,39493.4483,50228.24465,55290.725999999995,55290.725999999995,55290.725999999995,55290.725999999995,587782.4099399999,587782.4099399999 +14371200.0,123070.977,30910.884000000002,90259.78128000001,133355.52395,133355.52395,133355.52395,115930.41599999998,83038.8432,171955.42976000003,150713.94828,229659.34976,24029.562,24029.562,24029.562,41411.5415,123070.977,123070.977,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,84578.75700000001,84578.75700000001,84578.75700000001,84578.75700000001,370033.40417999995,370033.40417999995 +14374800.0,88467.906,18758.574,54775.03608,156612.40342000005,156612.40342000005,156612.40342000005,136862.2955,121854.56087999999,43696.332160000005,87730.82073,133685.06016,34269.915,34269.915,34269.915,48888.6265,88467.906,88467.906,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,70337.667,70337.667,70337.667,70337.667,265993.50403999997,265993.50403999997 +14378400.0,34181.391,33946.236000000004,99123.00912,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,283911.08608000004,31358.54272,125199.1062,190779.59040000002,17383.941,17383.941,17383.941,35084.777,34181.391,34181.391,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,34693.281,34693.281,34693.281,34693.281,102772.04894,102772.04894 +14382000.0,22407.690000000002,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,59420.72688,27245.94624,53027.343179999996,80803.57056,15032.913,15032.913,15032.913,30483.495,22407.690000000002,22407.690000000002,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,21244.953,21244.953,21244.953,21244.953,67372.4546,67372.4546 +14385600.0,21528.954,8063.951999999999,23546.73984,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,70268.52104,23133.34976,46196.23554,70394.26368,12763.794,12763.794,12763.794,25882.213000000003,21528.954,21528.954,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,22503.783000000003,22503.783000000003,22503.783000000003,22503.783000000003,64730.38836,64730.38836 +14389200.0,16501.602,5173.9619999999995,15107.96904,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,46178.018800000005,18506.68416,34809.17727,53042.55584000001,10211.037,10211.037,10211.037,20705.7725,16501.602,16501.602,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,16353.039,16353.039,16353.039,16353.039,49614.816679999996,49614.816679999996 +14392800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +14396400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21725.29653,33105.21376,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +14400000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +14403600.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +14407200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +14410800.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71820.00378,109440.00576000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +14414400.0,30713.628,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,30713.628,30713.628,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,92345.64152,92345.64152 +14418000.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +14421600.0,16994.781000000003,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16994.781000000003,16994.781000000003,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51097.641540000004,51097.641540000004 +14425200.0,8729.433,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8729.433,8729.433,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26246.49522,26246.49522 +14428800.0,3507.5730000000003,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3507.5730000000003,3507.5730000000003,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10546.10282,10546.10282 +14432400.0,2317.938,613.8720000000001,1792.5062400000002,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2317.938,2317.938,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6969.266919999999,6969.266919999999 +14436000.0,1940.7240000000002,4916.397,14355.87924,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,5456.44632,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1940.7240000000002,1940.7240000000002,1296.3767699999999,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,5835.11016,5835.11016 +14439600.0,2934.762,8453.991,24685.65372,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,15566.852879999999,7279.927680000001,905.16615,1379.3008,829.029,829.029,829.029,575.162,2934.762,2934.762,17908.94794,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,8823.85108,8823.85108 +14443200.0,3584.9700000000003,13000.673999999999,37961.96808,3659.66667,3659.66667,3659.66667,3220.2905,25250.40216,13787.146880000002,1810.3323,2758.6016,1313.445,1313.445,1313.445,1150.3204999999998,3584.9700000000003,3584.9700000000003,24419.34547,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,10778.809799999999,10778.809799999999 +14446800.0,11015.139000000001,10450.935,30516.730199999998,12808.83538,12808.83538,12808.83538,11271.011499999999,24893.42048,19910.9984,6336.15822,9655.098240000001,2498.613,2498.613,2498.613,4026.1234999999997,11015.139000000001,11015.139000000001,17281.089019999996,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,3634.443,3634.443,3634.443,3634.443,33118.85126,33118.85126 +14450400.0,39811.398,8606.412,25130.72304,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,64528.77632,28788.164480000003,56397.89589000001,85939.65088,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,39811.398,39811.398,217258.55137999996,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,25138.274999999998,25138.274999999998,25138.274999999998,25138.274999999998,119699.60332,119699.60332 +14454000.0,63043.668000000005,104230.39500000002,304352.75340000005,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,381500.57544,47808.917760000004,219662.88414,334724.39488000004,31851.524999999998,31851.524999999998,31851.524999999998,53489.9085,63043.668000000005,63043.668000000005,20083.98665,69800.7537,103753.21908,180964.91700000002,51359.566920000005,65319.71766,84837.09599999999,84837.09599999999,84837.09599999999,84837.09599999999,189551.29512,189551.29512 +14457600.0,71308.908,9610.437,28062.476039999998,131773.14865,131773.14865,131773.14865,115930.41599999998,77076.69376,61351.75424000001,70404.39357,107282.88544,20422.071,20422.071,20422.071,41411.5415,71308.908,71308.908,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,214402.11672,214402.11672 +14461200.0,41411.943,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,48975.86304,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,41411.943,41411.943,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,124511.90861999999,124511.90861999999 +14464800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +14468400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +14472000.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +14475600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +14479200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33781.8888,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +14482800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +14486400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +14490000.0,18399.288,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,18399.288,18399.288,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,55320.52592,55320.52592 +14493600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +14497200.0,33617.88,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,33617.88,33617.88,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,101077.75919999999,101077.75919999999 +14500800.0,31630.188000000002,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31630.188000000002,31630.188000000002,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,95101.43192,95101.43192 +14504400.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +14508000.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +14511600.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +14515200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +14518800.0,1896.0120000000002,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1896.0120000000002,1896.0120000000002,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,5700.67608,5700.67608 +14522400.0,975.9300000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,975.9300000000001,975.9300000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2934.2961999999998,2934.2961999999998 +14526000.0,1000.4250000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1000.4250000000001,1000.4250000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,3007.9445,3007.9445 +14529600.0,1361.379,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1361.379,1361.379,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,4093.2128599999996,4093.2128599999996 +14533200.0,3630.2039999999997,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3630.2039999999997,3630.2039999999997,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10914.81336,10914.81336 +14536800.0,25259.442000000003,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,25259.442000000003,25259.442000000003,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,75946.72228,75946.72228 +14540400.0,43146.573000000004,47633.4,139089.52800000002,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,252312.94264,47808.917760000004,132950.95191,202591.92672000002,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,43146.573000000004,43146.573000000004,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,46460.409,46460.409,46460.409,46460.409,129727.36282,129727.36282 +14544000.0,43414.143,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,43574.2912,68630.18001000001,104579.32192000002,20422.071,20422.071,20422.071,41411.5415,43414.143,43414.143,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,130531.85661999999,130531.85661999999 +14547600.0,36635.391,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,44993.467520000006,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,36635.391,36635.391,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,110150.40894,110150.40894 +14551200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +14554800.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +14558400.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +14562000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +14565600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +14569200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +14572800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +14576400.0,24264.693,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,24264.693,24264.693,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,72955.84362,72955.84362 +14580000.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +14583600.0,34508.586,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,85621.554,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,34508.586,34508.586,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,103755.81524000001,103755.81524000001 +14587200.0,31474.788000000004,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,78565.89376,35985.208320000005,64956.52064999999,98981.3648,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31474.788000000004,31474.788000000004,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,94634.19592000001,94634.19592000001 +14590800.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +14594400.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +14598000.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +14601600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +14605200.0,1798.377,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1798.377,1798.377,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,5407.120179999999,5407.120179999999 +14608800.0,872.565,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,872.565,872.565,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2623.5121,2623.5121 +14612400.0,881.5889999999999,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,881.5889999999999,881.5889999999999,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2650.64426,2650.64426 +14616000.0,1273.1490000000001,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1273.1490000000001,1273.1490000000001,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3827.9346600000003,3827.9346600000003 +14619600.0,3168.4980000000005,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3168.4980000000005,3168.4980000000005,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9526.617320000001,9526.617320000001 +14623200.0,24280.368000000002,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,24280.368000000002,24280.368000000002,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,73002.97312000001,73002.97312000001 +14626800.0,42321.072,33419.793000000005,97585.79556,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,213640.18232,47808.917760000004,121292.96444999998,184827.3744,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,42321.072,42321.072,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,41604.447,41604.447,41604.447,41604.447,127245.35647999999,127245.35647999999 +14630400.0,34570.851,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,66536.46195,101388.8944,20422.071,20422.071,20422.071,41411.5415,34570.851,34570.851,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,103943.02534,103943.02534 +14634000.0,34823.964,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34823.964,34823.964,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,104704.05175999999,104704.05175999999 +14637600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +14641200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +14644800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +14648400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +14652000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33383.8636,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +14655600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +14659200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +14662800.0,25444.275,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,48043.31479999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,25444.275,25444.275,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,76502.4535,76502.4535 +14666400.0,32221.134000000002,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83693.68824,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,32221.134000000002,32221.134000000002,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,96878.20956,96878.20956 +14670000.0,35191.167,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88307.8956,40611.8848,72936.60801,111141.49792,22407.549,22407.549,22407.549,45437.66499999999,35191.167,35191.167,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,105808.10878000001,105808.10878000001 +14673600.0,31792.739999999998,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,78998.91807999999,35985.208320000005,66558.93594,101423.14048,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31792.739999999998,31792.739999999998,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,30441.054,30441.054,30441.054,30441.054,95590.1716,95590.1716 +14677200.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,23130.633,23130.633,23130.633,23130.633,70414.6751,70414.6751 +14680800.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +14684400.0,8206.673999999999,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8206.673999999999,8206.673999999999,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24674.73316,24674.73316 +14688000.0,3256.557,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3256.557,3256.557,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9791.381379999999,9791.381379999999 +14691600.0,2050.635,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2050.635,2050.635,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6165.575900000001,6165.575900000001 +14695200.0,841.671,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,841.671,841.671,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2530.62414,2530.62414 +14698800.0,844.023,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,844.023,844.023,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2537.69582,2537.69582 +14702400.0,1237.614,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1237.614,1237.614,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3721.09276,3721.09276 +14706000.0,3463.065,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3463.065,3463.065,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10412.2821,10412.2821 +14709600.0,25523.547,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,25523.547,25523.547,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,76740.79798,76740.79798 +14713200.0,44543.286,42425.757,123883.21044,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,250541.46039999998,47808.917760000004,132465.87018,201852.75456,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,44543.286,44543.286,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,46623.066,46623.066,46623.066,46623.066,133926.81324,133926.81324 +14716800.0,42358.511999999995,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,40786.378240000005,66649.43082,101561.03744,20422.071,20422.071,20422.071,41411.5415,42358.511999999995,42358.511999999995,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,127357.92607999999,127357.92607999999 +14720400.0,35840.079,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,35840.079,35840.079,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,107759.17085999998,107759.17085999998 +14724000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +14727600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +14731200.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +14734800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +14738400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33900.50504,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +14742000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +14745600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +14749200.0,26654.001000000004,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,49661.806560000005,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,26654.001000000004,26654.001000000004,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,80139.69634000001,80139.69634000001 +14752800.0,31751.409,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31751.409,31751.409,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,95465.90306,95465.90306 +14756400.0,34898.283,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,87467.88168,40611.8848,72913.98912,111107.03103999999,22407.549,22407.549,22407.549,45437.66499999999,34898.283,34898.283,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31456.164000000004,31456.164000000004,31456.164000000004,31456.164000000004,104927.50422,104927.50422 +14760000.0,31854.413999999997,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,79080.76568,35985.208320000005,66988.53063000001,102077.76096000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31854.413999999997,31854.413999999997,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,31948.116,31948.116,31948.116,31948.116,95775.60475999999,95775.60475999999 +14763600.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,24584.766000000003,24584.766000000003,24584.766000000003,24584.766000000003,70414.6751,70414.6751 +14767200.0,16639.827,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16639.827,16639.827,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,50030.41318,50030.41318 +14770800.0,8644.527,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8644.527,8644.527,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25991.21118,25991.21118 +14774400.0,3384.8549999999996,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3384.8549999999996,3384.8549999999996,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10177.130699999998,10177.130699999998 +14778000.0,2159.505,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2159.505,2159.505,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6492.9117,6492.9117 +14781600.0,958.335,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,958.335,958.335,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2881.3938999999996,2881.3938999999996 +14785200.0,974.781,1886.547,5508.71724,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,974.781,974.781,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2930.8415399999994,2930.8415399999994 +14788800.0,1703.103,4233.201,12360.94692,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1703.103,1703.103,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,5120.66302,5120.66302 +14792400.0,5198.316,3811.4040000000005,11129.29968,12808.83538,12808.83538,12808.83538,11271.011499999999,12729.37208,3598.5164800000002,6336.15822,9655.098240000001,2124.459,2124.459,2124.459,4026.1234999999997,5198.316,5198.316,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,15629.603439999999,15629.603439999999 +14796000.0,27352.965000000004,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,27352.965000000004,27352.965000000004,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,82241.2481,82241.2481 +14799600.0,47799.504,64617.231,188682.31452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,310783.85776,47808.917760000004,165314.39588999999,251907.65088,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,47799.504,47799.504,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,55498.37699999999,55498.37699999999,55498.37699999999,55498.37699999999,143717.17536,143717.17536 +14803200.0,61946.081999999995,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,58262.22592000001,68745.873,104755.61600000001,20422.071,20422.071,20422.071,41411.5415,61946.081999999995,61946.081999999995,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,186251.21988,186251.21988 +14806800.0,41564.688,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,65419.81888,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,41564.688,41564.688,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,124971.16192,124971.16192 +14810400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +14814000.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +14817600.0,18216.741,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,49316.750159999996,23133.34976,40732.447770000006,62068.49184000001,13376.508000000002,13376.508000000002,13376.508000000002,25882.213000000003,18216.741,18216.741,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54771.66794,54771.66794 +14821200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +14824800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,36404.94232,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +14828400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +14832000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +14835600.0,27764.169,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,51173.502239999994,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,27764.169,27764.169,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,83477.60145999999,83477.60145999999 +14839200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +14842800.0,33477.249,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,85181.4224,40611.8848,71622.83835,109139.5632,22407.549,22407.549,22407.549,45437.66499999999,33477.249,33477.249,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,100654.92866,100654.92866 +14846400.0,32102.958,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,79427.2704,35985.208320000005,66401.23644,101182.83648,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,32102.958,32102.958,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,31701.575999999997,31701.575999999997,31701.575999999997,31701.575999999997,96522.89372,96522.89372 +14850000.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,24924.180000000004,24924.180000000004,24924.180000000004,24924.180000000004,70414.6751,70414.6751 +14853600.0,16731.264,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16731.264,16731.264,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,50305.333759999994,50305.333759999994 +14857200.0,8764.713,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8764.713,8764.713,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26352.570419999996,26352.570419999996 +14860800.0,3531.192,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3531.192,3531.192,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10617.11728,10617.11728 +14864400.0,2335.647,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2335.647,2335.647,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,7022.511979999999,7022.511979999999 +14868000.0,1149.489,2856.2039999999997,8340.115679999999,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1149.489,1149.489,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,3456.13026,3456.13026 +14871600.0,2201.943,6308.9400000000005,18422.1048,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,13671.86632,513.5360000000001,905.16615,1379.3008,408.876,408.876,408.876,575.162,2201.943,2201.943,5651.851009999999,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,6620.50862,6620.50862 +14875200.0,2932.86,7859.576999999999,22949.96484,3659.66667,3659.66667,3659.66667,3220.2905,14175.104959999997,9487.000960000001,1810.3323,2758.6016,1241.829,1241.829,1241.829,1150.3204999999998,2932.86,2932.86,17868.02446,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,8818.1324,8818.1324 +14878800.0,4890.215999999999,8882.646,25937.32632,12808.83538,12808.83538,12808.83538,11271.011499999999,17634.31216,10619.500160000001,6336.15822,9655.098240000001,2518.497,2518.497,2518.497,4026.1234999999997,4890.215999999999,4890.215999999999,17556.24507,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,14703.249439999998,14703.249439999998 +14882400.0,41543.841,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,67656.26568,28788.164480000003,52303.51937999999,79700.60096,15938.951999999997,15938.951999999997,15938.951999999997,32208.977499999994,41543.841,41543.841,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,23663.022000000004,23663.022000000004,23663.022000000004,23663.022000000004,124908.48194,124908.48194 +14886000.0,81276.63,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,103816.99672000001,47808.917760000004,84180.38915999999,128274.87872,26427.048,26427.048,26427.048,53489.9085,81276.63,81276.63,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,40021.743,40021.743,40021.743,40021.743,244371.73419999998,244371.73419999998 +14889600.0,55120.272,9741.159000000001,28444.18428,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,66833.02208000001,91236.768,139027.456,20422.071,20422.071,20422.071,41411.5415,55120.272,55120.272,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,51543.114,51543.114,51543.114,51543.114,165728.28447999997,165728.28447999997 +14893200.0,47069.74800000001,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,99735.70103999999,43696.332160000005,77541.73287,118158.83104,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,47069.74800000001,47069.74800000001,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,55640.85599999999,55640.85599999999,55640.85599999999,55640.85599999999,141523.04232,141523.04232 +14896800.0,24630.870000000003,8268.42,24143.786399999997,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,114133.67791999999,31358.54272,72282.08505000001,110144.12960000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +14900400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,48383.01321,73726.49632,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +14904000.0,18481.815000000002,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,49967.37288,23133.34976,42333.6942,64508.4864,12763.794,12763.794,12763.794,25882.213000000003,18481.815000000002,18481.815000000002,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,55568.657100000004,55568.657100000004 +14907600.0,14700.429,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32968.40148,50237.564159999994,10211.037,10211.037,10211.037,20705.7725,14700.429,14700.429,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,44199.28986,44199.28986 +14911200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +14914800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +14918400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +14922000.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +14925600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +14929200.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +14932800.0,28798.058999999997,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28798.058999999997,28798.058999999997,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,86586.16406,86586.16406 +14936400.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +14940000.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +14943600.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +14947200.0,3100.491,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3100.491,3100.491,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9322.14294,9322.14294 +14950800.0,2149.65,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2149.65,2149.65,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6463.281,6463.281 +14954400.0,953.1300000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,953.1300000000001,953.1300000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2865.7442,2865.7442 +14958000.0,980.568,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,980.568,980.568,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2948.2411199999997,2948.2411199999997 +14961600.0,1379.6519999999998,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1379.6519999999998,1379.6519999999998,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,4148.153679999999,4148.153679999999 +14965200.0,3296.538,1037.544,3029.62848,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3296.538,3296.538,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9911.590919999999,9911.590919999999 +14968800.0,24056.061,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,60671.000799999994,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,24056.061,24056.061,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22231.275,22231.275,22231.275,22231.275,72328.55674,72328.55674 +14972400.0,43404.566999999995,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,43404.566999999995,43404.566999999995,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,37461.132,37461.132,37461.132,37461.132,130503.06477999999,130503.06477999999 +14976000.0,38441.442,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,67505.80431,102865.98752000001,20422.071,20422.071,20422.071,41411.5415,38441.442,38441.442,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,31882.538999999997,31882.538999999997,31882.538999999997,31882.538999999997,115580.60227999999,115580.60227999999 +14979600.0,40615.893000000004,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,94736.76616,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,40615.893000000004,40615.893000000004,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,36387.96000000001,36387.96000000001,36387.96000000001,36387.96000000001,122118.45162,122118.45162 +14983200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,74790.17023999999,31358.54272,68127.75858000001,103813.72736,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +14986800.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,48037.43154,73199.89568,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +14990400.0,18214.803,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,41415.31317,63109.04864,12763.794,12763.794,12763.794,25882.213000000003,18214.803,18214.803,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54765.84102,54765.84102 +14994000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +14997600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +15001200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +15004800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +15008400.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +15012000.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +15015600.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +15019200.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +15022800.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +15026400.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +15030000.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +15033600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15037200.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +15040800.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15044400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15048000.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +15051600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15055200.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +15058800.0,37551.981,14411.139000000003,42080.52588,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,128470.60343999999,47808.917760000004,98611.10091000001,150264.53472,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +15062400.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +15066000.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +15069600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +15073200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +15076800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +15080400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +15084000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +15087600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +15091200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +15094800.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +15098400.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +15102000.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +15105600.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +15109200.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +15112800.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +15116400.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +15120000.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15123600.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +15127200.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15130800.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15134400.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +15138000.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15141600.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +15145200.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,89887.00518000001,136970.67456,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +15148800.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +15152400.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +15156000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +15159600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +15163200.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +15166800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +15170400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +15174000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +15177600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +15181200.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +15184800.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +15188400.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +15192000.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +15195600.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +15199200.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +15202800.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +15206400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15210000.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +15213600.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15217200.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15220800.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +15224400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15228000.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +15231600.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,86062.68846,131143.14432000002,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +15235200.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +15238800.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +15242400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +15246000.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +15249600.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +15253200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +15256800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +15260400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +15264000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +15267600.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +15271200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +15274800.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +15278400.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +15282000.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +15285600.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +15289200.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +15292800.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15296400.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +15300000.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15303600.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15307200.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +15310800.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15314400.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +15318000.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,90790.88172,138348.01024,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +15321600.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +15325200.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +15328800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +15332400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +15336000.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +15339600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +15343200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +15346800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +15350400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +15354000.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +15357600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +15361200.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +15364800.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +15368400.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +15372000.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +15375600.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +15379200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15382800.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +15386400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15390000.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15393600.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +15397200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15400800.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +15404400.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,113870.91296,47808.917760000004,96858.62718,147594.09855999998,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +15408000.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +15411600.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +15415200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +15418800.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +15422400.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +15426000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +15429600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +15433200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +15436800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +15440400.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +15444000.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +15447600.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +15451200.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +15454800.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +15458400.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +15462000.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +15465600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15469200.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +15472800.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15476400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15480000.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +15483600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15487200.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +15490800.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +15494400.0,29424.603000000003,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29424.603000000003,29424.603000000003,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,88469.97302,88469.97302 +15498000.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +15501600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +15505200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +15508800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +15512400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +15516000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +15519600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +15523200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +15526800.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +15530400.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +15534000.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +15537600.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +15541200.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +15544800.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +15548400.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +15552000.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15555600.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +15559200.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15562800.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15566400.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +15570000.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15573600.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +15577200.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +15580800.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +15584400.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +15588000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +15591600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +15595200.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +15598800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +15602400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +15606000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +15609600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +15613200.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +15616800.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +15620400.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +15624000.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +15627600.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +15631200.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +15634800.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +15638400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15642000.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +15645600.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15649200.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15652800.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +15656400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15660000.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +15663600.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,88311.90836999999,134570.52704,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +15667200.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +15670800.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +15674400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +15678000.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +15681600.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +15685200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +15688800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +15692400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +15696000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +15699600.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +15703200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +15706800.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +15710400.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +15714000.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +15717600.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +15721200.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +15724800.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15728400.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +15732000.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15735600.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15739200.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +15742800.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15746400.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +15750000.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,101418.23424,47808.917760000004,98617.95468,150274.97856,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +15753600.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +15757200.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +15760800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +15764400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +15768000.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +15771600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +15775200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +15778800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +15782400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +15786000.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +15789600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +15793200.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +15796800.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +15800400.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +15804000.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +15807600.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +15811200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +15814800.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +15818400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +15822000.0,572.1990000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,572.1990000000001,572.1990000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1720.41166,1720.41166 +15825600.0,1333.0980000000002,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1333.0980000000002,1333.0980000000002,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,4008.18132,4008.18132 +15829200.0,3156.9030000000002,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3156.9030000000002,3156.9030000000002,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9491.75502,9491.75502 +15832800.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +15836400.0,37551.981,15581.376,45497.617920000004,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,124128.23056,47808.917760000004,100867.21323,153702.42016,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +15840000.0,29827.683000000005,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29827.683000000005,29827.683000000005,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,89681.90022000001,89681.90022000001 +15843600.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +15847200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +15850800.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +15854400.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +15858000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +15861600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +15865200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +15868800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +15872400.0,20563.827,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,20563.827,20563.827,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,61828.57318,61828.57318 +15876000.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +15879600.0,32963.945999999996,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,32963.945999999996,32963.945999999996,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,99111.59763999999,99111.59763999999 +15883200.0,31621.905,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,65051.80689,99126.56288,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31621.905,31621.905,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,95076.52769999999,95076.52769999999 +15886800.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +15890400.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +15894000.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +15897600.0,3239.9039999999995,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3239.9039999999995,3239.9039999999995,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9741.311359999998,9741.311359999998 +15901200.0,2240.943,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2240.943,2240.943,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6737.76862,6737.76862 +15904800.0,1053.6779999999999,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1053.6779999999999,1053.6779999999999,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,3168.05852,3168.05852 +15908400.0,1078.011,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1078.011,1078.011,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,3241.2197399999995,3241.2197399999995 +15912000.0,1483.9379999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1483.9379999999999,1483.9379999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,4461.70692,4461.70692 +15915600.0,3364.8629999999994,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3364.8629999999994,3364.8629999999994,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10117.02142,10117.02142 +15919200.0,24610.802999999996,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,24610.802999999996,24610.802999999996,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,73996.48101999999,73996.48101999999 +15922800.0,39400.371,45341.34299999999,132396.72155999998,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,229819.75048,47808.917760000004,118299.34977,180265.67584,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,39400.371,39400.371,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,39927.573,39927.573,39927.573,39927.573,118463.78213999998,118463.78213999998 +15926400.0,32786.448,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,67790.33478,103299.55776,20422.071,20422.071,20422.071,41411.5415,32786.448,32786.448,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,98577.92031999999,98577.92031999999 +15930000.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +15933600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +15937200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +15940800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +15944400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +15948000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +15951600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +15955200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +15958800.0,26734.215000000004,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,40359.5283,61500.23360000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,26734.215000000004,26734.215000000004,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,80380.8731,80380.8731 +15962400.0,31549.29,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70899.71973000001,108037.66816000002,22123.911,22123.911,22123.911,44862.503,31549.29,31549.29,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94858.1986,94858.1986 +15966000.0,34772.856,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,73448.27889,111921.18688000001,22407.549,22407.549,22407.549,45437.66499999999,34772.856,34772.856,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,104550.38703999999,104550.38703999999 +15969600.0,31563.186,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,76891.47232,35985.208320000005,65536.47323999999,99865.10208,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31563.186,31563.186,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,94899.97924,94899.97924 +15973200.0,23577.218999999997,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23577.218999999997,23577.218999999997,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70888.83845999998,70888.83845999998 +15976800.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +15980400.0,8136.963000000002,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8136.963000000002,8136.963000000002,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24465.135420000002,24465.135420000002 +15984000.0,3251.571,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3251.571,3251.571,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9776.39014,9776.39014 +15987600.0,2018.067,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2018.067,2018.067,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6067.65478,6067.65478 +15991200.0,805.5360000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,805.5360000000001,805.5360000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2421.97824,2421.97824 +15994800.0,801.174,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,801.174,801.174,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2408.86316,2408.86316 +15998400.0,1199.19,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1199.19,1199.19,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3605.5646,3605.5646 +16002000.0,3172.143,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3172.143,3172.143,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9537.57662,9537.57662 +16005600.0,23557.248,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,23557.248,23557.248,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,70828.79232,70828.79232 +16009200.0,40463.816999999995,38367.261,112032.40212,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,201380.45136000004,47808.917760000004,115289.33724000001,175678.99008000002,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,40463.816999999995,40463.816999999995,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,39181.881,39181.881,39181.881,39181.881,121661.20977999998,121661.20977999998 +16012800.0,33217.989,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,67324.14318,102589.17056000001,20422.071,20422.071,20422.071,41411.5415,33217.989,33217.989,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,99875.42026,99875.42026 +16016400.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +16020000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +16023600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +16027200.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +16030800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +16034400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +16038000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +16041600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +16045200.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +16048800.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +16052400.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +16056000.0,29733.839999999997,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,29733.839999999997,29733.839999999997,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,89399.74559999998,89399.74559999998 +16059600.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +16063200.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +16066800.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +16070400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +16074000.0,1661.703,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1661.703,1661.703,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4996.187019999999,4996.187019999999 +16077600.0,944.9669999999999,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,944.9669999999999,944.9669999999999,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2841.2007799999997,2841.2007799999997 +16081200.0,941.1959999999999,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,941.1959999999999,941.1959999999999,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2829.86264,2829.86264 +16084800.0,1306.671,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1306.671,1306.671,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3928.72414,3928.72414 +16088400.0,3181.3080000000004,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3181.3080000000004,3181.3080000000004,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9565.132720000001,9565.132720000001 +16092000.0,22870.887,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22870.887,22870.887,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,68765.13358,68765.13358 +16095600.0,39822.039,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,39822.039,39822.039,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36702.087,36702.087,36702.087,36702.087,119731.59725999998,119731.59725999998 +16099200.0,37451.898,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,37451.898,37451.898,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,112605.37332,112605.37332 +16102800.0,41888.223,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,93740.24608,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,41888.223,41888.223,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33568.845,33568.845,33568.845,33568.845,125943.92382,125943.92382 +16106400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,67119.30688,31358.54272,67201.71717,102402.61664000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +16110000.0,21439.029000000002,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,48410.23992,73767.98464000001,15032.913,15032.913,15032.913,30483.495,21439.029000000002,21439.029000000002,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64460.01386000001,64460.01386000001 +16113600.0,18829.761000000002,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,41946.453779999996,63918.405759999994,12763.794,12763.794,12763.794,25882.213000000003,18829.761000000002,18829.761000000002,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,56614.81474,56614.81474 +16117200.0,15101.775000000001,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,33245.28123,50659.476160000006,10211.037,10211.037,10211.037,20705.7725,15101.775000000001,15101.775000000001,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,45406.0035,45406.0035 +16120800.0,12667.301999999998,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28351.21128,43201.845760000004,8792.835,8792.835,8792.835,17829.9695,12667.301999999998,12667.301999999998,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,38086.35467999999,38086.35467999999 +16124400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21801.11304,33220.74368,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +16128000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +16131600.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39881.92824,60772.462080000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +16135200.0,31634.933999999997,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,71202.65733,108499.28736,22123.911,22123.911,22123.911,44862.503,31634.933999999997,31634.933999999997,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,95115.70155999999,95115.70155999999 +16138800.0,35253.531,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,74955.40311,114217.75712,22407.549,22407.549,22407.549,45437.66499999999,35253.531,35253.531,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,105995.61653999999,105995.61653999999 +16142400.0,31964.205,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31964.205,31964.205,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,28062.716999999997,28062.716999999997,28062.716999999997,28062.716999999997,96105.7097,96105.7097 +16146000.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +16149600.0,16898.976000000002,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16898.976000000002,16898.976000000002,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,50809.58784,50809.58784 +16153200.0,8651.460000000001,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8651.460000000001,8651.460000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26012.0564,26012.0564 +16156800.0,3395.49,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3395.49,3395.49,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10209.1066,10209.1066 +16160400.0,2238.717,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2238.717,2238.717,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6731.07578,6731.07578 +16164000.0,1018.239,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1018.239,1018.239,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,3061.50526,3061.50526 +16167600.0,1011.7379999999999,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1011.7379999999999,1011.7379999999999,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,3041.9589199999996,3041.9589199999996 +16171200.0,1432.2450000000001,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1432.2450000000001,1432.2450000000001,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,4306.2833,4306.2833 +16174800.0,3920.3009999999995,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3920.3009999999995,3920.3009999999995,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,11787.038339999997,11787.038339999997 +16178400.0,24606.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,24606.945,24606.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,73984.88130000001,73984.88130000001 +16182000.0,57336.609000000004,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,57336.609000000004,57336.609000000004,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,38170.005000000005,38170.005000000005,38170.005000000005,38170.005000000005,172392.07106000002,172392.07106000002 +16185600.0,48617.586,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,76498.6026,116569.2992,20422.071,20422.071,20422.071,41411.5415,48617.586,48617.586,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,44304.507,44304.507,44304.507,44304.507,146176.87524,146176.87524 +16189200.0,48277.958999999995,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,102112.86136000001,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,48277.958999999995,48277.958999999995,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,55711.272,55711.272,55711.272,55711.272,145155.73005999997,145155.73005999997 +16192800.0,25314.932999999997,15998.085,46714.4082,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,197655.43655999997,31358.54272,88572.69456,134967.91552,17302.032,17302.032,17302.032,35084.777,25314.932999999997,25314.932999999997,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,26950.325999999997,26950.325999999997,26950.325999999997,26950.325999999997,76113.56521999999,76113.56521999999 +16196400.0,22397.844,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,58504.55352,27245.94624,52141.468049999996,79453.6656,15032.913,15032.913,15032.913,30483.495,22397.844,22397.844,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,67342.85096,67342.85096 +16200000.0,20611.77,6815.805,19902.1506,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,62270.72864,23133.34976,43633.99782,66489.90144,12763.794,12763.794,12763.794,25882.213000000003,20611.77,20611.77,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,19032.837,19032.837,19032.837,19032.837,61972.7218,61972.7218 +16203600.0,15761.076000000001,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,41053.7984,18506.68416,33875.53827,51619.86784,10211.037,10211.037,10211.037,20705.7725,15761.076000000001,15761.076000000001,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14335.002000000002,14335.002000000002,14335.002000000002,14335.002000000002,47388.30184,47388.30184 +16207200.0,13029.753,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28765.7412,43833.51040000001,8792.835,8792.835,8792.835,17829.9695,13029.753,13029.753,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,39176.12402,39176.12402 +16210800.0,9697.107,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21932.300669999997,33420.64864,6807.357,6807.357,6807.357,13803.846000000001,9697.107,9697.107,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29155.96838,29155.96838 +16214400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24572.51874,37443.83808,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +16218000.0,17807.979,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,40117.45353,61131.35776,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17807.979,17807.979,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53542.656859999996,53542.656859999996 +16221600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70624.38075,107618.104,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +16225200.0,35182.041000000005,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84905.424,40611.8848,75087.71130000001,114419.3696,22407.549,22407.549,22407.549,45437.66499999999,35182.041000000005,35182.041000000005,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,105780.66994,105780.66994 +16228800.0,33431.883,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,33431.883,33431.883,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,29946.045000000006,29946.045000000006,29946.045000000006,29946.045000000006,100518.52822000001,100518.52822000001 +16232400.0,24166.161,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,24166.161,24166.161,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,72659.59074,72659.59074 +16236000.0,17257.32,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17257.32,17257.32,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51887.0088,51887.0088 +16239600.0,8799.621000000001,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8799.621000000001,8799.621000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26457.527140000002,26457.527140000002 +16243200.0,3581.736,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3581.736,3581.736,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10769.08624,10769.08624 +16246800.0,2629.758,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2629.758,2629.758,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,7906.805719999999,7906.805719999999 +16250400.0,2559.684,4982.691,14549.457719999999,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,2559.684,2559.684,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,7696.11656,7696.11656 +16254000.0,2403.315,4719.888,13782.07296,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,2403.315,2403.315,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,7225.9671,7225.9671 +16257600.0,2626.215,4431.6630000000005,12940.45596,3659.66667,3659.66667,3659.66667,3220.2905,6217.14136,1028.16,1810.3323,2758.6016,956.9759999999999,956.9759999999999,956.9759999999999,1150.3204999999998,2626.215,2626.215,7480.204159999999,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,7896.1530999999995,7896.1530999999995 +16261200.0,8126.031000000001,7137.860999999999,20842.554119999997,12808.83538,12808.83538,12808.83538,11271.011499999999,14296.390079999997,3598.5164800000002,6336.15822,9655.098240000001,2430.945,2430.945,2430.945,4026.1234999999997,8126.031000000001,8126.031000000001,7874.109489999999,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,24432.26654,24432.26654 +16264800.0,35972.058,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,35972.058,35972.058,158200.29393999997,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,108155.98771999999,108155.98771999999 +16268400.0,58027.563,112681.42800000001,329029.76976,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,422923.08808,47808.917760000004,213933.04548,325993.21216,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,58027.563,58027.563,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,68426.886,68426.886,68426.886,68426.886,174469.53942,174469.53942 +16272000.0,97253.541,9610.437,28062.476039999998,133081.60887999999,133081.60887999999,133081.60887999999,115930.41599999998,77076.69376,75188.26368,76609.16613,116737.77696000002,20422.071,20422.071,20422.071,41411.5415,97253.541,97253.541,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,292408.97994,292408.97994 +16275600.0,56020.244999999995,15306.696,44695.552319999995,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,90172.81984000003,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,56020.244999999995,56020.244999999995,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,168434.20329999996,168434.20329999996 +16279200.0,24784.193999999996,9054.056999999999,26437.846439999998,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24784.193999999996,24784.193999999996,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74517.80995999998,74517.80995999998 +16282800.0,21968.634,9289.893,27126.487559999998,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21968.634,21968.634,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,66052.35956,66052.35956 +16286400.0,20862.021,10032.795,29295.7614,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,54228.931840000005,23523.61536,40732.447770000006,62068.49184000001,16007.844000000001,16007.844000000001,16007.844000000001,25882.213000000003,20862.021,20862.021,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,62725.14313999999,62725.14313999999 +16290000.0,15490.977000000003,6828.42,19938.986399999998,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,15490.977000000003,15490.977000000003,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,46576.20418,46576.20418 +16293600.0,12720.726,5055.015,14760.6438,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,35478.94608,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12720.726,12720.726,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,38246.98284,38246.98284 +16297200.0,9709.563,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9709.563,9709.563,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29193.419420000002,29193.419420000002 +16300800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +16304400.0,48426.114,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,82594.41336,22619.26976,58937.53404,89809.57568,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,48426.114,48426.114,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,55541.39700000001,55541.39700000001,55541.39700000001,55541.39700000001,145601.18276,145601.18276 +16308000.0,32998.374,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,87926.08808,40097.804800000005,72144.49767,109934.47264,22123.911,22123.911,22123.911,44862.503,32998.374,32998.374,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,31467.246,31467.246,31467.246,31467.246,99215.11116,99215.11116 +16311600.0,41446.395000000004,12612.057,36827.20644,144556.86399,144556.86399,144556.86399,127201.42749999999,123023.00471999998,40611.8848,82353.15186,125490.51712,22407.549,22407.549,22407.549,45437.66499999999,41446.395000000004,41446.395000000004,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,45263.808,45263.808,45263.808,45263.808,124615.49429999999,124615.49429999999 +16315200.0,50130.636,13691.274,39978.520079999995,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,129132.33384,39532.32768,88496.97948,134852.54016,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,50130.636,50130.636,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,47454.636000000006,47454.636000000006,47454.636000000006,47454.636000000006,150726.11224,150726.11224 +16318800.0,41697.018,7741.74,22605.8808,106930.98790000001,106930.98790000001,106930.98790000001,93388.3895,62089.56015999999,40992.43456,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,41697.018,41697.018,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,26859.027000000002,26859.027000000002,26859.027000000002,26859.027000000002,125369.03411999998,125369.03411999998 +16322400.0,17216.181,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17216.181,17216.181,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51763.31754,51763.31754 +16326000.0,9177.912,2995.0020000000004,8745.40584,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,9177.912,9177.912,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,27594.92208,27594.92208 +16329600.0,4872.717000000001,5541.762,16181.945039999999,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,4872.717000000001,4872.717000000001,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,14650.635779999999,14650.635779999999 +16333200.0,3852.75,5612.343,16388.041559999998,7319.33334,7319.33334,7319.33334,6440.577499999999,8347.52664,2056.2982400000005,3620.65977,5517.19584,1426.635,1426.635,1426.635,2300.6409999999996,3852.75,3852.75,6119.176179999999,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,11583.935,11583.935 +16336800.0,3296.8680000000004,10836.75,31643.309999999998,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,13393.543599999999,513.5360000000001,905.16615,1379.3008,998.979,998.979,998.979,575.162,3296.8680000000004,3296.8680000000004,11713.25428,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,9912.583120000001,9912.583120000001 +16340400.0,4178.541,15801.942000000001,46141.670640000004,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,18854.77872,513.5360000000001,905.16615,1379.3008,1087.305,1087.305,1087.305,575.162,4178.541,4178.541,22595.749409999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,12563.47994,12563.47994 +16344000.0,5514.8550000000005,15872.000999999998,46346.24292,3659.66667,3659.66667,3659.66667,3220.2905,28856.502879999996,2414.3481600000005,1810.3323,2758.6016,1366.326,1366.326,1366.326,1150.3204999999998,5514.8550000000005,5514.8550000000005,25790.84001,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,16581.3307,16581.3307 +16347600.0,14077.212,11661.483,34051.53036,12808.83538,12808.83538,12808.83538,11271.011499999999,25240.520880000004,8969.058560000001,6336.15822,9655.098240000001,2542.035,2542.035,2542.035,4026.1234999999997,14077.212,14077.212,17953.61841,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,3808.4609999999993,3808.4609999999993,3808.4609999999993,3808.4609999999993,42325.484079999995,42325.484079999995 +16351200.0,46246.047,11904.869999999999,34762.2204,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,60264.58352,28788.164480000003,55469.06274,84524.28608,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,46246.047,46246.047,321346.60506000003,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,25258.155,25258.155,25258.155,25258.155,139046.44798,139046.44798 +16354800.0,68923.908,128327.019,374714.89548,171771.22017000002,171771.22017000002,171771.22017000002,149743.45400000003,439295.23607999994,47808.917760000004,255063.43211999998,388668.08704,29756.216999999997,29756.216999999997,29756.216999999997,53489.9085,68923.908,68923.908,20083.98665,55086.34635,81881.43334,142816.4535,40532.66966,51549.938930000004,90213.927,90213.927,90213.927,90213.927,207231.21671999997,207231.21671999997 +16358400.0,142461.597,11529.243,33665.38956,136792.06915000002,136792.06915000002,136792.06915000002,115930.41599999998,77076.69376,87615.11680000002,83672.34078,127500.70976000001,22491.657,22491.657,22491.657,41411.5415,142461.597,142461.597,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,29590.752,29590.752,29590.752,29590.752,428334.53498,428334.53498 +16362000.0,102441.045,35883.009,104778.38627999999,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,125317.76576000001,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,102441.045,102441.045,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,308006.07529999997,308006.07529999997 +16365600.0,24696.906,8441.595000000001,24649.457400000003,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24696.906,24696.906,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74255.36404,74255.36404 +16369200.0,21997.794,7287.744000000001,21280.21248,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21997.794,21997.794,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,66140.03396,66140.03396 +16372800.0,18474.558,7996.125,23348.684999999998,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,57279.14048,23133.34976,40732.447770000006,62068.49184000001,17641.767,17641.767,17641.767,25882.213000000003,18474.558,18474.558,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,55546.83772,55546.83772 +16376400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +16380000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,34654.373120000004,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +16383600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +16387200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +16390800.0,32832.087,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,57061.361039999996,22619.26976,40360.85172,61502.25024,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,32832.087,32832.087,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,20380.800000000003,20380.800000000003,20380.800000000003,20380.800000000003,98715.14157999998,98715.14157999998 +16394400.0,31722.888,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70969.61466,108144.17472000001,22123.911,22123.911,22123.911,44862.503,31722.888,31722.888,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,95380.14992,95380.14992 +16398000.0,35787.804000000004,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88274.93463999999,40611.8848,74332.74849,113268.95008000001,22407.549,22407.549,22407.549,45437.66499999999,35787.804000000004,35787.804000000004,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,36829.581,36829.581,36829.581,36829.581,107601.99736,107601.99736 +16401600.0,35358.003,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,81541.64824,35985.208320000005,71405.41107,108808.24544000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,35358.003,35358.003,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,42231.066,42231.066,42231.066,42231.066,106309.72902,106309.72902 +16405200.0,25622.394,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,25622.394,25622.394,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,26960.031,26960.031,26960.031,26960.031,77037.99796000001,77037.99796000001 +16408800.0,17311.086,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17311.086,17311.086,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,52048.665239999995,52048.665239999995 +16412400.0,8870.169,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8870.169,8870.169,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26669.64146,26669.64146 +16416000.0,3626.3219999999997,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3626.3219999999997,3626.3219999999997,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10903.141479999998,10903.141479999998 +16419600.0,3218.133,2519.955,7358.2686,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,3218.133,3218.133,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,9675.853219999999,9675.853219999999 +16423200.0,2821.047,6011.897999999999,17554.742159999998,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,4872.44632,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,2821.047,2821.047,5789.2149899999995,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,8481.94798,8481.94798 +16426800.0,3077.7,8912.778,26025.31176,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,12945.895919999999,513.5360000000001,905.16615,1379.3008,862.296,862.296,862.296,575.162,3077.7,3077.7,11360.806340000001,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,9253.617999999999,9253.617999999999 +16430400.0,3525.12,12308.292000000001,35940.21264,3659.66667,3659.66667,3659.66667,3220.2905,14665.9336,1028.16,1810.3323,2758.6016,1231.818,1231.818,1231.818,1150.3204999999998,3525.12,3525.12,17088.29941,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,10598.860799999999,10598.860799999999 +16434000.0,10893.93,12038.607,35152.73244,12808.83538,12808.83538,12808.83538,11271.011499999999,25637.728479999998,5311.9097600000005,6336.15822,9655.098240000001,2561.628,2561.628,2561.628,4026.1234999999997,10893.93,10893.93,18769.61086,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,3380.6100000000006,3380.6100000000006,3380.6100000000006,3380.6100000000006,32754.4162,32754.4162 +16437600.0,41255.037,9877.617,28842.64164,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59960.70496,28788.164480000003,53501.24346,81525.70432,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,41255.037,41255.037,241575.31879,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,24298.959000000003,24298.959000000003,24298.959000000003,24298.959000000003,124040.14458,124040.14458 +16441200.0,61941.918000000005,118859.64000000001,347070.1488,171349.23443,171349.23443,171349.23443,149743.45400000003,437709.60599999997,47808.917760000004,232829.73945,354788.1744,28794.498,28794.498,28794.498,53489.9085,61941.918000000005,61941.918000000005,20083.98665,53300.92004999999,79227.54041999999,138187.5705,39218.94858,49879.13259,81734.742,81734.742,81734.742,81734.742,186238.70012,186238.70012 +16444800.0,129022.01999999999,9874.644,28833.96048,135998.43136,135998.43136,135998.43136,115930.41599999998,77076.69376,86647.43872,82197.76109999999,125253.7312,21728.985,21728.985,21728.985,41411.5415,129022.01999999999,129022.01999999999,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,29305.430999999997,29305.430999999997,29305.430999999997,29305.430999999997,387926.2067999999,387926.2067999999 +16448400.0,95279.469,29770.377,86929.50084000001,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,118221.65568000003,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,95279.469,95279.469,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,286473.60346,286473.60346 +16452000.0,24794.412,9087.423,26535.27516,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24794.412,24794.412,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74548.53208,74548.53208 +16455600.0,22663.647,8912.1,26023.332000000002,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,22663.647,22663.647,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,68142.03198,68142.03198 +16459200.0,22269.693,10145.766,29625.63672,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,59750.79200000001,24761.98784,40732.447770000006,62068.49184000001,18965.766,18965.766,18965.766,25882.213000000003,22269.693,22269.693,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,66957.54362,66957.54362 +16462800.0,16983.504,7314.237000000001,21357.572040000003,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,19330.865920000004,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,16983.504,16983.504,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,51063.735360000006,51063.735360000006 +16466400.0,14315.034,5625.378,16426.103759999998,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,43602.12328,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,14315.034,14315.034,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13266.786,13266.786,13266.786,13266.786,43040.53556,43040.53556 +16470000.0,9831.087,3881.4570000000003,11333.854440000001,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9831.087,9831.087,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29558.80158,29558.80158 +16473600.0,10978.944,3939.1290000000004,11502.25668,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10978.944,10978.944,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,33010.02496,33010.02496 +16477200.0,66148.90800000001,6269.823,18307.88316,80779.91108,80779.91108,80779.91108,70846.3665,101425.22471999998,22619.26976,79593.82599,121285.83008,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,66148.90800000001,66148.90800000001,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,78212.241,78212.241,78212.241,78212.241,198887.71672,198887.71672 +16480800.0,34175.676,10830.327,31624.554839999997,142727.02862,142727.02862,142727.02862,125591.28399999999,92864.31032,40097.804800000005,72956.51727000001,111171.83584000001,22123.911,22123.911,22123.911,44862.503,34175.676,34175.676,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,33488.534999999996,33488.534999999996,33488.534999999996,33488.534999999996,102754.86584,102754.86584 +16484400.0,56653.641,13656.848999999998,39877.999079999994,145982.65011000002,145982.65011000002,145982.65011000002,127201.42749999999,130749.99048,41883.430400000005,92736.49749,141312.75808,22407.549,22407.549,22407.549,45437.66499999999,56653.641,56653.641,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,53593.296,53593.296,53593.296,53593.296,170338.61394,170338.61394 +16488000.0,74305.26,18563.721,54206.06532,131076.62106,131076.62106,131076.62106,112710.12550000001,135560.55031999998,63184.54464000001,106382.67717000001,162106.93664000003,21011.304,21011.304,21011.304,40261.221,74305.26,74305.26,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,54212.435999999994,54212.435999999994,54212.435999999994,54212.435999999994,223411.14839999998,223411.14839999998 +16491600.0,55434.513000000006,7741.74,22605.8808,109128.75127000001,109128.75127000001,109128.75127000001,93388.3895,65268.248799999994,41256.48128000001,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,55434.513000000006,55434.513000000006,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,28037.697,28037.697,28037.697,28037.697,166673.10242,166673.10242 +16495200.0,17523.156000000003,5884.641,17183.151719999998,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17523.156000000003,17523.156000000003,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,52686.28904,52686.28904 +16498800.0,10013.964,6871.887000000001,20065.910040000002,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,10013.964,10013.964,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,30108.65176,30108.65176 +16502400.0,5024.576999999999,5314.647,15518.76924,12808.83538,12808.83538,12808.83538,11271.011499999999,12938.21632,3598.5164800000002,6336.15822,9655.098240000001,2245.833,2245.833,2245.833,4026.1234999999997,5024.576999999999,5024.576999999999,7285.860919999999,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,15107.228179999998,15107.228179999998 +16506000.0,3975.744,8878.434000000001,25925.02728,7319.33334,7319.33334,7319.33334,6440.577499999999,13341.999759999999,2056.2982400000005,3620.65977,5517.19584,1702.995,1702.995,1702.995,2300.6409999999996,3975.744,3975.744,9568.85527,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,11953.73696,11953.73696 +16509600.0,3143.6129999999994,10987.251,32082.77292,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,13574.38504,513.5360000000001,905.16615,1379.3008,850.116,850.116,850.116,575.162,3143.6129999999994,3143.6129999999994,16183.225759999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,9451.796419999999,9451.796419999999 +16513200.0,3525.381,10950.525,31975.532999999996,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,19092.88136,513.5360000000001,905.16615,1379.3008,848.049,848.049,848.049,575.162,3525.381,3525.381,16659.338799999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,10599.64554,10599.64554 +16516800.0,4796.805,10873.815,31751.5398,3659.66667,3659.66667,3659.66667,3220.2905,19784.77536,3183.3248,1810.3323,2758.6016,1120.902,1120.902,1120.902,1150.3204999999998,4796.805,4796.805,16536.00078,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,14422.393699999999,14422.393699999999 +16520400.0,13485.798000000003,9635.31,28135.105199999998,13099.376400000001,13099.376400000001,13099.376400000001,11271.011499999999,21546.19528,10158.003200000001,6336.15822,9655.098240000001,2443.308,2443.308,2443.308,4026.1234999999997,13485.798000000003,13485.798000000003,14421.01492,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,3463.2479999999996,3463.2479999999996,3463.2479999999996,3463.2479999999996,40547.299320000006,40547.299320000006 +16524000.0,45492.06,13363.578000000001,39021.64776000001,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,62386.097839999995,28788.164480000003,56717.327939999996,86426.40448,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,45492.06,45492.06,290529.93072999996,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,25358.673000000003,25358.673000000003,25358.673000000003,25358.673000000003,136779.4604,136779.4604 +16527600.0,65945.748,115754.64000000001,338003.54880000005,171134.90416,171134.90416,171134.90416,149743.45400000003,388145.81799999997,47808.917760000004,244302.31769999999,372270.1984,29271.54,29271.54,29271.54,53489.9085,65945.748,65945.748,20083.98665,61630.40925,91608.6577,159782.5425,45347.8073,57673.88915,85402.344,85402.344,85402.344,85402.344,198276.88232,198276.88232 +16531200.0,124343.76899999999,9610.437,28062.476039999998,134952.30298,134952.30298,134952.30298,115930.41599999998,77076.69376,75462.85312,78944.26344000001,120296.02048,22500.306,22500.306,22500.306,41411.5415,124343.76899999999,124343.76899999999,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,30008.727000000006,30008.727000000006,30008.727000000006,30008.727000000006,373860.26545999997,373860.26545999997 +16534800.0,84625.13699999999,31479.492,91920.11664,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,105105.79392,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,84625.13699999999,84625.13699999999,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,254439.57857999997,254439.57857999997 +16538400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +16542000.0,21633.684,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21633.684,21633.684,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,65045.27656,65045.27656 +16545600.0,18483.444,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,56270.041040000004,23133.34976,40732.447770000006,62068.49184000001,17101.215000000004,17101.215000000004,17101.215000000004,25882.213000000003,18483.444,18483.444,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,55573.55496,55573.55496 +16549200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +16552800.0,12700.827000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,36799.913199999995,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12700.827000000001,12700.827000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12382.007999999998,12382.007999999998,12382.007999999998,12382.007999999998,38187.15318,38187.15318 +16556400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +16560000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +16563600.0,35869.691999999995,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,60254.97087999999,22619.26976,42786.352139999995,65198.25087999999,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,35869.691999999995,35869.691999999995,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,28976.625,28976.625,28976.625,28976.625,107848.20727999999,107848.20727999999 +16567200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +16570800.0,33799.032,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,85549.40079999999,40611.8848,73190.27961,111528.04512000001,22407.549,22407.549,22407.549,45437.66499999999,33799.032,33799.032,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31469.118000000002,31469.118000000002,31469.118000000002,31469.118000000002,101622.42287999998,101622.42287999998 +16574400.0,33824.079000000005,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,79308.44392,35985.208320000005,71074.38219,108303.82048,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,33824.079000000005,33824.079000000005,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,39303.06,39303.06,39303.06,39303.06,101697.73086000001,101697.73086000001 +16578000.0,24420.852,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,24420.852,24420.852,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,26451.069000000003,26451.069000000003,26451.069000000003,26451.069000000003,73425.36167999999,73425.36167999999 +16581600.0,17142.372,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17142.372,17142.372,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51541.398479999996,51541.398479999996 +16585200.0,8667.579,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8667.579,8667.579,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26060.520859999997,26060.520859999997 +16588800.0,3441.63,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3441.63,3441.63,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10347.8342,10347.8342 +16592400.0,2241.678,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2241.678,2241.678,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6739.97852,6739.97852 +16596000.0,1843.035,1239.1709999999998,3618.3793199999996,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1843.035,1843.035,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,5541.3919,5541.3919 +16599600.0,2234.127,4473.195,13061.7294,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,2234.127,2234.127,887.17083,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,6717.27518,6717.27518 +16603200.0,2783.637,6239.919,18220.56348,3659.66667,3659.66667,3659.66667,3220.2905,9173.7056,1028.16,1810.3323,2758.6016,1047.006,1047.006,1047.006,1150.3204999999998,2783.637,2783.637,8724.623309999999,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,8369.46858,8369.46858 +16606800.0,7296.831,7612.32,22227.9744,12808.83538,12808.83538,12808.83538,11271.011499999999,13459.1268,3598.5164800000002,6336.15822,9655.098240000001,2381.094,2381.094,2381.094,4026.1234999999997,7296.831,7296.831,7087.49652,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,21939.13854,21939.13854 +16610400.0,33145.905,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,33145.905,33145.905,117294.6398,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,99658.6877,99658.6877 +16614000.0,52180.941000000006,86506.401,252598.69092,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,352988.80192,47808.917760000004,192313.11539999998,293048.5568,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,52180.941000000006,52180.941000000006,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,63838.310999999994,63838.310999999994,63838.310999999994,63838.310999999994,156890.69594,156890.69594 +16617600.0,68387.80500000001,9610.437,28062.476039999998,131773.08353,131773.08353,131773.08353,115930.41599999998,77076.69376,58862.34496,69947.14713000001,106586.12896000002,20422.071,20422.071,20422.071,41411.5415,68387.80500000001,68387.80500000001,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,205619.3337,205619.3337 +16621200.0,43743.774,12247.506,35762.71752,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,66547.60704,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,43743.774,43743.774,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,131522.94715999998,131522.94715999998 +16624800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +16628400.0,21477.84,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21477.84,21477.84,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64576.705599999994,64576.705599999994 +16632000.0,19822.731,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,52046.84503999999,24732.470400000002,40732.447770000006,62068.49184000001,14838.954000000002,14838.954000000002,14838.954000000002,25882.213000000003,19822.731,19822.731,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,59600.34454,59600.34454 +16635600.0,15850.332000000002,6152.045999999999,17963.974319999998,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,19460.903680000003,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,15850.332000000002,15850.332000000002,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,47656.664880000004,47656.664880000004 +16639200.0,12926.703000000001,4325.838,12631.44696,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,37436.46152,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12926.703000000001,12926.703000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12494.928,12494.928,12494.928,12494.928,38866.28702,38866.28702 +16642800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +16646400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +16650000.0,43673.994000000006,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,65054.72672,22619.26976,56160.293699999995,85577.5904,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,43673.994000000006,43673.994000000006,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,48774.357,48774.357,48774.357,48774.357,131313.14196,131313.14196 +16653600.0,32636.385000000002,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,85202.75008,40097.804800000005,71848.4718,109483.38560000001,22123.911,22123.911,22123.911,44862.503,32636.385000000002,32636.385000000002,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,31371.129,31371.129,31371.129,31371.129,98126.7309,98126.7309 +16657200.0,39993.72,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,108167.91935999999,40611.8848,83910.73991999999,127863.98463999998,22407.549,22407.549,22407.549,45437.66499999999,39993.72,39993.72,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,44950.689,44950.689,44950.689,44950.689,120247.7848,120247.7848 +16660800.0,43865.163,12160.968,35510.02656,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,114974.58536,38113.695360000005,80021.47419,121937.48447999998,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,43865.163,43865.163,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,46649.808,46649.808,46649.808,46649.808,131887.92342,131887.92342 +16664400.0,37434.165,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,64352.45503999999,38468.122240000004,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,37434.165,37434.165,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,26962.539000000004,26962.539000000004,26962.539000000004,26962.539000000004,112552.0561,112552.0561 +16668000.0,17084.37,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17084.37,17084.37,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51367.0058,51367.0058 +16671600.0,8611.244999999999,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8611.244999999999,8611.244999999999,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25891.1433,25891.1433 +16675200.0,3359.2860000000005,1052.154,3072.28968,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3359.2860000000005,3359.2860000000005,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10100.253240000002,10100.253240000002 +16678800.0,3151.71,3878.7300000000005,11325.8916,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,3151.71,3151.71,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,9476.141399999999,9476.141399999999 +16682400.0,2031.1499999999999,3916.416,11435.93472,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,4110.59496,513.5360000000001,905.16615,1379.3008,471.86699999999996,471.86699999999996,471.86699999999996,575.162,2031.1499999999999,2031.1499999999999,3036.76464,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,6106.990999999999,6106.990999999999 +16686000.0,2395.4399999999996,6548.795999999999,19122.484319999996,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,9036.307920000001,513.5360000000001,905.16615,1379.3008,789.732,789.732,789.732,575.162,2395.4399999999996,2395.4399999999996,7633.960619999999,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,7202.289599999999,7202.289599999999 +16689600.0,2795.9759999999997,9160.092,26747.46864,3659.66667,3659.66667,3659.66667,3220.2905,10831.78672,1028.16,1810.3323,2758.6016,1064.835,1064.835,1064.835,1150.3204999999998,2795.9759999999997,2795.9759999999997,13442.57434,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,8406.56784,8406.56784 +16693200.0,4579.7880000000005,8807.391,25717.58172,12808.83538,12808.83538,12808.83538,11271.011499999999,20534.77736,3598.5164800000002,6336.15822,9655.098240000001,2411.3160000000003,2411.3160000000003,2411.3160000000003,4026.1234999999997,4579.7880000000005,4579.7880000000005,13449.47188,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,13769.895919999999,13769.895919999999 +16696800.0,60957.12300000001,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,73956.30583999999,28788.164480000003,55985.3028,85310.9376,16516.296,16516.296,16516.296,32208.977499999994,60957.12300000001,60957.12300000001,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,23921.507999999998,23921.507999999998,23921.507999999998,23921.507999999998,183277.74982,183277.74982 +16700400.0,137840.727,23559.663,68794.21596,175650.59358000002,175650.59358000002,175650.59358000002,149743.45400000003,108890.23976,71055.51744,87994.62083999999,134087.04128,31853.864999999998,31853.864999999998,31853.864999999998,53489.9085,137840.727,137840.727,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,43418.076,43418.076,43418.076,43418.076,414441.11918,414441.11918 +16704000.0,96517.839,31092.555,90790.2606,132754.69427,132754.69427,132754.69427,115930.41599999998,77076.69376,147919.21408,155417.47956,236826.63552000004,20422.071,20422.071,20422.071,41411.5415,96517.839,96517.839,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,81086.409,81086.409,81086.409,81086.409,290196.96926,290196.96926 +16707600.0,72338.04000000001,15626.331,45628.88652,155944.04023,155944.04023,155944.04023,136862.2955,115551.74672000001,43696.332160000005,87893.31159,133932.66528000002,30431.024999999998,30431.024999999998,30431.024999999998,48888.6265,72338.04000000001,72338.04000000001,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,69598.98300000001,69598.98300000001,69598.98300000001,69598.98300000001,217496.3736,217496.3736 +16711200.0,29764.173,29182.305,85212.33059999999,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,246170.08023999998,31358.54272,115242.48624,175607.59808,17302.032,17302.032,17302.032,35084.777,29764.173,29764.173,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,33163.149,33163.149,33163.149,33163.149,89490.94682,89490.94682 +16714800.0,22731.636,7304.967000000001,21330.50364,96981.18507,96981.18507,96981.18507,85337.66500000001,62532.2088,27245.94624,52339.411109999994,79755.29312,15032.913,15032.913,15032.913,30483.495,22731.636,22731.636,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,21596.579999999998,21596.579999999998,21596.579999999998,21596.579999999998,68346.45224,68346.45224 +16718400.0,21631.572,8284.071,24189.48732,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,70880.00408,23133.34976,46745.79294000001,71231.68448000001,12763.794,12763.794,12763.794,25882.213000000003,21631.572,21631.572,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,22715.712,22715.712,22715.712,22715.712,65038.92648,65038.92648 +16722000.0,16729.806,5228.814,15268.13688,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,47506.10488,18506.68416,35243.659920000006,53704.62464000001,10211.037,10211.037,10211.037,20705.7725,16729.806,16729.806,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,16876.371,16876.371,16876.371,16876.371,50300.950039999996,50300.950039999996 +16725600.0,13431.743999999999,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,34304.25928,15936.305920000003,29059.405199999997,44280.9984,8792.835,8792.835,8792.835,17829.9695,13431.743999999999,13431.743999999999,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12363.609,12363.609,12363.609,12363.609,40384.776959999996,40384.776959999996 +16729200.0,10020.627,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,22198.882859999998,33826.869119999996,6807.357,6807.357,6807.357,13803.846000000001,10020.627,10020.627,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,30128.685179999997,30128.685179999997 +16732800.0,10946.379,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24623.78919,37521.96448,7658.277,7658.277,7658.277,15529.3285,10946.379,10946.379,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32912.11286,32912.11286 +16736400.0,18053.202,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,40263.276060000004,61353.56352,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,18053.202,18053.202,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,54279.960680000004,54279.960680000004 +16740000.0,32338.400999999998,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,71594.99823000001,109097.14016000001,22123.911,22123.911,22123.911,44862.503,32338.400999999998,32338.400999999998,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,97230.79233999999,97230.79233999999 +16743600.0,36493.206,10768.581,31444.25652,144556.86399,144556.86399,144556.86399,127201.42749999999,104004.23296,40611.8848,75459.70824,114986.22208,22407.549,22407.549,22407.549,45437.66499999999,36493.206,36493.206,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,34486.224,34486.224,34486.224,34486.224,109722.90604,109722.90604 +16747200.0,39411.492,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,36208.912000000004,69080.87214,105266.09088,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,39411.492,39411.492,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,43104.636,43104.636,43104.636,43104.636,118497.21928,118497.21928 +16750800.0,26786.936999999998,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,26786.936999999998,26786.936999999998,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,80539.39057999999,80539.39057999999 +16754400.0,17119.215000000004,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17119.215000000004,17119.215000000004,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51471.773100000006,51471.773100000006 +16758000.0,8656.389000000001,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8656.389000000001,8656.389000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26026.87626,26026.87626 +16761600.0,3815.9759999999997,3505.3979999999997,10235.762159999998,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3815.9759999999997,3815.9759999999997,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,11473.367839999999,11473.367839999999 +16765200.0,3380.6279999999997,4815.606,14061.56952,7319.33334,7319.33334,7319.33334,6440.577499999999,8814.831760000001,2056.2982400000005,3620.65977,5517.19584,1250.259,1250.259,1250.259,2300.6409999999996,3380.6279999999997,3380.6279999999997,3658.0242399999993,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,10164.42152,10164.42152 +16768800.0,2427.342,6956.643,20313.397559999998,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,10365.5912,513.5360000000001,905.16615,1379.3008,845.508,845.508,845.508,575.162,2427.342,2427.342,9997.373359999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,7298.20828,7298.20828 +16772400.0,2608.206,10134.078000000001,29591.50776,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,14527.414639999999,513.5360000000001,905.16615,1379.3008,852.3389999999999,852.3389999999999,852.3389999999999,575.162,2608.206,2608.206,17273.8163,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,7842.00604,7842.00604 +16776000.0,3498.057,11616.849,33921.19908,3659.66667,3659.66667,3659.66667,3220.2905,22257.12184,2582.68352,1810.3323,2758.6016,1165.7549999999999,1165.7549999999999,1165.7549999999999,1150.3204999999998,3498.057,3498.057,18705.55609,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,10517.49138,10517.49138 +16779600.0,5532.981,10659.789,31126.58388,12808.83538,12808.83538,12808.83538,11271.011499999999,24632.83384,9446.026880000001,6336.15822,9655.098240000001,2501.451,2501.451,2501.451,4026.1234999999997,5532.981,5532.981,17159.01603,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,16635.82954,16635.82954 +16783200.0,71206.39199999999,7474.782,21826.36344,102954.37405,102954.37405,102954.37405,90168.099,76570.56431999999,28788.164480000003,61134.8073,93157.8016,16780.65,16780.65,16780.65,32208.977499999994,71206.39199999999,71206.39199999999,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,24256.017000000003,24256.017000000003,24256.017000000003,24256.017000000003,214093.88528,214093.88528 +16786800.0,172252.863,45621.350999999995,133214.34491999997,176457.12920000002,176457.12920000002,176457.12920000002,149743.45400000003,117346.61816000001,90153.64928000001,97284.72978,148243.39776,41477.223,41477.223,41477.223,53489.9085,172252.863,172252.863,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,50342.297999999995,50342.297999999995,50342.297999999995,50342.297999999995,517906.94142,517906.94142 +16790400.0,114420.70200000002,33772.755000000005,98616.4446,132988.62566000002,132988.62566000002,132988.62566000002,115930.41599999998,78737.216,172172.24640000003,156977.64200999998,239204.02592000001,21201.057,21201.057,21201.057,41411.5415,114420.70200000002,114420.70200000002,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,84283.872,84283.872,84283.872,84283.872,344024.91068000003,344024.91068000003 +16794000.0,81552.084,17943.405,52394.7426,156205.14294000002,156205.14294000002,156205.14294000002,136862.2955,118276.98856,43696.332160000005,88666.84575,135111.384,31424.205,31424.205,31424.205,48888.6265,81552.084,81552.084,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,71432.06999999999,71432.06999999999,71432.06999999999,71432.06999999999,245199.93256,245199.93256 +16797600.0,32901.93,39969.176999999996,116709.99683999999,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,289777.6172,31358.54272,138636.23382000002,211255.21344000002,17302.032,17302.032,17302.032,35084.777,32901.93,32901.93,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,38500.629,38500.629,38500.629,38500.629,98925.1362,98925.1362 +16801200.0,23593.407000000003,8129.138999999999,23737.08588,96981.18507,96981.18507,96981.18507,85337.66500000001,70595.68952,27245.94624,55703.327399999995,84881.26079999999,15032.913,15032.913,15032.913,30483.495,23593.407000000003,23593.407000000003,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,23591.688000000002,23591.688000000002,23591.688000000002,23591.688000000002,70937.51038,70937.51038 +16804800.0,26004.663,9857.859,28784.94828,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,77643.53584,23294.26496,54187.8666,82571.9872,13123.875,13123.875,13123.875,25882.213000000003,26004.663,26004.663,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,26981.151,26981.151,26981.151,26981.151,78187.35342,78187.35342 +16808400.0,16651.386,5207.088,15204.69696,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,46975.35984,18506.68416,35087.85378,53467.205760000004,10211.037,10211.037,10211.037,20705.7725,16651.386,16651.386,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,16408.386,16408.386,16408.386,16408.386,50065.167239999995,50065.167239999995 +16812000.0,13556.028000000002,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,35620.20984,15936.305920000003,29193.16239,44484.81888,8792.835,8792.835,8792.835,17829.9695,13556.028000000002,13556.028000000002,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12496.241999999998,12496.241999999998,12496.241999999998,12496.241999999998,40758.45752,40758.45752 +16815600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21836.004960000002,33273.91232,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +16819200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +16822800.0,17802.174,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,40210.11708,61272.55936000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17802.174,17802.174,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53525.20316,53525.20316 +16826400.0,32370.216,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,71778.23877,109376.36384,22123.911,22123.911,22123.911,44862.503,32370.216,32370.216,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,97326.44944,97326.44944 +16830000.0,36532.824,10778.217,31472.39364,144556.86399,144556.86399,144556.86399,127201.42749999999,103732.00136000001,40611.8848,75578.80155,115167.69760000001,22407.549,22407.549,22407.549,45437.66499999999,36532.824,36532.824,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,33664.965000000004,33664.965000000004,33664.965000000004,33664.965000000004,109842.02416,109842.02416 +16833600.0,40696.149,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,42044.617600000005,69529.19757,105949.25344000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,40696.149,40696.149,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,43106.945999999996,43106.945999999996,43106.945999999996,43106.945999999996,122359.75465999999,122359.75465999999 +16837200.0,27045.351000000002,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,27045.351000000002,27045.351000000002,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,81316.35534,81316.35534 +16840800.0,17148.681,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17148.681,17148.681,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51560.36754,51560.36754 +16844400.0,8676.761999999999,3456.267,10092.29964,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8676.761999999999,8676.761999999999,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26088.13108,26088.13108 +16848000.0,4269.447,5030.904,14690.23968,12808.83538,12808.83538,12808.83538,11271.011499999999,9433.32864,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,4269.447,4269.447,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,12836.80398,12836.80398 +16851600.0,3576.813,6085.107,17768.51244,7319.33334,7319.33334,7319.33334,6440.577499999999,14514.0936,2056.2982400000005,3620.65977,5517.19584,1539.6149999999998,1539.6149999999998,1539.6149999999998,2300.6409999999996,3576.813,3576.813,9660.12021,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,10754.28442,10754.28442 +16855200.0,2748.2969999999996,9596.598,28022.06616,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,13094.32536,822.528,905.16615,1379.3008,893.865,893.865,893.865,575.162,2748.2969999999996,2748.2969999999996,18297.769099999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,8263.212979999998,8263.212979999998 +16858800.0,3083.88,12292.5,35894.1,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,22922.88184,8454.18432,905.16615,1379.3008,920.9970000000001,920.9970000000001,920.9970000000001,575.162,3083.88,3083.88,20038.156969999996,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,9272.1992,9272.1992 +16862400.0,4091.2740000000003,12343.527,36043.09884,3659.66667,3659.66667,3659.66667,3220.2905,23834.77448,14887.713280000002,1810.3323,2758.6016,1199.979,1199.979,1199.979,1150.3204999999998,4091.2740000000003,4091.2740000000003,20112.062619999997,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,1065.021,1065.021,1065.021,1065.021,12301.09716,12301.09716 +16866000.0,12091.734,11381.007,33232.54044,12808.83538,12808.83538,12808.83538,11271.011499999999,26154.2648,19779.81824,6336.15822,9655.098240000001,2549.4269999999997,2549.4269999999997,2549.4269999999997,4026.1234999999997,12091.734,12091.734,18506.41247,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,3918.3300000000004,3918.3300000000004,3918.3300000000004,3918.3300000000004,36355.813559999995,36355.813559999995 +16869600.0,44485.893,13947.669,40727.19348,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,64221.12512,28788.164480000003,60483.81024,92165.80608000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,44485.893,44485.893,304678.1897899999,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,26711.487,26711.487,26711.487,26711.487,133754.25162,133754.25162 +16873200.0,72095.694,127585.20000000001,372548.784,170349.21101000003,170349.21101000003,170349.21101000003,149743.45400000003,432354.18,47808.917760000004,271487.21439,413694.80288,34372.212,34372.212,34372.212,53489.9085,72095.694,72095.694,20083.98665,73611.07875,109416.96149999999,190843.5375,54163.213500000005,68885.42925,99817.995,99817.995,99817.995,99817.995,216767.71996,216767.71996 +16876800.0,145604.83800000002,9610.437,28062.476039999998,134047.80653,134047.80653,134047.80653,115930.41599999998,79295.1696,90068.49152,86257.14909,131439.46528,25316.679,25316.679,25316.679,41411.5415,145604.83800000002,145604.83800000002,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,33751.713,33751.713,33751.713,33751.713,437785.21292,437785.21292 +16880400.0,114801.22799999997,38470.96799999999,112335.22656,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,129706.67072000001,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,114801.22799999997,114801.22799999997,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,34792.716,34792.716,34792.716,34792.716,345169.0255199999,345169.0255199999 +16884000.0,24826.242000000002,9059.565,26453.929799999998,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24826.242000000002,24826.242000000002,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74644.23428,74644.23428 +16887600.0,23535.441,9191.625,26839.545,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27736.003200000006,47973.77214,73102.89088,15117.795000000002,15117.795000000002,15117.795000000002,30483.495,23535.441,23535.441,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,70763.22593999999,70763.22593999999 +16891200.0,25655.876999999997,9737.151,28432.48092,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,63871.63031999999,32891.12128000001,40732.447770000006,62068.49184000001,21476.184,21476.184,21476.184,25882.213000000003,25655.876999999997,25655.876999999997,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,77138.67017999999,77138.67017999999 +16894800.0,16388.478,6498.9,18976.787999999997,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,19630.44672,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,16388.478,16388.478,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,49274.69052,49274.69052 +16898400.0,14901.444,4871.802,14225.661839999999,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,50600.90191999999,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,14901.444,14901.444,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13968.0,13968.0,13968.0,13968.0,44803.67496,44803.67496 +16902000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +16905600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +16909200.0,53784.63,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,84598.05312,22619.26976,70585.83252,107559.36384,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,53784.63,53784.63,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,63752.19,63752.19,63752.19,63752.19,161712.45419999998,161712.45419999998 +16912800.0,32517.486,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,86874.94064,40097.804800000005,71811.28563,109426.72096,22123.911,22123.911,22123.911,44862.503,32517.486,32517.486,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,31197.759000000002,31197.759000000002,31197.759000000002,31197.759000000002,97769.24124,97769.24124 +16916400.0,44740.545000000006,12908.712,37693.43904,144556.86399,144556.86399,144556.86399,127201.42749999999,124917.3956,40611.8848,86409.31824000001,131671.34208,22407.549,22407.549,22407.549,45437.66499999999,44740.545000000006,44740.545000000006,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,50973.84000000001,50973.84000000001,50973.84000000001,50973.84000000001,134519.9053,134519.9053 +16920000.0,61669.850999999995,18067.097999999998,52755.926159999995,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,131651.03824,51386.58816000001,101989.57482,155412.68544,20072.157,20072.157,20072.157,40261.221,61669.850999999995,61669.850999999995,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,53404.469999999994,53404.469999999994,53404.469999999994,53404.469999999994,185420.68533999997,185420.68533999997 +16923600.0,51752.526,7741.74,22605.8808,107609.59528000001,107609.59528000001,107609.59528000001,93388.3895,65468.77103999999,47476.99072000001,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,51752.526,51752.526,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,27597.135000000002,27597.135000000002,27597.135000000002,27597.135000000002,155602.59484,155602.59484 +16927200.0,17157.654,5855.232,17097.27744,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17157.654,17157.654,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51587.346359999996,51587.346359999996 +16930800.0,9274.593,6393.498,18669.01416,36596.67484,36596.67484,36596.67484,32202.8945,22311.46888,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,9274.593,9274.593,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,27885.60962,27885.60962 +16934400.0,4956.945,6382.032,18635.53344,12808.83538,12808.83538,12808.83538,11271.011499999999,18150.70248,3598.5164800000002,6336.15822,9655.098240000001,2322.621,2322.621,2322.621,4026.1234999999997,4956.945,4956.945,9184.99322,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,14903.881299999997,14903.881299999997 +16938000.0,4051.635,9864.905999999999,28805.525519999996,7319.33334,7319.33334,7319.33334,6440.577499999999,17103.9292,5407.24032,3620.65977,5517.19584,1771.7069999999999,1771.7069999999999,1771.7069999999999,2300.6409999999996,4051.635,4051.635,20004.751519999998,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,12181.9159,12181.9159 +16941600.0,3164.202,12349.998,36061.99416,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,23126.18392,8581.219200000001,905.16615,1379.3008,923.559,923.559,923.559,575.162,3164.202,3164.202,20198.767679999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,9513.700680000002,9513.700680000002 +16945200.0,3678.2250000000004,12186.350999999999,35584.14492,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,22738.89848,17315.20448,905.16615,1379.3008,914.2169999999999,914.2169999999999,914.2169999999999,575.162,3678.2250000000004,3678.2250000000004,19844.968129999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,1076.475,1076.475,1076.475,1076.475,11059.1965,11059.1965 +16948800.0,5122.764,12158.427,35502.60684,3659.66667,3659.66667,3659.66667,3220.2905,23481.68224,20158.235520000002,1810.3323,2758.6016,2312.268,2312.268,2312.268,1150.3204999999998,5122.764,5122.764,19764.0014,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2034.3810000000003,2034.3810000000003,2034.3810000000003,2034.3810000000003,15402.443759999998,15402.443759999998 +16952400.0,14345.103,11252.253,32856.578760000004,12808.83538,12808.83538,12808.83538,11271.011499999999,33812.89336,19635.788800000002,7117.65222,10845.946240000001,5465.106,5465.106,5465.106,4026.1234999999997,14345.103,14345.103,20203.59692,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,5076.363,5076.363,5076.363,5076.363,43130.94302,43130.94302 +16956000.0,50601.36,17847.744,52115.41247999999,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,65616.68072,28788.164480000003,65363.22114,99601.09888,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,50601.36,50601.36,301618.9865,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,28291.011,28291.011,28291.011,28291.011,152141.42239999998,152141.42239999998 +16959600.0,69998.598,125711.52900000001,367077.66468,171013.72398,171013.72398,171013.72398,149743.45400000003,419987.3668,47808.917760000004,286836.68874,437084.47808000003,38086.569,38086.569,38086.569,53489.9085,69998.598,69998.598,20083.98665,76934.8125,114357.42499999999,199460.625,56608.825,71995.7875,98916.126,98916.126,98916.126,98916.126,210462.45132,210462.45132 +16963200.0,159534.483,9610.437,28062.476039999998,134579.71076000002,134579.71076000002,134579.71076000002,115930.41599999998,89353.75784,86221.44320000001,96320.74872,146774.47424,28162.638,28162.638,28162.638,41411.5415,159534.483,159534.483,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,41532.149999999994,41532.149999999994,41532.149999999994,41532.149999999994,479667.01222,479667.01222 +16966800.0,123765.297,43277.973,126371.68116,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,132879.84448,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,123765.297,123765.297,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,36105.456,36105.456,36105.456,36105.456,372120.99298,372120.99298 +16970400.0,24877.085999999996,9145.710000000001,26705.4732,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24877.085999999996,24877.085999999996,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74797.10523999999,74797.10523999999 +16974000.0,23556.735,8973.738000000001,26203.31496,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27694.006400000006,47973.77214,73102.89088,15321.273000000001,15321.273000000001,15321.273000000001,30483.495,23556.735,23556.735,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,70827.24990000001,70827.24990000001 +16977600.0,25488.165,9640.851,28151.284920000002,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,64639.69544,32488.94208,40732.447770000006,62068.49184000001,22238.187,22238.187,22238.187,25882.213000000003,25488.165,25488.165,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,76634.4161,76634.4161 +16981200.0,16550.748,6496.152,18968.76384,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,19838.18944,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,16550.748,16550.748,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,49762.58232,49762.58232 +16984800.0,15446.229,4628.343,13514.761559999999,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,50616.74,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,15446.229,15446.229,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,14201.526000000002,14201.526000000002,14201.526000000002,14201.526000000002,46441.66185999999,46441.66185999999 +16988400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6940.497000000001,6940.497000000001,6940.497000000001,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +16992000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +16995600.0,55915.188,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,84102.17288,22619.26976,72901.14132,111087.45344,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,55915.188,55915.188,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,67301.091,67301.091,67301.091,67301.091,168118.33192,168118.33192 +16999200.0,32327.273999999998,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,84457.76464,40097.804800000005,71580.23775,109074.648,22123.911,22123.911,22123.911,44862.503,32327.273999999998,32327.273999999998,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30852.392999999996,30852.392999999996,30852.392999999996,30852.392999999996,97197.33716,97197.33716 +17002800.0,41871.174,12414.011999999999,36248.91504,144556.86399,144556.86399,144556.86399,127201.42749999999,118507.1488,40611.8848,83003.97504,126482.24768,22407.549,22407.549,22407.549,45437.66499999999,41871.174,41871.174,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,46890.488999999994,46890.488999999994,46890.488999999994,46890.488999999994,125892.66315999998,125892.66315999998 +17006400.0,61837.917,17960.646,52445.086319999995,128095.23617,128095.23617,128095.23617,112710.12550000001,132174.43072,47184.579840000006,106519.17297,162314.93024000002,19906.539,19906.539,19906.539,40261.221,61837.917,61837.917,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,53937.663,53937.663,53937.663,53937.663,185926.00377999997,185926.00377999997 +17010000.0,54863.505,7741.74,22605.8808,108057.24644,108057.24644,108057.24644,93388.3895,65566.70783999999,53425.44576000001,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,54863.505,54863.505,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,27677.352000000006,27677.352000000006,27677.352000000006,27677.352000000006,164956.27169999998,164956.27169999998 +17013600.0,17178.939,5695.896,16632.01632,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17178.939,17178.939,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51651.34326,51651.34326 +17017200.0,9576.002999999999,7328.613,21399.54996,36596.67484,36596.67484,36596.67484,32202.8945,24873.88568,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,9576.002999999999,9576.002999999999,4377.523279999999,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,28791.849019999998,28791.849019999998 +17020800.0,5561.775,9415.203,27492.39276,12808.83538,12808.83538,12808.83538,11271.011499999999,22068.74096,6173.747200000001,6336.15822,9655.098240000001,2592.342,2592.342,2592.342,4026.1234999999997,5561.775,5561.775,19126.580199999997,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,16722.4035,16722.4035 +17024400.0,4800.411,15216.855,44433.2166,7319.33334,7319.33334,7319.33334,6440.577499999999,30547.550799999997,15058.224640000002,3620.65977,5517.19584,1957.1399999999999,1957.1399999999999,1957.1399999999999,2300.6409999999996,4800.411,4800.411,27995.45541,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,14433.235739999998,14433.235739999998 +17028000.0,4762.209,16469.295,48090.34139999999,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,31787.680639999995,32533.84384,905.16615,1379.3008,1359.351,1359.351,1359.351,575.162,4762.209,4762.209,28049.447659999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2088.525,2088.525,2088.525,2088.525,14318.37506,14318.37506 +17031600.0,7516.823999999999,16936.068,49453.31856,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,38350.60256,34109.637760000005,4033.11762,6145.70304,7742.487000000001,7742.487000000001,7742.487000000001,575.162,7516.823999999999,7516.823999999999,30036.165249999995,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2506.3559999999998,2506.3559999999998,2506.3559999999998,2506.3559999999998,22600.584159999995,22600.584159999995 +17035200.0,8739.519,17507.07,51120.644400000005,3883.6591200000003,3883.6591200000003,3883.6591200000003,3220.2905,42885.25744,35865.99616,10389.75987,15832.01504,9890.646,9890.646,9890.646,1150.3204999999998,8739.519,8739.519,31581.589389999994,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2977.02,2977.02,2977.02,2977.02,26276.820459999995,26276.820459999995 +17038800.0,21417.534000000003,13547.081999999999,39557.479439999996,13864.267780000002,13864.267780000002,13864.267780000002,11271.011499999999,107337.89184000001,27362.906240000008,16406.22522,24999.962240000004,8700.642,8700.642,8700.642,4026.1234999999997,21417.534000000003,21417.534000000003,43326.94561,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,16033.625999999998,16033.625999999998,16033.625999999998,16033.625999999998,64395.38556,64395.38556 +17042400.0,65759.802,21278.222999999998,62132.411159999996,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,115661.50368,28788.164480000003,70599.64632,107580.41344,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,65759.802,65759.802,340762.93966,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,36860.448000000004,36860.448000000004,36860.448000000004,36860.448000000004,197717.80467999997,197717.80467999997 +17046000.0,64026.288,109981.959,321147.32028,170701.68522,170701.68522,170701.68522,149743.45400000003,397013.65943999996,47808.917760000004,243920.87328,371688.94976000005,34848.600000000006,34848.600000000006,34848.600000000006,53489.9085,64026.288,64026.288,20083.98665,71640.5715,106487.9606,185734.81500000003,52713.309400000006,67041.42370000001,88932.25200000001,88932.25200000001,88932.25200000001,88932.25200000001,192505.70592,192505.70592 +17049600.0,91466.274,9610.437,28062.476039999998,133018.87797,133018.87797,133018.87797,115930.41599999998,77076.69376,68314.27968,71836.18910999999,109464.66912,22208.745,22208.745,22208.745,41411.5415,91466.274,91466.274,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28503.771000000004,28503.771000000004,28503.771000000004,28503.771000000004,275008.59716,275008.59716 +17053200.0,50480.702999999994,14221.380000000001,41526.429599999996,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,73696.19136000001,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,50480.702999999994,50480.702999999994,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,151778.64701999997,151778.64701999997 +17056800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +17060400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +17064000.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +17067600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +17071200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +17074800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +17078400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +17082000.0,26871.567000000003,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,50331.00632,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,26871.567000000003,26871.567000000003,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,80793.84478,80793.84478 +17085600.0,32000.010000000002,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,32000.010000000002,32000.010000000002,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,96213.3634,96213.3634 +17089200.0,35182.242,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88230.428,40611.8848,73411.5081,111865.15520000001,22407.549,22407.549,22407.549,45437.66499999999,35182.242,35182.242,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,32006.559,32006.559,32006.559,32006.559,105781.27428,105781.27428 +17092800.0,32509.968,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,79541.37816,35985.208320000005,66266.21379,100977.08768,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,32509.968,32509.968,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,34464.498,34464.498,34464.498,34464.498,97746.63712,97746.63712 +17096400.0,23820.648,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23820.648,23820.648,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,26526.521999999997,26526.521999999997,26526.521999999997,26526.521999999997,71620.74832,71620.74832 +17100000.0,16556.679,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16556.679,16556.679,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49780.41486,49780.41486 +17103600.0,8646.047999999999,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8646.047999999999,8646.047999999999,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25995.784319999995,25995.784319999995 +17107200.0,3388.9530000000004,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3388.9530000000004,3388.9530000000004,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10189.45202,10189.45202 +17110800.0,2175.639,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2175.639,2175.639,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6541.42126,6541.42126 +17114400.0,928.284,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,928.284,928.284,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2791.04056,2791.04056 +17118000.0,943.848,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,943.848,943.848,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2837.83632,2837.83632 +17121600.0,2368.5600000000004,3768.918,11005.24056,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,2368.5600000000004,2368.5600000000004,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,7121.4704,7121.4704 +17125200.0,5980.695,4329.012,12640.71504,12808.83538,12808.83538,12808.83538,11271.011499999999,13134.07824,3598.5164800000002,6336.15822,9655.098240000001,2094.984,2094.984,2094.984,4026.1234999999997,5980.695,5980.695,7121.921689999999,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,17981.956299999998,17981.956299999998 +17128800.0,29679.279000000002,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,29679.279000000002,29679.279000000002,53799.816329999994,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,89235.69886,89235.69886 +17132400.0,49093.326,76176.804,222436.26768,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,324401.54056,47808.917760000004,181043.61933,275875.99136,26439.261000000006,26439.261000000006,26439.261000000006,53489.9085,49093.326,49093.326,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,61927.78200000001,61927.78200000001,61927.78200000001,61927.78200000001,147607.26684,147607.26684 +17136000.0,68952.381,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,63146.8672,70092.46251,106807.56192,20422.071,20422.071,20422.071,41411.5415,68952.381,68952.381,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,207316.82554,207316.82554 +17139600.0,46666.146,16086.534000000003,46972.679280000004,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,80709.27616000001,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,46666.146,46666.146,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,140309.54564,140309.54564 +17143200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +17146800.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +17150400.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,52296.38823999999,23133.34976,40732.447770000006,62068.49184000001,14972.628,14972.628,14972.628,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +17154000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +17157600.0,12662.502,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,37200.589759999995,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12662.502,12662.502,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12354.599999999999,12354.599999999999,12354.599999999999,12354.599999999999,38071.922679999996,38071.922679999996 +17161200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +17164800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +17168400.0,35170.152,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,59752.35128,22619.26976,44239.06641000001,67411.91072000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,35170.152,35170.152,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,30243.740999999998,30243.740999999998,30243.740999999998,30243.740999999998,105744.92367999999,105744.92367999999 +17172000.0,32466.543,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,84048.71936,40097.804800000005,71658.59001,109194.04192,22123.911,22123.911,22123.911,44862.503,32466.543,32466.543,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,31097.733,31097.733,31097.733,31097.733,97616.07262,97616.07262 +17175600.0,37169.52,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88663.42312,40611.8848,79474.53465,121104.0528,22407.549,22407.549,22407.549,45437.66499999999,37169.52,37169.52,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,43187.211,43187.211,43187.211,43187.211,111756.35679999998,111756.35679999998 +17179200.0,35868.945,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,93097.29711999999,35985.208320000005,75636.92576999999,115256.26783999999,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,35868.945,35868.945,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,41432.61,41432.61,41432.61,41432.61,107845.9613,107845.9613 +17182800.0,25283.559,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,63357.184720000005,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,25283.559,25283.559,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,26307.594,26307.594,26307.594,26307.594,76019.23406,76019.23406 +17186400.0,17000.583,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17000.583,17000.583,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51115.08622,51115.08622 +17190000.0,8527.017,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8527.017,8527.017,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25637.89778,25637.89778 +17193600.0,3299.31,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3299.31,3299.31,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9919.9254,9919.9254 +17197200.0,2119.2329999999997,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2119.2329999999997,2119.2329999999997,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6371.827219999999,6371.827219999999 +17200800.0,1172.5529999999999,1473.225,4301.817,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1172.5529999999999,1172.5529999999999,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,3525.4760199999996,3525.4760199999996 +17204400.0,2086.053,4377.642,12782.714639999998,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,2557.3243199999997,513.5360000000001,905.16615,1379.3008,443.92499999999995,443.92499999999995,443.92499999999995,575.162,2086.053,2086.053,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,6272.066019999999,6272.066019999999 +17208000.0,2490.972,5788.155,16901.4126,3659.66667,3659.66667,3659.66667,3220.2905,10759.45248,1028.16,1810.3323,2758.6016,1077.717,1077.717,1077.717,1150.3204999999998,2490.972,2490.972,7563.30653,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,7489.5224800000005,7489.5224800000005 +17211600.0,6419.895,6981.015,20384.5638,12808.83538,12808.83538,12808.83538,11271.011499999999,14512.329919999998,3598.5164800000002,6336.15822,9655.098240000001,2378.382,2378.382,2378.382,4026.1234999999997,6419.895,6419.895,12256.29847,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,19302.4843,19302.4843 +17215200.0,31823.858999999997,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,60848.99816,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,31823.858999999997,31823.858999999997,95122.58885999997,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,95683.73606,95683.73606 +17218800.0,49982.558999999994,73046.253,213295.05875999996,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,316453.45823999995,47808.917760000004,179709.1338,273842.48960000003,26683.614,26683.614,26683.614,53489.9085,49982.558999999994,49982.558999999994,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,62141.586,62141.586,62141.586,62141.586,150280.89406,150280.89406 +17222400.0,64287.303,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,58622.13632,68111.96448,103789.66016,20422.071,20422.071,20422.071,41411.5415,64287.303,64287.303,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,193290.49102,193290.49102 +17226000.0,43063.788,13795.587,40283.11403999999,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,71676.63488000001,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,43063.788,43063.788,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,129478.45592000001,129478.45592000001 +17229600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +17233200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +17236800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,50238.29047999999,23133.34976,40732.447770000006,62068.49184000001,13870.155,13870.155,13870.155,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +17240400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +17244000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,34894.478879999995,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +17247600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +17251200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +17254800.0,29391.543,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,53562.76888,22619.26976,40482.91548,61688.252160000004,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,29391.543,29391.543,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,18079.949999999997,18079.949999999997,18079.949999999997,18079.949999999997,88370.57262,88370.57262 +17258400.0,31831.362,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70934.43777,108090.57184000002,22123.911,22123.911,22123.911,44862.503,31831.362,31831.362,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,95706.29508,95706.29508 +17262000.0,34852.835999999996,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,87525.50496,40611.8848,73374.19152000001,111808.29184,22407.549,22407.549,22407.549,45437.66499999999,34852.835999999996,34852.835999999996,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,33771.231,33771.231,33771.231,33771.231,104790.86024,104790.86024 +17265600.0,32990.151,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,78820.3192,35985.208320000005,68564.58378,104479.36576,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,32990.151,32990.151,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,36122.801999999996,36122.801999999996,36122.801999999996,36122.801999999996,99190.38733999999,99190.38733999999 +17269200.0,23474.763,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23474.763,23474.763,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,25598.439,25598.439,25598.439,25598.439,70580.78742,70580.78742 +17272800.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +17276400.0,8456.697,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8456.697,8456.697,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25426.46898,25426.46898 +17280000.0,3283.041,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3283.041,3283.041,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9871.00994,9871.00994 +17283600.0,1986.75,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1986.75,1986.75,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,5973.495,5973.495 +17287200.0,793.3050000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,793.3050000000001,793.3050000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2385.2037,2385.2037 +17290800.0,802.4100000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,802.4100000000001,802.4100000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2412.5794,2412.5794 +17294400.0,1215.5220000000002,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1215.5220000000002,1215.5220000000002,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3654.66948,3654.66948 +17298000.0,3253.6590000000006,1621.1100000000001,4733.6412,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3253.6590000000006,3253.6590000000006,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9782.66806,9782.66806 +17301600.0,27398.547,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,66006.3664,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,27398.547,27398.547,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,23394.063,23394.063,23394.063,23394.063,82378.29798,82378.29798 +17305200.0,58431.49800000001,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,104119.9876,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,58431.49800000001,58431.49800000001,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,39403.557,39403.557,39403.557,39403.557,175684.03732,175684.03732 +17308800.0,49283.715,10746.033,31378.41636,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,63241.21856000001,100624.71824999999,153332.90399999998,20422.071,20422.071,20422.071,41411.5415,49283.715,49283.715,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,58513.98899999999,58513.98899999999,58513.98899999999,58513.98899999999,148179.70309999998,148179.70309999998 +17312400.0,48240.77100000001,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,103024.98176,43696.332160000005,79463.73477000001,121087.59584000002,25580.712,25580.712,25580.712,48888.6265,48240.77100000001,48240.77100000001,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,58202.949,58202.949,58202.949,58202.949,145043.91814,145043.91814 +17316000.0,25271.202,15923.718,46497.25656,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,161301.34896,31358.54272,84346.15959,128527.48127999999,17302.032,17302.032,17302.032,35084.777,25271.202,25271.202,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,26630.295,26630.295,26630.295,26630.295,75982.08068,75982.08068 +17319600.0,22585.044,7195.505999999999,21010.87752,96981.18507,96981.18507,96981.18507,85337.66500000001,61509.30944,27245.94624,49232.726129999995,75021.29695999999,15032.913,15032.913,15032.913,30483.495,22585.044,22585.044,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,21615.636,21615.636,21615.636,21615.636,67905.69896,67905.69896 +17323200.0,20186.4,7169.61,20935.261199999997,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,61902.1896,23133.34976,44276.363670000006,67468.74464,12763.794,12763.794,12763.794,25882.213000000003,20186.4,20186.4,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,20791.662,20791.662,20791.662,20791.662,60693.776,60693.776 +17326800.0,15254.25,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38732.7196,18506.68416,33345.378150000004,50812.0048,10211.037,10211.037,10211.037,20705.7725,15254.25,15254.25,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,45864.445,45864.445 +17330400.0,12572.445,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28223.119680000003,43006.65856,8792.835,8792.835,8792.835,17829.9695,12572.445,12572.445,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37801.1513,37801.1513 +17334000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +17337600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +17341200.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +17344800.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +17348400.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +17352000.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +17355600.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +17359200.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +17362800.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +17366400.0,3122.5619999999994,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3122.5619999999994,3122.5619999999994,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9388.503079999999,9388.503079999999 +17370000.0,2022.8999999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2022.8999999999999,2022.8999999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6082.186,6082.186 +17373600.0,831.309,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,831.309,831.309,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2499.46906,2499.46906 +17377200.0,845.322,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,845.322,845.322,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2541.60148,2541.60148 +17380800.0,1263.396,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1263.396,1263.396,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3798.61064,3798.61064 +17384400.0,3216.996,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3216.996,3216.996,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9672.434640000001,9672.434640000001 +17388000.0,24872.871,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,62823.18679999999,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,24872.871,24872.871,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22700.322,22700.322,22700.322,22700.322,74784.43214,74784.43214 +17391600.0,46545.333,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,100514.49423999999,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,46545.333,46545.333,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,37925.613000000005,37925.613000000005,37925.613000000005,37925.613000000005,139946.30122,139946.30122 +17395200.0,41789.994000000006,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,77480.10207000001,118064.91744,20422.071,20422.071,20422.071,41411.5415,41789.994000000006,41789.994000000006,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,39248.058,39248.058,39248.058,39248.058,125648.58196000001,125648.58196000001 +17398800.0,43448.199,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,97352.67736000002,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,43448.199,43448.199,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,47035.14600000001,47035.14600000001,47035.14600000001,47035.14600000001,130634.25166,130634.25166 +17402400.0,24630.870000000003,10092.42,29469.8664,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,111242.802,31358.54272,70698.87867,107731.62464000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +17406000.0,21433.143,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,48298.52685,73597.7552,15032.913,15032.913,15032.913,30483.495,21433.143,21433.143,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64442.31662,64442.31662 +17409600.0,19036.044,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,49043.61336,23133.34976,42052.96977,64080.715840000004,12763.794,12763.794,12763.794,25882.213000000003,19036.044,19036.044,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,57235.03896,57235.03896 +17413200.0,14683.814999999999,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32815.27599,50004.23008000001,10211.037,10211.037,10211.037,20705.7725,14683.814999999999,14683.814999999999,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,44149.3371,44149.3371 +17416800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +17420400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +17424000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +17427600.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +17431200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +17434800.0,32625.135000000002,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,72616.87650000001,110654.28800000002,22407.549,22407.549,22407.549,45437.66499999999,32625.135000000002,32625.135000000002,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,98092.9059,98092.9059 +17438400.0,31784.876999999997,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31784.876999999997,31784.876999999997,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,95566.53017999999,95566.53017999999 +17442000.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +17445600.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +17449200.0,8520.309000000001,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8520.309000000001,8520.309000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25617.729059999998,25617.729059999998 +17452800.0,3324.7350000000006,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3324.7350000000006,3324.7350000000006,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9996.3699,9996.3699 +17456400.0,2110.941,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2110.941,2110.941,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6346.895939999999,6346.895939999999 +17460000.0,893.8589999999999,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,893.8589999999999,893.8589999999999,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2687.5360599999995,2687.5360599999995 +17463600.0,894.03,235.2,686.7839999999999,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,894.03,894.03,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2688.0501999999997,2688.0501999999997 +17467200.0,1291.692,2831.676,8268.493919999999,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1291.692,1291.692,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3883.6872799999996,3883.6872799999996 +17470800.0,4010.2019999999998,3331.205999999999,9727.121519999999,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,4010.2019999999998,4010.2019999999998,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,12057.34068,12057.34068 +17474400.0,27133.535999999996,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,27133.535999999996,27133.535999999996,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,81581.49823999999,81581.49823999999 +17478000.0,47873.136,61129.743,178498.84956,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,308224.9508,47808.917760000004,163909.66767000002,249767.11264000004,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,47873.136,47873.136,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,54448.818,54448.818,54448.818,54448.818,143938.56224,143938.56224 +17481600.0,46541.79,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,50006.666880000004,68300.11713,104076.36896,20422.071,20422.071,20422.071,41411.5415,46541.79,46541.79,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,139935.6486,139935.6486 +17485200.0,36265.29,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,47906.95744,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,36265.29,36265.29,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,109037.63859999999,109037.63859999999 +17488800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +17492400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +17496000.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +17499600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +17503200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +17506800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +17510400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +17514000.0,20951.139,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,20951.139,20951.139,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,62993.091259999994,62993.091259999994 +17517600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +17521200.0,32505.966,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,32505.966,32505.966,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,97734.60444,97734.60444 +17524800.0,30922.017,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,30922.017,30922.017,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,92972.19778,92972.19778 +17528400.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +17532000.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +17535600.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +17539200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +17542800.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +17546400.0,744.96,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,744.96,744.96,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2239.8464,2239.8464 +17550000.0,883.6890000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,883.6890000000001,883.6890000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2656.9582600000003,2656.9582600000003 +17553600.0,1295.157,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1295.157,1295.157,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3894.10538,3894.10538 +17557200.0,3181.2299999999996,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3181.2299999999996,3181.2299999999996,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9564.898199999998,9564.898199999998 +17560800.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +17564400.0,37551.981,15605.966999999999,45569.42363999999,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,152845.98672000002,47808.917760000004,101211.84339,154227.57087999998,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,37473.603,37473.603,37473.603,37473.603,112906.28953999998,112906.28953999998 +17568000.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +17571600.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +17575200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +17578800.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +17582400.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +17586000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +17589600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +17593200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +17596800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +17600400.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +17604000.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +17607600.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +17611200.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +17614800.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +17618400.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +17622000.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +17625600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +17629200.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +17632800.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +17636400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +17640000.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +17643600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +17647200.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +17650800.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +17654400.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +17658000.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +17661600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +17665200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +17668800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +17672400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +17676000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +17679600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +17683200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +17686800.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +17690400.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +17694000.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +17697600.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +17701200.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +17704800.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +17708400.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +17712000.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +17715600.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +17719200.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +17722800.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +17726400.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +17730000.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +17733600.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +17737200.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +17740800.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +17744400.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +17748000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +17751600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +17755200.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +17758800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +17762400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +17766000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +17769600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +17773200.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +17776800.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +17780400.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +17784000.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +17787600.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +17791200.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +17794800.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +17798400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +17802000.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +17805600.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +17809200.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +17812800.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +17816400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +17820000.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +17823600.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +17827200.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +17830800.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +17834400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +17838000.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +17841600.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +17845200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +17848800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +17852400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +17856000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +17859600.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +17863200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +17866800.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +17870400.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +17874000.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +17877600.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +17881200.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +17884800.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +17888400.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +17892000.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +17895600.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +17899200.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +17902800.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +17906400.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +17910000.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +17913600.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +17917200.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +17920800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +17924400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +17928000.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +17931600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +17935200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +17938800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +17942400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +17946000.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +17949600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +17953200.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +17956800.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +17960400.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +17964000.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +17967600.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +17971200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +17974800.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +17978400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +17982000.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +17985600.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +17989200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +17992800.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +17996400.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +18000000.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +18003600.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +18007200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +18010800.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +18014400.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +18018000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +18021600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +18025200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +18028800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +18032400.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +18036000.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +18039600.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +18043200.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +18046800.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +18050400.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +18054000.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +18057600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18061200.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +18064800.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18068400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18072000.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +18075600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18079200.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +18082800.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +18086400.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +18090000.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +18093600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +18097200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +18100800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +18104400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +18108000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +18111600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +18115200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +18118800.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +18122400.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +18126000.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +18129600.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +18133200.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +18136800.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +18140400.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +18144000.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18147600.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +18151200.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18154800.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18158400.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +18162000.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18165600.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +18169200.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +18172800.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +18176400.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +18180000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +18183600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +18187200.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +18190800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +18194400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +18198000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +18201600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +18205200.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +18208800.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +18212400.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +18216000.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +18219600.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +18223200.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +18226800.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +18230400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18234000.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +18237600.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18241200.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18244800.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +18248400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18252000.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +18255600.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84801.73968,129221.69855999999,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +18259200.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +18262800.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +18266400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +18270000.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +18273600.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +18277200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +18280800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +18284400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +18288000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +18291600.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +18295200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +18298800.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +18302400.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +18306000.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +18309600.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +18313200.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +18316800.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18320400.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +18324000.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18327600.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18331200.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +18334800.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18338400.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +18342000.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,92774.34054,141370.42368,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +18345600.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +18349200.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +18352800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +18356400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +18360000.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +18363600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +18367200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +18370800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +18374400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +18378000.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +18381600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +18385200.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +18388800.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +18392400.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +18396000.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +18399600.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +18403200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18406800.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +18410400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18414000.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18417600.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +18421200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18424800.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +18428400.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,93691.20495,142767.5504,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +18432000.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +18435600.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +18439200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +18442800.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +18446400.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +18450000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +18453600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +18457200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +18460800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +18464400.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +18468000.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +18471600.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +18475200.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +18478800.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +18482400.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +18486000.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +18489600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18493200.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +18496800.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18500400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18504000.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +18507600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18511200.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +18514800.0,37742.112,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37742.112,37742.112,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,113477.95008,113477.95008 +18518400.0,34778.801999999996,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,34778.801999999996,34778.801999999996,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,104568.26468,104568.26468 +18522000.0,39379.665,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,39379.665,39379.665,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,118401.5261,118401.5261 +18525600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,63430.74297,96656.37024,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +18529200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,48113.982209999995,73316.54432,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +18532800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,41469.017940000005,63190.88448000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +18536400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32749.264380000004,49903.640960000004,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +18540000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +18543600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +18547200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +18550800.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +18554400.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +18558000.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71810.76882,109425.93344,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +18561600.0,28712.118000000002,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28712.118000000002,28712.118000000002,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,86327.76812,86327.76812 +18565200.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +18568800.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +18572400.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +18576000.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18579600.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +18583200.0,793.017,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,793.017,793.017,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2384.33778,2384.33778 +18586800.0,845.517,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,845.517,845.517,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2542.1877799999997,2542.1877799999997 +18590400.0,1260.165,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1260.165,1260.165,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3788.8961,3788.8961 +18594000.0,3211.089,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3211.089,3211.089,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9654.67426,9654.67426 +18597600.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +18601200.0,40402.749,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,40402.749,40402.749,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,121477.59866,121477.59866 +18604800.0,38089.512,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,38089.512,38089.512,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,114522.46608,114522.46608 +18608400.0,42555.111,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,93703.4424,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,42555.111,42555.111,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,34592.643,34592.643,34592.643,34592.643,127949.03373999998,127949.03373999998 +18612000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,75277.29048,31358.54272,71086.44752999999,108322.20576,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +18615600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +18619200.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40735.41339,62073.01088000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +18622800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32677.96392,49794.992640000004,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +18626400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +18630000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +18633600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +18637200.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +18640800.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +18644400.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +18648000.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +18651600.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +18655200.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +18658800.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +18662400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18666000.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +18669600.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18673200.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18676800.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +18680400.0,3053.76,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3053.76,3053.76,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9181.6384,9181.6384 +18684000.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +18687600.0,37551.981,14495.283000000001,42326.22636,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,125002.43767999999,47808.917760000004,99717.01152,151949.73184000002,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +18691200.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +18694800.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +18698400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +18702000.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +18705600.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +18709200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +18712800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +18716400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +18720000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +18723600.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +18727200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +18730800.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +18734400.0,28280.256,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28280.256,28280.256,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,85029.30304,85029.30304 +18738000.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +18741600.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +18745200.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +18748800.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18752400.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +18756000.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18759600.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18763200.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +18766800.0,3015.654,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3015.654,3015.654,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9067.066359999999,9067.066359999999 +18770400.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +18774000.0,37551.981,12836.343,37482.12156,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,121152.88488,47808.917760000004,98480.48322,150065.49824,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +18777600.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +18781200.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +18784800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +18788400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +18792000.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +18795600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +18799200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +18802800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +18806400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +18810000.0,17893.23,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17893.23,17893.23,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53798.9782,53798.9782 +18813600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +18817200.0,33414.729,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,33414.729,33414.729,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,100466.95186,100466.95186 +18820800.0,31083.893999999997,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63777.79779,97185.21568,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31083.893999999997,31083.893999999997,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,93458.90795999998,93458.90795999998 +18824400.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +18828000.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +18831600.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +18835200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18838800.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +18842400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18846000.0,615.483,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,615.483,615.483,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1850.55222,1850.55222 +18849600.0,1108.293,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1108.293,1108.293,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3332.2676199999996,3332.2676199999996 +18853200.0,3117.0,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3117.0,3117.0,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9371.779999999999,9371.779999999999 +18856800.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +18860400.0,37551.981,13164.260999999999,38439.64212,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,123585.61863999999,47808.917760000004,98805.78371999999,150561.19423999998,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +18864000.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +18867600.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +18871200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +18874800.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +18878400.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +18882000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +18885600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +18889200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +18892800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +18896400.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +18900000.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +18903600.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +18907200.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +18910800.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +18914400.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +18918000.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +18921600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +18925200.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +18928800.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18932400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +18936000.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +18939600.0,3122.477999999999,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3122.477999999999,3122.477999999999,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9388.250519999998,9388.250519999998 +18943200.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +18946800.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,119228.27784,47808.917760000004,97637.05413,148780.27296,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +18950400.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +18954000.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +18957600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +18961200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +18964800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +18968400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +18972000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +18975600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +18979200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +18982800.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +18986400.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +18990000.0,32863.719,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,32863.719,32863.719,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,98810.24846,98810.24846 +18993600.0,31361.997,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63423.29511,96645.02112,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31361.997,31361.997,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,94295.07097999999,94295.07097999999 +18997200.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +19000800.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +19004400.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +19008000.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +19011600.0,1748.076,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1748.076,1748.076,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,5255.88184,5255.88184 +19015200.0,765.396,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,765.396,765.396,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2301.2906399999997,2301.2906399999997 +19018800.0,741.3240000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,741.3240000000001,741.3240000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2228.91416,2228.91416 +19022400.0,1135.752,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1135.752,1135.752,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3414.82768,3414.82768 +19026000.0,3133.773,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3133.773,3133.773,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9422.21082,9422.21082 +19029600.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +19033200.0,37551.981,23901.528,69792.46175999999,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,161652.94616,47808.917760000004,102632.06625,156391.72,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36964.689,36964.689,36964.689,36964.689,112906.28953999998,112906.28953999998 +19036800.0,30200.466,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65710.61889,100130.46687999999,20422.071,20422.071,20422.071,41411.5415,30200.466,30200.466,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,90802.73444,90802.73444 +19040400.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +19044000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +19047600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +19051200.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +19054800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +19058400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +19062000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +19065600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +19069200.0,23853.78,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,23853.78,23853.78,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,71720.3652,71720.3652 +19072800.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +19076400.0,33719.513999999996,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,72163.79352,109963.87584000001,22407.549,22407.549,22407.549,45437.66499999999,33719.513999999996,33719.513999999996,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,101383.33876,101383.33876 +19080000.0,30540.594,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,64890.24339,98880.37088,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,30540.594,30540.594,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,91825.38596,91825.38596 +19083600.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +19087200.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +19090800.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +19094400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +19098000.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +19101600.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +19105200.0,585.942,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,585.942,585.942,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1761.7322800000002,1761.7322800000002 +19108800.0,1065.2939999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1065.2939999999999,1065.2939999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3202.9839599999996,3202.9839599999996 +19112400.0,3043.7010000000005,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3043.7010000000005,3043.7010000000005,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9151.39434,9151.39434 +19116000.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +19119600.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +19123200.0,34120.839,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,34120.839,34120.839,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,102589.98925999999,102589.98925999999 +19126800.0,38828.391,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,38828.391,38828.391,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,116744.02894,116744.02894 +19130400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,61144.24512,93172.18304,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +19134000.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +19137600.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,41405.82705,63094.59360000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +19141200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +19144800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +19148400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +19152000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +19155600.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +19159200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +19162800.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +19166400.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +19170000.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +19173600.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +19177200.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +19180800.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +19184400.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +19188000.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +19191600.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +19195200.0,1144.935,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1144.935,1144.935,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3442.4379,3442.4379 +19198800.0,3152.3729999999996,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3152.3729999999996,3152.3729999999996,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9478.13482,9478.13482 +19202400.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +19206000.0,38052.216,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,38052.216,38052.216,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,114410.32944,114410.32944 +19209600.0,35698.026,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,35698.026,35698.026,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,107332.06484,107332.06484 +19213200.0,40358.826,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,92211.89472,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,40358.826,40358.826,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33577.929000000004,33577.929000000004,33577.929000000004,33577.929000000004,121345.53684,121345.53684 +19216800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,67371.408,31358.54272,66469.17521999999,101286.36223999999,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +19220400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,48200.24601,73447.99392000001,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +19224000.0,18567.252,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,41625.9543,63430.02559999999,12763.794,12763.794,12763.794,25882.213000000003,18567.252,18567.252,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,55825.537679999994,55825.537679999994 +19227600.0,14591.283000000001,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32797.03308,49976.43136,10211.037,10211.037,10211.037,20705.7725,14591.283000000001,14591.283000000001,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43871.124220000005,43871.124220000005 +19231200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +19234800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +19238400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +19242000.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +19245600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +19249200.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,72189.98178,110003.78176000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +19252800.0,30857.604,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,30857.604,30857.604,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,92778.52936,92778.52936 +19256400.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +19260000.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +19263600.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +19267200.0,3089.616,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3089.616,3089.616,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9289.44544,9289.44544 +19270800.0,2011.377,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2011.377,2011.377,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6047.540179999999,6047.540179999999 +19274400.0,810.348,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,810.348,810.348,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2436.4463199999996,2436.4463199999996 +19278000.0,820.761,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,820.761,820.761,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2467.75474,2467.75474 +19281600.0,1244.3039999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1244.3039999999999,1244.3039999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3741.2073599999994,3741.2073599999994 +19285200.0,3237.8489999999997,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3237.8489999999997,3237.8489999999997,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9735.13266,9735.13266 +19288800.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +19292400.0,37551.981,27778.635000000002,81113.6142,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,204435.55976,47808.917760000004,112087.82004,170800.48768,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,39200.493,39200.493,39200.493,39200.493,112906.28953999998,112906.28953999998 +19296000.0,30044.550000000003,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,30044.550000000003,30044.550000000003,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,90333.947,90333.947 +19299600.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +19303200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +19306800.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +19310400.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +19314000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +19317600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +19321200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +19324800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +19328400.0,23013.924,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,23013.924,23013.924,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,69195.19816,69195.19816 +19332000.0,32535.528,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,32535.528,32535.528,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,97823.48752,97823.48752 +19335600.0,35199.369,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,73359.30545999999,111785.60832,22407.549,22407.549,22407.549,45437.66499999999,35199.369,35199.369,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,105832.76946,105832.76946 +19339200.0,31840.926,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,77666.99511999999,35985.208320000005,66844.86711,101858.84512000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31840.926,31840.926,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,28034.787,28034.787,28034.787,28034.787,95735.05084,95735.05084 +19342800.0,23453.454000000005,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23453.454000000005,23453.454000000005,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70516.71836000001,70516.71836000001 +19346400.0,16709.604,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16709.604,16709.604,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,50240.20936,50240.20936 +19350000.0,8560.664999999999,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8560.664999999999,8560.664999999999,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25739.066099999996,25739.066099999996 +19353600.0,3325.245,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3325.245,3325.245,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9997.9033,9997.9033 +19357200.0,2118.567,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2118.567,2118.567,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6369.824779999999,6369.824779999999 +19360800.0,917.9970000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,917.9970000000001,917.9970000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2760.11098,2760.11098 +19364400.0,959.724,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,959.724,959.724,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2885.57016,2885.57016 +19368000.0,1409.142,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1409.142,1409.142,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,4236.82028,4236.82028 +19371600.0,3400.6020000000003,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3400.6020000000003,3400.6020000000003,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10224.47668,10224.47668 +19375200.0,26609.25,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,26609.25,26609.25,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,80005.14499999999,80005.14499999999 +19378800.0,43829.277,58546.29899999999,170955.19307999997,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,298602.80912,47808.917760000004,137334.30249,209271.31808,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,43829.277,43829.277,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,44906.286,44906.286,44906.286,44906.286,131780.02618,131780.02618 +19382400.0,34769.664,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,66870.59652,101898.05184000001,20422.071,20422.071,20422.071,41411.5415,34769.664,34769.664,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,104540.78975999999,104540.78975999999 +19386000.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +19389600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +19393200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +19396800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +19400400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +19404000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +19407600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +19411200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +19414800.0,26323.142999999996,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47123.27536000001,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,26323.142999999996,26323.142999999996,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,79144.91661999999,79144.91661999999 +19418400.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +19422000.0,35271.129,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,87307.74304,40611.8848,73525.85352,112039.39584000001,22407.549,22407.549,22407.549,45437.66499999999,35271.129,35271.129,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,106048.52785999999,106048.52785999999 +19425600.0,32368.476000000002,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,79632.03248,35985.208320000005,67377.33114,102670.21888,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,32368.476000000002,32368.476000000002,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,29642.748,29642.748,29642.748,29642.748,97321.21784,97321.21784 +19429200.0,24026.763,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,24026.763,24026.763,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,72240.46742,72240.46742 +19432800.0,17080.998,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17080.998,17080.998,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51356.86732,51356.86732 +19436400.0,8625.630000000001,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8625.630000000001,8625.630000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25934.3942,25934.3942 +19440000.0,3392.3489999999997,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3392.3489999999997,3392.3489999999997,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10199.662659999998,10199.662659999998 +19443600.0,2184.8100000000004,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2184.8100000000004,2184.8100000000004,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6568.995400000001,6568.995400000001 +19447200.0,971.0429999999999,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,971.0429999999999,971.0429999999999,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2919.6026199999997,2919.6026199999997 +19450800.0,943.7370000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,943.7370000000001,943.7370000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2837.50258,2837.50258 +19454400.0,1399.6680000000001,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1399.6680000000001,1399.6680000000001,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,4208.33512,4208.33512 +19458000.0,5013.303,2201.5440000000003,6428.50848,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,5013.303,5013.303,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,15073.331019999998,15073.331019999998 +19461600.0,26944.584000000003,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,26944.584000000003,26944.584000000003,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,81013.38256,81013.38256 +19465200.0,45804.963,68049.624,198704.90207999997,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,319709.07719999994,47808.917760000004,152787.83919,232819.56448000003,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,45804.963,45804.963,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,50928.566999999995,50928.566999999995,50928.566999999995,50928.566999999995,137720.25542,137720.25542 +19468800.0,54776.772,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,50935.808000000005,69966.51543,106615.64256000001,20422.071,20422.071,20422.071,41411.5415,54776.772,54776.772,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,164695.49448,164695.49448 +19472400.0,36645.147000000004,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,46064.832,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,36645.147000000004,36645.147000000004,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,110179.74198,110179.74198 +19476000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +19479600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +19483200.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +19486800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +19490400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +19494000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +19497600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +19501200.0,31645.665,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,54870.572640000006,22619.26976,41426.011620000005,63125.35104,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,31645.665,31645.665,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,19028.691,19028.691,19028.691,19028.691,95147.9661,95147.9661 +19504800.0,32964.653999999995,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,84587.29,40097.804800000005,71661.97101,109199.19392,22123.911,22123.911,22123.911,44862.503,32964.653999999995,32964.653999999995,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,31535.535000000003,31535.535000000003,31535.535000000003,31535.535000000003,99113.72635999999,99113.72635999999 +19508400.0,35818.839,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88638.34031999999,40611.8848,75242.04429,114654.54368,22407.549,22407.549,22407.549,45437.66499999999,35818.839,35818.839,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,35624.04,35624.04,35624.04,35624.04,107695.30926,107695.30926 +19512000.0,34365.308999999994,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,93211.73192,35985.208320000005,68358.25584,104164.96128,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,34365.308999999994,34365.308999999994,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,37785.417,37785.417,37785.417,37785.417,103325.02905999999,103325.02905999999 +19515600.0,25120.694999999996,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,25120.694999999996,25120.694999999996,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,25978.785000000003,25978.785000000003,25978.785000000003,25978.785000000003,75529.55629999998,75529.55629999998 +19519200.0,17068.578,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17068.578,17068.578,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51319.524520000006,51319.524520000006 +19522800.0,8584.767,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8584.767,8584.767,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25811.532779999998,25811.532779999998 +19526400.0,3318.717,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3318.717,3318.717,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9978.27578,9978.27578 +19530000.0,2114.736,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2114.736,2114.736,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6358.30624,6358.30624 +19533600.0,895.4520000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,895.4520000000001,895.4520000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2692.3256800000004,2692.3256800000004 +19537200.0,1158.645,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1158.645,1158.645,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,3483.6593,3483.6593 +19540800.0,2128.2,1079.343,3151.68156,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,2128.2,2128.2,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,6398.788,6398.788 +19544400.0,4819.752,2885.3579999999997,8425.245359999999,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,4819.752,4819.752,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,14491.38768,14491.38768 +19548000.0,28096.109999999997,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,28096.109999999997,28096.109999999997,14370.601309999998,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,84475.63739999999,84475.63739999999 +19551600.0,48566.793000000005,77649.645,226736.9634,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,326912.05727999995,47808.917760000004,172537.83477,262914.79584,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,48566.793000000005,48566.793000000005,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,55709.664,55709.664,55709.664,55709.664,146024.15761999998,146024.15761999998 +19555200.0,58493.073000000004,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,53805.71264000001,69500.98554,105906.26367999999,20422.071,20422.071,20422.071,41411.5415,58493.073000000004,58493.073000000004,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,175869.17282,175869.17282 +19558800.0,39807.156,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,53592.82368000001,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,39807.156,39807.156,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,119686.84903999999,119686.84903999999 +19562400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +19566000.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +19569600.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +19573200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +19576800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +19580400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +19584000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +19587600.0,31434.773999999998,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,54908.94727999999,22619.26976,41420.55855,63117.0416,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,31434.773999999998,31434.773999999998,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,19238.247,19238.247,19238.247,19238.247,94513.88716,94513.88716 +19591200.0,32912.64,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,84541.69128,40097.804800000005,71720.81973,109288.86816000001,22123.911,22123.911,22123.911,44862.503,32912.64,32912.64,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,31597.152000000002,31597.152000000002,31597.152000000002,31597.152000000002,98957.3376,98957.3376 +19594800.0,36416.133,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88741.62656,40611.8848,75279.52992,114711.66464,22407.549,22407.549,22407.549,45437.66499999999,36416.133,36416.133,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,37010.028,37010.028,37010.028,37010.028,109491.17321999998,109491.17321999998 +19598400.0,34289.88,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,92523.48792,35985.208320000005,71004.49209,108197.32128,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,34289.88,34289.88,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,40255.494,40255.494,40255.494,40255.494,103098.23919999998,103098.23919999998 +19602000.0,25025.019,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,25025.019,25025.019,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,25931.163,25931.163,25931.163,25931.163,75241.89046000001,75241.89046000001 +19605600.0,17077.767,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17077.767,17077.767,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51347.15278,51347.15278 +19609200.0,8652.822,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8652.822,8652.822,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26016.151479999997,26016.151479999997 +19612800.0,3440.8650000000007,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3440.8650000000007,3440.8650000000007,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10345.5341,10345.5341 +19616400.0,2245.914,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2245.914,2245.914,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6752.71476,6752.71476 +19620000.0,1839.3629999999998,1662.5010000000002,4854.50292,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1839.3629999999998,1839.3629999999998,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,5530.35142,5530.35142 +19623600.0,2400.768,4967.985,14506.516199999998,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,2400.768,2400.768,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,7218.309119999999,7218.309119999999 +19627200.0,2705.07,5376.522,15699.444239999999,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,930.78,930.78,930.78,1150.3204999999998,2705.07,2705.07,7865.956539999999,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,8133.2438,8133.2438 +19630800.0,6944.436,8721.345000000001,25466.327400000002,12808.83538,12808.83538,12808.83538,11271.011499999999,15409.418160000001,3598.5164800000002,6336.15822,9655.098240000001,2500.629,2500.629,2500.629,4026.1234999999997,6944.436,6944.436,9323.77134,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,20879.604239999997,20879.604239999997 +19634400.0,32940.102,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,32940.102,32940.102,150439.64273,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,99039.90667999999,99039.90667999999 +19638000.0,53153.066999999995,100304.78100000002,292889.96052,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,391166.26599999995,47808.917760000004,211830.27117,322788.98464000004,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,53153.066999999995,53153.066999999995,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,69702.795,69702.795,69702.795,69702.795,159813.55477999998,159813.55477999998 +19641600.0,80600.66399999999,9610.437,28062.476039999998,131952.46878000002,131952.46878000002,131952.46878000002,115930.41599999998,77076.69376,71478.47744,71512.55496,108971.51232,20422.071,20422.071,20422.071,41411.5415,80600.66399999999,80600.66399999999,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,242339.32976,242339.32976 +19645200.0,46900.848,15082.107000000002,44039.752440000004,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,83783.33312000001,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,46900.848,46900.848,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,141015.21632,141015.21632 +19648800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +19652400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +19656000.0,18202.713,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,50662.77088,23133.34976,40732.447770000006,62068.49184000001,14097.537,14097.537,14097.537,25882.213000000003,18202.713,18202.713,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54729.490419999995,54729.490419999995 +19659600.0,14566.056,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14566.056,14566.056,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43795.27503999999,43795.27503999999 +19663200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +19666800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +19670400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +19674000.0,36853.656,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,60570.13816,22619.26976,44477.14194,67774.69248,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,36853.656,36853.656,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,31033.085999999996,31033.085999999996,31033.085999999996,31033.085999999996,110806.65904000001,110806.65904000001 +19677600.0,32712.258,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,84237.5908,40097.804800000005,71845.26468,109478.49855999999,22123.911,22123.911,22123.911,44862.503,32712.258,32712.258,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,31287.657,31287.657,31287.657,31287.657,98354.85572,98354.85572 +19681200.0,36655.524,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,89117.94448,40611.8848,78811.65579,120093.95168000001,22407.549,22407.549,22407.549,45437.66499999999,36655.524,36655.524,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,42188.403,42188.403,42188.403,42188.403,110210.94215999999,110210.94215999999 +19684800.0,34452.117,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,93259.74839999998,35985.208320000005,71085.21105,108320.3216,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,34452.117,34452.117,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,39430.16099999999,39430.16099999999,39430.16099999999,39430.16099999999,103586.03177999999,103586.03177999999 +19688400.0,24842.507999999998,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,24842.507999999998,24842.507999999998,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,25563.303,25563.303,25563.303,25563.303,74693.14072,74693.14072 +19692000.0,16999.449,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16999.449,16999.449,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51111.67666,51111.67666 +19695600.0,8535.399000000001,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8535.399000000001,8535.399000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25663.09966,25663.09966 +19699200.0,3277.3019999999997,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3277.3019999999997,3277.3019999999997,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9853.75468,9853.75468 +19702800.0,2063.001,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2063.001,2063.001,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6202.75634,6202.75634 +19706400.0,854.796,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,854.796,854.796,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2570.08664,2570.08664 +19710000.0,1359.3600000000001,196.5,573.78,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1359.3600000000001,1359.3600000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,4087.1423999999997,4087.1423999999997 +19713600.0,2047.122,1824.7109999999998,5328.15612,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,2047.122,2047.122,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,6155.01348,6155.01348 +19717200.0,4164.512999999999,3855.984,11259.47328,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,4164.512999999999,4164.512999999999,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,12521.302419999998,12521.302419999998 +19720800.0,28825.052999999996,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,63425.495200000005,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,28825.052999999996,28825.052999999996,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22831.59,22831.59,22831.59,22831.59,86667.32601999998,86667.32601999998 +19724400.0,71775.075,12413.481,36247.36452,170200.25715,170200.25715,170200.25715,149743.45400000003,101748.56216,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,71775.075,71775.075,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,39143.088,39143.088,39143.088,39143.088,215803.72549999997,215803.72549999997 +19728000.0,58611.648,14044.203,41009.072759999995,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,92780.61439999999,120080.12730000001,182979.2416,20422.071,20422.071,20422.071,41411.5415,58611.648,58611.648,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,66957.762,66957.762,66957.762,66957.762,176225.68832,176225.68832 +19731600.0,54253.70700000001,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,106831.1492,43696.332160000005,80967.1254,123378.47680000002,26780.108999999997,26780.108999999997,26780.108999999997,48888.6265,54253.70700000001,54253.70700000001,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,63355.659000000014,63355.659000000014,63355.659000000014,63355.659000000014,163122.81238000002,163122.81238000002 +19735200.0,25825.02,23162.604,67634.80368,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,213133.08344000002,31358.54272,96513.6879,147068.4768,17302.032,17302.032,17302.032,35084.777,25825.02,25825.02,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,29387.234999999997,29387.234999999997,29387.234999999997,29387.234999999997,77647.2268,77647.2268 +19738800.0,22578.546,7208.838,21049.806959999998,96981.18507,96981.18507,96981.18507,85337.66500000001,61048.27064000001,27245.94624,50837.16036,77466.14912,15032.913,15032.913,15032.913,30483.495,22578.546,22578.546,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,21156.045000000002,21156.045000000002,21156.045000000002,21156.045000000002,67886.16163999999,67886.16163999999 +19742400.0,20296.674,7330.103999999999,21403.90368,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,64330.49663999999,23133.34976,44634.17973,68013.98816000001,12763.794,12763.794,12763.794,25882.213000000003,20296.674,20296.674,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,20682.264,20682.264,20682.264,20682.264,61025.333159999995,61025.333159999995 +19746000.0,15650.139000000003,4819.776,14073.745920000001,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,41129.92864,18506.68416,33733.85505,51403.9696,10211.037,10211.037,10211.037,20705.7725,15650.139000000003,15650.139000000003,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14560.032,14560.032,14560.032,14560.032,47054.751260000005,47054.751260000005 +19749600.0,13042.587000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28697.092409999997,43728.90272,8792.835,8792.835,8792.835,17829.9695,13042.587000000001,13042.587000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,39214.71158,39214.71158 +19753200.0,9759.309,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21921.1965,33403.727999999996,6807.357,6807.357,6807.357,13803.846000000001,9759.309,9759.309,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29342.989059999996,29342.989059999996 +19756800.0,10929.219000000001,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24588.25005,37467.8096,7658.277,7658.277,7658.277,15529.3285,10929.219000000001,10929.219000000001,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32860.51846,32860.51846 +19760400.0,18093.315000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,40297.45314,61405.64288,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,18093.315000000002,18093.315000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,54400.5671,54400.5671 +19764000.0,32942.421,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,72163.68726,109963.71392000001,22123.911,22123.911,22123.911,44862.503,32942.421,32942.421,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,99046.87914,99046.87914 +19767600.0,36026.085,11023.077,32187.38484,144556.86399,144556.86399,144556.86399,127201.42749999999,104836.24608,40611.8848,75198.90273,114588.80416,22407.549,22407.549,22407.549,45437.66499999999,36026.085,36026.085,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,34230.09299999999,34230.09299999999,34230.09299999999,34230.09299999999,108318.4289,108318.4289 +19771200.0,35280.144,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,66043.84059,100638.23328000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,35280.144,35280.144,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,38502.942,38502.942,38502.942,38502.942,106075.63296,106075.63296 +19774800.0,25070.864999999998,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,25070.864999999998,25070.864999999998,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,75379.7341,75379.7341 +19778400.0,17048.670000000002,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17048.670000000002,17048.670000000002,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51259.6678,51259.6678 +19782000.0,8573.457,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8573.457,8573.457,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25777.52738,25777.52738 +19785600.0,3328.580999999999,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3328.580999999999,3328.580999999999,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10007.933539999998,10007.933539999998 +19789200.0,2365.299,1251.9569999999999,3655.7144399999997,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2365.299,2365.299,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,7111.66566,7111.66566 +19792800.0,1854.5100000000002,3445.317,10060.325640000001,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1854.5100000000002,1854.5100000000002,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,5575.893400000001,5575.893400000001 +19796400.0,1851.5279999999998,3435.0240000000003,10030.27008,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,473.154,473.154,473.154,575.162,1851.5279999999998,1851.5279999999998,1528.82483,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,5566.927519999999,5566.927519999999 +19800000.0,2292.813,4888.809,14275.32228,3659.66667,3659.66667,3659.66667,3220.2905,4724.86368,1028.16,1810.3323,2758.6016,1006.3560000000002,1006.3560000000002,1006.3560000000002,1150.3204999999998,2292.813,2292.813,6767.193809999999,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,6893.72442,6893.72442 +19803600.0,4279.098,8198.142,23938.57464,12808.83538,12808.83538,12808.83538,11271.011499999999,13781.261199999999,3598.5164800000002,6336.15822,9655.098240000001,2411.772,2411.772,2411.772,4026.1234999999997,4279.098,4279.098,7668.59743,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,12865.82132,12865.82132 +19807200.0,42358.962,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,64936.77624,28788.164480000003,52142.6514,79455.4688,16045.11,16045.11,16045.11,32208.977499999994,42358.962,42358.962,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,23160.957,23160.957,23160.957,23160.957,127359.27908,127359.27908 +19810800.0,99745.302,12413.481,36247.36452,172101.67161000002,172101.67161000002,172101.67161000002,149743.45400000003,103633.01920000001,47808.917760000004,84453.7092,128691.36639999998,26476.142999999996,26476.142999999996,26476.142999999996,53489.9085,99745.302,99745.302,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,40045.413,40045.413,40045.413,40045.413,299900.87468,299900.87468 +19814400.0,72063.56099999999,24913.503,72747.42876,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,133611.42656000002,141172.82424000002,215120.49408000003,20422.071,20422.071,20422.071,41411.5415,72063.56099999999,72063.56099999999,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,76957.755,76957.755,76957.755,76957.755,216671.10673999996,216671.10673999996 +19818000.0,62862.609000000004,12408.888,36233.95296,155535.86807,155535.86807,155535.86807,136862.2955,114278.38144,43696.332160000005,85887.36911999999,130875.99104,29520.087,29520.087,29520.087,48888.6265,62862.609000000004,62862.609000000004,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,68740.584,68740.584,68740.584,68740.584,189006.91106,189006.91106 +19821600.0,28525.377,35070.543,102405.98555999999,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,274905.80024,31358.54272,127733.68733999999,194641.80928,17302.032,17302.032,17302.032,35084.777,28525.377,28525.377,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,36542.973,36542.973,36542.973,36542.973,85766.30018,85766.30018 +19825200.0,22796.328,7480.253999999999,21842.341679999998,96981.18507,96981.18507,96981.18507,85337.66500000001,65242.16735999999,27245.94624,53443.17237,81437.21504000001,15032.913,15032.913,15032.913,30483.495,22796.328,22796.328,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,22288.419,22288.419,22288.419,22288.419,68540.95951999999,68540.95951999999 +19828800.0,21697.977,8395.935000000001,24516.130200000003,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,70519.55344,23133.34976,46812.1185,71332.752,12763.794,12763.794,12763.794,25882.213000000003,21697.977,21697.977,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,22638.603,22638.603,22638.603,22638.603,65238.58417999999,65238.58417999999 +19832400.0,16074.408000000001,5082.522,14840.96424,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,44815.73368,18506.68416,34053.064920000004,51890.384640000004,10211.037,10211.037,10211.037,20705.7725,16074.408000000001,16074.408000000001,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,15310.889999999998,15310.889999999998,15310.889999999998,15310.889999999998,48330.38672,48330.38672 +19836000.0,13126.130999999998,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33277.86176,15936.305920000003,28827.454110000002,43927.54912,8792.835,8792.835,8792.835,17829.9695,13126.130999999998,13126.130999999998,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,39465.900539999995,39465.900539999995 +19839600.0,9736.224,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21934.18437,33423.51904,6807.357,6807.357,6807.357,13803.846000000001,9736.224,9736.224,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29273.580159999998,29273.580159999998 +19843200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24475.450230000002,37295.92416,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +19846800.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +19850400.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +19854000.0,33959.850000000006,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,74093.04041999999,112903.68063999999,22407.549,22407.549,22407.549,45437.66499999999,33959.850000000006,33959.850000000006,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,102105.94900000001,102105.94900000001 +19857600.0,32618.961000000003,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,32618.961000000003,32618.961000000003,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,30544.5,30544.5,30544.5,30544.5,98074.34274000001,98074.34274000001 +19861200.0,23982.834000000003,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23982.834000000003,23982.834000000003,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,72108.38756,72108.38756 +19864800.0,17073.147,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17073.147,17073.147,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51333.261979999996,51333.261979999996 +19868400.0,8616.693,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8616.693,8616.693,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25907.523619999996,25907.523619999996 +19872000.0,3375.5789999999997,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3375.5789999999997,3375.5789999999997,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10149.24086,10149.24086 +19875600.0,2194.308,1428.0629999999999,4169.94396,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2194.308,2194.308,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6597.55272,6597.55272 +19879200.0,2095.833,4238.805,12377.310599999999,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,2095.833,2095.833,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,6301.471219999999,6301.471219999999 +19882800.0,2138.364,4744.71,13854.553199999998,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,6490.41248,513.5360000000001,905.16615,1379.3008,672.096,672.096,672.096,575.162,2138.364,2138.364,7651.810529999999,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,6429.34776,6429.34776 +19886400.0,2638.746,9223.311000000002,26932.068120000004,3659.66667,3659.66667,3659.66667,3220.2905,11120.895919999999,1028.16,1810.3323,2758.6016,1113.9180000000001,1113.9180000000001,1113.9180000000001,1150.3204999999998,2638.746,2638.746,8922.91075,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,7933.82964,7933.82964 +19890000.0,7334.165999999999,11020.284,32179.22928,12808.83538,12808.83538,12808.83538,11271.011499999999,17711.843999999997,3598.5164800000002,6336.15822,9655.098240000001,2516.4539999999997,2516.4539999999997,2516.4539999999997,4026.1234999999997,7334.165999999999,7334.165999999999,14497.445819999999,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,22051.392439999996,22051.392439999996 +19893600.0,33467.76299999999,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,33467.76299999999,33467.76299999999,144276.79174999997,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22109.46,22109.46,22109.46,22109.46,100626.40741999997,100626.40741999997 +19897200.0,54091.344,87033.081,254136.59652000002,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,346463.36695999996,47808.917760000004,192209.79687000002,292891.11904,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,54091.344,54091.344,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,65074.215,65074.215,65074.215,65074.215,162634.64096,162634.64096 +19900800.0,61180.373999999996,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,59350.91136000001,69007.99710000001,105155.04320000001,20422.071,20422.071,20422.071,41411.5415,61180.373999999996,61180.373999999996,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,183948.99115999998,183948.99115999998 +19904400.0,40480.284,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,58195.68384,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,40480.284,40480.284,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,121710.72055999999,121710.72055999999 +19908000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +19911600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +19915200.0,18413.16,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48525.5236,23133.34976,40732.447770000006,62068.49184000001,12952.668000000001,12952.668000000001,12952.668000000001,25882.213000000003,18413.16,18413.16,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,55362.2344,55362.2344 +19918800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +19922400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33780.58648,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +19926000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +19929600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +19933200.0,29751.321,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,54766.73160000001,22619.26976,41086.09554,62607.383680000006,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,29751.321,29751.321,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,19249.737,19249.737,19249.737,19249.737,89452.30514,89452.30514 +19936800.0,31724.307,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70903.26495,108043.0704,22123.911,22123.911,22123.911,44862.503,31724.307,31724.307,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,95384.41638,95384.41638 +19940400.0,35748.063,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88506.18112,40611.8848,75149.9217,114514.1664,22407.549,22407.549,22407.549,45437.66499999999,35748.063,35748.063,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,35726.615999999995,35726.615999999995,35726.615999999995,35726.615999999995,107482.50942,107482.50942 +19944000.0,34041.303,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,88055.3156,35985.208320000005,70563.87051000001,107525.89792000002,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,34041.303,34041.303,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,40578.966,40578.966,40578.966,40578.966,102350.85102,102350.85102 +19947600.0,24864.414000000004,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,24864.414000000004,24864.414000000004,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,26227.785000000003,26227.785000000003,26227.785000000003,26227.785000000003,74759.00476000001,74759.00476000001 +19951200.0,17093.517,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17093.517,17093.517,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51394.50778,51394.50778 +19954800.0,8634.153,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8634.153,8634.153,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25960.02002,25960.02002 +19958400.0,3393.1440000000002,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3393.1440000000002,3393.1440000000002,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10202.052959999999,10202.052959999999 +19962000.0,2196.273,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2196.273,2196.273,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6603.460819999999,6603.460819999999 +19965600.0,1140.6329999999998,1959.9179999999997,5722.9605599999995,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1140.6329999999998,1140.6329999999998,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,3429.5032199999996,3429.5032199999996 +19969200.0,2248.6020000000003,4706.628,13743.35376,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,3339.4871999999996,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,2248.6020000000003,2248.6020000000003,4116.691409999999,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,6760.79668,6760.79668 +19972800.0,2686.992,7387.944,21572.79648,3659.66667,3659.66667,3659.66667,3220.2905,12331.1892,1028.16,1810.3323,2758.6016,1083.6360000000002,1083.6360000000002,1083.6360000000002,1150.3204999999998,2686.992,2686.992,9893.90545,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,8078.889279999999,8078.889279999999 +19976400.0,7095.540000000001,10935.440999999999,31931.487719999997,12808.83538,12808.83538,12808.83538,11271.011499999999,17269.4056,3598.5164800000002,6336.15822,9655.098240000001,2559.9809999999998,2559.9809999999998,2559.9809999999998,4026.1234999999997,7095.540000000001,7095.540000000001,14889.47525,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,21333.923600000002,21333.923600000002 +19980000.0,32208.759,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,32208.759,32208.759,110665.69981999998,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22261.863,22261.863,22261.863,22261.863,96841.00205999998,96841.00205999998 +19983600.0,49045.722,79185.85800000001,231222.70536,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,341032.1728,47808.917760000004,182164.66233,277584.24736,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,49045.722,49045.722,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,61013.74199999999,61013.74199999999,61013.74199999999,61013.74199999999,147464.13748,147464.13748 +19987200.0,56436.171,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,54699.841920000006,67532.29685999999,102906.35712,20422.071,20422.071,20422.071,41411.5415,56436.171,56436.171,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,169684.75414,169684.75414 +19990800.0,38898.113999999994,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,51429.23776,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,38898.113999999994,38898.113999999994,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,116953.66275999998,116953.66275999998 +19994400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +19998000.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +20001600.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +20005200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +20008800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +20012400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +20016000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +20019600.0,26974.845,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,50071.2256,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,26974.845,26974.845,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,81104.3673,81104.3673 +20023200.0,31606.455,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70715.27169000001,107756.60448000001,22123.911,22123.911,22123.911,44862.503,31606.455,31606.455,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,95030.0747,95030.0747 +20026800.0,35791.893000000004,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88513.00808,40611.8848,73948.49784,112683.42528,22407.549,22407.549,22407.549,45437.66499999999,35791.893000000004,35791.893000000004,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,33202.317,33202.317,33202.317,33202.317,107614.29162,107614.29162 +20030400.0,33393.225000000006,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,80160.54664,35985.208320000005,68338.56392999999,104134.95456,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,33393.225000000006,33393.225000000006,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,36424.881,36424.881,36424.881,36424.881,100402.2965,100402.2965 +20034000.0,24850.881,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,24850.881,24850.881,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,27122.535000000003,27122.535000000003,27122.535000000003,27122.535000000003,74718.31554,74718.31554 +20037600.0,17253.059999999998,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17253.059999999998,17253.059999999998,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51874.200399999994,51874.200399999994 +20041200.0,8794.113000000001,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8794.113000000001,8794.113000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26440.96642,26440.96642 +20044800.0,3565.7400000000007,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3565.7400000000007,3565.7400000000007,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10720.991600000001,10720.991600000001 +20048400.0,2369.3309999999997,2318.322,6769.500239999999,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2369.3309999999997,2369.3309999999997,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,7123.788539999999,7123.788539999999 +20052000.0,2487.189,6288.2789999999995,18361.77468,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,11179.87992,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,2487.189,2487.189,9004.497969999999,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,7478.14826,7478.14826 +20055600.0,3004.8959999999997,11345.07,33127.6044,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,15615.032879999999,513.5360000000001,905.16615,1379.3008,1016.1089999999999,1016.1089999999999,1016.1089999999999,575.162,3004.8959999999997,3004.8959999999997,18030.22247,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,9034.72064,9034.72064 +20059200.0,3884.7509999999997,15489.309000000001,45228.78228,3659.66667,3659.66667,3659.66667,3220.2905,27441.6928,1496.9247999999998,1810.3323,2758.6016,1388.685,1388.685,1388.685,1150.3204999999998,3884.7509999999997,3884.7509999999997,27180.703939999996,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,11680.151339999999,11680.151339999999 +20062800.0,9993.246,15548.645999999999,45402.046319999994,12808.83538,12808.83538,12808.83538,11271.011499999999,33982.165759999996,16746.0608,6336.15822,9655.098240000001,2740.176,2740.176,2740.176,4026.1234999999997,9993.246,9993.246,25760.075249999994,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2839.3050000000003,2839.3050000000003,2839.3050000000003,2839.3050000000003,30046.35964,30046.35964 +20066400.0,51837.83700000001,25882.713,75577.52196,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,79812.02712,28788.164480000003,63255.69894,96389.63648,16408.353,16408.353,16408.353,32208.977499999994,51837.83700000001,51837.83700000001,330685.4798,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,29177.174999999996,29177.174999999996,29177.174999999996,29177.174999999996,155859.09658,155859.09658 +20070000.0,62461.395000000004,120745.272,352576.19424,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,452337.52119999996,47808.917760000004,252339.48117,384517.30464000005,31347.824999999997,31347.824999999997,31347.824999999997,53489.9085,62461.395000000004,62461.395000000004,20083.98665,61669.46745,91666.71458,159883.8045,45376.54642,57710.43991,93836.31600000002,93836.31600000002,93836.31600000002,93836.31600000002,187800.5943,187800.5943 +20073600.0,106015.824,9610.437,28062.476039999998,132970.03797,132970.03797,132970.03797,115930.41599999998,77076.69376,85167.70432,75502.91742,115052.06464,21512.367000000002,21512.367000000002,21512.367000000002,41411.5415,106015.824,106015.824,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,318754.24416,318754.24416 +20077200.0,57342.801,17409.792,50836.59264,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,98728.44928000002,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,57342.801,57342.801,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,172410.68834,172410.68834 +20080800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +20084400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +20088000.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,49236.05887999999,23133.34976,40732.447770000006,62068.49184000001,13333.284,13333.284,13333.284,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +20091600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +20095200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,35068.68024,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +20098800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +20102400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +20106000.0,34244.685,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,59047.5684,22619.26976,41790.22260000001,63680.33920000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,34244.685,34244.685,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,28350.039000000004,28350.039000000004,28350.039000000004,28350.039000000004,102962.3529,102962.3529 +20109600.0,35938.677,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,86937.98344000001,40097.804800000005,76554.76101,116654.87392,22123.911,22123.911,22123.911,44862.503,35938.677,35938.677,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,40314.186,40314.186,40314.186,40314.186,108055.62218,108055.62218 +20113200.0,40115.831999999995,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,89441.27023999998,40611.8848,82279.82763,125378.78496,22407.549,22407.549,22407.549,45437.66499999999,40115.831999999995,40115.831999999995,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,47100.747,47100.747,47100.747,47100.747,120614.93487999999,120614.93487999999 +20116800.0,39438.858,9797.814,28609.61688,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,104400.12071999999,35985.208320000005,80846.94534,123195.34528000001,19867.617,19867.617,19867.617,40261.221,39438.858,39438.858,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,46171.659,46171.659,46171.659,46171.659,118579.49971999999,118579.49971999999 +20120400.0,31714.98,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62963.60376,35083.00608000001,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,31714.98,31714.98,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,27354.252,27354.252,27354.252,27354.252,95356.37319999999,95356.37319999999 +20124000.0,17248.497,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17248.497,17248.497,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51860.48097999999,51860.48097999999 +20127600.0,8794.956,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8794.956,8794.956,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26443.50104,26443.50104 +20131200.0,3946.9230000000002,3192.8609999999994,9323.154119999997,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3946.9230000000002,3946.9230000000002,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,11867.08182,11867.08182 +20134800.0,4059.4049999999997,7216.941,21073.46772,7319.33334,7319.33334,7319.33334,6440.577499999999,14388.860639999999,2056.2982400000005,3620.65977,5517.19584,1325.853,1325.853,1325.853,2300.6409999999996,4059.4049999999997,4059.4049999999997,10448.79186,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,12205.277699999999,12205.277699999999 +20138400.0,3408.033,13231.206,38635.12152,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,17708.63784,513.5360000000001,905.16615,1379.3008,1082.8619999999999,1082.8619999999999,1082.8619999999999,575.162,3408.033,3408.033,21143.69218,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,10246.81922,10246.81922 +20142000.0,3750.312,16078.560000000001,46949.395200000006,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,30290.46816,8531.552,905.16615,1379.3008,1106.2379999999998,1106.2379999999998,1106.2379999999998,575.162,3750.312,3750.312,26977.163979999998,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,11275.93808,11275.93808 +20145600.0,5518.2119999999995,16547.247000000003,48317.961240000004,3659.66667,3659.66667,3659.66667,3220.2905,32260.487040000004,30791.19424,1810.3323,2758.6016,1405.434,1405.434,1405.434,1150.3204999999998,5518.2119999999995,5518.2119999999995,27806.10014,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2184.465,2184.465,2184.465,2184.465,16591.42408,16591.42408 +20149200.0,16154.507999999998,16984.260000000002,49594.0392,12808.83538,12808.83538,12808.83538,11271.011499999999,37140.24504,32789.71968,7184.055060000001,10947.13152,6744.303,6744.303,6744.303,4026.1234999999997,16154.507999999998,16154.507999999998,28459.779140000002,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,5470.38,5470.38,5470.38,5470.38,48571.22071999999,48571.22071999999 +20152800.0,79478.955,37765.035,110273.90220000001,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,116646.95695999998,28788.164480000003,81534.07080000002,124242.39360000002,19950.357000000004,19950.357000000004,19950.357000000004,32208.977499999994,79478.955,79478.955,424107.10355,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,42563.631,42563.631,42563.631,42563.631,238966.7247,238966.7247 +20156400.0,82512.13500000001,163477.176,477353.35391999997,172307.00311000002,172307.00311000002,172307.00311000002,149743.45400000003,528089.10728,47808.917760000004,371115.48432,565509.30944,44939.592000000004,44939.592000000004,44939.592000000004,53489.9085,82512.13500000001,82512.13500000001,20083.98665,84287.43764999999,125286.51225999999,218522.9865,62018.90474,78876.39227,122945.124,122945.124,122945.124,122945.124,248086.4859,248086.4859 +20160000.0,221928.51299999998,12128.400000000001,35414.928,138556.82522,138556.82522,138556.82522,115930.41599999998,99984.10543999998,108225.22048,120541.11699000001,183681.70208000002,35234.426999999996,35234.426999999996,35234.426999999996,41411.5415,221928.51299999998,221928.51299999998,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,57251.301,57251.301,57251.301,57251.301,667265.0624199999,667265.0624199999 +20163600.0,130167.26699999999,49207.05900000001,143684.61228000003,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,154418.14272,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,130167.26699999999,130167.26699999999,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,35070.567,35070.567,35070.567,35070.567,391369.58278,391369.58278 +20167200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +20170800.0,21481.725,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21481.725,21481.725,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64588.38649999999,64588.38649999999 +20174400.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,62463.60632,23133.34976,40732.447770000006,62068.49184000001,20418.957,20418.957,20418.957,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +20178000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +20181600.0,13323.18,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,42099.95848,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,13323.18,13323.18,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12925.917000000001,12925.917000000001,12925.917000000001,12925.917000000001,40058.3612,40058.3612 +20185200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +20188800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +20192400.0,36353.931000000004,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,60869.724319999994,22619.26976,43048.96407,65598.42144,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,36353.931000000004,36353.931000000004,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,32780.343,32780.343,32780.343,32780.343,109304.15254,109304.15254 +20196000.0,36069.912,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,86888.78727999999,40097.804800000005,76597.43406,116719.89951999999,22123.911,22123.911,22123.911,44862.503,36069.912,36069.912,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,40796.814,40796.814,40796.814,40796.814,108450.20208,108450.20208 +20199600.0,39457.842,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,89456.97399999999,40611.8848,85200.0891,129828.7072,22407.549,22407.549,22407.549,45437.66499999999,39457.842,39457.842,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,47231.892,47231.892,47231.892,47231.892,118636.57827999999,118636.57827999999 +20203200.0,39515.181,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,94560.69016,35985.208320000005,80895.25017,123268.95264,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,39515.181,39515.181,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,50134.062000000005,50134.062000000005,50134.062000000005,50134.062000000005,118808.97753999998,118808.97753999998 +20206800.0,31382.298,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,64610.413680000005,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,31382.298,31382.298,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,27723.192000000003,27723.192000000003,27723.192000000003,27723.192000000003,94356.10931999999,94356.10931999999 +20210400.0,17232.813,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17232.813,17232.813,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51813.32442,51813.32442 +20214000.0,8772.732,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8772.732,8772.732,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26376.680879999996,26376.680879999996 +20217600.0,3969.5249999999996,2634.648,7693.17216,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3969.5249999999996,3969.5249999999996,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,11935.038499999999,11935.038499999999 +20221200.0,4108.9619999999995,6793.253999999999,19836.301679999997,7319.33334,7319.33334,7319.33334,6440.577499999999,11979.60368,2056.2982400000005,3620.65977,5517.19584,1359.918,1359.918,1359.918,2300.6409999999996,4108.9619999999995,4108.9619999999995,8208.96726,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,12354.27908,12354.27908 +20224800.0,3337.935,13050.477000000003,38107.39284,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,17719.89736,513.5360000000001,905.16615,1379.3008,1065.954,1065.954,1065.954,575.162,3337.935,3337.935,20438.690479999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,10036.0579,10036.0579 +20228400.0,3781.1010000000006,15693.249000000002,45824.28708,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,29845.203199999996,9111.66272,905.16615,1379.3008,1088.757,1088.757,1088.757,575.162,3781.1010000000006,3781.1010000000006,26323.31182,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,11368.51034,11368.51034 +20232000.0,5768.055,16149.632999999998,47156.92835999999,3659.66667,3659.66667,3659.66667,3220.2905,31569.03688,30465.370880000006,1810.3323,2758.6016,1516.554,1516.554,1516.554,1150.3204999999998,5768.055,5768.055,27130.766519999997,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2239.281,2239.281,2239.281,2239.281,17342.6187,17342.6187 +20235600.0,15834.128999999999,15779.133000000002,46075.06836,12808.83538,12808.83538,12808.83538,11271.011499999999,41815.3344,29983.713280000004,8648.35167,13178.44064,7824.6720000000005,7824.6720000000005,7824.6720000000005,4026.1234999999997,15834.128999999999,15834.128999999999,27979.44292,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,5927.651999999999,5927.651999999999,5927.651999999999,5927.651999999999,47607.94785999999,47607.94785999999 +20239200.0,77512.356,38208.528,111568.90176,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,167609.0512,28788.164480000003,81972.29669999999,124910.16639999999,20068.581,20068.581,20068.581,32208.977499999994,77512.356,77512.356,423701.70232,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,51242.268,51242.268,51242.268,51242.268,233053.81704,233053.81704 +20242800.0,84401.463,162975.771,475889.25132000004,172162.90069000004,172162.90069000004,172162.90069000004,149743.45400000003,526293.82704,47808.917760000004,377844.08487,575762.4150400001,48223.42199999999,48223.42199999999,48223.42199999999,53489.9085,84401.463,84401.463,20083.98665,84756.2454,125983.35736,219738.41400000002,62363.854640000005,79315.10372,123960.795,123960.795,123960.795,123960.795,253767.06542,253767.06542 +20246400.0,236097.39,12146.811,35468.68812,138644.61512,138644.61512,138644.61512,115930.41599999998,105800.64615999999,108029.2608,125368.96764,191038.42688,40072.743,40072.743,40072.743,41411.5415,236097.39,236097.39,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,68688.954,68688.954,68688.954,68688.954,709866.1526,709866.1526 +20250000.0,151800.504,56696.86499999999,165554.84579999998,155535.86807,155535.86807,155535.86807,136862.2955,98099.07024,162835.99872,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,151800.504,151800.504,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,38926.455,38926.455,38926.455,38926.455,456413.51535999996,456413.51535999996 +20253600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +20257200.0,22087.23,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15327.003,15327.003,15327.003,30483.495,22087.23,22087.23,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,66408.93819999999,66408.93819999999 +20260800.0,18856.107,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,66759.27088,23133.34976,40732.447770000006,62068.49184000001,23090.936999999998,23090.936999999998,23090.936999999998,25882.213000000003,18856.107,18856.107,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,56694.028379999996,56694.028379999996 +20264400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +20268000.0,14294.871000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,47035.99072,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,14294.871000000001,14294.871000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13677.453,13677.453,13677.453,13677.453,42979.91214,42979.91214 +20271600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +20275200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +20278800.0,44063.796,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,66546.11088,22619.26976,57993.44775,88370.968,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,44063.796,44063.796,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,53005.490999999995,53005.490999999995,53005.490999999995,53005.490999999995,132485.14664,132485.14664 +20282400.0,36139.295999999995,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,86618.16168,40097.804800000005,79208.77838999999,120699.09087999999,22123.911,22123.911,22123.911,44862.503,36139.295999999995,36139.295999999995,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,41680.818,41680.818,41680.818,41680.818,108658.81663999999,108658.81663999999 +20286000.0,39133.092,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,92545.06672,40611.8848,87024.22071000001,132608.33632000003,22407.549,22407.549,22407.549,45437.66499999999,39133.092,39133.092,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,48372.06,48372.06,48372.06,48372.06,117660.16328,117660.16328 +20289600.0,41227.034999999996,11150.817,32560.385639999997,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,104275.17392,35985.208320000005,95137.55328000001,144971.50976000002,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,41227.034999999996,41227.034999999996,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,49293.03,49293.03,49293.03,49293.03,123955.95189999999,123955.95189999999 +20293200.0,35586.009,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,65304.73128000001,31116.897920000003,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,35586.009,35586.009,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,27389.142,27389.142,27389.142,27389.142,106995.26705999998,106995.26705999998 +20296800.0,17153.556,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17153.556,17153.556,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51575.02503999999,51575.02503999999 +20300400.0,8692.254,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8692.254,8692.254,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,26134.71036,26134.71036 +20304000.0,4172.919,2482.767,7249.679639999999,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,4172.919,4172.919,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,12546.576459999998,12546.576459999998 +20307600.0,3714.261,5347.607999999999,15615.015359999998,7319.33334,7319.33334,7319.33334,6440.577499999999,6905.35032,2056.2982400000005,3620.65977,5517.19584,1433.4750000000001,1433.4750000000001,1433.4750000000001,2300.6409999999996,3714.261,3714.261,4311.25591,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,11167.54474,11167.54474 +20311200.0,2941.857,11633.985,33971.2362,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,14506.682639999997,513.5360000000001,905.16615,1379.3008,961.608,961.608,961.608,575.162,2941.857,2941.857,15459.46025,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,8845.18338,8845.18338 +20314800.0,3100.107,13485.696,39378.232319999996,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,25477.15768,513.5360000000001,905.16615,1379.3008,982.848,982.848,982.848,575.162,3100.107,3100.107,22331.01182,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,9320.988379999999,9320.988379999999 +20318400.0,4650.87,14236.565999999999,41570.77272,3659.66667,3659.66667,3659.66667,3220.2905,27829.509679999996,15642.154240000002,1810.3323,2758.6016,1297.191,1297.191,1297.191,1150.3204999999998,4650.87,4650.87,23711.428910000002,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,1149.951,1149.951,1149.951,1149.951,13983.6158,13983.6158 +20322000.0,8373.36,15284.232,44629.95744,12808.83538,12808.83538,12808.83538,11271.011499999999,33961.445439999996,29531.246720000006,6999.080549999999,10665.265599999999,6416.991000000001,6416.991000000001,6416.991000000001,4026.1234999999997,8373.36,8373.36,25498.45454,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,4411.569,4411.569,4411.569,4411.569,25175.9024,25175.9024 +20325600.0,171935.331,15736.389,45950.25588,104668.51153000002,104668.51153000002,104668.51153000002,90168.099,114940.64327999999,39852.286720000004,91692.15489,139721.37888,27300.258,27300.258,27300.258,32208.977499999994,171935.331,171935.331,33721.58244,32553.766349999998,48388.56133999999,84398.6535,23953.141659999998,30463.89493,47239.458,47239.458,47239.458,47239.458,516952.22854,516952.22854 +20329200.0,217400.46000000002,83979.306,245219.57351999998,180155.32249000002,180155.32249000002,180155.32249000002,149743.45400000003,137527.7368,129102.78720000002,112091.19138,170805.62496000002,64248.615000000005,64248.615000000005,64248.615000000005,53489.9085,217400.46000000002,217400.46000000002,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,61231.776,61231.776,61231.776,61231.776,653650.7164,653650.7164 +20332800.0,108247.33799999999,33073.920000000006,96575.84640000001,132491.86588000003,132491.86588000003,132491.86588000003,115930.41599999998,80098.32728,171603.3856,169238.29755000002,257886.9296,21770.763,21770.763,21770.763,41411.5415,108247.33799999999,108247.33799999999,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,85036.131,85036.131,85036.131,85036.131,325463.66292,325463.66292 +20336400.0,63628.755,12683.655,37036.272600000004,155535.86807,155535.86807,155535.86807,136862.2955,110326.73959999999,43696.332160000005,83262.18200999999,126875.70592,28519.826999999997,28519.826999999997,28519.826999999997,48888.6265,63628.755,63628.755,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,64789.857,64789.857,64789.857,64789.857,191310.45669999998,191310.45669999998 +20340000.0,25364.349000000002,15120.060000000001,44150.5752,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,159264.55552,31358.54272,85377.20520000001,130098.59840000002,17302.032,17302.032,17302.032,35084.777,25364.349000000002,25364.349000000002,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,26688.033000000003,26688.033000000003,26688.033000000003,26688.033000000003,76262.14266000001,76262.14266000001 +20343600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +20347200.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +20350800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +20354400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +20358000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +20361600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +20365200.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +20368800.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +20372400.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +20376000.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +20379600.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +20383200.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +20386800.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +20390400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +20394000.0,2176.947,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2176.947,2176.947,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6545.35398,6545.35398 +20397600.0,981.966,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,981.966,981.966,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2952.4444399999998,2952.4444399999998 +20401200.0,1001.748,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,1001.748,1001.748,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,3011.9223199999997,3011.9223199999997 +20404800.0,1416.3629999999998,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1416.3629999999998,1416.3629999999998,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,4258.531419999999,4258.531419999999 +20408400.0,4131.177,3970.104,11592.703679999999,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,4131.177,4131.177,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,12421.07218,12421.07218 +20412000.0,41138.04,10623.615,31020.9558,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,68779.39696,28788.164480000003,52254.55767000001,79625.99264000001,15999.825,15999.825,15999.825,32208.977499999994,41138.04,41138.04,16627.054079999998,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,23189.283,23189.283,23189.283,23189.283,123688.37359999999,123688.37359999999 +20415600.0,87205.85100000001,22072.221,64450.88532,170591.06669,170591.06669,170591.06669,149743.45400000003,104157.11832,61748.1344,84305.45234999999,128465.4512,28850.966999999997,28850.966999999997,28850.966999999997,53489.9085,87205.85100000001,87205.85100000001,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,40145.553,40145.553,40145.553,40145.553,262198.92534,262198.92534 +20419200.0,67353.72899999999,21032.096999999998,61413.72323999999,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,124861.58912000003,137351.57940000002,209297.6448,20422.071,20422.071,20422.071,41411.5415,67353.72899999999,67353.72899999999,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,73934.02500000001,73934.02500000001,73934.02500000001,73934.02500000001,202510.21185999998,202510.21185999998 +20422800.0,58938.576,12206.369999999999,35642.600399999996,155535.86807,155535.86807,155535.86807,136862.2955,111342.32728,43696.332160000005,84199.37105999999,128303.80352,28470.147000000004,28470.147000000004,28470.147000000004,48888.6265,58938.576,58938.576,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,67743.51000000001,67743.51000000001,67743.51000000001,67743.51000000001,177208.65183999998,177208.65183999998 +20426400.0,25973.436000000005,24946.373999999996,72843.41207999998,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,220582.64583999998,31358.54272,99940.01745,152289.5504,17302.032,17302.032,17302.032,35084.777,25973.436000000005,25973.436000000005,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,30141.057,30141.057,30141.057,30141.057,78093.46424000002,78093.46424000002 +20430000.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,51366.28686,78272.43712,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +20433600.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,41236.15881,62836.05152,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +20437200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +20440800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +20444400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +20448000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +20451600.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +20455200.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +20458800.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +20462400.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +20466000.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +20469600.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +20473200.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +20476800.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +20480400.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +20484000.0,671.412,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,671.412,671.412,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2018.71208,2018.71208 +20487600.0,877.254,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,877.254,877.254,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2637.61036,2637.61036 +20491200.0,1282.167,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1282.167,1282.167,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3855.04878,3855.04878 +20494800.0,3305.169,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3305.169,3305.169,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9937.541459999999,9937.541459999999 +20498400.0,26215.362,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,26215.362,26215.362,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,78820.85508,78820.85508 +20502000.0,45885.834,49712.823,145161.44316,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,263977.68272,47808.917760000004,144890.56701,220785.62592,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,45885.834,45885.834,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,49316.409,49316.409,49316.409,49316.409,137963.40756,137963.40756 +20505600.0,30045.282000000003,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65342.2686,99569.17120000001,20422.071,20422.071,20422.071,41411.5415,30045.282000000003,30045.282000000003,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,90336.14788,90336.14788 +20509200.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +20512800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +20516400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +20520000.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +20523600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +20527200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +20530800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +20534400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +20538000.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +20541600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +20545200.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +20548800.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +20552400.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +20556000.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +20559600.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +20563200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +20566800.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +20570400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +20574000.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +20577600.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +20581200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +20584800.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +20588400.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,92285.76672000001,140625.93024000002,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +20592000.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +20595600.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +20599200.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +20602800.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +20606400.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +20610000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +20613600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +20617200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +20620800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +20624400.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +20628000.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +20631600.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +20635200.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +20638800.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +20642400.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +20646000.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +20649600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +20653200.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +20656800.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +20660400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +20664000.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +20667600.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +20671200.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +20674800.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,89192.12273999999,135911.80607999998,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +20678400.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +20682000.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +20685600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +20689200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +20692800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +20696400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +20700000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +20703600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +20707200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +20710800.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +20714400.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +20718000.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +20721600.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +20725200.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +20728800.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +20732400.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +20736000.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +20739600.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +20743200.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +20746800.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +20750400.0,807.5699999999999,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,807.5699999999999,807.5699999999999,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,2428.0937999999996,2428.0937999999996 +20754000.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +20757600.0,22611.945,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22611.945,22611.945,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,67986.5813,67986.5813 +20761200.0,37551.981,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,105869.08512,47808.917760000004,94748.18766,144378.19071999998,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,37551.981,37551.981,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36658.314,36658.314,36658.314,36658.314,112906.28953999998,112906.28953999998 +20764800.0,29072.502,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,65171.914500000006,99309.58400000002,20422.071,20422.071,20422.071,41411.5415,29072.502,29072.502,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,87411.32268,87411.32268 +20768400.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +20772000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +20775600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +20779200.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +20782800.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +20786400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +20790000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +20793600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +20797200.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +20800800.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +20804400.0,32518.767,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,32518.767,32518.767,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,97773.09277999999,97773.09277999999 +20808000.0,31169.352000000006,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31169.352000000006,31169.352000000006,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,93715.85168,93715.85168 +20811600.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +20815200.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +20818800.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +20822400.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +20826000.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +20829600.0,464.84700000000004,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,464.84700000000004,464.84700000000004,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1397.6399800000002,1397.6399800000002 +20833200.0,818.127,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,818.127,818.127,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2459.83518,2459.83518 +20836800.0,1221.066,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1221.066,1221.066,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3671.3384399999995,3671.3384399999995 +20840400.0,3251.1479999999997,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3251.1479999999997,3251.1479999999997,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9775.118319999998,9775.118319999998 +20844000.0,23849.489999999998,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,23849.489999999998,23849.489999999998,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,71707.4666,71707.4666 +20847600.0,40557.222,36531.825,106672.92899999999,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,255392.1352,47808.917760000004,127556.08341,194371.17472,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,40557.222,40557.222,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,42687.447,42687.447,42687.447,42687.447,121942.04748,121942.04748 +20851200.0,30269.514,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,66907.51703999999,101954.31168,20422.071,20422.071,20422.071,41411.5415,30269.514,30269.514,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,91010.33876,91010.33876 +20854800.0,34321.704,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,34321.704,34321.704,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,103193.92335999999,103193.92335999999 +20858400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +20862000.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +20865600.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +20869200.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +20872800.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +20876400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +20880000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +20883600.0,25446.791999999998,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,25446.791999999998,25446.791999999998,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,76510.02127999999,76510.02127999999 +20887200.0,33652.824,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,33652.824,33652.824,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,101182.82416,101182.82416 +20890800.0,34916.898,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,85732.18695999999,40611.8848,72941.31243,111148.66656,22407.549,22407.549,22407.549,45437.66499999999,34916.898,34916.898,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,104983.47332,104983.47332 +20894400.0,31515.249000000003,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,78411.1688,35985.208320000005,65585.4108,99939.67360000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,31515.249000000003,31515.249000000003,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,28056.705,28056.705,28056.705,28056.705,94755.84866,94755.84866 +20898000.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +20901600.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +20905200.0,8084.244000000001,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8084.244000000001,8084.244000000001,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24306.626959999998,24306.626959999998 +20908800.0,3274.707,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3274.707,3274.707,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9845.952379999999,9845.952379999999 +20912400.0,2085.87,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2085.87,2085.87,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6271.515799999999,6271.515799999999 +20916000.0,897.3000000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,897.3000000000001,897.3000000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2697.882,2697.882 +20919600.0,914.175,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,914.175,914.175,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2748.6195,2748.6195 +20923200.0,1347.288,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1347.288,1347.288,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,4050.8459199999998,4050.8459199999998 +20926800.0,3386.688,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3386.688,3386.688,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10182.64192,10182.64192 +20930400.0,25591.532999999996,8180.996999999999,23888.511239999996,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,62052.94335999999,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,25591.532999999996,25591.532999999996,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22532.457000000002,22532.457000000002,22532.457000000002,22532.457000000002,76945.20921999999,76945.20921999999 +20934000.0,59781.147,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,100646.88704,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,59781.147,59781.147,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,38730.156,38730.156,38730.156,38730.156,179741.98197999998,179741.98197999998 +20937600.0,50876.256,11445.599999999999,33421.151999999995,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,76704.54400000001,103215.79106999999,157281.20544,20422.071,20422.071,20422.071,41411.5415,50876.256,50876.256,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,58680.462,58680.462,58680.462,58680.462,152967.94303999998,152967.94303999998 +20941200.0,49346.009999999995,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,103729.19815999999,43696.332160000005,77599.85709,118247.40128000002,25034.868000000002,25034.868000000002,25034.868000000002,48888.6265,49346.009999999995,49346.009999999995,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,62732.123999999996,62732.123999999996,62732.123999999996,62732.123999999996,148367.0034,148367.0034 +20944800.0,24630.870000000003,18276.912,53368.58304,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,180942.44864000002,31358.54272,88687.56162000001,135142.95104,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,27326.565000000002,27326.565000000002,27326.565000000002,27326.565000000002,74056.81580000001,74056.81580000001 +20948400.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,48071.758350000004,73252.2032,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +20952000.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,41007.149190000004,62487.084480000005,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +20955600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +20959200.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +20962800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +20966400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +20970000.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +20973600.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +20977200.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +20980800.0,28264.932,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,28264.932,28264.932,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,84983.22888,84983.22888 +20984400.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +20988000.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +20991600.0,8075.6939999999995,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8075.6939999999995,8075.6939999999995,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,24280.919959999996,24280.919959999996 +20995200.0,2826.492,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,2826.492,2826.492,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,8498.31928,8498.31928 +20998800.0,1615.1399999999999,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,1615.1399999999999,1615.1399999999999,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,4856.187599999999,4856.187599999999 +21002400.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +21006000.0,403.78499999999997,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,403.78499999999997,403.78499999999997,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,1214.0468999999998,1214.0468999999998 +21009600.0,1073.712,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1073.712,1073.712,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3228.2940799999997,3228.2940799999997 +21013200.0,3187.881,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3187.881,3187.881,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9584.89554,9584.89554 +21016800.0,22914.918,7474.782,21826.36344,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,22914.918,22914.918,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,68897.52012,68897.52012 +21020400.0,39000.699,12413.481,36247.36452,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,99557.4,47808.917760000004,84180.38915999999,128274.87872,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,39000.699,39000.699,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,36841.371,36841.371,36841.371,36841.371,117262.10166,117262.10166 +21024000.0,38982.201,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,37013.35744000001,68545.34589,104450.05088000001,20422.071,20422.071,20422.071,41411.5415,38982.201,38982.201,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,29869.869,29869.869,29869.869,29869.869,117206.48433999998,117206.48433999998 +21027600.0,43064.172,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,96004.17464,43696.332160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,43064.172,43064.172,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,42935.729999999996,42935.729999999996,42935.729999999996,42935.729999999996,129479.61047999999,129479.61047999999 +21031200.0,24660.975000000002,10800.491999999998,31537.436639999996,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,111610.20808,31358.54272,70947.75408,108110.86335999999,17302.032,17302.032,17302.032,35084.777,24660.975000000002,24660.975000000002,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74147.3315,74147.3315 +21034800.0,21721.86,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,48561.950220000006,73999.16224,15032.913,15032.913,15032.913,30483.495,21721.86,21721.86,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,65310.3924,65310.3924 +21038400.0,19713.699,6116.8769999999995,17861.28084,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,52703.74576,23133.34976,42328.038270000005,64499.86784000001,12763.794,12763.794,12763.794,25882.213000000003,19713.699,19713.699,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,59272.52166,59272.52166 +21042000.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +21045600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +21049200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +21052800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +21056400.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +21060000.0,31495.211999999996,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,83499.75352,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,31495.211999999996,31495.211999999996,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,94695.60407999999,94695.60407999999 +21063600.0,31898.997,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,84570.2664,40611.8848,71508.07272,108964.68224000001,22407.549,22407.549,22407.549,45437.66499999999,31898.997,31898.997,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31139.859000000004,31139.859000000004,31139.859000000004,31139.859000000004,95909.65097999999,95909.65097999999 +21067200.0,29797.100999999995,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,74935.67968,35985.208320000005,63361.58703,96550.98976000001,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,29797.100999999995,29797.100999999995,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,27592.278,27592.278,27592.278,27592.278,89589.95033999998,89589.95033999998 +21070800.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +21074400.0,16555.176,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16555.176,16555.176,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,49775.89584,49775.89584 +21078000.0,8434.203,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8434.203,8434.203,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25358.83702,25358.83702 +21081600.0,3328.1760000000004,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3328.1760000000004,3328.1760000000004,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10006.71584,10006.71584 +21085200.0,2110.422,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2110.422,2110.422,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6345.33548,6345.33548 +21088800.0,892.2869999999999,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,892.2869999999999,892.2869999999999,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2682.8095799999996,2682.8095799999996 +21092400.0,928.3380000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,928.3380000000001,928.3380000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2791.20292,2791.20292 +21096000.0,1375.008,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1375.008,1375.008,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,4134.19072,4134.19072 +21099600.0,3357.375,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3357.375,3357.375,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10094.5075,10094.5075 +21103200.0,28053.978000000003,9613.743,28072.12956,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,28053.978000000003,28053.978000000003,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,84348.96052000001,84348.96052000001 +21106800.0,49318.049999999996,81916.15800000001,239195.18136000002,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,360026.10704,47808.917760000004,188416.87032,287111.42144,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,49318.049999999996,49318.049999999996,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,61187.219999999994,61187.219999999994,61187.219999999994,61187.219999999994,148282.93699999998,148282.93699999998 +21110400.0,52043.892,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,59056.814080000004,71004.09603,108196.71776,20422.071,20422.071,20422.071,41411.5415,52043.892,52043.892,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,156478.63528,156478.63528 +21114000.0,36120.705,11345.652,33129.30384,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,50961.724160000005,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,36120.705,36120.705,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,108602.9197,108602.9197 +21117600.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +21121200.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +21124800.0,18170.313,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,48172.933600000004,23133.34976,40732.447770000006,62068.49184000001,12763.794,12763.794,12763.794,25882.213000000003,18170.313,18170.313,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,54632.07442,54632.07442 +21128400.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +21132000.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +21135600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +21139200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +21142800.0,24768.54,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,24768.54,24768.54,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,74470.7436,74470.7436 +21146400.0,34614.78,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,84492.78128,40097.804800000005,70602.90657,107585.38144,22123.911,22123.911,22123.911,44862.503,34614.78,34614.78,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30745.682999999997,30745.682999999997,30745.682999999997,30745.682999999997,104075.10519999999,104075.10519999999 +21150000.0,35435.235,10544.784,30790.769279999997,144556.86399,144556.86399,144556.86399,127201.42749999999,88522.83679999999,40611.8848,72823.61016000001,110969.31072000001,22407.549,22407.549,22407.549,45437.66499999999,35435.235,35435.235,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,31892.994,31892.994,31892.994,31892.994,106541.9399,106541.9399 +21153600.0,32029.539000000004,9343.479,27282.95868,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,79207.11408,35985.208320000005,66836.26005,101845.7296,19854.791999999998,19854.791999999998,19854.791999999998,40261.221,32029.539000000004,32029.539000000004,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,32296.152000000002,32296.152000000002,32296.152000000002,32296.152000000002,96302.14726,96302.14726 +21157200.0,23419.515,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,23419.515,23419.515,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,22862.175000000003,22862.175000000003,22862.175000000003,22862.175000000003,70414.6751,70414.6751 +21160800.0,16799.859,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,16799.859,16799.859,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,50511.57606,50511.57606 +21164400.0,8559.75,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8559.75,8559.75,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25736.315,25736.315 +21168000.0,3292.527,934.347,2728.29324,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3292.527,3292.527,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,9899.53118,9899.53118 +21171600.0,2068.7520000000004,533.913,1559.02596,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2068.7520000000004,2068.7520000000004,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,6220.047680000001,6220.047680000001 +21175200.0,853.8240000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,853.8240000000001,853.8240000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2567.16416,2567.16416 +21178800.0,865.4970000000001,133.5,389.82,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,283.5,283.5,283.5,575.162,865.4970000000001,865.4970000000001,215.96899999999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,2602.26098,2602.26098 +21182400.0,1278.054,267.0,779.64,3659.66667,3659.66667,3659.66667,3220.2905,2141.0199199999997,1028.16,1810.3323,2758.6016,567.279,567.279,567.279,1150.3204999999998,1278.054,1278.054,431.93799999999993,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,3842.6823600000002,3842.6823600000002 +21186000.0,3676.656,2426.052,7084.0718400000005,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3676.656,3676.656,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,11054.479039999998,11054.479039999998 +21189600.0,28731.369,9677.169,28257.333479999998,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,59948.54024,28788.164480000003,50689.26576,77240.78592000001,15883.832999999999,15883.832999999999,15883.832999999999,32208.977499999994,28731.369,28731.369,12093.58098,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,22073.823,22073.823,22073.823,22073.823,86385.64945999999,86385.64945999999 +21193200.0,47851.128,77129.09999999999,225216.97199999998,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,335015.28504,47808.917760000004,179740.54329,273890.35168,26378.507999999998,26378.507999999998,26378.507999999998,53489.9085,47851.128,47851.128,20083.98665,53203.971150000005,79083.43366,137936.2215,39147.61334,49788.40757,59329.728,59329.728,59329.728,59329.728,143872.39151999998,143872.39151999998 +21196800.0,55055.87700000001,9610.437,28062.476039999998,131748.02861,131748.02861,131748.02861,115930.41599999998,77076.69376,57812.283520000005,69781.77276,106334.12992,20422.071,20422.071,20422.071,41411.5415,55055.87700000001,55055.87700000001,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28380.630000000005,28380.630000000005,28380.630000000005,28380.630000000005,165534.67018000002,165534.67018000002 +21200400.0,39157.806000000004,12544.698000000002,36630.51816000001,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,66486.55936,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,39157.806000000004,39157.806000000004,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,117734.47004,117734.47004 +21204000.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +21207600.0,21400.593,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21400.593,21400.593,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64344.44962,64344.44962 +21211200.0,18337.713,6006.521999999999,17539.044239999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,50265.680080000006,23133.34976,40732.447770000006,62068.49184000001,13884.828,13884.828,13884.828,25882.213000000003,18337.713,18337.713,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,55135.390419999996,55135.390419999996 +21214800.0,14574.368999999999,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14574.368999999999,14574.368999999999,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43820.269459999996,43820.269459999996 +21218400.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,35104.13488,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +21222000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +21225600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +21229200.0,37156.362,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,60561.64096,22619.26976,46813.553009999996,71334.93792,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,37156.362,37156.362,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,32530.356,32530.356,32530.356,32530.356,111716.79508,111716.79508 +21232800.0,35864.868,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,92814.43672,40097.804800000005,77527.47954,118137.11168,22123.911,22123.911,22123.911,44862.503,35864.868,35864.868,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,41101.89600000001,41101.89600000001,41101.89600000001,41101.89600000001,107833.70311999999,107833.70311999999 +21236400.0,38601.372,11876.411999999998,34679.12304,144556.86399,144556.86399,144556.86399,127201.42749999999,115516.93448,40611.8848,81403.58352,124043.55584,22407.549,22407.549,22407.549,45437.66499999999,38601.372,38601.372,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,45023.235,45023.235,45023.235,45023.235,116061.45847999999,116061.45847999999 +21240000.0,39768.603,13738.533,40116.516359999994,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,126584.19584,39347.041280000005,85750.89747,130668.03424,20165.198999999997,20165.198999999997,20165.198999999997,40261.221,39768.603,39768.603,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,48832.329,48832.329,48832.329,48832.329,119570.93302,119570.93302 +21243600.0,32481.681000000004,7741.74,22605.8808,106130.35785000001,106130.35785000001,106130.35785000001,93388.3895,62089.56015999999,40547.34464,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,32481.681000000004,32481.681000000004,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,26607.251999999997,26607.251999999997,26607.251999999997,26607.251999999997,97661.58754000001,97661.58754000001 +21247200.0,17136.204,5472.609,15980.01828,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17136.204,17136.204,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,51522.85336,51522.85336 +21250800.0,8577.819,2669.565,7795.1298,36596.67484,36596.67484,36596.67484,32202.8945,21410.19336,10281.4912,18103.308510000003,27585.993920000004,5672.799,5672.799,5672.799,11503.205,8577.819,8577.819,4319.13469,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,25790.642459999995,25790.642459999995 +21254400.0,3571.968,3040.5899999999997,8878.522799999999,12808.83538,12808.83538,12808.83538,11271.011499999999,7493.5668,3598.5164800000002,6336.15822,9655.098240000001,1985.478,1985.478,1985.478,4026.1234999999997,3571.968,3571.968,1511.6964199999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,10739.71712,10739.71712 +21258000.0,2947.509,3544.0860000000002,10348.73112,7319.33334,7319.33334,7319.33334,6440.577499999999,4282.0398399999995,2056.2982400000005,3620.65977,5517.19584,1134.558,1134.558,1134.558,2300.6409999999996,2947.509,2947.509,863.8279,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,8862.17706,8862.17706 +21261600.0,1754.8590000000004,3201.831,9349.346520000001,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,1070.50704,513.5360000000001,905.16615,1379.3008,560.6189999999999,560.6189999999999,560.6189999999999,575.162,1754.8590000000004,1754.8590000000004,1149.02242,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,5276.27606,5276.27606 +21265200.0,1845.3029999999999,4459.617,13022.08164,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,7337.3176,513.5360000000001,905.16615,1379.3008,714.969,714.969,714.969,575.162,1845.3029999999999,1845.3029999999999,6294.06297,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,5548.21102,5548.21102 +21268800.0,2280.489,7399.071,21605.28732,3659.66667,3659.66667,3659.66667,3220.2905,8901.95872,1028.16,1810.3323,2758.6016,1010.721,1010.721,1010.721,1150.3204999999998,2280.489,2280.489,6768.112519999999,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,6856.67026,6856.67026 +21272400.0,6511.5599999999995,9860.208,28791.807360000003,12808.83538,12808.83538,12808.83538,11271.011499999999,15080.00128,3598.5164800000002,6336.15822,9655.098240000001,2465.295,2465.295,2465.295,4026.1234999999997,6511.5599999999995,6511.5599999999995,13561.448680000001,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,19578.090399999997,19578.090399999997 +21276000.0,37586.373,16783.266,49007.136719999995,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,71020.10568000001,28788.164480000003,53093.30166,80904.07872,16294.32,16294.32,16294.32,32208.977499999994,37586.373,37586.373,226220.67805999998,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,24263.994000000002,24263.994000000002,24263.994000000002,24263.994000000002,113009.69481999999,113009.69481999999 +21279600.0,58891.287,111371.079,325203.55068,170174.53475000002,170174.53475000002,170174.53475000002,149743.45400000003,395634.63688,47808.917760000004,237185.97924000002,361426.25408000004,29320.464000000004,29320.464000000004,29320.464000000004,53489.9085,58891.287,58891.287,20083.98665,58621.64805,87136.37562,151982.0505,43133.953380000006,54858.28299000001,87609.531,87609.531,87609.531,87609.531,177066.46958,177066.46958 +21283200.0,104404.46100000001,9610.437,28062.476039999998,132058.04051000002,132058.04051000002,132058.04051000002,115930.41599999998,77076.69376,78846.33728,73231.66788,111591.11296,21783.693,21783.693,21783.693,41411.5415,104404.46100000001,104404.46100000001,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,28441.44,28441.44,28441.44,28441.44,313909.41274,313909.41274 +21286800.0,62274.978,31330.599,91485.34908,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,114104.52223999999,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,62274.978,62274.978,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,187240.10052,187240.10052 +21290400.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +21294000.0,21414.051,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21414.051,21414.051,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,64384.91333999999,64384.91333999999 +21297600.0,18968.142,7912.725,23105.157000000003,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,60331.323039999996,23133.34976,40732.447770000006,62068.49184000001,19276.746,19276.746,19276.746,25882.213000000003,18968.142,18968.142,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,57030.88028,57030.88028 +21301200.0,15012.54,6177.005999999999,18036.857519999998,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18623.44832,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,15012.54,15012.54,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,45137.7036,45137.7036 +21304800.0,13424.733,4309.494000000001,12583.72248,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,42696.181599999996,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,13424.733,13424.733,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12969.527999999998,12969.527999999998,12969.527999999998,12969.527999999998,40363.69722,40363.69722 +21308400.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +21312000.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +21315600.0,45932.628,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,74918.44584,22619.26976,63825.358799999995,97257.6896,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,45932.628,45932.628,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,56079.675,56079.675,56079.675,56079.675,138104.10152,138104.10152 +21319200.0,39953.823000000004,11966.364,34941.78288,142727.02862,142727.02862,142727.02862,125591.28399999999,118823.11615999999,40097.804800000005,84168.52185,128256.79520000001,22123.911,22123.911,22123.911,44862.503,39953.823000000004,39953.823000000004,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,48844.23299999999,48844.23299999999,48844.23299999999,48844.23299999999,120127.82782,120127.82782 +21322800.0,50659.626000000004,15745.632,45977.24544,144556.86399,144556.86399,144556.86399,127201.42749999999,140464.24063999997,55383.69344000001,108549.07707,165408.11744,22997.331,22997.331,22997.331,45437.66499999999,50659.626000000004,50659.626000000004,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,56933.00399999999,56933.00399999999,56933.00399999999,56933.00399999999,152316.60884,152316.60884 +21326400.0,64137.782999999996,23364.213,68223.50196,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,143715.81248,72206.5344,116303.78214000001,177224.81088000003,22415.157,22415.157,22415.157,40261.221,64137.782999999996,64137.782999999996,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,56312.71500000001,56312.71500000001,56312.71500000001,56312.71500000001,192840.93421999997,192840.93421999997 +21330000.0,44134.917,7741.74,22605.8808,106328.48952000002,106328.48952000002,106328.48952000002,93388.3895,65045.587120000004,44219.35552,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,44134.917,44134.917,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,27163.217999999997,27163.217999999997,27163.217999999997,27163.217999999997,132698.98378,132698.98378 +21333600.0,17462.391,8731.161,25494.990120000002,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17462.391,17462.391,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,52503.588939999994,52503.588939999994 +21337200.0,9895.146,7142.754000000001,20856.84168,36596.67484,36596.67484,36596.67484,32202.8945,27679.795439999998,10281.4912,18103.308510000003,27585.993920000004,5890.0470000000005,5890.0470000000005,5890.0470000000005,11503.205,9895.146,9895.146,9084.281439999999,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,29751.40564,29751.40564 +21340800.0,4838.1810000000005,8910.591,26018.92572,12808.83538,12808.83538,12808.83538,11271.011499999999,17372.948800000002,3598.5164800000002,6336.15822,9655.098240000001,2567.607,2567.607,2567.607,4026.1234999999997,4838.1810000000005,4838.1810000000005,13227.9329,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,14546.79754,14546.79754 +21344400.0,3823.17,11016.714,32168.804879999996,7319.33334,7319.33334,7319.33334,6440.577499999999,18091.817759999998,2056.2982400000005,3620.65977,5517.19584,1705.62,1705.62,1705.62,2300.6409999999996,3823.17,3823.17,18182.17518,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,11494.997800000001,11494.997800000001 +21348000.0,2549.028,10652.604,31105.60368,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,19099.08344,513.5360000000001,905.16615,1379.3008,835.1999999999999,835.1999999999999,835.1999999999999,575.162,2549.028,2549.028,16790.767239999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,7664.077519999999,7664.077519999999 +21351600.0,2840.9249999999997,10665.396,31142.95632,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,19127.30232,513.5360000000001,905.16615,1379.3008,835.287,835.287,835.287,575.162,2840.9249999999997,2840.9249999999997,16812.224649999996,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,394.176,394.176,394.176,394.176,8541.714499999998,8541.714499999998 +21355200.0,3682.884,11054.538,32279.250959999998,3659.66667,3659.66667,3659.66667,3220.2905,20738.02104,4340.58688,1810.3323,2758.6016,1130.961,1130.961,1130.961,1150.3204999999998,3682.884,3682.884,17515.259059999997,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,788.352,788.352,788.352,788.352,11073.204559999998,11073.204559999998 +21358800.0,10975.968,12143.874,35460.11208,12808.83538,12808.83538,12808.83538,11271.011499999999,26979.78384,17952.576640000003,6336.15822,9655.098240000001,3213.8819999999996,3213.8819999999996,3213.8819999999996,4026.1234999999997,10975.968,10975.968,19399.437069999996,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,3513.6510000000003,3513.6510000000003,3513.6510000000003,3513.6510000000003,33001.077119999994,33001.077119999994 +21362400.0,50571.72900000001,31250.966999999997,91252.82363999999,102470.68711000001,102470.68711000001,102470.68711000001,90168.099,80994.6388,28788.164480000003,71657.65782,109192.62144,18581.469,18581.469,18581.469,32208.977499999994,50571.72900000001,50571.72900000001,374544.3825499999,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,35277.531,35277.531,35277.531,35277.531,152052.33186,152052.33186 +21366000.0,69848.241,132036.489,385546.54787999997,170326.84636,170326.84636,170326.84636,149743.45400000003,422251.41799999995,47808.917760000004,299457.41595,456316.0624,39638.97,39638.97,39638.97,53489.9085,69848.241,69848.241,20083.98665,77018.98365,114482.53865999999,199678.84649999999,56670.75834,72074.55507,103948.797,103948.797,103948.797,103948.797,210010.37793999998,210010.37793999998 +21369600.0,136772.292,9610.437,28062.476039999998,133674.95382999998,133674.95382999998,133674.95382999998,115930.41599999998,77076.69376,82099.97952000001,82681.01709,125990.12127999999,26067.909,26067.909,26067.909,41411.5415,136772.292,136772.292,15548.892579999998,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,35097.777,35097.777,35097.777,35097.777,411228.6912799999,411228.6912799999 +21373200.0,90723.945,36333.636,106094.21711999999,155535.86807,155535.86807,155535.86807,136862.2955,90993.32032,117111.26464000001,76939.06479,117240.47968,24109.389000000003,24109.389000000003,24109.389000000003,48888.6265,90723.945,90723.945,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,33504.909,33504.909,33504.909,33504.909,272776.66130000004,272776.66130000004 +21376800.0,24630.870000000003,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24630.870000000003,24630.870000000003,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74056.81580000001,74056.81580000001 +21380400.0,21740.463,7074.348,20657.09616,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,27245.94624,47973.77214,73102.89088,15032.913,15032.913,15032.913,30483.495,21740.463,21740.463,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,65366.325419999994,65366.325419999994 +21384000.0,19507.467,7824.375,22847.175,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,60547.88191999999,25319.511680000003,40732.447770000006,62068.49184000001,19392.75,19392.75,19392.75,25882.213000000003,19507.467,19507.467,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17737.892999999996,17737.892999999996,17737.892999999996,17737.892999999996,58652.45078,58652.45078 +21387600.0,14536.251,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,14536.251,14536.251,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,43705.66134,43705.66134 +21391200.0,13209.954000000002,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,42095.753679999994,15936.305920000003,28060.131329999997,42758.29536,8792.835,8792.835,8792.835,17829.9695,13209.954000000002,13209.954000000002,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12831.54,12831.54,12831.54,12831.54,39717.92836,39717.92836 +21394800.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +21398400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +21402000.0,37435.763999999996,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,61030.43528,22619.26976,47162.81514,71867.14688,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,37435.763999999996,37435.763999999996,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,36893.088,36893.088,36893.088,36893.088,112556.86376,112556.86376 +21405600.0,39843.066000000006,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,91054.36584,40097.804800000005,83503.65786,127243.66912000002,22123.911,22123.911,22123.911,44862.503,39843.066000000006,39843.066000000006,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,47192.78400000001,47192.78400000001,47192.78400000001,47192.78400000001,119794.81844,119794.81844 +21409200.0,45084.597,11590.032,33842.89344,144556.86399,144556.86399,144556.86399,127201.42749999999,126912.6608,40611.8848,89834.7639,136891.0688,22407.549,22407.549,22407.549,45437.66499999999,45084.597,45084.597,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,53123.472,53123.472,53123.472,53123.472,135554.35498,135554.35498 +21412800.0,60153.825000000004,16086.126,46971.48792,128088.36194000002,128088.36194000002,128088.36194000002,112710.12550000001,140127.47704,64086.877440000004,103641.28992000001,157929.58464000002,20660.406,20660.406,20660.406,40261.221,60153.825000000004,60153.825000000004,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,58299.407999999996,58299.407999999996,58299.407999999996,58299.407999999996,180862.5005,180862.5005 +21416400.0,57347.631,7741.74,22605.8808,107854.23891000001,107854.23891000001,107854.23891000001,93388.3895,66159.35688,55232.05888,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,57347.631,57347.631,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,28587.858,28587.858,28587.858,28587.858,172425.21054,172425.21054 +21420000.0,17377.934999999998,8084.606999999999,23607.052439999996,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17377.934999999998,17377.934999999998,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,52249.65789999999,52249.65789999999 +21423600.0,10556.748,10661.055,31130.2806,36596.67484,36596.67484,36596.67484,32202.8945,37388.36328,10281.4912,18103.308510000003,27585.993920000004,5868.21,5868.21,5868.21,11503.205,10556.748,10556.748,16848.766219999998,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,31740.62232,31740.62232 +21427200.0,6207.657,15321.165,44737.8018,12808.83538,12808.83538,12808.83538,11271.011499999999,29610.516960000004,17225.24864,6336.15822,9655.098240000001,2892.279,2892.279,2892.279,4026.1234999999997,6207.657,6207.657,31104.99535,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,18664.35538,18664.35538 +21430800.0,5418.335999999999,17830.389000000003,52064.73588000001,7319.33334,7319.33334,7319.33334,6440.577499999999,36462.7408,30246.06272,3620.65977,5517.19584,2014.1910000000003,2014.1910000000003,2014.1910000000003,2300.6409999999996,5418.335999999999,5418.335999999999,30215.761029999998,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,2511.393,2511.393,2511.393,2511.393,16291.130239999999,16291.130239999999 +21434400.0,5324.13,15809.976,46165.12992,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,29807.10304,28607.904640000004,905.16615,1379.3008,4240.188,4240.188,4240.188,575.162,5324.13,5324.13,26429.71864,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2190.837,2190.837,2190.837,2190.837,16007.8842,16007.8842 +21438000.0,7327.137000000001,16854.36,49214.731199999995,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,33162.09544,31643.381120000002,5216.88783,7949.54336,8687.106,8687.106,8687.106,575.162,7327.137000000001,7327.137000000001,28641.654860000002,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2373.639,2373.639,2373.639,2373.639,22030.25858,22030.25858 +21441600.0,7376.487000000001,15097.371,44084.323319999996,3923.2602200000006,3923.2602200000006,3923.2602200000006,3220.2905,35152.36744,26556.970240000002,6263.3508,9544.1536,8367.576000000001,8367.576000000001,8367.576000000001,1150.3204999999998,7376.487000000001,7376.487000000001,26193.76409,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2441.2439999999997,2441.2439999999997,2441.2439999999997,2441.2439999999997,22178.637580000002,22178.637580000002 +21445200.0,21500.094,15959.541,46601.85971999999,14160.514940000001,14160.514940000001,14160.514940000001,11271.011499999999,93151.86024000001,29689.953279999998,14106.31446,21495.33632,10526.655,10526.655,10526.655,4026.1234999999997,21500.094,21500.094,42994.20423999999,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,13727.211,13727.211,13727.211,13727.211,64643.61596,64643.61596 +21448800.0,112072.728,55860.438,163112.47896,105865.81599,105865.81599,105865.81599,90168.099,297705.20696,36612.78848,113861.86937999999,173503.80096,27461.328,27461.328,27461.328,32208.977499999994,112072.728,112072.728,596271.0920399999,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,85336.515,85336.515,85336.515,85336.515,336965.33551999996,336965.33551999996 +21452400.0,116073.65699999999,196758.522,574534.8842399999,173955.35718,173955.35718,173955.35718,149743.45400000003,642933.922,47808.917760000004,535063.8402900001,815335.37568,82476.033,82476.033,82476.033,53489.9085,116073.65699999999,116073.65699999999,48312.40478999999,104131.78155,154783.53702,269971.2855,76620.42198,97446.77829,173031.825,173031.825,173031.825,173031.825,348994.79537999997,348994.79537999997 +21456000.0,393787.7640000001,38372.406,112047.42551999999,144376.74207,144376.74207,144376.74207,115930.41599999998,194237.86856,166230.47168000002,180873.93177,275617.41984,86757.28499999999,86757.28499999999,86757.28499999999,41411.5415,393787.7640000001,393787.7640000001,32386.27834,41667.582599999994,61935.51783999999,108027.06599999999,30659.110159999997,38992.62668,196967.13300000003,196967.13300000003,196967.13300000003,196967.13300000003,1183988.54376,1183988.54376 +21459600.0,237227.17200000002,87883.524,256619.89008,157898.79611000002,157898.79611000002,157898.79611000002,136862.2955,147041.70416,203139.8272,77877.61107,118670.64544000001,154863.45900000003,154863.45900000003,154863.45900000003,48888.6265,237227.17200000002,237227.17200000002,55818.30878,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,55334.166000000005,55334.166000000005,55334.166000000005,55334.166000000005,713263.03048,713263.03048 +21463200.0,26179.011000000006,10242.141,29907.05172,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31950.120960000004,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,26179.011000000006,26179.011000000006,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,78711.55974000001,78711.55974000001 +21466800.0,26752.716,9997.383000000002,29192.358360000002,96981.18507,96981.18507,96981.18507,85337.66500000001,56737.01328,31837.382400000002,47973.77214,73102.89088,16112.484,16112.484,16112.484,30483.495,26752.716,26752.716,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,80436.49944,80436.49944 +21470400.0,34171.388999999996,12095.843999999997,35319.86448,82514.77707000001,82514.77707000001,82514.77707000001,72456.51000000001,77233.9124,38494.62592,40732.447770000006,62068.49184000001,30498.852,30498.852,30498.852,25882.213000000003,34171.388999999996,34171.388999999996,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,18308.502,18308.502,18308.502,18308.502,102741.97626,102741.97626 +21474000.0,17864.721,7361.115,21494.4558,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38812.97872,22254.474240000003,32585.957250000003,49654.79200000001,10358.148000000001,10358.148000000001,10358.148000000001,20705.7725,17864.721,17864.721,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14313.309000000001,14313.309000000001,14313.309000000001,14313.309000000001,53713.26114,53713.26114 +21477600.0,35931.828,6594.765,19256.7138,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,58946.86928,15936.305920000003,31312.624350000002,47714.47520000001,11789.499,11789.499,11789.499,17829.9695,35931.828,35931.828,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,15030.729000000001,15030.729000000001,15030.729000000001,15030.729000000001,108035.02952,108035.02952 +21481200.0,9761.708999999999,3608.8229999999994,10537.763159999999,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,9254.454000000002,9254.454000000002,9254.454000000002,13803.846000000001,9761.708999999999,9761.708999999999,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29350.205059999997,29350.205059999997 +21484800.0,10988.313,4128.918,12056.440560000001,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10988.313,10988.313,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,33038.19442,33038.19442 +21488400.0,130461.38399999999,10882.935,31778.1702,83042.86364000001,83042.86364000001,83042.86364000001,70846.3665,133690.03336,27494.782720000003,157859.88981,240548.40352,13358.048999999999,13358.048999999999,13358.048999999999,25307.054500000002,130461.38399999999,130461.38399999999,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,122851.005,122851.005,122851.005,122851.005,392253.8945599999,392253.8945599999 +21492000.0,85019.814,35925.114,104901.33288,145487.37180999998,145487.37180999998,145487.37180999998,125591.28399999999,162590.49392,80041.99488,121164.84387,184632.14304,26872.539000000004,26872.539000000004,26872.539000000004,44862.503,85019.814,85019.814,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,57593.34000000001,57593.34000000001,57593.34000000001,57593.34000000001,255626.24076,255626.24076 +21495600.0,103297.62,50188.02299999999,146549.02715999997,148253.60429000002,148253.60429000002,148253.60429000002,127201.42749999999,172676.34912,100283.81056000001,139227.05874,212155.51808000004,33356.121,33356.121,33356.121,45437.66499999999,103297.62,103297.62,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,64031.409,64031.409,64031.409,64031.409,310581.5108,310581.5108 +21499200.0,139952.832,69930.282,204196.42344,134462.14067000002,134462.14067000002,134462.14067000002,112710.12550000001,173207.3044,115323.4848,148940.35779,226956.73568,45466.332,45466.332,45466.332,43242.3075,139952.832,139952.832,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,70752.663,70752.663,70752.663,70752.663,420791.51488000003,420791.51488000003 +21502800.0,99877.731,41039.472,119835.25824,111593.86887,111593.86887,111593.86887,93388.3895,86840.43208,89139.79648,64533.85218,98337.29856000001,34674.456,34674.456,34674.456,33359.297999999995,99877.731,99877.731,21685.596399999995,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,36541.71,36541.71,36541.71,36541.71,300299.04454,300299.04454 +21506400.0,19195.395,17329.197,50601.25523999999,75023.18098,75023.18098,75023.18098,66015.9325,60695.62808000001,23090.7328,37111.78317,56551.288640000006,12309.036,12309.036,12309.036,23581.572,19195.395,19195.395,29833.90956,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,57714.1543,57714.1543 +21510000.0,11301.849000000002,15826.613999999998,46213.71287999999,36596.67484,36596.67484,36596.67484,32202.8945,44917.425599999995,23501.844480000003,18103.308510000003,27585.993920000004,6347.304,6347.304,6347.304,11503.205,11301.849000000002,11301.849000000002,25708.64192,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,33980.892660000005,33980.892660000005 +21513600.0,7262.8769999999995,14311.988999999998,41791.00788,12808.83538,12808.83538,12808.83538,11271.011499999999,31467.269040000003,25523.32672,6336.15822,9655.098240000001,3197.0040000000004,3197.0040000000004,3197.0040000000004,4026.1234999999997,7262.8769999999995,7262.8769999999995,23321.50145,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,4047.24,4047.24,4047.24,4047.24,21837.05018,21837.05018 +21517200.0,6851.486999999999,14052.891,41034.441719999995,7417.501740000001,7417.501740000001,7417.501740000001,6440.577499999999,31837.641839999997,24413.87136,6027.6468,9184.9856,6454.2210000000005,6454.2210000000005,6454.2210000000005,2300.6409999999996,6851.486999999999,6851.486999999999,23598.13898,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,3044.889,3044.889,3044.889,3044.889,20600.137579999995,20600.137579999995 +21520800.0,7418.861999999999,15681.039,45788.63388,2427.52301,2427.52301,2427.52301,1610.1435,36325.19712,28844.784000000003,7874.11716,11998.65472,8441.229,8441.229,8441.229,575.162,7418.861999999999,7418.861999999999,27517.317359999997,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2216.724,2216.724,2216.724,2216.724,22306.045079999996,22306.045079999996 +21524400.0,7812.6990000000005,15947.442000000001,46566.530640000004,2447.89743,2447.89743,2447.89743,1610.1435,37046.51304,29605.045759999997,15692.500950000001,23912.382400000002,11967.603000000001,11967.603000000001,11967.603000000001,575.162,7812.6990000000005,7812.6990000000005,36537.837439999996,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2264.4269999999997,2264.4269999999997,2264.4269999999997,2264.4269999999997,23490.181660000002,23490.181660000002 +21528000.0,10593.234,15037.203,43908.63276,4218.062530000001,4218.062530000001,4218.062530000001,3220.2905,35288.06568,27028.814080000004,18565.457400000003,28290.220800000003,14735.499,14735.499,14735.499,1150.3204999999998,10593.234,10593.234,51605.05181,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,2479.041,2479.041,2479.041,2479.041,31850.323559999997,31850.323559999997 +21531600.0,15565.746,15864.483,46324.29036,13379.80347,13379.80347,13379.80347,11271.011499999999,41078.78192,30065.48736,24526.314960000003,37373.43232000001,16427.862,16427.862,16427.862,4026.1234999999997,15565.746,15565.746,53737.64227,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,4772.244,4772.244,4772.244,4772.244,46801.00963999999,46801.00963999999 +21535200.0,313006.02,34015.254,99324.54168,107982.68811,107982.68811,107982.68811,98330.61000000002,267199.45304,59479.066880000006,189803.88693,289224.97056,85130.853,85130.853,85130.853,32208.977499999994,313006.02,313006.02,114208.63518999999,34790.289749999996,51712.9739,90197.0475,25598.7811,32556.83905,166496.754,166496.754,166496.754,166496.754,941104.7667999999,941104.7667999999 +21538800.0,438252.672,274181.739,800610.67788,200220.34923000002,200220.34923000002,200220.34923000002,149743.45400000003,376704.12504,318689.18080000003,214912.99935,327486.4752,182924.427,182924.427,182924.427,56984.4415,438252.672,438252.672,45807.43375,57844.542149999994,85981.27006,149967.3315,42562.15694,54131.06537,283238.874,283238.874,283238.874,283238.874,1317679.70048,1317679.70048 +21542400.0,326164.674,136993.45500000002,400020.8886,140388.00776,140388.00776,140388.00776,115930.41599999998,267852.89064,417533.9264,303758.37639,462869.90688,136773.918,136773.918,136773.918,53987.577000000005,326164.674,326164.674,105999.30237,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,203513.27699999997,203513.27699999997,203513.27699999997,203513.27699999997,980668.4531599999,980668.4531599999 +21546000.0,198691.98599999998,49709.85599999999,145152.77951999998,161369.76129999998,161369.76129999998,161369.76129999998,136862.2955,200434.61664,91766.20672,172730.48898,263208.36416,201955.146,201955.146,201955.146,57892.191,198691.98599999998,198691.98599999998,18356.33085,48860.69849999999,72627.50739999999,126675.885,35951.8226,45723.9623,127329.88200000001,127329.88200000001,127329.88200000001,127329.88200000001,597400.57124,597400.57124 +21549600.0,59535.759000000005,76881.714,224494.60488,114713.22269000002,114713.22269000002,114713.22269000002,98218.8235,440993.40296000004,31358.54272,226025.81021999998,344420.28224,35004.422999999995,35004.422999999995,35004.422999999995,35084.777,59535.759000000005,59535.759000000005,13173.368259999997,61026.8094,90711.45495999999,158217.654,44903.67704,57109.03892,70342.27200000001,70342.27200000001,70342.27200000001,70342.27200000001,179004.18206,179004.18206 +21553200.0,32077.797,11729.115000000002,34249.0158,97149.29642,97149.29642,97149.29642,85337.66500000001,92417.41016,29556.72768,71650.84752,109182.24384000001,16045.689,16045.689,16045.689,30483.495,32077.797,32077.797,11445.71246,30720.5946,45663.69864,79645.986,22604.289360000002,28748.408280000003,31533.597,31533.597,31533.597,31533.597,96447.24298,96447.24298 +21556800.0,43758.273,15598.668000000001,45548.11056,83022.91657,83022.91657,83022.91657,72456.51000000001,91634.39464,40060.16,67727.71383,103204.13536,15904.341,15904.341,15904.341,25882.213000000003,43758.273,43758.273,9718.056659999998,28043.516249999997,41684.436499999996,72705.41249999999,20634.4885,26243.191749999998,36149.412,36149.412,36149.412,36149.412,131566.54082,131566.54082 +21560400.0,30583.050000000003,9656.636999999999,28197.38004,66313.26295,66313.26295,66313.26295,57965.20799999999,65170.3412,28461.82976,48073.11558,73254.27136,10979.481,10979.481,10979.481,20705.7725,30583.050000000003,30583.050000000003,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,24563.337,24563.337,24563.337,24563.337,91953.037,91953.037 +21564000.0,14200.206,4272.555,12475.8606,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,38746.97504,15936.305920000003,29508.50343,44965.338560000004,8792.835,8792.835,8792.835,17829.9695,14200.206,14200.206,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,13489.353,13489.353,13489.353,13489.353,42695.28604,42695.28604 +21567600.0,10572.779999999999,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,26565.570160000003,12337.789440000002,22727.767860000004,34632.78912,6807.357,6807.357,6807.357,13803.846000000001,10572.779999999999,10572.779999999999,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9616.329000000002,9616.329000000002,9616.329000000002,9616.329000000002,31788.825199999996,31788.825199999996 +21571200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +21574800.0,18101.61,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,40621.47369,61899.38848000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,18101.61,18101.61,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,54425.507399999995,54425.507399999995 +21578400.0,42072.486000000004,12027.887999999999,35121.43296,142727.02862,142727.02862,142727.02862,125591.28399999999,120332.98392,41823.48160000001,79889.8905,121736.976,22123.911,22123.911,22123.911,44862.503,42072.486000000004,42072.486000000004,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,42128.883,42128.883,42128.883,42128.883,126497.94124,126497.94124 +21582000.0,82484.064,23517.123,68669.99916,146259.07637,146259.07637,146259.07637,127201.42749999999,157694.65256000002,79708.66432,117391.89903000002,178882.89376000004,24292.623,24292.623,24292.623,45437.66499999999,82484.064,82484.064,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,60402.83099999999,60402.83099999999,60402.83099999999,60402.83099999999,248002.08576,248002.08576 +21585600.0,113093.946,29146.176,85106.83391999999,131684.64243,131684.64243,131684.64243,112710.12550000001,86103.51168,99331.61472000001,103450.38900000001,157638.68800000002,24052.125,24052.125,24052.125,40261.221,113093.946,113093.946,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,59486.74799999999,59486.74799999999,59486.74799999999,59486.74799999999,340035.79763999995,340035.79763999995 +21589200.0,55227.990000000005,14221.641000000001,41527.19172,108438.36938000002,108438.36938000002,108438.36938000002,93388.3895,81741.31783999999,29816.313600000005,59032.13925,89953.736,17090.535,17090.535,17090.535,33359.297999999995,55227.990000000005,55227.990000000005,21504.990519999996,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,28182.957,28182.957,28182.957,28182.957,166052.15660000002,166052.15660000002 +21592800.0,19461.704999999998,16974.506999999998,49565.56044,75023.18098,75023.18098,75023.18098,66015.9325,61805.222239999996,30968.16832,37111.78317,56551.288640000006,12386.531999999997,12386.531999999997,12386.531999999997,23581.572,19461.704999999998,19461.704999999998,32531.583629999997,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,58514.85969999999,58514.85969999999 +21596400.0,11725.820999999998,17738.222999999998,51795.61116,36596.67484,36596.67484,36596.67484,32202.8945,48968.42335999999,32775.2384,18103.308510000003,27585.993920000004,6441.102000000001,6441.102000000001,6441.102000000001,11503.205,11725.820999999998,11725.820999999998,29316.497859999996,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,8721.651,8721.651,8721.651,8721.651,35255.63513999999,35255.63513999999 +21600000.0,8186.948999999999,16152.627,47165.67084,12913.035520000001,12913.035520000001,12913.035520000001,11271.011499999999,36778.36944,31158.503040000003,7183.190490000001,10945.814080000002,6076.181999999999,6076.181999999999,6076.181999999999,4026.1234999999997,8186.948999999999,8186.948999999999,27070.112419999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,4552.38,4552.38,4552.38,4552.38,24615.426659999997,24615.426659999997 +21603600.0,8749.185,16230.678,47393.57975999999,7958.050650000001,7958.050650000001,7958.050650000001,6440.577499999999,40173.42424,31014.54976,9366.73206,14273.115520000001,9277.082999999999,9277.082999999999,9277.082999999999,2300.6409999999996,8749.185,8749.185,28450.741149999998,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,3454.41,3454.41,3454.41,3454.41,26305.882899999997,26305.882899999997 +21607200.0,7788.906000000001,16152.666,47165.784719999996,2491.16153,2491.16153,2491.16153,1610.1435,37836.93952,30404.399360000003,16559.87235,25234.091200000003,11420.436000000002,11420.436000000002,11420.436000000002,575.162,7788.906000000001,7788.906000000001,43749.41272,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2329.125,2329.125,2329.125,2329.125,23418.64404,23418.64404 +21610800.0,12881.715,17135.463,50035.55196,2554.4500300000004,2554.4500300000004,2554.4500300000004,1610.1435,40500.108,33271.159680000004,20899.7481,31847.2352,18047.961,18047.961,18047.961,575.162,12881.715,12881.715,65312.48879999999,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,2500.6949999999997,2500.6949999999997,2500.6949999999997,2500.6949999999997,38731.0231,38731.0231 +21614400.0,22779.39,33409.863,97556.79995999999,4429.307740000001,4429.307740000001,4429.307740000001,3220.2905,41613.095199999996,36025.44256,25017.492150000002,38121.89280000001,18719.553,18719.553,18719.553,1150.3204999999998,22779.39,22779.39,65742.17090999999,1353.3965999999998,2011.7154399999997,3508.8059999999996,995.83256,1266.5118799999998,6079.073999999999,6079.073999999999,6079.073999999999,6079.073999999999,68490.03259999999,68490.03259999999 +21618000.0,29588.183999999997,37237.161,108732.51012,14067.04332,14067.04332,14067.04332,11271.011499999999,47488.76592,61159.406720000006,32188.617299999998,49049.321599999996,21647.028,21647.028,21647.028,4026.1234999999997,29588.183999999997,29588.183999999997,67466.92146999999,4978.422,7400.024799999999,12907.02,3663.1352,4658.8196,10313.844000000001,10313.844000000001,10313.844000000001,10313.844000000001,88961.80655999998,88961.80655999998 +21621600.0,362749.11899999995,58399.062000000005,170525.26104,108559.65538000001,108559.65538000001,108559.65538000001,100835.5005,339143.44088,124425.76896,232309.10409,353994.82528,118237.75200000001,118237.75200000001,118237.75200000001,33745.047000000006,362749.11899999995,362749.11899999995,137595.28809,38637.777599999994,57431.95583999999,100172.01599999999,28429.772159999997,36157.327679999995,219880.278,219880.278,219880.278,219880.278,1090665.68446,1090665.68446 +21625200.0,478611.723,298079.643,870392.5575599999,205116.18072000003,205116.18072000003,205116.18072000003,154811.916,425510.94976000005,370010.01024000003,240944.67557999998,367153.79136,199025.00700000004,199025.00700000004,199025.00700000004,57712.5745,478611.723,478611.723,53205.84386,59501.53889999999,88444.26275999998,154263.24899999998,43781.379239999995,55681.68702,323425.791,323425.791,323425.791,323425.791,1439025.91382,1439025.91382 +21628800.0,312663.207,116341.93500000001,339718.4502,140562.10608,140562.10608,140562.10608,117961.7845,275960.0896,400809.08160000003,289928.20752,441795.36384,127357.239,127357.239,127357.239,51302.9055,312663.207,312663.207,95371.58331999999,41190.1686,61225.88024,106789.326,30307.82776,38545.86148,191820.73500000004,191820.73500000004,191820.73500000004,191820.73500000004,940074.04238,940074.04238 +21632400.0,168759.52500000002,38113.719,111292.05948,161324.94246000002,161324.94246000002,161324.94246000002,136862.2955,174048.65568000003,100277.22816,147274.70331,224418.59552,178446.762,178446.762,178446.762,55012.0935,168759.52500000002,168759.52500000002,18356.33085,48627.28485,72280.55673999999,126070.73849999999,35780.076259999994,45505.53323,108594.38099999998,108594.38099999998,108594.38099999998,108594.38099999998,507403.6385,507403.6385 +21636000.0,51743.448,70073.496,204614.60831999997,114325.26622,114325.26622,114325.26622,98218.8235,425329.25568,31358.54272,207361.71456,315979.75552,31461.906,31461.906,31461.906,35084.777,51743.448,51743.448,13173.368259999997,57560.0661,85558.41923999999,149229.80099999998,42352.83876,53864.85198,63161.898,63161.898,63161.898,63161.898,155575.30031999998,155575.30031999998 +21639600.0,22827.704999999998,7259.603999999999,21198.04368,96981.18507,96981.18507,96981.18507,85337.66500000001,65758.43504,27245.94624,58922.4741,89786.6272,15032.913,15032.913,15032.913,30483.495,22827.704999999998,22827.704999999998,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,22173.825,22173.825,22173.825,22173.825,68635.29969999999,68635.29969999999 +21643200.0,22870.674,8288.952,24203.73984,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,72257.46152,23133.34976,47271.325919999996,72032.49664,12763.794,12763.794,12763.794,25882.213000000003,22870.674,22870.674,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,24509.613,24509.613,24509.613,24509.613,68764.49316,68764.49316 +21646800.0,16875.93,5312.649,15512.93508,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,48530.376639999995,18506.68416,35009.0475,53347.12,10211.037,10211.037,10211.037,20705.7725,16875.93,16875.93,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,16639.476000000002,16639.476000000002,16639.476000000002,16639.476000000002,50740.29619999999,50740.29619999999 +21650400.0,12801.942000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28605.53493,43589.386560000006,8792.835,8792.835,8792.835,17829.9695,12801.942000000001,12801.942000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,38491.17228,38491.17228 +21654000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21779.271780000003,33187.461760000006,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +21657600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +21661200.0,17766.528000000002,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,39827.28162,60689.191040000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,17766.528000000002,17766.528000000002,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,53418.02752,53418.02752 +21664800.0,34543.482,10411.305,30401.010599999998,142727.02862,142727.02862,142727.02862,125591.28399999999,85943.96287999999,40097.804800000005,74274.53733,113180.24736000001,22123.911,22123.911,22123.911,44862.503,34543.482,34543.482,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,30873.222,30873.222,30873.222,30873.222,103860.73588000001,103860.73588000001 +21668400.0,46663.386,14385.216,42004.83072,144556.86399,144556.86399,144556.86399,127201.42749999999,145924.1384,43904.56448000001,85968.13155,130999.0576,22407.549,22407.549,22407.549,45437.66499999999,46663.386,46663.386,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,49170.342000000004,49170.342000000004,49170.342000000004,49170.342000000004,140301.24724,140301.24724 +21672000.0,78453.891,10623.522,31020.68424,129012.51649000001,129012.51649000001,129012.51649000001,112710.12550000001,79417.06208,78963.03616,79160.91791999999,120626.16064,22255.362,22255.362,22255.362,40261.221,78453.891,78453.891,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,54487.371,54487.371,54487.371,54487.371,235884.69893999997,235884.69893999997 +21675600.0,40196.352,8333.832,24334.78944,108338.81311,108338.81311,108338.81311,93388.3895,65019.30712,29816.313600000005,52499.598060000004,79999.38752,16451.112,16451.112,16451.112,33359.297999999995,40196.352,40196.352,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,23839.593,23839.593,23839.593,23839.593,120857.03167999999,120857.03167999999 +21679200.0,18688.173,11896.953,34739.102759999994,75023.18098,75023.18098,75023.18098,66015.9325,56587.094639999996,27476.33024,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,18688.173,18688.173,17714.37382,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,56189.10681999999,56189.10681999999 +21682800.0,11636.814,16955.193,49509.16355999999,36596.67484,36596.67484,36596.67484,32202.8945,44981.17504,31391.34592,18103.308510000003,27585.993920000004,6493.68,6493.68,6493.68,11503.205,11636.814,11636.814,34664.66471,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,34988.02076,34988.02076 +21686400.0,7903.887,20804.319,60748.61148,13037.62636,13037.62636,13037.62636,11271.011499999999,46034.65264,46096.340480000006,6345.19032,9668.86144,4475.073,4475.073,4475.073,4026.1234999999997,7903.887,7903.887,36410.68509,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,5366.424,5366.424,5366.424,5366.424,23764.35358,23764.35358 +21690000.0,11342.148,21511.125,62812.485,8337.3543,8337.3543,8337.3543,6440.577499999999,53146.34184,46363.390080000005,11936.577030000002,18189.069760000002,12948.402,12948.402,12948.402,2300.6409999999996,11342.148,11342.148,39271.11513,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,4380.609,4380.609,4380.609,4380.609,34102.05832,34102.05832 +21693600.0,14341.152,21520.512,62839.895039999996,2880.48145,2880.48145,2880.48145,1610.1435,52549.33615999999,45924.46912,26180.029679999996,39893.37856,19666.947,19666.947,19666.947,575.162,14341.152,14341.152,89784.48452999999,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,3936.3689999999997,3936.3689999999997,3936.3689999999997,3936.3689999999997,43119.06368,43119.06368 +21697200.0,30874.845,49282.61399999999,143905.23287999997,3690.8876400000004,3690.8876400000004,3690.8876400000004,1610.1435,53680.81864,109560.90368,33187.52409,50571.46528,36991.185,36991.185,36991.185,575.162,30874.845,30874.845,92105.90116,785.6433,1167.7957199999998,2036.8529999999998,578.07828,735.2069399999999,8087.217000000001,8087.217000000001,8087.217000000001,8087.217000000001,92830.3673,92830.3673 +21700800.0,49257.03599999999,55665.452999999994,162543.12275999997,5708.5413,5708.5413,5708.5413,3220.2905,72136.36327999999,210539.89184000003,44201.35377,67354.44384,49639.758,49639.758,49639.758,1150.3204999999998,49257.03599999999,49257.03599999999,96005.22867,2677.0783500000002,3979.2621400000003,6940.5735,1969.8008600000003,2505.21653,19302.897,19302.897,19302.897,19302.897,148099.48823999998,148099.48823999998 +21704400.0,81285.333,59643.825000000004,174159.969,21751.195180000002,21751.195180000002,21751.195180000002,11271.011499999999,286686.2424,279691.20256,59118.80877,90085.80384000001,51364.206000000006,51364.206000000006,51364.206000000006,6555.213,81285.333,81285.333,154683.50572999998,5494.23405,8166.73802,14244.310500000001,4042.6709800000003,5141.517790000001,63205.869000000006,63205.869000000006,63205.869000000006,63205.869000000006,244397.90122,244397.90122 +21708000.0,270401.12400000007,147795.99,431564.2908,117811.29448000001,117811.29448000001,117811.29448000001,90168.099,871379.5087999998,340274.9158400001,381187.97598000005,580857.8681600001,116197.692,116197.692,116197.692,35037.359000000004,270401.12400000007,270401.12400000007,1136426.8385599998,33270.264,49453.577600000004,86256.24,24480.3424,31134.395200000003,274457.244,274457.244,274457.244,274457.244,813006.04616,813006.04616 +21711600.0,194716.749,259002.153,756286.2867599999,177820.51001,177820.51001,177820.51001,149743.45400000003,1080764.9941599998,201417.86048000003,880899.5006700001,1342323.0486400002,180264.612,180264.612,180264.612,58521.134000000005,194716.749,194716.749,129748.81685999999,145414.9503,216147.65451999998,377001.723,106996.67947999999,136079.66954,265519.284,265519.284,265519.284,265519.284,585448.35866,585448.35866 +21715200.0,542688.327,83117.72400000002,242703.75408,152882.11818000002,152882.11818000002,152882.11818000002,115930.41599999998,384689.7352,249938.28672000003,239697.2025,365252.88,142461.093,142461.093,142461.093,41411.5415,542688.327,542688.327,88734.37495,44414.831249999996,66019.08249999999,115149.5625,32680.5425,41563.50875,409328.10900000005,409328.10900000005,409328.10900000005,409328.10900000005,1631682.90318,1631682.90318 +21718800.0,275157.624,90445.755,264101.60459999996,164087.75614,164087.75614,164087.75614,136862.2955,184766.06016,797593.6076800001,76939.06479,117240.47968,255831.67799999999,255831.67799999999,255831.67799999999,48888.6265,275157.624,275157.624,68077.21908,88530.6834,131593.75655999998,229523.994,65141.09544,82847.23212,66166.023,66166.023,66166.023,66166.023,827307.25616,827307.25616 +21722400.0,26613.801,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,26613.801,26613.801,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,80018.82834,80018.82834 +21726000.0,26462.811,22486.329,65660.08068,97000.25709000001,97000.25709000001,97000.25709000001,85337.66500000001,56868.05704,27358.597760000004,47973.77214,73102.89088,16421.403000000002,16421.403000000002,16421.403000000002,30483.495,26462.811,26462.811,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,79564.85174,79564.85174 +21729600.0,37846.098,16651.497000000003,48622.37124000001,83511.64624000002,83511.64624000002,83511.64624000002,72456.51000000001,76754.40168,35358.24832,40732.447770000006,62068.49184000001,31010.052000000003,31010.052000000003,31010.052000000003,25882.213000000003,37846.098,37846.098,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,17994.909,17994.909,17994.909,17994.909,113790.60132,113790.60132 +21733200.0,25012.665,9803.751,28626.95292,66091.60261,66091.60261,66091.60261,57965.20799999999,39457.45776,27545.287680000005,32585.957250000003,49654.79200000001,10712.202,10712.202,10712.202,20705.7725,25012.665,25012.665,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14798.568,14798.568,14798.568,14798.568,75204.7461,75204.7461 +21736800.0,36732.519,12110.975999999999,35364.04992,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,74818.03872,16408.6176,34482.05586,52544.08512,12225.024,12225.024,12225.024,17829.9695,36732.519,36732.519,17982.714099999997,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,14868.606,14868.606,14868.606,14868.606,110442.44046,110442.44046 +21740400.0,10669.053,5354.862,15636.19704,43916.00818,43916.00818,43916.00818,38643.472,34047.38104,12337.789440000002,21723.97311,33103.19712,8914.263,8914.263,8914.263,13803.846000000001,10669.053,10669.053,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,32078.28602,32078.28602 +21744000.0,11090.439,4840.122,14133.15624,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,11090.439,11090.439,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,33345.25326,33345.25326 +21747600.0,185943.71399999998,22240.911,64943.460119999996,89827.11001000002,89827.11001000002,89827.11001000002,70846.3665,165251.63008,40320.844800000006,157961.86560000002,240703.79520000002,19032.102000000003,19032.102000000003,19032.102000000003,25429.025999999998,185943.71399999998,185943.71399999998,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,123096.90000000001,123096.90000000001,123096.90000000001,123096.90000000001,559070.7667599999,559070.7667599999 +21751200.0,123737.37299999999,55504.416000000005,162072.89472,150313.37431,150313.37431,150313.37431,125591.28399999999,196484.32384,112989.86624,139382.00997,212391.63424,41349.348,41349.348,41349.348,49250.1345,123737.37299999999,123737.37299999999,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,66312.822,66312.822,66312.822,66312.822,372037.03481999994,372037.03481999994 +21754800.0,194515.72199999998,85650.837,250100.44404,157566.83877,157566.83877,157566.83877,127631.74549999999,237575.36976,160871.46240000002,182921.81313,278738.00096,119950.65299999999,119950.65299999999,119950.65299999999,52940.9825,194515.72199999998,194515.72199999998,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,93608.412,93608.412,93608.412,93608.412,584843.93748,584843.93748 +21758400.0,274724.78099999996,146393.103,427467.86076,145056.92454000004,145056.92454000004,145056.92454000004,117101.26049999999,335614.9304,420235.47391999996,237415.85826000004,361776.54592000006,205989.55200000003,205989.55200000003,205989.55200000003,48256.775,274724.78099999996,274724.78099999996,39823.798559999996,69575.74785,103418.76594,180381.5685,51194.00706,65109.15663,132324.81900000002,132324.81900000002,132324.81900000002,132324.81900000002,826005.8415399999,826005.8415399999 +21762000.0,218780.32799999998,106913.18400000001,312186.49728,120126.94540000001,120126.94540000001,120126.94540000001,96480.8425,186224.75784,192498.1536,145491.94548,221702.01216,115716.693,115716.693,115716.693,33524.939,218780.32799999998,218780.32799999998,54746.20788,34463.750400000004,51227.59936,89350.464,25358.512640000004,32251.262720000006,126581.706,126581.706,126581.706,126581.706,657799.51952,657799.51952 +21765600.0,24776.987999999998,26331.983999999997,76889.39327999999,76077.16446,76077.16446,76077.16446,66015.9325,90618.8712,64993.98656,40002.2532,60955.814399999996,17866.527000000002,17866.527000000002,17866.527000000002,23581.572,24776.987999999998,24776.987999999998,45998.89579999999,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,18948.084,18948.084,18948.084,18948.084,74496.14391999999,74496.14391999999 +21769200.0,23070.300000000003,24235.752,70768.39584,37895.26939,37895.26939,37895.26939,32202.8945,73489.43288000001,56189.488000000005,42240.53799,64366.53408,20839.182,20839.182,20839.182,11503.205,23070.300000000003,23070.300000000003,67566.59429,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,10791.891,10791.891,10791.891,10791.891,69364.702,69364.702 +21772800.0,32297.775,41259.206999999995,120476.88444,14885.178440000002,14885.178440000002,14885.178440000002,11271.011499999999,61646.26912,100476.19072,38561.68638,58760.66496,33021.882000000005,33021.882000000005,33021.882000000005,4026.1234999999997,32297.775,32297.775,95598.71152,4205.14335,6250.608139999999,10902.2235,3094.15486,3935.1835300000002,9784.416000000001,9784.416000000001,9784.416000000001,9784.416000000001,97108.6435,97108.6435 +21776400.0,43238.109000000004,56206.314,164122.43688,9468.49684,9468.49684,9468.49684,6440.577499999999,64570.0476,225078.66176000002,47422.9203,72263.4976,51059.276999999995,51059.276999999995,51059.276999999995,2719.542,43238.109000000004,43238.109000000004,97618.99328999998,3872.6545499999997,5756.390219999999,10040.2155,2849.50878,3624.03969,20380.224000000002,20380.224000000002,20380.224000000002,20380.224000000002,130002.58106000001,130002.58106000001 +21780000.0,49758.348000000005,58448.904,170670.79968,4012.87348,4012.87348,4012.87348,1610.1435,77202.07272,327917.52064,54554.574689999994,83130.78048,53169.78300000001,53169.78300000001,53169.78300000001,4414.6795,49758.348000000005,49758.348000000005,104089.06858999998,2173.716,3231.0544,5635.56,1599.4256,2034.1688000000001,33768.198000000004,33768.198000000004,33768.198000000004,33768.198000000004,149606.76632,149606.76632 +21783600.0,64457.247,62607.13799999999,182812.84295999998,4106.52011,4106.52011,4106.52011,1610.1435,83495.79984,350867.0419200001,66351.21696,101106.61632,55449.51299999999,55449.51299999999,55449.51299999999,4566.191,64457.247,64457.247,132628.04919,2238.1434,3326.82056,5802.594,1646.8314400000002,2094.46012,43036.242,43036.242,43036.242,43036.242,193801.45598,193801.45598 +21787200.0,64507.149000000005,63580.640999999996,185655.47171999997,5871.41049,5871.41049,5871.41049,3220.2905,81796.33648,335572.55808,67639.14129,103069.16768,53385.3,53385.3,53385.3,5022.157,64507.149000000005,64507.149000000005,127830.19443999999,4284.8676,6369.11184,11108.916,3152.81616,4009.78968,42884.178,42884.178,42884.178,42884.178,193951.49466,193951.49466 +21790800.0,102873.837,77318.511,225770.05211999998,25049.173160000002,25049.173160000002,25049.173160000002,11271.011499999999,408502.96591999993,340022.08640000003,106869.04368,162848.06656,55636.713,55636.713,55636.713,10206.958999999999,102873.837,102873.837,241840.27282999997,12740.109299999998,18937.15012,33029.91299999999,9374.20388,11922.225739999998,98366.103,98366.103,98366.103,98366.103,309307.33658,309307.33658 +21794400.0,400801.017,191674.803,559690.4247600001,123721.28043000001,123721.28043000001,123721.28043000001,92513.6625,1297255.14904,497488.8377600001,696446.33121,1061251.55232,238001.16,238001.16,238001.16,50393.0735,400801.017,400801.017,1241134.9349099998,58101.575399999994,86363.32935999999,150633.71399999998,42751.28264,54371.59772,398564.733,398564.733,398564.733,398564.733,1205075.05778,1205075.05778 +21798000.0,291240.89099999995,307689.723,898453.99116,189348.27219,189348.27219,189348.27219,149743.45400000003,1611943.1227199999,543646.0192000001,1195431.2307,1821609.4944000002,320893.017,320893.017,320893.017,163123.912,291240.89099999995,291240.89099999995,283139.69281,224756.37,334082.30799999996,582701.7000000001,165376.29200000002,210327.56600000002,366160.86,366160.86,366160.86,366160.86,875664.2789399999,875664.2789399999 +21801600.0,916948.6799999999,230546.12100000004,673194.6733200001,166945.79154,166945.79154,166945.79154,124897.535,823769.0606399999,549405.93472,619135.21635,943444.1392000001,429811.72200000007,429811.72200000007,429811.72200000007,100075.98999999999,916948.6799999999,916948.6799999999,235680.9572,118294.3845,175835.1098,306689.145,87041.3002,110700.1771,964638.0419999999,964638.0419999999,964638.0419999999,964638.0419999999,2756959.0311999996,2756959.0311999996 +21805200.0,464404.122,181878.012,531083.79504,177331.28787,177331.28787,177331.28787,136862.2955,324468.18663999997,1812077.96992,96325.38069,146781.53248,445217.3670000001,445217.3670000001,445217.3670000001,262647.81200000003,464404.122,464404.122,161728.52994999997,351916.28955,523095.32422,912375.5655,258940.87478,329324.13269000006,127819.70099999999,127819.70099999999,127819.70099999999,127819.70099999999,1396308.3934799999,1396308.3934799999 +21808800.0,55829.361000000004,11516.265,33627.4938,111737.62127,111737.62127,111737.62127,98218.8235,65301.09296000001,34811.14752,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,55829.361000000004,55829.361000000004,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24338.415,24338.415,24338.415,24338.415,167860.27874,167860.27874 +21812400.0,29532.195,130678.31999999998,381580.6943999999,100948.00243000001,100948.00243000001,100948.00243000001,111444.3785,99060.46856,58184.107520000005,50619.3177,77134.19840000001,21284.706,21284.706,21284.706,30483.495,29532.195,29532.195,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,22114.161,22114.161,22114.161,22114.161,88793.4663,88793.4663 +21816000.0,50639.384999999995,18381.513,53674.017960000005,85474.10256000001,85474.10256000001,85474.10256000001,72684.33200000001,91454.73872000001,42851.315200000005,43725.1206,66628.7552,34669.209,34669.209,34669.209,30593.003,50639.384999999995,50639.384999999995,9718.056659999998,26928.0045,40026.3178,69813.345,19813.6922,25199.293100000003,23338.419,23338.419,23338.419,23338.419,152255.75089999998,152255.75089999998 +21819600.0,29861.412,10622.934000000001,31018.96728,66329.23770000001,66329.23770000001,66329.23770000001,57965.20799999999,50171.78455999999,28656.7776,32585.957250000003,49654.79200000001,16526.745,16526.745,16526.745,20705.7725,29861.412,29861.412,8620.332889999998,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14841.894,14841.894,14841.894,14841.894,89783.31208,89783.31208 +21823200.0,77556.984,47867.87699999999,139774.20083999998,56861.831620000004,56861.831620000004,56861.831620000004,59917.0075,132570.70976,20602.11776,105680.94579000001,161037.63168000002,31991.577,31991.577,31991.577,17829.9695,77556.984,77556.984,150885.31328,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,18888.84,18888.84,18888.84,18888.84,233187.99856,233187.99856 +21826800.0,10983.876,27954.519,81627.19548000001,46806.595440000005,46806.595440000005,46806.595440000005,74346.734,59287.5924,12337.789440000002,21723.97311,33103.19712,13643.417999999998,13643.417999999998,13643.417999999998,21300.531,10983.876,10983.876,7705.648859999999,30827.6037,45822.759079999996,79923.417,22683.02692,28848.54766,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,33024.853839999996,33024.853839999996 +21830400.0,11067.324,4786.215,13975.7478,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,11067.324,11067.324,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,33275.75416,33275.75416 +21834000.0,272657.511,63241.029,184663.80468,95349.50579000001,95349.50579000001,95349.50579000001,70846.3665,223990.0172,53399.48608,227423.23548000003,346549.69216000004,73336.518,73336.518,73336.518,39495.141,272657.511,272657.511,9502.102089999998,26105.4252,38803.61968,67680.732,19208.43632,24429.521360000002,157178.517,157178.517,157178.517,157178.517,819790.24974,819790.24974 +21837600.0,135725.142,56087.924999999996,163776.74099999998,151903.48668000003,151903.48668000003,151903.48668000003,125591.28399999999,222820.58056,107738.52544000001,170980.04867999998,260541.02656,77020.611,77020.611,77020.611,52368.389500000005,135725.142,135725.142,16844.63443,46968.93945,69815.55937999999,121771.3245,34559.86162,43953.64951,75464.709,75464.709,75464.709,75464.709,408080.26028,408080.26028 +21841200.0,220721.136,117211.938,342258.85896,158812.5803,158812.5803,158812.5803,139270.8625,277312.68616,183432.1216,219114.78057,333889.18944000005,156559.02599999998,156559.02599999998,156559.02599999998,75587.9985,220721.136,220721.136,34700.67237,65852.50184999999,97884.45953999998,170728.70849999998,48454.43345999999,61624.933829999994,109591.5,109591.5,109591.5,109591.5,663634.88224,663634.88224 +21844800.0,301982.034,186213.096,543742.24032,147076.24283,147076.24283,147076.24283,133092.42099999997,365576.0576,510855.4944000001,329697.25866,502395.82272,230823.462,230823.462,230823.462,102758.131,301982.034,301982.034,96677.74843999998,88274.58165,131213.08185999998,228860.02649999998,64952.655139999995,82607.57147,164383.626,164383.626,164383.626,164383.626,907959.3155599999,907959.3155599999 +21848400.0,242275.56299999997,118991.97600000002,347456.56992000004,122172.57624000002,122172.57624000002,122172.57624000002,102495.46299999999,269006.99144,248689.48032000003,179911.40454000002,274150.71168000007,132769.422,132769.422,132769.422,35629.755000000005,242275.56299999997,242275.56299999997,76624.46883,36684.106199999995,54527.98007999999,95106.94199999998,26992.255919999996,34329.07715999999,176719.34999999998,176719.34999999998,176719.34999999998,176719.34999999998,728441.8594199999,728441.8594199999 +21852000.0,29729.756999999998,25868.825999999997,75536.97192,76292.78899,76292.78899,76292.78899,66015.9325,92926.13256000001,63625.72864000001,58335.89958,88892.79936,23425.968,23425.968,23425.968,23581.572,29729.756999999998,29729.756999999998,48046.224200000004,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,18875.646,18875.646,18875.646,18875.646,89387.46938,89387.46938 +21855600.0,32866.578,30237.783000000003,88294.32636,38493.221580000005,38493.221580000005,38493.221580000005,32202.8945,70811.82792,75502.9024,45832.44960000001,69839.9232,27222.588,27222.588,27222.588,11503.205,32866.578,32866.578,89455.76912999999,11497.5855,17090.238199999996,29808.555,8459.951799999999,10759.4689,12557.499,12557.499,12557.499,12557.499,98818.84452,98818.84452 +21859200.0,38690.7,47117.886,137584.22712,14724.458210000003,14724.458210000003,14724.458210000003,11271.011499999999,61401.053360000005,169182.4224,45212.15202,68894.70784,41920.917,41920.917,41920.917,5186.485500000001,38690.7,38690.7,87198.23410999999,5418.806849999999,8054.621539999998,14048.758499999998,3987.1714599999996,5070.93283,16838.853,16838.853,16838.853,16838.853,116330.03799999999,116330.03799999999 +21862800.0,40200.816,44455.233,129809.28036,9143.3364,9143.3364,9143.3364,6440.577499999999,60100.67223999999,260402.79040000003,43806.70413,66753.07296,43996.347,43996.347,43996.347,5637.5830000000005,40200.816,40200.816,82135.54556999999,3626.4793499999996,5390.470539999999,9401.983499999998,2668.3724599999996,3393.6683299999995,24944.898,24944.898,24944.898,24944.898,120870.45343999998,120870.45343999998 +21866400.0,47565.03600000001,51424.017,150158.12964,3758.1647400000006,3758.1647400000006,3758.1647400000006,1610.1435,69456.58584,292003.28256,56398.494810000004,85940.56352000001,46145.247,46145.247,46145.247,4090.8665,47565.03600000001,47565.03600000001,85980.0006,2052.4468500000003,3050.79754,5321.1585000000005,1510.1954600000001,1920.6848300000001,35985.62699999999,35985.62699999999,35985.62699999999,35985.62699999999,143012.20824,143012.20824 +21870000.0,50191.547999999995,48205.134000000005,140758.99128,3645.18154,3645.18154,3645.18154,1610.1435,67226.80376,268504.07104,53565.64668,81623.84256,42700.878,42700.878,42700.878,3898.2965,50191.547999999995,50191.547999999995,89159.31920999999,4054.4833499999995,6026.664139999999,10511.6235,2983.29886,3794.19553,34220.475000000006,34220.475000000006,34220.475000000006,34220.475000000006,150909.25431999998,150909.25431999998 +21873600.0,48015.126000000004,44167.236000000004,128968.32912,5276.075310000001,5276.075310000001,5276.075310000001,3220.2905,61235.03384,229000.96704000005,52072.11407999999,79347.98336,37152.951,37152.951,37152.951,6256.5195,48015.126000000004,48015.126000000004,90541.61700999999,7159.6548,10642.25232,18562.068,5268.09168,6700.02264,32456.424,32456.424,32456.424,32456.424,144365.47884,144365.47884 +21877200.0,80284.79400000001,54750.345,159871.0074,23493.09413,23493.09413,23493.09413,11271.011499999999,341785.99416,226996.52288000003,82771.41054000001,126127.86368000002,38236.686,38236.686,38236.686,26075.966,80284.79400000001,80284.79400000001,187288.79779999997,10960.17075,16291.4143,28415.2575,8064.5207,10256.55485,77226.543,77226.543,77226.543,77226.543,241389.61396000002,241389.61396000002 +21880800.0,326205.81299999997,157666.233,460385.40035999997,120337.83652000001,120337.83652000001,120337.83652000001,93312.3765,1100424.8928,384369.60832,553689.30561,843717.0371200001,171773.385,171773.385,171773.385,57769.8765,326205.81299999997,326205.81299999997,1147399.5356199997,65363.176799999994,97157.11711999998,169460.088,48094.38688,61167.02224,327344.48699999996,327344.48699999996,327344.48699999996,327344.48699999996,980792.1444199999,980792.1444199999 +21884400.0,247224.96600000001,281615.58,822317.4935999999,184149.89725,184149.89725,184149.89725,149743.45400000003,1373631.3055999998,439221.71584,1071343.63308,1632523.6313600002,254156.943,254156.943,254156.943,161644.588,247224.96600000001,247224.96600000001,198903.3605,207621.89729999998,308613.28932,538278.993,152768.70468,194293.08414,324336.174,324336.174,324336.174,324336.174,743323.06444,743323.06444 +21888000.0,785480.463,159480.15000000002,465682.038,160263.50681,160263.50681,160263.50681,124008.35649999998,630000.9792,398673.42464,485680.80939,740085.04288,336442.35599999997,336442.35599999997,336442.35599999997,93424.26800000001,785480.463,785480.463,211937.71013999998,107858.8224,160323.48416,279633.984,79362.78784,100934.55232,776441.553,776441.553,776441.553,776441.553,2361677.9254199998,2361677.9254199998 +21891600.0,407499.15599999996,160035.33299999998,467303.17235999997,171632.06687,171632.06687,171632.06687,136862.2955,283979.01112,1550504.9484799998,94185.93702,143521.42784,380964.67500000005,380964.67500000005,380964.67500000005,220083.9935,407499.15599999996,407499.15599999996,140782.63458999997,311351.16149999993,462798.5165999999,807206.7149999999,229092.95339999997,291363.1857,111975.23999999999,111975.23999999999,111975.23999999999,111975.23999999999,1225214.1290399998,1225214.1290399998 +21895200.0,51344.895000000004,13674.170999999998,39928.57932,112038.91523,112038.91523,112038.91523,98218.8235,65301.09296000001,42020.48576,55215.09651,84137.28992000001,19374.921,19374.921,19374.921,35084.777,51344.895000000004,51344.895000000004,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24874.166999999998,24874.166999999998,24874.166999999998,24874.166999999998,154376.98429999998,154376.98429999998 +21898800.0,59383.497,132925.506,388142.47752,103645.02456,103645.02456,103645.02456,116927.769,106022.09312,127352.58688000002,53908.58151,82146.40992,36383.729999999996,36383.729999999996,36383.729999999996,64580.998999999996,59383.497,59383.497,20748.387139999995,30467.87055,45288.04462,78990.7755,22418.33438,28511.90849,25494.054,25494.054,25494.054,25494.054,178546.38098,178546.38098 +21902400.0,99198.48300000001,36286.266,105955.89672,89754.79425,89754.79425,89754.79425,74931.5735,130880.49696,164396.82176000002,63849.735810000006,97294.83552000001,68581.23300000001,68581.23300000001,68581.23300000001,34551.44,99198.48300000001,99198.48300000001,68016.286,44270.7444,65804.90896,114776.004,32574.52304,41428.67192,42187.926,42187.926,42187.926,42187.926,298256.77222,298256.77222 +21906000.0,52455.46800000001,17029.209000000003,49725.29028,67594.41348,67594.41348,67594.41348,57965.20799999999,61390.96768,64049.11296,40553.65566,61796.04672,30284.966999999997,30284.966999999997,30284.966999999997,20705.7725,52455.46800000001,52455.46800000001,32208.904779999997,23191.38945,34472.13938,60125.8245,17064.28162,21702.559510000003,21885.06,21885.06,21885.06,21885.06,157716.10712000003,157716.10712000003 +21909600.0,91423.566,65874.97200000001,192354.91824,57090.9075,57090.9075,57090.9075,60386.333000000006,172381.75616,25552.07168,130646.15802,199079.85984000002,37931.01,37931.01,37931.01,19345.231499999998,91423.566,91423.566,201680.92866999996,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,22074.557999999997,22074.557999999997,22074.557999999997,22074.557999999997,274880.18844,274880.18844 +21913200.0,17050.464,90163.28100000002,263276.78052000003,47781.759300000005,47781.759300000005,47781.759300000005,98976.36349999999,82962.84144,24902.82944,24928.842330000003,37986.807360000006,28600.590000000004,28600.590000000004,28600.590000000004,109504.1325,17050.464,17050.464,85348.99593999998,51556.22055,76634.18462,133664.27550000002,37935.19438,48246.43849,9796.340999999999,9796.340999999999,9796.340999999999,9796.340999999999,51265.06176,51265.06176 +21916800.0,15366.126,6600.6900000000005,19274.0148,49480.32496,49480.32496,49480.32496,43473.906,29464.99584,16744.35264,24439.466730000004,37241.09216000001,7685.223,7685.223,7685.223,15529.3285,15366.126,15366.126,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10933.548,10933.548,10933.548,10933.548,46200.81884,46200.81884 +21920400.0,405583.58700000006,154241.688,450385.72896,107635.26477000001,107635.26477000001,107635.26477000001,70846.3665,447355.75591999997,213973.52192000003,415493.25384,633132.5772800001,208319.57099999997,208319.57099999997,208319.57099999997,56129.25149999999,405583.58700000006,405583.58700000006,9502.102089999998,35121.049199999994,52204.62127999999,91054.572,25842.15472,32866.36456,239122.38900000002,239122.38900000002,239122.38900000002,239122.38900000002,1219454.65158,1219454.65158 +21924000.0,219352.695,96622.11,282136.5612,156018.96486,156018.96486,156018.96486,131973.69150000002,292472.68376,291266.61952,248424.37011,378551.42112,155630.163,155630.163,155630.163,64133.60799999999,219352.695,219352.695,27712.781329999998,62862.67844999999,93440.32697999998,162977.3145,46254.514019999995,58827.04971,118076.91,118076.91,118076.91,118076.91,659520.4363,659520.4363 +21927600.0,282181.623,171221.967,499968.14364,160776.85591,160776.85591,160776.85591,143686.3225,415093.68039999995,454780.91008000006,323692.28388000006,493245.38496000005,205188.74700000003,205188.74700000003,205188.74700000003,93373.056,282181.623,282181.623,108256.47663999998,114817.64175,170667.2107,297675.3675,84483.1043,107446.63265,178311.015,178311.015,178311.015,178311.015,848426.07982,848426.07982 +21931200.0,297130.914,189775.335,554143.9782,144096.75863,144096.75863,144096.75863,139881.97650000002,517026.9325599999,448816.09152,351395.73903,535460.17376,210961.20900000003,210961.20900000003,210961.20900000003,98903.1015,297130.914,297130.914,139158.64390999998,118633.44239999999,176339.09215999997,307568.184,87290.77984,111017.46832,242658.087,242658.087,242658.087,242658.087,893373.61476,893373.61476 +21934800.0,203127.34500000003,100048.977,292143.01284,117714.67675000001,117714.67675000001,117714.67675000001,109033.694,241988.59352,199055.60576,181416.93969,276444.86048000003,110268.83099999998,110268.83099999998,110268.83099999998,42005.8905,203127.34500000003,203127.34500000003,69706.73164,40518.13995,60226.96357999999,105047.02949999999,29813.34742,37916.97541,164925.498,164925.498,164925.498,164925.498,610736.2173,610736.2173 +21938400.0,27754.218,19019.750999999997,55537.67292,75838.86189,75838.86189,75838.86189,66015.9325,74601.14112,43964.72,51570.547560000006,78583.69152000001,20697.809999999998,20697.809999999998,20697.809999999998,23581.572,27754.218,27754.218,41732.69516,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,17714.22,17714.22,17714.22,17714.22,83447.68212,83447.68212 +21942000.0,23462.343,17852.637,52129.700039999996,37602.59569,37602.59569,37602.59569,32202.8945,52087.30456,39061.669760000004,35403.57639,53948.306880000004,18908.337,18908.337,18908.337,11503.205,23462.343,23462.343,52876.931249999994,11552.0742,17171.23128,29949.822,8500.04472,10810.45956,10267.098,10267.098,10267.098,10267.098,70543.44462000001,70543.44462000001 +21945600.0,21822.036,27626.07,80668.1244,13820.18561,13820.18561,13820.18561,11271.011499999999,40669.63736,66137.53984,27759.203009999997,42299.73792,16055.550000000001,16055.550000000001,16055.550000000001,5205.8685000000005,21822.036,21822.036,50790.99779,4791.761549999999,7122.569019999998,12423.085499999997,3525.7899799999996,4484.14229,8208.399,8208.399,8208.399,8208.399,65611.58824,65611.58824 +21949200.0,25181.082,28370.517,82841.90964,8367.26066,8367.26066,8367.26066,6440.577499999999,38574.59576,99277.37792000001,26918.08749,41018.038080000006,22818.516,22818.516,22818.516,4530.7465,25181.082,25181.082,52236.3114,3111.99975,4625.737899999999,8068.1475,2289.8170999999998,2912.2170499999997,10226.754,10226.754,10226.754,10226.754,75711.11988,75711.11988 +21952800.0,24907.701,28407.243000000002,82949.14956,2886.4847000000004,2886.4847000000004,2886.4847000000004,1610.1435,35753.98672,144871.42144,24873.89625,37903.08,25502.28,25502.28,25502.28,2833.831,24907.701,24907.701,52375.6571,1409.4486,2095.03224,3654.126,1037.07576,1318.96548,12796.953,12796.953,12796.953,12796.953,74889.15434000001,74889.15434000001 +21956400.0,27571.268999999997,28854.078,84253.90776,2896.19979,2896.19979,2896.19979,1610.1435,36156.64304,157877.30816000002,30530.58939,46522.80288,26083.35,26083.35,26083.35,2863.4095,27571.268999999997,27571.268999999997,53181.899679999995,1423.51425,2115.9397,3690.5925,1047.4253,1332.12815,19527.012,19527.012,19527.012,19527.012,82897.61545999999,82897.61545999999 +21960000.0,30825.804,32068.476000000002,93639.94992,4786.91829,4786.91829,4786.91829,3220.2905,42817.66528,172725.6576,36321.75939,55347.442879999995,28409.136,28409.136,28409.136,3554.4425,30825.804,30825.804,56475.50389,2168.9046,3223.90264,5623.086,1595.8853600000002,2029.6662800000001,22105.739999999998,22105.739999999998,22105.739999999998,22105.739999999998,92682.91735999999,92682.91735999999 +21963600.0,56206.64400000001,38381.769,112074.76548,18802.68775,18802.68775,18802.68775,11271.011499999999,242192.04744,177800.8512,55996.39248,85327.83616,30158.487,30158.487,30158.487,6447.1224999999995,56206.64400000001,56206.64400000001,116223.69810999997,6641.8623,9872.59532,17219.643,4887.09868,6215.471140000001,54125.574,54125.574,54125.574,54125.574,168994.64296000003,168994.64296000003 +21967200.0,214360.266,115106.256,336110.26752,114050.40284000001,114050.40284000001,114050.40284000001,90168.099,741770.33896,282047.60384,328731.61125,500924.36000000004,109175.59500000002,109175.59500000002,109175.59500000002,40658.7125,214360.266,214360.266,909477.24348,44999.614799999996,66888.31632,116665.66799999999,33110.82768,42110.75064,218712.849,218712.849,218712.849,218712.849,644509.86644,644509.86644 +21970800.0,182502.813,229593.588,670413.2769599999,176975.63499000002,176975.63499000002,176975.63499000002,149743.45400000003,1022366.6059999999,265834.39104,824241.07941,1255986.40672,168201.768,168201.768,168201.768,99226.855,182502.813,182502.813,133329.99172999998,151443.37125,225108.4185,392630.9625,111432.40650000001,141721.08075000002,248858.316,248858.316,248858.316,248858.316,548725.12442,548725.12442 +21974400.0,559293.6359999999,88839.492,259411.31664,149216.05347,149216.05347,149216.05347,121480.611,353705.55679999996,197518.21824000002,312022.40978999995,475462.71968,202304.577,202304.577,202304.577,73589.481,559293.6359999999,559293.6359999999,154121.53418999998,81145.9134,120616.88856,210378.29400000002,59707.36344000001,75936.54612000001,495321.099,495321.099,495321.099,495321.099,1681609.5322399999,1681609.5322399999 +21978000.0,280559.151,107846.11499999999,314910.65579999995,162763.97643,162763.97643,162763.97643,136862.2955,203438.5024,972879.5033600001,84969.38415000001,129477.15680000001,229304.55299999999,229304.55299999999,229304.55299999999,121177.64749999999,280559.151,280559.151,95146.93707999999,204586.641,304101.6244,530409.81,150535.3556,191452.6838,76879.40400000001,76879.40400000001,76879.40400000001,76879.40400000001,843547.84734,843547.84734 +21981600.0,25869.722999999998,10042.794,29324.958479999998,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31581.25632,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,25869.722999999998,25869.722999999998,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,77781.63382,77781.63382 +21985200.0,25022.858999999997,47399.556,138406.70351999998,96981.18507,96981.18507,96981.18507,91963.62,58498.14704,27245.94624,47973.77214,73102.89088,16271.202000000001,16271.202000000001,16271.202000000001,30483.495,25022.858999999997,25022.858999999997,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,75235.39606,75235.39606 +21988800.0,27692.595,10190.442000000001,29756.090640000002,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,75817.60728,26471.5296,40732.447770000006,62068.49184000001,29262.714,29262.714,29262.714,29399.083000000006,27692.595,27692.595,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,18759.588,18759.588,18759.588,18759.588,83262.40229999999,83262.40229999999 +21992400.0,15863.868,6376.842000000001,18620.37864,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38538.34688,18506.68416,32585.957250000003,49654.79200000001,10211.037,10211.037,10211.037,20705.7725,15863.868,15863.868,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14198.091,14198.091,14198.091,14198.091,47697.36312,47697.36312 +21996000.0,30249.795,12488.307,36465.85644,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,72495.08528,15936.305920000003,34319.04336,52295.68512000001,10845.633000000002,10845.633000000002,10845.633000000002,17829.9695,30249.795,30249.795,32869.635239999996,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,14593.994999999999,14593.994999999999,14593.994999999999,14593.994999999999,90951.05029999999,90951.05029999999 +21999600.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +22003200.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +22006800.0,80635.269,5873.043000000001,17149.28556,81294.39571000001,81294.39571000001,81294.39571000001,70846.3665,74371.98535999999,22619.26976,88758.85242000001,135251.58464000002,12490.064999999999,12490.064999999999,12490.064999999999,25307.054500000002,80635.269,80635.269,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,82694.39700000001,82694.39700000001,82694.39700000001,82694.39700000001,242443.37545999998,242443.37545999998 +22010400.0,66592.089,10804.241999999998,31548.386639999997,143484.42713,143484.42713,143484.42713,125591.28399999999,111936.0392,40097.804800000005,108100.0368,164723.8656,23246.493000000002,23246.493000000002,23246.493000000002,44862.503,66592.089,66592.089,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,53215.308000000005,53215.308000000005,53215.308000000005,53215.308000000005,200220.21426,200220.21426 +22014000.0,81158.784,21747.771,63503.49132,146698.59974,146698.59974,146698.59974,127201.42749999999,150657.5752,52478.102399999996,119032.09458,181382.23936,26551.517999999996,26551.517999999996,26551.517999999996,45437.66499999999,81158.784,81158.784,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,57011.736000000004,57011.736000000004,57011.736000000004,57011.736000000004,244017.41056,244017.41056 +22017600.0,95391.192,44184.479999999996,129018.6816,132765.19487,132765.19487,132765.19487,112710.12550000001,161305.29095999998,91128.95423999999,120726.59865000001,183964.34080000003,37909.758,37909.758,37909.758,44677.178,95391.192,95391.192,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,56988.83099999999,56988.83099999999,56988.83099999999,56988.83099999999,286809.51728,286809.51728 +22021200.0,72927.48300000001,30094.431000000004,87875.73852,110263.93532,110263.93532,110263.93532,93388.3895,75323.70679999999,78394.00128000001,55353.99765,84348.9488,30191.210999999996,30191.210999999996,30191.210999999996,33359.297999999995,72927.48300000001,72927.48300000001,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,28255.163999999997,28255.163999999997,28255.163999999997,28255.163999999997,219268.63222,219268.63222 +22024800.0,17987.127,7192.1849999999995,21001.1802,75023.18098,75023.18098,75023.18098,66015.9325,43890.899600000004,21077.05152,37111.78317,56551.288640000006,11629.236,11629.236,11629.236,23581.572,17987.127,17987.127,8854.22876,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,54081.295179999994,54081.295179999994 +22028400.0,10286.784,7152.762000000001,20886.06504,36596.67484,36596.67484,36596.67484,32202.8945,26282.446959999997,10281.4912,18103.308510000003,27585.993920000004,5954.198999999999,5954.198999999999,5954.198999999999,11503.205,10286.784,10286.784,7385.721329999999,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7883.508000000001,7883.508000000001,7883.508000000001,7883.508000000001,30928.930559999997,30928.930559999997 +22032000.0,5094.171,10126.365,29568.9858,12808.83538,12808.83538,12808.83538,11271.011499999999,19661.3528,3598.5164800000002,6336.15822,9655.098240000001,2572.854,2572.854,2572.854,4026.1234999999997,5094.171,5094.171,16245.44792,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,2759.229,2759.229,2759.229,2759.229,15316.47414,15316.47414 +22035600.0,4439.58,11525.016,33653.04672,7319.33334,7319.33334,7319.33334,6440.577499999999,23669.44408,10186.704640000002,3620.65977,5517.19584,1719.9630000000002,1719.9630000000002,1719.9630000000002,2300.6409999999996,4439.58,4439.58,18194.73409,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,1576.701,1576.701,1576.701,1576.701,13348.337199999998,13348.337199999998 +22039200.0,3933.807,11084.463,32366.63196,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,21705.0024,17473.41056,905.16615,1379.3008,1024.119,1024.119,1024.119,575.162,3933.807,3933.807,17751.882199999996,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,1170.462,1170.462,1170.462,1170.462,11827.64638,11827.64638 +22042800.0,4743.24,10962.909,32011.69428,1829.8353700000002,1829.8353700000002,1829.8353700000002,1610.1435,24979.37944,17167.454080000003,2886.6301799999997,4398.6745599999995,4036.6889999999994,4036.6889999999994,4036.6889999999994,575.162,4743.24,4743.24,18240.770599999996,572.0867999999999,850.3611199999999,1483.188,420.94288,535.36024,1528.6409999999998,1528.6409999999998,1528.6409999999998,1528.6409999999998,14261.341599999998,14261.341599999998 +22046400.0,5749.911,11137.641,32521.91172,3902.8247500000007,3902.8247500000007,3902.8247500000007,3220.2905,26174.582159999998,17854.591360000002,9457.90314,14412.04288,5497.485,5497.485,5497.485,1150.3204999999998,5749.911,5749.911,18558.74527,1144.1695499999998,1700.7162199999998,2966.3655,841.8827799999999,1070.71669,1932.5970000000002,1932.5970000000002,1932.5970000000002,1932.5970000000002,17288.06574,17288.06574 +22050000.0,19624.368000000002,12094.710000000001,35316.5532,13671.121860000001,13671.121860000001,13671.121860000001,11271.011499999999,98168.90496000001,21325.344000000005,17020.040940000003,25935.30048,10306.194,10306.194,10306.194,4026.1234999999997,19624.368000000002,19624.368000000002,46202.27221999999,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,14381.478,14381.478,14381.478,14381.478,59003.93312,59003.93312 +22053600.0,90693.177,49561.881,144720.69252,105348.18931999999,105348.18931999999,105348.18931999999,90168.099,312350.78232,33310.07744,109631.02604999999,167056.80159999998,29185.344,29185.344,29185.344,32208.977499999994,90693.177,90693.177,530267.08878,32036.800049999998,47620.132419999994,83058.3705,23572.75658,29980.11659,92167.26299999999,92167.26299999999,92167.26299999999,92167.26299999999,272684.15218,272684.15218 +22057200.0,112035.47099999999,168931.91700000002,493281.19764,172407.3978,172407.3978,172407.3978,149743.45400000003,577495.11016,47808.917760000004,505223.39028,769864.21376,74999.05500000001,74999.05500000001,74999.05500000001,53489.9085,112035.47099999999,112035.47099999999,59690.87825999999,100041.41519999999,148703.53567999997,259366.63199999998,73610.72032,93619.00336,163829.901,163829.901,163829.901,163829.901,336853.31613999995,336853.31613999995 +22060800.0,339469.88999999996,25554.963,74620.49196,140104.71541000003,140104.71541000003,140104.71541000003,115930.41599999998,172757.37912,96805.49632,162686.15138999998,247902.70687999998,79695.393,79695.393,79695.393,41411.5415,339469.88999999996,339469.88999999996,51162.11334,44748.693,66515.3412,116015.12999999999,32926.1988,41875.937399999995,203143.689,203143.689,203143.689,203143.689,1020672.8025999998,1020672.8025999998 +22064400.0,198861.07200000001,75861.207,221514.72444,158471.87653,158471.87653,158471.87653,136862.2955,149720.85088,630447.22496,78115.17945,119032.6544,151744.05,151744.05,151744.05,48888.6265,198861.07200000001,198861.07200000001,60460.99773999999,120515.25869999999,179136.26108,312446.967,88675.42491999999,112778.47666,54742.583999999995,54742.583999999995,54742.583999999995,54742.583999999995,597908.95648,597908.95648 +22068000.0,24758.646,8142.174,23775.14808,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,24758.646,24758.646,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,74440.99564,74440.99564 +22071600.0,24304.02,25957.815000000002,75796.81980000001,96981.18507,96981.18507,96981.18507,85337.66500000001,56887.439999999995,27245.94624,47973.77214,73102.89088,15934.689,15934.689,15934.689,30483.495,24304.02,24304.02,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,20891.298,20891.298,20891.298,20891.298,73074.0868,73074.0868 +22075200.0,26727.117000000002,9536.613000000001,27846.90996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,70605.51824,29701.181440000008,40732.447770000006,62068.49184000001,26667.084000000003,26667.084000000003,26667.084000000003,25996.4075,26727.117000000002,26727.117000000002,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,18034.623,18034.623,18034.623,18034.623,80359.53178,80359.53178 +22078800.0,16981.302,6228.398999999999,18186.925079999997,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38759.2624,19428.764160000002,32585.957250000003,49654.79200000001,10329.372000000001,10329.372000000001,10329.372000000001,20705.7725,16981.302,16981.302,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14335.017,14335.017,14335.017,14335.017,51057.11468,51057.11468 +22082400.0,27250.430999999997,6185.826,18062.61192,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,59324.49536,15936.305920000003,35115.51519,53509.35648,10463.223,10463.223,10463.223,17829.9695,27250.430999999997,27250.430999999997,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,14917.521,14917.521,14917.521,14917.521,81932.96254,81932.96254 +22086000.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,8797.848,8797.848,8797.848,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +22089600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +22093200.0,73144.761,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,80443.10336000001,22619.26976,94611.09777000001,144169.29184000002,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,73144.761,73144.761,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,85205.697,85205.697,85205.697,85205.697,219921.91473999998,219921.91473999998 +22096800.0,67155.333,14389.266,42016.65671999999,143272.75050000002,143272.75050000002,143272.75050000002,125591.28399999999,132626.67448000002,46010.13824000001,111368.10173999998,169703.77408,23255.832000000002,23255.832000000002,23255.832000000002,44862.503,67155.333,67155.333,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,54404.199,54404.199,54404.199,54404.199,201913.70122,201913.70122 +22100400.0,106553.571,43436.847,126835.59324,147157.95622,147157.95622,147157.95622,127201.42749999999,187064.44472,100922.31423999999,135185.51760000002,205996.97920000003,40563.516,40563.516,40563.516,46320.7465,106553.571,106553.571,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,64964.475000000006,64964.475000000006,64964.475000000006,64964.475000000006,320371.07013999997,320371.07013999997 +22104000.0,153408.957,73110.89700000001,213483.81924,132685.89906,132685.89906,132685.89906,118676.1835,209317.95159999997,143762.21632,159877.43877,243622.76384000003,85777.287,85777.287,85777.287,46912.635,153408.957,153408.957,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,74584.275,74584.275,74584.275,74584.275,461249.59738,461249.59738 +22107600.0,132682.215,65625.393,191626.14755999998,112270.50637,112270.50637,112270.50637,93388.3895,99698.63456,120543.82848000001,69655.2654,106141.3568,76663.776,76663.776,76663.776,33359.297999999995,132682.215,132682.215,14799.1675,34199.2125,50834.384999999995,88664.625,25163.865,32003.7075,41994.285,41994.285,41994.285,41994.285,398931.1931,398931.1931 +22111200.0,19863.192000000003,18216.213,53191.34196,75023.18098,75023.18098,75023.18098,66015.9325,67395.61480000001,39459.81248,37111.78317,56551.288640000006,12522.807,12522.807,12522.807,23581.572,19863.192000000003,19863.192000000003,37444.98901,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,59721.99728,59721.99728 +22114800.0,12839.64,19517.295000000002,56990.5014,36596.67484,36596.67484,36596.67484,32202.8945,55493.578,45084.11968000001,18240.3018,27794.745600000002,9630.945,9630.945,9630.945,11503.205,12839.64,12839.64,33509.283469999995,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,9749.418,9749.418,9749.418,9749.418,38604.5176,38604.5176 +22118400.0,11135.022,18630.642,54401.47464,12808.83538,12808.83538,12808.83538,11271.011499999999,50105.16768,40814.64448,19681.50618,29990.866560000002,14022.609,14022.609,14022.609,4026.1234999999997,11135.022,11135.022,39441.03799999999,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,5097.3060000000005,5097.3060000000005,5097.3060000000005,5097.3060000000005,33479.29948,33479.29948 +22122000.0,16444.731,33058.218,96529.99656,8071.97402,8071.97402,8071.97402,6440.577499999999,48983.50224000001,111657.82784000003,26515.14474,40404.030080000004,25647.783000000003,25647.783000000003,25647.783000000003,2300.6409999999996,16444.731,16444.731,79113.03296,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,4858.368,4858.368,4858.368,4858.368,49443.824539999994,49443.824539999994 +22125600.0,29135.811,44803.776,130827.02592,2661.8288400000006,2661.8288400000006,2661.8288400000006,1610.1435,48325.188239999996,231372.33920000002,31835.95002,48511.92384,43749.744,43749.744,43749.744,1033.1299999999999,29135.811,29135.811,81938.37885999998,1799.24085,2674.42714,4664.6985,1323.88586,1683.73403,10023.09,10023.09,10023.09,10023.09,87601.67173999999,87601.67173999999 +22129200.0,36791.556000000004,44979.267,131339.45964,2672.7852800000005,2672.7852800000005,2672.7852800000005,1610.1435,52095.58567999999,299839.92896,37438.75002,57049.52384,46140.588,46140.588,46140.588,3884.0164999999993,36791.556000000004,36791.556000000004,82297.26739,1933.18245,2873.52058,5011.9545,1422.44042,1809.07691,18677.748,18677.748,18677.748,18677.748,110619.94504,110619.94504 +22132800.0,48106.176,50472.78599999999,147380.53512,5076.567980000001,5076.567980000001,5076.567980000001,3220.2905,64042.00648,317775.40224,47485.12587,72358.28704000001,48911.448,48911.448,48911.448,4619.950999999999,48106.176,48106.176,86454.81013,2575.0305,3827.5761999999995,6676.004999999999,1894.7137999999998,2409.7198999999996,32375.409000000007,32375.409000000007,32375.409000000007,32375.409000000007,144639.23583999998,144639.23583999998 +22136400.0,57300.96,53872.893000000004,157308.84756,14446.9534,14446.9534,14446.9534,11271.011499999999,77712.2376,327897.96928,62005.86882,94485.13344,51389.64899999999,51389.64899999999,51389.64899999999,35456.26700000001,57300.96,57300.96,99139.18897999999,5772.226049999999,8579.95082,14965.0305,4247.21818,5401.66339,39463.842,39463.842,39463.842,39463.842,172284.8864,172284.8864 +22140000.0,514200.243,268807.941,784919.1877199999,108854.45769000002,108854.45769000002,108854.45769000002,118093.59099999999,641082.35584,435329.744,413488.95357,630078.4054400001,219234.74399999998,219234.74399999998,219234.74399999998,297035.207,514200.243,514200.243,532478.6642499999,68489.82135,101804.62333999999,177566.2035,50394.97966,64092.943929999994,401190.31499999994,401190.31499999994,401190.31499999994,401190.31499999994,1546028.73062,1546028.73062 +22143600.0,656614.068,508868.283,1485895.38636,213364.71541,213364.71541,213364.71541,265558.59400000004,846678.4988000001,839643.04512,526407.68334,802145.04128,400370.895,400370.895,400370.895,117318.20100000002,656614.068,656614.068,122356.60684,144147.9564,214264.36976,373716.92400000006,106064.42224000001,134894.01352,562684.338,562684.338,562684.338,562684.338,1974219.6311199998,1974219.6311199998 +22147200.0,469635.621,231345.36599999998,675528.4687199999,143251.41963000002,143251.41963000002,143251.41963000002,160224.351,557333.97016,596045.21984,549334.1477399999,837080.6060799999,335906.796,335906.796,335906.796,56434.861,469635.621,469635.621,200652.61800999998,43829.492849999995,65149.02393999999,113632.01849999999,32249.84906,41015.74763,323550.909,323550.909,323550.909,323550.909,1412037.76714,1412037.76714 +22150800.0,280385.295,125804.115,367348.0158,167773.22661,167773.22661,167773.22661,180948.992,512353.91055999993,1074327.39776,339103.04127,516728.44383999996,439527.15599999996,439527.15599999996,439527.15599999996,315635.2185,280385.295,280385.295,175109.05529,231217.71975,343686.58589999995,599453.3475,170130.5691,216374.11304999999,223499.18700000003,223499.18700000003,223499.18700000003,223499.18700000003,843025.1203,843025.1203 +22154400.0,81103.83600000001,96936.594,283054.85448,118028.59585,118028.59585,118028.59585,98218.8235,543343.77712,31358.54272,293531.77875,447286.52,60883.437,60883.437,60883.437,39822.950999999994,81103.83600000001,81103.83600000001,16552.44617,120152.15594999999,178596.53797999996,311505.58949999994,88408.25301999999,112438.68420999999,87716.09700000001,87716.09700000001,87716.09700000001,87716.09700000001,243852.20024,243852.20024 +22158000.0,25407.834000000003,8503.125,24829.125,96985.75975000001,96985.75975000001,96985.75975000001,85337.66500000001,78290.03551999999,27245.94624,65943.47802,100485.29984,15257.76,15257.76,15257.76,30483.495,25407.834000000003,25407.834000000003,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,25861.161,25861.161,25861.161,25861.161,76392.88756,76392.88756 +22161600.0,34255.070999999996,12561.632999999998,36679.96835999999,82666.36421999999,82666.36421999999,82666.36421999999,72456.51000000001,86955.92976,28808.95616,62849.867849999995,95771.2272,14367.855,14367.855,14367.855,25882.213000000003,34255.070999999996,34255.070999999996,9718.056659999998,27064.72035,40229.53494,70167.7935,19914.28806,25327.23213,32477.301,32477.301,32477.301,32477.301,102993.58013999999,102993.58013999999 +22165200.0,15218.432999999999,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38734.384,18506.68416,33380.6613,50865.7696,10211.037,10211.037,10211.037,20705.7725,15218.432999999999,15218.432999999999,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,45756.75521999999,45756.75521999999 +22168800.0,14020.05,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,36485.668639999996,15936.305920000003,29501.953950000003,44955.358400000005,8792.835,8792.835,8792.835,17829.9695,14020.05,14020.05,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12913.244999999999,12913.244999999999,12913.244999999999,12913.244999999999,42153.61699999999,42153.61699999999 +22172400.0,10159.365,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,22332.14256,34029.93152,6807.357,6807.357,6807.357,13803.846000000001,10159.365,10159.365,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,30545.824099999998,30545.824099999998 +22176000.0,11833.503,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29341.20536,13880.007679999999,25451.21649,38782.806079999995,7658.277,7658.277,7658.277,15529.3285,11833.503,11833.503,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,35579.39902,35579.39902 +22179600.0,20113.454999999998,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,55587.187359999996,22619.26976,41932.93461,63897.805120000005,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,20113.454999999998,20113.454999999998,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,19497.627,19497.627,19497.627,19497.627,60474.454699999995,60474.454699999995 +22183200.0,56900.733,16287.681,47560.02852,142727.02862,142727.02862,142727.02862,125591.28399999999,143624.288,52873.710080000004,95111.87216999999,144932.37664,22733.244,22733.244,22733.244,44862.503,56900.733,56900.733,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,54971.799,54971.799,54971.799,54971.799,171081.53722,171081.53722 +22186800.0,115178.95199999999,38176.26,111474.6792,147923.57206,147923.57206,147923.57206,127201.42749999999,183628.7844,93340.58624,150956.8683,230029.5136,37765.158,37765.158,37765.158,45437.66499999999,115178.95199999999,115178.95199999999,17060.589,48513.9861,72112.14724,125777.001,35696.71076,45399.50798,74259.801,74259.801,74259.801,74259.801,346304.71567999996,346304.71567999996 +22190400.0,162363.6,54628.869,159516.29747999998,132793.17205,132793.17205,132793.17205,113891.03950000001,125683.10720000001,137614.30912000002,118595.37081,180716.75552,56448.55799999999,56448.55799999999,56448.55799999999,42086.2645,162363.6,162363.6,15116.978629999998,54247.2309,80634.15556,140640.969,39915.24644,50764.69262,74411.088,74411.088,74411.088,74411.088,488173.224,488173.224 +22194000.0,79108.40999999999,17595.483,51378.810359999996,110083.01161000002,110083.01161000002,110083.01161000002,93388.3895,102302.2876,41322.087680000004,66979.20873,102063.55616000001,20425.719,20425.719,20425.719,33359.297999999995,79108.40999999999,79108.40999999999,32837.35533,33400.106999999996,49646.57879999999,86592.86999999998,24575.881199999996,31255.902599999994,41938.18199999999,41938.18199999999,41938.18199999999,41938.18199999999,237852.61939999997,237852.61939999997 +22197600.0,21098.630999999998,23020.574999999997,67220.079,75023.18098,75023.18098,75023.18098,66015.9325,79233.4408,55252.04544,37111.78317,56551.288640000006,13445.553000000002,13445.553000000002,13445.553000000002,23581.572,21098.630999999998,21098.630999999998,40946.85178999999,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,17677.539,17677.539,17677.539,17677.539,63436.55053999999,63436.55053999999 +22201200.0,16786.097999999998,21989.328,64208.837759999995,36955.90118000001,36955.90118000001,36955.90118000001,32202.8945,68320.34376,52086.61824000001,30277.531199999998,46137.1904,17453.199,17453.199,17453.199,11503.205,16786.097999999998,16786.097999999998,43552.06804,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,10491.576000000001,10491.576000000001,10491.576000000001,10491.576000000001,50470.20132,50470.20132 +22204800.0,20480.925,35868.306,104735.45352,13710.470620000002,13710.470620000002,13710.470620000002,11271.011499999999,55413.47072,160890.58944,30842.63637,46998.303040000006,34432.026,34432.026,34432.026,4026.1234999999997,20480.925,20480.925,86265.76269999998,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,7240.329,7240.329,7240.329,7240.329,61579.31449999999,61579.31449999999 +22208400.0,35472.306,48740.586,142322.51112,8278.83584,8278.83584,8278.83584,6440.577499999999,57129.6248,297265.89504000003,40431.562920000004,61610.000640000006,48662.17199999999,48662.17199999999,48662.17199999999,3168.1055,35472.306,35472.306,89098.01095000001,3704.2353,5506.048519999999,9603.573,2725.5854799999997,3466.43254,15574.772999999997,15574.772999999997,15574.772999999997,15574.772999999997,106653.40003999998,106653.40003999998 +22212000.0,42627.015,50763.876000000004,148230.51792,3545.0025600000004,3545.0025600000004,3545.0025600000004,1610.1435,65332.04496,330001.28,45745.461299999995,69707.36959999999,50252.68499999999,50252.68499999999,50252.68499999999,9173.668,42627.015,42627.015,88815.82748999998,2060.3808,3062.5907199999997,5341.728,1516.0332799999999,1928.10944,27149.976000000002,27149.976000000002,27149.976000000002,27149.976000000002,128165.2251,128165.2251 +22215600.0,58195.926,56132.861999999994,163907.95703999998,3597.1758900000004,3597.1758900000004,3597.1758900000004,1610.1435,73733.77264,337356.89984,57304.73805000001,87321.5056,51288.261,51288.261,51288.261,39674.6945,58195.926,58195.926,106337.05575999999,2583.4139999999998,3840.0375999999997,6697.74,1900.8824,2417.5652,38829.648,38829.648,38829.648,38829.648,174975.75084,174975.75084 +22219200.0,62656.68000000001,59564.742,173929.04664000002,5479.571240000001,5479.571240000001,5479.571240000001,3220.2905,82716.65624,345238.63296,65010.66012000001,99063.86304000001,53632.62300000001,53632.62300000001,53632.62300000001,44093.77,62656.68000000001,62656.68000000001,119925.63284,20803.8294,30923.222959999996,53935.85399999999,15307.509039999999,19468.27492,44440.29,44440.29,44440.29,44440.29,188387.7512,188387.7512 +22222800.0,66137.784,62765.46,183275.1432,14641.52789,14641.52789,14641.52789,11907.035,98498.52623999999,347156.5267200001,75510.15276,115063.08992,57489.912,57489.912,57489.912,49437.661,66137.784,66137.784,120994.34749999999,25562.9115,37997.2166,66274.215,18809.2534,23921.8357,47033.592,47033.592,47033.592,47033.592,198854.27055999998,198854.27055999998 +22226400.0,561286.497,362315.841,1057962.25572,109118.72279,109118.72279,109118.72279,132673.65649999998,762562.9931999999,514560.1344,471921.12954,719117.91168,267113.454,267113.454,267113.454,392629.104,561286.497,561286.497,649020.03881,88563.97844999998,131643.24697999997,229610.31449999998,65165.59401999999,82878.38970999999,473870.30999999994,473870.30999999994,473870.30999999994,473870.30999999994,1687601.40098,1687601.40098 +22230000.0,813326.0610000001,690393.075,2015947.7789999999,224201.15553000002,224201.15553000002,224201.15553000002,386787.702,1154949.5856,1133718.8480000002,774545.6634300001,1180260.05856,513378.51599999995,513378.51599999995,513378.51599999995,170509.2445,813326.0610000001,813326.0610000001,196042.97374999998,229568.55569999997,341235.23587999993,595177.737,168917.11012,214830.82126,757987.878,757987.878,757987.878,757987.878,2445400.35674,2445400.35674 +22233600.0,704740.6919999999,400766.76300000004,1170238.94796,163536.41359,163536.41359,163536.41359,198529.1525,942351.9600799999,869046.48448,886951.7659800001,1351545.5481600002,560540.46,560540.46,560540.46,98269.95499999999,704740.6919999999,704740.6919999999,317512.7127899999,98706.83489999999,146719.78916,255906.60899999997,72628.73284,92370.09981999999,488175.603,488175.603,488175.603,488175.603,2118920.34728,2118920.34728 +22237200.0,405430.113,227140.70999999996,663250.8731999999,181025.14661000003,181025.14661000003,181025.14661000003,265289.8885,971828.3322399999,1673634.39808,619535.0147700001,944053.3558400002,686012.52,686012.52,686012.52,590409.5364999999,405430.113,405430.113,324385.36585,408600.33254999993,607351.6054199999,1059334.1955,300649.13357999997,382369.20008999994,378843.59400000004,378843.59400000004,378843.59400000004,378843.59400000004,1218993.2064200002,1218993.2064200002 +22240800.0,131080.47,141718.968,413819.38655999996,125022.17046000001,125022.17046000001,125022.17046000001,120823.017,746118.0612799999,93294.23744,437094.44352000003,666048.67584,119279.31,119279.31,119279.31,60125.96800000001,131080.47,131080.47,24250.37979,197531.51669999998,293614.74828,512118.747,145344.17772,184850.48106,129159.59700000001,129159.59700000001,129159.59700000001,129159.59700000001,394115.27979999996,394115.27979999996 +22244400.0,24621.881999999998,7074.348,20657.09616,97308.14852000002,97308.14852000002,97308.14852000002,85337.66500000001,95838.94352000002,27245.94624,68328.88944,104120.21248,15240.846000000001,15240.846000000001,15240.846000000001,30483.495,24621.881999999998,24621.881999999998,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,24437.126999999997,24437.126999999997,24437.126999999997,24437.126999999997,74029.79187999999,74029.79187999999 +22248000.0,22109.844,6950.654999999999,20295.912599999996,82342.51839000001,82342.51839000001,82342.51839000001,72456.51000000001,64142.734800000006,23133.34976,47844.2895,72905.584,12763.794,12763.794,12763.794,25882.213000000003,22109.844,22109.844,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,22438.115999999998,22438.115999999998,22438.115999999998,22438.115999999998,66476.93096,66476.93096 +22251600.0,19276.878,6042.564,17644.28688,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,51825.9704,18506.68416,38097.80835,58053.8032,10211.037,10211.037,10211.037,20705.7725,19276.878,19276.878,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,18522.705,18522.705,18522.705,18522.705,57959.14652,57959.14652 +22255200.0,13052.733,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33232.99888,15936.305920000003,28770.803040000003,43841.22368,8792.835,8792.835,8792.835,17829.9695,13052.733,13052.733,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,39245.21722,39245.21722 +22258800.0,10160.235,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,22392.478919999998,34121.87264,6807.357,6807.357,6807.357,13803.846000000001,10160.235,10160.235,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,30548.439899999998,30548.439899999998 +22262400.0,12040.599,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29573.911839999997,13880.007679999999,25652.555040000003,39089.60768000001,7658.277,7658.277,7658.277,15529.3285,12040.599,12040.599,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,36202.06766,36202.06766 +22266000.0,20252.499000000003,5900.411999999999,17229.203039999997,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,58125.52584,22619.26976,42065.952809999995,64100.49952,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,20252.499000000003,20252.499000000003,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,19013.471999999998,19013.471999999998,19013.471999999998,19013.471999999998,60892.513660000004,60892.513660000004 +22269600.0,54696.384000000005,16310.103,47625.50076,142727.02862,142727.02862,142727.02862,125591.28399999999,139259.89832,48254.4864,94111.90278,143408.61376,22611.027000000002,22611.027000000002,22611.027000000002,44862.503,54696.384000000005,54696.384000000005,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,52245.28199999999,52245.28199999999,52245.28199999999,52245.28199999999,164453.79456,164453.79456 +22273200.0,91286.20499999999,30996.267,90509.09964,146944.06551000001,146944.06551000001,146944.06551000001,127201.42749999999,165925.64784,80897.45664,136451.9919,207926.84480000002,26222.601000000002,26222.601000000002,26222.601000000002,45437.66499999999,91286.20499999999,91286.20499999999,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,67445.97899999999,67445.97899999999,67445.97899999999,67445.97899999999,274467.1897,274467.1897 +22276800.0,132246.48,38953.743,113744.92956,131560.33649000002,131560.33649000002,131560.33649000002,112710.12550000001,97614.06408,105999.94496000001,108873.7545,165902.864,32756.808000000005,32756.808000000005,32756.808000000005,40583.1755,132246.48,132246.48,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,61571.145000000004,61571.145000000004,61571.145000000004,61571.145000000004,397621.0832,397621.0832 +22280400.0,61245.159,14349.408000000001,41900.271360000006,109033.96911,109033.96911,109033.96911,93388.3895,87060.54752,29816.313600000005,62852.78034,95775.66528,18734.409,18734.409,18734.409,33359.297999999995,61245.159,61245.159,20385.135939999996,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,31084.676999999996,31084.676999999996,31084.676999999996,31084.676999999996,184143.77805999998,184143.77805999998 +22284000.0,19913.07,19031.184,55571.05728,75023.18098,75023.18098,75023.18098,66015.9325,67005.07648,29117.23008,37111.78317,56551.288640000006,12390.642,12390.642,12390.642,23581.572,19913.07,19913.07,33083.58885,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,59871.96379999999,59871.96379999999 +22287600.0,12853.212000000001,17134.091999999997,50031.54863999999,36596.67484,36596.67484,36596.67484,32202.8945,52483.10471999999,37245.873920000005,18602.17506,28346.17152,8307.663,8307.663,8307.663,11503.205,12853.212000000001,12853.212000000001,29170.798149999995,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,9472.68,9472.68,9472.68,9472.68,38645.324080000006,38645.324080000006 +22291200.0,9522.855000000001,15263.582999999999,44569.662359999995,13170.035670000001,13170.035670000001,13170.035670000001,11271.011499999999,40896.92431999999,30158.45696,17588.416019999997,26801.395839999997,9723.294,9723.294,9723.294,4026.1234999999997,9522.855000000001,9522.855000000001,26625.8512,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,4504.347,4504.347,4504.347,4504.347,28632.0507,28632.0507 +22294800.0,9916.614,14686.185000000001,42883.660200000006,7872.527740000001,7872.527740000001,7872.527740000001,6440.577499999999,37083.04807999999,44199.95648,19718.75031,30047.61952,15174.909,15174.909,15174.909,2300.6409999999996,9916.614,9916.614,50867.36134999999,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,3284.2200000000003,3284.2200000000003,3284.2200000000003,3284.2200000000003,29815.95276,29815.95276 +22298400.0,17300.061,29954.595000000005,87467.4174,2379.2609500000003,2379.2609500000003,2379.2609500000003,1610.1435,33699.38128,104110.98112000003,19962.897149999997,30419.6528,18195.672,18195.672,18195.672,995.9179999999998,17300.061,17300.061,54309.936069999996,1079.93655,1605.23902,2799.8355,794.61998,1010.60729,3902.9220000000005,3902.9220000000005,3902.9220000000005,3902.9220000000005,52015.51674000001,52015.51674000001 +22302000.0,23075.565000000002,30288.045,88441.09139999999,2385.3049,2385.3049,2385.3049,1610.1435,36217.88128,162375.07840000003,24177.71454,36842.231680000004,28573.536,28573.536,28573.536,2931.8835,23075.565000000002,23075.565000000002,54935.06771999999,1469.91915,2184.91686,3810.9015,1081.57014,1375.55397,8684.582999999999,8684.582999999999,8684.582999999999,8684.582999999999,69380.5321,69380.5321 +22305600.0,29305.503,33161.13,96830.4996,4374.38716,4374.38716,4374.38716,3220.2905,40427.703680000006,204612.34816,28286.24778,43102.85376,32102.427000000003,32102.427000000003,32102.427000000003,3685.5840000000003,29305.503,29305.503,59836.77517999999,2123.7228,3156.7435199999995,5505.947999999999,1562.64048,1987.38504,14532.399,14532.399,14532.399,14532.399,88111.87902,88111.87902 +22309200.0,58143.24600000001,38604.49800000001,112725.13416,16352.958820000002,16352.958820000002,16352.958820000002,11271.011499999999,223712.83911999996,210516.22784000004,46916.93433,71492.47136,33982.293000000005,33982.293000000005,33982.293000000005,6591.0355,58143.24600000001,58143.24600000001,110027.31662,4996.513349999999,7426.916139999998,12953.923499999999,3676.4468599999996,4675.749529999999,52297.92,52297.92,52297.92,52297.92,174817.35964,174817.35964 +22312800.0,215381.265,114782.511,335164.93212,111521.48799000001,111521.48799000001,111521.48799000001,90168.099,744298.19464,304215.20128,291119.09232,443610.04544,112077.828,112077.828,112077.828,37115.393,215381.265,215381.265,1015550.9565499999,37528.21935,55782.68654,97295.38350000001,27613.356460000003,35119.00033,208852.398,208852.398,208852.398,208852.398,647579.6701,647579.6701 +22316400.0,194631.51299999998,255941.625,747349.5449999999,176690.63731,176690.63731,176690.63731,149743.45400000003,1168370.96264,314965.25056,903801.0954,1377220.7168,187750.506,187750.506,187750.506,178839.234,194631.51299999998,194631.51299999998,172135.66720999999,182554.6329,271352.81236,473289.789,134324.14964,170835.07622000002,264855.07200000004,264855.07200000004,264855.07200000004,264855.07200000004,585192.0824199999,585192.0824199999 +22320000.0,622589.562,103468.58699999998,302128.27403999993,149030.01377000002,149030.01377000002,149030.01377000002,122082.219,412467.5258399999,267439.24544,328117.78586999996,499989.00703999994,231819.96600000001,231819.96600000001,231819.96600000001,66687.726,622589.562,622589.562,156678.25121,76077.23715,113082.70805999999,197237.2815,55977.818940000005,71193.26637,541944.294,541944.294,541944.294,541944.294,1871919.2830800002,1871919.2830800002 +22323600.0,339041.22000000003,126520.16399999999,369438.87888,164290.26306,164290.26306,164290.26306,136862.2955,239942.67799999999,1407456.0684800001,92716.95531,141282.97952000002,320849.49,320849.49,320849.49,199987.256,339041.22000000003,339041.22000000003,113313.43646999999,277478.06715,412448.88006,719387.5815000001,204169.04694,259664.66037000003,89438.667,89438.667,89438.667,89438.667,1019383.9348,1019383.9348 +22327200.0,42107.112,12713.508000000002,37123.443360000005,111749.49346000001,111749.49346000001,111749.49346000001,98218.8235,65301.09296000001,40695.552,55215.09651,84137.28992000001,20293.923,20293.923,20293.923,35084.777,42107.112,42107.112,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,25103.925000000003,25103.925000000003,25103.925000000003,25103.925000000003,126602.05007999999,126602.05007999999 +22330800.0,53898.30600000001,108447.828,316667.65776,98520.03172000001,98520.03172000001,98520.03172000001,110608.729,92761.93512,98680.39232,48694.398479999996,74200.98816,33735.789000000004,33735.789000000004,33735.789000000004,40085.262,53898.30600000001,53898.30600000001,19142.385860000002,30863.9889,45876.84276,80017.749,22709.79924,28882.59702,23947.296,23947.296,23947.296,23947.296,162054.24004,162054.24004 +22334400.0,94041.93000000002,37277.352,108849.86783999999,85873.68702,85873.68702,85873.68702,76964.713,131127.97280000002,181134.00448000003,57050.40474000001,86933.95008000001,71128.716,71128.716,71128.716,42901.0015,94041.93000000002,94041.93000000002,69784.26402999999,54015.603299999995,80289.85972,140040.453,39744.81428,50547.93494,38131.308,38131.308,38131.308,38131.308,282752.73620000004,282752.73620000004 +22338000.0,46211.46,15738.999,45957.87708,66592.3632,66592.3632,66592.3632,57965.20799999999,55743.71104,75246.11264,40286.64843,61389.17856000001,27736.134000000002,27736.134000000002,27736.134000000002,20705.7725,46211.46,46211.46,30008.791540000002,25538.81805,37961.40362,66211.75050000001,18791.52538,23899.28899,20221.161,20221.161,20221.161,20221.161,138942.4564,138942.4564 +22341600.0,70302.97799999999,61028.697,178203.79524,56778.39662000001,56778.39662000001,56778.39662000001,52188.2725,171941.60704,22017.67104,86969.8494,132525.4848,29955.267,29955.267,29955.267,17829.9695,70302.97799999999,70302.97799999999,204070.58957999997,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,18253.032,18253.032,18253.032,18253.032,211377.62051999997,211377.62051999997 +22345200.0,12091.670999999998,32607.740999999998,95214.60372,69696.54813000001,69696.54813000001,69696.54813000001,88733.3545,62755.174159999995,31859.142400000004,24833.169690000002,37841.02048000001,29511.359999999997,29511.359999999997,29511.359999999997,93243.423,12091.670999999998,12091.670999999998,62859.72549999999,43763.939549999996,65051.58422,113462.0655,32201.61478,40954.40269,9655.212,9655.212,9655.212,9655.212,36355.62414,36355.62414 +22348800.0,13244.193,5757.933,16813.16436,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29436.65432,14605.05088,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,13244.193,13244.193,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10936.794,10936.794,10936.794,10936.794,39820.87362,39820.87362 +22352400.0,315272.871,122554.38,357858.78959999996,96179.02063,96179.02063,96179.02063,70846.3665,390541.05312000006,177236.85376,333123.04725000006,507616.0720000001,171085.164,171085.164,171085.164,46934.226500000004,315272.871,315272.871,9502.102089999998,32126.5359,47753.51756,83291.019,23638.78444,30064.09162,198861.318,198861.318,198861.318,198861.318,947920.4321399999,947920.4321399999 +22356000.0,196854.468,93350.052,272582.15183999995,152013.95462,152013.95462,152013.95462,134538.8555,289572.91935999994,338867.35936,234580.12179,357455.42368,161417.06399999998,161417.06399999998,161417.06399999998,77336.189,196854.468,196854.468,33490.59662,66052.26405,98181.39001999999,171246.61049999998,48601.418979999995,61811.87179,107052.16500000001,107052.16500000001,107052.16500000001,107052.16500000001,591875.76712,591875.76712 +22359600.0,279052.092,174103.182,508381.29144,157108.99633,157108.99633,157108.99633,149993.01099999997,417433.32456000004,499427.26207999996,313482.07443,477686.97056,220267.602,220267.602,220267.602,118173.21600000001,279052.092,279052.092,114045.72529999999,130035.18465,193286.86706,337128.2565,95680.20994,121687.24687,169506.153,169506.153,169506.153,169506.153,839016.6232799999,839016.6232799999 +22363200.0,319161.34500000003,194202.98699999996,567072.7220399999,142046.32519000003,142046.32519000003,142046.32519000003,162518.5555,589429.8626400001,528475.2083200001,365069.5414800001,556296.4441600001,263079.59400000004,263079.59400000004,263079.59400000004,158742.647,319161.34500000003,319161.34500000003,161075.99573,133761.72329999998,198826.06771999996,346789.65299999993,98422.20627999998,125174.55093999999,261585.054,261585.054,261585.054,261585.054,959611.7773,959611.7773 +22366800.0,248095.65000000002,125584.70999999999,366707.3532,118349.05951,118349.05951,118349.05951,117922.1785,325269.49888,300421.31264,212798.97597000003,324265.10624000005,166110.801,166110.801,166110.801,70518.9765,248095.65000000002,248095.65000000002,103944.01341999999,47959.8975,71288.539,124340.475,35289.011,44880.9905,210946.137,210946.137,210946.137,210946.137,745940.921,745940.921 +22370400.0,39669.177,45279.864,132217.20288,75824.80818,75824.80818,75824.80818,66015.9325,88641.99032,224971.33056,62311.79136,94951.30112,47803.10100000001,47803.10100000001,47803.10100000001,23581.572,39669.177,39669.177,84855.16285999998,24151.9401,35899.92084,62616.141,17771.05716,22601.44518,22885.017,22885.017,22885.017,22885.017,119271.99218,119271.99218 +22374000.0,42607.979999999996,47457.981,138577.30452,37833.36062,37833.36062,37833.36062,32202.8945,72043.35544,307610.50112000003,55554.684149999994,84654.7568,51035.841,51035.841,51035.841,16643.8475,42607.979999999996,42607.979999999996,86215.57035,12815.313749999998,19048.935499999996,33224.8875,9429.539499999999,11992.602249999998,24414.876,24414.876,24414.876,24414.876,128107.9932,128107.9932 +22377600.0,47079.585,48464.274000000005,141515.68008000002,14475.74865,14475.74865,14475.74865,11271.011499999999,60943.57696,331122.6816,54776.52767999999,83468.99455999999,51191.895000000004,51191.895000000004,51191.895000000004,43744.5855,47079.585,47079.585,88498.25205,5574.444299999999,8285.964119999999,14452.262999999999,4101.68988,5216.57874,35255.316000000006,35255.316000000006,35255.316000000006,35255.316000000006,141552.6189,141552.6189 +22381200.0,51550.206000000006,50278.452000000005,146813.07984,9083.73939,9083.73939,9083.73939,6440.577499999999,63537.77504000001,346378.33472,62854.84275,95778.80800000002,52915.614,52915.614,52915.614,46675.0935,51550.206000000006,51550.206000000006,91665.80059,20692.1061,30757.15524,53646.201,15225.30276,19363.723980000002,43793.61,43793.61,43793.61,43793.61,154994.28604,154994.28604 +22384800.0,53289.65700000001,56003.106,163529.06952000002,3654.11112,3654.11112,3654.11112,5312.895,79406.40408,353782.4249600001,69520.44078,105935.90976000001,56312.733,56312.733,56312.733,48832.864499999996,53289.65700000001,53289.65700000001,95753.46846,23397.174000000003,34778.0216,60659.34000000001,17215.6984,21895.133200000004,45053.606999999996,45053.606999999996,45053.606999999996,45053.606999999996,160224.23538,160224.23538 +22388400.0,60605.354999999996,61716.450000000004,180212.034,3744.9372400000007,3744.9372400000007,3744.9372400000007,6586.7970000000005,86315.53287999998,368803.03744,73445.03796,111916.24832,59532.07800000001,59532.07800000001,59532.07800000001,51878.1235,60605.354999999996,60605.354999999996,126158.93589,24526.265399999997,36456.325359999995,63586.613999999994,18046.48664,22951.739719999998,47055.647999999994,47055.647999999994,47055.647999999994,47055.647999999994,182220.10069999998,182220.10069999998 +22392000.0,65282.742,64973.01299999999,189721.19796,5557.24312,5557.24312,5557.24312,8124.434500000001,91488.16687999999,362394.77184000006,73606.75119000001,112162.66848000001,60184.11,60184.11,60184.11,53389.196,65282.742,65282.742,124367.61011999998,30703.3983,45638.13772,79601.403,22591.63628,28732.31594,46720.461,46720.461,46720.461,46720.461,196283.44428,196283.44428 +22395600.0,97198.554,78442.20300000001,229051.23276,23843.13041,23843.13041,23843.13041,15685.085499999997,398366.87503999996,329723.50272000005,107579.63811,163930.87712000002,56311.950000000004,56311.950000000004,56311.950000000004,51511.4635,97198.554,97198.554,243927.16829,31684.46625,47096.4165,82144.9125,23313.508500000004,29650.401750000005,90955.728,90955.728,90955.728,90955.728,292243.65236,292243.65236 +22399200.0,427927.725,209666.772,612226.97424,123507.57694000001,123507.57694000001,123507.57694000001,117382.32100000001,1587184.32008,556207.4905600001,773461.89354,1178608.59968,275155.314,275155.314,275155.314,91137.48000000001,427927.725,427927.725,1333717.8822499998,141593.14755,210466.85142,367093.3455,104184.58758,132503.21709,468650.17500000005,468650.17500000005,468650.17500000005,468650.17500000005,1286636.0264999997,1286636.0264999997 +22402800.0,307069.266,391264.722,1142492.98824,187791.56638,187791.56638,187791.56638,183109.96899999998,1797008.52376,688784.7948800001,1250577.4610700002,1905641.8454400003,468271.41300000006,468271.41300000006,468271.41300000006,433699.7105,307069.266,307069.266,331310.97219999996,484985.6775,720892.291,1257370.2750000001,356853.659,453850.7945,436914.096,436914.096,436914.096,436914.096,923254.92644,923254.92644 +22406400.0,880312.662,201739.533,589079.4363599999,159909.07086,159909.07086,159909.07086,140146.972,823116.44064,701237.4336,613498.8140400001,934855.3356800001,469274.14199999993,469274.14199999993,469274.14199999993,165504.381,880312.662,880312.662,272482.56542,170213.51745,253008.73458,441294.3045,125243.52642000001,159286.22991000002,917521.7849999999,917521.7849999999,917521.7849999999,917521.7849999999,2646806.73708,2646806.73708 +22410000.0,419608.221,165297.477,482668.63284,170106.1791,170106.1791,170106.1791,138054.595,305265.11616,1821491.1827200002,97807.73184,149040.35328,425999.268,425999.268,425999.268,339704.27749999997,419608.221,419608.221,151989.87206,418860.00719999993,622601.7884799999,1085933.352,308198.22751999996,391970.22896,117657.30899999998,117657.30899999998,117657.30899999998,117657.30899999998,1261622.05114,1261622.05114 +22413600.0,45390.087,11258.148000000001,32873.792160000005,111675.37875999999,111675.37875999999,111675.37875999999,98218.8235,65301.09296000001,35181.74208,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,45390.087,45390.087,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24500.298000000003,24500.298000000003,24500.298000000003,24500.298000000003,136472.86158,136472.86158 +22417200.0,42001.905,182310.60600000003,532346.96952,100433.94515000001,100433.94515000001,100433.94515000001,118913.858,136752.46512,100228.23552000002,77545.34088,118164.32896,23330.931,23330.931,23330.931,143391.2235,42001.905,42001.905,11445.71246,31818.209400000003,47295.214960000005,82491.65400000001,23411.917040000004,29775.558920000003,22958.904,22958.904,22958.904,22958.904,126285.7277,126285.7277 +22420800.0,67698.30600000001,28121.181000000004,82113.84852,86235.46118000001,86235.46118000001,86235.46118000001,131551.10150000002,105048.28479999998,134850.43008000002,50633.92362,77156.45504,60870.909,60870.909,60870.909,36160.197499999995,67698.30600000001,67698.30600000001,31788.414579999997,35087.11425,52154.1797,90966.5925,25817.1853,32834.60815,28074.999000000003,28074.999000000003,28074.999000000003,28074.999000000003,203546.24004,203546.24004 +22424400.0,41420.90700000001,14297.76,41749.4592,66573.12024,66573.12024,66573.12024,57965.20799999999,54173.80224,69450.7936,34771.43082,52985.03744,27561.624000000003,27561.624000000003,27561.624000000003,20705.7725,41420.90700000001,41420.90700000001,26005.163989999994,25310.377800000002,37621.84552,65619.498,18623.43848,23685.514040000002,17067.393,17067.393,17067.393,17067.393,124538.86038,124538.86038 +22428000.0,77285.295,58066.872,169555.26624,56761.72183000001,56761.72183000001,56761.72183000001,57341.014500000005,191090.93784,19723.29664,133368.34119,203227.94848,37227.339,37227.339,37227.339,17829.9695,77285.295,77285.295,199394.93287999998,18636.305849999997,27701.373139999996,48316.3485,13712.63986,17439.90103,21402.789,21402.789,21402.789,21402.789,232371.12029999998,232371.12029999998 +22431600.0,13329.966,78214.641,228386.75171999997,110457.69581,110457.69581,110457.69581,109031.31049999999,102214.24960000001,33228.99968,24065.50881,36671.25152,23883.675000000003,23883.675000000003,23883.675000000003,147487.368,13329.966,13329.966,107405.42890999999,54604.9269,81165.84195999999,141568.329,40178.44004,51099.42542,15870.285,15870.285,15870.285,15870.285,40078.76444,40078.76444 +22435200.0,13830.258000000002,6073.835999999999,17735.60112,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29426.235760000003,15000.560640000002,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,13830.258000000002,13830.258000000002,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10942.899,10942.899,10942.899,10942.899,41582.97572,41582.97572 +22438800.0,345184.11899999995,114511.23300000001,334372.80036,98168.68083000001,98168.68083000001,98168.68083000001,75538.46299999999,365847.56504,157912.71168,333722.56616999995,508529.62464,195548.424,195548.424,195548.424,53161.892,345184.11899999995,345184.11899999995,9502.102089999998,33817.4433,50266.915720000005,87674.853,24882.958280000003,31646.44694,208274.097,208274.097,208274.097,208274.097,1037853.5844599999,1037853.5844599999 +22442400.0,216223.614,97536.80399999999,284807.46767999994,154959.66596,154959.66596,154959.66596,160337.52000000002,310442.58567999996,346322.22656000004,244123.91199000002,371998.34208000003,171781.125,171781.125,171781.125,81600.869,216223.614,216223.614,27182.882869999998,66358.50074999999,98636.58629999998,172040.5575,48826.7487,62098.44884999999,116880.285,116880.285,116880.285,116880.285,650112.33276,650112.33276 +22446000.0,312129.68700000003,201598.866,588668.68872,160184.23949,160184.23949,160184.23949,214059.7725,484252.96352000005,589786.53248,385758.3345,587822.2239999999,252792.849,252792.849,252792.849,132433.64399999997,312129.68700000003,312129.68700000003,115835.25212999998,149576.28480000002,222333.14432000002,387790.3680000001,110058.59968000001,139973.85664,201561.27900000004,201561.27900000004,201561.27900000004,201561.27900000004,938469.92558,938469.92558 +22449600.0,405021.585,269268.231,786263.23452,150597.10622000002,150597.10622000002,150597.10622000002,273493.07999999996,775418.03624,701020.0729599999,505313.74509000004,770001.89728,339371.286,339371.286,339371.286,243350.90149999998,405021.585,405021.585,200998.11549999999,182806.4376,271727.09984,473942.616,134509.42816,171070.71568,343457.331,343457.331,343457.331,343457.331,1217764.8989,1217764.8989 +22453200.0,310552.38,250007.15400000004,730020.88968,124832.18693000001,124832.18693000001,124832.18693000001,166279.20750000002,449672.39048,521205.89952000004,314770.69428,479650.58176000003,229103.706,229103.706,229103.706,111251.26950000001,310552.38,310552.38,151695.28842,68525.352,101857.4368,177658.32,50421.1232,64126.1936,265084.18799999997,265084.18799999997,265084.18799999997,265084.18799999997,933727.4892000001,933727.4892000001 +22456800.0,54511.856999999996,58466.322,170721.66024,76878.76724,76878.76724,76878.76724,66015.9325,102848.77144,363110.06656,78733.7334,119975.21280000001,64063.311,64063.311,64063.311,39544.1235,54511.856999999996,54511.856999999996,106002.6357,25031.02095,37206.60397999999,64895.239499999996,18417.88702,23424.09121,32139.75,32139.75,32139.75,32139.75,163898.98338,163898.98338 +22460400.0,57155.50199999999,56267.664,164301.57888,38622.879570000005,38622.879570000005,38622.879570000005,32202.8945,81209.73184,387674.95232000004,72990.44802,111223.53984000001,61854.975000000006,61854.975000000006,61854.975000000006,59607.0195,57155.50199999999,57155.50199999999,102607.37694999998,13375.238399999998,19881.218559999998,34676.543999999994,9841.53344,12516.581119999999,43221.906,43221.906,43221.906,43221.906,171847.54267999998,171847.54267999998 +22464000.0,57301.383,55002.519,160607.35548,14834.40112,14834.40112,14834.40112,13732.4215,74414.22024,377756.5593600001,73541.15013,112062.70496,60577.539,60577.539,60577.539,54565.714,57301.383,57301.383,99135.23035,27037.783799999997,40189.49592,70097.958,19894.46808,25302.024840000002,49135.331999999995,49135.331999999995,49135.331999999995,49135.331999999995,172286.15821999998,172286.15821999998 +22467600.0,58449.458999999995,60076.659,175423.84428,9382.762290000002,9382.762290000002,9382.762290000002,11819.958499999999,87411.74175999999,380872.30848,78869.81382,120182.57344,61919.54699999999,61919.54699999999,61919.54699999999,56092.183000000005,58449.458999999995,58449.458999999995,111600.91293,27587.065049999997,41005.958419999995,71522.0205,20298.63058,25816.04359,50241.738,50241.738,50241.738,50241.738,175738.04005999997,175738.04005999997 +22471200.0,61452.114,65323.455,190744.4886,3890.99733,3890.99733,3890.99733,6965.6125,88383.21991999999,375946.94336000003,76157.64807,116049.74944,64622.015999999996,64622.015999999996,64622.015999999996,55989.227,61452.114,61452.114,129159.87084,25709.6025,38215.261,66654.52500000001,18917.189000000002,24059.109500000002,48755.835,48755.835,48755.835,48755.835,184766.02276,184766.02276 +22474800.0,77293.446,75359.91900000001,220050.96348,4097.92834,4097.92834,4097.92834,7557.973499999999,114990.1256,414595.46688,84961.32771,129464.88032,92270.21399999999,92270.21399999999,92270.21399999999,63348.208000000006,77293.446,77293.446,145433.12055999998,36536.28525,54308.2561,94723.7025,26883.4889,34190.745950000004,53694.29400000001,53694.29400000001,53694.29400000001,53694.29400000001,232395.62764,232395.62764 +22478400.0,81129.672,78274.938,228562.81896,6001.2679100000005,6001.2679100000005,6001.2679100000005,9360.47,133122.65984,426180.29504000006,94356.35390999999,143781.11072,99225.93900000001,99225.93900000001,99225.93900000001,68255.8205,81129.672,81129.672,164498.94084,39006.14534999999,57979.50493999999,101127.04349999999,28700.818059999998,36502.04713,56065.395000000004,56065.395000000004,56065.395000000004,56065.395000000004,243929.88048,243929.88048 +22482000.0,126337.26299999998,102721.659,299947.24428,27036.680330000003,27036.680330000003,27036.680330000003,17517.2025,489244.81447999994,437572.50368,168425.57277000003,256648.49184000003,130564.872,130564.872,130564.872,84508.1825,126337.26299999998,126337.26299999998,332295.38198999997,47362.482,70400.5288,122791.62000000001,34849.4312,44321.9276,116138.84399999998,116138.84399999998,116138.84399999998,116138.84399999998,379854.03741999995,379854.03741999995 +22485600.0,569819.409,275868.438,805535.8389600001,131955.75734,131955.75734,131955.75734,156807.56,1994861.218,718465.38048,1122910.0413300002,1711101.01536,424826.98199999996,424826.98199999996,424826.98199999996,230312.75749999995,569819.409,569819.409,1431156.1926999998,248390.5581,369212.63204,643975.521,182766.38596,232444.49758,628051.605,628051.605,628051.605,628051.605,1713257.0230599998,1713257.0230599998 +22489200.0,387830.34,492607.55399999995,1438414.0576799999,199499.21442000003,199499.21442000003,199499.21442000003,427692.4645,2138032.19936,919327.40352,1445996.08293,2203422.60256,611339.499,611339.499,611339.499,572299.091,387830.34,387830.34,556416.8654199999,690862.3204499999,1026911.3997799999,1791124.5344999998,508338.20122,646510.66531,567919.854,567919.854,567919.854,567919.854,1166076.5556,1166076.5556 +22492800.0,1023912.7259999999,390816.15,1141183.158,168110.97149,168110.97149,168110.97149,156040.9165,1156998.5087199998,1253959.8643200002,859321.27281,1309441.93952,596112.624,596112.624,596112.624,239107.08500000005,1023912.7259999999,1023912.7259999999,335911.53036999993,238657.34699999998,354744.9948,618741.27,175604.6652,223336.1346,1129773.1979999999,1129773.1979999999,1129773.1979999999,1129773.1979999999,3078564.2628399995,3078564.2628399995 +22496400.0,443679.213,171581.082,501016.75944,173750.70537,173750.70537,173750.70537,146659.8665,327730.1712,1964323.4854400002,99804.88371000001,152083.63232,418002.375,418002.375,418002.375,372425.84049999993,443679.213,443679.213,161743.1764,491930.60534999997,731215.36894,1275375.6435,361963.75406,460349.87513,125358.435,125358.435,125358.435,125358.435,1333995.50042,1333995.50042 +22500000.0,45248.106,8187.9090000000015,23908.694280000003,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,31358.54272,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,45248.106,45248.106,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24044.7,24044.7,24044.7,24044.7,136045.97204,136045.97204 +22503600.0,42285.084,164426.43,480125.17559999996,99159.60373,99159.60373,99159.60373,110326.44000000002,109673.2144,41728.890880000006,57978.60516000001,88348.35072000002,20156.682,20156.682,20156.682,164300.1745,42285.084,42285.084,11445.71246,32715.920249999996,48629.590099999994,84819.05249999999,24072.454899999997,30615.638949999997,23501.496,23501.496,23501.496,23501.496,127137.15256,127137.15256 +22507200.0,52071.600000000006,21573.789,62995.463879999996,85635.76703,85635.76703,85635.76703,106918.553,94134.2008,42516.71168,44363.25054,67601.14368000001,38573.922,38573.922,38573.922,34537.5345,52071.600000000006,52071.600000000006,9718.056659999998,28029.106350000002,41663.01734,72668.05350000001,20623.885660000004,26229.706930000004,24034.149,24034.149,24034.149,24034.149,156561.944,156561.944 +22510800.0,42452.595,17005.137,49655.00004,67253.63645,67253.63645,67253.63645,58537.3985,51641.35632,85023.20704000001,32898.41961,50130.92512,32881.386000000006,32881.386000000006,32881.386000000006,20856.772999999997,42452.595,42452.595,7774.446289999999,20601.76275,30622.8671,53411.97750000001,15158.827900000002,19279.180450000003,16267.59,16267.59,16267.59,16267.59,127640.8023,127640.8023 +22514400.0,93737.87400000001,56423.217000000004,164755.79364000002,57303.349290000006,57303.349290000006,57303.349290000006,60532.416,185366.61656000002,44983.89312,138018.16287,210313.39104000002,46541.37300000001,46541.37300000001,46541.37300000001,17829.9695,93737.87400000001,93737.87400000001,186127.44254,18063.927449999996,26850.578579999994,46832.40449999999,13291.482419999998,16904.26791,23334.582000000002,23334.582000000002,23334.582000000002,23334.582000000002,281838.54116,281838.54116 +22518000.0,21483.213,103669.50900000002,302714.96628000005,128921.34442000001,128921.34442000001,128921.34442000001,121954.994,136706.22984,40927.92704,23950.33263,36495.74496,22014.513,22014.513,22014.513,186368.4865,21483.213,21483.213,131860.97924999997,64715.363099999995,96194.19403999999,167780.571,47617.723959999996,60560.796579999995,26257.821,26257.821,26257.821,26257.821,64592.86042,64592.86042 +22521600.0,16876.386000000002,6941.088,20267.97696,49508.05387,49508.05387,49508.05387,43473.906,29928.52832,17877.46112,24439.466730000004,37241.09216000001,7766.25,7766.25,7766.25,15529.3285,16876.386000000002,16876.386000000002,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11105.079,11105.079,11105.079,11105.079,50741.66724,50741.66724 +22525200.0,446724.423,140008.134,408823.75127999997,109123.94867,109123.94867,109123.94867,119346.864,454755.35712,264324.91072,420868.29036,641323.10912,280655.748,280655.748,280655.748,61848.41600000001,446724.423,446724.423,9502.102089999998,39207.142799999994,58278.271519999995,101648.148,28848.71248,36690.14104,248672.01899999997,248672.01899999997,248672.01899999997,248672.01899999997,1343151.43182,1343151.43182 +22528800.0,279388.614,171452.745,500642.0153999999,160776.35530000002,160776.35530000002,160776.35530000002,220370.00999999998,424315.63024,566373.1206400001,345658.85339999996,526718.2528,232811.05800000002,232811.05800000002,232811.05800000002,113401.39650000002,279388.614,279388.614,66105.49425999999,129087.41579999999,191878.08471999998,334671.078,94982.83928,120800.32243999999,165338.706,165338.706,165338.706,165338.706,840028.43276,840028.43276 +22532400.0,388591.542,270527.61600000004,789940.63872,168293.87729,168293.87729,168293.87729,295487.6295,699493.3817599999,729606.1740799999,492795.76164000004,750926.8748800001,349947.05700000003,349947.05700000003,349947.05700000003,256124.91100000002,388591.542,388591.542,169326.17025999996,194316.40394999998,288835.74117999995,503783.26949999994,142978.48982,181841.77060999998,288941.493,288941.493,288941.493,288941.493,1168365.23628,1168365.23628 +22536000.0,473452.28099999996,405296.853,1183466.81076,157608.40161000003,157608.40161000003,157608.40161000003,301590.29600000003,956919.64152,925903.79776,617739.45261,941317.2611200002,448296.426,448296.426,448296.426,285824.21699999995,473452.28099999996,473452.28099999996,253403.63308,262859.56785,390719.65393999993,681487.7684999999,193412.71905999997,245984.63262999998,421126.074,421126.074,421126.074,421126.074,1423513.1915399998,1423513.1915399998 +22539600.0,357122.33999999997,314494.935,918325.2102,128843.25333000002,128843.25333000002,128843.25333000002,204709.7885,522436.62384,676503.0374400001,391617.63165000005,596750.6768,273904.788,273904.788,273904.788,164935.274,357122.33999999997,357122.33999999997,319735.07709,122486.4585,182066.2914,317557.485,90125.8386,114623.1303,328888.392,328888.392,328888.392,328888.392,1073747.8355999999,1073747.8355999999 +22543200.0,65739.36000000002,61954.24799999999,180906.40415999998,77290.59833000001,77290.59833000001,77290.59833000001,66015.9325,106908.57591999999,421276.98368000006,92815.43418,141433.04256,70020.08099999999,70020.08099999999,70020.08099999999,75966.4955,65739.36000000002,65739.36000000002,112427.60281999999,25243.297649999997,37522.13625999999,65445.5865,18574.080739999998,23622.74027,47476.827000000005,47476.827000000005,47476.827000000005,47476.827000000005,197656.34240000002,197656.34240000002 +22546800.0,64941.34199999999,58800.345,171697.0074,38830.56353,38830.56353,38830.56353,35434.861,89617.6324,400932.63488,87233.22447000002,132926.81824000002,66567.927,66567.927,66567.927,64832.106499999994,64941.34199999999,64941.34199999999,105807.86918,31896.9009,47412.18356,82695.66900000001,23469.81844,29849.198620000003,55790.634000000005,55790.634000000005,55790.634000000005,55790.634000000005,195256.96827999997,195256.96827999997 +22550400.0,59934.134999999995,59968.26000000001,175107.3192,14966.17958,14966.17958,14966.17958,16850.015,80674.46079999999,376439.28512,81689.57747999999,124479.35616,61708.10400000001,61708.10400000001,61708.10400000001,58352.28700000001,59934.134999999995,59934.134999999995,109598.98611999999,29558.710349999994,43936.65093999999,76633.6935,21749.372059999998,27661.114129999998,51566.71200000001,51566.71200000001,51566.71200000001,51566.71200000001,180201.96589999998,180201.96589999998 +22554000.0,59658.69,64867.662,189413.57304,9465.9246,9465.9246,9465.9246,11978.8375,87235.83512,370789.31200000003,78689.95911,119908.50912,72333.42,72333.42,72333.42,57909.977999999996,59658.69,59658.69,128500.19377,27614.860199999996,41047.27367999999,71594.082,20319.082319999998,25842.05436,49958.174999999996,49958.174999999996,49958.174999999996,49958.174999999996,179373.7946,179373.7946 +22557600.0,66473.31899999999,67613.92199999999,197432.65223999997,3964.1555800000006,3964.1555800000006,3964.1555800000006,7104.8144999999995,100920.17567999999,365014.24064,75886.71888000001,115636.90496000001,81152.41500000001,81152.41500000001,81152.41500000001,57016.389500000005,66473.31899999999,66473.31899999999,127574.15813999998,27580.47165,40996.15786,71504.9265,20293.779140000002,25809.873470000002,48327.981,48327.981,48327.981,48327.981,199863.11245999997,199863.11245999997 +22561200.0,72057.792,68941.51199999999,201309.21503999998,3990.5495300000002,3990.5495300000002,3990.5495300000002,7176.385999999999,117317.07359999997,368690.2227200001,79284.13604999999,120813.92159999999,83937.255,83937.255,83937.255,59235.5085,72057.792,72057.792,142741.68987,33991.5123,50525.65532,88126.14300000001,25011.03868,31809.34114,48861.885,48861.885,48861.885,48861.885,216653.76127999998,216653.76127999998 +22564800.0,72622.503,67715.538,197729.37096,5786.730070000001,5786.730070000001,5786.730070000001,8681.4035,117613.658,360838.33344,82476.76122,125678.87424000002,82199.58,82199.58,82199.58,58460.6365,72622.503,72622.503,140572.39429999999,33887.5164,50371.07376,87856.524,24934.51824,31712.021520000002,48901.851,48901.851,48901.851,48901.851,218351.65902,218351.65902 +22568400.0,117902.12099999998,91459.044,267060.40848,27199.89547,27199.89547,27199.89547,16740.6785,464971.15232000005,368609.64544000005,152142.98106,231836.92352,86145.195,86145.195,86145.195,78345.6275,117902.12099999998,117902.12099999998,309992.86461,41722.265699999996,62016.79987999999,108168.837,30699.34612,39043.79926,106102.88399999999,106102.88399999999,106102.88399999999,106102.88399999999,354492.37713999994,354492.37713999994 +22572000.0,560451.561,273087.882,797416.61544,131539.51030000002,131539.51030000002,131539.51030000002,165406.89549999998,1949589.2167999998,692951.9110400002,1101883.91145,1679061.1984,414340.70999999996,414340.70999999996,414340.70999999996,245445.4765,560451.561,560451.561,1432383.66141,279239.37165,415066.91786,723953.9265000001,205465.01914000002,261312.89347,622479.6510000001,622479.6510000001,622479.6510000001,622479.6510000001,1685091.02674,1685091.02674 +22575600.0,388479.72000000003,496717.32599999994,1450414.5919199998,201647.99534000002,201647.99534000002,201647.99534000002,493386.46699999995,2104331.6092,905051.9948800001,1445844.5513400002,2203191.6972800004,596556.282,596556.282,596556.282,584571.1725,388479.72000000003,388479.72000000003,571822.64126,725512.7150999999,1078416.4308399998,1880958.8909999998,533834.04716,678936.5901799999,570534.741,570534.741,570534.741,570534.741,1168029.0248,1168029.0248 +22579200.0,1028538.2609999999,397305.99899999995,1160133.51708,169052.24446000002,169052.24446000002,169052.24446000002,156549.25650000002,1159598.0387199998,1514323.7260800002,920012.85516,1401924.3507200002,587108.859,587108.859,587108.859,261696.3825,1028538.2609999999,1028538.2609999999,355327.46573999996,277469.02349999995,412435.43739999994,719364.135,204162.3926,259656.19729999997,1124872.008,1124872.008,1124872.008,1124872.008,3092471.70474,3092471.70474 +22582800.0,496341.573,194544.657,568070.39844,179821.30166000003,179821.30166000003,179821.30166000003,155630.1285,371027.90199999994,2352562.57664,116734.70508,177881.45536,483272.36100000003,483272.36100000003,483272.36100000003,444164.105,496341.573,496341.573,180824.1097,641104.30395,952950.1011799999,1662122.2695,471726.12982,599946.99061,140817.402,140817.402,140817.402,140817.402,1492333.66282,1492333.66282 +22586400.0,85315.476,17811.438,52009.39896,113318.49881,113318.49881,113318.49881,98218.8235,70602.73256,82391.07392000001,56315.58786,85814.22912,29150.805,29150.805,29150.805,35084.777,85315.476,85315.476,26966.081739999998,37524.627,55777.3468,97286.07,27610.713200000002,35115.6386,26845.923,26845.923,26845.923,26845.923,256515.19783999998,256515.19783999998 +22590000.0,108279.54000000001,366398.913,1069884.82596,106804.36613000001,106804.36613000001,106804.36613000001,195911.898,233833.92703999998,251433.25312,135894.9963,207078.08959999998,50410.788,50410.788,50410.788,237655.86949999997,108279.54000000001,108279.54000000001,50427.75621,57159.241649999996,84962.62586,148190.6265,42057.91114,53489.75947,43656.654,43656.654,43656.654,43656.654,325560.4836,325560.4836 +22593600.0,146391.219,76814.859,224299.38828,92970.78615,92970.78615,92970.78615,177869.8775,252077.21688,232654.28608,122223.98559,186246.07328,90259.593,90259.593,90259.593,80877.055,146391.219,146391.219,121105.65090000001,75819.56805,112699.70362,196569.25050000002,55788.22538,70952.13899,87304.065,87304.065,87304.065,87304.065,440149.59846,440149.59846 +22597200.0,53750.925,18488.514000000003,53986.460880000006,67971.33618000001,67971.33618000001,67971.33618000001,58097.90349999999,76517.01736,79780.14592,42667.09461,65016.52512,35827.101,35827.101,35827.101,20752.098499999996,53750.925,53750.925,34963.332039999994,28165.27545,41865.42178,73021.0845,20724.07922,26357.13431,23396.754,23396.754,23396.754,23396.754,161611.11450000003,161611.11450000003 +22600800.0,105672.051,79702.776,232732.10592,57301.75792,57301.75792,57301.75792,64906.442999999985,239206.96064000003,22465.42656,218777.17323000001,333374.74016,52624.78200000001,52624.78200000001,52624.78200000001,33992.056,105672.051,105672.051,264883.66969999997,36929.580749999994,54892.85829999999,95743.35749999998,27172.876699999997,34558.79285,27519.243000000002,27519.243000000002,27519.243000000002,27519.243000000002,317720.63334,317720.63334 +22604400.0,22316.271,168912.53399999999,493224.59927999997,185018.29687,185018.29687,185018.29687,152355.5635,204689.97352,46443.76064,27416.78016,41777.95072,38407.206,38407.206,38407.206,249296.77150000003,22316.271,22316.271,196353.30532999997,85612.71914999999,127256.43685999999,221958.90149999998,62994.05014,80116.59397,46755.708,46755.708,46755.708,46755.708,67097.58813999999,67097.58813999999 +22608000.0,19892.016,7608.566999999999,22217.015639999998,49825.64818,49825.64818,49825.64818,43473.906,30827.25176,20036.29248,24439.466730000004,37241.09216000001,8063.093999999999,8063.093999999999,8063.093999999999,15529.3285,19892.016,19892.016,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11284.506,11284.506,11284.506,11284.506,59808.661439999996,59808.661439999996 +22611600.0,586016.118,251661.777,734852.38884,118416.27963,118416.27963,118416.27963,312858.1575,689655.25352,514027.30816000013,700725.65325,1067772.424,447440.61900000006,447440.61900000006,447440.61900000006,97884.3075,586016.118,586016.118,9502.102089999998,91495.75725000001,136001.1009,237211.22250000003,67322.80410000001,85621.95555000001,357089.301,357089.301,357089.301,357089.301,1761955.12812,1761955.12812 +22615200.0,351773.457,236065.44900000002,689311.1110800001,165522.22764,165522.22764,165522.22764,281656.94550000003,619075.88096,662073.37216,438070.93911000004,667536.6691200001,308101.167,308101.167,308101.167,169392.32100000003,351773.457,351773.457,132104.59131999998,190860.59159999999,283698.95343999995,494823.756,140435.69456,178607.81288,248798.244,248798.244,248798.244,248798.244,1057665.5273799999,1057665.5273799999 +22618800.0,466984.329,334080.35699999996,975514.6424399999,174444.39617000002,174444.39617000002,174444.39617000002,329748.2755,936032.50776,853695.14176,616679.67816,939702.36672,438487.005,438487.005,438487.005,305745.9055,466984.329,466984.329,347052.76501999993,294281.3106,437425.55304,762951.5460000001,216532.91496000002,275389.17708000005,432627.41399999993,432627.41399999993,432627.41399999993,432627.41399999993,1404066.2158599999,1404066.2158599999 +22622400.0,545133.165,459864.4770000001,1342804.27284,162350.80224,162350.80224,162350.80224,375267.7915,1082835.63624,1208190.04352,777788.0279399999,1185200.80448,557340.5519999999,557340.5519999999,557340.5519999999,452856.54750000004,545133.165,545133.165,457621.91851999995,382197.75075,568106.2862999999,990883.0575,281222.0487,357661.59885,499432.338,499432.338,499432.338,499432.338,1639033.7161,1639033.7161 +22626000.0,404065.848,349747.662,1021263.17304,130164.0538,130164.0538,130164.0538,280247.436,598099.03312,841188.9734400001,472077.94032,719356.86144,307741.686,307741.686,307741.686,267548.24950000003,404065.848,404065.848,348729.04039999994,168403.941,250318.94439999998,436602.81,123912.0356,157592.8238,390069.76800000004,390069.76800000004,390069.76800000004,390069.76800000004,1214891.31632,1214891.31632 +22629600.0,78117.006,63437.952000000005,185238.81984,77399.70282,77399.70282,77399.70282,72341.52799999999,117136.54752000001,434164.35456,115759.82754,176395.92768,76979.574,76979.574,76979.574,83985.356,78117.006,78117.006,115087.93204999999,52146.9819,77512.30396,135195.87900000002,38369.87804,48799.27442,69054.246,69054.246,69054.246,69054.246,234871.79804,234871.79804 +22633200.0,73106.808,65084.67000000001,190047.23640000002,39038.007359999996,39038.007359999996,39038.007359999996,38701.8695,97902.41408,433638.23040000006,103738.55163,158077.79296,83344.878,83344.878,83344.878,76893.1905,73106.808,73106.808,112915.28872,40974.6843,60905.58012,106230.663,30149.27388,38344.21074,63363.74700000001,63363.74700000001,63363.74700000001,63363.74700000001,219807.80272,219807.80272 +22636800.0,75964.878,72246.864,210960.84288,15346.423400000003,15346.423400000003,15346.423400000003,18034.205,97837.41488,443341.42784,95188.80441000001,145049.60672,103978.05299999999,103978.05299999999,103978.05299999999,73268.405,75964.878,75964.878,143495.97001999998,35059.728149999995,52113.47246,90895.5915,25797.03454,32808.98017,60400.21200000001,60400.21200000001,60400.21200000001,60400.21200000001,228401.06652,228401.06652 +22640400.0,78204.231,81931.11,239238.8412,9925.61075,9925.61075,9925.61075,13384.112000000001,133674.69752,452348.16384000005,94998.12567000001,144759.04864000002,109172.796,109172.796,109172.796,74786.138,78204.231,78204.231,156296.14481,34475.71005,51245.37642,89381.47050000001,25367.31258,32262.45459,60659.823000000004,60659.823000000004,60659.823000000004,60659.823000000004,235134.05453999995,235134.05453999995 +22644000.0,87515.06999999999,84737.13,247432.4196,4496.03132,4496.03132,4496.03132,8706.803,150928.33512,459435.30880000006,96699.5946,147351.7632,110843.18999999999,110843.18999999999,110843.18999999999,75945.38,87515.06999999999,87515.06999999999,178965.35734999998,42768.53055,63571.988620000004,110881.37550000001,31469.190380000004,40022.89649000001,60778.095,60778.095,60778.095,60778.095,263128.64379999996,263128.64379999996 +22647600.0,92021.76299999999,92296.97400000002,269507.16408,4566.8289700000005,4566.8289700000005,4566.8289700000005,8890.91,154823.63264,470127.88992000005,112740.77808,171795.47136000003,114453.03,114453.03,114453.03,77895.167,92021.76299999999,92021.76299999999,183450.60057999997,45549.3618,67705.47111999999,118090.938,33515.332879999994,42625.205239999996,64067.154,64067.154,64067.154,64067.154,276678.76742,276678.76742 +22651200.0,98963.21100000001,100153.521,292448.28131999995,7151.48247,7151.48247,7151.48247,10657.9025,159145.2268,479980.45888,156676.76682000002,238745.54944,151138.119,151138.119,151138.119,82290.84850000001,98963.21100000001,98963.21100000001,190494.49925999998,50753.2716,75440.66544,131582.556,37344.38256,47495.03688,77050.437,77050.437,77050.437,77050.437,297549.38774,297549.38774 +22654800.0,162175.989,127549.98300000001,372445.95036,29766.014190000005,29766.014190000005,29766.014190000005,18837.426999999996,524596.81064,501382.60480000003,274979.37684,419016.19328,189122.88600000003,189122.88600000003,189122.88600000003,168839.25449999998,162175.989,162175.989,392724.54714999994,62428.81814999999,92795.42846,161852.4915,45935.27854,58421.04217,139395.186,139395.186,139395.186,139395.186,487609.14025999996,487609.14025999996 +22658400.0,763114.6140000001,345840.939,1009855.5418799999,140953.15168,140953.15168,140953.15168,282650.676,2479122.5969599998,1326403.9961600003,1598061.3154799999,2435141.05216,600782.952,600782.952,600782.952,465943.681,763114.6140000001,763114.6140000001,1581722.7569,557718.3233999999,829003.5325599997,1445936.3939999996,410370.51943999995,521914.18411999993,850029.1199999999,850029.1199999999,850029.1199999999,850029.1199999999,2294431.27276,2294431.27276 +22662000.0,650296.473,762183.2130000001,2225574.98196,226718.75578,226718.75578,226718.75578,997205.2615,2984444.00288,1672985.76512,2036803.9965,3103701.328,901666.47,901666.47,901666.47,929907.9895000001,650296.473,650296.473,1094033.11472,1201183.6517999999,1785463.1071199998,3114179.838,883833.8968799999,1124070.62724,924577.4730000001,924577.4730000001,924577.4730000001,924577.4730000001,1955224.72882,1955224.72882 +22665600.0,1296413.922,759033.057,2216376.52644,180584.10106000004,180584.10106000004,180584.10106000004,265857.1125,1831543.1068,2947075.58784,1461416.63556,2226920.58752,955972.5419999999,955972.5419999999,955972.5419999999,438732.67199999996,1296413.922,1296413.922,492121.42226,533805.2766000001,793458.7074400001,1383939.6060000004,392775.24056000006,499536.2958800001,1490735.2410000002,1490735.2410000002,1490735.2410000002,1490735.2410000002,3897884.52548,3897884.52548 +22669200.0,599637.366,242697.843,708677.70156,192231.83056000003,192231.83056000003,192231.83056000003,184423.71850000002,479826.23183999996,3597140.9651200003,147725.42925,225105.416,553433.328,553433.328,553433.328,564125.422,599637.366,599637.366,245463.54001,999123.4737,1485116.86708,2590320.117,735157.5189200001,934982.21366,174027.675,174027.675,174027.675,174027.675,1802909.68044,1802909.68044 +22672800.0,126928.71900000001,27445.613999999994,80141.19287999999,117945.39284,117945.39284,117945.39284,98218.8235,110685.35063999999,127611.85728,62582.223060000004,95363.38752,29497.625999999997,29497.625999999997,29497.625999999997,35084.777,126928.71900000001,126928.71900000001,43847.67139999999,40226.39414999999,59793.30685999999,104290.65149999999,29598.680139999997,37643.95897,32407.614,32407.614,32407.614,32407.614,381632.34846,381632.34846 +22676400.0,138385.032,446200.647,1302905.88924,109253.3706,109253.3706,109253.3706,259191.70200000005,280092.33344,273321.83296,180311.64732,274760.60544,58028.016,58028.016,58028.016,335244.1995,138385.032,138385.032,64337.660529999994,71546.4414,106348.04376,185490.774,52644.048240000004,66953.33652,76944.846,76944.846,76944.846,76944.846,416077.66288,416077.66288 +22680000.0,152749.002,77439.183,226122.41436,93694.1269,93694.1269,93694.1269,190380.05699999997,278831.34312,226673.11488,138218.00412,210617.91104000004,89505.198,89505.198,89505.198,78922.445,152749.002,152749.002,129209.78420999998,79762.89914999998,118561.14885999997,206792.70149999997,58689.738139999994,74642.31796999999,105487.20000000001,105487.20000000001,105487.20000000001,105487.20000000001,459265.33268,459265.33268 +22683600.0,66260.316,24700.974,72126.84408,69314.49723000001,69314.49723000001,69314.49723000001,58994.971000000005,101879.99135999999,95473.75168,50276.45532,76611.74144,41835.954,41835.954,41835.954,23592.534,66260.316,66260.316,48940.67737,33302.30759999999,49501.207839999995,86339.31599999999,24503.920159999998,31164.38168,33242.22,33242.22,33242.22,33242.22,199222.68344,199222.68344 +22687200.0,107354.11799999999,75699.24,221041.7808,57590.65873,57590.65873,57590.65873,64906.442999999985,237665.4576,15936.305920000003,248249.65452,378285.18784,62319.30900000001,62319.30900000001,62319.30900000001,46355.029,107354.11799999999,107354.11799999999,259592.25123,46058.859899999996,68462.79916,119411.859,33890.222839999995,43101.99482,32852.736000000004,32852.736000000004,32852.736000000004,32852.736000000004,322778.04812,322778.04812 +22690800.0,14794.619999999999,168496.074,492008.53608,198122.50436000002,198122.50436000002,198122.50436000002,150105.95949999997,208351.8988,42344.01344,25201.974000000002,38403.008,22309.059,22309.059,22309.059,254390.73450000002,14794.619999999999,14794.619999999999,200252.39234,84735.96704999999,125953.21521999998,219685.8405,62348.93378,79296.12719,47969.487,47969.487,47969.487,47969.487,44482.4908,44482.4908 +22694400.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +22698000.0,516014.079,167236.50300000003,488330.58876,106600.45913,106600.45913,106600.45913,270023.90449999995,504925.962,253321.39008,491995.12635000004,749706.8592000001,337774.146,337774.146,337774.146,72584.9075,516014.079,516014.079,9502.102089999998,69918.74234999999,103928.59973999999,181270.8135,51446.383259999995,65430.131729999994,289597.614,289597.614,289597.614,289597.614,1551482.3308599999,1551482.3308599999 +22701600.0,221217.762,159323.301,465224.03891999996,159082.51491,159082.51491,159082.51491,268293.9105,389916.57024000003,322854.208,329594.40864000004,502239.09888,184628.889,184628.889,184628.889,122657.81500000002,221217.762,221217.762,49005.83844,120296.01599999999,178810.37439999997,311878.56,88514.1056,112573.3088,157602.072,157602.072,157602.072,157602.072,665128.07108,665128.07108 +22705200.0,339186.01800000004,248539.065,725734.0697999999,168434.98012000002,168434.98012000002,168434.98012000002,317670.402,572963.3052,679497.58336,452087.9613600001,688895.9411200001,327395.604,327395.604,327395.604,173816.40499999997,339186.01800000004,339186.01800000004,196591.83323,215104.21155,319735.14902,557677.5855,158274.20998,201295.05229000002,255162.816,255162.816,255162.816,255162.816,1019819.29412,1019819.29412 +22708800.0,461939.11199999996,320539.73699999996,935976.03204,159169.81234,159169.81234,159169.81234,387561.99299999996,919050.79224,827348.5145599999,619505.0253,944007.6576,443653.029,443653.029,443653.029,298760.69649999996,461939.11199999996,461939.11199999996,362014.96747000003,301309.96004999994,447873.07641999994,781173.9704999999,221704.61258,281966.60459,428883.912,428883.912,428883.912,428883.912,1388896.9300799998,1388896.9300799998 +22712400.0,329441.385,277204.36199999996,809436.7370399999,127354.60199,127354.60199,127354.60199,243320.57399999996,469097.80728,571028.3136000001,374310.07047,570377.25024,234967.044,234967.044,234967.044,200518.766,329441.385,329441.385,300373.09067999996,141099.19335,209732.62814,365812.7235,103821.13486,132040.97353000002,308806.149,308806.149,308806.149,308806.149,990520.4309,990520.4309 +22716000.0,60870.119999999995,56065.083,163710.04236,77147.30991,77147.30991,77147.30991,66015.9325,100957.71519999999,359981.56608,85980.70887,131018.22304,62317.974,62317.974,62317.974,70617.77799999999,60870.119999999995,60870.119999999995,101286.00261,25081.402949999996,37281.49277999999,65025.85949999999,18454.958219999997,23471.23881,41836.511999999995,41836.511999999995,41836.511999999995,41836.511999999995,183016.16079999995,183016.16079999995 +22719600.0,61217.81700000001,53383.761,155880.58212,38729.54206000001,38729.54206000001,38729.54206000001,37732.733499999995,80366.93224,363711.55648,81951.09783,124877.86336,58737.003,58737.003,58737.003,61609.8595,61217.81700000001,61217.81700000001,96978.08002999998,30011.407199999998,44609.54848,77807.352,22082.467520000002,28084.74896,51588.636,51588.636,51588.636,51588.636,184061.56978000002,184061.56978000002 +22723200.0,59249.466,53594.19,156495.0348,14980.44086,14980.44086,14980.44086,17034.8115,75275.27568,364012.13824,80763.19314,123067.72288,59557.197,59557.197,59557.197,59282.10400000001,59249.466,59249.466,95745.78689,29575.5948,43961.74832,76677.468,21761.79568,27676.91464,50791.59,50791.59,50791.59,50791.59,178143.39444,178143.39444 +22726800.0,66355.599,60162.378,175674.14376,9580.999780000002,9580.999780000002,9580.999780000002,12466.944,88660.01256,379574.11776000005,81620.06412000001,124373.43104000002,75693.54299999999,75693.54299999999,75693.54299999999,61308.744,66355.599,66355.599,108533.83566999999,29147.898599999997,43326.01224,75568.626,21447.09576,27276.675479999998,51794.736000000004,51794.736000000004,51794.736000000004,51794.736000000004,199509.16765999998,199509.16765999998 +22730400.0,74873.217,74027.505,216160.31459999998,4275.10765,4275.10765,4275.10765,8170.2285,102813.10656,413446.64768,86196.67266,131347.31072,97644.10800000001,97644.10800000001,97644.10800000001,66941.091,74873.217,74873.217,141808.7567,33575.629949999995,49907.479579999985,87047.92949999998,24705.031419999996,31420.157409999996,55096.926,55096.926,55096.926,55096.926,225118.80578,225118.80578 +22734000.0,78305.50200000001,73907.967,215811.26364000002,4204.58676,4204.58676,4204.58676,7949.634,124811.78503999999,397174.76992000005,87999.1707,134093.9744,94044.30600000001,94044.30600000001,94044.30600000001,65333.2575,78305.50200000001,78305.50200000001,146168.54069999998,38150.84204999999,56708.165219999995,98909.59049999999,28071.48378,35701.65219,53261.024999999994,53261.024999999994,53261.024999999994,53261.024999999994,235438.54268,235438.54268 +22737600.0,82058.994,76424.991,223160.97371999998,6110.470080000001,6110.470080000001,6110.470080000001,9774.212,136429.15104000003,411222.6560000001,96171.90744,146547.66848,98462.769,98462.769,98462.769,68999.7175,82058.994,82058.994,160149.2867,40438.719450000004,60108.91138,104841.1245,29754.909620000002,37842.653510000004,56330.538,56330.538,56330.538,56330.538,246724.04195999997,246724.04195999997 +22741200.0,90250.023,84470.832,246654.82944,15865.999600000003,15865.999600000003,15865.999600000003,17984.473499999996,145258.99744,423478.8563200001,121188.04719,184667.50048000002,113414.89199999999,113414.89199999999,113414.89199999999,75573.4175,90250.023,90250.023,165222.18205999996,47656.7631,70837.95403999998,123554.571,35065.963959999994,44597.31658,65885.031,65885.031,65885.031,65885.031,271351.73582,271351.73582 +22744800.0,707943.39,678195.1499999999,1980329.8379999998,114384.68822,114384.68822,114384.68822,486460.4604999999,1084876.20816,764753.2307200001,804956.70066,1226600.6867199999,400625.313,400625.313,400625.313,1021667.6084999999,707943.39,707943.39,1251603.3275199998,283153.9599,420885.63916,734102.859,208345.38284,264976.17482,808079.115,808079.115,808079.115,808079.115,2128549.7926,2128549.7926 +22748400.0,1257212.808,1176226.5089999998,3434581.4062799998,235902.83695,235902.83695,235902.83695,964518.8630000001,1948349.71184,2078428.0294400002,1764411.29235,2688626.7312,803392.9590000001,803392.9590000001,803392.9590000001,780946.201,1257212.808,1257212.808,587613.93379,886210.57125,1317280.8985000001,2297582.9625000004,652075.9265000001,829318.04075,1373799.762,1373799.762,1373799.762,1373799.762,3780019.8427199996,3780019.8427199996 +22752000.0,976336.176,570894.615,1667012.2758,198899.3127,198899.3127,198899.3127,475596.093,1520570.7747199999,2209918.47616,1292399.9432400002,1969371.3420800003,1063648.1849999998,1063648.1849999998,1063648.1849999998,471038.89,976336.176,976336.176,433197.70533,920557.9611,1368335.5372399997,2386631.7509999997,677348.8207599999,861460.4129799999,666182.955,666182.955,666182.955,666182.955,2935517.43584,2935517.43584 +22755600.0,493149.16800000006,276988.221,808805.6053200001,190995.72272,190995.72272,190995.72272,505132.22900000005,1270915.30072,1816534.5920000002,831107.39292,1266449.36064,738099.639,738099.639,738099.639,850466.029,493149.16800000006,493149.16800000006,426759.90512999997,792364.12515,1177785.6872599998,2054277.3614999999,583023.47974,741496.3047699999,512159.289,512159.289,512159.289,512159.289,1482735.16512,1482735.16512 +22759200.0,154852.473,139441.992,407170.61663999996,134179.80477000002,134179.80477000002,134179.80477000002,329247.7475,773586.8108,172355.8464,443006.55672,675057.6102400001,126175.125,126175.125,126175.125,203510.60450000002,154852.473,154852.473,44398.825249999994,230750.26875,342991.75749999995,598241.4375,169786.6175,215936.67125,144999.90000000002,144999.90000000002,144999.90000000002,144999.90000000002,465589.76882,465589.76882 +22762800.0,25129.647000000004,7074.348,20657.09616,99204.46734,99204.46734,99204.46734,85337.66500000001,78071.6896,27245.94624,66417.41694,101207.49248,15032.913,15032.913,15032.913,30483.495,25129.647000000004,25129.647000000004,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,22874.217,22874.217,22874.217,22874.217,75556.47198,75556.47198 +22766400.0,25368.614999999998,7705.451999999999,22499.91984,82833.53947000002,82833.53947000002,82833.53947000002,72456.51000000001,70855.23663999999,23133.34976,49683.051179999995,75707.50656,12812.054999999998,12812.054999999998,12812.054999999998,25882.213000000003,25368.614999999998,25368.614999999998,9718.056659999998,25743.8574,38266.17816,66743.334,18942.39384,24091.165320000004,25072.947,25072.947,25072.947,25072.947,76274.9691,76274.9691 +22770000.0,15337.737,4805.217000000001,14031.23364,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,38894.388320000005,18506.68416,33479.90331,51016.995520000004,10211.037,10211.037,10211.037,20705.7725,15337.737,15337.737,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14190.315000000002,14190.315000000002,14190.315000000002,14190.315000000002,46115.46257999999,46115.46257999999 +22773600.0,12517.326000000001,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28091.99001,42806.84192,8792.835,8792.835,8792.835,17829.9695,12517.326000000001,12517.326000000001,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,37635.42684,37635.42684 +22777200.0,9690.834,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,21723.97311,33103.19712,6807.357,6807.357,6807.357,13803.846000000001,9690.834,9690.834,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,29137.10756,29137.10756 +22780800.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +22784400.0,19265.379,5873.043000000001,17149.28556,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,47102.42655999999,22619.26976,41933.470740000004,63898.62208000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,19265.379,19265.379,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,17343.716999999997,17343.716999999997,17343.716999999997,17343.716999999997,57924.57286,57924.57286 +22788000.0,41004.018,11366.697,33190.75524,142727.02862,142727.02862,142727.02862,125591.28399999999,110591.01128,40097.804800000005,77593.26897,118237.36224,22123.911,22123.911,22123.911,44862.503,41004.018,41004.018,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,40823.973,40823.973,40823.973,40823.973,123285.41411999999,123285.41411999999 +22791600.0,75570.384,17900.843999999997,52270.464479999995,147051.30187000002,147051.30187000002,147051.30187000002,127201.42749999999,152595.42152,48394.240000000005,107468.75097000001,163761.90624,23737.161,23737.161,23737.161,45437.66499999999,75570.384,75570.384,17060.589,45194.768099999994,67178.39603999999,117171.621,33254.42196,42293.37558,59338.959,59338.959,59338.959,59338.959,227214.95455999998,227214.95455999998 +22795200.0,107584.51500000001,15568.565999999999,45460.212719999996,132789.24857,132789.24857,132789.24857,112710.12550000001,88850.17464,80268.84288000001,101799.58194,155123.17248,24397.344,24397.344,24397.344,40261.221,107584.51500000001,107584.51500000001,15116.978629999998,40045.99905,59525.16402,103822.9605,29465.94498,37475.14479,59283.591,59283.591,59283.591,59283.591,323470.7751,323470.7751 +22798800.0,56334.96,8362.593,24418.771560000005,110737.08096,110737.08096,110737.08096,93388.3895,73638.38792,29816.313600000005,56460.15459,86034.52128,16965.588,16965.588,16965.588,33359.297999999995,56334.96,56334.96,12525.494929999999,33180.9696,49320.84864,86024.736,24414.63936,31050.833280000003,25678.415999999997,25678.415999999997,25678.415999999997,25678.415999999997,169380.4464,169380.4464 +22802400.0,19579.11,12423.906000000003,36277.80552,75023.18098,75023.18098,75023.18098,66015.9325,52722.79,21077.05152,37111.78317,56551.288640000006,11907.987,11907.987,11907.987,23581.572,19579.11,19579.11,15603.341779999999,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,58867.85739999999,58867.85739999999 +22806000.0,11853.735,16443.849000000002,48016.03908,37091.737429999994,37091.737429999994,37091.737429999994,32202.8945,45356.80384,27554.22016,18103.308510000003,27585.993920000004,6461.039999999999,6461.039999999999,6461.039999999999,11503.205,11853.735,11853.735,28641.06323,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,7978.950000000001,7978.950000000001,7978.950000000001,7978.950000000001,35640.2299,35640.2299 +22809600.0,9064.329,16215.114000000001,47348.132880000005,13556.74265,13556.74265,13556.74265,11271.011499999999,43505.541359999996,31955.386880000002,11300.75583,17220.199360000002,4127.427,4127.427,4127.427,4026.1234999999997,9064.329,9064.329,28000.29427,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,4637.25,4637.25,4637.25,4637.25,27253.415859999997,27253.415859999997 +22813200.0,12823.172999999999,16108.976999999999,47038.21283999999,8082.56823,8082.56823,8082.56823,6440.577499999999,41099.963599999995,31305.98144,20925.830099999996,31886.979199999998,10134.189,10134.189,10134.189,2300.6409999999996,12823.172999999999,12823.172999999999,36108.61709,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,3507.429,3507.429,3507.429,3507.429,38555.006819999995,38555.006819999995 +22816800.0,21111.102000000003,26201.247000000003,76507.64124000001,3229.0728799999997,3229.0728799999997,3229.0728799999997,1610.1435,41078.38479999999,132264.15616,24633.34776,37536.52992,20287.902000000002,20287.902000000002,20287.902000000002,1138.025,21111.102000000003,21111.102000000003,66002.00710999999,914.5305,1359.3762,2371.005,672.9138,855.8199,4432.503,4432.503,4432.503,4432.503,63474.04668,63474.04668 +22820400.0,33755.07,40565.055,118449.96059999999,3405.88996,3405.88996,3405.88996,1610.1435,47921.96543999999,252002.66880000004,35395.906350000005,53936.6192,39465.621,39465.621,39465.621,11908.932,33755.07,33755.07,73230.91763,1869.4071,2778.7236399999997,4846.611,1375.51436,1749.39578,15383.589,15383.589,15383.589,15383.589,101490.2438,101490.2438 +22824000.0,46259.615999999995,47171.897999999994,137741.94215999998,5349.139950000001,5349.139950000001,5349.139950000001,3743.8624999999997,61893.3128,294095.28896000003,48813.90717,74383.09664,44374.416,44374.416,44374.416,39074.6545,46259.615999999995,46259.615999999995,78560.78242999999,4538.2153499999995,6745.69294,11765.7435,3339.23006,4246.87313,32447.571,32447.571,32447.571,32447.571,139087.24544,139087.24544 +22827600.0,53762.046,46793.688,136637.56896,14385.35802,14385.35802,14385.35802,15634.773000000001,68554.38176,273645.33888,57155.09982,87093.48544000002,42455.184,42455.184,42455.184,41734.402500000004,53762.046,53762.046,87859.08962999999,22211.334000000003,33015.365600000005,57584.94000000001,16343.154400000001,20785.421200000004,37421.97899999999,37421.97899999999,37421.97899999999,37421.97899999999,161644.55164,161644.55164 +22831200.0,478025.2050000001,294915.639,861153.66588,110026.6299,110026.6299,110026.6299,186141.8405,638405.4049600001,416101.72672000004,407216.1891,620519.9072,194150.08500000002,194150.08500000002,194150.08500000002,379507.667,478025.2050000001,478025.2050000001,620048.74984,87232.2453,129663.73251999999,226157.673,64185.70148,81632.15054,397364.397,397364.397,397364.397,397364.397,1437262.4497,1437262.4497 +22834800.0,880260.7590000001,716828.382,2093138.8754399999,226811.69830000002,226811.69830000002,226811.69830000002,529677.8935,1223460.56448,1302986.4064,891329.89533,1358216.98336,517290.519,517290.519,517290.519,289474.0555,880260.7590000001,880260.7590000001,362588.95438999997,367365.44385000004,546059.25234,952428.9285,270308.40066000004,343781.48943,835427.6970000002,835427.6970000002,835427.6970000002,835427.6970000002,2646650.68206,2646650.68206 +22838400.0,701902.362,399381.135,1166192.9142,167621.04117,167621.04117,167621.04117,261266.13799999998,939554.9329599999,1133929.9852800001,910039.65864,1386727.0988800002,678036.831,678036.831,678036.831,166024.58599999998,701902.362,701902.362,297605.70047,341015.21235,506891.74773999996,884113.5135,250919.83526,319122.87773,471409.377,471409.377,471409.377,471409.377,2110386.4350799997,2110386.4350799997 +22842000.0,421797.012,235578.45299999998,687889.08276,184289.66512,184289.66512,184289.66512,319503.9155,986506.0275999999,1585747.44448,639737.88564,974838.68288,650682.5519999999,650682.5519999999,650682.5519999999,640333.351,421797.012,421797.012,339958.11121999996,577754.7183,858786.0257199999,1497882.6030000001,425113.34828000003,540664.29194,396233.29500000004,396233.29500000004,396233.29500000004,396233.29500000004,1268203.0160799997,1268203.0160799997 +22845600.0,124241.136,136582.668,398821.39055999997,126610.14201000001,126610.14201000001,126610.14201000001,248968.75499999998,712635.6593599999,100080.51776,419299.64160000003,638932.7872,105579.78600000001,105579.78600000001,105579.78600000001,138598.53,124241.136,124241.136,27205.812139999998,193718.3931,287946.84604,502232.871,142538.47196,181282.15058,121593.79800000001,121593.79800000001,121593.79800000001,121593.79800000001,373551.68224,373551.68224 +22849200.0,26852.22,8409.083999999999,24554.525279999998,97801.79882000001,97801.79882000001,97801.79882000001,85337.66500000001,88099.97992,27245.94624,69378.69959999999,105719.92319999999,15280.145999999999,15280.145999999999,15280.145999999999,30483.495,26852.22,26852.22,11445.71246,30320.53965,45069.04906,78608.8065,22309.927939999998,28374.03587,26899.790999999997,26899.790999999997,26899.790999999997,26899.790999999997,80735.6748,80735.6748 +22852800.0,33915.447,12138.323999999999,35443.90607999999,82889.07869,82889.07869,82889.07869,72456.51000000001,83258.14688,23965.13664,64322.37546,98015.04832,14178.015,14178.015,14178.015,25913.8285,33915.447,33915.447,9718.056659999998,26846.081099999996,39904.54523999999,69600.95099999999,19753.41276,25122.628979999998,31891.890000000003,31891.890000000003,31891.890000000003,31891.890000000003,101972.44398000001,101972.44398000001 +22856400.0,15887.835,4864.617,14204.681639999999,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,41240.75432,18506.68416,33877.16115,51622.3408,10211.037,10211.037,10211.037,20705.7725,15887.835,15887.835,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14769.837000000001,14769.837000000001,14769.837000000001,14769.837000000001,47769.423899999994,47769.423899999994 +22860000.0,12653.304,4137.828,12082.457760000001,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,33185.799999999996,15936.305920000003,28442.029770000005,43340.23584000001,8792.835,8792.835,8792.835,17829.9695,12653.304,12653.304,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,12219.437999999998,12219.437999999998,12219.437999999998,12219.437999999998,38044.26736,38044.26736 +22863600.0,10268.778000000002,3203.478,9354.15576,43916.00818,43916.00818,43916.00818,38643.472,25692.233199999995,12337.789440000002,22372.02387,34090.70304,6807.357,6807.357,6807.357,13803.846000000001,10268.778000000002,10268.778000000002,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,30874.792520000003,30874.792520000003 +22867200.0,11635.86,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29100.46304,13880.007679999999,25325.423970000003,38591.122240000004,7658.277,7658.277,7658.277,15529.3285,11635.86,11635.86,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,34985.1524,34985.1524 +22870800.0,22949.1,6890.49,20120.230799999998,80512.68302000001,80512.68302000001,80512.68302000001,70846.3665,64791.798240000004,22619.26976,44728.229490000005,68157.30208000001,12480.155999999999,12480.155999999999,12480.155999999999,25307.054500000002,22949.1,22949.1,9502.102089999998,25171.7706,37415.81704,65260.14600000001,18521.450960000002,23555.805080000002,23101.775999999998,23101.775999999998,23101.775999999998,23101.775999999998,69000.294,69000.294 +22874400.0,57946.314000000006,18025.434,52634.26728,142770.26015999998,142770.26015999998,142770.26015999998,125591.28399999999,141503.1124,46920.9248,105916.3455,161396.336,23286.290999999997,23286.290999999997,23286.290999999997,44862.503,57946.314000000006,57946.314000000006,16844.63443,44622.68535,66328.04093999999,115688.4435,32833.48206,41758.01913,55163.850000000006,55163.850000000006,55163.850000000006,55163.850000000006,174225.25076,174225.25076 +22878000.0,91671.651,33687.342,98367.03864,147596.62488999998,147596.62488999998,147596.62488999998,127201.42749999999,158488.57719999997,72446.07936,142010.09025,216396.328,26101.778999999995,26101.778999999995,26101.778999999995,45437.66499999999,91671.651,91671.651,17060.589,48421.61775,71974.84909999999,125537.5275,35628.7459,45313.06945,64533.62100000001,64533.62100000001,64533.62100000001,64533.62100000001,275626.09734,275626.09734 +22881600.0,136424.823,38046.108,111094.63536,131392.07862000001,131392.07862000001,131392.07862000001,120543.388,102446.55311999998,98937.97632000002,107239.83794999999,163413.0864,35683.293000000005,35683.293000000005,35683.293000000005,42238.5355,136424.823,136424.823,15116.978629999998,54059.00715,80354.37606,140152.9815,39776.75094,50588.552370000005,58865.826,58865.826,58865.826,58865.826,410183.96781999996,410183.96781999996 +22885200.0,63188.607,12900.189,37668.55188,109078.10826000001,109078.10826000001,109078.10826000001,93388.3895,78394.18024,29816.313600000005,62539.337490000005,95298.03808000001,19213.949999999997,19213.949999999997,19213.949999999997,33359.297999999995,63188.607,63188.607,12549.044689999999,33207.78465,49360.70706000001,86094.25650000002,24434.369940000004,31075.926870000007,31168.974,31168.974,31168.974,31168.974,189987.07838000002,189987.07838000002 +22888800.0,19825.326,18066.732000000004,52754.85744000001,75023.18098,75023.18098,75023.18098,66015.9325,62714.58032,21077.05152,37111.78317,56551.288640000006,12323.307,12323.307,12323.307,23581.572,19825.326,19825.326,28173.901599999997,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,16161.192,16161.192,16161.192,16161.192,59608.146839999994,59608.146839999994 +22892400.0,12741.557999999999,15737.426999999998,45953.28683999999,36596.67484,36596.67484,36596.67484,32202.8945,51105.72319999999,21148.88128,18336.698940000002,27941.63648,7392.636,7392.636,7392.636,11503.205,12741.557999999999,12741.557999999999,26683.893469999995,11441.71575,17007.1923,29663.707499999997,8418.8427,10707.18585,8399.274,8399.274,8399.274,8399.274,38309.617719999995,38309.617719999995 +22896000.0,8783.528999999999,13991.613000000001,40855.50996,13091.122440000001,13091.122440000001,13091.122440000001,11271.011499999999,37853.69448,26684.200960000002,18341.630370000003,27949.151040000004,7341.846,7341.846,7341.846,4026.1234999999997,8783.528999999999,8783.528999999999,24002.44834,4004.5995000000003,5952.5158,10382.295,2946.5942,3747.5141000000003,4292.931,4292.931,4292.931,4292.931,26409.143859999996,26409.143859999996 +22899600.0,10717.971,13744.760999999999,40134.702119999994,7828.35603,7828.35603,7828.35603,6440.577499999999,35058.763920000005,26450.672639999997,20173.48032,30740.54144,14182.836,14182.836,14182.836,3155.2185,10717.971,10717.971,35212.99028,2288.34315,3401.43846,5932.7415,1683.76854,2141.43717,3138.4469999999997,3138.4469999999997,3138.4469999999997,3138.4469999999997,32225.366139999995,32225.366139999995 +22903200.0,18477.765,25666.668,74946.67056,2347.15679,2347.15679,2347.15679,1610.1435,33380.231120000004,102497.95584000001,20889.721020000005,31831.955840000006,16586.579999999998,16586.579999999998,16586.579999999998,2996.6055,18477.765,18477.765,51130.76656999999,1463.11515,2174.80326,3793.2615000000005,1076.56374,1369.1867700000003,4239.0779999999995,4239.0779999999995,4239.0779999999995,4239.0779999999995,55556.4801,55556.4801 +22906800.0,25153.419,28567.851000000002,83418.12492,2340.83608,2340.83608,2340.83608,1610.1435,34857.7336,168569.05152,23457.551880000003,35744.84096,23616.117000000002,23616.117000000002,23616.117000000002,2979.151,25153.419,25153.419,50747.85689999999,1456.04385,2164.29234,3774.9285,1071.36066,1362.56943,8722.572,8722.572,8722.572,8722.572,75627.94645999999,75627.94645999999 +22910400.0,30105.506999999998,29210.094,85293.47448,4179.21845,4179.21845,4179.21845,3220.2905,36412.692,181231.03232000006,26058.588989999997,39708.32608,28123.908000000003,28123.908000000003,28123.908000000003,12424.300000000001,30105.506999999998,30105.506999999998,51922.752309999996,2043.7352999999998,3037.8485199999996,5298.572999999999,1503.78548,1912.53254,16836.522,16836.522,16836.522,16836.522,90517.22438,90517.22438 +22914000.0,58231.062000000005,33760.182,98579.73144,16868.02139,16868.02139,16868.02139,13590.787,220070.61216,188248.76288,49274.12406,75084.37952,30176.291999999998,30176.291999999998,30176.291999999998,27393.9365,58231.062000000005,58231.062000000005,102303.60620999998,12984.51465,19300.439059999997,33663.5565,9554.03794,12150.94087,51758.138999999996,51758.138999999996,51758.138999999996,51758.138999999996,175081.39308,175081.39308 +22917600.0,216715.968,107849.79299999999,314921.39556,110980.97978000001,110980.97978000001,110980.97978000001,100513.56,756684.4725599999,298663.73568000004,300252.71409,457527.94528000004,117582.54000000001,117582.54000000001,117582.54000000001,50350.69899999999,216715.968,216715.968,1067909.5189099999,67900.69214999999,100928.93005999998,176038.8315,49961.49694,63541.635369999996,210368.78399999999,210368.78399999999,210368.78399999999,210368.78399999999,651592.67712,651592.67712 +22921200.0,279346.218,350351.235,1023025.6061999999,183764.45197,183764.45197,183764.45197,205145.857,1511211.14688,592126.95104,1089768.2042099999,1660599.16832,332269.94700000004,332269.94700000004,332269.94700000004,340968.6595,279346.218,279346.218,392519.79507,396653.52915,589593.64086,1028361.0015000001,291858.64614,371189.35197,360797.586,360797.586,360797.586,360797.586,839900.96212,839900.96212 +22924800.0,680147.5889999999,121015.938,353366.53896,149165.97619000004,149165.97619000004,149165.97619000004,124715.24450000002,471528.54376,468077.41248000006,394591.33707,601282.0374400001,271058.667,271058.667,271058.667,104501.76800000001,680147.5889999999,680147.5889999999,203934.35595,106129.74375,157753.34749999997,275151.1875,78090.5275,99316.47625,604105.353,604105.353,604105.353,604105.353,2044977.0842599997,2044977.0842599997 +22928400.0,344141.202,131400.59399999998,383689.73448,164946.56683999998,164946.56683999998,164946.56683999998,143399.1755,246214.25400000002,1434637.3766400001,97817.67198,149055.50016,301015.86600000004,301015.86600000004,301015.86600000004,227912.81449999998,344141.202,344141.202,122237.93452,366774.156,545180.3504,950895.9600000001,269873.3296,343228.1608,92208.078,92208.078,92208.078,92208.078,1034717.88068,1034717.88068 +22932000.0,35345.709,10352.517,30229.34964,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,33324.493440000006,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,35345.709,35345.709,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24525.408,24525.408,24525.408,24525.408,106272.76505999999,106272.76505999999 +22935600.0,37594.476,101013.39300000001,294959.10756,97207.85151000001,97207.85151000001,97207.85151000001,116582.86499999999,85032.53744,41547.76064,52022.56311,79272.47712000001,19534.38,19534.38,19534.38,50828.393000000004,37594.476,37594.476,11445.71246,30783.90825,45757.8093,79810.1325,22650.8757,28807.65735,21633.3,21633.3,21633.3,21633.3,113034.05784,113034.05784 +22939200.0,51789.98700000001,19651.497000000003,57382.37124000001,83164.73572,83164.73572,83164.73572,147625.037,92766.13991999999,75183.31328,41467.77663000001,63188.99296000001,40459.731,40459.731,40459.731,32188.803499999998,51789.98700000001,51789.98700000001,17905.552079999998,28208.983049999995,41930.389619999994,73134.40049999999,20756.23938,26398.03599,23262.809999999998,23262.809999999998,23262.809999999998,23262.809999999998,155715.22758,155715.22758 +22942800.0,27315.174,9255.765,27026.833799999997,65964.37034000001,65964.37034000001,65964.37034000001,57965.20799999999,43179.640159999995,29651.818880000003,32641.83069,49739.93248,12770.112,12770.112,12770.112,20705.7725,27315.174,27315.174,14800.514299999999,20835.0144,30969.57696,54016.704000000005,15330.45504,19497.45792,15416.412,15416.412,15416.412,15416.412,82127.62315999999,82127.62315999999 +22946400.0,58210.929000000004,52484.64,153255.1488,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,167377.62952,17311.712,75378.2358,114862.0736,26623.095,26623.095,26623.095,17829.9695,58210.929000000004,58210.929000000004,182127.42249,17885.4318,26585.25912,46369.638,13160.14488,16737.23124,16735.311,16735.311,16735.311,16735.311,175020.85986,175020.85986 +22950000.0,10401.630000000001,14011.983,40914.990359999996,174119.13398,174119.13398,174119.13398,84551.94299999998,44960.10432,42234.02752,22575.89817,34401.36864,16130.571,16130.571,16130.571,57451.7475,10401.630000000001,10401.630000000001,41358.91968,30796.3782,45776.34488,79842.462,22660.05112,28819.32676,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,31274.2342,31274.2342 +22953600.0,10902.189,3603.9120000000003,10523.42304,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,28903.76016,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,10902.189,10902.189,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,32779.24826,32779.24826 +22957200.0,208752.321,51711.186,150996.66312,85985.48992,85985.48992,85985.48992,70846.3665,228569.46487999998,57561.69536,208861.9512,318265.83040000004,73557.717,73557.717,73557.717,39084.57,208752.321,208752.321,9502.102089999998,28106.724599999998,41778.39064,72869.286,20680.997359999998,26302.34228,141959.271,141959.271,141959.271,141959.271,627648.64514,627648.64514 +22960800.0,135235.842,62636.493,182898.55956000002,148242.63157,148242.63157,148242.63157,136025.46649999998,232350.89408,124944.36416000001,172173.32916000002,262359.35872,98845.023,98845.023,98845.023,69726.1425,135235.842,135235.842,24821.668299999994,53972.36145,80225.58417999999,139928.3445,39712.99682,50507.46911,78920.949,78920.949,78920.949,78920.949,406609.09828,406609.09828 +22964400.0,213859.512,121633.76999999999,355170.60839999997,153077.5026,153077.5026,153077.5026,181270.873,290942.45192,406677.39456,238387.38861000002,363256.97312000004,182571.37199999997,182571.37199999997,182571.37199999997,105971.82400000001,213859.512,213859.512,63934.20253999999,91502.22915,136010.72086,237228.0015,67327.56614,85628.01197,108939.762,108939.762,108939.762,108939.762,643004.26608,643004.26608 +22968000.0,286954.725,184238.01,537974.9892000001,139966.34762000002,139966.34762000002,139966.34762000002,227498.39699999997,430934.00879999995,527837.73824,331961.51436000003,505846.11712000007,241437.90300000002,241437.90300000002,241437.90300000002,127611.6765,286954.725,286954.725,105879.42755,140781.29265,209260.09425999998,364988.53650000005,103587.22274000001,131743.48127000002,170344.16999999998,170344.16999999998,170344.16999999998,170344.16999999998,862777.2065,862777.2065 +22971600.0,209995.65899999999,107036.74799999999,312547.30415999994,114921.43168000002,114921.43168000002,114921.43168000002,150442.5475,270844.65255999996,223446.64,170091.60399,259187.20608,126112.494,126112.494,126112.494,71446.94549999999,209995.65899999999,209995.65899999999,78099.17154,46476.36225,69083.3829,120494.2725,34197.4221,43492.69455,165126.978,165126.978,165126.978,165126.978,631386.94806,631386.94806 +22975200.0,23994.849000000002,20451.881999999998,59719.49544,75046.25788,75046.25788,75046.25788,66015.9325,79475.69567999999,61061.69344,52015.25532,79261.34144,21850.808999999997,21850.808999999997,21850.808999999997,23581.572,23994.849000000002,23994.849000000002,35418.36285,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,18042.483,18042.483,18042.483,18042.483,72144.51266,72144.51266 +22978800.0,22678.62,27574.065,80516.2698,37169.136620000005,37169.136620000005,37169.136620000005,32202.8945,56215.968479999996,141058.01408,35980.42812,54827.31904,25725.375,25725.375,25725.375,11503.205,22678.62,22678.62,59773.89886,11716.0101,17414.90884,30374.841,8620.66916,10963.87118,10573.377,10573.377,10573.377,10573.377,68187.0508,68187.0508 +22982400.0,24626.082000000002,33386.361000000004,97488.17412,13374.74039,13374.74039,13374.74039,11271.011499999999,44755.716,195480.93824000002,30227.86431,46061.50752,32887.578,32887.578,32887.578,13855.303000000002,24626.082000000002,24626.082000000002,59611.76819,5005.7271,7440.611639999999,12977.811,3683.22636,4684.3717799999995,10526.463,10526.463,10526.463,10526.463,74042.41988,74042.41988 +22986000.0,28195.212,33101.214,96655.54487999999,7888.254220000001,7888.254220000001,7888.254220000001,6440.577499999999,42034.6264,213750.93888,30953.09847,47166.626240000005,33166.143,33166.143,33166.143,28354.0075,28195.212,28195.212,59201.172159999995,3292.87275,4894.5911,8537.077500000001,2422.9039000000002,3081.47845,14596.278000000002,14596.278000000002,14596.278000000002,14596.278000000002,84773.60408,84773.60408 +22989600.0,30219.948000000004,32326.929,94394.63268,2460.4371000000006,2460.4371000000006,2460.4371000000006,2633.785,38411.215919999995,209205.96032000004,31861.51521,48550.880320000004,31871.316000000003,31871.316000000003,31871.316000000003,26235.912500000002,30219.948000000004,30219.948000000004,57885.66601999999,7917.340949999999,11768.491979999999,20526.4395,5825.59902,7409.067209999999,21664.932,21664.932,21664.932,21664.932,90861.31032,90861.31032 +22993200.0,32882.685,32673.597,95406.90324,2776.4481800000003,2776.4481800000003,2776.4481800000003,4738.474999999999,43045.37856,212147.86880000003,37768.35405,57551.77760000001,32448.78,32448.78,32448.78,29214.3495,32882.685,32882.685,58548.609079999995,14525.005049999998,21590.254419999997,37657.4205,10687.53458,13592.53559,26574.696,26574.696,26574.696,26574.696,98867.2729,98867.2729 +22996800.0,36051.273,32608.068,95215.55855999999,4591.75772,4591.75772,4591.75772,6305.7294999999995,47872.55904,209597.24864000003,41897.66112,63844.05504,32690.540999999997,32690.540999999997,32690.540999999997,29702.151500000007,36051.273,36051.273,58081.09151,15017.881949999999,22322.876379999998,38935.2495,11050.19462,14053.77101,26789.724,26789.724,26789.724,26789.724,108394.16082,108394.16082 +23000400.0,61742.754,40944.51,119557.96919999999,18392.33,18392.33,18392.33,14282.366,264739.83776,207016.54528,64773.159360000005,98701.95712,34171.86,34171.86,34171.86,31805.756500000003,61742.754,61742.754,126181.2591,17536.726799999997,26066.937119999995,45465.587999999996,12903.566879999998,16410.912239999998,60359.29500000001,60359.29500000001,60359.29500000001,60359.29500000001,185639.88036,185639.88036 +23004000.0,255533.74800000002,121155.237,353773.29204,112527.52687000002,112527.52687000002,112527.52687000002,108280.45199999999,984952.6518399998,351139.09632,423694.63248000003,645629.91616,159302.256,159302.256,159302.256,55597.1395,255533.74800000002,255533.74800000002,999977.8841,86075.73539999999,127944.67335999999,223159.314,63334.73864,80549.88572,271306.983,271306.983,271306.983,271306.983,768304.80232,768304.80232 +23007600.0,298365.63,379306.716,1107575.61072,185126.26176000002,185126.26176000002,185126.26176000002,256331.992,1648507.48536,678356.3801600001,1141348.58082,1739197.8374400001,410706.186,410706.186,410706.186,388121.25800000003,298365.63,298365.63,412748.37993999996,472929.02595,702971.0459799999,1226112.2895,347982.34502,442568.15021,405868.95900000003,405868.95900000003,405868.95900000003,405868.95900000003,897085.9942,897085.9942 +23011200.0,726254.943,135817.584,396587.34527999995,150571.31463,150571.31463,150571.31463,128017.3195,573257.9332,685524.13504,477339.22068,727374.05056,347466.294,347466.294,347466.294,134836.618,726254.943,726254.943,229585.59533,150877.82924999998,224267.78569999995,391164.74249999993,111016.2793,141191.84514999998,700817.4299999999,700817.4299999999,700817.4299999999,700817.4299999999,2183606.52862,2183606.52862 +23014800.0,358497.93,143734.05299999999,419703.43476,165122.43968,165122.43968,165122.43968,145310.2315,266127.05383999995,1605326.8422400001,101726.07900000001,155011.16800000003,334286.301,334286.301,334286.301,285819.667,358497.93,358497.93,133250.04471999998,431326.65644999995,641132.4621799999,1118254.2945,317371.21882,403636.55011,100660.329,100660.329,100660.329,100660.329,1077883.7762,1077883.7762 +23018400.0,35682.165,11051.973,32271.76116,111622.68447000001,111622.68447000001,111622.68447000001,98218.8235,65301.09296000001,36488.0384,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,35682.165,35682.165,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24620.754,24620.754,24620.754,24620.754,107284.3761,107284.3761 +23022000.0,42834.246,123677.547,361138.43724,97992.76729,97992.76729,97992.76729,123463.72149999999,115264.09168,93608.78912000003,61873.86009,94283.97728,23573.057999999997,23573.057999999997,23573.057999999997,113915.753,42834.246,42834.246,11445.71246,31555.83825,46905.2213,81811.43250000001,23218.8637,29530.03135,23010.600000000002,23010.600000000002,23010.600000000002,23010.600000000002,128788.29963999998,128788.29963999998 +23025600.0,68807.64600000001,28233.947999999997,82443.12816,84125.52841000001,84125.52841000001,84125.52841000001,158488.3405,108843.03504,149444.56832000002,47757.84216,72773.85472,59469.49800000001,59469.49800000001,59469.49800000001,40168.9855,68807.64600000001,68807.64600000001,41846.09572,42808.4271,63631.291639999996,110984.811,31498.54636,40060.23178,27358.299,27358.299,27358.299,27358.299,206881.65564,206881.65564 +23029200.0,29971.497,10112.973,29529.88116,65997.17047000001,65997.17047000001,65997.17047000001,57965.20799999999,46557.2684,40522.070400000004,33426.37725,50935.432,17257.698,17257.698,17257.698,20705.7725,29971.497,29971.497,16148.00694,21475.27485,31921.27274,55676.6385,15801.56026,20096.61523,15639.098999999998,15639.098999999998,15639.098999999998,15639.098999999998,90114.30098,90114.30098 +23032800.0,68529.237,60588.189000000006,176917.51188,56724.84356000001,56724.84356000001,56724.84356000001,52390.960999999996,190002.60127999997,19960.30656,107642.29287,164026.35104,33244.593,33244.593,33244.593,17829.9695,68529.237,68529.237,205215.57640999998,20697.067349999998,30764.529739999994,53659.0635,15228.953259999998,19368.366729999998,19906.115999999998,19906.115999999998,19906.115999999998,19906.115999999998,206044.57257999998,206044.57257999998 +23036400.0,13589.684999999998,64757.301,189091.31892,185741.03933000003,185741.03933000003,185741.03933000003,106120.70700000001,93732.16936,41583.000960000005,24754.967160000004,37721.85472,26596.734000000004,26596.734000000004,26596.734000000004,133120.8655,13589.684999999998,13589.684999999998,105981.25043999997,49127.326199999996,73023.82807999999,127367.14199999999,36148.00792,45973.47316,15923.003999999999,15923.003999999999,15923.003999999999,15923.003999999999,40859.652899999994,40859.652899999994 +23040000.0,15291.636000000002,5876.064,17158.10688,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,30047.681839999997,16839.38944,24439.466730000004,37241.09216000001,7768.293,7768.293,7768.293,15529.3285,15291.636000000002,15291.636000000002,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11153.604,11153.604,11153.604,11153.604,45976.85224,45976.85224 +23043600.0,448875.333,189132.006,552265.4575199999,100611.8245,100611.8245,100611.8245,231605.6645,545917.8213600001,447561.74720000004,494736.68748,753884.4761600001,324627.912,324627.912,324627.912,96910.1805,448875.333,448875.333,29386.10337,68563.2438,101913.75992,177756.558,50449.00408,64161.65284,265325.44499999995,265325.44499999995,265325.44499999995,265325.44499999995,1349618.50122,1349618.50122 +23047200.0,265703.454,166587.252,486434.77584,153670.87197,153670.87197,153670.87197,242177.12050000002,414564.9852,476396.12992000004,324481.27404,494447.65567999997,239958.375,239958.375,239958.375,122452.45599999999,265703.454,265703.454,93518.52601,145914.10470000003,216889.60748000004,378295.82700000005,107363.95852000001,136546.77946000002,169147.56,169147.56,169147.56,169147.56,798881.7183599999,798881.7183599999 +23050800.0,297741.18,195875.997,571957.91124,156348.08541,156348.08541,156348.08541,251759.69,556341.176,497509.52064000006,385085.28849,586796.63008,270588.74700000003,270588.74700000003,270588.74700000003,182889.8365,297741.18,297741.18,144123.28541,179994.90735000002,267547.98574000003,466653.46350000007,132440.69726000002,168439.67873,236197.48200000002,236197.48200000002,236197.48200000002,236197.48200000002,895208.4811999999,895208.4811999999 +23054400.0,324652.389,227202.48599999998,663431.25912,142566.14152,142566.14152,142566.14152,246894.77049999998,632839.83824,573897.2064,429228.46491000004,654062.4227200001,301697.181,301697.181,301697.181,204593.18600000002,324652.389,324652.389,172751.86187999998,213990.68025,318079.9741,554790.6525,157454.8709,200253.00695,278755.941,278755.941,278755.941,278755.941,976121.51626,976121.51626 +23058000.0,227337.717,184933.131,540004.74252,117129.79333,117129.79333,117129.79333,163563.7955,325805.13784,379669.4048,239579.70792,365073.84064,166656.75,166656.75,166656.75,96895.68,227337.717,227337.717,201070.21258999998,93888.1692,139557.22928,243413.77200000003,69083.14672,87860.78056000001,208490.78399999999,208490.78399999999,208490.78399999999,208490.78399999999,683528.73578,683528.73578 +23061600.0,38625.699,38785.899,113254.82508,75599.05342,75599.05342,75599.05342,66015.9325,81700.9576,221206.92672000002,61216.30389,93281.98688000001,43508.115,43508.115,43508.115,42057.8445,38625.699,38625.699,68792.92302999999,24475.42575,36380.756299999994,63454.807499999995,18009.0787,22904.163849999997,24058.305,24058.305,24058.305,24058.305,116134.60166,116134.60166 +23065200.0,34860.852,35606.01,103969.5492,37165.66491,37165.66491,37165.66491,32202.8945,59266.743599999994,226389.71263999998,46070.89221,70203.26432,38216.361000000004,38216.361000000004,38216.361000000004,38644.452,34860.852,34860.852,63580.042239999995,12449.28285,18504.85994,32275.9185,9160.21306,11650.06963,21733.212,21733.212,21733.212,21733.212,104814.96168,104814.96168 +23068800.0,33412.676999999996,33727.083,98483.08235999999,13506.29093,13506.29093,13506.29093,13215.9965,45178.958320000005,218580.82112000004,38521.02261,58698.701120000005,34358.585999999996,34358.585999999996,34358.585999999996,31324.684999999998,33412.676999999996,33412.676999999996,60524.49454999999,14514.345449999999,21574.409779999998,37629.784499999994,10679.691219999999,13582.560309999999,25488.0,25488.0,25488.0,25488.0,100460.78218,100460.78218 +23072400.0,34915.614,33176.985,96876.79620000001,8255.4252,8255.4252,8255.4252,9569.377999999999,41790.058880000004,215867.19680000003,41134.752960000005,62681.528320000005,33710.967,33710.967,33710.967,32042.482500000002,34915.614,34915.614,59616.61186,16505.872199999998,24534.654479999994,42793.00199999999,12145.061519999997,15446.235959999998,28093.083,28093.083,28093.083,28093.083,104979.61276,104979.61276 +23076000.0,35999.268,32621.024999999998,95253.393,2760.4775000000004,2760.4775000000004,2760.4775000000004,4723.320000000001,41035.06368,213108.80127999999,42117.421290000006,64178.927680000015,33831.963,33831.963,33831.963,30157.826999999997,35999.268,35999.268,58697.026439999994,14723.2323,21884.903319999998,38171.343,10833.39068,13778.03714,26781.036,26781.036,26781.036,26781.036,108237.79912,108237.79912 +23079600.0,37157.955,34823.556000000004,101684.78352,2794.7062,2794.7062,2794.7062,4824.736000000001,46264.772,219880.55680000002,43803.902729999994,66748.80416,35290.962,35290.962,35290.962,31458.917,37157.955,37157.955,60215.93785999999,15213.22965,22613.245059999997,39441.7065,11193.93194,14236.577870000001,27647.015999999996,27647.015999999996,27647.015999999996,27647.015999999996,111721.5847,111721.5847 +23083200.0,40397.646,38685.897000000004,112962.81924000001,4710.154020000001,4710.154020000001,4710.154020000001,6685.8715,56084.5568,237290.29760000002,47855.021759999996,72921.93792,39104.318999999996,39104.318999999996,39104.318999999996,35763.161,40397.646,40397.646,64226.66016,16983.3834,25244.43656,44030.994,12496.415439999999,15893.09212,30176.061,30176.061,30176.061,30176.061,121462.25563999999,121462.25563999999 +23086800.0,69811.038,51616.71899999999,150720.81947999998,20113.085300000002,20113.085300000002,20113.085300000002,14816.501,276050.74976,244950.11136,77053.63722,117415.06624,41828.78999999999,41828.78999999999,41828.78999999999,39510.6565,69811.038,69811.038,161125.03368,20223.456299999998,30060.544919999997,52431.183,14880.469079999999,18925.16034,65650.31400000001,65650.31400000001,65650.31400000001,65650.31400000001,209898.52092,209898.52092 +23090400.0,297310.104,151399.20299999998,442085.67276,115266.80374000002,115266.80374000002,115266.80374000002,125363.707,1128015.21944,406195.63904,508199.00355,774398.4816,192525.375,192525.375,192525.375,78934.29250000001,297310.104,297310.104,1106061.0921099999,116066.77514999999,172523.94726,300913.8615,85402.21974,108615.57477,329097.672,329097.672,329097.672,329097.672,893912.37936,893912.37936 +23094000.0,327323.463,425218.89600000007,1241639.17632,187578.02569,187578.02569,187578.02569,326960.7425,1757623.9725600001,777040.4607999999,1222022.23542,1862129.12064,459391.94999999995,459391.94999999995,459391.94999999995,463607.032,327323.463,327323.463,456064.75797999994,582863.06835,866379.17814,1511126.4735,428872.08486,545444.69853,458618.154,458618.154,458618.154,458618.154,984152.5454199999,984152.5454199999 +23097600.0,769604.1390000001,153220.41,447403.5972,151726.42133000004,151726.42133000004,151726.42133000004,131536.45400000003,632642.9076,1022871.18848,576215.1698100001,878042.1635200001,382690.371,382690.371,382690.371,160835.332,769604.1390000001,769604.1390000001,244902.70844,193510.57545,287637.94178,501694.08450000006,142385.55922,181087.67431,754798.4010000001,754798.4010000001,754798.4010000001,754798.4010000001,2313943.11126,2313943.11126 +23101200.0,373162.695,149032.371,435174.52332000004,165651.85307,165651.85307,165651.85307,149728.796,275557.96472,1887471.8982400005,105854.45388,161302.02496,351829.34400000004,351829.34400000004,351829.34400000004,311360.81200000003,373162.695,373162.695,137719.7757,504929.52989999996,750537.2271599999,1309076.559,371528.39484,472514.30082,104593.176,104593.176,104593.176,104593.176,1121975.8363,1121975.8363 +23104800.0,38553.633,11564.493,33768.31956,111668.20742,111668.20742,111668.20742,98218.8235,65301.09296000001,37971.439360000004,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,38553.633,38553.633,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24658.875,24658.875,24658.875,24658.875,115917.92321999998,115917.92321999998 +23108400.0,49702.40700000001,206695.95299999998,603552.18276,98910.38542,98910.38542,98910.38542,152434.19449999998,142454.84551999997,159886.41984000002,78460.72731,119559.20352000001,33691.287,33691.287,33691.287,139712.6115,49702.40700000001,49702.40700000001,13663.16575,33632.888849999996,49992.590339999995,87196.37849999999,24747.162659999998,31473.740429999998,24963.683999999997,24963.683999999997,24963.683999999997,24963.683999999997,149438.57038,149438.57038 +23112000.0,79725.351,32516.22,94947.3624,84987.38754,84987.38754,84987.38754,165670.3125,123209.96064,159833.66272,57581.250720000004,87742.85824000002,63211.209,63211.209,63211.209,45555.3245,79725.351,79725.351,57400.60638,54008.19585,80278.84913999999,140021.2485,39739.36386,50541.00303,31727.259000000002,31727.259000000002,31727.259000000002,31727.259000000002,239707.55533999996,239707.55533999996 +23115600.0,34010.655,11289.114,32964.21288,66067.34134000001,66067.34134000001,66067.34134000001,57965.20799999999,49626.41032,51919.82784,34778.33772,52995.56224000001,20934.275999999998,20934.275999999998,20934.275999999998,20705.7725,34010.655,34010.655,18698.538299999997,22004.85285,32708.447940000002,57049.618500000004,16191.22506,20592.195630000002,16174.301999999998,16174.301999999998,16174.301999999998,16174.301999999998,102258.7027,102258.7027 +23119200.0,73614.288,65806.866,192156.04872,56724.84356000001,56724.84356000001,56724.84356000001,53676.293999999994,212194.15744,19978.7264,129678.85875,197605.88,36961.56,36961.56,36961.56,19730.578,73614.288,73614.288,224875.43649999998,25438.2525,37811.920999999995,65951.02500000001,18717.529,23805.179500000002,21439.107,21439.107,21439.107,21439.107,221333.62591999996,221333.62591999996 +23122800.0,13423.497,78437.904,229038.67967999997,199481.4855,199481.4855,199481.4855,110951.274,110836.56576000001,42357.7984,25134.20427,38299.739839999995,29178.062999999995,29178.062999999995,29178.062999999995,151526.10549999998,13423.497,13423.497,120844.06867,54028.61594999999,80309.20198,140074.1895,39754.389019999995,50560.11221,20958.537,20958.537,20958.537,20958.537,40359.98097999999,40359.98097999999 +23126400.0,13651.536,5459.706,15942.34152,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29524.896720000004,14699.44576,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,13651.536,13651.536,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10941.792,10941.792,10941.792,10941.792,41045.618239999996,41045.618239999996 +23130000.0,452704.90200000006,191165.736,558203.94912,101115.58468,101115.58468,101115.58468,257884.9035,552078.61256,437050.01344,513187.61592,782000.1766400001,342778.22099999996,342778.22099999996,342778.22099999996,93714.488,452704.90200000006,452704.90200000006,25006.987979999994,69967.49625,104001.0685,181397.2125,51482.256499999996,65475.75575,276629.505,276629.505,276629.505,276629.505,1361132.7386800002,1361132.7386800002 +23133600.0,254988.51899999997,162020.562,473100.04104,152939.08597000001,152939.08597000001,152939.08597000001,236090.939,391926.61647999997,454622.85632,312778.44003,476614.76576000004,228130.31699999998,228130.31699999998,228130.31699999998,116451.2965,254988.51899999997,254988.51899999997,89217.92425,150951.9078,224377.89752,391356.798,111070.78648,141261.16804000002,164072.43300000002,164072.43300000002,164072.43300000002,164072.43300000002,766665.4804599999,766665.4804599999 +23137200.0,286518.171,191457.054,559054.59768,155996.02227000004,155996.02227000004,155996.02227000004,250590.935,531534.1466399999,483952.86656000005,374539.48098,570726.82816,258748.80599999998,258748.80599999998,258748.80599999998,174534.86750000002,286518.171,286518.171,136423.14880999998,191252.32784999997,284281.23793999996,495839.3685,140723.93506,178974.40063,227441.337,227441.337,227441.337,227441.337,861464.63414,861464.63414 +23140800.0,301655.86799999996,208198.52699999997,607939.6988399999,141090.8235,141090.8235,141090.8235,240629.48699999996,584923.54928,523003.98272,399550.71828000003,608839.18976,284846.034,284846.034,284846.034,192150.61250000002,301655.86799999996,301655.86799999996,215216.45145000002,206289.89685,306633.37754,534825.6585,151788.61546,193046.59483000002,269024.958,269024.958,269024.958,269024.958,906978.6431199999,906978.6431199999 +23144400.0,207518.898,162958.587,475839.0740399999,115871.02780000001,115871.02780000001,115871.02780000001,172606.413,293715.6168,326080.944,215317.83062999998,328103.36096,147233.823,147233.823,147233.823,101637.95249999998,207518.898,207518.898,184300.44580999998,94431.45645,140364.78217999998,244822.2945,69482.89882,88369.19011,190454.061,190454.061,190454.061,190454.061,623940.1533199999,623940.1533199999 +23148000.0,33969.492,34663.041,101216.07972,75505.51668,75505.51668,75505.51668,66015.9325,76198.28768,183250.84992,55980.06707999999,85302.95936,38266.968,38266.968,38266.968,37392.159,33969.492,33969.492,61353.92613999999,24316.167599999997,36144.031839999996,63041.91599999999,17891.896159999997,22755.12968,21402.987,21402.987,21402.987,21402.987,102134.93928,102134.93928 +23151600.0,29981.409,31634.388,92372.41296,37073.17009,37073.17009,37073.17009,32202.8945,54905.06368,195097.77728,41051.3775,62554.48,33579.833999999995,33579.833999999995,33579.833999999995,34567.7185,29981.409,29981.409,56409.371199999994,12313.13805,18302.491619999997,31922.9505,9060.03738,11522.66499,17399.766,17399.766,17399.766,17399.766,90144.10306,90144.10306 +23155200.0,28250.946,30399.963,88767.89196,13294.357890000001,13294.357890000001,13294.357890000001,11470.473,41475.72087999999,192664.93312,32310.99501,49235.80192,30502.584000000003,30502.584000000003,30502.584000000003,27722.894500000002,28250.946,28250.946,54534.76508999999,9331.13115,13869.977659999997,24191.8215,6865.869339999999,8732.09557,19169.436,19169.436,19169.436,19169.436,84941.17764,84941.17764 +23158800.0,30603.27,30021.630000000005,87663.1596,7892.11258,7892.11258,7892.11258,9169.6325,38259.87816,191416.86656,34327.56348,52308.66816,29689.494,29689.494,29689.494,27319.0855,30603.27,30603.27,53935.36693999999,13076.627849999999,19437.357939999998,33902.3685,9621.81506,12237.14063,23743.569,23743.569,23743.569,23743.569,92013.8318,92013.8318 +23162400.0,31692.447,29642.964,86557.45487999999,2606.70883,2606.70883,2606.70883,4342.324,35044.07631999999,190164.26304,34892.76042,53169.920640000004,29168.699999999997,29168.699999999997,29168.699999999997,26901.826,31692.447,31692.447,53335.15589999999,13086.4167,19451.90828,33927.747,9629.01772,12246.30106,23700.513,23700.513,23700.513,23700.513,95288.62397999999,95288.62397999999 +23166000.0,32891.994000000006,30151.839,88043.36988,2625.8093400000002,2625.8093400000002,2625.8093400000002,4404.3895,36608.90432,194465.39904000002,37784.84850000001,57576.91200000001,30273.017999999996,30273.017999999996,30273.017999999996,27598.0425,32891.994000000006,32891.994000000006,54283.09627,13396.0149,19912.101160000002,34730.40900000001,9856.82084,12536.023820000002,24239.790000000005,24239.790000000005,24239.790000000005,24239.790000000005,98895.26196,98895.26196 +23169600.0,34076.232,31492.407000000003,91957.82844000001,4475.595850000001,4475.595850000001,4475.595850000001,6078.079,43044.6544,199339.84576,40133.46015,61155.7488,32071.902000000002,32071.902000000002,32071.902000000002,29012.13,34076.232,34076.232,55463.47027,14283.05805,21230.619619999998,37030.1505,10509.50938,13366.12099,25183.965000000004,25183.965000000004,25183.965000000004,25183.965000000004,102455.87088,102455.87088 +23173200.0,58855.458,41566.197,121373.29523999999,18443.404430000002,18443.404430000002,18443.404430000002,14164.311,240043.39463999998,204320.93824000002,64138.47804,97734.82368,34208.58,34208.58,34208.58,33142.458999999995,58855.458,58855.458,121624.01497999999,17323.6482,25750.21288,44913.162000000004,12746.783120000002,16211.512760000001,56248.488,56248.488,56248.488,56248.488,176958.74372,176958.74372 +23176800.0,246026.55,122990.466,359132.16072,112072.02875000001,112072.02875000001,112072.02875000001,112721.50749999999,944533.25848,342889.23840000003,406414.23039,619297.87488,160181.538,160181.538,160181.538,59595.35399999999,246026.55,246026.55,975996.9797499999,89421.90209999999,132918.48163999998,231834.561,65796.85636,83681.23678,269254.707,269254.707,269254.707,269254.707,739719.8269999999,739719.8269999999 +23180400.0,288383.28300000005,373656.042,1091075.64264,184810.69838000002,184810.69838000002,184810.69838000002,256128.94650000002,1567943.9612,670068.3987199999,1093205.78283,1665837.38336,386464.821,386464.821,386464.821,400086.6975,288383.28300000005,288383.28300000005,406731.25272,500880.5424,744518.7321599999,1298579.184,368549.13984,468725.24832,397789.032,397789.032,397789.032,397789.032,867072.40422,867072.40422 +23184000.0,692035.797,129952.887,379462.43004,148740.42513000002,148740.42513000002,148740.42513000002,126365.61349999998,530239.7748799999,869875.94304,494483.4699,753498.6208,332876.709,332876.709,332876.709,141267.2485,692035.797,692035.797,222811.22499999998,166976.5023,248197.17132,432902.04300000006,122861.72268,156257.02314,666205.704,666205.704,666205.704,666205.704,2080720.96298,2080720.96298 +23187600.0,339059.799,136074.378,397337.18376,163683.16151000003,163683.16151000003,163683.16151000003,146591.78799999997,254419.1912,1659866.48704,102896.04023999999,156793.96607999998,309500.27999999997,309500.27999999997,309500.27999999997,273206.808,339059.799,339059.799,125498.80668000001,452202.88769999996,672163.30468,1172377.857,332732.00132,423172.57886,95831.44499999999,95831.44499999999,95831.44499999999,95831.44499999999,1019439.79566,1019439.79566 +23191200.0,33756.072,10980.321,32062.53732,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,36687.7408,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,33756.072,33756.072,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24552.048000000003,24552.048000000003,24552.048000000003,24552.048000000003,101493.25648,101493.25648 +23194800.0,44386.002,152569.56600000002,445503.13272000005,97424.01328,97424.01328,97424.01328,138587.6555,117263.24632,113996.25536000001,66631.41492,101533.58464,26735.159999999996,26735.159999999996,26735.159999999996,115078.257,44386.002,44386.002,11445.71246,32054.8671,47646.98764,83105.211,23586.05036,29997.02378,22975.881,22975.881,22975.881,22975.881,133453.91268,133453.91268 +23198400.0,71351.87400000001,30695.901,89632.03092,83767.1527,83767.1527,83767.1527,161772.618,111256.30408,155443.45216000002,46534.91514,70910.34688,60429.513000000006,60429.513000000006,60429.513000000006,42913.24800000001,71351.87400000001,71351.87400000001,41142.926629999994,47102.281650000004,70013.76186,122117.0265,34657.97514,44078.43147,27914.559,27914.559,27914.559,27914.559,214531.30116,214531.30116 +23202000.0,29319.737999999998,10015.02,29243.8584,65986.73905999999,65986.73905999999,65986.73905999999,57965.20799999999,44806.81015999999,41300.61056000001,33258.4623,50679.56160000001,16725.327,16725.327,16725.327,20705.7725,29319.737999999998,29319.737999999998,14525.901779999997,21377.81565,31776.40746,55423.9665,15729.84954,20005.41267,15533.277,15533.277,15533.277,15533.277,88154.67891999999,88154.67891999999 +23205600.0,64145.74800000001,60376.41900000001,176299.14348,56724.84356000001,56724.84356000001,56724.84356000001,51480.996,187547.65216,16949.71264,102152.20091999999,155660.49664,32500.392,32500.392,32500.392,17829.9695,64145.74800000001,64145.74800000001,205389.25588999997,23399.78625,34781.9045,60666.1125,17217.6205,21897.57775,19749.48,19749.48,19749.48,19749.48,192864.88232,192864.88232 +23209200.0,11364.795,54595.04699999999,159417.53723999998,187481.37540000002,187481.37540000002,187481.37540000002,99836.21900000001,83915.95864,40685.194240000004,24262.93506,36972.09152,25726.821,25726.821,25726.821,120563.26800000001,11364.795,11364.795,97226.55019999998,45205.38315,67194.17446,117199.1415,33262.23254,42303.30917,13912.068,13912.068,13912.068,13912.068,34170.150299999994,34170.150299999994 +23212800.0,11922.651000000002,4852.17,14168.3364,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29369.809680000002,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,11922.651000000002,11922.651000000002,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10757.763,10757.763,10757.763,10757.763,35847.437340000004,35847.437340000004 +23216400.0,370804.833,149964.807,437897.23644,95403.07513000001,95403.07513000001,95403.07513000001,188019.363,449796.94600000005,284108.11264,415096.55628,632528.08576,243173.26499999996,243173.26499999996,243173.26499999996,74165.966,370804.833,370804.833,18834.56991,50058.40905,74407.80802,129781.0605,36833.10098,46844.782790000005,232476.327,232476.327,232476.327,232476.327,1114886.53122,1114886.53122 +23220000.0,198388.479,114875.076,335435.22192000004,149128.69499000002,149128.69499000002,149128.69499000002,213858.50149999998,303495.26327999996,376078.23231999995,234053.28954,356652.63168,179624.043,179624.043,179624.043,91846.64300000001,198388.479,198388.479,60178.775799999996,104882.6232,155899.60288000002,271917.912,77172.89312000001,98149.41776000001,118654.422,118654.422,118654.422,118654.422,596488.02686,596488.02686 +23223600.0,278923.668,185112.22499999998,540527.6969999999,155361.54997000002,155361.54997000002,155361.54997000002,249389.61250000002,432911.95256,489785.38432000007,341540.00810999994,520441.91711999994,259209.46799999996,259209.46799999996,259209.46799999996,149215.374,278923.668,278923.668,109871.86223,179106.3819,266227.26396,464349.879,131786.91804000002,167608.19442,196320.414,196320.414,196320.414,196320.414,838630.49512,838630.49512 +23227200.0,311830.323,208469.75699999998,608731.6904399999,140404.34474,140404.34474,140404.34474,247530.115,597591.2568,530720.33984,412086.07041000004,627940.6787200001,293184.576,293184.576,293184.576,190835.351,311830.323,311830.323,195360.77145,210793.07565,313326.99146,546500.5665000001,155102.06554,197260.68067,266689.314,266689.314,266689.314,266689.314,937569.8378199999,937569.8378199999 +23230800.0,213586.41299999997,165985.347,484677.21324,115757.55213000001,115757.55213000001,115757.55213000001,159741.0185,310067.65184,321976.8448,219382.34324999998,334296.904,151849.77000000002,151849.77000000002,151849.77000000002,90643.2065,213586.41299999997,213586.41299999997,187693.21779,89439.9489,132945.30676,231881.34900000002,65810.13524,83698.12502,201642.108,201642.108,201642.108,201642.108,642183.1484199999,642183.1484199999 +23234400.0,32490.888,36625.809,106947.36228,75503.96194,75503.96194,75503.96194,66015.9325,76520.87176,192167.30368000004,54769.91541,83458.91872,39071.172,39071.172,39071.172,35188.12150000001,32490.888,32490.888,65028.03982999999,24040.970099999995,35734.972839999995,62328.44099999999,17689.40516,22497.599179999997,20119.454999999998,20119.454999999998,20119.454999999998,20119.454999999998,97689.26991999999,97689.26991999999 +23238000.0,30450.108,33892.542,98966.22263999999,37095.09925,37095.09925,37095.09925,32202.8945,56804.00976,215271.44064000002,41837.305440000004,63752.084480000005,36433.68000000001,36433.68000000001,36433.68000000001,37687.1005,30450.108,30450.108,60633.28232,12377.0916,18397.55344,32088.756,9107.09456,11582.51288,17533.392,17533.392,17533.392,17533.392,91553.32471999999,91553.32471999999 +23241600.0,29554.097999999998,32713.494,95523.40247999999,13319.03023,13319.03023,13319.03023,11271.011499999999,43604.4476,213218.30848000004,33805.96695,51513.854400000004,33411.072,33411.072,33411.072,30895.7425,29554.097999999998,29554.097999999998,58864.982019999996,10468.115999999998,15560.014399999998,27139.559999999998,7702.4655999999995,9796.0888,19825.242,19825.242,19825.242,19825.242,88859.32132,88859.32132 +23245200.0,32087.07,31902.290999999997,93154.68972,7821.60797,7821.60797,7821.60797,8985.574499999999,39951.15968,208328.08576000002,35820.23151,54583.20992,32070.975000000002,32070.975000000002,32070.975000000002,29724.040500000003,32087.07,32087.07,57469.12964,13440.97395,19978.92918,34846.9695,9889.90182,12578.09661,25459.731000000003,25459.731000000003,25459.731000000003,25459.731000000003,96475.1238,96475.1238 +23248800.0,34515.926999999996,32543.301,95026.43892,2552.1871100000003,2552.1871100000003,2552.1871100000003,4656.883,37792.90008,215411.87968000004,38710.353780000005,58987.205760000004,32945.547,32945.547,32945.547,31037.006,34515.926999999996,34515.926999999996,58756.76183,14770.799550000002,21955.608220000002,38294.6655,10868.390780000002,13822.550690000002,26577.642,26577.642,26577.642,26577.642,103777.88717999999,103777.88717999999 +23252400.0,36588.714,33601.638,98116.78296,2731.0880300000003,2731.0880300000003,2731.0880300000003,4788.5915,42963.79375999999,224156.01600000003,42579.79236,64883.49312,35770.791,35770.791,35770.791,32435.7425,36588.714,36588.714,60724.61940999999,15399.86985,22890.670739999998,39925.5885,11331.26226,14411.23623,27697.179,27697.179,27697.179,27697.179,110010.06675999999,110010.06675999999 +23256000.0,37706.397000000004,35785.907999999996,104494.85135999999,4577.6918000000005,4577.6918000000005,4577.6918000000005,6444.826499999999,50905.46959999999,227506.54464000004,44788.75422,68249.53024000001,36877.172999999995,36877.172999999995,36877.172999999995,33686.736999999994,37706.397000000004,37706.397000000004,61588.65895,16191.393749999997,24067.207499999997,41977.68749999999,11913.667499999998,15151.946249999999,28479.564,28479.564,28479.564,28479.564,113370.56698,113370.56698 +23259600.0,63732.819,46865.181000000004,136846.32852,18902.61439,18902.61439,18902.61439,14571.69,259423.68576,234940.3808,70042.23051000001,106731.01792000001,39896.481,39896.481,39896.481,38289.4435,63732.819,63732.819,137127.48673,19413.1161,28856.03924,50330.301,14284.21876,18166.84198,61831.367999999995,61831.367999999995,61831.367999999995,61831.367999999995,191623.34246,191623.34246 +23263200.0,271947.315,139968.054,408706.71768,113679.14151000002,113679.14151000002,113679.14151000002,118724.36450000001,1052749.83088,395733.0937600001,459839.58006,700707.93152,183707.277,183707.277,183707.277,67273.90599999999,271947.315,271947.315,1026510.6473699999,103534.69004999999,153896.00842,268423.2705,76181.08058,96888.01858999999,302789.022,302789.022,302789.022,302789.022,817654.9271,817654.9271 +23266800.0,303377.4,397996.43100000004,1162149.57852,185743.38365,185743.38365,185743.38365,294133.1225,1659622.52376,720292.2304000001,1149805.27326,1752084.22592,431085.81000000006,431085.81000000006,431085.81000000006,431279.56200000003,303377.4,303377.4,424357.81036999996,546268.2160499999,811983.8668199999,1416250.9305,401945.50218,511199.14539,423204.879,423204.879,423204.879,423204.879,912154.716,912154.716 +23270400.0,723480.285,138429.957,404215.47444,149732.84986000002,149732.84986000002,149732.84986000002,128033.7975,573315.9535999999,968461.712,529684.22493,807137.8665600001,360669.81600000005,360669.81600000005,360669.81600000005,147267.3755,723480.285,723480.285,231412.61610999997,180349.05555,268074.39862,467571.6255,132701.28038,168771.09149000002,707373.804,707373.804,707373.804,707373.804,2175264.0568999997,2175264.0568999997 +23274000.0,347852.466,140308.71600000001,409701.45071999996,164108.08986,164108.08986,164108.08986,147064.64150000003,263162.6932,1787267.0329600002,102661.48578,156436.54976000002,328761.52499999997,328761.52499999997,328761.52499999997,292468.5645,347852.466,347852.466,130007.92674999998,485004.19409999996,720919.81444,1257418.281,356867.28356,453868.12238,99132.567,99132.567,99132.567,99132.567,1045876.41444,1045876.41444 +23277600.0,30643.605,10039.881,29316.45252,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,33419.38880000001,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,30643.605,30643.605,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24342.939,24342.939,24342.939,24342.939,92135.1057,92135.1057 +23281200.0,35559.24,157025.505,458514.4746,97102.82109,97102.82109,97102.82109,137753.959,119919.45351999998,94666.55360000001,66285.10875,101005.88,22022.16,22022.16,22022.16,120872.0975,35559.24,35559.24,11445.71246,31772.55375,47227.3515,82373.28749999999,23378.3235,29732.83425,22092.290999999997,22092.290999999997,22092.290999999997,22092.290999999997,106914.78159999999,106914.78159999999 +23284800.0,60767.97600000001,28822.179,84160.76268,83341.33709,83341.33709,83341.33709,153466.3305,100071.64704,118866.19776,43819.803089999994,66773.03327999999,51787.242,51787.242,51787.242,42204.7255,60767.97600000001,60767.97600000001,10782.51928,31739.376149999993,47178.03565999999,82287.27149999999,23353.911339999995,29701.786569999997,25343.64,25343.64,25343.64,25343.64,182709.04784,182709.04784 +23288400.0,23679.828,8179.251,23883.41292,65912.25399000001,65912.25399000001,65912.25399000001,57965.20799999999,43519.27704,25431.140480000005,32585.957250000003,49654.79200000001,12909.671999999999,12909.671999999999,12909.671999999999,20705.7725,23679.828,23679.828,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14887.554,14887.554,14887.554,14887.554,71197.34951999999,71197.34951999999 +23292000.0,54686.037,48176.469,140675.28948,56724.84356000001,56724.84356000001,56724.84356000001,50174.1065,169878.14232,15936.305920000003,80617.52034,122845.74528,27983.879999999997,27983.879999999997,27983.879999999997,17829.9695,54686.037,54686.037,173406.13251,18308.9403,27214.770519999995,47467.623,13471.76348,17133.55154,17696.442,17696.442,17696.442,17696.442,164422.68458,164422.68458 +23295600.0,10609.662,26613.48,77711.3616,169888.82889,169888.82889,169888.82889,89961.73550000001,58767.715599999996,37808.620160000006,22489.648859999998,34269.941119999996,18297.881999999998,18297.881999999998,18297.881999999998,98985.145,10609.662,10609.662,71550.78463,37360.670849999995,55533.63914,96860.9985,27490.07386,34962.20803,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,31899.71708,31899.71708 +23299200.0,11599.86,5538.465,16172.317799999999,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29549.94448,13880.007679999999,24439.466730000004,37241.09216000001,7658.277,7658.277,7658.277,15529.3285,11599.86,11599.86,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,10642.737,10642.737,10642.737,10642.737,34876.912399999994,34876.912399999994 +23302800.0,343072.11600000004,134611.614,393065.91288,93212.10459,93212.10459,93212.10459,145113.864,402781.75736000005,239152.64896000002,358579.61055,546407.0255999999,219808.23600000003,219808.23600000003,219808.23600000003,79968.084,343072.11600000004,343072.11600000004,27453.38284,46077.59925,68490.6537,119460.44249999999,33904.0113,43119.531149999995,214863.162,214863.162,214863.162,214863.162,1031503.49544,1031503.49544 +23306400.0,205087.923,122819.91,358634.1372,149635.49546,149635.49546,149635.49546,228140.12550000002,319817.16391999996,387098.75840000005,241053.96882,367320.33344,196512.36000000002,196512.36000000002,196512.36000000002,97688.577,205087.923,205087.923,58274.184149999994,98237.69505,146022.45042,254690.3205,72283.53858000001,91931.07759,120270.552,120270.552,120270.552,120270.552,616631.02182,616631.02182 +23310000.0,249344.664,163804.278,478308.49176,154231.61215000003,154231.61215000003,154231.61215000003,240937.8825,382986.73864,459081.17568000004,312500.32863,476190.97696,232889.26799999998,232889.26799999998,232889.26799999998,134056.4995,249344.664,249344.664,95729.80325999999,167635.27529999998,249176.38452,434609.973,123346.44948,156873.50454,168539.715,168539.715,168539.715,168539.715,749696.2897599998,749696.2897599998 +23313600.0,274626.615,182897.43000000002,534060.4956,138208.73033000002,138208.73033000002,138208.73033000002,230263.9395,483401.47400000005,466008.50432,356735.98023,543597.68416,255226.53600000002,255226.53600000002,255226.53600000002,166718.24049999999,274626.615,274626.615,124252.99744,184460.63175,274185.92669999995,478231.2675,135726.5883,172618.71465,220193.283,220193.283,220193.283,220193.283,825710.6891,825710.6891 +23317200.0,192475.449,136027.383,397199.95836,113922.01876000002,113922.01876000002,113922.01876000002,145829.60349999997,272842.32967999997,251847.72672000004,188267.56536,286883.90912,127926.738,127926.738,127926.738,73674.272,192475.449,192475.449,146552.84527,75825.072,112707.8848,196583.52000000002,55792.275200000004,70957.2896,175019.601,175019.601,175019.601,175019.601,578709.51666,578709.51666 +23320800.0,24486.915,25461.405,74347.3026,75105.17113,75105.17113,75105.17113,66015.9325,74493.11864,136255.95200000002,51605.26077,78636.58784,28265.154000000002,28265.154000000002,28265.154000000002,23581.572,24486.915,24486.915,57623.126599999996,23455.514249999997,34864.7397,60810.5925,17258.6253,21949.72815,17882.940000000002,17882.940000000002,17882.940000000002,17882.940000000002,73623.9911,73623.9911 +23324400.0,25206.761999999995,33169.644,96855.36047999999,37075.12369,37075.12369,37075.12369,32202.8945,53400.95416,189056.89664000002,36291.398010000004,55301.17792,34015.539,34015.539,34015.539,33473.454000000005,25206.761999999995,25206.761999999995,59340.95557,12178.61325,18102.5313,31574.1825,8961.0537,11396.77635,12876.326999999997,12876.326999999997,12876.326999999997,12876.326999999997,75788.33107999999,75788.33107999999 +23328000.0,25191.144,31489.625999999997,91949.70791999999,13288.456390000001,13288.456390000001,13288.456390000001,11271.011499999999,42240.2236,203678.08256,29916.817140000003,45587.530880000006,31987.815,31987.815,31987.815,29705.1265,25191.144,25191.144,56644.61867999999,4914.059399999999,7304.35496,12740.153999999999,3615.77704,4598.58892,12962.232,12962.232,12962.232,12962.232,75741.37296000001,75741.37296000001 +23331600.0,28343.324999999997,32118.432,93785.82144,7820.191610000001,7820.191610000001,7820.191610000001,6440.577499999999,40068.730559999996,210668.98304,31531.84839,48048.53088,32367.011999999995,32367.011999999995,32367.011999999995,29223.414500000003,28343.324999999997,28343.324999999997,57908.196059999995,10570.973849999998,15712.904339999997,27406.228499999997,7778.148659999999,9892.343429999999,20422.875,20422.875,20422.875,20422.875,85218.93049999999,85218.93049999999 +23335200.0,31838.58,32033.163,93536.83596,2337.6818300000004,2337.6818300000004,2337.6818300000004,4262.8985,37164.18904,211755.45984,34213.69623,52135.156160000006,31892.031,31892.031,31892.031,29027.8695,31838.58,31838.58,57852.900299999994,12124.12455,18021.538220000002,31432.915500000003,8920.960780000001,11345.78569,25061.183999999997,25061.183999999997,25061.183999999997,25061.183999999997,95727.9972,95727.9972 +23338800.0,35262.021,33326.598,97313.66616,2563.24123,2563.24123,2563.24123,4738.443499999999,39599.37559999999,222438.37952000005,40097.24964,61100.57088000001,34361.373,34361.373,34361.373,32314.4885,35262.021,35262.021,60253.95128999999,15238.1088,22650.22592,39506.208,11212.238080000001,14259.859840000001,27362.940000000002,27362.940000000002,27362.940000000002,27362.940000000002,106021.14313999999,106021.14313999999 +23342400.0,37234.857,35180.994000000006,102728.50248000001,4563.943340000001,4563.943340000001,4563.943340000001,6423.662,48591.57984,227760.57088,43744.38747000001,66658.11424000001,36565.263,36565.263,36565.263,33667.0565,37234.857,37234.857,61560.092359999995,16167.045149999998,24031.015259999996,41914.561499999996,11895.75174,15129.160769999999,28391.595,28391.595,28391.595,28391.595,111952.80338,111952.80338 +23346000.0,39653.748,37322.096999999994,108980.52323999998,13710.320030000003,13710.320030000003,13710.320030000003,14462.307999999999,58421.199199999995,229166.48448000004,48894.804840000004,74506.36928000001,38258.124,38258.124,38258.124,36489.1625,39653.748,39653.748,62392.66488,18968.80275,28195.603099999997,49178.377499999995,13957.291899999998,17751.05245,30254.112,30254.112,30254.112,30254.112,119225.60231999999,119225.60231999999 +23349600.0,428732.35800000007,342965.664,1001459.73888,110703.82906,110703.82906,110703.82906,258013.41999999998,632314.2908,404501.9712,416492.71125,634655.56,202038.90899999999,202038.90899999999,202038.90899999999,485163.1925,428732.35800000007,428732.35800000007,725392.8291999999,118735.39305,176490.63362,307832.5005,87365.79538,111112.87399000001,417027.0510000001,417027.0510000001,417027.0510000001,417027.0510000001,1289055.2897200002,1289055.2897200002 +23353200.0,802997.2110000001,687763.5,2008269.42,217798.74435000002,217798.74435000002,217798.74435000002,582401.379,1159434.5420799998,1277623.8752000001,963574.2725699999,1468303.65344,504620.01300000004,504620.01300000004,504620.01300000004,354728.72750000004,802997.2110000001,802997.2110000001,340908.57203,477901.86704999994,710362.77522,1239004.8405,351641.37377999997,447221.74718999997,814536.753,814536.753,814536.753,814536.753,2414344.94774,2414344.94774 +23356800.0,605614.203,353214.09900000005,1031385.16908,158581.41651,158581.41651,158581.41651,327239.0275,835994.28888,1221751.2563200002,811923.5844299999,1237216.89056,658114.98,658114.98,658114.98,183683.70649999997,605614.203,605614.203,261818.45872,478144.56734999997,710723.5297399999,1239634.0635,351819.95326,447448.86673,411964.88100000005,411964.88100000005,411964.88100000005,411964.88100000005,1820880.03702,1820880.03702 +23360400.0,346958.12400000007,196824.60600000003,574727.84952,170954.79852,170954.79852,170954.79852,328039.52300000004,851992.1980000001,1355559.75232,539747.32707,822472.1174400001,557688.75,557688.75,557688.75,560682.1675,346958.12400000007,346958.12400000007,291326.8082399999,518061.58199999994,770056.9687999999,1343122.6199999999,381190.9912,484803.30759999994,327360.06,327360.06,327360.06,327360.06,1043187.42616,1043187.42616 +23364000.0,108213.09,115124.08200000001,336162.31944,120658.71125000001,120658.71125000001,120658.71125000001,279314.57749999996,627980.09392,120745.27168,362374.26624,552189.35808,95544.477,95544.477,95544.477,153524.343,108213.09,108213.09,22819.52504,174189.1473,258918.18932,451601.4930000001,128168.80468000002,163006.63414,107382.48599999999,107382.48599999999,107382.48599999999,107382.48599999999,325360.6906,325360.6906 +23367600.0,38929.254,12092.238000000001,35309.33496,97159.42665000001,97159.42665000001,97159.42665000001,85337.66500000001,93259.35712,36731.946240000005,77343.23436,117856.35712,16509.894,16509.894,16509.894,30528.057,38929.254,38929.254,11445.71246,31403.076299999997,46678.15291999999,81415.383,23106.461079999997,29387.07634,33075.495,33075.495,33075.495,33075.495,117047.29035999998,117047.29035999998 +23371200.0,85750.359,30630.975,89442.44699999999,85247.46054,85247.46054,85247.46054,80278.77900000001,129604.62048,171979.19168000002,106224.31596,161865.62432,61322.15999999999,61322.15999999999,61322.15999999999,38914.0535,85750.359,85750.359,11800.166169999999,50960.95155,75749.36502,132120.9855,37497.193980000004,47689.38429,50198.079,50198.079,50198.079,50198.079,257822.74606,257822.74606 +23374800.0,49909.850999999995,18445.446,53860.70232,66897.2062,66897.2062,66897.2062,58749.141500000005,82100.98008000001,76584.58112,62003.72913,94481.87296,29796.987,29796.987,29796.987,24111.829,49909.850999999995,49909.850999999995,7774.446289999999,26486.761049999997,39370.44482,68669.3805,19489.02418,24786.37639,31000.802999999996,31000.802999999996,31000.802999999996,31000.802999999996,150062.28533999997,150062.28533999997 +23378400.0,16127.142,4665.507,13623.280439999999,56724.84356000001,56724.84356000001,56724.84356000001,49914.4835,42849.86704,16065.473280000002,31765.60107,48404.72544,8792.835,8792.835,8792.835,17829.9695,16127.142,16127.142,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,15690.440999999999,15690.440999999999,15690.440999999999,15690.440999999999,48488.940279999995,48488.940279999995 +23382000.0,12399.557999999999,3516.6810000000005,10268.70852,43916.00818,43916.00818,43916.00818,38643.472,33484.410879999996,12337.789440000002,24439.97388,37241.86496,6807.357,6807.357,6807.357,13803.846000000001,12399.557999999999,12399.557999999999,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,12237.920999999998,12237.920999999998,12237.920999999998,12237.920999999998,37281.337719999996,37281.337719999996 +23385600.0,15620.502,4390.218,12819.43656,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,40720.4804,14245.815040000001,29267.06622,44597.43424,7658.277,7658.277,7658.277,15529.3285,15620.502,15620.502,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,14862.207000000002,14862.207000000002,14862.207000000002,14862.207000000002,46965.64268,46965.64268 +23389200.0,81279.567,29141.139,85092.12587999999,82007.10969,82007.10969,82007.10969,70846.3665,121174.37024,95757.02336,94107.05346000001,143401.22432,29324.607000000004,29324.607000000004,29324.607000000004,25307.054500000002,81279.567,81279.567,9502.102089999998,27190.55385,40416.57634,70494.0285,20006.87666,25444.98743,48947.058,48947.058,48947.058,48947.058,244380.56478,244380.56478 +23392800.0,175487.394,81483.246,237931.07831999997,147822.87212,147822.87212,147822.87212,136979.5,255928.19463999997,326458.55616000004,186583.44579,284317.63168,141564.02399999998,141564.02399999998,141564.02399999998,83626.1265,175487.394,175487.394,52430.34199,100577.1735,149499.89740000002,260755.63500000004,74004.9326,94120.36730000001,94049.781,94049.781,94049.781,94049.781,527632.09796,527632.09796 +23396400.0,233826.141,138167.247,403448.36124,152481.95578000002,152481.95578000002,152481.95578000002,171604.99649999998,371287.2213599999,394745.79903999995,245576.52966,374211.85472,186502.062,186502.062,186502.062,134145.046,233826.141,233826.141,107331.95135,117374.6457,174467.99188,304304.637,86364.55412,109839.48326000001,154466.742,154466.742,154466.742,154466.742,703037.26394,703037.26394 +23400000.0,235787.886,136829.84399999998,399543.14447999996,133658.31974,133658.31974,133658.31974,153993.182,356741.6268,225423.57952000003,214109.3115,326261.808,156770.802,156770.802,156770.802,101295.369,235787.886,235787.886,127470.90186999999,107233.6644,159394.23695999998,278013.204,78902.79504,100349.52792000001,191501.211,191501.211,191501.211,191501.211,708935.57724,708935.57724 +23403600.0,114583.845,25222.850999999995,73650.72491999998,109361.38840000003,109361.38840000003,109361.38840000003,95980.8185,188110.44712,104641.45728000002,112271.92998000002,171081.03616000002,65304.17999999999,65304.17999999999,65304.17999999999,60257.281,114583.845,114583.845,77365.91109,36253.38465,53887.747059999994,93990.25649999999,26675.32994,33926.00687,98110.644,98110.644,98110.644,98110.644,344515.4273,344515.4273 +23407200.0,28039.032,35035.274999999994,102303.003,75332.08584000001,75332.08584000001,75332.08584000001,66015.9325,76001.4096,185114.19136000003,53427.532830000004,81413.38336,37047.528,37047.528,37047.528,23658.2815,28039.032,28039.032,64403.72587999999,23781.4542,35349.22328,61655.622,17498.45272,22254.74356,19172.502,19172.502,19172.502,19172.502,84304.02287999999,84304.02287999999 +23410800.0,28729.373999999996,33493.668000000005,97801.51056,37076.499350000006,37076.499350000006,37076.499350000006,32202.8945,55112.13839999999,209720.18176,39789.30816,60631.32672,35907.051,35907.051,35907.051,35781.7005,28729.373999999996,28729.373999999996,59987.01071999999,12356.18145,18366.47218,32034.5445,9091.70882,11562.94511,16199.037,16199.037,16199.037,16199.037,86379.65115999998,86379.65115999998 +23414400.0,27471.711000000003,31816.914000000004,92905.38888,13290.09253,13290.09253,13290.09253,11271.011499999999,42463.364160000005,206661.26976,31853.497410000004,48538.66272000001,32416.896000000004,32416.896000000004,32416.896000000004,29959.4015,27471.711000000003,27471.711000000003,57296.03217,9131.3568,13573.02912,23673.888,6718.874879999999,8545.14624,17048.97,17048.97,17048.97,17048.97,82598.27774,82598.27774 +23418000.0,30454.521000000004,31961.507999999998,93327.60336,7812.04347,7812.04347,7812.04347,7916.597499999999,39795.18496,209652.9216,33747.81375,51425.240000000005,32217.575999999997,32217.575999999997,32217.575999999997,28904.645000000004,30454.521000000004,30454.521000000004,57663.809579999994,11956.19535,17771.924939999997,30997.5435,8797.39806,11188.63713,24147.912,24147.912,24147.912,24147.912,91566.59314000001,91566.59314000001 +23421600.0,36004.575000000004,36215.742,105749.96663999998,2402.06109,2402.06109,2402.06109,4783.8035,38893.79848,226756.20544000005,38956.49058,59362.27136,34450.035,34450.035,34450.035,32791.402,36004.575000000004,36004.575000000004,61200.74206999999,15411.4245,22907.8458,39955.545,11339.7642,14422.0491,27830.781000000003,27830.781000000003,27830.781000000003,27830.781000000003,108253.75550000001,108253.75550000001 +23425200.0,38711.142,38658.237,112882.05204,2753.93294,2753.93294,2753.93294,4890.046,44124.77408,233631.32096,43598.434530000006,66435.70976000001,37260.498,37260.498,37260.498,33899.215,38711.142,38711.142,71262.18462999999,16026.024150000001,23821.39886,41548.9515,11791.988140000001,14997.192970000002,28727.73,28727.73,28727.73,28727.73,116391.50028,116391.50028 +23428800.0,40913.37,41051.922,119871.61224,4632.555399999999,4632.555399999999,4632.555399999999,6637.981,55055.79407999999,243110.8256,46970.87094,71574.66047999999,39453.39,39453.39,39453.39,35911.3475,40913.37,40913.37,80477.97627999999,17248.277700000002,25638.18068,44717.757000000005,12691.325320000002,16140.980860000003,30284.388,30284.388,30284.388,30284.388,123012.8658,123012.8658 +23432400.0,44705.46,42507.636000000006,124122.29712,13761.78518,13761.78518,13761.78518,14622.842499999999,61599.65423999999,240703.52768000003,50902.89183,77566.31136,44065.233,44065.233,44065.233,39587.5305,44705.46,44705.46,80059.65058,19788.6483,29414.23772,51303.903000000006,14560.53628,18518.26594,31687.083,31687.083,31687.083,31687.083,134414.4164,134414.4164 +23436000.0,436335.357,341300.667,996597.9476399999,111029.7628,111029.7628,111029.7628,236833.12800000003,640681.9771199999,419131.83936,415112.26344,632552.0204800001,212887.866,212887.866,212887.866,475089.92650000006,436335.357,436335.357,700335.0764799999,121106.80574999998,180015.54829999997,313980.6075,89110.68669999999,113332.04784999999,419323.86299999995,419323.86299999995,419323.86299999995,419323.86299999995,1311914.97338,1311914.97338 +23439600.0,844662.2010000001,738503.058,2156428.92936,240324.81462,240324.81462,240324.81462,604130.646,1229277.54904,1358225.11296,1003812.0945300001,1529618.4297600002,542435.5109999999,542435.5109999999,542435.5109999999,386097.1135,844662.2010000001,844662.2010000001,381214.08246999996,487410.84990000003,724497.11516,1263657.759,358638.10684,456120.27682,856337.133,856337.133,856337.133,856337.133,2539617.68434,2539617.68434 +23443200.0,688899.693,396355.158,1157357.06136,162217.82313,162217.82313,162217.82313,338182.23250000004,978684.3812800001,1552021.0547200001,903222.1233000001,1376338.4736000001,740952.666,740952.666,740952.666,196610.505,688899.693,688899.693,299608.50750999997,563558.42745,837684.3785799999,1461077.4045,414667.68241999997,527379.36791,473665.989,473665.989,473665.989,473665.989,2071291.7436199998,2071291.7436199998 +23446800.0,406998.68100000004,226767.86700000003,662162.1716400001,175831.01261,175831.01261,175831.01261,433903.974,1005290.8606400001,1652467.0752000003,661015.83723,1007262.2281599999,668404.569,668404.569,668404.569,695656.5945,406998.68100000004,406998.68100000004,340187.3510099999,688823.2062,1023880.42008,1785837.942,506837.81592,644602.45716,389771.68200000003,389771.68200000003,389771.68200000003,389771.68200000003,1223709.36754,1223709.36754 +23450400.0,155010.18300000002,144467.787,421845.93804000004,126091.856,126091.856,126091.856,346101.3815,741220.9935199999,462404.83071999997,436845.56328,665669.4297600001,131113.737,131113.737,131113.737,250586.74550000002,155010.18300000002,155010.18300000002,37147.3414,238547.57175,354581.82269999996,618456.6675,175523.8923,223233.40665000002,133191.102,133191.102,133191.102,133191.102,466063.95022,466063.95022 +23454000.0,59973.956999999995,21559.170000000002,62952.7764,98211.94086,98211.94086,98211.94086,85753.15349999999,116798.00271999999,97775.77471999999,96581.60252999999,147171.96576,37780.922999999995,37780.922999999995,37780.922999999995,33185.026,59973.956999999995,59973.956999999995,11445.71246,35665.06545,53013.25778,92464.9845,26242.44322,33375.45631,42481.521,42481.521,42481.521,42481.521,180321.69738,180321.69738 +23457600.0,116889.42,55148.50199999999,161033.62584,86649.49007,86649.49007,86649.49007,88222.7605,188694.01496,210507.8176,127788.24702,194724.94784,92223.639,92223.639,92223.639,69924.477,116889.42,116889.42,38832.01022999999,65647.27620000001,97579.40808000001,170196.64200000002,48303.42792,61432.883160000005,66539.466,66539.466,66539.466,66539.466,351447.5228,351447.5228 +23461200.0,48875.48700000001,18217.641000000003,53195.51172,66832.15539000001,66832.15539000001,66832.15539000001,58836.8865,82315.69936,73303.93472,60806.574989999994,92657.63808,28192.568999999996,28192.568999999996,28192.568999999996,22507.352000000003,48875.48700000001,48875.48700000001,9367.446139999998,25521.77565,37936.07146,66167.5665,18778.985539999998,23883.340669999998,30622.107000000004,30622.107000000004,30622.107000000004,30622.107000000004,146952.29758,146952.29758 +23464800.0,26236.851000000002,7161.708,20912.18736,56888.53082,56888.53082,56888.53082,49914.4835,55732.509920000004,23208.46528,38815.51737,59147.45504,9418.971000000001,9418.971000000001,9418.971000000001,17829.9695,26236.851000000002,26236.851000000002,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,20119.490999999998,20119.490999999998,20119.490999999998,20119.490999999998,78885.46534,78885.46534 +23468400.0,14723.223,4049.625,11824.904999999999,43916.00818,43916.00818,43916.00818,38643.472,38077.60008,13559.29792,26279.50836,40044.96512,6807.357,6807.357,6807.357,13803.846000000001,14723.223,14723.223,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,13399.671000000002,13399.671000000002,13399.671000000002,13399.671000000002,44267.82382,44267.82382 +23472000.0,17440.071,4799.1900000000005,14013.6348,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,43630.76848,16360.484480000001,30185.81433,45997.43136,7743.177000000001,7743.177000000001,7743.177000000001,15529.3285,17440.071,17440.071,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,15553.728,15553.728,15553.728,15553.728,52436.48014,52436.48014 +23475600.0,110486.25,45016.212,131447.33904,83351.29230999999,83351.29230999999,83351.29230999999,72785.895,149365.11896,189573.75104000003,115819.99002000001,176487.60384000003,67754.907,67754.907,67754.907,28622.0165,110486.25,110486.25,13066.533349999998,38670.63525,57480.7961,100257.2025,28453.9489,36188.07595,58057.91700000001,58057.91700000001,58057.91700000001,58057.91700000001,332195.325,332195.325 +23479200.0,221711.12999999998,121217.181,353954.16852,150651.89656,150651.89656,150651.89656,145458.026,345382.12016,377167.09184,224248.37021999998,341711.80224,172030.725,172030.725,172030.725,115304.17500000002,221711.12999999998,221711.12999999998,94729.13566999999,115328.0511,171425.89324,298998.651,84858.66476,107924.27498,139217.481,139217.481,139217.481,139217.481,666611.4641999999,666611.4641999999 +23482800.0,261714.75600000002,157882.188,461015.98896,152950.91339000003,152950.91339000003,152950.91339000003,200058.42500000002,492105.04208000004,447665.31392000004,305604.61008,465683.21536000003,234609.30299999999,234609.30299999999,234609.30299999999,174409.3295,261714.75600000002,261714.75600000002,135962.93763,129595.01445000002,192632.58938000002,335987.07450000005,95356.33162000001,121275.33451000002,214112.619,214112.619,214112.619,214112.619,786889.03304,786889.03304 +23486400.0,259619.12400000004,145525.428,424934.24976000004,135127.91534,135127.91534,135127.91534,182966.1225,416678.3410399999,300703.63776,253765.66425,386690.536,190654.848,190654.848,190654.848,114041.18600000002,259619.12400000004,259619.12400000004,153918.11928999997,141735.5415,210678.5086,367462.515,104289.3614,132636.46970000002,224645.403,224645.403,224645.403,224645.403,780588.1661600001,780588.1661600001 +23490000.0,122148.984,53933.880000000005,157486.92960000003,110968.03311,110968.03311,110968.03311,97171.72499999999,197054.39544,207387.62944000002,129479.67438,197302.36096,85585.962,85585.962,85585.962,67575.54299999999,122148.984,122148.984,96876.54574,42924.7269,63804.16196,111286.329,31584.12004,40169.06542,106584.006,106584.006,106584.006,106584.006,367261.27856,367261.27856 +23493600.0,35088.420000000006,33131.415,96743.7318,75444.56436,75444.56436,75444.56436,66015.9325,74826.2264,195907.20576000004,56911.50843,86722.29856000001,38092.929000000004,38092.929000000004,38092.929000000004,45399.9035,35088.420000000006,35088.420000000006,58763.53431,24266.530799999997,36070.25072,62913.227999999996,17855.37328,22708.67944,23633.205,23633.205,23633.205,23633.205,105499.18280000001,105499.18280000001 +23497200.0,32804.471999999994,33229.026,97028.75591999998,37076.09642,37076.09642,37076.09642,32202.8945,55936.15072,210822.88064000002,43402.78089,66137.57088000001,35712.117,35712.117,35712.117,37042.5685,32804.471999999994,32804.471999999994,59589.97407999999,16569.38835,24629.06614,42957.673500000004,12191.79686,15505.674530000002,21760.233,21760.233,21760.233,21760.233,98632.11247999998,98632.11247999998 +23500800.0,34795.293,34212.068999999996,99899.24148,13338.78194,13338.78194,13338.78194,13397.4855,44542.853839999996,224525.25056000001,38475.14727,58628.795840000006,34969.932,34969.932,34969.932,32916.9015,34795.293,34795.293,61347.21619,14893.40115,22137.84566,38612.5215,10958.601340000001,13937.281570000001,26978.391000000003,26978.391000000003,26978.391000000003,26978.391000000003,104617.84761999999,104617.84761999999 +23504400.0,38888.562,38399.259000000005,112125.83628,8063.34562,8063.34562,8063.34562,9706.431,43725.195439999996,233641.93984,43071.723029999994,65633.10175999999,36578.03999999999,36578.03999999999,36578.03999999999,35338.632,38888.562,38888.562,63662.3702,17685.9045,26288.6778,45852.345,13013.3322,16550.5131,29780.880000000005,29780.880000000005,29780.880000000005,29780.880000000005,116924.94307999998,116924.94307999998 +23508000.0,38938.706999999995,38664.612,112900.66704,2759.02451,2759.02451,2759.02451,4892.6605,43963.1112,232868.20864,43581.7179,66410.23680000001,37169.706,37169.706,37169.706,33758.725,38938.706999999995,38938.706999999995,77619.08544,16045.7274,23850.686159999997,41600.034,11806.48584,15015.63132,28731.932999999997,28731.932999999997,28731.932999999997,28731.932999999997,117075.71238,117075.71238 +23511600.0,41476.215000000004,42858.453,125146.68276,2826.16323,2826.16323,2826.16323,5086.0705,49019.062,245672.81536000004,46917.388349999994,71493.1632,39925.959,39925.959,39925.959,35954.695,41476.215000000004,41476.215000000004,81821.39485,16961.2056,25211.47104,43973.496,12480.09696,15872.338080000001,30432.200999999997,30432.200999999997,30432.200999999997,30432.200999999997,124705.1531,124705.1531 +23515200.0,41606.892,42493.119,124079.90748,4635.18055,4635.18055,4635.18055,6628.5415,60761.386479999994,241098.77632,46958.887709999995,71556.40032,46696.734,46696.734,46696.734,37355.297,41606.892,41606.892,84251.36837,17204.375699999997,25572.923879999995,44603.937,12659.02212,16099.89726,30635.298000000003,30635.298000000003,30635.298000000003,30635.298000000003,125098.05528,125098.05528 +23518800.0,71276.046,55416.077999999994,161814.94775999998,19708.09181,19708.09181,19708.09181,14786.022999999997,278851.86487999995,250519.07200000004,74954.33085,114216.12320000002,54433.32000000001,54433.32000000001,54433.32000000001,42212.681000000004,71276.046,71276.046,175447.23195999998,21726.557099999998,32294.783639999994,56328.111,15986.454359999998,20331.765779999998,65180.174999999996,65180.174999999996,65180.174999999996,65180.174999999996,214303.31164,214303.31164 +23522400.0,304679.586,158206.584,461963.22527999996,114153.94771000001,114153.94771000001,114153.94771000001,141711.444,1181154.59416,434405.50976000004,540768.71268,824028.51456,211998.19199999998,211998.19199999998,211998.19199999998,87897.425,304679.586,304679.586,1279033.5069199998,129618.44774999998,192667.42109999998,336047.82749999996,95373.57389999999,121297.26344999998,344812.332,344812.332,344812.332,344812.332,916069.9552399999,916069.9552399999 +23526000.0,350749.29000000004,474715.02,1386167.8584,188743.69404,188743.69404,188743.69404,417407.732,1902698.7004799999,869883.0150400001,1329820.5469499999,2026393.2144,517830.7920000001,517830.7920000001,517830.7920000001,503819.7605,350749.29000000004,350749.29000000004,544751.4610199999,677288.5510499999,1006735.0808199998,1755933.2804999999,498350.58817999996,633808.2983899999,498040.42500000005,498040.42500000005,498040.42500000005,498040.42500000005,1054586.1986,1054586.1986 +23529600.0,813156.7230000001,179449.797,523993.4072399999,151583.38118000003,151583.38118000003,151583.38118000003,136507.707,681795.25008,1298306.39616,628681.02549,957990.13408,406089.00600000005,406089.00600000005,406089.00600000005,167153.0735,813156.7230000001,813156.7230000001,261787.53042,216871.0038,322361.34391999996,562258.158,159574.22008,202948.42084,809052.264,809052.264,809052.264,809052.264,2444891.21382,2444891.21382 +23533200.0,389070.5519999999,150980.364,440862.66288,166145.53592999998,166145.53592999998,166145.53592999998,154355.222,280661.25456,2226334.6988800005,108808.44324000001,165803.34208,378369.441,378369.441,378369.441,330130.10799999995,389070.5519999999,389070.5519999999,138320.87658999997,562265.25435,835762.18054,1457724.7334999999,413716.16245999996,526169.2133299999,106243.59899999999,106243.59899999999,106243.59899999999,106243.59899999999,1169805.4596799999,1169805.4596799999 +23536800.0,46130.850000000006,11407.389,33309.57588,111622.49725,111622.49725,111622.49725,98218.8235,65879.90704,36706.17152,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,46130.850000000006,46130.850000000006,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24901.926,24901.926,24901.926,24901.926,138700.089,138700.089 +23540400.0,46068.03,237647.22600000002,693929.8999200001,98739.44135000001,98739.44135000001,98739.44135000001,149971.108,155882.02168,148762.19648,79827.42894,121641.79647999999,30886.836000000003,30886.836000000003,30886.836000000003,148819.895,46068.03,46068.03,22566.33626,33382.23435,49620.012539999996,86546.5335,24562.73046,31239.177330000002,25183.586999999996,25183.586999999996,25183.586999999996,25183.586999999996,138511.2102,138511.2102 +23544000.0,71807.508,28426.428,83005.16976,84285.90676,84285.90676,84285.90676,170442.86349999998,117146.40543999999,144484.10432,58938.67875,89811.32,59866.758,59866.758,59866.758,41606.3795,71807.508,71807.508,53449.87921,45646.06365,67849.21066,118341.6465,33586.486339999996,42715.69907,30208.047,30208.047,30208.047,30208.047,215901.24071999997,215901.24071999997 +23547600.0,15943.616999999998,6570.027,19184.47884,65874.01226999999,65874.01226999999,65874.01226999999,57965.20799999999,43688.5144,18506.68416,32585.957250000003,49654.79200000001,12969.855,12969.855,12969.855,20705.7725,15943.616999999998,15943.616999999998,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,14463.548999999999,14463.548999999999,14463.548999999999,14463.548999999999,47937.14178,47937.14178 +23551200.0,52794.36,50398.728,147164.28576,56724.84356000001,56724.84356000001,56724.84356000001,50598.48850000001,192020.30375999998,15936.305920000003,83047.27599,126548.23008000001,26910.972,26910.972,26910.972,17829.9695,52794.36,52794.36,192835.45410999996,17980.9389,26727.22276,46617.249,13230.419240000001,16826.60702,17056.034999999996,17056.034999999996,17056.034999999996,17056.034999999996,158735.04239999998,158735.04239999998 +23554800.0,10762.629,27489.494999999995,80269.32539999999,237723.20957,237723.20957,237723.20957,87913.14,58942.77543999999,42344.01344,23114.91168,35222.72256,19198.161,19198.161,19198.161,109942.3465,10762.629,10762.629,67967.07489,40157.463149999996,59690.846459999986,104111.94149999999,29547.960539999996,37579.45316999999,9460.208999999999,9460.208999999999,9460.208999999999,9460.208999999999,32359.63786,32359.63786 +23558400.0,12142.665,6478.332,18916.72944,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,29927.87424,21366.220160000004,24439.466730000004,37241.09216000001,7785.746999999999,7785.746999999999,7785.746999999999,15529.3285,12142.665,12142.665,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11121.273,11121.273,11121.273,11121.273,36508.9461,36508.9461 +23562000.0,367498.242,156096.717,455802.41364,95171.74447,95171.74447,95171.74447,183019.24550000002,452434.03887999995,278149.4304,388271.66847,591652.06624,253172.05800000002,253172.05800000002,253172.05800000002,91291.7145,367498.242,367498.242,34468.09443999999,52554.594150000004,78118.18686,136252.6515,38669.80014000001,49180.71897,225557.829,225557.829,225557.829,225557.829,1104944.71428,1104944.71428 +23565600.0,237705.84,145548.55199999997,425001.77183999994,152647.84084000002,152647.84084000002,152647.84084000002,247281.40149999998,385120.87903999997,483343.23840000003,300597.5616,458053.42720000003,241726.77900000004,241726.77900000004,241726.77900000004,108607.8315,237705.84,237705.84,76921.36607999999,129014.54819999998,191769.77287999997,334482.16199999995,94929.22311999998,120732.13275999998,148459.254,148459.254,148459.254,148459.254,714702.2256,714702.2256 +23569200.0,292128.83999999997,197651.325,577141.8690000001,156327.26736000003,156327.26736000003,156327.26736000003,258942.14500000002,493226.32208,521504.70784,376779.83301,574140.6979200001,278010.546,278010.546,278010.546,176118.49850000002,292128.83999999997,292128.83999999997,122353.43224,205940.2644,306113.67695999995,533919.2039999999,151531.35504,192719.40792,215774.22000000003,215774.22000000003,215774.22000000003,215774.22000000003,878334.0456,878334.0456 +23572800.0,321021.12,226475.526,661308.53592,142018.59221,142018.59221,142018.59221,261071.05149999997,647372.9585599999,608673.30944,432396.54402,658889.97184,322730.898,322730.898,322730.898,214958.22950000002,321021.12,321021.12,170486.00074999998,218343.66885,324550.34234,566076.1785,160657.81066,204326.54443,294728.892,294728.892,294728.892,294728.892,965203.5007999999,965203.5007999999 +23576400.0,230178.86100000003,198543.37800000003,579746.66376,118796.53159000003,118796.53159000003,118796.53159000003,195277.72950000002,339012.61903999996,441488.9555200001,234562.98012000002,357429.30304,180084.003,180084.003,180084.003,112231.98700000001,230178.86100000003,230178.86100000003,221451.44280999998,96304.06305,143148.26161999998,249677.20049999998,70860.76737999999,90121.57999,217017.44100000005,217017.44100000005,217017.44100000005,217017.44100000005,692071.10874,692071.10874 +23580000.0,38394.609,39790.301999999996,116187.68183999999,75600.89713,75600.89713,75600.89713,66015.9325,80747.70024,241786.46848,60223.49256,91769.13152,44544.206999999995,44544.206999999995,44544.206999999995,52331.275499999996,38394.609,38394.609,71122.61766999999,24485.348249999995,36395.5053,63480.532499999994,18016.379699999998,22913.44935,24375.159,24375.159,24375.159,24375.159,115439.79105999999,115439.79105999999 +23583600.0,34828.842000000004,37302.363,108922.89996,37181.70885,37181.70885,37181.70885,32202.8945,60198.36376,243842.25535999998,48231.85353,73496.15776,40437.276,40437.276,40437.276,42106.057,34828.842000000004,34828.842000000004,67175.56052999999,17323.303949999998,25749.701179999996,44912.269499999995,12746.529819999998,16211.190609999998,24151.721999999998,24151.721999999998,24151.721999999998,24151.721999999998,104718.71828,104718.71828 +23587200.0,34952.07,36129.378,105497.78376,13516.23394,13516.23394,13516.23394,13311.025,46850.0568,241787.53472,41188.88760000001,62764.01920000001,37765.512,37765.512,37765.512,35370.4925,34952.07,34952.07,65413.109189999996,15613.0254,23207.50936,40478.214,11488.102640000001,14610.70772,28939.802999999996,28939.802999999996,28939.802999999996,28939.802999999996,105089.22379999999,105089.22379999999 +23590800.0,38173.125,36299.007,105993.10044,8347.94037,8347.94037,8347.94037,9931.7435,48990.44016,244927.74208,45725.32502999999,69676.68576,39562.371,39562.371,39562.371,37464.1855,38173.125,38173.125,65825.16265,18515.4822,27521.778479999997,48003.102,13623.73752,17326.83396,31495.449,31495.449,31495.449,31495.449,114773.86249999999,114773.86249999999 +23594400.0,38141.570999999996,36297.25199999999,105987.97583999998,2824.92188,2824.92188,2824.92188,4999.519,44640.066479999994,236073.32608000003,45088.21905,68705.8576,39581.19899999999,39581.19899999999,39581.19899999999,34607.146,38141.570999999996,38141.570999999996,63548.705089999996,16408.3239,24389.656759999998,42540.099,12073.285240000001,15354.95002,29437.244999999995,29437.244999999995,29437.244999999995,29437.244999999995,114678.99014,114678.99014 +23598000.0,37555.146,37061.130000000005,108218.49960000001,2789.65126,2789.65126,2789.65126,4894.512,47078.76872,228622.68031999998,44280.589920000006,67475.18464,43254.918000000005,43254.918000000005,43254.918000000005,33451.6385,37555.146,37555.146,61882.81930999999,15908.363549999998,23646.505819999995,41243.90549999999,11705.413179999998,14887.085889999998,28633.461000000003,28633.461000000003,28633.461000000003,28633.461000000003,112915.80563999999,112915.80563999999 +23601600.0,36402.573000000004,35646.123,104086.67915999999,4552.36826,4552.36826,4552.36826,6307.994,49853.925039999995,215525.81504000002,42684.05274,65042.36608000001,41780.256,41780.256,41780.256,32961.1415,36402.573000000004,36402.573000000004,71139.55849,15547.8528,23110.63552,40309.248,11440.14848,14549.71904,27381.105,27381.105,27381.105,27381.105,109450.40282,109450.40282 +23605200.0,61720.922999999995,47690.558999999994,139256.43227999998,19641.042630000004,19641.042630000004,19641.042630000004,14186.136999999999,259097.00783999998,206263.57312000004,66706.99476,101648.75392,42254.907,42254.907,42254.907,33916.603,61720.922999999995,61720.922999999995,155259.58980999998,17594.85645,26153.342179999996,45616.294499999996,12946.338819999999,16465.31011,59377.901999999995,59377.901999999995,59377.901999999995,59377.901999999995,185574.24182,185574.24182 +23608800.0,274328.148,141905.097,414362.88324,113742.36896000002,113742.36896000002,113742.36896000002,124310.7005,1086142.2851200001,367778.3808,489461.75271000003,745846.48032,186473.232,186473.232,186473.232,74554.52549999999,274328.148,274328.148,1064722.4177199998,109928.43315,163399.79446,284999.6415,80885.61254,102871.29917,314292.63,314292.63,314292.63,314292.63,824813.29832,824813.29832 +23612400.0,309538.77,420203.3520000001,1226993.7878400001,186618.77146000005,186618.77146000005,186618.77146000005,330675.401,1709407.31488,751936.93888,1186089.62913,1807374.67296,453749.88,453749.88,453749.88,455627.0285,309538.77,309538.77,446745.69082,596751.05295,887022.55278,1547132.3595000003,439090.89822000003,558441.10881,442924.61999999994,442924.61999999994,442924.61999999994,442924.61999999994,930679.9017999999,930679.9017999999 +23616000.0,746831.385,149783.01,437366.3892,150717.87940000003,150717.87940000003,150717.87940000003,129731.65100000001,597039.17824,1143125.7068800002,571317.20688,870578.6009600001,370845.126,370845.126,370845.126,155572.62350000002,746831.385,746831.385,242269.96936999998,198629.36234999998,295246.60773999995,514965.01349999994,146151.97525999998,185877.84772999998,737271.7860000001,737271.7860000001,737271.7860000001,737271.7860000001,2245473.0308999997,2245473.0308999997 +23619600.0,361202.814,144507.684,421962.43728,164593.0385,164593.0385,164593.0385,149202.03900000002,268655.74464,1968863.2307200003,105508.62104999999,160775.0416,337127.03099999996,337127.03099999996,337127.03099999996,304210.452,361202.814,361202.814,132941.10322999998,530147.5272,788021.7564799999,1374456.552,390083.85952,496113.36496,101624.103,101624.103,101624.103,101624.103,1086016.46076,1086016.46076 +23623200.0,34123.10399999999,10892.514,31806.140879999995,111619.85582000001,111619.85582000001,111619.85582000001,98218.8235,65301.09296000001,35734.52224,55215.09651,84137.28992000001,17302.032,17302.032,17302.032,35084.777,34123.10399999999,34123.10399999999,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24579.608999999997,24579.608999999997,24579.608999999997,24579.608999999997,102596.79935999998,102596.79935999998 +23626800.0,42150.009000000005,193183.94999999998,564097.134,97993.99643,97993.99643,97993.99643,150449.166,133256.1856,125287.25824000002,74223.32001,113102.20191999999,25000.515,25000.515,25000.515,128309.32800000001,42150.009000000005,42150.009000000005,11445.71246,33204.415049999996,49355.69841999999,86085.52049999998,24431.890579999996,31072.773589999997,23975.522999999997,23975.522999999997,23975.522999999997,23975.522999999997,126731.02706,126731.02706 +23630400.0,66534.23700000001,28074.189,81976.63188,83753.24958,83753.24958,83753.24958,165772.663,107924.0468,145514.29888000002,48938.564640000004,74573.05088000001,57992.043000000005,57992.043000000005,57992.043000000005,41193.033,66534.23700000001,66534.23700000001,48913.31808999999,45210.465899999996,67201.72955999999,117212.31899999999,33265.97244,42308.06562,27452.762999999995,27452.762999999995,27452.762999999995,27452.762999999995,200046.27258000002,200046.27258000002 +23634000.0,29107.341,10278.591,30013.48572,65988.50544000001,65988.50544000001,65988.50544000001,57965.20799999999,45600.5888,42417.4752,33950.32116,51733.82272,17058.579,17058.579,17058.579,20705.7725,29107.341,29107.341,16573.677509999998,21399.96915,31809.33686,55481.4015,15746.15014,20026.14397,15688.275000000001,15688.275000000001,15688.275000000001,15688.275000000001,87516.07194,87516.07194 +23637600.0,67457.109,65540.442,191378.09063999998,56724.84356000001,56724.84356000001,56724.84356000001,52273.935,214739.03671999997,18517.82528,113950.45158000001,173638.78336000003,34296.555,34296.555,34296.555,17829.9695,67457.109,67457.109,226115.10817999998,26231.590799999998,38991.15472,68007.828,19301.26928,24547.58744,20586.783,20586.783,20586.783,20586.783,202821.04105999996,202821.04105999996 +23641200.0,12417.717,68906.26800000001,201206.30256,225426.29472000003,225426.29472000003,225426.29472000003,102519.3995,97384.22504,42344.01344,24556.51695,37419.4544,27141.267,27141.267,27141.267,133085.8235,12417.717,12417.717,108601.28149,48908.20095,72698.11598,126799.0395,35986.77502,45768.41521,18800.718,18800.718,18800.718,18800.718,37335.93578,37335.93578 +23644800.0,15350.571,6064.848,17709.35616,49405.510220000004,49405.510220000004,49405.510220000004,43473.906,30159.354319999995,20748.73664,24439.466730000004,37241.09216000001,7797.933000000001,7797.933000000001,7797.933000000001,15529.3285,15350.571,15350.571,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,11220.512999999999,11220.512999999999,11220.512999999999,11220.512999999999,46154.05014,46154.05014 +23648400.0,433469.86199999996,193190.25,564115.53,99315.71265000002,99315.71265000002,99315.71265000002,263154.759,535378.1748,462748.43200000003,489716.75256,746235.05152,342446.17500000005,342446.17500000005,342446.17500000005,98260.631,433469.86199999996,433469.86199999996,30661.354619999995,85669.12349999999,127340.27739999999,222105.13499999998,63035.552599999995,80169.3773,269292.72899999993,269292.72899999993,269292.72899999993,269292.72899999993,1303299.38508,1303299.38508 +23652000.0,247163.43300000002,160080.97499999998,467436.447,152057.12918,152057.12918,152057.12918,235422.33400000003,381260.76752,445323.74208000005,300575.55129000003,458019.88768000004,228012.648,228012.648,228012.648,118139.4445,247163.43300000002,247163.43300000002,89308.26566999998,172090.20645,255798.28217999998,446159.7945,126624.39882,161042.44011,161431.04700000002,161431.04700000002,161431.04700000002,161431.04700000002,743138.05522,743138.05522 +23655600.0,279380.913,189201.03000000003,552467.0076,156304.5649,156304.5649,156304.5649,255286.5315,502477.65296,481859.17376000003,374411.43768000003,570531.7145600001,264674.19899999996,264674.19899999996,264674.19899999996,176670.9525,279380.913,279380.913,153185.62362999996,197801.5383,294016.11371999996,512818.80299999996,145542.86028,185103.16793999998,229323.67799999999,229323.67799999999,229323.67799999999,229323.67799999999,840005.27842,840005.27842 +23659200.0,356916.9,278909.325,814415.229,145437.68931999998,145437.68931999998,145437.68931999998,324575.083,711206.77488,695762.6393600001,475221.01935,724146.3152000001,360375.642,360375.642,360375.642,271404.924,356916.9,356916.9,292435.48919,270119.00655,401510.22702,700308.5355000001,198754.23198,252778.03329000002,334978.056,334978.056,334978.056,334978.056,1073130.146,1073130.146 +23662800.0,278585.55,245673.77999999997,717367.4376,121254.48192000002,121254.48192000002,121254.48192000002,234715.94650000002,406717.08223999996,561804.02112,296213.54931,451373.02752,220868.03399999999,220868.03399999999,220868.03399999999,169339.17,278585.55,278585.55,253078.91478999998,138271.7223,205529.81931999998,358482.24299999996,101740.67468,129395.01913999999,257330.658,257330.658,257330.658,257330.658,837613.8869999999,837613.8869999999 +23666400.0,49486.035,47803.347,139585.77324,75754.80418,75754.80418,75754.80418,66015.9325,90533.22176,318594.56832,73264.87896,111641.72032000001,55625.904,55625.904,55625.904,63515.053,49486.035,49486.035,85886.67697999999,30109.4982,44755.35288,78061.66200000001,22154.64312,28176.54276,35760.396,35760.396,35760.396,35760.396,148788.0119,148788.0119 +23670000.0,49257.005999999994,45715.125,133488.165,37511.75329,37511.75329,37511.75329,35539.1785,70681.12872,313513.30368,63617.86683,96941.51136,51664.41900000001,51664.41900000001,51664.41900000001,53704.3395,49257.005999999994,49257.005999999994,82692.29826,28122.738299999997,41802.193719999996,72910.803,20692.78028,26317.32794,42833.295,42833.295,42833.295,42833.295,148099.39803999997,148099.39803999997 +23673600.0,49705.662,44212.881,129101.61252,14139.159650000003,14139.159650000003,14139.159650000003,15675.268,62077.52976,308566.03712000005,61750.57917,94096.12064,54655.662,54655.662,54655.662,49096.7435,49705.662,49705.662,80334.72966999999,24687.03015,36695.28926,64003.4115,18164.77774,23102.18377,40452.320999999996,40452.320999999996,40452.320999999996,40452.320999999996,149448.35708,149448.35708 +23677200.0,50243.024999999994,45418.605,132622.3266,8679.360470000001,8679.360470000001,8679.360470000001,10913.9555,59490.853599999995,310740.66624,61930.43871,94370.19232,64715.043000000005,64715.043000000005,64715.043000000005,48273.3755,50243.024999999994,50243.024999999994,80580.06853,23273.118449999998,34593.62297999999,60337.714499999995,17124.418019999997,21779.041709999998,39971.397000000004,39971.397000000004,39971.397000000004,39971.397000000004,151064.0285,151064.0285 +23680800.0,51319.302,49654.557,144991.30644,3259.8624300000006,3259.8624300000006,3259.8624300000006,6270.8904999999995,72599.76144,320952.69952,61531.12812,93761.71904,73719.543,73719.543,73719.543,49987.8365,51319.302,51319.302,91297.01788999999,22491.7155,33432.1302,58311.855,16549.4598,21047.802900000002,40352.904,40352.904,40352.904,40352.904,154300.03468,154300.03468 +23684400.0,53981.064000000006,56298.12300000001,164390.51916,3331.67351,3331.67351,3331.67351,6461.5599999999995,83502.60344,332839.58912,63961.00452000001,97464.38784000001,77997.519,77997.519,77997.519,53016.4075,53981.064000000006,53981.064000000006,110270.50059999998,24442.87185,36332.36754,63370.4085,17985.12546,22873.69983,41940.795000000006,41940.795000000006,41940.795000000006,41940.795000000006,162303.06576,162303.06576 +23688000.0,60799.596,59026.649999999994,172357.818,5215.021240000001,5215.021240000001,5215.021240000001,8206.653,100925.2448,341355.14752,68792.40039,104826.51488,80585.05799999999,80585.05799999999,80585.05799999999,55824.321,60799.596,60799.596,114662.04021999998,31711.597199999997,47136.744479999994,82215.252,23333.47152,29675.79096,43442.88,43442.88,43442.88,43442.88,182804.11863999997,182804.11863999997 +23691600.0,98370.228,84899.742,247907.24664,24515.62872,24515.62872,24515.62872,16570.981,390401.57056,364039.904,113135.54847,172397.02624,87741.24600000001,87741.24600000001,87741.24600000001,72405.79149999999,98370.228,98370.228,280143.30330999993,38118.17475,56659.607899999995,98824.8975,28047.4471,35671.082050000005,90133.01699999999,90133.01699999999,90133.01699999999,90133.01699999999,295766.48552,295766.48552 +23695200.0,439409.658,235217.18699999998,686834.18604,122689.09587,122689.09587,122689.09587,188687.7965,1703912.4355199998,855081.8630400001,878302.9554600001,1338366.4083200002,327799.26,327799.26,327799.26,205392.9675,439409.658,439409.658,1386009.3787799997,283801.9437,421848.81508,735782.817,208822.17092,265582.55966,513785.835,513785.835,513785.835,513785.835,1321158.37172,1321158.37172 +23698800.0,448007.5739999999,578106.633,1688071.36836,199721.69283,199721.69283,199721.69283,653495.3425,2289136.0673599998,1192512.6816,1585880.9538599998,2416580.5011199997,691833.888,691833.888,691833.888,660853.7880000001,448007.5739999999,448007.5739999999,628124.46086,912993.2131499999,1357091.1464599997,2367019.4414999997,671782.66054,854381.30317,642429.9180000001,642429.9180000001,642429.9180000001,642429.9180000001,1347009.4391599998,1347009.4391599998 +23702400.0,915247.9349999998,263880.44700000004,770530.90524,159412.46981000004,159412.46981000004,159412.46981000004,159203.212,898593.37152,1703040.5248000002,803102.9128500001,1223775.8672000002,504472.086,504472.086,504472.086,214018.609,915247.9349999998,915247.9349999998,287397.78859999997,287511.8733,427363.32771999994,745401.1529999999,211551.94627999997,269054.32094,948064.284,948064.284,948064.284,948064.284,2751845.4578999993,2751845.4578999993 +23706000.0,388167.92100000003,151964.172,443735.38223999995,166582.32019000003,166582.32019000003,166582.32019000003,152871.747,290334.47288,2252495.2019200004,96426.00891000002,146934.87072000004,401000.85000000003,401000.85000000003,401000.85000000003,346077.60250000004,388167.92100000003,388167.92100000003,143401.32846,579798.1822500001,861823.4709000001,1503180.4725000001,426616.9341,542576.5705500001,110177.43599999999,110177.43599999999,110177.43599999999,110177.43599999999,1167091.54914,1167091.54914 +23709600.0,47924.769,13533.978,39519.21576,111910.755,111910.755,111910.755,98218.8235,65563.81704,64164.02752,55215.09651,84137.28992000001,26055.249000000003,26055.249000000003,26055.249000000003,35084.777,47924.769,47924.769,13173.368259999997,34897.22595,51871.92598,90474.2895,25677.46502,32656.910210000002,24832.065,24832.065,24832.065,24832.065,144093.80545999997,144093.80545999997 +23713200.0,61603.869,278229.53699999995,812430.2480399999,100478.36106,100478.36106,100478.36106,166830.552,171443.96312,192409.77536000003,89424.90942,136266.52864,41843.061,41843.061,41843.061,199976.1155,61603.869,61603.869,12410.11265,42142.303349999995,62641.15213999999,109257.8235,31008.41086,39436.87153,29097.701999999997,29097.701999999997,29097.701999999997,29097.701999999997,185222.29945999998,185222.29945999998 +23716800.0,111550.04999999999,84333.24,246253.0608,89137.21245,89137.21245,89137.21245,167699.4935,166890.3516,272677.3888,75014.10693,114307.21055999999,87816.61799999999,87816.61799999999,87816.61799999999,97472.851,111550.04999999999,111550.04999999999,47926.68608,72533.34134999999,107814.99133999998,188049.40349999996,53370.21165999999,67876.87993,46698.576,46698.576,46698.576,46698.576,335393.817,335393.817 +23720400.0,26184.933000000005,9329.582999999999,27242.38236,66001.01255,66001.01255,66001.01255,57965.20799999999,50421.596399999995,26396.152960000003,32633.74527,49727.611840000005,17709.609,17709.609,17709.609,20705.7725,26184.933000000005,26184.933000000005,8122.21891,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,15174.177,15174.177,15174.177,15174.177,78729.36522,78729.36522 +23724000.0,119743.71300000002,79198.299,231259.03308,57884.91159,57884.91159,57884.91159,58234.231999999996,256185.96639999998,106472.3328,180578.81876999998,275167.72384,68824.359,68824.359,68824.359,24775.8455,119743.71300000002,119743.71300000002,275726.95852,33348.2913,49569.55891999999,86458.53299999998,24537.755079999995,31207.413339999996,32658.372,32658.372,32658.372,32658.372,360029.43042,360029.43042 +23727600.0,34371.075,127183.40999999997,371375.5571999999,235937.34648000004,235937.34648000004,235937.34648000004,131593.9485,188922.98383999997,80187.47136000001,28661.67885,43674.9392,45001.251,45001.251,45001.251,236955.41799999998,34371.075,34371.075,184037.27147,78947.80425,117349.57569999999,204679.4925,58089.9893,73879.55015,42024.365999999995,42024.365999999995,42024.365999999995,42024.365999999995,103342.36549999999,103342.36549999999 +23731200.0,32035.68,11703.783,34175.04636,50312.19226,50312.19226,50312.19226,43473.906,45330.15592,56761.68896000001,26988.09834,41124.72128,19703.589,19703.589,19703.589,17677.7615,32035.68,32035.68,21405.76503,16687.3527,24804.410679999997,43263.507,12278.595319999999,15616.065859999999,13859.085,13859.085,13859.085,13859.085,96320.61119999998,96320.61119999998 +23734800.0,728103.783,401710.07999999996,1172993.4335999999,122821.32203000001,122821.32203000001,122821.32203000001,532335.174,1048847.30928,1037479.9712000001,908080.62996,1383741.9123200001,730175.706,730175.706,730175.706,241929.73349999997,728103.783,728103.783,113325.75007,309330.10215,459794.37405999994,801966.9315,227605.85294,289471.87337,521126.064,521126.064,521126.064,521126.064,2189165.37422,2189165.37422 +23738400.0,425431.944,345956.637,1010193.38004,169892.2192,169892.2192,169892.2192,402751.629,891525.7626399999,870983.9404800001,576407.96409,878335.9452800001,436366.27499999997,436366.27499999997,436366.27499999997,342510.2205,425431.944,425431.944,244638.39893999998,319270.81904999993,474570.4520199999,827739.1604999999,234920.25697999998,298774.42078999995,394112.28,394112.28,394112.28,394112.28,1279132.04496,1279132.04496 +23742000.0,462839.532,395441.292,1154688.57264,172006.95864,172006.95864,172006.95864,422325.24950000003,945164.7844,1252792.1139200001,657227.9145600001,1001490.1555200001,489291.0510000001,489291.0510000001,489291.0510000001,491212.43150000006,462839.532,462839.532,387673.64791999996,422703.9351,628315.47884,1095899.091,311026.59916,395567.38618000003,426118.8300000001,426118.8300000001,426118.8300000001,426118.8300000001,1391604.19288,1391604.19288 +23745600.0,483860.748,398706.24900000007,1164222.2470800001,157111.01098000002,157111.01098000002,157111.01098000002,403304.97900000005,970101.87056,1465155.8963200003,717426.74997,1093221.7142400001,497931.846,497931.846,497931.846,544326.461,483860.748,483860.748,402941.53067999997,490106.8863,728504.55692,1270647.483,360621.85708,458643.23434,454168.42199999996,454168.42199999996,454168.42199999996,454168.42199999996,1454807.98232,1454807.98232 +23749200.0,344944.06799999997,290015.628,846845.63376,142263.28468,142263.28468,142263.28468,260979.79949999996,513060.3812,898444.56,431401.7620500001,657374.1136,271693.19100000005,271693.19100000005,271693.19100000005,296213.673,344944.06799999997,344944.06799999997,295476.3279,228011.10795,338920.21478,591139.9095000001,167771.13622000001,213373.35781000002,352137.31799999997,352137.31799999997,352137.31799999997,352137.31799999997,1037131.83112,1037131.83112 +23752800.0,65358.882000000005,53245.455,155476.7286,76736.0649,76736.0649,76736.0649,71171.22249999999,104684.18415999999,359450.67648,101283.86835000002,154337.3232,80157.981,80157.981,80157.981,74627.58799999999,65358.882000000005,65358.882000000005,96201.41413999998,47046.6549,69931.07716,121972.80900000001,34617.04484,44026.37582,59357.922000000006,59357.922000000006,59357.922000000006,59357.922000000006,196512.37188,196512.37188 +23756400.0,65253.531,56947.29,166286.0868,38486.2456,38486.2456,38486.2456,37863.9905,92238.87552,382164.15616,90537.67379999999,137962.1696,91382.98500000002,91382.98500000002,91382.98500000002,69019.0095,65253.531,65253.531,99229.21774999998,37500.3837,55741.31107999999,97223.21699999999,27592.87492,35092.95166,55433.16900000001,55433.16900000001,55433.16900000001,55433.16900000001,196195.61654,196195.61654 +23760000.0,61595.178,57560.814000000006,168077.57688,14650.62434,14650.62434,14650.62434,16771.299999999996,81821.55944,363294.17792,76676.44320000001,116840.29440000001,87481.515,87481.515,87481.515,61606.387500000004,61595.178,61595.178,112639.24281999998,29622.352049999994,44031.24921999999,76798.6905,21796.19978,27720.670189999997,49014.492,49014.492,49014.492,49014.492,185196.16851999998,185196.16851999998 +23763600.0,58493.994,60788.997,177503.87124,9100.080440000002,9100.080440000002,9100.080440000002,11744.7295,86770.62071999999,347305.24544,71426.28633,108840.05536,82589.136,82589.136,82589.136,57894.382,58493.994,58493.994,117289.57486999998,27035.24445,40185.721379999995,70091.37449999999,19892.599619999997,25299.64851,46111.65,46111.65,46111.65,46111.65,175871.94196,175871.94196 +23767200.0,60496.143000000004,64040.637,186998.66004000002,3696.5368000000003,3696.5368000000003,3696.5368000000003,7153.996499999999,111347.54824,361156.66047999996,71844.41459999999,109477.2032,86141.949,86141.949,86141.949,60261.0855,60496.143000000004,60496.143000000004,126012.44733999998,26635.3515,39591.3126,69054.615,19598.3574,24925.4277,46935.465000000004,46935.465000000004,46935.465000000004,46935.465000000004,181891.73662,181891.73662 +23770800.0,64930.875,64169.778,187375.75175999998,3664.71347,3664.71347,3664.71347,7044.6984999999995,111902.93224000001,352656.44288,72513.28266000001,110496.43072,83765.448,83765.448,83765.448,58855.2545,64930.875,64930.875,131005.82858999999,33265.12049999999,49445.93219999999,86242.90499999998,24476.557799999995,31129.581899999997,45956.922,45956.922,45956.922,45956.922,195225.4975,195225.4975 +23774400.0,65163.92099999999,61877.046,180680.97432,5430.27947,5430.27947,5430.27947,8452.832499999999,108162.41807999999,338463.3632,73493.83062,111990.59904,79913.502,79913.502,79913.502,56939.592500000006,65163.92099999999,65163.92099999999,128031.67091,32500.09575,48308.7843,84259.5075,23913.650700000002,30413.669850000002,44584.953,44584.953,44584.953,44584.953,195926.18913999997,195926.18913999997 +23778000.0,107616.00300000001,92158.479,269102.75868,27807.054,27807.054,27807.054,16707.9675,420700.71696000005,356551.00416,131155.48635000002,199855.97920000003,85341.738,85341.738,85341.738,79568.055,107616.00300000001,107616.00300000001,313620.91774,40950.805499999995,60870.08619999999,106168.75499999999,30131.7038,38321.8649,96112.33499999999,96112.33499999999,96112.33499999999,96112.33499999999,323565.44902,323565.44902 +23781600.0,521356.9469999999,265596.246,775541.0383199999,125988.64487,125988.64487,125988.64487,247998.212,1920656.3267199998,1201795.47584,1102964.30034,1680707.50528,384917.736,384917.736,384917.736,286605.6375,521356.9469999999,521356.9469999999,1450513.7731499998,425514.19365,632492.70266,1103184.9464999998,313094.39434,398197.23306999996,619201.533,619201.533,619201.533,619201.533,1567546.5539799996,1567546.5539799996 +23785200.0,506304.00899999996,643616.277,1879359.5288399998,211375.75118000002,211375.75118000002,211375.75118000002,821386.5065,2465494.01088,1342678.39808,1740408.6411599999,2652051.26272,742719.912,742719.912,742719.912,729801.051,506304.00899999996,506304.00899999996,777056.7986999999,1043641.28025,1551289.0140999998,2705736.6525,767913.8309,976642.0869499999,730649.595,730649.595,730649.595,730649.595,1522287.3870599999,1522287.3870599999 +23788800.0,1099987.908,481223.559,1405172.79228,176255.56245,176255.56245,176255.56245,321212.92,1277867.4119199999,2402793.40416,1138748.4082799999,1735235.66976,681468.21,681468.21,681468.21,319965.6005,1099987.908,1099987.908,404293.2368799999,431570.5677,641495.01668,1118886.6570000001,317550.68932,403864.80286,1187095.431,1187095.431,1187095.431,1187095.431,3307296.9767199997,3307296.9767199997 +23792400.0,467525.38800000004,192927.14699999997,563347.2692399999,175830.28001000005,175830.28001000005,175830.28001000005,165538.9085,348293.41855999996,2919426.3091200003,112224.17094,171008.26048,472046.71800000005,472046.71800000005,472046.71800000005,444578.099,467525.38800000004,467525.38800000004,172274.37318,780603.57315,1160304.5704599998,2023787.0414999998,574370.03654,730490.75117,133959.663,133959.663,133959.663,133959.663,1405692.9999199999,1405692.9999199999 +23796000.0,69717.24900000001,14827.809000000001,43297.20228,112255.4433,112255.4433,112255.4433,98218.8235,66150.69616,71337.51616,55215.09651,84137.28992000001,27149.154000000002,27149.154000000002,27149.154000000002,35084.777,69717.24900000001,69717.24900000001,13173.368259999997,34897.91445,51872.94938,90476.0745,25677.97162,32657.55451,25365.021,25365.021,25365.021,25365.021,209616.52866,209616.52866 +23799600.0,74164.791,311538.90599999996,909693.60552,102743.19396000002,102743.19396000002,102743.19396000002,203159.5125,179229.68176,169188.79808,104925.76563000001,159886.88096,36419.181,36419.181,36419.181,236366.14399999997,74164.791,74164.791,11445.71246,43891.76565,65241.587459999995,113793.4665,32295.66954,41074.02267,37629.82800000001,37629.82800000001,37629.82800000001,37629.82800000001,222988.80494,222988.80494 +23803200.0,133753.41,95224.48500000002,278055.4962,92097.61649,92097.61649,92097.61649,191855.5625,200923.92104000002,286161.89759999997,103535.40666,157768.23872,94950.07199999999,94950.07199999999,94950.07199999999,99665.53099999999,133753.41,133753.41,100946.71964,84606.3792,125760.59327999999,219349.872,62253.58272,79174.85856,56240.988,56240.988,56240.988,56240.988,402151.9194,402151.9194 +23806800.0,86819.187,37526.631,109577.76252,69728.50577000002,69728.50577000002,69728.50577000002,64871.086,134220.43968,143051.14304000002,61572.90279000001,93825.37568000001,54331.293000000005,54331.293000000005,54331.293000000005,44001.6045,86819.187,86819.187,73455.87170999999,43766.1306,65054.84103999999,113467.746,32203.226959999996,40956.45308,46788.333,46788.333,46788.333,46788.333,261036.35557999997,261036.35557999997 +23810400.0,127751.397,92036.73,268747.2516,66464.58962,66464.58962,66464.58962,63895.016500000005,275187.67368,67968.76352000001,245211.00491999998,373654.86464,68665.47,68665.47,68665.47,74332.78300000001,127751.397,127751.397,310808.34719999996,77312.05785,114918.16993999999,200438.6685,56886.403060000004,72348.81463000001,34128.921,34128.921,34128.921,34128.921,384105.86698,384105.86698 +23814000.0,37575.078,188263.491,549729.39372,254901.40973000004,254901.40973000004,254901.40973000004,164304.69999999998,246474.6888,75818.13952,30774.19044,46894.00448,63357.825000000004,63357.825000000004,63357.825000000004,286353.8615,37575.078,37575.078,237923.96120999998,99559.99575,147987.9443,258118.5075,73256.4907,93168.48985,59111.472,59111.472,59111.472,59111.472,112975.73452,112975.73452 +23817600.0,47157.522,18664.269,54499.66548,74818.18729000002,74818.18729000002,74818.18729000002,45805.221,59240.843199999996,89886.86080000001,34946.18022,53251.32224000001,27685.956,27685.956,27685.956,23236.3355,47157.522,47157.522,42646.17668999999,22460.41305,33385.601619999994,58230.7005,16526.42738,21018.50999,19442.648999999998,19442.648999999998,19442.648999999998,19442.648999999998,141786.94947999998,141786.94947999998 +23821200.0,907542.0510000002,572039.748,1670356.0641599998,145052.41905000003,145052.41905000003,145052.41905000003,874720.2065000001,1459515.56616,1358847.3619200003,1261289.84562,1921965.4790400001,937874.622,937874.622,937874.622,424756.4615,907542.0510000002,907542.0510000002,312811.50536999997,507336.70814999996,754115.3044599999,1315317.3915,373299.60254,474766.94417,716344.713,716344.713,716344.713,716344.713,2728676.4333400005,2728676.4333400005 +23824800.0,501721.485,399741.708,1167245.78736,184080.06826000003,184080.06826000003,184080.06826000003,435347.95849999995,986805.35096,1223545.98848,688172.84067,1048644.32864,496665.225,496665.225,496665.225,546952.7245,501721.485,501721.485,392664.66746,431260.0015499999,641033.3850199999,1118081.4855,317322.17397999996,403574.17428999994,461875.77300000004,461875.77300000004,461875.77300000004,461875.77300000004,1508509.2648999998,1508509.2648999998 +23828400.0,548599.809,445415.658,1300613.7213599999,207776.38563000003,207776.38563000003,207776.38563000003,460519.5,1087600.43968,1603589.99168,799470.9508800001,1218241.4489600002,553392.9720000001,553392.9720000001,553392.9720000001,625147.9395,548599.809,548599.809,450248.05384,559854.7794,832179.2029599999,1451475.3539999998,411942.52904,523913.48491999996,535768.8360000001,535768.8360000001,535768.8360000001,535768.8360000001,1649456.7590599998,1649456.7590599998 +23832000.0,568794.3929999999,444712.296,1298559.90432,200976.11567000003,200976.11567000003,200976.11567000003,498308.56600000005,1077546.0504,1746187.3408000001,848565.24438,1293051.8009600001,564783.5759999999,564783.5759999999,564783.5759999999,669362.19,568794.3929999999,568794.3929999999,446057.37500999996,644026.3181999999,957293.4408799998,1669697.8619999997,473876.15511999995,602681.4187599999,572986.584,572986.584,572986.584,572986.584,1710175.14162,1710175.14162 +23835600.0,386551.81500000006,316722.651,924830.14092,185324.65391000002,185324.65391000002,185324.65391000002,295466.17100000003,551085.74832,1013494.3366400001,488680.59198,744656.1401600001,296771.721,296771.721,296771.721,331136.827,386551.81500000006,386551.81500000006,323697.9591299999,275407.5492,409371.22128,714019.572,202645.55472000001,257727.06456,385986.97799999994,385986.97799999994,385986.97799999994,385986.97799999994,1162232.4571,1162232.4571 +23839200.0,74598.177,54571.59299999999,159349.05156,76915.34026,76915.34026,76915.34026,71507.1105,114252.43432,368222.8288000001,106569.30837,162391.32704,92419.176,92419.176,92419.176,79345.7105,74598.177,74598.177,98656.91432999999,48496.05269999999,72085.49067999999,125730.50699999998,35683.51532,45382.72586,61639.368,61639.368,61639.368,61639.368,224291.85218,224291.85218 +23842800.0,67228.809,57380.628,167551.43375999999,38519.73356,38519.73356,38519.73356,37777.41099999999,94924.88423999998,362374.5024,88568.62286999999,134961.71104,89230.002,89230.002,89230.002,68855.906,67228.809,67228.809,96177.6816,37088.583750000005,55129.2035,96155.58750000001,27289.871500000005,34707.58825000001,54039.789000000004,54039.789000000004,54039.789000000004,54039.789000000004,202134.61906,202134.61906 +23846400.0,63649.689000000006,61497.573,179572.91316,14793.5953,14793.5953,14793.5953,17018.5645,83252.92008,366712.03200000006,78940.23039,120289.87487999999,88706.03100000002,88706.03100000002,88706.03100000002,63254.618,63649.689000000006,63649.689000000006,124653.1221,30477.185550000002,45301.89062,79014.92550000001,22425.188380000003,28520.625490000002,50357.64,50357.64,50357.64,50357.64,191373.39826000002,191373.39826000002 +23850000.0,63565.353,65471.71200000001,191177.39904000002,9347.638190000001,9347.638190000001,9347.638190000001,12305.657,104465.23672,372318.31104000006,77658.89901,118337.36992,89917.833,89917.833,89917.833,63483.041999999994,63565.353,63565.353,126440.78264999998,29311.9884,43569.91856,75994.04400000001,21567.833440000002,27430.23112,50139.384000000005,50139.384000000005,50139.384000000005,50139.384000000005,191119.82802,191119.82802 +23853600.0,65147.31,67300.152,196516.44384000002,3872.62942,3872.62942,3872.62942,7506.191000000001,119303.09992000001,371978.69184000004,75596.81262,115195.14304,89441.583,89441.583,89441.583,62844.8275,65147.31,65147.31,134991.25991,30344.3253,45104.40452,78670.473,22327.429480000003,28396.294540000003,49179.834,49179.834,49179.834,49179.834,195876.24539999999,195876.24539999999 +23857200.0,71875.806,70425.67499999999,205642.971,3896.9598800000003,3896.9598800000003,3896.9598800000003,10514.465499999998,121060.28584,375170.69888000004,79603.89654,121301.17568,90380.07,90380.07,90380.07,63430.0275,71875.806,71875.806,142943.28178,37083.270150000004,55121.30526,96141.81150000001,27285.961740000002,34702.615770000004,49736.48700000001,49736.48700000001,49736.48700000001,49736.48700000001,216106.59003999998,216106.59003999998 +23860800.0,74228.289,77042.463,224963.99195999998,5751.341420000001,5751.341420000001,5751.341420000001,15982.372,123394.46959999998,378890.32064,90367.01541,137702.11872000003,92266.863,92266.863,92266.863,64593.14749999999,74228.289,74228.289,148392.90595999997,38055.03525,56565.7561,98661.2025,28000.9889,35611.995950000004,52231.731,52231.731,52231.731,52231.731,223179.72226,223179.72226 +23864400.0,120604.725,102382.761,298957.66212,28849.564150000002,28849.564150000002,28849.564150000002,24352.265,456420.88424,391270.59648,170111.17514999997,259217.02879999997,96020.904,96020.904,96020.904,94511.3855,120604.725,120604.725,342801.44171000004,47747.507399999995,70972.83816,123789.834,35132.73384,44682.23532,108455.44800000002,108455.44800000002,108455.44800000002,108455.44800000002,362618.20650000003,362618.20650000003 +23868000.0,588296.442,290194.995,847369.3853999999,129969.35314000002,129969.35314000002,129969.35314000002,326659.6655,2088521.71304,1505656.2067200001,1314234.25287,2002642.6710400002,455197.8329999999,455197.8329999999,455197.8329999999,403015.83349999995,588296.442,588296.442,1512294.7647599997,553680.4086,823001.4962399999,1435467.726,407399.41176,518135.49348,700793.664,700793.664,700793.664,700793.664,1768811.30228,1768811.30228 +23871600.0,578103.375,719590.344,2101203.80448,228496.98762000003,228496.98762000003,228496.98762000003,989569.8295000001,2709395.07592,1577389.92896,1900375.63296,2895810.48832,832136.2769999999,832136.2769999999,832136.2769999999,861361.046,578103.375,578103.375,931780.4438799999,1175790.3218999999,1747717.95996,3048345.279,865149.42204,1100307.48642,835043.706,835043.706,835043.706,835043.706,1738164.1475,1738164.1475 +23875200.0,1211591.334,620444.487,1811697.9020399998,192718.50488,192718.50488,192718.50488,412200.4425,1567546.54336,2855801.97312,1343885.676,2047825.7920000001,831565.9380000001,831565.9380000001,831565.9380000001,418032.9755,1211591.334,1211591.334,487175.8476,521141.18174999993,774634.5467,1351106.7674999998,383456.96829999995,487685.20464999997,1329784.0380000002,1329784.0380000002,1329784.0380000002,1329784.0380000002,3642851.27756,3642851.27756 +23878800.0,591303.8369999999,261405.93600000002,763305.3331200001,192156.91814000002,192156.91814000002,192156.91814000002,176892.884,504094.56208,3727017.10272,163671.15744,249403.66848000002,578975.73,578975.73,578975.73,616031.3635,591303.8369999999,591303.8369999999,267088.1408,1013242.06935,1506103.02654,2626923.8835,745546.0164600001,948194.43033,190886.115,190886.115,190886.115,190886.115,1777853.5365799998,1777853.5365799998 +23882400.0,165329.046,41750.835,121912.43819999999,118632.48617000002,118632.48617000002,118632.48617000002,98765.2015,224292.33063999997,232344.36928,107854.20429000001,164349.26368000003,80322.40800000001,80322.40800000001,80322.40800000001,54487.825000000004,165329.046,165329.046,95242.19432,59354.02575,88224.9963,153880.8075,43672.8387,55543.64385,78185.952,78185.952,78185.952,78185.952,497089.33164,497089.33164 +23886000.0,201487.452,544414.0650000001,1589689.0698,113152.78469,113152.78469,113152.78469,279213.13,488098.95975999994,506364.83968000003,285484.67031,435024.25952,127893.456,127893.456,127893.456,382578.8155,201487.452,201487.452,135268.84501,98697.32549999999,146705.6542,255881.955,72621.7358,92361.2009,145010.028,145010.028,145010.028,145010.028,605805.6056799999,605805.6056799999 +23889600.0,230573.75399999996,143387.118,418690.38456,96157.42928,96157.42928,96157.42928,243349.31600000002,470259.79208000004,585144.39552,267056.41388999997,406943.10688,189034.593,189034.593,189034.593,147664.7935,230573.75399999996,230573.75399999996,207614.59758,157384.40535,233939.28894,408033.6435,115803.83406000001,147280.71513,188762.403,188762.403,188762.403,188762.403,693258.4203599999,693258.4203599999 +23893200.0,116830.12800000001,60494.358,176643.52536,72090.85587000001,72090.85587000001,72090.85587000001,70285.2745,221417.24608,227958.63040000002,103612.16501999999,157885.20384,91259.06999999999,91259.06999999999,91259.06999999999,61132.9915,116830.12800000001,116830.12800000001,105088.63468999998,56319.35265,83714.19826,146013.13650000002,41439.91874,52703.78927,82279.029,82279.029,82279.029,82279.029,351269.25152,351269.25152 +23896800.0,177767.247,125699.427,367042.32684,160543.2257,160543.2257,160543.2257,104875.001,368663.78239999997,95799.58592000001,358004.47347,545530.62624,94676.595,94676.595,94676.595,260761.39600000004,177767.247,177767.247,410935.62080999993,166268.6919,247145.06796,431066.979,122340.91404,155594.65242,56234.361000000004,56234.361000000004,56234.361000000004,56234.361000000004,534486.85598,534486.85598 +23900400.0,47665.197,273492.00299999997,798596.6487599999,257306.18144,257306.18144,257306.18144,236533.92699999997,350858.878,82260.5248,39756.86988,60581.89696,101703.30900000001,101703.30900000001,101703.30900000001,384649.2685,47665.197,47665.197,327408.3065499999,135582.13754999998,201531.96741999997,351509.24549999996,99761.67158,126878.09908999999,88496.562,88496.562,88496.562,88496.562,143313.35898,143313.35898 +23904000.0,58251.93299999999,25886.997,75590.03124,123281.27273000001,123281.27273000001,123281.27273000001,48402.025,80310.804,107015.03808000001,41835.88059,63749.91328000001,31745.499000000003,31745.499000000003,31745.499000000003,27700.561,58251.93299999999,58251.93299999999,59996.1401,28477.18215,42329.04606,73829.73150000001,20953.58094,26649.01737,25244.057999999997,25244.057999999997,25244.057999999997,25244.057999999997,175144.14521999998,175144.14521999998 +23907600.0,1145572.989,791425.317,2310961.92564,201471.68701,201471.68701,201471.68701,1318442.7234999998,1897166.6144799998,2055885.85536,1746992.9068200001,2662084.42944,1250158.074,1250158.074,1250158.074,823619.7445,1145572.989,1145572.989,606867.72406,854787.5649,1270573.1211599999,2216115.909,628954.80084,799912.31382,991187.985,991187.985,991187.985,991187.985,3444356.1202599998,3444356.1202599998 +23911200.0,626754.3600000001,451117.527,1317263.17884,237437.59732000003,237437.59732000003,237437.59732000003,512996.813,1118534.1196,1661586.38656,869158.8622499999,1324432.552,563681.913,563681.913,563681.913,690389.8609999999,626754.3600000001,626754.3600000001,457659.1767799999,629345.9227499999,935472.2110999998,1631637.5775,463074.2839,588943.4684499999,592452.924,592452.924,592452.924,592452.924,1884441.4424,1884441.4424 +23914800.0,597781.5210000001,461067.489,1346317.06788,245468.20793000003,245468.20793000003,245468.20793000003,537785.472,1143326.98696,1842544.92928,899452.29864,1370593.97888,588212.808,588212.808,588212.808,718347.2345,597781.5210000001,597781.5210000001,472662.4614399999,687829.09725,1022402.7568999999,1783260.6225,506106.3481,643672.16755,623689.173,623689.173,623689.173,623689.173,1797329.77314,1797329.77314 +23918400.0,617860.659,486851.349,1421605.93908,234712.65499000004,234712.65499000004,234712.65499000004,583205.588,1162636.29288,1984456.9036800002,925906.64334,1410905.36128,612445.455,612445.455,612445.455,753143.7374999999,617860.659,617860.659,493721.4783799999,729168.0547499999,1083849.7999,1890435.6975,536523.6551,682357.26605,652510.803,652510.803,652510.803,652510.803,1857701.04806,1857701.04806 +23922000.0,434871.801,349726.311,1021200.8281200001,200592.08675,200592.08675,200592.08675,358231.7095,607855.74008,1219006.7110400002,543602.22735,828346.2512,335365.014,335365.014,335365.014,387172.29949999996,434871.801,434871.801,358806.05293,336364.36245,499978.63258,872055.7545,247497.72842,314770.60091000004,419646.5669999999,419646.5669999999,419646.5669999999,419646.5669999999,1307514.54834,1307514.54834 +23925600.0,82278.948,61886.811,180709.48812000002,77237.86334000001,77237.86334000001,77237.86334000001,72314.46250000001,125156.82976,408791.04128,115738.67214,176363.69088,105548.29799999998,105548.29799999998,105548.29799999998,87409.7035,82278.948,82278.948,108068.32387000001,52199.59544999999,77590.50978,135332.28449999998,38408.591219999995,48848.51031,67702.125,67702.125,67702.125,67702.125,247385.37032,247385.37032 +23929200.0,74329.5,64713.94500000001,188964.7194,38833.87244000001,38833.87244000001,38833.87244000001,41157.032,103329.55528,400999.3728,97393.70907000001,148409.46144,100475.15099999998,100475.15099999998,100475.15099999998,75860.379,74329.5,74329.5,122266.54439999998,41473.6686,61647.28024,107524.326,30516.427760000002,38811.16148,59865.315,59865.315,59865.315,59865.315,223484.03,223484.03 +23932800.0,69902.562,70112.81400000001,204729.41688,15078.83718,15078.83718,15078.83718,25765.243000000002,101244.26647999999,399344.73152000003,86667.24024000001,132064.36608,98244.53400000001,98244.53400000001,98244.53400000001,69253.00200000001,69902.562,69902.562,136178.78157,34552.1862,51359.05207999999,89579.74199999998,25423.583919999997,32334.021159999997,55436.570999999996,55436.570999999996,55436.570999999996,55436.570999999996,210173.70307999998,210173.70307999998 +23936400.0,71288.094,72536.133,211805.50835999998,9642.871920000001,9642.871920000001,9642.871920000001,21428.638,130067.17184000001,406894.85312000004,85798.73862,130740.93504000001,100001.862,100001.862,100001.862,70686.238,71288.094,71288.094,145007.08443,33569.9154,49898.98536,87033.114,24700.82664,31414.80972,55461.606,55461.606,55461.606,55461.606,214339.53595999998,214339.53595999998 +23940000.0,80637.48,81700.158,238564.46136,4870.00734,4870.00734,4870.00734,18041.877,145268.13704,434635.88288,94741.47396,144367.96032,108074.51400000001,108074.51400000001,108074.51400000001,74203.885,80637.48,80637.48,165400.15206,41053.10445,61022.145379999994,106433.9745,30206.975619999997,38417.596509999996,58444.977,58444.977,58444.977,58444.977,242450.0232,242450.0232 +23943600.0,84330.67199999999,88858.42499999999,259466.601,4963.01905,4963.01905,4963.01905,17918.025999999998,143961.53048,430210.6604800001,111324.59793,169637.48256,107165.019,107165.019,107165.019,73488.64249999999,84330.67199999999,84330.67199999999,172675.93602999998,43491.62565,64646.81146,112756.0665,32001.245540000004,40699.57067,60294.054000000004,60294.054000000004,60294.054000000004,60294.054000000004,253554.22047999996,253554.22047999996 +23947200.0,91009.01699999999,93163.79699999999,272038.28724,6957.82373,6957.82373,6957.82373,21978.631500000003,150712.68728,446259.30240000004,140118.7347,213514.2624,112272.18000000002,112272.18000000002,112272.18000000002,77347.59199999999,91009.01699999999,91009.01699999999,183456.07435999997,47290.51755,70293.55941999999,122605.04550000001,34796.47958,44254.58309,68091.006,68091.006,68091.006,68091.006,273633.77778,273633.77778 +23950800.0,95397.44699999999,94669.17300000001,276433.98516000004,16809.64945,16809.64945,16809.64945,34360.081000000006,155496.78608,446869.80096,164052.64532999997,249984.98335999998,141940.509,141940.509,141940.509,86674.4515,95397.44699999999,95397.44699999999,183866.9638,51256.180349999995,76188.19893999999,132886.3935,37714.42406,47965.66013,77072.193,77072.193,77072.193,77072.193,286828.32398,286828.32398 +23954400.0,739326.0510000001,733414.7819999999,2141571.16344,226463.90866000002,226463.90866000002,226463.90866000002,740842.6515,1141327.57536,865145.2755200001,885885.1619100001,1349920.2467200002,435594.042,435594.042,435594.042,1232648.8825,739326.0510000001,739326.0510000001,1345768.4473999997,361814.7649499999,537808.6135799999,938038.2795,266224.19742,338587.15041,882262.926,882262.926,882262.926,882262.926,2222906.99334,2222906.99334 +23958000.0,1432685.652,1318793.9309999999,3850878.2785199997,780643.3789,780643.3789,780643.3789,1299143.9649999999,2166844.58104,2426112.4646400004,2100572.80566,3200872.8467200003,932121.372,932121.372,932121.372,1123535.049,1432685.652,1432685.652,731066.2963499998,1103584.3218,1640389.53512,2861144.538,812020.06888,1032736.93324,1589948.9789999998,1589948.9789999998,1589948.9789999998,1589948.9789999998,4307608.19368,4307608.19368 +23961600.0,1322783.8469999998,832797.138,2431767.6429600003,470642.79757000005,470642.79757000005,470642.79757000005,808075.6214999999,2176283.18904,4708908.4774400005,1625361.6539999999,2476741.568,1474579.8239999998,1474579.8239999998,1474579.8239999998,1176531.426,1322783.8469999998,1322783.8469999998,548318.8840999999,1831032.7384499998,2721683.2309799995,4747121.9145,1347278.41002,1713484.95771,958992.0750000001,958992.0750000001,958992.0750000001,958992.0750000001,3977170.0999799995,3977170.0999799995 +23965200.0,826591.9679999999,458783.00399999996,1339646.3716799999,247691.39252,247691.39252,247691.39252,1294407.9679999999,1872548.9412800001,3123327.1488000005,1627963.8986100003,2480706.8931200006,1187385.369,1187385.369,1187385.369,1411164.1915,826591.9679999999,826591.9679999999,801067.16911,1543140.8496,2293755.04064,4000735.5360000003,1135446.84736,1444075.01728,960751.098,960751.098,960751.098,960751.098,2485286.5171199995,2485286.5171199995 +23968800.0,440794.206,271129.284,791697.50928,242362.44384,242362.44384,242362.44384,714327.978,1349568.42072,1848134.96448,778109.33403,1185690.4137600001,353005.362,353005.362,353005.362,674462.663,440794.206,440794.206,164236.57939,639123.3152999999,950005.5205199999,1656986.373,470268.51347999997,598093.17654,439107.213,439107.213,439107.213,439107.213,1325321.2460399999,1325321.2460399999 +23972400.0,246412.79700000002,161269.707,470907.54443999997,126068.66514000003,126068.66514000003,126068.66514000003,158824.5435,668374.94176,459412.3955200001,391476.06918,596534.96256,215940.273,215940.273,215940.273,174692.9345,246412.79700000002,246412.79700000002,109110.89136999998,143682.90299999996,213573.10519999996,372511.2299999999,105722.23479999998,134458.8154,226844.397,226844.397,226844.397,226844.397,740881.14298,740881.14298 +23976000.0,359791.11,274336.52999999997,801062.6675999999,108714.87297000001,108714.87297000001,108714.87297000001,301544.6595,695100.39944,939319.58848,509689.82652,776670.21184,347457.894,347457.894,347457.894,335425.713,359791.11,359791.11,207803.97208999997,324946.7361,483007.24724,842454.501,239096.61076,304085.95798,335480.958,335480.958,335480.958,335480.958,1081771.9374,1081771.9374 +23979600.0,193280.1,119478.942,348878.51064,79621.8984,79621.8984,79621.8984,129969.11549999999,356087.40664,384874.01600000006,236803.88277,360844.01184,166718.97000000003,166718.97000000003,166718.97000000003,120285.21749999998,193280.1,193280.1,93608.29984999998,113099.2227,168112.91868,293220.207,83218.68732,105838.53186,153116.775,153116.775,153116.775,153116.775,581128.834,581128.834 +23983200.0,118515.258,52274.037,152640.18804,65753.82923999999,65753.82923999999,65753.82923999999,69629.03499999999,206430.00736,184913.31392000004,124739.84082,190079.75744000002,85667.592,85667.592,85667.592,52428.789000000004,118515.258,118515.258,40090.955579999994,44007.429599999996,65413.51263999999,114093.336,32380.775359999996,41182.26128,78180.27900000001,78180.27900000001,78180.27900000001,78180.27900000001,356335.87572,356335.87572 +23986800.0,77297.00399999999,27962.661,81650.97012,50212.216779999995,50212.216779999995,50212.216779999995,42460.5825,120153.83024,104126.31104,72164.42142,109964.83264000001,44925.638999999996,44925.638999999996,44925.638999999996,25810.9915,77297.00399999999,77297.00399999999,16116.01563,24385.6089,36247.250759999995,63221.949,17942.99124,22820.11302,42458.073000000004,42458.073000000004,42458.073000000004,42458.073000000004,232406.32535999996,232406.32535999996 +23990400.0,121991.54999999999,52868.721,154376.66532,58962.95691,58962.95691,58962.95691,59374.95549999999,212351.2476,191358.13632000005,123443.94699000001,188105.06208,87998.649,87998.649,87998.649,54205.700500000006,121991.54999999999,121991.54999999999,42525.52746,41327.082899999994,61429.39235999999,107144.28899999999,30408.569639999998,38673.98622,77687.19,77687.19,77687.19,77687.19,366787.92699999997,366787.92699999997 +23994000.0,503281.88399999996,394222.584,1151129.9452799999,114640.36562000001,114640.36562000001,114640.36562000001,366725.415,993252.76936,1291471.9283200002,700355.3999400001,1067208.2284800003,508075.635,508075.635,508075.635,436732.75100000005,503281.88399999996,503281.88399999996,320696.70191,409100.22000000003,608094.648,1060630.2000000002,301016.95200000005,382836.99600000004,465500.36100000003,465500.36100000003,465500.36100000003,465500.36100000003,1513200.86456,1513200.86456 +23997600.0,649817.8890000001,526213.263,1536542.72796,194999.43056000004,194999.43056000004,194999.43056000004,612156.0865,1282284.43752,2043891.73248,999647.72166,1523272.71872,654107.7390000001,654107.7390000001,654107.7390000001,796413.989,649817.8890000001,649817.8890000001,566256.03788,764784.08685,1136790.1735399999,1982773.5584999998,562730.01946,715686.8368299999,680494.296,680494.296,680494.296,680494.296,1953785.78626,1953785.78626 +24001200.0,658270.002,531327.3360000001,1551475.8211200002,247648.95463000002,247648.95463000002,247648.95463000002,673002.939,1284391.93,2162616.8384000002,1023634.9554900001,1559824.69408,656248.575,656248.575,656248.575,828883.314,658270.002,658270.002,582567.31065,805047.94755,1196639.17142,2087161.3455,592356.26758,753365.8570900001,707306.811,707306.811,707306.811,707306.811,1979198.47268,1979198.47268 +24004800.0,610240.395,497302.599,1452123.5890799998,235041.40517,235041.40517,235041.40517,507408.223,1041787.6895199999,1509922.67904,857679.17907,1306939.70144,502323.57,502323.57,502323.57,639570.421,610240.395,610240.395,569195.72229,639109.2334499999,949984.5889799998,1656949.8645,470258.1520199999,598079.99871,614503.887,614503.887,614503.887,614503.887,1834789.4542999999,1834789.4542999999 +24008400.0,275498.53799999994,203864.76,595285.0991999999,170398.85687,170398.85687,170398.85687,244921.915,472598.1748,572190.5152,380698.02078,580111.26976,211296.93,211296.93,211296.93,287709.926,275498.53799999994,275498.53799999994,396328.58394999994,135784.2447,201832.38348,352033.227,99910.38252,127067.23146000001,314610.23400000005,314610.23400000005,314610.23400000005,314610.23400000005,828332.2709199999,828332.2709199999 +24012000.0,91350.09,77779.98300000001,227117.55036,77469.05969000001,77469.05969000001,77469.05969000001,82115.705,157638.60608,428035.52,155829.02453999998,237453.75168,112397.304,112397.304,112397.304,91037.555,91350.09,91350.09,160918.84341,55536.4998,82550.55032,143983.518,40863.89368,51971.193640000005,78387.801,78387.801,78387.801,78387.801,274659.2706,274659.2706 +24015600.0,83227.92,75146.139,219426.72587999998,39374.79579,39374.79579,39374.79579,48393.471,138094.70152,418001.3856,137316.9483,209244.8736,106687.10399999999,106687.10399999999,106687.10399999999,80497.26299999999,83227.92,83227.92,156778.45312999998,44143.5825,65615.893,114446.325,32480.957,41309.6735,70312.65299999999,70312.65299999999,70312.65299999999,70312.65299999999,250238.61279999997,250238.61279999997 +24019200.0,78479.436,74559.147,217712.70924,15971.677150000001,15971.677150000001,15971.677150000001,27551.307,135768.51272000003,412068.08640000003,126271.31790000001,192413.43680000002,103242.29099999998,103242.29099999998,103242.29099999998,74784.5665,78479.436,78479.436,154359.61476,36809.749350000006,54714.738540000006,95432.68350000001,27084.704460000004,34446.654330000005,65512.068,65512.068,65512.068,65512.068,235961.50424,235961.50424 +24022800.0,83031.65999999999,81320.72099999999,237456.50532,10526.42415,10526.42415,10526.42415,22997.792999999998,144282.9524,415279.93856000004,127577.4465,194403.728,103781.46900000001,103781.46900000001,103781.46900000001,73930.55249999999,83031.65999999999,83031.65999999999,155545.55874,42962.33115,63860.05766,111383.8215,31611.78934,40204.25557,65392.683000000005,65392.683000000005,65392.683000000005,65392.683000000005,249648.52439999997,249648.52439999997 +24026400.0,87059.06099999999,85885.77900000001,250786.47468,5067.71573,5067.71573,5067.71573,18353.9895,142491.81855999999,416536.0454400001,129835.94484000001,197845.24928000002,103758.975,103758.975,103758.975,72732.8875,87059.06099999999,87059.06099999999,163603.51604999995,43382.53889999999,64484.66275999999,112473.249,31920.979239999997,40597.48702,68757.795,68757.795,68757.795,68757.795,261757.57673999996,261757.57673999996 +24030000.0,92257.494,89343.456,260882.89152,5113.132860000001,5113.132860000001,5113.132860000001,23557.285499999998,144833.46584,421362.00000000006,137221.34328,209099.18976,105204.9,105204.9,105204.9,73619.126,92257.494,92257.494,175351.08967999998,43950.0816,65328.26943999999,113944.65599999999,32338.578559999998,41128.59488,75093.672,75093.672,75093.672,75093.672,277387.53196,277387.53196 +24033600.0,96030.888,90315.81599999999,263722.18272,7685.971150000001,7685.971150000001,7685.971150000001,26510.914500000003,147268.61736,424745.16864000005,156826.98465,238974.4528,129375.91200000001,129375.91200000001,129375.91200000001,75637.9995,96030.888,96030.888,177528.93261999998,47325.9024,70346.15616,122696.784,34822.51584,44287.696319999995,81699.903,81699.903,81699.903,81699.903,288732.86992,288732.86992 +24037200.0,102888.828,92408.151,269831.80092,17959.404100000003,17959.404100000003,17959.404100000003,34580.6335,155453.72776,427915.69856,168548.76675000004,256836.21600000004,154053.96,154053.96,154053.96,84968.53050000001,102888.828,102888.828,178336.23821,52204.39875,77597.6495,135344.73750000002,38412.1255,48853.00525,90530.724,90530.724,90530.724,90530.724,309352.40952,309352.40952 +24040800.0,740692.215,722035.629,2108344.03668,241621.73233000003,241621.73233000003,241621.73233000003,748879.565,1153674.7077600001,838295.33952,879000.15147,1339428.80224,424443.375,424443.375,424443.375,1208427.9970000002,740692.215,740692.215,1340086.8513499997,364105.54215,541213.67006,943977.3315000001,267909.75694,340730.86537,897166.9829999999,897166.9829999999,897166.9829999999,897166.9829999999,2227014.5930999997,2227014.5930999997 +24044400.0,1455907.9500000002,1339046.511,3910015.81212,870645.19366,870645.19366,870645.19366,1319178.0665,2174354.64,2418241.6768000005,2137530.9755100003,3257190.0579200005,928535.544,928535.544,928535.544,1140191.185,1455907.9500000002,1455907.9500000002,726552.4624799999,1131892.06005,1682466.71642,2934534.9705000003,832848.9725800001,1059227.3845900001,1601005.1940000001,1601005.1940000001,1601005.1940000001,1601005.1940000001,4377429.903,4377429.903 +24048000.0,1398713.514,908638.416,2653224.17472,549178.38448,549178.38448,549178.38448,928153.1665,2274869.87592,5089012.298880001,1686845.84418,2570431.76256,1502876.1300000001,1502876.1300000001,1502876.1300000001,1220450.525,1398713.514,1398713.514,563488.2195799999,1919680.06185,2853450.36354,4976948.3085,1412505.32946,1796441.34183,1009684.446,1009684.446,1009684.446,1009684.446,4205465.29876,4205465.29876 +24051600.0,896008.1339999998,499581.76800000004,1458778.7625600002,306979.2209000001,306979.2209000001,306979.2209000001,1416517.7319999998,1970146.6942399999,3292112.1683200006,1768150.3402500004,2694324.3280000007,1256666.187,1256666.187,1256666.187,1467793.929,896008.1339999998,896008.1339999998,915450.39287,1637673.40215,2434270.09406,4245819.9315,1205004.13294,1532538.81337,1028284.2479999999,1028284.2479999999,1028284.2479999999,1028284.2479999999,2693997.7895599995,2693997.7895599995 +24055200.0,534366.291,341667.78,997669.9176,335707.15716999996,335707.15716999996,335707.15716999996,801201.7999999999,1566925.3192,2362982.864,908978.15022,1385109.56224,448850.33999999997,448850.33999999997,448850.33999999997,833755.9685,534366.291,534366.291,224646.23038,753911.14905,1120628.42402,1954584.4605,554729.68498,705511.9147900001,535595.1869999999,535595.1869999999,535595.1869999999,535595.1869999999,1606661.31494,1606661.31494 +24058800.0,349832.75399999996,258365.715,754427.8878,138563.25582,138563.25582,138563.25582,281397.158,948893.4199999999,808608.5088,602481.3666899999,918066.84448,331106.889,331106.889,331106.889,340130.7945,349832.75399999996,349832.75399999996,175946.79855999997,292508.62559999997,434790.59903999994,758355.696,215228.56896,273730.29408,342237.591,342237.591,342237.591,342237.591,1051830.48036,1051830.48036 +24062400.0,483100.25100000005,380648.517,1111493.66964,130018.57979,130018.57979,130018.57979,429971.493,964407.6895199999,1489626.2348800001,735894.5834100001,1121363.17472,482196.735,482196.735,482196.735,568288.6719999999,483100.25100000005,483100.25100000005,380051.48142,536172.1614,796976.8917599999,1390075.974,394516.80023999995,501751.23251999996,493571.01600000006,493571.01600000006,493571.01600000006,493571.01600000006,1452521.4213400001,1452521.4213400001 +24066000.0,315337.56299999997,226630.40400000004,661760.77968,93570.30936,93570.30936,93570.30936,247320.78699999998,619105.9628,844676.1440000001,439883.98104,670299.39968,301616.964,301616.964,301616.964,303952.89749999996,315337.56299999997,315337.56299999997,204946.19236,275953.30694999994,410182.4463799999,715434.4994999999,203047.12462,258237.78600999998,291623.364,291623.364,291623.364,291623.364,948114.93942,948114.93942 +24069600.0,217121.001,134951.835,394059.3582,73593.96792000001,73593.96792000001,73593.96792000001,135109.856,421446.96384,475066.61568000005,267369.84225,407420.712,195143.53500000003,195143.53500000003,195143.53500000003,150525.3855,217121.001,217121.001,102130.48469,122354.86589999999,181870.68955999997,317216.31899999996,90029.01243999999,114499.98561999999,174271.30500000002,174271.30500000002,174271.30500000002,174271.30500000002,652810.4763399999,652810.4763399999 +24073200.0,164628.999,86909.526,253775.81592,57779.27881,57779.27881,57779.27881,78204.07349999998,313515.55864,304668.58176000003,182668.668,278352.256,137127.369,137127.369,137127.369,86547.6255,164628.999,164628.999,67762.04383,63577.106550000004,94502.26702,164829.53550000003,46780.19198,59495.61329000001,118491.663,118491.663,118491.663,118491.663,494984.52365999995,494984.52365999995 +24076800.0,215882.06999999995,132974.217,388284.71364000003,66299.04644,66299.04644,66299.04644,125946.3205,418369.70432,459610.01984,261749.68323,398856.66016,192749.256,192749.256,192749.256,142565.0485,215882.06999999995,215882.06999999995,100000.32809,111879.22499999999,166299.49,290057.25,82321.01,104696.855,172203.168,172203.168,172203.168,172203.168,649085.4237999999,649085.4237999999 +24080400.0,632047.833,523739.8890000001,1529320.47588,145106.17154,145106.17154,145106.17154,594949.355,1258580.65424,2027367.0361600004,980292.62205,1493779.2336000002,645752.7359999999,645752.7359999999,645752.7359999999,785979.8065000001,632047.833,632047.833,522495.49000999995,755971.3638,1123690.76792,1959925.7580000001,556245.59608,707439.8688400001,665299.635,665299.635,665299.635,665299.635,1900357.1512199999,1900357.1512199999 +24084000.0,699227.598,566702.4839999999,1654771.2532799998,282974.53184,282974.53184,282974.53184,734124.6639999999,1380176.6316,2332686.43776,1136980.31916,1732541.43872,707446.359,707446.359,707446.359,894763.2960000001,699227.598,699227.598,645375.10739,887199.5731500001,1318750.97046,2300147.0415000003,652803.6365400001,830243.5511700001,763355.406,763355.406,763355.406,763355.406,2102344.31132,2102344.31132 +24087600.0,722175.0510000001,578220.924,1688405.09808,339081.3784600001,339081.3784600001,339081.3784600001,766447.983,1387969.8488,2354821.49312,1155218.7276,1760333.2992,713585.181,713585.181,713585.181,914399.976,722175.0510000001,722175.0510000001,656464.6970699999,900878.841,1339084.1043999998,2335611.81,662868.8756,843044.6438,771184.2570000001,771184.2570000001,771184.2570000001,771184.2570000001,2171339.65334,2171339.65334 +24091200.0,665902.404,530972.007,1550438.2604399999,313982.09546000004,313982.09546000004,313982.09546000004,585061.134,1119386.5435199998,1636511.81632,939729.1614900001,1431968.2460800002,537024.111,537024.111,537024.111,709524.2735000001,665902.404,665902.404,611519.04697,699430.6138500001,1039647.48034,1813338.6285,514642.77266,654528.89543,661508.13,661508.13,661508.13,661508.13,2002146.56136,2002146.56136 +24094800.0,306129.516,222010.032,648269.2934399999,189596.59917000003,189596.59917000003,189596.59917000003,273879.074,517360.14543999993,621248.9792000001,423463.50249000004,645277.71808,229981.31399999998,229981.31399999998,229981.31399999998,319862.3015,306129.516,306129.516,431260.26619,149089.40189999997,221609.43195999996,386528.07899999997,109700.35003999999,139518.23041999998,342008.823,342008.823,342008.823,342008.823,920429.41144,920429.41144 +24098400.0,108075.46199999998,85331.763,249168.74796,78682.68485,78682.68485,78682.68485,85223.103,184457.85416000002,468272.6323200001,174871.64729999998,266471.0816,124466.694,124466.694,124466.694,99738.0545,108075.46199999998,108075.46199999998,178138.17683999997,60104.571749999996,89340.62269999999,155826.6675,44225.092300000004,56246.00665,86864.55,86864.55,86864.55,86864.55,324946.88907999994,324946.88907999994 +24102000.0,99534.717,82064.802,239629.22184,40244.623980000004,40244.623980000004,40244.623980000004,51314.7355,187057.25568,454292.22400000005,155998.88115,237712.58080000003,118443.09599999999,118443.09599999999,118443.09599999999,88346.82849999999,99534.717,99534.717,172565.26754999996,47876.2974,71164.27416,124123.73400000001,35227.49784,44802.757320000004,82978.071,82978.071,82978.071,82978.071,299267.71577999997,299267.71577999997 +24105600.0,95918.682,83844.6,244826.232,18774.14484,18774.14484,18774.14484,30375.635500000004,201973.40991999998,446355.91679999995,144693.46437,220485.27904000002,114485.13,114485.13,114485.13,81563.2755,95918.682,95918.682,169409.86907,42000.35085,62430.151139999994,108889.7985,30903.96186,39304.03203,81668.47200000001,81668.47200000001,81668.47200000001,81668.47200000001,288395.50388,288395.50388 +24109200.0,103161.228,93327.351,272515.86491999996,24398.40051,24398.40051,24398.40051,25628.624,202888.43279999998,445524.86976000003,147334.2717,224509.36640000003,114143.00700000001,114143.00700000001,114143.00700000001,79994.72249999999,103161.228,103161.228,173435.41098,48843.971999999994,72602.6448,126632.52,35939.5152,45708.3096,81096.648,81096.648,81096.648,81096.648,310171.42552,310171.42552 +24112800.0,107032.737,97009.875,283268.835,19992.98367,19992.98367,19992.98367,27879.778500000004,212382.7544,454722.82176,152535.57795,232435.1664,117430.31100000002,117430.31100000002,117430.31100000002,80195.892,107032.737,107032.737,189228.37258,48302.851500000004,71798.3126,125229.615,35541.3574,45201.92770000001,83023.131,83023.131,83023.131,83023.131,321811.76258,321811.76258 +24116400.0,110695.76699999999,100572.216,293670.87072,21482.314700000003,21482.314700000003,21482.314700000003,29402.499,221650.78183999998,466648.1177600001,174924.80628,266552.08576,148782.027,148782.027,148782.027,82209.8655,110695.76699999999,110695.76699999999,198267.33419999998,51874.6518,77107.50712,134489.83800000002,38169.49688,48544.427240000005,94178.70300000001,94178.70300000001,94178.70300000001,94178.70300000001,332825.27278,332825.27278 +24120000.0,118955.763,103021.245,300822.0354,25240.4713,25240.4713,25240.4713,31452.179500000006,228828.90688,474631.1545600001,196043.55623999998,298733.03807999997,188975.325,188975.325,188975.325,89743.84650000001,118955.763,118955.763,200838.2311,56741.41124999999,84341.55449999998,147107.3625,41750.470499999996,53098.75274999999,110853.396,110853.396,110853.396,110853.396,357660.32742,357660.32742 +24123600.0,191068.85700000002,133984.983,391236.15035999997,49518.757970000006,49518.757970000006,49518.757970000006,45628.040499999996,607504.47576,492771.36768,317087.8578,483181.49760000006,208996.794,208996.794,208996.794,199524.51049999997,191068.85700000002,191068.85700000002,393538.38472,82992.42585,123361.58114000001,215165.54850000003,61066.03186,77664.51703,196916.445,196916.445,196916.445,196916.445,574480.36338,574480.36338 +24127200.0,844524.6569999999,379201.647,1107268.8092399999,322986.72626,322986.72626,322986.72626,727158.4775,2707517.9772799998,2311782.24768,1957666.1853,2983110.3776,704981.829,704981.829,704981.829,884963.5515,844524.6569999999,844524.6569999999,1712809.4463999998,938810.33505,1395466.22642,2433952.7205000003,690778.96258,878541.02959,989653.6140000001,989653.6140000001,989653.6140000001,989653.6140000001,2539204.13538,2539204.13538 +24130800.0,762709.596,1014188.5079999999,2961430.4433599995,672307.32932,672307.32932,672307.32932,1476918.6075,3321596.28992,2215702.6105600004,2326838.4447,3545658.5823999997,1004836.3319999999,1004836.3319999999,1004836.3319999999,1136147.3515,762709.596,762709.596,1813632.87612,1586743.41285,2358566.75194,4113779.2185000004,1167529.7210600001,1484878.40363,1113991.992,1113991.992,1113991.992,1113991.992,2293213.51864,2293213.51864 +24134400.0,1513929.102,1138690.305,3324975.6906,315316.55892000004,315316.55892000004,315316.55892000004,674840.047,2746872.2305599996,4568328.258560001,2068113.42339,3151410.93088,1271766.588,1271766.588,1271766.588,711769.8665,1513929.102,1513929.102,859731.9156399999,860076.8405999999,1278435.2050399997,2229828.846,632846.6629599999,804862.0310799999,1688772.831,1688772.831,1688772.831,1688772.831,4551880.16668,4551880.16668 +24138000.0,792130.827,369940.40099999995,1080225.97092,253997.82903000002,253997.82903000002,253997.82903000002,221548.68399999998,797163.42808,4642302.401280001,289706.12895000004,441456.95840000006,780649.047,780649.047,780649.047,791111.0515,792130.827,792130.827,385173.71295,1350836.1373499997,2007909.5177399996,3502167.7634999994,993948.5652599998,1264115.7927299999,312915.67500000005,312915.67500000005,312915.67500000005,312915.67500000005,2381673.3531799996,2381673.3531799996 +24141600.0,296926.962,104971.84500000002,306517.78740000003,134071.34334000002,134071.34334000002,134071.34334000002,115259.89649999999,433286.12136,818034.62528,196838.76743999997,299944.78848,144149.022,144149.022,144149.022,107165.4535,296926.962,296926.962,203939.40645,105554.69639999999,156898.58576,273660.32399999996,77667.40624,98778.34552,146887.074,146887.074,146887.074,146887.074,892760.3990799999,892760.3990799999 +24145200.0,326418.95999999996,730223.061,2132251.33812,121811.98645,121811.98645,121811.98645,390177.24199999997,754549.3452,916371.28576,482323.32183,734968.87136,229572.64500000002,229572.64500000002,229572.64500000002,523594.79199999996,326418.95999999996,326418.95999999996,261908.95887,219142.00079999998,325736.99872,568145.928,161245.22527999998,205073.62544,266549.154,266549.154,266549.154,266549.154,981433.0063999998,981433.0063999998 +24148800.0,400956.4859999999,308846.82,901832.7144,109266.75683,109266.75683,109266.75683,408129.043,869665.9652,1306192.4268800002,562145.49573,856602.6601600001,374720.07,374720.07,374720.07,281728.643,400956.4859999999,400956.4859999999,420779.90149,371839.6773,552709.84132,964028.7930000001,273600.55268,347968.48814000003,382260.27300000004,382260.27300000004,382260.27300000004,382260.27300000004,1205542.50124,1205542.50124 +24152400.0,244118.142,178826.862,522174.43704,82005.06655,82005.06655,82005.06655,142325.42799999999,535361.0343999999,716642.2950400001,298755.53484000004,455246.52928,224981.112,224981.112,224981.112,150767.1445,244118.142,244118.142,259057.69188,183018.11895,272041.74718,474491.4195,134665.18382,171268.80761,215976.723,215976.723,215976.723,215976.723,733981.8802799999,733981.8802799999 +24156000.0,317773.239,215066.00699999998,627992.74044,293665.0299,293665.0299,293665.0299,378535.206,668961.8559199999,375133.27168,584016.90459,889930.52128,208432.28699999995,208432.28699999995,208432.28699999995,569350.313,317773.239,317773.239,567591.23135,357514.0416,531415.9334399999,926888.256,263059.71456,334562.52288,162119.625,162119.625,162119.625,162119.625,955438.20526,955438.20526 +24159600.0,132399.516,447098.073,1305526.37316,271344.41323,271344.41323,271344.41323,299377.96699999995,687210.91568,231999.69088,157862.8506,240552.91520000005,188710.584,188710.584,188710.584,587158.11,132399.516,132399.516,548683.84766,214991.54054999998,319567.67261999997,557385.4755,158191.30638,201189.61449,185856.237,185856.237,185856.237,185856.237,398081.21144,398081.21144 +24163200.0,158755.809,116737.14000000001,340872.4488,271128.63811000006,271128.63811000006,271128.63811000006,103031.9535,350370.11088,357901.50591999997,169537.2504,258342.4768,126166.431,126166.431,126166.431,152182.2505,158755.809,158755.809,200163.41695999997,79232.5152,117772.77567999999,205417.63199999998,58299.480319999995,74145.98336,117743.20799999998,117743.20799999998,117743.20799999998,117743.20799999998,477325.79906,477325.79906 +24166800.0,1553602.5389999999,1185738.276,3462355.76592,680250.6506400001,680250.6506400001,680250.6506400001,2043488.2615,2578203.82088,3740490.65536,2562952.3957799994,3905451.2697599996,1691301.1380000003,1691301.1380000003,1691301.1380000003,1626709.6055,1553602.5389999999,1553602.5389999999,1071409.6308499998,1687566.56715,2508432.28006,4375172.5815,1241715.64694,1579228.96037,1546062.3539999998,1546062.3539999998,1546062.3539999998,1546062.3539999998,4671164.967259999,4671164.967259999 +24170400.0,873484.1940000001,542733.969,1584783.18948,367843.2910900001,367843.2910900001,367843.2910900001,741191.9130000001,1431081.6223199998,2264506.06912,1174980.74505,1790446.8496,732191.01,732191.01,732191.01,906357.165,873484.1940000001,873484.1940000001,554596.2611799999,883823.63895,1313732.91518,2291394.6195,650319.6158200001,827084.34361,796340.052,796340.052,796340.052,796340.052,2626275.80996,2626275.80996 +24174000.0,706017.762,545881.41,1593973.7172,377549.02823,377549.02823,377549.02823,731440.57,1327704.00384,2275176.2048,1095608.9879700001,1669499.41024,686539.956,686539.956,686539.956,896657.6675,706017.762,706017.762,555985.47576,879055.91415,1306646.0748599998,2279033.8515,646811.51214,822622.69497,743975.334,743975.334,743975.334,743975.334,2122760.0710799997,2122760.0710799997 +24177600.0,698549.079,542033.3670000001,1582737.43164,398313.05712000007,398313.05712000007,398313.05712000007,716580.8755,1298656.49792,2264831.0656000003,1078636.0685100001,1643635.9139200002,680204.943,680204.943,680204.943,881263.9814999999,698549.079,698549.079,551646.2304599999,869584.3856999999,1292567.4078799998,2254478.037,639842.33812,813759.21526,737656.6830000001,737656.6830000001,737656.6830000001,737656.6830000001,2100304.23086,2100304.23086 +24181200.0,483631.689,383646.366,1120247.38872,315558.10528,315558.10528,315558.10528,428098.4015,654432.45568,1327414.5958400003,594146.22603,905365.6777600001,354036.024,354036.024,354036.024,435435.399,483631.689,483631.689,390019.85529,387632.84670000005,576185.12028,1004974.0470000001,285221.20572,362747.7750600001,453263.79900000006,453263.79900000006,453263.79900000006,453263.79900000006,1454119.2782599998,1454119.2782599998 +24184800.0,87922.887,68701.113,200607.24996,78433.63341000001,78433.63341000001,78433.63341000001,83437.347,131729.89575999998,412374.5542400001,123268.03356000001,187837.00352000003,107529.342,107529.342,107529.342,89343.464,87922.887,87922.887,124566.45552,55582.4916,82618.91343999999,144102.756,40897.73456,52014.23288,78355.56,78355.56,78355.56,78355.56,264354.81358,264354.81358 +24188400.0,79022.469,72251.691,210974.93772000002,42446.50619000001,42446.50619000001,42446.50619000001,49432.0225,114966.8824,397183.87648000004,103410.57531,157578.01952,100354.21199999998,100354.21199999998,100354.21199999998,76517.504,79022.469,79022.469,140292.37533999997,43238.881349999996,64271.12733999999,112100.8035,31815.27566,40463.05193,71778.97499999999,71778.97499999999,71778.97499999999,71778.97499999999,237594.22345999998,237594.22345999998 +24192000.0,73646.26499999998,70221.258,205046.07335999998,28516.170100000003,28516.170100000003,28516.170100000003,28208.845,123349.78776,384040.0096,93742.16627999999,142845.20576,95251.80900000001,95251.80900000001,95251.80900000001,68450.1335,73646.26499999998,73646.26499999998,140349.96065999998,35313.2946,52490.378639999995,91552.986,25983.609360000002,33046.268280000004,65781.843,65781.843,65781.843,65781.843,221429.77009999997,221429.77009999997 +24195600.0,72727.095,71421.177,208549.83683999997,22970.57125,22970.57125,22970.57125,23268.133,133166.26712,379964.15488000005,98761.06275000001,150493.04800000004,94219.101,94219.101,94219.101,67619.0795,72727.095,72727.095,144930.98061,33404.541750000004,49653.17070000001,86604.36750000002,24579.144300000004,31260.052650000005,65663.283,65663.283,65663.283,65663.283,218666.13229999997,218666.13229999997 +24199200.0,77855.39700000001,76728.414,224046.96888000003,17536.82414,17536.82414,17536.82414,18419.299499999997,132647.07944,377872.6163200001,109506.85158,166867.58336,93240.98700000001,93240.98700000001,93240.98700000001,66955.049,77855.39700000001,77855.39700000001,149816.30521,37677.3849,56004.40915999999,97682.109,27723.112839999998,35258.589819999994,66335.655,66335.655,66335.655,66335.655,234085.22698,234085.22698 +24202800.0,82768.266,81027.069,236599.04148,17735.18373,17735.18373,17735.18373,19046.6535,131801.66352,375323.80224,122480.54553,186637.02176,92540.1,92540.1,92540.1,66532.613,82768.266,82768.266,157085.73516999997,40042.37025,59519.7701,103813.5525,29463.274900000004,37471.74895,68372.01,68372.01,68372.01,68372.01,248856.58643999998,248856.58643999998 +24206400.0,83469.92099999999,81369.492,237598.91664,20208.86461,20208.86461,20208.86461,25548.2605,132014.88776,373815.99744000006,133962.85623,204133.87615999999,92442.201,92442.201,92442.201,67528.3175,83469.92099999999,83469.92099999999,158202.66526999997,41939.26065,62339.34545999999,108731.41649999999,30859.01154,39246.86367,70952.697,70952.697,70952.697,70952.697,250966.22913999995,250966.22913999995 +24210000.0,135356.16,107596.43999999999,314181.6048,43343.92491000001,43343.92491000001,43343.92491000001,33440.9075,482906.74423999997,386804.8460800001,227577.25452000002,346784.38784000004,95367.729,95367.729,95367.729,112984.319,135356.16,135356.16,348297.51125,55805.56155,82950.48902,144681.0855,41061.869979999996,52222.98229,133784.097,133784.097,133784.097,133784.097,406970.8544,406970.8544 +24213600.0,664705.953,309799.899,904615.70508,303762.00393000006,303762.00393000006,303762.00393000006,568931.0865,2262554.63576,1750044.5075200002,1592465.55762,2426614.1830400005,501404.0070000001,501404.0070000001,501404.0070000001,583493.302,664705.953,664705.953,1600387.5001399997,713002.338,1059820.7592,1848524.5799999998,524628.8807999999,667229.3484,806177.874,806177.874,806177.874,806177.874,1998549.23202,1998549.23202 +24217200.0,633073.122,850247.28,2482722.0576,577921.21288,577921.21288,577921.21288,1181626.1485000001,2895946.13208,1744788.3360000004,2032037.92155,3096438.7376000006,854502.876,854502.876,854502.876,940098.7505,633073.122,633073.122,1209141.9366,1285961.78745,1911479.0025799999,3333975.0045,946213.8584200001,1203406.21591,935326.743,935326.743,935326.743,935326.743,1903439.8534799998,1903439.8534799998 +24220800.0,1295619.006,800403.882,2337179.33544,288024.93786000006,288024.93786000006,288024.93786000006,499032.89449999994,1845753.0824,3247654.2035200004,1518541.8521699999,2313968.53664,920576.058,920576.058,920576.058,526605.0335,1295619.006,1295619.006,564766.90517,625859.8893,930290.50212,1622599.7130000002,460509.25188000005,585681.2297400001,1412515.134,1412515.134,1412515.134,1412515.134,3895494.4780399995,3895494.4780399995 +24224400.0,624422.274,324938.973,948821.8011599999,236592.49438000002,236592.49438000002,236592.49438000002,194898.1965,539807.89072,3926743.5257600006,180395.02761,274887.66112,581869.992,581869.992,581869.992,629921.215,624422.274,624422.274,293836.50269999995,1096558.7098499998,1629946.5267399997,2842929.9884999995,806850.6062599999,1026162.3482299999,197391.849,197391.849,197391.849,197391.849,1877429.63716,1877429.63716 +24228000.0,191449.87800000003,42524.774999999994,124172.343,123138.69249,123138.69249,123138.69249,102099.221,226317.86456,191612.11904000002,110652.17016000001,168612.83072000003,65381.481,65381.481,65381.481,47852.1645,191449.87800000003,191449.87800000003,102085.09271999999,57285.249299999996,85149.92611999999,148517.313,42150.62788,53607.67774,71968.60800000001,71968.60800000001,71968.60800000001,71968.60800000001,575625.96652,575625.96652 +24231600.0,222692.93099999998,541590.153,1581443.24676,115351.12193000001,115351.12193000001,115351.12193000001,305357.7835,517515.56536,509196.10944000003,319072.6158900001,486205.89088000014,127999.908,127999.908,127999.908,356121.752,222692.93099999998,222692.93099999998,152362.9068,115700.02739999999,171978.80615999998,299963.034,85132.36584,108272.37132,157985.04,157985.04,157985.04,157985.04,669563.4125399999,669563.4125399999 +24235200.0,282514.05000000005,197734.38,577384.3896,100383.64809,100383.64809,100383.64809,284924.206,591942.09632,764925.9616000002,347103.24075,528919.2239999999,228769.548,228769.548,228769.548,183129.36949999997,282514.05000000005,282514.05000000005,283895.56025999994,219546.6768,326338.51712,569195.088,161542.98687999998,205452.32223999998,231802.20899999997,231802.20899999997,231802.20899999997,231802.20899999997,849425.577,849425.577 +24238800.0,157497.675,92623.185,270459.7002,75568.11328,75568.11328,75568.11328,87705.499,315798.60735999997,348078.85696,159971.87493,243766.66655999998,122117.06399999998,122117.06399999998,122117.06399999998,81998.049,157497.675,157497.675,156160.93089999998,91712.36745,136323.07458000001,237772.80450000003,67482.18642000001,85824.65991000002,115606.12199999999,115606.12199999999,115606.12199999999,115606.12199999999,473543.0095,473543.0095 +24242400.0,218466.41099999996,146071.743,426529.48955999996,228616.27932000003,228616.27932000003,228616.27932000003,161253.79200000002,457871.47016,138566.64640000003,422765.92974,644214.75008,118761.67199999999,118761.67199999999,118761.67199999999,352165.82100000005,218466.41099999996,218466.41099999996,468216.6073,214939.29555,319490.01462000003,557250.0255,158152.86438,201140.72349,83832.465,83832.465,83832.465,83832.465,656855.6757399999,656855.6757399999 +24246000.0,75774.027,331580.979,968216.45868,262938.62595,262938.62595,262938.62595,267024.8245,445992.98607999994,117918.38656,69473.15025,105863.84800000001,127065.70799999998,127065.70799999998,127065.70799999998,415717.372,75774.027,75774.027,399779.48477999994,156160.72619999998,232120.38807999998,404861.142,114903.44791999999,146135.59316,114241.22099999999,114241.22099999999,114241.22099999999,114241.22099999999,227827.24118,227827.24118 +24249600.0,97815.471,53682.276,156752.24592,243141.68604000003,243141.68604000003,243141.68604000003,74839.387,189540.85,175687.11744000003,85750.54970999999,130667.50432,59945.253,59945.253,59945.253,51969.5295,97815.471,97815.471,122448.67504999999,41490.7758,61672.708719999995,107568.678,30529.01528,38827.17044,59083.172999999995,59083.172999999995,59083.172999999995,59083.172999999995,294098.51614,294098.51614 +24253200.0,1305240.582,916214.5950000002,2675346.6174000003,474914.42537,474914.42537,474914.42537,1643275.0635000002,2084935.3924000002,2547653.3472,2061231.8084399998,3140924.66048,1361805.2519999999,1361805.2519999999,1361805.2519999999,1096642.4525000001,1305240.582,1305240.582,809030.3261299998,1161930.0635999998,1727115.7982399997,3012411.2759999996,854951.0097599999,1087337.0224799998,1157939.301,1157939.301,1157939.301,1157939.301,3924423.3498799996,3924423.3498799996 +24256800.0,696285.0630000001,457689.10800000007,1336452.1953600002,340713.0496,340713.0496,340713.0496,590480.9434999999,1187475.3604799998,1858684.97408,945746.7280799999,1441137.87136,573980.85,573980.85,573980.85,742322.7315,696285.0630000001,696285.0630000001,478624.80276,712578.2058,1059190.32072,1847424.9780000001,524316.80328,666832.44444,668610.726,668610.726,668610.726,668610.726,2093497.0894199999,2093497.0894199999 +24260400.0,634937.3999999999,487498.608,1423495.93536,342391.7495900001,342391.7495900001,342391.7495900001,638599.9515,1178431.9394399999,2004123.12384,976465.04508,1487946.7353599998,596602.9110000001,596602.9110000001,596602.9110000001,777374.7309999999,634937.3999999999,634937.3999999999,499778.93263999996,765379.27485,1137674.87274,1984316.6385000001,563167.9602600001,716243.8152300001,660254.448,660254.448,660254.448,660254.448,1909045.1159999997,1909045.1159999997 +24264000.0,624055.041,479346.555,1399691.9405999999,330472.12781000003,330472.12781000003,330472.12781000003,627185.0795,1147131.15128,1971193.6070400001,958004.2199700001,1459815.95424,596622.0630000001,596622.0630000001,596622.0630000001,759914.491,624055.041,624055.041,491246.22351999994,763360.9047,1134674.72748,1979083.827,561682.83852,714355.01946,649167.222,649167.222,649167.222,649167.222,1876325.4899399998,1876325.4899399998 +24267600.0,450164.478,351448.422,1026229.39224,268632.9833,268632.9833,268632.9833,404516.54949999996,610967.41472,1233416.9990400001,556391.36217,847834.4566400001,331350.14099999995,331350.14099999995,331350.14099999995,405237.8855,450164.478,450164.478,364802.34803999995,362474.04419999995,538788.57928,939747.522,266709.29672,339204.10556,424007.454,424007.454,424007.454,424007.454,1353494.53052,1353494.53052 +24271200.0,85842.849,63086.138999999996,184211.52588,78268.82283,78268.82283,78268.82283,82983.76800000001,130081.02432,406827.32096,119334.63612,181843.25504000002,106158.56400000001,106158.56400000001,106158.56400000001,88068.316,85842.849,85842.849,107873.15331000001,54849.133799999996,81528.83591999998,142201.45799999998,40358.128079999995,51327.95484,71171.64,71171.64,71171.64,71171.64,258100.83266,258100.83266 +24274800.0,75368.676,63679.233,185943.36036,39745.593140000004,39745.593140000004,39745.593140000004,48534.71000000001,104679.29024,382059.88223999995,97756.78017,148962.71264,96260.76,96260.76,96260.76,73642.492,75368.676,75368.676,120601.49075,41784.429149999996,62109.20086,108330.0015,30745.08614,39101.97197,68862.594,68862.594,68862.594,68862.594,226608.48583999998,226608.48583999998 +24278400.0,70250.562,67442.706,196932.70152,15943.150520000003,15943.150520000003,15943.150520000003,27514.1825,104240.98071999999,373228.92352,86287.55877,131485.80384,91988.022,91988.022,91988.022,65900.807,70250.562,70250.562,129685.99826000001,34189.24545,50819.56978,88638.78450000001,25156.53122,31994.380310000004,63496.69200000001,63496.69200000001,63496.69200000001,63496.69200000001,211220.02307999998,211220.02307999998 +24282000.0,70040.946,68598.468,200307.52656,22388.984529999998,22388.984529999998,22388.984529999998,22780.8595,125686.29583999999,373525.04448,87970.05546000002,134049.60832000003,92105.049,92105.049,92105.049,66141.1345,70040.946,70040.946,135887.23304,32616.96255,48482.49742,84562.4955,23999.641580000003,30523.034090000005,62608.602,62608.602,62608.602,62608.602,210589.77764,210589.77764 +24285600.0,74293.647,73823.541,215564.73971999998,18530.05066,18530.05066,18530.05066,18238.2445,131250.75295999998,377871.61536000005,94792.28073,144445.38016,93398.14199999999,93398.14199999999,93398.14199999999,65427.803,74293.647,74293.647,145574.52013,35977.591799999995,53477.80312,93275.238,26472.400879999997,33667.91924,63500.085,63500.085,63500.085,63500.085,223376.23197999998,223376.23197999998 +24289200.0,80485.905,80346.792,234612.63264,18893.19641,18893.19641,18893.19641,18345.089000000004,132019.44296,379841.99423999997,111695.03961,170201.96512,93986.47799999999,93986.47799999999,93986.47799999999,66391.997,80485.905,80485.905,154728.00785,40066.698599999996,59555.93223999999,103876.62599999999,29481.175759999995,37494.515479999995,66052.923,66052.923,66052.923,66052.923,241994.2877,241994.2877 +24292800.0,83466.35699999999,82495.125,240885.76499999998,21439.0099,21439.0099,21439.0099,25097.5935,134575.51752,384366.85568000004,128600.11206,195962.07552,95713.425,95713.425,95713.425,68786.0425,83466.35699999999,83466.35699999999,160414.77946,42142.10085,62640.85114,109257.2985,31008.261860000002,39436.68203,69255.363,69255.363,69255.363,69255.363,250955.51338,250955.51338 +24296400.0,135643.38299999997,107618.26499999998,314245.33379999996,45311.98969,45311.98969,45311.98969,34391.41649999999,487584.77695999993,402750.43264,228660.37235999998,348434.85312,100409.30399999999,100409.30399999999,100409.30399999999,115080.84349999999,135643.38299999997,135643.38299999997,353456.56814,56530.900349999996,84028.64693999999,146561.5935,41595.57606,52901.75613,135413.682,135413.682,135413.682,135413.682,407834.43821999995,407834.43821999995 +24300000.0,662657.835,313476.765,915352.1538,307057.09628,307057.09628,307057.09628,559042.7359999999,2271028.06696,1802321.8956799998,1590544.6328099999,2423687.05952,512874.027,512874.027,512874.027,599395.153,662657.835,662657.835,1596348.73073,716840.6161499999,1065526.0516599999,1858475.6715,527453.09534,670821.21857,804076.0859999999,804076.0859999999,804076.0859999999,804076.0859999999,1992391.2238999999,1992391.2238999999 +24303600.0,638459.967,836085.885,2441370.7841999996,602464.30189,602464.30189,602464.30189,1189716.1149999998,2911135.89032,1776037.9481600001,2042390.10402,3112213.49184,872269.6140000001,872269.6140000001,872269.6140000001,958551.8775,638459.967,638459.967,1154117.04213,1293233.5827,1922287.9426799999,3352827.807,951564.46332,1210211.17986,945907.203,945907.203,945907.203,945907.203,1919636.30078,1919636.30078 +24307200.0,1303795.437,827538.309,2416411.86228,302906.31899000006,302906.31899000006,302906.31899000006,514688.13200000004,1853650.0063199997,3286126.84096,1541245.75017,2348564.95264,944531.3069999999,944531.3069999999,944531.3069999999,534703.7745,1303795.437,1303795.437,568074.68445,639655.9874999999,950797.2949999999,1658367.375,470660.455,598591.6525,1428529.674,1428529.674,1428529.674,1428529.674,3920078.2805799996,3920078.2805799996 +24310800.0,633690.303,349446.80700000003,1020384.67644,241474.8094,241474.8094,241474.8094,197388.55849999998,557568.37024,3964824.6681600004,190066.67274000004,289625.40608000004,596211.921,596211.921,596211.921,649189.114,633690.303,633690.303,298925.64142999996,1108526.87295,1647736.24078,2873958.5595000004,815656.8102200001,1037362.1848100001,205446.675,205446.675,205446.675,205446.675,1905295.5110199999,1905295.5110199999 +24314400.0,204148.95,48655.854,142075.09368,123097.89481,123097.89481,123097.89481,102771.0075,270574.05032,245438.75392000002,130216.10931,198424.54752000002,85224.19499999999,85224.19499999999,85224.19499999999,60278.064,204148.95,204148.95,118642.08433999999,65205.7938,96923.17992,169052.058,47978.58408,61019.74284,88090.416,88090.416,88090.416,88090.416,613807.843,613807.843 +24318000.0,243502.02000000002,585089.544,1708461.46848,122554.55388,122554.55388,122554.55388,315811.328,577852.15024,615862.4761600001,352157.715,536621.28,154685.157,154685.157,154685.157,398235.3725,243502.02000000002,243502.02000000002,174153.81334,139622.05305,207536.97761999996,361983.1005,102734.25138,130658.66199,180705.00300000003,180705.00300000003,180705.00300000003,180705.00300000003,732129.4068000001,732129.4068000001 +24321600.0,317043.252,231366.351,675589.74492,110344.12246000001,110344.12246000001,110344.12246000001,319277.98,673658.62336,930364.48896,413108.90502000006,629499.28384,269643.966,269643.966,269643.966,211344.52499999997,317043.252,317043.252,313990.15257999994,265720.69844999997,394972.49497999996,688905.5145,195517.94602,248662.08570999998,278438.433,278438.433,278438.433,278438.433,953243.3776799998,953243.3776799998 +24325200.0,178311.528,113750.172,332150.50224,76380.9574,76380.9574,76380.9574,100164.17250000002,369384.28656000004,435496.14272000006,193457.0043,294791.6256,147680.574,147680.574,147680.574,99437.4675,178311.528,178311.528,175871.81066,113389.19055,168543.93262,293971.9755,83432.04638,106109.88449000001,140120.01299999998,140120.01299999998,140120.01299999998,140120.01299999998,536123.3275199999,536123.3275199999 +24328800.0,235071.33900000004,154196.142,450252.73464,249108.6235,249108.6235,249108.6235,206166.5725,496445.75056,165139.86048,454578.42527999997,692690.93376,133884.33000000002,133884.33000000002,133884.33000000002,403778.4555,235071.33900000004,235071.33900000004,487284.09183999995,242431.82549999998,360355.4542,628526.955,178381.9358,226868.3009,96060.138,96060.138,96060.138,96060.138,706781.1592600001,706781.1592600001 +24332400.0,90250.239,353170.671,1031258.3593199999,264680.44756999996,264680.44756999996,264680.44756999996,277076.247,507495.57368,142450.59968,89513.907,136402.14400000003,143351.49599999998,143351.49599999998,143351.49599999998,472229.0895,90250.239,90250.239,436596.0569099999,170361.3546,253228.48263999997,441677.586,125352.30536,159424.57628,131290.473,131290.473,131290.473,131290.473,271352.38526,271352.38526 +24336000.0,131954.919,79126.542,231049.50264,228689.53932,228689.53932,228689.53932,87754.8735,277491.00471999997,257005.02080000003,131554.48299000002,200463.97408,99361.92299999998,99361.92299999998,99361.92299999998,87611.61150000001,131954.919,131954.919,161879.81407,56997.6426,84722.42184,147771.666,41939.00616,53338.534680000004,90546.297,90546.297,90546.297,90546.297,396744.45645999996,396744.45645999996 +24339600.0,1407928.404,1033139.973,3016768.7211599997,615209.0022100002,615209.0022100002,615209.0022100002,1833442.7649999997,2314310.95248,3090897.19808,2292217.71954,3492903.19168,1530590.6849999998,1530590.6849999998,1530590.6849999998,1348300.6915000002,1407928.404,1407928.404,908773.67516,1398563.6620500002,2078852.65322,3625905.7905,1029066.5957800001,1308779.32819,1320684.5520000001,1320684.5520000001,1320684.5520000001,1320684.5520000001,4233171.40136,4233171.40136 +24343200.0,776982.2220000001,511636.404,1493978.29968,370056.25998,370056.25998,370056.25998,683253.823,1323177.89288,2155295.5776000004,1055791.4388000001,1608825.0496000003,660716.226,660716.226,660716.226,854559.678,776982.2220000001,776982.2220000001,528717.10957,816086.0564999998,1213046.4345999998,2115778.665,600478.1353999999,763695.3467,749780.8049999999,749780.8049999999,749780.8049999999,749780.8049999999,2336126.54748,2336126.54748 +24346800.0,668506.7490000001,517094.202,1509915.06984,423094.20450000005,423094.20450000005,423094.20450000005,688726.3425,1258395.1758400002,2141249.31264,1038118.2176399999,1581894.42688,651094.1939999999,651094.1939999999,651094.1939999999,842735.7645,668506.7490000001,668506.7490000001,526773.0566799999,828642.798,1231711.0232,2148333.18,609717.4168,775445.9764,702020.007,702020.007,702020.007,702020.007,2009976.95866,2009976.95866 +24350400.0,671383.722,524403.075,1531256.9789999998,460219.29558000003,460219.29558000003,460219.29558000003,698719.8995,1249658.7052,2168881.5206400002,1037287.7377800001,1580628.9337600002,659479.5989999999,659479.5989999999,659479.5989999999,850288.3339999999,671383.722,671383.722,529965.4825399999,836713.0791,1243706.84844,2169256.131,615655.5495600001,782998.16538,707656.596,707656.596,707656.596,707656.596,2018627.05748,2018627.05748 +24354000.0,463908.49199999997,370403.244,1081577.47248,334572.6975800001,334572.6975800001,334572.6975800001,421694.98699999996,633334.57968,1280205.9276800002,574238.97531,875030.81952,344522.454,344522.454,344522.454,423953.124,463908.49199999997,463908.49199999997,374850.75068999996,376503.61275,559642.4071,976120.4774999999,277032.2879,352333.01045,437875.86900000006,437875.86900000006,437875.86900000006,437875.86900000006,1394818.1992799998,1394818.1992799998 +24357600.0,87145.512,66046.647,192856.20924,78343.32825000002,78343.32825000002,78343.32825000002,83600.58,132218.34752,416917.92256,121646.05677000001,185365.41984000002,109107.828,109107.828,109107.828,89774.02350000001,87145.512,87145.512,109907.57647999999,55614.8835,82667.0614,144186.73500000002,40921.568600000006,52044.545300000005,79839.171,79839.171,79839.171,79839.171,262017.50608,262017.50608 +24361200.0,78746.964,70079.958,204633.47736,52989.6906,52989.6906,52989.6906,49824.634999999995,110721.00383999998,406427.78560000006,103829.48121,158216.35232,103255.83600000001,103255.83600000001,103255.83600000001,77751.856,78746.964,78746.964,139079.38473,43639.6086,64866.77623999999,113139.726,32110.13176,40838.053479999995,72604.113,72604.113,72604.113,72604.113,236765.87176,236765.87176 +24364800.0,74547.76800000001,72010.005,210269.21459999998,31710.534020000003,31710.534020000003,31710.534020000003,29023.543499999996,122704.99336000001,402053.51424,92553.75444,141034.29248,100289.27700000002,100289.27700000002,100289.27700000002,71041.0365,74547.76800000001,74547.76800000001,140049.56653999997,36393.077249999995,54095.38889999999,94352.4225,26778.1161,34056.73155,68013.40800000001,68013.40800000001,68013.40800000001,68013.40800000001,224140.28912,224140.28912 +24368400.0,74688.891,73875.48300000001,215716.41036,26430.970720000005,26430.970720000005,26430.970720000005,24325.916999999998,139665.44543999998,402847.16672000004,100769.08212,153552.88704,101005.16399999999,101005.16399999999,101005.16399999999,71220.72300000001,74688.891,74688.891,150266.84347999998,34870.090950000005,51831.591980000005,90403.93950000001,25657.499020000003,32631.517210000005,67360.95,67360.95,67360.95,67360.95,224564.59894,224564.59894 +24372000.0,81413.007,82235.907,240128.84844,21498.82262,21498.82262,21498.82262,19912.7075,142236.69816,410796.0512,107256.94098000001,163439.14816000004,102577.20599999998,102577.20599999998,102577.20599999998,71436.46299999999,81413.007,81413.007,159867.18501,41146.86194999999,61161.50837999999,106677.0495,30275.96262,38505.335009999995,69388.08,69388.08,69388.08,69388.08,244781.77437999996,244781.77437999996 +24375600.0,86468.127,86712.486,253200.45911999998,21951.6671,21951.6671,21951.6671,22099.5495,141118.65352000002,408335.77856000006,127783.23348000001,194717.30816000002,101639.29200000002,101639.29200000002,101639.29200000002,71666.819,86468.127,86468.127,169206.32910999996,42785.60535,63597.36893999999,110925.64349999999,31481.75406,40038.87513,71430.94499999999,71430.94499999999,71430.94499999999,71430.94499999999,259980.83517999997,259980.83517999997 +24379200.0,88995.042,87993.54,256941.13679999998,25600.112780000003,25600.112780000003,25600.112780000003,28123.4695,143855.406,413615.34208000003,146909.84994,223862.62847999998,103521.036,103521.036,103521.036,75156.823,88995.042,88995.042,171485.37445,46446.5907,69039.12988,120417.087,34175.51612,43464.83426,77604.95400000001,77604.95400000001,77604.95400000001,77604.95400000001,267578.42627999996,267578.42627999996 +24382800.0,144485.47499999998,114364.317,333943.80564,49121.31433,49121.31433,49121.31433,36121.4245,499451.92559999996,430673.93088000006,252079.15383,384120.61536,117396.978,117396.978,117396.978,125550.00150000001,144485.47499999998,144485.47499999998,362178.76239999995,61750.6821,91787.43363999999,160094.361,45436.30436,57786.440780000004,143699.862,143699.862,143699.862,143699.862,434419.66149999993,434419.66149999993 +24386400.0,704791.5210000001,325095.855,949279.8966,353232.17017,353232.17017,353232.17017,641205.8310000001,2380592.1668000002,1953635.1257600002,1687923.5041199997,2572073.9110399997,564168.444,564168.444,564168.444,713046.8555000001,704791.5210000001,704791.5210000001,1620943.2082999998,775081.7788499999,1152096.8663399997,2009471.2784999998,570307.0866599999,725323.4424299999,865136.8260000001,865136.8260000001,865136.8260000001,865136.8260000001,2119073.17314,2119073.17314 +24390000.0,661443.279,862974.885,2519886.6642,703238.36066,703238.36066,703238.36066,1268119.0654999998,2978878.56464,1853110.13824,2094090.38538,3190994.8729600003,902885.0460000001,902885.0460000001,902885.0460000001,1001932.6869999999,661443.279,661443.279,1202735.67076,1342574.676,1995629.5183999997,3480749.1599999997,987869.7616,1256384.6968,980600.3369999999,980600.3369999999,980600.3369999999,980600.3369999999,1988739.45886,1988739.45886 +24393600.0,1263499.53,803220.5009999999,2345403.8629199998,310021.1389,310021.1389,310021.1389,509547.5420000001,1743258.5536800001,3122995.7766400003,1455073.28547,2217254.5302399998,919103.544,919103.544,919103.544,514990.64400000003,1263499.53,1263499.53,487970.3201099999,619322.193,920572.7411999999,1605650.13,455698.7988,579563.2374,1386273.297,1386273.297,1386273.297,1386273.297,3798921.9202,3798921.9202 +24397200.0,611965.308,338148.843,987394.62156,247358.65374000004,247358.65374000004,247358.65374000004,196546.9205,531123.65888,3862792.5395200006,167842.60143,255760.15456000002,563740.9439999999,563740.9439999999,563740.9439999999,596709.0885000001,611965.308,611965.308,285142.07175999996,1074639.1823999998,1597364.9081599996,2786101.584,790722.1638399999,1005650.0003199999,188943.73200000002,188943.73200000002,188943.73200000002,188943.73200000002,1839975.6927199997,1839975.6927199997 +24400800.0,171113.36099999998,36369.46799999999,106198.84655999999,120807.8157,120807.8157,120807.8157,99502.52900000001,197630.09096,167241.28896000003,92073.94707,140303.15744,54915.663,54915.663,54915.663,44002.4095,171113.36099999998,171113.36099999998,85444.39747999999,51476.35859999999,76515.47623999999,133457.226,37876.43176,48171.70348,58833.263999999996,58833.263999999996,58833.263999999996,58833.263999999996,514480.8387399999,514480.8387399999 +24404400.0,115016.61600000001,447828.393,1307658.90756,111600.44192000001,111600.44192000001,111600.44192000001,284627.371,261493.20655999996,238084.87488000002,182969.10366,278810.06272,42746.22,42746.22,42746.22,307379.1735,115016.61600000001,115016.61600000001,37692.31921,57634.071749999996,85668.4227,149421.6675,42407.2923,53934.10665,62555.520000000004,62555.520000000004,62555.520000000004,62555.520000000004,345816.62544000003,345816.62544000003 +24408000.0,230053.07399999996,138977.23500000002,405813.5262,105380.3586,105380.3586,105380.3586,237475.90999999997,486214.46184,421619.5840000001,249973.16274,380911.48608,168767.93399999998,168767.93399999998,168767.93399999998,121834.9615,230053.07399999996,230053.07399999996,199461.82074,119763.12915,178018.28086,310497.0015,88122.00614,112074.63197,170989.227,170989.227,170989.227,170989.227,691692.9091599999,691692.9091599999 +24411600.0,164400.951,90472.197,264178.81524,75911.14509,75911.14509,75911.14509,85299.942,336431.87632,345343.16800000006,163523.67822,249178.93824000002,129703.53899999999,129703.53899999999,129703.53899999999,89710.698,164400.951,164400.951,152446.41801999998,85178.8629,126611.54435999999,220834.08899999998,62674.81764,79710.59022,119914.22099999999,119914.22099999999,119914.22099999999,119914.22099999999,494298.85934,494298.85934 +24415200.0,212864.226,134911.035,393940.2222,217316.50226,217316.50226,217316.50226,147319.599,433554.56279999996,139880.36288,395012.52756,601923.85152,116682.52799999999,116682.52799999999,116682.52799999999,321582.12450000003,212864.226,212864.226,429501.70132999995,197367.11505,293370.37841999996,511692.5205,145223.21057999998,184696.63359,84009.636,84009.636,84009.636,84009.636,640011.77284,640011.77284 +24418800.0,60591.996,301025.364,878994.06288,259718.69022,259718.69022,259718.69022,251033.2055,394285.31072,92390.66432,52483.953689999995,79975.54848,99727.59,99727.59,99727.59,399923.3175,60591.996,60591.996,361568.2291,142689.84300000002,212097.00120000003,369936.63000000006,104991.53880000001,133529.50740000003,99726.85800000001,99726.85800000001,99726.85800000001,99726.85800000001,182179.93464,182179.93464 +24422400.0,81050.946,40177.257,117317.59044,194036.45228000003,194036.45228000003,194036.45228000003,63825.156500000005,147084.342,143259.26656000002,60855.82167,92732.68063999999,45130.065,45130.065,45130.065,40919.606,81050.946,81050.946,97309.70067,35167.879349999996,52274.23054,91175.9835,25876.61246,32910.18833,41395.932,41395.932,41395.932,41395.932,243693.17763999998,243693.17763999998 +24426000.0,1245699.792,880865.4839999999,2572127.21328,473385.51359000005,473385.51359000005,473385.51359000005,1571165.855,2039679.3227199998,2369732.31552,1955441.6032200002,2979720.53824,1341385.5150000001,1341385.5150000001,1341385.5150000001,1016741.7575000001,1245699.792,1245699.792,726954.46304,1061118.9054,1577268.10136,2751049.014,780773.91064,992997.69172,1116110.436,1116110.436,1116110.436,1116110.436,3745404.0412799995,3745404.0412799995 +24429600.0,692214.36,464771.50800000003,1357132.80336,351728.0650400001,351728.0650400001,351728.0650400001,577321.612,1185590.1967999998,1794248.9139200002,942725.31675,1436533.816,578950.2749999999,578950.2749999999,578950.2749999999,749437.6645000001,692214.36,692214.36,479535.4704399999,701712.6106499999,1043039.4854599999,1819254.9164999998,516321.87153999996,656664.39367,633054.618,633054.618,633054.618,633054.618,2081257.8424,2081257.8424 +24433200.0,609871.4789999999,461538.033,1347691.05636,351053.39742000005,351053.39742000005,351053.39742000005,624976.996,1141861.46816,1899146.82368,921563.78265,1404287.6687999999,571959.5190000001,571959.5190000001,571959.5190000001,738178.6614999999,609871.4789999999,609871.4789999999,480284.82995999994,723119.7928499999,1074859.5439399998,1874755.0184999998,532073.3290599999,676697.2876299999,634176.588,634176.588,634176.588,634176.588,1833680.2468599998,1833680.2468599998 +24436800.0,610905.222,469187.463,1370027.39196,399500.95174000005,399500.95174000005,399500.95174000005,611515.3835,1117531.8004,1920929.9654400004,935124.0801,1424950.9792000002,578438.622,578438.622,578438.622,741825.8119999999,610905.222,610905.222,481254.61734999996,740035.926,1100004.0184,1918611.6600000001,544520.2616000001,692527.4468,633256.9439999999,633256.9439999999,633256.9439999999,633256.9439999999,1836788.3674799998,1836788.3674799998 +24440400.0,419452.21800000005,325955.73,951790.7316,311792.73664,311792.73664,311792.73664,379671.58599999995,568172.74152,1135501.5142400002,519476.30007,791582.93344,305413.275,305413.275,305413.275,374723.594,419452.21800000005,419452.21800000005,341968.07553999993,335708.61075,499003.9103,870355.6575,247015.2247,314156.94685,395936.952,395936.952,395936.952,395936.952,1261153.00212,1261153.00212 +24444000.0,77052.543,54003.56700000001,157690.41564000002,77634.88777,77634.88777,77634.88777,80444.10149999999,116656.46448,349848.92416000005,108227.70336000001,164918.40512000004,90005.964,90005.964,90005.964,78399.7095,77052.543,77052.543,94645.74469999998,50380.96725,74887.2649,130617.32250000001,37070.4401,47146.633550000006,61977.00899999999,61977.00899999999,61977.00899999999,61977.00899999999,231671.31261999998,231671.31261999998 +24447600.0,68224.94699999999,55486.164000000004,162019.59888,39392.73635000001,39392.73635000001,39392.73635000001,46500.6955,94923.22567999999,336438.66048,88689.27144000001,135145.55648000003,83338.296,83338.296,83338.296,65864.155,68224.94699999999,68224.94699999999,93149.67597,38160.630900000004,56722.71556,98934.96900000001,28078.68644,35710.812620000004,58984.704,58984.704,58984.704,58984.704,205129.67397999996,205129.67397999996 +24451200.0,62360.50199999999,56915.628,166193.63376,15567.167990000002,15567.167990000002,15567.167990000002,25342.2785,80015.45184,325110.5568,76013.19243,115829.62656,78363.699,78363.699,78363.699,57588.16350000001,62360.50199999999,62360.50199999999,112790.78667999999,30361.918499999996,45130.5554,78716.08499999999,22340.3746,28412.758299999998,56693.975999999995,56693.975999999995,56693.975999999995,56693.975999999995,187497.24268,187497.24268 +24454800.0,62098.914,59419.857,173505.98244000002,19521.706159999998,19521.706159999998,19521.706159999998,20657.4235,99372.47055999999,326901.25248,74468.30244,113475.50848,78488.586,78488.586,78488.586,57282.49799999999,62098.914,62098.914,113201.51257999998,28888.763399999996,42940.828559999994,74896.794,21256.42344,27034.176119999996,56003.466,56003.466,56003.466,56003.466,186710.73476,186710.73476 +24458400.0,65919.213,64781.225999999995,189161.17992,18471.93513,18471.93513,18471.93513,16919.4165,117504.00031999999,348846.14720000006,80971.8105,123385.61600000002,84757.662,84757.662,84757.662,60243.903999999995,65919.213,65919.213,126878.28581999999,28948.743899999998,43029.98475999999,75052.299,21300.55724,27090.30602,58190.28600000001,58190.28600000001,58190.28600000001,58190.28600000001,198197.10042,198197.10042 +24462000.0,67981.014,64576.83,188564.3436,17239.56355,17239.56355,17239.56355,15876.5145,112299.18792000001,326540.66752,83468.22498000001,127189.67616000002,78725.313,78725.313,78725.313,56395.31799999999,67981.014,67981.014,124965.95487999999,34230.761999999995,50881.28079999999,88746.41999999998,25187.079199999996,32033.231599999996,55713.54,55713.54,55713.54,55713.54,204396.24876,204396.24876 +24465600.0,69864.44099999999,66640.599,194590.54908,18986.692450000002,18986.692450000002,18986.692450000002,17075.807,110386.02144,318458.49216,88996.15515,135613.18880000003,76573.896,76573.896,76573.896,55584.767,69864.44099999999,69864.44099999999,126521.96101999999,34147.36845,50757.32298,88530.2145,25125.71802,31955.191710000003,55958.034,55958.034,55958.034,55958.034,210059.08593999996,210059.08593999996 +24469200.0,114324.669,92699.745,270683.2554,42811.12935,42811.12935,42811.12935,28214.3575,438152.2488,337428.60992,164976.71127,251393.08384000004,80561.38799999999,80561.38799999999,80561.38799999999,93312.01249999998,114324.669,114324.669,319510.95514,46278.6777,68789.54068,119981.75700000001,34051.96532,43307.700860000004,114087.135,114087.135,114087.135,114087.135,343736.17146,343736.17146 +24472800.0,561307.794,273798.246,799490.8783199999,284011.82018000004,284011.82018000004,284011.82018000004,462601.80400000006,1989818.7517600001,1459048.8,1334371.5902999998,2033328.1375999998,411155.61299999995,411155.61299999995,411155.61299999995,439241.159,561307.794,561307.794,1521125.91995,591654.9987,879447.67708,1533920.367,435341.20892,553672.20866,691344.222,691344.222,691344.222,691344.222,1687665.4339599998,1687665.4339599998 +24476400.0,559622.586,753759.09,2200976.5428,555334.6095,555334.6095,555334.6095,1024873.0695,2635744.47656,1546836.1689600002,1870224.7829999998,2849866.336,759074.886,759074.886,759074.886,809055.3695,559622.586,559622.586,946743.36302,1143964.5268499998,1700411.4695399997,2965833.9584999997,841731.92346,1070524.82883,836535.6120000001,836535.6120000001,836535.6120000001,836535.6120000001,1682598.57524,1682598.57524 +24480000.0,1178551.3080000002,645925.0260000001,1886101.07592,297325.65709,297325.65709,297325.65709,450804.49749999994,1440428.82848,2716919.2736000004,1295088.0845699997,1973467.5574399997,742498.9920000001,742498.9920000001,742498.9920000001,448957.25700000004,1178551.3080000002,1178551.3080000002,481408.60469,532221.9250500001,791105.1824200001,1379834.6205000002,391610.20658000006,498054.5915900001,1246599.729,1246599.729,1246599.729,1246599.729,3543510.9327200004,3543510.9327200004 +24483600.0,563899.392,321784.65,939611.178,232654.85485,232654.85485,232654.85485,181917.65550000002,464167.45152,3462158.8108800002,152663.49567,232630.08864,535445.6129999999,535445.6129999999,535445.6129999999,553216.7655,563899.392,563899.392,249452.20845999997,969195.0266999999,1440630.6322799998,2512727.847,713136.09372,906975.0990599999,169538.682,169538.682,169538.682,169538.682,1695457.50528,1695457.50528 +24487200.0,149184.76499999998,32545.233,95032.08035999999,117754.0133,117754.0133,117754.0133,100865.072,165413.12944,144521.06368000002,91642.84542,139646.24064,51714.849,51714.849,51714.849,44151.989,149184.76499999998,149184.76499999998,80918.10570999999,52291.41299999999,77726.9892,135570.33,38476.150799999996,48934.433399999994,58185.552,58185.552,58185.552,58185.552,448548.86009999993,448548.86009999993 +24490800.0,190231.614,496531.593,1449872.2515599998,121403.41950000002,121403.41950000002,121403.41950000002,283498.9745,451927.44808,420582.5568,276658.01436,421574.11712,106394.187,106394.187,106394.187,309488.87200000003,190231.614,190231.614,120415.13691999999,95721.23160000001,142281.92944,248166.15600000002,70431.91856,89576.16488000001,130986.522,130986.522,130986.522,130986.522,571963.05276,571963.05276 +24494400.0,250908.348,165597.102,483543.53784,111514.90273,111514.90273,111514.90273,264305.44700000004,524233.48672,632776.5132800001,300133.63527,457346.49184000003,203306.96399999998,203306.96399999998,203306.96399999998,164594.15,250908.348,250908.348,240497.21981999997,176871.94425,262905.9517,458556.8925,130142.8133,165517.20215,200148.642,200148.642,200148.642,200148.642,754397.7663199999,754397.7663199999 +24498000.0,139698.96899999998,77743.13399999999,227009.95127999998,73695.49,73695.49,73695.49,82971.5915,275083.24864,289750.18688000005,137373.58487999998,209331.17695999998,107950.158,107950.158,107950.158,73333.946,139698.96899999998,139698.96899999998,131888.51168999998,77651.35065000001,115422.50146000001,201318.31650000002,57136.05554000001,72666.32567,99662.049,99662.049,99662.049,99662.049,420028.23345999996,420028.23345999996 +24501600.0,200375.62199999997,136067.95200000002,397318.41984000005,221164.01164000004,221164.01164000004,221164.01164000004,131861.1875,422481.2804,124310.0384,388400.37348,591848.18816,107962.62599999999,107962.62599999999,107962.62599999999,312124.9915,200375.62199999997,200375.62199999997,434892.03745,188556.83414999998,280274.6028599999,488851.05149999994,138740.58414,176451.95096999998,73783.65,73783.65,73783.65,73783.65,602462.7034799999,602462.7034799999 +24505200.0,69684.651,297893.517,869849.0696399999,260556.923,260556.923,260556.923,254023.9205,402540.04559999995,109036.12864,58555.19607,89226.96544,118093.341,118093.341,118093.341,386252.167,69684.651,69684.651,367021.30685999995,143932.63815,213944.31646,373158.6915,105905.99054000001,134692.51817000002,101791.61099999999,101791.61099999999,101791.61099999999,101791.61099999999,209518.51734,209518.51734 +24508800.0,86765.83499999999,46615.797,136118.12724,189794.44594,189794.44594,189794.44594,71268.3195,160233.89623999997,151477.02848,70768.26645000001,107837.35840000001,49869.79500000001,49869.79500000001,49869.79500000001,48341.776,86765.83499999999,86765.83499999999,104908.01438,38519.88615,57256.71966,99866.37150000001,28343.02734,36047.004570000005,48995.19,48995.19,48995.19,48995.19,260875.94389999998,260875.94389999998 +24512400.0,1227378.114,840126.705,2453169.9786,532953.99696,532953.99696,532953.99696,1564463.922,1950921.54272,2321825.46688,1929687.8983200002,2940476.7974400003,1300635.432,1300635.432,1300635.432,1007055.7139999999,1227378.114,1227378.114,719392.5225499999,1060256.21085,1575985.77514,2748812.3985,780139.13786,992190.38003,1072210.29,1072210.29,1072210.29,1072210.29,3690316.86276,3690316.86276 +24516000.0,583166.463,386846.94899999996,1129593.09108,322175.11128,322175.11128,322175.11128,503685.36400000006,995090.9444,1512404.6464000002,799227.9197699999,1217871.1158399999,483635.52,483635.52,483635.52,613709.0155,583166.463,583166.463,407281.27622,593197.93125,881741.1224999999,1537920.5625,436476.5025,555116.08875,542522.424,542522.424,542522.424,542522.424,1753387.16542,1753387.16542 +24519600.0,519575.454,385489.578,1125629.56776,345359.41451000003,345359.41451000003,345359.41451000003,535917.7355,952325.33688,1535701.4246400003,778201.7271000001,1185831.2032000003,468582.546,468582.546,468582.546,600280.7509999999,519575.454,519575.454,404559.6675899999,597375.2835,887950.4214,1548750.735,439550.2086,559025.2653000001,526825.107,526825.107,526825.107,526825.107,1562190.1983599998,1562190.1983599998 +24523200.0,514899.63000000006,387603.009,1131800.7862800001,353222.58532,353222.58532,353222.58532,518971.565,922313.4250400001,1565347.19424,787371.0474,1199803.5008,469192.002,469192.002,469192.002,593782.364,514899.63000000006,514899.63000000006,403194.80603999994,601958.10555,894762.4186199999,1560632.1254999998,442922.26038,563313.8814899999,521967.042,521967.042,521967.042,521967.042,1548131.5542000001,1548131.5542000001 +24526800.0,352504.521,265104.282,774104.50344,272799.45044000004,272799.45044000004,272799.45044000004,312748.5305,460467.52536,893268.3782400001,422287.33953,643485.46976,240114.138,240114.138,240114.138,291358.151,352504.521,352504.521,282727.06214999995,267081.7536,396995.59424,692434.1760000001,196519.41376000002,249935.76448000004,322611.534,322611.534,322611.534,322611.534,1059863.59314,1059863.59314 +24530400.0,64017.417,42884.787,125223.57804,76951.29464000001,76951.29464000001,76951.29464000001,75306.4935,98887.68048,270344.18368,91823.49707999999,139921.51935999998,67606.03199999999,67606.03199999999,67606.03199999999,64614.83349999999,64017.417,64017.417,76005.71524,43256.74185,64297.67554,112147.1085,31828.41746,40479.76583,51081.678,51081.678,51081.678,51081.678,192479.03378,192479.03378 +24534000.0,54947.088,39653.919,115789.44348,38656.237290000005,38656.237290000005,38656.237290000005,42223.496,75699.31808000001,256214.05568000002,72078.94491,109834.58272,60742.152,60742.152,60742.152,51939.86350000001,54947.088,54947.088,70669.97262,31598.869499999997,46969.18379999999,81922.995,23250.5262,29570.3001,49590.654,49590.654,49590.654,49590.654,165207.57791999998,165207.57791999998 +24537600.0,50040.951,40973.622,119642.97623999999,14875.499980000002,14875.499980000002,14875.499980000002,21381.787,63582.708000000006,252209.19296000004,60688.84857000001,92478.24544000001,57852.46799999999,57852.46799999999,57852.46799999999,44876.286,50040.951,50040.951,68410.43183,24336.05715,36173.596059999996,63093.4815,17906.53094,22773.74237,45146.721000000005,45146.721000000005,45146.721000000005,45146.721000000005,150456.45933999997,150456.45933999997 +24541200.0,48261.6,41679.876,121705.23792,9351.51283,9351.51283,9351.51283,16365.195000000002,59814.97359999999,247405.43360000002,57255.87777,87247.05184,56113.056,56113.056,56113.056,42568.2635,48261.6,48261.6,67190.6495,22344.542550000002,33213.36942,57930.2955,16441.16958,20910.078090000003,43458.255,43458.255,43458.255,43458.255,145106.544,145106.544 +24544800.0,47957.613,43234.17,126243.77639999999,12255.94216,12255.94216,12255.94216,11723.8135,65363.8788,250621.20256000003,55308.12231,84279.04352,56647.971,56647.971,56647.971,41978.14950000001,47957.613,47957.613,86255.14222,20961.8361,31158.08724,54345.501000000004,15423.770760000001,19616.137980000003,42949.119,42949.119,42949.119,42949.119,144192.55641999998,144192.55641999998 +24548400.0,58700.31,57141.459,166853.06028,16800.284380000005,16800.284380000005,16800.284380000005,14933.908499999998,92028.19168,319750.20928,68172.069,103881.24799999999,76289.853,76289.853,76289.853,54637.7405,58700.31,58700.31,108475.75491999998,26189.49105,38928.576819999995,67898.6805,19270.29218,24508.19039,52569.57000000001,52569.57000000001,52569.57000000001,52569.57000000001,176492.2654,176492.2654 +24552000.0,64280.334,59906.37,174926.6004,18785.58154,18785.58154,18785.58154,16640.3475,101821.26432,322253.13152,72224.76744,110056.78848,77158.449,77158.449,77158.449,55553.68000000001,64280.334,64280.334,111002.94815999999,31782.7314,47242.47976,82399.67400000001,23385.812240000003,29742.35852,53274.67199999999,53274.67199999999,53274.67199999999,53274.67199999999,193269.53756,193269.53756 +24555600.0,69466.60800000001,65137.983,190202.91036,28486.170130000002,28486.170130000002,28486.170130000002,24978.078999999998,116952.0444,331097.38560000004,84648.96195000001,128988.89440000002,80920.00200000001,80920.00200000001,80920.00200000001,59468.531500000005,69466.60800000001,69466.60800000001,124430.49605999999,37228.7097,55337.48947999999,96518.877,27392.976519999997,34838.71846,56125.74600000001,56125.74600000001,56125.74600000001,56125.74600000001,208862.93472,208862.93472 +24559200.0,584710.9739999999,517286.64,1510476.9888,405152.32989000005,405152.32989000005,405152.32989000005,598163.1145,933690.6210399999,660669.69984,658976.9879699999,1004155.4102399999,298632.0,298632.0,298632.0,890525.5555,584710.9739999999,584710.9739999999,1089466.55363,282096.87749999994,419314.3709999999,731362.2749999999,207567.57899999997,263986.95449999993,682120.38,682120.38,682120.38,682120.38,1758030.99516,1758030.99516 +24562800.0,1185188.334,1095393.144,3198547.98048,1106498.9708300002,1106498.9708300002,1106498.9708300002,1103294.4335,1729182.2848799997,1963205.6307200002,1664358.16596,2536164.8243199997,705333.0210000001,705333.0210000001,705333.0210000001,867767.9325,1185188.334,1185188.334,625310.5146599999,914993.5891499999,1360064.5448599998,2372205.6015,673254.54214,856253.25997,1234028.268,1234028.268,1234028.268,1234028.268,3563466.25756,3563466.25756 +24566400.0,1081408.029,815752.3169999998,2381996.7656399994,625151.69475,625151.69475,625151.69475,686190.6205000001,1638307.6684,3712572.7929600007,1377670.15428,2099306.90176,1176319.467,1176319.467,1176319.467,852629.9180000001,1081408.029,1081408.029,464085.74081999995,1380357.4823999999,2051790.6281599996,3578704.584,1015670.44384,1291741.9403199998,768605.6190000001,768605.6190000001,768605.6190000001,768605.6190000001,3251433.47386,3251433.47386 +24570000.0,656953.086,361777.02900000004,1056388.92468,364365.98891,364365.98891,364365.98891,1059260.3315,1558156.54752,2346505.57184,1242949.03152,1894017.57184,937541.673,937541.673,937541.673,1157043.279,656953.086,656953.086,624333.1707599999,1206367.9596000002,1793169.16464,3127620.6360000004,887648.5233600001,1128922.1152800003,751496.031,751496.031,751496.031,751496.031,1975238.9452399998,1975238.9452399998 +24573600.0,345293.292,235832.934,688632.16728,336090.31104,336090.31104,336090.31104,569611.385,1034675.73752,1367246.9830400003,698684.7270900001,1064662.4412800001,273345.98099999997,273345.98099999997,273345.98099999997,487718.931,345293.292,345293.292,112297.35763999999,500248.90845,743579.8589799999,1296941.6145,368084.38201999996,468134.16371,335543.832,335543.832,335543.832,335543.832,1038181.83128,1038181.83128 +24577200.0,225309.26400000002,126260.763,368681.42796,116990.50165000002,116990.50165000002,116990.50165000002,176800.624,514651.96223999996,421862.44736000005,314754.81807000004,479626.38944,200533.54499999998,200533.54499999998,200533.54499999998,143477.6665,225309.26400000002,225309.26400000002,98484.51912,134540.25075,199983.2863,348808.0575,98995.0487,125903.09885000001,193078.07400000002,193078.07400000002,193078.07400000002,193078.07400000002,677429.85376,677429.85376 +24580800.0,367662.42600000004,280493.016,819039.60672,118902.88883000001,118902.88883000001,118902.88883000001,336519.8515,714046.32888,964182.90176,533078.32389,812309.82688,361828.377,361828.377,361828.377,367119.809,367662.42600000004,367662.42600000004,215607.47559,348815.21264999994,518485.82225999987,904335.7364999999,256659.09473999997,326422.13726999995,342687.006,342687.006,342687.006,342687.006,1105438.36084,1105438.36084 +24584400.0,226947.384,149034.396,435180.43632,82980.66183,82980.66183,82980.66183,176872.0975,433623.0835199999,505844.06848,298507.01201999997,454867.82784,208739.66700000002,208739.66700000002,208739.66700000002,183920.82100000003,226947.384,226947.384,121949.33451999999,166969.00574999998,248186.02829999998,432882.6075,122856.2067,156250.00785,187629.243,187629.243,187629.243,187629.243,682355.1345599999,682355.1345599999 +24588000.0,140385.138,68842.809,201021.00228,66035.37963000001,66035.37963000001,66035.37963000001,88182.41949999999,259494.74688,232134.35264000003,158470.50324,241478.86208,114910.86300000001,114910.86300000001,114910.86300000001,69712.07599999999,140385.138,140385.138,54770.44547,58707.90495,87264.58958,152205.6795,43197.42142,54939.00241,97719.588,97719.588,97719.588,97719.588,422091.31492,422091.31492 +24591600.0,99956.79900000001,40734.327000000005,118944.23484,50784.57681,50784.57681,50784.57681,54475.386,172403.02544,145337.85792,100444.0038,153057.5296,69987.23999999999,69987.23999999999,69987.23999999999,40592.4295,99956.79900000001,99956.79900000001,31280.223649999996,31953.775049999997,47496.72242,82843.1205,23511.66658,29902.42159,58843.91100000001,58843.91100000001,58843.91100000001,58843.91100000001,300536.77566000004,300536.77566000004 +24595200.0,160066.719,80466.531,234962.27052,60158.22637000001,60158.22637000001,60158.22637000001,92639.4875,299557.25784,272407.95648,184068.05907,280484.66144,136551.12300000002,136551.12300000002,136551.12300000002,79273.63500000001,160066.719,160066.719,65399.54979999999,66489.24285,98830.92393999998,172379.51849999998,48922.94905999999,62220.797629999994,115404.876,115404.876,115404.876,115404.876,481267.26846,481267.26846 +24598800.0,515185.002,415523.01599999995,1213327.20672,137167.63654000004,137167.63654000004,137167.63654000004,464387.1715,1010144.946,1421528.6195200002,762014.27673,1161164.61216,520345.392,520345.392,520345.392,566794.0215,515185.002,515185.002,359014.07580999995,528454.37205,785505.0172199999,1370066.8905,388838.03178,494528.90619,491799.90900000004,491799.90900000004,491799.90900000004,491799.90900000004,1548989.57268,1548989.57268 +24602400.0,580781.1510000001,459241.38899999997,1340984.85588,294441.29286,294441.29286,294441.29286,624731.198,1128280.27952,1900170.7296000002,900202.2624,1371736.7808,571630.185,571630.185,571630.185,726166.5495,580781.1510000001,580781.1510000001,502427.91988999996,706908.79305,1050763.1936199998,1832726.5004999998,520145.23537999997,661526.99399,617725.443,617725.443,617725.443,617725.443,1746215.3273399998,1746215.3273399998 +24606000.0,599080.14,472991.319,1381134.65148,364965.63422,364965.63422,364965.63422,642278.5075000001,1148892.47192,1926961.3151999998,935865.2870700001,1426080.43744,585124.932,585124.932,585124.932,741498.093,599080.14,599080.14,532619.5251,740386.7693999999,1100525.5189599998,1919521.2539999997,544778.4130399999,692855.76692,632124.657,632124.657,632124.657,632124.657,1801234.2876,1801234.2876 +24609600.0,555837.654,443673.08999999997,1295525.4228,315985.49191000004,315985.49191000004,315985.49191000004,507323.27099999995,928042.8446400001,1352910.048,769284.44103,1172242.9577600001,449418.135,449418.135,449418.135,580706.5145,555837.654,555837.654,507228.84342,583915.02345,867942.8249799999,1513853.7645,429646.11602,546429.12071,548647.1370000001,548647.1370000001,548647.1370000001,548647.1370000001,1671218.5463599998,1671218.5463599998 +24613200.0,250924.224,178773.729,522019.28868,212117.18715,212117.18715,212117.18715,243470.00300000003,427170.38576,502619.13856000005,340770.45386999997,519269.26304,186679.533,186679.533,186679.533,263554.802,250924.224,250924.224,352307.72368999996,126911.89755,188644.35142,329030.8455,93382.08758,118764.46709,284156.442,284156.442,284156.442,284156.442,754445.5001599999,754445.5001599999 +24616800.0,82098.27,67662.357,197574.08244000003,81799.1449,81799.1449,81799.1449,80855.481,143687.00960000002,370329.27296000003,137457.3081,209458.7552,97029.56400000001,97029.56400000001,97029.56400000001,81519.9735,82098.27,82098.27,137645.27842,51457.951349999996,76488.11533999999,133409.5035,37862.88766,48154.47793,76607.54699999999,76607.54699999999,76607.54699999999,76607.54699999999,246842.1318,246842.1318 +24620400.0,74015.787,65264.28300000001,190571.70636,53905.20047,53905.20047,53905.20047,47167.176,121978.77183999999,361875.70879999996,120373.17306,183425.78752,91760.766,91760.766,91760.766,70558.257,74015.787,74015.787,134048.67787999997,39633.79815,58912.46046,102754.29150000002,29162.646540000005,37089.40617000001,70883.694,70883.694,70883.694,70883.694,222540.79958,222540.79958 +24624000.0,69789.801,64584.49800000001,188586.73416,30532.45217,30532.45217,30532.45217,26550.4015,111688.41152,361577.39008000004,111516.88989,169930.49888000003,89919.429,89919.429,89919.429,65321.207,69789.801,69789.801,133642.32426999998,33149.88585,49274.64514,85944.1485,24391.76786,31021.745030000002,66902.022,66902.022,66902.022,66902.022,209834.66833999997,209834.66833999997 +24627600.0,69350.556,65459.826,191142.69191999998,25119.462059999998,25119.462059999998,25119.462059999998,21759.629500000003,125756.21816,362126.04672000004,109615.11603000002,167032.55776000003,89212.14300000001,89212.14300000001,89212.14300000001,64193.143000000004,69350.556,69350.556,133259.28472999998,32188.330800000003,47845.37072,83451.228,23684.25328,30121.91944,65941.113,65941.113,65941.113,65941.113,208514.00504,208514.00504 +24631200.0,72945.378,70804.248,206748.40416,19921.36388,19921.36388,19921.36388,16780.0955,121388.59896,357503.18912,109334.97603,166605.67776,87351.405,87351.405,87351.405,61854.04750000001,72945.378,72945.378,131444.39958,37071.998999999996,55104.5516,96112.59,27277.6684,34692.0682,64879.770000000004,64879.770000000004,64879.770000000004,64879.770000000004,219322.43652,219322.43652 +24634800.0,73572.264,70791.912,206712.38304,20362.70654,20362.70654,20362.70654,16343.187,118089.62384,347761.78112000006,107760.31875,164206.2,84594.963,84594.963,84594.963,60162.63749999999,73572.264,73572.264,133545.56631,36113.355899999995,53679.60555999999,93627.21899999998,26572.296439999995,33794.967619999996,63405.285,63405.285,63405.285,63405.285,221207.27375999998,221207.27375999998 +24638400.0,71566.056,69616.701,203280.76692,21416.519080000002,21416.519080000002,21416.519080000002,21640.5595,114639.2876,334650.49984,106447.84353,162206.23776000002,80943.693,80943.693,80943.693,58303.4935,71566.056,71566.056,135018.78272999998,35288.0145,52452.801799999994,91487.445,25965.0082,33022.6111,61805.384999999995,61805.384999999995,61805.384999999995,61805.384999999995,215175.27503999998,215175.27503999998 +24642000.0,72079.584,68513.259,200058.71628,29975.232540000005,29975.232540000005,29975.232540000005,29191.316,116688.67208,327259.42208,115005.71481,175246.80352000002,79789.551,79789.551,79789.551,60298.448000000004,72079.584,72079.584,132281.85906,38066.512950000004,56582.81678,98690.95950000001,28009.434220000003,35622.73681,65367.039,65367.039,65367.039,65367.039,216719.28255999996,216719.28255999996 +24645600.0,628614.402,580347.2309999999,1694613.9145199999,457322.16376,457322.16376,457322.16376,669836.426,999568.5016000001,699594.4448000002,747379.83075,1138864.504,317577.195,317577.195,317577.195,996674.1225,628614.402,628614.402,1152297.3036899997,312287.94269999996,464190.9666799999,809635.4069999999,229782.23931999996,292239.82785999996,755979.996,755979.996,755979.996,755979.996,1890033.96868,1890033.96868 +24649200.0,1263032.6940000001,1199769.768,3503327.7225599997,1252264.2544500001,1252264.2544500001,1252264.2544500001,1210502.8705,1842580.2863199997,2102710.91648,1835111.26743,2796360.02656,765615.9809999999,765615.9809999999,765615.9809999999,921462.1605,1263032.6940000001,1263032.6940000001,613101.1040699999,999171.32445,1485187.9933799999,2590444.1745,735192.72762,935026.99251,1334331.477,1334331.477,1334331.477,1334331.477,3797518.2999600004,3797518.2999600004 +24652800.0,1168364.619,868493.8259999999,2536001.97192,713053.1860100001,713053.1860100001,713053.1860100001,800246.5939999999,1791134.9379200002,4206707.83808,1449476.15589,2208725.57088,1256003.601,1256003.601,1256003.601,963580.3765,1168364.619,1168364.619,493640.3240599999,1555509.9465,2312140.7106,4032803.5650000004,1144548.0594000001,1455650.0487000002,815704.8809999999,815704.8809999999,815704.8809999999,815704.8809999999,3512882.9544599997,3512882.9544599997 +24656400.0,668208.366,359847.708,1050755.30736,455678.76695,455678.76695,455678.76695,1174321.995,1602014.8132000002,2542515.76768,1336263.31776,2036210.7699199999,984939.939,984939.939,984939.939,1234082.7065,668208.366,668208.366,684749.7096699999,1301124.4649999999,1934017.1059999997,3373285.65,957370.5939999999,1217595.487,796782.1199999999,796782.1199999999,796782.1199999999,796782.1199999999,2009079.82044,2009079.82044 +24660000.0,293544.711,204225.76799999998,596339.2425599999,386358.93395000004,386358.93395000004,386358.93395000004,586299.6335,974243.18976,1342109.76576,667883.2809600001,1017726.9043200002,220787.325,220787.325,220787.325,487779.1624999999,293544.711,293544.711,86704.59823999999,518896.044,771297.3296,1345286.04,381804.9904,485584.19920000003,307174.425,307174.425,307174.425,307174.425,882591.09774,882591.09774 +24663600.0,98658.069,40772.166,119054.72472,109766.80110000001,109766.80110000001,109766.80110000001,95077.605,271425.59823999996,108403.8592,165412.80714,252057.61088,54024.966,54024.966,54024.966,51014.5055,98658.069,98658.069,24352.986709999997,48353.31045,71873.31577999999,125360.4345,35578.48522,45249.14731,77043.282,77043.282,77043.282,77043.282,296631.92746,296631.92746 +24667200.0,133144.968,69403.191,202657.31772,89950.67928000001,89950.67928000001,89950.67928000001,109743.87200000002,229430.08232000002,181375.17056,160127.26086,244003.44512000002,85547.412,85547.412,85547.412,62416.8125,133144.968,133144.968,55861.56029999999,65677.69979999999,97624.63031999998,170275.51799999998,48325.81367999999,61461.353639999994,84166.02,84166.02,84166.02,84166.02,400322.53711999994,400322.53711999994 +24670800.0,42613.104,12720.354000000001,37143.43368,67705.21515999999,67705.21515999999,67705.21515999999,59395.2555,70049.3984,34013.83936,55688.89536000001,84859.26912000001,12659.454000000002,12659.454000000002,12659.454000000002,21115.146500000003,42613.104,42613.104,7774.446289999999,21476.595149999997,31923.235259999994,55680.061499999996,15802.531739999999,20097.850769999997,26862.594,26862.594,26862.594,26862.594,128123.39936,128123.39936 +24674400.0,27617.552999999996,7075.164,20659.47888,57404.28936,57404.28936,57404.28936,49914.4835,53877.89528,19838.13504,40461.24327,61655.22784,9287.607,9287.607,9287.607,17829.9695,27617.552999999996,27617.552999999996,6694.66382,17734.6584,26361.146559999997,45978.744,13049.20544,16596.13712,20365.014,20365.014,20365.014,20365.014,83036.77601999999,83036.77601999999 +24678000.0,16992.42,4300.551,12557.60892,44062.53632,44062.53632,44062.53632,38643.472,39036.17768,12526.883840000002,27355.033440000003,41683.86048,6881.694,6881.694,6881.694,13803.846000000001,16992.42,16992.42,5182.962589999999,13730.05485,20408.62474,35596.438500000004,10102.60826,12848.61923,14183.892,14183.892,14183.892,14183.892,51090.542799999996,51090.542799999996 +24681600.0,29854.790999999997,7328.277,21398.56884,50292.70103,50292.70103,50292.70103,43473.906,53322.80328,19958.36992,40367.72481,61512.72352000001,8316.201000000001,8316.201000000001,8316.201000000001,15529.3285,29854.790999999997,29854.790999999997,5830.8359199999995,15446.315249999998,22959.708099999996,40046.002499999995,11365.436899999999,14454.699949999998,20633.232,20633.232,20633.232,20633.232,89763.40494,89763.40494 +24685200.0,178331.769,79015.854,230726.29368,90360.76434000001,90360.76434000001,90360.76434000001,92251.78199999999,230709.76648,248041.61984,168792.27603,257207.27776000003,98943.045,98943.045,98943.045,44906.6765,178331.769,178331.769,35933.441699999996,65191.331249999996,96901.6825,169014.5625,47967.9425,61006.20875,83294.538,83294.538,83294.538,83294.538,536184.18546,536184.18546 +24688800.0,319217.385,184874.259,539832.8362799999,159533.65813,159533.65813,159533.65813,253526.36400000003,572551.9297600001,481781.24032,368090.92866000003,560900.4627200001,262089.987,262089.987,262089.987,161259.0455,319217.385,319217.385,174554.48633999997,171815.31269999998,255389.67467999997,445447.107,126422.13132,160785.19386,250873.512,250873.512,250873.512,250873.512,959780.2708999999,959780.2708999999 +24692400.0,378742.767,229499.93699999998,670139.81604,168331.17884,168331.17884,168331.17884,320120.759,709458.09784,745993.93472,521562.17904,794761.4156800001,350511.83999999997,350511.83999999997,350511.83999999997,270284.1855,378742.767,378742.767,235900.66838,307976.48685,457782.33354,798457.5585,226609.85946,288205.15683,325282.047,325282.047,325282.047,325282.047,1138753.25278,1138753.25278 +24696000.0,373602.075,277797.921,811169.92932,163459.38477,163459.38477,163459.38477,324363.214,602061.28624,760709.77664,463426.27527,706173.37184,284325.663,284325.663,284325.663,224675.5805,373602.075,373602.075,327720.46593,316787.86125,470879.7345,821301.8625,233093.2905,296450.86275000003,329248.752,329248.752,329248.752,329248.752,1123296.9055,1123296.9055 +24699600.0,185170.56600000002,120089.013,350659.91796,152293.44966,152293.44966,152293.44966,146529.7015,295194.67272,361666.4864,226506.10059,345152.15327999997,115844.073,115844.073,115844.073,173570.761,185170.56600000002,185170.56600000002,229451.80999,75973.2291,112928.10844,196967.631,55901.28956,71095.93538,189723.432,189723.432,189723.432,189723.432,556746.16844,556746.16844 +24703200.0,63030.06,47696.172,139272.82224,76376.71646000001,76376.71646000001,76376.71646000001,70438.5045,86501.17480000001,274042.45888,87980.69112,134065.81504000002,49676.223,49676.223,49676.223,62203.15499999999,63030.06,63030.06,80288.61619999997,42397.69634999999,63020.77333999999,109919.95349999999,31196.329659999996,39675.86893,50241.513000000006,50241.513000000006,50241.513000000006,50241.513000000006,189510.3804,189510.3804 +24706800.0,57578.397,48684.354,142158.31368,37994.264,37994.264,37994.264,36761.2595,70316.50248000001,272908.87168000004,72915.83901,111109.84992000001,47454.71399999999,47454.71399999999,47454.71399999999,52919.468,57578.397,57578.397,94076.77460999998,31154.471099999995,46308.62123999999,80770.851,22923.53676,29154.430979999997,43443.129,43443.129,43443.129,43443.129,173119.04697999998,173119.04697999998 +24710400.0,54348.18000000001,50381.667,147114.46764,14262.684150000001,14262.684150000001,14262.684150000001,15998.584,72839.56352,278060.85632,63306.81966,96467.53472000001,55384.734,55384.734,55384.734,48192.203499999996,54348.18000000001,54348.18000000001,101232.69338,24880.632299999997,36983.063319999994,64505.343,18307.23068,23283.35714,44169.246,44169.246,44169.246,44169.246,163406.8612,163406.8612 +24714000.0,55255.134000000005,51917.34900000001,151598.65908,9256.77137,9256.77137,9256.77137,11341.988000000001,82680.54752000001,288547.84896000003,62803.02168,95699.84256,67942.023,67942.023,67942.023,48972.8295,55255.134000000005,55255.134000000005,105733.53543999998,24051.36645,35750.42618,62355.3945,17697.05482,22507.328110000002,48559.989,48559.989,48559.989,48559.989,166133.76956,166133.76956 +24717600.0,55922.217000000004,53492.01299999999,156196.67795999997,4040.7082100000002,4040.7082100000002,4040.7082100000002,9561.628999999999,96704.84031999999,299226.09024000005,72506.43854999999,110486.0016,71162.55,71162.55,71162.55,50150.765,55922.217000000004,55922.217000000004,109557.63454999999,23220.517049999995,34515.43521999999,60201.34049999999,17085.71378,21729.817189999998,52825.958999999995,52825.958999999995,52825.958999999995,52825.958999999995,168139.46578,168139.46578 +24721200.0,60736.01400000001,57364.545,167504.47139999998,6476.72124,6476.72124,6476.72124,14055.919499999998,103775.12392,315650.84288,88684.51872,135138.31423999998,75890.04000000001,75890.04000000001,75890.04000000001,52992.9925,60736.01400000001,60736.01400000001,115567.0321,28627.43715,42552.38806,74219.28150000001,21064.13894,26789.62637,55836.495,55836.495,55836.495,55836.495,182612.94876000003,182612.94876000003 +24724800.0,64712.064000000006,57896.981999999996,169059.18743999998,18308.26822,18308.26822,18308.26822,15522.766,105270.18728,312758.73216,93665.22438000001,142727.96096000003,75213.26699999999,75213.26699999999,75213.26699999999,53121.70850000001,64712.064000000006,64712.064000000006,114650.56356,31838.50395,47325.38118,82544.26950000001,23426.84982,29794.550610000002,55770.561,55770.561,55770.561,55770.561,194567.60576,194567.60576 +24728400.0,100752.18,82235.949,240128.97108,39588.1981,39588.1981,39588.1981,23895.448500000002,389290.24192,322766.15616,142628.22882,217338.25344,78528.71100000001,78528.71100000001,78528.71100000001,75637.926,100752.18,100752.18,289690.35965999996,40869.0441,60748.55443999999,105956.78099999999,30071.54356,38245.35238,105509.84999999999,105509.84999999999,105509.84999999999,105509.84999999999,302928.22119999997,302928.22119999997 +24732000.0,483756.099,248680.51800000004,726147.11256,252530.68764000002,252530.68764000002,252530.68764000002,333037.754,1825251.59304,1203401.1027200003,1104232.7694299999,1682640.41056,353976.51300000004,353976.51300000004,353976.51300000004,305306.519,483756.099,483756.099,1487086.2474,449286.19109999994,667827.8692399999,1164816.051,330585.88876,420443.12698,593536.491,593536.491,593536.491,593536.491,1454493.33766,1454493.33766 +24735600.0,526638.3030000001,740289.78,2161646.1576,525384.1714,525384.1714,525384.1714,933360.176,2591133.54,1482599.1584,1779920.0118000002,2712259.0656000003,736348.806,736348.806,736348.806,743014.8775,526638.3030000001,526638.3030000001,1096473.8434,1074106.0647,1596572.47148,2784719.427,790329.89452,1005151.1074600001,759391.881,759391.881,759391.881,759391.881,1583425.8310200002,1583425.8310200002 +24739200.0,1112898.669,537057.648,1568208.33216,257699.35972,257699.35972,257699.35972,382094.0655,1331876.33928,2445153.6179200006,1163451.11001,1772877.88192,700552.743,700552.743,700552.743,362683.7795,1112898.669,1112898.669,464205.36071,460963.59255,685185.38942,1195090.7955,339178.14958,431370.86809,1139997.9989999998,1139997.9989999998,1139997.9989999998,1139997.9989999998,3346115.33146,3346115.33146 +24742800.0,503770.224,273891.303,799762.60476,211244.94952,211244.94952,211244.94952,181838.1705,365042.65536,3200622.06336,127223.27708999999,193864.04128,494392.3890000001,494392.3890000001,494392.3890000001,485348.4859999999,503770.224,503770.224,199360.57985999997,837521.9046,1244909.10264,2171353.086,616250.68536,783755.06628,138348.858,138348.858,138348.858,138348.858,1514669.14016,1514669.14016 +24746400.0,124151.84700000001,20732.853,60539.930759999996,113667.78621,113667.78621,113667.78621,99288.504,92093.75151999999,101802.21248,67648.84475999999,103083.95392,37176.828,37176.828,37176.828,36800.22149999999,124151.84700000001,124151.84700000001,52280.356569999996,43381.0242,64482.41127999999,112469.322,31919.864719999998,40596.069559999996,32188.413000000004,32188.413000000004,32188.413000000004,32188.413000000004,373283.21998,373283.21998 +24750000.0,135284.637,425658.42899999995,1242922.6126799998,107174.80532000001,107174.80532000001,107174.80532000001,242045.90199999997,348756.76415999996,315349.83680000005,193925.98764000004,295506.26688000007,73025.598,73025.598,73025.598,248115.41650000002,135284.637,135284.637,94324.01822999999,70122.27915,104231.14086,181798.5015,51596.14614,65620.60197,78792.438,78792.438,78792.438,78792.438,406755.80858,406755.80858 +24753600.0,184043.31,104965.86599999998,306500.32871999993,92973.68806,92973.68806,92973.68806,236707.569,397589.25568,355104.49728,197263.16504999998,300591.4896,141579.423,141579.423,141579.423,112175.97300000001,184043.31,184043.31,164195.68957999998,106046.62964999999,157629.80505999998,274935.7065,78029.37194,99238.69787,136984.437,136984.437,136984.437,136984.437,553356.8854,553356.8854 +24757200.0,74713.05600000001,30143.693999999996,88019.58648,68268.17349000002,68268.17349000002,68268.17349000002,64835.119999999995,133771.23272,114614.25024000002,61628.64099,93910.31008000001,51679.59,51679.59,51679.59,29704.202499999996,74713.05600000001,74713.05600000001,69161.34498,35601.755849999994,52919.15313999999,92300.8485,26195.859859999997,33316.21103,40511.831999999995,40511.831999999995,40511.831999999995,40511.831999999995,224637.25504000002,224637.25504000002 +24760800.0,131709.936,103114.17,301093.3764,163513.67043000003,163513.67043000003,163513.67043000003,63767.5255,299271.27304,57920.88768,283467.32904,431950.21568,67545.94200000001,67545.94200000001,67545.94200000001,164337.7855,131709.936,131709.936,354495.13852999994,111901.14765,166332.07626,290114.0865,82337.14074,104717.37027,33692.508,33692.508,33692.508,33692.508,396007.87424,396007.87424 +24764400.0,32576.532,203518.476,594273.9499199999,255368.25094000003,255368.25094000003,255368.25094000003,188185.5885,254647.07968000002,52103.21024000001,31949.51298,48684.97216,74704.173,74704.173,74704.173,297341.15249999997,32576.532,32576.532,251127.33906,106288.68599999999,157989.60239999997,275563.26,78207.4776,99465.2148,61053.09299999999,61053.09299999999,61053.09299999999,61053.09299999999,97946.77287999999,97946.77287999999 +24768000.0,44050.62,17285.036999999997,50472.30803999999,254919.50495,254919.50495,254919.50495,46733.949499999995,50766.89224000001,100587.81952,35020.90032,53365.18144,22336.656000000003,22336.656000000003,22336.656000000003,21389.585000000003,44050.62,44050.62,49720.81608,19640.86785,29194.573939999995,50920.7685,14451.79906,18379.97263,15843.675,15843.675,15843.675,15843.675,132445.5308,132445.5308 +24771600.0,918096.6179999998,564880.233,1649450.28036,309505.25012,309505.25012,309505.25012,1110281.7075,1429339.39264,1387340.01472,1346465.84751,2051757.4819200002,917642.9580000001,917642.9580000001,917642.9580000001,474984.3595,918096.6179999998,918096.6179999998,382941.79117999994,606975.0227999999,902219.6635199998,1573638.9479999999,446613.72047999996,568008.7250399999,717753.153,717753.153,717753.153,717753.153,2760410.498119999,2760410.498119999 +24775200.0,424243.75800000003,290080.74,847035.7608,278087.11711000005,278087.11711000005,278087.11711000005,391283.78450000007,780836.5108799998,950160.2137600001,589862.82264,898838.5868800001,386013.975,386013.975,386013.975,429798.04699999996,424243.75800000003,424243.75800000003,325491.257,388663.53525,577717.1561,1007646.2025000001,285979.58890000003,363712.29595000006,388751.205,388751.205,388751.205,388751.205,1275559.56572,1275559.56572 +24778800.0,402065.24100000004,296631.864,866165.04288,272794.87983000005,272794.87983000005,272794.87983000005,398751.79750000004,740769.7192,1152594.30976,584538.23547,890724.93024,371189.289,371189.289,371189.289,435130.2025,402065.24100000004,402065.24100000004,312151.65994999994,436986.95265,649546.03826,1132929.1365,321536.07874,408933.46927,362729.664,362729.664,362729.664,362729.664,1208876.15794,1208876.15794 +24782400.0,404522.82599999994,294278.295,859292.6214,256791.35900000003,256791.35900000003,256791.35900000003,381919.72699999996,727842.10248,1185328.10624,590983.95741,900546.9827200001,365671.569,365671.569,365671.569,430170.35949999996,404522.82599999994,404522.82599999994,310161.80624,446443.22475,663602.0279,1157445.3975,328494.0271,417782.67205,380102.454,380102.454,380102.454,380102.454,1216265.2968399997,1216265.2968399997 +24786000.0,280131.087,195852.04499999998,571887.9714,196770.86143,196770.86143,196770.86143,232200.45800000004,361471.90416,651424.7136,326757.19902,497915.73184,178280.046,178280.046,178280.046,207070.70649999997,280131.087,280131.087,218983.27307999998,184845.44249999998,274757.91699999996,479228.925,136009.733,172978.8215,255775.28999999998,255775.28999999998,255775.28999999998,255775.28999999998,842260.80158,842260.80158 +24789600.0,55229.685,38069.247,111162.20124,76108.49125,76108.49125,76108.49125,69741.07,85231.87415999999,235212.10880000005,81872.97741,124758.82272,46052.445,46052.445,46052.445,56623.13650000001,55229.685,55229.685,67158.18199999999,39384.427500000005,58541.791000000005,102107.77500000001,28979.159000000003,36856.0445,44798.244,44798.244,44798.244,44798.244,166057.2529,166057.2529 +24793200.0,46788.270000000004,34909.452000000005,101935.59984,37660.62982,37660.62982,37660.62982,35877.4885,62268.497760000006,221624.75136,62262.18726,94875.71392000001,42127.920000000006,42127.920000000006,42127.920000000006,44706.97,46788.270000000004,46788.270000000004,61963.00200999999,27406.9413,40738.21891999999,71055.033,20166.09508,25647.48334,36129.678,36129.678,36129.678,36129.678,140676.7318,140676.7318 +24796800.0,42205.704,33789.537,98665.44804,13891.337350000002,13891.337350000002,13891.337350000002,15012.528999999999,53329.28567999999,220162.26176000002,51376.38156,78287.81952,47000.49,47000.49,47000.49,38296.6045,42205.704,42205.704,60292.32066,20412.12555,30340.986619999996,52920.3255,15019.292379999999,19101.71749,33859.701,33859.701,33859.701,33859.701,126898.48335999998,126898.48335999998 +24800400.0,41973.573000000004,34264.848,100053.35616,8785.506070000001,8785.506070000001,8785.506070000001,10281.0295,52599.7996,225956.42752000003,49944.00159,76105.14528,50010.615000000005,50010.615000000005,50010.615000000005,37787.049999999996,41973.573000000004,41973.573000000004,61261.03060999999,19206.6228,28549.10352,49794.948000000004,14132.280480000001,17973.605040000002,37782.108,37782.108,37782.108,37782.108,126200.54282,126200.54282 +24804000.0,39755.583,36025.602,105194.75783999999,3347.5872100000006,3347.5872100000006,3347.5872100000006,5346.348,48048.12696,217832.65792,45943.09524,70008.52608000001,47324.859000000004,47324.859000000004,47324.859000000004,34942.0295,39755.583,39755.583,59113.43775999999,17005.48425,25277.2877,44088.2925,12512.677300000001,15913.774150000001,35845.638,35845.638,35845.638,35845.638,119531.78622,119531.78622 +24807600.0,40458.068999999996,37178.7,108561.80399999999,3379.0279600000003,3379.0279600000003,3379.0279600000003,6935.050499999999,54365.570320000006,223212.24128000005,46867.65384,71417.37728,48883.167,48883.167,48883.167,35830.291000000005,40458.068999999996,40458.068999999996,62486.051029999995,17376.767999999996,25829.171199999993,45050.88,12785.868799999998,16261.222399999999,36646.341,36646.341,36646.341,36646.341,121643.92745999999,121643.92745999999 +24811200.0,43008.501,40632.693,118647.46355999999,8011.782790000001,8011.782790000001,8011.782790000001,11403.315,63499.955200000004,237243.32864,50215.578,76518.97600000001,53031.479999999996,53031.479999999996,53031.479999999996,39284.294,43008.501,43008.501,80142.90206000001,19279.530899999998,28657.475559999995,49983.969,14185.92644,18041.832619999997,38911.617,38911.617,38911.617,38911.617,129312.22634,129312.22634 +24814800.0,76275.51000000001,63629.58899999999,185798.39987999998,32189.060200000004,32189.060200000004,32189.060200000004,20181.364,296041.72384,255569.84000000003,87673.87019999999,133598.2784,58946.29800000001,58946.29800000001,58946.29800000001,52286.024,76275.51000000001,76275.51000000001,217270.31664,26815.7385,39859.4434,69522.285,19731.0866,25094.2343,80563.49100000001,80563.49100000001,80563.49100000001,80563.49100000001,229335.03340000001,229335.03340000001 +24818400.0,356503.023,197943.723,577995.6711599999,198798.42961000002,198798.42961000002,198798.42961000002,227202.3005,1356880.44528,846834.2464000001,781139.26065,1190307.4448,253392.351,253392.351,253392.351,207660.46,356503.023,356503.023,1301396.9189,315570.8646,469070.76664,818146.686,232197.82136,295311.99428000004,450566.77800000005,450566.77800000005,450566.77800000005,450566.77800000005,1071885.7558199998,1071885.7558199998 +24822000.0,392626.824,589624.4940000001,1721703.52248,401426.40362000006,401426.40362000006,401426.40362000006,628900.5974999999,2098043.8271999997,1062968.7321600001,1430474.27901,2179770.32992,604085.562,604085.562,604085.562,578228.3255,392626.824,392626.824,614583.34405,822610.8454499999,1222745.00978,2132694.7845,605279.09122,769801.2603099999,608639.334,608639.334,608639.334,608639.334,1180497.98416,1180497.98416 +24825600.0,892875.8190000001,278345.37,812768.4804,223178.97096,223178.97096,223178.97096,300636.301,785004.53056,1726616.57088,820357.6724700001,1250068.8342400002,447389.454,447389.454,447389.454,247989.19249999998,892875.8190000001,892875.8190000001,331161.76119,319402.9503,474766.85452,828081.7230000001,235017.47948,298898.06954000005,868200.3570000001,868200.3570000001,868200.3570000001,868200.3570000001,2684579.96246,2684579.96246 +24829200.0,427323.35400000005,244576.53599999996,714163.4851199999,192196.9181,192196.9181,192196.9181,170106.8285,302585.61319999996,2521559.56032,120996.98688000001,184376.36096000002,381028.22699999996,381028.22699999996,381028.22699999996,376477.9235,427323.35400000005,427323.35400000005,170000.48896999998,692554.6736999999,1029426.9470799998,1795512.1169999999,509583.4389199999,648094.3736599999,117653.07,117653.07,117653.07,117653.07,1284818.88436,1284818.88436 +24832800.0,66117.591,15984.753,46675.47876,112453.30228,112453.30228,112453.30228,98218.8235,71090.46015999999,67935.92768000001,59686.744320000005,90951.22944000001,24436.797,24436.797,24436.797,35084.777,66117.591,66117.591,33418.350419999995,36442.280699999996,54168.525879999994,94479.987,26814.320119999997,34102.77626,26843.955,26843.955,26843.955,26843.955,198793.55693999998,198793.55693999998 +24836400.0,94006.92599999999,340798.167,995130.64764,103150.96726,103150.96726,103150.96726,206631.5475,244081.11223999996,255580.21952000004,148161.80526,225770.36992,47808.702000000005,47808.702000000005,47808.702000000005,177904.0025,94006.92599999999,94006.92599999999,58647.50267999999,55864.66724999999,83038.34489999998,144834.32249999998,41105.3601,52278.293549999995,45468.294,45468.294,45468.294,45468.294,282647.4908399999,282647.4908399999 +24840000.0,143839.69800000003,80473.053,234981.31475999998,89374.57485,89374.57485,89374.57485,218216.1625,304149.05712,233878.09024000002,135125.29233,205905.20736,103082.77799999999,103082.77799999999,103082.77799999999,82068.567,143839.69800000003,143839.69800000003,133843.31011999998,80685.99135,119933.25133999999,209185.90350000001,59368.95166,75506.14993,96288.96900000001,96288.96900000001,96288.96900000001,96288.96900000001,432478.02532,432478.02532 +24843600.0,65073.51900000001,26001.684,75924.91728000001,67169.61537,67169.61537,67169.61537,63047.78200000001,102670.66896000001,99400.18048000001,53895.98004,82127.20768,39730.886999999995,39730.886999999995,39730.886999999995,25999.414,65073.51900000001,65073.51900000001,57335.64732999999,33643.77525,50008.772099999995,87224.6025,24755.172899999998,31483.927949999998,33750.912,33750.912,33750.912,33750.912,195654.38046000001,195654.38046000001 +24847200.0,109423.383,92984.232,271513.95744,128084.28787000001,128084.28787000001,128084.28787000001,58843.547,276035.36136000004,47422.242560000006,222807.64883999998,339516.41728,55946.297999999995,55946.297999999995,55946.297999999995,90260.527,109423.383,109423.383,320382.63777,72325.25235000001,107505.68374000001,187509.91350000002,53217.09926000001,67682.14973000002,27818.517,27818.517,27818.517,27818.517,328999.63822,328999.63822 +24850800.0,29038.395,158415.894,462574.41048,253746.40885,253746.40885,253746.40885,159451.761,201439.54631999996,53749.00608000001,30930.141480000002,47131.64416,67213.374,67213.374,67213.374,234703.89249999996,29038.395,29038.395,205721.34309999997,85576.29344999998,127202.29297999997,221864.46449999997,62967.24801999999,80082.50670999999,46263.033,46263.033,46263.033,46263.033,87308.77429999999,87308.77429999999 +24854400.0,52136.061,22643.487,66118.98204,150182.06797,150182.06797,150182.06797,47647.369,61792.911519999994,116022.61184,38857.79436,59211.877120000005,29898.932999999997,29898.932999999997,29898.932999999997,25898.215,52136.061,52136.061,61908.119909999994,24270.017849999997,36075.433939999995,62922.2685,17857.93906,22711.942629999998,18374.907,18374.907,18374.907,18374.907,156755.75674,156755.75674 +24858000.0,832468.8330000001,504294.294,1472539.33848,214858.69845000003,214858.69845000003,214858.69845000003,901471.3645,1333907.0766399999,1214762.04224,1193166.78663,1818158.91296,827197.5210000002,827197.5210000002,827197.5210000002,373086.38849999994,832468.8330000001,832468.8330000001,317209.51443999994,499688.38844999997,742746.69098,1295488.4145,367671.95002,467609.62771000003,646405.155,646405.155,646405.155,646405.155,2502956.29122,2502956.29122 +24861600.0,415747.41300000006,302643.54000000004,883719.1368000001,278678.25205,278678.25205,278678.25205,393352.1655,795071.7211199999,951011.2582400001,576336.2724,878226.7008,397381.05600000004,397381.05600000004,397381.05600000004,433286.7245,415747.41300000006,415747.41300000006,321871.64061,377222.07464999997,560710.34306,977983.1564999999,277560.93394,353005.34887,382756.16099999996,382756.16099999996,382756.16099999996,382756.16099999996,1250013.8884200002,1250013.8884200002 +24865200.0,437251.63800000004,335928.858,980912.26536,287310.44529,287310.44529,287310.44529,425849.347,826900.8716,1293546.0480000002,647912.98425,987295.9760000001,424094.346,424094.346,424094.346,495897.3495,437251.63800000004,437251.63800000004,346130.5341,469652.03325,698100.0593,1217616.3825,345571.1257,439501.53235,401943.573,401943.573,401943.573,401943.573,1314669.92492,1314669.92492 +24868800.0,461496.309,347081.19299999997,1013477.0835599999,279548.37735,279548.37735,279548.37735,428302.924,857731.3119999999,1424132.71488,683972.92866,1042244.4627200001,438572.24700000003,438572.24700000003,438572.24700000003,530668.5020000001,461496.309,461496.309,356435.59835,524356.3147499999,779413.5838999999,1359442.2974999999,385822.6711,490693.93405,446800.3979999999,446800.3979999999,446800.3979999999,446800.3979999999,1387565.56906,1387565.56906 +24872400.0,332375.72099999996,250909.26899999997,732655.06548,218167.29913,218167.29913,218167.29913,280916.986,452771.41568,846991.70176,404026.94976000005,615660.1139200001,231204.636,231204.636,231204.636,270196.3425,332375.72099999996,332375.72099999996,263103.65223999997,231823.5309,344587.07556,601023.969,170576.32644,216941.03262,316712.88,316712.88,316712.88,316712.88,999343.0011399998,999343.0011399998 +24876000.0,63193.155000000006,45357.255000000005,132443.1846,76336.16705,76336.16705,76336.16705,70508.375,95806.3096,297046.72832,92167.62492,140445.90464000002,68046.99299999999,68046.99299999999,68046.99299999999,66804.57,63193.155000000006,63193.155000000006,80736.22036999998,43538.241149999994,64716.10165999999,112876.9215,32035.545339999997,40743.193569999996,51948.111000000004,51948.111000000004,51948.111000000004,51948.111000000004,190000.7527,190000.7527 +24879600.0,56306.117999999995,43590.801,127285.13892,37954.76058,37954.76058,37954.76058,36821.8935,81315.82127999999,294743.78048,74761.81671,113922.76832,71283.59700000001,71283.59700000001,71283.59700000001,57019.921,56306.117999999995,56306.117999999995,78130.34033999998,32432.233949999998,48207.913179999996,84083.5695,23863.717819999998,30350.16461,44834.805,44834.805,44834.805,44834.805,169293.72811999999,169293.72811999999 +24883200.0,51752.558999999994,43126.731,125930.05452,14602.972780000002,14602.972780000002,14602.972780000002,15960.510999999999,68330.92,292657.61664,63886.158840000004,97350.33728,69231.432,69231.432,69231.432,50328.9955,51752.558999999994,51752.558999999994,76383.50706999999,25338.4524,37663.57616,65692.284,18644.095839999998,23711.78632,45159.19499999999,45159.19499999999,45159.19499999999,45159.19499999999,155602.69405999998,155602.69405999998 +24886800.0,50961.611999999994,46384.398,135442.44216,9309.37612,9309.37612,9309.37612,12946.199,65663.75112,293758.85760000005,61705.35105,94027.2016,69150.282,69150.282,69150.282,49062.7935,50961.611999999994,50961.611999999994,76931.64024,23826.6684,35416.43055999999,61772.844,17531.721439999998,22297.055119999997,47048.793000000005,47048.793000000005,47048.793000000005,47048.793000000005,153224.58007999999,153224.58007999999 +24890400.0,50176.167,49339.005,144069.8946,10158.752560000003,10158.752560000003,10158.752560000003,12244.358,71855.17895999999,294882.09792000003,59531.097570000005,90714.05344,69074.712,69074.712,69074.712,47940.879,50176.167,50176.167,98144.37996999998,22959.506699999998,34127.46428,59524.647000000004,16893.66172,21485.56306,46321.460999999996,46321.460999999996,46321.460999999996,46321.460999999996,150863.00877999997,150863.00877999997 +24894000.0,52737.951,53810.118,157125.54456,15761.111630000001,15761.111630000001,15761.111630000001,12861.6005,87249.05688,307609.21728,62078.49752999999,94595.80576,72703.239,72703.239,72703.239,51234.186499999996,52737.951,52737.951,102353.61097,24060.94065,35764.657459999995,62380.2165,17704.09954,22516.28767,48187.26,48187.26,48187.26,48187.26,158565.43933999998,158565.43933999998 +24897600.0,60696.87899999999,59107.284,172593.26928,18727.46601,18727.46601,18727.46601,15385.530999999999,105771.16,327054.85632,68749.50998999999,104761.15808,78372.705,78372.705,78372.705,55095.764500000005,60696.87899999999,60696.87899999999,114690.07771,31510.3932,46837.67088,81693.612,23185.42512,29487.50376,51618.668999999994,51618.668999999994,51618.668999999994,51618.668999999994,182495.28285999998,182495.28285999998 +24901200.0,99115.78800000002,87082.47,254280.81239999997,39648.66202,39648.66202,39648.66202,23994.789,388138.45376,343487.73632,119249.71505999999,181713.85152,83350.97099999999,83350.97099999999,83350.97099999999,78432.914,99115.78800000002,99115.78800000002,298207.95094999997,41558.77125,61773.77849999999,107744.9625,30579.046499999997,38890.800749999995,102352.36499999999,102352.36499999999,102352.36499999999,102352.36499999999,298008.13592000003,298008.13592000003 +24904800.0,472564.21499999997,253011.18300000002,738792.65436,249718.79790000003,249718.79790000003,249718.79790000003,324881.3085,1790556.22312,1279776.87488,1044173.77218,1591121.9385600002,362869.206,362869.206,362869.206,299787.98149999994,472564.21499999997,472564.21499999997,1461497.90839,463595.1732,689097.02288,1201913.412,341114.47312,433833.50776,598005.042,598005.042,598005.042,598005.042,1420843.0731,1420843.0731 +24908400.0,491528.37599999993,684240.318,1997981.72856,502515.18735,502515.18735,502515.18735,860847.6135,2484501.80344,1422757.05856,1714740.50454,2612937.9116800004,724887.9029999999,724887.9029999999,724887.9029999999,731757.6385,491528.37599999993,491528.37599999993,763134.5663499999,1036947.36735,1541339.04974,2688382.0634999997,762988.43326,970377.9067299999,752580.3180000001,752580.3180000001,752580.3180000001,752580.3180000001,1477861.98384,1477861.98384 +24912000.0,987151.878,393575.064,1149239.18688,236273.52848,236273.52848,236273.52848,357837.9315,1005783.3711999999,2017061.7939199999,965606.8621500001,1471400.9328,585713.466,585713.466,585713.466,303364.11699999997,987151.878,987151.878,320859.2318099999,384799.60034999996,571973.7269399998,997628.5934999998,283136.49606,360096.41612999997,1010131.257,1010131.257,1010131.257,1010131.257,2968036.64652,2968036.64652 +24915600.0,461223.82800000004,249895.197,729693.9752399999,202591.84055000002,202591.84055000002,202591.84055000002,172747.8025,334497.4464,2851851.2275200007,116318.02098,177246.50816,451278.627,451278.627,451278.627,438181.65299999993,461223.82800000004,461223.82800000004,176848.7409,767779.3008,1141242.3187199999,1990538.928,564933.90528,718489.76544,129950.043,129950.043,129950.043,129950.043,1386746.3095200001,1386746.3095200001 +24919200.0,79660.776,16924.914,49420.74888,112398.83754000002,112398.83754000002,112398.83754000002,98218.8235,73892.34032,82687.96736,59496.60171,90661.48832,28644.311999999998,28644.311999999998,28644.311999999998,35084.777,79660.776,79660.776,35853.74962,38720.61225,57555.0829,100386.7725,28490.722100000003,36234.84455,27519.021,27519.021,27519.021,27519.021,239513.39984,239513.39984 +24922800.0,122893.13400000002,398291.58600000007,1163011.43112,105497.13097,105497.13097,105497.13097,224867.81100000002,280759.68776,302529.95456,170365.82724,259605.07008,67233.6,67233.6,67233.6,246799.91699999996,122893.13400000002,122893.13400000002,75088.91962,66267.5823,98501.44331999999,171804.843,48759.85068,62013.36714,63792.827999999994,63792.827999999994,63792.827999999994,63792.827999999994,369498.68956,369498.68956 +24926400.0,180204.24,108102.762,315660.06504,92922.29617000002,92922.29617000002,92922.29617000002,220369.00199999998,380859.6004,333212.55552,168412.85055,256629.1056,139027.125,139027.125,139027.125,99768.3015,180204.24,180204.24,161556.39448,102426.88545,152249.34578,265551.1845,75365.95522,95851.33231,130150.78800000002,130150.78800000002,130150.78800000002,130150.78800000002,541814.0816,541814.0816 +24930000.0,107558.913,52302.363,152722.89995999998,70029.58809,70029.58809,70029.58809,72019.5665,205655.39560000002,199976.59776000003,91793.46897,139875.76224,82250.04299999999,82250.04299999999,82250.04299999999,51990.4035,107558.913,107558.913,96042.88616,52485.7239,78015.81676,136074.099,38619.12524,49116.27002,73332.54599999999,73332.54599999999,73332.54599999999,73332.54599999999,323393.79841999995,323393.79841999995 +24933600.0,149125.887,108398.79299999999,316524.47556,155252.06697,155252.06697,155252.06697,65323.2265,331019.52784,91550.92416000001,287094.42720000003,437477.2224,81303.13799999999,81303.13799999999,81303.13799999999,169307.81699999998,149125.887,149125.887,362399.74823,113689.19834999999,168989.87013999998,294749.7735,83652.79286,106390.63253,44505.009,44505.009,44505.009,44505.009,448371.83358,448371.83358 +24937200.0,45746.064,206295.87900000002,602383.9666800001,255786.31320000003,255786.31320000003,255786.31320000003,184583.028,273933.68552,86797.41952000001,36966.22146,56329.48032,86265.072,86265.072,86265.072,305565.855,45746.064,45746.064,270792.07167999994,108665.69175,161522.8307,281725.8675,79956.4843,101689.62265,66171.38399999999,66171.38399999999,66171.38399999999,66171.38399999999,137543.16576,137543.16576 +24940800.0,73492.461,39659.187,115804.82603999999,156304.42245,156304.42245,156304.42245,54493.102999999996,132530.44296,141165.12768,56397.05547,85938.37024,47246.754,47246.754,47246.754,41414.5025,73492.461,73492.461,94929.83773,36890.9964,54835.50576,95643.32400000001,27144.486240000002,34522.68552000001,38494.422,38494.422,38494.422,38494.422,220967.33273999995,220967.33273999995 +24944400.0,978132.6510000001,650541.942,1899582.47064,341165.37312,341165.37312,341165.37312,1150663.8255,1615991.0428,1745155.0899200002,1491156.16272,2272237.9622400003,1061560.395,1061560.395,1061560.395,675172.029,978132.6510000001,978132.6510000001,433282.56816,699979.40505,1040463.21442,1814761.4205,515046.57458,655042.45559,828473.1359999999,828473.1359999999,828473.1359999999,828473.1359999999,2940918.83734,2940918.83734 +24948000.0,459740.24399999995,343350.204,1002582.59568,291147.17731,291147.17731,291147.17731,414654.41500000004,860769.9574399999,1223357.47072,659142.5168999999,1004407.6448,428596.269,428596.269,428596.269,517898.8115,459740.24399999995,459740.24399999995,356250.6298,458302.6251,681230.07484,1188191.9910000002,337220.20316000003,428880.72818000003,429444.68999999994,429444.68999999994,429444.68999999994,429444.68999999994,1382285.6669599998,1382285.6669599998 +24951600.0,464153.39099999995,351382.569,1026037.10148,298922.06982,298922.06982,298922.06982,445475.2295,874331.72224,1425628.3232,692521.0481700001,1055270.1686400003,443145.456,443145.456,443145.456,535961.713,464153.39099999995,464153.39099999995,362451.12384,524916.51075,780246.2703,1360894.6575,386234.8647,491218.16685,444781.152,444781.152,444781.152,444781.152,1395554.5289399999,1395554.5289399999 +24955200.0,473191.58400000003,356246.928,1040241.0297600001,298281.21983,298281.21983,298281.21983,455733.5265,873527.1687999999,1443207.77024,707467.9323599999,1078046.37312,447310.26300000004,447310.26300000004,447310.26300000004,540978.0075,473191.58400000003,473191.58400000003,366433.32765,534765.2238,794885.5919199999,1386428.358,393481.57208,500434.61684000003,472656.507,472656.507,472656.507,472656.507,1422729.36256,1422729.36256 +24958800.0,329185.87799999997,250398.79499999998,731164.4813999999,266292.24490000005,266292.24490000005,266292.24490000005,293134.583,443132.33215999993,887983.7337600001,399410.48889000004,608625.5068800001,232671.49200000003,232671.49200000003,232671.49200000003,270364.1815,329185.87799999997,329185.87799999997,267063.47031,239315.73930000002,355723.64212,620448.213,176089.11188,223952.25974,312091.809,312091.809,312091.809,312091.809,989752.2065199999,989752.2065199999 +24962400.0,62775.267,44427.402,129728.01384,76357.73805,76357.73805,76357.73805,70419.069,99010.61832,288515.44832,91088.25033,138801.14336,70923.98999999999,70923.98999999999,70923.98999999999,66284.344,62775.267,62775.267,79235.74567999999,43215.60599999999,64236.53039999999,112040.45999999999,31798.149599999997,40441.2708,51220.736999999994,51220.736999999994,51220.736999999994,51220.736999999994,188744.30278,188744.30278 +24966000.0,54323.55,41627.193,121551.40355999999,37930.890029999995,37930.890029999995,37930.890029999995,36605.702,78008.08615999999,277746.42432000005,72083.46096,109841.46432,66624.978,66624.978,66624.978,54490.92600000001,54323.55,54323.55,74709.15087999999,31291.62435,46512.48854,81126.4335,23024.45446,29282.77933,43049.25,43049.25,43049.25,43049.25,163332.807,163332.807 +24969600.0,49652.049,41252.67,120457.79639999999,14654.52747,14654.52747,14654.52747,15732.4825,64899.628000000004,275105.57632,61064.59842000001,93050.81664000002,64112.691000000006,64112.691000000006,64112.691000000006,47691.542499999996,49652.049,49652.049,72811.1345,24148.898549999998,35895.39982,62608.2555,17768.81918,22598.59889,43608.624,43608.624,43608.624,43608.624,149287.16066,149287.16066 +24973200.0,48744.72899999999,44070.774,128686.66008,9237.556900000001,9237.556900000001,9237.556900000001,14863.1035,62110.60168,275660.72832,58742.517960000005,89512.40832,63884.007,63884.007,63884.007,46318.5415,48744.72899999999,48744.72899999999,72639.26358,22706.0253,33750.68452,58867.473000000005,16707.14948,21248.35454,44997.011999999995,44997.011999999995,44997.011999999995,44997.011999999995,146559.15185999998,146559.15185999998 +24976800.0,47556.28200000001,45357.582,132444.13944,10636.183910000002,10636.183910000002,10636.183910000002,11357.9865,65239.954,274238.33152,56056.564620000005,85419.52704000002,63093.609,63093.609,63093.609,44614.01,47556.28200000001,47556.28200000001,89526.85131,21566.0313,32056.174919999998,55911.933,15868.33908,20181.54534,43870.986000000004,43870.986000000004,43870.986000000004,43870.986000000004,142985.88788,142985.88788 +24980400.0,49916.16900000001,50482.388999999996,147408.57588,14716.15134,14716.15134,14716.15134,11935.6405,77481.27728,286404.28224000003,58319.70459,88868.12128,66570.411,66570.411,66570.411,47826.450000000004,49916.16900000001,49916.16900000001,95854.86806999998,22497.69735,33441.02174,58327.3635,16553.86126,21053.40073,45614.34,45614.34,45614.34,45614.34,150081.28146,150081.28146 +24984000.0,56405.352,55048.791,160742.46971999996,17637.42233,17637.42233,17637.42233,14420.4585,93475.15679999998,305297.44576000003,63791.82894,97206.59648000001,72090.46500000001,72090.46500000001,72090.46500000001,51602.008499999996,56405.352,56405.352,103128.25184999999,28026.9963,41659.880919999996,72662.583,20622.33308,26227.732340000002,49048.167,49048.167,49048.167,49048.167,169592.09167999998,169592.09167999998 +24987600.0,93317.886,78631.152,229602.96383999998,37865.1636,37865.1636,37865.1636,22802.787,365220.4132799999,317169.13600000006,111110.09763,169310.62496000002,75506.92499999999,75506.92499999999,75506.92499999999,71430.70550000001,93317.886,93317.886,277863.58456999995,38861.09864999999,57763.904659999986,100750.99649999998,28594.092339999996,36366.31206999999,96762.042,96762.042,96762.042,96762.042,280575.77723999997,280575.77723999997 +24991200.0,442934.78400000004,242298.498,707511.61416,240441.16778000002,240441.16778000002,240441.16778000002,301697.1195,1672332.62384,1151452.19264,975027.3521100001,1485755.9651200003,335194.99199999997,335194.99199999997,335194.99199999997,279540.40449999995,442934.78400000004,442934.78400000004,1432276.6773899999,430119.71595,639338.44198,1115125.1895,316483.14902,402507.09221000003,562589.436,562589.436,562589.436,562589.436,1331757.25056,1331757.25056 +24994800.0,468581.12399999995,658663.47,1923297.3324,484802.31943000003,484802.31943000003,484802.31943000003,804055.336,2392249.20976,1336123.296,1649591.66295,2513663.4864,697987.494,697987.494,697987.494,679119.224,468581.12399999995,468581.12399999995,705135.44205,983630.51055,1462087.82062,2550153.1755,723757.75838,920483.86049,724652.598,724652.598,724652.598,724652.598,1408867.2461599999,1408867.2461599999 +24998400.0,1236202.0229999998,687695.622,2008071.21624,366884.67992,366884.67992,366884.67992,541640.9249999999,1627547.0245599996,3016254.5120000006,1466469.19713,2234619.72896,816212.853,816212.853,816212.853,501885.5905,1236202.0229999998,1236202.0229999998,654209.79312,644832.7217999999,958492.09512,1671788.5380000002,474469.50888000004,603436.05324,1324333.584,1324333.584,1324333.584,1324333.584,3716847.4158199993,3716847.4158199993 +25002000.0,523754.99399999995,322391.622,941383.5362399999,232107.51718000002,232107.51718000002,232107.51718000002,177842.9135,399631.54456000007,3341450.5312,139883.48472,213155.78624,511141.5149999999,511141.5149999999,511141.5149999999,561452.0345,523754.99399999995,523754.99399999995,219218.48689,922551.9705,1371299.4722,2391801.4050000003,678816.0178,863326.4119000001,153225.30899999998,153225.30899999998,153225.30899999998,153225.30899999998,1574756.68196,1574756.68196 +25005600.0,87268.416,16813.755,49096.1646,113190.19206000002,113190.19206000002,113190.19206000002,98218.8235,73886.78648000001,76703.11872,60953.223450000005,92881.1024,27564.138,27564.138,27564.138,35084.777,87268.416,87268.416,33314.3486,37862.33625,56279.324499999995,98161.6125,27859.200500000003,35431.66775,28467.449999999997,28467.449999999997,28467.449999999997,28467.449999999997,262387.03744,262387.03744 +25009200.0,87334.95599999999,385233.597,1124882.10324,114002.20183,114002.20183,114002.20183,239144.01700000002,231397.68344000002,217334.9632,157026.97079999998,239279.1936,38808.33,38808.33,38808.33,247944.375,87334.95599999999,87334.95599999999,30121.27339,48787.676999999996,72518.9668,126486.57,35898.0932,45655.628600000004,48423.55799999999,48423.55799999999,48423.55799999999,48423.55799999999,262587.10104,262587.10104 +25012800.0,143298.03900000002,81797.92800000001,238849.94976000002,103055.11061999999,103055.11061999999,103055.11061999999,218106.54249999998,296838.03119999997,245119.14304,135950.99049,207163.41408,101573.307,101573.307,101573.307,81274.01800000001,143298.03900000002,143298.03900000002,129884.01152999999,77832.12240000001,115691.20416,201786.984,57269.06784,72835.49232,92467.155,92467.155,92467.155,92467.155,430849.43726000004,430849.43726000004 +25016400.0,43113.498,14365.434000000001,41947.06728,66652.51373,66652.51373,66652.51373,57965.20799999999,65199.34264,61931.87584000001,38660.049329999994,58910.55136,30074.694000000003,30074.694000000003,30074.694000000003,20711.747,43113.498,43113.498,28319.125119999997,24120.33795,35852.94678,62534.209500000004,17747.80422,22571.87181,18527.22,18527.22,18527.22,18527.22,129627.91732,129627.91732 +25020000.0,132253.28399999999,99252.174,289816.34807999997,163684.05284000002,163684.05284000002,163684.05284000002,62913.662,291040.53472,66934.15168000001,274739.94408,418651.34336000006,70742.868,70742.868,70742.868,157520.40499999997,132253.28399999999,132253.28399999999,334134.56726000004,107922.61395,160418.30518,279799.36950000003,79409.72582,100994.24861000001,35253.797999999995,35253.797999999995,35253.797999999995,35253.797999999995,397641.54056,397641.54056 +25023600.0,40006.398,205682.40000000002,600592.608,255479.82185000004,255479.82185000004,255479.82185000004,184784.3445,261928.16392000002,75695.48928,33217.19478,50616.67776,75649.293,75649.293,75649.293,293285.125,40006.398,40006.398,261835.38029999996,104885.27595000001,155903.54598,271924.7895,77174.84502000001,98151.90021,63111.479999999996,63111.479999999996,63111.479999999996,63111.479999999996,120285.90332,120285.90332 +25027200.0,196780.49699999997,140566.779,410454.99468,182253.39121,182253.39121,182253.39121,100657.60949999999,423970.01904,349728.6348800001,176700.26115,269257.5408,153918.16199999998,153918.16199999998,153918.16199999998,142234.897,196780.49699999997,196780.49699999997,280351.92743999994,108669.2598,161528.13431999998,281735.118,79959.10968000001,101692.96164000001,149845.13400000002,149845.13400000002,149845.13400000002,149845.13400000002,591653.3609799999,591653.3609799999 +25030800.0,1110224.208,763481.853,2229367.01076,519077.9343200001,519077.9343200001,519077.9343200001,1337857.7695,1779748.8943200002,2150454.3692799998,1710957.3007800002,2607173.0297600003,1185604.3020000001,1185604.3020000001,1185604.3020000001,896488.0190000001,1110224.208,1110224.208,621986.1072099998,901749.9069,1340378.87396,2337870.129,663509.80804,843859.78942,959573.661,959573.661,959573.661,959573.661,3338074.11872,3338074.11872 +25034400.0,561736.197,414589.5719999999,1210601.5502399998,368615.60615,368615.60615,368615.60615,501553.33550000004,1041842.6497600001,1633674.7584,815923.27845,1243311.6624,524860.134,524860.134,524860.134,657555.1710000001,561736.197,561736.197,419942.7739,602745.24735,895932.4417399999,1562672.8635,443501.44126,564050.49073,540483.879,540483.879,540483.879,540483.879,1688953.49898,1688953.49898 +25038000.0,547917.054,417548.9700000001,1219242.9924,399994.10143,399994.10143,399994.10143,531106.8525,1042059.92112,1749751.9660800002,832461.68145,1268513.0384,534611.169,534611.169,534611.169,661137.68,547917.054,547917.054,428531.66381999996,637508.1266999999,947604.6722799998,1652798.8469999998,469080.05371999997,596581.67906,565892.991,565892.991,565892.991,565892.991,1647403.9423599998,1647403.9423599998 +25041600.0,573544.338,448155.02099999995,1308612.6613199997,411641.79023000004,411641.79023000004,411641.79023000004,573449.7544999999,1073639.9664,1888385.3939200002,881844.5239799999,1343763.08416,566612.412,566612.412,566612.412,710647.182,573544.338,573544.338,451672.98266999994,692849.2423500001,1029864.79974,1796275.8135000002,509800.18326,648370.03173,602182.353,602182.353,602182.353,602182.353,1724456.6429199998,1724456.6429199998 +25045200.0,382299.351,300727.86600000004,878125.36872,306467.48352,306467.48352,306467.48352,333083.0825,526089.26352,1066103.19488,471727.96818,718823.57056,290374.17600000004,290374.17600000004,290374.17600000004,335898.773,382299.351,382299.351,309587.60767999996,303578.60805,451245.23961999995,787055.6505,223373.88937999998,284089.61099,364052.076,364052.076,364052.076,364052.076,1149446.71534,1149446.71534 +25048800.0,71337.9,51456.768000000004,150253.76256,77347.19168,77347.19168,77347.19168,75522.902,112034.23296000001,346100.8512,102044.47743000001,155496.34656,88869.78300000001,88869.78300000001,88869.78300000001,76316.7825,71337.9,71337.9,92341.30255999998,47653.8957,70833.69188,123547.137,35063.85412,44594.63326,64998.270000000004,64998.270000000004,64998.270000000004,64998.270000000004,214489.286,214489.286 +25052400.0,62786.376000000004,50455.83900000001,147331.04988,48092.83754000001,48092.83754000001,48092.83754000001,44417.474500000004,90055.80175999999,334068.19136,82877.82027000001,126290.01184,82582.08600000001,82582.08600000001,82582.08600000001,64048.152,62786.376000000004,62786.376000000004,87566.18949,36323.55495,53992.04958,94172.1795,26726.96142,33991.67241,58857.29400000001,58857.29400000001,58857.29400000001,58857.29400000001,188777.70384,188777.70384 +25056000.0,55751.93400000001,50240.667,146702.74764,27395.29617,27395.29617,27395.29617,22888.715500000002,74687.09423999999,314056.3680000001,68706.82728,104696.11776000001,75133.989,75133.989,75133.989,54347.873999999996,55751.93400000001,55751.93400000001,91299.87984000001,27897.75675,41467.776699999995,72327.5175,20527.2383,26106.78965,52199.71799999999,52199.71799999999,52199.71799999999,52199.71799999999,167627.48156000001,167627.48156000001 +25059600.0,54654.897,54031.176,157771.03392,21975.826620000003,21975.826620000003,21975.826620000003,18102.448,77228.89,313915.22176000004,66129.75180000001,100769.14560000002,74445.00899999999,74445.00899999999,74445.00899999999,52716.195,54654.897,54654.897,104999.13983,26237.3904,38999.77536,68022.864,19305.536640000002,24553.014720000003,51558.08099999999,51558.08099999999,51558.08099999999,51558.08099999999,164329.05698,164329.05698 +25063200.0,54338.75399999999,55117.914,160944.30888,16670.776980000002,16670.776980000002,16670.776980000002,13409.7915,91996.06,315804.86016000004,63923.13732000001,97406.68544000002,74323.08600000001,74323.08600000001,74323.08600000001,52687.575500000006,54338.75399999999,54338.75399999999,105250.53928999999,24728.84235,36757.439739999994,64111.8135,18195.54326,23141.311729999998,50804.535,50804.535,50804.535,50804.535,163378.52035999997,163378.52035999997 +25066800.0,56309.66700000001,55967.861999999994,163426.15704,16972.233740000003,16972.233740000003,16972.233740000003,13172.936,99946.22136000001,310250.48960000003,63787.46745,97199.9504,72975.609,72975.609,72975.609,51804.854499999994,56309.66700000001,56309.66700000001,110603.03513999999,26977.151250000003,40099.3705,69940.76250000001,19849.8545,25245.284750000003,50138.816999999995,50138.816999999995,50138.816999999995,50138.816999999995,169304.39878000002,169304.39878000002 +25070400.0,60615.44399999999,57182.95799999999,166974.23735999997,19023.509670000003,19023.509670000003,19023.509670000003,14726.589500000002,100565.57087999998,309157.23456000007,70090.92174,106805.21408000002,73407.291,73407.291,73407.291,52116.841,60615.44399999999,60615.44399999999,113354.29742,31028.9859,46122.097559999995,80445.519,22831.20444,29037.00162,51055.67999999999,51055.67999999999,51055.67999999999,51055.67999999999,182250.43495999996,182250.43495999996 +25074000.0,98100.71699999999,85217.58600000001,248835.35112,40659.01917000001,40659.01917000001,40659.01917000001,23000.337499999998,386893.72784,320806.63552,125773.35456000002,191654.63552000004,76114.13999999998,76114.13999999998,76114.13999999998,78612.41850000001,98100.71699999999,98100.71699999999,293892.96248,40476.1536,60164.55423999999,104938.17599999999,29782.453759999997,37877.684479999996,103932.98100000001,103932.98100000001,103932.98100000001,103932.98100000001,294956.15578,294956.15578 +25077600.0,484854.69299999997,251559.25499999998,734553.0245999999,304433.72079999995,304433.72079999995,304433.72079999995,369228.0655,1812334.16128,1292048.6662400002,1095239.1645300002,1668935.8697600001,367025.361,367025.361,367025.361,329729.5505,484854.69299999997,484854.69299999997,1461908.2350599999,491767.0663499999,730972.2813399999,1274951.6534999998,361843.42166,460196.83492999995,621946.9770000001,621946.9770000001,621946.9770000001,621946.9770000001,1457796.44362,1457796.44362 +25081200.0,494784.246,690911.625,2017461.945,584985.1537200001,584985.1537200001,584985.1537200001,880859.623,2470954.34664,1413166.29504,1725451.73472,2629259.7862400003,722065.101,722065.101,722065.101,735223.3245,494784.246,494784.246,772793.33976,1038722.8387499999,1543978.1454999999,2692985.1374999997,764294.8295,972039.39725,763924.2180000001,763924.2180000001,763924.2180000001,763924.2180000001,1487651.2996399999,1487651.2996399999 +25084800.0,1275450.843,760719.126,2221299.84792,405809.06102,405809.06102,405809.06102,563902.521,1716729.06888,3171110.2048000004,1541215.2149099999,2348518.4227199997,868520.4029999999,868520.4029999999,868520.4029999999,539753.3015000001,1275450.843,1275450.843,667514.5128599999,674823.16215,1003070.4780599999,1749541.5315,496536.54894,631501.18137,1384640.952,1384640.952,1384640.952,1384640.952,3834855.53462,3834855.53462 +25088400.0,542988.8489999999,339305.79000000004,990772.9068,243473.26894000004,243473.26894000004,243473.26894000004,180736.6365,423043.6724,3496470.2835199996,145418.30730000001,221589.8016,537518.865,537518.865,537518.865,586293.407,542988.8489999999,542988.8489999999,230317.29252999998,969965.8186499999,1441776.3526599999,2514726.1964999996,713703.24434,907696.4080699999,160962.576,160962.576,160962.576,160962.576,1632586.47266,1632586.47266 +25092000.0,120259.13999999998,26460.582,77264.89944,114502.95428000002,114502.95428000002,114502.95428000002,98326.9315,129228.08064,123964.57664000001,76097.39382,115957.93344000001,44831.067,44831.067,44831.067,42155.407,120259.13999999998,120259.13999999998,62995.05004,48671.292149999994,72345.97005999999,126184.83149999999,35812.45694,45546.71537,46655.477999999996,46655.477999999996,46655.477999999996,46655.477999999996,361579.14759999997,361579.14759999997 +25095600.0,163036.956,477669.00899999996,1394793.5062799999,127157.82156000001,127157.82156000001,127157.82156000001,267095.17100000003,407616.71087999997,389090.08128,239492.65683,364941.19136,92980.449,92980.449,92980.449,303138.262,163036.956,163036.956,103357.43391999998,83596.9734,124260.19256000001,216732.89400000003,61510.85944000001,78230.25412000001,112112.15400000001,112112.15400000001,112112.15400000001,112112.15400000001,490197.78104,490197.78104 +25099200.0,224651.226,147006.465,429258.87779999996,121505.73523000002,121505.73523000002,121505.73523000002,248110.19799999997,478899.78591999994,575105.47392,258530.54136,393951.30112,195736.668,195736.668,195736.668,154041.307,224651.226,224651.226,210243.59927999997,151822.0341,225671.27043999996,393612.681,111711.02756,142075.43438,181020.918,181020.918,181020.918,181020.918,675451.35284,675451.35284 +25102800.0,91383.507,38528.195999999996,112502.33232,69477.60655,69477.60655,69477.60655,66838.0405,171621.78527999998,156812.17792000002,75959.99481,115748.56352000001,69771.945,69771.945,69771.945,45386.9185,91383.507,91383.507,79178.98286999999,43609.8492,64822.54127999999,113062.572,32088.234719999997,40810.20456,58363.311,58363.311,58363.311,58363.311,274759.74438,274759.74438 +25106400.0,175387.446,125943.09000000003,367753.8228,241024.26040000003,241024.26040000003,241024.26040000003,102896.2655,381522.92511999997,106915.95392,350694.61623000004,534391.79616,97967.223,97967.223,97967.223,275572.472,175387.446,175387.446,408626.5995499999,168711.81795,250776.57877999998,437401.00950000004,124138.57222,157880.93581,59396.844,59396.844,59396.844,59396.844,527331.58764,527331.58764 +25110000.0,64753.125,272882.652,796817.34384,260047.13108000002,260047.13108000002,260047.13108000002,232876.70700000002,371945.92663999996,114564.21312,52158.37788,79479.43296,117567.606,117567.606,117567.606,370738.9175,64753.125,64753.125,348913.44617999997,137338.0839,204142.04075999997,356061.69899999996,101053.70124,128521.31801999999,93940.776,93940.776,93940.776,93940.776,194691.0625,194691.0625 +25113600.0,276442.92,246424.95899999997,719560.8802799999,223896.69918,223896.69918,223896.69918,144588.087,633564.8683999999,758109.1628800001,334304.14647,509415.84224,258503.52599999995,258503.52599999995,258503.52599999995,282024.6625,276442.92,276442.92,373619.31853999995,200671.4412,298281.99408,520259.292,147654.54192,187788.83016,240738.417,240738.417,240738.417,240738.417,831171.7128,831171.7128 +25117200.0,1311638.9279999998,924468.78,2699448.8376,830610.1380500002,830610.1380500002,830610.1380500002,1681827.4585,2108994.8667200003,2999751.3254400003,2128170.54177,3242926.5398399998,1422022.2480000001,1422022.2480000001,1422022.2480000001,1234042.4704999998,1311638.9279999998,1311638.9279999998,820193.4847599998,1295828.4096,1926144.9446399997,3359555.136,953473.74336,1212639.4252799999,1196792.4780000001,1196792.4780000001,1196792.4780000001,1196792.4780000001,3943661.0435199994,3943661.0435199994 +25120800.0,609662.754,426070.8389999999,1244126.8498799999,414924.09057000006,414924.09057000006,414924.09057000006,558565.819,1089199.3324,1805174.8601600002,880659.37239,1341957.13888,550923.399,550923.399,550923.399,694391.117,609662.754,609662.754,438750.403,658265.6929499999,978459.1287799999,1706614.7595,484353.52222,616006.66081,622860.186,622860.186,622860.186,622860.186,1833052.6803599999,1833052.6803599999 +25124400.0,561790.7069999999,434601.07500000007,1269035.1390000002,434884.50610000006,434884.50610000006,434884.50610000006,572187.3045,1060464.6869599998,1825545.8432000002,870468.4877699999,1326428.17184,552175.2180000001,552175.2180000001,552175.2180000001,694381.38,561790.7069999999,561790.7069999999,441989.63977999997,682371.6574499999,1014290.71058,1769111.7045,502090.75042,638565.08191,587836.572,587836.572,587836.572,587836.572,1689117.3923799999,1689117.3923799999 +25128000.0,549865.347,441532.386,1289274.56712,460095.38443000003,460095.38443000003,460095.38443000003,560110.341,1020173.81448,1790061.93088,849241.31397,1294082.00224,543863.0190000001,543863.0190000001,543863.0190000001,673453.7565,549865.347,549865.347,433212.15937999997,669752.7727499999,995533.7510999999,1736396.0775,492805.7439,626756.29845,577994.4720000001,577994.4720000001,577994.4720000001,577994.4720000001,1653261.80998,1653261.80998 +25131600.0,400069.092,323169.822,943655.8802399999,343231.89934,343231.89934,343231.89934,365271.305,545259.06936,1116039.96864,489678.11739,746176.17888,302509.986,302509.986,302509.986,360489.0905,400069.092,400069.092,322161.72209,319998.1545,475651.57779999997,829624.845,235455.4322,299455.0631,387534.642,387534.642,387534.642,387534.642,1202874.40328,1202874.40328 +25135200.0,75311.214,54288.636,158522.81712,92155.36979000001,92155.36979000001,92155.36979000001,79589.66750000001,119118.80704,368735.07008000003,106857.09426,162829.85792,95350.776,95350.776,95350.776,80364.109,75311.214,75311.214,97651.15295,50349.182850000005,74840.01994,130534.91850000001,37047.053060000006,47116.889630000005,71623.497,71623.497,71623.497,71623.497,226435.71676,226435.71676 +25138800.0,67035.705,54669.345,159634.4874,53829.486260000005,53829.486260000005,53829.486260000005,45851.127,96868.96184,360483.9936,88094.24442000002,134238.84864,89655.04200000002,89655.04200000002,89655.04200000002,68449.98300000001,67035.705,67035.705,93352.49923999999,38429.61975,57122.5459,99632.3475,28276.6091,35962.53305,63975.93299999999,63975.93299999999,63975.93299999999,63975.93299999999,201554.0197,201554.0197 +25142400.0,62308.547999999995,57212.523,167060.56716,30761.04372,30761.04372,30761.04372,25086.9885,83603.32592,357250.90368000005,77745.44778,118469.25376,87027.55500000001,87027.55500000001,87027.55500000001,61472.0785,62308.547999999995,62308.547999999995,110156.97497999998,31238.04285,46432.84394,80987.5185,22985.02906,29232.63763,59663.312999999995,59663.312999999995,59663.312999999995,59663.312999999995,187341.03431999998,187341.03431999998 +25146000.0,61638.365999999995,61897.013999999996,180739.28088,25974.22311,25974.22311,25974.22311,20331.731,96720.9704,356592.68544000003,75706.84968,115362.81856000001,86509.491,86509.491,86509.491,60470.697,61638.365999999995,61638.365999999995,118898.29860999998,29616.669899999997,44022.803159999996,76783.959,21792.01884,27715.35282,60047.244,60047.244,60047.244,60047.244,185326.02044,185326.02044 +25149600.0,61685.262,62835.099,183478.48908,23712.31247,23712.31247,23712.31247,15481.427500000002,111913.12303999999,354439.12000000005,73110.12093,111405.89856,85346.73,85346.73,85346.73,59508.6905,61685.262,61685.262,122923.95595999999,27984.84795,41597.23078,72553.3095,20591.32022,26188.28981,59628.846,59628.846,59628.846,59628.846,185467.02108,185467.02108 +25153200.0,66510.993,65301.66,190680.84720000002,26423.56332,26423.56332,26423.56332,15269.926000000001,113839.85584,349259.46752,77445.07974,118011.55008,84504.03,84504.03,84504.03,58633.9145,66510.993,66510.993,129101.96806,34783.424999999996,51702.77,90179.25,25593.73,32550.415,58943.297999999995,58943.297999999995,58943.297999999995,58943.297999999995,199976.38562000002,199976.38562000002 +25156800.0,67632.07800000001,69072.504,201691.71168,28027.387520000004,28027.387520000004,28027.387520000004,16660.343,113190.04488,344397.18464,84379.92612,128578.93504000001,83324.463,83324.463,83324.463,58312.7965,67632.07800000001,67632.07800000001,132130.5557,34874.363699999994,51837.94308,90415.01699999999,25660.64292,32635.51566,59527.04699999999,59527.04699999999,59527.04699999999,59527.04699999999,203347.11452,203347.11452 +25160400.0,70867.44,69665.301,203422.67892,36967.94838,36967.94838,36967.94838,24483.214,116775.54208000001,341648.0915200001,93332.50983,142220.96736,83370.228,83370.228,83370.228,60839.05450000001,70867.44,70867.44,134677.97979999997,37238.82255,55352.52141999999,96545.09549999998,27400.417579999998,34848.182089999995,61746.756,61746.756,61746.756,61746.756,213074.7696,213074.7696 +25164000.0,623423.7390000001,583972.842,1705200.69864,495091.32827000006,495091.32827000006,495091.32827000006,649321.4315,999871.1187199999,730640.9817600001,728616.5607,1110272.8544,322730.85000000003,322730.85000000003,322730.85000000003,1004994.4484999998,623423.7390000001,623423.7390000001,1141207.9977999998,308528.06039999996,458602.2033599999,799887.564,227015.70864,288721.32072,751296.7860000001,751296.7860000001,751296.7860000001,751296.7860000001,1874427.37526,1874427.37526 +25167600.0,1250194.608,1196603.1479999998,3494081.1921599996,1379061.73449,1379061.73449,1379061.73449,1177542.4394999999,1857521.34232,2147399.5481600002,1806243.7677900002,2752371.4556800006,773175.726,773175.726,773175.726,932530.0284999998,1250194.608,1250194.608,645128.6189399998,978667.7498999999,1454711.07516,2537286.759,720106.1468400001,915839.6968200001,1349202.108,1349202.108,1349202.108,1349202.108,3758918.45472,3758918.45472 +25171200.0,1426134.519,1171255.476,3420065.98992,1088479.48539,1088479.48539,1088479.48539,1019303.8205,2227619.1425599996,5185719.385600001,1818182.6922000002,2770564.1024,1550159.457,1550159.457,1550159.457,1329371.9880000001,1426134.519,1426134.519,776576.6067799999,1871142.4885500001,2781303.15582,4851110.1555,1376791.26318,1751019.7608900003,1138452.78,1138452.78,1138452.78,1138452.78,4287911.12046,4287911.12046 +25174800.0,776686.5150000001,437421.789,1277271.62388,575203.71865,575203.71865,575203.71865,1262942.415,1788069.4985600002,2914719.3273600005,1545835.16787,2355558.35104,1153496.07,1153496.07,1153496.07,1409194.6575000002,776686.5150000001,776686.5150000001,784777.8010799999,1469791.6924500002,2184727.40458,3810571.0545000006,1081476.35642,1375434.69491,943047.3570000001,943047.3570000001,943047.3570000001,943047.3570000001,2335237.4551000004,2335237.4551000004 +25178400.0,379171.07700000005,245920.97100000002,718089.2353200001,467775.95876000007,467775.95876000007,467775.95876000007,661022.0155,1176267.03392,1699944.35968,774865.65576,1180747.66592,307042.992,307042.992,307042.992,588489.643,379171.07700000005,379171.07700000005,132202.72012999997,600502.7299500001,892599.1195799999,1556858.9295,441851.39142,561951.93741,392998.755,392998.755,392998.755,392998.755,1140041.0381800001,1140041.0381800001 +25182000.0,191350.836,111935.466,326851.56072,116209.14712,116209.14712,116209.14712,139659.107,498857.764,330606.83904,296798.93565,452265.04480000003,165629.604,165629.604,165629.604,126469.29750000002,191350.836,191350.836,80818.47136999998,108310.23945,160994.47938,280804.3245,79694.94162,101356.98951,172761.99599999998,172761.99599999998,172761.99599999998,172761.99599999998,575328.18024,575328.18024 +25185600.0,308451.225,232493.29499999998,678880.4214,110463.71127000001,110463.71127000001,110463.71127000001,265920.844,595141.28336,787801.8905600001,436283.91639,664813.5868800001,302109.44700000004,302109.44700000004,302109.44700000004,277954.852,308451.225,308451.225,188006.61814999997,277959.76200000005,413164.88080000004,720636.42,204523.47920000003,260115.43160000004,279947.661,279947.661,279947.661,279947.661,927410.0164999999,927410.0164999999 +25189200.0,170632.689,103210.908,301375.85136,76252.52855,76252.52855,76252.52855,124638.45800000001,314778.61048,334671.9008,208790.37543,318156.76256,150599.415,150599.415,150599.415,106290.2365,170632.689,170632.689,81345.81571999998,102928.00815,152994.22446,266850.3915,75734.68254,96320.28417,133804.815,133804.815,133804.815,133804.815,513035.61826,513035.61826 +25192800.0,104066.307,46790.553,136628.41476,62773.030430000006,62773.030430000006,62773.030430000006,68331.249,179026.57823999997,160251.45472,109836.29139000001,167369.58688000002,76139.475,76139.475,76139.475,46354.7,104066.307,104066.307,35342.98534,40644.33795,60414.546780000004,105374.20950000001,29906.204220000003,38035.07181,67250.25,67250.25,67250.25,67250.25,312892.69638,312892.69638 +25196400.0,75668.64,30048.023999999998,87740.23008,48387.647990000005,48387.647990000005,48387.647990000005,44175.817,118975.19559999999,106448.82112000002,73865.7213,112557.2896,47655.393,47655.393,47655.393,26828.322500000002,75668.64,75668.64,18711.679219999998,26032.75605,38695.60282,67492.33050000001,19154.96618,24361.51739,42472.773,42472.773,42472.773,42472.773,227510.3776,227510.3776 +25200000.0,384738.24900000007,288776.604,843227.68368,79656.44863000001,79656.44863000001,79656.44863000001,277981.564,740890.21592,965251.49184,523828.2798,798214.5216,386745.669,386745.669,386745.669,329268.583,384738.24900000007,384738.24900000007,252935.1487,321537.24765,477939.31626,833615.0865,236587.90074,300895.35027,346350.36000000004,346350.36000000004,346350.36000000004,346350.36000000004,1156779.66866,1156779.66866 +25203600.0,512208.2189999999,406981.55700000003,1188386.14644,207870.64683,207870.64683,207870.64683,476923.762,980083.0554399999,1643319.8784,772149.2058000001,1176608.3136000002,506449.401,506449.401,506449.401,614966.198,512208.2189999999,512208.2189999999,423816.4112,591653.47185,879445.4075399999,1533916.4085,435340.08546000003,553670.77983,525231.7860000001,525231.7860000001,525231.7860000001,525231.7860000001,1540039.3784599998,1540039.3784599998 +25207200.0,566610.9269999999,447371.04000000004,1306323.4368000003,354265.33967,354265.33967,354265.33967,596899.828,1076514.46112,1851944.8140800002,879244.4915100001,1339801.1299200002,551907.9809999999,551907.9809999999,551907.9809999999,695922.192,566610.9269999999,566610.9269999999,496277.25745,686441.3202,1020339.93768,1779662.682,505085.21832000004,642373.48236,599824.638,599824.638,599824.638,599824.638,1703610.1871799997,1703610.1871799997 +25210800.0,581242.851,461826.123,1348532.27916,441039.05835,441039.05835,441039.05835,613388.4434999999,1101028.69624,1883697.9852800001,899492.7595500001,1370655.6336,568953.4920000001,568953.4920000001,568953.4920000001,709621.1745,581242.851,581242.851,516023.10591,708089.0238,1052517.51192,1835786.358,521013.65208,662631.45684,610246.158,610246.158,610246.158,610246.158,1747603.50534,1747603.50534 +25214400.0,545841.7620000001,448524.372,1309691.1662399997,414394.27018000005,414394.27018000005,414394.27018000005,493519.7960000001,907863.6532000001,1357296.9510400002,751522.85502,1145177.68384,443093.39999999997,443093.39999999997,443093.39999999997,573380.7975000001,545841.7620000001,545841.7620000001,495551.51022,570729.0415500001,848342.92102,1479667.8855,419943.83798000007,534089.6462900001,549817.71,549817.71,549817.71,549817.71,1641164.23108,1641164.23108 +25218000.0,246557.877,178021.239,519822.01788,250707.62068000002,250707.62068000002,250707.62068000002,237989.00650000005,422701.10967999994,514977.60000000003,339215.32428,516899.54176,187482.924,187482.924,187482.924,261485.0805,246557.877,246557.877,348532.48936999997,124751.52629999998,185433.13291999997,323429.883,91792.48108,116742.78633999999,291465.957,291465.957,291465.957,291465.957,741317.35018,741317.35018 +25221600.0,82183.76100000001,69207.13799999999,202084.84295999998,93618.99063,93618.99063,93618.99063,80693.12299999999,146006.08528,385617.92512,138654.95973,211283.74816000002,100693.22700000001,100693.22700000001,100693.22700000001,83795.082,82183.76100000001,82183.76100000001,141632.44615,51997.84065,77290.61746,134809.2165,38260.13954,48659.70767,81145.878,81145.878,81145.878,81145.878,247099.17474000002,247099.17474000002 +25225200.0,73751.22,66264.981,193493.74452,56100.15961,56100.15961,56100.15961,46857.950999999994,123271.90551999999,374121.24672000005,120808.81008,184089.61536,94677.015,94677.015,94677.015,71734.495,73751.22,73751.22,136806.90984999997,40217.224949999996,59779.677579999996,104266.8795,29591.93342,37635.37841,74002.464,74002.464,74002.464,74002.464,221745.33479999998,221745.33479999998 +25228800.0,68474.256,64384.350000000006,188002.302,35184.869170000005,35184.869170000005,35184.869170000005,25900.615999999998,109085.53519999998,366600.24000000005,108900.24704999999,165943.2336,90650.631,90650.631,90650.631,65017.554,68474.256,68474.256,133687.61041999998,32711.404499999997,48622.877799999995,84807.345,24069.132199999996,30611.413099999998,70356.98700000001,70356.98700000001,70356.98700000001,70356.98700000001,205879.26304,205879.26304 +25232400.0,68315.688,65829.699,192222.72108,34695.553420000004,34695.553420000004,34695.553420000004,21229.729499999998,124475.20831999999,368155.32928,107678.36331000002,164081.31552000003,90604.68900000001,90604.68900000001,90604.68900000001,64430.387,68315.688,68315.688,134158.00437,32279.330249999995,47980.63409999999,83687.1525,23751.2109,30207.076949999995,69802.023,69802.023,69802.023,69802.023,205402.50192,205402.50192 +25236000.0,74104.827,73319.094,214091.75448,30141.951950000002,30141.951950000002,30141.951950000002,16842.938000000002,124858.05536,376024.45248,111336.43626,169655.52192,92298.906,92298.906,92298.906,64284.3285,74104.827,74104.827,137583.77294999998,38146.91355,56702.32582,98899.4055,28068.59318,35697.97589,70324.14600000001,70324.14600000001,70324.14600000001,70324.14600000001,222808.51317999998,222808.51317999998 +25239600.0,79229.17800000001,78656.961,229678.32611999998,32085.169380000007,32085.169380000007,32085.169380000007,17578.036,130911.96872,391324.21312000003,118037.32710000001,179866.40320000003,96610.626,96610.626,96610.626,66950.87700000001,79229.17800000001,79229.17800000001,150083.88069999998,39753.589049999995,59090.52001999999,103064.8605,29250.788979999998,37201.50679,73159.062,73159.062,73159.062,73159.062,238215.72852,238215.72852 +25243200.0,82118.352,83700.309,244404.90227999998,35348.81284,35348.81284,35348.81284,24334.933,136815.94592,405183.73376000003,127431.73989000001,194181.69888,100750.75200000001,100750.75200000001,100750.75200000001,69881.4515,82118.352,82118.352,163796.79146999997,41753.5317,62063.274280000005,108249.89700000001,30722.351720000002,39073.05806,77627.937,77627.937,77627.937,77627.937,246902.51168,246902.51168 +25246800.0,90805.026,91106.337,266030.50403999997,47652.83798,47652.83798,47652.83798,35694.5785,153498.72352,439626.6259200001,159964.93905,243756.09759999998,126363.204,126363.204,126363.204,79690.219,90805.026,90805.026,178572.04846000002,49981.77495,74293.89757999999,129582.3795,36776.71342,46773.06841,90529.998,90529.998,90529.998,90529.998,273020.44484,273020.44484 +25250400.0,698723.5260000001,680600.733,1987354.1403599998,573718.86055,573718.86055,573718.86055,729441.3665,1108058.08232,903720.06528,855473.42916,1303578.55872,427968.123,427968.123,427968.123,1144181.4545,698723.5260000001,698723.5260000001,1271834.7695300002,354380.5242,526758.2112799999,918764.322,260754.06472,331630.16956,856252.905,856252.905,856252.905,856252.905,2100828.73484,2100828.73484 +25254000.0,1407966.8250000002,1390757.301,4061011.31892,1607694.30195,1607694.30195,1607694.30195,1335396.0165,2112784.7055200003,2476368.5664000004,2084577.83562,3176499.55904,922678.851,922678.851,922678.851,1130508.4035,1407966.8250000002,1407966.8250000002,820341.3152999999,1114584.9074999997,1656741.0229999996,2889664.5749999997,820114.3269999999,1043031.3084999999,1561961.964,1561961.964,1561961.964,1561961.964,4233286.9205,4233286.9205 +25257600.0,1630435.4460000002,1325569.35,3870662.502,1325259.3259400001,1325259.3259400001,1325259.3259400001,1265525.9155,2596871.4801600003,6125725.741440001,2023883.68371,3084013.2323200004,1748361.2880000002,1748361.2880000002,1748361.2880000002,1580997.579,1630435.4460000002,1630435.4460000002,860928.3502299999,2195039.84535,3262750.58494,5690844.0435,1615115.73806,2054123.70713,1320483.744,1320483.744,1320483.744,1320483.744,4902175.907640001,4902175.907640001 +25261200.0,911976.936,521775.345,1523584.0073999998,700813.4790800001,700813.4790800001,700813.4790800001,1492834.2519999999,1992402.0348800002,3414792.43712,1845067.09044,2811530.80448,1308443.733,1308443.733,1308443.733,1523352.5684999998,911976.936,911976.936,981707.63782,1725032.3355,2564122.1382,4472306.055000001,1269283.0518,1614289.5189,1100868.699,1100868.699,1100868.699,1100868.699,2742010.6542399996,2742010.6542399996 +25264800.0,505706.40299999993,320601.756,936157.1275199999,572432.3498300001,572432.3498300001,572432.3498300001,795806.8825000001,1530114.52024,2430345.04576,955750.91388,1456382.34496,434687.43000000005,434687.43000000005,434687.43000000005,851429.9605,505706.40299999993,505706.40299999993,208596.85249000002,770026.84425,1144583.1116999998,1996365.8924999998,566587.6533,720593.02215,528565.365,528565.365,528565.365,528565.365,1520490.5850199996,1520490.5850199996 +25268400.0,282660.21900000004,204579.55800000002,597372.30936,131604.76461,131604.76461,131604.76461,247307.5325,810417.44824,608372.20544,509324.50464,776113.53088,264816.897,264816.897,264816.897,265714.7535,282660.21900000004,282660.21900000004,132898.05854,234580.9653,348685.78052,608172.873,172605.25348,219521.44654,273842.877,273842.877,273842.877,273842.877,849865.05846,849865.05846 +25272000.0,386782.887,294229.146,859149.1063199999,155890.20227,155890.20227,155890.20227,355307.49100000004,756844.3075199999,1151018.0480000002,580107.35769,883973.11648,377773.41900000005,377773.41900000005,377773.41900000005,430305.37549999997,386782.887,386782.887,294933.69737,415930.01849999995,618246.5953999999,1078337.085,306042.33459999994,389228.33829999994,383611.56599999993,383611.56599999993,383611.56599999993,383611.56599999993,1162927.2135799997,1162927.2135799997 +25275600.0,218563.27500000002,142722.114,416748.57288,84342.80536000001,84342.80536000001,84342.80536000001,165014.1535,412683.1036,502235.04192000005,287329.29078,437835.10976,196769.72100000002,196769.72100000002,196769.72100000002,169574.356,218563.27500000002,218563.27500000002,120965.12674999998,162139.25519999999,241006.99167999998,420361.032,119302.46432,151730.31536,182477.826,182477.826,182477.826,182477.826,657146.9135,657146.9135 +25279200.0,131403.70200000002,62329.67999999999,182002.66559999998,65634.89163,65634.89163,65634.89163,80639.125,237219.65536,216597.88672,146453.3763,223167.04960000003,102391.149,102391.149,102391.149,64086.77450000001,131403.70200000002,131403.70200000002,50174.10567,55343.12039999999,82263.10736,143482.164,40721.60464,51790.22872,91565.81099999999,91565.81099999999,91565.81099999999,91565.81099999999,395087.13068,395087.13068 +25282800.0,102923.97,44665.947,130424.56524,51186.391630000006,51186.391630000006,51186.391630000006,55617.597,177536.82344,158074.46464,105873.59034,161331.18528,71662.89899999999,71662.89899999999,71662.89899999999,41603.1385,102923.97,102923.97,33702.67914,35548.9479,52840.658359999994,92163.939,26157.00364,33266.79322,64925.046,64925.046,64925.046,64925.046,309458.06979999994,309458.06979999994 +25286400.0,452920.092,355226.286,1037260.75512,107770.1812,107770.1812,107770.1812,366161.831,874120.86904,1308708.688,650463.08901,991181.84992,449884.87799999997,449884.87799999997,449884.87799999997,457130.8805000001,452920.092,452920.092,328808.83906,449428.99815,668040.14046,1165186.2915,330690.96654,420576.76617,433729.13100000005,433729.13100000005,433729.13100000005,433729.13100000005,1361779.74328,1361779.74328 +25290000.0,564484.8570000001,454907.745,1328330.6154,287623.01722000004,287623.01722000004,287623.01722000004,560258.5625,1081015.99736,1894008.71104,874651.77009,1332802.6972800002,557244.6869999999,557244.6869999999,557244.6869999999,699987.5715,564484.8570000001,564484.8570000001,514490.41864999995,696458.4525,1035229.601,1805633.0250000001,512455.84900000005,651747.5395000001,606969.522,606969.522,606969.522,606969.522,1697217.80338,1697217.80338 +25293600.0,607867.9469999999,483521.085,1411881.5682,460781.69225,460781.69225,460781.69225,653822.6065,1152672.61048,1984786.0780800001,962535.18018,1466720.27456,593485.449,593485.449,593485.449,747038.1835,607867.9469999999,607867.9469999999,544643.83246,746997.6978000001,1110352.13352,1936660.698,549642.75048,699042.2900400001,643931.865,643931.865,643931.865,643931.865,1827656.2939799996,1827656.2939799996 +25297200.0,609466.191,495734.14199999993,1447543.69464,539731.58481,539731.58481,539731.58481,663520.8335,1156000.2891999998,1990198.94336,971562.63855,1480476.4016,594815.277,594815.277,594815.277,756581.0945,609466.191,609466.191,545026.47758,750945.4839,1116220.20076,1946895.699,552547.54124,702736.6380200001,653599.314,653599.314,653599.314,653599.314,1832461.6809399999,1832461.6809399999 +25300800.0,567562.911,474205.395,1384679.7534,462724.14045,462724.14045,462724.14045,510600.629,939765.68104,1414652.17664,790820.32428,1205059.54176,452716.01399999997,452716.01399999997,452716.01399999997,592938.185,567562.911,567562.911,514757.62377,591576.9308999999,879331.63556,1533717.969,435283.76644,553599.15262,573461.5319999999,573461.5319999999,573461.5319999999,573461.5319999999,1706472.48574,1706472.48574 +25304400.0,253942.71600000001,183525.483,535894.41036,263265.45916,263265.45916,263265.45916,244221.53700000004,435036.93584,533457.01888,356275.21755,542895.5696,192754.299,192754.299,192754.299,268398.45900000003,253942.71600000001,253942.71600000001,361466.44950000005,128690.48745,191288.08258,333642.0045,94690.77842,120428.87591,302277.46499999997,302277.46499999997,302277.46499999997,302277.46499999997,763521.09944,763521.09944 +25308000.0,84088.76699999999,69909.024,204134.35008,98459.48640000001,98459.48640000001,98459.48640000001,81235.53550000001,148100.25671999998,384787.67232000007,144176.16171,219697.00832,100711.11000000002,100711.11000000002,100711.11000000002,84119.7245,84088.76699999999,84088.76699999999,143484.09412999998,52712.29304999999,78352.59361999999,136661.5005,38785.83538,49328.29399,86142.84,86142.84,86142.84,86142.84,252826.89278,252826.89278 +25311600.0,77206.428,66748.416,194905.37471999996,64864.90868,64864.90868,64864.90868,47271.0035,125224.63799999998,370767.54112000007,124169.62551,189210.85792,93713.181,93713.181,93713.181,71422.568,77206.428,77206.428,137697.16869999998,40426.28595,60090.42997999999,104808.88949999999,29745.761019999998,37831.018209999995,77302.16700000002,77302.16700000002,77302.16700000002,77302.16700000002,232133.99352,232133.99352 +25315200.0,73261.25399999999,65083.743,190044.52956000002,41173.6666,41173.6666,41173.6666,26370.5575,113437.69008000001,364871.79968,112635.61931999998,171635.22944,90121.464,90121.464,90121.464,65252.859,73261.25399999999,73261.25399999999,135056.68072,33027.38145,49092.55218,85626.5445,24301.62882,30907.105110000004,72309.85800000001,72309.85800000001,72309.85800000001,72309.85800000001,220272.17035999996,220272.17035999996 +25318800.0,74339.208,67271.27399999999,196432.12007999996,36354.729620000006,36354.729620000006,36354.729620000006,21853.608000000004,129512.8332,369735.3881600001,112531.27200000001,171476.22400000002,91099.45499999999,91099.45499999999,91099.45499999999,65029.195,74339.208,74339.208,136750.01716999998,33167.3049,49300.53716,85989.30900000001,24404.584840000003,31038.045820000003,72329.58600000001,72329.58600000001,72329.58600000001,72329.58600000001,223513.21872,223513.21872 +25322400.0,80387.463,76095.30300000001,222198.28476,32746.49147,32746.49147,32746.49147,17437.798,136340.76848,376730.99968,116215.81818000002,177090.77056000003,92764.467,92764.467,92764.467,64803.263000000006,80387.463,80387.463,140821.29256,38766.17475,57622.8079,100504.8975,28524.2471,36277.48205,72731.289,72731.289,72731.289,72731.289,241698.30542,241698.30542 +25326000.0,83245.566,77650.236,226738.68912,33904.13785,33904.13785,33904.13785,18352.729499999998,153347.35656,379276.9632,118931.43738,181228.85696,93979.062,93979.062,93979.062,65564.81049999999,83245.566,83245.566,148691.63100999998,39073.88970000001,58080.20148,101302.67700000001,28750.664520000006,36565.442460000006,73449.912,73449.912,73449.912,73449.912,250291.66844,250291.66844 +25329600.0,83894.47499999999,79814.75700000001,233059.09044,35879.60596000001,35879.60596000001,35879.60596000001,24575.0925,159081.18536,380323.05344000005,123773.91327,188607.86784,95167.51499999998,95167.51499999998,95167.51499999998,66504.3645,83894.47499999999,83894.47499999999,155872.30685,39748.9761,59083.663239999994,103052.901,29247.39476,37197.18998,75111.477,75111.477,75111.477,75111.477,252242.72149999996,252242.72149999996 +25333200.0,129400.296,103376.19,301858.4748,59436.05778,59436.05778,59436.05778,32710.9825,503524.08751999994,395972.73664,206302.39896,314365.56032,102470.72099999999,102470.72099999999,102470.72099999999,106888.3095,129400.296,129400.296,346585.42542,54693.690749999994,81297.78229999999,141798.4575,40243.7527,51182.49085,143103.0,143103.0,143103.0,143103.0,389063.55663999997,389063.55663999997 +25336800.0,633235.266,296064.24,864507.5808,752427.1922200001,752427.1922200001,752427.1922200001,618386.0199999999,2223285.90344,1796182.1376000002,1505079.8790300002,2293455.0537600005,527442.96,527442.96,527442.96,548959.145,633235.266,633235.266,1717892.7554099998,696717.55935,1035614.7425399999,1806304.7835,512646.50046,651990.01233,798665.6939999999,798665.6939999999,798665.6939999999,798665.6939999999,1903927.3664399998,1903927.3664399998 +25340400.0,639762.108,933806.25,2726714.25,905658.28441,905658.28441,905658.28441,1206086.9449999998,2942776.1168,1898450.5689600003,2060924.8764300002,3140456.95456,884382.4199999999,884382.4199999999,884382.4199999999,944401.4755000001,639762.108,639762.108,1565529.43976,1307188.4692499998,1943030.7616999997,3389007.1424999996,961832.5032999999,1223270.19715,958570.212,958570.212,958570.212,958570.212,1923551.40472,1923551.40472 +25344000.0,1543582.4970000002,1162428.1260000002,3394290.12792,598764.7980600002,598764.7980600002,598764.7980600002,744661.1725,2684254.94464,4427253.98976,2098161.8580300002,3197199.0217600004,1297519.365,1297519.365,1297519.365,765067.9785,1543582.4970000002,1543582.4970000002,935144.1442199998,927334.251,1378407.9483999999,2404199.91,682334.8316,867801.6818,1737067.266,1737067.266,1737067.266,1737067.266,4641038.04098,4641038.04098 +25347600.0,700644.807,449329.18200000003,1312041.21144,285764.86279000004,285764.86279000004,285764.86279000004,198715.97900000002,651469.64264,4428718.318080001,238916.60205000002,364063.3936,705605.109,705605.109,705605.109,762976.5954999999,700644.807,700644.807,344049.37215999997,1211657.6646,1801031.88664,3141334.686,891540.7013600001,1133872.23428,250221.042,250221.042,250221.042,250221.042,2106605.38638,2106605.38638 +25351200.0,232388.499,66709.713,194792.36195999998,123099.34373,123099.34373,123099.34373,106468.18350000001,308804.15616,359724.99392000004,140173.19295,213597.24640000003,99355.57500000001,99355.57500000001,99355.57500000001,69886.376,232388.499,232388.499,143746.36419,75741.67034999999,112583.91493999997,196367.29349999997,55730.908059999994,70879.24212999998,96605.73300000001,96605.73300000001,96605.73300000001,96605.73300000001,698714.7536599999,698714.7536599999 +25354800.0,229585.88100000002,597886.017,1745827.1696399997,148073.77133999998,148073.77133999998,148073.77133999998,321606.4005,528562.07136,589159.1155200001,334929.00357000006,510368.0054400001,135563.223,135563.223,135563.223,392918.036,229585.88100000002,229585.88100000002,160744.15863999998,133410.19544999997,198303.54977999997,345878.28449999995,98163.55122,124845.59030999999,164253.56699999998,164253.56699999998,164253.56699999998,164253.56699999998,690288.21554,690288.21554 +25358400.0,279156.333,197917.695,577919.6694,144157.10452000002,144157.10452000002,144157.10452000002,302174.873,597248.95104,840458.1747200001,361646.86341,551080.93472,240757.149,240757.149,240757.149,187480.5275,279156.333,279156.333,285408.64196,241108.28955,358388.12422,625095.5655,177408.07478,225629.73269,243877.515,243877.515,243877.515,243877.515,839330.04122,839330.04122 +25362000.0,155289.612,98543.427,287746.80684,74187.29252,74187.29252,74187.29252,89548.57800000001,325818.37128,382228.77248000004,162483.76473000002,247594.30816000004,131612.571,131612.571,131612.571,86414.517,155289.612,155289.612,160818.83388999998,98561.95019999999,146504.42968,255530.982,72522.12632,92234.51636,117639.76800000001,117639.76800000001,117639.76800000001,117639.76800000001,466904.10007999995,466904.10007999995 +25365600.0,232988.337,161714.84100000001,472207.33572,388592.30575000006,388592.30575000006,388592.30575000006,230180.35950000002,514423.23864,186459.77536000003,455252.29722,693717.78624,143425.473,143425.473,143425.473,430154.42049999995,232988.337,232988.337,498322.9841199999,258085.2699,383623.04316,669109.9590000001,189899.77884,241516.83282000004,99840.378,99840.378,99840.378,99840.378,700518.2665799999,700518.2665799999 +25369200.0,101227.53,364163.481,1063357.36452,272781.51802,272781.51802,272781.51802,276856.993,538968.50168,177942.54144000003,106186.55501999999,161808.08384,163387.092,163387.092,163387.092,489175.8445,101227.53,101227.53,458886.98699999996,179605.5201,266969.19284,465643.941,132154.18516,168075.28918,143451.894,143451.894,143451.894,143451.894,304357.4402,304357.4402 +25372800.0,358529.865,345442.26300000004,1008691.40796,307190.05097000004,307190.05097000004,307190.05097000004,241073.532,831736.08792,1197445.1187200001,510053.56899000006,777224.4860800001,332652.765,332652.765,332652.765,375932.823,358529.865,358529.865,455872.7043,349855.4916,520032.11344,907032.756,257424.53456,327395.63288,344754.93,344754.93,344754.93,344754.93,1077979.7941,1077979.7941 +25376400.0,1495782.327,1093540.548,3193138.4001599997,1257537.14295,1257537.14295,1257537.14295,2025566.5920000002,2377009.71808,3699097.9456,2504550.6874499996,3816458.1903999997,1596750.687,1596750.687,1596750.687,1520871.7510000002,1495782.327,1495782.327,1041136.9627099999,1623020.0444999998,2412489.0538,4207829.745,1194222.1562,1518826.1651,1450982.6099999999,1450982.6099999999,1450982.6099999999,1450982.6099999999,4497318.863179999,4497318.863179999 +25380000.0,708507.888,472743.97199999995,1380412.39824,533118.80347,533118.80347,533118.80347,640719.0194999999,1200426.6350399998,1963180.9331200002,989110.9365899999,1507216.66528,608602.473,608602.473,608602.473,772144.4955,708507.888,708507.888,470922.47760999994,747008.94465,1110368.8510599998,1936689.8565,549651.02594,699052.81487,681286.932,681286.932,681286.932,681286.932,2130247.04992,2130247.04992 +25383600.0,601037.22,486737.67000000004,1421273.9964,571033.3972199999,571033.3972199999,571033.3972199999,637108.99,1131538.59072,1974146.77632,939899.55906,1432227.89952,589342.992,589342.992,589342.992,757385.7305,601037.22,601037.22,472507.18983,745889.7919499999,1108705.32038,1933788.3494999998,548827.55062,698005.5090099999,644374.7609999999,644374.7609999999,644374.7609999999,644374.7609999999,1807118.5747999998,1807118.5747999998 +25387200.0,613086.855,504800.17500000005,1474016.511,589183.4645400001,589183.4645400001,589183.4645400001,639164.8445,1141854.2032,2033622.9491200002,954388.39986,1454306.1331200001,605272.047,605272.047,605272.047,770787.759,613086.855,613086.855,485979.61022,762690.3137999999,1133677.94792,1977345.258,561189.41608,713727.47884,662997.1950000001,662997.1950000001,662997.1950000001,662997.1950000001,1843347.8107,1843347.8107 +25390800.0,431859.99899999995,348295.782,1017023.6834399999,403323.14165,403323.14165,403323.14165,388462.76,580313.94384,1198860.48704,524766.7584599999,799644.58432,318403.80299999996,318403.80299999996,318403.80299999996,384681.7485,431859.99899999995,431859.99899999995,343985.20676,344115.42659999995,511499.9674399999,892151.1059999999,253200.98056,322024.06588,416791.62899999996,416791.62899999996,416791.62899999996,416791.62899999996,1298459.0636599998,1298459.0636599998 +25394400.0,79084.503,57151.865999999995,166883.44872,100421.51130000001,100421.51130000001,100421.51130000001,81086.19750000001,122057.9272,377628.09920000006,112257.97611000002,171059.77312000003,97796.418,97796.418,97796.418,82007.27500000001,79084.503,79084.503,99907.25459,51776.73495,76961.96158,134235.97950000002,38097.449420000004,48452.79641,79016.10299999999,79016.10299999999,79016.10299999999,79016.10299999999,237780.73901999998,237780.73901999998 +25398000.0,70651.554,59463.027,173632.03884000002,65338.001410000004,65338.001410000004,65338.001410000004,47293.8025,99630.73288,367659.7888,93308.66412,142184.63104,91897.14899999999,91897.14899999999,91897.14899999999,69956.166,70651.554,70651.554,107816.96288999998,39784.8267,59136.95228,103145.84700000001,29273.77372,37230.73906,70805.502,70805.502,70805.502,70805.502,212425.67236,212425.67236 +25401600.0,65560.455,63571.224,185627.97407999999,41620.50376000001,41620.50376000001,41620.50376000001,26382.321000000004,91290.81576,361364.75136,81599.88438000002,124342.68096000003,88266.13500000001,88266.13500000001,88266.13500000001,62505.936499999996,65560.455,65560.455,123108.50123,32369.309100000002,48114.38044,83920.43100000001,23817.41756,30291.279380000004,65747.34,65747.34,65747.34,65747.34,197118.43469999998,197118.43469999998 +25405200.0,65385.03,64323.009000000005,187823.18628,37104.02883,37104.02883,37104.02883,21666.1795,114526.64568000002,362013.66719999997,79329.33519,120882.79647999999,88153.70999999999,88153.70999999999,88153.70999999999,62303.178,65385.03,65385.03,126862.57155,30826.939499999997,45821.771799999995,79921.69499999999,22682.5382,28847.926099999997,64938.921,64938.921,64938.921,64938.921,196590.99019999997,196590.99019999997 +25408800.0,66140.073,66605.739,194488.75788,32345.63717,32345.63717,32345.63717,16858.114,121487.67455999998,360654.08064,83454.24696,127168.37632000002,88045.536,88045.536,88045.536,61198.196500000005,66140.073,66140.073,133276.24479,30435.38955,45239.76422,78906.5655,22394.43478,28481.51269,64546.689000000006,64546.689000000006,64546.689000000006,64546.689000000006,198861.15282,198861.15282 +25412400.0,72435.318,73410.393,214358.34755999997,33001.920600000005,33001.920600000005,33001.920600000005,17068.4955,123043.46224,364911.45728000003,95460.08136000001,145462.98112,89266.79400000001,89266.79400000001,89266.79400000001,63313.859,72435.318,72435.318,140752.1921,37275.033599999995,55406.34623999999,96638.976,27427.061759999997,34882.06848,67345.94099999999,67345.94099999999,67345.94099999999,67345.94099999999,217788.85611999998,217788.85611999998 +25416000.0,76004.54699999999,76020.906,221981.04551999999,35027.89334,35027.89334,35027.89334,18776.495499999997,123583.51039999998,363629.0425600001,110826.33513,168878.22496000002,89084.658,89084.658,89084.658,63666.582,76004.54699999999,76004.54699999999,147974.45038999998,37705.192200000005,56045.74248,97754.202,27743.57352,35284.61196,71162.658,71162.658,71162.658,71162.658,228520.33797999998,228520.33797999998 +25419600.0,119130.876,97969.42199999999,286070.71223999996,57640.27203,57640.27203,57640.27203,31189.511499999997,454283.99903999997,370261.088,183647.65104,279844.03968,88803.807,88803.807,88803.807,100846.21399999999,119130.876,119130.876,333008.00272999995,50212.495350000005,74636.84494,130180.54350000001,36946.47806,46988.97713000001,131538.96899999998,131538.96899999998,131538.96899999998,131538.96899999998,358186.83384,358186.83384 +25423200.0,589639.035,283420.581,827588.09652,703149.70385,703149.70385,703149.70385,563132.3740000001,2102741.42392,1641841.14496,1407387.44895,2144590.3984000003,459088.1699999999,459088.1699999999,459088.1699999999,499721.35149999993,589639.035,589639.035,1724392.67195,641783.86155,953960.20902,1663884.0855,472226.14998000005,600582.92229,762391.584,762391.584,762391.584,762391.584,1772848.0318999998,1772848.0318999998 +25426800.0,589664.841,817802.8620000001,2387984.35704,824584.6780600001,824584.6780600001,824584.6780600001,1081295.978,2789501.59088,1692777.57312,1941383.42937,2958298.55904,822381.27,822381.27,822381.27,859149.2595,589664.841,589664.841,1087588.4795099997,1217846.178,1810230.6152,3157378.98,896094.2248,1139663.4604,896628.33,896628.33,896628.33,896628.33,1772925.62194,1772925.62194 +25430400.0,1444736.547,1020096.3929999999,2978681.46756,560145.99256,560145.99256,560145.99256,698429.039,2212304.07544,3904789.557120001,1895609.2247399997,2888547.39008,1141112.298,1141112.298,1141112.298,696417.1095,1444736.547,1444736.547,833273.24561,835606.2303,1242061.60652,2166386.523,614841.12748,781962.3735400001,1625236.2480000001,1625236.2480000001,1625236.2480000001,1625236.2480000001,4343841.217979999,4343841.217979999 +25434000.0,640349.058,405404.73,1183781.8116,283986.87108,283986.87108,283986.87108,194758.9665,570160.56656,4101267.21216,204718.41978,311951.87776,619304.118,619304.118,619304.118,710501.449,640349.058,640349.058,307151.36192,1148749.3143,1707523.6721199998,2978238.963,845252.58188,1075002.44474,219016.47300000003,219016.47300000003,219016.47300000003,219016.47300000003,1925316.1677199998,1925316.1677199998 +25437600.0,187816.875,47809.01099999999,139602.31212,119547.18204,119547.18204,119547.18204,104702.5315,244217.45288,218492.57344,115295.41821,175688.25632000001,75061.623,75061.623,75061.623,55990.3855,187816.875,187816.875,110155.24818999998,61998.44895,92155.71918,160736.7195,45618.61182,58018.30161,77142.01800000001,77142.01800000001,77142.01800000001,77142.01800000001,564702.7374999999,564702.7374999999 +25441200.0,182581.422,530774.214,1549860.70488,140981.47480999999,140981.47480999999,140981.47480999999,301958.72,441451.59768,440429.08032000007,276548.86602,421407.79584000004,102899.66399999999,102899.66399999999,102899.66399999999,347051.873,182581.422,182581.422,115496.15193999998,95418.1701,141831.45283999998,247380.44100000002,70208.92516,89292.55918000001,124992.58800000002,124992.58800000002,124992.58800000002,124992.58800000002,548961.4754799999,548961.4754799999 +25444800.0,258011.08500000002,182943.039,534193.67388,139769.76662,139769.76662,139769.76662,279004.152,549518.41496,722707.0572800001,318738.12873000005,485696.19616000005,217687.43699999998,217687.43699999998,217687.43699999998,171073.847,258011.08500000002,258011.08500000002,263490.29446999996,206040.90284999998,306263.26794,534180.1185,151605.40506,192813.58563,212737.72500000003,212737.72500000003,212737.72500000003,212737.72500000003,775753.3289000001,775753.3289000001 +25448400.0,144651.255,87492.552,255478.25183999998,73545.6733,73545.6733,73545.6733,85573.663,294859.72536000004,333411.86624,146799.96744,223695.18848,118275.79800000001,118275.79800000001,118275.79800000001,79092.8285,144651.255,144651.255,146628.15543999997,88568.5914,131650.10376,229622.274,65168.98824,82882.70652,106778.32500000001,106778.32500000001,106778.32500000001,106778.32500000001,434918.10669999995,434918.10669999995 +25452000.0,191747.625,135155.022,394652.66423999995,352166.72557,352166.72557,352166.72557,159026.26249999998,413899.4588,106357.36384,394149.48867,600608.7446399999,106550.75400000002,106550.75400000002,106550.75400000002,356528.3715,191747.625,191747.625,442192.66507,213972.88859999998,318053.52823999996,554744.526,157441.77976,200236.35748,66180.966,66180.966,66180.966,66180.966,576521.1925,576521.1925 +25455600.0,95822.895,341468.538,997088.13096,270004.56923,270004.56923,270004.56923,267851.598,499393.39712,162383.90208,91231.27146000002,139019.08032000004,151046.565,151046.565,151046.565,438054.274,95822.895,95822.895,434185.2031399999,166092.9948,246883.90832,430611.468,122211.63568,155430.23464,133485.879,133485.879,133485.879,133485.879,288107.5043,288107.5043 +25459200.0,348582.453,325615.158,950796.26136,308683.08570000005,308683.08570000005,308683.08570000005,214074.833,809105.3637599999,1078872.4742400001,479706.87219,730981.9004800001,321016.686,321016.686,321016.686,374843.903,348582.453,348582.453,447559.50914999994,318914.8281,474041.30004,826816.221,234658.31796000001,298441.28358,321234.00600000005,321234.00600000005,321234.00600000005,321234.00600000005,1048071.2420199999,1048071.2420199999 +25462800.0,1485969.87,1076737.014,3144072.08088,1197762.5018700003,1197762.5018700003,1197762.5018700003,1998860.388,2375769.39552,3674911.6294400003,2464927.7486400004,3756080.37888,1589730.549,1589730.549,1589730.549,1496306.8645000001,1485969.87,1485969.87,1032517.7649799999,1583140.99455,2353212.04622,4104439.6155,1164879.05278,1481507.25169,1439059.842,1439059.842,1439059.842,1439059.842,4467816.0758,4467816.0758 +25466400.0,741859.836,509761.956,1488504.91152,561580.1262500001,561580.1262500001,561580.1262500001,675104.8744999999,1286562.26088,2144988.60544,1061141.49939,1616977.52288,659995.6740000001,659995.6740000001,659995.6740000001,844609.416,741859.836,741859.836,508902.2328,809806.09005,1203711.76842,2099497.2705,595857.32058,757818.53859,735971.514,735971.514,735971.514,735971.514,2230525.2402399997,2230525.2402399997 +25470000.0,663851.3999999999,543103.689,1585862.7718800001,627094.23656,627094.23656,627094.23656,707512.757,1264155.50656,2225577.8208000003,1044842.08962,1592140.32704,667493.61,667493.61,667493.61,863355.0275,663851.3999999999,663851.3999999999,524156.31085999997,837152.60535,1244360.16894,2170395.6435000002,615978.95406,783409.47513,719209.4820000001,719209.4820000001,719209.4820000001,719209.4820000001,1995979.8759999997,1995979.8759999997 +25473600.0,693250.416,578200.7790000001,1688346.2746800003,668744.0443200001,668744.0443200001,668744.0443200001,728110.0925,1310521.12368,2356107.23712,1088469.82293,1658620.68256,704202.1799999999,704202.1799999999,704202.1799999999,906347.1515,693250.416,693250.416,554010.71102,879212.6046,1306878.98264,2279440.086,646926.80536,822769.32628,761868.504,761868.504,761868.504,761868.504,2084372.91744,2084372.91744 +25477200.0,500458.8030000001,418959.71100000007,1223362.3561200001,485792.70916,485792.70916,485792.70916,456073.576,694169.41584,1458211.72544,625661.7007200001,953389.2582400001,389534.136,389534.136,389534.136,471505.37700000004,500458.8030000001,500458.8030000001,409185.79091,416297.39804999996,618792.67562,1079289.5505,306312.65338,389572.13299,497609.592,497609.592,497609.592,497609.592,1504712.8010200001,1504712.8010200001 +25480800.0,95385.009,76209.324,222531.22608,114854.17493000001,114854.17493000001,114854.17493000001,86418.29350000001,145526.65632,490652.4441600001,133877.86272,204004.36224000002,129263.613,129263.613,129263.613,100713.921,95385.009,95385.009,135895.41004,60271.8246,89589.23064,156260.28600000002,44348.157360000005,56402.522280000005,96390.987,96390.987,96390.987,96390.987,286790.92706,286790.92706 +25484400.0,87922.89600000001,84057.135,245446.83419999998,78430.62975000001,78430.62975000001,78430.62975000001,52943.9015,135522.42096,486128.95360000007,116187.2922,177047.30240000002,124970.166,124970.166,124970.166,89661.194,87922.89600000001,87922.89600000001,163197.76368999996,48754.835549999996,72470.15062,126401.4255,35873.92838,45624.89549,89437.455,89437.455,89437.455,89437.455,264354.84064,264354.84064 +25488000.0,84482.385,83880.10200000001,244929.89784000002,56142.17422000001,56142.17422000001,56142.17422000001,32259.633,159737.26848,483400.75008,112562.80224,171524.27008000002,123299.853,123299.853,123299.853,85066.5655,84482.385,84482.385,174383.34654,45372.91545,67443.19778,117633.4845,33385.50322,42460.08631,90449.21699999999,90449.21699999999,90449.21699999999,90449.21699999999,254010.37089999998,254010.37089999998 +25491600.0,88396.27799999999,93367.026,272631.71592,51814.11587,51814.11587,51814.11587,27959.851499999997,169171.70088000002,491932.68288000004,122901.58146,187278.60032,126115.122,126115.122,126115.122,87574.872,88396.27799999999,88396.27799999999,185376.45242999998,55778.8437,82910.77507999999,144611.817,41042.21092,52197.97966,93599.886,93599.886,93599.886,93599.886,265778.14252,265778.14252 +25495200.0,97035.27,102400.70099999999,299010.04691999994,46908.675110000004,46908.675110000004,46908.675110000004,25656.995,166798.4008,490371.59872000007,149230.42344,227398.74048,125255.29800000001,125255.29800000001,125255.29800000001,86065.92050000001,97035.27,97035.27,201149.04848999996,61768.5021,91813.92164,160140.561,45449.41636,57803.116780000004,96548.63999999998,96548.63999999998,96548.63999999998,96548.63999999998,291752.7118,291752.7118 +25498800.0,96305.514,98297.214,287027.86488,45203.77246000001,45203.77246000001,45203.77246000001,29635.354000000003,159262.98456,468112.03264,162268.32258,247266.01536000002,119167.32900000003,119167.32900000003,119167.32900000003,82656.16100000001,96305.514,96305.514,192541.81803999995,61303.2867,91122.41627999999,158934.447,45107.10972,57367.76706,97516.52100000001,97516.52100000001,97516.52100000001,97516.52100000001,289558.57876,289558.57876 +25502400.0,98678.625,97637.457,285101.37444,46846.13549,46846.13549,46846.13549,30758.2205,157550.85424,490823.59744,173195.56968,263917.05856,149220.18300000002,149220.18300000002,149220.18300000002,92877.85149999999,98678.625,98678.625,189399.62301,62795.42415,93340.35886,162802.9515,46205.02814,58764.11297,108512.823,108512.823,108512.823,108512.823,296693.7325,296693.7325 +25506000.0,165880.8,124214.364,362705.94288,72372.35335,72372.35335,72372.35335,46614.029,526231.7712,520789.696,286317.82599,436293.83008000004,175565.23500000002,175565.23500000002,175565.23500000002,185345.111,165880.8,165880.8,375398.89829,83176.79805,123635.63561999999,215643.5505,61201.69338,77837.05299,193397.44499999998,193397.44499999998,193397.44499999998,193397.44499999998,498748.27199999994,498748.27199999994 +25509600.0,790207.8719999999,348448.803,1017470.50476,963404.7142500002,963404.7142500002,963404.7142500002,815933.9685000001,2592251.67808,2325924.8224,1857132.37731,2829916.0035200003,657658.0619999999,657658.0619999999,657658.0619999999,893522.868,790207.8719999999,790207.8719999999,1918354.5847699998,895707.52155,1331397.3530199998,2322204.6855,659063.80598,838205.3102899999,999021.939,999021.939,999021.939,999021.939,2375891.6684799995,2375891.6684799995 +25513200.0,718811.433,959587.959,2801996.8402799997,1061928.15256,1061928.15256,1061928.15256,1417205.4015000002,3193041.5904799993,2148185.72608,2242194.61221,3416677.5043200003,990089.466,990089.466,990089.466,1106330.1235,718811.433,718811.433,1397977.89014,1512179.2718999998,2247733.13996,3920464.779,1112665.24204,1415101.09642,1089019.008,1089019.008,1089019.008,1089019.008,2161226.37522,2161226.37522 +25516800.0,1661329.434,1395057.9360000002,4073569.1731200004,720130.32586,720130.32586,720130.32586,910191.4710000001,3055079.3868799997,5098074.84928,2418367.74648,3685131.8041600008,1497633.468,1497633.468,1497633.468,913186.225,1661329.434,1661329.434,1009494.2189799999,1108239.42015,1647308.96526,2873213.3115000003,815445.30174,1037093.1857700001,1921530.846,1921530.846,1921530.846,1921530.846,4995063.83156,4995063.83156 +25520400.0,803340.3570000001,470294.427,1373259.7268400001,340705.59336,340705.59336,340705.59336,238688.01249999998,805466.6407999999,4742212.52736,323822.75667,493444.20064,769061.202,769061.202,769061.202,850249.8445,803340.3570000001,803340.3570000001,392595.50927999994,1452805.8142499998,2159479.2597,3766533.5925,1068978.1053,1359539.26815,350632.25399999996,350632.25399999996,350632.25399999996,350632.25399999996,2415376.67338,2415376.67338 +25524000.0,264180.192,91197.91500000001,266297.9118,130583.1417,130583.1417,130583.1417,111510.21350000001,362064.20279999997,706546.61248,163703.53776,249453.00992,114710.82300000002,114710.82300000002,114710.82300000002,91226.436,264180.192,264180.192,178671.16331999996,95215.8969,141530.78996,246856.029,70060.09204,89103.27142,122624.55600000001,122624.55600000001,122624.55600000001,122624.55600000001,794301.7772799999,794301.7772799999 +25527600.0,266204.11799999996,675730.872,1973134.1462400001,167323.17822,167323.17822,167323.17822,380735.5195,621143.3577599999,735378.37312,408034.22205,621766.4336,170945.721,170945.721,170945.721,503288.8245,266204.11799999996,266204.11799999996,194054.03874999998,178529.61735000001,265369.94974,462854.56350000005,131362.53326,167068.45673,213712.25399999996,213712.25399999996,213712.25399999996,213712.25399999996,800387.0481199999,800387.0481199999 +25531200.0,314448.975,225396.93,658159.0356,182433.91199000002,182433.91199000002,182433.91199000002,353431.7535,650548.0731200001,982978.03648,422302.63614,643508.77888,268200.243,268200.243,268200.243,212348.91650000002,314448.975,314448.975,315596.74068000005,280130.89814999996,416392.1004599999,726265.2914999999,206121.00653999997,262147.18617,287725.806,287725.806,287725.806,287725.806,945443.2514999999,945443.2514999999 +25534800.0,157973.541,96635.313,282175.11396,75311.84166,75311.84166,75311.84166,91247.38,316601.65408,377784.72768,164889.23031,251259.77952,125314.42500000002,125314.42500000002,125314.42500000002,86438.058,157973.541,157973.541,157687.30263,101188.57770000001,150408.70068,262340.75700000004,74454.80532000001,94692.52086,119951.052,119951.052,119951.052,119951.052,474973.77994,474973.77994 +25538400.0,165947.313,113711.69999999998,332038.16399999993,454883.60698000004,454883.60698000004,454883.60698000004,286291.159,348809.28912000003,22938.401920000004,403252.64763,614480.2249600001,88236.741,88236.741,88236.741,439146.24250000005,165947.313,165947.313,382981.21874999994,258910.03619999997,384848.99207999994,671248.242,190506.64391999997,242288.65115999998,52701.159,52701.159,52701.159,52701.159,498948.25441999995,498948.25441999995 +25542000.0,80298.26699999999,384332.871,1122251.9833199999,271326.06567,271326.06567,271326.06567,271113.8395,494404.46616,129893.63264000001,79943.27648999999,121818.32608,122748.11700000001,122748.11700000001,122748.11700000001,490754.922,80298.26699999999,80298.26699999999,470305.36422999995,169900.85745,252543.99058,440483.70450000005,125013.47042000001,158993.64191000003,128328.147,128328.147,128328.147,128328.147,241430.12277999998,241430.12277999998 +25545600.0,275816.583,225053.90400000004,657157.39968,302300.84951000003,302300.84951000003,302300.84951000003,160510.567,631524.6644,614205.7894400001,324411.65442000004,494341.56864,231158.19899999996,231158.19899999996,231158.19899999996,276637.04949999996,275816.583,275816.583,371944.20717999997,188680.33079999997,280458.17071999994,489171.22799999994,138831.45328,176567.51944,225824.031,225824.031,225824.031,225824.031,829288.5262199999,829288.5262199999 +25549200.0,1525911.1349999998,1120033.506,3270497.83752,1376396.7961700002,1376396.7961700002,1376396.7961700002,2056769.687,2389181.6096,3659325.5398400007,2515255.55169,3832770.3644800005,1632369.102,1632369.102,1632369.102,1538646.242,1525911.1349999998,1525911.1349999998,1118063.6582699998,1644110.5369499999,2443838.3783799997,4262508.7995,1209740.59262,1538562.70001,1515282.399,1515282.399,1515282.399,1515282.399,4587906.145899999,4587906.145899999 +25552800.0,751963.5630000001,474290.88000000006,1384929.3696,531290.52284,531290.52284,531290.52284,657098.6414999999,1224730.56008,1964390.3865600002,1016633.69178,1549156.10176,620188.203,620188.203,620188.203,777110.8205,751963.5630000001,751963.5630000001,479899.00542999996,754137.8801999999,1120965.44168,1955172.282,554896.51432,705724.0903599999,688581.9990000001,688581.9990000001,688581.9990000001,688581.9990000001,2260903.77942,2260903.77942 +25556400.0,628644.867,510197.505,1489776.7145999998,594510.52881,594510.52881,594510.52881,670255.215,1178666.12344,2055706.41152,983882.4760799999,1499249.48736,616270.932,616270.932,616270.932,798534.4219999999,628644.867,628644.867,497003.74542,783087.588,1163996.8591999998,2030227.0799999998,576197.7808,732815.2984,672881.808,672881.808,672881.808,672881.808,1890125.5667799998,1890125.5667799998 +25560000.0,622053.789,513187.599,1498507.78908,609278.1819300001,609278.1819300001,609278.1819300001,652463.182,1150657.26736,2040427.51872,967782.8302800001,1474716.6937600002,609755.52,609755.52,609755.52,782418.2065,622053.789,622053.789,492495.89999999997,773725.6322999999,1150081.0633199997,2005955.3429999999,569309.2306799999,724054.35714,672098.904,672098.904,672098.904,672098.904,1870308.3922599999,1870308.3922599999 +25563600.0,440670.717,356269.06799999997,1040305.67856,423444.24485,423444.24485,423444.24485,400256.43700000003,590081.046,1213667.82976,536690.26068,817813.73056,321786.65400000004,321786.65400000004,321786.65400000004,396253.7075,440670.717,440670.717,370054.62753999996,353254.8915,525085.0486,915846.0150000001,259925.82140000002,330576.79970000003,427052.973,427052.973,427052.973,427052.973,1324949.95578,1324949.95578 +25567200.0,79746.321,57275.187000000005,167243.54604000002,101783.95194000001,101783.95194000001,101783.95194000001,81468.4675,122026.83504,374438.79040000006,112874.23581,171998.83552,96674.493,96674.493,96674.493,81851.8575,79746.321,79746.321,99294.05655,51882.57765,77119.28826,134510.38650000002,38175.328740000004,48551.84427,79778.094,79778.094,79778.094,79778.094,239770.60514,239770.60514 +25570800.0,70061.745,58095.03300000001,169637.49636000002,65678.31853000002,65678.31853000002,65678.31853000002,47269.7995,97810.90127999999,356155.87520000007,92267.28231,140597.76352,88382.26199999999,88382.26199999999,88382.26199999999,68374.73999999999,70061.745,70061.745,103492.26302999999,39241.94849999999,58330.00739999999,101738.385,28874.322599999996,36722.7123,70235.451,70235.451,70235.451,70235.451,210652.3133,210652.3133 +25574400.0,66390.063,62923.79699999999,183737.48724,43702.3983,43702.3983,43702.3983,26789.847,90526.56416,359299.84703999996,82351.89123000001,125488.59616000002,87474.45599999999,87474.45599999999,87474.45599999999,62512.016,66390.063,66390.063,122404.42304999998,32538.68415,48366.14286,84359.5515,23942.04414,30449.780970000003,66596.11799999999,66596.11799999999,66596.11799999999,66596.11799999999,199612.78942,199612.78942 +25578000.0,65984.979,64078.424999999996,187109.001,39149.28116,39149.28116,39149.28116,22047.284,111836.07008,359598.01344,79985.59695,121882.81440000002,87170.082,87170.082,87170.082,62272.13999999999,65984.979,65984.979,124011.02558,30962.3634,46023.06856,80272.79400000001,22782.18344,28974.65612,65702.421,65702.421,65702.421,65702.421,198394.83686,198394.83686 +25581600.0,67666.833,66802.491,195063.27372,33887.45085000001,33887.45085000001,33887.45085000001,17307.255,121761.95016000001,359931.82272000005,84612.33606000002,128933.08352000001,87634.014,87634.014,87634.014,61689.243,67666.833,67666.833,132636.58694,31232.482199999995,46424.57847999999,80973.102,22980.937519999996,29227.43396,67759.359,67759.359,67759.359,67759.359,203451.61122,203451.61122 +25585200.0,73543.179,73352.775,214190.103,34437.84102000001,34437.84102000001,34437.84102000001,17400.162500000002,122495.06287999998,361842.94912,93510.54363,142492.25696,88195.61399999999,88195.61399999999,88195.61399999999,62823.58249999999,73543.179,73543.179,139458.60512999998,41138.63235,61149.27574,106655.7135,30269.90726,38497.63373,69803.51699999999,69803.51699999999,69803.51699999999,69803.51699999999,221119.82486,221119.82486 +25588800.0,76385.448,75198.783,219580.44635999997,36064.835730000006,36064.835730000006,36064.835730000006,19892.957,122200.22464,358186.44224000006,105905.88855,161380.4016,87385.27799999999,87385.27799999999,87385.27799999999,63114.97499999999,76385.448,76385.448,145584.64036999998,43309.72395,64376.42917999999,112284.4695,31867.40182,40529.34661,71420.685,71420.685,71420.685,71420.685,229665.58032,229665.58032 +25592400.0,124399.209,100895.25300000001,294614.13876,60560.12666000001,60560.12666000001,60560.12666000001,32684.760500000004,465254.34559999994,383797.96223999996,192967.37754000002,294045.52768000006,92757.771,92757.771,92757.771,105537.8695,124399.209,124399.209,339298.44858,58728.762449999995,87295.59258,152259.7545,43212.76842,54958.52091,136352.66100000002,136352.66100000002,136352.66100000002,136352.66100000002,374026.95505999995,374026.95505999995 +25596000.0,607060.8389999999,292182.165,853171.9217999999,745275.76266,745275.76266,745275.76266,588090.5765,2123253.6472,1680085.9769600003,1459279.9932900001,2223664.75168,473435.892,473435.892,473435.892,531112.6345,607060.8389999999,607060.8389999999,1778351.5357399997,666183.3984,990228.16256,1727142.144,490179.38944,623416.06912,782111.268,782111.268,782111.268,782111.268,1825229.5892599998,1825229.5892599998 +25599600.0,601741.716,810934.9439999999,2367930.03648,861416.05759,861416.05759,861416.05759,1111497.1665,2787099.97848,1719194.51776,1970564.6230199998,3002765.13984,834958.4580000001,834958.4580000001,834958.4580000001,877282.4445,601741.716,601741.716,1081125.57592,1234053.88515,1834322.0712599999,3199398.9615,908019.89574,1154830.67277,916722.8399999999,916722.8399999999,916722.8399999999,916722.8399999999,1809236.75944,1809236.75944 +25603200.0,1470647.5229999998,1059864.957,3094805.67444,592689.37068,592689.37068,592689.37068,726213.5615000001,2241059.97264,4000935.3772799997,1942415.6196899998,2959871.42048,1159417.3260000001,1159417.3260000001,1159417.3260000001,728665.0455,1470647.5229999998,1470647.5229999998,846045.19051,865879.0325999999,1287059.6978399998,2244871.5659999996,637115.93016,810291.73668,1659732.507,1659732.507,1659732.507,1659732.507,4421746.8858199995,4421746.8858199995 +25606800.0,656150.427,416161.467,1215191.48364,311058.24816,311058.24816,311058.24816,202305.978,585545.9940000001,4160620.3865600005,216130.83072000003,329342.21824,625969.941,625969.941,625969.941,726165.951,656150.427,656150.427,313563.89038,1181024.63505,1755498.3464199998,3061915.7205000003,869000.84258,1105205.7695900002,229678.48200000002,229678.48200000002,229678.48200000002,229678.48200000002,1972825.61718,1972825.61718 +25610400.0,196955.892,53331.894,155729.13048,121206.06927,121206.06927,121206.06927,104917.4315,260346.78535999998,242008.40959999998,124323.11325,189444.744,78748.218,78748.218,78748.218,59411.4185,196955.892,196955.892,120941.22104999998,68039.25074999999,101134.88629999998,176398.0575,50063.44869999999,63671.29885,85198.36799999999,85198.36799999999,85198.36799999999,85198.36799999999,592180.7152799999,592180.7152799999 +25614000.0,217978.74300000002,573024.0210000001,1673230.1413200002,147510.89441,147510.89441,147510.89441,321123.2605,511072.39848000003,554627.81248,327403.07628,498899.92575999995,128181.91500000001,128181.91500000001,128181.91500000001,385293.034,217978.74300000002,217978.74300000002,153533.57903,130014.6552,193256.35167999996,337075.032,95665.10432,121668.03536,159968.514,159968.514,159968.514,159968.514,655389.42062,655389.42062 +25617600.0,231622.782,149579.655,436772.59260000003,143670.56858000002,143670.56858000002,143670.56858000002,278080.01550000004,464123.44127999997,641936.85312,287437.34271,437999.76032,180560.13299999997,180560.13299999997,180560.13299999997,152769.9145,231622.782,231622.782,224550.06886,193712.87699999998,287938.64679999993,502218.56999999995,142534.41319999998,181276.98859999998,187862.475,187862.475,187862.475,187862.475,696412.4978799999,696412.4978799999 +25621200.0,94872.462,39505.758,115356.81335999999,70829.93324000001,70829.93324000001,70829.93324000001,69416.38549999999,166013.8552,138385.57056000002,80649.07473000001,122893.82816000002,60274.75199999999,60274.75199999999,60274.75199999999,40357.2505,94872.462,94872.462,89211.79631,48289.96035,71779.15093999999,125196.1935,35531.87206,45189.86413,60530.073,60530.073,60530.073,60530.073,285249.86908000003,285249.86908000003 +25624800.0,162258.834,115733.13,337940.7396,389932.02358000004,389932.02358000004,389932.02358000004,168726.1345,332289.47088,50730.74176000001,368312.98308,561238.83136,83769.591,83769.591,83769.591,346561.698,162258.834,162258.834,386831.67665999994,203270.3181,302145.01604,526997.121,149566.80196,190220.86558,47276.649000000005,47276.649000000005,47276.649000000005,47276.649000000005,487858.22755999997,487858.22755999997 +25628400.0,58057.671,319915.488,934153.22496,266579.0171,266579.0171,266579.0171,258227.47999999998,392808.54991999996,91219.82400000002,52909.93071,80624.65632000001,105915.183,105915.183,105915.183,401576.441,58057.671,58057.671,379751.50577,149728.1922,222558.94247999997,388184.202,110170.37352,140116.01196,101512.896,101512.896,101512.896,101512.896,174560.06414,174560.06414 +25632000.0,232262.60700000002,171073.614,499534.95288,289235.6366900001,289235.6366900001,289235.6366900001,130436.26049999999,488112.87064000004,436293.01568,256572.61391999997,390967.79264,173362.515,173362.515,173362.515,185189.193,232262.60700000002,232262.60700000002,315789.23688,150606.39015,223864.31325999997,390461.01149999996,110816.55374,140937.83177,187796.11800000002,187796.11800000002,187796.11800000002,187796.11800000002,698336.23838,698336.23838 +25635600.0,1362354.003,943803.6569999999,2755906.67844,1141021.7771700001,1141021.7771700001,1141021.7771700001,1806806.33,2034555.6395999999,2998743.33696,2182313.67291,3325430.3587200004,1402078.638,1402078.638,1402078.638,1205615.2534999999,1362354.003,1362354.003,953219.2006999999,1349705.0412,2006228.2340799998,3499235.2920000004,993116.30192,1263057.31016,1238129.64,1238129.64,1238129.64,1238129.64,4096144.3690199996,4096144.3690199996 +25639200.0,585333.387,387213.39600000007,1130663.11632,433907.27468000003,433907.27468000003,433907.27468000003,517124.566,970454.7642399999,1506561.44448,811365.97059,1236367.1932800002,466738.6109999999,466738.6109999999,466738.6109999999,610951.3409999999,585333.387,585333.387,394045.78199999995,583591.72005,867462.2604200001,1513015.5705000001,429408.22858000005,546126.5725900001,555921.672,555921.672,555921.672,555921.672,1759902.38358,1759902.38358 +25642800.0,501431.949,399747.37799999997,1167262.3437599998,467436.64693000005,467436.64693000005,467436.64693000005,518287.371,910382.0831200001,1547609.34528,770730.1035000001,1174445.8720000002,452958.63000000006,452958.63000000006,452958.63000000006,587460.5415,501431.949,501431.949,393929.06735,592029.69255,880004.6294199999,1534891.7955,435616.90958,554022.84809,516596.48099999997,516596.48099999997,516596.48099999997,516596.48099999997,1507638.72666,1507638.72666 +25646400.0,555514.0530000001,455442.2790000001,1329891.4546800002,526555.58252,526555.58252,526555.58252,577046.162,1017802.8504,1783170.64768,859233.98988,1309308.93696,535788.537,535788.537,535788.537,674344.9265,555514.0530000001,555514.0530000001,438459.8597599999,678885.7211999999,1009109.1460799999,1760074.092,499525.78991999995,635302.93416,591083.808,591083.808,591083.808,591083.808,1670245.58602,1670245.58602 +25650000.0,396234.198,316257.38100000005,923471.55252,379735.36711000005,379735.36711000005,379735.36711000005,362892.7435,524484.02856,1063171.2416,476875.55517,726667.51264,284632.40099999995,284632.40099999995,284632.40099999995,349049.50850000005,396234.198,396234.198,316428.42335,312438.06,464414.10399999993,810024.6,229892.696,292380.308,378391.515,378391.515,378391.515,378391.515,1191344.15532,1191344.15532 +25653600.0,72175.701,49998.768000000004,145996.40256000002,91970.70575,91970.70575,91970.70575,79062.249,112756.90959999998,331823.71264000004,102257.16648000001,155820.44416,85116.627,85116.627,85116.627,74599.77350000001,72175.701,72175.701,89322.61870999998,48375.52875,71906.3415,125418.0375,35594.8335,45269.93925,69587.088,69587.088,69587.088,69587.088,217008.27433999997,217008.27433999997 +25657200.0,65580.99,49766.55600000001,145318.34352000002,55428.17005000001,55428.17005000001,55428.17005000001,45794.4305,92747.57456,333867.83616000006,85528.06542,130328.48064,82658.814,82658.814,82658.814,64483.5555,65580.99,65580.99,87417.96453000001,37250.47845,55369.84698,96575.31450000001,27408.994020000002,34859.08971000001,65487.84299999999,65487.84299999999,65487.84299999999,65487.84299999999,197180.1766,197180.1766 +25660800.0,61192.31999999999,53185.077000000005,155300.42484,39712.337170000006,39712.337170000006,39712.337170000006,25140.325,80081.81176,333895.49312,76025.8422,115848.90239999999,80676.402,80676.402,80676.402,57994.055,61192.31999999999,61192.31999999999,89035.87056,30263.961149999996,44984.94965999999,78462.1215,22268.297339999997,28321.08957,61340.513999999996,61340.513999999996,61340.513999999996,61340.513999999996,183984.90879999998,183984.90879999998 +25664400.0,60145.185,56603.744999999995,165282.93539999996,34464.50359,34464.50359,34464.50359,20312.666500000003,84801.88664,333029.53216,73314.16428000001,111716.82176,79840.19699999999,79840.19699999999,79840.19699999999,56641.711,60145.185,60145.185,111927.91115999999,28550.256299999997,42437.664919999996,74019.183,21007.34908,26717.40034,60177.933000000005,60177.933000000005,60177.933000000005,60177.933000000005,180836.52289999998,180836.52289999998 +25668000.0,60725.58,60530.219999999994,176748.2424,30403.062800000003,30403.062800000003,30403.062800000003,15767.3985,100564.40288000001,337594.00768000004,71949.03723,109636.62816000001,80720.22899999999,80720.22899999999,80720.22899999999,57037.1725,60725.58,60725.58,113270.97378999999,27294.2784,40570.75456,70762.944,20083.19744,25542.05312,59941.89,59941.89,59941.89,59941.89,182581.5772,182581.5772 +25671600.0,67428.204,65173.52100000001,190306.68132,32076.27236,32076.27236,32076.27236,16248.19,114308.56255999999,347876.06464,76131.74961,116010.28512,83934.62400000001,83934.62400000001,83934.62400000001,58782.787,67428.204,67428.204,125729.97046999999,33974.822250000005,50500.846900000004,88082.87250000001,24998.758100000003,31793.722550000006,61529.235,61529.235,61529.235,61529.235,202734.13335999998,202734.13335999998 +25675200.0,71252.406,71476.917,208712.59764,34793.51425,34793.51425,34793.51425,18068.8655,118577.24048,352717.39264,89061.27803999999,135712.42368,85864.281,85864.281,85864.281,60097.341499999995,71252.406,71252.406,135908.93576,36521.37315000001,54286.09046000001,94685.04150000002,26872.516540000004,34176.791170000004,63193.986000000004,63193.986000000004,63193.986000000004,63193.986000000004,214232.23403999998,214232.23403999998 +25678800.0,114104.89199999999,96017.334,280370.61527999997,57703.24714000001,57703.24714000001,57703.24714000001,27237.763,434021.53503999993,363825.85088000004,154402.84146000003,235280.52032000004,87092.073,87092.073,87092.073,95458.916,114104.89199999999,114104.89199999999,324200.28667,47387.7054,70438.02136,122857.014,34867.990639999996,44345.53172,123661.08600000001,123661.08600000001,123661.08600000001,123661.08600000001,343075.37528,343075.37528 +25682400.0,559833.645,276502.326,807386.79192,655290.88724,655290.88724,655290.88724,513011.6355,2004328.3660799996,1544470.7372800002,1325085.17631,2019177.4115199998,442422.507,442422.507,442422.507,461163.591,559833.645,559833.645,1727258.79222,604507.5157499999,898551.9122999999,1567241.7075,444798.12269999995,565699.62585,725630.382,725630.382,725630.382,725630.382,1683233.1593,1683233.1593 +25686000.0,565001.988,763377.423,2229062.07516,802894.4392700001,802894.4392700001,802894.4392700001,1029947.114,2661945.73,1627510.46592,1896763.9086900002,2890306.90848,787381.6229999999,787381.6229999999,787381.6229999999,831602.4045000001,565001.988,565001.988,953239.2535899999,1173310.2558000002,1744031.5407200002,3041915.478,863324.5832800001,1097986.6344400002,868310.8290000001,868310.8290000001,868310.8290000001,868310.8290000001,1698772.64392,1698772.64392 +25689600.0,1417962.678,978087.594,2856015.77448,565843.79313,565843.79313,565843.79313,689937.8185,2085181.41408,3774190.59584,1836456.70257,2798410.21344,1082712.348,1082712.348,1082712.348,670910.2645,1417962.678,1417962.678,805786.58719,818930.51325,1217274.4912999999,2123153.1825,602571.0937,766357.19635,1585856.655,1585856.655,1585856.655,1585856.655,4263341.11852,4263341.11852 +25693200.0,638865.936,408821.24700000003,1193758.0412400002,304601.76295999996,304601.76295999996,304601.76295999996,195229.5835,577624.2383999999,4009096.1715200003,212866.92440999998,324368.64672,624130.248,624130.248,624130.248,710262.3605,638865.936,638865.936,309624.96695,1127458.87335,1675877.14014,2923041.5235,829587.02286,1055078.79753,225101.637,225101.637,225101.637,225101.637,1920856.91424,1920856.91424 +25696800.0,179566.43099999998,46942.820999999996,137073.03732,118945.02554,118945.02554,118945.02554,104709.864,241763.66592,230253.2224,119314.40808,181812.43136,78042.981,78042.981,78042.981,58594.95599999999,179566.43099999998,179566.43099999998,108059.89674999999,65939.05034999999,98013.10693999998,170953.0935,48518.11606,61705.92613,82006.434,82006.434,82006.434,82006.434,539896.4025399999,539896.4025399999 +25700400.0,219358.34100000001,575774.583,1681261.78236,145458.73122000002,145458.73122000002,145458.73122000002,314452.1345,528857.3184,589902.13248,331916.67747000005,505777.7942400001,137903.652,137903.652,137903.652,387479.09550000005,219358.34100000001,219358.34100000001,155791.54695,132784.60005,197373.65242,344256.3705,97703.23658000001,124260.15659000001,164415.79499999998,164415.79499999998,164415.79499999998,164415.79499999998,659537.41194,659537.41194 +25704000.0,255902.115,175222.43099999998,511649.49851999996,143620.08023000002,143620.08023000002,143620.08023000002,292119.95749999996,529624.4024,745330.23296,327587.45670000004,499180.8864000001,213469.80599999998,213469.80599999998,213469.80599999998,172975.411,255902.115,255902.115,247396.30864,219835.9116,326768.44143999997,569944.956,161755.80656,205722.98888000002,217404.02999999997,217404.02999999997,217404.02999999997,217404.02999999997,769412.3591,769412.3591 +25707600.0,138601.28399999999,80731.659,235736.44428,72949.75204,72949.75204,72949.75204,84006.27900000001,274959.89616,310078.90112,138345.79626,210812.64192000002,110720.262,110720.262,110720.262,76452.16949999999,138601.28399999999,138601.28399999999,134099.21654999998,84223.1763,125190.99292,218356.383,61971.621080000004,78816.25634,101517.06600000002,101517.06600000002,101517.06600000002,101517.06600000002,416727.86056,416727.86056 +25711200.0,214924.84500000003,145220.61,424044.18119999993,414453.59043000004,414453.59043000004,414453.59043000004,199272.15350000001,453569.86632000003,139152.51264,428103.30675,652347.896,121940.35800000001,121940.35800000001,121940.35800000001,402421.6805,214924.84500000003,214924.84500000003,459669.91550999996,239143.0635,355466.97339999996,620000.535,175962.05659999998,223790.6693,85564.758,85564.758,85564.758,85564.758,646207.3673,646207.3673 +25714800.0,86459.232,345728.76599999995,1009527.9967199999,271212.58186000003,271212.58186000003,271212.58186000003,270540.879,483291.22063999996,138846.84992,82601.60706,125869.11552,140709.15600000002,140709.15600000002,140709.15600000002,453292.252,86459.232,86459.232,433236.39697,168050.76885,249793.98234,435687.1785,123652.17066,157262.32443,128647.68,128647.68,128647.68,128647.68,259954.09088,259954.09088 +25718400.0,311010.918,284813.592,831655.68864,295436.63171,295436.63171,295436.63171,202463.18399999998,692697.22192,946347.7856000002,422807.5112100001,644278.1123200001,276342.954,276342.954,276342.954,326015.0355,311010.918,311010.918,394672.43360999995,285599.88045,424521.30377999996,740444.1345,210145.09722,267265.07331,281102.92500000005,281102.92500000005,281102.92500000005,281102.92500000005,935106.1601199999,935106.1601199999 +25722000.0,1441504.899,1027568.625,3000500.385,1294892.18903,1294892.18903,1294892.18903,1971054.5785,2242779.36792,3437328.0832,2386374.0873000002,3636379.5616,1550415.891,1550415.891,1550415.891,1425075.008,1441504.899,1441504.899,1015260.6874799998,1528872.8291999998,2272546.77328,3963744.372,1124948.40272,1430722.96856,1389880.9619999998,1389880.9619999998,1389880.9619999998,1389880.9619999998,4334124.72966,4334124.72966 +25725600.0,630282.189,425113.23,1241330.6316,495381.20181,495381.20181,495381.20181,565815.4075,1053654.52864,1689516.6739199997,875271.58467,1333747.1766400002,527657.4809999999,527657.4809999999,527657.4809999999,673293.9325,630282.189,630282.189,420904.93262999994,651033.1340999999,967708.5104399999,1687863.6809999999,479031.78755999997,609238.41438,600481.173,600481.173,600481.173,600481.173,1895048.44826,1895048.44826 +25729200.0,528431.013,429863.25599999994,1255200.7075199997,516061.14450000005,516061.14450000005,516061.14450000005,564943.68,977399.65136,1668267.4028800002,818877.84741,1247813.86272,506779.65599999996,506779.65599999996,506779.65599999996,642971.791,528431.013,528431.013,416022.14771,640850.11785,952572.27394,1661463.2685,471539.09906000004,599709.12263,555442.77,555442.77,555442.77,555442.77,1588815.91242,1588815.91242 +25732800.0,516361.326,420954.46499999997,1229187.0378,516930.1302,516930.1302,516930.1302,543560.3635,938928.9083199999,1630937.1654400004,794452.37319,1210594.0924799999,494958.99900000007,494958.99900000007,494958.99900000007,620283.0305,516361.326,516361.326,407095.48516,625449.6566999999,929680.7242799998,1621536.1469999999,460207.40171999997,585297.33306,545173.998,545173.998,545173.998,545173.998,1552526.38684,1552526.38684 +25736400.0,366693.336,285546.168,833794.8105599999,357941.12761,357941.12761,357941.12761,333962.167,475794.85063999996,951702.94336,432400.3259100001,658895.7347200001,255070.86599999998,255070.86599999998,255070.86599999998,312587.0335,366693.336,366693.336,300794.93249,281325.1986,418167.33223999996,729361.626,206999.77576000002,263264.81548,345645.126,345645.126,345645.126,345645.126,1102524.63024,1102524.63024 +25740000.0,66825.951,45716.205,133491.3186,90679.51453,90679.51453,90679.51453,77255.241,105241.54792000001,298523.90592,95295.42183,145212.07136000003,75644.886,75644.886,75644.886,68748.757,66825.951,66825.951,81394.30051999999,45616.27994999999,67804.93957999999,118264.42949999998,33564.57141999999,42687.82741,66167.38200000001,66167.38200000001,66167.38200000001,66167.38200000001,200923.35934,200923.35934 +25743600.0,58215.88799999999,42867.438,125172.91896,56944.277610000005,56944.277610000005,56944.277610000005,43394.036,82601.3396,287333.82592000003,76825.76265,117067.8288,69525.891,69525.891,69525.891,56539.217,58215.88799999999,58215.88799999999,76691.39036,33539.2812,49853.450079999995,86953.692,24678.28592,31386.14216,57873.426,57873.426,57873.426,57873.426,175035.76992,175035.76992 +25747200.0,53110.53600000001,45070.038,131604.51095999999,34882.211760000006,34882.211760000006,34882.211760000006,22508.713499999998,68950.62576,282684.27968,65424.27717,99694.13664,66250.63200000001,66250.63200000001,66250.63200000001,49270.3925,53110.53600000001,53110.53600000001,74169.3342,26192.4192,38932.92928,67906.272,19272.44672,24510.93056,52921.413,52921.413,52921.413,52921.413,159685.67824,159685.67824 +25750800.0,52343.478,46791.246,136630.43832,29717.07244,29717.07244,29717.07244,17822.007,66907.03456,284750.73984,63314.14194,96478.69248,66395.052,66395.052,66395.052,48098.701,52343.478,52343.478,84923.44561999998,24723.054900000003,36748.83716,64096.80900000001,18191.28484,23135.89582,52229.844,52229.844,52229.844,52229.844,157379.39052000002,157379.39052000002 +25754400.0,50235.65699999999,47828.844,139660.22447999998,24090.203830000002,24090.203830000002,24090.203830000002,12575.899,71124.32048,274508.2208,58900.46862,89753.09504,63126.198000000004,63126.198000000004,63126.198000000004,45596.9255,50235.65699999999,50235.65699999999,92239.94623999998,22345.37685,33214.60954,57932.45850000001,16441.783460000002,20910.85883,49701.972,49701.972,49701.972,49701.972,151041.87537999998,151041.87537999998 +25758000.0,50306.259000000005,48397.638,141321.10296,23701.77117,23701.77117,23701.77117,12245.0055,80268.60416,267724.83456,57695.9922,87917.70240000001,61247.55600000001,61247.55600000001,61247.55600000001,44945.1765,50306.259000000005,50306.259000000005,90083.11819,21824.409149999996,32440.232859999993,56581.801499999994,16058.454139999998,20423.335969999996,48636.147,48636.147,48636.147,48636.147,151254.15206,151254.15206 +25761600.0,54597.573,50028.621,146083.57332,25652.74602,25652.74602,25652.74602,13894.034,83907.26288,269523.12448000006,60545.532810000004,92259.85952000001,61917.519,61917.519,61917.519,45717.511,54597.573,54597.573,92409.12355999999,26921.313899999997,40016.37275999999,69795.999,19808.769239999998,25193.03202,49179.03599999999,49179.03599999999,49179.03599999999,49179.03599999999,164156.70281999998,164156.70281999998 +25765200.0,59160.444,52952.781,154622.12052,35574.758890000005,35574.758890000005,35574.758890000005,22175.048,95806.95200000002,277499.4048,67919.00115,103495.62079999999,65200.485,65200.485,65200.485,49490.9345,59160.444,59160.444,100933.70859,31304.961000000003,46532.3124,81161.01000000001,23034.267600000003,29295.259800000003,51926.600999999995,51926.600999999995,51926.600999999995,51926.600999999995,177875.73496,177875.73496 +25768800.0,549612.774,476070.24000000005,1390125.1008000001,487884.6443900001,487884.6443900001,487884.6443900001,568167.8905000001,871098.6982399998,609891.456,611107.2926700001,931211.1126400001,273004.45499999996,273004.45499999996,273004.45499999996,839644.6869999999,549612.774,549612.774,1029073.7616899998,264787.6473,393585.58932,686486.493,194831.40468,247788.93414000003,651419.241,651419.241,651419.241,651419.241,1652502.40716,1652502.40716 +25772400.0,1121512.833,1049398.062,3064242.34104,1354131.57627,1354131.57627,1354131.57627,1042105.8025,1618766.20496,1862799.25696,1551387.4557300003,2364018.9801600003,681063.3119999999,681063.3119999999,681063.3119999999,814546.761,1121512.833,1121512.833,769127.1144699998,867144.13515,1288940.17126,2248151.4615,638046.79574,811475.62277,1167594.924,1167594.924,1167594.924,1167594.924,3372015.25122,3372015.25122 +25776000.0,1274392.761,1066073.6609999998,3112935.09012,1102978.0382500002,1102978.0382500002,1102978.0382500002,906868.655,1893489.622,4425483.91168,1636189.3982699998,2493240.9878399996,1353831.504,1353831.504,1353831.504,1086920.254,1274392.761,1274392.761,709728.98243,1597485.6449999998,2374534.2179999994,4141629.4499999997,1175433.882,1494931.011,1001896.6560000001,1001896.6560000001,1001896.6560000001,1001896.6560000001,3831674.2347399998,3831674.2347399998 +25779600.0,621925.485,349563.24,1020724.6608,521454.96491000004,521454.96491000004,521454.96491000004,1064447.7655,1504661.83216,2347829.73312,1246572.93222,1899539.7062400002,917209.2689999999,917209.2689999999,917209.2689999999,1160239.3775,621925.485,621925.485,650992.9613199999,1228044.72195,1825389.93238,3183819.6495,903598.3386199999,1149207.28301,752938.878,752938.878,752938.878,752938.878,1869922.6249,1869922.6249 +25783200.0,269502.024,197637.744,577102.2124800001,406440.96515000006,406440.96515000006,406440.96515000006,535668.112,886346.19656,1225269.2608,659099.10969,1004341.50048,204032.193,204032.193,204032.193,442415.078,269502.024,269502.024,67676.22381,472335.15825,702088.3093,1224572.6325,347545.3757,442012.40735,279917.043,279917.043,279917.043,279917.043,810302.75216,810302.75216 +25786800.0,69241.659,22160.391,64708.34172,103535.28108000002,103535.28108000002,103535.28108000002,87585.0815,182241.47488,72347.09312,110587.66551000002,168514.53792000003,35530.191000000006,35530.191000000006,35530.191000000006,38237.47549999999,69241.659,69241.659,11817.75153,35432.712900000006,52667.884360000004,91862.589,26071.477640000005,33158.020220000006,54678.56999999999,54678.56999999999,54678.56999999999,54678.56999999999,208186.58805999998,208186.58805999998 +25790400.0,168481.968,91664.745,267661.05539999995,91227.22257000001,91227.22257000001,91227.22257000001,124855.5385,290758.56784,264374.25152,193253.91729,294482.15968000004,134912.562,134912.562,134912.562,83021.1865,168481.968,168481.968,75443.30599,81655.59375,121374.48749999999,211699.6875,60082.3875,76413.50625,109704.177,109704.177,109704.177,109704.177,506569.11712,506569.11712 +25794000.0,33169.533,8218.221000000001,23997.20532,66561.28875,66561.28875,66561.28875,57965.20799999999,61992.055519999994,24442.07232,46773.053459999996,71273.22432,10916.85,10916.85,10916.85,20705.7725,33169.533,33169.533,7774.446289999999,20595.0843,30612.94012,53394.663,15153.91388,19272.93074,23675.988,23675.988,23675.988,23675.988,99729.72922,99729.72922 +25797600.0,46147.914000000004,14893.635,43489.4142,58561.51246000001,58561.51246000001,58561.51246000001,51578.7405,70205.04024,35612.3072,53778.340560000004,81947.94752,13846.118999999999,13846.118999999999,13846.118999999999,18141.3155,46147.914000000004,46147.914000000004,6694.66382,18714.17115,27817.113659999995,48518.22149999999,13769.933339999998,17512.767569999996,27189.437999999995,27189.437999999995,27189.437999999995,27189.437999999995,138751.39476,138751.39476 +25801200.0,46719.090000000004,15393.99,44950.4508,45943.39321,45943.39321,45943.39321,40688.081,64913.3228,49762.14976,48799.37853,74360.95776,19499.922,19499.922,19499.922,14454.1285,46719.090000000004,46719.090000000004,5182.962589999999,15319.084499999999,22770.589799999998,39716.145,11271.8202,14335.6371,25233.339,25233.339,25233.339,25233.339,140468.7306,140468.7306 +25804800.0,222115.2,125173.896,365507.77631999995,60875.673760000005,60875.673760000005,60875.673760000005,113094.64249999999,354522.23991999996,361932.37184000004,222863.62854,339601.71968000004,183538.71,183538.71,183538.71,81735.927,222115.2,222115.2,94201.14196999998,95445.2079,141871.64236,247450.53900000002,70228.81964,89317.86122,140552.06699999998,140552.06699999998,140552.06699999998,140552.06699999998,667826.368,667826.368 +25808400.0,319808.958,195303.429,570286.01268,98915.89213000001,98915.89213000001,98915.89213000001,226851.5445,597361.2776,556166.8864000001,401973.29654999997,612530.7376,302435.871,302435.871,302435.871,210263.8265,319808.958,319808.958,171458.56831999996,222420.36644999997,330610.0261799999,576645.3944999999,163657.45481999998,208141.52810999998,279742.539,279742.539,279742.539,279742.539,961558.9337199999,961558.9337199999 +25812000.0,362320.185,262597.293,766784.0955599999,187497.48853000003,187497.48853000003,187497.48853000003,371031.059,683165.1856,921952.976,519444.40275,791534.3280000001,345115.512,345115.512,345115.512,294861.504,362320.185,362320.185,305949.54013,358490.7072,532867.66848,929420.3520000001,263778.34752,335476.48896,324426.894,324426.894,324426.894,324426.894,1089376.0229,1089376.0229 +25815600.0,390991.983,289631.376,845723.61792,250343.69756,250343.69756,250343.69756,393000.006,705151.05112,1143237.62944,584284.5687000001,890338.3904,364145.88,364145.88,364145.88,387687.951,390991.983,390991.983,307521.24610999995,427373.59725,635256.5569,1108005.6225,314462.5481,399937.26755,352795.263,352795.263,352795.263,352795.263,1175582.56222,1175582.56222 +25819200.0,366313.473,262955.817,767830.98564,236199.19807,236199.19807,236199.19807,307716.7765,557695.8574399999,775583.8790400001,471905.34510000004,719093.8592000001,262647.77100000007,262647.77100000007,262647.77100000007,298213.1635,366313.473,366313.473,297851.09705,329204.69145,489336.35617999994,853493.6444999999,242229.62482,308070.56311,339287.559,339287.559,339287.559,339287.559,1101382.5088199999,1101382.5088199999 +25822800.0,175769.40600000002,110730.59999999999,323333.35199999996,162445.79197,162445.79197,162445.79197,165644.15699999998,269946.97448,317510.5939200001,220168.92807,335495.50944,104077.692,104077.692,104077.692,163765.861,175769.40600000002,175769.40600000002,215611.14561999997,85167.7335,126595.0014,220805.235,62666.6286,79700.1753,190868.70899999997,190868.70899999997,190868.70899999997,190868.70899999997,528480.01404,528480.01404 +25826400.0,60851.667,46306.566000000006,135215.17272,76200.15172,76200.15172,76200.15172,70041.4365,88428.63759999999,256674.29056,85739.41656,130650.53952,50017.763999999996,50017.763999999996,50017.763999999996,60804.8315,60851.667,60851.667,88279.57983,41159.1699,61179.803159999996,106708.959,30285.01884,38516.85282,54656.715,54656.715,54656.715,54656.715,182960.67878,182960.67878 +25830000.0,58761.579,51682.989,150914.32788,38477.61313,38477.61313,38477.61313,36834.161,85992.65096,287559.9232000001,74405.40135,113379.65920000001,65449.99799999999,65449.99799999999,65449.99799999999,56102.5955,58761.579,58761.579,101237.93627999998,32322.9447,48045.46348,83800.227,23783.30252,30247.891460000003,52762.48500000001,52762.48500000001,52762.48500000001,52762.48500000001,176676.48085999998,176676.48085999998 +25833600.0,59804.570999999996,56536.767,165087.35964,20945.6852,20945.6852,20945.6852,17402.6475,93427.34472,321226.08128000004,70126.30631999999,106859.13343999999,77827.701,77827.701,77827.701,55409.529,59804.570999999996,59804.570999999996,115653.73234999998,27784.113749999997,41298.8555,72032.8875,20443.619499999997,26000.44225,54347.924999999996,54347.924999999996,54347.924999999996,54347.924999999996,179812.41014,179812.41014 +25837200.0,62070.51000000001,59542.335,173863.6182,24950.4838,24950.4838,24950.4838,19799.052,96354.00232000001,340941.20704,75116.30489999999,114462.9408,83746.326,83746.326,83746.326,57516.46600000001,62070.51000000001,62070.51000000001,122702.39773999999,28294.7823,42057.923319999994,73356.843,20819.37068,26478.32714,59234.37300000001,59234.37300000001,59234.37300000001,59234.37300000001,186625.3334,186625.3334 +25840800.0,63001.428,61325.187,179069.54604,20582.09175,20582.09175,20582.09175,15523.585,114719.79199999999,352747.59552000003,90536.73195,137960.73440000002,86343.297,86343.297,86343.297,58883.5135,63001.428,63001.428,126262.94732999998,27751.8798,41250.942319999995,71949.318,20419.90168,25970.27764,64195.25099999999,64195.25099999999,64195.25099999999,64195.25099999999,189424.29351999998,189424.29351999998 +25844400.0,67490.856,63322.71,184902.3132,26552.04101,26552.04101,26552.04101,15619.117499999998,116632.37447999998,354035.7113600001,99047.8923,150930.1216,86715.855,86715.855,86715.855,59735.53599999999,67490.856,67490.856,126907.69896999998,34687.5372,51560.24048,89930.652,25523.17552,32460.682960000002,65662.67099999999,65662.67099999999,65662.67099999999,65662.67099999999,202922.50704,202922.50704 +25848000.0,72702.849,70224.696,205056.11232,32584.493260000003,32584.493260000003,32584.493260000003,17606.074500000002,120401.53384,362871.41376,106093.48092,161666.25664,89101.13999999998,89101.13999999998,89101.13999999998,61950.45850000001,72702.849,72702.849,134348.84592999998,36409.742999999995,54120.161199999995,94395.62999999999,26790.3788,34072.3274,67518.99600000001,67518.99600000001,67518.99600000001,67518.99600000001,218593.23265999998,218593.23265999998 +25851600.0,77455.758,76724.09999999999,224034.37199999997,43389.19145,43389.19145,43389.19145,26322.275,130598.03951999999,379582.22336,117150.37005,178514.84960000002,94383.45000000001,94383.45000000001,94383.45000000001,67230.709,77455.758,77455.758,149078.49930999998,40681.549349999994,60469.858539999994,105470.6835,29933.58446,38069.894329999996,72044.973,72044.973,72044.973,72044.973,232883.64571999997,232883.64571999997 +25855200.0,97949.84399999998,84130.512,245661.09504000001,134712.93814,134712.93814,134712.93814,109045.3035,183747.67512,406306.82176,169919.13918,258924.40256,109016.24699999999,109016.24699999999,109016.24699999999,96837.8285,97949.84399999998,97949.84399999998,161618.08753999998,70180.5708,104317.78671999999,181949.628,51639.03728,65675.15144,95476.707,95476.707,95476.707,95476.707,294502.53095999995,294502.53095999995 +25858800.0,673598.6129999999,624356.373,1823120.60916,629756.3502999999,629756.3502999999,629756.3502999999,754574.5269999999,1082653.14208,807532.0089600001,819980.72478,1249494.4377600001,368166.798,368166.798,368166.798,1077652.947,673598.6129999999,673598.6129999999,1201655.4553899998,345343.52024999994,513325.4300999999,895335.0524999999,254104.61489999996,323173.31895,814498.119,814498.119,814498.119,814498.119,2025286.4964199997,2025286.4964199997 +25862400.0,1293887.901,1276716.9209999999,3728013.4093199996,1486750.18195,1486750.18195,1486750.18195,1213143.9985,1921213.86568,2251481.5232,1884843.36726,2872142.27392,846118.5179999999,846118.5179999999,846118.5179999999,963216.4814999999,1293887.901,1293887.901,794076.4882699999,1016095.7357999999,1510344.7727199998,2634322.278,747645.75128,950864.8984399999,1409405.625,1409405.625,1409405.625,1409405.625,3890289.62234,3890289.62234 +25866000.0,1242694.3530000001,950839.506,2776451.35752,928929.68157,928929.68157,928929.68157,852867.7744999999,1979341.42384,4570074.792320001,1536724.40649,2341675.28608,1376947.068,1376947.068,1376947.068,1075748.2925,1242694.3530000001,1242694.3530000001,531612.13313,1657287.6534000002,2463425.10456,4296671.694,1219436.3474400002,1550893.8781200002,900954.342,900954.342,900954.342,900954.342,3736367.68802,3736367.68802 +25869600.0,804957.0569999999,459975.11699999997,1343127.3416399998,524784.40806,524784.40806,524784.40806,1261310.1095,1829234.9694400001,3020337.8412800003,1536917.61132,2341969.69344,1182816.942,1182816.942,1182816.942,1398997.761,804957.0569999999,804957.0569999999,796647.22163,1450905.6312,2156654.7900799997,3761607.192,1067579.94592,1357761.07216,953458.584,953458.584,953458.584,953458.584,2420237.5513799996,2420237.5513799996 +25873200.0,493266.13499999995,347691.801,1015260.0589199999,488713.15801,488713.15801,488713.15801,756984.7215000001,1383642.6716,2090484.70144,951258.07686,1449536.11712,444460.809,444460.809,444460.809,740177.403,493266.13499999995,493266.13499999995,208816.73682999998,743591.80575,1105289.5483,1927830.6075000002,547136.6867000001,695855.0478500001,511276.81200000003,511276.81200000003,511276.81200000003,511276.81200000003,1483086.8458999998,1483086.8458999998 +25876800.0,405470.82,313758.708,916175.42736,207118.93818,207118.93818,207118.93818,365115.7195,970584.6108000001,1193645.8662400001,683308.71189,1041232.32288,398361.456,398361.456,398361.456,465228.8935,405470.82,405470.82,307076.76844,430752.4839,640279.00076,1116765.699,316948.74124,403099.23802000005,426636.69299999997,426636.69299999997,426636.69299999997,426636.69299999997,1219115.5988,1219115.5988 +25880400.0,230783.54700000002,156011.34,455553.1128,91120.52345000001,91120.52345000001,91120.52345000001,185190.6945,451146.15536000003,566808.9625600001,318491.67798,485320.65216,220076.724,220076.724,220076.724,200435.97699999998,230783.54700000002,230783.54700000002,133702.25686999998,185954.19074999998,276405.9823,482103.45749999996,136825.5527,174016.39085,198532.626,198532.626,198532.626,198532.626,693889.1979799999,693889.1979799999 +25884000.0,136731.549,70228.791,205068.06972,64562.003000000004,64562.003000000004,64562.003000000004,88180.071,252453.45304,237927.66976000002,156377.94438,238290.20096,116032.329,116032.329,116032.329,72726.136,136731.549,136731.549,55642.66201,64448.735400000005,95797.87336,167089.314,47421.538640000006,60311.28572000001,98795.262,98795.262,98795.262,98795.262,411106.19065999996,411106.19065999996 +25887600.0,134970.699,69866.583,204010.42236,51924.22565,51924.22565,51924.22565,76035.97750000001,249648.71128000002,240450.53504000002,150011.53104,228588.99968,116151.33299999998,116151.33299999998,116151.33299999998,69663.573,134970.699,134970.699,54817.87206999999,59430.54645,88338.73818,154079.1945,43729.14282,55615.25211,96523.24799999999,96523.24799999999,96523.24799999999,96523.24799999999,405811.90166,405811.90166 +25891200.0,485337.90299999993,392985.633,1147518.04836,155181.16757000002,155181.16757000002,155181.16757000002,438178.90900000004,948994.63888,1529446.0665600002,719345.09073,1096144.90016,496407.20699999994,496407.20699999994,496407.20699999994,561902.901,485337.90299999993,485337.90299999993,376379.14262,538936.2864,801085.5417599999,1397242.224,396550.65024,504337.90752,487978.80299999996,487978.80299999996,487978.80299999996,487978.80299999996,1459249.2950199998,1459249.2950199998 +25894800.0,608399.313,500620.88100000005,1461812.97252,396244.2354200001,396244.2354200001,396244.2354200001,617518.8495,1175853.88896,2078148.0652800004,952607.83002,1451592.88384,618504.573,618504.573,618504.573,772398.7075,608399.313,608399.313,552921.5490499999,763776.14715,1135291.95206,1980160.3815000001,561988.37494,714743.6043700001,658098.831,658098.831,658098.831,658098.831,1829253.9344199998,1829253.9344199998 +25898400.0,647571.99,541096.986,1580003.19912,581011.3441000001,581011.3441000001,581011.3441000001,712916.9915,1248247.48088,2168286.1344000003,1035276.70449,1577564.50208,652694.889,652694.889,652694.889,830025.5495,647571.99,647571.99,580834.63321,811352.0155499999,1206009.6626199998,2103505.2254999997,596994.81638,759265.2194899999,697343.751,697343.751,697343.751,697343.751,1947033.1165999998,1947033.1165999998 +25902000.0,657339.7860000001,555344.4450000001,1621605.7793999999,658370.16784,658370.16784,658370.16784,732448.857,1269431.59032,2209724.736,1059640.00212,1614689.52704,663603.3300000001,663603.3300000001,663603.3300000001,847420.3325,657339.7860000001,657339.7860000001,589866.6251399999,825562.6029,1227132.56036,2140347.489,607451.00164,772563.52222,723249.48,723249.48,723249.48,723249.48,1976401.62324,1976401.62324 +25905600.0,663121.899,562422.447,1642273.54524,690638.3244200001,690638.3244200001,690638.3244200001,739029.9700000001,1278465.53888,2241808.18048,1069212.9558599999,1629276.88512,673807.1129999999,673807.1129999999,673807.1129999999,856529.4885,663121.899,663121.899,610109.0099,832716.36495,1237766.0535799998,2158894.2794999997,612714.7574199999,779258.03041,733493.952,733493.952,733493.952,733493.952,1993786.5096599997,1993786.5096599997 +25909200.0,642153.045,547460.466,1598584.56072,592393.0584,592393.0584,592393.0584,584006.7345,1082833.32944,1662144.53056,902868.0746400001,1375798.9708800002,537900.0090000001,537900.0090000001,537900.0090000001,702011.765,642153.045,642153.045,620465.15635,680884.8093,1012080.63012,1765256.9130000002,500996.72388,637173.68574,663832.149,663832.149,663832.149,663832.149,1930740.1553,1930740.1553 +25912800.0,278462.604,210538.146,614771.3863199999,293079.45865,293079.45865,293079.45865,244364.0395,480889.32207999995,620199.9404800001,391057.42893000005,595897.0345600001,224408.013,224408.013,224408.013,303739.58999999997,278462.604,278462.604,403328.82226,135738.98595,201765.10997999998,351915.8895,99877.08102,127024.87821,342344.412,342344.412,342344.412,342344.412,837244.22936,837244.22936 +25916400.0,96575.33699999998,86591.511,252847.21211999998,80874.40834000001,80874.40834000001,80874.40834000001,53064.28399999999,164270.59768,499052.30464000005,162281.49881999998,247286.09343999997,130061.20799999998,130061.20799999998,130061.20799999998,92984.97249999999,96575.33699999998,96575.33699999998,181833.93071999997,59903.84969999999,89042.26547999999,155306.27699999997,44077.400519999996,56058.170459999994,106483.97399999999,106483.97399999999,106483.97399999999,106483.97399999999,290369.84657999995,290369.84657999995 +25920000.0,99506.85,87355.08299999998,255076.84235999998,58751.63437,58751.63437,58751.63437,32903.101,173736.7004,507278.32448,155627.71980000002,237147.00160000002,130975.24799999999,130975.24799999999,130975.24799999999,90160.3675,99506.85,99506.85,184626.38583999994,57021.4404,84757.79535999999,147833.364,41956.51664,53360.80472,105136.19999999998,105136.19999999998,105136.19999999998,105136.19999999998,299183.929,299183.929 +25923600.0,105421.81499999999,98494.65299999999,287604.38675999996,56186.13022000001,56186.13022000001,56186.13022000001,29420.489000000005,250567.02208,533031.82848,162641.14545000004,247834.12640000004,140714.80800000002,140714.80800000002,140714.80800000002,94479.34999999999,105421.81499999999,105421.81499999999,194000.70547000002,62669.87009999999,93153.73284,162477.441,46112.64516,58646.61918,110292.804,110292.804,110292.804,110292.804,316968.25709999993,316968.25709999993 +25927200.0,117528.50399999999,111116.745,324460.8954,54946.72161,54946.72161,54946.72161,28975.758,266341.21832,627467.13856,178220.03996999998,271573.39424,145141.95299999998,145141.95299999998,145141.95299999998,95601.7755,117528.50399999999,117528.50399999999,213093.17796,71378.05455,106097.75021999999,185054.2155,52520.148779999996,66795.75968999999,112918.08300000001,112918.08300000001,112918.08300000001,112918.08300000001,353369.03536,353369.03536 +25930800.0,122187.87299999999,115287.15000000001,336638.478,62969.643990000004,62969.643990000004,62969.643990000004,34802.8695,270889.87752000004,653695.88096,202224.07737,308150.97504,176190.483,176190.483,176190.483,96665.9925,122187.87299999999,122187.87299999999,227970.36847,73301.7195,108957.1238,190041.49500000002,53935.586200000005,68595.93010000001,119617.005,119617.005,119617.005,119617.005,367378.20482,367378.20482 +25934400.0,130028.046,115952.262,338580.60504,68572.95544,68572.95544,68572.95544,42468.3805,277100.15103999997,658303.7568000001,230518.88391000003,351266.87072000006,232710.51,232710.51,232710.51,104337.0965,130028.046,130028.046,229203.4264,82279.0143,122301.15212,213315.96300000002,60541.10188,76996.90474,142408.719,142408.719,142408.719,142408.719,390950.99163999996,390950.99163999996 +25938000.0,150869.46600000001,123214.812,359787.25104,84847.04580000002,84847.04580000002,84847.04580000002,59735.004,319502.38208,686892.3929600001,247567.22381999998,377245.29344,260053.50300000003,260053.50300000003,260053.50300000003,170782.1535,150869.46600000001,150869.46600000001,236771.54773999998,96013.15964999999,142715.85705999998,248923.0065,70646.71994,89849.35187,186925.72499999998,186925.72499999998,186925.72499999998,186925.72499999998,453614.19444,453614.19444 +25941600.0,258560.41500000004,162441.891,474330.32171999995,186934.40403,186934.40403,186934.40403,138234.3305,757088.32024,714773.50272,421433.81574000005,642184.8620800001,298910.868,298910.868,298910.868,272127.8805,258560.41500000004,258560.41500000004,444041.03263,150154.56,223192.704,389289.60000000003,110484.09600000002,140515.00800000003,292321.73699999996,292321.73699999996,292321.73699999996,292321.73699999996,777404.9811,777404.9811 +25945200.0,940834.008,430115.33999999997,1255936.7928,1288106.02569,1288106.02569,1288106.02569,1036192.2375000002,2940420.2607999993,2909360.89472,2174757.70785,3313916.5072,835796.088,835796.088,835796.088,1121421.4094999998,940834.008,940834.008,2085686.1201799996,1135303.85295,1687538.07278,2943380.3595000003,835359.3782200001,1062420.1488100002,1175801.2319999998,1175801.2319999998,1175801.2319999998,1175801.2319999998,2828774.25072,2828774.25072 +25948800.0,759395.304,1011306.177,2953014.03684,1158392.5412400002,1158392.5412400002,1158392.5412400002,1502618.5089999998,3379837.3543200004,2368802.12992,2354992.86729,3588560.55968,1032055.059,1032055.059,1032055.059,1177394.7149999999,759395.304,759395.304,1871293.9103299999,1692113.0931,2515190.3260399997,4386959.871,1245060.99196,1583483.6105799999,1158271.203,1158271.203,1158271.203,1158271.203,2283248.5473599997,2283248.5473599997 +25952400.0,1450816.242,1262811.9870000002,3687411.00204,502994.47869,502994.47869,502994.47869,744690.0965000001,2599214.96704,4351813.2339200005,1966378.8629100001,2996386.8387200003,1242379.497,1242379.497,1242379.497,732138.176,1450816.242,1450816.242,708044.0153799999,842871.2418,1252860.46312,2185221.738,620186.7408799999,788760.98924,1608664.6799999997,1608664.6799999997,1608664.6799999997,1608664.6799999997,4362120.83428,4362120.83428 +25956000.0,787146.7050000001,479251.143,1399413.33756,285097.83049,285097.83049,285097.83049,200216.205,830750.5120000001,4713774.13312,299564.94140999997,456479.91072,769251.0149999999,769251.0149999999,769251.0149999999,749256.9,787146.7050000001,787146.7050000001,396218.72835999995,1371935.3332500001,2039271.7793,3556869.3825000003,1009473.4057000001,1283860.4723500002,314394.555,314394.555,314394.555,314394.555,2366687.7597000003,2366687.7597000003 +25959600.0,228666.399,60653.088,177107.01696,113507.19622,113507.19622,113507.19622,89984.804,268226.47544,680060.55808,112533.83672999998,171480.13215999998,82776.405,82776.405,82776.405,60094.76199999999,228666.399,228666.399,126165.21294,55388.974500000004,82331.2658,143601.045,40755.3442,51833.1391,82774.092,82774.092,82774.092,82774.092,687523.63966,687523.63966 +25963200.0,323960.67,736403.19,2150297.3148,154557.57031,154557.57031,154557.57031,378488.775,761961.7009599999,994111.1488,473970.14112000004,722240.21504,229760.013,229760.013,229760.013,555274.3595,323960.67,323960.67,268512.24711999996,225390.2679,335024.54636,584345.1390000001,165842.71564,210920.76922000002,261706.134,261706.134,261706.134,261706.134,974041.7477999999,974041.7477999999 +25966800.0,204794.124,127670.16,372796.8672,133060.51814,133060.51814,133060.51814,248822.93450000003,417603.96936,486344.976,226577.56527000002,345261.05184000003,163771.302,163771.302,163771.302,120771.22400000002,204794.124,204794.124,182524.84393,135591.16905,201545.39201999997,351532.6605,99768.31698,126886.55079,149138.157,149138.157,149138.157,149138.157,615747.6661599999,615747.6661599999 +25970400.0,189490.647,132085.758,385690.41336,68226.63914,68226.63914,68226.63914,96610.6085,411711.53199999995,509251.54304,207328.44069,315929.05248,169561.482,169561.482,169561.482,108831.2505,189490.647,189490.647,194904.68725,123958.66185,184254.60353999998,321374.3085,91209.08946,116000.82183,153186.072,153186.072,153186.072,153186.072,569735.21198,569735.21198 +25974000.0,196692.624,128422.977,374995.09284,378627.60672,378627.60672,378627.60672,287377.01649999997,399209.48192,89981.69088000001,406765.90269,619833.7564800001,112355.658,112355.658,112355.658,423665.63399999996,196692.624,196692.624,438385.29994999996,248096.6496,368775.76064,643213.536,182550.12736,232169.45728,63934.047000000006,63934.047000000006,63934.047000000006,63934.047000000006,591389.15616,591389.15616 +25977600.0,460209.414,769843.2509999999,2247942.29292,389649.08125000005,389649.08125000005,389649.08125000005,555788.506,1476265.00152,1520890.51328,693296.4129,1056451.6768,530166.7949999999,530166.7949999999,530166.7949999999,932098.888,460209.414,460209.414,930655.8755,594470.3521499999,883632.4740599998,1541219.4315,437412.75294,556306.82337,548033.355,548033.355,548033.355,548033.355,1383696.30476,1383696.30476 +25981200.0,579664.9890000001,575191.59,1679559.4427999998,473811.7769,473811.7769,473811.7769,596834.4235,1374951.27992,2236287.2332800003,950871.39672,1448946.8902399999,619058.9010000001,619058.9010000001,619058.9010000001,770881.5065,579664.9890000001,579664.9890000001,686570.39568,718162.09875,1067490.3295,1861901.7375,528425.4455,672057.86525,624118.98,624118.98,624118.98,624118.98,1742859.40026,1742859.40026 +25984800.0,1781235.108,1433046.066,4184494.51272,2037065.1871900002,2037065.1871900002,2037065.1871900002,2499379.7675,2990613.5716,4980006.67776,3067445.9489100003,4674203.35072,1987850.7449999996,1987850.7449999996,1987850.7449999996,2144714.9744999995,1781235.108,1781235.108,1371159.8794399998,2161288.6074,3212582.07816,5603340.834000001,1590281.4938400001,2022539.2153200002,1901289.2970000003,1901289.2970000003,1901289.2970000003,1901289.2970000003,5355580.224719999,5355580.224719999 +25988400.0,1025946.4110000001,678239.256,1980458.62752,827618.23628,827618.23628,827618.23628,941528.6089999999,1719705.05696,2770685.65504,1430584.0938900001,2179937.6668800004,929228.2409999999,929228.2409999999,929228.2409999999,1134175.7665,1025946.4110000001,1025946.4110000001,636193.26472,1071188.388,1592235.5792,2777155.08,788183.0608000001,1002420.7384,980688.765,980688.765,980688.765,980688.765,3084678.87574,3084678.87574 +25992000.0,824762.6880000001,689120.61,2012232.1812,876194.7037800001,876194.7037800001,876194.7037800001,886208.47,1575111.5392,2843129.18848,1300548.34161,1981787.9491200002,844133.79,844133.79,844133.79,1106855.8445000001,824762.6880000001,824762.6880000001,735156.7684500001,1055249.4267,1568543.5922799997,2735831.847,776455.1337199999,987505.01906,918252.1379999999,918252.1379999999,918252.1379999999,918252.1379999999,2479786.48192,2479786.48192 +25995600.0,826194.5700000001,698373.759,2039251.37628,869780.88032,869780.88032,869780.88032,891325.1865000001,1570554.3010399998,2883867.0528,1304665.12449,1988061.1420800004,860012.3069999999,860012.3069999999,860012.3069999999,1115554.5274999999,826194.5700000001,826194.5700000001,746739.73426,1077585.6627000002,1601744.61468,2793740.6070000003,792890.1913200001,1008407.3238600001,936040.8330000001,936040.8330000001,936040.8330000001,936040.8330000001,2484091.6738,2484091.6738 +25999200.0,582149.733,505417.2480000001,1475818.36416,565496.68725,565496.68725,565496.68725,505033.403,800954.0260800001,1787249.9187200004,724653.6471299999,1104234.12896,461309.83499999996,461309.83499999996,461309.83499999996,556406.508,582149.733,582149.733,538849.23508,502177.8546,746447.08264,1301942.5860000001,369503.70536,469939.27628000005,590942.256,590942.256,590942.256,590942.256,1750330.1972199997,1750330.1972199997 +26002800.0,101466.693,97383.97799999999,284361.21576,93731.53020000001,93731.53020000001,93731.53020000001,57178.8805,167115.48359999998,667614.67584,135474.24051,206436.93792,146069.244,146069.244,146069.244,104859.503,101466.693,101466.693,192989.21057,72075.27825,107134.1173,186861.83250000002,53033.167700000005,67448.22335,113225.715,113225.715,113225.715,113225.715,305076.52362,305076.52362 +26006400.0,100141.00799999999,98043.801,286287.89892,76741.38846,76741.38846,76741.38846,36902.845,178348.15712,679367.91552,140914.35162,214726.63104,147043.05,147043.05,147043.05,100539.65599999999,100141.00799999999,100141.00799999999,208149.41185999996,67420.6011,100215.31324,174794.151,49608.24476,63092.364980000006,112041.465,112041.465,112041.465,112041.465,301090.63071999996,301090.63071999996 +26010000.0,99294.102,100344.59399999998,293006.21447999997,71250.54332000001,71250.54332000001,71250.54332000001,31796.901500000007,189123.62287999998,667631.6704,161234.65428,245690.90175999998,144197.478,144197.478,144197.478,99802.36349999999,99294.102,99294.102,207983.49572,65478.24135,97328.15134,169758.40350000001,48179.051660000005,61274.69993,114742.185,114742.185,114742.185,114742.185,298544.26668,298544.26668 +26013600.0,112110.558,116482.659,340129.36428,66695.68015,66695.68015,66695.68015,30877.5915,192207.55752000003,669986.2656,179067.16401,272864.24992000003,144003.21899999998,144003.21899999998,144003.21899999998,98545.517,112110.558,112110.558,228327.51578,76061.80260000001,113059.76584000001,197197.26600000003,55966.46216000001,71178.82268000001,119302.85399999999,119302.85399999999,119302.85399999999,119302.85399999999,337079.07772,337079.07772 +26017200.0,116750.49,119424.85800000001,348720.58535999997,68494.83586,68494.83586,68494.83586,37254.9065,204341.21456,679345.4809600001,201835.78884,307559.29728,145682.394,145682.394,145682.394,99684.17199999999,116750.49,116750.49,235161.59745,81467.8155,121095.37019999998,211212.85499999998,59944.21979999999,76237.78289999999,127213.68900000001,127213.68900000001,127213.68900000001,127213.68900000001,351029.8066,351029.8066 +26020800.0,134092.94400000002,128607.04199999999,375532.56263999996,77283.58979,77283.58979,77283.58979,49496.909,258399.13367999997,715994.7718400002,232787.39966999998,354723.65664,219092.691,219092.691,219092.691,147394.22950000002,134092.94400000002,134092.94400000002,245245.69991999996,93494.75624999999,138972.45249999998,242393.8125,68793.6725,87492.62375,182368.977,182368.977,182368.977,182368.977,403172.78496,403172.78496 +26024400.0,169889.025,145826.23500000002,425812.60620000004,95817.69824,95817.69824,95817.69824,68739.153,367400.61376000004,746446.5209600001,273904.42653,417378.17376000003,270740.16000000003,270740.16000000003,270740.16000000003,195586.46099999998,169889.025,169889.025,267002.01294,114387.81524999999,170028.3081,296561.0025,84166.8369,107044.39994999999,229298.487,229298.487,229298.487,229298.487,510799.6684999999,510799.6684999999 +26028000.0,318699.714,195456.37500000003,570732.6150000001,206149.70431,206149.70431,206149.70431,151454.75449999998,899441.3570399999,839765.20576,503025.41667,766514.92064,365698.26599999995,365698.26599999995,365698.26599999995,322515.27,318699.714,318699.714,505248.39807,180287.85194999998,267983.42438,467412.9495,132656.24662,168713.81701,372917.886,372917.886,372917.886,372917.886,958223.80676,958223.80676 +26031600.0,1045363.3200000001,493516.39199999993,1441067.8646399998,1409281.3054100003,1409281.3054100003,1409281.3054100003,1163531.1415,3121008.1279999996,3283888.50944,2411825.64672,3675162.89024,961146.6510000001,961146.6510000001,961146.6510000001,1332713.193,1045363.3200000001,1045363.3200000001,2269327.76915,1274195.2900500002,1893989.0484200001,3303469.2705000006,937556.0405800001,1192395.09859,1325786.562,1325786.562,1325786.562,1325786.562,3143059.0488,3143059.0488 +26035200.0,841917.3929999999,1044486.309,3049900.02228,1256815.65405,1256815.65405,1256815.65405,1603848.0185,3626351.7551200003,2515735.6377600003,2568366.1930500004,3913700.8656000006,1117553.1779999998,1117553.1779999998,1117553.1779999998,1329057.3485,841917.3929999999,841917.3929999999,1817464.04112,1816502.9300999998,2700085.8368399995,4709452.040999999,1336587.3411599998,1699887.9271799999,1271367.1530000002,1271367.1530000002,1271367.1530000002,1271367.1530000002,2531364.9616199997,2531364.9616199997 +26038800.0,1502318.46,1375795.077,4017321.6248399997,574848.58673,574848.58673,574848.58673,897198.2635,2773618.21,4663123.239680001,2128329.99456,3243169.5155200004,1273561.395,1273561.395,1273561.395,811438.243,1502318.46,1502318.46,662338.5391999999,923098.0725,1372111.209,2393217.225,679217.841,863837.4555,1642807.926,1642807.926,1642807.926,1642807.926,4516970.836399999,4516970.836399999 +26042400.0,749401.704,418384.239,1221681.97788,292540.06562000007,292540.06562000007,292540.06562000007,201308.1875,716935.17248,4599177.421440001,216807.31086,330373.04512,734035.932,734035.932,734035.932,713820.5935,749401.704,749401.704,323856.57849999995,1415971.8539999998,2104728.5335999997,3671038.14,1041875.5864,1325069.9572,261038.03399999999,261038.03399999999,261038.03399999999,261038.03399999999,2253201.12336,2253201.12336 +26046000.0,260166.315,63841.155,186416.1726,118822.55110000001,118822.55110000001,118822.55110000001,88959.444,315927.77064,776745.15584,141715.69692,215947.72864,101637.27000000002,101637.27000000002,101637.27000000002,67980.4405,260166.315,260166.315,141224.38499,79096.76729999999,117570.99731999998,205065.693,58199.596679999995,74018.95014,105716.42099999997,105716.42099999997,105716.42099999997,105716.42099999997,782233.3870999999,782233.3870999999 +26049600.0,381931.632,765270.924,2234591.09808,163998.43999,163998.43999,163998.43999,399420.623,901779.16744,1153946.8896,541843.13652,825665.73184,280261.68,280261.68,280261.68,640580.3215,381931.632,381931.632,316768.99539999996,269624.7729,400775.58835999994,699027.189,198390.57364,252315.52821999998,316501.86000000004,316501.86000000004,316501.86000000004,316501.86000000004,1148341.1068799999,1148341.1068799999 +26053200.0,173892.77399999998,92436.807,269915.47644,141156.21619,141156.21619,141156.21619,239282.22500000003,335520.29904,302477.26272,168179.1993,256273.0656,123609.801,123609.801,123609.801,87677.63549999999,173892.77399999998,173892.77399999998,132792.55118999997,82427.61284999999,122522.03193999999,213701.2185,60650.44106,77135.96363,107636.52600000001,107636.52600000001,107636.52600000001,107636.52600000001,522837.6071599999,522837.6071599999 +26056800.0,227442.876,165274.5,482601.54,72249.81786,72249.81786,72249.81786,111144.5125,487040.41304,626863.70112,260858.81871000002,397499.15232000005,193778.94299999997,193778.94299999997,193778.94299999997,131381.2045,227442.876,227442.876,233515.91847999996,154180.017,229176.2228,399725.97,113446.03719999999,144282.0406,189703.632,189703.632,189703.632,189703.632,683844.9138399999,683844.9138399999 +26060400.0,219549.86099999998,132430.407,386696.78844,396780.73060999997,396780.73060999997,396780.73060999997,307554.80350000004,426344.39368000004,103916.56640000001,436461.62658000004,665084.3833600001,122090.57100000001,122090.57100000001,122090.57100000001,436563.3545,219549.86099999998,219549.86099999998,448207.29589999997,257138.55810000002,382215.83204,666655.5210000001,189203.18596000003,240630.89758000002,75920.76299999999,75920.76299999999,75920.76299999999,75920.76299999999,660113.24874,660113.24874 +26064000.0,475981.047,815850.75,2382284.19,391820.59312000003,391820.59312000003,391820.59312000003,575275.1410000001,1500633.5052800002,1510132.9568000003,725048.96331,1104836.5155200001,534434.418,534434.418,534434.418,941987.438,475981.047,475981.047,936985.8354999998,608558.4958500001,904573.3691400001,1577744.2485000002,447778.84386,569490.5430300001,573156.7679999999,573156.7679999999,573156.7679999999,573156.7679999999,1431116.34798,1431116.34798 +26067600.0,619247.76,612391.8870000001,1788184.3100400001,489891.96025,489891.96025,489891.96025,659353.0404999999,1494680.3144,2378621.41696,1021217.37144,1556140.7564800002,652615.134,652615.134,652615.134,832065.906,619247.76,619247.76,728958.99206,768881.14785,1142880.12594,1993395.5684999998,565744.64706,719520.87663,671159.292,671159.292,671159.292,671159.292,1861871.5984,1861871.5984 +26071200.0,1852084.2989999999,1521670.902,4443279.03384,2102018.38231,2102018.38231,2102018.38231,2587090.1805000002,3109785.32992,5257580.3712,3188007.1200600006,4857915.611520001,2062069.3739999998,2062069.3739999998,2062069.3739999998,2290281.273,1852084.2989999999,1852084.2989999999,1503495.3026599998,2297495.9636999997,3415043.383079999,5956471.016999999,1690503.2029199998,2150002.3956599995,2025360.4889999998,2025360.4889999998,2025360.4889999998,2025360.4889999998,5568600.125659999,5568600.125659999 +26074800.0,1140455.46,724374.0689999999,2115172.28148,889800.4126,889800.4126,889800.4126,1051528.9365,1877763.25536,2964330.9305600002,1558450.9878,2374782.4576,1016890.9739999999,1016890.9739999999,1016890.9739999999,1216550.9825,1140455.46,1140455.46,697508.48479,1151470.33515,1711568.2512599998,2985293.4615,847254.71574,1077548.78277,1059827.6339999998,1059827.6339999998,1059827.6339999998,1059827.6339999998,3428969.4163999995,3428969.4163999995 +26078400.0,888514.4430000001,734412.417,2144484.25764,938939.4029400002,938939.4029400002,938939.4029400002,946476.0865,1666842.16536,3005110.5632,1387059.50523,2113614.48416,887474.145,887474.145,887474.145,1176102.7005,888514.4430000001,888514.4430000001,821164.2966799999,1126476.6754499997,1674417.1817799998,2920495.0845,828864.31922,1054159.65431,981167.172,981167.172,981167.172,981167.172,2671466.75862,2671466.75862 +26082000.0,883649.2590000001,748482.813,2185569.81396,943542.4020000001,943542.4020000001,943542.4020000001,965407.1700000002,1668794.2788,3094197.98336,1395963.6488700002,2127182.70304,910051.6410000001,910051.6410000001,910051.6410000001,1192591.4245,883649.2590000001,883649.2590000001,863398.9057199999,1156787.28045,1719471.4637799999,2999078.1345,851166.93722,1082524.39331,1002122.3219999999,1002122.3219999999,1002122.3219999999,1002122.3219999999,2656838.7720600003,2656838.7720600003 +26085600.0,632438.4750000001,555797.9909999999,1622930.1337199998,623543.29587,623543.29587,623543.29587,551759.2885,873605.3430400001,2012877.2697600003,791765.5069800001,1206499.8201600001,497698.41000000003,497698.41000000003,497698.41000000003,610031.254,632438.4750000001,632438.4750000001,667653.8778,551855.41785,820288.79394,1430736.2685,406056.57906,516427.66263000004,645121.26,645121.26,645121.26,645121.26,1901531.6815,1901531.6815 +26089200.0,113504.83800000002,107567.43000000002,314096.89560000005,108842.67504,108842.67504,108842.67504,60875.969000000005,192744.98351999998,753332.58176,158831.28492,242028.62464000002,161728.323,161728.323,161728.323,115980.907,113504.83800000002,113504.83800000002,219246.85626999996,82197.39869999999,122179.83707999998,213104.367,60481.048919999994,76920.52866,126334.047,126334.047,126334.047,126334.047,341271.21292,341271.21292 +26092800.0,110930.35499999998,107262.09899999999,313205.32907999994,87113.64915000001,87113.64915000001,87113.64915000001,40406.7195,201890.11400000003,759035.4534400001,167209.54299000002,254795.49408000003,161336.847,161336.847,161336.847,111104.2135,110930.35499999998,110930.35499999998,228264.34605,76523.9481,113746.70803999998,198395.421,56306.509959999996,71611.29958,127712.33099999998,127712.33099999998,127712.33099999998,127712.33099999998,333530.60069999995,333530.60069999995 +26096400.0,121231.149,123393.41399999999,360308.76888,85198.31529,85198.31529,85198.31529,36943.30500000001,222550.2236,793029.4368,202207.31244,308125.42848,167570.80199999997,167570.80199999997,167570.80199999997,115598.26249999998,121231.149,121231.149,248169.03514,83142.2151,123584.23084,215553.89100000003,61176.247160000006,77804.69018,137614.54499999998,137614.54499999998,137614.54499999998,137614.54499999998,364501.65466,364501.65466 +26100000.0,132024.288,135511.881,395694.69252,82183.71919999999,82183.71919999999,82183.71919999999,43512.0315,232843.10095999998,784752.7161600001,222524.77505999999,339085.37152,164719.57799999998,164719.57799999998,164719.57799999998,112596.91450000001,132024.288,132024.288,266777.61681999994,94182.97275,139995.4311,244178.0775,69300.0639,88136.65845,142776.984,142776.984,142776.984,142776.984,396953.02592,396953.02592 +26103600.0,147773.268,140896.824,411418.72608,87630.88103,87630.88103,87630.88103,53230.173500000004,289389.35063999996,801743.5878400002,258404.36727,393759.03584,216439.137,216439.137,216439.137,143807.4715,147773.268,147773.268,270726.90098999994,104611.4514,155496.52776,271214.874,76973.36424000001,97895.65452000001,200554.91400000002,200554.91400000002,200554.91400000002,200554.91400000002,444304.95912,444304.95912 +26107200.0,183199.185,156932.013,458241.47796,98433.08838,98433.08838,98433.08838,68084.5235,398310.54824000003,812511.1974400001,297921.66915,453975.8768,291741.06,291741.06,291741.06,210147.4865,183199.185,183199.185,289312.55821,125171.9892,186058.11727999998,324519.972,92101.85872,117136.25656000001,252225.75,252225.75,252225.75,252225.75,550818.8829,550818.8829 +26110800.0,235895.565,175950.75300000003,513776.19876,112588.36116000001,112588.36116000001,112588.36116000001,77969.283,497565.09167999995,828057.4880000001,343167.0564,522921.22880000004,357301.11,357301.11,357301.11,229680.9655,235895.565,235895.565,318474.94847999996,144337.17645,214545.63017999998,374207.49450000003,106203.65082000001,135071.08611,310351.977,310351.977,310351.977,310351.977,709259.3320999999,709259.3320999999 +26114400.0,401414.871,225357.51899999997,658043.9554799999,221432.55838,221432.55838,221432.55838,157414.173,983472.42208,948748.05504,599475.33891,913486.23072,406498.22699999996,406498.22699999996,406498.22699999996,354018.903,401414.871,401414.871,537930.9531699999,207321.09165000002,308166.16586,537499.1265,152547.37114,194011.58947,458419.73099999997,458419.73099999997,458419.73099999997,458419.73099999997,1206920.71214,1206920.71214 +26118000.0,1154920.8360000001,572837.9700000001,1672686.8724000002,1510350.5165100002,1510350.5165100002,1510350.5165100002,1309423.5175,3288432.73448,3845701.1040000007,2668794.77466,4066734.89472,1111427.685,1111427.685,1111427.685,1566890.8184999998,1154920.8360000001,1154920.8360000001,2429202.48662,1448455.1706,2153012.37704,3755254.146,1065776.89096,1355467.9250800002,1455522.9780000001,1455522.9780000001,1455522.9780000001,1455522.9780000001,3472461.98024,3472461.98024 +26121600.0,975689.895,1139783.031,3328166.45052,1429018.82739,1429018.82739,1429018.82739,1770946.6284999996,3959080.99552,2920452.01024,2851135.96383,4344588.13536,1226313.354,1226313.354,1226313.354,1558910.2025000001,975689.895,975689.895,2059615.91537,1986443.14545,2952688.32978,5150037.7845,1461629.77122,1858918.40031,1417978.38,1417978.38,1417978.38,1417978.38,2933574.2843,2933574.2843 +26125200.0,1585982.9159999997,1610875.8480000002,4703757.47616,732694.5908700001,732694.5908700001,732694.5908700001,1190559.783,3195795.3782399995,5241978.89728,2454160.7416200005,3739673.5110400007,1359649.08,1359649.08,1359649.08,949468.5340000002,1585982.9159999997,1585982.9159999997,808398.2776999999,1144336.3209,1700964.1115599999,2966797.869,842005.4904400001,1070872.75462,1729813.332,1729813.332,1729813.332,1729813.332,4768521.967439999,4768521.967439999 +26128800.0,917467.2690000001,505892.83200000005,1477207.0694400002,349846.21914,349846.21914,349846.21914,271038.04349999997,1040781.4867199999,5092363.42592,378547.31355,576834.0016,904889.4809999999,904889.4809999999,904889.4809999999,876479.3205,917467.2690000001,917467.2690000001,413959.73033999995,1596555.4086,2373151.49624,4139217.726,1174749.41176,1494060.49348,384234.86100000003,384234.86100000003,384234.86100000003,384234.86100000003,2758518.25546,2758518.25546 +26132400.0,342721.008,113439.729,331244.00868,131524.7362,131524.7362,131524.7362,110867.0605,483614.33031999995,1343314.6822400002,231009.9645,352015.184,171550.305,171550.305,171550.305,116312.36049999998,342721.008,342721.008,214111.96962999995,205054.99919999996,304797.80127999996,531624.0719999999,150879.97471999997,191890.97455999997,177636.36000000002,177636.36000000002,177636.36000000002,177636.36000000002,1030447.83072,1030447.83072 +26136000.0,468823.43999999994,871306.5989999999,2544215.26908,210838.19372,210838.19372,210838.19372,520546.41799999995,1078001.7164,1559889.9168,733464.7698,1117660.6016,380605.806,380605.806,380605.806,713011.0365,468823.43999999994,468823.43999999994,431286.41816,389569.37444999994,579063.61338,1009994.6745,286646.10761999997,364559.98251,435104.19299999997,435104.19299999997,435104.19299999997,435104.19299999997,1409595.8095999998,1409595.8095999998 +26139600.0,225988.479,169911.67200000002,496142.08224,175206.92288000003,175206.92288000003,175206.92288000003,301523.243,431810.86144,431335.58720000007,233883.55851,356393.99392000004,156408.45,156408.45,156408.45,178561.908,225988.479,225988.479,173125.00725000002,117808.55054999999,175112.95661999998,305429.5755,86683.82238,110245.53249,149285.487,149285.487,149285.487,149285.487,679472.02686,679472.02686 +26143200.0,103535.025,36645.153,107003.84675999999,67079.22473999999,67079.22473999999,67079.22473999999,56680.0115,197981.6648,153627.15584000002,78411.21981000001,119483.76352000001,72002.895,72002.895,72002.895,37054.493,103535.025,103535.025,86221.64056999999,33972.582599999994,50497.51783999999,88077.06599999999,24997.110159999997,31791.626679999998,54616.640999999996,54616.640999999996,54616.640999999996,54616.640999999996,311295.3084999999,311295.3084999999 +26146800.0,252517.785,142141.848,415054.19616,469721.40248,469721.40248,469721.40248,363055.53900000005,489435.20432,147397.03936,489181.63203000004,745419.62976,143403.783,143403.783,143403.783,478418.066,252517.785,252517.785,465146.10050999996,288712.32975000003,429147.7099,748513.4475000001,212435.24510000003,270177.71105000004,100185.58200000001,100185.58200000001,100185.58200000001,100185.58200000001,759236.8069,759236.8069 +26150400.0,562998.888,958567.1009999999,2799015.9349199994,418376.09363,418376.09363,418376.09363,654074.9739999999,1703273.6621599998,1752448.2368000003,875946.1279799999,1334775.05216,626390.5380000001,626390.5380000001,626390.5380000001,1044057.469,562998.888,562998.888,1045944.67796,706584.7161000001,1050281.47924,1831886.3010000002,519906.7787600001,661223.7219800001,684269.4569999999,684269.4569999999,684269.4569999999,684269.4569999999,1692749.9899199998,1692749.9899199998 +26154000.0,708704.1900000001,703039.608,2052875.65536,522352.07024000003,522352.07024000003,522352.07024000003,808184.5695,1786074.30928,2707752.1772800004,1187706.06591,1809837.81472,764598.456,764598.456,764598.456,993001.9015000002,708704.1900000001,708704.1900000001,819670.0798000001,913085.0995499999,1357227.72822,2367257.6655,671850.27078,854467.29069,771694.644,771694.644,771694.644,771694.644,2130837.2646,2130837.2646 +26157600.0,1946205.867,1669447.3020000001,4874786.12184,2381152.2057399997,2381152.2057399997,2381152.2057399997,2731170.75,3257328.17616,5673423.8611200005,3375596.7707699994,5143766.507839999,2158293.801,2158293.801,2158293.801,2532717.74,1946205.867,1946205.867,1743071.82114,2512405.2123,3734488.73532,6513643.143,1848633.95868,2351115.0011400003,2200030.887,2200030.887,2200030.887,2200030.887,5851592.306779999,5851592.306779999 +26161200.0,1335087.078,828001.008,2417762.94336,1107667.28468,1107667.28468,1107667.28468,1272013.4805,2222320.21856,3478972.3168,1828410.1206,2786148.7552,1209842.2380000001,1209842.2380000001,1209842.2380000001,1436419.3165,1335087.078,1335087.078,907155.1342099999,1341989.59275,1994759.8391,3479232.2775000003,987439.2559,1255837.17445,1258829.4540000001,1258829.4540000001,1258829.4540000001,1258829.4540000001,4014161.81452,4014161.81452 +26164800.0,1027232.94,819903.0900000001,2394117.0228000004,1065937.52584,1065937.52584,1065937.52584,1058786.5435,1858202.3855999997,3435557.38496,1551261.87573,2363827.62016,994140.045,994140.045,994140.045,1320689.132,1027232.94,1027232.94,962744.8285,1280225.7927,1902952.90668,3319103.907,941993.2993200001,1198038.4578600002,1107762.234,1107762.234,1107762.234,1107762.234,3088547.0396,3088547.0396 +26168400.0,976118.811,832631.625,2431284.3449999997,1057042.98854,1057042.98854,1057042.98854,1088612.3779999998,1840002.9074400002,3531046.7494400004,1545112.87518,2354457.71456,1001149.71,1001149.71,1001149.71,1326274.04,976118.811,976118.811,977761.5090099999,1286934.8364,1912925.3617599998,3336497.7239999995,946929.8302399999,1204316.7975199998,1112049.7589999998,1112049.7589999998,1112049.7589999998,1112049.7589999998,2934863.89174,2934863.89174 +26172000.0,696472.821,618331.716,1805528.6107199998,705305.8474,705305.8474,705305.8474,608645.9994999999,975999.8033599999,2225172.27968,880083.4045499999,1341079.4736,544227.432,544227.432,544227.432,677248.7189999999,696472.821,696472.821,767259.12211,613278.5804999999,911589.3962,1589981.505,451251.89379999996,573907.6099,711452.406,711452.406,711452.406,711452.406,2094061.61514,2094061.61514 +26175600.0,125094.75899999999,116605.46399999999,340487.95488,119219.09934000002,119219.09934000002,119219.09934000002,64414.539,215421.48160000003,829979.9731200001,182368.50765,277894.8688,176250.99300000002,176250.99300000002,176250.99300000002,125404.23,125094.75899999999,125094.75899999999,247560.96936999998,92080.1034,136869.68456,238726.19400000002,67752.76744000001,86168.78812000001,141673.011,141673.011,141673.011,141673.011,376118.24205999996,376118.24205999996 +26179200.0,121960.68899999998,116054.229,338878.34868,98867.78880000001,98867.78880000001,98867.78880000001,43743.2135,224171.32584,829487.5008000002,206635.30670999998,314872.84832,173704.97400000002,173704.97400000002,173704.97400000002,120636.90449999999,121960.68899999998,121960.68899999998,246404.11146,86255.2557,128211.51587999999,223624.73700000002,63466.830120000006,80717.88126000001,143496.258,143496.258,143496.258,143496.258,366695.1382599999,366695.1382599999 +26182800.0,138761.7,138447.81900000002,404267.63148,96682.93547000001,96682.93547000001,96682.93547000001,45743.8905,250275.10967999997,856420.2336,226467.02105999997,345092.60352,178095.945,178095.945,178095.945,123409.4365,138761.7,138761.7,274095.51714999997,94886.64,141041.376,246002.4,69817.824,88795.152,152561.754,152561.754,152561.754,152561.754,417210.178,417210.178 +26186400.0,152705.073,149209.242,435690.98663999996,94790.32849000001,94790.32849000001,94790.32849000001,49929.929000000004,304295.682,875108.4288000001,270104.33709,411587.56128,183405.15899999999,183405.15899999999,183405.15899999999,124402.278,152705.073,152705.073,293444.8244,109749.6216,163134.00544,284536.05600000004,80754.04256,102703.96688,182404.683,182404.683,182404.683,182404.683,459133.25282,459133.25282 +26190000.0,188900.007,164803.26,481225.5192,105608.06289,105608.06289,105608.06289,72405.8825,396600.86488,884131.376,314029.4535,478521.07200000004,293827.971,293827.971,293827.971,204857.247,188900.007,188900.007,301991.10253,132193.1502,196494.50968,342722.982,97268.04632,123706.67636,265188.201,265188.201,265188.201,265188.201,567959.35438,567959.35438 +26193600.0,243350.718,182041.233,531560.40036,112886.47645000002,112886.47645000002,112886.47645000002,76964.16,504866.49912,889305.0988800001,354780.62717999995,540618.09856,366741.417,366741.417,366741.417,239723.701,243350.718,243350.718,330487.96676999994,149151.71519999998,221702.05567999996,386689.6319999999,109746.20031999999,139576.54335999998,308620.503,308620.503,308620.503,308620.503,731674.49212,731674.49212 +26197200.0,298041.012,221582.50799999997,647020.9233599999,132608.92315,132608.92315,132608.92315,86656.745,590281.2295199999,962816.7980800001,433022.4444,659843.7248,408876.67199999996,408876.67199999996,408876.67199999996,260077.7025,298041.012,298041.012,364371.47305,175280.02695,260539.69437999997,454429.6995,128971.47662,164027.48201,399838.88700000005,399838.88700000005,399838.88700000005,399838.88700000005,896109.9760799999,896109.9760799999 +26200800.0,508409.937,289406.25,845066.25,239354.78303000002,239354.78303000002,239354.78303000002,166761.5495,1116269.78808,1212772.9062400002,713086.5312900001,1086608.04768,470580.39300000004,470580.39300000004,470580.39300000004,395868.31200000003,508409.937,508409.937,582293.1647,263256.15599999996,391309.1503999999,682515.96,193704.52959999998,246355.7608,551548.029,551548.029,551548.029,551548.029,1528619.21058,1528619.21058 +26204400.0,1244604.732,687701.7239999999,2008089.03408,1587585.0587300002,1587585.0587300002,1587585.0587300002,1424610.7714999998,3441184.74976,4296891.17888,2894317.4582700003,4410388.50784,1237871.6069999998,1237871.6069999998,1237871.6069999998,1792965.461,1244604.732,1244604.732,2570583.95178,1589071.446,2362027.1864,4119814.86,1169242.6936,1487056.9828,1551115.9260000002,1551115.9260000002,1551115.9260000002,1551115.9260000002,3742111.56088,3742111.56088 +26208000.0,1065102.852,1206099.864,3521811.60288,1635250.39568,1635250.39568,1635250.39568,1868356.0105,4170944.4746399997,3202995.65504,3069994.6384799997,4678087.06816,1293078.057,1293078.057,1293078.057,1734975.9804999998,1065102.852,1065102.852,2155094.80498,2107078.0209,3132002.3915599994,5462794.869,1550393.2104399998,1971808.8146199998,1514522.2650000001,1514522.2650000001,1514522.2650000001,1514522.2650000001,3202409.2416799995,3202409.2416799995 +26211600.0,1652788.479,1727104.755,5043145.8845999995,881540.2336400001,881540.2336400001,881540.2336400001,1493741.109,3457324.1971199997,5624680.68864,2679809.7442199998,4083519.6102400003,1428181.713,1428181.713,1428181.713,1056408.5735,1652788.479,1652788.479,1033043.4017799998,1330316.26155,1977408.3690199999,3448968.0855,978849.9899800001,1244913.24229,1810628.2650000001,1810628.2650000001,1810628.2650000001,1810628.2650000001,4969384.02686,4969384.02686 +26215200.0,1107603.0690000001,665449.368,1943112.15456,417129.99801000004,417129.99801000004,417129.99801000004,459031.02,1459424.68992,5852609.7472,697733.69043,1063213.24256,1108227.342,1108227.342,1108227.342,1067164.9625000001,1107603.0690000001,1107603.0690000001,587476.6323399999,1819853.5923,2705066.3273199997,4718138.943,1339052.76668,1703023.48514,581385.9929999999,581385.9929999999,581385.9929999999,581385.9929999999,3330193.22746,3330193.22746 +26218800.0,556466.859,325036.875,949107.6749999999,174480.2488,174480.2488,174480.2488,316395.73,993585.92384,2550553.6288,583431.96261,889039.1811200001,414976.73400000005,414976.73400000005,414976.73400000005,327393.444,556466.859,556466.859,477889.8491899999,578916.9062999999,860513.5249199999,1500895.683,425968.48907999997,541751.87034,416607.8219999999,416607.8219999999,416607.8219999999,416607.8219999999,1673110.35606,1673110.35606 +26222400.0,551890.554,950838.189,2776447.51188,295761.56016,295761.56016,295761.56016,652180.9525,1239885.0680799999,1843054.38528,896441.54229,1366006.15968,467998.206,467998.206,467998.206,796871.138,551890.554,551890.554,490305.57991999993,512866.75635,762335.27734,1329654.5535000002,377368.62566,479941.97693,518052.36899999995,518052.36899999995,518052.36899999995,518052.36899999995,1659350.9323599997,1659350.9323599997 +26226000.0,287103.207,262288.695,765882.9894,216219.16514,216219.16514,216219.16514,395153.36,555476.1843999999,610451.42784,327191.31942,498577.24864000006,205188.65999999997,205188.65999999997,205188.65999999997,288146.705,287103.207,287103.207,230899.11013,178079.45984999998,264700.82674,461687.48850000004,131031.30626,166647.19823,207771.921,207771.921,207771.921,207771.921,863223.64238,863223.64238 +26229600.0,249414.34500000003,167603.856,489403.25951999996,78397.95579,78397.95579,78397.95579,137451.601,515616.02943999995,622921.19168,287803.67889000004,438557.98688000004,201931.92600000004,201931.92600000004,201931.92600000004,137274.40649999998,249414.34500000003,249414.34500000003,241035.71855999995,159067.62585,236441.26114,412397.54850000003,117042.35186000001,148855.87703,203371.83599999998,203371.83599999998,203371.83599999998,203371.83599999998,749905.7973,749905.7973 +26233200.0,443783.739,371051.019,1083468.97548,732844.54188,732844.54188,732844.54188,656583.865,940104.1966400001,768294.38784,807139.9669199999,1229927.56864,318063.348,318063.348,318063.348,760523.5715,443783.739,443783.739,687479.7406099999,546865.6761,812871.9432399999,1417799.901,402385.11476,511758.24998,293428.143,293428.143,293428.143,293428.143,1334309.77526,1334309.77526 +26236800.0,723280.14,1141819.545,3334113.0713999993,585045.09261,585045.09261,585045.09261,947654.5434999999,2032737.84032,2541034.2924800003,1276921.56585,1945785.2432000001,856452.2039999999,856452.2039999999,856452.2039999999,1328861.2119999998,723280.14,723280.14,1206659.4956,1077285.0838499998,1601297.8283399998,2792961.3285,792669.02466,1008126.04143,869287.1969999999,869287.1969999999,869287.1969999999,869287.1969999999,2174662.2876,2174662.2876 +26240400.0,809513.2679999999,1024355.148,2991117.03216,852237.1941600001,852237.1941600001,852237.1941600001,985172.342,2185116.2416000003,3088285.58464,1434127.13556,2185336.58752,885500.8799999999,885500.8799999999,885500.8799999999,1239286.391,809513.2679999999,809513.2679999999,969892.6953299998,1097893.41975,1631930.4658999997,2846390.3474999997,807832.6891,1027411.3730499999,959965.335,959965.335,959965.335,959965.335,2433936.55912,2433936.55912 +26244000.0,2132655.2249999996,1809930.381,5284996.71252,3109766.84139,3109766.84139,3109766.84139,2882382.251,3476872.8320799996,6591191.845120001,3653983.1764800004,5567974.36416,2302416.039,2302416.039,2302416.039,2877373.9995,2132655.2249999996,2132655.2249999996,2555128.21928,2805106.9338,4169566.35592,7272499.458000001,2064004.6080800002,2625025.9948400003,2428033.635,2428033.635,2428033.635,2428033.635,6412183.376499999,6412183.376499999 +26247600.0,1516631.919,906772.104,2647774.54368,1486898.0002800003,1486898.0002800003,1486898.0002800003,1557444.4479999999,2530102.1236,4142992.0992,2122703.20878,3234595.36576,1441183.614,1441183.614,1441183.614,1721883.814,1516631.919,1516631.919,1048001.4483899999,1621981.19115,2410944.88166,4205136.4215,1193457.7653400002,1517854.0035700002,1563050.742,1563050.742,1563050.742,1563050.742,4560006.63646,4560006.63646 +26251200.0,1201536.348,902778.5549999999,2636113.3806,1203984.44111,1203984.44111,1203984.44111,1183489.0584999998,2056738.78616,3868412.1248,1720794.78396,2622163.48032,1107672.111,1107672.111,1107672.111,1474806.1615,1201536.348,1201536.348,1072457.73947,1423683.99765,2116192.01626,3691032.5865,1047550.20074,1332287.00027,1237547.784,1237547.784,1237547.784,1237547.784,3612619.2863199995,3612619.2863199995 +26254800.0,1079834.751,922422.9480000001,2693475.00816,1190523.5958,1190523.5958,1190523.5958,1207790.178,2019828.1173599998,3888331.4572800007,1700804.71323,2591702.42016,1096267.977,1096267.977,1096267.977,1466331.1600000001,1079834.751,1079834.751,1110355.24366,1420616.8071,2111632.88364,3683080.6110000005,1045293.3543600001,1329416.7157800002,1227010.38,1227010.38,1227010.38,1227010.38,3246703.1513399994,3246703.1513399994 +26258400.0,787834.3139999999,697788.717,2037543.05364,801787.2731,801787.2731,801787.2731,684864.3409999999,1119665.97584,2524279.91936,1004161.5740100001,1530150.96992,612542.3940000001,612542.3940000001,612542.3940000001,768055.3615,787834.3139999999,787834.3139999999,884158.21637,696803.0345999999,1035741.7946399999,1806526.386,512709.3933599999,652070.0002799999,801435.084,801435.084,801435.084,801435.084,2368755.1707599997,2368755.1707599997 +26262000.0,140666.69999999998,130300.092,380476.26864,136489.76583000002,136489.76583000002,136489.76583000002,69306.412,243497.63199999995,948843.4291200002,226991.54940000002,345891.8848,198464.34,198464.34,198464.34,139996.514,140666.69999999998,140666.69999999998,277622.59875999996,105527.72339999999,156858.49255999998,273590.394,77647.55944,98753.10412,163723.353,163723.353,163723.353,163723.353,422937.8779999999,422937.8779999999 +26265600.0,142781.439,132071.532,385648.87344,113546.67522,113546.67522,113546.67522,48662.4495,266194.71024,948809.32032,246792.29379000003,376064.44768000004,196012.068,196012.068,196012.068,136510.7905,142781.439,142781.439,278341.95349999995,99823.32675,148379.3647,258801.2175,73450.2503,93414.91565000001,167263.65000000002,167263.65000000002,167263.65000000002,167263.65000000002,429296.19326,429296.19326 +26269200.0,157110.15600000002,154071.777,449889.58884000004,106495.36766,106495.36766,106495.36766,56252.161,319636.62616,918769.7056,266404.14654,405949.17568,190037.913,190037.913,190037.913,130949.7665,157110.15600000002,157110.15600000002,301264.98011999996,109194.6177,162309.03668,283097.157,80345.66932,102184.59286,169612.908,169612.908,169612.908,169612.908,472377.86904,472377.86904 +26272800.0,179384.115,160349.289,468219.92387999996,104798.04742,104798.04742,104798.04742,62975.689,376358.25103999994,902252.6688,303814.29812999995,462955.12096,234232.41299999997,234232.41299999997,234232.41299999997,152370.008,179384.115,179384.115,301902.49752,126172.69154999999,187545.58101999998,327114.3855,92838.17798,118072.71629,239763.67200000002,239763.67200000002,239763.67200000002,239763.67200000002,539348.2390999999,539348.2390999999 +26276400.0,231912.96600000001,175312.27500000002,511911.843,114134.92046000001,114134.92046000001,114134.92046000001,78168.52049999998,456892.44087999995,901307.55584,346654.69797,528235.7302400001,337135.26,337135.26,337135.26,233464.0245,231912.96600000001,231912.96600000001,325276.57707999996,145839.03795,216778.02678000001,378101.20950000006,107308.72422,136476.53181000001,292640.64,292640.64,292640.64,292640.64,697284.9844399999,697284.9844399999 +26280000.0,273998.055,213585.261,623668.9621199999,123931.47558000001,123931.47558000001,123931.47558000001,80513.531,550459.40248,930089.70368,396302.88620999997,603890.11232,386742.681,386742.681,386742.681,253798.335,273998.055,273998.055,349942.43023999996,166491.53100000002,247476.3004,431644.71,122504.87960000001,155803.1858,355701.192,355701.192,355701.192,355701.192,823820.8187,823820.8187 +26283600.0,339661.698,248878.07399999996,726723.9760799999,138341.61176,138341.61176,138341.61176,88457.82400000001,617530.75712,1016530.9446400001,473813.58633,722001.6553600001,416143.158,416143.158,416143.158,266142.07550000004,339661.698,339661.698,367215.78959,186407.6409,277079.99955999997,483279.069,137159.20244,174440.73062000002,427441.989,427441.989,427441.989,427441.989,1021249.5053199999,1021249.5053199999 +26287200.0,523286.46900000004,288162.498,841434.49416,251201.96288000004,251201.96288000004,251201.96288000004,166292.021,1094201.9348,1277068.65792,732587.75289,1116324.19488,438586.77,438586.77,438586.77,385120.666,523286.46900000004,523286.46900000004,561286.85574,275437.75814999995,409416.1244599999,714097.8914999999,202667.78253999996,257755.33416999996,540442.272,540442.272,540442.272,540442.272,1573347.98346,1573347.98346 +26290800.0,1239468.132,675527.7420000001,1972541.00664,1622634.9992600002,1622634.9992600002,1622634.9992600002,1459822.749,3397953.8811199996,4251007.031040001,2918296.91097,4446928.62624,1214759.0129999998,1214759.0129999998,1214759.0129999998,1850478.567,1239468.132,1239468.132,2599134.6014399994,1611877.63995,2395926.7635799996,4178942.0294999997,1186023.54742,1508399.07541,1531786.743,1531786.743,1531786.743,1531786.743,3726667.5168799995,3726667.5168799995 +26294400.0,1077296.784,1207467.633,3525805.48836,1773888.5802,1773888.5802,1773888.5802,1905998.1815000004,4192311.8724800004,3205156.1728000003,3130274.43918,4769942.00256,1282592.0729999999,1282592.0729999999,1282592.0729999999,1769968.8685,1077296.784,1077296.784,2171054.17815,2128142.4759,3163313.01356,5517406.419000001,1565892.4884400002,1991520.9836200003,1528368.771,1528368.771,1528368.771,1528368.771,3239072.3305599997,3239072.3305599997 +26298000.0,1843206.4320000003,1983308.892,5791261.96464,1109677.42919,1109677.42919,1109677.42919,1857019.6225,3942091.5420000004,6455952.727039999,3123211.39977,4759179.27584,1671604.935,1671604.935,1671604.935,1300241.6175,1843206.4320000003,1843206.4320000003,1387690.22366,1603261.0300499997,2383118.8644199995,4156602.6704999995,1179683.4245799999,1500335.63059,2045554.131,2045554.131,2045554.131,2045554.131,5541907.338880001,5541907.338880001 +26301600.0,1360146.0750000002,912837.8879999999,2665486.6329599996,568650.54246,568650.54246,568650.54246,769521.802,1974101.3612000002,6697420.38976,1166244.1686,1777133.9712000003,1365535.53,1365535.53,1365535.53,1347355.6774999998,1360146.0750000002,1360146.0750000002,853243.7018299999,2110447.8882000004,3137011.42888,5471531.562000001,1552872.7671200002,1974962.3447600002,872647.74,872647.74,872647.74,872647.74,4089505.8655,4089505.8655 +26305200.0,691779.645,453867.08999999997,1325291.9028,302907.85745,302907.85745,302907.85745,466714.983,1278918.20312,3437623.8995200004,812918.3567400001,1238732.73408,548642.46,548642.46,548642.46,505133.811,691779.645,691779.645,644560.7792,929524.4909999999,1381663.5643999998,2409878.31,683946.4156,869851.3138,544387.128,544387.128,544387.128,544387.128,2079950.7992999998,2079950.7992999998 +26308800.0,733051.0619999999,1117456.419,3262972.7434799997,558090.83385,558090.83385,558090.83385,873171.1205000001,1606079.5992,2630665.8758400003,1232018.82846,1877362.02432,663771.186,663771.186,663771.186,1019736.7074999999,733051.0619999999,733051.0619999999,744522.6128599999,786658.7078999999,1169305.0423599998,2039485.5389999999,578825.41964,736157.16122,739416.1769999999,739416.1769999999,739416.1769999999,739416.1769999999,2204040.1930799996,2204040.1930799996 +26312400.0,552973.284,568027.158,1658639.30136,394416.46761,394416.46761,394416.46761,756634.403,1130575.16592,1728725.8003200002,802698.75294,1223160.0044800001,499556.64600000007,499556.64600000007,499556.64600000007,620183.34,552973.284,552973.284,550166.7850899999,555620.75145,825885.66018,1440498.2445,408827.12082,519951.27111000003,509670.882,509670.882,509670.882,509670.882,1662606.3405600002,1662606.3405600002 +26316000.0,427730.13,339436.974,991155.96408,143384.34583000003,143384.34583000003,143384.34583000003,340625.495,896762.96952,1347781.4118400002,600592.47927,915188.5398400001,395576.79300000006,395576.79300000006,395576.79300000006,311183.0435,427730.13,427730.13,442866.24785,404407.74825,601119.6653,1048464.5325,297564.2197,378445.76935,396859.53599999996,396859.53599999996,396859.53599999996,396859.53599999996,1286041.9241999998,1286041.9241999998 +26319600.0,582033.321,662756.04,1935247.6368,950006.26611,950006.26611,950006.26611,911143.4955,1350248.8975199999,1298684.128,1060089.10035,1615373.8672,462842.2799999999,462842.2799999999,462842.2799999999,999606.1109999999,582033.321,582033.321,834416.87602,776551.8761999999,1154282.0480799999,2013282.642,571388.78792,726699.16316,517566.024,517566.024,517566.024,517566.024,1749980.1851399997,1749980.1851399997 +26323200.0,776714.817,1181323.2989999999,3449464.0330799995,1160854.53715,1160854.53715,1160854.53715,995782.4485,2061499.07528,2686573.06048,1417724.59563,2160342.24096,874419.1440000001,874419.1440000001,874419.1440000001,1441210.0955,776714.817,776714.817,1263787.62991,1178307.1660499999,1751459.0468199996,3054870.4305,867001.3221799999,1102662.7553899998,954119.676,954119.676,954119.676,954119.676,2335322.54978,2335322.54978 +26326800.0,744787.902,1024680.3629999999,2992066.65996,913419.29822,913419.29822,913419.29822,879448.8605,2041342.52552,2767883.968,1278877.4405399999,1948765.6236799997,742636.8119999999,742636.8119999999,742636.8119999999,1136226.9205,744787.902,744787.902,926335.5527399998,995928.8377499998,1480368.2970999999,2582037.7275,732806.8979,931992.66545,905087.757,905087.757,905087.757,905087.757,2239328.95868,2239328.95868 +26330400.0,2087583.9090000002,1679528.367,4904222.8316399995,3209701.62953,3209701.62953,3209701.62953,2742352.102,3197393.3424,6150845.1263999995,3488828.6052900003,5316310.25568,2171973.159,2171973.159,2171973.159,2787175.5870000003,2087583.9090000002,2087583.9090000002,3057284.8215,2634306.5268,3915685.25712,6829683.588000001,1938329.2468800002,2465190.5522400006,2276855.7539999997,2276855.7539999997,2276855.7539999997,2276855.7539999997,6276668.95306,6276668.95306 +26334000.0,1427834.946,765327.861,2234757.3541200003,1592428.8349200003,1592428.8349200003,1592428.8349200003,1473135.167,2213858.04688,3576856.48896,1948083.14169,2968507.6444800003,1315390.989,1315390.989,1315390.989,1540290.871,1427834.946,1427834.946,900371.1390699999,1511430.00975,2246619.4219,3918522.2475000005,1112113.9331,1414399.9350500002,1460820.723,1460820.723,1460820.723,1460820.723,4293023.73764,4293023.73764 +26337600.0,1009336.8509999999,718711.254,2098636.86168,1002042.0667400002,1002042.0667400002,1002042.0667400002,973030.9435,1616754.96736,2932080.8371200007,1384498.91454,2109712.63168,848592.7079999999,848592.7079999999,848592.7079999999,1140788.0855,1009336.8509999999,1009336.8509999999,882754.9950699998,1119785.4882,1664471.2688799999,2903147.562,823940.92712,1047898.0247600001,983049.537,983049.537,983049.537,983049.537,3034739.4653399996,3034739.4653399996 +26341200.0,854338.854,703047.921,2052899.9293199999,951795.90209,951795.90209,951795.90209,921605.3525,1532632.1033599996,2846500.5196800004,1322797.23429,2015691.0236800003,810500.367,810500.367,810500.367,1081337.1415,854338.854,854338.854,861995.9153,1078439.9453999999,1603014.4373599999,2795955.414,793518.77464,1009206.7637199999,938271.408,938271.408,938271.408,938271.408,2568712.15436,2568712.15436 +26344800.0,606276.366,492851.94000000006,1439127.6648000001,617594.58794,617594.58794,617594.58794,516742.2645000001,770958.44288,1715986.4409600003,721051.51041,1098745.15872,416937.039,416937.039,416937.039,542590.363,606276.366,606276.366,639481.6164099998,494694.27270000003,735323.33868,1282540.7070000002,363997.26732000004,462936.1218600001,586591.197,586591.197,586591.197,586591.197,1822870.94044,1822870.94044 +26348400.0,99066.56400000001,85640.781,250071.08052,100261.17772,100261.17772,100261.17772,56932.337,137812.03384,562380.8896,131260.40844000003,200015.86048000003,118104.97200000001,118104.97200000001,118104.97200000001,92201.564,99066.56400000001,99066.56400000001,164702.27878,68200.4529,101374.50036,176815.98900000003,50182.06164000001,63822.15222000001,108044.076,108044.076,108044.076,108044.076,297860.13576,297860.13576 +26352000.0,93182.709,83123.83200000001,242721.58944,75283.2784,75283.2784,75283.2784,35576.0335,143829.99615999998,543912.4486400001,126323.07134999998,192492.29919999998,113166.012,113166.012,113166.012,83268.5595,93182.709,93182.709,167653.86312999998,59584.1832,88567.10687999999,154477.512,43842.18912,55759.025760000004,101694.26400000001,101694.26400000001,101694.26400000001,101694.26400000001,280169.34506,280169.34506 +26355600.0,91873.875,83193.339,242924.54988,68588.27492,68588.27492,68588.27492,30315.509000000002,158160.88896,530481.53472,131649.66297,200609.01024,109978.887,109978.887,109978.887,82351.66100000001,91873.875,91873.875,168994.24177999998,56675.73645,84243.93418,146937.0945,41702.14682,53037.29411,101184.79800000001,101184.79800000001,101184.79800000001,101184.79800000001,276234.1175,276234.1175 +26359200.0,99203.12700000001,90920.031,265486.49052,62669.07856000001,62669.07856000001,62669.07856000001,27556.0635,157909.50616,518191.3561600001,147284.07351000002,224432.87392,106773.552,106773.552,106773.552,79071.7025,99203.12700000001,99203.12700000001,171930.86221999998,58645.31625,87171.55649999999,152043.4125,43151.368500000004,54880.43175,101092.023,101092.023,101092.023,101092.023,298270.73518,298270.73518 +26362800.0,102905.637,95678.598,279381.50616,62693.824160000004,62693.824160000004,62693.824160000004,33467.633499999996,155630.22423999998,511556.23168,159151.71678000002,242516.90176000004,105158.55900000001,105158.55900000001,105158.55900000001,77957.4985,102905.637,102905.637,183686.86778,64731.33225000001,96217.9309,167821.97250000003,47629.47410000001,60575.74055000001,103017.18,103017.18,103017.18,103017.18,309402.94857999997,309402.94857999997 +26366400.0,105051.59399999998,102804.14100000002,300188.09172,63747.92974,63747.92974,63747.92974,36421.101500000004,154405.60544,504828.8556800001,172517.14788,262883.27296000003,104230.20000000001,104230.20000000001,104230.20000000001,80105.58850000001,105051.59399999998,105051.59399999998,181039.22251999998,67183.25489999999,99862.51715999999,174178.80899999998,49433.60483999999,62870.25582,111178.73700000002,111178.73700000002,111178.73700000002,111178.73700000002,315855.12596,315855.12596 +26370000.0,115543.33200000001,103414.86600000001,301971.40872,75694.44608000001,75694.44608000001,75694.44608000001,53357.465,158267.90696,495041.31648000004,182043.06708,277398.95936000004,105960.615,105960.615,105960.615,91878.941,115543.33200000001,115543.33200000001,178378.24393999996,75486.30164999998,112204.32985999997,195705.22649999996,55543.007139999994,70640.26746999999,133800.228,133800.228,133800.228,133800.228,347400.28488,347400.28488 +26373600.0,151555.86000000002,116724.549,340835.68308,171103.01978000003,171103.01978000003,171103.01978000003,136422.657,220488.47,539807.51168,241122.90740999999,367425.38272,161624.916,161624.916,161624.916,142556.127,151555.86000000002,151555.86000000002,199423.21567999996,113175.02654999998,168225.59501999998,293416.73549999995,83274.46397999999,105909.46929,175461.552,175461.552,175461.552,175461.552,455677.9524,455677.9524 +26377200.0,880551.957,826818.0900000001,2414308.8228,890546.16277,890546.16277,890546.16277,985400.2374999999,1279546.3068,1100910.1209600002,1051113.74319,1601697.1324800001,464107.34699999995,464107.34699999995,464107.34699999995,1421317.3309999998,880551.957,880551.957,1678269.96675,481396.72544999997,715557.6017799999,1248065.5844999999,354212.89921999996,450492.24431,1122151.1460000002,1122151.1460000002,1122151.1460000002,1122151.1460000002,2647526.21738,2647526.21738 +26380800.0,1630224.426,1558838.364,4551808.02288,2118290.47023,2118290.47023,2118290.47023,1491765.1245000002,2373248.12152,2688916.9280000003,2383762.87821,3632400.5763200005,998606.3700000001,998606.3700000001,998606.3700000001,1279894.9974999998,1630224.426,1630224.426,1803966.0892499997,1262731.3721999999,1876948.8544799997,3273748.002,929120.8615199999,1181667.1359599999,1824919.6439999999,1824919.6439999999,1824919.6439999999,1824919.6439999999,4901541.440839999,4901541.440839999 +26384400.0,1682341.566,1381609.281,4034299.1005200003,1616387.9481200003,1616387.9481200003,1616387.9481200003,1474102.9135,2636903.30192,6248406.478080001,2059974.01848,3139008.02816,1765290.099,1765290.099,1765290.099,1563151.401,1682341.566,1682341.566,817662.60706,2370800.71665,3524005.01586,6146520.3765,1744441.02114,2218601.16447,1234383.849,1234383.849,1234383.849,1234383.849,5058240.30844,5058240.30844 +26388000.0,1214726.613,780901.629,2280232.75668,1032910.8230099999,1032910.8230099999,1032910.8230099999,1879159.5235000001,2443926.63976,4222937.3382399995,2438269.6793700005,3715458.5590400007,1588711.491,1588711.491,1588711.491,1855982.9995000004,1214726.613,1214726.613,1376031.0433999998,2164764.74265,3217749.0742599997,5612353.036499999,1592839.24274,2025792.1912699998,1415727.273,1415727.273,1415727.273,1415727.273,3652278.0164199998,3652278.0164199998 +26391600.0,773857.362,520411.524,1519601.65008,820481.40581,820481.40581,820481.40581,1126053.6875,2139868.6457599998,3345421.77472,1452130.4775600003,2212770.2515200004,634165.539,634165.539,634165.539,1267194.978,773857.362,773857.362,428257.94596000004,1129142.8755,1678380.2742,2927407.455,830826.1158,1056654.6909,806939.832,806939.832,806939.832,806939.832,2326731.13508,2326731.13508 +26395200.0,706467.6359999999,569944.203,1664237.07276,575998.2070700001,575998.2070700001,575998.2070700001,819464.7125,1624226.9436799998,1939261.6448000001,1250538.85971,1905583.02432,640865.841,640865.841,640865.841,847126.7175,706467.6359999999,706467.6359999999,561619.67407,839717.6728499999,1248172.9359399998,2177045.8185,617866.3370599999,785809.87163,729005.778,729005.778,729005.778,729005.778,2124112.69224,2124112.69224 +26398800.0,453613.782,336608.331,982896.32652,291846.09806000005,291846.09806000005,291846.09806000005,435252.2825,835717.8992,1213863.4848000002,682824.3256800001,1040494.2105600002,392624.53799999994,392624.53799999994,392624.53799999994,497390.3550000001,453613.782,453613.782,346334.15582999995,465561.8775,692020.3709999999,1207012.2750000001,342561.579,435673.9545,449228.673,449228.673,449228.673,449228.673,1363865.43788,1363865.43788 +26402400.0,278198.652,174218.331,508717.52652,98786.45799000001,98786.45799000001,98786.45799000001,227697.09900000002,512879.37039999996,551390.77312,380495.46507,579802.61344,222684.978,222684.978,222684.978,220145.96099999998,278198.652,278198.652,153673.13156,207771.15600000002,308835.1504,538665.9600000001,152878.5296,194432.76080000002,231007.974,231007.974,231007.974,231007.974,836450.6136800001,836450.6136800001 +26406000.0,345770.32200000004,240431.625,702060.345,125023.14319000002,125023.14319000002,125023.14319000002,301843.58749999997,639503.64616,837595.8752000001,487083.12744,742221.9084800001,292089.14099999995,292089.14099999995,292089.14099999995,327674.0145,345770.32200000004,345770.32200000004,233097.5062,314126.60625,466923.9925,814402.3125,231135.1325,293960.45375,314735.358,314735.358,314735.358,314735.358,1039616.10148,1039616.10148 +26409600.0,717173.895,601144.8960000001,1755343.09632,606190.3706100001,606190.3706100001,606190.3706100001,746904.942,1305557.49744,2272671.7702400004,1123931.4366000001,1712657.4272000003,663774.7860000001,663774.7860000001,663774.7860000001,875289.4919999999,717173.895,717173.895,663266.0178299999,871757.6440499999,1295797.7820199998,2260112.4104999998,641441.4269799999,815792.9557899999,754338.1860000001,754338.1860000001,754338.1860000001,754338.1860000001,2156302.8443,2156302.8443 +26413200.0,769784.2710000001,644898.375,1883103.255,828102.8349000001,828102.8349000001,828102.8349000001,832898.9130000001,1404383.8111999999,2463092.20288,1221116.56212,1860749.04704,721432.1639999999,721432.1639999999,721432.1639999999,948038.0525,769784.2710000001,769784.2710000001,800237.17956,942436.9764,1400856.93776,2443355.1240000003,693447.45424,881934.84952,828990.882,828990.882,828990.882,828990.882,2314484.70814,2314484.70814 +26416800.0,780359.916,646214.379,1886945.98668,894446.08968,894446.08968,894446.08968,883563.7265,1434126.96624,2486410.9913600003,1247560.98117,1901045.30464,729934.95,729934.95,729934.95,962853.0729999999,780359.916,780359.916,817621.91446,963985.4590500001,1432887.02802,2499221.5605,709302.88098,902099.9727900001,843084.534,843084.534,843084.534,843084.534,2346282.1474399995,2346282.1474399995 +26420400.0,785981.583,661849.335,1932600.0582,909199.11522,909199.11522,909199.11522,889309.477,1443541.78792,2541212.3872,1254609.9894299998,1911786.65056,735361.872,735361.872,735361.872,969270.7535,785981.583,785981.583,820856.7741399999,974731.19445,1448859.70138,2527080.8745,717209.61962,912155.85851,851450.58,851450.58,851450.58,851450.58,2363184.62622,2363184.62622 +26424000.0,791451.078,673354.851,1966196.16492,903571.86403,903571.86403,903571.86403,884632.5495,1463938.5544,2615790.7072,1261171.84389,1921785.66688,743780.226,743780.226,743780.226,977766.0445000001,791451.078,791451.078,827222.3377599999,983369.41515,1461699.7232599999,2549476.2615,723565.64374,920239.52677,858718.6769999999,858718.6769999999,858718.6769999999,858718.6769999999,2379629.57452,2379629.57452 +26427600.0,744432.0449999999,606441.99,1770810.6108,723588.3199600001,723588.3199600001,723588.3199600001,667767.2085,1199784.44528,1851990.9670400003,1018743.08319,1552370.4124800002,568018.656,568018.656,568018.656,757320.879,744432.0449999999,744432.0449999999,775689.03672,769864.0504500001,1144341.1317800002,1995943.8345000003,566467.8692200001,720440.6793100002,737357.9069999999,737357.9069999999,737357.9069999999,737357.9069999999,2238259.0152999996,2238259.0152999996 +26431200.0,331344.567,228979.61700000003,668620.48164,364877.26231,364877.26231,364877.26231,284186.76649999997,577250.3440800001,733563.61088,455914.59647999995,694727.00416,235382.706,235382.706,235382.706,338065.4935,331344.567,331344.567,529039.07173,170625.94109999997,253621.76923999994,442363.5509999999,125546.98875999998,159672.17698,395871.762,395871.762,395871.762,395871.762,996242.66478,996242.66478 +26434800.0,111359.79000000001,82450.524,240755.53008,97144.60778000002,97144.60778000002,97144.60778000002,55184.5245,204252.46991999997,536443.0784,174945.44487,266583.53504,117997.77900000001,117997.77900000001,117997.77900000001,89278.78749999999,111359.79000000001,111359.79000000001,170493.31676000002,66406.20975,98707.5019,172164.2475,48861.8531,62143.09505,110326.16100000001,110326.16100000001,110326.16100000001,110326.16100000001,334821.7686,334821.7686 +26438400.0,107951.079,82567.8,241097.97600000002,74623.73490000001,74623.73490000001,74623.73490000001,34652.576,200875.37312,542775.3798400001,166634.13543000002,253918.68256000004,117125.319,117125.319,117125.319,85335.075,107951.079,107951.079,170922.15712,60442.3944,89842.76896,156702.50400000002,44473.66304,56562.14192,107048.46300000002,107048.46300000002,107048.46300000002,107048.46300000002,324572.91086,324572.91086 +26442000.0,109502.69399999999,89866.473,262410.10116,69687.77728000001,69687.77728000001,69687.77728000001,29931.296500000004,221165.13911999998,542995.4169600001,167551.41522,255316.44223999997,116686.23300000001,116686.23300000001,116686.23300000001,84201.95700000001,109502.69399999999,109502.69399999999,170687.65037999998,61902.99854999999,92013.83982,160489.2555,45548.379179999996,57928.97889,106256.10299999997,106256.10299999997,106256.10299999997,106256.10299999997,329238.0999599999,329238.0999599999 +26445600.0,120189.97200000001,100371.47400000002,293084.70408,67323.04623,67323.04623,67323.04623,35212.59,231554.86704,569222.3750400001,180718.0242,275379.84640000004,121781.619,121781.619,121781.619,86032.5585,120189.97200000001,120189.97200000001,183421.33653999996,71065.12724999999,105632.60889999999,184242.9225,52289.8961,66502.92155,109911.27600000001,109911.27600000001,109911.27600000001,109911.27600000001,361371.18247999996,361371.18247999996 +26449200.0,121813.27500000001,103110.82199999999,301083.60024,67796.79423,67796.79423,67796.79423,36284.157,231767.09264,572062.90368,189170.95407,288260.50144,128834.95799999998,128834.95799999998,128834.95799999998,85946.8855,121813.27500000001,121813.27500000001,199993.25359,72383.07014999999,107591.62525999997,187659.81149999998,53259.64173999999,67736.25576999999,115366.731,115366.731,115366.731,115366.731,366251.9135,366251.9135 +26452800.0,128359.16100000001,109169.388,318774.61296,76883.93207000001,76883.93207000001,76883.93207000001,48008.373,238501.43608,591687.00736,215825.46362999998,328876.89696,148901.676,148901.676,148901.676,93196.978,128359.16100000001,128359.16100000001,203520.15722999998,80388.50670000001,119491.06428,208414.64700000003,59150.061720000005,75227.76306000001,138766.083,138766.083,138766.083,138766.083,385933.21074,385933.21074 +26456400.0,143214.516,115925.20199999999,338501.58984,91211.64668,91211.64668,91211.64668,60366.82749999999,249001.09616,596886.5158400001,224926.12548,342744.57216,193386.46800000002,193386.46800000002,193386.46800000002,110336.07199999999,143214.516,143214.516,203684.87567999997,93202.68645000001,138538.31418000002,241636.5945,68578.76682,87219.30411000001,166256.87699999998,166256.87699999998,166256.87699999998,166256.87699999998,430598.31144,430598.31144 +26460000.0,189013.461,142905.837,417285.04404,195747.21166,195747.21166,195747.21166,141255.02300000002,325629.93784,638397.46944,282566.00756999996,430576.77343999996,235625.16599999997,235625.16599999997,235625.16599999997,191565.49649999998,189013.461,189013.461,230241.25605,129923.5464,193120.92576,336838.824,95598.06624,121582.77552000001,213126.77999999997,213126.77999999997,213126.77999999997,213126.77999999997,568300.47274,568300.47274 +26463600.0,928035.402,893353.4369999999,2608592.0360399997,926538.32458,926538.32458,926538.32458,1007452.0190000001,1431288.61528,1225717.5712,1126849.40865,1717103.8608000001,542617.11,542617.11,542617.11,1486037.4024999999,928035.402,928035.402,1672135.0137699998,503813.8237499999,748878.8194999999,1306183.9874999998,370707.4555,471470.22024999995,1186698.963,1186698.963,1186698.963,1186698.963,2790293.10868,2790293.10868 +26467200.0,1688712.3539999998,1634748.0119999999,4773464.19504,2181256.01573,2181256.01573,2181256.01573,1527192.492,2523783.59984,2844590.7424000003,2521144.7175600003,3841744.3315200005,1069757.2410000002,1069757.2410000002,1069757.2410000002,1371795.5825,1688712.3539999998,1688712.3539999998,1829487.0257299999,1330541.2512,1977742.79808,3449551.3920000005,979015.53792,1245123.7881600002,1895324.0609999998,1895324.0609999998,1895324.0609999998,1895324.0609999998,5077395.144359998,5077395.144359998 +26470800.0,1762102.332,1505662.641,4396534.91172,1727059.08694,1727059.08694,1727059.08694,1608172.3315,2855225.3947199997,6883947.566720001,2165309.58546,3299519.36832,1866723.006,1866723.006,1866723.006,1672026.0655,1762102.332,1762102.332,916257.82352,2540128.38975,3775697.0139,6585518.0475,1869032.7411000002,2377058.41905,1308471.585,1308471.585,1308471.585,1308471.585,5298054.34488,5298054.34488 +26474400.0,1184867.166,802511.7959999999,2343334.44432,1053970.29727,1053970.29727,1053970.29727,1862699.846,2384048.3956,4217928.403840001,2377074.3956400002,3622208.60288,1565721.7410000002,1565721.7410000002,1565721.7410000002,1798765.262,1184867.166,1184867.166,1315930.84376,2151984.0766499997,3198751.6398599995,5579217.9765,1583435.19714,2013832.01247,1364119.467,1364119.467,1364119.467,1364119.467,3562500.61244,3562500.61244 +26478000.0,866996.4330000002,604594.563,1765416.1239599998,999625.66297,999625.66297,999625.66297,1300548.2945,2360733.5096,4088588.1606400004,1654464.2200799999,2521088.33536,738367.188,738367.188,738367.188,1447054.553,866996.4330000002,866996.4330000002,538375.01718,1301206.41675,1934138.9207000001,3373498.1175,957430.8943,1217672.1776500002,923254.9470000002,923254.9470000002,923254.9470000002,923254.9470000002,2606769.27522,2606769.27522 +26481600.0,689979.318,563280.39,1644778.7388,603754.90703,603754.90703,603754.90703,855167.278,1679995.0600800002,1905906.43712,1264894.68714,1927458.5708800002,643449.507,643449.507,643449.507,862534.337,689979.318,689979.318,536978.47697,848254.75695,1260862.62638,2199178.9995,624147.94462,793798.89601,710133.0179999999,710133.0179999999,710133.0179999999,710133.0179999999,2074537.8161199999,2074537.8161199999 +26485200.0,446603.025,331656.864,968438.04288,285686.00247,285686.00247,285686.00247,430850.5915,847856.75384,1223765.5904,689045.85834,1049974.64128,395456.71800000005,395456.71800000005,395456.71800000005,503162.10699999996,446603.025,446603.025,334646.2262,460588.10894999997,684627.26318,1194117.3195,338901.86782,431019.48961,448097.46900000004,448097.46900000004,448097.46900000004,448097.46900000004,1342786.4285000002,1342786.4285000002 +26488800.0,364808.502,259623.498,758100.61416,162163.11012000003,162163.11012000003,162163.11012000003,334372.32149999996,696987.2684,938431.16032,535004.67762,815245.22304,321593.53500000003,321593.53500000003,321593.53500000003,363016.696,364808.502,364808.502,248968.40903999997,347043.2445,515851.9338,899741.745,255355.2762,324763.9251,338840.637,338840.637,338840.637,338840.637,1096857.56268,1096857.56268 +26492400.0,373779.171,269371.014,786563.36088,154328.23802000002,154328.23802000002,154328.23802000002,336142.7755,712878.73768,981655.30048,541901.65197,825754.89824,334228.47000000003,334228.47000000003,334228.47000000003,378367.2865,373779.171,373779.171,258191.47821999996,359098.28010000003,533770.7768400001,930995.5410000001,264225.40116,336045.05718000006,348159.66000000003,348159.66000000003,348159.66000000003,348159.66000000003,1123829.3741399997,1123829.3741399997 +26496000.0,745174.398,625103.7449999999,1825302.9353999998,710952.2601500001,710952.2601500001,710952.2601500001,785189.5974999999,1374658.95872,2422952.3142399997,1178600.84454,1795963.1916800002,704962.308,704962.308,704962.308,919944.3644999999,745174.398,745174.398,694500.3107899999,908748.62685,1350781.90954,2356014.9585,668659.48346,850409.20883,793624.404,793624.404,793624.404,793624.404,2240491.02332,2240491.02332 +26499600.0,786336.648,673889.799,1967758.21308,847450.0927200001,847450.0927200001,847450.0927200001,851891.0855,1453403.61488,2579105.3600000003,1251774.9919500002,1907466.6544,748498.0560000001,748498.0560000001,748498.0560000001,977322.5490000001,786336.648,786336.648,823565.15046,970254.3771,1442205.27164,2515474.311,713915.56636,907966.4417800001,849998.5079999999,849998.5079999999,849998.5079999999,849998.5079999999,2364252.18832,2364252.18832 +26503200.0,805875.699,690149.5650000001,2015236.7298,927321.1158200001,927321.1158200001,927321.1158200001,912582.6325,1548496.3290400002,2658669.26592,1292062.44699,1968857.0620800003,767688.153,767688.153,767688.153,1005221.1714999999,805875.699,805875.699,836171.9488199998,1006970.0611499998,1496780.1896599997,2610663.1215,740931.0573399999,942325.0695699999,876750.5460000001,876750.5460000001,876750.5460000001,876750.5460000001,2422999.60166,2422999.60166 +26506800.0,811982.088,695754.978,2031604.5357599999,938257.3116400002,938257.3116400002,938257.3116400002,920352.1529999999,1569308.38376,2733124.2176000006,1313421.6102,2001404.3584,777112.6229999999,777112.6229999999,777112.6229999999,1015322.1609999998,811982.088,811982.088,841906.3394299999,1016697.1121999999,1511238.6704799996,2635881.402,748088.2455199999,951427.6679599999,884295.6510000001,884295.6510000001,884295.6510000001,884295.6510000001,2441359.47792,2441359.47792 +26510400.0,811629.846,697889.319,2037836.8114800001,927295.28353,927295.28353,927295.28353,909508.4355,1568221.43712,2742667.6096000005,1314353.9644200003,2002825.0886400004,788634.8189999999,788634.8189999999,788634.8189999999,1015077.7699999999,811629.846,811629.846,843230.3592699999,1016533.45575,1510995.4083,2635457.1075,747967.8267,951274.5178500001,884680.017,884680.017,884680.017,884680.017,2440300.40364,2440300.40364 +26514000.0,771574.7309999999,631073.4809999999,1842734.5645199998,746211.04866,746211.04866,746211.04866,691813.3845,1290458.08984,1966288.47872,1071145.50165,1632221.7168,611673.216,611673.216,611673.216,796400.4685000001,771574.7309999999,771574.7309999999,807925.9164599999,803316.8155499999,1194065.98262,2082673.2255000002,591082.49638,751745.8594900001,767668.647,767668.647,767668.647,767668.647,2319868.0245399997,2319868.0245399997 +26517600.0,341598.924,238841.712,697417.79904,373675.12897,373675.12897,373675.12897,290531.311,618787.6536,781616.3712000002,480016.62009,731453.8972799999,264271.098,264271.098,264271.098,349912.052,341598.924,341598.924,540614.59647,177484.19895000002,263816.01918,460144.21950000006,130593.31182000002,166090.15161000003,407538.726,407538.726,407538.726,407538.726,1027074.0981599999,1027074.0981599999 +26521200.0,116715.20700000001,86579.397,252811.83923999997,106833.99166000001,106833.99166000001,106833.99166000001,56113.652,231014.99408,575426.3904,188993.92008,287990.73536,141103.794,141103.794,141103.794,93853.02849999999,116715.20700000001,116715.20700000001,180153.23495,70402.446,104647.58639999999,182524.86,51802.2936,65882.7828,116051.15099999998,116051.15099999998,116051.15099999998,116051.15099999998,350923.72238,350923.72238 +26524800.0,113983.94099999999,87450.198,255354.57815999998,92864.47368000001,92864.47368000001,92864.47368000001,35736.44899999999,232530.74855999998,585945.54432,182178.44232,277605.24544,142556.09399999998,142556.09399999998,142556.09399999998,90838.09,113983.94099999999,113983.94099999999,181677.18244,64735.5645,96224.2218,167832.945,47632.5882,60579.7011,114097.959,114097.959,114097.959,114097.959,342711.71593999997,342711.71593999997 +26528400.0,116343.669,97197.192,283815.80064,91315.91601000002,91315.91601000002,91315.91601000002,33132.490999999995,249943.91743999996,584618.6195200001,182213.80275,277659.128,141910.5,141910.5,141910.5,89240.29100000001,116343.669,116343.669,181095.47546999998,67743.00135,100694.53534,175630.00350000002,49845.46766,63394.067930000005,115826.826,115826.826,115826.826,115826.826,349806.63145999995,349806.63145999995 +26532000.0,120116.21699999998,100160.72999999998,292469.3316,84110.92932,84110.92932,84110.92932,34772.0485,240340.2944,570630.0838400001,182579.61729,278216.55968,137092.21500000003,137092.21500000003,137092.21500000003,85676.1115,120116.21699999998,120116.21699999998,187538.68211000002,70714.2555,105111.0662,183333.255,52031.72380000001,66174.5749,113475.20700000001,113475.20700000001,113475.20700000001,113475.20700000001,361149.42577999993,361149.42577999993 +26535600.0,119490.168,101018.23499999999,294973.24619999994,82468.51745,82468.51745,82468.51745,36644.138999999996,233816.95015999998,562405.29344,188683.24965,287517.33280000003,133712.886,133712.886,133712.886,83801.90699999999,119490.168,119490.168,195564.19116,71293.27185,105971.72754,184834.40850000002,52457.76546,66716.41983000001,119208.49800000002,119208.49800000002,119208.49800000002,119208.49800000002,359267.10512,359267.10512 +26539200.0,124150.92,113818.43399999998,332349.82727999997,91115.86330000001,91115.86330000001,91115.86330000001,45754.352,235053.88551999995,573108.2867200001,208938.54051000002,318382.53792000003,159717.77999999997,159717.77999999997,159717.77999999997,89357.67050000001,124150.92,124150.92,195721.05007,77265.37349999999,114848.77739999999,200317.63499999998,56852.052599999995,72305.1273,137364.282,137364.282,137364.282,137364.282,373280.43279999995,373280.43279999995 +26542800.0,138745.923,123834.774,361597.54008,101166.23176000001,101166.23176000001,101166.23176000001,57582.1225,246785.34759999998,579505.61792,217020.75822,330698.29824,188538.549,188538.549,188538.549,109648.1505,138745.923,138745.923,196103.88759,89085.49694999999,132418.44238,230962.39949999997,65549.32862,83366.42800999999,161451.924,161451.924,161451.924,161451.924,417162.74182,417162.74182 +26546400.0,237727.77899999998,159495.813,465727.77396,205700.67749,205700.67749,205700.67749,137368.7035,677855.93648,624727.90272,395973.05034,603387.50528,228414.549,228414.549,228414.549,246202.16599999997,237727.77899999998,237727.77899999998,408210.99630999996,139255.54020000002,206992.18568,361032.88200000004,102464.57032000001,130315.67836,260823.669,260823.669,260823.669,260823.669,714768.1888599999,714768.1888599999 +26550000.0,925297.1070000001,407537.75100000005,1190010.23292,1356129.22588,1356129.22588,1356129.22588,1058637.9019999998,2844495.954,2588914.14784,2172828.27258,3310976.41536,767878.59,767878.59,767878.59,1010888.7215,925297.1070000001,925297.1070000001,2142034.36109,1082377.8576,1608867.82784,2806164.816,796416.30016,1012891.8716800001,1120680.378,1120680.378,1120680.378,1120680.378,2782059.96838,2782059.96838 +26553600.0,795971.5350000001,1018410.264,2973757.97088,1437157.26044,1437157.26044,1437157.26044,1548612.996,3402695.0792799997,2371661.55712,2452597.80192,3737291.88864,1023127.3470000001,1023127.3470000001,1023127.3470000001,1199811.417,795971.5350000001,795971.5350000001,1897948.7081099998,1687978.4359499998,2509044.4899799996,4376240.3895,1242018.70102,1579614.38821,1192262.742,1192262.742,1192262.742,1192262.742,2393221.0819,2393221.0819 +26557200.0,1612783.4249999998,1524536.745,4451647.2954,727541.20164,727541.20164,727541.20164,992785.3984999999,3043960.8736799997,5067155.24928,2372544.15027,3615305.3718400006,1382913.987,1382913.987,1382913.987,852336.9049999999,1612783.4249999998,1612783.4249999998,1308792.02935,1027567.0448999999,1527395.9531599998,2664062.709,756086.3688399999,961599.77782,1790058.5039999997,1790058.5039999997,1790058.5039999997,1790058.5039999997,4849102.1645,4849102.1645 +26560800.0,965506.6560000001,688760.082,2011179.43944,382619.05165000004,382619.05165000004,382619.05165000004,323179.535,1169463.21784,5265381.6576000005,549010.5763800001,836587.5449600001,940712.9759999999,940712.9759999999,940712.9759999999,940720.4695,965506.6560000001,965506.6560000001,804179.15253,1609857.4229999997,2392923.8732,4173704.4299999997,1184537.0668,1506508.5514,484921.767,484921.767,484921.767,484921.767,2902956.6790400003,2902956.6790400003 +26564400.0,474309.5580000001,284398.464,830443.5148799999,160871.18223,160871.18223,160871.18223,268947.266,797706.5422399999,1636922.07936,485161.14969,739293.18048,310349.838,310349.838,310349.838,261648.71249999997,474309.5580000001,474309.5580000001,412349.39524999994,334873.90575,497763.1882999999,868191.6074999999,246401.04669999998,313375.82785,328842.054,328842.054,328842.054,328842.054,1426090.73772,1426090.73772 +26568000.0,550684.692,974494.764,2845524.7108799997,339124.39022,339124.39022,339124.39022,667018.1245,1252636.83656,1892723.39136,919601.4550800001,1401297.45536,472069.96200000006,472069.96200000006,472069.96200000006,792055.0995000001,550684.692,550684.692,526681.3444099999,534928.3375499999,795128.04742,1386851.2455,393601.59158,500587.25909,526886.1510000001,526886.1510000001,526886.1510000001,526886.1510000001,1655725.30728,1655725.30728 +26571600.0,387347.013,328201.953,958349.70276,242479.4482,242479.4482,242479.4482,466705.078,798124.16648,1117660.47936,522565.40385,796290.1392000001,333909.699,333909.699,333909.699,264274.7835,387347.013,387347.013,374589.80337999994,343360.99665,510378.56785999995,890195.1765000001,252645.86914,321318.06847,331216.023,331216.023,331216.023,331216.023,1164623.35242,1164623.35242 +26575200.0,271021.749,204300.20999999996,596556.6131999999,81165.75522,81165.75522,81165.75522,182374.1115,588613.6584,776119.7625600001,348431.27823,530942.9001600001,238301.52900000004,238301.52900000004,238301.52900000004,171922.91550000003,271021.749,271021.749,290386.89095,217331.04735,323045.16174,563450.8635,159912.72126,203378.93073,234454.152,234454.152,234454.152,234454.152,814872.05866,814872.05866 +26578800.0,433375.158,314992.81799999997,919779.02856,737721.57811,737721.57811,737721.57811,677763.5865,907045.1713599999,752857.31072,801429.7428899999,1221226.27488,307637.85,307637.85,307637.85,769982.836,433375.158,433375.158,691329.6742299999,555948.5219999999,826372.8647999999,1441348.02,409068.2952,520257.9996,278742.74100000004,278742.74100000004,278742.74100000004,278742.74100000004,1303014.64172,1303014.64172 +26582400.0,605639.538,1032015.1230000001,3013484.1591600003,716004.09474,716004.09474,716004.09474,841085.9659999999,1743459.68912,2115338.4512000005,1055001.19284,1607620.86528,707877.375,707877.375,707877.375,1193753.2215,605639.538,605639.538,1131958.0647699998,924748.7714999999,1374564.8406,2397496.815,680432.4294,865382.1837,742826.0939999999,742826.0939999999,742826.0939999999,742826.0939999999,1820956.2109199998,1820956.2109199998 +26586000.0,606600.6059999999,701585.835,2048630.6381999997,769679.1692700001,769679.1692700001,769679.1692700001,742115.0345000001,1534468.3512,2260438.6790400003,1062432.63567,1618944.96864,640404.315,640404.315,640404.315,919174.4345,606600.6059999999,606600.6059999999,787355.50894,811673.703,1206487.8252,2104339.23,597231.5148,759566.2554,676647.48,676647.48,676647.48,676647.48,1823845.8220399998,1823845.8220399998 +26589600.0,1925443.764,1583981.6939999997,4625226.546479999,2917329.1013900004,2917329.1013900004,2917329.1013900004,2639898.2260000003,3040394.52,5435761.14112,3294086.12547,5019559.8102400005,2065761.477,2065761.477,2065761.477,2435049.8200000003,1925443.764,1925443.764,2190019.47424,2409019.29495,3580813.86558,6245605.5795,1772562.3454200001,2254366.2044100002,2124668.256,2124668.256,2124668.256,2124668.256,5789167.58376,5789167.58376 +26593200.0,1164053.766,674466.159,1969441.18428,1102275.82894,1102275.82894,1102275.82894,1110527.4880000001,1860794.6973599999,2859359.28704,1557097.6990800002,2372720.3033600003,967212.2399999999,967212.2399999999,967212.2399999999,1143456.7375,1164053.766,1164053.766,792969.18298,1121903.6017500001,1667619.6747,2908638.9675000003,825499.4403000001,1049880.1606500002,1051308.063,1051308.063,1051308.063,1051308.063,3499921.65644,3499921.65644 +26596800.0,827937.264,661992.8130000001,1933019.0139600001,919343.9117500001,919343.9117500001,919343.9117500001,874523.7725,1496816.96016,2723514.1094400003,1267074.3888599998,1930780.02112,785855.106,785855.106,785855.106,1038705.493,827937.264,827937.264,849544.5232299999,1022340.3011999999,1519626.8180799996,2650511.8919999995,752240.5179199999,956708.5781599999,886031.124,886031.124,886031.124,886031.124,2489331.37376,2489331.37376 +26600400.0,789009.6869999999,659558.592,1925911.08864,891153.6062,891153.6062,891153.6062,862940.3265,1462780.81528,2712945.3536,1244368.9694100001,1896181.2867200002,778367.223,778367.223,778367.223,1021079.6470000001,789009.6869999999,789009.6869999999,846245.89257,1013602.1953499999,1506638.32494,2627857.5435,745810.99806,948531.43713,875843.3489999999,875843.3489999999,875843.3489999999,875843.3489999999,2372289.1255799998,2372289.1255799998 +26604000.0,565751.838,464057.69999999995,1355048.484,581091.3277400001,581091.3277400001,581091.3277400001,489145.39449999994,740538.61288,1653071.8291200001,682928.4315,1040652.848,409657.77300000004,409657.77300000004,409657.77300000004,510275.101,565751.838,565751.838,566279.88586,468912.50324999995,697000.8072999999,1215699.0825,345026.9777,438809.47835,553363.875,553363.875,553363.875,553363.875,1701027.1929199998,1701027.1929199998 +26607600.0,94807.029,82996.137,242348.72004000001,99769.26531000002,99769.26531000002,99769.26531000002,55765.25149999999,133192.42448,573400.3059200001,121928.99333999999,185796.56128,122225.43600000002,122225.43600000002,122225.43600000002,92223.6735,94807.029,94807.029,163501.26026,67497.94395,100330.27717999999,174994.6695,49665.15382,63164.74261,108288.477,108288.477,108288.477,108288.477,285053.13385999994,285053.13385999994 +26611200.0,90826.02,84017.208,245330.24736,76003.60328,76003.60328,76003.60328,34834.555,145157.97712,566849.4579200001,124743.75312000001,190085.71904000003,119660.32500000001,119660.32500000001,119660.32500000001,84748.03749999999,90826.02,90826.02,169080.4947,60077.18564999999,89299.91545999999,155755.6665,44204.94154,56220.37867,103218.35999999999,103218.35999999999,103218.35999999999,103218.35999999999,273083.5668,273083.5668 +26614800.0,90902.361,85626.111,250028.24412,71381.97583,71381.97583,71381.97583,30287.719,166037.39624,574083.48288,130779.20037,199282.59104000003,120727.98599999999,120727.98599999999,120727.98599999999,86210.73300000001,90902.361,90902.361,176927.21605,59207.1363,88006.65692,153499.983,43564.75708,55406.18434,106066.29000000001,106066.29000000001,106066.29000000001,106066.29000000001,273313.09874,273313.09874 +26618400.0,100032.64199999999,97139.30700000002,283646.77644000005,67439.88372,67439.88372,67439.88372,27341.027,172044.87576,584349.69856,155827.88949,237452.02208,122263.06499999999,122263.06499999999,122263.06499999999,86189.642,100032.64199999999,100032.64199999999,188421.86064,63667.27169999999,94636.29027999999,165063.297,46846.53571999999,59579.99006,110169.58799999999,110169.58799999999,110169.58799999999,110169.58799999999,300764.81028,300764.81028 +26622000.0,110095.095,108449.51699999999,316672.58964,70878.19936999999,70878.19936999999,70878.19936999999,36386.21,178528.73575999998,612747.79328,179629.1973,273720.6816,127810.431,127810.431,127810.431,89506.90349999999,110095.095,110095.095,210653.08900999997,74937.0528,111387.91552000001,194281.24800000002,55138.868480000005,70126.27904000001,118570.49699999999,118570.49699999999,118570.49699999999,118570.49699999999,331019.2523,331019.2523 +26625600.0,114045.05399999999,111115.908,324458.45136,73249.68255000001,73249.68255000001,73249.68255000001,41205.157,187915.22759999998,614332.8352,197585.45163000003,301082.59296000004,128940.18599999999,128940.18599999999,128940.18599999999,92461.306,114045.05399999999,114045.05399999999,210396.42741,79399.35089999999,118020.76355999998,205850.169,58422.238439999994,74302.10862,131167.68300000002,131167.68300000002,131167.68300000002,131167.68300000002,342895.46235999995,342895.46235999995 +26629200.0,128811.72,118299.09300000001,345433.35156000004,88621.54345,88621.54345,88621.54345,61517.3195,205469.09960000002,606937.1551999999,217162.7892,330914.7264,173752.842,173752.842,173752.842,125521.515,128811.72,128811.72,209790.56462,90000.4203,133778.40252,233334.423,66222.53148,84222.61554,166441.416,166441.416,166441.416,166441.416,387293.90479999996,387293.90479999996 +26632800.0,242279.99699999997,153425.223,448001.65115999995,193031.86639000004,193031.86639000004,193031.86639000004,140996.44999999998,699850.04808,655586.52032,409667.81499000004,624255.71808,227113.935,227113.935,227113.935,258633.914,242279.99699999997,242279.99699999997,419866.16503,146680.21485,218028.36873999998,380282.0385,107927.66426,137263.70723,271044.53099999996,271044.53099999996,271044.53099999996,271044.53099999996,728455.19098,728455.19098 +26636400.0,926846.595,401824.776,1173328.34592,1360354.04461,1360354.04461,1360354.04461,1073893.1735,2891974.07944,2646952.41984,2180773.05747,3323082.75424,775270.6469999999,775270.6469999999,775270.6469999999,1064521.5595,926846.595,926846.595,2147591.43105,1076473.79595,1600091.91398,2790857.9895,792072.0770200001,1007366.8362100001,1147675.773,1147675.773,1147675.773,1147675.773,2786718.7622999996,2786718.7622999996 +26640000.0,799061.625,1021500.603,2982781.76076,1335580.58953,1335580.58953,1335580.58953,1532668.8265,3424351.60968,2349103.2153600003,2465701.98315,3757260.1648,1035151.0020000001,1035151.0020000001,1035151.0020000001,1208770.6365,799061.625,799061.625,1741819.1239799997,1677092.1939,2492862.96476,4348016.799000001,1234008.5772400002,1569427.0160200002,1202071.593,1202071.593,1202071.593,1202071.593,2402511.9524999997,2402511.9524999997 +26643600.0,1619474.7240000002,1469925.687,4292183.006039999,705226.1038900001,705226.1038900001,705226.1038900001,982224.2219999998,3035058.7981600002,4963176.23168,2361309.4495200003,3598185.8278400004,1400450.9730000002,1400450.9730000002,1400450.9730000002,847340.2490000001,1619474.7240000002,1619474.7240000002,1017421.6857999999,1020577.6561499998,1517006.7876599997,2645942.0714999996,750943.5593399999,955059.0905699999,1804740.0179999997,1804740.0179999997,1804740.0179999997,1804740.0179999997,4869220.67016,4869220.67016 +26647200.0,978275.037,668882.3609999999,1953136.4941199997,385181.69866,385181.69866,385181.69866,349643.71050000004,1175962.01656,5313325.65056,592028.33382,902138.4134400001,971648.529,971648.529,971648.529,979502.2825000002,978275.037,978275.037,890245.2425099999,1649094.07815,2451246.01246,4275429.0915,1213407.49454,1543226.31017,512913.246,512913.246,512913.246,512913.246,2941346.94458,2941346.94458 +26650800.0,492679.96200000006,294608.835,860257.7982000001,174294.46143999998,174294.46143999998,174294.46143999998,298243.5785,863819.43608,1734096.1683200002,532149.95925,810895.176,349271.499,349271.499,349271.499,288053.003,492679.96200000006,492679.96200000006,436810.86669999996,386440.70489999995,574413.09716,1001883.309,284344.02483999997,361632.16582,361918.03799999994,361918.03799999994,361918.03799999994,361918.03799999994,1481324.41908,1481324.41908 +26654400.0,565926.693,989591.6340000001,2889607.5712800003,362008.11581000005,362008.11581000005,362008.11581000005,687258.2255,1286970.8681599998,1960064.8576,955326.93648,1455736.28416,496680.74399999995,496680.74399999995,496680.74399999995,826830.9700000001,565926.693,565926.693,552341.61216,563935.9563,838245.5449199999,1462056.183,414945.46908,527732.66034,549360.0959999999,549360.0959999999,549360.0959999999,549360.0959999999,1701552.92362,1701552.92362 +26658000.0,401568.50999999995,339932.502,992602.90584,259924.39208999998,259924.39208999998,259924.39208999998,493142.972,828359.6802399999,1172717.96864,548668.4288400001,836066.1772800001,352621.101,352621.101,352621.101,287567.54600000003,401568.50999999995,401568.50999999995,385279.3646,362286.0918,538509.20312,939260.238,266571.00088,339028.21924,348241.662,348241.662,348241.662,348241.662,1207382.6533999997,1207382.6533999997 +26661600.0,295585.78799999994,229866.51,671210.2091999999,88041.99987,88041.99987,88041.99987,208069.86549999999,646554.58184,885753.35552,391916.34299999994,597205.8559999999,272256.68700000003,272256.68700000003,272256.68700000003,196816.8405,295585.78799999994,295585.78799999994,313095.48296,248790.9897,369807.84148,645013.677,183061.02452,232819.22246000002,264436.32300000003,264436.32300000003,264436.32300000003,264436.32300000003,888727.9359199998,888727.9359199998 +26665200.0,473738.67000000004,355182.12,1037131.7904,773618.2699300001,773618.2699300001,773618.2699300001,736626.2855,1002723.9996,923747.64288,874861.2085500001,1333121.8416000002,361063.545,361063.545,361063.545,837009.747,473738.67000000004,473738.67000000004,729631.23766,621661.69575,924050.2242999999,1611715.5075,457420.2107,581752.54985,325342.551,325342.551,325342.551,325342.551,1424374.2678,1424374.2678 +26668800.0,634918.344,1071538.4730000002,3128892.3411600003,789285.2831600001,789285.2831600001,789285.2831600001,874126.9775,1793091.40216,2208061.8041600003,1117442.38473,1702769.34816,744304.671,744304.671,744304.671,1242281.635,634918.344,634918.344,1154207.87417,968501.58165,1439599.8818599998,2510930.0265,712625.85514,906326.1714700001,773702.382,773702.382,773702.382,773702.382,1908987.82096,1908987.82096 +26672400.0,618942.78,744956.76,2175273.7392,792585.9921100001,792585.9921100001,792585.9921100001,759136.4689999999,1595963.4928,2351945.2672,1089091.23141,1659567.59072,656816.751,656816.751,656816.751,965011.1590000002,618942.78,618942.78,811852.0981999999,843431.5147499999,1253693.2638999997,2186674.2975,620598.9911,789285.2940499999,706442.9400000001,706442.9400000001,706442.9400000001,706442.9400000001,1860954.6252,1860954.6252 +26676000.0,1957874.5380000002,1611942.417,4706871.857639999,3005426.59571,3005426.59571,3005426.59571,2670254.2965,3092254.158,5655091.1046400005,3349403.49723,5103852.94816,2110137.018,2110137.018,2110137.018,2545423.9825,1957874.5380000002,1957874.5380000002,2372384.5107299997,2476447.19415,3681040.0268599996,6420418.6515,1822175.9601399999,2317465.39897,2198724.639,2198724.639,2198724.639,2198724.639,5886676.11092,5886676.11092 +26679600.0,1229618.358,708362.538,2068418.61096,1179840.1795400002,1179840.1795400002,1179840.1795400002,1196445.2955,1980578.6804,3057554.5241600005,1645974.95412,2508152.3110399996,1048380.3030000001,1048380.3030000001,1048380.3030000001,1232109.5359999998,1229618.358,1229618.358,877739.2857999998,1201548.77955,1786005.84022,3115126.4655,884102.5587800001,1124412.3146900001,1131287.7510000002,1131287.7510000002,1131287.7510000002,1131287.7510000002,3697052.5297199995,3697052.5297199995 +26683200.0,861662.082,681609.147,1990298.70924,944645.73423,944645.73423,944645.73423,897758.4000000001,1539557.27464,2806836.88128,1300560.42144,1981806.35648,812850.4169999999,812850.4169999999,812850.4169999999,1077365.135,861662.082,861662.082,884246.38848,1053261.6623999998,1565588.9401599998,2730678.3839999996,774992.53184,985644.8643199999,916332.0630000001,916332.0630000001,916332.0630000001,916332.0630000001,2590730.65988,2590730.65988 +26686800.0,800826.927,671281.314,1960141.43688,907236.48389,907236.48389,907236.48389,879347.546,1483952.5263999999,2757130.92672,1262519.25933,1923838.87136,792858.156,792858.156,792858.156,1042358.989,800826.927,800826.927,898770.65967,1030341.8295,1531520.4478,2671256.595,758128.0622,964196.4281,895926.8219999999,895926.8219999999,895926.8219999999,895926.8219999999,2407819.62718,2407819.62718 +26690400.0,576480.5549999999,475865.559,1389527.43228,594166.51613,594166.51613,594166.51613,499312.71599999996,755242.93864,1691985.9769599999,696644.24046,1061553.12832,418908.909,418908.909,418908.909,524252.08150000003,576480.5549999999,576480.5549999999,620668.27784,480228.18705,713820.66322,1245036.0405000001,353353.08578,449398.72319000005,570560.133,570560.133,570560.133,570560.133,1733284.8687,1733284.8687 +26694000.0,96400.788,85213.66500000001,248823.9018,101332.92675000001,101332.92675000001,101332.92675000001,56189.399000000005,137547.58112,587918.9696000001,125722.7265,191577.488,124672.008,124672.008,124672.008,93924.8905,96400.788,96400.788,166213.91267,68890.6863,102400.47692,178605.483,50689.93708,64468.07434000001,110832.087,110832.087,110832.087,110832.087,289845.03592,289845.03592 +26697600.0,92243.403,85370.508,249281.88335999998,77578.14383000002,77578.14383000002,77578.14383000002,35264.376000000004,150335.74448000002,581428.16832,126737.92970999998,193124.46432,122267.41500000001,122267.41500000001,122267.41500000001,86458.98800000001,92243.403,92243.403,173876.42064,61479.83834999999,91384.84613999998,159392.17349999998,45237.016859999996,57532.984529999994,105771.61799999999,105771.61799999999,105771.61799999999,105771.61799999999,277345.16502,277345.16502 +26701200.0,92205.441,86932.053,253841.59475999998,72685.27936999999,72685.27936999999,72685.27936999999,30628.997,168257.92192,585839.24672,133150.93806000001,202896.66752000002,122630.922,122630.922,122630.922,87683.8375,92205.441,92205.441,179148.51734,60342.86565,89694.82746,156444.4665,44400.42954,56469.00267,108353.994,108353.994,108353.994,108353.994,277231.02594,277231.02594 +26704800.0,102220.098,98919.36600000001,288844.54872,68552.78045,68552.78045,68552.78045,28430.5245,173362.74184,593230.8684800001,157666.49661,240253.70912,123587.082,123587.082,123587.082,87218.61400000002,102220.098,102220.098,191641.46299999996,65583.0351,97483.91883999998,170030.091,48256.159159999996,61372.76618,111923.36700000001,111923.36700000001,111923.36700000001,111923.36700000001,307341.76132,307341.76132 +26708400.0,108961.092,106898.049,312142.30308,70278.37905,70278.37905,70278.37905,35942.879,175628.66767999998,604589.6972800001,177347.21550000002,270243.37600000005,125650.19700000001,125650.19700000001,125650.19700000001,88367.2755,108961.092,108961.092,207341.92349000002,74275.56225,110404.6629,192566.2725,54652.142100000005,69507.25455,117792.687,117792.687,117792.687,117792.687,327609.68328,327609.68328 +26712000.0,113669.96100000001,110530.209,322748.21028,72876.62228000001,72876.62228000001,72876.62228000001,41245.029,181689.0576,608597.6934400001,195691.81149,298197.04608,127369.887,127369.887,127369.887,91878.02750000001,113669.96100000001,113669.96100000001,207841.12452999997,78855.99075,117213.1023,204441.45750000002,58022.432700000005,73793.63085,132179.99099999998,132179.99099999998,132179.99099999998,132179.99099999998,341767.68274,341767.68274 +26715600.0,130193.89199999999,119000.48100000001,347481.40452000004,89604.13506000002,89604.13506000002,89604.13506000002,62376.867,200876.40096,612335.8656,218768.36331,333361.31552,176044.071,176044.071,176044.071,129486.756,130193.89199999999,130193.89199999999,210902.84825999997,91317.16034999999,135735.63094,236748.1935,67191.39206,85454.82413000001,169152.74099999998,169152.74099999998,169152.74099999998,169152.74099999998,391449.63528,391449.63528 +26719200.0,246888.67500000002,155987.766,455484.27671999997,194797.98184,194797.98184,194797.98184,142064.2195,689913.4340799999,670747.61536,427432.15893,651325.19456,232086.43800000002,232086.43800000002,232086.43800000002,263363.3765,246888.67500000002,246888.67500000002,423920.87958999997,149236.93935,221828.73453999998,386910.5835,109808.90846,139656.29633,276556.827,276556.827,276556.827,276556.827,742311.9495,742311.9495 +26722800.0,937190.2109999999,409500.87599999993,1195742.5579199998,1368127.4434300002,1368127.4434300002,1368127.4434300002,1084235.824,2905464.9816799997,2679141.5526400004,2217356.96511,3378829.6611200003,785581.77,785581.77,785581.77,1088385.795,937190.2109999999,937190.2109999999,2157542.2532299994,1092134.10105,1623369.7008199997,2831458.7805,803594.96818,1022021.7883899999,1161321.513,1161321.513,1161321.513,1161321.513,2817818.5677399994,2817818.5677399994 +26726400.0,815480.2080000001,1033281.4140000001,3017181.7288800003,1358768.73077,1358768.73077,1358768.73077,1550692.4579999999,3468132.33768,2414644.7488,2517258.84249,3835822.9980800003,1060570.1099999999,1060570.1099999999,1060570.1099999999,1235143.042,815480.2080000001,815480.2080000001,1752364.5824099998,1707972.76755,2538764.45942,4428077.5455,1256730.5795800001,1598325.1330900001,1228495.2119999998,1228495.2119999998,1228495.2119999998,1228495.2119999998,2451877.15872,2451877.15872 +26730000.0,1641723.7349999999,1501064.991,4383109.77372,730022.98996,730022.98996,730022.98996,1028550.4915,3104363.4272000003,5095763.088640001,2421889.25601,3690497.91392,1438753.395,1438753.395,1438753.395,878276.1714999999,1641723.7349999999,1641723.7349999999,1105852.84316,1054560.05595,1567518.8979800001,2734044.5895000002,775947.8930200001,986859.9042100001,1831723.4160000002,1831723.4160000002,1831723.4160000002,1831723.4160000002,4936116.0298999995,4936116.0298999995 +26733600.0,1009335.747,695283.3389999999,2030227.3498799999,397890.67659000005,397890.67659000005,397890.67659000005,375566.56549999997,1240898.01024,5417406.722560001,638599.33389,973103.74688,1000605.2579999999,1000605.2579999999,1000605.2579999999,1016070.202,1009335.747,1009335.747,994098.25073,1689518.85345,2511334.19698,4380234.0645,1243152.14402,1581055.9147100002,548054.9789999999,548054.9789999999,548054.9789999999,548054.9789999999,3034736.14598,3034736.14598 +26737200.0,459070.36199999996,252952.728,738621.9657599999,155910.37725999998,155910.37725999998,155910.37725999998,254245.26049999997,774873.35696,1592139.09632,459192.50979,699721.91968,303636.549,303636.549,303636.549,247471.44449999998,459070.36199999996,459070.36199999996,389052.10253,339682.9851,504911.49884,880659.591,249939.57916000002,317876.17618,318437.277,318437.277,318437.277,318437.277,1380271.5550799998,1380271.5550799998 +26740800.0,515205.31500000006,932428.632,2722691.60544,307214.95123,307214.95123,307214.95123,627307.45,1164565.79968,1714183.1027199998,851955.8367599999,1298218.41792,433175.42400000006,433175.42400000006,433175.42400000006,772242.072,515205.31500000006,515205.31500000006,468471.38818999997,483536.1825,718737.733,1253612.3250000002,355787.117,452494.3535,482746.416,482746.416,482746.416,482746.416,1549050.6471,1549050.6471 +26744400.0,401558.36100000003,340818.579,995190.2506799999,262150.05531,262150.05531,262150.05531,497575.4385,825433.2562399999,1174838.448,551878.47582,840957.6774400001,352440.61199999996,352440.61199999996,352440.61199999996,292491.934,401558.36100000003,401558.36100000003,384669.1199,364201.6041,541356.45844,944226.381,267980.43955999997,340820.76038,350725.73699999996,350725.73699999996,350725.73699999996,350725.73699999996,1207352.13874,1207352.13874 +26748000.0,298109.23199999996,232165.068,677921.99856,89476.76848,89476.76848,89476.76848,211810.053,646500.4391999999,892839.4668800001,396389.49777,604022.09184,273474.069,273474.069,273474.069,199490.151,298109.23199999996,298109.23199999996,312079.25020999997,251910.59939999998,374444.89095999993,653101.5539999999,185356.44103999998,235738.56092,267863.175,267863.175,267863.175,267863.175,896315.0908799999,896315.0908799999 +26751600.0,487128.74700000003,370437.891,1081678.64172,779103.75895,779103.75895,779103.75895,756448.3184999999,1031522.2718400001,981529.87584,899009.9575799999,1369919.93536,377666.058,377666.058,377666.058,856601.9035,487128.74700000003,487128.74700000003,741351.6396,640423.5110999999,951938.1572399999,1660357.251,471225.20076,599309.90298,341950.248,341950.248,341950.248,341950.248,1464633.7659800001,1464633.7659800001 +26755200.0,677526.042,1125362.307,3286057.9364400003,830074.79467,830074.79467,830074.79467,927312.2669999999,1896143.68592,2385619.29152,1201817.94453,1831341.6297600002,802154.1600000001,802154.1600000001,802154.1600000001,1299163.376,677526.042,677526.042,1199719.4351999997,1030433.50935,1531656.72254,2671494.2835,758195.52046,964282.22233,825718.7309999999,825718.7309999999,825718.7309999999,825718.7309999999,2037094.9662799998,2037094.9662799998 +26758800.0,676019.1989999999,823777.8929999999,2405431.44756,847630.30418,847630.30418,847630.30418,833422.7125,1761397.5586400002,2635609.7043200005,1198160.15172,1825767.85024,734689.2930000001,734689.2930000001,734689.2930000001,1064849.366,676019.1989999999,676019.1989999999,884805.59908,934323.8341499999,1388797.4028599998,2422321.0515,687477.78414,874342.55097,790966.953,790966.953,790966.953,790966.953,2032564.3916599997,2032564.3916599997 +26762400.0,1999843.9230000002,1654144.014,4830100.52088,3060331.15619,3060331.15619,3060331.15619,2715803.9055,3170065.73984,5885422.31488,3422019.71685,5214506.2352,2155496.403,2155496.403,2155496.403,2634927.9215,1999843.9230000002,1999843.9230000002,2516883.52929,2557919.7238499997,3802142.4043399994,6631643.728499999,1882123.64866,2393707.59343,2251251.714,2251251.714,2251251.714,2251251.714,6012864.06182,6012864.06182 +26766000.0,1287316.989,746204.796,2178918.00432,1269312.7518500001,1269312.7518500001,1269312.7518500001,1271820.676,2095234.9682399998,3261972.3705600007,1737209.40855,2647176.2416000003,1131644.307,1131644.307,1131644.307,1334656.5435,1287316.989,1287316.989,936374.09489,1279801.3769999999,1902322.0467999997,3318003.57,941681.0131999999,1197641.2885999999,1220655.909,1220655.909,1220655.909,1220655.909,3870533.0802599997,3870533.0802599997 +26769600.0,931108.2869999998,729776.892,2130948.52464,1005543.1295800002,1005543.1295800002,1005543.1295800002,957931.9155000001,1649141.0435999997,3031235.0208,1388709.73269,2116129.1164800003,877793.448,877793.448,877793.448,1165981.1765,931108.2869999998,931108.2869999998,993628.50132,1131996.29895,1682621.65918,2934805.2195,832925.67182,1059324.93161,987007.9439999999,987007.9439999999,987007.9439999999,987007.9439999999,2799532.2495799996,2799532.2495799996 +26773200.0,863914.53,728993.7119999999,2128661.63904,980034.0545600001,980034.0545600001,980034.0545600001,959644.0,1611329.4963999998,3025262.3795200004,1365773.96571,2081179.3763199998,867796.335,867796.335,867796.335,1146015.5280000002,863914.53,863914.53,993302.7152099998,1122891.02415,1669087.3988599998,2911198.9515,826225.98814,1050804.19297,977954.379,977954.379,977954.379,977954.379,2597503.0202,2597503.0202 +26776800.0,617167.686,519478.4550000001,1516877.0886000001,638022.0319000001,638022.0319000001,638022.0319000001,536534.9990000001,816646.73096,1852976.58624,751963.07571,1145848.4963200002,456687.765,456687.765,456687.765,573241.1195,617167.686,617167.686,692978.66729,522872.82,777208.488,1355596.2000000002,384731.112,489305.67600000004,617916.186,617916.186,617916.186,617916.186,1855617.50924,1855617.50924 +26780400.0,104044.218,94561.91700000002,276120.79764,108289.84693999999,108289.84693999999,108289.84693999999,58484.0585,161898.51816,654855.59104,143044.51686,217972.59712000002,138210.57300000003,138210.57300000003,138210.57300000003,102165.9135,104044.218,104044.218,184326.35727999997,75506.2398,112233.96631999999,195756.918,55557.67768,70658.92564,120704.796,120704.796,120704.796,120704.796,312826.28211999993,312826.28211999993 +26784000.0,100466.016,93613.31999999999,273350.8944,85203.98073000002,85203.98073000002,85203.98073000002,37787.932,173630.47079999998,654902.4294400001,159169.60227,242544.15584,136644.51,136644.51,136644.51,95945.878,100466.016,100466.016,196583.68508999996,68743.31085,102181.41513999998,178223.39849999998,50581.497859999996,64330.16003,117743.81099999999,117743.81099999999,117743.81099999999,117743.81099999999,302067.82143999997,302067.82143999997 +26787600.0,101139.975,95538.201,278971.54692,79017.91040000001,79017.91040000001,79017.91040000001,32726.886499999997,184001.48152,645765.92768,179600.3139,273676.66880000004,134226.56100000002,134226.56100000002,134226.56100000002,95405.2155,101139.975,101139.975,195272.99375999995,66676.80644999999,99109.72218,172865.7945,49060.95882,62396.32011,119187.05399999999,119187.05399999999,119187.05399999999,119187.05399999999,304094.1915,304094.1915 +26791200.0,115047.53099999999,113428.27500000001,331210.563,76132.93567,76132.93567,76132.93567,35621.081999999995,190044.98215999999,663582.4608,200424.5208,305408.79360000003,137050.11000000002,137050.11000000002,137050.11000000002,95966.77649999999,115047.53099999999,115047.53099999999,219181.04103999998,77360.42295,114990.06077999999,200564.0595,56921.99022,72394.07481,125734.08899999999,125734.08899999999,125734.08899999999,125734.08899999999,345909.5765399999,345909.5765399999 +26794800.0,119197.731,116442.375,340011.735,77758.96986,77758.96986,77758.96986,39258.019499999995,195968.1496,670996.26688,223984.32378,341309.44576000003,138518.403,138518.403,138518.403,97761.8075,119197.731,119197.731,226506.70951999997,84394.71,125445.96399999999,218801.1,62097.836,78976.778,132954.549,132954.549,132954.549,132954.549,358387.84453999996,358387.84453999996 +26798400.0,129619.30500000002,122905.22399999999,358883.2540799999,82744.87045000002,82744.87045000002,82744.87045000002,54732.9195,206366.9996,654431.728,241601.84055,368155.1856,163649.346,163649.346,163649.346,114056.68050000002,129619.30500000002,129619.30500000002,221216.92644999997,90576.3222,134634.43448,234827.502,66646.28152,84761.54596,171227.70299999998,171227.70299999998,171227.70299999998,171227.70299999998,389722.04370000004,389722.04370000004 +26802000.0,154910.73599999998,128994.813,376664.85396,95250.69840000001,95250.69840000001,95250.69840000001,65989.41649999999,270024.77496,652035.50592,262912.37049,400628.37408000004,214812.71399999998,214812.71399999998,214812.71399999998,168656.5545,154910.73599999998,154910.73599999998,229620.61693999998,106249.806,157931.8104,275462.46,78178.8696,99428.8308,201155.10900000003,201155.10900000003,201155.10900000003,201155.10900000003,465764.94623999996,465764.94623999996 +26805600.0,282738.61199999996,168498.075,492014.379,200418.45648,200418.45648,200418.45648,144787.202,773080.58208,704405.7984000001,471129.79683,717912.0713600001,262672.998,262672.998,262672.998,283069.6925,282738.61199999996,282738.61199999996,449268.30975,161061.9552,239405.67167999997,417568.032,118509.78431999999,150722.17536,307562.322,307562.322,307562.322,307562.322,850100.7600799999,850100.7600799999 +26809200.0,998156.595,440898.399,1287423.32508,1418245.7693800002,1418245.7693800002,1418245.7693800002,1155473.7355,3000601.8812800003,2866788.73856,2351357.26833,3583020.5993600003,838496.3130000001,838496.3130000001,838496.3130000001,1196829.5010000002,998156.595,998156.595,2230140.75206,1185627.56535,1762340.23294,3073849.2435000003,872387.69006,1109513.20313,1232702.3220000002,1232702.3220000002,1232702.3220000002,1232702.3220000002,3001124.1623,3001124.1623 +26812800.0,846052.689,1047472.4310000001,3058619.49852,1444987.6962400002,1444987.6962400002,1444987.6962400002,1612188.2245,3570297.4319999996,2517123.0227200002,2616626.89134,3987240.9772799998,1090787.4780000001,1090787.4780000001,1090787.4780000001,1319801.5425,846052.689,846052.689,1828589.9270599997,1791658.56555,2663156.6826199996,4645040.7255,1318306.79638,1676638.50949,1274501.01,1274501.01,1274501.01,1274501.01,2543798.41826,2543798.41826 +26816400.0,1674147.4680000003,1606226.604,4690181.68368,791225.8957900001,791225.8957900001,791225.8957900001,1162385.042,3245992.566799999,5387662.434560001,2548669.33713,3883686.60896,1488537.729,1488537.729,1488537.729,938198.4535000001,1674147.4680000003,1674147.4680000003,1206936.8161499999,1119091.58145,1663439.8321799997,2901348.5445,823430.34882,1047248.66511,1863962.2019999998,1863962.2019999998,1863962.2019999998,1863962.2019999998,5033603.38712,5033603.38712 +26820000.0,1056794.529,726707.772,2121986.69424,421413.08693000005,421413.08693000005,421413.08693000005,402331.895,1324777.3696,5575958.68864,690429.6050399999,1052083.20768,1051188.48,1051188.48,1051188.48,1059786.28,1056794.529,1056794.529,1105896.0706299997,1758125.8291500001,2613312.96086,4558104.0015,1293633.32614,1645258.49197,593185.608,593185.608,593185.608,593185.608,3177428.88386,3177428.88386 +26823600.0,531646.665,323908.35900000005,945812.4082800001,203641.60751,203641.60751,203641.60751,337474.55,927082.8362399999,2013669.5840000003,587996.4237,895994.5504000001,386587.947,386587.947,386587.947,319983.47849999997,531646.665,531646.665,474024.057,466261.8552,693060.83168,1208827.0320000001,343076.62432,436328.99536,398782.578,398782.578,398782.578,398782.578,1598484.3061,1598484.3061 +26827200.0,601906.956,1019773.0170000001,2977737.20964,413658.91479,413658.91479,413658.91479,745624.1765,1355283.9703199998,2093434.5414400003,1018213.85043,1551563.9625600001,536276.7449999999,536276.7449999999,536276.7449999999,876534.5295000001,601906.956,601906.956,617916.95303,616401.13455,916230.8222199999,1598077.0154999997,453549.47677999997,576829.70369,595745.016,595745.016,595745.016,595745.016,1809733.5810399998,1809733.5810399998 +26830800.0,452049.88499999995,409123.32,1194640.0944,309522.60053,309522.60053,309522.60053,577188.339,939223.4312,1368500.1088000003,640132.25997,975439.6342400002,411676.78800000006,411676.78800000006,411676.78800000006,378129.43000000005,452049.88499999995,452049.88499999995,442264.52165999997,431281.96875,641066.0375,1118138.4375,317338.3375,403594.73125,406695.576,406695.576,406695.576,406695.576,1359163.3208999997,1359163.3208999997 +26834400.0,347028.336,281019.582,820577.17944,108628.54827000001,108628.54827000001,108628.54827000001,266396.58150000003,759423.10552,1093129.6588800002,482159.09216999996,734718.6166399999,333548.24100000004,333548.24100000004,333548.24100000004,244818.16100000002,347028.336,347028.336,362173.82252999995,316019.27249999996,469737.28899999993,819309.225,232527.761,295731.6155,322468.401,322468.401,322468.401,322468.401,1043398.5302399999,1043398.5302399999 +26838000.0,522766.38300000003,456181.224,1332049.17408,851053.81317,851053.81317,851053.81317,817282.1684999999,1116380.9816799997,1113759.82528,963722.7612600002,1468529.9219200003,417762.31499999994,417762.31499999994,417762.31499999994,929284.2159999998,522766.38300000003,522766.38300000003,775436.7666499999,701778.99015,1043138.1532599999,1819427.0115,516370.71374000004,656726.51177,379973.70599999995,379973.70599999995,379973.70599999995,379973.70599999995,1571784.25822,1571784.25822 +26841600.0,692013.771,1127469.378,3292210.58376,931449.34938,931449.34938,931449.34938,930736.4010000002,1902881.1888,2440736.97984,1239433.10547,1888659.9702400002,805148.6130000001,805148.6130000001,805148.6130000001,1329325.662,692013.771,692013.771,1204181.2296799999,1060047.2470500001,1575675.16722,2748270.6405,779985.38178,991994.83119,856802.2620000001,856802.2620000001,856802.2620000001,856802.2620000001,2080654.7381399998,2080654.7381399998 +26845200.0,665035.794,845650.794,2469300.31848,858777.19983,858777.19983,858777.19983,817837.0795,1777491.40728,2600408.75904,1174241.22858,1789319.9673600001,709001.7390000001,709001.7390000001,709001.7390000001,1066812.7295,665035.794,665035.794,942346.3015199999,917244.8748,1363410.90032,2378042.268,674911.04368,858360.01864,801528.4979999999,801528.4979999999,801528.4979999999,801528.4979999999,1999540.9539599998,1999540.9539599998 +26848800.0,2017242.252,1649082.5850000002,4815321.148200001,3116536.59856,3116536.59856,3116536.59856,2713312.1679999996,3151838.08368,5921159.611520001,3429296.2809,5225594.3328,2150493.324,2150493.324,2150493.324,2668876.6265000002,2017242.252,2017242.252,2732064.88698,2570998.30785,3821582.66994,6665551.1685,1891746.90306,2405946.56463,2252221.413,2252221.413,2252221.413,2252221.413,6065175.03768,6065175.03768 +26852400.0,1331855.61,763160.697,2228429.23524,1382648.85748,1382648.85748,1382648.85748,1339037.4130000002,2150304.20016,3379991.0816,1801190.3657999998,2744671.0335999997,1192281.969,1192281.969,1192281.969,1402629.221,1331855.61,1331855.61,1011757.67992,1344821.10975,1998968.6619,3486573.2475000005,989522.6931,1258486.9150500002,1298924.3220000002,1298924.3220000002,1298924.3220000002,1298924.3220000002,4004445.8674000003,4004445.8674000003 +26856000.0,974736.966,746507.406,2179801.62552,1030695.32258,1030695.32258,1030695.32258,981804.2359999999,1685482.94312,3098550.6470399997,1420956.5659800002,2165267.1481600003,898667.0819999999,898667.0819999999,898667.0819999999,1198672.5695,974736.966,974736.966,1032802.6516599999,1158961.3245,1722703.0058000002,3004714.5450000004,852766.6042000001,1084558.8691000002,1016054.8859999999,1016054.8859999999,1016054.8859999999,1016054.8859999999,2930709.14444,2930709.14444 +26859600.0,894692.4209999999,756463.5149999999,2208873.4637999996,1017104.4936800001,1017104.4936800001,1017104.4936800001,994881.3944999999,1667779.67808,3142361.58912,1438996.76088,2192756.96896,900113.121,900113.121,900113.121,1192698.43,894692.4209999999,894692.4209999999,1043512.1455199999,1165513.27275,1732441.9511,3021701.0775,857587.5438999999,1090690.19845,1015974.3119999999,1015974.3119999999,1015974.3119999999,1015974.3119999999,2690041.8791399994,2690041.8791399994 +26863200.0,647454.03,550469.625,1607371.305,672925.6233699999,672925.6233699999,672925.6233699999,564939.627,862494.28752,1970464.60352,819259.29666,1248395.1187200001,483603.54,483603.54,483603.54,609140.0175000001,647454.03,647454.03,742859.52169,554754.9140999999,824598.6624399999,1438253.481,408190.03556,519141.01838,653750.094,653750.094,653750.094,653750.094,1946678.4502,1946678.4502 +26866800.0,111091.62299999999,101420.199,296146.98108,114803.54413,114803.54413,114803.54413,60659.938500000004,178303.83151999998,715498.90496,181594.45667999997,276715.36256,150089.66999999998,150089.66999999998,150089.66999999998,109657.8805,111091.62299999999,111091.62299999999,201305.29171999998,81617.301,121317.5684,211600.41000000003,60054.2116,76377.67180000001,129852.999,129852.999,129852.999,129852.999,334015.47981999995,334015.47981999995 +26870400.0,107812.39500000002,100876.76999999999,294560.16839999997,92080.02188,92080.02188,92080.02188,40089.234500000006,191176.54056000002,719012.4704000001,180882.46154999998,275630.4176,149057.40899999999,149057.40899999999,149057.40899999999,104388.2735,107812.39500000002,107812.39500000002,212692.88495,75203.11349999999,111783.39339999999,194971.03499999997,55334.6366,70375.25929999999,128098.49100000001,128098.49100000001,128098.49100000001,128098.49100000001,324155.9343,324155.9343 +26874000.0,115671.93299999999,111975.35399999999,326968.03367999993,89280.88752,89280.88752,89280.88752,36644.58,208848.94703999997,742205.15968,215250.93029999998,328001.4176,153198.117,153198.117,153198.117,107610.76550000001,115671.93299999999,115671.93299999999,223680.76717999997,77624.7705,115382.9922,201249.405,57116.497800000005,72641.4519,135789.033,135789.033,135789.033,135789.033,347786.94521999994,347786.94521999994 +26877600.0,129719.51100000003,129289.242,377524.58663999994,86692.46927000002,86692.46927000002,86692.46927000002,43916.285,214907.88864000002,760419.38944,241480.52061000004,367970.31712,155823.696,155823.696,155823.696,107969.1935,129719.51100000003,129719.51100000003,252921.00729999994,92753.87759999999,137871.19583999997,240473.016,68248.53216,86799.30768,143296.143,143296.143,143296.143,143296.143,390023.32974,390023.32974 +26881200.0,142300.608,135961.005,397006.13460000005,91827.51094000001,91827.51094000001,91827.51094000001,54257.39200000001,238738.47,781439.0380800001,277200.35091,422400.53472,170601.378,170601.378,170601.378,113459.01,142300.608,142300.608,258776.30688,102806.47575,152813.57630000002,266535.3075,75645.2587,96206.55385000001,183306.174,183306.174,183306.174,183306.174,427850.49471999996,427850.49471999996 +26884800.0,177939.918,152426.75400000002,445086.12168000004,104332.3743,104332.3743,104332.3743,70796.21500000001,341655.58696,805250.78848,319890.16101,487451.67392,272258.751,272258.751,272258.751,202594.07,177939.918,177939.918,276716.9912,125463.75119999998,186491.79807999998,325276.392,92316.53791999999,117409.28816,246897.47099999996,246897.47099999996,246897.47099999996,246897.47099999996,535006.02012,535006.02012 +26888400.0,227843.17799999999,169612.404,495268.21968,131490.61332,131490.61332,131490.61332,79265.1685,459265.94536,810709.7632,363473.1009000001,553863.7728000002,326336.127,326336.127,326336.127,222676.95450000002,227843.17799999999,227843.17799999999,305083.01862999995,144515.3319,214810.44396,374669.379,106334.73804000001,135237.80442,290968.299,290968.299,290968.299,290968.299,685048.4885199999,685048.4885199999 +26892000.0,394851.88800000004,219246.45899999997,640199.66028,246044.32457,246044.32457,246044.32457,158996.41100000002,965649.4195200001,914041.3337600001,634647.87708,967082.47936,398067.28800000006,398067.28800000006,398067.28800000006,348870.179,394851.88800000004,394851.88800000004,527725.04707,208234.2654,309523.52535999997,539866.6140000001,153219.28664,194866.13972,447889.57500000007,447889.57500000007,447889.57500000007,447889.57500000007,1187188.0099199999,1187188.0099199999 +26895600.0,1150471.953,537896.904,1570658.9596799999,1543857.97995,1543857.97995,1543857.97995,1331195.8904999997,3260127.25312,3684566.1606400004,2689902.0582000003,4098898.3744000006,1087240.371,1087240.371,1087240.371,1538872.1215000001,1150471.953,1150471.953,2441887.6013999996,1429422.2846999997,2124721.51948,3705909.627,1051772.44652,1337656.90346,1435075.92,1435075.92,1435075.92,1435075.92,3459085.67202,3459085.67202 +26899200.0,992966.754,1117156.188,3262096.06896,1646542.36648,1646542.36648,1646542.36648,1797594.9635,3960048.13456,2973606.0870400006,2934408.9698699997,4471480.335039999,1244413.482,1244413.482,1244413.482,1590555.064,992966.754,992966.754,2076628.45728,2004599.5627499998,2979676.3870999995,5197109.9775,1474989.3079,1875909.22045,1440527.757,1440527.757,1440527.757,1440527.757,2985520.04036,2985520.04036 +26902800.0,1633560.933,1729011.846,5048714.5903199995,836691.7518300001,836691.7518300001,836691.7518300001,1287792.2645,3316767.1121599996,5410802.040320001,2570320.0246500005,3916678.1328000007,1417617.3539999998,1417617.3539999998,1417617.3539999998,964337.2060000001,1633560.933,1633560.933,1153907.3597999997,1176454.7284499998,1748705.5469799996,3050067.8145,865638.2940199999,1100929.2397099999,1787357.178,1787357.178,1787357.178,1787357.178,4911573.20522,4911573.20522 +26906400.0,984713.58,608296.5120000001,1776225.81504,392736.10299000004,392736.10299000004,392736.10299000004,331135.14,1166105.4397599997,5224621.77216,480799.09941,732646.24672,955207.9619999999,955207.9619999999,955207.9619999999,953383.529,984713.58,984713.58,898085.1384699999,1657410.57495,2463607.81758,4296990.3795,1219526.79342,1551008.90841,452074.989,452074.989,452074.989,452074.989,2960705.4971999996,2960705.4971999996 +26910000.0,407905.08600000007,165377.235,482901.52619999996,142509.76795,142509.76795,142509.76795,173430.9745,629709.7792799999,1555064.7891199999,336303.52497,512462.5142400001,235159.593,235159.593,235159.593,169397.56399999998,407905.08600000007,407905.08600000007,300785.7165299999,285874.59599999996,424929.6463999999,741156.3599999999,210347.23359999998,267522.1528,243511.212,243511.212,243511.212,243511.212,1226434.6252400002,1226434.6252400002 +26913600.0,538592.0819999999,949696.5750000001,2773113.9990000003,252690.83807000003,252690.83807000003,252690.83807000003,634408.39,1244736.53128,1814107.4272000003,871467.0806100001,1327949.83712,465920.31000000006,465920.31000000006,465920.31000000006,796288.7345,538592.0819999999,538592.0819999999,495618.79731,500614.95959999994,744123.9646399999,1297890.636,368353.72336,468476.71528,513522.522,513522.522,513522.522,513522.522,1619366.85988,1619366.85988 +26917200.0,313983.018,263197.42500000005,768536.481,212910.73133,212910.73133,212910.73133,411596.1395,631183.42152,743061.42656,385260.97491000005,587064.3427200001,245173.035,245173.035,245173.035,259567.61250000002,313983.018,313983.018,269955.06434,222183.90314999997,330258.54245999997,576032.3415,163483.46454,207920.24517,244224.60600000003,244224.60600000003,244224.60600000003,244224.60600000003,944042.27412,944042.27412 +26920800.0,184765.293,102954.61499999999,300627.47579999996,72822.06393,72822.06393,72822.06393,88425.12700000001,375299.12032,354248.61120000004,182466.62910000002,278044.38720000006,136936.62,136936.62,136936.62,84482.489,184765.293,184765.293,161053.83125,80054.36145,118994.38418000001,207548.3445,58904.196820000005,74915.06911000001,125696.352,125696.352,125696.352,125696.352,555527.64762,555527.64762 +26924400.0,437152.28099999996,311338.29000000004,909107.8068,700119.13301,700119.13301,700119.13301,634372.2735,913203.0600799999,726154.2220800001,796370.11503,1213516.36576,309275.1,309275.1,309275.1,729053.339,437152.28099999996,437152.28099999996,681900.82844,523792.4292,778575.41328,1357980.372,385407.76272,490166.24856000004,282186.186,282186.186,282186.186,282186.186,1314371.1915399998,1314371.1915399998 +26928000.0,704133.471,1154650.9019999998,3371580.63384,561230.4237100001,561230.4237100001,561230.4237100001,948712.9820000001,1989316.1204799998,2465953.66464,1231490.31537,1876556.6710400002,836125.719,836125.719,836125.719,1300636.1269999999,704133.471,704133.471,1197739.79793,1042960.7142,1550277.40728,2703972.222,767413.0687200001,976005.2115600001,848932.128,848932.128,848932.128,848932.128,2117094.63614,2117094.63614 +26931600.0,768209.658,942341.8559999999,2751638.21952,805916.8782500001,805916.8782500001,805916.8782500001,947521.3475,2028425.4792,2906450.8537600003,1356655.78062,2067284.9990400001,837742.818,837742.818,837742.818,1168850.522,768209.658,768209.658,893763.26689,1033188.0196499999,1535751.0810599998,2678635.6064999998,760222.29594,966859.89987,866595.8069999999,866595.8069999999,866595.8069999999,866595.8069999999,2309750.37172,2309750.37172 +26935200.0,2072785.2719999999,1772051.5710000002,5174390.587320001,3078953.9743600003,3078953.9743600003,3078953.9743600003,2842089.152,3394537.7205600003,6316996.36992,3584851.01457,5462630.11744,2253846.792,2253846.792,2253846.792,2780995.7419999996,2072785.2719999999,2072785.2719999999,2520970.37946,2730640.2601499995,4058877.6212599995,7079437.711499999,2009211.8457399998,2555339.8977699997,2376412.119,2376412.119,2376412.119,2376412.119,6232174.38448,6232174.38448 +26938800.0,1472744.034,894070.8150000002,2610686.7798,1475612.81824,1475612.81824,1475612.81824,1519984.5955,2458723.1849599998,4013653.71648,2052215.6136300003,3127185.6969600003,1388158.848,1388158.848,1388158.848,1656944.7474999998,1472744.034,1472744.034,1151276.8188999998,1553936.5781999999,2309802.02488,4028724.462,1143390.37112,1454177.68676,1492863.2999999998,1492863.2999999998,1492863.2999999998,1492863.2999999998,4428050.39556,4428050.39556 +26942400.0,1150971.468,880273.851,2570399.6449200003,1198709.5054,1198709.5054,1198709.5054,1156280.8214999998,1996440.7160799997,3730687.96032,1671450.1225800002,2546971.61536,1073942.8469999998,1073942.8469999998,1073942.8469999998,1430641.121,1150971.468,1150971.468,1183252.42425,1378671.69825,2049284.8453,3574334.0325,1014430.0397000001,1290164.37935,1200050.217,1200050.217,1200050.217,1200050.217,3460587.54712,3460587.54712 +26946000.0,1014145.689,865878.7889999999,2528366.06388,1147544.40801,1147544.40801,1147544.40801,1146700.8105000001,1894356.03272,3610393.2620800002,1601013.80271,2439640.08032,1025940.291,1025940.291,1025940.291,1371426.3185,1014145.689,1014145.689,1208841.28274,1329774.1649999998,1976602.586,3447562.65,978451.114,1244405.947,1151817.708,1151817.708,1151817.708,1151817.708,3049198.0382600003,3049198.0382600003 +26949600.0,710769.66,618077.1989999999,1804785.4210799998,738824.15332,738824.15332,738824.15332,620769.618,979505.62544,2199540.19648,905557.2302700001,1379896.7318400003,536044.9890000001,536044.9890000001,536044.9890000001,677372.99,710769.66,710769.66,854033.8645799999,616555.60155,916460.42502,1598477.4855,453663.13398,576974.25429,721192.392,721192.392,721192.392,721192.392,2137047.4444,2137047.4444 +26953200.0,124690.80299999999,113820.54900000001,332356.00308000005,126272.11223000001,126272.11223000001,126272.11223000001,64773.485,211491.14992000003,818880.0774400001,215889.67848,328974.74816,170916.33299999998,170916.33299999998,170916.33299999998,122774.20749999997,124690.80299999999,124690.80299999999,240383.71825,92443.47344999999,137409.80498,239668.2645,68020.13601999999,86508.83071,147770.35499999998,147770.35499999998,147770.35499999998,147770.35499999998,374903.68101999996,374903.68101999996 +26956800.0,122679.51,112878.093,329604.03156,103074.35765,103074.35765,103074.35765,44047.619,220656.8664,817217.8636800001,241212.73575000002,367562.264,168203.34,168203.34,168203.34,117863.074,122679.51,122679.51,238976.74996,86723.9865,128908.2466,224839.96500000003,63811.7234,81156.52070000001,149320.88999999998,149320.88999999998,149320.88999999998,149320.88999999998,368856.39339999994,368856.39339999994 +26960400.0,134135.03399999999,129347.41500000001,377694.4518,97679.46276000001,97679.46276000001,97679.46276000001,45696.42,237090.39280000003,811238.17216,249715.32768000002,380518.59456,165987.072,165987.072,165987.072,116523.6135,134135.03399999999,134135.03399999999,254162.05463999996,90284.14305,134200.13362,234070.00050000002,66431.29538000001,84488.12399000001,153196.038,153196.038,153196.038,153196.038,403299.33556,403299.33556 +26964000.0,141288.204,135990.504,397092.27167999995,92152.94407000001,92152.94407000001,92152.94407000001,46611.166000000005,259409.00984,795824.92224,281506.80306,428962.74752,163175.763,163175.763,163175.763,113335.33050000001,141288.204,141288.204,265299.95596,101388.38039999998,150705.69135999997,262858.76399999997,74601.82063999999,94879.49672,163544.229,163544.229,163544.229,163544.229,424806.53336,424806.53336 +26967600.0,160472.487,142261.869,415404.65748,96014.82462,96014.82462,96014.82462,64489.932499999995,305997.7792,758983.1424,296548.4277,451883.3184,216920.637,216920.637,216920.637,146920.53949999998,160472.487,160472.487,256826.67439,112144.37444999999,166693.61337999997,290744.67449999996,82516.10762,104944.98250999999,218544.21000000002,218544.21000000002,218544.21000000002,218544.21000000002,482487.27757999994,482487.27757999994 +26971200.0,200286.93000000005,150737.184,440152.57728,101697.85109000001,101697.85109000001,101697.85109000001,68571.7375,367463.58064,754550.1299200001,327164.60952,498536.5478400001,278985.576,278985.576,278985.576,197299.8405,200286.93000000005,200286.93000000005,273812.81421,125293.38389999999,186238.56076,324834.69899999996,92191.18123999999,117249.85802,248925.759,248925.759,248925.759,248925.759,602196.0362000001,602196.0362000001 +26974800.0,231076.989,166360.22400000002,485771.85408,127111.46426000001,127111.46426000001,127111.46426000001,76313.559,440449.1558399999,758833.50976,368349.50754,561294.48768,322352.283,322352.283,322352.283,211659.91700000002,231076.989,231076.989,294218.20025,142488.22994999998,211797.31957999995,369413.92949999997,104843.19141999999,133340.83740999998,296889.681,296889.681,296889.681,296889.681,694771.48026,694771.48026 +26978400.0,297684.65099999995,190054.587,554959.39404,225912.91613,225912.91613,225912.91613,154888.15649999998,534855.86856,827585.66592,465864.06320999993,709888.09632,353215.674,353215.674,353215.674,243803.3675,297684.65099999995,297684.65099999995,314998.47768999997,178549.09785,265398.90593999997,462905.0685,131376.86706,167086.68663,363114.996,363114.996,363114.996,363114.996,895038.5173399999,895038.5173399999 +26982000.0,1056526.65,1102042.851,3217965.1249200003,1048136.26566,1048136.26566,1048136.26566,1065247.3195000002,1602426.9069599998,1574567.95072,1359571.76754,2071728.40768,650180.244,650180.244,650180.244,1617696.0625,1056526.65,1056526.65,2010375.4018399997,598478.9328,889590.9075199999,1551612.048,440362.27648,560058.06304,1423458.858,1423458.858,1423458.858,1423458.858,3176623.4609999997,3176623.4609999997 +26985600.0,1947226.83,1761728.6430000002,5144247.637560001,2421573.3944600006,2421573.3944600006,2421573.3944600006,1734015.948,2916761.06008,3258132.86208,2887302.13443,4399698.490560001,1200914.754,1200914.754,1200914.754,1765252.0374999999,1947226.83,1947226.83,2667572.28673,1529413.5203999998,2273350.4673599997,3965146.164,1125346.24464,1431228.94872,2156841.636,2156841.636,2156841.636,2156841.636,5854662.0022,5854662.0022 +26989200.0,2035960.602,1839852.6749999998,5372369.811,2198093.8173700003,2198093.8173700003,2198093.8173700003,2017760.073,3386417.19472,8166447.303040001,2538914.9444399998,3868822.77248,2127344.1629999997,2127344.1629999997,2127344.1629999997,2039763.432,2035960.602,2035960.602,1618602.06105,2982843.3545999997,4433757.28264,7733297.586,2194783.50536,2791352.1762800002,1610277.831,1610277.831,1610277.831,1610277.831,6121454.87668,6121454.87668 +26992800.0,1459482.684,1054548.0779999997,3079280.3877599994,1425023.87005,1425023.87005,1425023.87005,2161333.622,2857729.35896,5103137.58528,2899808.3809800004,4418755.628160001,2022969.0240000002,2022969.0240000002,2022969.0240000002,2248426.229,1459482.684,1459482.684,1557099.46743,2613611.7314999998,3884924.1045999997,6776030.415,1923101.9653999999,2445824.3117,1630927.713,1630927.713,1630927.713,1630927.713,4388177.936559999,4388177.936559999 +26996400.0,1099966.65,854442.585,2494972.3482,1343078.3720200001,1343078.3720200001,1343078.3720200001,1817489.9995,2956175.0332,5531240.5504,2154690.69039,3283338.1948800003,960425.601,960425.601,960425.601,1896346.9700000002,1099966.65,1099966.65,874651.91034,1822183.43175,2708529.4466999997,4724179.2675,1340767.0683000002,1705203.75465,1248035.4989999998,1248035.4989999998,1248035.4989999998,1248035.4989999998,3307233.0609999998,3307233.0609999998 +27000000.0,868777.818,725727.333,2119123.81236,904817.2270500001,904817.2270500001,904817.2270500001,1153126.0650000002,2141714.95008,2526162.5401600003,1601704.0241999999,2440691.8464,832512.8219999999,832512.8219999999,832512.8219999999,1172710.2415,868777.818,868777.818,788007.1100199999,1129255.93935,1678548.3345399997,2927700.5834999997,830909.30846,1056760.49633,911885.199,911885.199,911885.199,911885.199,2612125.3061199994,2612125.3061199994 +27003600.0,573930.453,433277.7359999999,1265170.9891199998,419186.53645,419186.53645,419186.53645,565277.2264999999,1159284.62928,1618836.7667200002,906537.4691100001,1381390.4291200002,518961.657,518961.657,518961.657,711130.5775,573930.453,573930.453,468405.34689,617954.6821499999,918540.0460599998,1602104.7315,454692.58093999996,578283.51737,595310.868,595310.868,595310.868,595310.868,1725617.56202,1725617.56202 +27007200.0,526153.506,406490.478,1186952.19576,342025.56355,342025.56355,342025.56355,519182.48199999996,1004744.32424,1513701.82528,803099.1068099999,1223770.06752,485009.961,485009.961,485009.961,616641.0460000001,526153.506,526153.506,417102.39674999996,565163.4627,840070.13468,1465238.607,415848.67132,528881.36386,528821.1000000001,528821.1000000001,528821.1000000001,528821.1000000001,1581968.20804,1581968.20804 +27010800.0,511963.20300000004,394171.71,1150981.3932,299246.53022,299246.53022,299246.53022,493953.14850000007,972065.1092,1465115.8687999998,773123.3395199999,1178092.70784,472864.761,472864.761,472864.761,579382.5380000001,511963.20300000004,511963.20300000004,395244.32337,543068.9833499999,807228.4641399998,1407956.6235,399591.49886,508205.29552999994,506204.382,506204.382,506204.382,506204.382,1539302.69702,1539302.69702 +27014400.0,895917.309,778214.76,2272387.0991999996,951710.4646500001,951710.4646500001,951710.4646500001,954464.9309999999,1708891.12896,3076654.96256,1427658.57255,2175479.7296,866942.1810000001,866942.1810000001,866942.1810000001,1137921.6345,895917.309,895917.309,986931.2785799999,1126552.5278999999,1674529.9303599996,2920691.7389999996,828920.1316399999,1054230.63722,984522.9720000001,984522.9720000001,984522.9720000001,984522.9720000001,2693724.70906,2693724.70906 +27018000.0,938460.1020000002,823640.007,2405028.82044,1045309.1704000001,1045309.1704000001,1045309.1704000001,1022979.0025,1817993.4016,3261738.0153599996,1520263.00335,2316591.2432,927810.3990000001,927810.3990000001,927810.3990000001,1200186.8235,938460.1020000002,938460.1020000002,1121086.4065699999,1190581.8129,1769704.32436,3086693.589,876033.0376400001,1114149.4002200002,1038861.3629999999,1038861.3629999999,1038861.3629999999,1038861.3629999999,2821636.7066800003,2821636.7066800003 +27021600.0,972613.7009999999,848130.399,2476540.76508,1129929.4398700001,1129929.4398700001,1129929.4398700001,1100956.01,1903279.1847999997,3367479.54944,1602423.43338,2441788.08896,963423.6569999999,963423.6569999999,963423.6569999999,1251424.7305,972613.7009999999,972613.7009999999,1195012.46059,1238631.0574499997,1841125.6705799997,3211265.7044999995,911387.7904199999,1159114.0019099999,1082995.815,1082995.815,1082995.815,1082995.815,2924325.1943399995,2924325.1943399995 +27025200.0,974965.9290000001,850173.573,2482506.83316,1147428.36417,1147428.36417,1147428.36417,1104595.0335,1909319.91728,3374920.12032,1625244.0048600002,2476562.2931200005,965867.229,965867.229,965867.229,1254177.0745,974965.9290000001,974965.9290000001,1197393.76172,1241187.7495499998,1844925.9882199997,3217894.1654999997,913269.0107799999,1161506.56069,1088603.688,1088603.688,1088603.688,1088603.688,2931397.5598600004,2931397.5598600004 +27028800.0,985239.9060000001,862524.1680000001,2518570.5705600004,1150137.12011,1150137.12011,1150137.12011,1105812.6905,1932871.7320799998,3429554.88896,1642194.55659,2502391.70528,980728.8929999999,980728.8929999999,980728.8929999999,1270146.9235,985239.9060000001,985239.9060000001,1211815.5173799999,1255183.73955,1865729.90422,3254180.0655,923567.2947800001,1174604.04269,1101941.094,1101941.094,1101941.094,1101941.094,2962287.98404,2962287.98404 +27032400.0,938338.074,777358.266,2269886.13672,943118.6458100001,943118.6458100001,943118.6458100001,842753.702,1603028.23424,2482187.09248,1352996.1813899998,2061708.4668799997,773346.6449999999,773346.6449999999,773346.6449999999,1002655.1255,938338.074,938338.074,1159673.35692,995583.90735,1479855.58574,2581143.4635,732553.0972600001,931669.87873,957624.3119999999,957624.3119999999,957624.3119999999,957624.3119999999,2821269.8091599997,2821269.8091599997 +27036000.0,421747.11600000004,300491.151,877434.16092,493721.3215,493721.3215,493721.3215,351290.21900000004,784636.2251200001,1023549.3932800001,635129.34114,967816.1388800001,354710.41500000004,354710.41500000004,354710.41500000004,441688.06149999995,421747.11600000004,421747.11600000004,679891.2296799999,223692.9777,332501.66068,579944.757,164593.84532,209332.44086,520328.541,520328.541,520328.541,520328.541,1268052.99544,1268052.99544 +27039600.0,153199.164,112597.353,328784.27076,158069.28027000002,158069.28027000002,158069.28027000002,64587.26749999999,322466.50328,803354.00192,288559.27926000004,439709.37792000006,214968.408,214968.408,214968.408,124431.67800000001,153199.164,153199.164,237915.64952999997,95313.53835,141675.92614,247109.17350000003,70131.93686,89194.64453,159578.124,159578.124,159578.124,159578.124,460618.81976,460618.81976 +27043200.0,162082.506,132090.546,385704.39432,145378.82084,145378.82084,145378.82084,52188.45450000001,370156.28784,865853.70496,299957.68803,457078.38176,231274.45500000002,231274.45500000002,231274.45500000002,126717.58400000002,162082.506,162082.506,251578.05048999994,99735.24734999999,148248.44173999998,258572.86349999998,73385.44125999999,93332.49072999999,165077.46600000001,165077.46600000001,165077.46600000001,165077.46600000001,487328.06804,487328.06804 +27046800.0,174840.06,174162.762,508555.26503999997,142953.72355,142953.72355,142953.72355,57797.64200000001,379802.20415999996,906013.6780800001,316078.66310999996,481643.67712,235283.10600000003,235283.10600000003,235283.10600000003,126857.55249999999,174840.06,174840.06,277011.03612,112122.79604999999,166661.53882,290688.7305,82500.23018,104924.78939,178546.08000000002,178546.08000000002,178546.08000000002,178546.08000000002,525685.7804,525685.7804 +27050400.0,192715.64700000003,186363.816,544182.34272,153271.14913,153271.14913,153271.14913,70800.947,390785.6148,956084.7545600001,360824.85537,549828.35104,304712.559,304712.559,304712.559,132108.984,192715.64700000003,192715.64700000003,297880.04844,124779.09464999998,185474.11105999997,323501.3565,91812.76594,116768.58486999999,241592.35799999998,241592.35799999998,241592.35799999998,241592.35799999998,579431.71198,579431.71198 +27054000.0,232015.40399999998,214576.239,626562.61788,162181.14022000003,162181.14022000003,162181.14022000003,80473.26699999999,459888.59448,987136.9817600001,397937.21331,606380.5155200001,377108.442,377108.442,377108.442,228698.49099999998,232015.40399999998,232015.40399999998,327922.92363999994,155622.56219999996,231320.45047999994,403465.90199999994,114507.46551999998,145631.97796,305250.44700000004,305250.44700000004,305250.44700000004,305250.44700000004,697592.9813599999,697592.9813599999 +27057600.0,294605.68799999997,244135.23599999998,712874.88912,173128.77681,173128.77681,173128.77681,84399.1085,608714.81576,1046436.34368,479054.90913,729988.43296,439461.864,439461.864,439461.864,267395.632,294605.68799999997,294605.68799999997,356297.79666000005,177863.24655,264379.44302,461126.9355,130872.21598000001,166444.86529000002,390306.09900000005,390306.09900000005,390306.09900000005,390306.09900000005,885781.1019199999,885781.1019199999 +27061200.0,366900.777,259480.37999999998,757682.7096,185522.00414,185522.00414,185522.00414,91334.201,656112.3550399999,1171942.7142400001,544225.08,829295.36,459458.02499999997,459458.02499999997,459458.02499999997,277605.95450000005,366900.777,366900.777,385891.8651899999,221856.09614999997,329771.28365999996,575182.4715,163242.26333999998,207613.48257,446374.908,446374.908,446374.908,446374.908,1103148.3361799999,1103148.3361799999 +27064800.0,465001.6830000001,310769.784,907447.76928,286214.3251000001,286214.3251000001,286214.3251000001,179772.58949999997,814511.38168,1459532.45952,686958.3323400001,1046793.6492800001,518631.95699999994,518631.95699999994,518631.95699999994,348945.4395,465001.6830000001,465001.6830000001,411356.68820999993,305482.73175,454075.5666999999,791992.2675,224774.94829999996,285871.49464999995,544515.108,544515.108,544515.108,544515.108,1398105.06022,1398105.06022 +27068400.0,1208141.58,1226010.501,3579950.6629199996,1119683.5404700001,1119683.5404700001,1119683.5404700001,1095269.6125,1931160.5595200001,2212211.1315200003,1612958.58108,2457841.64736,823980.42,823980.42,823980.42,1771222.264,1208141.58,1208141.58,2229569.9156899997,732789.3946499999,1089232.6310599998,1899824.3565,539188.2459399999,685746.1248699999,1619989.6889999998,1619989.6889999998,1619989.6889999998,1619989.6889999998,3632479.0171999997,3632479.0171999997 +27072000.0,2150397.699,1966352.8020000001,5741750.18184,2633538.9130599997,2633538.9130599997,2633538.9130599997,1903789.4505,3291012.8464800003,3758879.0521600004,3129473.16633,4768721.01536,1350985.317,1350985.317,1350985.317,2101587.712,2150397.699,2150397.699,3075998.9345799997,1682670.2103,2501154.2385199997,4362478.323,1238112.89548,1574646.93754,2318398.593,2318398.593,2318398.593,2318398.593,6465529.08166,6465529.08166 +27075600.0,2081153.832,1992830.8620000002,5819066.11704,2370551.2598900003,2370551.2598900003,2370551.2598900003,2206730.911,3538332.28544,8670752.90688,2682063.6009299997,4086954.05856,2208993.4020000002,2208993.4020000002,2208993.4020000002,2140042.6215,2081153.832,2081153.832,1578315.27594,3084672.80025,4585118.582099999,7997299.8525,2269709.8629,2886644.42295,1637536.8509999998,1637536.8509999998,1637536.8509999998,1637536.8509999998,6257335.8548799995,6257335.8548799995 +27079200.0,1420616.472,988640.385,2886829.9242,1454120.2389999998,1454120.2389999998,1454120.2389999998,2251885.6885,2897097.5698399995,5004555.3632000005,2859187.0135500003,4356856.4016,2060616.0359999998,2060616.0359999998,2060616.0359999998,2309736.6670000004,1420616.472,1420616.472,1460771.96395,2710112.823,4028365.2332,7026218.430000001,1994107.7068,2536130.2714,1545042.165,1545042.165,1545042.165,1545042.165,4271320.19248,4271320.19248 +27082800.0,985487.4450000001,732634.533,2139292.83636,1179044.32767,1179044.32767,1179044.32767,1870399.7585000005,2842084.3201599997,5586146.318080001,2066804.4933900002,3149416.3708800003,837982.89,837982.89,837982.89,1845006.016,985487.4450000001,985487.4450000001,701068.4667999999,1816829.271,2700570.9164,4710298.11,1336827.4636,1700193.3178,1125200.3879999998,1125200.3879999998,1125200.3879999998,1125200.3879999998,2963032.2512999997,2963032.2512999997 +27086400.0,853860.426,705226.188,2059260.4689599997,792035.61415,792035.61415,792035.61415,1209113.2304999998,2189383.86832,2392122.4524800004,1628433.46638,2481422.4249600004,829853.517,829853.517,829853.517,1133027.287,853860.426,853860.426,629974.33876,1101543.11775,1637355.4491,2855852.5275000003,810518.1459,1030826.76945,883627.5989999999,883627.5989999999,883627.5989999999,883627.5989999999,2567273.6808399996,2567273.6808399996 +27090000.0,448381.47899999993,299010.312,873110.1110399999,191855.51836,191855.51836,191855.51836,400191.28099999996,1024573.32592,1083044.5081600002,707390.4784799999,1077928.34816,383933.21400000004,383933.21400000004,383933.21400000004,511876.73600000003,448381.47899999993,448381.47899999993,282924.95035999996,416874.1383,619649.95372,1080784.803,306737.02028,390111.84794,436470.504,436470.504,436470.504,436470.504,1348133.6468599997,1348133.6468599997 +27093600.0,291554.082,175233.801,511682.69892,99200.09209,99200.09209,99200.09209,226229.8535,574691.57728,594723.44128,401633.00372999994,612012.1961599999,234261.56100000002,234261.56100000002,234261.56100000002,245963.96300000002,291554.082,291554.082,134098.88946999997,192111.70544999998,285558.6337799999,498067.3844999999,141356.26721999998,179778.60830999998,244306.434,244306.434,244306.434,244306.434,876605.93988,876605.93988 +27097200.0,330971.238,212731.785,621176.8122,85230.37468000001,85230.37468000001,85230.37468000001,265374.4415,641844.73864,750251.20256,458638.0113,698876.9696000001,278701.701,278701.701,278701.701,292900.67100000003,330971.238,330971.238,178273.69858999999,253842.69644999996,377316.7981799999,658110.6945,186778.08281999998,237546.62211,280797.348,280797.348,280797.348,280797.348,995120.18892,995120.18892 +27100800.0,981685.101,830540.205,2425177.3986,716781.53393,716781.53393,716781.53393,1067664.8605,1894161.9870399998,3289235.0720000006,1577966.62212,2404520.56704,962868.7320000001,962868.7320000001,962868.7320000001,1288575.8515,981685.101,981685.101,893604.89764,1248374.53125,1855608.5624999998,3236526.5625,918557.0625,1168231.96875,1060746.6030000001,1060746.6030000001,1060746.6030000001,1060746.6030000001,2951599.87034,2951599.87034 +27104400.0,1115187.7650000001,995524.533,2906931.63636,1170289.00472,1170289.00472,1170289.00472,1225169.092,2218765.57992,3917076.4825600004,1807304.2764,2753987.4688000004,1128939.816,1128939.816,1128939.816,1462284.082,1115187.7650000001,1115187.7650000001,1115270.01027,1428138.7992,2122813.7212799997,3702582.072,1050828.05472,1336455.81456,1223444.8229999999,1223444.8229999999,1223444.8229999999,1223444.8229999999,3352997.8800999997,3352997.8800999997 +27108000.0,1159966.0380000002,1029515.7780000002,3006186.07176,1324257.9309299998,1324257.9309299998,1324257.9309299998,1314358.9619999998,2340134.73752,4169136.06464,1912234.0605900001,2913880.47328,1183488.42,1183488.42,1183488.42,1530307.0195,1159966.0380000002,1159966.0380000002,1262543.93226,1503012.4857,2234107.44788,3896699.037,1105920.29812,1406522.79526,1296360.768,1296360.768,1296360.768,1296360.768,3487631.22092,3487631.22092 +27111600.0,1189648.371,1057398.8760000002,3087604.71792,1369244.9351900003,1369244.9351900003,1369244.9351900003,1348412.8420000002,2407911.6167200003,4290935.075200001,1968433.5400800002,2999517.7753600003,1222720.4849999999,1222720.4849999999,1222720.4849999999,1574549.977,1189648.371,1189648.371,1390878.2772300001,1543521.80475,2294321.2999,4001723.1975,1135727.1551,1444431.51605,1332960.96,1332960.96,1332960.96,1332960.96,3576876.1021399996,3576876.1021399996 +27115200.0,1199181.7349999999,1068282.741,3119385.6037199995,1394846.6678300002,1394846.6678300002,1394846.6678300002,1347961.7200000002,2426818.6225599996,4336902.2047999995,1998258.49545,3044965.3264,1234616.508,1234616.508,1234616.508,1587391.6695,1199181.7349999999,1199181.7349999999,1470037.4044199998,1555392.9257999999,2311966.76872,4032500.178,1144461.9552799999,1455540.54044,1349007.804,1349007.804,1349007.804,1349007.804,3605539.7498999997,3605539.7498999997 +27118800.0,1136526.75,960045.81,2803333.7652000003,1152137.27277,1152137.27277,1152137.27277,1031459.8455,2042657.9388,3170324.9734400003,1689643.9259699997,2574695.50624,977043.552,977043.552,977043.552,1266918.2435,1136526.75,1136526.75,1423992.16908,1241669.46465,1845642.0190599998,3219143.0565,913623.45794,1161957.35087,1185442.014,1185442.014,1185442.014,1185442.014,3417157.0949999997,3417157.0949999997 +27122400.0,514387.33199999994,373915.185,1091832.3402,599676.27456,599676.27456,599676.27456,418646.44499999995,1002786.86136,1312381.6672,791900.8194299999,1206706.0105599998,445206.912,445206.912,445206.912,545931.5015,514387.33199999994,514387.33199999994,824369.1179099999,277424.54235,412369.31974,719248.8135,204129.66326,259614.57173000003,635506.6140000001,635506.6140000001,635506.6140000001,635506.6140000001,1546591.24488,1546591.24488 +27126000.0,177875.076,140239.41,409499.0772,184829.61167000004,184829.61167000004,184829.61167000004,71551.63749999998,398334.94776,942725.7792,339802.92276,517794.92992,259219.62000000002,259219.62000000002,259219.62000000002,143373.4085,177875.076,177875.076,273741.82342,110797.8021,164692.04163999998,287253.561,81525.29636,103684.85678,183936.414,183936.414,183936.414,183936.414,534811.06184,534811.06184 +27129600.0,191023.35900000003,198900.17699999997,580788.5168399999,169200.49014,169200.49014,169200.49014,66560.7355,438451.35608000006,1013940.4492800001,351255.99264,535247.2268800001,268647.867,268647.867,268647.867,141429.21449999997,191023.35900000003,191023.35900000003,283591.27485,121101.26535,180007.31294,313966.24350000004,89106.61006,113326.86313000001,194424.579,194424.579,194424.579,194424.579,574343.5660600001,574343.5660600001 +27133200.0,202590.333,199210.00499999998,581693.2146,167943.49099,167943.49099,167943.49099,74991.8575,420729.3388,1008378.8,366769.55175,558886.936,306338.85900000005,306338.85900000005,306338.85900000005,136509.7685,202590.333,202590.333,308842.89462,129475.29645,192454.63817999998,335676.6945,95268.24282,121163.30211,240365.061,240365.061,240365.061,240365.061,609121.60122,609121.60122 +27136800.0,227346.759,214967.325,627704.589,170515.34027000002,170515.34027000002,170515.34027000002,79026.0415,453571.15695999993,1010552.1888000001,405539.35799999995,617964.7359999999,369845.517,369845.517,369845.517,183015.4305,227346.759,227346.759,329110.47896999994,151320.9114,224926.39176,392313.47400000005,111342.30024000001,141606.48252000002,303402.456,303402.456,303402.456,303402.456,683555.9220599999,683555.9220599999 +27140400.0,275821.617,236276.55599999998,689927.54352,174458.26265999998,174458.26265999998,174458.26265999998,84158.837,564552.3912000001,1029391.616,453024.8751,690323.6192000001,420054.75600000005,420054.75600000005,420054.75600000005,262998.6135,275821.617,275821.617,346853.47709999996,171837.48645,255422.63417999996,445504.5945,126438.44682,160805.94410999998,363648.39,363648.39,363648.39,363648.39,829303.66178,829303.66178 +27144000.0,340965.033,253363.344,739820.96448,180458.32178,180458.32178,180458.32178,84930.2335,641658.1739999999,1133013.0080000001,523640.84682000004,797928.9094400001,451018.05600000004,451018.05600000004,451018.05600000004,272376.38399999996,340965.033,340965.033,376332.46637999994,207146.3625,307906.445,537046.125,152418.805,193848.0775,423075.735,423075.735,423075.735,423075.735,1025168.19922,1025168.19922 +27147600.0,403172.181,280119.05100000004,817947.62892,191949.88945000002,191949.88945000002,191949.88945000002,96307.66249999999,688426.7335999999,1286636.3232,588177.8385,896270.992,463161.864,463161.864,463161.864,301594.853,403172.181,403172.181,382211.72456999996,255795.03135,380218.78734000004,663172.3035,188214.61566,239373.62193000002,474188.907,474188.907,474188.907,474188.907,1212204.3575399998,1212204.3575399998 +27151200.0,577738.443,333049.611,972504.8641199999,295868.31219,295868.31219,295868.31219,182733.75749999998,1217745.51712,1510600.6118400004,867272.0469,1321557.4048,507949.044,507949.044,507949.044,468483.7885,577738.443,577738.443,588564.28878,324493.71119999996,482333.86207999993,841279.992,238763.27391999998,303662.01616,593941.557,593941.557,593941.557,593941.557,1737066.91862,1737066.91862 +27154800.0,1283783.517,716066.2620000001,2090913.4850400002,1716350.0296800002,1716350.0296800002,1716350.0296800002,1518185.7774999999,3516081.3072799994,4452367.06432,3069538.55124,4677392.07808,1336829.3609999998,1336829.3609999998,1336829.3609999998,2011745.7850000001,1283783.517,1283783.517,2721227.9136899994,1737509.5592999998,2582668.53012,4504654.413,1278463.82388,1625965.7357400001,1580372.316,1580372.316,1580372.316,1580372.316,3859909.1077799997,3859909.1077799997 +27158400.0,1156769.154,1245174.156,3635908.53552,2233581.15266,2233581.15266,2233581.15266,2016697.9805000003,4358218.06144,3424873.7363200006,3354393.50547,5111456.77024,1354011.561,1354011.561,1354011.561,1912977.3215,1156769.154,1156769.154,2238771.5948,2216265.3729,3294300.62836,5745873.189,1630733.53364,2073986.6082200003,1607390.5499999998,1607390.5499999998,1607390.5499999998,1607390.5499999998,3478019.2563600005,3478019.2563600005 +27162000.0,1931604.8790000002,2113821.87,6172359.860400001,1387981.70115,1387981.70115,1387981.70115,2310625.1840000004,4240084.38064,6723116.436480001,3374521.78665,5142128.4368,1756861.998,1756861.998,1756861.998,1417616.4765,1931604.8790000002,1931604.8790000002,2648384.5714300005,1845954.1939499998,2743862.7771799997,4785807.1695,1358257.65382,1727448.49261,2149345.632,2149345.632,2149345.632,2149345.632,5807692.00286,5807692.00286 +27165600.0,1467796.455,1101543.9239999999,3216508.2580799996,686932.8417600001,686932.8417600001,686932.8417600001,882915.5229999999,2211432.03496,7162057.937920001,1386976.038,2113487.296,1455422.121,1455422.121,1455422.121,1446576.915,1467796.455,1467796.455,2235269.41937,2233916.9495999995,3320538.280639999,5791636.535999999,1643721.6073599998,2090504.9972799998,971136.294,971136.294,971136.294,971136.294,4413174.674699999,4413174.674699999 +27169200.0,747785.0580000001,601994.598,1757824.22616,386391.18056,386391.18056,386391.18056,541064.9895,1482430.52896,4184639.0745600006,912235.7533800001,1390073.5289600003,610952.388,610952.388,610952.388,579297.9114999999,747785.0580000001,747785.0580000001,782923.7,1089273.44835,1619117.57014,2824042.2735,801490.09286,1019344.7825300001,601265.928,601265.928,601265.928,601265.928,2248340.40772,2248340.40772 +27172800.0,798024.804,1198487.919,3499584.7234799997,640521.2683100001,640521.2683100001,640521.2683100001,930190.912,1711203.5996,2804494.06912,1319301.68118,2010364.4665600003,707908.74,707908.74,707908.74,1065127.3465,798024.804,798024.804,925309.4739199999,846688.10355,1258533.9218199998,2195117.3055,622995.19718,792332.81789,789883.521,789883.521,789883.521,789883.521,2399394.5773599995,2399394.5773599995 +27176400.0,630462.966,682340.646,1992434.6863199999,473039.93396,473039.93396,473039.93396,866747.5215,1299398.68016,2023381.70304,930599.49066,1418056.36672,574227.237,574227.237,574227.237,689226.8635,630462.966,630462.966,685539.04991,656264.9564999999,975485.1945999998,1701427.6649999998,482881.37539999996,614134.3666999999,584112.888,584112.888,584112.888,584112.888,1895591.98444,1895591.98444 +27180000.0,538167.135,455133.22500000003,1328989.017,246353.94575,246353.94575,246353.94575,476978.91500000004,1154392.6423199999,1812560.1824000003,797351.5661999999,1215011.9104,520904.274,520904.274,520904.274,430463.8345,538167.135,538167.135,602061.35561,562264.98705,835761.78322,1457724.0405000001,413715.96578,526168.96319,517014.627,517014.627,517014.627,517014.627,1618089.1858999997,1618089.1858999997 +27183600.0,738486.744,883669.6410000001,2580315.35172,1126395.35305,1126395.35305,1126395.35305,1115356.9000000001,1719558.71824,1947543.3593600001,1323707.9356200001,2017078.7590400001,637263.783,637263.783,637263.783,1171972.0145,738486.744,738486.744,1052488.95713,994192.5582,1477787.45688,2577536.262,731529.33912,930367.8507600001,709070.253,709070.253,709070.253,709070.253,2220383.4769599997,2220383.4769599997 +27187200.0,920516.2890000001,1318136.6460000002,3848959.00632,1478235.9780100002,1478235.9780100002,1478235.9780100002,1161340.4775,2429540.9502399997,3220947.82912,1742601.7992600002,2655393.21792,1017920.808,1017920.808,1017920.808,1609225.2155,920516.2890000001,920516.2890000001,1570794.19159,1355540.8158000002,2014902.6447200002,3514365.0780000007,997410.2792800001,1268518.4424400001,1110037.1670000001,1110037.1670000001,1110037.1670000001,1110037.1670000001,2767685.64226,2767685.64226 +27190800.0,874278.9209999999,1225967.274,3579824.4400799996,1075490.46704,1075490.46704,1075490.46704,1028196.8619999998,2382126.09536,3253291.8496,1573197.8906699999,2397253.92864,883715.082,883715.082,883715.082,1299261.3445000001,874278.9209999999,874278.9209999999,1276535.1592499998,1171175.4198,1740858.27832,3036380.7180000003,861753.7656800001,1095988.8496400001,1072263.294,1072263.294,1072263.294,1072263.294,2628665.2891399995,2628665.2891399995 +27194400.0,2212985.361,1803194.4390000002,5265327.761880001,3459537.7329700007,3459537.7329700007,3459537.7329700007,2882381.2605,3477967.07288,6738764.128640001,3714912.8198700002,5660819.53504,2327581.5840000003,2327581.5840000003,2327581.5840000003,2993033.7185,2212985.361,2212985.361,3647556.16485,2839207.4802,4220254.08168,7360908.282000001,2089095.8743200002,2656937.3703600005,2463664.842,2463664.842,2463664.842,2463664.842,6653709.31874,6653709.31874 +27198000.0,1620138.63,914943.7110000001,2671635.63612,1961828.9539200002,1961828.9539200002,1961828.9539200002,1712171.8075,2611996.83488,4500114.65152,2366151.92058,3605564.83136,1563755.997,1563755.997,1563755.997,1915967.676,1620138.63,1620138.63,1331549.71703,1814093.5284,2696504.4545599995,4703205.444,1334814.4974399998,1697633.20312,1711529.838,1711529.838,1711529.838,1711529.838,4871216.814199999,4871216.814199999 +27201600.0,1203667.662,877341.216,2561836.35072,1229600.5327100002,1229600.5327100002,1229600.5327100002,1240049.9825,1994898.83344,3713936.7315200004,1743975.79902,2657486.93184,1068057.708,1068057.708,1068057.708,1435492.3765,1203667.662,1203667.662,1264510.9625199998,1398699.6448499998,2079054.7807399996,3626258.3384999996,1029166.6522599999,1308906.58123,1221597.4649999999,1221597.4649999999,1221597.4649999999,1221597.4649999999,3619027.43708,3619027.43708 +27205200.0,1063350.21,895307.772,2614298.69424,1200452.14102,1200452.14102,1200452.14102,1191555.5015,1953908.49832,3713471.8726399997,1706020.0844400001,2599649.6524800006,1059752.724,1059752.724,1059752.724,1399882.862,1063350.21,1063350.21,1293612.9103299999,1375894.7954999998,2045157.2021999997,3567134.655,1012386.7877999999,1287565.7469,1196950.035,1196950.035,1196950.035,1196950.035,3197139.6314,3197139.6314 +27208800.0,749987.661,644509.9770000001,1881969.13284,778926.1522900001,778926.1522900001,778926.1522900001,649151.1074999999,1021867.07576,2291079.5008,981333.9314100001,1495365.9907200001,570005.3640000001,570005.3640000001,570005.3640000001,700424.8089999999,749987.661,749987.661,916608.8092199999,644656.3766999999,958229.9722799999,1671331.3469999998,474339.75372,603271.02906,754170.5249999999,754170.5249999999,754170.5249999999,754170.5249999999,2254962.90074,2254962.90074 +27212400.0,130679.13,116480.955,340124.3886,131251.95259,131251.95259,131251.95259,66782.5585,216492.8296,827679.44064,246995.20209000004,376373.64128000004,191436.369,191436.369,191436.369,124421.41600000001,130679.13,130679.13,246113.0776,95627.4741,142142.56644,247923.081,70362.93156,89488.42638,159002.991,159002.991,159002.991,159002.991,392908.5842,392908.5842 +27216000.0,132175.05599999998,117092.715,341910.7278,130027.95707000002,130027.95707000002,130027.95707000002,46243.228500000005,232905.51304,832612.97664,269687.23761,410951.98112,190354.689,190354.689,190354.689,120920.4605,132175.05599999998,132175.05599999998,246276.27128,90663.3081,134763.73204,235053.021,66710.28596,84842.94758000001,164946.798,164946.798,164946.798,164946.798,397406.33504,397406.33504 +27219600.0,145135.698,136401.18600000002,398291.46312000003,127852.13914,127852.13914,127852.13914,51871.6555,270770.30352,829845.82272,283320.84963,431727.00896,188556.843,188556.843,188556.843,119304.51049999999,145135.698,145135.698,266144.68815999996,95514.96105,141975.32481999998,247631.3805,70280.14418,89383.13639,169232.328,169232.328,169232.328,169232.328,436374.66532,436374.66532 +27223200.0,166157.814,148751.736,434355.06912,126830.95986000002,126830.95986000002,126830.95986000002,56292.515999999996,348689.18367999996,842254.24512,328724.81061000004,500913.9971200001,196404.804,196404.804,196404.804,120405.3165,166157.814,166157.814,282470.86230999994,114792.18345,170629.36898,297609.3645,84464.37202,107422.80871,205062.135,205062.135,205062.135,205062.135,499581.16076,499581.16076 +27226800.0,209469.34500000003,162447.12,474345.5904,137532.70333000002,137532.70333000002,137532.70333000002,77062.321,385438.2713600001,841122.60544,360841.47057,549853.6694400001,293045.418,293045.418,293045.418,184610.10749999998,209469.34500000003,209469.34500000003,292691.44852999994,135640.1052,201618.13167999996,351659.532,99804.32432,126932.34535999999,275048.80199999997,275048.80199999997,275048.80199999997,275048.80199999997,629804.4973,629804.4973 +27230400.0,249186.13199999998,195585.38100000002,571109.31252,147584.88701000003,147584.88701000003,147584.88701000003,79160.59899999999,478847.38944,863829.3830400002,408549.50577000005,622551.6278400001,360474.02999999997,360474.02999999997,360474.02999999997,235124.37900000002,249186.13199999998,249186.13199999998,319004.01480999996,153179.73990000002,227689.39116,397132.65900000004,112710.03084,143345.97882000002,314787.22199999995,314787.22199999995,314787.22199999995,314787.22199999995,749219.6368799999,749219.6368799999 +27234000.0,310733.658,231801.888,676861.51296,173035.54125,173035.54125,173035.54125,87997.1995,567309.3967999999,930127.8489600002,487085.80809000006,742225.99328,400422.43799999997,400422.43799999997,400422.43799999997,250454.0745,310733.658,310733.658,347080.83137,175216.00455,260444.53022,454263.71550000005,128924.36878,163967.56969,396889.50600000005,396889.50600000005,396889.50600000005,396889.50600000005,934272.53172,934272.53172 +27237600.0,510264.31799999997,276029.529,806006.2246799999,283214.58451,283214.58451,283214.58451,169114.68349999998,1083848.50832,1232477.67424,769304.6256,1172273.7152000002,459799.515,459799.515,459799.515,386166.6235,510264.31799999997,510264.31799999997,564018.71448,256907.9754,381873.08936,666057.714,189033.52264,240415.11772,538389.963,538389.963,538389.963,538389.963,1534194.71612,1534194.71612 +27241200.0,1252588.458,629992.62,1839578.4504,1644462.98313,1644462.98313,1644462.98313,1454790.4419999998,3428114.3859199993,4224447.482240001,2966827.6400699997,4520880.21344,1210309.8900000001,1210309.8900000001,1210309.8900000001,1737915.5535,1252588.458,1252588.458,2614162.28723,1590451.21215,2364078.09806,4123392.0315000005,1170257.92894,1488348.17137,1550049.7140000002,1550049.7140000002,1550049.7140000002,1550049.7140000002,3766115.9637200003,3766115.9637200003 +27244800.0,1121550.4470000002,1234579.596,3604972.42032,2010860.6834800001,2010860.6834800001,2010860.6834800001,1942299.7825000002,4232465.96048,3294224.1830400005,3260537.97909,4968438.82528,1341921.6749999998,1341921.6749999998,1341921.6749999998,1795210.0914999999,1121550.4470000002,1121550.4470000002,2226183.73341,2166443.7713999995,3220244.815759999,5616706.073999999,1594074.6762399997,2027363.4305199997,1589618.094,1589618.094,1589618.094,1589618.094,3372128.3439800004,3372128.3439800004 +27248400.0,2083997.928,2276052.117,6646072.18164,1635918.37222,1635918.37222,1635918.37222,2204267.275,4468981.54544,7469406.960000001,3681906.45459,5610524.121280001,1977198.369,1977198.369,1977198.369,1668001.958,2083997.928,2083997.928,2458399.8215399995,1939328.7340499999,2882656.5380199994,5027889.3105,1426962.87098,1814828.6177899998,2335742.571,2335742.571,2335742.571,2335742.571,6265887.10352,6265887.10352 +27252000.0,1519176.552,1094118.123,3194824.9191599996,728187.48508,728187.48508,728187.48508,927074.561,2339118.9804800004,7162734.271360001,1445934.4376400001,2203328.6668800004,1516130.079,1516130.079,1516130.079,1531339.1834999998,1519176.552,1519176.552,2030068.196,2267489.8377,3370441.6846799995,5878677.357,1668424.62132,2121922.58886,1070963.3099999998,1070963.3099999998,1070963.3099999998,1070963.3099999998,4567657.499679999,4567657.499679999 +27255600.0,795860.202,625106.571,1825311.1873199998,416912.74141,416912.74141,416912.74141,595036.9214999999,1518872.1055999997,4093329.3600000003,989450.02674,1507733.3740800002,661621.8060000001,661621.8060000001,661621.8060000001,641477.4554999999,795860.202,795860.202,814339.8734899999,1160563.6867499999,1725084.7887,3008868.8175,853945.6263,1086058.36365,646421.613,646421.613,646421.613,646421.613,2392886.34068,2392886.34068 +27259200.0,873800.0970000001,1232468.9489999998,3598809.3310799995,721471.4152800001,721471.4152800001,721471.4152800001,1019343.6680000001,1887541.6696,3148278.89472,1475810.30604,2248853.79968,805674.4500000001,805674.4500000001,805674.4500000001,1159426.5025,873800.0970000001,873800.0970000001,1032215.87495,954037.9826999999,1418100.90268,2473431.807,701983.50332,892791.0998600001,881069.808,881069.808,881069.808,881069.808,2627225.62498,2627225.62498 +27262800.0,622491.7889999999,656932.464,1918242.79488,449574.4792,449574.4792,449574.4792,866555.5885000001,1282556.8793600001,1956889.8995200002,910304.8256399999,1387131.16288,567329.133,567329.133,567329.133,701237.9115,622491.7889999999,622491.7889999999,642584.95145,637013.4759,946869.4135599999,1651516.419,468716.08843999996,596118.78362,568539.672,568539.672,568539.672,568539.672,1871625.3122599998,1871625.3122599998 +27266400.0,510671.985,423586.983,1236873.99036,216833.50722000003,216833.50722000003,216833.50722000003,446414.23050000006,1084911.3124,1660211.8073600002,744106.81989,1133877.0588800001,483703.32,483703.32,483703.32,397241.9745,510671.985,510671.985,554233.85654,516286.85579999996,767418.9807199999,1338521.478,379885.14327999996,483142.51443999994,480979.21499999997,480979.21499999997,480979.21499999997,480979.21499999997,1535420.4349,1535420.4349 +27270000.0,958097.0639999999,1134216.645,3311912.6033999994,1432905.25411,1432905.25411,1432905.25411,1390467.9564999999,2160026.07736,2887206.4838400004,1704867.33249,2597893.0780800004,859727.832,859727.832,859727.832,1413613.397,958097.0639999999,958097.0639999999,1444461.52331,1317256.1901,1957995.62084,3415108.6410000003,969240.3571600001,1232691.5951800002,998912.229,998912.229,998912.229,998912.229,2880678.5057599996,2880678.5057599996 +27273600.0,956345.457,1322920.326,3862927.35192,1594833.0571800002,1594833.0571800002,1594833.0571800002,1181176.8885,2462392.6263200003,3244662.9216000005,1810496.30748,2758851.51616,1041207.882,1041207.882,1041207.882,1650063.5935,956345.457,956345.457,1584890.8201099997,1374027.99255,2042382.34942,3562294.7955000005,1011013.1895800001,1285818.7880900002,1138877.3220000002,1138877.3220000002,1138877.3220000002,1138877.3220000002,2875412.00738,2875412.00738 +27277200.0,911070.2520000001,1284835.371,3751719.28332,1099362.1810599999,1099362.1810599999,1099362.1810599999,1076236.6265,2434083.9504799997,3339697.8175999997,1624288.47147,2475106.24224,924163.503,924163.503,924163.503,1337237.2755,911070.2520000001,911070.2520000001,1352960.47484,1203898.9014,1789499.10776,3121219.3740000003,885831.7842400001,1126611.56452,1120321.3020000001,1120321.3020000001,1120321.3020000001,1120321.3020000001,2739284.55768,2739284.55768 +27280800.0,2241873.825,1832289.0240000002,5350283.95008,3519379.89128,3519379.89128,3519379.89128,2911742.3090000004,3567334.759119999,6858880.41664,3753752.4341100003,5720003.709120001,2357307.735,2357307.735,2357307.735,3024260.5505,2241873.825,2241873.825,3789959.1537599997,2895734.5613999995,4304277.051759999,7507459.973999999,2130688.64024,2709835.55252,2500728.606,2500728.606,2500728.606,2500728.606,6740567.3005,6740567.3005 +27284400.0,1674260.6609999998,950707.221,2776065.08532,2125222.9663500004,2125222.9663500004,2125222.9663500004,1766650.6795,2699092.8604,4750611.38688,2479280.8133099996,3777951.7155199996,1687256.5229999996,1687256.5229999996,1687256.5229999996,2124523.2715,1674260.6609999998,1674260.6609999998,1479168.11679,1938004.42455,2880688.05822,5024455.9155,1425988.44078,1813589.32569,1806615.2100000002,1806615.2100000002,1806615.2100000002,1806615.2100000002,5033943.72074,5033943.72074 +27288000.0,1249160.388,911512.992,2661617.93664,1281146.3012700002,1281146.3012700002,1281146.3012700002,1328274.4405,2075666.2670400003,3913821.7958400007,1818468.6765,2770999.888,1114988.595,1114988.595,1114988.595,1508330.8275,1249160.388,1249160.388,1315235.11093,1465985.7656999999,2179070.1998799997,3800703.837,1078675.94612,1371873.09926,1285042.023,1285042.023,1285042.023,1285042.023,3755808.89992,3755808.89992 +27291600.0,1098986.5559999999,928696.6799999999,2711794.3056,1244969.63415,1244969.63415,1244969.63415,1233091.7445,2022519.24192,3835562.36928,1762353.33561,2685490.7971200002,1102993.23,1102993.23,1102993.23,1462302.9224999999,1098986.5559999999,1098986.5559999999,1347505.9781299997,1423363.0311,2115714.92524,3690200.4510000004,1047314.03276,1331986.63898,1244017.926,1244017.926,1244017.926,1244017.926,3304286.2450399995,3304286.2450399995 +27295200.0,770125.23,663275.247,1936763.72124,805660.28917,805660.28917,805660.28917,669605.0515,1057143.8936,2354087.13664,1014106.0851600001,1545304.5107200001,587543.391,587543.391,587543.391,725322.0135,770125.23,770125.23,949556.2895,664734.4420499998,988074.4052199998,1723385.5904999997,489113.24377999996,622060.1321899999,782534.0819999999,782534.0819999999,782534.0819999999,782534.0819999999,2315509.8582,2315509.8582 +27298800.0,132476.088,117678.93,343622.47559999995,149185.40230000002,149185.40230000002,149185.40230000002,67392.6715,219473.74664,839382.0448000001,255686.79192,389617.96864,195094.386,195094.386,195094.386,126077.1085,132476.088,132476.088,248393.38315999997,97187.36805,144461.22362,251967.25050000002,71510.70538,90948.17899,166078.74,166078.74,166078.74,166078.74,398311.43791999994,398311.43791999994 +27302400.0,133909.566,117089.31599999999,341900.80272,133532.24335,133532.24335,133532.24335,46476.626000000004,234141.36800000002,832796.62016,271632.65535,413916.4272,191497.956,191497.956,191497.956,121282.882,133909.566,133909.566,245670.78848,90857.9835,135053.10139999999,235557.735,66853.5286,85025.1253,167119.15499999997,167119.15499999997,167119.15499999997,167119.15499999997,402621.42843999993,402621.42843999993 +27306000.0,146639.61,137024.679,400112.06268000003,129081.05936000003,129081.05936000003,129081.05936000003,53268.341,269251.20272,833066.4876799999,287420.99799,437974.85408,190194.77999999997,190194.77999999997,190194.77999999997,119886.4485,146639.61,146639.61,266753.86984999996,96788.98169999999,143869.05427999998,250934.397,71217.57171999999,90575.36806,171370.239,171370.239,171370.239,171370.239,440896.4273999999,440896.4273999999 +27309600.0,166962.756,147211.08299999998,429856.36235999997,125877.72923,125877.72923,125877.72923,56715.4525,335498.38152,827831.52128,326277.88430999994,497185.34751999995,194206.347,194206.347,194206.347,119053.09149999998,166962.756,166962.756,277465.46568,114121.39815,169632.30046,295870.2915,83970.80654,106795.08617,205337.59499999997,205337.59499999997,205337.59499999997,205337.59499999997,502001.35303999996,502001.35303999996 +27313200.0,210318.318,161989.188,473008.42896,138160.63514,138160.63514,138160.63514,77541.04400000001,378867.20848000003,837294.1728000001,361266.68928,550501.62176,283164.74399999995,283164.74399999995,283164.74399999995,185425.632,210318.318,210318.318,292031.80513,136199.09024999998,202449.0181,353108.7525,100215.6269,127455.44494999999,275876.889,275876.889,275876.889,275876.889,632357.07612,632357.07612 +27316800.0,247859.75400000002,187272.93300000002,546836.96436,147182.54309000002,147182.54309000002,147182.54309000002,79009.3955,467977.95223999996,851034.62272,406989.93258,620175.1353600001,354523.149,354523.149,354523.149,233596.83900000004,247859.75400000002,247859.75400000002,316158.58716,152774.7075,227087.343,396082.575,112412.007,142966.9485,312543.579,312543.579,312543.579,312543.579,745231.66036,745231.66036 +27320400.0,304859.598,224299.49699999997,654954.5312399999,168304.46743000002,168304.46743000002,168304.46743000002,86660.392,544636.91664,899520.7552000001,478317.46956000006,728864.7155200001,385743.363,385743.363,385743.363,244108.0635,304859.598,304859.598,337396.38218,171439.42005000002,254830.94042,444472.57050000003,126145.54858000002,160433.43259,386019.83999999997,386019.83999999997,386019.83999999997,386019.83999999997,916611.19132,916611.19132 +27324000.0,496919.583,265104.147,774104.10924,277466.41769000003,277466.41769000003,277466.41769000003,167131.59399999998,1050836.46,1173702.9241600002,751381.1621399999,1144961.77088,438467.688,438467.688,438467.688,376612.0995,496919.583,496919.583,550537.38597,243014.69745,361221.84657999995,630038.1045,178810.81442,227413.75391,519238.59300000005,519238.59300000005,519238.59300000005,519238.59300000005,1494071.54622,1494071.54622 +27327600.0,1230731.67,594222.3929999999,1735129.38756,1641455.0821900002,1641455.0821900002,1641455.0821900002,1448404.4959999998,3375795.88744,4094117.30048,2927368.9743899996,4460752.722879999,1167855.2999999998,1167855.2999999998,1167855.2999999998,1706500.6805,1230731.67,1230731.67,2586515.1768300002,1566075.80925,2327846.0176999997,4060196.5425,1152322.4473,1465537.6091500001,1518292.065,1518292.065,1518292.065,1518292.065,3700399.8878,3700399.8878 +27331200.0,1087749.537,1205938.446,3521340.26232,1978505.5103,1978505.5103,1978505.5103,1916371.0894999998,4147328.01104,3165449.04704,3198931.41603,4874562.15776,1300584.645,1300584.645,1300584.645,1746117.8805,1087749.537,1087749.537,2188532.06351,2131200.4446,3167858.4386400003,5525334.4860000005,1568142.54936,1994382.6382800003,1545430.8570000003,1545430.8570000003,1545430.8570000003,1545430.8570000003,3270500.27458,3270500.27458 +27334800.0,2042357.307,2223325.7520000003,6492111.19584,1575770.1254900002,1575770.1254900002,1575770.1254900002,2117030.2649999997,4330693.79688,7269561.96672,3574620.2727900003,5447040.415680001,1914352.449,1914352.449,1914352.449,1586092.7915,2042357.307,2042357.307,2340789.5206799996,1848534.0277500001,2747697.4931,4792495.6275,1360155.9019000002,1729862.70745,2283377.2589999996,2283377.2589999996,2283377.2589999996,2283377.2589999996,6140687.636379999,6140687.636379999 +27338400.0,1453242.717,1043160.456,3046028.5315199997,691578.9258400002,691578.9258400002,691578.9258400002,862846.5335,2163071.8884799997,6887323.54368,1329131.32044,2025342.96448,1422471.78,1422471.78,1422471.78,1452536.099,1453242.717,1453242.717,1957678.19624,2200465.0349999997,3270814.6939999997,5704909.35,1619107.606,2059200.613,995213.3579999999,995213.3579999999,995213.3579999999,995213.3579999999,4369416.43578,4369416.43578 +27342000.0,756088.743,591700.0619999999,1727764.18104,390007.48138,390007.48138,390007.48138,554213.8875,1412602.7760799997,3711168.9030400002,921132.0531,1403629.7952,605131.014,605131.014,605131.014,589822.1945,756088.743,756088.743,758909.54412,1059286.8312,1574544.87008,2746299.192,779425.86592,991283.23216,602103.501,602103.501,602103.501,602103.501,2273306.82062,2273306.82062 +27345600.0,813507.3359999999,1182936.42,3454174.3463999997,678789.17469,678789.17469,678789.17469,963042.5770000002,1753002.8389599998,2880069.01888,1377212.42001,2098609.40192,732023.682,732023.682,732023.682,1093971.3084999998,813507.3359999999,813507.3359999999,956455.1811099999,878221.9381499998,1305406.4364599998,2276871.6914999997,646197.8705399999,821842.2581699999,813108.1680000001,813108.1680000001,813108.1680000001,813108.1680000001,2445945.3902399996,2445945.3902399996 +27349200.0,640545.5430000001,664846.1699999999,1941350.8164,492487.56612000003,492487.56612000003,492487.56612000003,889920.3915,1305889.6474399997,2039130.1984,951536.6374499999,1449960.5903999999,581912.709,581912.709,581912.709,700173.3865,640545.5430000001,640545.5430000001,694222.2158299999,669960.49725,995842.5168999999,1736934.6225,492958.5881,626950.68755,593929.248,593929.248,593929.248,593929.248,1925906.93262,1925906.93262 +27352800.0,536204.916,449995.1610000001,1313985.87012,253848.04082000005,253848.04082000005,253848.04082000005,480753.52150000003,1130967.6664800001,1769729.51744,792362.29212,1207409.20704,510059.526,510059.526,510059.526,429729.7795,536204.916,536204.916,591224.12258,557098.1509499999,828081.6959799998,1444328.5395,409914.19502,521333.82521,511421.676,511421.676,511421.676,511421.676,1612189.4474399998,1612189.4474399998 +27356400.0,963343.668,1132170.972,3305939.2382400003,1457749.2707800001,1457749.2707800001,1457749.2707800001,1396257.758,2158666.90496,2895929.79584,1723466.2907699998,2626234.34784,869267.8770000001,869267.8770000001,869267.8770000001,1419103.9974999998,963343.668,963343.668,1469095.0677,1322820.1692,1966266.0292799997,3429533.772,973334.3467199999,1237898.38056,1007597.04,1007597.04,1007597.04,1007597.04,2896453.29512,2896453.29512 +27360000.0,956611.959,1320224.835,3855056.5182,1605970.53485,1605970.53485,1605970.53485,1183596.162,2435596.30608,3236969.314560001,1806009.94749,2752015.15808,1042561.6499999999,1042561.6499999999,1042561.6499999999,1653054.48,956611.959,956611.959,1583878.1756199999,1372666.0625999998,2040357.94984,3558763.866,1010011.0781599999,1284544.29068,1138747.731,1138747.731,1138747.731,1138747.731,2876213.2900599996,2876213.2900599996 +27363600.0,902652.552,1272674.007,3716208.1004399997,1094896.4183300002,1094896.4183300002,1094896.4183300002,1068835.6630000002,2405300.89144,3291110.8384000002,1607131.9154100001,2448962.91872,911744.6490000001,911744.6490000001,911744.6490000001,1326788.113,902652.552,902652.552,1366456.03614,1194109.4925000002,1774947.9370000002,3095839.4250000003,878628.7130000001,1117450.6115,1111767.507,1111767.507,1111767.507,1111767.507,2713975.3396799997,2713975.3396799997 +27367200.0,2237278.587,1830443.1239999998,5344893.92208,3521685.23696,3521685.23696,3521685.23696,2908960.6,3557290.63656,6828222.63296,3747381.5530200005,5710295.699840001,2353602.642,2353602.642,2353602.642,3019435.6255,2237278.587,2237278.587,3818807.2345799995,2884903.4519999996,4288177.476799999,7479379.319999999,2122719.0831999998,2699699.7736,2500823.787,2500823.787,2500823.787,2500823.787,6726750.951579999,6726750.951579999 +27370800.0,1688736.7110000001,964864.6799999999,2817404.8656,2160544.18459,2160544.18459,2160544.18459,1783081.041,2725563.2502399995,4791633.208320001,2502202.4815200004,3812879.9718400002,1718252.7539999997,1718252.7539999997,1718252.7539999997,2147363.0640000002,1688736.7110000001,1688736.7110000001,1500785.7478899998,1966879.6812,2923608.8100799997,5099317.692,1447234.92592,1840610.86216,1830293.3879999998,1830293.3879999998,1830293.3879999998,1830293.3879999998,5077468.37774,5077468.37774 +27374400.0,1263213.279,924022.4010000001,2698145.41092,1307274.56574,1307274.56574,1307274.56574,1352983.443,2101054.9195199995,3964069.9878400005,1840227.8265000002,2804156.6880000005,1132602.2280000001,1132602.2280000001,1132602.2280000001,1530847.0659999999,1263213.279,1263213.279,1333010.1821400002,1484529.65055,2206634.19662,3848780.5755000003,1092320.58238,1389226.51249,1303438.2480000001,1303438.2480000001,1303438.2480000001,1303438.2480000001,3798061.25886,3798061.25886 +27378000.0,1090388.835,920688.315,2688409.8797999998,1240260.84765,1240260.84765,1240260.84765,1223938.9855,2001968.0366399998,3779638.7775999997,1746014.74005,2660593.8896,1093094.5860000001,1093094.5860000001,1093094.5860000001,1449357.189,1090388.835,1090388.835,1339162.3501099998,1408328.39835,2093367.1501399998,3651221.7735,1036251.51286,1317917.1925300001,1232571.0869999998,1232571.0869999998,1232571.0869999998,1232571.0869999998,3278435.7639,3278435.7639 +27381600.0,762588.852,654724.935,1911796.8102000002,802218.1802800001,802218.1802800001,802218.1802800001,664822.6865000001,1041698.2966400001,2311631.2441600002,1002795.5437500001,1528069.4000000001,578973.8670000001,578973.8670000001,578973.8670000001,717980.5395,762588.852,762588.852,941486.9373,656356.6322999999,975621.4633199999,1701665.3429999999,482948.83067999996,614220.1571399999,774818.628,774818.628,774818.628,774818.628,2292850.4816799997,2292850.4816799997 +27385200.0,133415.49300000002,118622.52599999998,346377.77592,149273.4364,149273.4364,149273.4364,67764.879,221374.94695999997,849648.4672000001,255157.54467,388811.49664,198138.18600000002,198138.18600000002,198138.18600000002,127425.9175,133415.49300000002,133415.49300000002,250231.99122999996,98084.92904999999,145795.37602,254294.2605,72171.13298,91788.11879000001,167516.313,167516.313,167516.313,167516.313,401135.91562000004,401135.91562000004 +27388800.0,133958.712,117458.652,342979.26383999997,134373.58561,134373.58561,134373.58561,46674.0155,233725.08112000002,837617.56992,272456.05443,415171.13056,193348.152,193348.152,193348.152,121942.737,133958.712,133958.712,246159.58068,91289.7216,135694.84544,236677.056,67171.20256,85429.14688000001,167906.01299999998,167906.01299999998,167906.01299999998,167906.01299999998,402769.19408,402769.19408 +27392400.0,149099.049,139838.92200000002,408329.65224,131967.49115000002,131967.49115000002,131967.49115000002,54401.445,268879.46336,852527.88096,291779.32917,444616.12064000004,195128.217,195128.217,195128.217,122415.79350000003,149099.049,149099.049,272167.13524,99287.3376,147582.65983999998,257411.616,73055.86816,92913.33568,174999.483,174999.483,174999.483,174999.483,448291.14066000003,448291.14066000003 +27396000.0,172452.315,152979.6,446700.43200000003,131868.74074,131868.74074,131868.74074,61049.1385,340710.55816,865492.23872,338680.78335,516085.0032,203153.02500000002,203153.02500000002,203153.02500000002,124092.94800000002,172452.315,172452.315,287784.98397999996,119655.48014999999,177858.26925999997,310217.9115,88042.79774,111973.89377,216363.76499999996,216363.76499999996,216363.76499999996,216363.76499999996,518506.6271,518506.6271 +27399600.0,221089.626,168408.79499999998,491753.6814,144611.77236,144611.77236,144611.77236,80793.58,402515.43583999993,875554.3347200002,380374.10649000003,579617.68608,303217.677,303217.677,303217.677,203279.307,221089.626,221089.626,306733.61822999996,143775.9315,213711.3846,372752.41500000004,105790.6854,134545.87170000002,290648.772,290648.772,290648.772,290648.772,664742.80884,664742.80884 +27403200.0,266047.407,198760.713,580381.2819599999,155945.52985000002,155945.52985000002,155945.52985000002,83008.2645,511184.7484,900966.44608,436402.60397999996,664994.44416,383944.935,383944.935,383944.935,249081.581,266047.407,266047.407,336300.91910999996,165101.0121,245409.40563999998,428039.661,121481.73236,154501.93478,340903.34699999995,340903.34699999995,340903.34699999995,340903.34699999995,799915.87038,799915.87038 +27406800.0,337978.26,243788.41800000003,711862.1805600001,180360.75981,180360.75981,180360.75981,91673.56450000001,602948.1077599999,988285.8444800001,525523.16061,800797.19712,424914.177,424914.177,424914.177,265750.4535,337978.26,337978.26,362482.79769000004,187370.9496,278511.88064,485776.536,137868.00736,175342.19728,427285.74,427285.74,427285.74,427285.74,1016187.9683999999,1016187.9683999999 +27410400.0,532507.5630000001,276438.768,807201.2025599999,286491.96015000006,286491.96015000006,286491.96015000006,172628.253,1099348.0259999998,1272912.2694400002,801817.37937,1221816.95904,466420.392,466420.392,466420.392,393407.3535,532507.5630000001,532507.5630000001,566061.37718,271293.4377,403255.92468,703353.357,199618.38132,253877.06886,554789.553,554789.553,554789.553,554789.553,1601072.73942,1601072.73942 +27414000.0,1259125.35,651727.635,1903044.6942,1676494.2250100002,1676494.2250100002,1676494.2250100002,1477290.304,3431351.71984,4258273.4457600005,2987801.10846,4552839.78432,1227032.892,1227032.892,1227032.892,1813198.4989999998,1259125.35,1259125.35,2627933.0622999994,1621196.9005499997,2409779.0966199995,4203103.075499999,1192880.68238,1517120.06249,1556701.866,1556701.866,1556701.866,1556701.866,3785770.219,3785770.219 +27417600.0,1126740.021,1234966.095,3606100.9973999998,2068881.49237,2068881.49237,2068881.49237,1960004.9245,4253358.0816,3296051.783680001,3295615.66089,5021890.53088,1343124.963,1343124.963,1343124.963,1828455.244,1126740.021,1126740.021,2222201.0004999996,2180289.3606,3240825.17304,5652602.046,1604262.29496,2040320.16708,1593746.7659999998,1593746.7659999998,1593746.7659999998,1593746.7659999998,3387731.66314,3387731.66314 +27421200.0,2087767.2179999999,2266119.7470000004,6617069.66124,1679864.4292100002,1679864.4292100002,1679864.4292100002,2261040.9185,4465704.8148799995,7442823.66016,3688893.74994,5621171.42848,1977107.457,1977107.457,1977107.457,1664552.1269999999,2087767.2179999999,2087767.2179999999,2444562.7117599994,1941016.6282499998,2885165.4573,5032265.3325,1428204.8277,1816408.15335,2339172.126,2339172.126,2339172.126,2339172.126,6277220.102119999,6277220.102119999 +27424800.0,1520482.971,1093282.401,3192384.61092,739576.06547,739576.06547,739576.06547,937484.1595000001,2297123.55216,7135711.55008,1441976.91435,2197298.1552,1493525.5890000002,1493525.5890000002,1493525.5890000002,1524795.93,1520482.971,1520482.971,2030782.0288599997,2261364.9903,3361337.59052,5862798.123000001,1663917.9434800001,2116190.94154,1057967.688,1057967.688,1057967.688,1057967.688,4571585.46614,4571585.46614 +27428400.0,785529.1740000001,622687.884,1818248.6212799998,414028.29171,414028.29171,414028.29171,587395.319,1470915.0476,3977121.8860800005,962526.27849,1466706.71008,635433.717,635433.717,635433.717,627173.932,785529.1740000001,785529.1740000001,793069.74084,1155479.4666,1717527.50344,2995687.506,850204.6445599999,1081300.53788,627333.381,627333.381,627333.381,627333.381,2361824.38316,2361824.38316 +27432000.0,823385.517,1180370.445,3446681.6994,684464.10593,684464.10593,684464.10593,963406.0065,1742790.24992,2875097.0982400007,1380554.4564,2103702.0288000004,732012.321,732012.321,732012.321,1093384.0365,823385.517,823385.517,953168.14736,874904.04855,1300474.65982,2268269.7555,643756.55918,818737.3688899999,820359.2609999999,820359.2609999999,820359.2609999999,820359.2609999999,2475645.78778,2475645.78778 +27435600.0,651035.298,684931.947,2000001.2852399999,501585.25747,501585.25747,501585.25747,902305.1309999999,1311827.85872,2050046.51584,961986.34728,1465883.9577600001,584992.779,584992.779,584992.779,736232.7350000001,651035.298,651035.298,700786.3891599999,677317.5045,1006778.1178,1756008.3450000002,498371.89220000006,633835.3931000001,600088.506,600088.506,600088.506,600088.506,1957446.1293199998,1957446.1293199998 +27439200.0,542009.9789999999,451594.002,1318654.48584,259516.61879,259516.61879,259516.61879,495785.91299999994,1129192.0903999999,1768641.4956800002,796334.61936,1213462.27712,509063.56500000006,509063.56500000006,509063.56500000006,432624.3775,542009.9789999999,542009.9789999999,593134.12067,560654.3708999999,833367.7315599999,1453548.369,412530.87043999997,524661.7446199999,513262.89,513262.89,513262.89,513262.89,1629643.33686,1629643.33686 +27442800.0,973000.554,1155625.3530000001,3374426.03076,1470479.1196700002,1470479.1196700002,1470479.1196700002,1401979.5195,2171825.96672,2871724.4614399998,1720474.6612200001,2621675.67424,863379.0240000001,863379.0240000001,863379.0240000001,1415374.0929999999,973000.554,973000.554,1464383.88915,1316334.321,1956625.3364,3412718.61,968562.0436,1231828.9078,1022728.1879999998,1022728.1879999998,1022728.1879999998,1022728.1879999998,2925488.33236,2925488.33236 +27446400.0,954878.7749999999,1311330.309,3829084.50228,1640509.08802,1640509.08802,1640509.08802,1195455.681,2425570.57952,3180632.5331200003,1804656.2288999998,2749952.3488,1027872.69,1027872.69,1027872.69,1641358.159,954878.7749999999,954878.7749999999,1627186.1505899997,1365676.7994,2029968.9709599998,3540643.554,1004868.36104,1278003.72092,1136130.4500000002,1136130.4500000002,1136130.4500000002,1136130.4500000002,2871002.1835,2871002.1835 +27450000.0,890745.486,1275791.868,3725312.25456,1084730.63281,1084730.63281,1084730.63281,1053363.1815,2367492.07736,3234607.0598400007,1585093.34025,2415380.328,903758.9579999999,903758.9579999999,903758.9579999999,1310516.641,890745.486,890745.486,1352107.04135,1186839.78705,1764142.1032199997,3076992.0404999997,873279.6457799999,1110647.60319,1108625.9610000001,1108625.9610000001,1108625.9610000001,1108625.9610000001,2678174.76124,2678174.76124 +27453600.0,2217518.4390000002,1811400.9479999999,5289290.7681599995,3509192.1847400004,3509192.1847400004,3509192.1847400004,2886872.7055,3534050.47336,6716701.740800001,3715165.7717999998,5661204.9856,2329008.996,2329008.996,2329008.996,2991366.3674999997,2217518.4390000002,2217518.4390000002,3839375.9153099996,2854889.2098,4243563.714319999,7401564.618,2100634.5296799997,2671612.37164,2475161.3729999997,2475161.3729999997,2475161.3729999997,2475161.3729999997,6667338.77326,6667338.77326 +27457200.0,1654062.975,925930.0260000001,2703715.67592,2150273.96694,2150273.96694,2150273.96694,1737728.7375,2632834.32864,4605545.507200001,2440374.33738,3718665.65696,1666048.233,1666048.233,1666048.233,2104329.1395,1654062.975,1654062.975,1456620.3038399997,1920423.9699,2854556.1231599995,4978876.959,1413052.69884,1797137.4928199998,1793820.48,1793820.48,1793820.48,1793820.48,4973216.0115,4973216.0115 +27460800.0,1221026.238,889541.865,2597462.2458,1283217.03587,1283217.03587,1283217.03587,1318635.6819999998,2015794.1139999998,3784541.6428800006,1772206.9413299998,2700505.81536,1102196.6400000001,1102196.6400000001,1102196.6400000001,1467256.2135,1221026.238,1221026.238,1293308.2785999998,1424995.7643000002,2118141.85212,3694433.4630000005,1048515.4018800001,1333514.55474,1253153.298,1253153.298,1253153.298,1253153.298,3671218.88892,3671218.88892 +27464400.0,1071491.181,901843.7220000001,2633383.66824,1226583.3236800001,1226583.3236800001,1226583.3236800001,1204557.4834999999,1961704.98008,3689553.8246400002,1715983.4181000001,2614831.8752,1071747.993,1071747.993,1071747.993,1421177.7685,1071491.181,1071491.181,1312155.9076599998,1381599.5607,2053636.87788,3581924.787,1016584.36812,1292904.2802600001,1210396.836,1210396.836,1210396.836,1210396.836,3221616.81754,3221616.81754 +27468000.0,766520.3910000001,658920.999,1924049.3170799997,811384.4511300002,811384.4511300002,811384.4511300002,671447.1294999999,1039329.2363999999,2324743.8963200003,1006890.4419,1534309.2448,582997.347,582997.347,582997.347,725659.053,766520.3910000001,766520.3910000001,946045.73986,661761.94455,983656.0262199999,1715679.1155,486926.07278,619278.46169,781740.6869999999,781740.6869999999,781740.6869999999,781740.6869999999,2304671.30894,2304671.30894 +27471600.0,132931.947,118095.582,344839.09943999996,144184.49969000003,144184.49969000003,144184.49969000003,67713.17,220650.71103999997,846070.8512000002,246576.41694,375735.49248,197936.38500000004,197936.38500000004,197936.38500000004,127073.03699999998,132931.947,132931.947,248862.20904999998,97492.17104999999,144914.28882,252757.4805,71734.98018,91233.41439,165996.26400000002,165996.26400000002,165996.26400000002,165996.26400000002,399682.05397999997,399682.05397999997 +27475200.0,135072.006,119611.476,349265.50992,137245.98811,137245.98811,137245.98811,47372.4755,238269.64063999997,857057.0944,276332.53998,421078.15616,198132.984,198132.984,198132.984,124476.5865,135072.006,135072.006,250590.07648999998,93148.27875,138457.4415,241495.5375,68538.7335,87168.38925000001,170395.875,170395.875,170395.875,170395.875,406116.49804,406116.49804 +27478800.0,151893.62099999998,142950.456,417415.33152,134998.89227,134998.89227,134998.89227,55910.4525,267152.67464,872533.0566400001,295195.93593,449822.37856,200004.60599999997,200004.60599999997,200004.60599999997,124995.88500000001,151893.62099999998,151893.62099999998,278182.14125,101723.51384999999,151203.84033999997,263727.6285,74848.41265999999,95193.11542999999,178638.885,178638.885,178638.885,178638.885,456693.4871399999,456693.4871399999 +27482400.0,176272.764,158537.616,462929.83872,137318.78413000001,137318.78413000001,137318.78413000001,65096.52450000001,331142.7752,897695.97248,349300.15176000004,532266.89792,210115.854,210115.854,210115.854,128894.32499999998,176272.764,176272.764,296773.84464,124905.2157,185661.57988,323828.337,91905.56612,116886.60926000001,228937.33500000002,228937.33500000002,228937.33500000002,228937.33500000002,529993.4437599999,529993.4437599999 +27486000.0,231644.84100000001,174729.171,510209.17932,150257.02516,150257.02516,150257.02516,83608.595,426354.84144,906839.04576,397090.14723,605089.7481600001,318735.027,318735.027,318735.027,220911.32349999997,231644.84100000001,231644.84100000001,320478.0681699999,150833.41695,224201.77038,391049.5995,110983.60062000001,141150.28401,304627.329,304627.329,304627.329,304627.329,696478.8219399999,696478.8219399999 +27489600.0,281046.843,203512.37100000004,594256.12332,162374.81117,162374.81117,162374.81117,85884.589,544972.72248,935968.5920000002,459916.97597999993,700825.86816,406629.312,406629.312,406629.312,260058.47349999996,281046.843,281046.843,351474.16030999995,174500.2197,259380.57348,452407.977,128397.69252000001,163297.73646000001,365828.76599999995,365828.76599999995,365828.76599999995,365828.76599999995,845014.17462,845014.17462 +27493200.0,357810.216,252353.09999999998,736871.0519999999,183854.32978,183854.32978,183854.32978,93695.126,634424.60984,1027570.0102400001,550768.4742,839266.2464000001,442119.0959999999,442119.0959999999,442119.0959999999,275577.512,357810.216,357810.216,372696.80382999993,195724.58085,290928.88314,507434.0985,144014.62986000002,183159.54603,447174.627,447174.627,447174.627,447174.627,1075816.04944,1075816.04944 +27496800.0,563329.314,293424.00600000005,856798.0975200001,295044.18603000004,295044.18603000004,295044.18603000004,178583.3385,1145340.85256,1360054.3238400002,846553.22094,1289985.86048,491423.0310000001,491423.0310000001,491423.0310000001,410674.1275,563329.314,563329.314,580208.1259,294453.4842,437681.47527999996,763397.922,216659.60072,275550.29756,586774.671,586774.671,586774.671,586774.671,1693743.47076,1693743.47076 +27500400.0,1283277.5969999998,695039.316,2029514.80272,1707703.55074,1707703.55074,1707703.55074,1502824.085,3478071.45704,4374097.25824,3049744.19694,4647229.25248,1280582.076,1280582.076,1280582.076,1910898.654,1283277.5969999998,1283277.5969999998,2667954.11415,1667720.2023,2478932.25132,4323719.043,1227112.64268,1560656.68314,1593127.419,1593127.419,1593127.419,1593127.419,3858387.9749799995,3858387.9749799995 +27504000.0,1160101.284,1258578.588,3675049.4769599997,2152862.37705,2152862.37705,2152862.37705,1994043.7754999998,4351447.4808,3422423.20128,3366643.7330400003,5130123.783680001,1376126.97,1376126.97,1376126.97,1892846.221,1160101.284,1160101.284,2251703.53954,2218511.2761,3297638.98324,5751695.901000001,1632386.07476,2076088.3299800002,1631139.096,1631139.096,1631139.096,1631139.096,3488037.8605599995,3488037.8605599995 +27507600.0,2121635.892,2293391.739,6696703.8778800005,1739470.29553,1739470.29553,1739470.29553,2372704.1799999997,4561675.93512,7554391.6192000015,3766473.1519799996,5739387.6601599995,2017866.4020000002,2017866.4020000002,2017866.4020000002,1713421.276,2121635.892,2121635.892,2525854.2273899997,2014539.6923999998,2994451.5921599995,5222880.683999999,1482303.27984,1885211.21832,2381174.931,2381174.931,2381174.931,2381174.931,6379051.915279999,6379051.915279999 +27511200.0,1582789.1220000002,1139950.596,3328655.74032,790313.5198200002,790313.5198200002,790313.5198200002,1006176.6400000001,2406121.7268,7371249.275520001,1549054.1793299997,2360463.51136,1559028.8429999999,1559028.8429999999,1559028.8429999999,1588809.04,1582789.1220000002,1582789.1220000002,2086663.5795199997,2318174.95185,3445781.03954,6010083.2085,1705718.85346,2169353.84383,1117937.142,1117937.142,1117937.142,1117937.142,4758919.29348,4758919.29348 +27514800.0,836580.3690000001,673418.3430000001,1966381.56156,454324.42561,454324.42561,454324.42561,641641.0175,1580975.0977599998,4324495.89312,1048838.4847499998,1598230.072,693666.252,693666.252,693666.252,688977.8525,836580.3690000001,836580.3690000001,857204.7320199999,1269506.3377500002,1887019.2971,3291312.7275000005,934105.8979000001,1188007.1654500002,679529.4569999999,679529.4569999999,679529.4569999999,679529.4569999999,2515318.30946,2515318.30946 +27518400.0,883366.515,1218563.034,3558204.05928,725485.46499,725485.46499,725485.46499,1016261.6205,1842224.0813600002,3075237.2115200004,1465232.6108700002,2232735.4070400004,792088.4010000001,792088.4010000001,792088.4010000001,1145751.3235,883366.515,883366.515,1011448.46907,935624.1312,1390730.1900799999,2425692.192,688434.5459200001,875559.37216,879612.168,879612.168,879612.168,879612.168,2655988.6551,2655988.6551 +27522000.0,715466.802,750902.193,2192634.40356,548372.95183,548372.95183,548372.95183,972820.2365000001,1429022.4792,2271967.7145599998,1056752.45907,1610289.46144,648274.2119999999,648274.2119999999,648274.2119999999,829289.818,715466.802,715466.802,774282.62639,754967.223,1122198.1931999999,1957322.43,555506.7468,706500.1914,662741.22,662741.22,662741.22,662741.22,2151170.18468,2151170.18468 +27525600.0,603830.856,502603.173,1467601.26516,306146.14888,306146.14888,306146.14888,587669.565,1249333.99536,1999387.3862400001,892072.18422,1359348.09024,574447.9260000001,574447.9260000001,574447.9260000001,495951.58550000004,603830.856,603830.856,662131.8198299999,637470.5912999999,947548.8789199998,1652701.5329999998,469052.4350799999,596546.5533399999,577260.0120000001,577260.0120000001,577260.0120000001,577260.0120000001,1815518.1070400001,1815518.1070400001 +27529200.0,1043021.226,1253175.3360000001,3659271.98112,1532007.6255000003,1532007.6255000003,1532007.6255000003,1484972.0725,2339013.02536,3101170.6163199996,1824442.44465,2780102.7728,938060.436,938060.436,938060.436,1475231.716,1043021.226,1043021.226,1602362.7651199999,1402937.0585999999,2085353.3562399999,3637244.226,1032284.55176,1312871.96348,1117971.636,1117971.636,1117971.636,1117971.636,3136017.15284,3136017.15284 +27532800.0,1017383.874,1369779.804,3999757.02768,1753561.3070800002,1753561.3070800002,1753561.3070800002,1261501.486,2586425.3904,3431550.87936,1940261.43969,2956588.86048,1100358.867,1100358.867,1100358.867,1721151.642,1017383.874,1017383.874,1722146.6665,1452418.6059,2158903.70556,3765529.7190000005,1068693.19644,1359176.9176200002,1215298.335,1215298.335,1215298.335,1215298.335,3058934.1811599997,3058934.1811599997 +27536400.0,954790.2240000002,1368598.401,3996307.33092,1151266.30091,1151266.30091,1151266.30091,1119339.6724999999,2498403.44456,3484229.28256,1686195.8276099998,2569441.26112,971537.754,971537.754,971537.754,1392026.405,954790.2240000002,954790.2240000002,1432893.3049599999,1266564.7296,1882646.83264,3283686.336,931941.45536,1185254.40128,1191852.027,1191852.027,1191852.027,1191852.027,2870735.94016,2870735.94016 +27540000.0,2254133.5020000003,1852892.25,5410445.37,3558727.9593800004,3558727.9593800004,3558727.9593800004,2931693.1245000004,3659901.1301600006,6907875.42848,3777264.32349,5755831.35008,2373968.223,2373968.223,2373968.223,3040882.0154999997,2254133.5020000003,2254133.5020000003,3957882.526,2933122.2538499995,4359850.8563399995,7604391.028499999,2158198.59666,2744823.04743,2523713.4450000003,2523713.4450000003,2523713.4450000003,2523713.4450000003,6777428.0626799995,6777428.0626799995 +27543600.0,1706541.105,968607.2309999999,2828333.11452,2285251.8051000005,2285251.8051000005,2285251.8051000005,1785509.2465,2733910.2103999997,4856854.16256,2559524.10042,3900227.20064,1724310.1770000001,1724310.1770000001,1724310.1770000001,2316179.1135,1706541.105,1706541.105,1523635.62884,2025732.1185000003,3011088.2354,5251898.085000001,1490538.6946000003,1895685.1183000002,1890151.341,1890151.341,1890151.341,1890151.341,5131000.2557,5131000.2557 +27547200.0,1274287.065,930483.735,2717012.5061999997,1375704.15136,1375704.15136,1375704.15136,1422538.1800000002,2118454.05488,4005601.9289600006,1861975.3845,2837295.824,1207740.8220000002,1207740.8220000002,1207740.8220000002,1559481.616,1274287.065,1274287.065,1352543.66429,1502002.2456,2232605.80704,3894079.896,1105176.96096,1405577.41008,1318879.686,1318879.686,1318879.686,1318879.686,3831356.4420999996,3831356.4420999996 +27550800.0,1119793.194,947774.8770000001,2767502.64084,1285085.49961,1285085.49961,1285085.49961,1259673.1524999999,2054655.4304,3874619.9808,1795130.4594300003,2735436.89056,1127014.392,1127014.392,1127014.392,1499329.181,1119793.194,1119793.194,1384546.54715,1449403.6198500001,2154422.17074,3757713.0885000005,1066474.76226,1356355.4862300002,1268611.668,1268611.668,1268611.668,1268611.668,3366844.86996,3366844.86996 +27554400.0,797171.0549999999,688296.8489999999,2009826.79908,852465.9444400001,852465.9444400001,852465.9444400001,699606.747,1095335.41456,2434329.23648,1054907.8627499999,1607478.648,610052.892,610052.892,610052.892,760498.564,797171.0549999999,797171.0549999999,993056.84725,692253.7181999999,1028979.6008799998,1794731.8619999997,509361.9951199999,647812.73876,816681.051,816681.051,816681.051,816681.051,2396827.6387,2396827.6387 +27558000.0,140841.018,125585.08499999999,366708.4482,168255.82686000003,168255.82686000003,168255.82686000003,70123.9315,237436.87415999998,911272.48256,274108.24287,417688.75104,212501.421,212501.421,212501.421,135285.108,140841.018,140841.018,265453.50078,104531.67045,155377.93978,271008.0345,76914.66122,97820.99531,179342.775,179342.775,179342.775,179342.775,423461.99412,423461.99412 +27561600.0,147347.457,128872.71899999998,376308.33947999997,148017.99606000003,148017.99606000003,148017.99606000003,50705.333,259753.16687999998,929387.19296,297970.95447,454050.97823999997,214098.89399999997,214098.89399999997,214098.89399999997,134053.5455,147347.457,147347.457,269178.62933,100574.81639999998,149496.39375999998,260749.52399999998,74003.19823999998,94118.16152,185105.69400000002,185105.69400000002,185105.69400000002,185105.69400000002,443024.68737999996,443024.68737999996 +27565200.0,163985.73,156109.098,455838.56616,145213.22475000002,145213.22475000002,145213.22475000002,61605.676999999996,302552.31936,938198.0889600002,330019.78191,502887.28672000003,215435.39099999997,215435.39099999997,215435.39099999997,133258.8495,163985.73,163985.73,303143.56409999996,114447.05864999999,170116.36865999998,296714.5965,84210.42834,107099.84007,193379.298,193379.298,193379.298,193379.298,493050.4282,493050.4282 +27568800.0,204989.64299999998,171012.459,499356.38028,148921.91864000002,148921.91864000002,148921.91864000002,76026.49250000001,394914.03927999997,945878.61824,376608.43563,573879.52096,244297.962,244297.962,244297.962,152992.8995,204989.64299999998,204989.64299999998,314901.06075999996,140239.9251,208455.39484,363584.991,103188.88316,131236.86818,271176.141,271176.141,271176.141,271176.141,616335.5266199999,616335.5266199999 +27572400.0,261065.49900000004,189758.01,554093.3892,161431.67007000002,161431.67007000002,161431.67007000002,88431.329,497970.66215999995,968317.7913600001,441302.18013,672460.46496,383817.621,383817.621,383817.621,255789.79300000003,261065.49900000004,261065.49900000004,346826.32464999997,165043.24289999998,245323.53635999997,427889.88899999997,121439.22563999999,154447.87422,338457.054,338457.054,338457.054,338457.054,784936.9336600001,784936.9336600001 +27576000.0,319425.591,246184.00799999997,718857.3033599999,177554.48667,177554.48667,177554.48667,90981.9785,619239.1673600001,1024773.58912,522848.67369,796721.7884800001,449398.35599999997,449398.35599999997,449398.35599999997,281464.2775,319425.591,319425.591,381645.71744,193305.528,287333.1552,501162.48000000004,142234.68480000002,180895.7904,423131.157,423131.157,423131.157,423131.157,960406.27694,960406.27694 +27579600.0,423122.36699999997,276745.617,808097.20164,205476.70132000002,205476.70132000002,205476.70132000002,101133.7285,716507.6260800001,1232360.38784,632930.35806,964465.3075199999,491983.79099999997,491983.79099999997,491983.79099999997,303241.2705,423122.36699999997,423122.36699999997,404215.50247,237145.6197,352497.93348,614821.9770000001,174492.33252,221921.45646000002,512379.789,512379.789,512379.789,512379.789,1272187.9167799999,1272187.9167799999 +27583200.0,520532.676,356601.993,1041277.81956,307313.06265000004,307313.06265000004,307313.06265000004,192394.52049999998,867129.89264,1501346.24704,775066.1200799999,1181053.13536,537127.341,537127.341,537127.341,358001.7805,520532.676,520532.676,428212.49146,325181.19465,483355.75106,843062.3565000001,239269.12594000003,304305.36487000005,591851.613,591851.613,591851.613,591851.613,1565068.2458399998,1565068.2458399998 +27586800.0,1242042.456,1234875.9389999998,3605837.7418799996,1161893.9174700002,1161893.9174700002,1161893.9174700002,1104662.0795,2015017.7444000002,2307035.8912000004,1709448.74205,2604874.2736,834777.4829999999,834777.4829999999,834777.4829999999,1794829.3055,1242042.456,1242042.456,2469742.0708999997,749960.3618999999,1114755.8959599999,1944341.6789999998,551822.68604,701814.75842,1706412.27,1706412.27,1706412.27,1706412.27,3734407.65104,3734407.65104 +27590400.0,2291522.325,2050127.7449999996,5986373.015399999,2880388.7679600003,2880388.7679600003,2880388.7679600003,2061946.3060000003,3462342.1470399997,4026342.6252800003,3343791.23043,5095300.92256,1430692.8960000002,1430692.8960000002,1430692.8960000002,2340261.7525,2291522.325,2291522.325,3533902.1322799996,1788598.90395,2658608.74118,4637108.2695,1316055.48982,1673775.27061,2448664.2029999997,2448664.2029999997,2448664.2029999997,2448664.2029999997,6889843.7905,6889843.7905 +27594000.0,2628159.5100000002,2524834.1429999997,7372515.697559999,3182988.55083,3182988.55083,3182988.55083,2659607.72,4474665.50648,10188627.26656,3517625.58693,5360191.370560001,2707794.654,2707794.654,2707794.654,2739166.731,2628159.5100000002,2628159.5100000002,2722424.2135999994,3527188.2783,5242882.32972,9144562.203,2595313.84428,3300751.49994,2392298.271,2392298.271,2392298.271,2392298.271,7901999.5934,7901999.5934 +27597600.0,1930992.597,1599013.3530000001,4669118.9907599995,2247344.80597,2247344.80597,2247344.80597,2822197.35,3701922.6749600004,7061677.567360002,3611417.09649,5503111.7660799995,2719161.237,2719161.237,2719161.237,3045773.276,1930992.597,1930992.597,2072289.2552699998,3518648.4280499998,5230188.52762,9122421.8505,2589030.20138,3292759.88699,2053179.4230000002,2053179.4230000002,2053179.4230000002,2053179.4230000002,5805851.07498,5805851.07498 +27601200.0,1438266.945,1222628.547,3570075.35724,2010089.3492900003,2010089.3492900003,2010089.3492900003,2622167.4745,3605017.59272,7418131.173760001,3003454.5830099997,4576692.69792,1314441.048,1314441.048,1314441.048,2449461.511,1438266.945,1438266.945,1433512.2028499998,2733062.9417999997,4062478.7431199993,7085718.737999999,2010994.4608799997,2557607.0492399996,1732637.1630000002,1732637.1630000002,1732637.1630000002,1732637.1630000002,4324389.2813,4324389.2813 +27604800.0,1190627.9220000003,996585.0869999999,2910028.4540399997,1516690.9741500001,1516690.9741500001,1516690.9741500001,1680930.7234999998,3054155.8376,4106263.5475200005,2215847.51766,3376529.55072,1191161.406,1191161.406,1191161.406,1812378.2215,1190627.9220000003,1190627.9220000003,1214006.78503,1693474.42365,2517213.83466,4390489.2465,1246062.66234,1584757.54707,1282448.895,1282448.895,1282448.895,1282448.895,3579821.28548,3579821.28548 +27608400.0,895130.3879999999,734405.6429999999,2144464.47756,827217.6750200001,827217.6750200001,827217.6750200001,1013662.9965,2045981.6054399998,2703579.9801600003,1545722.6047200002,2355386.8262400003,841661.703,841661.703,841661.703,1143988.6745,895130.3879999999,895130.3879999999,867502.33115,1072324.1254500002,1593923.76178,2780099.5845000003,789018.7392200001,1003483.56431,961239.6000000001,961239.6000000001,961239.6000000001,961239.6000000001,2691358.6999199996,2691358.6999199996 +27612000.0,776876.964,636176.9280000001,1857636.6297600002,676679.04249,676679.04249,676679.04249,819361.228,1526223.95312,2437893.4592,1248740.2691400002,1902842.3148800004,736513.257,736513.257,736513.257,1005791.5980000002,776876.964,776876.964,735430.05822,904007.0691,1343733.96444,2343722.031,665170.63356,845972.04738,830046.264,830046.264,830046.264,830046.264,2335810.07176,2335810.07176 +27615600.0,1065255.828,939635.604,2743735.96368,1180719.72282,1180719.72282,1180719.72282,1148799.4035,2083960.5387199998,3706263.7312000007,1774074.1130700002,2703351.02944,1069155.7619999999,1069155.7619999999,1069155.7619999999,1379556.367,1065255.828,1065255.828,1321335.5329199997,1350823.49325,2007890.7233000002,3502134.9825000004,993939.2617000001,1264103.96035,1193264.796,1193264.796,1193264.796,1193264.796,3202869.18952,3202869.18952 +27619200.0,1134684.9,1009605.7409999999,2948048.7637199997,1291210.41819,1291210.41819,1291210.41819,1233907.3495,2223201.5271199998,4002707.5443200003,1900666.00773,2896252.96416,1155267.543,1155267.543,1155267.543,1479633.4315,1134684.9,1134684.9,1442671.75117,1454584.7524499998,2162123.5085799997,3771145.6544999997,1070287.05242,1361204.00291,1283370.9270000001,1283370.9270000001,1283370.9270000001,1283370.9270000001,3411619.266,3411619.266 +27622800.0,1166899.584,1037374.9890000001,3029134.96788,1357677.5271400001,1357677.5271400001,1357677.5271400001,1290651.5825,2296067.5692,4119378.45184,1961090.7036,2988328.6912000002,1190632.821,1190632.821,1190632.821,1520930.0154999997,1166899.584,1166899.584,1487479.1666799998,1501128.7861499998,2231307.4796599997,3891815.3715,1104534.26734,1404760.02457,1321291.167,1321291.167,1321291.167,1321291.167,3508478.0825599995,3508478.0825599995 +27626400.0,1168362.645,1029941.6340000001,3007429.5712800003,1405473.2099100002,1405473.2099100002,1405473.2099100002,1331056.6745,2303728.97176,4080923.37472,1970217.94494,3002236.86848,1183945.101,1183945.101,1183945.101,1519794.8675,1168362.645,1168362.645,1479677.2793399997,1501977.5770499997,2232569.13922,3894015.9404999996,1105158.8097799998,1405554.3251899998,1319206.842,1319206.842,1319206.842,1319206.842,3512877.0192999993,3512877.0192999993 +27630000.0,1139555.793,1001628.867,2924756.29164,1373622.6678900002,1373622.6678900002,1373622.6678900002,1298972.9619999998,2236177.4639999997,3951618.08896,1919306.5909499999,2924657.6624,1146097.614,1146097.614,1146097.614,1472924.6069999998,1139555.793,1139555.793,1444575.7992899998,1459603.8971999998,2169584.0644799997,3784158.252,1073980.1515199998,1365900.93096,1283218.806,1283218.806,1283218.806,1283218.806,3426264.4176199995,3426264.4176199995 +27633600.0,1125030.918,989888.0489999999,2890473.10308,1344315.00896,1344315.00896,1344315.00896,1271833.486,2201541.4226399995,3898041.411200001,1892031.69204,2883095.9116800004,1129398.624,1129398.624,1129398.624,1449658.3150000002,1125030.918,1125030.918,1428822.4047499998,1437956.1571499999,2137406.4360599997,3728034.4814999998,1058051.69094,1345642.92237,1265974.4159999997,1265974.4159999997,1265974.4159999997,1265974.4159999997,3382592.9601200004,3382592.9601200004 +27637200.0,1068526.344,877284.603,2561671.04076,1118061.34836,1118061.34836,1118061.34836,956902.2960000001,1800244.80064,2779632.0288,1540642.9420199997,2347646.38784,877642.581,877642.581,877642.581,1129935.7089999998,1068526.344,1068526.344,1350462.6129800002,1126126.16415,1673896.1748600001,2919586.3515000003,828606.4121400001,1053831.6449700003,1085176.653,1085176.653,1085176.653,1085176.653,3212702.5409600004,3212702.5409600004 +27640800.0,474303.438,332165.55299999996,969923.41476,596079.583,596079.583,596079.583,395853.58749999997,876097.35864,1133416.63424,724821.96297,1104490.6102399998,398332.58999999997,398332.58999999997,398332.58999999997,493857.62299999996,474303.438,474303.438,774331.3564999999,252508.46039999998,375333.56336,654651.564,185796.34863999998,236298.04072,592580.124,592580.124,592580.124,592580.124,1426072.33692,1426072.33692 +27644400.0,169224.25199999998,120130.48199999999,350781.00743999996,177936.54978000003,177936.54978000003,177936.54978000003,68556.36200000001,349202.46712000004,849443.8361600001,324672.47925000003,494739.01600000006,234373.704,234373.704,234373.704,132862.989,169224.25199999998,169224.25199999998,251960.78218999997,103586.66369999999,153973.26307999998,268558.017,76219.32291999999,96936.65565999999,182573.085,182573.085,182573.085,182573.085,508800.91767999995,508800.91767999995 +27648000.0,171719.688,147600.36599999998,430993.06872,154913.10109,154913.10109,154913.10109,61009.1405,371126.80240000004,852779.50272,318297.79695,485025.2144,229914.71399999998,229914.71399999998,229914.71399999998,125511.43500000001,171719.688,171719.688,248354.30190999998,103503.43620000001,153849.55208,268342.242,76158.08392,96858.77116,178762.827,178762.827,178762.827,178762.827,516303.86192,516303.86192 +27651600.0,182732.574,176326.788,514874.22095999995,153854.22547,153854.22547,153854.22547,66529.554,370900.42063999997,889690.1312000002,334061.14917,509045.56064000004,231704.454,231704.454,231704.454,124463.92700000001,182732.574,182732.574,273771.67909,114569.18639999999,170297.90175999998,297031.224,84300.29023999999,107214.12752,204629.67299999995,204629.67299999995,204629.67299999995,204629.67299999995,549415.93916,549415.93916 +27655200.0,203044.494,189439.926,553164.58392,162758.43716,162758.43716,162758.43716,74817.057,379059.77079999994,920630.8819200002,376049.66741999995,573028.06464,299549.68499999994,299549.68499999994,299549.68499999994,134505.91,203044.494,203044.494,292540.62136,132118.7031,196383.85004,342529.971,97213.26796000001,123637.00858000001,265423.458,265423.458,265423.458,265423.458,610487.11196,610487.11196 +27658800.0,241348.28100000002,211973.43300000002,618962.42436,168149.46148000003,168149.46148000003,168149.46148000003,82021.90849999999,438141.90615999995,925336.3296,411148.78959000006,626512.4412800001,359864.391,359864.391,359864.391,222909.3405,241348.28100000002,241348.28100000002,317977.39727,157683.04424999998,234383.19169999997,408807.8925,116023.5733,147560.18215,316091.409,316091.409,316091.409,316091.409,725653.83154,725653.83154 +27662400.0,318477.042,236983.45500000002,691991.6886,178543.29724,178543.29724,178543.29724,84821.856,579643.2139999999,1002875.10848,494983.8579,754261.1168000001,414418.917,414418.917,414418.917,258088.6315,318477.042,318477.042,346840.87009,178987.58729999998,266050.68532,464041.893,131699.50868,167497.02614,394652.65200000006,394652.65200000006,394652.65200000006,394652.65200000006,957554.3062799999,957554.3062799999 +27666000.0,418407.474,281934.495,823248.7254,212062.00202,212062.00202,212062.00202,103689.6175,721935.7951199999,1345635.05984,628979.5871100001,958445.0851200001,497347.782,497347.782,497347.782,306752.89050000004,418407.474,418407.474,411199.0356499999,252323.7885,375059.0634,654172.785,185660.46659999999,236125.2243,500115.489,500115.489,500115.489,500115.489,1258011.80516,1258011.80516 +27669600.0,495923.99700000003,312065.916,911232.47472,303137.62523,303137.62523,303137.62523,191507.1585,851966.6772,1448429.9744,748568.74008,1140676.17536,523593.342,523593.342,523593.342,371864.00299999997,495923.99700000003,495923.99700000003,418997.51269999996,324248.94944999996,481970.04337999993,840645.4245,238583.17762,303432.96751,565768.737,565768.737,565768.737,565768.737,1491078.15098,1491078.15098 +27673200.0,1231363.908,1226363.6519999998,3580981.86384,1157248.36249,1157248.36249,1157248.36249,1103833.3845,1978224.4829600002,2226555.41056,1669343.3780099999,2543761.33792,822009.309,822009.309,822009.309,1784194.7725,1231363.908,1231363.908,2354066.11635,738393.003,1097561.9452,1914352.23,543311.3948,690989.9954,1661787.492,1661787.492,1661787.492,1661787.492,3702300.81672,3702300.81672 +27676800.0,2253654.036,2015900.133,5886428.38836,2812054.68896,2812054.68896,2812054.68896,1989746.1780000003,3415136.1772799995,3965859.53024,3292632.31962,5017344.48704,1420464.615,1420464.615,1420464.615,2190859.8565,2253654.036,2253654.036,3488064.5831199996,1745762.0823000001,2594935.24332,4526049.843,1284536.05068,1633688.46714,2411077.779,2411077.779,2411077.779,2411077.779,6775986.468239999,6775986.468239999 +27680400.0,2623323.978,2553287.637,7455599.900040001,3140973.8838500003,3140973.8838500003,3140973.8838500003,2628327.114,4458909.858080001,10203354.2496,3534230.6391000003,5385494.307200001,2707905.423,2707905.423,2707905.423,2728522.545,2623323.978,2623323.978,2719160.75366,3524503.4199,5238891.50316,9137601.459,2593338.31884,3298239.00282,2347550.064,2347550.064,2347550.064,2347550.064,7887460.76052,7887460.76052 +27684000.0,1935159.891,1618227.1709999996,4725223.339319999,2236164.06827,2236164.06827,2236164.06827,2832672.5385000003,3699966.4559999993,7067381.2768,3613654.87413,5506521.71296,2641154.058,2641154.058,2641154.058,2960747.1355,1935159.891,1935159.891,2070450.7289699998,3472063.5176999997,5160943.79668,9001646.157,2554752.90932,3249165.6128599998,2050520.955,2050520.955,2050520.955,2050520.955,5818380.73894,5818380.73894 +27687600.0,1370950.1490000002,1137178.413,3320560.9659599997,1920982.2263500001,1920982.2263500001,1920982.2263500001,2560449.213,3476194.8956800005,7208211.431040001,2893748.72577,4409521.86784,1227217.317,1227217.317,1227217.317,2364788.0305,1370950.1490000002,1370950.1490000002,1287829.3519,2627531.25345,3905614.35698,6812118.064500001,1933343.9840200003,2458850.2347100005,1627185.27,1627185.27,1627185.27,1627185.27,4121990.11466,4121990.11466 +27691200.0,1148224.8360000001,960039.054,2803314.0376799996,1495008.9852500001,1495008.9852500001,1495008.9852500001,1633465.4455,2940126.08248,3955321.7606400005,2160487.42455,3292171.3136,1132637.937,1132637.937,1132637.937,1719119.3355,1148224.8360000001,1148224.8360000001,1160614.77012,1636248.6972,2432152.38448,4242126.252,1203955.83152,1531205.5709600002,1224980.208,1224980.208,1224980.208,1224980.208,3452329.34024,3452329.34024 +27694800.0,845495.655,696524.169,2033850.57348,780928.0347000001,780928.0347000001,780928.0347000001,978563.901,1959093.97448,2519518.58112,1475515.36209,2248404.3612800003,779691.171,779691.171,779691.171,1062035.8665,845495.655,845495.655,810299.31957,1012046.2825499999,1504325.58542,2623823.6955,744666.1535799999,947075.41009,904168.0499999999,904168.0499999999,904168.0499999999,904168.0499999999,2542123.6027,2542123.6027 +27698400.0,753214.8990000001,615740.5109999999,1797962.2921199999,651415.90943,651415.90943,651415.90943,793208.0800000001,1482321.30344,2350351.8912,1217057.41563,1854563.68096,704013.897,704013.897,704013.897,957772.8195000001,753214.8990000001,753214.8990000001,705584.3978299998,870788.39805,1294357.07562,2257599.5505,640728.25338,814885.93299,798104.19,798104.19,798104.19,798104.19,2264666.12966,2264666.12966 +27702000.0,1040745.9450000001,918006.8489999999,2680579.99908,1152096.9146500002,1152096.9146500002,1152096.9146500002,1122570.911,2040333.9458400002,3614462.7084800005,1738268.68068,2648790.37056,1037848.5989999999,1037848.5989999999,1037848.5989999999,1332276.6975,1040745.9450000001,1040745.9450000001,1287707.34625,1316028.01545,1956170.03778,3411924.4845000003,968336.66322,1231542.26631,1160141.184,1160141.184,1160141.184,1160141.184,3129176.1413,3129176.1413 +27705600.0,1109686.4910000002,987386.1599999999,2883167.5871999995,1262474.0733,1262474.0733,1262474.0733,1207094.3885,2177593.14776,3908404.3392,1862991.1962899999,2838843.72768,1123157.355,1123157.355,1123157.355,1431868.088,1109686.4910000002,1109686.4910000002,1408137.4615099998,1419053.0291999998,2109308.4532799996,3679026.372,1044142.72272,1327953.3285599998,1249878.279,1249878.279,1249878.279,1249878.279,3336457.38294,3336457.38294 +27709200.0,1142358.3329999999,1015555.4820000001,2965422.00744,1328121.3173800001,1328121.3173800001,1328121.3173800001,1264337.529,2252159.646,4027457.9232000005,1924388.0600700001,2932400.85344,1159525.002,1159525.002,1159525.002,1475216.9775,1142358.3329999999,1142358.3329999999,1452260.18795,1466129.82015,2179284.32526,3801077.3115000003,1078781.94174,1372007.90577,1288470.276,1288470.276,1288470.276,1288470.276,3434690.7212199997,3434690.7212199997 +27712800.0,1159979.526,1023885.879,2989746.76668,1394801.0024299999,1394801.0024299999,1394801.0024299999,1323261.5059999998,2298041.35488,4059972.5094400006,1962240.95361,2990081.45312,1173944.4749999999,1173944.4749999999,1173944.4749999999,1500039.7755,1159979.526,1159979.526,1463544.28922,1490189.9751,2215047.8148399997,3863455.491,1096485.46316,1394523.45818,1306423.683,1306423.683,1306423.683,1306423.683,3487671.77484,3487671.77484 +27716400.0,1169165.1390000002,1032563.2889999999,3015084.8038799996,1406754.8,1406754.8,1406754.8,1334633.8215,2320083.24936,4096861.7369600004,1978922.51781,3015500.9795200005,1185288.774,1185288.774,1185288.774,1513611.1655,1169165.1390000002,1169165.1390000002,1473546.8862399997,1502385.5861999998,2233175.61208,3895073.7419999996,1105459.0239199998,1405936.1411599999,1317402.1770000001,1317402.1770000001,1317402.1770000001,1317402.1770000001,3515289.8512600004,3515289.8512600004 +27720000.0,1160290.7519999999,1026229.416,2996589.89472,1383878.36785,1383878.36785,1383878.36785,1313834.2944999998,2298176.07784,4067049.5904000006,1961551.61118,2989031.02656,1175568.906,1175568.906,1175568.906,1499108.2295,1160290.7519999999,1160290.7519999999,1464850.3340899996,1488702.2723999997,2212836.4641599995,3859598.4839999997,1095390.80784,1393131.26232,1307108.706,1307108.706,1307108.706,1307108.706,3488607.52768,3488607.52768 +27723600.0,1096230.309,902235.534,2634527.75928,1148818.70059,1148818.70059,1148818.70059,982191.2170000002,1873655.5920799999,2881214.57408,1591632.93324,2425345.42208,909148.3800000001,909148.3800000001,909148.3800000001,1161689.7635000001,1096230.309,1096230.309,1379443.0505699997,1158320.95875,1721751.1534999998,3003054.3375,852295.4214999999,1083959.61325,1114879.1670000001,1114879.1670000001,1114879.1670000001,1114879.1670000001,3295999.1290599997,3295999.1290599997 +27727200.0,481331.86199999996,337867.956,986574.43152,609335.88232,609335.88232,609335.88232,399267.2915,902876.2056,1156721.2569600001,740515.0242000001,1128403.8464000002,412208.53500000003,412208.53500000003,412208.53500000003,497268.4325,481331.86199999996,481331.86199999996,778046.5475899999,256280.56155,380940.48902,664431.0855,188571.86998000002,239827.98229,598493.097,598493.097,598493.097,598493.097,1447204.46508,1447204.46508 +27730800.0,172489.872,121910.90100000001,355979.83092000004,184046.15702,184046.15702,184046.15702,69101.23150000001,365291.56200000003,862071.5232,332515.30767,506689.99264,242206.75799999997,242206.75799999997,242206.75799999997,134529.2165,172489.872,172489.872,255839.99908999997,105243.52679999999,156436.05711999998,272853.588,77438.44688,98487.15224,185625.126,185625.126,185625.126,185625.126,518619.54848,518619.54848 +27734400.0,179237.949,170592.693,498130.66355999996,164757.67,164757.67,164757.67,63927.65400000001,397138.25,899825.60192,333893.09898000007,508789.4841600001,244721.484,244721.484,244721.484,129969.21700000002,179237.949,179237.949,258082.5221,108397.54935,161124.25854,281030.6835,79759.18446,101438.69433,186035.03100000002,186035.03100000002,186035.03100000002,186035.03100000002,538908.76666,538908.76666 +27738000.0,191141.31900000002,187032.04200000002,546133.56264,165473.10681000003,165473.10681000003,165473.10681000003,70847.7595,395697.46359999996,937199.09824,351932.14917000005,536277.5606400002,246008.262,246008.262,246008.262,128902.90349999999,191141.31900000002,191141.31900000002,286799.82863999996,121091.76,179993.18399999998,313941.60000000003,89099.616,113317.96800000001,220653.738,220653.738,220653.738,220653.738,574698.23246,574698.23246 +27741600.0,213618.41400000002,199807.74,583438.6008,171382.23806000003,171382.23806000003,171382.23806000003,77436.975,402167.75143999996,948137.4803200001,390611.26251,595217.16192,328897.545,328897.545,328897.545,141522.6015,213618.41400000002,213618.41400000002,304698.29078,139402.71314999997,207210.94645999995,361414.44149999996,102572.86053999998,130453.40316999998,280736.40300000005,280736.40300000005,280736.40300000005,280736.40300000005,642279.36476,642279.36476 +27745200.0,253916.271,220983.039,645270.47388,175507.93601,175507.93601,175507.93601,83189.001,472367.23784,947949.3651200002,429212.44863,654038.01696,379175.199,379175.199,379175.199,238199.61549999999,253916.271,253916.271,325281.87769999995,162248.65785,241169.60993999997,420644.66849999997,119382.96306,151832.69462999998,333023.043,333023.043,333023.043,333023.043,763441.5881399999,763441.5881399999 +27748800.0,324460.73699999996,237609.744,693820.4524800001,181864.64109000002,181864.64109000002,181864.64109000002,84170.2435,595583.4764800001,1016522.43648,502371.37671000004,765518.28832,417915.71400000004,417915.71400000004,417915.71400000004,256918.64800000004,324460.73699999996,324460.73699999996,349260.0643999999,179874.90989999997,267369.61915999994,466342.359,132352.40284,168327.38481999998,400315.434,400315.434,400315.434,400315.434,975545.2825799999,975545.2825799999 +27752400.0,383738.781,254424.456,742919.41152,196908.9199,196908.9199,196908.9199,96158.79350000001,644137.81464,1214707.18528,575649.68307,877180.46944,442559.78099999996,442559.78099999996,442559.78099999996,275736.73050000006,383738.781,383738.781,371639.72455999994,233252.69085,346711.40714,604729.1985,171627.90586000003,218278.44403,451075.22699999996,451075.22699999996,451075.22699999996,451075.22699999996,1153774.60154,1153774.60154 +27756000.0,568787.598,306521.898,895043.94216,303381.03972,303381.03972,303381.03972,184915.3005,1192549.5437599998,1380527.5136000002,869066.23251,1324291.40192,497482.314,497482.314,497482.314,446637.2155,568787.598,568787.598,582465.30017,322907.41935,479975.96653999994,837167.3835,237596.07645999998,302177.56033,590849.3130000001,590849.3130000001,590849.3130000001,590849.3130000001,1710154.71132,1710154.71132 +27759600.0,1291336.905,691287.621,2018559.85332,1736940.0457200003,1736940.0457200003,1736940.0457200003,1520821.9145,3518100.6741599995,4389110.08064,3070214.44212,4678422.0070400005,1306689.096,1306689.096,1306689.096,1934645.4505,1291336.905,1291336.905,2716396.77374,1713854.42865,2547507.07666,4443326.2965,1261058.32034,1603829.20607,1585757.673,1585757.673,1585757.673,1585757.673,3882619.6277,3882619.6277 +27763200.0,1180457.892,1257956.421,3673232.74932,2307869.43409,2307869.43409,2307869.43409,2026989.517,4355207.72832,3481134.009600001,3418741.2674100003,5209510.50272,1373184.231,1373184.231,1373184.231,1916544.0559999999,1180457.892,1180457.892,2298866.69103,2232698.0859,3318726.5375599996,5788476.519,1642824.76444,2089364.3816200001,1638143.7240000002,1638143.7240000002,1638143.7240000002,1638143.7240000002,3549243.3952800003,3549243.3952800003 +27766800.0,2132943.828,2307636.735,6738299.2661999995,1829247.32419,1829247.32419,1829247.32419,2592542.54,4652315.5208,7554393.34912,3839084.51745,5850033.5504,2017689.1260000002,2017689.1260000002,2017689.1260000002,1719808.6115,2132943.828,2132943.828,3090646.77467,2109293.3263499998,3135295.26534,5468538.253500001,1552023.23766,1973881.90293,2393803.059,2393803.059,2393803.059,2393803.059,6413051.10952,6413051.10952 +27770400.0,1602349.122,1248378.8760000002,3645266.31792,803687.9101900001,803687.9101900001,803687.9101900001,1008097.0829999999,2450328.33096,7461650.216320001,1599033.31434,2436622.1932800002,1550008.2510000002,1550008.2510000002,1550008.2510000002,1590276.2295,1602349.122,1602349.122,2723926.58343,2348379.19575,3490677.2242999994,6088390.507499999,1727943.2107,2197619.04985,1121732.703,1121732.703,1121732.703,1121732.703,4817729.693479999,4817729.693479999 +27774000.0,813826.6050000001,742134.777,2167033.54884,457770.04284,457770.04284,457770.04284,621970.6884999999,1640086.8010399998,4512315.72288,1023269.77368,1559268.22656,665672.1780000001,665672.1780000001,665672.1780000001,661657.556,813826.6050000001,813826.6050000001,926529.10714,1245415.4676,1851210.15184,3228854.916,916379.7761600001,1165462.86968,656933.592,656933.592,656933.592,656933.592,2446905.3257000004,2446905.3257000004 +27777600.0,852111.942,1240245.003,3621515.40876,710958.44655,710958.44655,710958.44655,988595.5835,1799800.4233599997,2935224.5696,1420912.94142,2165200.67264,753603.507,753603.507,753603.507,1107596.7665,852111.942,852111.942,1009163.7912199999,897294.11715,1333755.70006,2326318.0815,660231.22694,839690.0503700001,837740.1569999999,837740.1569999999,837740.1569999999,837740.1569999999,2562016.57228,2562016.57228 +27781200.0,681880.4579999999,749950.173,2189854.50516,527235.72022,527235.72022,527235.72022,934154.6024999998,1372333.4590399999,2139434.99648,1007838.9283200001,1535754.5574400001,604581.984,604581.984,604581.984,742223.699,681880.4579999999,681880.4579999999,766212.7787599999,710161.0686,1055597.44024,1841158.3260000001,522538.26776,664570.4814800001,621685.422,621685.422,621685.422,621685.422,2050187.2437199997,2050187.2437199997 +27784800.0,575217.069,489864.54300000006,1430404.4655600002,294728.13832,294728.13832,294728.13832,551067.0515000001,1210194.29784,1907312.28544,858154.9485599999,1307664.68352,540561.495,540561.495,540561.495,463606.3705000001,575217.069,575217.069,670940.8682599999,608866.2270000001,905030.7868000001,1578542.0700000003,448005.27320000005,569778.5186000001,548311.611,548311.611,548311.611,548311.611,1729485.98746,1729485.98746 +27788400.0,1002482.832,1207601.826,3526197.33192,1510429.6088200002,1510429.6088200002,1510429.6088200002,1442422.1875,2226915.7028799998,2985525.4534400003,1780101.6342900002,2712535.8236800004,897280.302,897280.302,897280.302,1439698.8969999999,1002482.832,1002482.832,1537958.13496,1355334.9057,2014596.5758800001,3513831.2370000007,997258.7701200001,1268325.7512600003,1052052.858,1052052.858,1052052.858,1052052.858,3014131.71488,3014131.71488 +27792000.0,979002.3209999999,1354370.511,3954761.89212,1710882.9004300004,1710882.9004300004,1710882.9004300004,1232022.0569999998,2539328.42424,3290740.03712,1900902.12228,2896612.75776,1053743.5890000002,1053743.5890000002,1053743.5890000002,1670526.3435,979002.3209999999,979002.3209999999,1661362.1770199998,1398780.7460999999,2079175.3312399997,3626468.601,1029226.32676,1308982.47598,1174072.332,1174072.332,1174072.332,1174072.332,2943533.6451399997,2943533.6451399997 +27795600.0,904806.852,1304162.2710000002,3808153.8313200003,1109354.3688700001,1109354.3688700001,1109354.3688700001,1070943.2895,2407681.98208,3267006.56832,1610872.38816,2454662.68672,902875.0170000001,902875.0170000001,902875.0170000001,1320333.0034999999,904806.852,904806.852,1387762.7969399998,1190130.8818499998,1769034.0515399997,3085524.5084999995,875701.2414599998,1113727.41783,1117080.651,1117080.651,1117080.651,1117080.651,2720452.60168,2720452.60168 +27799200.0,2216273.364,1806896.3850000002,5276137.4442,3519076.8635000004,3519076.8635000004,3519076.8635000004,2888178.1215,3523434.25272,6698065.21472,3716994.6078299996,5663991.78336,2324049.264,2324049.264,2324049.264,2979745.5555000002,2216273.364,2216273.364,3856085.7975899996,2854156.10715,4242474.01606,7399663.981500001,2100095.11094,2670926.3323700004,2470257.597,2470257.597,2470257.597,2470257.597,6663595.247760001,6663595.247760001 +27802800.0,1638316.836,908367.927,2652434.34684,2161918.6968500004,2161918.6968500004,2161918.6968500004,1722735.217,2597100.3847999997,4512935.96992,2414352.69306,3679013.62752,1616223.8909999998,1616223.8909999998,1616223.8909999998,2008963.4109999998,1638316.836,1638316.836,1431255.7596999998,1880381.3606999998,2795035.9978799997,4875062.787,1383589.24812,1759665.52026,1749511.542,1749511.542,1749511.542,1749511.542,4925872.620239999,4925872.620239999 +27806400.0,1189451.1,863516.6129999999,2521468.50996,1260976.26853,1260976.26853,1260976.26853,1285899.4259999997,1959642.4789600002,3640388.8672,1733169.00729,2641019.4396800003,1037795.5830000001,1037795.5830000001,1037795.5830000001,1410785.922,1189451.1,1189451.1,1263356.19215,1382878.1781,2055537.4400399998,3585239.721,1017525.17796,1294100.81358,1208193.969,1208193.969,1208193.969,1208193.969,3576282.974,3576282.974 +27810000.0,1055311.9440000001,887973.888,2592883.75296,1216803.67941,1216803.67941,1216803.67941,1193551.1875,1931064.90032,3620364.8256,1698567.1432799997,2588292.7897599996,1043071.227,1043071.227,1043071.227,1385048.084,1055311.9440000001,1055311.9440000001,1293939.72097,1359120.0235499998,2020222.84982,3523644.5055,1000043.8691799999,1271867.87389,1187911.7040000001,1187911.7040000001,1187911.7040000001,1187911.7040000001,3172971.2449600003,3172971.2449600003 +27813600.0,752852.991,641601.21,1873475.5332,804138.3004599999,804138.3004599999,804138.3004599999,657044.0484999999,1009249.60976,2253284.11072,986915.4117900002,1503871.1036800002,565412.7239999999,565412.7239999999,565412.7239999999,698285.9659999999,752852.991,752852.991,923171.4577799999,642973.89735,955729.1017399998,1666969.3635,473101.78125999996,601696.56073,760694.193,760694.193,760694.193,760694.193,2263577.99294,2263577.99294 +27817200.0,131409.381,115407.73199999999,336990.57743999996,158785.7997,158785.7997,158785.7997,67373.5895,215749.61368,815529.9404800001,247515.27234,377166.12928000005,193229.094,193229.094,193229.094,123385.829,131409.381,131409.381,242893.03272,95393.4408,141794.69472,247316.328,70190.72928,89269.41744,165945.114,165945.114,165945.114,165945.114,395104.20554,395104.20554 +27820800.0,131483.93700000003,114137.019,333280.09548,134583.83774000005,134583.83774000005,134583.83774000005,46327.75,228304.99464000002,805478.89856,270323.75432999997,411921.91136,188833.419,188833.419,188833.419,118069.61949999999,131483.93700000003,131483.93700000003,239272.35331999997,88893.7416,132133.41344,230465.256,65408.23456,83186.98288,166294.695,166294.695,166294.695,166294.695,395328.37058000005,395328.37058000005 +27824400.0,146073.732,135169.479,394694.87868,132286.39193,132286.39193,132286.39193,53619.709500000004,260912.92664,822278.1952,287619.69935999997,438277.63711999997,191016.993,191016.993,191016.993,118837.70850000001,146073.732,146073.732,262478.51578,94920.63165,141091.90185999998,246090.52649999998,69842.83514,88826.96147,174075.165,174075.165,174075.165,174075.165,439195.02087999997,439195.02087999997 +27828000.0,168153.228,148124.031,432522.1705199999,131047.31298999999,131047.31298999999,131047.31298999999,58851.29250000001,326467.44056,831465.7894400001,332603.90919,506825.00447999995,197068.476,197068.476,197068.476,119793.52,168153.228,168153.228,279115.46403,115404.53129999999,171539.57491999998,299196.933,84914.93908,107995.84534,205684.626,205684.626,205684.626,205684.626,505580.70551999996,505580.70551999996 +27831600.0,211269.93899999998,161949.321,472892.01732000004,142447.68824,142447.68824,142447.68824,78881.8135,379479.99383999995,831204.2777600001,366550.94112000003,558553.8150400001,271543.56,271543.56,271543.56,176770.7305,211269.93899999998,211269.93899999998,291242.84487999993,137234.31884999998,203987.80234,355792.6785,100977.35066,128424.21443,275710.161,275710.161,275710.161,275710.161,635218.2832599999,635218.2832599999 +27835200.0,249529.21799999996,186443.25,544414.29,154911.39983,154911.39983,154911.39983,80285.97499999999,466678.13759999996,846332.60224,414924.38127000007,632265.7238400001,354814.239,354814.239,354814.239,234192.78050000005,249529.21799999996,249529.21799999996,315820.13151,154389.62475000002,229487.7879,400269.3975,113600.26710000001,144478.19205,313672.359,313672.359,313672.359,313672.359,750251.1821199999,750251.1821199999 +27838800.0,312326.904,226045.734,660053.54328,180024.30512,180024.30512,180024.30512,88353.3735,554315.16904,905867.69024,491633.25792,749155.44064,392776.479,392776.479,392776.479,247358.664,312326.904,312326.904,340432.59367,174730.32045,259722.59978000002,453004.53450000007,128567.00122,163513.06531,391025.139,391025.139,391025.139,391025.139,939062.8913599999,939062.8913599999 +27842400.0,504200.703,268012.839,782597.48988,284433.21984000003,284433.21984000003,284433.21984000003,169126.28949999998,1063112.1692,1183113.1340800002,771272.35794,1175272.16448,445711.5299999999,445711.5299999999,445711.5299999999,379579.193,504200.703,504200.703,552657.7638399999,246995.38169999997,367138.81427999993,640358.397,181739.81172,231138.88806,524736.402,524736.402,524736.402,524736.402,1515963.4470199998,1515963.4470199998 +27846000.0,1255743.309,605874.444,1769153.37648,1666183.4294600002,1666183.4294600002,1666183.4294600002,1466721.2665,3427170.82296,4169590.8812800003,2970966.46224,4527186.99008,1200020.3760000002,1200020.3760000002,1200020.3760000002,1725973.4170000001,1255743.309,1255743.309,2612923.76514,1591081.27065,2365014.62946,4125025.5165000004,1170721.5275400002,1488937.7816700002,1549093.728,1549093.728,1549093.728,1549093.728,3775601.5490599996,3775601.5490599996 +27849600.0,1131296.4810000001,1236713.9849999999,3611204.8362,2087275.8939999999,2087275.8939999999,2087275.8939999999,1963359.7480000001,4246282.26752,3295571.0835200003,3305542.0788600002,5037016.501120001,1348346.394,1348346.394,1348346.394,1808042.537,1131296.4810000001,1131296.4810000001,2233508.05509,2177947.2699,3237343.84316,5646529.959000001,1602538.97884,2038128.4328200002,1600669.941,1600669.941,1600669.941,1600669.941,3401431.41954,3401431.41954 +27853200.0,2087390.2320000003,2270353.911,6629433.42012,1693351.89232,1693351.89232,1693351.89232,2253083.2835,4473247.5311199995,7439594.30208,3695046.1894500004,5630546.5744,1974317.3850000002,1974317.3850000002,1974317.3850000002,1661523.4615,2087390.2320000003,2087390.2320000003,2586996.23455,1933528.0729500002,2874034.32078,5012850.5595,1422694.73022,1809400.3448100002,2340462.753,2340462.753,2340462.753,2340462.753,6276086.63088,6276086.63088 +27856800.0,1433468.844,1049521.617,3064603.12164,643192.81631,643192.81631,643192.81631,827084.8529999999,2131523.58944,6716085.0624,1263455.80116,1925265.98272,1382134.485,1382134.485,1382134.485,1415405.404,1433468.844,1433468.844,1899996.6858599999,2149188.6087,3194596.40108,5571970.467,1581378.2849200002,2011216.0066600002,939685.8929999999,939685.8929999999,939685.8929999999,939685.8929999999,4309962.99096,4309962.99096 +27860400.0,635277.7679999999,515565.003,1505449.8087600002,248991.54588000002,248991.54588000002,248991.54588000002,412964.496,1162814.0508,3151590.10304,687544.8199200002,1047687.3446400003,463509.94200000004,463509.94200000004,463509.94200000004,437770.8825,635277.7679999999,635277.7679999999,559714.09156,870646.6966499999,1294146.4478599997,2257232.1765,640623.98914,814753.32847,444256.566,444256.566,444256.566,444256.566,1910068.4891199998,1910068.4891199998 +27864000.0,818053.5090000001,1204171.311,3516180.2281199996,666321.40531,666321.40531,666321.40531,989902.7775,1793583.68496,2931043.1136000007,1387456.46361,2114219.37312,744105.456,744105.456,744105.456,1107512.7385,818053.5090000001,818053.5090000001,931601.8341499999,900934.78365,1339167.2586599998,2335756.8465,662910.03834,843096.99507,824301.21,824301.21,824301.21,824301.21,2459614.21706,2459614.21706 +27867600.0,662671.23,693385.3319999999,2024685.1694399999,523126.10691000003,523126.10691000003,523126.10691000003,928045.3035000002,1359431.4507199998,2127470.848,995721.26976,1517289.55392,603018.831,603018.831,603018.831,715819.5484999999,662671.23,662671.23,749740.80389,702551.3048999999,1044286.1371599998,1821429.309,516938.98483999993,657449.24582,617432.7,617432.7,617432.7,617432.7,1992431.4982,1992431.4982 +27871200.0,577897.4010000001,494590.98,1444205.6616,301068.03023000003,301068.03023000003,301068.03023000003,535709.804,1219389.06248,1930750.7430399999,866559.7185,1320471.9519999998,550908.783,550908.783,550908.783,473875.1079999999,577897.4010000001,577897.4010000001,667431.16037,615871.6577999999,915443.7975199999,1596704.298,453159.88648,576334.2180400001,554351.574,554351.574,554351.574,554351.574,1737544.85234,1737544.85234 +27874800.0,1014509.7329999999,1181461.164,3449866.5988800004,1505970.7040400002,1505970.7040400002,1505970.7040400002,1455992.909,2255350.3767199996,3073432.74176,1812352.56342,2761680.09664,920177.286,920177.286,920177.286,1466420.4064999998,1014509.7329999999,1014509.7329999999,1555143.4087799997,1384819.5253499998,2058423.0969399996,3590272.8434999995,1018953.6260599999,1295917.53113,1048626.393,1048626.393,1048626.393,1048626.393,3050292.5972199994,3050292.5972199994 +27878400.0,1009321.059,1377291.945,4021692.4794,1675889.0078699999,1675889.0078699999,1675889.0078699999,1259552.0280000002,2578829.46592,3424102.768640001,1916070.53442,2919726.52864,1098167.52,1098167.52,1098167.52,1714353.0495,1009321.059,1009321.059,1655927.4013099999,1438488.4202999999,2138197.6025199997,3729414.423,1058443.33148,1346141.01554,1202019.957,1202019.957,1202019.957,1202019.957,3034691.9840599997,3034691.9840599997 +27882000.0,942363.7620000001,1326691.434,3873938.98728,1145855.43534,1145855.43534,1145855.43534,1122091.4005,2500893.70232,3432027.0643200004,1683189.9205800002,2564860.83136,954524.751,954524.751,954524.751,1376314.1175000002,942363.7620000001,942363.7620000001,1418685.6327799999,1246618.10295,1852997.77278,3231972.8595000003,917264.67822,1166588.29881,1165321.8599999999,1165321.8599999999,1165321.8599999999,1165321.8599999999,2833373.71108,2833373.71108 +27885600.0,2262018.6119999997,1860327.4649999999,5432156.197799999,3556423.20792,3556423.20792,3556423.20792,2944921.0175,3622787.2702399995,6942146.677760001,3793555.78791,5780656.43872,2380244.1720000003,2380244.1720000003,2380244.1720000003,3049048.177,2262018.6119999997,2262018.6119999997,3880787.8892899994,2928100.4361,4352386.32724,7591371.501,2154503.53076,2740123.61798,2532098.91,2532098.91,2532098.91,2532098.91,6801135.960079999,6801135.960079999 +27889200.0,1752510.6060000001,1027219.287,2999480.31804,2282868.9829,2282868.9829,2282868.9829,1856364.4155,2862939.6084,5070056.945280001,2632751.40198,4011811.6601600004,1791452.433,1791452.433,1791452.433,2265688.894,1752510.6060000001,1752510.6060000001,1583272.72168,2067295.4905499998,3072868.8526199996,5359654.9755,1521121.1263799998,1934580.22449,1916734.641,1916734.641,1916734.641,1916734.641,5269215.22204,5269215.22204 +27892800.0,1324583.736,977457.3180000001,2854175.3685600003,1397385.0942700002,1397385.0942700002,1397385.0942700002,1460771.2769999998,2227551.0831999998,4205498.71104,1949266.1197799998,2970310.2777599995,1205012.088,1205012.088,1205012.088,1620456.369,1324583.736,1324583.736,1402998.0486599999,1572351.4745999998,2337174.29064,4076466.786,1156940.09736,1471410.3922799998,1375874.592,1375874.592,1375874.592,1375874.592,3982581.76624,3982581.76624 +27896400.0,1205216.832,1031883.408,3013099.55136,1378898.2548000002,1378898.2548000002,1378898.2548000002,1366473.7205,2248287.17704,4256860.04672,1951833.31791,2974222.19872,1228111.056,1228111.056,1228111.056,1630671.2519999999,1205216.832,1205216.832,1492801.03245,1575733.49595,2342201.3939799997,4085234.9895,1159428.59702,1474575.29621,1373516.7659999998,1373516.7659999998,1373516.7659999998,1373516.7659999998,3623685.2748799995,3623685.2748799995 +27900000.0,863154.573,757941.111,2213188.04412,938357.1894400001,938357.1894400001,938357.1894400001,761162.3809999999,1220594.57864,2717222.78208,1160821.7835900001,1768871.2892800001,681103.3829999999,681103.3829999999,681103.3829999999,835368.4709999999,863154.573,863154.573,1079601.2292,763403.6079,1134738.20236,1979194.5389999999,561714.25964,714394.98122,893824.0290000001,893824.0290000001,893824.0290000001,893824.0290000001,2595218.0828199997,2595218.0828199997 +27903600.0,154897.77599999998,136494.321,398563.41732,183931.14289000002,183931.14289000002,183931.14289000002,73544.85250000001,263942.72448,1004073.4643200001,321813.81477000006,490382.95584000007,233983.45500000002,233983.45500000002,233983.45500000002,147000.41650000002,154897.77599999998,154897.77599999998,289866.1844,115065.9999,171036.37516,298319.259,84665.84684,107679.04682,198810.684,198810.684,198810.684,198810.684,465725.9798399999,465725.9798399999 +27907200.0,163774.43099999998,144434.78399999999,421749.56928,164569.31040000002,164569.31040000002,164569.31040000002,59099.614,332284.9916,1028316.8569600001,340044.04601999995,518162.35584,237661.84499999997,237661.84499999997,237661.84499999997,146758.11849999998,163774.43099999998,163774.43099999998,298362.82814,111773.52405,166142.37402,289783.21050000004,82243.23498000001,104597.93979,206154.777,206154.777,206154.777,206154.777,492415.12253999995,492415.12253999995 +27910800.0,201496.362,174196.011,508652.35212,163163.48356,163163.48356,163163.48356,68011.59749999999,452175.07576,1042189.7600000001,392570.31534000003,598202.38528,265808.80799999996,265808.80799999996,265808.80799999996,146657.896,201496.362,201496.362,339788.94833,135869.32305,201958.84561999998,352253.8005,99972.98338,127146.84799,236136.23100000003,236136.23100000003,236136.23100000003,236136.23100000003,605832.3950799999,605832.3950799999 +27914400.0,259589.09999999998,209344.67700000003,611286.4568400001,176477.49954999998,176477.49954999998,176477.49954999998,94338.63249999999,507639.32527999993,1082654.80832,452888.10399000003,690115.20608,380388.95699999994,380388.95699999994,380388.95699999994,229498.01,259589.09999999998,259589.09999999998,367799.85826999997,170966.13705,254127.44321999996,443245.54049999994,125797.30578,159990.53319,347935.146,347935.146,347935.146,347935.146,780497.894,780497.894 +27918000.0,321720.0,272572.43700000003,795911.51604,203180.99747,203180.99747,203180.99747,99243.6795,660332.66608,1146837.20128,533898.98436,813560.3571200001,489036.75299999997,489036.75299999997,489036.75299999997,305651.416,321720.0,321720.0,409472.61601999996,202112.22465000002,300423.60306,523994.65650000004,148714.67394,189137.11887,422078.92199999996,422078.92199999996,422078.92199999996,422078.92199999996,967304.7999999999,967304.7999999999 +27921600.0,419800.19700000004,305647.137,892489.64004,220766.37671000004,220766.37671000004,220766.37671000004,101781.5575,786149.64944,1291156.0384,659660.3411999999,1005196.7104,549652.9739999999,549652.9739999999,549652.9739999999,331980.859,419800.19700000004,419800.19700000004,442306.12816,249315.5619,370587.57596,646373.679,183447.00604,233310.11842,541359.9809999999,541359.9809999999,541359.9809999999,541359.9809999999,1262199.25898,1262199.25898 +27925200.0,531004.7309999999,370007.106,1080420.74952,237654.91904,237654.91904,237654.91904,120719.9245,892206.8000800001,1613554.85312,788218.99254,1201095.60768,576090.807,576090.807,576090.807,367520.552,531004.7309999999,531004.7309999999,453704.4813599999,322807.2102,479827.01368,836907.5819999999,237522.34232,302083.78436,622141.926,622141.926,622141.926,622141.926,1596554.2245399999,1596554.2245399999 +27928800.0,715739.97,481290.60899999994,1405368.5782799998,386103.93217,386103.93217,386103.93217,209543.642,1508912.2776,1893867.42336,1102601.50938,1680154.68096,632620.9349999999,632620.9349999999,632620.9349999999,592438.378,715739.97,715739.97,685390.55559,408171.79394999996,606714.61718,1058223.1695,300333.81382,381968.17261,743797.0109999999,743797.0109999999,743797.0109999999,743797.0109999999,2151991.5097999997,2151991.5097999997 +27932400.0,1424274.0269999998,838771.8840000001,2449213.9012800003,1915194.56832,1915194.56832,1915194.56832,1602432.0935000002,3811785.53168,4911725.75616,3397763.84808,5177544.91136,1573291.434,1573291.434,1573291.434,2327908.1875,1424274.0269999998,1424274.0269999998,2986374.76254,1907906.54175,2835949.9707,4946424.367500001,1403842.3443,1785423.65265,1780584.546,1780584.546,1780584.546,1780584.546,4282317.24118,4282317.24118 +27936000.0,1380151.794,1382226.6749999998,4036101.891,2568902.65698,2568902.65698,2568902.65698,2350589.458,4856817.44632,4088494.84288,3738355.67889,5696541.98688,1557244.677,1557244.677,1557244.677,2288853.525,1380151.794,1380151.794,2522881.4213199993,2453541.4026,3646992.40584,6361033.266000001,1805321.8221600002,2296030.10268,1880543.139,1880543.139,1880543.139,1880543.139,4149656.39396,4149656.39396 +27939600.0,2252457.3,2394817.443,6992866.93356,1975942.7086300002,1975942.7086300002,1975942.7086300002,2899559.8415,4972948.43928,7882082.84672,4087775.1702900003,6228990.735680001,2141598.4289999995,2141598.4289999995,2141598.4289999995,1887111.5690000001,2252457.3,2252457.3,3147119.7244499996,2388451.1958000003,3550241.03672,6192280.8780000005,1757428.2872800003,2235118.52644,2511155.259,2511155.259,2511155.259,2511155.259,6772388.282,6772388.282 +27943200.0,1599129.0,1142708.907,3336710.0084399995,724059.25152,724059.25152,724059.25152,1070427.155,2346002.47168,7457797.456,1531492.30899,2333702.5660800003,1545267.5520000001,1545267.5520000001,1545267.5520000001,1553968.9655,1599129.0,1599129.0,1964384.8706299998,2273116.5108,3378805.28272,5893265.028,1672564.74128,2127188.04344,1031955.081,1031955.081,1031955.081,1031955.081,4808047.859999999,4808047.859999999 +27946800.0,763065.933,636385.2119999999,1858244.8190399997,322640.56462,322640.56462,322640.56462,534760.7194999999,1464903.5092799996,4572680.574080001,911370.48303,1388755.0217600001,613581.936,613581.936,613581.936,609186.0950000001,763065.933,763065.933,684089.6477999999,1307972.03895,1944195.4751799998,3391038.6195,962409.05582,1224003.46361,578157.564,578157.564,578157.564,578157.564,2294284.9052199996,2294284.9052199996 +27950400.0,940073.382,1277068.851,3729041.0449200002,742354.0276900001,742354.0276900001,742354.0276900001,1091973.519,1982672.57736,3255911.808,1530498.72003,2332188.52576,829691.973,829691.973,829691.973,1192484.3035,940073.382,940073.382,1043979.8651099999,999206.4014999999,1485240.1326,2590535.115,735218.5374,935059.8177,921884.361,921884.361,921884.361,921884.361,2826487.3018799997,2826487.3018799997 +27954000.0,556353.591,639072.24,1866090.9408,357942.34047,357942.34047,357942.34047,788477.956,1128534.46552,1560070.9056000002,775522.41501,1181748.4419200001,473390.51399999997,473390.51399999997,473390.51399999997,709753.6460000001,556353.591,556353.591,526438.4105499999,513776.81159999996,763688.0014399999,1332013.956,378038.24656,480793.60887999996,472146.22500000003,472146.22500000003,472146.22500000003,472146.22500000003,1672769.79694,1672769.79694 +27957600.0,537125.0430000001,438946.812,1281724.69104,219906.06011000005,219906.06011000005,219906.06011000005,528755.1465,1121569.6347999999,1679701.6300800003,773706.86148,1178981.88416,493559.61600000004,493559.61600000004,493559.61600000004,413123.3785,537125.0430000001,537125.0430000001,566588.00484,532076.0440499999,790888.3420199999,1379456.4104999998,391502.86697999993,497918.0757899999,491905.476,491905.476,491905.476,491905.476,1614955.9626200001,1614955.9626200001 +27961200.0,1106210.208,1350545.988,3943594.28496,1560752.3993600002,1560752.3993600002,1560752.3993600002,1558076.7615,2497475.2291200003,3359874.21184,1903266.47973,2900215.5881600003,982678.977,982678.977,982678.977,1534676.6225,1106210.208,1106210.208,1579998.4584799998,1485716.12235,2208397.79174,3851856.6135000004,1093193.5912600001,1390336.8157300001,1179039.564,1179039.564,1179039.564,1179039.564,3326005.3587200004,3326005.3587200004 +27964800.0,1139734.467,1505240.7060000002,4395302.861520001,1840213.94733,1840213.94733,1840213.94733,1403127.9535,2917497.1511999997,3916952.34176,2170905.36264,3308046.2668800005,1226866.143,1226866.143,1226866.143,1833435.8315,1139734.467,1139734.467,1872321.01849,1608846.7617,2391421.60628,4171084.197,1183793.41972,1505562.77206,1354632.8760000002,1354632.8760000002,1354632.8760000002,1354632.8760000002,3426801.63078,3426801.63078 +27968400.0,1073276.622,1509983.811,4409152.72812,1285052.9803100002,1285052.9803100002,1285052.9803100002,1259307.77,2767009.3447999996,3952838.4659200003,1900671.5042700002,2896261.3398400005,1120722.777,1120722.777,1120722.777,1540246.6135,1073276.622,1073276.622,1615164.7292299997,1424744.7939,2117768.8047599997,3693782.7989999996,1048330.7372399999,1333279.69602,1326635.0219999999,1326635.0219999999,1326635.0219999999,1326635.0219999999,3226985.04348,3226985.04348 +27972000.0,2347251.552,1949606.3609999996,5692850.574119999,3648624.33265,3648624.33265,3648624.33265,3046954.393,3904320.9565599994,7348962.8576,3938309.76735,6001233.9311999995,2475045.984,2475045.984,2475045.984,3162547.969,2347251.552,2347251.552,4097401.68903,3083433.9862499996,4583277.1844999995,7994088.1125,2268798.3405,2885485.1377499998,2656039.152,2656039.152,2656039.152,2656039.152,7057402.999679999,7057402.999679999 +27975600.0,1821352.3110000002,1085460.657,3169545.11844,2457308.1369100004,2457308.1369100004,2457308.1369100004,1908881.3485000003,2979294.0339200003,5336241.008640001,2799935.71788,4266568.71296,1853612.202,1853612.202,1853612.202,2499331.1735,1821352.3110000002,1821352.3110000002,1685000.1957099999,2222599.96575,3303716.4922999996,5762296.2075,1635394.5426999999,2079914.5358499999,2065254.2909999997,2065254.2909999997,2065254.2909999997,2065254.2909999997,5476199.2817400005,5476199.2817400005 +27979200.0,1395693.5520000001,1029810.342,3007046.19864,1547829.0463900003,1547829.0463900003,1547829.0463900003,1610088.683,2349351.88104,4488515.29856,2063857.4061000003,3144925.5712000006,1348227.6269999999,1348227.6269999999,1348227.6269999999,1778700.0034999996,1395693.5520000001,1395693.5520000001,1487358.95997,1664647.28505,2474364.60642,4315752.2205,1224851.58258,1557781.03959,1459227.744,1459227.744,1459227.744,1459227.744,4196385.27968,4196385.27968 +27982800.0,1230229.239,1052173.524,3072346.6900799996,1413459.2865800003,1413459.2865800003,1413459.2865800003,1402396.2435,2281409.30936,4301522.696959999,1991252.78331,3034289.9555200003,1242462.1979999999,1242462.1979999999,1242462.1979999999,1656661.0444999998,1230229.239,1230229.239,1550135.3570299998,1601755.19955,2380880.5682200002,4152698.6655,1178575.43078,1498926.47069,1396415.8260000001,1396415.8260000001,1396415.8260000001,1396415.8260000001,3698889.2452599998,3698889.2452599998 +27986400.0,867676.6140000001,753194.364,2199327.5428799996,949897.4628,949897.4628,949897.4628,760811.6705,1212191.8055999998,2680822.48,1161404.56173,1769759.3321600002,669657.696,669657.696,669657.696,831130.3035,867676.6140000001,867676.6140000001,1095897.0426299998,758746.9462499999,1127816.4485,1967121.7125,558287.8765,710037.26575,893476.284,893476.284,893476.284,893476.284,2608814.3527599997,2608814.3527599997 +27990000.0,157431.93,134684.13,393277.65959999996,182499.38608000003,182499.38608000003,182499.38608000003,73560.9875,260348.25704000003,983262.7443200002,325768.06332,496408.47744000005,229375.04099999997,229375.04099999997,229375.04099999997,144836.46099999998,157431.93,157431.93,285621.87888,114041.24055,169513.15262,295662.4755,83911.82638,106720.07449000001,199557.14099999997,199557.14099999997,199557.14099999997,199557.14099999997,473345.33619999996,473345.33619999996 +27993600.0,162357.06900000002,139776.21,408146.5332,160586.6526,160586.6526,160586.6526,58234.760500000004,315718.37744,988904.1440000001,335104.47264000005,510635.38688000006,228713.99699999997,228713.99699999997,228713.99699999997,142203.894,162357.06900000002,162357.06900000002,288582.03465,108957.2715,161956.2406,282481.815,80171.02940000001,101962.48370000001,203011.752,203011.752,203011.752,203011.752,488153.58746,488153.58746 +27997200.0,200680.43700000003,168893.80800000002,493169.91936,158912.29937000002,158912.29937000002,158912.29937000002,66482.8605,430260.82616,1003656.2924800001,381656.60673,581571.97216,242520.723,242520.723,242520.723,142150.62050000002,200680.43700000003,200680.43700000003,328259.80642,131029.12754999999,194764.28342,339705.1455,96411.55558,122617.38109,228407.94900000002,228407.94900000002,228407.94900000002,228407.94900000002,603379.18058,603379.18058 +28000800.0,246648.462,194833.86299999998,568914.8799599999,169411.21439,169411.21439,169411.21439,90734.9415,459154.15608,1021644.1420800001,428847.26682,653481.5494400001,335811.792,335811.792,335811.792,202932.55500000002,246648.462,246648.462,345579.76985999994,161793.77805,240493.46761999998,419465.3505,119048.26138,151407.01699,327732.765,327732.765,327732.765,327732.765,741589.70908,741589.70908 +28004400.0,296490.564,249332.271,728050.23132,187804.23629,187804.23629,187804.23629,94094.476,578685.56496,1041826.8576000001,494258.73483000003,753156.1673600001,432315.0,432315.0,432315.0,280835.1315,296490.564,296490.564,376396.03533999994,185440.11615000002,275641.85166,480770.67150000005,136447.29534,173535.31857000003,382932.861,382932.861,382932.861,382932.861,891448.2957599999,891448.2957599999 +28008000.0,373198.311,275141.058,803411.88936,204000.30068000001,204000.30068000001,204000.30068000001,95432.92150000001,685006.63104,1136419.6448000001,589200.45093,897829.2585600001,481327.54500000004,481327.54500000004,481327.54500000004,300371.28799999994,373198.311,373198.311,403635.98404999997,213928.96634999997,317988.24133999995,554630.6535,157409.46166,200195.25493,480719.48400000005,480719.48400000005,480719.48400000005,480719.48400000005,1122082.92174,1122082.92174 +28011600.0,474050.055,293220.915,856205.0717999999,219208.55165,219208.55165,219208.55165,111121.34950000001,768098.11016,1390523.5136000002,701416.7972700001,1068825.59584,509498.99400000006,509498.99400000006,509498.99400000006,317074.8455,474050.055,474050.055,414466.95927,276018.43905,410279.26002,715603.3605,203095.04898,258298.73679,552462.591,552462.591,552462.591,552462.591,1425310.4986999999,1425310.4986999999 +28015200.0,665293.449,421831.35000000003,1231747.5420000001,355340.98369,355340.98369,355340.98369,199519.9255,1350398.3314399999,1656626.3795200002,1012012.7679900001,1542114.69408,566857.119,566857.119,566857.119,518271.28500000003,665293.449,665293.449,640787.2379999999,368679.1221,548011.92964,955834.7609999999,271275.00836,345010.83278,686127.744,686127.744,686127.744,686127.744,2000315.63666,2000315.63666 +28018800.0,1368848.685,782092.131,2283709.02252,1854528.9554000003,1854528.9554000003,1854528.9554000003,1578622.5629999998,3682340.7987200003,4703092.41024,3293642.7314699995,5018884.1622399995,1442626.761,1442626.761,1442626.761,2213003.2749999994,1368848.685,1368848.685,2913266.52877,1816117.17975,2699512.4499,4708451.9475,1336303.5051,1699526.94105,1703801.9070000001,1703801.9070000001,1703801.9070000001,1703801.9070000001,4115671.7129,4115671.7129 +28022400.0,1315601.868,1346056.3590000002,3930484.5682800002,2487258.34302,2487258.34302,2487258.34302,2218840.169,4699447.19992,3867803.6390400003,3635506.92435,5539820.0752,1490080.797,1490080.797,1490080.797,2127699.6054999996,1315601.868,1315601.868,2471332.2809499996,2382588.71955,3541526.93622,6177081.8655,1753114.6627800001,2229632.40669,1808062.659,1808062.659,1808062.659,1808062.659,3955576.28312,3955576.28312 +28026000.0,2258233.713,2397356.187,7000280.06604,1981552.22683,1981552.22683,1981552.22683,2845697.7745,4928077.254799999,7925007.22112,4086902.75637,6227661.34304,2159444.091,2159444.091,2159444.091,1888785.3390000002,2258233.713,2258233.713,3140271.8621299993,2328152.6776499995,3460612.128259999,6035951.386499999,1713060.4887399997,2178691.02427,2527193.6160000004,2527193.6160000004,2527193.6160000004,2527193.6160000004,6789756.03042,6789756.03042 +28029600.0,1809656.1060000001,1354250.151,3954410.44092,978442.24093,978442.24093,978442.24093,1284818.857,2773361.3025599997,8191607.3248000005,1936688.87223,2951144.94816,1760867.097,1760867.097,1760867.097,1794777.3375,1809656.1060000001,1809656.1060000001,2372745.43389,2533125.5387999997,3765287.83792,6567362.508,1863880.02608,2370505.1338400003,1313921.097,1313921.097,1313921.097,1313921.097,5441032.69204,5441032.69204 +28033200.0,986734.7699999999,848782.842,2478445.89864,568555.87019,568555.87019,568555.87019,786486.0885,1854454.5480799999,5459502.552320001,1290425.56965,1966362.7728,838268.571,838268.571,838268.571,840851.9245,986734.7699999999,986734.7699999999,1063119.9614099998,1646815.04595,2447858.4139799997,4269520.4895,1211730.57702,1541093.58621,825424.4099999999,825424.4099999999,825424.4099999999,825424.4099999999,2966782.5418,2966782.5418 +28036800.0,1011617.5860000001,1331615.838,3888318.2469599997,813735.3482499999,813735.3482499999,813735.3482499999,1142471.1269999999,2073319.428,3456382.0640000002,1642318.49439,2502580.56288,906618.831,906618.831,906618.831,1247176.2765,1011617.5860000001,1011617.5860000001,1234087.53936,1073565.6408,1595769.1747199998,2783318.3279999997,789932.24928,1004645.37744,991312.3800000001,991312.3800000001,991312.3800000001,991312.3800000001,3041596.87524,3041596.87524 +28040400.0,811713.264,882818.061,2577828.73812,628453.00199,628453.00199,628453.00199,1067080.427,1583704.99408,2569794.11456,1198054.15254,1825606.32768,729379.104,729379.104,729379.104,977149.2465,811713.264,811713.264,924801.2733699998,863303.90895,1283231.98318,2238195.3195,635221.14782,807881.92961,750111.861,750111.861,750111.861,750111.861,2440551.2137599997,2440551.2137599997 +28044000.0,709176.726,598807.632,1748518.28544,401304.03500000003,401304.03500000003,401304.03500000003,769233.101,1439930.20344,2368599.34848,1066948.84506,1625826.8115200002,667878.378,667878.378,667878.378,592863.3025,709176.726,709176.726,828907.84353,772665.7513499999,1148505.6353399998,2003207.5034999999,568529.36766,723062.51793,683085.333,683085.333,683085.333,683085.333,2132258.0228399998,2132258.0228399998 +28047600.0,1157671.662,1482783.168,4329726.85056,1659630.4852600002,1659630.4852600002,1659630.4852600002,1610821.5304999999,2624409.63224,3514273.543040001,2004187.03065,3053999.2848,1064254.629,1064254.629,1064254.629,1568531.5205,1157671.662,1157671.662,1785117.22883,1534126.4770499999,2280355.8992199996,3977364.9404999996,1128814.04978,1435639.3451899998,1304329.0739999998,1304329.0739999998,1304329.0739999998,1304329.0739999998,3480732.79708,3480732.79708 +28051200.0,1157857.035,1500890.55,4382600.406,1967613.79551,1967613.79551,1967613.79551,1394823.7065,2911510.98768,3881373.7516800007,2221458.6639,3385079.8688000003,1240961.625,1240961.625,1240961.625,1867850.7925,1157857.035,1157857.035,1884934.1756699998,1598912.6179499999,2376655.29878,4145329.0095,1176483.85222,1496266.37581,1364295.423,1364295.423,1364295.423,1364295.423,3481290.1518999995,3481290.1518999995 +28054800.0,1075707.813,1505843.163,4397062.03596,1344261.4111300001,1344261.4111300001,1344261.4111300001,1254787.8735,2753409.5908,3916681.91936,1909848.5235900003,2910245.3692800007,1121972.328,1121972.328,1121972.328,1545462.1945,1075707.813,1075707.813,1609733.2676099997,1425782.4039,2119311.1287599998,3696472.899,1049094.21324,1334250.69402,1324068.4619999998,1324068.4619999998,1324068.4619999998,1324068.4619999998,3234294.82442,3234294.82442 +28058400.0,2341082.9220000003,1947859.239,5687748.97788,3674012.7688,3674012.7688,3674012.7688,3040202.9245,3938076.0747999996,7297329.87008,3928870.4886899996,5986850.268479999,2472228.747,2472228.747,2472228.747,3161432.0955000003,2341082.9220000003,2341082.9220000003,4259584.874609999,3076052.0148,4572304.47632,7974949.6680000005,2263366.66768,2878577.07064,2662670.0700000003,2662670.0700000003,2662670.0700000003,2662670.0700000003,7038855.98548,7038855.98548 +28062000.0,1850811.7769999998,1105378.059,3227703.93228,2575819.4591800002,2575819.4591800002,2575819.4591800002,1930372.5490000003,3015102.6363199996,5516336.571520001,2864229.89097,4364540.78624,1881540.849,1881540.849,1881540.849,2622529.9135,1850811.7769999998,1850811.7769999998,1721385.9457599998,2323053.93825,3453033.2613,6022732.432500001,1709308.8237,2173919.6113500004,2116183.3710000003,2116183.3710000003,2116183.3710000003,2116183.3710000003,5564774.07618,5564774.07618 +28065600.0,1405218.273,1035607.4310000001,3023973.69852,1667133.68492,1667133.68492,1667133.68492,1648572.5515,2376336.57632,4531086.910720001,2085768.37749,3178313.71808,1357915.17,1357915.17,1357915.17,1869719.9255,1405218.273,1405218.273,1502842.7059099998,1685777.9170499998,2505773.5952199996,4370535.3405,1240399.55378,1577555.13719,1483234.809,1483234.809,1483234.809,1483234.809,4225022.94082,4225022.94082 +28069200.0,1223486.9789999998,1044611.6280000001,3050265.9537600004,1445778.8187700002,1445778.8187700002,1445778.8187700002,1406952.5785,2257511.22344,4241539.55968,1977676.96224,3013602.9900800004,1227538.638,1227538.638,1227538.638,1648306.457,1223486.9789999998,1223486.9789999998,1548422.5064100001,1590759.60345,2364536.49698,4124191.5645000003,1170484.8440200002,1488636.7647100003,1386714.996,1386714.996,1386714.996,1386714.996,3678617.5168599994,3678617.5168599994 +28072800.0,869043.6060000001,752049.441,2195984.36772,957426.3604400001,957426.3604400001,957426.3604400001,762907.747,1207465.13152,2665564.38976,1160469.04386,1768333.7811200002,666655.545,666655.545,666655.545,831965.2075,869043.6060000001,869043.6060000001,1101144.87769,758201.77575,1127006.0962999999,1965708.3075,557886.7387,709527.0938500001,893998.1190000001,893998.1190000001,893998.1190000001,893998.1190000001,2612924.44204,2612924.44204 +28076400.0,155665.908,132326.112,386392.24704,180298.54172,180298.54172,180298.54172,73152.4675,255049.46151999995,961026.4832,320379.86988,488197.89696000004,224612.36699999997,224612.36699999997,224612.36699999997,142314.53600000002,155665.908,155665.908,280114.89544999995,112091.93505,166615.66642,290608.7205,82477.52258,104895.90959000001,196736.75699999998,196736.75699999998,196736.75699999998,196736.75699999998,468035.49671999994,468035.49671999994 +28080000.0,157723.227,134146.38,391707.4296,155883.45014000003,155883.45014000003,155883.45014000003,56678.3735,292062.80919999996,948485.40096,323359.39545,492738.12640000007,219189.399,219189.399,219189.399,137401.1975,157723.227,157723.227,277409.74182999996,104942.9277,155989.24068000002,272074.25700000004,77217.26532,98205.85086,197306.715,197306.715,197306.715,197306.715,474221.16917999997,474221.16917999997 +28083600.0,189028.731,160472.112,468578.56704,151915.28561000002,151915.28561000002,151915.28561000002,63982.954000000005,384909.29,947292.7244800001,360667.94798999996,549589.25408,223160.511,223160.511,223160.511,135156.71050000002,189028.731,189028.731,310323.69159999996,122622.74505,182268.87042,317910.82050000003,90226.11858000001,114750.66759000001,212260.215,212260.215,212260.215,212260.215,568346.38454,568346.38454 +28087200.0,227337.36000000004,177883.707,519420.42444,157892.14166,157892.14166,157892.14166,83684.45749999999,409789.82743999996,943286.3711999999,395071.22654999996,602013.2975999999,277079.84400000004,277079.84400000004,277079.84400000004,170520.06650000002,227337.36000000004,227337.36000000004,318193.87132,148928.0661,221369.61924,386109.80100000004,109581.63876,139367.25198,297676.75800000003,297676.75800000003,297676.75800000003,297676.75800000003,683527.6624,683527.6624 +28090800.0,269241.765,214630.083,626719.84236,168772.33021000001,168772.33021000001,168772.33021000001,88701.291,498735.05976000003,952072.8416,453296.6109,690737.6928000001,378931.797,378931.797,378931.797,255624.3025,269241.765,269241.765,343556.9580299999,167873.60564999998,249530.64346,435227.8665,123521.81354,157096.53467,342659.478,342659.478,342659.478,342659.478,809520.2401,809520.2401 +28094400.0,325029.579,242788.641,708942.83172,186500.05363000004,186500.05363000004,186500.05363000004,88709.5545,585368.6331999999,982906.7833600001,517592.38755,788712.2096000001,418795.66500000004,418795.66500000004,418795.66500000004,268491.9265,325029.579,325029.579,366075.21352999995,188561.10689999998,280280.95395999996,488862.12899999996,138743.72804,176455.94942,414353.811,414353.811,414353.811,414353.811,977255.6008599999,977255.6008599999 +28098000.0,409016.07,257811.14399999997,752808.54048,199758.02572,199758.02572,199758.02572,99508.388,659324.78136,1186797.76576,612592.1361000001,933473.7312000002,446709.201,446709.201,446709.201,282634.2015,409016.07,409016.07,377329.77177999995,220991.9841,328486.85044,572942.1810000001,162606.44756000003,206804.84438000002,479836.905,479836.905,479836.905,479836.905,1229774.9838,1229774.9838 +28101600.0,604313.139,324641.007,947951.74044,324401.28325,324401.28325,324401.28325,188038.6935,1198324.15912,1399808.24448,908790.13764,1384823.06688,499063.623,499063.623,499063.623,436116.653,604313.139,604313.139,590497.23538,323524.4004,480893.05935999996,838766.964,238050.05264,302754.93272,617533.6199999999,617533.6199999999,617533.6199999999,617533.6199999999,1816968.1712599997,1816968.1712599997 +28105200.0,1306418.4030000002,712479.987,2080441.56204,1776457.04731,1776457.04731,1776457.04731,1544697.9415000002,3523942.06992,4460667.949440001,3158263.4439299996,4812591.9145599995,1308372.903,1308372.903,1308372.903,2029769.5354999998,1306418.4030000002,1306418.4030000002,2790750.9850999997,1719250.7498999997,2555528.2751599997,4457316.759,1265028.9468399999,1608879.0968199999,1618579.3229999999,1618579.3229999999,1618579.3229999999,1618579.3229999999,3927964.66502,3927964.66502 +28108800.0,1214872.8360000001,1280610.2399999998,3739381.9007999995,2345659.46549,2345659.46549,2345659.46549,2090393.5605,4460274.730319999,3508733.77344,3470456.63769,5288314.87648,1394982.084,1394982.084,1394982.084,1963828.279,1214872.8360000001,1214872.8360000001,2366455.92118,2276251.9803,3383465.9065199993,5901394.022999999,1674871.8274799997,2130122.2235399997,1683856.227,1683856.227,1683856.227,1683856.227,3652717.66024,3652717.66024 +28112400.0,2165514.732,2308829.193,6741781.243559999,1853811.83768,1853811.83768,1853811.83768,2581296.5009999997,4657596.08968,7605121.153279999,3877998.67791,5909331.31872,2042144.3639999998,2042144.3639999998,2042144.3639999998,1755320.9904999998,2165514.732,2165514.732,2847184.16099,2109678.1654499997,3135867.2977799997,5469535.9845,1552306.40322,1974242.03631,2427100.164,2427100.164,2427100.164,2427100.164,6510980.960879999,6510980.960879999 +28116000.0,1650537.9510000001,1234639.734,3605148.02328,871330.4270000001,871330.4270000001,871330.4270000001,1082978.5225,2467098.2705599996,7540894.195840001,1656007.04283,2523439.30336,1564141.1609999998,1564141.1609999998,1564141.1609999998,1627351.131,1650537.9510000001,1650537.9510000001,2183066.46532,2371942.03905,3525701.5000199997,6149479.3605,1745280.80898,2219669.21679,1153611.567,1153611.567,1153611.567,1153611.567,4962617.43934,4962617.43934 +28119600.0,682672.317,585421.131,1709429.70252,281359.51514000003,281359.51514000003,281359.51514000003,455722.4665,1238118.2519999999,3678279.3158400008,747805.6628700001,1139513.3910400001,488407.11600000004,488407.11600000004,488407.11600000004,500886.9215,682672.317,682672.317,592157.96965,1093519.521,1625429.0163999998,2835050.61,804614.3636,1023318.2678,475373.21699999995,475373.21699999995,475373.21699999995,475373.21699999995,2052568.09978,2052568.09978 +28123200.0,806156.8620000001,1153983.852,3369632.84784,641228.95991,641228.95991,641228.95991,948466.1514999999,1659519.2024799997,2657708.8992000003,1307233.24032,1991974.4614400002,669370.6950000001,669370.6950000001,669370.6950000001,1046429.006,806156.8620000001,806156.8620000001,870707.5997099999,820442.2688999999,1219521.5947599998,2127072.5489999996,603683.44724,767771.90102,773158.086,773158.086,773158.086,773158.086,2423844.96508,2423844.96508 +28126800.0,675133.833,715045.4369999999,2087932.6760399998,535269.49322,535269.49322,535269.49322,939003.8279999999,1316916.79968,2057395.1072000002,995966.4647100001,1517663.1843200002,575637.75,575637.75,575637.75,757210.1775,675133.833,675133.833,744942.5547199999,695415.96225,1033680.0228999999,1802930.2725,511688.78209999995,650771.9745499999,613430.0700000001,613430.0700000001,613430.0700000001,613430.0700000001,2029902.3912199999,2029902.3912199999 +28130400.0,493176.966,399442.89599999995,1166373.25632,208526.07556000003,208526.07556000003,208526.07556000003,471022.797,1000994.7814399999,1472231.8784,702426.01611,1070363.45312,427294.743,427294.743,427294.743,364608.398,493176.966,493176.966,512967.69771,475543.467,706857.2028,1232890.47,349906.0572,445014.7506,444075.048,444075.048,444075.048,444075.048,1482818.74444,1482818.74444 +28134000.0,1010000.418,1219914.909,3562151.5342799993,1524443.8845900001,1524443.8845900001,1524443.8845900001,1449153.0935000002,2228794.61776,2917155.59872,1761496.31973,2684184.86816,872773.3200000001,872773.3200000001,872773.3200000001,1433609.072,1010000.418,1010000.418,1541140.61855,1354194.1260000002,2012900.8984,3510873.6600000006,996419.3816000001,1267258.2068000003,1070398.134,1070398.134,1070398.134,1070398.134,3036734.59012,3036734.59012 +28137600.0,1011232.068,1365898.884,3988424.74128,1734283.8579000002,1734283.8579000002,1734283.8579000002,1261201.7775,2537755.2742399997,3344941.9340800005,1918558.5833400001,2923517.8412800003,1075372.569,1075372.569,1075372.569,1674897.1155,1011232.068,1011232.068,1734352.47921,1436803.7093999998,2135693.4149599997,3725046.654,1057203.71704,1344564.4589200001,1202854.242,1202854.242,1202854.242,1202854.242,3040437.7511199997,3040437.7511199997 +28141200.0,945139.2119999999,1361773.518,3976378.67256,1158118.8052500002,1158118.8052500002,1158118.8052500002,1117118.1875,2455754.53192,3384974.80704,1672198.23645,2548111.5984,941063.628,941063.628,941063.628,1367662.2435,945139.2119999999,945139.2119999999,1431537.8036699998,1247826.6553499997,1854794.1889399996,3235106.1434999993,918153.9340599999,1167719.2651299997,1174250.5350000001,1174250.5350000001,1174250.5350000001,1174250.5350000001,2841718.5640799995,2841718.5640799995 +28144800.0,2267917.62,1868537.529,5456129.584679999,3580061.1411400004,3580061.1411400004,3580061.1411400004,2954686.4515,3676688.6189599996,6918367.2192,3803764.97823,5796213.30016,2377495.9590000003,2377495.9590000003,2377495.9590000003,3050512.535,2267917.62,2267917.62,4036750.4461699994,2935839.1517999996,4363889.30712,7611434.8379999995,2160197.6968799997,2747365.5272399997,2538275.7029999997,2538275.7029999997,2538275.7029999997,2538275.7029999997,6818872.3108,6818872.3108 +28148400.0,1735135.941,1003129.371,2929137.76332,2335296.94838,2335296.94838,2335296.94838,1824800.313,2786553.96184,4879963.23904,2610186.12498,3977426.47616,1738574.9820000003,1738574.9820000003,1738574.9820000003,2267005.0585000003,1735135.941,1735135.941,1581169.49146,2067832.2451499999,3073666.69526,5361046.5615,1521516.07174,1935082.52077,1919292.4500000002,1919292.4500000002,1919292.4500000002,1919292.4500000002,5216975.39594,5216975.39594 +28152000.0,1311235.92,963363.3060000001,2813020.85352,1449171.35099,1449171.35099,1449171.35099,1485302.0455,2180000.4483199995,4098226.21952,1921629.4055700002,2928197.1894400003,1235820.7889999999,1235820.7889999999,1235820.7889999999,1590831.6095,1311235.92,1311235.92,1404895.40607,1543234.12515,2293893.6872599996,4000977.3614999996,1135515.4797399999,1444162.30477,1358140.44,1358140.44,1358140.44,1358140.44,3942449.3328,3942449.3328 +28155600.0,1151787.342,979987.902,2861564.6738400003,1337971.8366300003,1337971.8366300003,1337971.8366300003,1310111.9535,2111386.5569599997,3957507.998720001,1853162.06901,2823866.00992,1151169.642,1151169.642,1151169.642,1535411.9935,1151787.342,1151787.342,1437807.5376599997,1490511.3385499998,2215525.49582,3864288.6555,1096721.92318,1394824.19089,1302100.9770000002,1302100.9770000002,1302100.9770000002,1302100.9770000002,3463040.60828,3463040.60828 +28159200.0,812100.3870000001,698375.421,2039256.22932,873619.5415200001,873619.5415200001,873619.5415200001,716032.0685,1109633.6384,2447171.06368,1074344.5700400001,1637096.4876800003,613563.633,613563.633,613563.633,771535.0160000001,812100.3870000001,812100.3870000001,1017392.6574499998,702280.71225,1043883.9228999999,1820727.7725,516739.8821,657196.02455,828717.3629999999,828717.3629999999,828717.3629999999,828717.3629999999,2441715.16358,2441715.16358 +28162800.0,138374.682,120186.92699999998,350945.82683999994,164990.81181,164990.81181,164990.81181,69405.5565,228026.35072,857677.7875200001,272145.42747,414697.79424,202224.50400000002,202224.50400000002,202224.50400000002,129209.0695,138374.682,138374.682,252829.22288,100540.32255,149445.12141999998,260660.0955,73977.81758,94085.88209,175874.55299999999,175874.55299999999,175874.55299999999,175874.55299999999,416046.54387999995,416046.54387999995 +28166400.0,140425.356,118969.62299999999,347391.29916,140087.73129999998,140087.73129999998,140087.73129999998,48205.395000000004,238756.5156,842273.3830400001,282273.72012,430131.38304000004,196545.96300000002,196545.96300000002,196545.96300000002,123669.497,140425.356,140425.356,247732.48434999998,93132.46754999999,138433.93941999998,241454.54549999998,68527.09958,87153.59309,175335.82799999998,175335.82799999998,175335.82799999998,175335.82799999998,422212.23704,422212.23704 +28170000.0,154316.81399999998,141604.65000000002,413485.57800000004,137058.30413,137058.30413,137058.30413,58931.9395,271592.12584,851033.06688,305870.50158000004,466088.38336000004,197027.44199999998,197027.44199999998,197027.44199999998,122934.51450000002,154316.81399999998,154316.81399999998,273570.02465,102791.96054999999,152792.00061999998,266497.6755,75634.57837999999,96192.97049,181076.532,181076.532,181076.532,181076.532,463979.22075999994,463979.22075999994 +28173600.0,185911.179,156958.62900000002,458319.19668000005,137851.00989,137851.00989,137851.00989,67361.819,331612.31704,856713.3952,347313.04146,529238.92032,203791.59,203791.59,203791.59,127236.0775,185911.179,185911.179,286690.03076999995,124549.97805,185133.54762,322907.3505,91644.18138000001,116554.17699,231017.15400000004,231017.15400000004,231017.15400000004,231017.15400000004,558972.9448599999,558972.9448599999 +28177200.0,232984.443,171421.236,500550.00912,151069.77567,151069.77567,151069.77567,83627.87299999999,405225.06152,873019.1859200001,395036.98668,601961.12256,292550.997,292550.997,292550.997,209917.064,232984.443,232984.443,311663.84898999997,149089.53555,221609.63061999998,386528.4255,109700.44838,139518.35549,300670.272,300670.272,300670.272,300670.272,700506.5586199999,700506.5586199999 +28180800.0,283472.83199999994,202853.46600000001,592332.12072,165672.29261,165672.29261,165672.29261,86153.71449999999,519725.38632,906577.1424,460316.53773,701434.72416,388254.444,388254.444,388254.444,254808.3825,283472.83199999994,283472.83199999994,343448.71379,172851.96284999998,256930.57193999997,448134.71849999996,127184.90105999999,161755.29362999997,357804.957,357804.957,357804.957,357804.957,852308.3148799998,852308.3148799998 +28184400.0,365604.66000000003,250617.42599999998,731802.8839199999,193843.18426,193843.18426,193843.18426,95507.538,628132.9676,1044262.2259200002,565530.39354,861760.59968,435169.578,435169.578,435169.578,276499.601,365604.66000000003,365604.66000000003,370744.83849,199847.43629999997,297057.17691999994,518122.98299999995,147048.23708,187017.72434,446340.561,446340.561,446340.561,446340.561,1099251.3444,1099251.3444 +28188000.0,466365.003,269316.92699999997,786405.42684,292462.76411,292462.76411,292462.76411,184053.786,746517.4471999999,1306976.4179200002,698815.9195500001,1064862.3536,478391.69999999995,478391.69999999995,478391.69999999995,320279.52949999995,466365.003,466365.003,392673.29659999994,274660.10145,408260.20018000004,712081.7445,202095.58082000003,257027.60111000005,526012.737,526012.737,526012.737,526012.737,1402204.10902,1402204.10902 +28191600.0,1194287.457,1187584.71,3467747.3532,1129768.76441,1129768.76441,1129768.76441,1095584.231,1872146.6470400002,1990775.08288,1617067.92576,2464103.5059200004,772665.348,772665.348,772665.348,1716509.3679999998,1194287.457,1194287.457,2379904.22904,715688.5734,1063813.63256,1855488.894,526605.41944,669743.1341200001,1643252.8229999999,1643252.8229999999,1643252.8229999999,1643252.8229999999,3590824.28738,3590824.28738 +28195200.0,2224109.601,1979926.545,5781385.5114,2839705.007260001,2839705.007260001,2839705.007260001,2008522.6560000002,3345969.1736799995,3846440.4979200005,3254777.30571,4959660.65632,1367597.6160000002,1367597.6160000002,1367597.6160000002,2198941.7869999995,2224109.601,2224109.601,3471533.66651,1735303.12335,2579388.84014,4498934.0235,1276840.32286,1623900.94753,2388378.666,2388378.666,2388378.666,2388378.666,6687156.200339999,6687156.200339999 +28198800.0,2573872.188,2473579.272,7222851.474239999,3138592.0832200004,3138592.0832200004,3138592.0832200004,2598942.682,4346134.0444,10015909.094400002,3413259.97089,5201158.05088,2626382.631,2626382.631,2626382.631,2643467.498,2573872.188,2573872.188,2700174.7601399994,3465019.5875999997,5150473.559839999,8983384.116,2549569.96816,3242573.88568,2312668.9590000003,2312668.9590000003,2312668.9590000003,2312668.9590000003,7738775.711919999,7738775.711919999 +28202400.0,1911554.466,1638344.208,4783965.08736,2215111.39091,2215111.39091,2215111.39091,2750050.023,3633906.3148799995,6801125.448960001,3588367.14348,5467988.02816,2647273.7309999997,2647273.7309999997,2647273.7309999997,2933920.4965,1911554.466,1911554.466,2097690.98071,3412288.3932,5072092.87088,8846673.612,2510770.22512,3193227.90376,2035126.7159999998,2035126.7159999998,2035126.7159999998,2035126.7159999998,5747407.09444,5747407.09444 +28206000.0,1424529.894,1213296.1379999998,3542824.7229599995,2015141.4565700004,2015141.4565700004,2015141.4565700004,2564310.0315,3566172.7276,7178761.4144,2942159.44869,4483290.58848,1267266.108,1267266.108,1267266.108,2423743.14,1424529.894,1424529.894,1411041.94153,2635287.1573499995,3917142.8857399994,6832225.963499999,1939050.7972599997,2466108.2287299996,1697524.9590000003,1697524.9590000003,1697524.9590000003,1697524.9590000003,4283086.54796,4283086.54796 +28209600.0,1168312.4579999999,981392.7239999999,2865666.75408,1510515.3393000003,1510515.3393000003,1510515.3393000003,1661794.2355,2958732.1589599997,3887728.912,2192814.19917,3341431.1606400004,1159727.832,1159727.832,1159727.832,1723895.992,1168312.4579999999,1168312.4579999999,1204490.95039,1635964.91775,2431730.5691,4241390.5275,1203747.0259,1530940.00945,1255275.576,1255275.576,1255275.576,1255275.576,3512726.1237199996,3512726.1237199996 +28213200.0,876058.017,717492.21,2095077.2532,835766.4495400001,835766.4495400001,835766.4495400001,980018.8825000001,1956615.4084,2603205.03872,1506845.3551200002,2296145.30304,809512.9859999998,809512.9859999998,809512.9859999998,1110476.6014999999,876058.017,876058.017,865422.58335,1043675.8632,1551340.41888,2705826.312,767939.27712,976674.44976,931766.9369999999,931766.9369999999,931766.9369999999,931766.9369999999,2634014.43778,2634014.43778 +28216800.0,761232.564,626611.584,1829705.82528,693432.2736000001,693432.2736000001,693432.2736000001,811299.846,1466432.7599999998,2340322.8812800003,1222761.7518900002,1863256.0028800003,703390.323,703390.323,703390.323,971308.8314999999,761232.564,761232.564,743043.01838,883024.87365,1312545.61466,2289323.7465000004,649731.88234,826336.85707,808642.2749999999,808642.2749999999,808642.2749999999,808642.2749999999,2288772.57576,2288772.57576 +28220400.0,1019760.3870000001,899529.2010000001,2626625.2669200003,1150428.0477800001,1150428.0477800001,1150428.0477800001,1106090.9685,1968813.1243999999,3478717.5180800003,1696043.69046,2584447.52832,1006124.832,1006124.832,1006124.832,1302208.404,1019760.3870000001,1019760.3870000001,1276355.0968999998,1284653.18385,1909533.8683399998,3330582.3285,945250.98466,1202181.6214299998,1136512.9019999998,1136512.9019999998,1136512.9019999998,1136512.9019999998,3066079.56358,3066079.56358 +28224000.0,1068003.276,948972.33,2770999.2035999997,1235531.3204300003,1235531.3204300003,1235531.3204300003,1167081.895,2059754.5563199997,3684042.3104000003,1785253.73733,2720386.64736,1063362.5489999999,1063362.5489999999,1063362.5489999999,1368762.6819999998,1068003.276,1068003.276,1371623.37585,1358222.47065,2018888.70946,3521317.5165000004,999383.4475400001,1271027.94167,1198778.898,1198778.898,1198778.898,1198778.898,3211129.84984,3211129.84984 +28227600.0,1074893.034,951774.564,2779181.72688,1267720.7835600001,1267720.7835600001,1267720.7835600001,1194573.9085,2077362.3548799998,3692646.595200001,1799660.62269,2742339.99648,1068010.533,1068010.533,1068010.533,1372683.6269999999,1074893.034,1074893.034,1378347.3229499997,1367948.3431499999,2033345.4384599999,3546532.7415,1006539.76854,1280129.43717,1204853.49,1204853.49,1204853.49,1204853.49,3231845.05556,3231845.05556 +28231200.0,1099998.645,967602.2309999999,2825398.5145199997,1342237.94144,1342237.94144,1342237.94144,1262194.388,2142086.99896,3760151.6531200004,1851062.3955599999,2820666.50752,1092896.625,1092896.625,1092896.625,1410001.6175,1099998.645,1099998.645,1397806.0384599997,1403159.7276,2085684.33584,3637821.5160000003,1032448.3921600002,1313080.33768,1232193.45,1232193.45,1232193.45,1232193.45,3307329.2593,3307329.2593 +28234800.0,1109799.732,977063.8469999998,2853026.4332399997,1354120.9495000003,1354120.9495000003,1354120.9495000003,1274371.6405,2166613.7199999997,3801731.8796800002,1869034.0624199999,2848051.90464,1105720.233,1105720.233,1105720.233,1425073.818,1109799.732,1109799.732,1407927.97639,1416539.8179,2105572.76636,3672510.639,1042293.49564,1325601.45922,1244057.544,1244057.544,1244057.544,1244057.544,3336797.86088,3336797.86088 +28238400.0,1118275.389,987804.54,2884389.2568,1350792.32849,1350792.32849,1350792.32849,1273515.9535,2186679.65048,3849806.46528,1882758.47844,2868965.3004799997,1119099.969,1119099.969,1119099.969,1438597.4364999998,1118275.389,1118275.389,1419221.54855,1428053.5791,2122687.0484399996,3702361.131,1050765.34956,1336376.06538,1255310.55,1255310.55,1255310.55,1255310.55,3362281.33626,3362281.33626 +28242000.0,1084786.941,898150.332,2622598.96944,1145507.00671,1145507.00671,1145507.00671,980585.3785,1838435.13608,2825504.62208,1570448.53392,2393064.4326400002,897028.746,897028.746,897028.746,1154452.236,1084786.941,1084786.941,1370574.7766099996,1148102.82495,1706562.71758,2976562.8795,844776.89342,1074397.45841,1103613.4109999998,1103613.4109999998,1103613.4109999998,1103613.4109999998,3261592.73594,3261592.73594 +28245600.0,484138.19700000004,338528.034,988501.85928,612638.7605800001,612638.7605800001,612638.7605800001,406750.96349999995,898213.94672,1158465.2012800002,741596.4080700001,1130051.66944,408907.88700000005,408907.88700000005,408907.88700000005,506946.08300000004,484138.19700000004,484138.19700000004,787920.1740799998,258773.1057,384645.45587999996,670893.237,190405.89012,242160.51126,604970.583,604970.583,604970.583,604970.583,1455642.17898,1455642.17898 +28249200.0,172226.196,121726.68,355441.9056,182604.8235,182604.8235,182604.8235,69368.691,358540.29423999996,862466.98944,330554.34699,503701.86208,239721.71400000004,239721.71400000004,239721.71400000004,134972.75400000002,172226.196,172226.196,254959.03316,105325.34895,156557.67918,273065.7195,77498.65182,98563.72161000001,185544.687,185544.687,185544.687,185544.687,517826.7626399999,517826.7626399999 +28252800.0,175876.227,155035.89,452704.79880000005,160119.30264000004,160119.30264000004,160119.30264000004,63526.7815,380945.75792,873272.7552,326012.22465,496780.5328,236247.00300000003,236247.00300000003,236247.00300000003,127919.52950000002,175876.227,175876.227,252214.34133999996,106192.59569999999,157846.77188,275314.137,78136.77412,99375.29326,182504.244,182504.244,182504.244,182504.244,528801.18918,528801.18918 +28256400.0,191302.35,185452.155,541520.2926,164711.82959,164711.82959,164711.82959,71881.8275,391848.8452,938990.97984,352132.47825000004,536582.8240000001,245413.24500000002,245413.24500000002,245413.24500000002,130287.78349999999,191302.35,191302.35,286665.91823999997,121838.80679999999,181103.60911999998,315878.388,89649.29488,114017.05623999999,218157.77699999997,218157.77699999997,218157.77699999997,218157.77699999997,575182.399,575182.399 +28260000.0,220517.09699999998,204670.821,597638.79732,175946.01860000004,175946.01860000004,175946.01860000004,81343.22700000001,412241.96751999995,986414.6041600001,403299.11222999997,614551.02816,336651.603,336651.603,336651.603,148940.03949999998,220517.09699999998,220517.09699999998,315226.43321,145837.19114999997,216775.28165999998,378096.4215,107307.36533999999,136474.80357,288453.348,288453.348,288453.348,288453.348,663021.4049799999,663021.4049799999 +28263600.0,278687.508,239918.26199999996,700561.3250399999,189118.41487,189118.41487,189118.41487,90288.68450000002,528837.8128,1038441.5020800001,472634.66543999995,720205.20448,420682.35599999997,420682.35599999997,420682.35599999997,265080.963,278687.508,278687.508,352427.68509,178853.09085,265850.76714,463693.19850000006,131600.54586,167371.16403,365662.03500000003,365662.03500000003,365662.03500000003,365662.03500000003,837920.44072,837920.44072 +28267200.0,356414.19,256602.05100000004,749277.98892,194738.86509,194738.86509,194738.86509,90299.909,653724.2272,1116972.47168,552485.79036,841883.10912,458324.58900000004,458324.58900000004,458324.58900000004,281498.64050000004,356414.19,356414.19,381348.92600999994,200110.24485,297447.82074,518804.33849999995,147241.61226,187263.66123,439576.55700000003,439576.55700000003,439576.55700000003,439576.55700000003,1071618.6646,1071618.6646 +28270800.0,441484.515,291378.42,850824.9863999999,215210.88776,215210.88776,215210.88776,107982.19949999999,747960.30096,1352475.67488,664089.94386,1011946.58112,502725.996,502725.996,502725.996,311081.463,441484.515,441484.515,409127.75826,280555.33005,417022.98442,727365.6705,206433.30458,262544.37059,518248.82999999996,518248.82999999996,518248.82999999996,518248.82999999996,1327396.7751,1327396.7751 +28274400.0,537596.103,356790.996,1041829.70832,319778.14583000005,319778.14583000005,319778.14583000005,201281.997,944049.3210400001,1627153.4387200004,815849.9880300001,1243199.9817600003,560267.2889999999,560267.2889999999,560267.2889999999,424844.868,537596.103,537596.103,445509.32360999996,347331.91229999997,516281.01531999995,900490.143,255567.67868,325034.06114,601813.917,601813.917,601813.917,601813.917,1616372.28302,1616372.28302 +28278000.0,1251576.6239999998,1232839.509,3599891.36628,1189159.62891,1189159.62891,1189159.62891,1106391.699,2045017.07104,2302601.3555199997,1710783.78303,2606908.6217600005,841584.033,841584.033,841584.033,1796809.9764999999,1251576.6239999998,1251576.6239999998,2416920.39693,749794.2552,1114508.99168,1943911.0320000001,551700.46432,701659.3153600001,1686936.531,1686936.531,1686936.531,1686936.531,3763073.71616,3763073.71616 +28281600.0,2268209.535,2024022.516,5910145.74672,2877532.46231,2877532.46231,2877532.46231,2038971.0984999998,3410678.21912,3942197.4560000002,3321251.02113,5060953.93696,1413789.687,1413789.687,1413789.687,2245379.885,2268209.535,2268209.535,3571041.4505999996,1761509.9322,2618343.1584799998,4566877.602,1296123.3575199998,1648425.34396,2417633.304,2417633.304,2417633.304,2417633.304,6819750.0019,6819750.0019 +28285200.0,2619834.147,2579968.7369999997,7533508.712039999,3194873.9276300003,3194873.9276300003,3194873.9276300003,2647740.83,4440708.616239999,10136139.448320001,3528982.69437,5377497.439040001,2693503.356,2693503.356,2693503.356,2722454.2975,2619834.147,2619834.147,2706450.55954,3538661.499,5259936.3516,9174307.59,2603755.8684,3311488.1681999997,2342418.471,2342418.471,2342418.471,2342418.471,7876968.001979999,7876968.001979999 +28288800.0,1941913.941,1691372.082,4938806.47944,2321254.81753,2321254.81753,2321254.81753,2913239.8609999996,3700435.4664000003,7100053.35104,3629535.4311300004,5530720.65696,2663325.186,2663325.186,2663325.186,2985552.801,1941913.941,1941913.941,2092724.72786,3514848.3333,5224539.99172,9112569.753,2586234.08228,3289203.7489400003,2054329.1490000002,2054329.1490000002,2054329.1490000002,2054329.1490000002,5838687.91594,5838687.91594 +28292400.0,1427027.343,1205348.4510000001,3519617.4769200003,2063905.27838,2063905.27838,2063905.27838,2655894.71,3563417.6608800003,7460715.43936,3009592.57116,4586045.82272,1285760.625,1285760.625,1285760.625,2433932.9875000003,1427027.343,1427027.343,1429454.83798,2743184.74635,4077523.99334,7111960.453500001,2018442.10966,2567079.0589300003,1708111.5389999999,1708111.5389999999,1708111.5389999999,1708111.5389999999,4290595.54462,4290595.54462 +28296000.0,1144429.746,956703.8489999999,2793575.2390799997,1545759.79734,1545759.79734,1545759.79734,1666759.703,2952017.9109599995,3960709.71072,2165980.96029,3300542.41568,1124093.9279999998,1124093.9279999998,1124093.9279999998,1736918.9250000003,1144429.746,1144429.746,1155128.8063899998,1641926.5461,2440592.05124,4256846.601,1208133.6067599999,1536518.91598,1218043.6860000002,1218043.6860000002,1218043.6860000002,1218043.6860000002,3440918.7696399996,3440918.7696399996 +28299600.0,824858.976,683398.8960000001,1995524.77632,787767.82436,787767.82436,787767.82436,986091.085,1920444.3639200001,2394437.31392,1455023.0534700002,2217177.9862400005,746284.737,746284.737,746284.737,1024090.7529999998,824858.976,824858.976,795095.43386,985137.8193,1464328.31412,2554061.0130000003,724866.8398800001,921894.4037400001,879113.397,879113.397,879113.397,879113.397,2480075.98784,2480075.98784 +28303200.0,733865.172,602982.915,1760710.1118,661522.27295,661522.27295,661522.27295,781469.703,1430180.2825600002,2248623.0860800003,1192065.57078,1816480.86976,672368.28,672368.28,672368.28,926875.6245,733865.172,733865.172,705426.07187,847114.56045,1259167.81578,2196222.9345,623308.98522,792731.89731,773595.09,773595.09,773595.09,773595.09,2206487.95048,2206487.95048 +28306800.0,1001093.4239999999,884399.5829999999,2582446.7823599996,1125483.40036,1125483.40036,1125483.40036,1085441.2905,1944373.3551199997,3426112.01088,1671509.89866,2547062.70272,985654.959,985654.959,985654.959,1268283.6635,1001093.4239999999,1001093.4239999999,1247034.7558499998,1260155.8232999998,1873120.5077199996,3267070.6529999995,927225.7662799999,1179256.9309399999,1114980.2880000002,1114980.2880000002,1114980.2880000002,1114980.2880000002,3009954.2281599995,3009954.2281599995 +28310400.0,1086736.7489999998,970312.14,2833311.4488,1254071.4199200002,1254071.4199200002,1254071.4199200002,1189309.6879999998,2121747.9492,3795416.2790400004,1825488.66129,2781697.00768,1091682.729,1091682.729,1091682.729,1394844.9655,1086736.7489999998,1086736.7489999998,1386419.0561,1387581.90075,2062529.1463,3597434.5575,1020986.1887,1298502.56885,1220635.0890000002,1220635.0890000002,1220635.0890000002,1220635.0890000002,3267455.1586599997,3267455.1586599997 +28314000.0,1153238.466,1031028.5700000001,3010603.4244,1352908.64302,1352908.64302,1352908.64302,1284875.515,2279844.896,4064035.0905600004,1946197.6932299999,2965634.58016,1173229.284,1173229.284,1173229.284,1493458.1130000001,1153238.466,1153238.466,1463578.0794699998,1482562.87335,2203710.74014,3843681.5235,1090873.42286,1387385.99753,1300369.32,1300369.32,1300369.32,1300369.32,3467403.6544399997,3467403.6544399997 +28317600.0,1180694.205,1048911.681,3062822.1085200002,1430680.7182800001,1430680.7182800001,1430680.7182800001,1354912.3244999999,2348785.20248,4139505.64672,2001516.56229,3049929.9996800004,1200260.3099999998,1200260.3099999998,1200260.3099999998,1533756.9345,1180694.205,1180694.205,1486640.9376,1520675.0014499999,2260361.36018,3942490.7445,1118916.42082,1423051.42111,1330466.007,1330466.007,1330466.007,1330466.007,3549953.9096999997,3549953.9096999997 +28321200.0,1180920.132,1048816.806,3062545.07352,1431721.6533400002,1431721.6533400002,1431721.6533400002,1355866.659,2349374.5927999998,4136858.597120001,2002164.57441,3050917.44672,1199809.746,1199809.746,1199809.746,1532895.189,1180920.132,1180920.132,1486212.35698,1519897.7781,2259206.08004,3940475.721,1118344.53796,1422324.09358,1330359.63,1330359.63,1330359.63,1330359.63,3550633.1968799997,3550633.1968799997 +28324800.0,1162838.7510000002,1033491.429,3017794.9726799997,1398579.4032100001,1398579.4032100001,1398579.4032100001,1324395.9155,2305551.26784,4066637.6192000005,1968338.7513299999,2999373.33536,1178069.544,1178069.544,1178069.544,1503658.723,1162838.7510000002,1162838.7510000002,1466713.2518999998,1492930.4804999998,2219121.3562,3870560.505,1098501.9338,1397088.0299,1308694.599,1308694.599,1308694.599,1308694.599,3496268.51134,3496268.51134 +28328400.0,1122646.296,931278.459,2719333.10028,1186503.24166,1186503.24166,1186503.24166,1012643.065,1931469.0867199998,2962763.7644800004,1635426.2727599998,2492078.12992,938764.089,938764.089,938764.089,1198801.226,1122646.296,1122646.296,1410758.4208900002,1191538.836,1771126.8623999998,3089174.76,876737.2176,1115044.9848,1144056.732,1144056.732,1144056.732,1144056.732,3375423.19664,3375423.19664 +28332000.0,475416.92400000006,331581.696,968218.55232,610349.4954700001,610349.4954700001,610349.4954700001,397612.915,887623.1359199998,1130564.76864,730954.4980499999,1113835.4256,403920.846,403920.846,403920.846,490689.13249999995,475416.92400000006,475416.92400000006,767679.1649799999,253015.26525,376086.8881,655965.5025,186169.2569,236772.30995,590510.403,590510.403,590510.403,590510.403,1429420.2181600002,1429420.2181600002 +28335600.0,169892.166,119175.23700000002,347991.69204000005,182797.45253,182797.45253,182797.45253,68621.3185,355558.19168,838930.69888,326893.6755,498123.69600000005,236269.49099999998,236269.49099999998,236269.49099999998,131831.154,169892.166,169892.166,249867.75397999998,103128.88005,153292.80442,267371.1705,75882.48458,96508.26059,182623.66199999998,182623.66199999998,182623.66199999998,182623.66199999998,510809.11244,510809.11244 +28339200.0,171402.59399999998,158041.13999999998,461480.12879999995,158766.78059000004,158766.78059000004,158766.78059000004,61972.59249999999,374005.71216000005,843996.2745600002,318515.316,485356.672,229976.17799999999,229976.17799999999,229976.17799999999,123480.61950000002,171402.59399999998,171402.59399999998,244792.08325,101594.9142,151012.68727999998,263394.222,74753.78872,95072.77156000001,177916.785,177916.785,177916.785,177916.785,515350.46595999994,515350.46595999994 +28342800.0,182775.18000000002,176564.916,515569.55472,158882.60465,158882.60465,158882.60465,66644.438,374915.37976000004,882109.6217600001,334212.56966999994,509276.29663999996,232621.785,232621.785,232621.785,122786.52399999998,182775.18000000002,182775.18000000002,269408.6772,114124.13190000001,169636.36396000002,295877.379,83972.81804000001,106797.64442000001,205463.124,205463.124,205463.124,205463.124,549544.0412,549544.0412 +28346400.0,201228.435,187086.282,546291.94344,165327.5921,165327.5921,165327.5921,73710.2555,377793.32008,898607.66208,371455.66121999995,566027.67424,296921.65499999997,296921.65499999997,296921.65499999997,131254.87550000002,201228.435,201228.435,287470.53984999994,129509.47439999998,192505.44095999998,335765.30399999995,95293.39103999999,121195.28592,259794.663,259794.663,259794.663,259794.663,605026.8279,605026.8279 +28350000.0,233536.75499999998,205566.27,600253.5083999999,168353.87316000002,168353.87316000002,168353.87316000002,80164.35699999999,423087.37311999995,890976.3430400001,400120.5326999999,609707.4783999999,346584.804,346584.804,346584.804,207515.96600000001,233536.75499999998,233536.75499999998,307316.84035,152124.35445,226120.64538,394396.4745,111933.47562000001,142358.34651,302710.455,302710.455,302710.455,302710.455,702167.1766999998,702167.1766999998 +28353600.0,299956.02,223393.113,652307.88996,174610.19576,174610.19576,174610.19576,81527.1835,540667.5620800001,932276.09408,470286.16005,716626.5296,389632.94100000005,389632.94100000005,389632.94100000005,243163.5745,299956.02,299956.02,326595.13756999996,168868.54485,251009.54074000003,437807.33850000007,124253.89226000002,158027.60123000003,365887.209,365887.209,365887.209,365887.209,901867.7668000001,901867.7668000001 +28357200.0,353697.51300000004,236420.92500000002,690349.101,188726.07908000002,188726.07908000002,188726.07908000002,91012.3585,595663.49032,1116230.0204800002,533774.44281,813370.57952,412517.63100000005,412517.63100000005,412517.63100000005,258349.952,353697.51300000004,353697.51300000004,353734.13881000003,200232.52649999998,297629.58259999997,519121.365,147331.5874,187378.09269999998,414509.86199999996,414509.86199999996,414509.86199999996,414509.86199999996,1063450.52242,1063450.52242 +28360800.0,526689.429,280429.44899999996,818853.99108,292231.73463,292231.73463,292231.73463,177064.4505,1112522.9608800001,1232152.62336,813434.1427799999,1239518.69376,458068.09799999994,458068.09799999994,458068.09799999994,398032.58599999995,526689.429,526689.429,557669.2884099999,297341.59995,441974.42758,770885.6295,218784.68342000002,278253.00341,543570.168,543570.168,543570.168,543570.168,1583579.54986,1583579.54986 +28364400.0,1260057.519,626269.9890000001,1828708.36788,1701942.8971600002,1701942.8971600002,1701942.8971600002,1493929.8185,3463389.3758399994,4230428.14208,2993990.56992,4562271.344640001,1239922.851,1239922.851,1239922.851,1826353.879,1260057.519,1260057.519,2659095.28703,1661086.4724,2469071.74416,4306520.484,1222231.52784,1554448.82232,1543403.1030000001,1543403.1030000001,1543403.1030000001,1543403.1030000001,3788572.9404599997,3788572.9404599997 +28368000.0,1151844.492,1236907.7880000002,3611770.74096,2258229.35349,2258229.35349,2258229.35349,1995678.9790000003,4264858.869519999,3383503.62432,3368048.0507099996,5132263.696319999,1350247.494,1350247.494,1350247.494,1863780.5025,1151844.492,1151844.492,2260592.86687,2199085.7021999997,3268764.4264799994,5701333.301999999,1618092.6895199998,2057909.8299599998,1605955.1730000002,1605955.1730000002,1605955.1730000002,1605955.1730000002,3463212.4392799996,3463212.4392799996 +28371600.0,2120410.392,2298772.074,6712414.45608,1816886.90513,1816886.90513,1816886.90513,2520532.4760000003,4596220.83744,7515900.485760001,3799950.26838,5790400.408960001,2005122.5010000002,2005122.5010000002,2005122.5010000002,1701248.6715,2120410.392,2120410.392,3064748.1810399997,2052494.59545,3050868.5097799995,5321282.2845,1510230.59122,1920729.51031,2380336.521,2380336.521,2380336.521,2380336.521,6375367.24528,6375367.24528 +28375200.0,1601246.8139999998,1287048.426,3758181.40392,826762.7589100001,826762.7589100001,826762.7589100001,1015945.5705,2469932.1597599997,7424948.6144,1614161.84517,2459675.19264,1554866.1209999998,1554866.1209999998,1554866.1209999998,1599560.3225000002,1601246.8139999998,1601246.8139999998,2738592.4754500003,2360008.6857,3507963.52788,6118541.0370000005,1736500.21812,2208501.95526,1136640.03,1136640.03,1136640.03,1136640.03,4814415.420759999,4814415.420759999 +28378800.0,822085.7760000001,801428.2410000002,2340170.4637200003,476654.75737000006,476654.75737000006,476654.75737000006,637270.928,1655425.72456,4434917.7856,1041327.7816199999,1586785.19104,676638.015,676638.015,676638.015,668802.064,822085.7760000001,822085.7760000001,949067.7137499999,1228027.11255,1825363.75742,3183773.9955,903585.3815799999,1149190.80409,666823.497,666823.497,666823.497,666823.497,2471737.89984,2471737.89984 +28382400.0,822766.209,1222131.747,3568624.70124,696802.2010400001,696802.2010400001,696802.2010400001,962825.9585,1731899.29232,2805305.9891200005,1372064.54322,2090765.0182400004,718529.7930000001,718529.7930000001,718529.7930000001,1076855.8569999998,822766.209,822766.209,975941.9293,861032.1303,1279855.16652,2232305.523,633549.5674800001,805755.99354,804896.682,804896.682,804896.682,804896.682,2473783.73506,2473783.73506 +28386000.0,592321.2180000001,660856.005,1929699.5346,447678.12782000005,447678.12782000005,447678.12782000005,841441.244,1182965.60152,1746932.9036800002,848565.19125,1293051.72,498689.2139999999,498689.2139999999,498689.2139999999,626817.779,592321.2180000001,592321.2180000001,630427.5562,585382.0347,870123.4194799999,1517657.127,430725.54652000003,547801.95346,518882.09099999996,518882.09099999996,518882.09099999996,518882.09099999996,1780912.46212,1780912.46212 +28389600.0,340286.256,255040.962,744719.6090399999,97041.71818000001,97041.71818000001,97041.71818000001,259270.71450000003,710157.99848,878480.32576,438431.66283,668086.3433599999,270365.844,270365.844,270365.844,210968.919,340286.256,340286.256,354879.03424999997,265176.5769,394163.70196,687494.8289999999,195117.58004,248152.89542,277547.55899999995,277547.55899999995,277547.55899999995,277547.55899999995,1023127.3430399998,1023127.3430399998 +28393200.0,899587.3800000001,1086405.018,3172302.65256,1343428.8437899998,1343428.8437899998,1343428.8437899998,1344398.9300000002,2025076.4961599999,2599214.4505600003,1613442.62919,2458579.24448,791472.9060000001,791472.9060000001,791472.9060000001,1333094.581,899587.3800000001,899587.3800000001,1310745.4425,1237679.2467,1839710.88028,3208798.0470000003,910687.4457200001,1158223.2950600001,905058.8910000001,905058.8910000001,905058.8910000001,905058.8910000001,2704759.3892,2704759.3892 +28396800.0,934485.339,1331011.662,3886554.05304,1608445.75419,1608445.75419,1608445.75419,1189763.8584999999,2439737.01792,3177734.72128,1807385.8212900003,2754111.7276800005,1019558.6309999999,1019558.6309999999,1019558.6309999999,1596776.419,934485.339,934485.339,1611012.5448299998,1361062.8207,2023110.66188,3528681.387,1001473.3841200001,1273685.9482600002,1120253.841,1120253.841,1120253.841,1120253.841,2809685.91926,2809685.91926 +28400400.0,902118.846,1279804.998,3737030.59416,1118104.66537,1118104.66537,1118104.66537,1084655.5019999999,2425723.1086399998,3288836.4614400007,1619308.36956,2467517.5155200004,912105.1230000001,912105.1230000001,912105.1230000001,1323078.1130000001,902118.846,902118.846,1312228.97637,1196908.18425,1779107.9677,3103095.2925,880687.9973,1120069.63415,1105312.1099999999,1105312.1099999999,1105312.1099999999,1105312.1099999999,2712370.66364,2712370.66364 +28404000.0,2221362.18,1816517.7510000002,5304231.83292,3516292.97536,3516292.97536,3516292.97536,2900253.671,3505321.93072,6699527.25824,3728359.33218,5681309.45856,2329009.083,2329009.083,2329009.083,2990215.011,2221362.18,2221362.18,3806772.4414199996,2846767.8419999997,4231491.9528,7380509.22,2094658.8072,2664012.3756,2477274.897,2477274.897,2477274.897,2477274.897,6678895.6212,6678895.6212 +28407600.0,1637929.71,924332.331,2699050.4065199997,2127248.4384800005,2127248.4384800005,2127248.4384800005,1740608.555,2619964.32936,4476805.872640001,2407193.57046,3668104.48832,1588602.4589999998,1588602.4589999998,1588602.4589999998,1924268.6715,1637929.71,1637929.71,1430999.17506,1851342.4233,2751871.94772,4799776.653,1362222.32628,1732490.81094,1735978.5389999999,1735978.5389999999,1735978.5389999999,1735978.5389999999,4924708.6614,4924708.6614 +28411200.0,1212006.696,889731.51,2598016.0091999997,1279495.4522900002,1279495.4522900002,1279495.4522900002,1305343.3715000001,2010183.60848,3707702.6329600005,1768678.96926,2695129.85792,1067990.907,1067990.907,1067990.907,1444519.7025,1212006.696,1212006.696,1285201.4180199997,1412907.88725,2100174.1929,3663094.5225,1039621.1121,1322202.68955,1233360.6779999998,1233360.6779999998,1233360.6779999998,1233360.6779999998,3644100.13264,3644100.13264 +28414800.0,1064013.318,901243.08,2631629.7936,1231838.1006800001,1231838.1006800001,1231838.1006800001,1209064.7345,1952941.21328,3653321.5750400005,1714017.29898,2611835.88416,1054290.582,1054290.582,1054290.582,1397508.497,1064013.318,1064013.318,1302023.4069700001,1371843.3739499997,2039135.0891799997,3556630.9694999997,1009405.7418199999,1283774.41661,1197382.473,1197382.473,1197382.473,1197382.473,3199133.37612,3199133.37612 +28418400.0,753789.5219999999,645040.056,1883516.9635199998,800834.9704300001,800834.9704300001,800834.9704300001,661293.71,1016132.5578399998,2254625.9193600006,991409.01678,1510718.5017600001,567544.3829999999,567544.3829999999,567544.3829999999,700866.1835,753789.5219999999,753789.5219999999,922963.6080599999,644668.21485,958247.5687399999,1671362.0385,474348.46426,603282.10723,761021.064,761021.064,761021.064,761021.064,2266393.82948,2266393.82948 +28422000.0,128137.53,111896.29799999998,326737.19015999994,153267.09541,153267.09541,153267.09541,66457.104,209447.1908,785142.6444800001,242116.31283,368939.14336000005,187099.134,187099.134,187099.134,119637.38850000002,128137.53,128137.53,234922.88196,92452.3713,137423.03092,239691.33299999998,68026.68308,86517.15733999999,161602.14899999998,161602.14899999998,161602.14899999998,161602.14899999998,385266.8402,385266.8402 +28425600.0,127172.535,109061.706,318460.18152,129862.00689,129862.00689,129862.00689,45114.727,219074.27895999997,766250.18816,260509.03977,396966.15584,180776.505,180776.505,180776.505,113037.75699999998,127172.535,127172.535,229068.11628999998,85130.0604,126539.00335999999,220707.564,62638.90864,79664.92072,160263.96300000002,160263.96300000002,160263.96300000002,160263.96300000002,382365.4219,382365.4219 +28429200.0,138187.713,125717.58600000001,367095.35112,125536.15041,125536.15041,125536.15041,50465.744,244682.62055999995,770399.33056,270950.78010000003,412877.3792,180375.228,180375.228,180375.228,112385.54250000001,138187.713,138187.713,243794.77304,87641.89875,130272.64949999998,227219.7375,64487.125499999995,82015.50525,165462.18,165462.18,165462.18,165462.18,415484.39041999995,415484.39041999995 +28432800.0,153492.081,136408.443,398312.65356,121144.39249,121144.39249,121144.39249,52501.988000000005,288077.29536,766829.1456,306779.07771000004,467472.88032000005,182282.72100000002,182282.72100000002,182282.72100000002,111317.766,153492.081,153492.081,259812.74643999996,104528.14695000001,155372.70238,270998.8995,76912.06862,97817.69801000001,180690.21,180690.21,180690.21,180690.21,461499.52354,461499.52354 +28436400.0,189115.05000000002,150636.234,439857.80328,132073.54314000002,132073.54314000002,132073.54314000002,72548.26950000001,334149.77952,767202.93888,332923.75662,507312.39104,217248.45299999998,217248.45299999998,217248.45299999998,139993.021,189115.05000000002,189115.05000000002,266334.03862,123423.68925,183459.4097,319987.3425,90815.4553,115500.19315,241133.565,241133.565,241133.565,241133.565,568605.917,568605.917 +28440000.0,223166.109,159567.50400000002,465937.11168000003,139837.94726000002,139837.94726000002,139837.94726000002,75226.5955,393222.7928,773350.4979200001,375866.04531,572748.2595200001,307812.711,307812.711,307812.711,209744.87099999998,223166.109,223166.109,285213.42811,137500.7724,204383.86415999997,356483.484,101173.40783999999,128673.56232,274544.811,274544.811,274544.811,274544.811,670986.1010599999,670986.1010599999 +28443600.0,268136.16000000003,193054.80899999998,563720.0422799999,165699.06914,165699.06914,165699.06914,82512.6225,471173.62360000005,786172.76288,426146.19558,649365.63136,342889.017,342889.017,342889.017,221689.986,268136.16000000003,268136.16000000003,307524.62753999996,154482.50339999996,229625.84455999994,400510.19399999996,113668.60743999998,144565.10812,330597.939,330597.939,330597.939,330597.939,806196.0544,806196.0544 +28447200.0,437574.42899999995,240305.77500000002,701692.863,267431.84489999997,267431.84489999997,267431.84489999997,160628.25449999998,969529.5505599998,978070.928,685236.2006699999,1044169.44864,389061.345,389061.345,389061.345,349053.22900000005,437574.42899999995,437574.42899999995,516746.14991999994,215580.61304999999,320443.28161999997,558912.7004999999,158624.74738,201740.86998999998,458614.173,458614.173,458614.173,458614.173,1315640.4498599998,1315640.4498599998 +28450800.0,1172034.8399999999,532093.896,1553714.1763199999,1601570.3642400003,1601570.3642400003,1601570.3642400003,1412347.1530000002,3268862.05936,3675175.40416,2795369.4648599997,4259610.61312,1050054.2489999998,1050054.2489999998,1050054.2489999998,1531382.8285,1172034.8399999999,1172034.8399999999,2494175.77903,1451606.09895,2157695.97918,3763423.2195,1068095.35182,1358416.57161,1431579.51,1431579.51,1431579.51,1431579.51,3523918.0855999994,3523918.0855999994 +28454400.0,1044584.346,1124855.628,3284578.43376,1949571.0947900002,1949571.0947900002,1949571.0947900002,1876803.0505,4026508.8704799996,3034743.8752000006,3123219.7411800004,4759191.98656,1260544.341,1260544.341,1260544.341,1649063.311,1044584.346,1044584.346,2154278.9712599996,2078370.3573,3089330.75332,5388367.593,1529270.04068,1944944.11214,1493398.419,1493398.419,1493398.419,1493398.419,3140716.93364,3140716.93364 +28458000.0,2023559.5409999997,2196364.371,6413383.963319999,1566799.8739800001,1566799.8739800001,1566799.8739800001,2024541.6624999999,4238501.74064,7133453.047040001,3519537.34923,5363104.53216,1888329.7110000001,1888329.7110000001,1888329.7110000001,1528664.1894999999,2023559.5409999997,2023559.5409999997,2363609.33432,1765388.2810499999,2624108.01282,4576932.5805,1298977.05618,1652054.71239,2262669.501,2262669.501,2262669.501,2262669.501,6084169.019939999,6084169.019939999 +28461600.0,1418111.0219999999,1089719.793,3181981.7955600005,710448.9802300001,710448.9802300001,710448.9802300001,844467.463,2101332.57064,6742697.607679999,1288566.57993,1963530.0265600001,1375824.156,1375824.156,1375824.156,1419037.928,1418111.0219999999,1418111.0219999999,1998328.6029199997,2182762.5255000005,3244501.3342000004,5659013.955000001,1606082.0558000002,2042634.5609000004,972363.378,972363.378,972363.378,972363.378,4263787.139479999,4263787.139479999 +28465200.0,716253.924,655144.197,1913021.05524,385775.78028,385775.78028,385775.78028,521103.2925,1310745.1110399999,3299391.4323200006,860779.98594,1311664.7404800002,541947.822,541947.822,541947.822,534108.7045000001,716253.924,716253.924,742824.44236,942856.3781999999,1401480.3448799998,2444442.462,693756.05112,882327.32676,554086.422,554086.422,554086.422,554086.422,2153536.79816,2153536.79816 +28468800.0,730070.841,1122061.797,3276420.4472399997,624127.84555,624127.84555,624127.84555,887188.7464999999,1565961.7484,2501482.85952,1240952.9712299998,1890975.9561599998,633058.176,633058.176,633058.176,996947.686,730070.841,730070.841,868691.9355399999,767789.8672499999,1141258.0248999998,1990566.3225,564941.6801,718499.65355,717748.7429999999,717748.7429999999,717748.7429999999,717748.7429999999,2195079.6619399996,2195079.6619399996 +28472400.0,569198.112,596446.2239999999,1741622.9740799998,460411.9938,460411.9938,460411.9938,818413.939,1150871.0288799999,1732552.04608,844198.34961,1286397.48512,491515.40699999995,491515.40699999995,491515.40699999995,571384.9049999999,569198.112,569198.112,635489.8118399999,580529.6568,862910.74912,1505076.8880000003,427155.15488000005,543261.0862400001,516157.152,516157.152,516157.152,516157.152,1711388.99008,1711388.99008 +28476000.0,484650.228,417414.981,1218851.7445200002,244281.69304,244281.69304,244281.69304,440762.38850000006,1012538.5634399999,1543054.3027200003,713882.62155,1087821.1376,439551.078,439551.078,439551.078,372283.90849999996,484650.228,484650.228,559037.3005099999,495081.29474999994,735898.6159,1283544.0975,364282.0391,463298.29805,454510.755,454510.755,454510.755,454510.755,1457181.6855199998,1457181.6855199998 +28479600.0,871090.122,1016099.1479999998,2967009.5121599995,1411101.5193000003,1411101.5193000003,1411101.5193000003,1312406.1825,1926398.3782399998,2536813.04832,1598109.5671800002,2435214.5785600003,774810.2760000001,774810.2760000001,774810.2760000001,1328664.4315,871090.122,871090.122,1391905.0150199998,1217238.6213,1809327.5309199998,3155803.8329999996,895647.18308,1139094.90734,888792.897,888792.897,888792.897,888792.897,2619077.63348,2619077.63348 +28483200.0,854583.5459999999,1244940.018,3635224.85256,1520464.66187,1520464.66187,1520464.66187,1093947.0115,2200331.91776,2879517.3267200007,1644263.49675,2505544.376,936683.499,936683.499,936683.499,1528060.7264999999,854583.5459999999,854583.5459999999,1512860.6083499996,1262208.4078499998,1876171.5099399998,3272392.1685,928736.06306,1181177.74463,1032511.416,1032511.416,1032511.416,1032511.416,2569447.86164,2569447.86164 +28486800.0,780848.145,1126242.2999999998,3288627.516,1011970.43288,1011970.43288,1011970.43288,940930.6375000001,2134138.75312,2833290.15424,1408656.7584600002,2146524.5843200004,783790.7819999999,783790.7819999999,783790.7819999999,1177452.9795,780848.145,780848.145,1161197.0061899999,1041528.3020999999,1548148.24164,2700258.5609999998,766359.09636,974664.7567799999,960243.3450000002,960243.3450000002,960243.3450000002,960243.3450000002,2347750.0892999996,2347750.0892999996 +28490400.0,2132563.164,1726483.074,5041330.57608,3430020.4893900002,3430020.4893900002,3430020.4893900002,2798457.0880000005,3292264.8665600005,6269578.92544,3583376.97585,5460383.9632,2232807.141,2232807.141,2232807.141,2874519.522,2132563.164,2132563.164,3679021.7177999998,2696435.1427499996,4008034.4590999996,6990757.7775,1984043.6358999999,2523330.66445,2365873.764,2365873.764,2365873.764,2365873.764,6411906.57976,6411906.57976 +28494000.0,1514191.815,826032.7589999998,2412015.6562799998,1936228.1004000003,1936228.1004000003,1936228.1004000003,1608660.6095000003,2368482.68736,3905343.3708800003,2156148.06078,3285558.9497599998,1417166.631,1417166.631,1417166.631,1645616.287,1514191.815,1514191.815,1252491.03226,1646333.262,2447142.2808,4268271.42,1211376.0792,1540642.7316,1560200.793,1560200.793,1560200.793,1560200.793,4552670.0571,4552670.0571 +28497600.0,1072622.559,780812.7869999999,2279973.33804,1126930.7005000003,1126930.7005000003,1126930.7005000003,1119025.8975,1740360.49456,3132320.36096,1538753.5909199999,2344767.37664,923456.691,923456.691,923456.691,1241910.6175,1072622.559,1072622.559,1133826.0859899998,1218459.7206,1811142.5970399997,3158969.6459999997,896545.6709599999,1140237.61508,1066446.381,1066446.381,1066446.381,1066446.381,3225018.49406,3225018.49406 +28501200.0,928067.376,779076.4349999999,2274903.1902,1082631.15587,1082631.15587,1082631.15587,1046913.3675000002,1682059.01536,3092879.4470400005,1489576.4049600002,2269830.7123200004,902087.082,902087.082,902087.082,1189775.0655,928067.376,928067.376,1125821.25513,1179811.35225,1753694.8989,3058770.1725,868108.1061,1104070.37655,1033630.485,1033630.485,1033630.485,1033630.485,2790389.24384,2790389.24384 +28504800.0,663139.1880000001,550548.279,1607600.97468,709258.58256,709258.58256,709258.58256,582133.7445,856184.8391199999,1900976.63296,845465.19582,1288327.91744,482873.39100000006,482873.39100000006,482873.39100000006,602524.8424999999,663139.1880000001,663139.1880000001,786934.0807899999,553136.5745999999,822193.13064,1434057.786,406999.25736,517626.57228,661148.775,661148.775,661148.775,661148.775,1993838.49192,1993838.49192 +28508400.0,110462.93399999998,95296.497,278265.77124000003,114946.70231000001,114946.70231000001,114946.70231000001,61127.237499999996,165620.65968,646065.09504,197952.15005999999,301641.37152,156370.956,156370.956,156370.956,102273.52799999999,110462.93399999998,110462.93399999998,185294.18219,78029.64494999999,115984.80557999999,202299.0795,57414.405419999996,73020.33441,134682.048,134682.048,134682.048,134682.048,332125.2215599999,332125.2215599999 +28512000.0,105808.215,93335.583,272539.90236,93366.06455,93366.06455,93366.06455,40099.857,179825.82312,637521.6185600001,193228.75782000003,294443.82144,152544.693,152544.693,152544.693,95572.48049999999,105808.215,105808.215,194492.92719999995,70373.3103,104604.27851999999,182449.323,51780.85548,65855.51754,131864.802,131864.802,131864.802,131864.802,318130.0331,318130.0331 +28515600.0,110537.17500000002,97324.554,284187.69768000004,103480.74308,103480.74308,103480.74308,36429.28799999999,189280.93496,631321.3241600001,217233.22509,331022.05728,150681.741,150681.741,150681.741,94963.57849999999,110537.17500000002,110537.17500000002,193957.15573,68721.5178,102149.02152000001,178166.89800000002,50565.46248,64309.76604000001,134736.17699999997,134736.17699999997,134736.17699999997,134736.17699999997,332348.43950000004,332348.43950000004 +28519200.0,119648.37899999999,111346.734,325132.46328,98472.08712,98472.08712,98472.08712,41504.3755,188466.44767999998,628741.8720000001,228381.12108,348009.32736000005,148901.01,148901.01,148901.01,92616.286,119648.37899999999,119648.37899999999,212215.64637,77391.62414999999,115036.43885999998,200644.95149999997,56944.94813999999,72423.27296999999,138085.377,138085.377,138085.377,138085.377,359742.79286,359742.79286 +28522800.0,126724.95599999998,118769.022,346805.54423999996,100230.80331,100230.80331,100230.80331,47379.549,197900.04496,639158.3296,254211.00474,387369.15008,151440.675,151440.675,151440.675,95987.829,126724.95599999998,126724.95599999998,219161.33927999996,86169.03929999999,128083.36211999998,223401.21299999996,63403.39187999999,80637.19973999998,150751.119,150751.119,150751.119,150751.119,381019.70103999996,381019.70103999996 +28526400.0,150772.467,129232.29000000001,377358.2868,112663.31021000001,112663.31021000001,112663.31021000001,63904.568,215586.42655999996,649719.9264,282560.67525000003,430568.64800000004,167470.851,167470.851,167470.851,113957.70049999999,150772.467,150772.467,226675.03547,102968.13554999999,153053.87062,266954.4255,75764.20838,96357.83549,194423.44800000003,194423.44800000003,194423.44800000003,194423.44800000003,453322.55078,453322.55078 +28530000.0,186232.989,136633.764,398970.59088,125457.98199000001,125457.98199000001,125457.98199000001,72602.52299999999,290673.70096,653705.30304,311917.95138,475303.54496,236325.33000000002,236325.33000000002,236325.33000000002,174577.76,186232.989,186232.989,239928.54794999998,118258.89435,175782.35654,306597.13350000005,87015.18646000001,110666.96533,225322.12800000003,225322.12800000003,225322.12800000003,225322.12800000003,559940.52026,559940.52026 +28533600.0,326559.59400000004,178685.679,521762.18267999997,232502.07519000003,232502.07519000003,232502.07519000003,151130.5705,801033.7537600001,708974.5171200001,540779.17446,824044.4563200001,288803.58,288803.58,288803.58,301509.131,326559.59400000004,326559.59400000004,462922.89927,175531.47525,260913.45209999997,455081.6025,129156.49289999998,164262.78795,342981.657,342981.657,342981.657,342981.657,981855.84596,981855.84596 +28537200.0,1057562.1300000001,451196.529,1317493.8646799999,1499775.8587900002,1499775.8587900002,1499775.8587900002,1259055.6545,3081823.1062399996,2958239.55584,2513487.44325,3830076.104,888199.8360000001,888199.8360000001,888199.8360000001,1245800.0274999999,1057562.1300000001,1057562.1300000001,2313749.41785,1242179.24625,1846399.7685000002,3220464.7125000004,913998.5565000002,1162434.4057500002,1286493.078,1286493.078,1286493.078,1286493.078,3179736.8042,3179736.8042 +28540800.0,921327.2849999999,1071237.5729999999,3128013.71316,1681246.5198100002,1681246.5198100002,1681246.5198100002,1734521.8345,3737587.7943999995,2741131.10336,2846020.9117199997,4336793.77024,1153374.6749999998,1153374.6749999998,1153374.6749999998,1432044.0785,921327.2849999999,921327.2849999999,2064769.9025199998,1903825.1785499998,2829883.3518199995,4935843.0555,1400839.26718,1781604.30289,1361838.789,1361838.789,1361838.789,1361838.789,2770124.0368999997,2770124.0368999997 +28544400.0,1923006.09,1963274.943,5732762.83356,1340727.78829,1340727.78829,1340727.78829,1641424.4035,3879794.55088,6502540.95232,3228475.28472,4919581.38624,1770766.845,1770766.845,1770766.845,1325668.5925,1923006.09,1923006.09,1936419.2083599998,1517509.1488499998,2255655.57434,3934282.9784999997,1116586.9786599998,1420088.80843,2152139.415,2152139.415,2152139.415,2152139.415,5781838.3106,5781838.3106 +28548000.0,1260956.307,949227.03,2771742.9276,606751.76606,606751.76606,606751.76606,658016.303,1714821.2810399998,6226227.978879999,1010754.63027,1540197.5318399998,1214893.023,1214893.023,1214893.023,1276672.1099999999,1260956.307,1260956.307,1702304.9691699997,2013993.1529999997,2993639.2051999993,5221463.7299999995,1481901.1347999999,1884699.7654,814947.3929999999,814947.3929999999,814947.3929999999,814947.3929999999,3791275.2963799997,3791275.2963799997 +28551600.0,635200.701,568640.997,1660431.7112399999,318621.37450000003,318621.37450000003,318621.37450000003,446313.567,1125902.0972,2541968.7865600004,731653.4763300001,1114900.53536,461688.621,461688.621,461688.621,422041.7215,635200.701,635200.701,631198.90704,684895.3703999999,1018042.0073599999,1775654.6639999999,503947.70463999995,640926.77872,485342.145,485342.145,485342.145,485342.145,1909836.77434,1909836.77434 +28555200.0,666284.106,1074878.835,3138646.1981999995,556819.00769,556819.00769,556819.00769,826438.8265,1446926.6636,2285053.9392,1133908.31841,1727860.2947200001,570172.7819999999,570172.7819999999,570172.7819999999,937071.2225,666284.106,666284.106,779150.30791,695256.6717,1033443.2502799998,1802517.2969999998,511571.57571999996,650622.9100599999,650682.582,650682.582,650682.582,650682.582,2003294.2120400001,2003294.2120400001 +28558800.0,521917.887,520488.11699999997,1519825.30164,426783.88742000004,426783.88742000004,426783.88742000004,731968.3,1064403.9772,1576538.55808,767486.81163,1169503.7129600001,454536.2729999999,454536.2729999999,454536.2729999999,469990.7030000001,521917.887,521917.887,564738.1558,524413.09575,779497.9842999999,1359589.5075,385864.4507,490747.06984999997,471844.152,471844.152,471844.152,471844.152,1569233.11358,1569233.11358 +28562400.0,442717.407,382196.637,1116014.1800399998,211358.6409,211358.6409,211358.6409,396739.658,931719.70864,1395571.7356800002,646324.2765,984875.0880000002,405045.78599999996,405045.78599999996,405045.78599999996,334039.5625,442717.407,442717.407,495871.7167299999,442559.70809999993,657829.4920399999,1147377.021,325636.52596,414148.46758,413270.211,413270.211,413270.211,413270.211,1331103.67038,1331103.67038 +28566000.0,813314.022,904742.817,2641849.02564,1337988.3404800002,1337988.3404800002,1337988.3404800002,1249597.0515,1786427.5183199998,2376207.4496000004,1521400.4297099998,2318324.46432,733904.691,733904.691,733904.691,1287503.6335,813314.022,813314.022,1318412.4285799998,1162355.4999,1727748.1751599999,3013514.259,855264.04684,1087735.1468200001,802254.5549999999,802254.5549999999,802254.5549999999,802254.5549999999,2445364.15948,2445364.15948 +28569600.0,789250.308,1199839.1400000001,3503530.2887999997,1358551.62069,1358551.62069,1358551.62069,1033061.064,2062197.54512,2698277.45984,1527275.21184,2327276.51328,886618.8119999999,886618.8119999999,886618.8119999999,1468570.2675,789250.308,789250.308,1449294.22651,1191145.05045,1770541.53178,3088153.8345000003,876447.4692200001,1114676.47931,969504.735,969504.735,969504.735,969504.735,2373012.5927199996,2373012.5927199996 +28573200.0,716310.246,1009651.029,2948181.00468,954843.61984,954843.61984,954843.61984,881604.3635,1977866.1055199997,2651219.26208,1295719.9983,1974430.4736000001,736591.8089999999,736591.8089999999,736591.8089999999,1109040.478,716310.246,716310.246,1086144.7772499998,967717.29915,1438434.10886,2508896.7015,712048.7781400001,905592.23797,879338.46,879338.46,879338.46,879338.46,2153706.1396399997,2153706.1396399997 +28576800.0,2091341.472,1694334.4619999998,4947456.62904,3357431.21725,3357431.21725,3357431.21725,2761666.9185000006,3198929.3733599996,6120287.264640001,3529470.0220500003,5378240.033600001,2201288.739,2201288.739,2201288.739,2790707.5455,2091341.472,2091341.472,3516231.6352799996,2636778.7116,3919359.96144,6836092.956,1940148.2865600002,2467504.02888,2326653.582,2326653.582,2326653.582,2326653.582,6287966.69248,6287966.69248 +28580400.0,1435021.707,791410.4909999999,2310918.63372,1789587.36385,1789587.36385,1789587.36385,1526934.7695,2249871.90192,3609998.9600000004,2015731.99611,3071591.61312,1323081.642,1323081.642,1323081.642,1526643.132,1435021.707,1435021.707,1086500.3565,1521700.7247,2261886.0154799996,3945150.027,1119671.15052,1424011.29546,1449635.1269999999,1449635.1269999999,1449635.1269999999,1449635.1269999999,4314631.93238,4314631.93238 +28584000.0,1026137.0549999999,752353.8749999999,2196873.3149999995,1079591.8060400002,1079591.8060400002,1079591.8060400002,1035553.8270000002,1673398.3712799998,2995898.304,1469964.5667,2239946.0064,893157.36,893157.36,893157.36,1192835.8994999998,1026137.0549999999,1026137.0549999999,1079611.3253900001,1160343.8892,1724758.07728,3008298.9720000005,853783.8987200002,1085852.6765600003,1017397.2180000001,1017397.2180000001,1017397.2180000001,1017397.2180000001,3085252.0787,3085252.0787 +28587600.0,885728.067,747172.3319999999,2181743.20944,1037427.63575,1037427.63575,1037427.63575,996843.9775,1614078.2676000001,2961704.5529600005,1425758.16558,2172583.87136,870248.3579999999,870248.3579999999,870248.3579999999,1140277.138,885728.067,885728.067,1070478.4869999997,1129364.25255,1678709.33342,2927981.3955000006,830989.0055800001,1056861.8560900001,989975.787,989975.787,989975.787,989975.787,2663089.05478,2663089.05478 +28591200.0,629914.086,520495.3080000001,1519846.29936,675542.78803,675542.78803,675542.78803,554718.6995,813630.6104,1796569.0848,798970.59669,1217479.0044800001,460165.13099999994,460165.13099999994,460165.13099999994,572724.6665,629914.086,629914.086,731157.2294,523817.19899999996,778612.2315999999,1358044.59,385425.98840000003,490189.4282,628039.281,628039.281,628039.281,628039.281,1893941.6852399998,1893941.6852399998 +28594800.0,104094.408,90080.124,263033.96207999997,109595.30351000001,109595.30351000001,109595.30351000001,59100.852999999996,148713.88887999998,610013.50784,183217.99839,279189.33088,147807.102,147807.102,147807.102,97496.1715,104094.408,104094.408,171457.80834,73476.46485,109216.86874,190494.53850000002,54064.16426000001,68759.45723000001,126735.74699999999,126735.74699999999,126735.74699999999,126735.74699999999,312977.18672,312977.18672 +28598400.0,99259.812,88474.557,258345.70644,85619.94287000001,85619.94287000001,85619.94287000001,38097.808,166042.19672,602032.04864,175032.22548,266715.77216,144538.69199999998,144538.69199999998,144538.69199999998,90338.46849999999,99259.812,99259.812,182990.18256999998,65883.95820000001,97931.21688,170810.26200000002,48477.57912000001,61654.370760000005,122078.69099999999,122078.69099999999,122078.69099999999,122078.69099999999,298441.16808,298441.16808 +28602000.0,102743.98199999999,91243.302,266430.44184,80840.04126000001,80840.04126000001,80840.04126000001,33479.4915,180184.73784,607857.79904,195613.8408,298078.23360000004,145296.984,145296.984,145296.984,91595.3885,102743.98199999999,102743.98199999999,184986.4913,64901.61045,96471.03577999999,168263.4345,47754.76522,60735.08731,125326.31099999999,125326.31099999999,125326.31099999999,125326.31099999999,308916.90588,308916.90588 +28605600.0,113509.30500000002,106462.188,310869.58896,87477.47051999999,87477.47051999999,87477.47051999999,38004.557499999995,183195.47392000002,615808.9683200001,214094.06319,326238.57248,146092.45799999998,146092.45799999998,146092.45799999998,90798.20749999999,113509.30500000002,113509.30500000002,202798.53216999996,72441.42659999999,107678.36743999997,187811.10599999997,53302.580559999995,67790.86587999998,130218.057,130218.057,130218.057,130218.057,341284.6437,341284.6437 +28609200.0,117307.33200000001,110711.65499999998,323278.0325999999,94498.52984000002,94498.52984000002,94498.52984000002,40550.7725,183835.79488000003,618198.0204800001,233704.29306000003,356120.82752000005,146542.188,146542.188,146542.188,92381.72300000001,117307.33200000001,117307.33200000001,211340.37548,80552.3535,119734.6094,208839.435,59270.6206,75381.0913,135645.459,135645.459,135645.459,135645.459,352704.04488,352704.04488 +28612800.0,128526.97499999999,119535.17400000001,349042.70808,100707.04215000002,100707.04215000002,100707.04215000002,57409.758,191604.71183999997,613456.0486399999,252012.67371000003,384019.31232,147877.182,147877.182,147877.182,102027.114,128526.97499999999,128526.97499999999,209658.50125999996,88931.2932,132189.23088,230562.61200000002,65435.86512,83222.12376,164189.757,164189.757,164189.757,164189.757,386437.7715,386437.7715 +28616400.0,158839.215,126655.14300000001,369833.01756,115259.91323,115259.91323,115259.91323,68630.96449999999,217628.7972,626644.22976,282198.97104000003,430017.47968000005,208709.88900000002,208709.88900000002,208709.88900000002,146582.5305,158839.215,158839.215,222527.52157999997,106922.6406,158931.92504,277206.846,78673.94296,100058.47108,200557.56900000002,200557.56900000002,200557.56900000002,200557.56900000002,477576.5731,477576.5731 +28620000.0,288871.146,167682.26400000002,489632.21088,223417.39562999998,223417.39562999998,223417.39562999998,148139.362,739033.87264,691162.92352,499726.24653000006,761487.6137600001,268686.70200000005,268686.70200000005,268686.70200000005,286379.73350000003,288871.146,288871.146,445733.45998999994,164511.98415,244533.86286,426512.5515,121048.32414000001,153950.72097000002,310953.54,310953.54,310953.54,310953.54,868539.24564,868539.24564 +28623600.0,1012600.9739999999,430928.718,1258311.8565599998,1454230.69066,1454230.69066,1454230.69066,1197510.2474999998,3004089.01536,2787878.9926400003,2404600.25652,3664152.77184,844497.2160000001,844497.2160000001,844497.2160000001,1186149.608,1012600.9739999999,1012600.9739999999,2244136.3513399996,1181137.6017000002,1755666.2622800001,3062208.5970000005,869083.9637200001,1105311.4840600002,1230800.142,1230800.142,1230800.142,1230800.142,3044553.59516,3044553.59516 +28627200.0,888143.094,1064625.081,3108705.23652,1611796.61368,1611796.61368,1611796.61368,1679411.9649999999,3659915.4732,2628440.8070400003,2762824.4660099996,4210018.23392,1138499.5019999999,1138499.5019999999,1138499.5019999999,1373938.223,888143.094,888143.094,1967984.77083,1836975.4695,2730516.6237999997,4762528.995,1351651.0862,1719046.1801,1328925.429,1328925.429,1328925.429,1328925.429,2670350.23596,2670350.23596 +28630800.0,1903974.4020000002,1886723.229,5509231.82868,1267639.94522,1267639.94522,1267639.94522,1561038.5909999998,3833786.4001599997,6395851.487360001,3156059.36037,4809233.31104,1771491.699,1771491.699,1771491.699,1295679.7874999999,1903974.4020000002,1903974.4020000002,1835942.1611699997,1482090.8012999997,2203009.0429199995,3842457.6329999994,1090526.07108,1386944.23134,2143236.063,2143236.063,2143236.063,2143236.063,5724616.36868,5724616.36868 +28634400.0,1238701.545,933660.279,2726288.01468,588880.2007,588880.2007,588880.2007,631889.685,1661132.1462400001,6161017.904640001,985691.4463200001,1502006.0134400001,1201009.875,1201009.875,1201009.875,1268025.7135,1238701.545,1238701.545,1638405.3842,1987119.3091499999,2953693.39286,5151790.8015,1462127.2941400001,1859551.1559700002,802633.338,802633.338,802633.338,802633.338,3724362.6453,3724362.6453 +28638000.0,633647.628,561530.415,1639668.8117999998,314612.56695,314612.56695,314612.56695,450785.7025,1132827.0816,2516573.5609600004,739186.1897699999,1126378.95584,476198.967,476198.967,476198.967,426906.3575,633647.628,633647.628,624143.65195,663516.44505,986263.9504199999,1720227.8205,488217.03858,620920.32759,492906.0,492906.0,492906.0,492906.0,1905167.20152,1905167.20152 +28641600.0,660040.494,1073413.431,3134367.21852,544949.5445900001,544949.5445900001,544949.5445900001,821379.2405,1446419.04496,2294316.45312,1126735.60419,1716930.44448,576362.259,576362.259,576362.259,939396.1849999999,660040.494,660040.494,765183.2800299998,694004.8005,1031582.4442,1799271.7050000003,510650.44580000004,649451.4059000001,649328.001,649328.001,649328.001,649328.001,1984521.7519599998,1984521.7519599998 +28645200.0,508314.9330000001,505004.445,1474612.9794,414393.6759600001,414393.6759600001,414393.6759600001,705833.338,1040450.9544,1539968.9523200002,743456.55699,1132886.18208,448826.691,448826.691,448826.691,461284.88,508314.9330000001,508314.9330000001,538247.18181,508918.67459999997,756466.77064,1319418.786,374463.61736,476247.35228,460402.485,460402.485,460402.485,460402.485,1528333.56522,1528333.56522 +28648800.0,433637.24100000004,376980.579,1100783.2906799999,204749.66094000003,204749.66094000003,204749.66094000003,387568.7445,920991.6695200001,1385156.6272,634050.1983899999,966171.7308799999,406355.97,406355.97,406355.97,329881.0025,433637.24100000004,433637.24100000004,479679.28462999995,435325.61835,647076.59814,1128621.9735,320313.66486,407378.78853,408473.45099999994,408473.45099999994,408473.45099999994,408473.45099999994,1303802.63794,1303802.63794 +28652400.0,801294.3990000001,881479.941,2573921.42772,1316689.8921,1316689.8921,1316689.8921,1232378.497,1765934.3217599997,2351477.6883199997,1502097.2815800002,2288910.14336,729592.608,729592.608,729592.608,1280880.0375,801294.3990000001,801294.3990000001,1294235.2617999997,1150121.4300000002,1709563.212,2981796.3000000003,846262.1880000001,1076286.4740000002,786062.004,786062.004,786062.004,786062.004,2409225.1596600004,2409225.1596600004 +28656000.0,761407.9920000001,1173875.832,3427717.42944,1311864.5489400004,1311864.5489400004,1311864.5489400004,1000962.4764999999,1999846.4347199998,2603171.44128,1468367.9425799998,2237513.05536,861308.271,861308.271,861308.271,1442336.4094999998,761407.9920000001,761407.9920000001,1410892.3601499998,1153971.7244999998,1715286.3657999998,2991778.545,849095.2442,1079889.5891,935993.7479999999,935993.7479999999,935993.7479999999,935993.7479999999,2289300.02928,2289300.02928 +28659600.0,695878.482,975636.1379999999,2848857.5229599997,927279.74427,927279.74427,927279.74427,859809.7235,1924312.09664,2593871.41312,1260131.18175,1920199.8960000002,724826.208,724826.208,724826.208,1088773.4445,695878.482,695878.482,1056106.60623,943564.2534,1402532.54456,2446277.694,694276.90744,882989.75812,857994.084,857994.084,857994.084,857994.084,2092274.6358799997,2092274.6358799997 +28663200.0,2080408.6049999997,1687292.028,4926892.72176,3331287.31991,3331287.31991,3331287.31991,2750683.9185,3187088.56312,6094871.56288,3514476.16128,5355392.24576,2197664.01,2197664.01,2197664.01,2789055.3109999998,2080408.6049999997,2080408.6049999997,3430798.27194,2625395.2308,3902439.33072,6806580.228,1931772.29328,2456851.3394400002,2317629.075,2317629.075,2317629.075,2317629.075,6255095.205699999,6255095.205699999 +28666800.0,1426572.6269999999,794838.036,2320927.06512,1768193.65305,1768193.65305,1768193.65305,1517177.6130000001,2251299.95712,3631393.5443200003,2004757.6613399999,3054868.81728,1332097.02,1332097.02,1332097.02,1534916.6735,1426572.6269999999,1426572.6269999999,1076075.9898199998,1517592.13335,2255778.92414,3934498.1235,1116648.03886,1420166.4655300002,1448016.6090000002,1448016.6090000002,1448016.6090000002,1448016.6090000002,4289228.36518,4289228.36518 +28670400.0,1032184.8029999998,763457.358,2229295.48536,1085723.2691800003,1085723.2691800003,1085723.2691800003,1038273.4355,1699768.8971199999,3060275.8624,1484813.02032,2262572.22144,915147.1350000001,915147.1350000001,915147.1350000001,1217502.2264999999,1032184.8029999998,1032184.8029999998,1083927.03536,1176306.9561,1748485.89524,3049684.7010000004,865529.56276,1100790.95398,1032359.4299999999,1032359.4299999999,1032359.4299999999,1032359.4299999999,3103435.6410199995,3103435.6410199995 +28674000.0,904898.9879999999,767671.248,2241600.04416,1055954.5036700002,1055954.5036700002,1055954.5036700002,1018551.3835,1662162.33392,3073590.67584,1458890.49243,2223071.2265600003,904899.51,904899.51,904899.51,1183278.1205000002,904898.9879999999,904898.9879999999,1086851.83282,1162267.5339,1727617.4207599997,3013286.1989999996,855199.32124,1087652.82802,1019073.411,1019073.411,1019073.411,1019073.411,2720729.6239199997,2720729.6239199997 +28677600.0,653756.679,550502.007,1607465.86044,701149.8116700001,701149.8116700001,701149.8116700001,578576.25,859229.83264,1924948.01472,837609.5437500001,1276357.4000000001,492767.64,492767.64,492767.64,608753.103,653756.679,653756.679,762986.7117599999,554541.00525,824280.7041000001,1437698.9025,408032.64090000006,518940.8419500001,660926.2050000001,660926.2050000001,660926.2050000001,660926.2050000001,1965628.41486,1965628.41486 +28681200.0,108404.205,95974.31099999999,280244.98812,113669.62585,113669.62585,113669.62585,60328.7755,164636.53791999997,664229.2768000001,192248.98749000003,292950.83808,159413.364,159413.364,159413.364,103935.622,108404.205,108404.205,186209.73683,78033.3021,115990.24164,202308.561,57417.09636,73023.75678,132726.63900000002,132726.63900000002,132726.63900000002,132726.63900000002,325935.3097,325935.3097 +28684800.0,106315.02599999998,96874.677,282874.05684,92140.32300000002,92140.32300000002,92140.32300000002,40150.232500000006,185595.46863999998,680754.54976,189123.78428999998,288188.62367999996,161334.657,161334.657,161334.657,100197.727,106315.02599999998,106315.02599999998,202731.3509,72827.03925,108251.54969999999,188810.8425,53586.3153,68151.72315,132111.597,132111.597,132111.597,132111.597,319653.84484,319653.84484 +28688400.0,115588.068,107332.488,313410.86496,90577.50812000001,90577.50812000001,90577.50812000001,38001.243,206288.54504,717234.3737600001,224825.22678000003,342590.82176,168749.121,168749.121,168749.121,105117.18,115588.068,115588.068,214852.58938,75456.6354,112160.23336,195628.314,55521.17864,70612.50572,140978.625,140978.625,140978.625,140978.625,347534.79112,347534.79112 +28692000.0,136022.079,133564.956,390009.67152000003,113158.92225,113158.92225,113158.92225,47297.2255,224469.45200000002,789698.9056,265899.73032,405180.54144,183400.734,183400.734,183400.734,112251.45050000002,136022.079,136022.079,259506.52740999995,96869.0016,143987.99744,251141.856,71276.45056,90650.25088,158954.838,158954.838,158954.838,158954.838,408973.05085999996,408973.05085999996 +28695600.0,149582.664,141988.98,414607.8216,122459.02691,122459.02691,122459.02691,62013.063,245004.2352,808518.46592,304710.05543999997,464320.08447999996,189268.08000000002,189268.08000000002,189268.08000000002,120415.97399999999,149582.664,149582.664,266423.84132,109386.75779999999,162594.63752,283595.298,80487.04648,102364.39804,197335.224,197335.224,197335.224,197335.224,449745.20976,449745.20976 +28699200.0,191383.87199999997,154964.145,452495.3034,132179.62362,132179.62362,132179.62362,74330.6235,333167.02432,808822.8774400001,345805.98003,526942.4457599999,287417.502,287417.502,287417.502,200391.009,191383.87199999997,191383.87199999997,282361.85809,131761.23389999996,195852.50075999997,341603.19899999996,96950.24123999999,123302.48801999999,259267.374,259267.374,259267.374,259267.374,575427.50848,575427.50848 +28702800.0,230569.017,167301.006,488518.93752,142328.85645000002,142328.85645000002,142328.85645000002,80406.137,445516.86840000004,784815.0476800001,382132.20717,582296.6966400001,318898.659,318898.659,318898.659,219845.675,230569.017,230569.017,300693.85033999995,147116.6874,218677.15016,381413.634,108248.82184,137672.15932,295073.38800000004,295073.38800000004,295073.38800000004,295073.38800000004,693244.1777799999,693244.1777799999 +28706400.0,405922.65300000005,216885.048,633304.34016,252028.73454000003,252028.73454000003,252028.73454000003,160468.9065,966778.1571999999,900699.51616,661697.2391400001,1008300.5548800001,403609.044,403609.044,403609.044,350364.28,405922.65300000005,405922.65300000005,524247.08998999995,209808.5085,311863.51139999996,543947.985,154377.6186,196339.3203,452379.549,452379.549,452379.549,452379.549,1220474.11002,1220474.11002 +28710000.0,1152978.093,518834.10000000003,1514995.5720000002,1566996.39393,1566996.39393,1566996.39393,1363287.114,3249869.334,3617068.1747200005,2711732.1222599996,4132163.23392,1072959.5280000002,1072959.5280000002,1072959.5280000002,1540709.9575,1152978.093,1152978.093,2434542.5726699997,1430040.7602,2125640.8336799997,3707513.082,1052227.52232,1338235.67436,1423914.3450000002,1423914.3450000002,1423914.3450000002,1423914.3450000002,3466620.79962,3466620.79962 +28713600.0,1017315.885,1117381.854,3262755.01368,1816292.8967700002,1816292.8967700002,1816292.8967700002,1829628.5979999998,3989607.11936,3016585.6665600003,3038167.72056,4629588.90752,1269778.758,1269778.758,1269778.758,1628316.4764999999,1017315.885,1017315.885,2124735.6963299997,2037654.45585,3028809.83314,5282807.8485,1499311.17986,1906842.0710300002,1473993.5639999998,1473993.5639999998,1473993.5639999998,1473993.5639999998,3058729.7608999996,3058729.7608999996 +28717200.0,1970935.656,2144016.627,6260528.550839999,1433422.81566,1433422.81566,1433422.81566,1864437.183,4123032.2386399996,6968598.656,3384785.0005200007,5157767.619840001,1858137.3569999998,1858137.3569999998,1858137.3569999998,1463167.1355,1970935.656,1970935.656,1984524.10013,1681451.0833499997,2499342.1041399995,4359317.6235,1237215.8588599998,1573506.0755299998,2210169.105,2210169.105,2210169.105,2210169.105,5925946.53904,5925946.53904 +28720800.0,1372241.859,1021129.2749999999,2981697.483,664820.53176,664820.53176,664820.53176,796679.4079999999,1985331.1264000002,6712392.91264,1205486.19429,1836931.34368,1376296.443,1376296.443,1376296.443,1398398.7675,1372241.859,1372241.859,1791716.80376,2139731.7453,3180539.53252,5547452.673,1574419.90148,2002366.25054,938153.082,938153.082,938153.082,938153.082,4125873.8560599997,4125873.8560599997 +28724400.0,655803.483,578894.6429999999,1690372.35756,311010.94255000004,311010.94255000004,311010.94255000004,447496.42699999997,1194494.04184,2939550.49024,751261.31052,1144779.13984,502006.50299999997,502006.50299999997,502006.50299999997,459151.315,655803.483,655803.483,615390.1061099999,801522.73845,1191399.2309799998,2078021.9145,589762.41002,750066.95771,497444.22299999994,497444.22299999994,497444.22299999994,497444.22299999994,1971782.4722199999,1971782.4722199999 +28728000.0,697761.816,1103910.8939999999,3223419.8104799995,588430.02207,588430.02207,588430.02207,857372.775,1529400.2064800002,2453589.69792,1193436.60975,1818570.0720000002,623886.0630000001,623886.0630000001,623886.0630000001,982819.4530000001,697761.816,697761.816,804026.09833,741101.5619999999,1101588.0007999998,1921374.4199999997,545304.3592,693524.6715999999,694636.467,694636.467,694636.467,694636.467,2097937.19344,2097937.19344 +28731600.0,582853.7189999999,613966.527,1792782.25884,471501.11987,471501.11987,471501.11987,818398.4515,1207038.13408,1870121.3228799999,876762.1468199999,1336018.50944,540928.8929999999,540928.8929999999,540928.8929999999,625904.286,582853.7189999999,582853.7189999999,637437.7415899999,612657.5292,910666.25328,1588371.372,450794.92272000003,573326.42856,546023.598,546023.598,546023.598,546023.598,1752446.8484599998,1752446.8484599998 +28735200.0,341491.398,266848.668,779198.11056,94514.60227000002,94514.60227000002,94514.60227000002,251841.6005,726396.1301600001,955299.5014400001,447053.74413,681224.75296,304849.09500000003,304849.09500000003,304849.09500000003,225068.56749999998,341491.398,341491.398,339060.57483999996,278689.6206,414249.75704,722528.6460000001,205060.51096,260798.43508000002,293174.78099999996,293174.78099999996,293174.78099999996,293174.78099999996,1026750.80332,1026750.80332 +28738800.0,859851.4110000001,998003.328,2914169.71776,1323207.0365800003,1323207.0365800003,1323207.0365800003,1313948.6955,1967693.9467999998,2588324.10368,1583504.0190899998,2412958.5052799997,796983.5910000001,796983.5910000001,796983.5910000001,1338829.6145,859851.4110000001,859851.4110000001,1274055.15211,1227244.08555,1824199.8506200002,3181743.9255000004,903009.2283800001,1148458.0454900002,869530.0109999999,869530.0109999999,869530.0109999999,869530.0109999999,2585286.5757400002,2585286.5757400002 +28742400.0,909569.085,1312923.2909999997,3833736.0097199995,1507541.2600600002,1507541.2600600002,1507541.2600600002,1151528.8015,2350615.82056,3188747.2287999997,1724955.03684,2628502.91328,1039054.977,1039054.977,1039054.977,1610435.1725,909569.085,909569.085,1564058.85441,1344485.63205,1998470.0012199997,3485703.4905,989275.84778,1258172.97419,1100019.06,1100019.06,1100019.06,1100019.06,2734771.0489,2734771.0489 +28746000.0,832270.077,1160521.227,3388721.9828399997,1046221.8719700001,1046221.8719700001,1046221.8719700001,996414.0515,2274181.8421599995,3096508.384,1492458.6060300001,2274222.6377600003,869336.838,869336.838,869336.838,1264769.9155,832270.077,832270.077,1210837.5097,1115409.8479499999,1657967.2307799999,2891803.3095,820721.3202199999,1043803.2898099999,1029939.003,1029939.003,1029939.003,1029939.003,2502358.69818,2502358.69818 +28749600.0,2181551.205,1790774.094,5229060.354479999,3447778.2087100004,3447778.2087100004,3447778.2087100004,2857531.397,3417872.98816,6585181.809280002,3667923.99099,5589217.51008,2309901.837,2309901.837,2309901.837,2966828.536,2181551.205,2181551.205,3664487.7929399996,2792578.5828,4150943.9675199995,7240018.548,2054786.21648,2613301.93304,2441425.938,2441425.938,2441425.938,2441425.938,6559197.2897,6559197.2897 +28753200.0,1641010.854,957546.0120000001,2796034.3550400003,2075551.68513,2075551.68513,2075551.68513,1758541.6065000002,2669790.84144,4647186.890240001,2408131.40673,3669533.57216,1660928.1659999997,1660928.1659999997,1660928.1659999997,2004710.5015,1641010.854,1641010.854,1350950.4624199998,1883404.61685,2799529.82554,4882900.8585,1385813.76746,1762494.6908300002,1771004.0099999998,1771004.0099999998,1771004.0099999998,1771004.0099999998,4933972.63436,4933972.63436 +28756800.0,1264349.2740000002,948268.302,2768943.44184,1317887.0988800002,1317887.0988800002,1317887.0988800002,1342086.893,2139278.8992,3983533.2307200003,1848482.4655499998,2816735.1856,1170032.1900000002,1170032.1900000002,1170032.1900000002,1563604.49,1264349.2740000002,1264349.2740000002,1328131.80318,1496164.3569,2223928.25396,3878944.629,1100881.42804,1400114.29942,1315996.224,1315996.224,1315996.224,1315996.224,3801476.81716,3801476.81716 +28760400.0,1134216.2280000001,974773.317,2846338.08564,1298060.25261,1298060.25261,1298060.25261,1286091.9224999999,2116180.42024,4021079.729920001,1825752.00738,2782098.2969600004,1172486.037,1172486.037,1172486.037,1543066.2345,1134216.2280000001,1134216.2280000001,1373002.8117,1483549.75305,2205177.6576199997,3846240.1005,1091599.57138,1388309.52199,1296459.633,1296459.633,1296459.633,1296459.633,3410210.12552,3410210.12552 +28764000.0,796191.4379999998,703284.792,2053591.59264,848761.9473300001,848761.9473300001,848761.9473300001,706342.0700000001,1122670.43976,2505668.66752,1065047.33685,1622929.2752,633877.14,633877.14,633877.14,775654.2045,796191.4379999998,796191.4379999998,982953.44225,704282.8824,1046859.98816,1825918.584,518213.08384,659069.66032,825749.256,825749.256,825749.256,825749.256,2393882.2569199996,2393882.2569199996 +28767600.0,140755.98,128604.144,375524.10048,150285.63726000002,150285.63726000002,150285.63726000002,70042.73849999999,244047.50304000004,949660.7782400001,273199.62327000004,416304.18784,221722.902,221722.902,221722.902,139238.6905,140755.98,140755.98,272674.89807999996,106845.58935,158817.39453999998,277007.0835,78617.24846,99986.36633,179731.53,179731.53,179731.53,179731.53,423206.31320000003,423206.31320000003 +28771200.0,145008.44100000002,130832.76600000002,382031.67672000005,148695.81386,148695.81386,148695.81386,50179.1395,266425.25008,958433.2134400001,298028.76957,454139.07743999996,221416.005,221416.005,221416.005,136922.9435,145008.44100000002,145008.44100000002,274802.03880999994,101829.879,151361.9436,264003.39,74926.6764,95292.6522,186161.325,186161.325,186161.325,186161.325,435992.04594000004,435992.04594000004 +28774800.0,164906.66999999998,160783.04700000002,469486.49724,147626.3888,147626.3888,147626.3888,61824.56,342058.2024,980761.09504,335657.5173,511478.1216,227255.424,227255.424,227255.424,137929.90399999998,164906.66999999998,164906.66999999998,314069.45986,118307.47814999998,175854.57245999997,306723.0915,87050.93453999999,110712.43016999999,196185.276,196185.276,196185.276,196185.276,495819.38779999997,495819.38779999997 +28778400.0,204645.108,171417.138,500538.04296,151099.53551000002,151099.53551000002,151099.53551000002,76172.58600000001,420483.49231999996,983307.18912,387009.67641,589729.03072,296022.795,296022.795,296022.795,174721.785,204645.108,204645.108,323831.14322,143926.19055,213934.73261999997,373141.9755,105901.24638,134686.48449,281295.0,281295.0,281295.0,281295.0,615299.6247200001,615299.6247200001 +28782000.0,264768.59699999995,192941.376,563388.81792,161204.25475000002,161204.25475000002,161204.25475000002,88351.228,535805.86136,1002374.4435200001,449069.93585999997,684297.04512,412963.377,412963.377,412963.377,262298.372,264768.59699999995,264768.59699999995,358185.3176199999,167428.0368,248868.34112,434072.688,123193.96288,156679.57024,348008.87100000004,348008.87100000004,348008.87100000004,348008.87100000004,796070.9149799999,796070.9149799999 +28785600.0,322092.369,256843.80000000002,749983.8960000001,179723.45072,179723.45072,179723.45072,91170.982,648398.15304,1068231.99744,531554.23671,809987.4083199999,475271.769,475271.769,475271.769,289412.1195,322092.369,322092.369,393970.97688,197246.19015,293190.63326000003,511379.0115000001,145134.23374000003,184583.47177000003,433333.28400000004,433333.28400000004,433333.28400000004,433333.28400000004,968424.38946,968424.38946 +28789200.0,424978.416,285220.86,832844.9112,206202.05672000002,206202.05672000002,206202.05672000002,99985.06,746386.43848,1244029.01376,642114.0282899999,978459.47168,516561.52800000005,516561.52800000005,516561.52800000005,311149.30350000004,424978.416,424978.416,414651.58631,251510.35005,373849.95242,652063.8705000001,185061.93658,235364.00659,529903.608,529903.608,529903.608,529903.608,1277768.43744,1277768.43744 +28792800.0,512091.38700000005,374908.974,1094734.2040799998,301680.23963,301680.23963,301680.23963,189059.444,867421.7232799999,1544871.57824,763853.78223,1163967.66816,541884.771,541884.771,541884.771,365825.25,512091.38700000005,512091.38700000005,426012.67162999994,322293.48795000004,479063.40678,835575.7095000001,237144.34422000003,301603.04181,585062.964,585062.964,585062.964,585062.964,1539688.10358,1539688.10358 +28796400.0,1221872.667,1224658.743,3576003.52956,1154200.4086799999,1154200.4086799999,1154200.4086799999,1099690.466,1999398.6644,2274403.2678400003,1674246.6442800001,2551232.9817600003,828693.1980000001,828693.1980000001,828693.1980000001,1781450.4540000001,1221872.667,1221872.667,2398883.7482999996,739333.23885,1098959.5303399998,1916789.8784999999,544003.22266,691869.87043,1681248.81,1681248.81,1681248.81,1681248.81,3673763.8187799994,3673763.8187799994 +28800000.0,2270894.856,2039863.002,5956399.96584,2851773.5299899997,2851773.5299899997,2851773.5299899997,2052403.5804999997,3454016.38608,4015752.3052800004,3319702.92402,5058594.93184,1437696.8909999998,1437696.8909999998,1437696.8909999998,2344026.1495,2270894.856,2270894.856,3403403.5374299996,1778991.5384999998,2644328.1633999995,4612200.285,1308986.3665999998,1664784.6742999998,2436927.489,2436927.489,2436927.489,2436927.489,6827823.86704,6827823.86704 +28803600.0,2585251.785,2517503.4899999998,7351110.190799999,3133424.2536300006,3133424.2536300006,3133424.2536300006,2637510.0429999996,4420565.3116,10102210.10304,3454074.7073699995,5263351.93504,2691379.8060000003,2691379.8060000003,2691379.8060000003,2708262.6865000003,2585251.785,2585251.785,2637213.79376,3497512.9846499995,5198772.38706,9067626.2565,2573478.68994,3272981.28687,2343316.452,2343316.452,2343316.452,2343316.452,7772990.3669,7772990.3669 +28807200.0,1703751.33,1421440.095,4150605.0774,1948572.5609900001,1948572.5609900001,1948572.5609900001,2619348.368,3363906.7687199996,6264693.2505600015,3291134.44968,5015062.01856,2495497.734,2495497.734,2495497.734,2804351.8755,1703751.33,1703751.33,1736266.7533899997,3264236.172,4852025.124799999,8462834.52,2401833.0352,3054680.2695999998,1794710.685,1794710.685,1794710.685,1794710.685,5122612.3322,5122612.3322 +28810800.0,1175297.6400000001,959620.713,2802092.48196,1585409.57861,1585409.57861,1585409.57861,2300759.3664999995,3166419.5183199993,6394444.844800001,2533797.49665,3861024.7568,1041665.133,1041665.133,1041665.133,2149975.086,1175297.6400000001,1175297.6400000001,971834.2806899999,2312005.7367000002,3436610.99628,5994088.947000001,1701179.5297200002,2163580.67706,1402607.6460000002,1402607.6460000002,1402607.6460000002,1402607.6460000002,3533728.2375999996,3533728.2375999996 +28814400.0,975937.86,810645.963,2367086.21196,1160569.6452900001,1160569.6452900001,1160569.6452900001,1437734.0915,2538071.53944,3064152.19968,1810206.16455,2758409.3936,947810.9310000001,947810.9310000001,947810.9310000001,1415901.1615,975937.86,975937.86,810701.7722699998,1341874.674,1994589.0215999999,3478934.3400000003,987354.6984,1255729.6332,1024573.548,1024573.548,1024573.548,1024573.548,2934319.8323999997,2934319.8323999997 +28818000.0,668336.346,521453.046,1522642.89432,512446.32109000004,512446.32109000004,512446.32109000004,708722.1540000001,1530094.64672,1847641.2409599999,1113798.82593,1697217.25856,599638.248,599638.248,599638.248,835083.3855,668336.346,668336.346,538088.5239599999,745792.0532999999,1108560.0397199998,1933534.9529999997,548755.63428,697914.0449399999,689866.755,689866.755,689866.755,689866.755,2009464.6136399999,2009464.6136399999 +28821600.0,522168.91799999995,401290.78500000003,1171769.0922,306408.61911,306408.61911,306408.61911,521790.33199999994,1016058.0335999998,1429509.8611200002,803941.39119,1225053.5484799999,473700.399,473700.399,473700.399,620303.887,522168.91799999995,522168.91799999995,380125.40630999993,539757.3996,802306.0606399999,1399371.036,397154.82736,505106.30728,525247.719,525247.719,525247.719,525247.719,1569987.8801199999,1569987.8801199999 +28825200.0,988156.9650000001,872872.0229999998,2548786.3071599994,1042977.57729,1042977.57729,1042977.57729,1063703.0844999999,1924731.6364,3409495.6940800003,1594430.85081,2429608.9155200003,974984.4509999999,974984.4509999999,974984.4509999999,1278205.6315,988156.9650000001,988156.9650000001,1094903.8978799998,1245520.9538999998,1851366.9487599998,3229128.399,916457.39324,1165561.58402,1084663.596,1084663.596,1084663.596,1084663.596,2971058.6081000003,2971058.6081000003 +28828800.0,1152522.75,1041332.7000000001,3040691.484,1307274.65935,1307274.65935,1307274.65935,1257961.1275,2286380.9072000002,4137639.8464,1922150.70264,2928991.5468800003,1175650.0529999998,1175650.0529999998,1175650.0529999998,1519371.994,1152522.75,1152522.75,1446186.3412099998,1490134.6764,2214965.61776,3863312.1240000003,1096444.77424,1394471.70952,1297197.741,1297197.741,1297197.741,1297197.741,3465251.735,3465251.735 +28832400.0,1196800.4309999999,1079759.046,3152896.41432,1390326.92876,1390326.92876,1390326.92876,1327495.3335,2392085.38024,4306092.88448,2018827.49481,3076308.5635200003,1251592.341,1251592.341,1251592.341,1586493.2440000002,1196800.4309999999,1196800.4309999999,1510434.1653699998,1552264.7058,2307316.92072,4024389.978,1142160.20328,1452613.1444400002,1358214.567,1358214.567,1358214.567,1358214.567,3598379.9625399993,3598379.9625399993 +28836000.0,1243987.701,1116596.469,3260461.68948,1490053.2270799999,1490053.2270799999,1490053.2270799999,1419869.9409999999,2506390.84176,4465553.01504,2109175.2288599997,3213981.30112,1302995.412,1302995.412,1302995.412,1656925.5920000002,1243987.701,1243987.701,1557793.59372,1618219.64835,2405353.65014,4195384.2735,1190690.01286,1514333.9425300001,1419455.742,1419455.742,1419455.742,1419455.742,3740256.3543399996,3740256.3543399996 +28839600.0,1254808.3110000002,1126521.555,3289442.9406,1503197.7112900002,1503197.7112900002,1503197.7112900002,1432667.2780000002,2530572.3370399997,4506537.235200001,2128545.3207900003,3243497.63168,1314946.284,1314946.284,1314946.284,1671555.6935,1254808.3110000002,1254808.3110000002,1570940.2809099997,1632104.7615,2425992.7566,4231382.715,1200906.7134,1527327.6657,1432112.9100000001,1432112.9100000001,1432112.9100000001,1432112.9100000001,3772790.32174,3772790.32174 +28843200.0,1266484.2449999999,1139864.04,3328402.9968,1503616.9864100001,1503616.9864100001,1503616.9864100001,1434955.7705,2555537.3676,4563696.84928,2147569.38669,3272486.6844800003,1330343.613,1330343.613,1330343.613,1688163.624,1266484.2449999999,1266484.2449999999,1587769.4944799999,1647511.86465,2448894.17906,4271327.0565,1212243.29794,1541745.67087,1446861.0089999998,1446861.0089999998,1446861.0089999998,1446861.0089999998,3807895.9632999995,3807895.9632999995 +28846800.0,1196976.1979999999,1013276.4809999999,2958767.32452,1248363.41586,1248363.41586,1248363.41586,1085409.4929999998,2116775.08992,3290573.4643200003,1766423.9775,2691693.68,1044123.1950000001,1044123.1950000001,1044123.1950000001,1328978.3465000002,1196976.1979999999,1196976.1979999999,1511629.26278,1299366.4815,1931404.0046,3368727.9150000005,956077.0654000001,1215950.3617000002,1248400.851,1248400.851,1248400.851,1248400.851,3598908.4353199997,3598908.4353199997 +28850400.0,547097.5889999999,395886.345,1155988.1273999999,670286.8185200001,670286.8185200001,670286.8185200001,449341.98749999993,1058860.5032,1398848.2368,847246.56261,1291042.38112,494692.404,494692.404,494692.404,586979.8725,547097.5889999999,547097.5889999999,885744.5110799999,296808.5997,441182.16548,769503.7770000001,218392.50052000003,277754.22046000004,689542.371,689542.371,689542.371,689542.371,1644940.0842599997,1644940.0842599997 +28854000.0,201021.65399999998,167751.45299999998,489834.24276,211145.80025000003,211145.80025000003,211145.80025000003,81649.6555,458141.28400000004,1086283.8105600001,388800.82878000004,592458.4057600001,302179.647,302179.647,302179.647,161527.1595,201021.65399999998,201021.65399999998,307298.4180499999,125776.79999999999,186957.12,326088.0,92546.88,117702.24,216832.56,216832.56,216832.56,216832.56,604405.1063599999,604405.1063599999 +28857600.0,211843.623,216096.04200000002,631000.44264,189307.0553,189307.0553,189307.0553,74083.0195,473225.20392,1118910.68928,391243.48053,596180.54176,297664.119,297664.119,297664.119,153501.6,211843.623,211843.623,309449.08449,137738.83544999998,204737.72577999998,357100.6845,101348.57522,128896.34231,234116.42699999997,234116.42699999997,234116.42699999997,234116.42699999997,636943.15982,636943.15982 +28861200.0,234837.219,223124.15400000004,651522.52968,196641.61858,196641.61858,196641.61858,90102.16600000001,472213.21368,1133881.60192,431671.38714,657784.97088,383345.385,383345.385,383345.385,154341.642,234837.219,234837.219,352499.55130000005,151811.36234999998,225655.40773999997,393585.01349999994,111703.17525999999,142065.44772999999,308776.608,308776.608,308776.608,308776.608,706077.23846,706077.23846 +28864800.0,286200.882,261114.09,762453.1427999999,204893.51916,204893.51916,204893.51916,96779.501,593601.38632,1188268.1216000002,497142.73266,757550.83072,471635.0669999999,471635.0669999999,471635.0669999999,278523.595,286200.882,286200.882,392063.23467999994,195717.59055,290918.49262,507415.9755,144009.48638,183153.00449,395466.498,395466.498,395466.498,395466.498,860510.6518799999,860510.6518799999 +28868400.0,362320.011,286324.593,836067.8115600001,208676.19751000003,208676.19751000003,208676.19751000003,97137.334,735266.94416,1264146.97152,588798.07329,897216.11168,524014.65,524014.65,524014.65,314350.673,362320.011,362320.011,414888.29122,229046.56335,340459.33613999997,593824.4235,168533.02686,214342.33953,479802.69299999997,479802.69299999997,479802.69299999997,479802.69299999997,1089375.4997399999,1089375.4997399999 +28872000.0,458337.48,324073.686,946295.16312,217675.97687000004,217675.97687000004,217675.97687000004,103763.17,802524.9043200001,1497363.4489600002,683380.9059,1041342.3328000001,546579.8309999999,546579.8309999999,546579.8309999999,352012.8675,458337.48,458337.48,440966.28342,300584.3499,446794.51515999995,779292.759,221170.70683999997,281287.57681999996,555842.595,555842.595,555842.595,555842.595,1378068.0232,1378068.0232 +28875600.0,547774.797,402303.27,1174725.5484,241703.25443,241703.25443,241703.25443,126783.41199999998,956412.3499200001,1781424.2336000002,816351.18264,1243963.70688,595620.813,595620.813,595620.813,432179.132,547774.797,547774.797,464333.2441799999,344329.7202,511818.4976799999,892706.6819999999,253358.65832,322224.60235999996,632374.005,632374.005,632374.005,632374.005,1646976.2229799998,1646976.2229799998 +28879200.0,596846.583,449879.592,1313648.40864,374659.36893,374659.36893,374659.36893,207770.703,1122516.8535999998,1886991.7529600002,918099.1560300001,1399008.2377600002,624598.044,624598.044,624598.044,474366.3295,596846.583,596846.583,495410.4088699999,377975.34225000005,561830.0149000001,979936.0725000001,278115.1901,353710.25855,652755.447,652755.447,652755.447,652755.447,1794518.72622,1794518.72622 +28882800.0,1314682.62,1275557.973,3724629.28116,1217794.9319799999,1217794.9319799999,1217794.9319799999,1112726.8214999998,2188989.03176,2534816.96,1838504.3858999999,2801530.4928,946789.023,946789.023,946789.023,1848291.6865,1314682.62,1314682.62,2607705.8098,803182.25025,1193865.9621,2082324.3525,590983.4829000001,751619.93295,1778609.151,1778609.151,1778609.151,1778609.151,3952812.4108,3952812.4108 +28886400.0,2397545.874,2117221.668,6182287.27056,2994591.7958000004,2994591.7958000004,2994591.7958000004,2158215.6679999996,3608930.64384,4277436.172160001,3501000.8042100007,5334858.368320001,1554854.043,1554854.043,1554854.043,2477150.4975,2397545.874,2397545.874,3790585.1367799994,1887597.16065,2805761.70546,4893770.4165,1388898.65154,1766418.08367,2552463.537,2552463.537,2552463.537,2552463.537,7208621.261159999,7208621.261159999 +28890000.0,2762223.159,2764212.1229999997,8071499.39916,3352675.2513099997,3352675.2513099997,3352675.2513099997,2748250.4525,4725792.28672,10452097.04192,3791260.51878,5777158.88576,2848524.024,2848524.024,2848524.024,2935622.095,2762223.159,2762223.159,2836512.54588,3720283.9474500003,5529903.54658,9645180.604500001,2737394.11442,3481450.9039100003,2536205.985,2536205.985,2536205.985,2536205.985,8305084.298059999,8305084.298059999 +28893600.0,2087393.493,1881173.079,5493025.390679999,2594091.62243,2594091.62243,2594091.62243,3160629.4055,3973186.8263999997,8022653.328000001,3852107.99421,5869878.84832,2898497.9189999998,2898497.9189999998,2898497.9189999998,3320534.6405,2087393.493,2087393.493,2243851.7676899997,3849605.2547999998,5722129.29232,9980458.068,2832549.05168,3602470.10264,2211401.04,2211401.04,2211401.04,2211401.04,6276096.43562,6276096.43562 +28897200.0,1573008.045,1351847.754,3947395.44168,2269004.54011,2269004.54011,2269004.54011,2839577.356,3906978.6763199996,8117288.340480001,3315484.06875,5052166.2,1493465.385,1493465.385,1493465.385,2632410.1895000003,1573008.045,1573008.045,1714695.3896799998,3147435.7839,4678410.72076,8160018.699,2315891.02124,2945378.17802,1919169.5219999999,1919169.5219999999,1919169.5219999999,1919169.5219999999,4729510.8553,4729510.8553 +28900800.0,1289604.8699999999,1090801.602,3185140.67784,1741850.9850500003,1741850.9850500003,1741850.9850500003,2004658.2465,3371721.1092,5211142.61632,2441634.40227,3720585.75584,1307433.429,1307433.429,1307433.429,2105756.863,1289604.8699999999,1289604.8699999999,1324724.1731099999,1869286.41,2778544.244,4846298.100000001,1375425.556,1749282.838,1415856.309,1415856.309,1415856.309,1415856.309,3877411.9757999997,3877411.9757999997 +28904400.0,1013004.9840000002,872875.926,2548797.7039199998,1033691.8397300001,1033691.8397300001,1033691.8397300001,1270201.7089999998,2397882.54384,3155539.3580800006,1826859.89346,2783786.50432,974224.809,974224.809,974224.809,1290697.2504999998,1013004.9840000002,1013004.9840000002,1016677.5162699999,1249700.6065500001,1857579.66702,3239964.5355,919532.7919800001,1169472.91329,1108608.426,1108608.426,1108608.426,1108608.426,3045768.31856,3045768.31856 +28908000.0,898613.235,764821.1429999999,2233277.73756,853931.177,853931.177,853931.177,957273.492,1852233.6778400003,2976739.67936,1500921.3601199999,2287118.2630399996,881643.5969999998,881643.5969999998,881643.5969999998,1192434.194,898613.235,898613.235,928321.5199699999,1096795.7360999999,1630298.8472399998,2843544.5009999997,807025.01076,1026384.15798,979041.5969999998,979041.5969999998,979041.5969999998,979041.5969999998,2701830.4598999997,2701830.4598999997 +28911600.0,1153202.94,1033696.4279999998,3018393.5697599994,1294492.42549,1294492.42549,1294492.42549,1253867.6885,2290809.99824,4101715.0982399997,1941506.32872,2958485.83424,1177625.559,1177625.559,1177625.559,1514500.2810000002,1153202.94,1153202.94,1442951.74608,1476853.4182499999,2195224.0933,3828879.2325,1086672.3917,1382043.0753499998,1315137.33,1315137.33,1315137.33,1315137.33,3467296.8395999996,3467296.8395999996 +28915200.0,1211582.838,1093834.941,3193998.02772,1391910.4884300001,1391910.4884300001,1391910.4884300001,1321568.8885,2408568.12032,4354319.22432,2047333.39167,3119746.1206400003,1247953.8329999999,1247953.8329999999,1247953.8329999999,1587903.5515,1211582.838,1211582.838,1550029.8737299999,1566109.6146,2327896.26664,4060284.186,1152347.32136,1465569.24428,1379539.701,1379539.701,1379539.701,1379539.701,3642825.73292,3642825.73292 +28918800.0,1278135.141,1154087.2920000001,3369934.89264,1486172.39254,1486172.39254,1486172.39254,1416879.1069999998,2563437.73128,4620941.240320001,2165653.04676,3300042.7379199998,1329249.1230000001,1329249.1230000001,1329249.1230000001,1687986.4330000002,1278135.141,1278135.141,1624012.2095599999,1660265.63055,2467851.6286199996,4304392.3755,1221627.55038,1553680.67649,1457709.762,1457709.762,1457709.762,1457709.762,3842926.32394,3842926.32394 +28922400.0,1317367.128,1183184.484,3454898.69328,1575871.8185100001,1575871.8185100001,1575871.8185100001,1500280.838,2659083.8964,4745381.17504,2241802.08777,3416079.37184,1370573.2289999998,1370573.2289999998,1370573.2289999998,1743131.8905,1317367.128,1317367.128,1661608.04017,1714819.4505,2548941.5042,4445828.205,1261768.3858,1604732.2759,1501562.28,1501562.28,1501562.28,1501562.28,3960883.8315199995,3960883.8315199995 +28926000.0,1291519.5420000001,1157423.115,3379675.4958,1547302.5064200002,1547302.5064200002,1547302.5064200002,1471266.23,2596866.20664,4625807.2768,2195834.84253,3346034.04576,1335365.004,1335365.004,1335365.004,1699922.4340000001,1291519.5420000001,1291519.5420000001,1630900.7259999998,1676104.8281999999,2491395.3248799997,4345456.962,1233282.07112,1568503.03676,1468970.8499999999,1468970.8499999999,1468970.8499999999,1468970.8499999999,3883168.75628,3883168.75628 +28929600.0,1279913.943,1148197.497,3352736.69124,1521323.54583,1521323.54583,1521323.54583,1447158.3595000003,2567490.884,4581811.842560001,2173438.10355,3311905.6816000002,1321266.234,1321266.234,1321266.234,1680263.9910000002,1279913.943,1279913.943,1619475.6388199998,1658063.59695,2464578.48238,4298683.3995,1220007.28862,1551620.00801,1455073.665,1455073.665,1455073.665,1455073.665,3848274.5886199996,3848274.5886199996 +28933200.0,1219127.0129999998,1015794.4439999999,2966119.77648,1281669.55675,1281669.55675,1281669.55675,1089755.4465,2120553.4180799997,3285444.5235200003,1782537.36948,2716247.42016,1034037.3029999998,1034037.3029999998,1034037.3029999998,1317088.36,1219127.0129999998,1219127.0129999998,1536853.2539099997,1301649.3206999998,1934797.2618799997,3374646.3869999996,957756.7841199999,1218086.64826,1251293.871,1251293.871,1251293.871,1251293.871,3665508.5524199996,3665508.5524199996 +28936800.0,562116.4199999999,404104.95300000004,1179986.46276,711518.9099700002,711518.9099700002,711518.9099700002,458211.642,1089387.0708799998,1421376.5388800001,874019.88051,1331839.81792,506351.77800000005,506351.77800000005,506351.77800000005,593404.7035000001,562116.4199999999,562116.4199999999,908272.19418,303582.22469999996,451250.6154799999,787065.0269999999,223376.55052,284092.99546,704395.398,704395.398,704395.398,704395.398,1690096.7027999999,1690096.7027999999 +28940400.0,211458.05099999998,187053.87,546197.3004,224459.09178000002,224459.09178000002,224459.09178000002,85567.741,484408.14983999997,1124518.51328,408685.38333,622758.6793600001,313596.711,313596.711,313596.711,165741.36949999997,211458.05099999998,211458.05099999998,317213.78091,130477.45274999997,193944.26309999995,338274.87749999994,96005.63189999998,122101.12244999998,226514.685,226514.685,226514.685,226514.685,635783.8733399999,635783.8733399999 +28944000.0,228831.171,233144.577,680782.16484,208245.16823,208245.16823,208245.16823,81803.701,509425.68784,1189104.9568,421021.64769,641556.79648,316794.846,316794.846,316794.846,160897.29599999997,228831.171,228831.171,330457.77439999994,148055.99985000002,220073.36274,383848.88850000006,108939.97026000002,138551.17023000002,260107.419,260107.419,260107.419,260107.419,688019.05414,688019.05414 +28947600.0,259729.227,248164.83899999998,724641.32988,219042.09679,219042.09679,219042.09679,97704.761,522237.71928,1211339.5424000002,474492.1482,723035.6544,427606.37400000007,427606.37400000007,427606.37400000007,168453.72249999997,259729.227,259729.227,379485.26746,171591.2424,255056.61215999996,444866.184,126257.25984,160575.50832,351304.341,351304.341,351304.341,351304.341,780919.20918,780919.20918 +28951200.0,323148.36899999995,286781.235,837401.2061999999,224795.49763000003,224795.49763000003,224795.49763000003,104090.7945,678508.70832,1262365.30624,550541.06331,838919.7155200001,513102.114,513102.114,513102.114,316257.564,323148.36899999995,323148.36899999995,417159.47221000004,211873.22280000002,314932.54352,549300.9480000001,155896.84048,198271.48504000003,445471.665,445471.665,445471.665,445471.665,971599.4294599999,971599.4294599999 +28954800.0,413068.28099999996,309155.526,902734.13592,227605.24655,227605.24655,227605.24655,102934.64300000001,788714.8869599999,1387307.4944,650028.6546599999,990519.8547199998,551514.0869999999,551514.0869999999,551514.0869999999,333660.481,413068.28099999996,413068.28099999996,443084.64589999994,268742.47229999996,399464.11931999994,696739.743,197741.37467999998,251489.86914,523219.335,523219.335,523219.335,523219.335,1241958.63154,1241958.63154 +28958400.0,513171.063,352196.256,1028413.0675199999,236802.37614000004,236802.37614000004,236802.37614000004,114924.418,899141.8935199999,1702830.5408,766310.9674499999,1167711.9504,583651.743,583651.743,583651.743,407830.395,513171.063,513171.063,466138.80274,336211.03349999996,499750.7213999999,871658.2349999999,247384.90859999997,314627.11529999995,615091.572,615091.572,615091.572,615091.572,1542934.32942,1542934.32942 +28962000.0,599881.2180000001,457702.0800000001,1336490.0736,271344.64522,271344.64522,271344.64522,138970.4575,1076076.22168,1914730.86784,898296.5762400001,1368832.8780800002,634195.26,634195.26,634195.26,469556.56299999997,599881.2180000001,599881.2180000001,501574.61146,369739.50930000003,549588.11012,958583.9130000001,272055.24388,346003.14574,674225.049,674225.049,674225.049,674225.049,1803642.8621200002,1803642.8621200002 +28965600.0,777891.6059999999,520702.341,1520450.83572,454464.34,454464.34,454464.34,217495.87649999998,1646003.33424,2099888.84032,1217827.80063,1855737.60096,701752.203,701752.203,701752.203,641436.5545,777891.6059999999,777891.6059999999,763946.2730899998,442662.2257499999,657981.8762999999,1147642.8074999999,325711.95869999996,414244.40384999994,787620.885,787620.885,787620.885,787620.885,2338860.76204,2338860.76204 +28969200.0,1460800.785,851282.0279999999,2485743.52176,1980501.7272700001,1980501.7272700001,1980501.7272700001,1674748.7540000002,3834932.98488,4921276.64448,3461088.18615,5274039.1408,1632326.0549999997,1632326.0549999997,1632326.0549999997,2404439.506,1460800.785,1460800.785,3112801.288349999,2044592.4015000002,3039122.5326,5300795.115,1504416.1374000001,1913334.6177000003,1813447.623,1813447.623,1813447.623,1813447.623,4392141.0269,4392141.0269 +28972800.0,1398269.889,1371005.019,4003334.65548,2633944.3868100005,2633944.3868100005,2633944.3868100005,2440571.315,4849136.824320001,4085074.0294400007,3797677.4490900002,5786937.065280001,1540485.1709999999,1540485.1709999999,1540485.1709999999,2373420.9450000003,1398269.889,1398269.889,2547005.1345699998,2466265.1012999997,3665905.16292,6394020.633,1814683.95108,2307936.97134,1884084.336,1884084.336,1884084.336,1884084.336,4204131.46626,4204131.46626 +28976400.0,2274231.105,2421784.218,7071609.91656,2193808.97428,2193808.97428,2193808.97428,3054571.821,5044377.7829599995,7944321.83232,4179115.7349900003,6368176.358080001,2155090.863,2155090.863,2155090.863,1932915.4529999997,2274231.105,2274231.105,3460337.07357,2519164.2411,3744535.48924,6531166.551000001,1853607.2687600001,2357440.1169800004,2547511.35,2547511.35,2547511.35,2547511.35,6837854.8557,6837854.8557 +28980000.0,1712949.597,1335566.511,3899854.21212,866948.68128,866948.68128,866948.68128,1359922.9665,2568949.7101600002,8103868.5459199995,1805250.75843,2750858.29856,1639669.2089999998,1639669.2089999998,1639669.2089999998,1682242.226,1712949.597,1712949.597,2934149.0235199993,2465745.2554499996,3665132.453779999,6392672.8845,1814301.4472199997,2307450.4983099997,1171238.28,1171238.28,1171238.28,1171238.28,5150268.45498,5150268.45498 +28983600.0,766087.686,764491.3679999999,2232314.79456,357759.52421,357759.52421,357759.52421,532671.6745,1557436.0725599998,4935455.047040001,928510.3804200001,1414872.96064,601231.311,601231.311,601231.311,615778.814,766087.686,766087.686,949721.2099699999,1399231.5394499998,2079845.3993799996,3627637.3244999996,1029558.0216199999,1309404.3295099998,581742.294,581742.294,581742.294,581742.294,2303370.30924,2303370.30924 +28987200.0,915856.557,1302334.014,3802815.32088,737823.17345,737823.17345,737823.17345,1047405.401,1960883.24536,3283389.66144,1485467.47566,2263569.48672,786497.3220000002,786497.3220000002,786497.3220000002,1148708.4945,915856.557,915856.557,1076075.10959,955149.3189000001,1419752.81476,2476313.049,702801.22724,893831.09102,881500.2509999999,881500.2509999999,881500.2509999999,881500.2509999999,2753675.38138,2753675.38138 +28990800.0,743190.909,869092.206,2537749.24152,571156.97463,571156.97463,571156.97463,988254.5750000001,1454411.71568,2312255.1795200002,1087709.26698,1657461.74016,646369.4310000001,646369.4310000001,646369.4310000001,874488.888,743190.909,743190.909,842038.2344399999,771239.9893499999,1146386.3545399997,1999511.0834999997,567480.28846,721728.2863299999,673537.2239999999,673537.2239999999,673537.2239999999,673537.2239999999,2234527.33306,2234527.33306 +28994400.0,629214.882,540603.039,1578560.87388,339846.70126000006,339846.70126000006,339846.70126000006,654710.7175,1287360.65312,2075565.2512000003,937364.73642,1428365.31264,573934.77,573934.77,573934.77,506691.108,629214.882,629214.882,752077.9780799999,671583.00015,998254.2372599998,1741141.1114999999,494152.42974,628469.0297699999,596867.7930000001,596867.7930000001,596867.7930000001,596867.7930000001,1891839.4118799998,1891839.4118799998 +28998000.0,1076181.2370000002,1379613.744,4028472.13248,1587619.7717600001,1587619.7717600001,1587619.7717600001,1518013.7489999998,2412574.40704,3215852.9100800003,1883835.24966,2870606.09472,950144.3910000001,950144.3910000001,950144.3910000001,1490798.9145,1076181.2370000002,1076181.2370000002,1688571.2407199997,1434576.6549,2132383.07716,3719272.809,1055565.0448399999,1342480.37582,1176763.305,1176763.305,1176763.305,1176763.305,3235718.25258,3235718.25258 +29001600.0,1061535.8250000002,1442350.383,4211663.11836,1833585.1993800004,1833585.1993800004,1833585.1993800004,1303729.539,2732524.7346400004,3566769.24928,2069447.5563299998,3153443.89536,1123648.872,1123648.872,1123648.872,1743715.3020000001,1061535.8250000002,1061535.8250000002,1815594.11995,1498819.6827,2227875.18268,3885828.807,1102835.22332,1402599.15986,1272005.637,1272005.637,1272005.637,1272005.637,3191684.3805,3191684.3805 +29005200.0,981294.504,1422082.746,4152481.61832,1222345.79434,1222345.79434,1222345.79434,1152159.7605,2559135.82376,3573648.72768,1743072.70977,2656110.7958400003,987140.4720000001,987140.4720000001,987140.4720000001,1418493.9265,981294.504,981294.504,1504969.2550099997,1303661.4619500001,1937788.1483800001,3379863.0495000007,959237.3226200001,1219969.61501,1219702.488,1219702.488,1219702.488,1219702.488,2950425.47536,2950425.47536 +29008800.0,2278595.3189999997,1878767.4899999998,5486001.0708,3592785.7967100004,3592785.7967100004,3592785.7967100004,2961678.895,3727868.1480799997,7007593.38112,3823799.5332599995,5826742.145919999,2391472.806,2391472.806,2391472.806,3060046.3985,2278595.3189999997,2278595.3189999997,4063803.3243599995,2969494.5788999996,4413915.398759999,7698689.648999999,2184961.44324,2778860.35902,2560298.034,2560298.034,2560298.034,2560298.034,6850976.592459999,6850976.592459999 +29012400.0,1743526.4820000003,1006417.8360000001,2938740.08112,2401387.5864000004,2401387.5864000004,2401387.5864000004,1828159.4345,2799845.48648,4982702.698240001,2638298.8694999996,4020264.9439999997,1747856.145,1747856.145,1747856.145,2287880.0455,1743526.4820000003,1743526.4820000003,1580624.6194699998,2082358.6757999999,3095259.06872,5398707.678,1532204.65528,1948676.39044,1931066.1030000001,1931066.1030000001,1931066.1030000001,1931066.1030000001,5242202.95588,5242202.95588 +29016000.0,1293022.599,949706.793,2773143.8355599996,1429954.3046799998,1429954.3046799998,1429954.3046799998,1463126.5809999998,2147942.6501599997,4051391.35552,1901414.87025,2897394.088,1183648.662,1183648.662,1183648.662,1562105.027,1293022.599,1293022.599,1386904.31295,1527153.3368999998,2269990.8859599996,3959286.429,1123683.19604,1429113.86342,1333031.868,1333031.868,1333031.868,1333031.868,3887687.9476599996,3887687.9476599996 +29019600.0,1129183.1760000002,963321.321,2812898.25732,1305065.4307900001,1305065.4307900001,1305065.4307900001,1281427.322,2067016.8708,3899792.68864,1823361.5003099998,2778455.6195199997,1117096.011,1117096.011,1117096.011,1489396.4785000002,1129183.1760000002,1129183.1760000002,1419112.5395199999,1461627.8887499997,2172592.5654999996,3789405.6374999997,1075469.4094999998,1367794.9872499998,1274715.138,1274715.138,1274715.138,1274715.138,3395077.4158400004,3395077.4158400004 +29023200.0,800125.4580000001,685578.7289999999,2001889.8886799999,872494.7237600001,872494.7237600001,872494.7237600001,695540.909,1087446.9703199998,2409564.26752,1054664.72055,1607108.1456,601007.163,601007.163,601007.163,744070.5684999999,800125.4580000001,800125.4580000001,999754.63757,686015.53155,1019707.0370199999,1778558.7855,504771.92198000004,641975.02829,811823.922,811823.922,811823.922,811823.922,2405710.54372,2405710.54372 +29026800.0,138903.03300000002,119999.97899999999,350399.93867999996,165431.01893999998,165431.01893999998,165431.01893999998,69231.5925,226504.82048,849220.30656,281424.26318999997,428836.97248,200922.93,200922.93,200922.93,127852.28749999999,138903.03300000002,138903.03300000002,253179.84782999998,100238.06294999999,148995.83677999998,259876.4595,73755.41421999999,93803.02681,177588.64500000002,177588.64500000002,177588.64500000002,177588.64500000002,417635.11922000005,417635.11922000005 +29030400.0,140634.228,118133.196,344948.93231999996,139595.07408000002,139595.07408000002,139595.07408000002,47768.931,243709.62984,827379.9142400001,284236.55484,433122.36928000004,193807.977,193807.977,193807.977,121492.79449999999,140634.228,140634.228,246366.50687999997,92127.16845,136939.64298,238848.2145,67787.39802000001,86212.83171,176767.356,176767.356,176767.356,176767.356,422840.24552,422840.24552 +29034000.0,152635.896,138555.693,404582.62356,134866.55622,134866.55622,134866.55622,57075.255999999994,283792.80272,823591.2915200001,306161.4318,466531.70560000004,192930.66,192930.66,192930.66,119196.34650000001,152635.896,152635.896,267887.58203999995,99680.47110000001,148167.02124,258430.85100000002,73345.13676000001,93281.23098000001,179302.368,179302.368,179302.368,179302.368,458925.26063999993,458925.26063999993 +29037600.0,187172.424,154936.8,452415.45599999995,135368.31396,135368.31396,135368.31396,63881.1845,359145.91391999996,833860.62976,346356.96228000004,527782.0377600001,199631.208,199631.208,199631.208,122098.91050000003,187172.424,187172.424,281650.18492,120442.67055,179028.36461999998,312258.7755,88622.01438000001,112710.54849,227802.321,227802.321,227802.321,227802.321,562765.0881599999,562765.0881599999 +29041200.0,223528.305,164745.15000000002,481055.838,146959.21405,146959.21405,146959.21405,80301.011,388184.07,838799.39904,381479.18634,581301.61728,289090.809,289090.809,289090.809,191120.405,223528.305,223528.305,298439.22056,142312.4964,211536.10575999998,368958.32399999996,104713.88623999999,133176.38552,290055.633,290055.633,290055.633,290055.633,672075.1037,672075.1037 +29044800.0,276367.446,219936.924,642215.81808,174416.84634,174416.84634,174416.84634,84524.5345,505570.75639999995,894333.01888,447417.45279,681778.97568,377620.086,377620.086,377620.086,247870.36049999995,276367.446,276367.446,334865.69207000005,166227.73020000002,247084.18168,430960.78200000006,122310.77432000001,155556.32036,346655.049,346655.049,346655.049,346655.049,830944.78764,830944.78764 +29048400.0,383444.592,269046.276,785615.12592,208841.19124000001,208841.19124000001,208841.19124000001,100166.913,676482.24,1153322.67136,590798.83317,900264.88864,470076.534,470076.534,470076.534,293252.96699999995,383444.592,383444.592,395520.85507999995,210470.08409999998,312846.89044,545663.181,154864.40756,196958.42438,476393.718,476393.718,476393.718,476393.718,1152890.07328,1152890.07328 +29052000.0,613593.246,324086.865,946333.6457999999,324505.67875,324505.67875,324505.67875,191919.30099999998,1236250.9412,1501677.5865600002,930030.70503,1417189.64576,548929.878,548929.878,548929.878,445334.3545,613593.246,613593.246,618321.3489699999,324598.26195,482489.26838,841551.0495000001,238840.20262000003,303759.85501000006,646791.03,646791.03,646791.03,646791.03,1844870.35964,1844870.35964 +29055600.0,1355895.3630000001,756509.7390000001,2209008.43788,1758386.4304600002,1758386.4304600002,1758386.4304600002,1537961.733,3624774.6280799997,4600532.2752,3206223.87078,4885674.469760001,1373154.0389999999,1373154.0389999999,1373154.0389999999,1993814.1194999996,1355895.3630000001,1355895.3630000001,2794609.95671,1734967.0502999998,2578889.2945199995,4498062.722999999,1276593.03948,1623586.44954,1688594.4809999997,1688594.4809999997,1688594.4809999997,1688594.4809999997,4076725.39142,4076725.39142 +29059200.0,1240875.915,1307887.401,3819031.21092,2338661.38946,2338661.38946,2338661.38946,2083411.2389999998,4534525.86272,3652556.6022400004,3523837.4934,5369657.1328,1442597.736,1442597.736,1442597.736,1982056.6955,1240875.915,1240875.915,2411462.55727,2294341.1595,3410354.0198,5948291.895,1688181.8902,2147050.1221,1722484.6469999999,1722484.6469999999,1722484.6469999999,1722484.6469999999,3730900.2510999995,3730900.2510999995 +29062800.0,2155195.872,2319698.3759999997,6773519.257919999,1831579.49524,1831579.49524,1831579.49524,2541246.6835000003,4681652.1768,7621253.408000001,3868590.65418,5894995.28256,2037464.454,2037464.454,2037464.454,1756621.4294999999,2155195.872,2155195.872,2882101.9230899992,2121281.3223,3153114.45932,5499618.243000001,1560844.03468,1985100.29914,2417819.3310000002,2417819.3310000002,2417819.3310000002,2417819.3310000002,6479955.588479999,6479955.588479999 +29066400.0,1637109.951,1251800.898,3655258.6221600003,842415.33585,842415.33585,842415.33585,1063443.3285,2511115.86896,7540965.416320001,1641917.1938399998,2501969.05728,1584618.822,1584618.822,1584618.822,1636841.3775,1637109.951,1637109.951,2195988.87664,2366716.35645,3517933.94218,6135931.2945,1741435.7388199999,2214779.01011,1149076.5359999998,1149076.5359999998,1149076.5359999998,1149076.5359999998,4922243.919339999,4922243.919339999 +29070000.0,716935.9199999999,662646.879,1934928.88668,310182.70569000003,310182.70569000003,310182.70569000003,497257.0854999999,1345480.36816,3959473.1769600003,817326.68325,1245450.1840000001,543635.9010000001,543635.9010000001,543635.9010000001,543913.0375,716935.9199999999,716935.9199999999,656945.5960599999,1138431.1131,1692186.49404,2951488.071,837660.42396,1065346.6465800002,521652.387,521652.387,521652.387,521652.387,2155587.3328,2155587.3328 +29073600.0,809095.14,1175288.2410000002,3431841.66372,635067.5985500001,635067.5985500001,635067.5985500001,940058.3499999999,1706337.6006399998,2734822.43328,1322226.9465299998,2014822.01376,692292.2640000001,692292.2640000001,692292.2640000001,1058229.5045,809095.14,809095.14,889718.25891,832438.4863499999,1237353.0093399999,2158173.8535,612510.29366,778997.99093,782545.6889999999,782545.6889999999,782545.6889999999,782545.6889999999,2432679.3876,2432679.3876 +29077200.0,607400.079,659627.589,1926112.55988,432623.61296000006,432623.61296000006,432623.61296000006,856230.347,1232845.8124,1818171.07456,877179.7582800001,1336654.8697600001,525956.406,525956.406,525956.406,682640.56,607400.079,607400.079,619580.9629099999,600556.6556999999,892679.2758799999,1556998.7369999997,441891.07011999993,562002.40126,537931.506,537931.506,537931.506,537931.506,1826249.5708599999,1826249.5708599999 +29080800.0,512483.5889999999,425078.87400000007,1241230.31208,203765.33144000004,203765.33144000004,203765.33144000004,475580.77,1076164.9312800001,1588869.97184,736567.8999,1122389.1808,466333.608,466333.608,466333.608,386804.85199999996,512483.5889999999,512483.5889999999,548765.2424799999,501088.9149,744828.46116,1299119.409,368702.46084,468920.24382,467018.895,467018.895,467018.895,467018.895,1540867.3242599997,1540867.3242599997 +29084400.0,1057435.671,1256623.341,3669340.1557199997,1538437.9080400001,1538437.9080400001,1538437.9080400001,1507439.199,2343793.95304,3187178.0825599995,1848479.0942100002,2816730.0483200005,935060.1599999999,935060.1599999999,935060.1599999999,1495408.4565,1057435.671,1057435.671,1574650.8543999998,1427510.3931,2121879.64604,3700952.871,1050365.67196,1335867.75058,1103207.358,1103207.358,1103207.358,1103207.358,3179356.58414,3179356.58414 +29088000.0,1064584.1970000002,1434565.827,4188932.21484,1761023.1107700001,1761023.1107700001,1761023.1107700001,1327034.009,2703001.0292800004,3591141.1020800006,2027116.0935900002,3088938.8092800006,1140325.92,1140325.92,1140325.92,1748265.7325,1064584.1970000002,1064584.1970000002,1788070.64579,1505615.2344,2237976.22496,3903446.904,1107835.40704,1408958.45392,1268001.8820000002,1268001.8820000002,1268001.8820000002,1268001.8820000002,3200849.81898,3200849.81898 +29091600.0,995462.427,1415576.205,4133482.5185999996,1194059.39609,1194059.39609,1194059.39609,1178078.3595000003,2600837.1088,3643231.3433600008,1774420.02318,2703878.13056,1010703.492,1010703.492,1010703.492,1437102.457,995462.427,995462.427,1519541.0778599998,1325160.6520499997,1969744.9692199996,3435601.6904999996,975056.4797799999,1240088.61019,1235407.791,1235407.791,1235407.791,1235407.791,2993023.69718,2993023.69718 +29095200.0,2302028.823,1903534.956,5558322.07152,3604264.3118900005,3604264.3118900005,3604264.3118900005,2993472.0725,3737537.84488,7119768.574720001,3862183.28727,5885231.675840001,2420008.818,2420008.818,2420008.818,3096930.6374999997,2302028.823,2302028.823,4006066.1093699993,2999965.64895,4459208.1991799995,7777688.7195,2207382.13182,2807375.26161,2583849.9809999997,2583849.9809999997,2583849.9809999997,2583849.9809999997,6921433.327819999,6921433.327819999 +29098800.0,1770260.6220000002,1042735.9650000001,3044789.0178,2354391.82957,2354391.82957,2354391.82957,1864202.9385000002,2875064.2543200003,5093545.059200001,2676034.26846,4077766.50432,1791210.792,1791210.792,1791210.792,2325436.1865000003,1770260.6220000002,1770260.6220000002,1618306.3037699999,2101572.7222499996,3123819.2068999996,5448521.8725,1546342.3980999999,1966656.9425499998,1950225.5100000002,1950225.5100000002,1950225.5100000002,1950225.5100000002,5322583.60348,5322583.60348 +29102400.0,1352991.462,1003772.94,2931016.9847999997,1449894.5533600003,1449894.5533600003,1449894.5533600003,1524209.6870000002,2271397.70976,4301241.54688,1996452.9351899999,3042213.9964799997,1251486.501,1251486.501,1251486.501,1653719.858,1352991.462,1352991.462,1445590.0647500001,1608395.9157,2390751.45988,4169915.337,1183461.68612,1505140.86926,1407369.4679999999,1407369.4679999999,1407369.4679999999,1407369.4679999999,4067994.32908,4067994.32908 +29106000.0,1199512.434,1030318.83,3008530.9836,1380059.5886000001,1380059.5886000001,1380059.5886000001,1358469.5284999998,2222036.1084,4195693.39392,1942099.22088,2959389.28896,1207458.594,1207458.594,1207458.594,1608082.6999999997,1199512.434,1199512.434,1504071.11257,1562386.1337,2322361.6110799997,4050630.7169999997,1149607.57492,1462084.8016599999,1361609.3850000002,1361609.3850000002,1361609.3850000002,1361609.3850000002,3606534.05156,3606534.05156 +29109600.0,849571.4580000001,738717.201,2157054.22692,925896.8559500001,925896.8559500001,925896.8559500001,745370.8885,1182371.8895999999,2620173.2691200003,1134097.36944,1728148.37248,655036.611,655036.611,655036.611,809877.4635,849571.4580000001,849571.4580000001,1067581.72703,741803.6052,1102631.53168,1923194.5320000001,545820.9243200001,694181.6453600001,872622.2250000001,872622.2250000001,872622.2250000001,872622.2250000001,2554378.18372,2554378.18372 +29113200.0,156156.111,135405.021,395382.66131999996,183749.65752000004,183749.65752000004,183749.65752000004,73693.8685,260888.01903999998,989182.0083200001,322871.69586,491994.96511999995,231124.42799999999,231124.42799999999,231124.42799999999,145374.299,156156.111,156156.111,287270.77574,114304.4136,169904.33824,296344.776,84105.46976,106966.35248,199378.08599999998,199378.08599999998,199378.08599999998,199378.08599999998,469509.37374,469509.37374 +29116800.0,158294.06699999998,136737.357,399273.08243999997,157892.7196,157892.7196,157892.7196,56733.22549999999,301212.1912,966057.1232,326838.9999,498040.3808,223489.34100000001,223489.34100000001,223489.34100000001,139236.153,158294.06699999998,158294.06699999998,282697.23533999996,106225.46955,157895.63622,275399.36549999996,78160.96278,99406.05669,199067.217,199067.217,199067.217,199067.217,475937.49477999995,475937.49477999995 +29120400.0,203028.33899999998,174778.974,510354.60407999996,164925.37842,164925.37842,164925.37842,68713.2285,443402.95776,1044584.45888,393056.53212000005,598943.2870400001,252097.67399999997,252097.67399999997,252097.67399999997,147086.485,203028.33899999998,203028.33899999998,340157.51457999996,135377.22779999996,201227.38551999995,350977.99799999996,99610.89847999999,126686.34403999998,234985.419,234985.419,234985.419,234985.419,610438.53926,610438.53926 +29124000.0,258130.91400000002,204937.90199999997,598418.67384,177557.29904,177557.29904,177557.29904,94743.705,493453.35208000004,1072624.2752,450862.16049000004,687028.0540800001,362403.65400000004,362403.65400000004,362403.65400000004,217107.8385,258130.91400000002,258130.91400000002,363623.69121,169881.55515,252515.29926,440433.66150000005,124999.26774000001,158975.57877000002,344801.68200000003,344801.68200000003,344801.68200000003,344801.68200000003,776113.61476,776113.61476 +29127600.0,311613.66599999997,262979.00399999996,767898.6916799999,198901.67737000002,198901.67737000002,198901.67737000002,97382.796,621984.1717599999,1094894.9388800003,518487.24648000003,790075.80416,461667.93,461667.93,461667.93,294830.9875,311613.66599999997,311613.66599999997,394337.55179,195532.8417,290643.87828,506936.997,143873.54772,182980.11606,406030.69200000004,406030.69200000004,406030.69200000004,406030.69200000004,936918.4224399999,936918.4224399999 +29131200.0,391350.69899999996,284588.41199999995,830998.1630399999,209721.39386000004,209721.39386000004,209721.39386000004,97226.9515,720519.9980799999,1186189.78048,615613.46049,938077.65408,502342.38899999997,502342.38899999997,502342.38899999997,309504.89849999995,391350.69899999996,391350.69899999996,414888.5798199999,223789.84965,332645.65306,580195.9064999999,164665.12394,209423.09386999998,502797.843,502797.843,502797.843,502797.843,1176661.10166,1176661.10166 +29134800.0,515919.72899999993,336549.86100000003,982725.59412,234311.37741000002,234311.37741000002,234311.37741000002,118965.847,846611.05264,1517714.0428799998,764609.63376,1165119.4419200001,555383.6639999999,555383.6639999999,555383.6639999999,342568.8735,515919.72899999993,515919.72899999993,441326.23496,308389.16160000005,458395.74144,799527.4560000001,226913.50656000004,288591.33888000005,601374.9929999999,601374.9929999999,601374.9929999999,601374.9929999999,1551198.6518599999,1551198.6518599999 +29138400.0,702703.119,463509.89100000006,1353448.8817200002,377210.26992000005,377210.26992000005,377210.26992000005,207452.427,1455439.41552,1838745.8073600002,1081723.98894,1648341.31648,611385.765,611385.765,611385.765,573457.2585,702703.119,702703.119,673324.6321099999,398553.14519999997,592417.2676799999,1033285.9319999999,293256.38831999997,372967.01736,729073.467,729073.467,729073.467,729073.467,2112794.04446,2112794.04446 +29142000.0,1402601.415,814546.932,2378477.0414400003,1894519.8800000001,1894519.8800000001,1894519.8800000001,1594834.0659999999,3758915.46856,4821429.70944,3356907.1823699996,5115287.13504,1514154.5459999999,1514154.5459999999,1514154.5459999999,2289298.7285,1402601.415,1402601.415,2977431.0725899995,1870791.4952999998,2780781.43252,4850200.173,1376533.00148,1750691.30054,1747991.247,1747991.247,1747991.247,1747991.247,4217154.9211,4217154.9211 +29145600.0,1373915.4,1381430.9880000001,4033778.4849600005,2568596.51972,2568596.51972,2568596.51972,2315265.3754999996,4826775.96072,4050769.8137600003,3735126.67899,5691621.606079999,1548767.43,1548767.43,1548767.43,2227893.395,1373915.4,1373915.4,2544487.3881699997,2443863.0568500003,3632606.3215400004,6335941.2585,1798200.4714600001,2286973.08283,1877740.1070000003,1877740.1070000003,1877740.1070000003,1877740.1070000003,4130905.6359999995,4130905.6359999995 +29149200.0,2269484.685,2410593.7589999996,7038933.776279999,2011149.29532,2011149.29532,2011149.29532,2908269.021,4989714.46608,7945452.481920001,4121587.36311,6280514.07712,2162577.3959999997,2162577.3959999997,2162577.3959999997,1908853.366,2269484.685,2269484.685,3226736.59048,2396676.1464,3562466.76576,6213604.824,1763480.22624,2242815.4555200003,2532829.788,2532829.788,2532829.788,2532829.788,6823583.9529,6823583.9529 +29152800.0,1680931.419,1248508.365,3645644.4258,801363.19538,801363.19538,801363.19538,1159474.1164999998,2512545.974,7736198.85632,1683235.59789,2564930.43488,1623875.9730000002,1623875.9730000002,1623875.9730000002,1648198.1320000002,1680931.419,1680931.419,2104815.44689,2367478.1493,3519066.2861200003,6137906.313000001,1741996.2678800002,2215491.8977400004,1130666.28,1130666.28,1130666.28,1130666.28,5054000.46646,5054000.46646 +29156400.0,810849.9450000001,733179.885,2140885.2642,369650.83100000006,369650.83100000006,369650.83100000006,587715.5935000001,1552127.1212799998,4774578.0032,985872.7548600001,1502282.29312,652925.196,652925.196,652925.196,658065.394,810849.9450000001,810849.9450000001,743498.4869,1385518.99275,2059462.7991,3592086.2775000003,1019468.2959,1296572.09445,625434.978,625434.978,625434.978,625434.978,2437955.5013,2437955.5013 +29160000.0,897221.751,1245609.6779999998,3637180.25976,695317.50167,695317.50167,695317.50167,1031779.133,1882318.5955199997,3012891.5584,1438658.58843,2192241.65856,772657.7039999999,772657.7039999999,772657.7039999999,1131262.3665,897221.751,897221.751,966303.4011799998,923235.4525499999,1372315.4134199999,2393573.3954999996,679318.9255799999,863966.0160899999,864108.36,864108.36,864108.36,864108.36,2697646.73134,2697646.73134 +29163600.0,621643.992,703733.814,2054902.7368800002,423345.43746,423345.43746,423345.43746,863466.072,1252381.3132,1823792.05248,884951.9769300001,1348498.25056,535820.4569999999,535820.4569999999,535820.4569999999,771836.8454999999,621643.992,621643.992,606236.1710600001,604499.67495,898540.25758,1567221.3795,444792.35342,565692.28841,541603.8870000001,541603.8870000001,541603.8870000001,541603.8870000001,1869076.26928,1869076.26928 +29167200.0,499700.68499999994,404519.83499999996,1181197.9181999997,177062.92021,177062.92021,177062.92021,490518.9975,1040867.59752,1493382.63104,705214.4475600001,1074612.4915200002,446646.105,446646.105,446646.105,366947.511,499700.68499999994,499700.68499999994,516846.31336,472070.74185,701695.27554,1223887.1084999999,347350.81746,441764.96583,445943.18100000004,445943.18100000004,445943.18100000004,445943.18100000004,1502433.3928999999,1502433.3928999999 +29170800.0,1085102.304,1342268.37,3919423.6404000004,1547973.7023300002,1547973.7023300002,1547973.7023300002,1538233.8369999998,2452658.7245599995,3260204.20736,1872278.31546,2852995.52832,953838.795,953838.795,953838.795,1513793.5435000001,1085102.304,1085102.304,1554499.39788,1455656.3055,2163716.2862,3773923.755,1071075.5038,1362206.7649,1158517.479,1158517.479,1158517.479,1158517.479,3262540.9273599996,3262540.9273599996 +29174400.0,1166443.725,1534316.0850000002,4480202.9682,1876456.0885400001,1876456.0885400001,1876456.0885400001,1431620.4875,2959124.2624000004,4001595.6953600002,2218022.20584,3379843.3612800003,1248168.1889999998,1248168.1889999998,1248168.1889999998,1849098.5555,1166443.725,1166443.725,1927581.60777,1640467.78875,2438423.7255,4253064.6375,1207060.2495000002,1535153.80725,1382556.555,1382556.555,1382556.555,1382556.555,3507107.4665,3507107.4665 +29178000.0,1089350.01,1531023.2280000001,4470587.825759999,1308482.55802,1308482.55802,1308482.55802,1279039.8355,2795315.01304,4001609.9264000007,1929552.26226,2940270.1139200004,1136060.604,1136060.604,1136060.604,1558141.7355,1089350.01,1089350.01,1641973.7981399999,1444840.416,2147639.3344,3745882.5600000005,1063117.1456000002,1352085.2288000002,1344808.614,1344808.614,1344808.614,1344808.614,3275312.3633999997,3275312.3633999997 +29181600.0,2391120.915,2000781.3120000002,5842281.43104,3699564.5910300002,3699564.5910300002,3699564.5910300002,3102253.8049999997,4004319.53352,7555596.5900799995,4013905.9134299997,6116428.05856,2525685.33,2525685.33,2525685.33,3222760.5409999997,2391120.915,2391120.915,4191776.3806099994,3154475.3278499995,4688874.437939999,8178269.368499999,2321070.73506,2951965.8006299995,2715276.282,2715276.282,2715276.282,2715276.282,7189303.5511,7189303.5511 +29185200.0,1907487.7349999999,1177729.287,3438969.51804,2582587.56393,2582587.56393,2582587.56393,2002234.7099999997,3162259.50528,5718583.24864,2961340.60068,4512519.01056,1955495.715,1955495.715,1955495.715,2646963.081,1907487.7349999999,1907487.7349999999,1802003.7583599999,2367502.0078499997,3519101.7499399995,6137968.1685,1742013.82306,2215514.22463,2183290.548,2183290.548,2183290.548,2183290.548,5735179.789899999,5735179.789899999 +29188800.0,1503600.4619999998,1128892.308,3296365.53936,1687946.1264600002,1687946.1264600002,1687946.1264600002,1756782.9054999999,2569711.58488,4949770.57024,2248762.92438,3426686.36096,1481220.003,1481220.003,1481220.003,1964335.5304999999,1503600.4619999998,1503600.4619999998,1615366.5231599996,1819872.1737,2705093.94708,4718187.117,1339066.4389199999,1703040.87366,1591003.281,1591003.281,1591003.281,1591003.281,4520825.389079999,4520825.389079999 +29192400.0,1341382.644,1158539.7719999999,3382936.13424,1566816.7034300002,1566816.7034300002,1566816.7034300002,1535968.8365,2519909.88696,4749670.549760001,2181300.10224,3323885.8700800003,1365805.77,1365805.77,1365805.77,1828669.7484999998,1341382.644,1341382.644,1703264.3188599998,1758075.6537,2613238.37908,4557973.917,1293596.40692,1645211.5376600001,1529413.9770000002,1529413.9770000002,1529413.9770000002,1529413.9770000002,4033090.4829599997,4033090.4829599997 +29196000.0,946777.449,832187.904,2429988.67968,1040857.08287,1040857.08287,1040857.08287,832262.298,1340846.72528,2987804.81344,1301465.31228,1983185.2377600002,746221.068,746221.068,746221.068,920745.3674999999,946777.449,946777.449,1200475.94719,840799.9705499999,1249781.6846199997,2179851.7755,618662.69438,786822.68849,986009.328,986009.328,986009.328,986009.328,2846644.19666,2846644.19666 +29199600.0,177693.063,149464.863,436437.39996000007,201412.70864000003,201412.70864000003,201412.70864000003,78219.855,319366.81816,1110523.9936000002,371553.99519000005,566177.5164800001,257331.447,257331.447,257331.447,161507.1815,177693.063,177693.063,318454.4723099999,127689.2343,189799.80012,331046.163,93954.05388,119491.90074000001,225070.58700000003,225070.58700000003,225070.58700000003,225070.58700000003,534263.80942,534263.80942 +29203200.0,196699.647,160959.48599999998,470001.69911999995,178963.00378000003,178963.00378000003,178963.00378000003,68646.921,459615.14816,1111358.1196800002,388297.65387,591691.66304,270147.98699999996,270147.98699999996,270147.98699999996,157603.3375,196699.647,196699.647,327440.29305,123980.5683,184287.16572,321431.103,91225.20828,116021.32194000001,225360.41999999998,225360.41999999998,225360.41999999998,225360.41999999998,591410.27198,591410.27198 +29206800.0,239904.85799999998,200303.60399999996,584886.5236799999,181089.25725000002,181089.25725000002,181089.25725000002,80234.056,486055.0824,1124177.4035200002,441796.40987999993,673213.57696,307234.122,307234.122,307234.122,158620.89950000003,239904.85799999998,239904.85799999998,365007.35504999995,159954.83909999998,237760.03243999998,414697.73099999997,117695.16556,149686.13337999998,295759.266,295759.266,295759.266,295759.266,721313.9397199999,721313.9397199999 +29210400.0,300597.228,265443.132,775093.9454399999,202014.55582,202014.55582,202014.55582,104076.294,585527.9484,1170708.21504,508727.31377999997,775203.52576,445877.079,445877.079,445877.079,288972.47750000004,300597.228,300597.228,402771.99260999996,190631.71394999998,283358.74517999997,494230.3694999999,140267.28582,178393.62860999999,401595.114,401595.114,401595.114,401595.114,903795.6655199999,903795.6655199999 +29214000.0,365449.983,293082.768,855801.6825599999,223755.71845000001,223755.71845000001,223755.71845000001,104407.35549999999,727353.6740799999,1227795.7164800002,596299.01982,908646.1254400001,525537.78,525537.78,525537.78,327424.27900000004,365449.983,365449.983,436550.07811999996,224625.64815,333888.00045999995,582362.7915,165280.10654,210205.23617,480966.456,480966.456,480966.456,480966.456,1098786.28222,1098786.28222 +29217600.0,492384.74100000004,326276.025,952725.993,234070.03862,234070.03862,234070.03862,110699.631,845914.6676799998,1458505.8771200003,747536.3952,1139103.0784,571949.493,571949.493,571949.493,351564.89200000005,492384.74100000004,492384.74100000004,458480.13795999996,294690.02444999997,438033.07337999996,764011.1745,216833.64762,275771.65251,599342.871,599342.871,599342.871,599342.871,1480436.78794,1480436.78794 +29221200.0,582537.669,432581.967,1263139.34364,257949.81938,257949.81938,257949.81938,132618.80099999998,1001853.4716799998,1787780.9280000003,876236.01009,1335216.77728,601066.182,601066.182,601066.182,427757.91449999996,582537.669,582537.669,485347.41267999995,355791.35789999994,528855.30236,922422.0389999999,261792.15963999997,332950.43121999997,666584.6370000001,666584.6370000001,666584.6370000001,666584.6370000001,1751496.5914599998,1751496.5914599998 +29224800.0,755932.314,505216.1910000001,1475231.2777200001,441676.12731000007,441676.12731000007,441676.12731000007,217450.387,1591921.5061599999,1991438.0121600002,1186663.16265,1808248.6288000003,651197.274,651197.274,651197.274,633331.86,755932.314,755932.314,771602.4655299999,433785.1077,644786.75268,1124628.057,319180.15332000004,405937.17486,771754.9380000001,771754.9380000001,771754.9380000001,771754.9380000001,2272836.49076,2272836.49076 +29228400.0,1459859.748,844885.221,2467064.84532,1966143.89873,1966143.89873,1966143.89873,1638267.0255,3829370.3556800005,4925077.05024,3453813.3705599997,5262953.70752,1608497.9880000001,1608497.9880000001,1608497.9880000001,2365986.6019999995,1459859.748,1459859.748,3102527.50834,1976033.9042999998,2937215.8281199997,5123050.863,1453970.62588,1849177.40674,1815084.597,1815084.597,1815084.597,1815084.597,4389311.64232,4389311.64232 +29232000.0,1477712.3699999999,1438739.649,4201119.77508,2655043.8488200004,2655043.8488200004,2655043.8488200004,2515672.2954999995,4956780.866479999,4269164.64128,3883702.51668,5918022.88256,1614348.8429999999,1614348.8429999999,1614348.8429999999,2432153.5454999995,1477712.3699999999,1477712.3699999999,2713240.50946,2546649.65115,3785390.34566,6602425.021500001,1873831.10134,2383161.03157,1966485.531,1966485.531,1966485.531,1966485.531,4442988.5258,4442988.5258 +29235600.0,2379443.445,2510159.313,7329665.19396,2236904.44197,2236904.44197,2236904.44197,3105326.6125,5220053.59112,8295620.6144,4340748.31848,6614473.62816,2283976.839,2283976.839,2283976.839,2052234.3835000005,2379443.445,2379443.445,3535864.98265,2598924.77505,3863093.12242,6737953.1205,1912295.26658,2432080.22159,2641084.836,2641084.836,2641084.836,2641084.836,7154193.291299999,7154193.291299999 +29239200.0,2003318.1749999998,1551127.143,4529291.25756,1142410.5385,1142410.5385,1142410.5385,1653062.0890000002,3130026.2151199994,9055578.180480001,2308782.30114,3518144.45888,1963811.2859999998,1963811.2859999998,1963811.2859999998,1978137.4585000002,2003318.1749999998,2003318.1749999998,2670007.5175799998,2757291.4107,4098492.4178799996,7148533.2870000005,2028821.82812,2580280.11026,1528049.8380000002,1528049.8380000002,1528049.8380000002,1528049.8380000002,6023309.979499999,6023309.979499999 +29242800.0,1172813.457,1041730.6020000002,3041853.35784,741803.25494,741803.25494,741803.25494,969092.7959999999,2243108.99504,6401755.878400001,1614279.8082599998,2459854.94592,1087653.651,1087653.651,1087653.651,1041953.2725,1172813.457,1172813.457,1331429.54399,2040841.3927499999,3033546.9591,5291070.2775,1501656.1359,1909824.41445,1028807.3400000001,1028807.3400000001,1028807.3400000001,1028807.3400000001,3526259.12738,3526259.12738 +29246400.0,1173965.088,1526674.4759999998,4457889.46992,937323.3361800001,937323.3361800001,937323.3361800001,1294474.314,2453968.4088,4436045.399680001,1911485.3381400001,2912739.56288,1113587.901,1113587.901,1113587.901,1418677.4595,1173965.088,1173965.088,1470127.1397799999,1285633.4255999997,1910990.9190399996,3333123.6959999995,945972.2489599999,1203098.9340799998,1166906.859,1166906.859,1166906.859,1166906.859,3529721.6979199997,3529721.6979199997 +29250000.0,988196.832,1034779.101,3021554.97492,777973.20656,777973.20656,777973.20656,1249194.2995,1920586.3985600001,3210948.1190400003,1472097.3594600002,2243195.9763200004,928896.228,928896.228,928896.228,1175984.208,988196.832,988196.832,1190903.4747999997,1080063.7038,1605428.0239199998,2800165.1580000003,794713.5400800001,1010726.28084,934081.6529999999,934081.6529999999,934081.6529999999,934081.6529999999,2971178.47488,2971178.47488 +29253600.0,834460.8870000001,769849.797,2247961.4072399996,513299.5762400001,513299.5762400001,513299.5762400001,964218.4824999999,1688207.5600800002,2844380.3449600004,1279917.20913,1950350.0329600002,808770.5160000001,808770.5160000001,808770.5160000001,768185.327,834460.8870000001,834460.8870000001,1035277.2283099999,937416.04155,1393393.7210199998,2430337.8855,689753.0379799999,877236.2462899999,820177.668,820177.668,820177.668,820177.668,2508945.7335800002,2508945.7335800002 +29257200.0,1246785.531,1668463.134,4871912.35128,1759852.2124700004,1759852.2124700004,1759852.2124700004,1707553.071,2866323.57304,3816703.912960001,2161755.14016,3294103.07072,1153644.507,1153644.507,1153644.507,1640246.6395,1246785.531,1246785.531,1910894.7894399997,1637035.9119000002,2433322.51596,4244167.1790000005,1204535.0660400002,1531942.24842,1480390.818,1480390.818,1480390.818,1480390.818,3748668.4965399997,3748668.4965399997 +29260800.0,1225731.453,1587111.903,4634366.756759999,2094503.8843300005,2094503.8843300005,2094503.8843300005,1469644.7534999999,3118983.4700800003,4106577.0112,2384533.07484,3633574.20928,1292354.28,1292354.28,1292354.28,1966310.8114999998,1225731.453,1225731.453,1966162.0309499998,1666420.2049500002,2476999.90958,4320348.679500001,1226156.1014200002,1559440.14241,1430619.852,1430619.852,1430619.852,1430619.852,3685365.90202,3685365.90202 +29264400.0,1096861.3139999998,1522947.312,4447006.151039999,1488637.41653,1488637.41653,1488637.41653,1283116.3415,2781541.49568,3954430.5689600008,1947008.7468299998,2966870.47136,1127042.352,1127042.352,1127042.352,1596701.3265,1096861.3139999998,1096861.3139999998,1643769.52025,1468914.6042000002,2183423.68328,3808297.1220000004,1080830.9927200002,1374613.9135600002,1350336.993,1350336.993,1350336.993,1350336.993,3297896.3507599994,3297896.3507599994 +29268000.0,2361763.989,1978262.9670000002,5776527.86364,3706648.36498,3706648.36498,3706648.36498,3066127.0115,4004696.65736,7371169.024640001,3966706.11015,6044504.5488,2493254.9280000003,2493254.9280000003,2493254.9280000003,3198944.238,2361763.989,2361763.989,4330443.649349999,3110305.12065,4623218.969459999,8063754.0165,2288570.18754,2910631.21167,2695870.719,2695870.719,2695870.719,2695870.719,7101037.060260001,7101037.060260001 +29271600.0,1874785.434,1126725.645,3290038.8834,2699174.1343600005,2699174.1343600005,2699174.1343600005,1945839.8994999998,3035310.5138399997,5657720.343680001,2908164.8026199997,4431489.22304,1897324.6950000003,1897324.6950000003,1897324.6950000003,2732193.583,1874785.434,1874785.434,1869480.42489,2398176.92655,3564697.55502,6217495.7355,1764584.50398,2244219.88929,2137093.701,2137093.701,2137093.701,2137093.701,5636854.87156,5636854.87156 +29275200.0,1438591.6530000002,1066933.743,3115446.52956,1892784.65992,1892784.65992,1892784.65992,1690564.372,2446634.35576,4670129.54624,2168471.6319,3304337.7248,1386511.923,1386511.923,1386511.923,1994169.6145,1438591.6530000002,1438591.6530000002,1550941.1137999997,1755778.3398,2609823.60632,4552017.918,1291906.03768,1643061.70564,1570858.98,1570858.98,1570858.98,1570858.98,4325365.57002,4325365.57002 +29278800.0,1277605.224,1097166.597,3203726.46324,1523480.7760700001,1523480.7760700001,1523480.7760700001,1518462.89,2358024.0532799996,4439181.331200001,2070042.4094699998,3154350.33824,1278563.091,1278563.091,1278563.091,1740005.8129999998,1277605.224,1277605.224,1628408.68905,1674689.40585,2489291.41314,4341787.3485,1232240.5998600002,1567178.4810300001,1449432.1530000002,1449432.1530000002,1449432.1530000002,1449432.1530000002,3841333.04016,3841333.04016 +29282400.0,896255.8049999999,775740.129,2265161.1766799996,991494.68209,991494.68209,991494.68209,786312.2225,1243603.64136,2742329.2416000003,1203751.13754,1834287.44768,686230.347,686230.347,686230.347,857826.571,896255.8049999999,896255.8049999999,1143017.1734799999,782978.2420499999,1163834.3252199998,2029943.5904999997,576117.32378,732712.9721899999,922100.559,922100.559,922100.559,922100.559,2694742.4537,2694742.4537 +29286000.0,160225.854,133502.24699999997,389826.56123999995,183243.60593000002,183243.60593000002,183243.60593000002,74035.619,259638.71456,965905.3907200001,329079.43404,501454.37568000006,225988.353,225988.353,225988.353,143522.12,160225.854,160225.854,282493.32501,113569.5897,168812.08148,294439.677,83564.78452,106278.70246,201088.49700000003,201088.49700000003,201088.49700000003,201088.49700000003,481745.73435999994,481745.73435999994 +29289600.0,162764.19,136924.995,399820.9854,159599.58399,159599.58399,159599.58399,59247.28599999999,304000.37072,959063.2416,334260.73925999994,509349.69791999995,222023.73299999998,222023.73299999998,222023.73299999998,139078.3135,162764.19,162764.19,281597.81844999996,107397.25605,159637.40282,278437.3305,79023.16618,100502.61739,202310.592,202310.592,202310.592,202310.592,489377.6646,489377.6646 +29293200.0,201480.51,164523.75,480409.35,156495.51302,156495.51302,156495.51302,65887.423,402139.70192,960154.9952000001,373993.4784600001,569894.8243200001,226879.89,226879.89,226879.89,137519.4695,201480.51,201480.51,316043.58486999996,127120.58595000001,188954.54998,329571.88950000005,93535.64102000001,118959.75821000001,225294.417,225294.417,225294.417,225294.417,605784.7333999999,605784.7333999999 +29296800.0,239726.031,184174.692,537790.1006400001,165447.73850000004,165447.73850000004,165447.73850000004,88851.105,425362.52031999995,968860.75776,411844.69599,627572.87008,290792.547,290792.547,290792.547,183493.8455,239726.031,239726.031,328999.38720999996,156159.14265,232118.03426,404857.03650000005,114902.28274000001,146134.11127000002,314448.18,314448.18,314448.18,314448.18,720776.26654,720776.26654 +29300400.0,284539.794,234353.619,684312.5674800001,182868.64497000002,182868.64497000002,182868.64497000002,92077.7515,527430.82832,979606.3244800001,476088.79647,725468.64224,395808.708,395808.708,395808.708,266771.407,284539.794,284539.794,357378.82973,177531.89985000002,263886.92274,460267.88850000006,130628.41026,166134.79023,361646.238,361646.238,361646.238,361646.238,855516.3139599999,855516.3139599999 +29304000.0,358823.355,259939.035,759021.9822,198446.78568,198446.78568,198446.78568,93401.126,630617.39704,1065507.11232,562549.27407,857217.94144,445286.559,445286.559,445286.559,286013.0455,358823.355,358823.355,384456.31587999995,203629.4316,302678.80944,527928.1560000001,149831.03856000002,190556.92488,451924.539,451924.539,451924.539,451924.539,1078862.2207,1078862.2207 +29307600.0,453107.511,273396.96900000004,798319.14948,214851.86085,214851.86085,214851.86085,109314.6215,713942.78568,1314451.73952,672389.19279,1024593.0556800001,476920.533,476920.533,476920.533,304186.2215,453107.511,453107.511,398843.98788000003,251107.92179999998,373251.77511999995,651020.538,184765.82888,234987.41324,522690.561,522690.561,522690.561,522690.561,1362343.2497399999,1362343.2497399999 +29311200.0,647984.358,373253.649,1089900.65508,350412.59627,350412.59627,350412.59627,197645.75950000001,1299163.78952,1508740.25152,988631.25963,1506485.72896,536355.456,536355.456,536355.456,481845.5145,647984.358,647984.358,634630.1205399999,353131.38269999996,524901.4626799999,915525.8069999999,259834.94332,330461.21985999995,662242.89,662242.89,662242.89,662242.89,1948272.96972,1948272.96972 +29314800.0,1352337.768,757564.995,2212089.7854,1841200.6781300001,1841200.6781300001,1841200.6781300001,1573141.332,3615804.35888,4608250.17728,3259569.5979,4966963.1968,1381879.1369999999,1381879.1369999999,1381879.1369999999,2149671.9370000004,1352337.768,1352337.768,2908210.4780300003,1779761.3058,2645472.36072,4614195.978,1309552.76328,1665505.02444,1675371.2820000001,1675371.2820000001,1675371.2820000001,1675371.2820000001,4066028.88912,4066028.88912 +29318400.0,1289774.682,1323956.139,3865951.92588,2468400.53933,2468400.53933,2468400.53933,2186359.966,4612166.11648,3742583.9891199996,3600224.19456,5486055.91552,1451757.762,1451757.762,1451757.762,2061866.0860000001,1289774.682,1289774.682,2475565.5330899996,2354243.7334499997,3499394.3889799993,6103594.864499999,1732258.3520199999,2203107.09871,1771838.6400000001,1771838.6400000001,1771838.6400000001,1771838.6400000001,3877922.5438800002,3877922.5438800002 +29322000.0,2244783.621,2376686.976,6939925.969919999,1977625.4053600002,1977625.4053600002,1977625.4053600002,2793649.327,4850100.10896,7843826.88448,4051134.74199,6173157.70208,2133843.957,2133843.957,2133843.957,1860996.151,2244783.621,2244783.621,3127564.2894599997,2274643.1542499997,3381074.5156999994,5897222.992499999,1673688.0492999998,2128616.68015,2510208.171,2510208.171,2510208.171,2510208.171,6749316.0871399995,6749316.0871399995 +29325600.0,1817299.9080000003,1398737.6670000001,4084313.98764,1016595.87392,1016595.87392,1016595.87392,1294095.9535,2761415.6234399998,8150039.468800001,1949830.25895,2971169.9184000003,1735957.4819999998,1735957.4819999998,1735957.4819999998,1795075.6075,1817299.9080000003,1817299.9080000003,2429574.1601299997,2544111.4958999995,3781617.5815599994,6595844.619,1871963.5204399999,2380785.8196199997,1324557.9719999998,1324557.9719999998,1324557.9719999998,1324557.9719999998,5464015.056720001,5464015.056720001 +29329200.0,1001637.42,890736.228,2600949.78576,595651.63471,595651.63471,595651.63471,807874.9595,1853703.4948800001,5357114.4192,1313171.94267,2001023.9126400002,836224.497,836224.497,836224.497,847925.5819999999,1001637.42,1001637.42,1106276.90719,1646193.84885,2446935.05434,4267909.9785,1211273.49866,1540512.2684300002,838568.976,838568.976,838568.976,838568.976,3011589.8427999998,3011589.8427999998 +29332800.0,1019581.875,1374323.469,4013024.52948,828506.2817900002,828506.2817900002,828506.2817900002,1150921.394,2060253.21056,3439394.48896,1649196.3467700002,2513061.0998400003,896385.5970000001,896385.5970000001,896385.5970000001,1247304.5795,1019581.875,1019581.875,1253172.7006499998,1077147.9832499998,1601094.0392999996,2792605.8825,792568.1456999999,1007997.7423499998,993254.199,993254.199,993254.199,993254.199,3065542.8375,3065542.8375 +29336400.0,825525.714,891700.344,2603765.00448,654221.3319400001,654221.3319400001,654221.3319400001,1085842.8175,1585152.26288,2586790.52416,1219678.74357,1858558.08544,728728.965,728728.965,728728.965,964685.3230000001,825525.714,825525.714,962836.8245599999,878035.88115,1305129.87766,2276389.3215,646060.9693400001,821668.14557,761192.475,761192.475,761192.475,761192.475,2482080.64676,2482080.64676 +29340000.0,725386.041,617458.818,1802979.74856,434731.90145,434731.90145,434731.90145,797735.015,1443400.5241599998,2398925.7600000002,1096776.44244,1671278.38848,671112.834,671112.834,671112.834,603193.9410000001,725386.041,725386.041,881901.1719699999,793325.40075,1179214.5463,2056769.5575,583730.7887,742395.86885,697420.26,697420.26,697420.26,697420.26,2180994.02994,2180994.02994 +29343600.0,1130171.6849999998,1465076.46,4278023.2632,1664164.3390900001,1664164.3390900001,1664164.3390900001,1581943.104,2538240.18112,3354696.8550400003,1956374.72541,2981142.43872,1017452.166,1017452.166,1017452.166,1537406.5839999998,1130171.6849999998,1130171.6849999998,1754875.7006299999,1491844.6916999999,2217507.41828,3867745.497,1097703.0077199999,1396071.94606,1282969.794,1282969.794,1282969.794,1282969.794,3398049.5328999995,3398049.5328999995 +29347200.0,1105938.456,1452032.1269999999,4239933.8108399995,1952619.2195400002,1952619.2195400002,1952619.2195400002,1340036.2429999998,2759841.28208,3622678.00064,2133229.36785,3250635.2272,1159624.7310000001,1159624.7310000001,1159624.7310000001,1797114.0915,1105938.456,1105938.456,1825135.14937,1527175.9278,2270024.46552,3959344.998,1123699.8184800001,1429135.00404,1298346.009,1298346.009,1298346.009,1298346.009,3325188.29104,3325188.29104 +29350800.0,986955.513,1418901.051,4143191.06892,1281100.39167,1281100.39167,1281100.39167,1157890.1565,2531058.51704,3512679.9059200003,1749144.5897100002,2665363.1843200005,996056.7750000001,996056.7750000001,996056.7750000001,1427156.9024999999,986955.513,986955.513,1489249.9056499999,1302486.9133499998,1936042.2761399997,3376817.9235,958373.0868599999,1218870.46953,1216235.979,1216235.979,1216235.979,1216235.979,2967446.24242,2967446.24242 +29354400.0,2266790.697,1874913.1890000002,5474746.51188,3611132.15199,3611132.15199,3611132.15199,2954279.209,3759559.7432000004,6900310.84736,3803991.58734,5796558.60928,2375633.8109999998,2375633.8109999998,2375633.8109999998,3053021.965,2266790.697,2266790.697,4206301.681139999,2952733.91715,4389002.02006,7655236.0815,2172628.90694,2763175.69037,2559189.957,2559189.957,2559189.957,2559189.957,6815484.028980001,6815484.028980001 +29358000.0,1733828.1239999998,992434.1970000002,2897907.8552400004,2466487.8916700003,2466487.8916700003,2466487.8916700003,1809609.4730000002,2752673.78,4925366.05568,2644128.55392,4029148.2726399996,1722745.845,1722745.845,1722745.845,2378979.792,1733828.1239999998,1733828.1239999998,1605467.8509999998,2130309.4527,3166534.0506799994,5523024.506999999,1567486.9553199997,1993548.8458599998,1965689.2319999998,1965689.2319999998,1965689.2319999998,1965689.2319999998,5213043.226159999,5213043.226159999 +29361600.0,1286437.836,942170.0339999999,2751136.4992799996,1562120.51358,1562120.51358,1562120.51358,1499409.0195,2131067.69568,3989350.3968,1889548.68081,2879312.27552,1202791.854,1202791.854,1202791.854,1659522.8545,1286437.836,1286437.836,1387886.8660799998,1519397.2750499998,2258462.12242,3939178.1205,1117976.26658,1421855.72159,1322912.8560000001,1322912.8560000001,1322912.8560000001,1322912.8560000001,3867889.7602399993,3867889.7602399993 +29365200.0,1088270.919,922825.464,2694650.35488,1294320.82208,1294320.82208,1294320.82208,1256510.899,1965324.0280799998,3642421.9475200004,1744608.45174,2658450.97408,1061617.746,1061617.746,1061617.746,1425691.659,1088270.919,1088270.919,1368476.7748599998,1394252.1413999998,2072443.92376,3614727.774,1025894.16824,1304744.59652,1219265.5890000002,1219265.5890000002,1219265.5890000002,1219265.5890000002,3272067.89646,3272067.89646 +29368800.0,782924.4299999999,663968.3609999999,1938787.6141199998,869652.63869,869652.63869,869652.63869,688200.4990000001,1038882.6224000001,2288087.10912,1025987.4504600001,1563409.4483200002,573283.8899999999,573283.8899999999,573283.8899999999,730840.9184999999,782924.4299999999,782924.4299999999,979626.8270099999,666005.34015,989963.49326,1726680.5115,490048.37374,623249.44177,791502.9509999999,791502.9509999999,791502.9509999999,791502.9509999999,2353992.7862,2353992.7862 +29372400.0,132449.805,113205.55799999999,330560.22935999994,158222.62159,158222.62159,158222.62159,67875.997,212584.22272000002,791396.04416,250303.77623999998,381415.27807999996,188112.912,188112.912,188112.912,121475.49049999999,132449.805,132449.805,236927.48793999996,94442.7924,140381.63216,244851.68400000004,69491.23984000001,88379.79832000002,166712.25,166712.25,166712.25,166712.25,398232.4137,398232.4137 +29376000.0,131841.669,109688.286,320289.79511999997,131322.09497000003,131322.09497000003,131322.09497000003,46165.983499999995,219747.5784,761996.60864,263887.16109,402113.76928,179511.063,179511.063,179511.063,113806.28700000001,131841.669,131841.669,228371.24349,85832.08335,127582.50413999999,222527.6235,63155.45886,80321.87553,163071.93899999998,163071.93899999998,163071.93899999998,163071.93899999998,396403.95145999995,396403.95145999995 +29379600.0,142358.628,126443.84399999998,369216.02447999996,126952.56739000001,126952.56739000001,126952.56739000001,53585.2485,232156.22936,762682.7232,272161.88811,414722.87712,178054.311,178054.311,178054.311,112337.23550000001,142358.628,142358.628,242849.10298999998,89084.44395,132416.87717999998,230959.6695,65548.55382,83365.44261,167895.405,167895.405,167895.405,167895.405,428024.94151999993,428024.94151999993 +29383200.0,160102.48500000002,140162.163,409273.51596,122639.65351000002,122639.65351000002,122639.65351000002,56376.5125,246216.5024,760292.1696,310884.80955,473729.2336,177770.871,177770.871,177770.871,112104.7515,160102.48500000002,160102.48500000002,258072.08920999995,106907.33159999999,158909.16944,277167.156,78662.67856,100044.14487999999,188985.111,188985.111,188985.111,188985.111,481374.8049,481374.8049 +29386800.0,194316.411,152100.627,444133.83084,135283.88995,135283.88995,135283.88995,75778.8885,292119.88936000003,757534.7315200001,336446.34807,512680.14944,202045.704,202045.704,202045.704,139175.23200000002,194316.411,194316.411,265507.79606,127026.35865,188814.48865999997,329327.5965,93466.30834,118871.58007,247218.45299999998,247218.45299999998,247218.45299999998,247218.45299999998,584244.67574,584244.67574 +29390400.0,232211.91599999997,163624.374,477783.17208,143802.77032,143802.77032,143802.77032,77495.61750000001,380367.83736,760692.1401600001,379487.26536,578266.30912,280782.135,280782.135,280782.135,214068.33000000002,232211.91599999997,232211.91599999997,284177.96498,142841.2158,212322.00472,370329.07800000004,105102.91928,133671.16244000001,280082.64300000004,280082.64300000004,280082.64300000004,280082.64300000004,698183.8274399999,698183.8274399999 +29394000.0,288904.14300000004,179981.52599999998,525546.05592,160089.6242,160089.6242,160089.6242,85267.8365,468631.84536000004,801919.9308800001,448532.20713,683477.64896,319780.128,319780.128,319780.128,226557.14200000002,288904.14300000004,288904.14300000004,311913.75253999996,160978.1202,239281.05768,417350.68200000003,118448.09832,150643.72236,344968.299,344968.299,344968.299,344968.299,868638.4566200001,868638.4566200001 +29397600.0,358983.651,215064.684,627988.87728,262420.71845,262420.71845,262420.71845,166743.241,584448.9792,997088.1779200002,557227.01979,849107.8396800001,376251.36899999995,376251.36899999995,376251.36899999995,266704.4135,358983.651,358983.651,335404.56117999996,204918.27525,304594.5721,531269.6025,150779.37290000002,191763.02795000002,412928.25899999996,412928.25899999996,412928.25899999996,412928.25899999996,1079344.17734,1079344.17734 +29401200.0,1112557.218,1115394.1919999998,3256951.0406399993,1093377.39665,1093377.39665,1093377.39665,1078683.5744999999,1640240.06016,1663117.15904,1469864.3925,2239793.36,670051.194,670051.194,670051.194,1638398.783,1112557.218,1112557.218,2214576.08749,630296.65215,936885.3940600001,1634102.4315000002,463773.83294000005,589833.1633700001,1520295.96,1520295.96,1520295.96,1520295.96,3345088.70212,3345088.70212 +29404800.0,2089029.8429999999,1819876.3110000002,5314038.82812,2714175.37699,2714175.37699,2714175.37699,1894200.0525,3094172.6213599993,3438766.2016000003,3067777.2144599995,4674708.13632,1263324.585,1263324.585,1263324.585,1925244.0374999999,2089029.8429999999,2089029.8429999999,3247238.1236099997,1634860.7055,2430089.2462,4238527.755,1202934.5438,1529906.6849,2271412.704,2271412.704,2271412.704,2271412.704,6281016.394619999,6281016.394619999 +29408400.0,2447836.263,2312971.4189999998,6753876.5434799995,2958306.5655000005,2958306.5655000005,2958306.5655000005,2425650.6259999997,4037249.7108799997,9589380.98752,3186327.06252,4855355.52384,2460780.045,2460780.045,2460780.045,2444751.155,2447836.263,2447836.263,2614826.4231699994,3345194.3233499997,4972362.92014,8672726.0235,2461402.24286,3130441.10753,2140674.711,2140674.711,2140674.711,2140674.711,7359827.697419999,7359827.697419999 +29412000.0,1813499.4780000001,1597131.0690000001,4663622.72148,2063336.9191600003,2063336.9191600003,2063336.9191600003,2578514.071,3420111.7171200006,6125324.0192,3447403.49688,5253186.28096,2435531.538,2435531.538,2435531.538,2693688.0004999996,1813499.4780000001,1813499.4780000001,2063725.2619099997,3153509.74305,4687439.17362,8175766.000500001,2320360.25538,2951062.2039900003,1948671.4349999996,1948671.4349999996,1948671.4349999996,1948671.4349999996,5452588.43052,5452588.43052 +29415600.0,1346908.5269999998,1135786.779,3316497.39468,1911907.28223,1911907.28223,1911907.28223,2352399.6965,3417344.9178400002,6630405.73696,2732765.2314899997,4164213.68608,1161198.924,1161198.924,1161198.924,2285617.4529999997,1346908.5269999998,1346908.5269999998,1293052.66558,2386487.2293000002,3547321.75812,6187189.113,1755983.19588,2233280.6417400003,1574234.244,1574234.244,1574234.244,1574234.244,4049704.9711799994,4049704.9711799994 +29419200.0,1100591.307,932444.8049999999,2722738.8306,1422145.2201,1422145.2201,1422145.2201,1586322.122,2712142.2586399997,3427490.07168,2083452.40698,3174784.62016,1070923.824,1070923.824,1070923.824,1554163.275,1100591.307,1100591.307,1152511.74311,1489729.38075,2214363.1783000003,3862261.3575000004,1096146.5567,1394092.4328500002,1173012.162,1173012.162,1173012.162,1173012.162,3309111.19638,3309111.19638 +29422800.0,830865.69,678008.022,1979783.4242399998,809825.01842,809825.01842,809825.01842,879437.1390000001,1767328.43488,2449157.1968000005,1400781.63183,2134524.3913600002,752713.956,752713.956,752713.956,1051551.9105,830865.69,830865.69,842647.1660099999,981632.2202999999,1459117.5225199999,2544972.423,722287.41148,918613.85554,880564.7819999999,880564.7819999999,880564.7819999999,880564.7819999999,2498136.1745999996,2498136.1745999996 +29426400.0,748779.1830000001,623679.2250000001,1821143.337,711509.02801,711509.02801,711509.02801,801857.2870000001,1422614.49248,2286334.64576,1196891.6101799998,1823834.8345599999,682865.2710000001,682865.2710000001,682865.2710000001,940745.9110000001,748779.1830000001,748779.1830000001,759423.6272999999,872057.56275,1296243.5871,2260889.9775,641662.1079000001,816073.62045,794495.388,794495.388,794495.388,794495.388,2251329.41022,2251329.41022 +29430000.0,987676.6379999999,874707.483,2554145.85036,1128947.02734,1128947.02734,1128947.02734,1075061.6065,1889430.02776,3335219.85984,1642871.56803,2503423.3417599997,965357.355,965357.355,965357.355,1253267.617,987676.6379999999,987676.6379999999,1246695.71819,1241086.9450499997,1844776.1504199996,3217632.8204999994,913194.8385799999,1161412.2275899998,1095858.4949999999,1095858.4949999999,1095858.4949999999,1095858.4949999999,2969614.4249199997,2969614.4249199997 +29433600.0,1032139.6950000001,919817.7659999998,2685867.8767199996,1205107.96868,1205107.96868,1205107.96868,1131079.432,1976817.4108799999,3524285.1667200006,1723394.57976,2626125.0739200003,1017689.544,1017689.544,1017689.544,1311376.7975,1032139.6950000001,1032139.6950000001,1330270.4686699999,1308200.2969499999,1944534.7623799997,3391630.3995,962577.00862,1224217.06801,1154514.465,1154514.465,1154514.465,1154514.465,3103300.0163,3103300.0163 +29437200.0,1042536.213,925802.004,2703341.85168,1238271.26071,1238271.26071,1238271.26071,1162366.464,2005163.7605599998,3549462.3353600004,1743802.74978,2657223.23776,1027898.298,1027898.298,1027898.298,1325765.5565000002,1042536.213,1042536.213,1336553.8197700002,1322574.561,1965900.9523999998,3428897.01,973153.6276,1237668.5398,1164703.143,1164703.143,1164703.143,1164703.143,3134558.88042,3134558.88042 +29440800.0,1052889.807,927310.578,2707746.88776,1295914.15789,1295914.15789,1295914.15789,1213097.704,2035280.6814399997,3552997.0188800003,1768943.7402000001,2695533.3184,1033917.4709999999,1033917.4709999999,1033917.4709999999,1339845.1885,1052889.807,1052889.807,1338404.7077699997,1336708.899,1986910.5115999999,3465541.5900000003,983553.7084,1250895.4882,1173886.8480000002,1173886.8480000002,1173886.8480000002,1173886.8480000002,3165688.6863800003,3165688.6863800003 +29444400.0,1049964.417,924457.419,2699415.66348,1293229.29692,1293229.29692,1293229.29692,1210743.226,2030156.8348,3539784.2598400004,1764289.94343,2688441.81856,1030630.8180000001,1030630.8180000001,1030630.8180000001,1335025.7095,1049964.417,1049964.417,1333211.37001,1332112.3595999999,1980078.1246399998,3453624.636,980171.5633599999,1246594.03528,1170124.371,1170124.371,1170124.371,1170124.371,3156893.0137799997,3156893.0137799997 +29448000.0,1045425.1529999999,922628.478,2694075.15576,1275007.01966,1275007.01966,1275007.01966,1195057.71,2020031.78152,3532058.3392,1754896.8057600001,2674128.4659200003,1027638.69,1027638.69,1027638.69,1328308.8875,1045425.1529999999,1045425.1529999999,1328759.6765299998,1325157.2095499998,1969739.8522199998,3435592.7654999997,975053.94678,1240085.38869,1165418.25,1165418.25,1165418.25,1165418.25,3143244.9600199996,3143244.9600199996 +29451600.0,1001536.6799999999,827973.117,2417681.50164,1063789.00947,1063789.00947,1063789.00947,906146.7065,1659926.2621599997,2534646.0243200003,1435801.6869,2187888.2848,805886.757,805886.757,805886.757,1044279.747,1001536.6799999999,1001536.6799999999,1264037.66814,1046721.3295500001,1555867.26022,2713721.9655000004,770180.1387800002,979524.4046900001,1007395.8029999998,1007395.8029999998,1007395.8029999998,1007395.8029999998,3011286.9512,3011286.9512 +29455200.0,434639.39099999995,297338.03699999995,868227.0680399999,558605.19231,558605.19231,558605.19231,371677.01900000003,782213.64128,993747.5827200001,660044.52906,1005782.1395200001,350125.371,350125.371,350125.371,448905.3694999999,434639.39099999995,434639.39099999995,709574.7642099999,229958.43705,341814.76322,596188.5405,169203.98578000002,215195.67319000003,540773.331,540773.331,540773.331,540773.331,1306815.7689399999,1306815.7689399999 +29458800.0,150321.807,104228.07599999999,304345.98191999993,159948.27717000002,159948.27717000002,159948.27717000002,64521.96800000001,289280.25944,716053.5129600001,285339.70752,434803.36384,195784.15800000002,195784.15800000002,195784.15800000002,115497.72499999999,150321.807,150321.807,217419.62866,89984.09879999999,133754.14192,233292.10799999998,66210.52208,84207.34184,161558.7,161558.7,161558.7,161558.7,451967.56638,451967.56638 +29462400.0,146985.915,111117.663,324463.57596,135662.62380000003,135662.62380000003,135662.62380000003,50901.9105,304221.952,703223.8278400002,273537.63633,416819.25536,190006.65300000002,190006.65300000002,190006.65300000002,108072.02,146985.915,146985.915,212639.86432,82910.08935,123239.19454,214952.0835,61005.44846,77587.46633,155709.333,155709.333,155709.333,155709.333,441937.65109999996,441937.65109999996 +29466000.0,155020.05599999998,126457.905,369257.0826,130140.93212999999,130140.93212999999,130140.93212999999,51500.6345,304301.65048,710256.464,280504.82438999997,427435.92287999997,188882.226,188882.226,188882.226,106052.1,155020.05599999998,155020.05599999998,217736.29982,93822.2352,139459.22368,243242.832,69034.63232,87799.07936,158930.574,158930.574,158930.574,158930.574,466093.63503999996,466093.63503999996 +29469600.0,158880.44999999998,146115.273,426656.59716,131940.88149000003,131940.88149000003,131940.88149000003,60923.149000000005,299167.61888,729499.08224,296512.19304,451828.10368,188113.935,188113.935,188113.935,106485.5925,158880.44999999998,158880.44999999998,239581.45354,99587.05784999998,148028.16993999996,258188.66849999997,73276.40306,93193.81463,182578.767,182578.767,182578.767,182578.767,477700.5529999999,477700.5529999999 +29473200.0,179408.421,160900.86000000002,469830.5112,138839.44195,138839.44195,138839.44195,67246.67250000002,307360.08184,746666.0467200001,325243.53015,495609.18880000006,241680.33000000002,241680.33000000002,241680.33000000002,124354.94750000001,179408.421,179408.421,246810.87873,115298.74124999999,171382.3265,298922.66250000003,84837.09850000001,107896.84675,223612.287,223612.287,223612.287,223612.287,539421.31914,539421.31914 +29476800.0,214412.34599999996,173861.499,507675.57708,144394.65821000002,144394.65821000002,144394.65821000002,71433.79950000001,340653.478,746976.0179200001,350458.19256,534031.53152,285389.78099999996,285389.78099999996,285389.78099999996,177871.6975,214412.34599999996,214412.34599999996,263253.00755,130804.47405,194430.35402,339122.71050000004,96246.25498,122407.14979000001,256507.74599999998,256507.74599999998,256507.74599999998,256507.74599999998,644666.4536399998,644666.4536399998 +29480400.0,262116.354,185550.996,541808.90832,155781.4885,155781.4885,155781.4885,78609.7165,424583.98991999996,761247.7164800001,405257.74968,617535.6185600001,315947.74199999997,315947.74199999997,315947.74199999997,205764.80399999997,262116.354,262116.354,281324.73069999996,145879.40835,216838.03414,378205.87350000005,107338.42886000001,136514.31053000002,303992.475,303992.475,303992.475,303992.475,788096.50436,788096.50436 +29484000.0,327635.706,207611.76,606226.3391999999,252140.90781,252140.90781,252140.90781,159133.716,553529.74744,966166.20608,506254.60977,771435.59584,359354.475,359354.475,359354.475,250376.133,327635.706,327635.706,319657.46293,190228.91309999998,282760.01404,493186.071,139970.90396,178016.68658,372529.569,372529.569,372529.569,372529.569,985091.35604,985091.35604 +29487600.0,1069988.253,1081859.028,3159028.3617599998,1076456.33502,1076456.33502,1076456.33502,1072769.922,1596732.13024,1596184.66112,1405563.9210899998,2141811.68928,648286.434,648286.434,648286.434,1616976.7915,1069988.253,1069988.253,2019928.4562599997,611059.70295,908291.2127799998,1584228.8594999998,449619.23821999994,571831.17881,1435727.46,1435727.46,1435727.46,1435727.46,3217098.0140199997,3217098.0140199997 +29491200.0,1986872.8469999996,1745257.785,5096152.7321999995,2571632.66239,2571632.66239,2571632.66239,1785192.1045,2957224.23592,3284758.4851200003,2953339.75881,4500327.25152,1226626.7880000002,1226626.7880000002,1226626.7880000002,1735962.935,1986872.8469999996,1986872.8469999996,3009942.76206,1568563.8903,2331544.35052,4066647.123,1154153.1834800001,1467865.96154,2180135.877,2180135.877,2180135.877,2180135.877,5973864.359979999,5973864.359979999 +29494800.0,2360747.199,2263111.5270000002,6608285.658840001,2798788.62571,2798788.62571,2798788.62571,2336163.291,3877180.1639199997,9344663.196800001,3042744.87006,4636563.61152,2398377.5969999996,2398377.5969999996,2398377.5969999996,2359754.4285,2360747.199,2360747.199,2445306.34257,3283584.8282999997,4880785.349719999,8512997.703,2416069.82428,3072786.78994,2000493.5430000003,2000493.5430000003,2000493.5430000003,2000493.5430000003,7097979.91166,7097979.91166 +29498400.0,1719280.854,1502939.565,4388583.5298,1921312.0265900001,1921312.0265900001,1921312.0265900001,2473692.83,3244555.9559999993,5778567.8656,3288511.5664799996,5011065.244159999,2250114.801,2250114.801,2250114.801,2497806.7415,1719280.854,1719280.854,1935738.3432399998,2960684.26965,4400819.58106,7675848.106500001,2178478.79594,2770615.6498700003,1857177.0750000002,1857177.0750000002,1857177.0750000002,1857177.0750000002,5169304.43436,5169304.43436 +29502000.0,1225197.345,997165.9380000001,2911724.53896,1747979.72943,1747979.72943,1747979.72943,2181778.6234999998,3216666.39944,6218699.50848,2510731.5080399998,3825876.5836799997,1040849.589,1040849.589,1040849.589,2110292.933,1225197.345,1225197.345,1075951.92549,2154952.4715,3203163.9206,5586913.815,1585619.3494000002,2016609.8437,1403888.451,1403888.451,1403888.451,1403888.451,3683760.0173,3683760.0173 +29505600.0,1002881.415,857908.1610000001,2505091.8301200005,1306319.1006800001,1306319.1006800001,1306319.1006800001,1461931.7615,2487497.49568,3057011.3184,1933183.5528600002,2945803.50912,977577.4619999999,977577.4619999999,977577.4619999999,1399834.891,1002881.415,1002881.415,1027742.9645599999,1344163.38165,1997991.00186,3484868.0265,989038.7351400001,1257871.4114700002,1060213.107,1060213.107,1060213.107,1060213.107,3015330.1210999996,3015330.1210999996 +29509200.0,729903.621,589105.8629999999,1720189.1199599998,671487.5214300001,671487.5214300001,671487.5214300001,754693.4115,1563850.42488,2110774.14976,1223571.2405700001,1864489.5094400002,652283.82,652283.82,652283.82,915343.751,729903.621,729903.621,688089.1724199998,845576.8848,1256882.18432,2192236.368,622177.55968,791292.93664,762548.922,762548.922,762548.922,762548.922,2194576.88714,2194576.88714 +29512800.0,593836.719,476855.892,1392419.2046400001,475169.45564,475169.45564,475169.45564,620275.7435,1133408.44776,1691074.1676800002,927855.3744600001,1413874.85632,526516.0560000001,526516.0560000001,526516.0560000001,706828.1675,593836.719,593836.719,497569.59381999995,651443.0305499999,968317.7886199999,1688926.3754999998,479333.39038,609621.9964899999,602107.149,602107.149,602107.149,602107.149,1785469.06846,1785469.06846 +29516400.0,910485.408,805937.8260000001,2353338.4519200004,1015318.73234,1015318.73234,1015318.73234,988175.2159999998,1752857.4871999996,3066123.0464,1504543.0486799998,2292637.0265599997,883896.2549999999,883896.2549999999,883896.2549999999,1142276.954,910485.408,910485.408,1109274.93209,1136355.7877999998,1689101.6895199998,2946107.5979999998,836133.3944799999,1063404.55204,995850.279,995850.279,995850.279,995850.279,2737526.12672,2737526.12672 +29520000.0,963787.665,860392.773,2512346.89716,1117226.37158,1117226.37158,1117226.37158,1054796.4105,1855895.7023999998,3293210.7219200004,1609578.9866099998,2452691.78912,952434.642,952434.642,952434.642,1213606.2575,963787.665,963787.665,1226629.1004499998,1217683.8175499998,1809989.2794199998,3156958.0454999995,895974.75958,1139511.5230899998,1072575.9870000002,1072575.9870000002,1072575.9870000002,1072575.9870000002,2897788.2460999996,2897788.2460999996 +29523600.0,974832.5190000001,866955.9719999998,2531511.4382399996,1152212.34799,1152212.34799,1152212.34799,1086730.022,1885318.60352,3320838.14272,1632532.3782600001,2487668.3859200003,963310.3469999998,963310.3469999998,963310.3469999998,1229963.2974999999,974832.5190000001,974832.5190000001,1234069.84818,1232942.0427,1832669.40668,3196516.407,907201.7993200001,1153790.2078600002,1084286.484,1084286.484,1084286.484,1084286.484,2930996.4404599997,2930996.4404599997 +29527200.0,983446.8629999999,866718.537,2530818.12804,1207914.27845,1207914.27845,1207914.27845,1135377.992,1910878.2278399998,3316371.1193600004,1654441.0554,2521053.0368000004,966908.9580000001,966908.9580000001,966908.9580000001,1241289.0350000001,983446.8629999999,983446.8629999999,1234240.5165999997,1244524.4959499997,1849885.7939799996,3226544.9894999997,915724.1970199998,1164629.0962099999,1091367.699,1091367.699,1091367.699,1091367.699,2956896.9014199995,2956896.9014199995 +29530800.0,988228.2960000001,871324.404,2544267.2596799997,1214030.65817,1214030.65817,1214030.65817,1141758.3415,1923546.2507199997,3336565.1283200006,1663389.80892,2534689.23264,973447.2239999999,973447.2239999999,973447.2239999999,1248724.869,988228.2960000001,988228.2960000001,1238540.50268,1250878.2939000002,1859330.20476,3243017.7990000006,920399.3372400001,1170574.9960200002,1097170.8390000002,1097170.8390000002,1097170.8390000002,1097170.8390000002,2971273.07664,2971273.07664 +29534400.0,991567.809,877106.037,2561149.62804,1205107.48842,1205107.48842,1205107.48842,1134986.3105,1931537.2161599998,3362842.1017600005,1667893.88052,2541552.57984,980434.404,980434.404,980434.404,1254467.4030000002,991567.809,991567.809,1243835.36992,1255217.5894499999,1865780.2193799997,3254267.8244999996,923592.20162,1174635.71951,1102226.9190000002,1102226.9190000002,1102226.9190000002,1102226.9190000002,2981313.8790599997,2981313.8790599997 +29538000.0,958807.071,795837.096,2323844.32032,1014891.7323600001,1014891.7323600001,1014891.7323600001,868906.612,1610551.2229600002,2443396.14976,1381131.81045,2104581.8064,779583.621,779583.621,779583.621,998462.7275,958807.071,958807.071,1196993.39175,1002405.4357500001,1489995.2403,2598828.9075,737572.3947000001,938053.4818500001,965245.044,965245.044,965245.044,965245.044,2882813.26014,2882813.26014 +29541600.0,420649.698,289659.063,845804.4639600001,538690.68231,538690.68231,538690.68231,358526.3325,772213.24864,972263.7062400001,642225.08931,978628.7075199999,348963.876,348963.876,348963.876,432270.272,420649.698,420649.698,676410.31445,222470.99954999998,330685.28822,576776.6655,163694.71078,208188.91069,520760.53799999994,520760.53799999994,520760.53799999994,520760.53799999994,1264753.42532,1264753.42532 +29545200.0,150655.035,105723.204,308711.75568,163132.90565000003,163132.90565000003,163132.90565000003,64283.4395,305462.69504,733227.32096,288428.49735,439510.0912000001,206179.215,206179.215,206179.215,116881.254,150655.035,150655.035,221349.88447000002,90945.3663,135182.98892,235784.283,66917.82508,85106.89834,161658.774,161658.774,161658.774,161658.774,452969.4719,452969.4719 +29548800.0,150408.963,115528.20000000001,337342.344,142632.90579999998,142632.90579999998,142632.90579999998,50398.684,330730.02736,746989.5308800001,284117.87691000005,432941.5267200001,207772.002,207772.002,207772.002,112849.19100000002,150408.963,150408.963,222833.26922999998,86446.28205,128495.46121999998,224119.99049999999,63607.38778,80896.64418999999,159657.35100000002,159657.35100000002,159657.35100000002,159657.35100000002,452229.61541999993,452229.61541999993 +29552400.0,159253.137,147387.528,430371.58176,137811.35994999998,137811.35994999998,137811.35994999998,52595.51149999999,332736.94920000003,765364.3168,292147.34136,445176.90112000005,207157.851,207157.851,207157.851,111110.6325,159253.137,159253.137,232030.21049,98145.58995,145885.54358,254451.5295,72215.76742,91844.88541,163034.16,163034.16,163034.16,163034.16,478821.09858,478821.09858 +29556000.0,163611.675,156434.95799999998,456790.07735999994,139467.48772,139467.48772,139467.48772,62260.898,325701.48368,780589.2992000001,308706.17043,470409.40256,207329.412,207329.412,207329.412,110769.8095,163611.675,163611.675,251004.54456999997,103632.2667,154041.04828,268676.247,76252.87772,96979.33106,190054.61099999998,190054.61099999998,190054.61099999998,190054.61099999998,491925.76949999994,491925.76949999994 +29559600.0,184098.999,167387.835,488772.4782,143672.8722,143672.8722,143672.8722,67816.42,331807.51904,781119.7209600001,333453.30816,508119.32672000007,273973.77,273973.77,273973.77,127874.82400000002,184098.999,184098.999,257218.29497,119444.26454999999,177544.31422,309670.3155,87887.38478,111776.23769,232159.40399999998,232159.40399999998,232159.40399999998,232159.40399999998,553524.32366,553524.32366 +29563200.0,218446.206,185384.031,541321.37052,151038.29015,151038.29015,151038.29015,72707.4565,385829.08999999997,792243.4764800001,368282.82938999997,561192.88288,316614.71400000004,316614.71400000004,316614.71400000004,202705.482,218446.206,218446.206,277281.17052999994,136802.48354999998,203345.91381999996,354673.10549999995,100659.60517999998,128020.10188999999,273204.45900000003,273204.45900000003,273204.45900000003,273204.45900000003,656794.9260399999,656794.9260399999 +29566800.0,283167.26399999997,204225.27900000004,596337.8146800001,167857.31281,167857.31281,167857.31281,82135.1685,502763.31655999995,848168.5369599999,438911.16108000005,668817.00736,361975.695,361975.695,361975.695,224619.73100000003,283167.26399999997,283167.26399999997,309569.80105999997,157262.28165,233757.76185999997,407717.0265,115713.97514,147166.43147,338276.10900000005,338276.10900000005,338276.10900000005,338276.10900000005,851389.5737599998,851389.5737599998 +29570400.0,450386.80799999996,250620.81,731812.7652,276125.84109000006,276125.84109000006,276125.84109000006,162964.8405,1008266.5917600001,1094702.9068800001,703140.52284,1071452.22528,417971.886,417971.886,417971.886,360059.3465,450386.80799999996,450386.80799999996,533950.32704,224996.4135,334439.1134,583324.035,165552.9166,210552.1993,470209.605,470209.605,470209.605,470209.605,1354163.0027199998,1354163.0027199998 +29574000.0,1192676.868,569031.426,1661571.7639199998,1625383.74295,1625383.74295,1625383.74295,1409333.9679999999,3335091.7356799995,3903815.514240001,2820410.95245,4297769.070400001,1129067.7629999998,1129067.7629999998,1129067.7629999998,1569015.6685,1192676.868,1192676.868,2518967.54837,1542129.4430999998,2292251.6660399996,3998113.371,1134702.65196,1443128.54058,1464790.8509999998,1464790.8509999998,1464790.8509999998,1464790.8509999998,3585981.78312,3585981.78312 +29577600.0,1085043.303,1154245.836,3370397.8411199995,2039662.07104,2039662.07104,2039662.07104,1904756.1574999997,4109575.07992,3176986.8192,3214442.6857199995,4898198.3782399995,1314247.1639999999,1314247.1639999999,1314247.1639999999,1733888.2575,1085043.303,1085043.303,2185123.9091499997,2119333.2804,3150218.8513599997,5494567.764,1559410.66064,1983277.31672,1535732.976,1535732.976,1535732.976,1535732.976,3262363.53102,3262363.53102 +29581200.0,2046267.78,2232837.435,6519885.3102,1637577.56063,1637577.56063,1637577.56063,2208038.6999999997,4353514.0232,7288916.725120001,3590036.1161700003,5470531.224640001,1922000.727,1922000.727,1922000.727,1593770.9515,2046267.78,2046267.78,2843060.5143199996,1855769.36085,2758452.23514,4811253.8985,1365479.67786,1736633.55003,2290226.739,2290226.739,2290226.739,2290226.739,6152445.1252,6152445.1252 +29584800.0,1467982.464,1199369.025,3502157.553,728731.08242,728731.08242,728731.08242,879991.6545000002,2246145.176,6932125.59936,1379312.0403299998,2101808.82336,1446801.15,1446801.15,1446801.15,1472412.4695,1467982.464,1467982.464,2333218.34018,2235867.5672999998,3323437.71732,5796693.693,1645156.87668,2092330.39014,1018899.396,1018899.396,1018899.396,1018899.396,4413733.941759999,4413733.941759999 +29588400.0,748148.316,759392.976,2217427.48992,420325.70910000004,420325.70910000004,420325.70910000004,553422.8489999999,1470101.96776,3729022.9395200005,920566.30554,1402767.70368,605687.3609999999,605687.3609999999,605687.3609999999,576150.694,748148.316,748148.316,816552.9400599998,994427.1342,1478136.13528,2578144.4220000003,731701.9407200001,930587.36756,595787.0819999999,595787.0819999999,595787.0819999999,595787.0819999999,2249432.6034399997,2249432.6034399997 +29592000.0,794721.4619999999,1212294.531,3539900.03052,684262.84443,684262.84443,684262.84443,951136.8929999999,1717968.98264,2784358.9753600005,1350745.57044,2058278.96448,718733.448,718733.448,718733.448,1069790.253,794721.4619999999,794721.4619999999,955069.42973,851672.7017999999,1265943.1271199998,2208040.338,626662.87688,796997.41724,788815.89,788815.89,788815.89,788815.89,2389462.52908,2389462.52908 +29595600.0,644513.2559999999,698821.065,2040557.5097999999,522672.59495000006,522672.59495000006,522672.59495000006,901481.5145,1327406.2164,2062964.5248,973013.4594599999,1482687.1763199999,590029.65,590029.65,590029.65,674176.8495000001,644513.2559999999,644513.2559999999,741315.8050999999,683521.7157,1016000.17988,1772093.3369999998,502936.96612,639641.30926,597886.407,597886.407,597886.407,597886.407,1937836.5230399997,1937836.5230399997 +29599200.0,586920.204,523547.3160000001,1528758.1627200001,334621.75736000005,334621.75736000005,334621.75736000005,558297.9500000001,1257085.04192,2015953.4592000004,900597.39504,1372338.88768,574154.565,574154.565,574154.565,492411.20949999994,586920.204,586920.204,714545.4518799998,644038.4925,957311.537,1669729.425,473885.113,602692.8115000001,572697.726,572697.726,572697.726,572697.726,1764673.41336,1764673.41336 +29602800.0,960105.561,1137693.453,3322064.88276,1485675.99499,1485675.99499,1485675.99499,1415954.75,2143546.6836,2909146.3520000004,1743406.6511400002,2656619.6588800005,889854.6930000001,889854.6930000001,889854.6930000001,1422411.361,960105.561,960105.561,1506883.64463,1330777.0138499998,1978093.2403399996,3450162.6284999996,979189.0126599999,1245344.4154299998,994987.353,994987.353,994987.353,994987.353,2886717.3867399995,2886717.3867399995 +29606400.0,915826.7609999999,1312090.686,3831304.80312,1641937.76791,1641937.76791,1641937.76791,1164802.0860000001,2401732.61056,3120107.3651200007,1788982.60359,2726068.72928,1011471.915,1011471.915,1011471.915,1627772.2265,915826.7609999999,915826.7609999999,1574712.71581,1339672.27185,1991315.32754,3473224.4085,985734.16546,1253668.61983,1106201.154,1106201.154,1106201.154,1106201.154,2753585.79474,2753585.79474 +29610000.0,842828.4299999999,1216867.341,3553252.6357199997,1063890.76761,1063890.76761,1063890.76761,1017121.7035000001,2310459.14544,3081743.3100799997,1521523.7444400003,2318512.3724800004,860345.706,860345.706,860345.706,1259152.1739999999,842828.4299999999,842828.4299999999,1235616.1140700001,1124953.5474,1672153.17416,2916546.234,827743.5978400001,1052734.3073200001,1038873.54,1038873.54,1038873.54,1038873.54,2534104.1462,2534104.1462 +29613600.0,2188999.707,1789878.693,5226445.78356,3490977.7992100003,3490977.7992100003,3490977.7992100003,2862249.7505,3439268.9611199996,6581505.076480001,3673345.59837,5597479.0070400005,2303824.6350000002,2303824.6350000002,2303824.6350000002,2954406.623,2188999.707,2188999.707,3752298.3737199996,2803095.88605,4166577.0948199998,7267285.6305,2062524.87418,2623144.05139,2436749.7270000004,2436749.7270000004,2436749.7270000004,2436749.7270000004,6581592.45238,6581592.45238 +29617200.0,1604708.7539999997,902784.2010000001,2636129.8669200004,2110378.92747,2110378.92747,2110378.92747,1703842.2519999999,2567598.23488,4419650.0448,2346658.37868,3575860.3865600005,1560167.58,1560167.58,1560167.58,1929702.705,1604708.7539999997,1604708.7539999997,1346413.88687,1803925.5619499998,2681390.5883799996,4676844.0495,1327332.88262,1688117.99501,1697667.8520000004,1697667.8520000004,1697667.8520000004,1697667.8520000004,4824824.320359999,4824824.320359999 +29620800.0,1188753.774,881210.8049999999,2573135.5505999997,1259051.58995,1259051.58995,1259051.58995,1275261.9075,1982787.02968,3648408.8524800004,1738566.45501,2649244.1219200003,1060289.973,1060289.973,1060289.973,1431385.0705,1188753.774,1188753.774,1250112.4584,1391554.4728499998,2068434.0559399999,3607733.8185,1023909.2170599999,1302220.11163,1211585.4479999999,1211585.4479999999,1211585.4479999999,1211585.4479999999,3574186.3471599994,3574186.3471599994 +29624400.0,1064042.139,908373.1799999999,2652449.6856,1231581.56451,1231581.56451,1231581.56451,1212765.0185,1969766.98912,3695672.06208,1717790.9586599998,2617586.22272,1070810.46,1070810.46,1070810.46,1417610.257,1064042.139,1064042.139,1284844.0350199998,1379297.84445,2050215.5613799999,3575957.3745,1014890.75962,1290750.3285100001,1203506.4479999999,1203506.4479999999,1203506.4479999999,1203506.4479999999,3199220.0312599996,3199220.0312599996 +29628000.0,739445.4839999999,637642.068,1861914.83856,798374.28506,798374.28506,798374.28506,651773.7905,1003890.2768000001,2232022.5888000005,973828.09209,1483928.52128,564325.6740000001,564325.6740000001,564325.6740000001,693965.3699999999,739445.4839999999,739445.4839999999,899771.6206699999,636137.9145,945567.9617999999,1649246.445,468071.8482,595299.4311,750554.0310000001,750554.0310000001,750554.0310000001,750554.0310000001,2223266.0885599996,2223266.0885599996 +29631600.0,128329.557,113829.81599999999,332383.06272,156741.51196,156741.51196,156741.51196,66497.3365,213458.72768,808598.8582400001,238834.04769,363937.59648,192025.89299999998,192025.89299999998,192025.89299999998,122324.54500000001,128329.557,128329.557,239470.71771999996,93785.9634,139405.30855999998,243148.794,69007.94343999999,87765.13612,161602.176,161602.176,161602.176,161602.176,385844.20138,385844.20138 +29635200.0,127342.551,111516.114,325627.05288,131957.24696000002,131957.24696000002,131957.24696000002,45320.380000000005,223860.95319999996,794136.06336,262721.24739,400337.13888,186663.363,186663.363,186663.363,116235.52500000001,127342.551,127342.551,234789.92875,86953.52025,129249.4301,225435.05250000002,63980.6149,81371.31895,161717.595,161717.595,161717.595,161717.595,382876.60334,382876.60334 +29638800.0,141634.668,132448.33800000002,386749.14696000004,130560.51657000002,130560.51657000002,130560.51657000002,51628.563,258407.62504,819589.0944000001,280172.47692,426929.48864000005,190980.888,190980.888,190980.888,118389.77500000001,141634.668,141634.668,258250.70855999997,92733.174,137840.4216,240419.34000000003,68233.2984,86779.93320000001,170488.572,170488.572,170488.572,170488.572,425848.23512,425848.23512 +29642400.0,162568.97400000002,145582.47,425100.8124,131352.81126,131352.81126,131352.81126,56784.805,339573.06048,844439.2211200001,329962.24212,502799.60704000003,200681.80200000003,200681.80200000003,200681.80200000003,121056.488,162568.97400000002,162568.97400000002,281352.49883,114435.55665,170099.27185999998,296684.7765,84201.96514,107089.07647,196806.89400000003,196806.89400000003,196806.89400000003,196806.89400000003,488790.71516,488790.71516 +29646000.0,207078.56699999998,162114.81900000002,473375.27148,141972.93088,141972.93088,141972.93088,78574.05150000002,385993.3049599999,845382.0057600002,366039.20262,557774.02304,289670.859,289670.859,289670.859,177411.2795,207078.56699999998,207078.56699999998,292732.86744,136304.3133,202605.42372000002,353381.5530000001,100293.05028000001,127553.91294000002,271101.858,271101.858,271101.858,271101.858,622616.2247799999,622616.2247799999 +29649600.0,246739.79700000002,185204.139,540796.0858799999,154301.51033000002,154301.51033000002,154301.51033000002,80111.7485,473623.26999999996,859992.5401600001,413033.93859000003,629385.04928,362455.18799999997,362455.18799999997,362455.18799999997,235098.304,246739.79700000002,246739.79700000002,317932.66907999996,153427.66874999998,228057.91749999998,397775.4375,112892.4575,143577.99125,309426.801,309426.801,309426.801,309426.801,741864.3229799999,741864.3229799999 +29653200.0,314203.485,235765.968,688436.62656,186330.45266,186330.45266,186330.45266,90854.09550000001,589181.11368,946963.8438400001,505999.43604,771046.75968,420581.496,420581.496,420581.496,259733.90449999998,314203.485,314203.485,355925.46418,181288.7244,269471.14096,470007.804,133392.69104,169650.43592000002,403546.857,403546.857,403546.857,403546.857,944705.1449,944705.1449 +29656800.0,516137.28899999993,277853.058,811330.92936,289728.39159,289728.39159,289728.39159,170176.685,1097821.46752,1205643.11168,790200.69324,1204115.34208,473856.147,473856.147,473856.147,391689.81950000004,516137.28899999993,516137.28899999993,567433.2949999999,259225.191,385317.4444,672065.31,190738.5356,242583.5738,543682.287,543682.287,543682.287,543682.287,1551852.7822599998,1551852.7822599998 +29660400.0,1259974.224,625029.609,1825086.4582800001,1669031.22474,1669031.22474,1669031.22474,1470097.5380000002,3450230.2731999997,4247421.10272,2968249.935,4523047.5200000005,1228428.264,1228428.264,1228428.264,1769127.521,1259974.224,1259974.224,2601210.91971,1603723.3983,2383806.13772,4157801.403,1180023.63628,1500768.3159400001,1558478.703,1558478.703,1558478.703,1558478.703,3788322.50016,3788322.50016 +29664000.0,1143629.838,1248992.2110000001,3647057.25612,2118352.55401,2118352.55401,2118352.55401,1978094.0270000002,4291376.44072,3364780.1888,3335496.5989800002,5082661.48416,1373781.7889999999,1373781.7889999999,1373781.7889999999,1837180.5165000001,1143629.838,1143629.838,2241080.03886,2194290.2997,3261636.4454799998,5688900.777000001,1614564.22052,2053422.28046,1620303.591,1620303.591,1620303.591,1620303.591,3438513.71292,3438513.71292 +29667600.0,2108851.7909999997,2299056.978,6713246.37576,1748115.07728,1748115.07728,1748115.07728,2311139.5265,4552383.20448,7561234.834560001,3754267.9786499995,5720789.300799999,2018492.6939999997,2018492.6939999997,2018492.6939999997,1708476.826,2108851.7909999997,2108851.7909999997,2584343.2309499998,1978247.5857,2940506.2878799997,5128790.0370000005,1455599.45812,1851248.97526,2372686.233,2372686.233,2372686.233,2372686.233,6340614.384939999,6340614.384939999 +29671200.0,1572586.995,1215864.702,3550324.92984,813811.35143,813811.35143,813811.35143,1010566.8964999999,2463785.1626399998,7319059.36256,1561942.58514,2380102.98688,1574675.2380000001,1574675.2380000001,1574675.2380000001,1598939.1775,1572586.995,1572586.995,2154420.53918,2330953.5726,3464775.43384,6043212.966000001,1715121.3941600001,2181312.10868,1127080.8599999999,1127080.8599999999,1127080.8599999999,1127080.8599999999,4728244.8983000005,4728244.8983000005 +29674800.0,840127.6199999999,796267.0319999999,2325099.7334399996,491587.02571,491587.02571,491587.02571,659265.866,1613126.11984,4315012.352000001,1078868.42049,1643989.9740799998,711694.824,711694.824,711694.824,696179.4525,840127.6199999999,840127.6199999999,910195.47749,1252329.8017499999,1861487.7546999997,3246780.9675,921467.3603,1171933.32065,690640.323,690640.323,690640.323,690640.323,2525983.7107999995,2525983.7107999995 +29678400.0,854647.524,1238628.639,3616795.6258799997,724079.85386,724079.85386,724079.85386,1001275.905,1816207.68728,3007837.31968,1438436.4035999998,2191903.0912,780123.9180000001,780123.9180000001,780123.9180000001,1128262.3135000002,854647.524,854647.524,1014208.6731399999,916372.2415499999,1362113.80102,2375779.8855,674268.95798,857543.40629,856261.9619999999,856261.9619999999,856261.9619999999,856261.9619999999,2569640.2221599994,2569640.2221599994 +29682000.0,709422.6630000001,766222.755,2237370.4446,570309.5843500001,570309.5843500001,570309.5843500001,970779.3339999999,1441882.3928,2295951.64096,1069697.59323,1630015.3801600002,655726.581,655726.581,655726.581,807212.6124999999,709422.6630000001,709422.6630000001,810549.0788199998,761153.4684,1131393.55056,1973360.844,560058.60144,712289.29512,663700.404,663700.404,663700.404,663700.404,2132997.47342,2132997.47342 +29685600.0,627496.0619999999,549246.036,1603798.4251199998,361625.60500000004,361625.60500000004,361625.60500000004,621756.7475,1311570.6475999998,2136300.5881600003,953478.26364,1452919.25888,606856.9380000001,606856.9380000001,606856.9380000001,527102.73,627496.0619999999,627496.0619999999,751672.5431799999,685848.83355,1019459.25382,1778126.6055,504649.26518,641819.03189,609526.743,609526.743,609526.743,609526.743,1886671.49308,1886671.49308 +29689200.0,1019306.646,1227260.313,3583600.1139599998,1532774.11232,1532774.11232,1532774.11232,1476911.0825,2283594.31616,3050937.4822400003,1805473.2282300002,2751197.30016,924267.1740000001,924267.1740000001,924267.1740000001,1460041.051,1019306.646,1019306.646,1544378.02753,1372439.8782,2040021.74488,3558177.462,1009844.6511199999,1284332.62676,1089277.9109999998,1089277.9109999998,1089277.9109999998,1089277.9109999998,3064715.3156399997,3064715.3156399997 +29692800.0,984093.021,1358195.739,3965931.5578799997,1761855.36879,1761855.36879,1761855.36879,1235855.7889999999,2529669.07592,3295831.32224,1900000.9457099999,2895239.53632,1061699.523,1061699.523,1061699.523,1690980.4274999998,984093.021,984093.021,1675854.5579099997,1404368.8469999998,2087481.5947999998,3640956.27,1033338.0652,1314211.8346,1179624.1619999998,1179624.1619999998,1179624.1619999998,1179624.1619999998,2958839.68314,2958839.68314 +29696400.0,900183.048,1313306.733,3834855.6603599996,1113504.1408700002,1113504.1408700002,1113504.1408700002,1068592.2345000003,2405031.62072,3278056.07872,1603434.24129,2443328.36768,918629.6939999999,918629.6939999999,918629.6939999999,1327746.588,900183.048,900183.048,1365712.07344,1199144.82915,1782432.5608599999,3108894.0015,882333.7261399999,1122162.69197,1121731.779,1121731.779,1121731.779,1121731.779,2706550.3643199997,2706550.3643199997 +29700000.0,2222309.589,1829323.4610000001,5341624.506120001,3535192.05699,3535192.05699,3535192.05699,2899277.199,3570561.6803200003,6753947.88672,3727416.71904,5679873.095679999,2342968.0530000003,2342968.0530000003,2342968.0530000003,2998594.2595,2222309.589,2222309.589,3891171.25553,2876559.2572500003,4275774.5009,7457746.2225,2116579.4041,2691891.2555500004,2481186.765,2481186.765,2481186.765,2481186.765,6681744.16426,6681744.16426 +29703600.0,1655407.9499999997,935308.929,2731102.0726799998,2246621.4977800003,2246621.4977800003,2246621.4977800003,1742555.0520000001,2644077.77112,4655745.35936,2460974.28738,3750056.05696,1673588.34,1673588.34,1673588.34,2156917.5985,1655407.9499999997,1655407.9499999997,1441587.0384499999,1928039.14035,2865875.46294,4998619.9935,1418655.96006,1804263.78813,1800853.7519999999,1800853.7519999999,1800853.7519999999,1800853.7519999999,4977259.902999999,4977259.902999999 +29707200.0,1198934.616,882904.6410000001,2578081.5517200003,1295331.90776,1295331.90776,1295331.90776,1325463.5659999999,1987883.8604800003,3697887.4585600006,1750495.87398,2667422.2841600003,1078607.205,1078607.205,1078607.205,1442366.3415,1198934.616,1198934.616,1264378.4277799998,1402787.14785,2085130.52594,3636855.5685000005,1032174.2470600001,1312731.6766300001,1226495.8169999998,1226495.8169999998,1226495.8169999998,1226495.8169999998,3604796.7454399997,3604796.7454399997 +29710800.0,1040203.896,885651.0059999999,2586100.9375199997,1206570.3929400002,1206570.3929400002,1206570.3929400002,1177813.1785,1907048.9807199996,3559599.0137600005,1671252.81708,2546670.95936,1036753.77,1036753.77,1036753.77,1376278.603,1040203.896,1040203.896,1269052.9012199997,1338240.1270499998,1989186.5592199997,3469511.4404999996,984680.3897799999,1252328.4151899999,1171275.957,1171275.957,1171275.957,1171275.957,3127546.3806399996,3127546.3806399996 +29714400.0,729585.528,624005.9040000001,1822097.23968,793871.2736900001,793871.2736900001,793871.2736900001,640305.617,977340.3695199998,2168293.45664,953993.4942300001,1453704.3721600003,547374.0360000001,547374.0360000001,547374.0360000001,679823.7215,729585.528,729585.528,892849.9392799999,621922.0905,924437.2802,1612390.605,457611.80980000005,581996.2279,738302.322,738302.322,738302.322,738302.322,2193620.48752,2193620.48752 +29718000.0,123244.87800000001,107967.987,315266.52203999995,149187.28264000002,149187.28264000002,149187.28264000002,64896.8285,202009.50111999997,756730.94976,225895.13940000001,344221.1648,180465.432,180465.432,180465.432,116124.56450000001,123244.87800000001,123244.87800000001,226327.12335999997,88897.92120000001,132139.62608000002,230476.09200000003,65411.30992000001,83190.89416000001,154350.132,154350.132,154350.132,154350.132,370556.26652,370556.26652 +29721600.0,121254.06,105197.238,307175.93496,124164.78833000002,124164.78833000002,124164.78833000002,43652.98,209042.40872000004,740780.6521600002,246901.0026,376230.0992,174785.27399999998,174785.27399999998,174785.27399999998,109473.378,121254.06,121254.06,221226.99859,81553.18544999999,121222.26577999999,211434.1845,60007.03522,76317.67231,153477.822,153477.822,153477.822,153477.822,364570.54039999994,364570.54039999994 +29725200.0,130042.16100000001,117957.435,344435.7102,118907.17047000001,118907.17047000001,118907.17047000001,46266.769499999995,221742.2012,738117.78304,252433.09139999998,384659.94879999995,173160.951,173160.951,173160.951,108378.767,130042.16100000001,130042.16100000001,229818.89476,82264.8069,122280.03395999999,213279.129,60530.64803999999,76983.60942,157285.602,157285.602,157285.602,157285.602,390993.43074,390993.43074 +29728800.0,143216.85600000003,134293.629,392137.39667999995,119442.26151,119442.26151,119442.26151,49344.547,251619.09808,772086.00256,295587.03069000004,450418.33248000004,180487.62,180487.62,180487.62,111507.66549999999,143216.85600000003,143216.85600000003,259920.27879999997,101314.58129999999,150595.99492,262667.433,74547.51908,94810.43534,170244.04499999998,170244.04499999998,170244.04499999998,170244.04499999998,430605.34704,430605.34704 +29732400.0,178424.889,148815.372,434540.88624,128040.50281,128040.50281,128040.50281,70200.64450000001,321390.40152,773962.0736000001,324088.64817,493849.36864000006,203312.385,203312.385,203312.385,128400.48199999999,178424.889,178424.889,264123.08845,118852.8471,176665.21964,308137.011,87452.21836,111222.78778000001,228911.745,228911.745,228911.745,228911.745,536464.16626,536464.16626 +29736000.0,216221.43,156566.31600000002,457173.64272,136089.75809000002,136089.75809000002,136089.75809000002,74684.491,378831.37424,774655.42336,363776.45388000004,554326.0249600001,291633.648,291633.648,291633.648,206952.0075,216221.43,216221.43,282418.08699,134966.01510000002,200616.15084000002,349911.891,99308.32716,126301.53018000002,270064.194,270064.194,270064.194,270064.194,650105.7662,650105.7662 +29739600.0,258998.79000000004,174912.357,510744.08243999997,157054.60078,157054.60078,157054.60078,82512.5245,463522.51696,791114.4806400001,416409.6111000001,634528.9312000001,345110.11199999996,345110.11199999996,345110.11199999996,224063.72799999997,258998.79000000004,258998.79000000004,307492.36687,153440.0415,228076.3086,397807.515,112901.5614,143589.5697,322009.07700000005,322009.07700000005,322009.07700000005,322009.07700000005,778723.0286000001,778723.0286000001 +29743200.0,430836.72,241293.456,704576.89152,267270.59964000003,267270.59964000003,267270.59964000003,160952.12,969652.58184,950763.3465600001,678352.02582,1033679.2774400001,394331.40300000005,394331.40300000005,394331.40300000005,351863.274,430836.72,430836.72,520235.60770999995,214388.07839999997,318670.67455999996,555820.9439999999,157747.27743999998,200624.89312,459472.083,459472.083,459472.083,459472.083,1295382.4048,1295382.4048 +29746800.0,1178168.688,541417.929,1580940.3526799998,1593798.43062,1593798.43062,1593798.43062,1404220.6605,3280235.4710399997,3708551.5232000006,2790482.4273900003,4252163.69888,1068831.9360000002,1068831.9360000002,1068831.9360000002,1549165.954,1178168.688,1178168.688,2489730.9157499997,1453929.10605,2161148.94282,3769445.8305,1069804.6261800001,1360590.44739,1442611.014,1442611.014,1442611.014,1442611.014,3542360.5219199997,3542360.5219199997 +29750400.0,1058279.496,1136386.308,3318248.01936,1939446.47325,1939446.47325,1939446.47325,1869933.3309999998,4055511.6945599997,3109041.8175999997,3140246.30745,4785137.230400001,1289409.705,1289409.705,1289409.705,1671823.4749999999,1058279.496,1058279.496,2167580.8338599997,2090305.9827,3107072.10268,5419311.807,1538052.30332,1956113.49986,1514678.7029999997,1514678.7029999997,1514678.7029999997,1514678.7029999997,3181893.6846399996,3181893.6846399996 +29754000.0,2047284.537,2233469.193,6521730.04356,1591568.8927600002,1591568.8927600002,1591568.8927600002,2033407.1485000001,4302480.920399999,7281419.523839999,3569780.2360500004,5439665.1216,1933211.8020000001,1933211.8020000001,1933211.8020000001,1571099.7155000002,2047284.537,2047284.537,2307423.33952,1793256.3958499997,2665531.7291399995,4649183.2485,1319482.4838599998,1678133.7630299998,2293305.5250000004,2293305.5250000004,2293305.5250000004,2293305.5250000004,6155502.174579999,6155502.174579999 +29757600.0,1483351.551,1145626.857,3345230.42244,773078.83213,773078.83213,773078.83213,918426.4285000002,2238049.23072,7014182.62464,1421761.58208,2166493.83936,1476137.7,1476137.7,1476137.7,1510489.5365,1483351.551,1483351.551,2071506.4229599996,2258608.4631,3357240.2340399995,5855651.5709999995,1661889.6839599998,2113611.37658,1064231.529,1064231.529,1064231.529,1064231.529,4459943.6633399995,4459943.6633399995 +29761200.0,788334.081,749829.0599999999,2189500.8551999996,451319.45507,451319.45507,451319.45507,598135.7829999999,1478613.32976,3694424.8332800004,992420.8679700001,1512260.37024,642209.907,642209.907,642209.907,625007.6875,788334.081,788334.081,841964.4538499999,1068120.14445,1587674.88138,2769200.3745,785925.43962,999549.46851,639560.358,639560.358,639560.358,639560.358,2370257.8035399998,2370257.8035399998 +29764800.0,806196.648,1202963.904,3512654.59968,695729.98396,695729.98396,695729.98396,965790.6195,1736545.5612799998,2850344.7392000007,1377410.57076,2098911.34592,736247.73,736247.73,736247.73,1088690.4595,806196.648,806196.648,964658.16473,871586.43435,1295543.2925399998,2259668.5335,641315.45046,815632.73733,809169.1709999999,809169.1709999999,809169.1709999999,809169.1709999999,2423964.58832,2423964.58832 +29768400.0,667893.297,705857.847,2061104.91324,543819.0329,543819.0329,543819.0329,933146.5359999998,1360541.9500799999,2152380.45568,1011006.85287,1540581.8710399999,614810.046,614810.046,614810.046,722067.353,667893.297,667893.297,761216.5980899999,714894.0119999999,1062632.5807999999,1853428.9199999997,526020.7792,668999.5815999999,625117.689,625117.689,625117.689,625117.689,2008132.5129799999,2008132.5129799999 +29772000.0,593094.6,521946.189,1524082.87188,339379.03384,339379.03384,339379.03384,558924.226,1242741.29528,2012171.0272000001,902477.4822,1375203.7824000001,571737.708,571737.708,571737.708,496332.02150000003,593094.6,593094.6,708325.0492499999,645537.3327,959539.44268,1673615.307,474987.96332000004,604095.42986,577055.9400000001,577055.9400000001,577055.9400000001,577055.9400000001,1783237.7639999997,1783237.7639999997 +29775600.0,989136.717,1174123.113,3428439.48996,1516374.6211900003,1516374.6211900003,1516374.6211900003,1438772.9510000001,2206480.4216,2989990.71424,1774688.6532899998,2704287.47168,908300.514,908300.514,908300.514,1445480.939,989136.717,989136.717,1519516.4458499998,1353579.1901999998,2011986.8456799998,3509279.3819999998,995966.9103199999,1266682.7483599999,1053640.773,1053640.773,1053640.773,1053640.773,2974004.39578,2974004.39578 +29779200.0,972265.2990000001,1346290.7040000001,3931168.85568,1711103.89329,1711103.89329,1711103.89329,1222405.9785,2470421.56928,3272687.7344000004,1857004.3291800001,2829720.8825600003,1055707.443,1055707.443,1055707.443,1679514.3295,972265.2990000001,972265.2990000001,1630721.96235,1390927.9783500002,2067502.82214,3606109.5735000004,1023448.2408600001,1301633.8365300002,1164442.941,1164442.941,1164442.941,1164442.941,2923277.66566,2923277.66566 +29782800.0,896690.433,1284555.7740000002,3750902.86008,1102324.42881,1102324.42881,1102324.42881,1066857.6765,2392734.79408,3245516.4032000005,1595150.0040000002,2430704.7680000006,911259.327,911259.327,911259.327,1321294.1105,896690.433,896690.433,1359990.4678099998,1188824.60295,1767092.3727799999,3082137.8595000003,874740.07822,1112504.99881,1110728.9640000002,1110728.9640000002,1110728.9640000002,1110728.9640000002,2696049.2352199997,2696049.2352199997 +29786400.0,2221269.576,1829940.771,5343427.05132,3530863.7625800003,3530863.7625800003,3530863.7625800003,2897792.4745,3541839.16456,6746245.858560001,3725180.5353,5676465.5776,2342656.4579999996,2342656.4579999996,2342656.4579999996,2999995.5265,2221269.576,2221269.576,3875401.521419999,2867653.0034999996,4262536.069399999,7434655.935,2110026.1606,2683556.7613,2481135.909,2481135.909,2481135.909,2481135.909,6678617.191839999,6678617.191839999 +29790000.0,1669421.127,953255.8200000001,2783506.9943999997,2230435.98283,2230435.98283,2230435.98283,1760787.693,2677789.59744,4706618.215679999,2471125.0057200002,3765523.8182400004,1694705.031,1694705.031,1694705.031,2151427.4984999998,1669421.127,1669421.127,1465188.9147999997,1942706.28015,2887676.9892599997,5036645.9115,1429448.07774,1817989.3337700001,1810581.441,1810581.441,1810581.441,1810581.441,5019392.85518,5019392.85518 +29793600.0,1230601.662,911481.0899999999,2661524.7827999997,1318246.05253,1318246.05253,1318246.05253,1346576.5809999998,2046383.21056,3832616.18496,1798435.44972,2740473.0662399996,1112038.44,1112038.44,1112038.44,1492711.92,1230601.662,1230601.662,1299563.1112099998,1446214.74705,2149682.1672199997,3749445.6404999997,1064128.38178,1353371.33119,1266713.607,1266713.607,1266713.607,1266713.607,3700008.9970799997,3700008.9970799997 +29797200.0,1066198.7310000001,910518.9209999999,2658715.2493199995,1233469.37703,1233469.37703,1233469.37703,1206253.335,1959679.56296,3669260.8512000004,1711490.1608700003,2607985.0070400005,1070555.6549999998,1070555.6549999998,1070555.6549999998,1420669.6665,1066198.7310000001,1066198.7310000001,1303351.9626399998,1375134.6550500002,2044027.31442,3565163.9205000005,1011827.47458,1286854.40559,1204395.0150000001,1204395.0150000001,1204395.0150000001,1204395.0150000001,3205704.1845400003,3205704.1845400003 +29800800.0,756375.771,653414.451,1907970.19692,820009.14743,820009.14743,820009.14743,666206.569,1029047.2331200001,2285277.2403200003,996634.59378,1518681.28576,576744.951,576744.951,576744.951,715382.8255,756375.771,756375.771,931453.49856,652351.47795,969668.12278,1691281.6095000003,480001.82822,610472.12381,771669.657,771669.657,771669.657,771669.657,2274169.8181399996,2274169.8181399996 +29804400.0,127951.614,113087.523,330215.56716,154703.85424999997,154703.85424999997,154703.85424999997,66294.739,211396.07471999998,804100.44608,238346.26599,363194.31008,190541.619,190541.619,190541.619,121927.5925,127951.614,127951.614,237717.98257999998,93297.57389999999,138679.35675999997,241882.599,68648.58524,87308.10002,161422.713,161422.713,161422.713,161422.713,384707.85276,384707.85276 +29808000.0,129142.34700000001,113144.60699999999,330382.25243999995,132600.99479000003,132600.99479000003,132600.99479000003,45754.0895,226334.87648,809212.2944000001,264925.36959,403695.8012800001,189435.81900000002,189435.81900000002,189435.81900000002,118287.6555,129142.34700000001,129142.34700000001,237960.93086999998,88318.00575,131277.62829999998,228972.6075,64984.606700000004,82648.20785,163944.0,163944.0,163944.0,163944.0,388287.98998,388287.98998 +29811600.0,144704.946,134661.426,393211.36392,131336.71441000002,131336.71441000002,131336.71441000002,52757.582500000004,255859.15415999998,834891.44448,281630.41725,429151.112,193711.257,193711.257,193711.257,120393.4445,144704.946,144704.946,262435.49994999997,94943.30355,141125.60182,246149.30550000002,69859.51718000001,88848.17789,172870.64399999997,172870.64399999997,172870.64399999997,172870.64399999997,435079.53764,435079.53764 +29815200.0,161318.58000000002,145688.06699999998,425409.15563999995,129353.85111000002,129353.85111000002,129353.85111000002,56937.208999999995,304769.98928,839250.4947200001,326264.95923,497165.65216,197630.832,197630.832,197630.832,120716.03599999998,161318.58000000002,161318.58000000002,279052.8715,114127.44075,169641.2823,295885.9575,83975.2527,106800.74085,198871.092,198871.092,198871.092,198871.092,485031.1972,485031.1972 +29818800.0,204911.81399999998,160740.67200000002,469362.76224,139465.75797,139465.75797,139465.75797,77925.66249999999,370511.97304,835495.6761600001,358841.72016,546806.4307200001,264834.59400000004,264834.59400000004,264834.59400000004,178247.4995,204911.81399999998,204911.81399999998,288747.03208,134979.7446,200636.55864,349947.48600000003,99318.42936000001,126314.37828,270136.122,270136.122,270136.122,270136.122,616101.5207599999,616101.5207599999 +29822400.0,245078.09100000001,176076.98100000003,514144.78452000004,148468.84624,148468.84624,148468.84624,79749.621,460774.3648,849972.1036800001,408615.31452,622651.90784,355510.05,355510.05,355510.05,233700.6595,245078.09100000001,245078.09100000001,315751.5793899999,153022.17059999998,227455.17703999998,396724.146,112594.09096,143198.52508,308554.152,308554.152,308554.152,308554.152,736868.12694,736868.12694 +29826000.0,307622.25,220943.35499999998,645154.5965999999,176468.42752,176468.42752,176468.42752,89071.395,562062.96856,910163.8976000001,493426.09112999996,751887.3769599999,402066.963,402066.963,402066.963,252677.41799999998,307622.25,307622.25,345993.67516999994,176629.4424,262545.49215999997,457928.184,129964.37984,165290.26832,393583.728,393583.728,393583.728,393583.728,924917.565,924917.565 +29829600.0,507826.75800000003,270323.601,789344.91492,284288.76740000007,284288.76740000007,284288.76740000007,169203.0375,1072719.74592,1173362.05376,775110.01512,1181120.0230400001,457547.44200000004,457547.44200000004,457547.44200000004,386552.66650000005,507826.75800000003,507826.75800000003,559729.4546999999,248280.633,369049.2372,643690.53,182685.5028,232341.6294,533218.872,533218.872,533218.872,533218.872,1526865.78572,1526865.78572 +29833200.0,1256811.0899999999,619301.577,1808360.60484,1672880.9929700003,1672880.9929700003,1672880.9929700003,1467509.6415,3426348.2005600003,4212465.45792,2962478.2830300005,4514252.6217600005,1217835.906,1217835.906,1217835.906,1770690.0470000003,1256811.0899999999,1256811.0899999999,2600265.1871299995,1600821.07515,2379492.06726,4150276.8614999996,1177888.09974,1498052.31477,1553440.776,1553440.776,1553440.776,1553440.776,3778812.0105999997,3778812.0105999997 +29836800.0,1146627.8250000002,1253607.984,3660535.31328,2107177.90096,2107177.90096,2107177.90096,1966132.4795,4277295.1261599995,3371495.9014400006,3336716.8018799997,5084520.84096,1378057.5869999998,1378057.5869999998,1378057.5869999998,1846436.9524999997,1146627.8250000002,1146627.8250000002,2242075.7617699997,2197524.99015,3266444.55326,5697287.0115,1616944.3137400001,2056449.3117700003,1624618.545,1624618.545,1624618.545,1624618.545,3447527.6605,3447527.6605 +29840400.0,2106891.204,2291741.91,6691886.377200001,1725839.8370400001,1725839.8370400001,1725839.8370400001,2282990.7449999996,4525345.0264800005,7546455.333760001,3734089.41717,5690041.01664,2014573.0890000002,2014573.0890000002,2014573.0890000002,1698370.8035000002,2106891.204,2106891.204,2485632.37728,1957010.4387,2908938.97308,5073730.767,1439973.11292,1831375.20066,2365118.466,2365118.466,2365118.466,2365118.466,6334719.553359999,6334719.553359999 +29844000.0,1458768.444,1083261.432,3163123.38144,651494.44822,651494.44822,651494.44822,856192.5819999999,2185249.58048,6821778.74624,1306520.62212,1990888.56704,1431499.158,1431499.158,1431499.158,1453495.33,1458768.444,1458768.444,1891736.0880599997,2170993.7844,3227008.0449599996,5628502.404,1597422.58704,2031621.34392,972426.882,972426.882,972426.882,972426.882,4386030.45496,4386030.45496 +29847600.0,727262.1390000001,682963.737,1994254.11204,330364.41119,330364.41119,330364.41119,524809.2325,1375511.94328,3618571.3555200007,860861.0816400001,1311788.3148800002,585296.0249999999,585296.0249999999,585296.0249999999,556586.9575,727262.1390000001,727262.1390000001,671638.67901,1027648.62405,1527517.21402,2664274.2105,756146.39498,961676.11979,556033.9890000001,556033.9890000001,556033.9890000001,556033.9890000001,2186634.83126,2186634.83126 +29851200.0,813673.101,1199060.472,3501256.57824,661735.45955,661735.45955,661735.45955,969000.8895,1761797.83808,2873269.73696,1357679.2817699998,2068844.6198399998,736148.0549999999,736148.0549999999,736148.0549999999,1095854.9280000003,813673.101,813673.101,906081.61436,874077.8283,1299246.54972,2266127.703,643148.62428,817964.1899400001,812737.122,812737.122,812737.122,812737.122,2446443.7903400003,2446443.7903400003 +29854800.0,577636.554,624730.659,1824213.5242799998,406736.01573000004,406736.01573000004,406736.01573000004,825147.064,1186181.2281600002,1727390.9331200002,831582.2495400001,1267172.9516800002,516027.789,516027.789,516027.789,654537.4115,577636.554,577636.554,563287.96966,564761.1842999998,839472.1801199998,1464195.6629999997,415552.6738799999,528504.91074,512733.078,512733.078,512733.078,512733.078,1736760.57236,1736760.57236 +29858400.0,489106.929,408752.45699999994,1193557.17444,185724.12441,185724.12441,185724.12441,424818.2155,1034913.8985599999,1512493.19872,697365.62511,1062652.38112,458053.5,458053.5,458053.5,370050.03,489106.929,489106.929,506398.01211999997,471490.9803,700833.5065199999,1222384.023,346924.22748,441222.42354,445667.11199999996,445667.11199999996,445667.11199999996,445667.11199999996,1470581.49986,1470581.49986 +29862000.0,1029583.3049999999,1212545.679,3540633.3826800003,1508559.4031200001,1508559.4031200001,1508559.4031200001,1479798.5860000001,2309613.6010399996,3155364.5273600006,1816435.0050000001,2767900.96,935364.078,935364.078,935364.078,1489612.8485,1029583.3049999999,1029583.3049999999,1523326.9518999998,1412050.04055,2098899.0726199998,3660870.4755,1038989.9063800001,1321399.91449,1071822.027,1071822.027,1071822.027,1071822.027,3095613.8037,3095613.8037 +29865600.0,1015831.5689999999,1386470.508,4048493.88336,1680747.3098900001,1680747.3098900001,1680747.3098900001,1271183.732,2576967.20088,3425049.90528,1911565.17804,2912861.22368,1097059.869,1097059.869,1097059.869,1707242.9325,1015831.5689999999,1015831.5689999999,1650212.0342499998,1441320.1965,2142406.8106,3736756.0650000004,1060526.9594,1348790.9987,1206016.845,1206016.845,1206016.845,1206016.845,3054266.9174599997,3054266.9174599997 +29869200.0,939111.8520000002,1331374.701,3887614.1269199997,1140019.8612000002,1140019.8612000002,1140019.8612000002,1116017.259,2484938.09816,3425037.3388799997,1674849.32685,2552151.3552,961948.452,961948.452,961948.452,1375417.2355,939111.8520000002,939111.8520000002,1408301.2660599998,1251813.7183499997,1860720.6381399997,3245442.9735,921087.6248599999,1171450.3685299999,1168626.057,1168626.057,1168626.057,1168626.057,2823596.30168,2823596.30168 +29872800.0,2253663.804,1863650.1630000002,5441858.47596,3545838.1269300003,3545838.1269300003,3545838.1269300003,2935048.2385,3624563.9442399996,6896476.72448,3778898.1675899997,5758321.01728,2372388.9450000003,2372388.9450000003,2372388.9450000003,3042438.119,2253663.804,2253663.804,3878233.19247,2916342.9702,4334909.79768,7560889.182,2145852.35832,2729120.95236,2523949.5330000003,2523949.5330000003,2523949.5330000003,2523949.5330000003,6776015.83736,6776015.83736 +29876400.0,1698525.0060000003,984773.9820000001,2875540.02744,2239318.6153800003,2239318.6153800003,2239318.6153800003,1794098.9815,2743227.64424,4824740.98304,2544034.45947,3876623.9382400005,1727949.117,1727949.117,1727949.117,2235869.629,1698525.0060000003,1698525.0060000003,1520754.4147899998,2001074.49135,2974436.65134,5187970.9035,1472395.55166,1872610.4499300001,1868371.9379999998,1868371.9379999998,1868371.9379999998,1868371.9379999998,5106898.51804,5106898.51804 +29880000.0,1262312.8229999999,933416.139,2725575.1258799997,1347986.63329,1347986.63329,1347986.63329,1397009.3934999998,2098356.97384,3946992.50048,1841221.2947099998,2805670.54432,1167781.428,1167781.428,1167781.428,1528632.6369999999,1262312.8229999999,1262312.8229999999,1336587.13864,1480328.0387999997,2200388.8379199994,3837887.5079999994,1089229.02608,1385294.6338399998,1303569.699,1303569.699,1303569.699,1303569.699,3795353.88782,3795353.88782 +29883600.0,1102294.614,943914.4500000001,2756230.194,1272223.94145,1272223.94145,1272223.94145,1244413.289,2024646.36848,3802040.3168,1768381.18527,2694676.09184,1108747.335,1108747.335,1108747.335,1469764.8385,1102294.614,1102294.614,1359443.20525,1423416.81915,2115794.87686,3690339.9015,1047353.6101400001,1332036.9739700002,1247453.361,1247453.361,1247453.361,1247453.361,3314232.47276,3314232.47276 +29887200.0,778762.4190000001,673779.447,1967435.98524,831381.33793,831381.33793,831381.33793,685126.3615,1066470.72984,2360608.32576,1029488.901,1568744.9919999999,594224.2559999999,594224.2559999999,594224.2559999999,739194.267,778762.4190000001,778762.4190000001,966554.7332999998,673259.3801999999,1000746.0416799999,1745487.282,495385.91432,630037.79036,795580.1070000001,795580.1070000001,795580.1070000001,795580.1070000001,2341479.0064600003,2341479.0064600003 +29890800.0,134758.45500000002,119529.23399999998,349025.36327999993,159949.91331,159949.91331,159949.91331,68339.70850000001,224794.99112,859651.2998400001,259682.29833000002,395706.35936,202405.56900000002,202405.56900000002,202405.56900000002,128879.891,134758.45500000002,134758.45500000002,252041.2102,99260.72505,147543.10241999998,257342.6205,73036.28658,92888.43159000001,171734.82,171734.82,171734.82,171734.82,405173.7547,405173.7547 +29894400.0,137651.124,119852.682,349969.83144,139533.93047000002,139533.93047000002,139533.93047000002,47632.8615,239909.58856,859376.20992,280046.34630000003,426737.2896,200136.64200000002,200136.64200000002,200136.64200000002,125010.5465,137651.124,137651.124,250947.35848,93551.09985,139056.20273999998,242539.8885,68835.13026,87545.35023,173905.83,173905.83,173905.83,173905.83,413871.04615999997,413871.04615999997 +29898000.0,152195.42099999997,142664.727,416581.00284,136520.88505,136520.88505,136520.88505,56809.5395,273281.59112,869259.81952,300853.73997,458443.79424,200823.387,200823.387,200823.387,124714.46399999999,152195.42099999997,152195.42099999997,277470.82401999994,102518.95005,152386.19241999998,265789.8705,75433.69658,95937.48659,180329.928,180329.928,180329.928,180329.928,457600.89913999994,457600.89913999994 +29901600.0,178064.124,154890.381,452279.91252,136183.44135,136183.44135,136183.44135,64551.910500000005,343218.00888,873889.45536,345377.86815000005,526290.0848000001,207478.479,207478.479,207478.479,126307.42599999998,178064.124,178064.124,289475.28050999995,122597.78895,182231.77518,317846.11950000003,90207.75582,114727.31361000001,225809.16599999997,225809.16599999997,225809.16599999997,225809.16599999997,535379.46616,535379.46616 +29905200.0,226544.83500000002,169932.627,496203.27084,148124.50796000002,148124.50796000002,148124.50796000002,81949.868,409665.69824,881230.0064000002,389721.1659600001,593860.8243200001,312951.192,312951.192,312951.192,212558.90250000003,226544.83500000002,226544.83500000002,311635.8115,146759.47739999997,218146.18615999995,380487.534,107985.98584,137337.88132,296967.98699999996,296967.98699999996,296967.98699999996,296967.98699999996,681144.8039,681144.8039 +29908800.0,269429.82,196985.124,575196.56208,158631.26180000004,158631.26180000004,158631.26180000004,83481.461,514130.15239999996,898562.7276800001,443155.51392,675284.59264,386596.884,386596.884,386596.884,249998.609,269429.82,269429.82,337618.06546,167418.58814999997,248854.29645999995,434048.19149999996,123187.01053999999,156670.72817,346708.353,346708.353,346708.353,346708.353,810085.6588,810085.6588 +29912400.0,346328.847,245038.827,715513.37484,187319.35277000003,187319.35277000003,187319.35277000003,92590.092,612449.8636800001,996230.60544,537951.0066,819734.8672,430534.70700000005,430534.70700000005,430534.70700000005,269687.21849999996,346328.847,346328.847,364459.02948,191014.13115,283927.17766,495221.8215,140548.66934,178751.49557,433393.059,433393.059,433393.059,433393.059,1041295.39998,1041295.39998 +29916000.0,554481.2729999999,285858.519,834706.8754799999,295987.91728000005,295987.91728000005,295987.91728000005,177480.905,1130830.84112,1323307.9398400001,838483.46463,1277689.0889599998,486703.155,486703.155,486703.155,407325.548,554481.2729999999,554481.2729999999,577039.5335899999,284621.99580000003,423067.75672,737908.878,209425.56728000002,266349.96644000005,577474.0380000001,577474.0380000001,577474.0380000001,577474.0380000001,1667140.3608199998,1667140.3608199998 +29919600.0,1285967.73,683265.531,1995135.3505199999,1712388.5847200002,1712388.5847200002,1712388.5847200002,1502703.3315,3485268.89496,4369567.250560001,3046584.20808,4642414.031359999,1277158.533,1277158.533,1277158.533,1888373.6269999999,1285967.73,1285967.73,2662027.65543,1660834.4449500002,2468697.1255799998,4305867.0795,1222046.0854200001,1554212.97441,1595845.08,1595845.08,1595845.08,1595845.08,3866476.3081999994,3866476.3081999994 +29923200.0,1178071.3290000001,1272242.931,3714949.3585200002,2205340.7739000004,2205340.7739000004,2205340.7739000004,2006891.9849999999,4375027.70136,3466383.79776,3410216.55408,5196520.46336,1400243.3699999999,1400243.3699999999,1400243.3699999999,1912014.8215,1178071.3290000001,1178071.3290000001,2290622.88013,2235506.7123,3322901.33532,5795758.143,1644891.35868,2091992.70114,1656832.5,1656832.5,1656832.5,1656832.5,3542067.79586,3542067.79586 +29926800.0,2155058.571,2327511.348,6796333.13616,1814063.3670500002,1814063.3670500002,1814063.3670500002,2430852.5640000002,4641642.6872000005,7692266.12352,3843590.6659500003,5856900.062400001,2064903.438,2064903.438,2064903.438,1766844.0755000003,2155058.571,2155058.571,2629646.9470699998,2056581.3289499998,3056943.1111799995,5331877.5194999995,1513237.61982,1924553.8856099998,2424189.012,2424189.012,2424189.012,2424189.012,6479542.77014,6479542.77014 +29930400.0,1683958.884,1285176.918,3752716.6005599997,915645.03063,915645.03063,915645.03063,1123788.267,2623293.5673599998,7731278.245760001,1753578.86298,2672120.17216,1676109.5250000001,1676109.5250000001,1676109.5250000001,1706919.8825,1683958.884,1683958.884,2270267.49404,2433120.7477499996,3616638.7410999993,6308090.8275,1790296.2539,2276920.4034499996,1245231.63,1245231.63,1245231.63,1245231.63,5063103.04456,5063103.04456 +29934000.0,920599.9739999999,847079.754,2473472.88168,542074.97685,542074.97685,542074.97685,733275.816,1747973.4659999998,4738749.608320001,1192117.04892,1816559.3126400001,786799.284,786799.284,786799.284,780098.3435000001,920599.9739999999,920599.9739999999,991694.8091699999,1413625.23135,2101240.46734,3664954.3035,1040148.93566,1322873.98193,772373.061,772373.061,772373.061,772373.061,2767937.2551599997,2767937.2551599997 +29937600.0,946856.751,1297593.282,3788972.3834399995,780568.05134,780568.05134,780568.05134,1093904.2170000002,1950009.97128,3278038.3225600002,1559372.8657499999,2376187.224,862848.405,862848.405,862848.405,1204963.221,946856.751,946856.751,1155487.47366,1018259.748,1513561.4031999998,2639932.68,749238.0368,952889.9864,944803.902,944803.902,944803.902,944803.902,2846882.63134,2846882.63134 +29941200.0,797909.169,848776.692,2478427.94064,629186.93288,629186.93288,629186.93288,1058372.6964999998,1573129.5307999998,2569880.22976,1189147.8740400001,1812034.85568,734974.014,734974.014,734974.014,924684.551,797909.169,797909.169,917271.7089899998,859514.57505,1277599.44242,2228371.1205,632432.94658,804335.86159,747640.023,747640.023,747640.023,747640.023,2399046.90146,2399046.90146 +29944800.0,706094.9010000001,609522.798,1779806.57016,419471.97776000004,419471.97776000004,419471.97776000004,734190.618,1437124.0776,2404008.00384,1071424.94613,1632647.5369600002,683228.544,683228.544,683228.544,599592.6195,706094.9010000001,706094.9010000001,847590.2057999999,780023.58075,1159442.4583,2022283.3575000002,573943.2767,729947.99285,690020.538,690020.538,690020.538,690020.538,2122992.00234,2122992.00234 +29948400.0,1098669.066,1368788.5499999998,3996862.5659999996,1610314.4662,1610314.4662,1610314.4662,1549660.5635,2476869.99216,3324753.51744,1918161.54768,2922912.8345600003,999662.676,999662.676,999662.676,1523925.186,1098669.066,1098669.066,1704341.80696,1467316.47015,2181048.1852599997,3804153.8115000003,1079655.08174,1373118.37577,1218228.279,1218228.279,1218228.279,1218228.279,3303331.65844,3303331.65844 +29952000.0,1041236.28,1399196.253,4085653.05876,1847882.3157300001,1847882.3157300001,1847882.3157300001,1279620.0935,2634561.47944,3476376.1638399996,2006613.6226499998,3057696.9488,1108846.653,1108846.653,1108846.653,1757672.2064999999,1041236.28,1041236.28,1746241.0147,1468826.91765,2183293.34426,3808069.7865000004,1080766.47274,1374531.85627,1240133.256,1240133.256,1240133.256,1240133.256,3130650.4152,3130650.4152 +29955600.0,929259.6149999999,1363848.099,3982436.4490799997,1176486.0966100001,1176486.0966100001,1176486.0966100001,1090003.0575,2433984.11568,3351967.0412800005,1643327.26887,2504117.74304,956861.4810000001,956861.4810000001,956861.4810000001,1370822.1765,929259.6149999999,929259.6149999999,1398578.9333099998,1231766.1413999998,1830921.5237599998,3193467.774,906336.56824,1152689.79652,1159456.941,1159456.941,1159456.941,1159456.941,2793973.9090999993,2793973.9090999993 +29959200.0,2226741.0029999996,1838690.955,5368977.588599999,3554282.92516,3554282.92516,3554282.92516,2901612.6229999997,3632859.6642400003,6764388.3782399995,3733412.42505,5689009.4096,2344594.965,2344594.965,2344594.965,3001343.0124999997,2226741.0029999996,2226741.0029999996,4020204.0076899994,2890390.8091499996,4296333.992859999,7493605.801499999,2126756.69414,2704834.8559699995,2496724.344,2496724.344,2496724.344,2496724.344,6695067.949019999,6695067.949019999 +29962800.0,1679169.7319999998,947732.124,2767377.80208,2324709.1364200003,2324709.1364200003,2324709.1364200003,1752734.3225000002,2664219.53984,4751351.17248,2523546.7779900003,3845404.6140800007,1686780.636,1686780.636,1686780.636,2306244.3005,1679169.7319999998,1679169.7319999998,1485306.14817,2009843.3893499998,2987470.91454,5210705.0835,1478847.72846,1880816.40633,1869969.6660000002,1869969.6660000002,1869969.6660000002,1869969.6660000002,5048703.660879999,5048703.660879999 +29966400.0,1236874.7370000002,911876.949,2662680.69108,1406351.9961700002,1406351.9961700002,1406351.9961700002,1400766.3635,2049390.2907999998,3850844.79808,1806671.50293,2753023.24256,1169062.1039999998,1169062.1039999998,1169062.1039999998,1539323.7125,1236874.7370000002,1236874.7370000002,1318252.40469,1456428.5149500002,2164864.11358,3775925.7795000006,1071643.69742,1362929.4004100002,1274647.0140000002,1274647.0140000002,1274647.0140000002,1274647.0140000002,3718870.04258,3718870.04258 +29970000.0,1069814.07,911654.49,2662031.1108,1244862.8007200002,1244862.8007200002,1244862.8007200002,1213237.634,1951271.94272,3646641.9187200004,1714686.1332300003,2612855.0601600003,1067179.392,1067179.392,1067179.392,1419716.501,1069814.07,1069814.07,1320830.20875,1376370.09135,2045863.69134,3568366.9035,1012736.51166,1288010.52993,1207063.626,1207063.626,1207063.626,1207063.626,3216574.3038,3216574.3038 +29973600.0,764623.947,656821.7309999999,1917919.45452,841380.9412800001,841380.9412800001,841380.9412800001,672174.3385,1027572.7499200001,2288244.08576,1003156.6876799999,1528619.71456,575236.359,575236.359,575236.359,721548.4079999999,764623.947,764623.947,948520.1337299999,656747.0442000001,976201.7792800001,1702677.5220000003,483236.0967200001,614585.5055600001,780084.9330000001,780084.9330000001,780084.9330000001,780084.9330000001,2298969.33398,2298969.33398 +29977200.0,130787.106,115000.995,335802.9054,157085.24788,157085.24788,157085.24788,67181.26449999999,214658.17607999998,818548.99904,241873.3107,368568.8544,193436.40899999999,193436.40899999999,193436.40899999999,124000.233,130787.106,130787.106,241791.39842,95172.97094999999,141466.98398,246744.7395,70028.50702,89063.10121,164956.69199999998,164956.69199999998,164956.69199999998,164956.69199999998,393233.23204,393233.23204 +29980800.0,131856.483,115067.11800000002,335995.98456,134491.04174000002,134491.04174000002,134491.04174000002,46517.891,229763.6164,820075.08224,268940.51961,409814.12512000004,191559.51,191559.51,191559.51,120065.60300000002,131856.483,131856.483,241115.17494999996,89705.47905,133339.99602,232569.7605,66005.51298,83946.60879,166939.752,166939.752,166939.752,166939.752,396448.49221999996,396448.49221999996 +29984400.0,146694.73500000002,135571.044,395867.44847999996,131510.76389,131510.76389,131510.76389,54038.81,249927.33183999997,831376.83456,282265.07925,430118.216,192553.203,192553.203,192553.203,120170.8515,146694.73500000002,146694.73500000002,263263.35386,95985.26324999999,142674.3913,248850.6825,70626.19369999999,89823.24635,173971.506,173971.506,173971.506,173971.506,441062.1699,441062.1699 +29988000.0,162913.254,147612.29700000002,431027.90724000003,129373.70864,129373.70864,129373.70864,59027.143000000004,275424.38056,834877.8444800001,326864.53611,498079.29312,194937.792,194937.792,194937.792,120662.42300000001,162913.254,162913.254,278083.87775999994,114843.1122,170705.07048,297741.402,84501.84552,107470.46796000001,204571.848,204571.848,204571.848,204571.848,489825.85036,489825.85036 +29991600.0,210024.49200000003,162833.484,475473.77328,141977.08228,141977.08228,141977.08228,79392.77849999999,368407.03264,841188.8211200001,365110.93458,556359.51936,261635.352,261635.352,261635.352,182361.55699999997,210024.49200000003,210024.49200000003,292200.88143999997,137939.274,205035.6616,357620.34,101496.05840000001,129083.91320000001,277132.104,277132.104,277132.104,277132.104,631473.63928,631473.63928 +29995200.0,251624.826,180744.177,527772.99684,151947.95957000004,151947.95957000004,151947.95957000004,81283.02,466848.74736000004,854941.9353600001,415365.67905000004,632938.1776,345901.08,345901.08,345901.08,238323.92850000004,251624.826,251624.826,320673.9409899999,157602.75705,234263.85121999998,408599.74049999996,115964.49777999999,147485.04919,318924.984,318924.984,318924.984,318924.984,756551.9768399999,756551.9768399999 +29998800.0,315901.797,212058.852,619211.84784,171039.68651000003,171039.68651000003,171039.68651000003,89161.4605,554599.4251999999,910154.4972800001,498991.84020000004,760368.5184000001,395196.28799999994,395196.28799999994,395196.28799999994,251981.1315,315901.797,315901.797,343712.21521,177258.89745,263481.12658,459560.1045,130427.53442,165879.31391,397530.483,397530.483,397530.483,397530.483,949811.40298,949811.40298 +30002400.0,405485.238,245483.616,716812.1587200001,272833.71577,272833.71577,272833.71577,170675.393,668222.87984,1130942.66368,614723.43156,936721.41952,435446.169,435446.169,435446.169,292774.62549999997,405485.238,405485.238,367134.9864,229070.02095,340494.20398,593885.2395,168550.28702000002,214364.29121000002,467495.478,467495.478,467495.478,467495.478,1219158.94892,1219158.94892 +30006000.0,1139444.172,1143591.5760000001,3339287.40192,1101894.70193,1101894.70193,1101894.70193,1082974.83,1724617.1802399997,1806886.9152000002,1513496.4776400002,2306280.34688,715893.8489999999,715893.8489999999,715893.8489999999,1659387.4255000001,1139444.172,1139444.172,2248487.91986,674427.8132999999,1002482.8237199999,1748516.553,496245.65028,631131.21294,1565775.39,1565775.39,1565775.39,1565775.39,3425928.8104799995,3425928.8104799995 +30009600.0,2123311.2479999997,1887220.551,5510684.00892,2718946.56473,2718946.56473,2718946.56473,1921975.3735,3182629.27928,3560246.0256000003,3114006.9653700003,4745153.47104,1299045.5369999998,1299045.5369999998,1299045.5369999998,2037437.192,2123311.2479999997,2123311.2479999997,3207258.93319,1672020.5652,2485324.39568,4334868.132,1230276.86032,1564680.9733600002,2306950.272,2306950.272,2306950.272,2306950.272,6384089.152319999,6384089.152319999 +30013200.0,2485571.058,2382627.039,6957270.95388,2994048.8048900003,2994048.8048900003,2994048.8048900003,2470882.0955,4155900.2492,9797598.76096,3259387.6035,4966685.872,2538449.88,2538449.88,2538449.88,2532966.625,2485571.058,2485571.058,2631032.0971999997,3380003.4536999995,5024103.899079999,8762971.917,2487014.88692,3163015.57766,2202486.393,2202486.393,2202486.393,2202486.393,7473283.64772,7473283.64772 +30016800.0,1823508.8760000002,1598832.903,4668592.07676,2072244.5415100001,2072244.5415100001,2072244.5415100001,2604914.6550000003,3470405.79712,6392869.06176,3463089.8685600003,5277089.323520001,2516161.4820000003,2516161.4820000003,2516161.4820000003,2781149.8645,1823508.8760000002,1823508.8760000002,2034983.2175399999,3226750.95555,4796306.35862,8365650.625500001,2374251.32038,3019601.5114900004,1960309.6649999998,1960309.6649999998,1960309.6649999998,1960309.6649999998,5482683.35384,5482683.35384 +30020400.0,1305365.9849999999,1096970.532,3203153.95344,1807539.5192800001,1807539.5192800001,1807539.5192800001,2327543.5365,3372083.00816,6625295.085440001,2681483.96712,4086070.8070400003,1135077.132,1135077.132,1135077.132,2282422.7125,1305365.9849999999,1305365.9849999999,1194733.31705,2377474.02315,3533924.35046,6163821.5415,1749351.25654,2224846.06117,1534057.335,1534057.335,1534057.335,1534057.335,3924800.3948999997,3924800.3948999997 +30024000.0,1110343.122,947934.2130000002,2767967.9019600004,1413803.3603100004,1413803.3603100004,1413803.3603100004,1587914.9825,2768508.69472,3554383.0656000003,2090324.14941,3185255.8467200003,1104775.1670000001,1104775.1670000001,1104775.1670000001,1576229.5885,1110343.122,1110343.122,1157595.47059,1519112.38995,2258038.66358,3938439.5294999997,1117766.64742,1421589.12541,1193149.098,1193149.098,1193149.098,1193149.098,3338431.65348,3338431.65348 +30027600.0,852857.5020000001,706316.112,2062443.0470399999,824213.2010200002,824213.2010200002,824213.2010200002,905820.6920000002,1853453.52536,2594840.6144000003,1444943.7032100002,2201818.9763200004,798665.331,798665.331,798665.331,1095372.243,852857.5020000001,852857.5020000001,868771.0889,1017709.1343,1512742.96012,2638505.163,748832.89388,952374.72074,915702.963,915702.963,915702.963,915702.963,2564258.22268,2564258.22268 +30031200.0,821261.0249999999,700582.3979999999,2045700.6021599998,788514.41295,788514.41295,788514.41295,877521.4315,1603922.7820799998,2651404.29824,1329953.2173900001,2026595.3788800002,791653.9500000001,791653.9500000001,791653.9500000001,1063534.374,821261.0249999999,821261.0249999999,851177.119,981746.9406,1459288.04504,2545269.846,722371.82296,918721.21108,892392.675,892392.675,892392.675,892392.675,2469258.1484999997,2469258.1484999997 +30034800.0,1017755.427,909175.779,2654793.27468,1151207.6725599999,1151207.6725599999,1151207.6725599999,1101329.425,1972872.9464,3511534.29632,1696349.9849099999,2584914.26272,1019114.568,1019114.568,1019114.568,1310284.22,1017755.427,1017755.427,1280444.2943499999,1288109.6442,1914671.61928,3339543.5220000003,947794.2567200001,1205416.1855600001,1140814.821,1140814.821,1140814.821,1140814.821,3060051.31718,3060051.31718 +30038400.0,1091420.73,982328.3910000001,2868398.90172,1258728.8715100002,1258728.8715100002,1258728.8715100002,1190494.2105,2129382.86152,3827023.11424,1828269.43719,2785934.38048,1108972.629,1108972.629,1108972.629,1415290.7265,1091420.73,1091420.73,1396185.4484499998,1396622.1852,2075966.80368,3620872.332,1027638.05232,1306962.48936,1233929.244,1233929.244,1233929.244,1233929.244,3281538.3281999994,3281538.3281999994 +30042000.0,1083097.611,969825.9809999999,2831891.86452,1270702.48591,1270702.48591,1270702.48591,1200172.442,2112243.80472,3767878.5529600005,1815222.39486,2766053.17312,1093924.074,1093924.074,1093924.074,1398202.9985,1083097.611,1083097.611,1381098.35435,1383652.1735999999,2056687.9222399998,3587246.3759999997,1018094.6857599999,1294825.12048,1220753.934,1220753.934,1220753.934,1220753.934,3256513.48374,3256513.48374 +30045600.0,1088428.0559999999,966237.045,2821412.1714,1322762.05941,1322762.05941,1322762.05941,1245034.385,2129508.51496,3747540.5145600005,1831285.76736,2790530.69312,1092624.609,1092624.609,1092624.609,1403592.9005,1088428.0559999999,1088428.0559999999,1377632.7156799997,1390202.72865,2066424.79666,3604229.2965,1022914.60034,1300955.14607,1223546.547,1223546.547,1223546.547,1223546.547,3272540.3550399994,3272540.3550399994 +30049200.0,1101679.446,978950.3729999999,2858535.0891599995,1338603.0447900002,1338603.0447900002,1338603.0447900002,1261094.4255000001,2161711.67072,3803436.80832,1855338.2303400002,2827182.06528,1109524.827,1109524.827,1109524.827,1423796.325,1101679.446,1101679.446,1392187.8478299999,1408565.5623,2093719.67532,3651836.643,1036426.0186800001,1318139.13114,1239586.806,1239586.806,1239586.806,1239586.806,3312382.86764,3312382.86764 +30052800.0,1101757.395,981399.375,2865686.175,1325760.19235,1325760.19235,1325760.19235,1250559.4955,2161442.88472,3813907.12192,1854032.62821,2825192.57632,1111633.512,1111633.512,1111633.512,1423632.7735000001,1101757.395,1101757.395,1393879.5440699998,1407920.2434,2092760.46056,3650163.5940000005,1035951.1914400001,1317535.2401200002,1240380.1770000001,1240380.1770000001,1240380.1770000001,1240380.1770000001,3312617.2342999997,3312617.2342999997 +30056400.0,1063486.9770000002,887977.119,2592893.1874799994,1119641.45667,1119641.45667,1119641.45667,958011.257,1805635.8389599998,2782528.04544,1537966.8322200002,2343568.50624,883843.059,883843.059,883843.059,1134683.1685,1063486.9770000002,1063486.9770000002,1339916.8851899998,1125146.2788,1672439.65392,2917045.9080000003,827885.4100800001,1052914.6658400001,1084298.172,1084298.172,1084298.172,1084298.172,3197550.84418,3197550.84418 +30060000.0,469368.195,329159.037,961144.38804,593853.1790400001,593853.1790400001,593853.1790400001,394109.64599999995,870568.00576,1128217.1366400002,718181.84802,1094372.33984,397769.289,397769.289,397769.289,491938.57649999997,469368.195,469368.195,764708.6869499999,250645.35105,372564.20081999997,649821.2805,184425.46818,234554.53839,587815.752,587815.752,587815.752,587815.752,1411233.7063,1411233.7063 +30063600.0,165968.49,118194.35699999999,345127.52244,176303.69427,176303.69427,176303.69427,67827.23150000001,343071.56504,838481.58336,318981.44964,486066.97088000004,232390.131,232390.131,232390.131,131207.71300000002,165968.49,165968.49,248114.39834999997,101862.65564999999,151410.66345999998,264088.36649999995,74950.79354,95323.32466999999,179742.699,179742.699,179742.699,179742.699,499011.9266,499011.9266 +30067200.0,169576.587,144392.418,421625.86055999994,155073.21082,155073.21082,155073.21082,60055.299499999994,371126.38776,852591.8771200001,315879.7299,481340.5408,231593.12100000004,231593.12100000004,231593.12100000004,125490.0115,169576.587,169576.587,247600.17086999997,102417.9471,152236.05964,265528.011,75359.37836,95842.96778,177514.446,177514.446,177514.446,177514.446,509860.27157999994,509860.27157999994 +30070800.0,175817.09399999998,169221.81,494127.6852,148838.45515,148838.45515,148838.45515,63101.311,357664.49864,858409.5545600001,321139.9863,489356.1696,224745.16199999995,224745.16199999995,224745.16199999995,120841.26950000002,175817.09399999998,175817.09399999998,263477.82213999995,109899.4554,163356.72136,284924.514,80864.29064,102844.18172000001,193897.014,193897.014,193897.014,193897.014,528623.39596,528623.39596 +30074400.0,185291.859,170047.14299999998,496537.65755999996,150110.46039000002,150110.46039000002,150110.46039000002,68168.7335,343503.05928,843655.33888,345964.0128,527183.2576,268099.32300000003,268099.32300000003,268099.32300000003,121686.222,185291.859,185291.859,269546.01712999993,118925.39474999999,176773.05589999998,308325.0975,87505.59909999999,111290.67804999999,238338.56100000002,238338.56100000002,238338.56100000002,238338.56100000002,557110.85606,557110.85606 +30078000.0,208094.727,184055.418,537441.82056,150096.06073,150096.06073,150096.06073,74031.6955,368002.70024,822174.4543999999,359688.10521,548096.16032,307178.97000000003,307178.97000000003,307178.97000000003,182461.6605,208094.727,208094.727,281582.52746,136811.32875,203359.06149999998,354696.0375,100666.11349999999,128028.37924999998,269521.02900000004,269521.02900000004,269521.02900000004,269521.02900000004,625671.47918,625671.47918 +30081600.0,259506.07799999998,199321.023,582017.38716,154852.35227,154852.35227,154852.35227,75126.919,456340.44992,836778.1888,415212.34587,632704.5270400001,344480.547,344480.547,344480.547,220098.73900000003,259506.07799999998,259506.07799999998,292159.48657999997,149862.1176,222758.01183999996,388531.41599999997,110268.91616,140241.33968,318217.548,318217.548,318217.548,318217.548,780248.27452,780248.27452 +30085200.0,298595.598,203662.94400000002,594695.79648,162822.75130000003,162822.75130000003,162822.75130000003,80592.1235,502308.95288,901343.07904,452324.22563999996,689255.96288,351232.842,351232.842,351232.842,223765.346,298595.598,298595.598,315208.79494,160860.9942,239106.95927999995,417047.02199999994,118361.91671999998,150534.11555999998,356448.08700000006,356448.08700000006,356448.08700000006,356448.08700000006,897777.4313199999,897777.4313199999 +30088800.0,359425.71900000004,219095.70899999997,639759.4702799999,256875.50218000004,256875.50218000004,256875.50218000004,163271.7695,586315.998,1058000.5216,549604.2993000001,837492.2656,383814.438,383814.438,383814.438,263488.1515,359425.71900000004,359425.71900000004,328990.76768999995,221419.56285000002,329122.41194,574050.7185000001,162921.06106,207204.97363000002,405441.03,405441.03,405441.03,405441.03,1080673.32846,1080673.32846 +30092400.0,1100463.471,1125035.82,3285104.5944,1085111.14525,1085111.14525,1085111.14525,1076675.6665,1680151.78232,1663898.87616,1456598.85546,2219579.20832,679212.618,679212.618,679212.618,1638028.175,1100463.471,1100463.471,2101470.3756799996,658588.21875,978938.5375,1707450.9375,484590.8375,616308.48125,1490177.28,1490177.28,1490177.28,1490177.28,3308726.83614,3308726.83614 +30096000.0,2063456.5769999998,1814723.025,5298991.232999999,2630209.2542,2630209.2542,2630209.2542,1841937.6114999999,3091851.84624,3500615.0304000005,3035006.95407,4624772.501440001,1280058.162,1280058.162,1280058.162,1893387.2754999998,2063456.5769999998,2063456.5769999998,3129230.40612,1626538.4577,2417718.89268,4216951.557,1196811.01332,1522118.70486,2250073.089,2250073.089,2250073.089,2250073.089,6204126.1081799995,6204126.1081799995 +30099600.0,2426098.713,2356105.038,6879826.71096,2877152.0149900005,2877152.0149900005,2877152.0149900005,2412109.8575,4031920.9678399996,9624740.85696,3161877.92613,4818099.69696,2479438.743,2479438.743,2479438.743,2455498.1745,2426098.713,2426098.713,2502730.9556599995,3333857.8022999996,4955512.09132,8643335.043,2453060.8026799997,3119832.36314,2081504.9069999997,2081504.9069999997,2081504.9069999997,2081504.9069999997,7294470.130419999,7294470.130419999 +30103200.0,1623646.191,1396657.005,4078238.4545999994,1765747.0702300002,1765747.0702300002,1765747.0702300002,2424046.1,3130387.21472,5605543.105920001,3157356.29265,4811209.588800001,2213198.496,2213198.496,2213198.496,2454259.9655,1623646.191,1623646.191,1703085.6129299998,2930125.6953,4355396.71252,7596622.173,2155993.72148,2742018.8605400003,1722738.6209999998,1722738.6209999998,1722738.6209999998,1722738.6209999998,4881762.88094,4881762.88094 +30106800.0,1301317.242,1085743.311,3170370.46812,1817930.0420600001,1817930.0420600001,1817930.0420600001,2293910.64,3354258.9193599997,6640476.87424,2649915.14025,4037965.9280000003,1129387.179,1129387.179,1129387.179,2247738.4754999997,1301317.242,1301317.242,1166702.8688899998,2301954.228,3421670.2352,5968029.48,1693783.6048,2154174.4504,1510625.082,1510625.082,1510625.082,1510625.082,3912627.17428,3912627.17428 +30110400.0,1085132.061,936362.9910000002,2734179.93372,1389572.61124,1389572.61124,1389572.61124,1546074.978,2687807.91888,3499429.03424,2052937.81938,3128286.20096,1077773.4479999999,1077773.4479999999,1077773.4479999999,1523421.7355,1085132.061,1085132.061,1117867.8335499999,1482933.72375,2204261.9795,3844642.9875,1091146.2955,1387733.0402499998,1160830.4910000002,1160830.4910000002,1160830.4910000002,1160830.4910000002,3262630.3967399998,3262630.3967399998 +30114000.0,815291.8949999999,675886.1760000001,1973587.6339200002,776751.2216200001,776751.2216200001,776751.2216200001,866744.5044999999,1785823.1775999996,2475789.60896,1393626.3684000003,2123621.1328000003,758323.29,758323.29,758323.29,1035766.0599999999,815291.8949999999,815291.8949999999,817088.9664599999,970447.5782999999,1442492.44972,2515975.2029999997,714057.72428,908147.23994,870891.7679999999,870891.7679999999,870891.7679999999,870891.7679999999,2451310.9642999996,2451310.9642999996 +30117600.0,740990.283,626346.147,1828930.74924,693186.57177,693186.57177,693186.57177,784881.174,1437798.99472,2336311.80608,1195680.6808799999,1821989.6089599999,695576.679,695576.679,695576.679,930498.4395,740990.283,740990.283,746901.8023999999,870039.2492999999,1293243.5261199998,2255657.313,640177.02788,814184.87774,792795.9660000001,792795.9660000001,792795.9660000001,792795.9660000001,2227910.78422,2227910.78422 +30121200.0,981117.1950000001,876776.3940000001,2560187.07048,1103843.4382800004,1103843.4382800004,1103843.4382800004,1060409.378,1908462.2490399997,3385374.6688000006,1638736.91898,2497122.92416,979215.9389999999,979215.9389999999,979215.9389999999,1250794.0585,981117.1950000001,981117.1950000001,1225940.2411099998,1238336.9869499998,1840688.5583799998,3210503.2994999997,911171.41262,1158838.81001,1092548.754,1092548.754,1092548.754,1092548.754,2949892.3663,2949892.3663 +30124800.0,1023364.3230000001,919309.503,2684383.74876,1175538.3564100002,1175538.3564100002,1175538.3564100002,1113608.1075,1990924.1527999998,3563327.3395200004,1714039.22235,2611869.2912,1028557.041,1028557.041,1028557.041,1305645.1415000001,1023364.3230000001,1023364.3230000001,1304213.8473,1301796.04005,1935015.3484199997,3375026.7704999996,957864.74058,1218223.94859,1148983.224,1148983.224,1148983.224,1148983.224,3076915.3978200005,3076915.3978200005 +30128400.0,1040287.434,931462.5929999999,2719870.77156,1216576.15827,1216576.15827,1216576.15827,1152264.3930000002,2033691.3488,3615382.02496,1746350.25117,2661105.14464,1046553.423,1046553.423,1046553.423,1329926.689,1040287.434,1040287.434,1318890.8071299996,1325242.09755,1969866.03142,3435812.8455000003,975116.40758,1240164.82709,1167307.368,1167307.368,1167307.368,1167307.368,3127797.55156,3127797.55156 +30132000.0,1064399.622,946173.927,2762827.86684,1290034.4568100001,1290034.4568100001,1290034.4568100001,1218630.9415,2095267.3276799999,3677362.38208,1795803.4040100002,2736462.3299200004,1069677.267,1069677.267,1069677.267,1365371.5809999998,1064399.622,1064399.622,1337733.59252,1358839.8080999998,2019806.3320399998,3522918.0209999997,999837.6859599999,1271605.6475799999,1193372.643,1193372.643,1193372.643,1193372.643,3200294.86348,3200294.86348 +30135600.0,1068371.172,949815.78,2773462.0776,1296164.60534,1296164.60534,1296164.60534,1224030.5595000002,2105261.1036,3692304.45184,1803218.2026599997,2747761.0707199997,1074509.673,1074509.673,1074509.673,1370921.545,1068371.172,1068371.172,1341476.61908,1363733.62965,2027080.60506,3535605.7065,1003438.57194,1276185.2978700001,1197993.747,1197993.747,1197993.747,1197993.747,3212235.9904799997,3212235.9904799997 +30139200.0,1063683.705,947611.737,2767026.2720399997,1278015.75902,1278015.75902,1278015.75902,1208028.822,2093568.13296,3681798.0928,1793337.1238999998,2732704.1887999997,1070484.003,1070484.003,1070484.003,1363355.595,1063683.705,1063683.705,1337630.8028199999,1356264.6236999999,2015978.5270799997,3516241.6169999996,997942.8589199999,1269195.78366,1192960.947,1192960.947,1192960.947,1192960.947,3198142.3397,3198142.3397 +30142800.0,1021122.909,849448.7250000001,2480390.2770000002,1072710.5756400002,1072710.5756400002,1072710.5756400002,916799.1874999999,1732742.72264,2652861.83744,1474893.52374,2247456.79808,842079.354,842079.354,842079.354,1074359.1284999999,1021122.909,1021122.909,1277084.7209899998,1072553.4242999998,1594264.59612,2780694.063,789187.45788,1003698.14274,1034357.214,1034357.214,1034357.214,1034357.214,3070176.21306,3070176.21306 +30146400.0,448266.0449999999,313051.11899999995,914109.2674799999,570303.9881000001,570303.9881000001,570303.9881000001,376110.1575,835234.34136,1066126.6739200002,687518.19213,1047646.7689599999,381285.37200000003,381285.37200000003,381285.37200000003,463068.9175,448266.0449999999,448266.0449999999,723157.7520699999,238083.7212,353892.34608,617254.092,175182.58992,222799.33416,557562.201,557562.201,557562.201,557562.201,1347786.5753,1347786.5753 +30150000.0,161141.865,114122.52900000001,333237.78468,173581.86142,173581.86142,173581.86142,66504.45899999999,335450.13727999997,804425.2032000001,310439.33865,473050.4208,226747.64399999997,226747.64399999997,226747.64399999997,126331.68100000001,161141.865,161141.865,240049.97639999999,98323.13789999999,146149.45435999997,254911.83899999998,72346.40763999999,92011.03522,173930.277,173930.277,173930.277,173930.277,484499.8741,484499.8741 +30153600.0,161637.498,137282.571,400865.10732,151323.57680000004,151323.57680000004,151323.57680000004,55798.148,360551.56103999994,811665.3536,303898.86177,463083.9798400001,224120.895,224120.895,224120.895,120114.253,161637.498,161637.498,238054.71143999996,95935.22954999999,142600.02021999998,248720.9655,70589.37878,89776.42469,170118.807,170118.807,170118.807,170118.807,485990.07732,485990.07732 +30157200.0,177970.476,176545.56900000002,515513.06148,154182.15351,154182.15351,154182.15351,61782.514500000005,377661.42952,884956.3846400002,327369.50778000004,498848.77376000007,236233.34699999998,236233.34699999998,236233.34699999998,123617.9805,177970.476,177970.476,267765.09539,111576.1878,165849.04951999997,289271.598,82098.03448,104413.27204,192033.88199999998,192033.88199999998,192033.88199999998,192033.88199999998,535097.89784,535097.89784 +30160800.0,191756.84100000001,181581.996,530219.42832,160572.07386,160572.07386,160572.07386,70494.3435,374619.22168,900283.0515200001,360559.90572000004,549424.6182400001,284271.61799999996,284271.61799999996,284271.61799999996,126665.105,191756.84100000001,191756.84100000001,283573.13152999996,123277.6341,183242.31043999997,319608.681,90707.98756,115363.51438,243758.907,243758.907,243758.907,243758.907,576548.90194,576548.90194 +30164400.0,219261.33000000002,198900.62099999998,580789.81332,162264.83977000005,162264.83977000005,162264.83977000005,77701.83399999999,409760.11935999995,886380.8377599999,382246.2483,582470.4736,336966.93299999996,336966.93299999996,336966.93299999996,194697.566,219261.33000000002,219261.33000000002,300205.78445,145129.1661,215722.85924,376260.80100000004,106786.39876,135812.23198,286833.555,286833.555,286833.555,286833.555,659245.7322,659245.7322 +30168000.0,274970.874,216743.718,632891.65656,168454.2068,168454.2068,168454.2068,79289.05249999999,515522.16896,912656.87552,445463.37969000003,678801.34048,383783.007,383783.007,383783.007,237336.30199999997,274970.874,274970.874,316004.20540000004,160884.92565,239142.53146,417109.0665,118379.52554,150556.51067000002,346783.422,346783.422,346783.422,346783.422,826745.76116,826745.76116 +30171600.0,329616.258,227378.08499999996,663944.0081999999,179774.37863,179774.37863,179774.37863,86064.6605,573615.11344,1018140.9561600001,500342.10051,762426.05792,401166.90299999993,401166.90299999993,401166.90299999993,247031.946,329616.258,329616.258,345340.38097,180963.50534999996,268987.72893999994,469164.64349999995,133153.39406,169346.09512999997,394958.92500000005,394958.92500000005,394958.92500000005,394958.92500000005,991046.2157199999,991046.2157199999 +30175200.0,489938.08200000005,262129.94999999998,765419.4539999999,278907.99948000006,278907.99948000006,278907.99948000006,167920.74599999998,1039484.9249599999,1169445.3952,751349.58843,1144913.6585600001,429816.978,429816.978,429816.978,368806.51149999996,489938.08200000005,489938.08200000005,535463.88012,270596.69594999996,402220.27397999994,701546.9894999999,199105.71701999998,253225.05620999998,505518.114,505518.114,505518.114,505518.114,1473080.49988,1473080.49988 +30178800.0,1214085.5010000002,596197.6140000001,1740897.03288,1646252.1754800002,1646252.1754800002,1646252.1754800002,1448301.82,3390818.0435200003,4072686.61632,2891898.9903299995,4406703.223359999,1178388.261,1178388.261,1178388.261,1725984.981,1214085.5010000002,1214085.5010000002,2586790.91008,1604303.7552,2384668.79168,4159306.032,1180450.66432,1501311.41536,1493711.628,1493711.628,1493711.628,1493711.628,3650350.4063399998,3650350.4063399998 +30182400.0,1090366.1639999999,1178130.438,3440140.87896,2115129.20762,2115129.20762,2115129.20762,1932256.4974999996,4133767.05216,3200804.1510400004,3238114.1776199997,4934269.22304,1298468.856,1298468.856,1298468.856,1768929.2145,1090366.1639999999,1090366.1639999999,2182335.55215,2133658.0575,3171511.483,5531706.075,1569950.867,1996682.4785000002,1536416.988,1536416.988,1536416.988,1536416.988,3278367.5997599997,3278367.5997599997 +30186000.0,2070172.9500000002,2255879.124,6587167.04208,1708150.7460600003,1708150.7460600003,1708150.7460600003,2322850.3235000004,4428944.55528,7348024.97984,3661488.10293,5579410.44256,1946039.6009999998,1946039.6009999998,1946039.6009999998,1623413.4105,2070172.9500000002,2070172.9500000002,2925230.0521599995,1933839.2061,2874496.79524,5013657.201,1422923.66276,1809691.50398,2322249.348,2322249.348,2322249.348,2322249.348,6224320.003,6224320.003 +30189600.0,1528538.7000000002,1249344.807,3648086.8364399998,788950.9408000001,788950.9408000001,788950.9408000001,942316.004,2343914.4731199997,7206924.370560001,1500419.34441,2286353.28672,1499390.892,1499390.892,1499390.892,1526660.45,1528538.7000000002,1528538.7000000002,2543819.0819599996,2299326.44625,3417764.2485,5961216.7125,1691850.0765000002,2151715.3657500003,1083237.7859999998,1083237.7859999998,1083237.7859999998,1083237.7859999998,4595806.358,4595806.358 +30193200.0,783130.9500000001,795459.879,2322742.84668,457042.5059200001,457042.5059200001,457042.5059200001,588279.258,1545118.12264,4076232.4844800006,979942.58229,1493245.83968,641693.7239999999,641693.7239999999,641693.7239999999,620839.387,783130.9500000001,783130.9500000001,890170.2594199999,1108026.6777,1646992.7406799998,2872661.7569999998,815288.7653199999,1036894.1008599999,633763.6950000001,633763.6950000001,633763.6950000001,633763.6950000001,2354613.723,2354613.723 +30196800.0,803901.783,1234157.637,3603740.30004,687338.59634,687338.59634,687338.59634,949008.7039999999,1716085.0336799999,2795256.1222400004,1355021.48733,2064794.64736,720004.233,720004.233,720004.233,1071764.8935,803901.783,803901.783,965195.3022399998,854150.0787000001,1269625.54908,2214463.1670000004,628485.73692,799315.7526600001,799116.7259999999,799116.7259999999,799116.7259999999,799116.7259999999,2417064.69422,2417064.69422 +30200400.0,662061.615,721528.821,2106864.1573199998,533571.7049300001,533571.7049300001,533571.7049300001,920270.743,1349246.43816,2120685.4816,995461.43991,1516893.62272,602057.436,602057.436,602057.436,700530.0329999999,662061.615,662061.615,767047.02997,701743.24485,1043085.02074,1819334.3385,516344.41226,656693.06123,614342.9130000001,614342.9130000001,614342.9130000001,614342.9130000001,1990598.5890999998,1990598.5890999998 +30204000.0,584050.635,518711.775,1514638.3830000001,332437.66105,332437.66105,332437.66105,547144.1675,1233651.16008,1991526.97792,891096.86232,1357861.88544,561656.664,561656.664,561656.664,483176.841,584050.635,584050.635,718413.7933699999,636400.87695,945958.8343799999,1649928.1995,468265.33662,595545.5120100001,568296.792,568296.792,568296.792,568296.792,1756045.5759,1756045.5759 +30207600.0,958286.934,1152720.0720000002,3365942.6102400003,1490397.1013800001,1490397.1013800001,1490397.1013800001,1403500.875,2134238.8565599998,2885909.936,1731319.8128099998,2638201.6195199997,875994.291,875994.291,875994.291,1412095.447,958286.934,958286.934,1503431.57497,1319607.84285,1961491.1639399999,3421205.5185000002,970970.70906,1234892.2776300001,1006134.1499999999,1006134.1499999999,1006134.1499999999,1006134.1499999999,2881249.3815599997,2881249.3815599997 +30211200.0,933462.4890000001,1326890.556,3874520.42352,1669514.36223,1669514.36223,1669514.36223,1179856.517,2435482.5720800003,3175371.7484800005,1820365.4175,2773890.16,1025020.014,1025020.014,1025020.014,1638379.5015,933462.4890000001,933462.4890000001,1591800.30815,1356072.9290999998,2015693.5884399998,3515744.631,997801.80956,1269016.39538,1129110.4349999998,1129110.4349999998,1129110.4349999998,1129110.4349999998,2806610.55026,2806610.55026 +30214800.0,848790.7530000001,1235621.031,3608013.4105199995,1061748.13646,1061748.13646,1061748.13646,1017331.0700000001,2308053.9648,3090296.9920000006,1524606.61269,2323210.0764800003,859215.8759999999,859215.8759999999,859215.8759999999,1261654.0929999999,848790.7530000001,848790.7530000001,1275036.41616,1127359.34865,1675729.20466,2922783.4965000004,829513.7923400002,1054985.66207,1047213.3869999999,1047213.3869999999,1047213.3869999999,1047213.3869999999,2552030.86402,2552030.86402 +30218400.0,2186278.914,1786551.9450000003,5216731.679400001,3488448.7337700003,3488448.7337700003,3488448.7337700003,2853656.1655,3437087.5342399995,6568130.684160002,3667389.0878100004,5588402.419520001,2299299.5760000004,2299299.5760000004,2299299.5760000004,2947719.096,2186278.914,2186278.914,3782764.6155,2800170.58725,4162228.8729,7259701.5225,2060372.4321,2620406.54955,2434189.2690000003,2434189.2690000003,2434189.2690000003,2434189.2690000003,6573411.93476,6573411.93476 +30222000.0,1604119.6439999999,896143.8330000001,2616739.99236,2104427.3664700002,2104427.3664700002,2104427.3664700002,1690428.6524999999,2545847.3300799998,4393906.80064,2338466.82426,3563378.01792,1559206.8660000002,1559206.8660000002,1559206.8660000002,1919702.1024999998,1604119.6439999999,1604119.6439999999,1378853.5754499997,1807080.5078999999,2686080.16236,4685023.539,1329654.2996399999,1691070.4012199999,1695713.7750000001,1695713.7750000001,1695713.7750000001,1695713.7750000001,4823053.06296,4823053.06296 +30225600.0,1163108.9610000001,857932.0980000001,2505161.72616,1227767.7221700002,1227767.7221700002,1227767.7221700002,1238700.428,1923184.14152,3549230.2214400005,1692336.4674300002,2578798.42656,1025621.49,1025621.49,1025621.49,1385263.2045,1163108.9610000001,1163108.9610000001,1227819.9313899998,1352069.4069,2009742.6739599998,3505365.129,994856.00804,1265269.8894200001,1181264.991,1181264.991,1181264.991,1181264.991,3497080.94274,3497080.94274 +30229200.0,1014198.39,862531.842,2518592.97864,1171114.9501699999,1171114.9501699999,1171114.9501699999,1147678.021,1859390.26496,3476752.06784,1631713.59666,2486420.7187200002,1006826.814,1006826.814,1006826.814,1331683.85,1014198.39,1014198.39,1229197.10173,1303934.89365,1938194.5826599998,3380571.9465,959438.51434,1220225.49307,1141364.79,1141364.79,1141364.79,1141364.79,3049356.4926,3049356.4926 +30232800.0,716129.496,611042.766,1784244.8767199998,764934.5016500001,764934.5016500001,764934.5016500001,626061.4745,953276.5677599999,2131429.81888,932709.1139100001,1421271.0307200002,537635.79,537635.79,537635.79,662223.0370000001,716129.496,716129.496,871643.6305199999,608905.07055,905088.5246199998,1578642.7754999998,448033.8543799999,569814.8684899999,722656.722,722656.722,722656.722,722656.722,2153162.68464,2153162.68464 +30236400.0,121829.283,107045.229,312572.06868,147950.49511000002,147950.49511000002,147950.49511000002,64420.359500000006,200003.1224,747709.2864000001,221721.81170999998,337861.80831999995,178665.32700000002,178665.32700000002,178665.32700000002,114732.7825,121829.283,121829.283,223228.32895999998,87917.3838,130682.13591999999,227933.95799999998,64689.82808,82273.30484,152546.355,152546.355,152546.355,152546.355,366300.04422,366300.04422 +30240000.0,122643.59700000001,107849.898,314921.70216,127255.34690000002,127255.34690000002,127255.34690000002,44214.205,213638.00983999996,763506.45888,250504.59315,381721.2848,179871.396,179871.396,179871.396,111977.23249999998,122643.59700000001,122643.59700000001,227396.47775,83488.42934999999,124098.85053999998,216451.4835,61430.99246,78128.67833,156357.51899999997,156357.51899999997,156357.51899999997,156357.51899999997,368748.41498,368748.41498 +30243600.0,134820.825,124818.615,364470.3558,124844.25855000001,124844.25855000001,124844.25855000001,47776.6205,236408.42096,781698.1452799999,264041.52306000004,402348.98752,182753.154,182753.154,182753.154,113579.94549999999,134820.825,134820.825,243912.32463,87198.8409,129614.07956,226071.06900000002,64161.12244000001,81600.89062,163935.759,163935.759,163935.759,163935.759,405361.2805,405361.2805 +30247200.0,150026.631,141120.702,412072.44983999996,125699.81325000002,125699.81325000002,125699.81325000002,52656.9085,287484.3076,817086.0416,312411.33587999997,476055.36896,191776.19999999998,191776.19999999998,191776.19999999998,116940.70499999999,150026.631,150026.631,273692.16498,107385.3126,159619.64984,278406.36600000004,79014.37816000001,100491.44068000001,181957.16700000002,181957.16700000002,181957.16700000002,181957.16700000002,451080.07054,451080.07054 +30250800.0,180618.9,148027.848,432241.31616,127663.33591000002,127663.33591000002,127663.33591000002,69912.3915,328162.54144,764429.16992,324895.52382,495078.89343999996,214609.26899999997,214609.26899999997,214609.26899999997,136552.0555,180618.9,180618.9,262735.41306999995,119044.05975,176949.4419,308632.7475,87592.9131,111401.72505000001,233791.026,233791.026,233791.026,233791.026,543060.8259999999,543060.8259999999 +30254400.0,209440.89,151535.259,442482.95628,130820.71574,130820.71574,130820.71574,71469.461,371482.95480000007,740528.63872,354131.43654,539628.85568,293324.259,293324.259,293324.259,197979.92200000002,209440.89,209440.89,272932.16573999997,129301.3368,192196.06112,335225.688,95140.24288,121000.51024,260952.68699999998,260952.68699999998,260952.68699999998,260952.68699999998,629718.9426000001,629718.9426000001 +30258000.0,245677.266,174216.957,508713.51443999994,152739.57457000003,152739.57457000003,152739.57457000003,78783.3375,441444.20424,749201.17376,394113.80463,600554.36896,326397.237,326397.237,326397.237,211656.984,245677.266,245677.266,292563.59391999996,145238.73885,215885.73033999998,376544.8785,106867.02266,135914.77043,307003.374,307003.374,307003.374,307003.374,738669.64644,738669.64644 +30261600.0,409534.42799999996,228622.13100000002,667576.6225200001,259186.58656000005,259186.58656000005,259186.58656000005,156926.4865,933908.49976,888831.9276800001,648991.6923,988939.7216,369960.573,369960.573,369960.573,335930.41650000005,409534.42799999996,409534.42799999996,502581.4598999999,203196.82679999998,302035.77712,526806.588,149512.72688,190152.09224,435243.01800000004,435243.01800000004,435243.01800000004,435243.01800000004,1231333.5135199998,1231333.5135199998 +30265200.0,1142133.246,518594.82,1514296.8744,1572798.49232,1572798.49232,1572798.49232,1379872.6864999998,3221120.14112,3558385.143040001,2721660.76686,4147292.5971199996,1015861.5750000001,1015861.5750000001,1015861.5750000001,1478411.165,1142133.246,1142133.246,2445992.4746399997,1409780.5055999998,2095525.5910399999,3654986.496,1037319.97696,1319276.07808,1394160.837,1394160.837,1394160.837,1394160.837,3434013.95964,3434013.95964 +30268800.0,990594.996,1091001.6600000001,3185724.8472,1840422.81159,1840422.81159,1840422.81159,1820221.9595,3910127.5576,2874590.28608,3004758.4898099997,4578679.603519999,1205033.268,1205033.268,1205033.268,1559692.1900000002,990594.996,990594.996,2105417.7550899996,2013114.56625,2992333.2564999997,5219185.912500001,1481254.6685,1883877.5817500001,1432476.4349999998,1432476.4349999998,1432476.4349999998,1432476.4349999998,2978388.9546399997,2978388.9546399997 +30272400.0,1970112.699,2123158.344,6199622.36448,1465206.76027,1465206.76027,1465206.76027,1857870.0665,4066049.18616,6877757.064320001,3380648.87832,5151464.95744,1824663.543,1824663.543,1824663.543,1437626.463,1970112.699,1970112.699,2195968.47262,1661796.6075,2470127.303,4308361.575,1222754.047,1555113.3685,2202958.659,2202958.659,2202958.659,2202958.659,5923472.18166,5923472.18166 +30276000.0,1352852.4419999998,1042149.0120000001,3043075.11504,677344.4264400001,677344.4264400001,677344.4264400001,770898.8525,1942735.6205599997,6596538.5491200015,1175033.04429,1790526.5436800001,1307176.1069999998,1307176.1069999998,1307176.1069999998,1352491.679,1352852.4419999998,1352852.4419999998,1900629.37402,2121990.9551999997,3154169.27168,5501458.032,1561366.1843199998,1985764.37536,908281.9019999999,908281.9019999999,908281.9019999999,908281.9019999999,4067576.3422799995,4067576.3422799995 +30279600.0,669807.3629999999,647279.244,1890055.39248,352244.33640000003,352244.33640000003,352244.33640000003,463691.88600000006,1194104.3036,2927610.5606400003,782437.01886,1192284.9811200001,488155.059,488155.059,488155.059,467901.343,669807.3629999999,669807.3629999999,691019.8957999999,818959.7177999999,1217317.9015199998,2123228.898,602592.58248,766384.5260399999,511245.966,511245.966,511245.966,511245.966,2013887.4714199998,2013887.4714199998 +30283200.0,668330.79,1086383.5050000001,3172239.8346,574239.98335,574239.98335,574239.98335,820229.5920000001,1435345.9436,2271294.09024,1136306.77566,1731515.08672,567529.419,567529.419,567529.419,932411.683,668330.79,668330.79,793570.0096999999,690894.5706,1026959.33704,1791208.1460000002,508361.93096,646540.84508,654953.595,654953.595,654953.595,654953.595,2009447.9086000002,2009447.9086000002 +30286800.0,465754.941,486447.83400000003,1420427.67528,371019.63305000006,371019.63305000006,371019.63305000006,675037.3559999999,923923.4196,1309041.89888,659223.5932799999,1004531.18976,374080.083,374080.083,374080.083,431125.779,465754.941,465754.941,480643.77621,436763.9151,649214.5108399999,1132350.891,321371.96716,408724.75018,402290.08199999994,402290.08199999994,402290.08199999994,402290.08199999994,1400369.85594,1400369.85594 +30290400.0,433885.53599999996,378291.615,1104611.5158,216792.10718,216792.10718,216792.10718,381285.24700000003,891292.51304,1348970.04096,628242.16686,957321.39712,378793.59300000005,378793.59300000005,378793.59300000005,318893.435,433885.53599999996,433885.53599999996,508839.1207899999,428708.78099999996,637241.2003999999,1111467.21,315444.97959999996,401186.73579999997,402921.72299999994,402921.72299999994,402921.72299999994,402921.72299999994,1304549.1782399998,1304549.1782399998 +30294000.0,779217.7079999999,892825.3470000001,2607050.0132400002,1322106.5126500002,1322106.5126500002,1322106.5126500002,1203218.0265000002,1697292.4801600003,2186659.2992000002,1457629.03167,2221149.00064,677241.681,677241.681,677241.681,1230906.1695,779217.7079999999,779217.7079999999,1286081.74422,1106613.41805,1644892.04362,2868997.7505,814248.88538,1035571.5689899999,774089.5380000001,774089.5380000001,774089.5380000001,774089.5380000001,2342847.9087199997,2342847.9087199997 +30297600.0,736866.666,1147376.469,3350339.28948,1332976.6523700003,1332976.6523700003,1332976.6523700003,963699.0334999998,1925400.6025599998,2458389.60576,1427310.3054,2174949.0368000004,814047.8700000001,814047.8700000001,814047.8700000001,1384145.581,736866.666,736866.666,1395113.3186899999,1116823.0549499998,1660067.8495799997,2895467.1794999996,821761.1614199999,1045125.77241,906784.6799999999,906784.6799999999,906784.6799999999,906784.6799999999,2215512.44244,2215512.44244 +30301200.0,664603.326,961426.2629999999,2807364.68796,901541.52011,901541.52011,901541.52011,811927.053,1840231.7711999998,2416988.37696,1191439.71387,1815527.18304,664446.2999999999,664446.2999999999,664446.2999999999,1027395.7295000001,664603.326,664603.326,1020568.8495599999,888813.1457999999,1321149.4167199999,2304330.378,653990.9072799999,831753.5364399999,814406.589,814406.589,814406.589,814406.589,1998240.66684,1998240.66684 +30304800.0,2073777.6870000002,1677926.943,4899546.67356,3328273.5825900002,3328273.5825900002,3328273.5825900002,2738908.494,3160416.5355999996,5993594.821760001,3502713.60432,5337468.34944,2177505.213,2177505.213,2177505.213,2704501.772,2073777.6870000002,2073777.6870000002,3532671.1330299997,2602025.27685,3867701.76954,6745991.4585,1914576.62346,2434981.67883,2305720.92,2305720.92,2305720.92,2305720.92,6235158.24558,6235158.24558 +30308400.0,1438347.594,800786.9279999998,2338297.8297599996,1789739.3050900002,1789739.3050900002,1789739.3050900002,1526793.723,2252940.31384,3612894.69376,2007595.9238999998,3059193.7887999997,1308177.738,1308177.738,1308177.738,1513593.109,1438347.594,1438347.594,1098952.4700699998,1520479.9656,2260071.45504,3941985.096,1118772.91296,1422868.90608,1446490.815,1446490.815,1446490.815,1446490.815,4324631.76596,4324631.76596 +30312000.0,1049774.211,780115.4040000001,2277936.9796800003,1105738.8006500003,1105738.8006500003,1105738.8006500003,1058850.366,1727284.61192,3123171.66272,1514444.0173799999,2307724.21696,923756.6639999999,923756.6639999999,923756.6639999999,1229299.981,1049774.211,1049774.211,1113480.85381,1197062.71605,1779337.6668199997,3103495.9305,880801.7021799999,1120214.2453899998,1051065.393,1051065.393,1051065.393,1051065.393,3156321.1277399994,3156321.1277399994 +30315600.0,961745.0549999999,821616.642,2399120.59464,1119362.9506400002,1119362.9506400002,1119362.9506400002,1086137.255,1774032.8074400001,3311427.1494400003,1556884.93275,2372396.088,963345.8640000001,963345.8640000001,963345.8640000001,1264616.0344999998,961745.0549999999,961745.0549999999,1160802.0618999999,1244621.5461,1850030.05124,3226796.601,915795.60676,1164719.91598,1088562.1379999998,1088562.1379999998,1088562.1379999998,1088562.1379999998,2891646.7986999997,2891646.7986999997 +30319200.0,688247.274,585534.771,1709761.5313199998,735579.82608,735579.82608,735579.82608,607458.544,911291.7273599999,2054795.4400000002,888888.59598,1354496.9081599999,521663.88000000006,521663.88000000006,521663.88000000006,642964.8119999999,688247.274,688247.274,816589.6114999999,588263.49225,874406.4748999999,1525127.5725,432845.7301,550498.42855,698329.866,698329.866,698329.866,698329.866,2069330.13716,2069330.13716 +30322800.0,117191.658,103922.571,303453.90731999994,121235.86981,121235.86981,121235.86981,63033.0085,184339.90368000002,727582.0371200001,210016.06521,320024.48032000003,173857.338,173857.338,173857.338,111961.05200000001,117191.658,117191.658,206955.19468,84997.73475,126342.3119,220364.4975,62541.5431,79541.09005,143921.697,143921.697,143921.697,143921.697,352356.25171999994,352356.25171999994 +30326400.0,113066.115,102242.976,298549.48991999996,97478.11579,97478.11579,97478.11579,42111.909,200106.99848,721210.62208,213623.92548000003,325522.17216,170466.255,170466.255,170466.255,106023.6835,113066.115,113066.115,214772.63755999997,77598.567,115344.04279999998,201181.47,57097.2172,72616.93059999999,142693.458,142693.458,142693.458,142693.458,339952.1191,339952.1191 +30330000.0,121921.854,113081.508,330198.00336000003,109291.34777000001,109291.34777000001,109291.34777000001,42115.7835,211655.02032,726663.98272,240045.34407,365783.38144,170946.09000000003,170946.09000000003,170946.09000000003,106495.51150000001,121921.854,121921.854,222029.71063,78737.10705,117036.39122,204133.2405,57934.957780000004,73682.37919,148666.62300000002,148666.62300000002,148666.62300000002,148666.62300000002,366578.37436,366578.37436 +30333600.0,132291.549,127021.506,370902.79752,110936.99122000001,110936.99122000001,110936.99122000001,45426.472,218553.83568,732534.4064000001,261185.17698,397996.46016,171117.44400000002,171117.44400000002,171117.44400000002,105339.3845,132291.549,132291.549,246818.53144,92616.58665,137667.12386,240117.07650000002,68147.51314000001,86670.83047,154576.407,154576.407,154576.407,154576.407,397756.5906599999,397756.5906599999 +30337200.0,145422.282,135729.63299999997,396330.52835999994,116478.55670000002,116478.55670000002,116478.55670000002,60615.53050000001,241663.37559999997,736184.17856,295637.79882,450495.69344000006,175473.45,175473.45,175473.45,113408.6205,145422.282,145422.282,247352.87915,104534.12879999999,155381.59391999998,271014.408,76916.47008,97823.29584,196403.38199999998,196403.38199999998,196403.38199999998,196403.38199999998,437236.32788,437236.32788 +30340800.0,187426.551,144175.94400000002,420993.75648,123851.65881,123851.65881,123851.65881,69524.014,330865.77816,731329.8380800001,326774.55804000003,497942.1836800001,258783.33599999998,258783.33599999998,258783.33599999998,180679.7825,187426.551,187426.551,260941.23497,122241.53879999998,181702.23791999999,316922.508,89945.62607999999,114393.93384,242017.866,242017.866,242017.866,242017.866,563529.16334,563529.16334 +30344400.0,222015.63,160045.257,467332.15044,139549.79126,139549.79126,139549.79126,77871.73100000001,413736.33592000004,738424.9145600001,366974.52246,559199.27232,306288.684,306288.684,306288.684,207576.65600000002,222015.63,222015.63,285003.54376,138854.75625,206396.45249999998,359993.8125,102169.6725,129940.62375,277773.588,277773.588,277773.588,277773.588,667526.9942000001,667526.9942000001 +30348000.0,391626.7949999999,205471.28399999999,599976.14928,250889.88342,250889.88342,250889.88342,157757.39,928677.61176,851561.2256,636102.25287,969298.6710399999,376552.29600000003,376552.29600000003,376552.29600000003,337170.1165,391626.7949999999,391626.7949999999,507143.4178199999,201344.53499999997,299282.49399999995,522004.35,148149.80599999998,188418.713,428321.478,428321.478,428321.478,428321.478,1177491.2302999997,1177491.2302999997 +30351600.0,1132200.474,515749.671,1505989.03932,1560223.41739,1560223.41739,1560223.41739,1346662.947,3213565.6456,3480418.954240001,2674616.19978,4075605.63776,1019369.0310000001,1019369.0310000001,1019369.0310000001,1461292.0665000002,1132200.474,1132200.474,2416073.7407299997,1384803.9652500001,2058399.9681,3590232.5025000004,1018942.1769000001,1295902.96995,1389357.378,1389357.378,1389357.378,1389357.378,3404149.4251599996,3404149.4251599996 +30355200.0,1007931.6900000002,1105182.321,3227132.37732,1802872.83286,1802872.83286,1802872.83286,1823389.743,3948431.79056,2981639.7158400007,3020273.7973800004,4602321.976960001,1253211.207,1253211.207,1253211.207,1591358.2089999998,1007931.6900000002,1007931.6900000002,2127304.64999,2023315.4753999999,3007496.0893599996,5245632.714,1488760.5226399999,1893423.61772,1464508.209,1464508.209,1464508.209,1464508.209,3030514.6146000004,3030514.6146000004 +30358800.0,1992663.336,2153098.1969999997,6287046.735239999,1466908.61449,1466908.61449,1466908.61449,1859671.3695,4151464.89768,7035659.548800001,3427704.75726,5223169.1539199995,1879457.2259999998,1879457.2259999998,1879457.2259999998,1487952.046,1992663.336,1992663.336,2102574.11195,1696618.04175,2521886.5707,4398639.367500001,1248375.7443000001,1587699.3526500002,2232390.1229999997,2232390.1229999997,2232390.1229999997,2232390.1229999997,5991274.43024,5991274.43024 +30362400.0,1419280.392,1089229.212,3180549.2990400004,723350.22089,723350.22089,723350.22089,850320.31,2110801.9203999997,6888335.264000001,1310115.0356700001,1996365.7686400004,1431610.113,1431610.113,1431610.113,1454800.97,1419280.392,1419280.392,1931978.1113099996,2201899.88925,3272947.4897,5708629.3425,1620163.3753,2060543.3531499999,1006617.642,1006617.642,1006617.642,1006617.642,4267303.04528,4267303.04528 +30366000.0,716783.3250000001,686952.933,2005902.5643599997,376530.87296000007,376530.87296000007,376530.87296000007,514860.5804999999,1325495.3683999998,3244746.9260800006,864881.2403699999,1317914.27104,565207.02,565207.02,565207.02,531026.6429999999,716783.3250000001,716783.3250000001,733775.94732,901444.7718,1339925.31512,2337079.038,663285.28888,843574.24324,566429.985,566429.985,566429.985,566429.985,2155128.5305,2155128.5305 +30369600.0,732096.48,1138182.438,3323492.71896,616950.55521,616950.55521,616950.55521,890472.4955000001,1601769.6208,2581600.92736,1252361.94321,1908361.0563200002,665109.291,665109.291,665109.291,1014714.26,732096.48,732096.48,858511.3204199999,782427.48255,1163015.66542,2028515.6955,575712.07358,732197.5700899999,731050.467,731050.467,731050.467,731050.467,2201170.0831999998,2201170.0831999998 +30373200.0,583848.39,617276.31,1802446.8252,469706.0992800001,469706.0992800001,469706.0992800001,819524.0655,1202001.27424,1848030.2336000002,872854.04409,1330063.30528,532143.924,532143.924,532143.924,613678.0265,583848.39,583848.39,643383.8299199998,608901.9722999999,905083.9193199999,1578634.743,448031.57467999996,569811.96914,540894.171,540894.171,540894.171,540894.171,1755437.4926,1755437.4926 +30376800.0,532956.738,475349.184,1388019.61728,293635.12354,293635.12354,293635.12354,497017.4055,1130845.26592,1811796.77632,808651.68447,1232231.13824,516505.467,516505.467,516505.467,440107.171,532956.738,532956.738,635794.02029,575536.9220999999,855489.4496399999,1492132.761,423481.48835999996,538588.87278,520055.80500000005,520055.80500000005,520055.80500000005,520055.80500000005,1602423.25892,1602423.25892 +30380400.0,907244.5560000001,1063009.1400000001,3103986.6888,1441442.43727,1441442.43727,1441442.43727,1359239.1295,2043254.17944,2755992.44352,1669328.59821,2543738.8163199998,847277.4450000001,847277.4450000001,847277.4450000001,1383869.767,907244.5560000001,907244.5560000001,1438283.8431,1278649.69065,1900610.15746,3315017.7165,940833.59954,1196563.53767,944524.4280000001,944524.4280000001,944524.4280000001,944524.4280000001,2727781.96504,2727781.96504 +30384000.0,895389.717,1292184.1379999998,3773177.68296,1565995.33673,1565995.33673,1565995.33673,1130520.3769999999,2308877.58,3086637.68896,1718440.61298,2618576.17216,1003833.5460000001,1003833.5460000001,1003833.5460000001,1603700.077,895389.717,895389.717,1543043.72391,1318642.3998,1960056.11032,3418702.518,970260.33368,1233988.81364,1086637.242,1086637.242,1086637.242,1086637.242,2692138.41578,2692138.41578 +30387600.0,841599.612,1196116.512,3492660.21504,1056670.80332,1056670.80332,1056670.80332,1005443.9885,2297730.09456,3108321.22432,1514279.60901,2307473.68992,870508.3200000001,870508.3200000001,870508.3200000001,1266542.2140000002,841599.612,841599.612,1221898.3548199998,1124431.67655,1671377.45502,2915193.2355,827359.60398,1052245.9392900001,1041549.5819999999,1041549.5819999999,1041549.5819999999,1041549.5819999999,2530409.5000799997,2530409.5000799997 +30391200.0,2184039.264,1791306.141,5230613.93172,3476954.40664,3476954.40664,3476954.40664,2854578.482,3423670.8876,6582607.416320001,3665257.89378,5585154.88576,2307226.524,2307226.524,2307226.524,2959932.2235,2184039.264,2184039.264,3725411.87343,2797909.1441999995,4158867.4192799996,7253838.522,2058708.45672,2618290.2855599998,2437308.906,2437308.906,2437308.906,2437308.906,6566678.05376,6566678.05376 +30394800.0,1579273.2000000002,887964.9419999998,2592857.6306399996,2039370.9276600003,2039370.9276600003,2039370.9276600003,1676034.0659999999,2514924.7578399996,4334020.6368,2291271.6867600004,3491461.6179200006,1562866.857,1562866.857,1562866.857,1906927.2914999998,1579273.2000000002,1579273.2000000002,1329490.6281799998,1778427.1224,2643489.2041599997,4610736.984,1308571.0678400001,1664256.4923200002,1677543.387,1677543.387,1677543.387,1677543.387,4748348.0879999995,4748348.0879999995 +30398400.0,1138901.361,840148.83,2453234.5836,1184184.5056800002,1184184.5056800002,1184184.5056800002,1193872.4734999998,1876746.7624799998,3437498.20288,1642785.9997499997,2503292.9519999996,1010874.192,1010874.192,1010874.192,1357125.2625,1138901.361,1138901.361,1192953.47275,1314858.7278,1954431.98552,3408892.998,967476.2984800001,1230448.04404,1155402.189,1155402.189,1155402.189,1155402.189,3424296.75874,3424296.75874 +30402000.0,991258.101,843588.213,2463277.58196,1143026.2155400002,1143026.2155400002,1143026.2155400002,1119656.125,1817904.26568,3394687.1654400006,1589477.53125,2422061.0,992609.9879999999,992609.9879999999,992609.9879999999,1308190.8,991258.101,991258.101,1189561.7397299998,1273682.9367,1893227.4762799998,3302140.947,937179.04972,1191915.63706,1116739.3020000001,1116739.3020000001,1116739.3020000001,1116739.3020000001,2980382.69034,2980382.69034 +30405600.0,701302.668,600253.206,1752739.36152,747005.6184800001,747005.6184800001,747005.6184800001,616359.786,934587.94288,2093406.6886399998,910251.28509,1387049.57728,531025.698,531025.698,531025.698,656124.3535,701302.668,701302.668,852653.0530699999,598854.7768499999,890149.5695399998,1552586.4584999997,440638.8234599999,560409.77883,711460.29,711460.29,711460.29,711460.29,2108583.35512,2108583.35512 +30409200.0,118765.53,105386.766,307729.35672,126029.32859,126029.32859,126029.32859,63427.83649999999,195070.19704000003,741539.1296,212789.17590000003,324250.17280000006,176841.15000000002,176841.15000000002,176841.15000000002,113720.775,118765.53,118765.53,217659.99397999997,86280.68565,128249.31545999998,223690.6665,63485.54154,80741.67867,147114.384,147114.384,147114.384,147114.384,357088.3602,357088.3602 +30412800.0,116156.73000000001,104033.02799999999,303776.44176,120155.13015000001,120155.13015000001,120155.13015000001,42603.3125,203913.74992000003,738023.11616,229394.49372,349553.51424000005,173859.384,173859.384,173859.384,108241.5145,116156.73000000001,116156.73000000001,218822.91248999996,79699.0914,118466.30376,206627.274,58642.78824,74582.60652,147729.6,147729.6,147729.6,147729.6,349244.56820000004,349244.56820000004 +30416400.0,121288.818,111726.92400000001,326242.61808000004,111743.05472000001,111743.05472000001,111743.05472000001,41934.0565,207820.43544000003,712048.6176,237562.44393,361999.91456,167469.435,167469.435,167469.435,104659.632,121288.818,121288.818,218658.78086,77637.59684999999,115402.05753999998,201282.6585,57125.93545999999,72653.45482999999,148316.394,148316.394,148316.394,148316.394,364675.04611999996,364675.04611999996 +30420000.0,130150.659,123028.755,359243.9646,106491.15114000002,106491.15114000002,106491.15114000002,44072.8785,216229.34047999998,705534.1849600001,255521.50931999998,389366.10944,165025.266,165025.266,165025.266,102006.9365,130150.659,130150.659,238587.02932999996,89493.34814999999,133024.68045999997,232019.7915,65849.42654,83748.09617,150391.437,150391.437,150391.437,150391.437,391319.64806,391319.64806 +30423600.0,142418.157,131007.444,382541.73648,110785.07440000001,110785.07440000001,110785.07440000001,57499.183,234807.53680000003,705378.3616000002,285630.00500999996,435245.72192,168470.36099999998,168470.36099999998,168470.36099999998,108666.593,142418.157,142418.157,237746.54916999995,100051.8966,148719.11544,259393.80599999998,73618.43256,93628.81188,187683.447,187683.447,187683.447,187683.447,428203.92538,428203.92538 +30427200.0,180235.107,139211.256,406496.86751999997,119095.00504,119095.00504,119095.00504,67346.53099999999,307415.0012,705562.7014400001,313068.37527,477056.57184000005,241341.24,241341.24,241341.24,168574.462,180235.107,180235.107,249572.05922999998,117079.48169999999,174029.25428,303539.397,86147.37172,109563.26806,231448.37100000004,231448.37100000004,231448.37100000004,231448.37100000004,541906.88838,541906.88838 +30430800.0,207644.592,150842.325,440459.589,131623.77965,131623.77965,131623.77965,74481.10250000001,371298.86632,696601.3350400002,341695.33125,520678.60000000003,275065.758,275065.758,275065.758,194856.6305,207644.592,207644.592,267154.41297999996,129073.40684999998,191857.26153999998,334634.7585,94972.53146,120787.21283,255027.858,255027.858,255027.858,255027.858,624318.07328,624318.07328 +30434400.0,358812.66299999994,188824.182,551366.61144,234931.98729000002,234931.98729000002,234931.98729000002,151980.78350000002,855973.9684,758243.09568,586497.59742,893710.6246399999,329374.998,329374.998,329374.998,313897.36,358812.66299999994,358812.66299999994,477266.94937999995,185531.65424999996,275777.91569999995,481007.99249999993,136514.6493,173620.98015,385277.66699999996,385277.66699999996,385277.66699999996,385277.66699999996,1078830.0734199998,1078830.0734199998 +30438000.0,1090998.2519999999,478075.875,1395981.555,1530221.47751,1530221.47751,1530221.47751,1306040.5155,3134753.7068,3253505.2608,2591543.5035000006,3949018.6720000007,956452.923,956452.923,956452.923,1381476.3795,1090998.2519999999,1090998.2519999999,2366190.74588,1323336.9370499998,1967034.1632199998,3430873.5404999997,973714.58578,1238381.9731899998,1335392.4719999998,1335392.4719999998,1335392.4719999998,1335392.4719999998,3280268.0776799996,3280268.0776799996 +30441600.0,961080.8399999999,1085037.72,3168310.1424,1731908.83789,1731908.83789,1731908.83789,1780838.724,3835397.9189599995,2843308.95872,2918496.32235,4447232.4912,1197724.146,1197724.146,1197724.146,1513327.634,961080.8399999999,961080.8399999999,2088832.02372,1960388.3007,2913959.89388,5082488.187,1442458.5521200001,1834536.21226,1409717.574,1409717.574,1409717.574,1409717.574,2889649.7255999995,2889649.7255999995 +30445200.0,1947977.4,2061504.909,6019594.334279999,1395487.52596,1395487.52596,1395487.52596,1725307.0659999999,3986816.8257599995,6751669.408,3306547.9215300004,5038549.213760001,1819668.1469999999,1819668.1469999999,1819668.1469999999,1391986.1935,1947977.4,1947977.4,1977606.4014199998,1598370.82515,2375849.96726,4143924.3614999996,1176085.19974,1495759.3647699999,2182767.483,2182767.483,2182767.483,2182767.483,5856918.715999999,5856918.715999999 +30448800.0,1315315.113,995211.084,2906016.36528,647738.3673200002,647738.3673200002,647738.3673200002,719271.9589999999,1830224.9195199998,6500745.2736,1107415.91814,1687490.92288,1284237.783,1284237.783,1284237.783,1338137.1464999998,1315315.113,1315315.113,1782215.4905099997,2082603.03255,3095622.28542,5399341.1955,1532384.45358,1948905.06009,882313.5779999999,882313.5779999999,882313.5779999999,882313.5779999999,3954714.1064199996,3954714.1064199996 +30452400.0,641877.228,614949.78,1795653.3576,327505.54144,327505.54144,327505.54144,440782.2125,1129073.55008,2682311.6582400003,738103.47282,1124729.10144,466035.603,466035.603,466035.603,429679.60000000003,641877.228,641877.228,642986.5960699999,735000.5204999999,1092519.2921999998,1905556.9049999998,540815.1978,687815.3019,489702.26399999997,489702.26399999997,489702.26399999997,489702.26399999997,1929910.86552,1929910.86552 +30456000.0,644162.655,1057713.3360000001,3088522.94112,548626.5616700001,548626.5616700001,548626.5616700001,794456.6105,1383529.24128,2187773.4656,1093084.77684,1665652.99328,546484.593,546484.593,546484.593,910610.19,644162.655,644162.655,747277.3094799999,662751.0760499999,985126.2908199998,1718243.5304999999,487653.87817999994,620204.0933899999,629265.5549999999,629265.5549999999,629265.5549999999,629265.5549999999,1936782.3827,1936782.3827 +30459600.0,497383.047,511709.346,1494191.29032,412932.04535000003,412932.04535000003,412932.04535000003,704256.959,993995.3311999999,1475226.47872,723976.98828,1103203.02976,421702.66500000004,421702.66500000004,421702.66500000004,468637.407,497383.047,497383.047,537716.20591,491813.6292,731041.4932799999,1275072.372,361877.68272000004,460240.40856,446949.489,446949.489,446949.489,446949.489,1495465.02798,1495465.02798 +30463200.0,429017.38499999995,376028.85900000005,1098004.26828,213287.85753,213287.85753,213287.85753,378660.7965,887772.41216,1354424.272,623646.58125,950318.6000000001,386201.69700000004,386201.69700000004,386201.69700000004,320998.335,429017.38499999995,429017.38499999995,491329.99928999995,429084.40634999995,637799.5373399999,1112441.0535,315721.36565999995,401538.24692999996,403366.503,403366.503,403366.503,403366.503,1289912.2709,1289912.2709 +30466800.0,777145.4400000002,884423.1000000001,2582515.452,1318606.2923,1318606.2923,1318606.2923,1199497.8694999998,1705800.6009600002,2216326.90496,1456741.5046800002,2219796.5785600003,689785.719,689785.719,689785.719,1244065.179,777145.4400000002,777145.4400000002,1271017.76217,1109421.8338499998,1649066.5283399997,2876278.8285,816315.3246599999,1038199.6914299999,777496.587,777496.587,777496.587,777496.587,2336617.2896000003,2336617.2896000003 +30470400.0,727292.3189999999,1137800.937,3322378.73604,1312201.18678,1312201.18678,1312201.18678,951778.2714999999,1900319.91664,2436495.90144,1405968.71856,2142428.5235200003,810921.639,810921.639,810921.639,1386024.822,727292.3189999999,727292.3189999999,1369840.77542,1103703.6064499998,1640566.8421799997,2861453.7945,812107.83882,1032848.56011,897902.6639999999,897902.6639999999,897902.6639999999,897902.6639999999,2186725.57246,2186725.57246 +30474000.0,669008.544,959809.0319999999,2802642.3734399998,901341.93952,901341.93952,901341.93952,817564.8424999999,1851414.96824,2458435.31264,1196113.34745,1822648.9104000002,680582.6760000001,680582.6760000001,680582.6760000001,1042236.8180000001,669008.544,669008.544,1015318.6094999998,897711.0403499999,1334375.42294,2327398.9935,660538.00006,840080.2081299999,823652.3219999999,823652.3219999999,823652.3219999999,823652.3219999999,2011485.68896,2011485.68896 +30477600.0,2045554.932,1651882.437,4823496.716039999,3290533.12786,3290533.12786,3290533.12786,2705390.2085,3105485.4196799994,5882268.376959999,3455232.08163,5265115.55296,2150495.4690000005,2150495.4690000005,2150495.4690000005,2688029.778,2045554.932,2045554.932,3496744.8486099998,2562111.2106,3808372.71304,6642510.546,1885207.75496,2397629.99708,2272055.703,2272055.703,2272055.703,2272055.703,6150301.828879999,6150301.828879999 +30481200.0,1377512.4239999999,743603.502,2171322.22584,1714133.5117500003,1714133.5117500003,1714133.5117500003,1451022.3839999998,2103923.79032,3355513.6384,1891314.53847,2882003.10624,1257429.0150000001,1257429.0150000001,1257429.0150000001,1435058.702,1377512.4239999999,1377512.4239999999,1015718.6956799999,1439787.69675,2140128.8726999997,3732782.9175,1059399.3423000001,1347356.88165,1379284.845,1379284.845,1379284.845,1379284.845,4141720.6881599994,4141720.6881599994 +30484800.0,958433.604,703274.4480000001,2053561.38816,1006068.8759000001,1006068.8759000001,1006068.8759000001,954907.5935,1546007.6364000002,2745197.16608,1359912.69792,2072247.9206400001,824837.4839999999,824837.4839999999,824837.4839999999,1093346.0265,958433.604,958433.604,1010410.7308099999,1066146.2432999997,1584740.8357199996,2764082.8529999997,784473.03828,997702.2869399999,942477.8219999999,942477.8219999999,942477.8219999999,942477.8219999999,2881690.36936,2881690.36936 +30488400.0,828206.547,702711.246,2051916.83832,970452.16345,970452.16345,970452.16345,915369.0455,1500079.3593600001,2739585.91488,1329625.4391,2026095.9072000002,809740.371,809740.371,809740.371,1055555.0075,828206.547,828206.547,1007506.5971099999,1049553.9562499998,1560077.7324999997,2721065.8124999995,772264.3925,982175.1837499999,924565.689,924565.689,924565.689,924565.689,2490141.0179799995,2490141.0179799995 +30492000.0,604049.61,496230.66299999994,1448993.5359599998,648004.69591,648004.69591,648004.69591,530595.7545,777151.7979199999,1712783.5756800002,763209.78384,1162986.33728,439697.211,439697.211,439697.211,548012.1745,604049.61,604049.61,688067.6188099999,499934.5636499999,743112.6106599999,1296126.6464999998,367853.08634,467839.99906999996,603429.465,603429.465,603429.465,603429.465,1816175.8273999998,1816175.8273999998 +30495600.0,100436.973,84756.843,247489.98156,106313.27179000001,106313.27179000001,106313.27179000001,57868.01649999999,136690.19904,591343.49312,169487.98440000002,258267.40480000002,142766.80800000002,142766.80800000002,142766.80800000002,94962.5285,100436.973,100436.973,166652.9839,71004.22739999999,105542.08615999999,184085.03399999999,52245.08584,66445.93132,122922.97499999999,122922.97499999999,122922.97499999999,122922.97499999999,301980.49882,301980.49882 +30499200.0,96311.76000000001,86529.56099999999,252666.31811999998,82911.92360000001,82911.92360000001,82911.92360000001,37057.296500000004,151951.26952,589129.45664,169656.12636,258523.62112,141370.41,141370.41,141370.41,88188.77549999999,96311.76000000001,96311.76000000001,172223.22363999998,63969.814799999986,95085.99631999998,165847.66799999998,47069.147679999995,59863.11063999999,118329.207,118329.207,118329.207,118329.207,289577.3584,289577.3584 +30502800.0,96472.71,87818.424,256429.79808,77260.20357,77260.20357,77260.20357,32165.462,172256.89112,586413.62368,173352.45291000002,264156.11872,140278.554,140278.554,140278.554,88606.1295,96472.71,96472.71,178797.10835999998,62116.9479,92331.85836,161043.939,45705.80364,58129.19322,119113.101,119113.101,119113.101,119113.101,290061.28140000004,290061.28140000004 +30506400.0,107168.99100000001,99971.865,291917.8458,72665.80034999999,72665.80034999999,72665.80034999999,33759.04,174542.1532,587509.8272,199119.73494000002,303420.54848000006,139815.741,139815.741,139815.741,87077.7425,107168.99100000001,107168.99100000001,190903.69557999997,67167.04275000001,99838.4191,174136.77750000003,49421.6759,62855.08445000001,121822.737,121822.737,121822.737,121822.737,322221.43294,322221.43294 +30510000.0,111671.649,105614.805,308395.23059999995,78298.50127000002,78298.50127000002,78298.50127000002,37628.8255,174993.34576,592409.66784,217850.84202,331963.18784,140580.114,140580.114,140580.114,88320.84449999999,111671.649,111671.649,202989.99422,75603.63825,112378.74130000001,196009.43250000002,55629.343700000005,70750.07135000001,127939.905,127939.905,127939.905,127939.905,335759.42466,335759.42466 +30513600.0,119495.274,114325.54200000002,333830.58264000004,93575.55559,93575.55559,93575.55559,50646.599500000004,178664.43984,599977.61088,237961.42125,362607.88,143539.842,143539.842,143539.842,95401.9465,119495.274,119495.274,204690.76693,82550.4048,122704.55232,214019.56800000003,60740.79168000001,77250.87264000002,148689.0,148689.0,148689.0,148689.0,359282.45716,359282.45716 +30517200.0,137152.293,119344.041,348484.59972,108657.06676,108657.06676,108657.06676,65258.914000000004,192602.07872,601628.368,259574.71008,395542.41536,182418.99599999998,182418.99599999998,182418.99599999998,125297.837,137152.293,137152.293,210495.57112999997,96825.80025,143923.78209999998,251029.8525,71244.6629,90609.82295,181546.04099999997,181546.04099999997,181546.04099999997,181546.04099999997,412371.22762,412371.22762 +30520800.0,258688.722,156008.535,455544.9222,212702.46943,212702.46943,212702.46943,143620.4175,657830.46552,648541.76384,459407.19362999994,700049.05696,239394.63900000002,239394.63900000002,239394.63900000002,266657.748,258688.722,258688.722,418004.06492,151867.85984999998,225739.38673999996,393731.4884999999,111744.74625999999,142118.31822999998,283606.989,283606.989,283606.989,283606.989,777790.75748,777790.75748 +30524400.0,958553.7690000001,406923.4770000001,1188216.55284,1407446.14648,1407446.14648,1407446.14648,1133840.505,2885881.89072,2632937.35872,2292553.14372,3493414.31424,793577.0700000001,793577.0700000001,793577.0700000001,1122115.9775,958553.7690000001,958553.7690000001,2183750.0480899997,1117340.3411999997,1660836.7540799996,2896808.2919999994,822141.7819199999,1045609.8501599998,1172071.269,1172071.269,1172071.269,1172071.269,2882051.66546,2882051.66546 +30528000.0,836934.591,1038636.501,3032818.58292,1520595.44725,1520595.44725,1520595.44725,1601093.13,3508739.5396,2431716.6656,2634199.9914300004,4014019.0345600005,1086063.048,1086063.048,1086063.048,1277191.1179999998,836934.591,836934.591,1802098.87611,1734008.3586,2577464.27624,4495577.226,1275887.63176,1622689.30348,1259760.648,1259760.648,1259760.648,1259760.648,2516383.33694,2516383.33694 +30531600.0,1856813.7899999998,1768409.3250000002,5163755.229,1163953.8258700003,1163953.8258700003,1163953.8258700003,1424347.9565,3661540.8503199997,6103736.28224,2996577.95262,4566214.02304,1713731.955,1713731.955,1713731.955,1199176.5275,1856813.7899999998,1856813.7899999998,1744500.3189899998,1397927.93355,2077907.69382,3624257.6055,1028598.82518,1308184.41189,2105225.526,2105225.526,2105225.526,2105225.526,5582820.1285999995,5582820.1285999995 +30535200.0,1178357.916,898158.948,2622624.12816,560093.46514,560093.46514,560093.46514,564483.227,1518203.31464,5969546.48576,908577.3181800001,1384498.77056,1116791.625,1116791.625,1116791.625,1210906.5955,1178357.916,1178357.916,1575645.61531,1921702.3847999999,2856456.3843199997,4982191.368,1413993.35968,1798333.8366399999,741144.144,741144.144,741144.144,741144.144,3542929.46744,3542929.46744 +30538800.0,591175.983,563956.422,1646752.75224,291154.45040000003,291154.45040000003,291154.45040000003,411125.23549999995,1030481.51376,2254492.3456,684601.19574,1043201.8220800001,431548.66799999995,431548.66799999995,431548.66799999995,383130.8145,591175.983,591175.983,582987.3390899999,585089.2602,869688.23368,1516898.082,430510.12231999997,547527.97436,456981.44399999996,456981.44399999996,456981.44399999996,456981.44399999996,1777469.1222199998,1777469.1222199998 +30542400.0,625448.919,1047824.295,3059646.9414,507636.15089000005,507636.15089000005,507636.15089000005,779745.2670000001,1364422.07528,2160711.07584,1066642.8066,1625360.4672,540056.415,540056.415,540056.415,903155.806,625448.919,625448.919,718603.66331,648832.4208000001,964437.32672,1682158.1280000003,477412.49728000007,607178.9814400001,614062.584,614062.584,614062.584,614062.584,1880516.41646,1880516.41646 +30546000.0,482220.03899999993,470965.14600000007,1375218.2263200001,396321.15434999997,396321.15434999997,396321.15434999997,658192.36,977954.77256,1453737.4015999998,700524.98124,1067466.6380800002,422405.06700000004,422405.06700000004,422405.06700000004,413458.90599999996,482220.03899999993,482220.03899999993,511361.75895999995,478860.7004999999,711788.0041999999,1241490.7049999998,352346.8858,448119.02589999995,436965.66000000003,436965.66000000003,436965.66000000003,436965.66000000003,1449874.9172599998,1449874.9172599998 +30549600.0,397916.94299999997,351245.967,1025638.22364,190453.96095,190453.96095,190453.96095,347564.028,834535.73136,1265601.0073600002,576310.97286,878188.1491200001,364818.945,364818.945,364818.945,296007.70849999995,397916.94299999997,397916.94299999997,444707.31864,393856.71255000005,585436.39742,1021109.9955000001,289800.74158000003,368572.08409,375316.30199999997,375316.30199999997,375316.30199999997,375316.30199999997,1196403.6086199998,1196403.6086199998 +30553200.0,760996.182,817100.592,2385933.72864,1283835.5008600003,1283835.5008600003,1283835.5008600003,1171844.023,1646938.30072,2184342.4032000005,1433346.33225,2184146.7920000004,685665.528,685665.528,685665.528,1232389.0775,760996.182,760996.182,1243716.24546,1095645.0622499997,1628588.4628999997,2840561.2724999995,806178.3420999999,1025307.3545499998,733536.522,733536.522,733536.522,733536.522,2288061.85388,2288061.85388 +30556800.0,721923.207,1141231.623,3332396.3391599995,1226517.39375,1226517.39375,1226517.39375,950897.8920000001,1904324.3754399999,2463424.7065600003,1375570.36008,2096107.21536,818842.2750000001,818842.2750000001,818842.2750000001,1388134.482,721923.207,721923.207,1362375.20809,1097426.0781,1631235.80004,2845178.721,807488.81796,1026974.03358,889910.919,889910.919,889910.919,889910.919,2170582.44238,2170582.44238 +30560400.0,655750.1639999999,909758.9730000001,2656496.20116,874790.8061200001,874790.8061200001,874790.8061200001,811988.3205,1794712.5044000002,2454805.61408,1181879.30364,1800958.93888,686168.439,686168.439,686168.439,1038201.8919999999,655750.1639999999,655750.1639999999,1001862.5912099999,888928.4898,1321320.86632,2304629.418,654075.77768,831861.4756400001,807149.175,807149.175,807149.175,807149.175,1971622.1597599997,1971622.1597599997 +30564000.0,2033922.8939999999,1647967.6890000002,4812065.651880001,3260333.8947300003,3260333.8947300003,3260333.8947300003,2699854.2795,3103833.8852,5877347.4944,3445956.68004,5250981.60768,2151897.825,2151897.825,2151897.825,2685895.6355,2033922.8939999999,2033922.8939999999,3314144.7329899995,2554554.36825,3797140.0733,6622918.7325,1879647.4117,2390558.28535,2266436.199,2266436.199,2266436.199,2266436.199,6115328.167959999,6115328.167959999 +30567600.0,1360551.567,758856.171,2215860.01932,1661768.08589,1661768.08589,1661768.08589,1424723.223,2128061.92944,3388867.9212800004,1876769.2398,2859838.8416,1254931.1130000001,1254931.1130000001,1254931.1130000001,1437231.8730000001,1360551.567,1360551.567,1016061.4081799999,1421604.4806,2113100.98104,3685641.246,1046020.08696,1330340.98308,1359346.17,1359346.17,1359346.17,1359346.17,4090725.04478,4090725.04478 +30571200.0,976777.5510000002,737017.572,2152091.31024,1039202.3592500001,1039202.3592500001,1039202.3592500001,982567.7225,1627675.4578399998,2924842.9824,1417830.32916,2160503.35872,879183.2399999999,879183.2399999999,879183.2399999999,1160857.4705,976777.5510000002,976777.5510000002,1039112.2749799999,1120019.8131,1664819.5740399999,2903755.071,824113.3439600001,1048117.3065800001,986215.8719999999,986215.8719999999,986215.8719999999,986215.8719999999,2936844.5033400003,2936844.5033400003 +30574800.0,868288.5089999998,744422.2320000001,2173712.91744,1015767.0916800002,1015767.0916800002,1015767.0916800002,970323.3785,1601607.9462400002,2963808.71232,1404395.21565,2140030.8048,875775.765,875775.765,875775.765,1140708.541,868288.5089999998,868288.5089999998,1047182.7767699999,1119625.12035,1664232.8949399998,2902731.7935,823822.92806,1047747.95213,983063.5049999999,983063.5049999999,983063.5049999999,983063.5049999999,2610654.1170599996,2610654.1170599996 +30578400.0,623466.1799999999,521860.752,1523833.39584,668370.9026500001,668370.9026500001,668370.9026500001,550554.7565,816456.96016,1823589.1731200002,795262.0599,1211827.9008,468595.524,468595.524,468595.524,578525.444,623466.1799999999,623466.1799999999,716245.08462,525931.97535,781755.6769399999,1363527.3435,386982.04606,492168.44113,630240.549,630240.549,630240.549,630240.549,1874554.9811999998,1874554.9811999998 +30582000.0,103028.841,90463.79400000001,264154.27848000004,108861.93835,108861.93835,108861.93835,58563.8865,147796.35479999997,630170.65536,177042.79509000003,269779.49728000007,151280.757,151280.757,151280.757,99460.29449999999,103028.841,103028.841,174439.86403999996,74029.98645,110039.63417999998,191929.59449999998,54471.44682,69277.44411,126425.31600000002,126425.31600000002,126425.31600000002,126425.31600000002,309773.38194,309773.38194 +30585600.0,100991.613,92508.855,270125.8566,87331.34124,87331.34124,87331.34124,38385.00749999999,171809.89168,646652.37568,177789.87534,270917.90528,153654.387,153654.387,153654.387,95260.4695,100991.613,100991.613,191121.35769999996,68820.40664999999,102296.01185999998,178423.27649999998,50638.225139999995,64402.306469999996,124701.297,124701.297,124701.297,124701.297,303648.11642,303648.11642 +30589200.0,103771.57499999998,95980.023,280261.66716,82741.52084000001,82741.52084000001,82741.52084000001,33856.529,187979.43256,654268.4627200001,193390.96854,294690.99968,154806.168,154806.168,154806.168,96845.07,103771.57499999998,103771.57499999998,195443.15231999996,68012.85285,101095.64793999998,176329.61849999998,50044.02505999999,63646.595629999996,128406.75899999999,128406.75899999999,128406.75899999999,128406.75899999999,312006.53549999994,312006.53549999994 +30592800.0,119368.01999999999,116223.144,339371.58048,81033.32963000001,81033.32963000001,81033.32963000001,39465.692,196502.80160000004,683840.56384,225107.97014999998,343021.6688,160375.479,160375.479,160375.479,98825.8845,119368.01999999999,119368.01999999999,223668.41509999998,80254.7757,119292.28387999999,208067.93699999998,59051.66211999999,75102.61726,136170.177,136170.177,136170.177,136170.177,358899.84679999994,358899.84679999994 +30596400.0,122324.91,117585.01799999998,343348.25255999994,93144.10710000002,93144.10710000002,93144.10710000002,42725.067,195637.42456,679978.5228800001,248392.39068,378502.69056,159677.976,159677.976,159677.976,99809.3425,122324.91,122324.91,227748.58418,87357.53205,129849.96121999998,226482.49049999999,64277.88778,81749.39418999999,144836.979,144836.979,144836.979,144836.979,367790.2294,367790.2294 +30600000.0,137119.848,128779.773,376036.93716,107428.37039000001,107428.37039000001,107428.37039000001,61768.02799999999,208360.88072,680249.0976,269694.37152,410962.85184,187718.43000000002,187718.43000000002,187718.43000000002,122030.097,137119.848,137119.848,229282.13724,98200.34999999999,145966.94,254593.5,72256.06,91896.13,188992.92600000004,188992.92600000004,188992.92600000004,188992.92600000004,412273.67631999997,412273.67631999997 +30603600.0,176343.726,140286.234,409635.80328,123093.72713000001,123093.72713000001,123093.72713000001,72605.0325,274241.54696,707060.7577600001,309985.39593,472358.69856,255813.327,255813.327,255813.327,187311.3025,176343.726,176343.726,251202.57227,119454.08984999999,177558.91874,309695.7885,87894.61426,111785.43223,231015.375,231015.375,231015.375,231015.375,530206.8028399999,530206.8028399999 +30607200.0,236504.229,163987.086,478842.29112,220202.95033000002,220202.95033000002,220202.95033000002,152826.0405,457064.24783999997,748156.1715200001,400321.7988,610014.1696,311210.29799999995,311210.29799999995,311210.29799999995,230431.61049999995,236504.229,236504.229,292577.88923999993,163512.6993,243048.50611999998,423921.813,120313.04788,153015.58774000002,296529.342,296529.342,296529.342,296529.342,711089.38186,711089.38186 +30610800.0,1005754.4820000001,1024386.96,2991209.9232,1040730.77856,1040730.77856,1040730.77856,1063499.381,1552897.2187199998,1378122.04352,1305078.2295600001,1988690.6355200002,616828.464,616828.464,616828.464,1601872.7234999998,1005754.4820000001,1005754.4820000001,1905992.00935,570056.0166,847342.5234399999,1477923.0059999998,419448.62455999997,533459.82788,1371670.1099999999,1371670.1099999999,1371670.1099999999,1371670.1099999999,3023968.47588,3023968.47588 +30614400.0,1881844.2389999998,1712001.264,4999043.69088,2396871.2946200003,2396871.2946200003,2396871.2946200003,1688734.1099999999,2836518.82936,3126127.8675200003,2822815.2153600003,4301432.709120001,1196532.687,1196532.687,1196532.687,1672952.0955,1881844.2389999998,1881844.2389999998,2646655.9632499996,1476316.84185,2194426.51554,3827488.1085,1086277.57746,1381540.94583,2128766.673,2128766.673,2128766.673,2128766.673,5658078.345259999,5658078.345259999 +30618000.0,2233243.209,2029124.0610000002,5925042.25812,2539962.14054,2539962.14054,2539962.14054,2120987.568,3671755.4307999997,8728250.67136,2841880.9545,4330485.264,2327163.654,2327163.654,2327163.654,2232687.366,2233243.209,2233243.209,2218041.6732499995,3125649.8295,4646027.647799999,8103536.595,2299860.8622,2924990.8281,1905084.2610000002,1905084.2610000002,1905084.2610000002,1905084.2610000002,6714617.915059999,6714617.915059999 +30621600.0,1600979.058,1368082.875,3994801.995,1700627.47316,1700627.47316,1700627.47316,2280639.6374999997,3062838.06048,5575132.85312,3096692.4393300004,4718769.431360001,2178935.061,2178935.061,2178935.061,2412449.333,1600979.058,1600979.058,1791023.7501,2789236.5795,4145976.3477999996,7231354.095,2052327.1622000001,2610174.4781,1793897.3189999997,1793897.3189999997,1793897.3189999997,1793897.3189999997,4813610.3677199995,4813610.3677199995 +30625200.0,1161199.8059999999,938627.751,2740793.03292,1553604.1077700001,1553604.1077700001,1553604.1077700001,1917512.9225000003,3083536.0366399996,5840593.6576,2296210.3521,3498987.2032000003,1036995.0179999999,1036995.0179999999,1036995.0179999999,2001842.276,1161199.8059999999,1161199.8059999999,1010325.38698,1942621.3800000001,2887550.792,5036425.800000001,1429385.608,1817909.884,1329349.053,1329349.053,1329349.053,1329349.053,3491340.7500399994,3491340.7500399994 +30628800.0,918296.172,795417.477,2322619.03284,1075293.74359,1075293.74359,1075293.74359,1244747.1225,2269415.7656,2754776.2336000004,1728922.83837,2634549.08704,917359.1370000001,917359.1370000001,917359.1370000001,1267396.6235,918296.172,918296.172,935863.06606,1213094.30085,1803167.33114,3145059.2985,892597.78186,1135216.64203,980763.267,980763.267,980763.267,980763.267,2761010.4904799997,2761010.4904799997 +30632400.0,681310.53,557793.633,1628757.40836,625947.0053100002,625947.0053100002,625947.0053100002,705583.774,1399741.29152,2077952.8019200002,1107766.0303500001,1688024.4272000003,643164.744,643164.744,643164.744,883157.5304999999,681310.53,681310.53,659350.74998,790553.6172,1175094.5124799998,2049583.452,581691.30352,739802.02696,731175.444,731175.444,731175.444,731175.444,2048473.6602,2048473.6602 +30636000.0,632567.0249999999,530634.5819999999,1549452.97944,557682.9872900001,557682.9872900001,557682.9872900001,659973.2545,1216010.7509599999,1964180.7398400002,993579.27585,1514025.5632,602209.122,602209.122,602209.122,786426.599,632567.0249999999,632567.0249999999,600005.1575699999,733732.2873,1090634.16532,1902268.893,539882.02868,686628.4861399999,667116.015,667116.015,667116.015,667116.015,1901918.1884999997,1901918.1884999997 +30639600.0,862761.615,769736.2860000001,2247629.95512,954133.4577500001,954133.4577500001,954133.4577500001,925224.8705000002,1660947.32776,2963240.7654400007,1427067.31293,2174578.76256,867827.952,867827.952,867827.952,1099077.8505,862761.615,862761.615,1063285.67072,1085103.6493499998,1612919.4985399998,2813231.6835,798421.9444599999,1015442.67433,960645.9450000001,960645.9450000001,960645.9450000001,960645.9450000001,2594036.5891,2594036.5891 +30643200.0,895608.162,802998.45,2344755.4739999995,1018220.3208100001,1018220.3208100001,1018220.3208100001,967476.0025000001,1725695.5712799998,3099812.05248,1484899.21167,2262703.5606400003,906386.6429999999,906386.6429999999,906386.6429999999,1145486.972,895608.162,895608.162,1129891.6310499997,1134778.50315,1686757.1824599998,2942018.3415,834972.82454,1061928.52517,1005688.83,1005688.83,1005688.83,1005688.83,2692795.20708,2692795.20708 +30646800.0,908844.249,811535.625,2369684.025,1056018.78932,1056018.78932,1056018.78932,1001807.8454999998,1759544.8770400002,3135612.93184,1511855.07459,2303779.16128,919330.2150000001,919330.2150000001,919330.2150000001,1164572.402,908844.249,908844.249,1140602.90942,1152900.5724,1713694.18416,2989001.484,848307.08784,1078887.2023200002,1020073.059,1020073.059,1020073.059,1020073.059,2732591.7086599995,2732591.7086599995 +30650400.0,926756.331,820193.6670000001,2394965.50764,1122440.38346,1122440.38346,1122440.38346,1060990.574,1806326.72264,3170434.43712,1550283.25011,2362336.38112,934198.368,934198.368,934198.368,1189910.1655000001,926756.331,926756.331,1152455.43244,1177588.95525,1750391.4841,3053008.4025000003,866472.8609000001,1101990.65195,1038445.191,1038445.191,1038445.191,1038445.191,2786447.3685399997,2786447.3685399997 +30654000.0,924335.28,817610.154,2387421.64968,1120513.18962,1120513.18962,1120513.18962,1059008.7445,1801160.3841599997,3157524.2726400006,1546343.55435,2356333.0352000003,930597.0750000001,930597.0750000001,930597.0750000001,1185117.36,924335.28,924335.28,1148917.16758,1173335.2888500001,1744068.75034,3041980.3785,863343.00266,1098010.06043,1035149.1449999999,1035149.1449999999,1035149.1449999999,1035149.1449999999,2779168.0752,2779168.0752 +30657600.0,934473.543,829860.2609999999,2423191.96212,1119166.9923500002,1119166.9923500002,1119166.9923500002,1059927.8375000001,1824517.60432,3212208.5235200003,1562921.97873,2381595.39616,945659.463,945659.463,945659.463,1200945.0320000001,934473.543,934473.543,1162884.34938,1187195.2191,1764670.42444,3077913.5310000004,873541.1735600001,1110980.21738,1048415.1090000002,1048415.1090000002,1048415.1090000002,1048415.1090000002,2809650.4526199996,2809650.4526199996 +30661200.0,888439.4310000001,743841.786,2172018.0151199996,921784.65005,921784.65005,921784.65005,800203.817,1489323.0371200002,2291728.6668800004,1271671.81953,1937785.6297600002,733637.646,733637.646,733637.646,935590.684,888439.4310000001,888439.4310000001,1103381.7441399998,931723.42635,1384932.10534,2415579.2535,685564.39766,871909.08293,902830.044,902830.044,902830.044,902830.044,2671241.22254,2671241.22254 +30664800.0,393175.87200000003,275781.069,805280.72148,487409.52073,487409.52073,487409.52073,334702.20699999994,718625.3735999999,932697.9008000001,595645.33245,907650.0304,329605.272,329605.272,329605.272,410819.941,393175.87200000003,393175.87200000003,637124.54806,208030.36409999998,309220.44243999996,539337.9809999999,153069.25556,194675.32838,492723.123,492723.123,492723.123,492723.123,1182148.78848,1182148.78848 +30668400.0,134968.629,98830.275,288584.40299999993,143889.46946000002,143889.46946000002,143889.46946000002,60622.082500000004,270778.8124,688382.3110400001,258963.92277,394611.69184,187954.164,187954.164,187954.164,108981.53700000001,134968.629,134968.629,206894.2616,83103.06375,123526.0355,215452.3875,61147.4395,77768.05225000001,148074.864,148074.864,148074.864,148074.864,405805.67785999994,405805.67785999994 +30672000.0,130174.66500000001,101145.249,295344.12708,120015.86696000001,120015.86696000001,120015.86696000001,39938.836,276660.43992000003,679451.52832,247507.81965,377154.7728,183796.12199999997,183796.12199999997,183796.12199999997,103018.88449999999,130174.66500000001,130174.66500000001,203598.24757999997,75481.00425,112196.45569999999,195691.4925,55539.1093,70635.31015,142771.773,142771.773,142771.773,142771.773,391391.8261,391391.8261 +30675600.0,141182.376,117176.397,342155.07924,118708.37946000001,118708.37946000001,118708.37946000001,47113.33900000001,295325.58800000005,701935.30944,259366.39218000002,395224.97856,189442.884,189442.884,189442.884,103972.53300000001,141182.376,141182.376,211643.03029999998,87746.90310000001,130428.73004,227491.97100000002,64564.38796000001,82113.76858,145830.309,145830.309,145830.309,145830.309,424488.3438399999,424488.3438399999 +30679200.0,145315.485,128629.78800000002,375598.98096,114674.33791,114674.33791,114674.33791,47163.087999999996,293060.28119999997,713031.87584,268702.28952,409451.10784000007,189719.154,189719.154,189719.154,102374.132,145315.485,145315.485,234284.29192999998,90199.70865,134074.62866,233851.09649999999,66369.16834,84409.11007,157776.38999999998,157776.38999999998,157776.38999999998,157776.38999999998,436915.2248999999,436915.2248999999 +30682800.0,153601.998,142868.66700000002,417176.50764,123361.79361,123361.79361,123361.79361,56904.9565,291358.95488,729012.8224000001,297105.61167,452732.36064,232545.798,232545.798,232545.798,107529.09999999999,153601.998,153601.998,235648.40311999997,98829.52965000001,146902.16506,256224.70650000003,72719.01194000001,92484.91787,189991.182,189991.182,189991.182,189991.182,461830.00732,461830.00732 +30686400.0,173745.027,154748.15099999998,451864.60091999994,126004.48938000001,126004.48938000001,126004.48938000001,64084.95450000001,311627.07784,731501.4374400001,305137.81473,464971.90816,266739.849,266739.849,266739.849,157719.4255,173745.027,173745.027,245546.74338999996,114525.98505,170233.68641999998,296919.2205,84268.50258,107173.69959,221790.168,221790.168,221790.168,221790.168,522393.38118,522393.38118 +30690000.0,207294.86699999997,168889.881,493158.45252,136945.07266,136945.07266,136945.07266,71565.41700000002,368304.61072,725732.35008,341837.02413000003,520894.5129600001,300037.473,300037.473,300037.473,193059.377,207294.86699999997,207294.86699999997,256433.75991999998,126390.0429,187868.65636,327677.889,92998.10564000001,118276.11422,260534.44200000004,260534.44200000004,260534.44200000004,260534.44200000004,623266.5667799999,623266.5667799999 +30693600.0,270057.378,186542.46,544703.9832,230354.62109,230354.62109,230354.62109,150559.647,492678.36656,779865.55072,428302.85337,652651.96704,333823.875,333823.875,333823.875,225892.24,270057.378,270057.378,294006.79112999997,163930.6917,243669.81827999998,425005.497,120620.60772,153406.74606,323842.845,323842.845,323842.845,323842.845,811972.51652,811972.51652 +30697200.0,1014788.7179999999,1029642.51,3006556.1292,1041388.15275,1041388.15275,1041388.15275,1059977.702,1546334.0748799997,1473587.34144,1293235.1613299998,1970644.0553599999,624139.716,624139.716,624139.716,1596136.9304999998,1014788.7179999999,1014788.7179999999,1863144.6976999997,559645.7832,831868.5468799999,1450933.512,411788.74912,523717.90576,1354301.742,1354301.742,1354301.742,1354301.742,3051131.4121199995,3051131.4121199995 +30700800.0,1867920.846,1715579.808,5009493.03936,2393622.7183000003,2393622.7183000003,2393622.7183000003,1662685.045,2798649.01064,3158094.1235200004,2821833.71106,4299937.083520001,1183267.812,1183267.812,1183267.812,1602559.455,1867920.846,1867920.846,2676788.9826599997,1485731.8201499998,2208421.1252599997,3851897.3114999994,1093205.1417399999,1390351.50577,2102300.0309999995,2102300.0309999995,2102300.0309999995,2102300.0309999995,5616215.34364,5616215.34364 +30704400.0,2239537.506,2113612.5179999997,6171748.55256,2549546.87658,2549546.87658,2549546.87658,2154367.768,3684833.10632,8953712.374400001,2855761.36503,4351636.36576,2335937.0549999997,2335937.0549999997,2335937.0549999997,2238043.36,2239537.506,2239537.506,2217080.82284,3172209.7189499997,4715235.187179999,8224247.4195,2334119.74382,2968561.68761,1878800.9129999997,1878800.9129999997,1878800.9129999997,1878800.9129999997,6733542.7680399995,6733542.7680399995 +30708000.0,1614957.5099999998,1375832.511,4017430.93212,1708430.88009,1708430.88009,1708430.88009,2304995.8225,3069042.41224,5571954.45696,3104085.81693,4730035.530560001,2142873.09,2142873.09,2142873.09,2378690.5625,1614957.5099999998,1614957.5099999998,1805721.97975,2787806.2410000004,4143850.2644,7227645.8100000005,2051274.7156000002,2608835.9638000005,1789708.56,1789708.56,1789708.56,1789708.56,4855638.913399999,4855638.913399999 +30711600.0,1164002.5529999998,934707.879,2729347.00668,1588520.1371600002,1588520.1371600002,1588520.1371600002,1962815.365,3109450.04384,6051201.614720001,2349511.36308,3580207.7913599997,1029332.622,1029332.622,1029332.622,2015780.872,1164002.5529999998,1164002.5529999998,1001396.47335,1991147.7186,2959681.30024,5162234.826,1465091.40776,1863320.95148,1329838.074,1329838.074,1329838.074,1329838.074,3499767.6760199997,3499767.6760199997 +30715200.0,924012.564,805076.6669999999,2350823.86764,1125571.34492,1125571.34492,1125571.34492,1280909.875,2314660.06184,2803895.8323200005,1767043.6423499999,2692637.9312,927986.4870000001,927986.4870000001,927986.4870000001,1297609.474,924012.564,924012.564,939769.142,1224245.7409499998,1819743.0519799998,3173970.4395,900803.0390199999,1145652.18721,986781.534,986781.534,986781.534,986781.534,2778197.77576,2778197.77576 +30718800.0,676527.783,554761.983,1619904.99036,613717.9862,613717.9862,613717.9862,693772.2855,1429517.8864,2061567.1955200003,1114243.59165,1697894.9968,634357.266,634357.266,634357.266,866898.1265,676527.783,676527.783,650146.17525,786147.95835,1168545.85414,2038161.3735,578449.6088599999,735679.2005299999,724051.3589999999,724051.3589999999,724051.3589999999,724051.3589999999,2034093.5342199998,2034093.5342199998 +30722400.0,622470.7710000001,522237.723,1524934.1511600001,540200.3959000001,540200.3959000001,540200.3959000001,644884.45,1204409.3632,1935817.15648,981499.23816,1495617.88672,588299.115,588299.115,588299.115,764748.628,622470.7710000001,622470.7710000001,587044.7232,717913.9471499999,1067121.4720599998,1861258.3814999997,528242.85494,671825.6443699999,655157.418,655157.418,655157.418,655157.418,1871562.11814,1871562.11814 +30726000.0,847253.5199999999,756061.191,2207698.67772,931356.9888700001,931356.9888700001,931356.9888700001,904035.4224999999,1635201.5125599997,2911244.5926400004,1404476.0022300002,2140153.90816,847350.291,847350.291,847350.291,1066645.9335,847253.5199999999,847253.5199999999,1043659.31228,1061595.8415,1577977.0286,2752285.515,781124.8414,993444.0097,940261.422,940261.422,940261.422,940261.422,2547408.9168,2547408.9168 +30729600.0,891324.8910000001,800264.2079999999,2336771.4873599997,1007302.95281,1007302.95281,1007302.95281,959239.176,1726570.9347199998,3097120.28608,1482108.90135,2258451.6592,900517.7009999999,900517.7009999999,900517.7009999999,1130440.955,891324.8910000001,891324.8910000001,1123371.3441599999,1127533.0369499999,1675987.37838,2923233.7994999997,829641.5926199999,1055148.20001,998958.342,998958.342,998958.342,998958.342,2679916.83894,2679916.83894 +30733200.0,911387.1630000001,815434.8330000001,2381069.7123600002,1052944.5473800001,1052944.5473800001,1052944.5473800001,1001456.7535,1776484.1124,3162705.2416000003,1521173.56461,2317978.76512,922378.2390000001,922378.2390000001,922378.2390000001,1160572.0525,911387.1630000001,911387.1630000001,1142112.48944,1155543.6428999999,1717622.89636,2995853.889,850251.86564,1081360.59422,1021806.456,1021806.456,1021806.456,1021806.456,2740237.40342,2740237.40342 +30736800.0,917279.8859999999,812357.3250000001,2372083.389,1105776.9284100002,1105776.9284100002,1105776.9284100002,1046938.7110000001,1794725.95392,3144651.8182400004,1538124.0149100001,2343808.0227200002,921711.75,921711.75,921711.75,1166982.978,917279.8859999999,917279.8859999999,1139709.42306,1163039.067,1728764.2428,3015286.47,855767.0172,1088374.8306,1025355.978,1025355.978,1025355.978,1025355.978,2757954.85724,2757954.85724 +30740400.0,919192.3769999999,813991.665,2376855.6618,1108856.7299700002,1108856.7299700002,1108856.7299700002,1050001.47,1799797.63768,3150727.5257599996,1541863.14492,2349505.74464,923848.029,923848.029,923848.029,1169320.558,919192.3769999999,919192.3769999999,1141210.5326699999,1165139.19045,1731885.90778,3020731.2345000003,857312.29322,1090340.13131,1027454.9730000001,1027454.9730000001,1027454.9730000001,1027454.9730000001,2763705.0801799996,2763705.0801799996 +30744000.0,917138.9369999999,814355.61,2377918.3811999997,1093723.9490099999,1093723.9490099999,1093723.9490099999,1037040.1719999999,1794298.5243199999,3151948.6208000006,1536671.87541,2341595.2387200003,923220.9029999999,923220.9029999999,923220.9029999999,1166009.7575,917138.9369999999,917138.9369999999,1140664.6601999998,1161566.9082,1726575.9968799998,3011469.7619999996,854683.7991199999,1086997.18076,1025699.5680000001,1025699.5680000001,1025699.5680000001,1025699.5680000001,2757531.0705799996,2757531.0705799996 +30747600.0,878859.807,732360.75,2138493.39,910034.1571200001,910034.1571200001,910034.1571200001,786192.1585,1476704.89368,2260484.65792,1258496.8160100002,1917709.4339200004,721451.361,721451.361,721451.361,913749.536,878859.807,878859.807,1088315.8909999998,916011.0463499998,1361576.9133399997,2374843.4535,674003.1896599999,857205.3989299999,888916.9800000001,888916.9800000001,888916.9800000001,888916.9800000001,2642438.48638,2642438.48638 +30751200.0,389555.415,272880.078,796809.82776,486810.68942000007,486810.68942000007,486810.68942000007,329396.57449999993,720013.4248,921189.6134400001,593289.49029,904060.1756800001,330574.302,330574.302,330574.302,401837.394,389555.415,389555.415,626911.62417,205534.6407,305510.74988,532867.587,151232.89612,192339.82426,485546.40900000004,485546.40900000004,485546.40900000004,485546.40900000004,1171263.2810999998,1171263.2810999998 +30754800.0,135494.03100000002,98489.77200000003,287590.13424000004,145532.80929,145532.80929,145532.80929,60468.9225,277987.49231999996,681892.2822400002,261276.80690999998,398136.08672,190407.243,190407.243,190407.243,108149.1705,135494.03100000002,135494.03100000002,206533.71842999998,82988.9874,123356.47016,215156.634,61063.50184,77661.29932,148177.65899999999,148177.65899999999,148177.65899999999,148177.65899999999,407385.38654000004,407385.38654000004 +30758400.0,131767.554,101838.94499999998,297369.71939999994,122915.92104,122915.92104,122915.92104,39741.7825,287219.3176,681325.7932800001,252233.60274,384355.96608,188717.403,188717.403,188717.403,103270.412,131767.554,131767.554,205316.55273999998,76203.61335,113270.55614,197564.92350000003,56070.806860000004,71311.52953000001,144160.359,144160.359,144160.359,144160.359,396181.11236,396181.11236 +30762000.0,136909.821,113122.869,330318.77748,116102.45614,116102.45614,116102.45614,45594.8395,289588.61727999995,671399.9366400001,252988.90365000002,385506.90080000006,183772.605,183772.605,183772.605,99750.77,136909.821,136909.821,204165.14456,83904.26715,124716.96005999998,217529.5815,61736.96694,78517.82037,141676.94400000002,141676.94400000002,141676.94400000002,141676.94400000002,411642.19514,411642.19514 +30765600.0,141853.332,136352.472,398149.21824,112122.66362,112122.66362,112122.66362,44821.244999999995,289540.61248,692447.2966400001,261469.79922000002,398430.17024,185402.79,185402.79,185402.79,98795.228,141853.332,141853.332,226612.92393999995,86569.6329,128678.81236,224439.78900000002,63698.14964,81012.07622,152099.586,152099.586,152099.586,152099.586,426505.68488,426505.68488 +30769200.0,149713.122,141907.539,414370.01388,122272.37671000001,122272.37671000001,122272.37671000001,54830.4155,291383.47704,713562.8633600001,290900.68938,443277.24096,223117.866,223117.866,223117.866,104101.8825,149713.122,149713.122,231045.62754,95602.29119999999,142105.13408,247857.79200000002,70344.40192,89464.86016000001,183750.102,183750.102,183750.102,183750.102,450137.45348,450137.45348 +30772800.0,169395.732,153833.196,449192.93231999996,125203.46454000002,125203.46454000002,125203.46454000002,62108.45899999999,306765.72168,716170.54912,300833.25110999995,458412.57312,258940.01700000002,258940.01700000002,258940.01700000002,143224.9245,169395.732,169395.732,239367.29309999995,110557.3536,164334.63423999998,286630.17600000004,81348.37376,103459.84448,216263.84100000001,216263.84100000001,216263.84100000001,216263.84100000001,509316.50087999995,509316.50087999995 +30776400.0,200979.97500000003,167482.626,489049.26792,136984.13245000003,136984.13245000003,136984.13245000003,70557.095,360364.56424,716060.4435200001,332704.68231,506978.56351999997,294852.69299999997,294852.69299999997,294852.69299999997,189061.1695,200979.97500000003,200979.97500000003,252656.67375,122426.60355,181977.32181999998,317402.3055,90081.79718000001,114567.11789000001,252430.94999999998,252430.94999999998,252430.94999999998,252430.94999999998,604279.7915,604279.7915 +30780000.0,345312.054,206715.80400000003,603610.14768,242479.30575,242479.30575,242479.30575,149520.2205,864476.1031999999,797001.6268800001,565071.94443,861062.0105600001,338504.646,338504.646,338504.646,304491.0715,345312.054,345312.054,476305.93542999995,179505.50939999998,266820.53495999996,465384.654,132080.59704,167981.69892,377532.2729999999,377532.2729999999,377532.2729999999,377532.2729999999,1038238.2423599999,1038238.2423599999 +30783600.0,1071544.488,496622.937,1450138.9760399999,1510787.6996300004,1510787.6996300004,1510787.6996300004,1256360.5145,3109227.8201599997,3293704.06464,2531941.74786,3858196.94912,952172.073,952172.073,952172.073,1300993.4175,1071544.488,1071544.488,2333350.8412499996,1332740.9438999998,1981012.46476,3455254.2989999996,980634.07724,1247182.26602,1305702.7410000002,1305702.7410000002,1305702.7410000002,1305702.7410000002,3221777.09392,3221777.09392 +30787200.0,948018.6809999999,1083055.137,3162521.00004,1738941.1996,1738941.1996,1738941.1996,1772667.624,3818052.8795199995,2878060.4294400006,2876707.03677,4383553.57984,1207557.678,1207557.678,1207557.678,1498764.7885,948018.6809999999,948018.6809999999,2094679.7235,1950180.6766499998,2898787.07986,5056023.9765,1434947.75714,1824983.89247,1399978.98,1399978.98,1399978.98,1399978.98,2850376.1675399994,2850376.1675399994 +30790800.0,1956043.623,2085551.304,6089809.807680001,1373165.97319,1373165.97319,1373165.97319,1760188.3215,4046184.96928,6923249.738880001,3356306.77956,5114372.235520001,1843130.5200000003,1843130.5200000003,1843130.5200000003,1436275.4175,1956043.623,1956043.623,2677821.6896599997,1649707.1752499999,2452157.3320999998,4277018.6025,1213858.6128999998,1543800.04795,2196567.312,2196567.312,2196567.312,2196567.312,5881171.15982,5881171.15982 +30794400.0,1340540.634,1077966.849,3147663.1990799997,645140.0508300001,645140.0508300001,645140.0508300001,703379.3935,1993643.4436799998,6675026.53184,1155166.30278,1760253.4137600001,1356143.352,1356143.352,1356143.352,1354509.4745,1340540.634,1340540.634,1881267.2865999998,2104581.366,3128291.3143999996,5456322.06,1548556.1656,1969472.4388,929123.3699999999,929123.3699999999,929123.3699999999,929123.3699999999,4030558.83956,4030558.83956 +30798000.0,680260.263,681665.1900000001,1990462.3548,360555.5775800001,360555.5775800001,360555.5775800001,480800.145,1274805.29552,3081909.3062400003,811385.0104500001,1236396.2064000003,542027.5140000001,542027.5140000001,542027.5140000001,482764.11399999994,680260.263,680260.263,711743.6845999999,772501.8559499999,1148262.0179799998,2002782.5895,568408.77302,722909.1442099999,543307.2930000001,543307.2930000001,543307.2930000001,543307.2930000001,2045315.85742,2045315.85742 +30801600.0,700697.841,1118757.816,3266772.82272,579605.3096900001,579605.3096900001,579605.3096900001,842613.4990000001,1535675.60768,2476778.8185600005,1184421.63693,1804832.9705600003,632307.7559999999,632307.7559999999,632307.7559999999,974941.9645,700697.841,700697.841,830011.0170299999,738743.6479499999,1098083.1507799998,1915261.3094999997,543569.40022,691318.12981,692839.5,692839.5,692839.5,692839.5,2106764.8419399997,2106764.8419399997 +30805200.0,557639.757,589128.042,1720253.88264,450900.26949000004,450900.26949000004,450900.26949000004,751544.9234999999,1167883.66136,1801012.0089600002,833512.42863,1270114.17696,517989.05700000003,517989.05700000003,517989.05700000003,536154.64,557639.757,557639.757,632527.5059999999,580911.3692999999,863478.1341199998,1506066.5129999998,427436.01988,543618.29374,521527.632,521527.632,521527.632,521527.632,1676636.8693799998,1676636.8693799998 +30808800.0,461373.43200000003,414311.17500000005,1209788.631,222191.84537000002,222191.84537000002,222191.84537000002,408026.37750000006,1003586.5383999998,1557085.20512,683797.1891099999,1041976.66912,451163.01300000004,451163.01300000004,451163.01300000004,361017.923,461373.43200000003,461373.43200000003,537704.42622,479158.82505,712231.1424199999,1242263.6205,352566.24658,448398.01159,446721.83999999997,446721.83999999997,446721.83999999997,446721.83999999997,1387196.11888,1387196.11888 +30812400.0,825963.4980000001,933040.389,2724477.93588,1322282.0517499999,1322282.0517499999,1322282.0517499999,1252958.5355,1837521.5206399998,2495870.08512,1545961.0425,2355750.16,772842.3,772842.3,772842.3,1304185.2635000001,825963.4980000001,825963.4980000001,1343073.5005999997,1182643.92225,1757905.2869,3066113.8725000005,870192.3181,1106721.1025500002,822443.3400000001,822443.3400000001,822443.3400000001,822443.3400000001,2483396.91732,2483396.91732 +30816000.0,794189.8979999998,1213477.5119999999,3543354.3350399993,1357585.5695600002,1357585.5695600002,1357585.5695600002,1028011.068,2116061.40104,2786974.1248000003,1542558.20607,2350564.88544,913394.7150000001,913394.7150000001,913394.7150000001,1494398.8605,794189.8979999998,794189.8979999998,1463627.85816,1201833.4418999997,1786428.9679599996,3115864.479,884312.0140399999,1124678.70242,983455.3439999999,983455.3439999999,983455.3439999999,983455.3439999999,2387864.2933199997,2387864.2933199997 +30819600.0,714204.921,1014555.03,2962500.6876,942073.7180800001,942073.7180800001,942073.7180800001,867586.7795000001,2000312.63608,2707275.55712,1302740.92494,1985129.02848,757449.681,757449.681,757449.681,1111222.0035,714204.921,714204.921,1095098.84237,971057.30985,1443398.7667399999,2517555.9885,714506.3662599999,908717.82823,886134.72,886134.72,886134.72,886134.72,2147376.12914,2147376.12914 +30823200.0,2096041.6859999998,1701659.4989999998,4968845.737079999,3343959.34224,3343959.34224,3343959.34224,2757735.4525,3218809.3874399993,6218684.82048,3538126.64751,5391431.08192,2224536.096,2224536.096,2224536.096,2844380.126,2096041.6859999998,2096041.6859999998,3388074.41375,2659692.9231,3953420.09804,6895500.171,1957008.61996,2488947.20458,2341666.8959999997,2341666.8959999997,2341666.8959999997,2341666.8959999997,6302098.669239999,6302098.669239999 +30826800.0,1446828.585,818386.56,2389688.7552,1749448.78372,1749448.78372,1749448.78372,1515698.667,2324857.3968,3805988.1465600003,2046007.3103399999,3117725.42528,1335503.244,1335503.244,1335503.244,1559610.318,1446828.585,1446828.585,1106220.10109,1538775.1885499998,2287265.8358199997,3989417.1555,1132234.5831799998,1439989.62089,1468905.468,1468905.468,1468905.468,1468905.468,4350131.2789,4350131.2789 +30830400.0,1042132.398,776744.829,2268094.90068,1081219.89151,1081219.89151,1081219.89151,1033486.7409999999,1731092.6423199999,3167920.43904,1507716.97209,2297473.48128,933122.6190000001,933122.6190000001,933122.6190000001,1237560.415,1042132.398,1042132.398,1095955.6139999998,1198782.25695,1781893.6263799998,3107953.9995,882066.94462,1121823.39601,1051482.444,1051482.444,1051482.444,1051482.444,3133344.74332,3133344.74332 +30834000.0,915168.702,781231.737,2281196.6720399996,1050268.0177,1050268.0177,1050268.0177,1024735.7714999999,1688482.41384,3170463.30176,1478420.52498,2252831.2761600004,920019.4950000001,920019.4950000001,920019.4950000001,1199355.311,915168.702,915168.702,1097238.6766899999,1181028.40155,1755503.94502,3061925.4855,869003.61398,1105209.29429,1036825.323,1036825.323,1036825.323,1036825.323,2751607.23068,2751607.23068 +30837600.0,649984.23,551314.179,1609837.40268,683057.3470600001,683057.3470600001,683057.3470600001,565749.037,858587.1931999999,1942237.78176,832007.83533,1267821.46336,493699.70699999994,493699.70699999994,493699.70699999994,599100.0575,649984.23,649984.23,768939.03866,550297.2573,817972.71332,1426696.593,404910.08068,514969.53214,657073.326,657073.326,657073.326,657073.326,1954285.9182,1954285.9182 +30841200.0,111965.883,100390.488,293140.22495999996,116065.37437000002,116065.37437000002,116065.37437000002,61057.95849999999,179248.95375999997,700930.53056,200868.05487,306084.65504000004,167691.684,167691.684,167691.684,108034.0905,111965.883,111965.883,201220.20281999995,81320.5494,120876.47095999999,210831.054,59835.86104,76099.97092,138054.366,138054.366,138054.366,138054.366,336644.08822000003,336644.08822000003 +30844800.0,109079.32499999998,100364.34599999999,293063.89032,97861.83946,97861.83946,97861.83946,40624.111500000006,191977.46735999998,709191.81248,206943.7167,315342.8064,167517.648,167517.648,167517.648,103469.1385,109079.32499999998,109079.32499999998,211553.88656999994,75336.47595,111981.62597999998,195316.78949999998,55432.76501999999,70500.06021,139443.48599999998,139443.48599999998,139443.48599999998,139443.48599999998,327965.17049999995,327965.17049999995 +30848400.0,116117.364,109848.087,320756.41404,110391.61529,110391.61529,110391.61529,37702.574,206540.40087999997,719957.02848,234138.46659,356782.42528,169352.31,169352.31,169352.31,105053.116,116117.364,116117.364,218827.51565999998,76012.68825,112986.76130000001,197069.93250000002,55930.32370000001,71132.86135,145676.33099999998,145676.33099999998,145676.33099999998,145676.33099999998,349126.20775999996,349126.20775999996 +30852000.0,127606.851,124116.88500000001,362421.3042,105988.70964000002,105988.70964000002,105988.70964000002,43283.8525,218572.18495999998,720090.81984,249199.07796000002,379731.92832,168260.049,168260.049,168260.049,103090.5925,127606.851,127606.851,241933.48101,88913.81744999999,132163.25457999998,230517.3045,65423.00642,83205.76991,149853.438,149853.438,149853.438,149853.438,383671.26534,383671.26534 +30855600.0,134005.158,126109.374,368239.37208,106540.86212000002,106540.86212000002,106540.86212000002,50537.1475,249012.58343999996,707476.7980800001,278423.88168000005,424264.9625600001,168184.34399999998,168184.34399999998,168184.34399999998,103601.176,134005.158,134005.158,238297.71745,94863.71294999999,141007.29677999998,245942.9595,69800.95422,88773.69681,174363.603,174363.603,174363.603,174363.603,402908.84171999997,402908.84171999997 +30859200.0,165926.949,137943.099,402793.84907999996,116763.98987,116763.98987,116763.98987,65367.17600000001,310812.17007999995,711662.57344,304799.46357,464456.32544000004,239780.076,239780.076,239780.076,160120.485,165926.949,165926.949,246070.58605999997,111983.7798,166454.90232,290328.318,82397.94168,104794.69764000001,224193.63900000002,224193.63900000002,224193.63900000002,224193.63900000002,498887.02666,498887.02666 +30862800.0,200756.29499999998,148147.533,432590.79636,128488.30049000001,128488.30049000001,128488.30049000001,73078.362,376049.88736000005,709057.0636800001,335322.00618,510966.86656000005,296149.101,296149.101,296149.101,193422.0225,200756.29499999998,200756.29499999998,263745.00321,124898.32259999998,185651.33383999998,323810.46599999996,91900.49415999999,116880.15868,249333.45599999995,249333.45599999995,249333.45599999995,249333.45599999995,603607.2603,603607.2603 +30866400.0,346339.86899999995,189574.35299999997,553557.11076,236813.38142000002,236813.38142000002,236813.38142000002,152080.3585,869700.5496799999,784497.6563200001,575577.65328,877070.70976,346177.80299999996,346177.80299999996,346177.80299999996,317467.85,346339.86899999995,346339.86899999995,487610.99867999996,186085.89675,276601.7527,482444.91750000004,136922.4623,174139.64165,388712.57700000005,388712.57700000005,388712.57700000005,388712.57700000005,1041328.5394599999,1041328.5394599999 +30870000.0,1087214.6609999998,499968.30000000005,1459907.436,1516999.7772600004,1516999.7772600004,1516999.7772600004,1274563.0590000001,3153227.1101599997,3265139.93024,2568326.35521,3913640.1603200007,973304.676,973304.676,973304.676,1354241.1505,1087214.6609999998,1087214.6609999998,2354396.66436,1313631.0675,1952607.1669999997,3405710.175,966572.9829999999,1229299.1964999998,1342573.833,1342573.833,1342573.833,1342573.833,3268892.0807399997,3268892.0807399997 +30873600.0,970408.6710000001,1095898.818,3200024.5485599996,1698694.8336600002,1698694.8336600002,1698694.8336600002,1769807.4555000002,3864398.9560000002,2934834.0755200004,2915303.9048699997,4442367.85504,1227324.459,1227324.459,1227324.459,1516272.387,970408.6710000001,970408.6710000001,2110467.1006899998,1968919.2288,2926640.4339199997,5104605.408,1448735.63008,1842519.47584,1433949.471,1433949.471,1433949.471,1433949.471,2917695.40414,2917695.40414 +30877200.0,1973703.5610000002,2104742.1960000005,6145847.212320001,1384296.93886,1384296.93886,1384296.93886,1728322.8795,4099094.06696,6979058.492160001,3372079.4633400002,5138406.80128,1874155.3919999998,1874155.3919999998,1874155.3919999998,1453254.642,1973703.5610000002,1973703.5610000002,2045984.9189,1652216.1948,2455886.78832,4283523.467999999,1215704.75568,1546147.99464,2218958.214,2218958.214,2218958.214,2218958.214,5934268.70674,5934268.70674 +30880800.0,1363672.761,1035231.192,3022875.08064,668284.41108,668284.41108,668284.41108,756983.297,1990910.51056,6760260.1363200005,1200194.37384,1828867.6172800001,1391321.949,1391321.949,1391321.949,1409785.2405,1363672.761,1363672.761,1823298.3883399998,2140811.7993,3182144.94612,5550252.813000001,1575214.6078800003,2003376.9677400002,958376.8289999999,958376.8289999999,958376.8289999999,958376.8289999999,4100109.43474,4100109.43474 +30884400.0,679886.8080000001,639203.331,1866473.72652,347270.06787,347270.06787,347270.06787,475896.4945,1241344.4665599999,3007298.7814400005,805577.51505,1227546.6896000002,531851.0549999999,531851.0549999999,531851.0549999999,477227.21200000006,679886.8080000001,679886.8080000001,702324.72817,801648.0130500001,1191585.44162,2078346.7005000003,589854.58738,750184.1899900001,538617.948,538617.948,538617.948,538617.948,2044193.00272,2044193.00272 +30888000.0,686435.229,1100764.095,3214231.1574,573662.66199,573662.66199,573662.66199,833646.037,1505464.6160799998,2425728.55296,1171554.2512800002,1785225.5257600003,617557.236,617557.236,617557.236,964577.271,686435.229,686435.229,812442.41507,725671.51965,1078652.4810600001,1881370.6065000002,533950.8959400001,679085.1998700001,684429.474,684429.474,684429.474,684429.474,2063881.9218600001,2063881.9218600001 +30891600.0,535778.382,558792.9299999999,1631675.3556,434356.66373000003,434356.66373000003,434356.66373000003,736112.601,1101640.6114400001,1684984.6208000001,792203.9309099999,1207167.89472,483482.93100000004,483482.93100000004,483482.93100000004,533814.813,535778.382,535778.382,595473.0937999999,547601.51655,813965.7110199999,1419707.6354999999,402926.54798,512446.85128999996,494905.005,494905.005,494905.005,494905.005,1610907.0018799999,1610907.0018799999 +30895200.0,475698.195,427244.187,1247553.02604,244039.53211000003,244039.53211000003,244039.53211000003,427381.29349999997,1021380.19496,1616092.2758400002,712373.4639000001,1085521.4688000001,462681.94200000004,462681.94200000004,462681.94200000004,379562.757,475698.195,475698.195,565681.29579,502472.484,746885.0255999999,1302706.44,369720.49439999997,470214.9912,464620.422,464620.422,464620.422,464620.422,1430265.9063,1430265.9063 +30898800.0,821928.522,939013.629,2741919.79668,1336284.8216300001,1336284.8216300001,1336284.8216300001,1246134.1795,1835492.4593599997,2459264.14016,1537559.01117,2342947.0646400005,761410.908,761410.908,761410.908,1298286.339,821928.522,821928.522,1338868.2811399999,1175437.4292,1747193.4132799997,3047430.372,864889.7627199999,1099977.24856,833753.6429999999,833753.6429999999,833753.6429999999,833753.6429999999,2471265.08948,2471265.08948 +30902400.0,779730.894,1193445.981,3484862.2645199997,1365277.16545,1365277.16545,1365277.16545,1008018.6235,2056018.9010400001,2700575.85984,1512264.94356,2304403.72352,890608.0860000001,890608.0860000001,890608.0860000001,1473045.294,779730.894,779730.894,1437173.2718200001,1180630.4039999999,1754912.3535999998,3060893.64,868710.7664,1104836.8472,965607.147,965607.147,965607.147,965607.147,2344390.8879599995,2344390.8879599995 +30906000.0,703420.845,1009862.2079999999,2948797.64736,926614.5719600001,926614.5719600001,926614.5719600001,850967.551,1972762.26088,2639281.4867200004,1274259.69489,1941729.05888,735955.206,735955.206,735955.206,1095471.9265,703420.845,703420.845,1070832.3298399998,951864.45705,1414870.1312199999,2467796.7405,700384.21778,890757.10919,874842.048,874842.048,874842.048,874842.048,2114952.0072999997,2114952.0072999997 +30909600.0,2069900.3339999998,1672807.608,4884598.21536,3316543.6594400005,3316543.6594400005,3316543.6594400005,2724303.5715,3155116.6772,6065849.500160001,3490764.90882,5319260.81344,2188026.426,2188026.426,2188026.426,2792254.2375000003,2069900.3339999998,2069900.3339999998,3456078.0927399998,2613530.6343,3884803.5601199996,6775820.163,1923042.29388,2445748.42074,2305065.384,2305065.384,2305065.384,2305065.384,6223500.337559999,6223500.337559999 +30913200.0,1413991.5359999998,775820.7660000001,2265396.6367200003,1720825.97555,1720825.97555,1720825.97555,1479705.5070000002,2207911.0464,3613590.90496,1971114.08865,3003602.4208000004,1302238.419,1302238.419,1302238.419,1507342.515,1413991.5359999998,1413991.5359999998,1056264.8889,1490965.7121000001,2216200.88564,3865466.6610000003,1097056.25236,1395249.3947800002,1435071.318,1435071.318,1435071.318,1435071.318,4251401.218239999,4251401.218239999 +30916800.0,1000527.1680000001,738389.3489999999,2156096.89908,1035206.7385000001,1035206.7385000001,1035206.7385000001,988585.0065,1636078.02648,2964823.7945600008,1431081.183,2180695.136,879880.8119999999,879880.8119999999,879880.8119999999,1166660.1870000002,1000527.1680000001,1000527.1680000001,1051482.3251399999,1132837.65,1683872.2599999998,2936986.5,833544.74,1060112.27,998691.69,998691.69,998691.69,998691.69,3008251.68512,3008251.68512 +30920400.0,874898.2679999999,743794.527,2171880.01884,1007997.5430800001,1007997.5430800001,1007997.5430800001,968844.9820000001,1602196.26784,2984137.1328000003,1409078.4464399999,2147167.15648,871613.9130000001,871613.9130000001,871613.9130000001,1134685.391,874898.2679999999,874898.2679999999,1055964.33605,1121035.74345,1666329.67298,2906388.9645000002,824860.86802,1049068.01671,986842.2270000002,986842.2270000002,986842.2270000002,986842.2270000002,2630527.45912,2630527.45912 +30924000.0,627202.287,524256.00599999994,1530827.5375199998,661524.70274,661524.70274,661524.70274,545609.5574999999,817025.12792,1839190.3750399998,797463.93615,1215183.1408,468895.9770000001,468895.9770000001,468895.9770000001,573976.1124999999,627202.287,627202.287,730507.33587,525778.95015,781528.2172600001,1363130.6115,386869.44974000007,492025.23977000004,631630.446,631630.446,631630.446,631630.446,1885788.20958,1885788.20958 +30927600.0,104124.04800000001,92116.869,268981.25748,109141.66131,109141.66131,109141.66131,58737.594999999994,152732.66736,631747.2761600001,181653.17016,276804.83072,151934.535,151934.535,151934.535,99609.8355,104124.04800000001,104124.04800000001,176659.88587,74563.78859999999,110833.08823999998,193313.52599999998,54864.21975999999,69776.97747999999,128331.318,128331.318,128331.318,128331.318,313066.30432,313066.30432 +30931200.0,99848.313,90885.342,265385.19864,85553.58966,85553.58966,85553.58966,37868.9325,169542.64015999998,627263.2038400001,177167.25936,269969.15712,149524.002,149524.002,149524.002,92881.684,99848.313,99848.313,190159.78579000002,67330.45215,100081.31405999999,174560.4315,49541.91294,63008.00337,124696.72200000001,124696.72200000001,124696.72200000001,124696.72200000001,300210.59442,300210.59442 +30934800.0,103498.59,95003.526,277410.29592,81803.03989,81803.03989,81803.03989,33481.1155,184704.58831999998,639509.5904000001,202410.9549,308435.7408,151681.42200000002,151681.42200000002,151681.42200000002,94968.83549999999,103498.59,103498.59,193529.87381000002,67098.16034999999,99736.03094,173958.1935,49370.99206,62790.624130000004,129256.734,129256.734,129256.734,129256.734,311185.7606,311185.7606 +30938400.0,115480.824,111577.299,325805.71307999996,94803.64146000001,94803.64146000001,94803.64146000001,37544.05900000001,188189.70176000003,648178.8288,220094.76825000002,335382.504,152645.06699999998,152645.06699999998,152645.06699999998,94278.1315,115480.824,115480.824,214422.46474999998,76126.05990000001,113155.27915999999,197363.859,56013.74284,71238.95482,135008.439,135008.439,135008.439,135008.439,347212.34416,347212.34416 +30942000.0,120219.369,115182.159,336331.90428,96498.55633,96498.55633,96498.55633,40481.448000000004,193530.39927999998,654307.35872,242205.17034,369074.54528,153955.91100000002,153955.91100000002,153955.91100000002,96112.352,120219.369,120219.369,221999.34509999998,83893.75335,124701.33214,217502.32350000003,61729.23086,78507.98153,142421.29200000002,142421.29200000002,142421.29200000002,142421.29200000002,361459.56945999997,361459.56945999997 +30945600.0,135568.251,127902.12900000002,373474.21668,105979.15328,105979.15328,105979.15328,59170.1845,213576.97599999997,667849.8579200001,270891.77682,412787.46944,175342.038,175342.038,175342.038,109296.04,135568.251,135568.251,226287.46491,95394.32370000001,141796.00708,247318.61700000003,70191.37892,89270.24366000001,186638.262,186638.262,186638.262,186638.262,407608.54134,407608.54134 +30949200.0,170379.04499999998,134134.365,391672.34579999995,118788.11483,118788.11483,118788.11483,69726.09349999999,285304.44,670485.8752,297987.22190999996,454075.76672,240272.37899999996,240272.37899999996,240272.37899999996,176067.1955,170379.04499999998,170379.04499999998,238252.28699999995,113170.11389999998,168218.29275999998,293403.99899999995,83270.84924,105904.87202,220168.82099999997,220168.82099999997,220168.82099999997,220168.82099999997,512272.99529999995,512272.99529999995 +30952800.0,306735.894,178631.51400000002,521604.02088,228667.72819000002,228667.72819000002,228667.72819000002,149817.381,806974.7916000001,742157.47264,522715.27392,796518.51264,298595.589,298595.589,298595.589,299700.723,306735.894,306735.894,466172.22261999996,172552.71645,256485.76618,447358.89450000005,126964.71482000001,161475.25811000002,339930.537,339930.537,339930.537,339930.537,922252.5879599999,922252.5879599999 +30956400.0,1042164.936,455836.26900000003,1331041.90548,1465038.96638,1465038.96638,1465038.96638,1206117.661,3069261.89696,2973194.8447999996,2458284.15609,3745956.80928,906018.036,906018.036,906018.036,1246318.08,1042164.936,1042164.936,2288291.32883,1231877.2086,1831086.61624,3193755.726,906418.29176,1152793.73348,1284747.9899999998,1284747.9899999998,1284747.9899999998,1284747.9899999998,3133442.5742399995,3133442.5742399995 +30960000.0,917780.5800000001,1080938.871,3156341.5033199997,1618750.07844,1618750.07844,1618750.07844,1695679.104,3733303.4711199994,2786192.85376,2804185.1615400002,4273044.05568,1177517.511,1177517.511,1177517.511,1431144.9179999998,917780.5800000001,917780.5800000001,2022898.2656999996,1895662.41975,2817750.0659,4914680.3475,1394833.0891,1773965.57305,1373851.719,1373851.719,1373851.719,1373851.719,2759460.2772000004,2759460.2772000004 +30963600.0,1932594.4439999997,1983588.8430000003,5792079.421560001,1282105.36828,1282105.36828,1282105.36828,1597198.6835,3950458.72608,6682467.4182400005,3243720.66774,4942812.44608,1825949.847,1825949.847,1825949.847,1362414.368,1932594.4439999997,1932594.4439999997,1895869.4076399999,1540598.6767499999,2289976.3046999997,3994144.7175,1133576.3103,1441696.04565,2175956.886,2175956.886,2175956.886,2175956.886,5810667.294959999,5810667.294959999 +30967200.0,1197187.209,871702.8600000001,2545372.3512000004,503706.80195,503706.80195,503706.80195,538895.35,1584203.7884799999,6005168.062720001,864749.7967500001,1317713.976,1185350.0610000002,1185350.0610000002,1185350.0610000002,1211030.3415,1197187.209,1197187.209,1507021.95618,1909597.4167499999,2838463.3206999996,4950808.1175,1405086.4943,1787005.97765,750806.076,750806.076,750806.076,750806.076,3599542.8750599995,3599542.8750599995 +30970800.0,549977.292,491599.842,1435471.53864,207332.85331,207332.85331,207332.85331,335070.148,957329.80808,2221884.8332800004,579517.77408,883074.7033600002,390096.174,390096.174,390096.174,325547.075,549977.292,549977.292,476930.49469,535656.69765,796210.69626,1388739.5865,394137.52074,501268.86027,392871.117,392871.117,392871.117,392871.117,1653598.3912799999,1653598.3912799999 +30974400.0,631792.461,1056332.6400000001,3084491.3087999998,479004.55966,479004.55966,479004.55966,780677.6109999999,1411360.2343199998,2195026.8569600005,1062002.04117,1618288.82464,557199.552,557199.552,557199.552,903671.2055,631792.461,631792.461,674198.47924,653320.95075,971109.1662999999,1693795.0575,480715.1687,611379.35885,621162.3570000001,621162.3570000001,621162.3570000001,621162.3570000001,1899589.3327399998,1899589.3327399998 +30978000.0,527203.722,527839.4010000001,1541291.05092,418573.24036000005,418573.24036000005,418573.24036000005,708009.05,1101632.27776,1683295.7945599998,779263.5446400001,1187449.2108800001,488267.64599999995,488267.64599999995,488267.64599999995,494118.33450000006,527203.722,527203.722,568645.06387,542779.33545,806797.9257799999,1407205.6845,399378.37522000005,507934.24231000006,492878.655,492878.655,492878.655,492878.655,1585125.8574799998,1585125.8574799998 +30981600.0,492731.709,446498.373,1303775.24916,260172.5929,260172.5929,260172.5929,452838.07800000004,1069754.90056,1713368.51712,744567.8772,1134579.6224,491592.83700000006,491592.83700000006,491592.83700000006,404760.76550000004,492731.709,492731.709,581267.3359999999,529906.04595,787662.81398,1373830.4895000001,389906.17702,495887.38621,489209.99100000004,489209.99100000004,489209.99100000004,489209.99100000004,1481480.0050599999,1481480.0050599999 +30985200.0,831888.2249999999,917210.9759999999,2678256.0499199997,1323266.73127,1323266.73127,1323266.73127,1255267.335,1849933.4536799998,2537922.75392,1561201.2381,2378973.3152,772860.516,772860.516,772860.516,1319501.358,831888.2249999999,831888.2249999999,1353253.90889,1200246.1820999999,1784069.63364,3111749.361,883144.10436,1123193.34078,825801.3119999999,825801.3119999999,825801.3119999999,825801.3119999999,2501210.5964999995,2501210.5964999995 +30988800.0,793861.926,1215591.6179999998,3549527.5245599994,1292512.10187,1292512.10187,1292512.10187,1027483.0895,2098195.66136,2787762.0435200003,1524497.8265999998,2323044.3071999997,915015.315,915015.315,915015.315,1500776.1125000003,793861.926,793861.926,1455874.72979,1199933.2062,1783604.4200799998,3110937.942,882913.81592,1122900.45716,977739.3389999999,977739.3389999999,977739.3389999999,977739.3389999999,2386878.19084,2386878.19084 +30992400.0,730457.286,1018506.429,2974038.77268,942659.0003600001,942659.0003600001,942659.0003600001,891352.399,2023598.3512799998,2781440.65472,1326332.72667,2021078.4406400002,779805.5939999999,779805.5939999999,779805.5939999999,1140788.8694999998,730457.286,730457.286,1109135.30741,995955.0858,1480407.31272,2582105.778,732826.21128,932017.2284400001,906833.5529999998,906833.5529999998,906833.5529999998,906833.5529999998,2196241.57324,2196241.57324 +30996000.0,2103448.848,1714860.882,5007393.77544,3322873.1484300005,3322873.1484300005,3322873.1484300005,2768428.5405,3237047.9644,6255079.81312,3551608.46712,5411974.80704,2230254.582,2230254.582,2230254.582,2853838.5785,2103448.848,2103448.848,3407176.5880099996,2670882.32385,3970052.2443399997,6924509.728499999,1965241.8086599999,2499418.27343,2352487.647,2352487.647,2352487.647,2352487.647,6324369.53632,6324369.53632 +30999600.0,1451056.023,822559.5599999998,2401873.9151999997,1748067.22222,1748067.22222,1748067.22222,1524189.8665,2313995.3355199997,3815273.5737600005,2052730.60272,3127970.4422400002,1371722.256,1371722.256,1371722.256,1593687.9175,1451056.023,1451056.023,1113733.82133,1557372.0231,2314908.53804,4037631.171,1145918.17996,1457392.58458,1494657.318,1494657.318,1494657.318,1494657.318,4362841.77582,4362841.77582 +31003200.0,1053996.096,784423.3049999999,2290516.0505999997,1091233.3817,1091233.3817,1091233.3817,1043500.3285000001,1742370.24296,3184049.5168,1517935.21383,2313044.1353599997,944769.3329999999,944769.3329999999,944769.3329999999,1252509.1075,1053996.096,1053996.096,1109412.2720199998,1207951.0681500002,1795522.3284600002,3131724.9915000005,888813.3785400002,1130403.59217,1064733.639,1064733.639,1064733.639,1064733.639,3169014.92864,3169014.92864 +31006800.0,923694.024,788997.7920000001,2303873.5526400004,1061976.6059100002,1061976.6059100002,1061976.6059100002,1031791.187,1700709.6043200002,3190517.1763199996,1488842.27877,2268712.04384,932059.398,932059.398,932059.398,1216962.2010000001,923694.024,923694.024,1110734.39191,1191734.5806,1771417.8210399998,3089682.246,876881.24696,1115228.16308,1047907.041,1047907.041,1047907.041,1047907.041,2777240.0321599995,2777240.0321599995 +31010400.0,661261.5360000001,562414.335,1642249.8581999997,698320.58373,698320.58373,698320.58373,577730.272,874400.1319999999,1980300.7654400005,847235.5985099999,1291025.67392,503792.36699999997,503792.36699999997,503792.36699999997,616766.556,661261.5360000001,661261.5360000001,786428.0351199999,562856.09265,836640.4142599999,1459256.5365,414150.90274,526722.12127,672235.728,672235.728,672235.728,672235.728,1988193.0182400001,1988193.0182400001 +31014000.0,113409.216,101933.49600000001,297645.80832,117467.96556000001,117467.96556000001,117467.96556000001,61521.8835,181589.52064,717613.96608,203449.97484,310019.00928,170846.358,170846.358,170846.358,110242.91249999999,113409.216,113409.216,204202.17674999998,82769.20605,123029.78282,214586.8305,60901.78618,77455.62739000001,140128.45500000002,140128.45500000002,140128.45500000002,140128.45500000002,340983.70944,340983.70944 +31017600.0,107842.86599999998,99017.856,289132.13951999997,92658.11247000001,92658.11247000001,92658.11247000001,40253.129,189422.2104,700154.8409600001,199054.17252000002,303320.64384000003,165146.457,165146.457,165146.457,102518.6225,107842.86599999998,107842.86599999998,208216.91058999998,74323.36845,110475.72297999999,192690.2145,54687.31802,69551.99171,136569.507,136569.507,136569.507,136569.507,324247.55043999996,324247.55043999996 +31021200.0,113551.977,106585.60500000001,311229.96660000004,90224.10595,90224.10595,90224.10595,36874.4565,200418.56248000002,699150.13824,225733.43099999998,343974.752,164432.949,164432.949,164432.949,102565.407,113551.977,113551.977,212112.74603999997,73653.8589,109480.55076000001,190954.44900000002,54194.69124000001,68925.46302000001,140448.02999999997,140448.02999999997,140448.02999999997,140448.02999999997,341412.94418,341412.94418 +31024800.0,126063.12300000002,122550.966,357848.82072,103418.06508000001,103418.06508000001,103418.06508000001,42858.158,205844.04511999997,713211.0368,244804.39137000003,373035.26304000005,166378.755,166378.755,166378.755,102356.023,126063.12300000002,126063.12300000002,238130.97398999997,88055.70749999999,130887.74299999997,228292.57499999998,64791.606999999996,82402.74849999999,147467.472,147467.472,147467.472,147467.472,379029.78982,379029.78982 +31028400.0,135121.116,127624.101,372662.37492,106550.14579000001,106550.14579000001,106550.14579000001,50826.9055,223998.23408,720683.6601600001,275528.52852,419852.99584,168739.137,168739.137,168739.137,105534.7755,135121.116,135121.116,241050.63917999997,95506.82055,141963.22462,247610.27550000002,70274.15438,89375.51849,174559.77000000002,174559.77000000002,174559.77000000002,174559.77000000002,406264.15544,406264.15544 +31032000.0,165038.991,141087.70200000002,411976.08984000003,118521.96125000001,118521.96125000001,118521.96125000001,67005.8585,287605.07296,733874.3110400001,307032.93768000003,467859.71456000005,243101.40300000002,243101.40300000002,243101.40300000002,165535.811,165038.991,165038.991,251509.82544999997,114875.47979999999,170753.18232,297825.31799999997,84525.66167999999,107500.75764,228411.342,228411.342,228411.342,228411.342,496217.23294,496217.23294 +31035600.0,209099.97000000003,155722.134,454708.63128,132889.57,132889.57,132889.57,76130.859,394796.85968,749077.4355200002,347250.2901,529143.2992,291550.491,291550.491,291550.491,205072.028,209099.97000000003,209099.97000000003,277584.05142,131906.20365,196067.98666,341979.0465,97056.91034,123438.15107,263943.294,263943.294,263943.294,263943.294,628693.9098,628693.9098 +31039200.0,371016.441,204576.47100000002,597363.29532,244883.94315000004,244883.94315000004,244883.94315000004,156810.40550000002,915193.33792,844503.1084800002,613117.56765,934274.3888000001,375674.736,375674.736,375674.736,335493.80549999996,371016.441,371016.441,508999.6834,199290.27375,296228.9995,516678.4875,146638.2755,186496.33025,419941.69200000004,419941.69200000004,419941.69200000004,419941.69200000004,1115522.7659399998,1115522.7659399998 +31042800.0,1109353.7640000002,498863.8679999999,1456682.4945599998,1526667.9564400003,1526667.9564400003,1526667.9564400003,1298025.267,3181811.3464,3391412.8294400005,2616050.20866,3986362.2227200004,1005212.412,1005212.412,1005212.412,1427745.165,1109353.7640000002,1109353.7640000002,2386762.62045,1354457.21805,2013291.9636199998,3511555.7505,996612.96538,1267504.40899,1373574.5610000002,1373574.5610000002,1373574.5610000002,1373574.5610000002,3335456.98376,3335456.98376 +31046400.0,995875.098,1106278.8329999999,3230334.1923599998,1718835.74148,1718835.74148,1718835.74148,1794402.0569999998,3915891.8069599997,3001252.19968,2963391.67467,4515644.45664,1262621.307,1262621.307,1262621.307,1571321.115,995875.098,995875.098,2125743.80018,1998979.5357,2971322.66788,5182539.5370000005,1470854.07812,1870649.98526,1462498.635,1462498.635,1462498.635,1462498.635,2994264.46132,2994264.46132 +31050000.0,1989780.3269999998,2141574.861,6253398.59412,1424194.72965,1424194.72965,1424194.72965,1778844.704,4139263.3973599994,7064669.567360001,3411014.05953,5197735.70976,1895528.349,1895528.349,1895528.349,1483018.2534999999,1989780.3269999998,1989780.3269999998,2001225.05986,1686606.6726,2507005.4738399996,4372683.966,1241009.35416,1578330.6886800001,2236663.359,2236663.359,2236663.359,2236663.359,5982606.183179999,5982606.183179999 +31053600.0,1402263.129,1050631.002,3067842.5258400002,692269.5885600002,692269.5885600002,692269.5885600002,807417.9225000001,2057693.56192,6884961.604480001,1270841.75022,1936520.76224,1433831.1030000001,1433831.1030000001,1433831.1030000001,1453418.4490000003,1402263.129,1402263.129,1861052.0590999997,2178444.0429,3238082.2563599995,5647817.8889999995,1602904.5056399999,2038593.3142199998,1001206.677,1001206.677,1001206.677,1001206.677,4216137.80786,4216137.80786 +31057200.0,740082.405,685886.199,2002787.70108,395642.34347,395642.34347,395642.34347,542208.94,1384237.60408,3354241.18976,918429.3010199999,1399511.3158399998,612181.17,612181.17,612181.17,559498.506,740082.405,740082.405,777134.5523499999,921156.8507999999,1369225.7387199998,2388184.428,677789.48528,862020.85544,608822.451,608822.451,608822.451,608822.451,2225181.0977,2225181.0977 +31060800.0,758688.9629999999,1163156.91,3396418.1772,641360.30695,641360.30695,641360.30695,915416.0155,1669875.4847199998,2748472.144,1307712.25074,1992704.3820800004,712821.144,712821.144,712821.144,1054078.1055,758688.9629999999,758688.9629999999,903127.6923499999,827307.7641,1229726.60244,2144871.981,608735.09556,774196.6483800001,772082.223,772082.223,772082.223,772082.223,2281124.8154199994,2281124.8154199994 +31064400.0,622662.996,653761.656,1908984.03552,502922.5455100001,502922.5455100001,502922.5455100001,849335.9525,1292872.03048,2058139.3427200003,945899.20635,1441370.2192000002,593273.103,593273.103,593273.103,674520.3815,622662.996,622662.996,701886.9219699998,669692.95425,995444.8356999999,1736240.9925,492761.7293,626700.32015,593535.06,593535.06,593535.06,593535.06,1872140.0746399998,1872140.0746399998 +31068000.0,554450.9010000001,497472.081,1452618.47652,306526.4334,306526.4334,306526.4334,515986.3485,1190836.51408,1950086.14592,850257.2609999999,1295630.112,558535.476,558535.476,558535.476,472401.2685,554450.9010000001,554450.9010000001,661255.9332599998,611446.8302999999,908866.6465199998,1585232.5229999998,449904.08747999993,572193.4535399999,553280.439,553280.439,553280.439,553280.439,1667049.04234,1667049.04234 +31071600.0,917298.096,1077474.78,3146226.3576,1439009.4156900002,1439009.4156900002,1439009.4156900002,1364052.326,2082168.9435200002,2826391.984,1684072.0476300002,2566205.02496,869661.168,869661.168,869661.168,1398764.563,917298.096,917298.096,1443348.88373,1292537.4444,1921253.18896,3351023.004,951052.24304,1209559.73192,967480.341,967480.341,967480.341,967480.341,2758009.6086399998,2758009.6086399998 +31075200.0,892785.2909999999,1287203.298,3758633.6301599997,1551321.4645500001,1551321.4645500001,1551321.4645500001,1114420.02,2302264.08368,3096875.3446400003,1710239.31645,2606078.9584000004,1008976.578,1008976.578,1008976.578,1617851.4065,892785.2909999999,892785.2909999999,1531141.2586599998,1314396.70785,1953745.2299399998,3407695.1685,967136.34306,1230015.68463,1091061.7200000002,1091061.7200000002,1091061.7200000002,1091061.7200000002,2684307.7749399994,2684307.7749399994 +31078800.0,818593.8209999999,1168915.3290000001,3413232.7606800003,1021750.30914,1021750.30914,1021750.30914,965185.0250000001,2242200.6764799994,3042461.1897599995,1469567.2315800001,2239340.5433600005,850651.2179999999,850651.2179999999,850651.2179999999,1241078.1879999998,818593.8209999999,818593.8209999999,1188308.8694099998,1093055.96205,1624739.97322,2833848.7905,804273.2757800001,1022884.4681900002,1021428.618,1021428.618,1021428.618,1021428.618,2461238.7551399996,2461238.7551399996 +31082400.0,2166290.976,1772095.0620000002,5174517.581040001,3450346.50081,3450346.50081,3450346.50081,2826276.124,3387411.28536,6529243.83424,3633798.5968199996,5537216.90944,2293618.995,2293618.995,2293618.995,2941117.991,2166290.976,2166290.976,3683215.5712299994,2777570.12115,4128635.0936600002,7201107.721500001,2043742.9533400002,2599256.97757,2419687.98,2419687.98,2419687.98,2419687.98,6513314.8678399995,6513314.8678399995 +31086000.0,1577937.429,886966.626,2589942.5479200003,1994542.47432,1994542.47432,1994542.47432,1664259.023,2507708.74872,4392396.134400001,2284181.89881,3480658.1315200003,1578933.759,1578933.759,1578933.759,1948988.321,1577937.429,1577937.429,1335764.1668800001,1784793.2364,2652951.92176,4627241.724,1313255.27024,1670213.9175200001,1685857.434,1685857.434,1685857.434,1685857.434,4744331.86986,4744331.86986 +31089600.0,1142806.074,844783.602,2466768.11784,1175519.26811,1175519.26811,1175519.26811,1179881.71,1888359.9645599998,3494787.5718400003,1647163.81032,2509963.9014399997,1027015.839,1027015.839,1027015.839,1374693.0855,1142806.074,1142806.074,1197545.56051,1323832.4059499998,1967770.6379799997,3432158.0895,974079.1530199999,1238845.6342099998,1169138.268,1169138.268,1169138.268,1169138.268,3436036.92916,3436036.92916 +31093200.0,997341.015,849348.8670000001,2480098.6916400003,1137688.57334,1137688.57334,1137688.57334,1115993.242,1832322.9512,3454512.10752,1597388.1438900002,2434115.2668800005,1009667.4209999999,1009667.4209999999,1009667.4209999999,1326331.3595000003,997341.015,997341.015,1198201.47135,1285242.2441999998,1910409.4592799996,3332109.522,945684.4167199999,1202732.8655599998,1130877.9,1130877.9,1130877.9,1130877.9,2998671.9850999997,2998671.9850999997 +31096800.0,710097.6810000001,612979.2930000001,1789899.53556,750267.2920600001,750267.2920600001,750267.2920600001,621069.6205,954742.22672,2162295.5520000006,923754.20214,1407625.45088,547251.702,547251.702,547251.702,671942.2885,710097.6810000001,710097.6810000001,866680.97074,611923.08195,909574.55638,1586467.2495000002,450254.51462000003,572639.13101,727372.311,727372.311,727372.311,727372.311,2135027.02754,2135027.02754 +31100400.0,120522.771,108448.05600000001,316668.32352000003,124361.30828000001,124361.30828000001,124361.30828000001,63692.090000000004,201906.30831999998,772967.03232,216262.25985,329542.4912,183063.753,183063.753,183063.753,117286.18999999999,120522.771,120522.771,226321.19262999998,88546.9725,131617.96899999998,229566.225,65153.081,82862.4755,150448.443,150448.443,150448.443,150448.443,362371.79813999997,362371.79813999997 +31104000.0,116997.342,106535.514,311083.70087999996,120519.51318000002,120519.51318000002,120519.51318000002,42719.1625,208021.05695999996,764343.2288,233693.52216,356104.41472,178981.72499999998,178981.72499999998,178981.72499999998,111267.9925,116997.342,116997.342,224903.25754,81576.99135,121257.65134,211495.90350000001,60024.551660000005,76339.94993,150551.84100000001,150551.84100000001,150551.84100000001,150551.84100000001,351772.00828,351772.00828 +31107600.0,127144.203,119736.86099999999,349631.63411999994,115847.72298000002,115847.72298000002,115847.72298000002,43590.994999999995,218302.91423999998,765184.9491200001,248061.72888,377998.82496,178347.027,178347.027,178347.027,110962.84850000001,127144.203,127144.203,235621.75090999994,83855.33099999999,124644.22039999999,217402.71,61700.9596,78472.0258,155651.52000000002,155651.52000000002,155651.52000000002,155651.52000000002,382280.23701999994,382280.23701999994 +31111200.0,136421.277,131037.714,382630.12488,111320.88176,111320.88176,111320.88176,45718.19,234041.17695999995,762886.4838400001,274058.38761,417612.78112,176825.106,176825.106,176825.106,109062.345,136421.277,136421.277,254815.51238,96082.07445,142818.29338,249101.67450000002,70697.42762,89913.84251,161319.288,161319.288,161319.288,161319.288,410173.30618,410173.30618 +31114800.0,153869.541,141574.30800000002,413396.97936,117987.80631000001,117987.80631000001,117987.80631000001,62832.5705,274726.2144,766446.53952,304879.24068,464577.89056,204254.001,204254.001,204254.001,127628.19299999998,153869.541,153869.541,256583.20180999997,110541.70844999999,164311.37897999998,286589.6145,81336.86202,103445.20371,216792.816,216792.816,216792.816,216792.816,462634.41994,462634.41994 +31118400.0,202523.316,153007.215,446781.06779999996,127647.66234,127647.66234,127647.66234,71539.73400000001,367094.9189599999,779370.5868800001,345164.18895000004,525964.4784,280551.98099999997,280551.98099999997,280551.98099999997,202908.52049999998,202523.316,202523.316,278178.87525999994,129239.0964,192103.54575999998,335064.32399999996,95094.44623999999,120942.26552,262606.587,262606.587,262606.587,262606.587,608920.10344,608920.10344 +31122000.0,241700.80800000002,173047.76400000002,505299.47088000004,145770.20425,145770.20425,145770.20425,80670.77900000001,463098.89504,799609.16032,396621.57444000005,604375.7324800001,348634.506,348634.506,348634.506,223625.60150000002,241700.80800000002,241700.80800000002,307534.31006999995,150327.2682,223449.42087999996,389737.36199999996,110611.17511999999,140676.62876,315227.208,315227.208,315227.208,315227.208,726713.76272,726713.76272 +31125600.0,431559.873,230713.50300000003,673683.42876,257628.36264000004,257628.36264000004,257628.36264000004,162271.627,992769.7137599998,966351.5142400002,681812.7691200001,1038952.7910400002,420659.841,420659.841,420659.841,361243.0885,431559.873,431559.873,536444.1629299999,216555.58980000002,321892.50632,561440.4180000001,159342.13768,202653.25564000002,477515.73600000003,477515.73600000003,477515.73600000003,477515.73600000003,1297556.6848199998,1297556.6848199998 +31129200.0,1197360.7589999998,570462.174,1665749.5480799999,1586238.32829,1586238.32829,1586238.32829,1389589.488,3322148.25752,3885693.03552,2807237.43174,4277695.13408,1139823.648,1139823.648,1139823.648,1610281.5329999998,1197360.7589999998,1197360.7589999998,2508441.64259,1484091.89415,2205983.50686,3847645.6515,1091998.48014,1388816.8589700002,1488311.334,1488311.334,1488311.334,1488311.334,3600064.6820599996,3600064.6820599996 +31132800.0,1098296.4719999998,1204757.604,3517892.2036800003,1908819.3528800001,1908819.3528800001,1908819.3528800001,1875147.6765,4164340.1295999996,3309261.7465600003,3186881.1939300005,4856199.91456,1362327.939,1362327.939,1362327.939,1749032.0225,1098296.4719999998,1098296.4719999998,2211492.68028,2133808.68105,3171735.3728199997,5532096.5805,1570061.69618,1996823.43239,1579852.281,1579852.281,1579852.281,1579852.281,3302211.3924799995,3302211.3924799995 +31136400.0,2069523.3389999997,2260971.978,6602038.17576,1577883.26135,1577883.26135,1577883.26135,2037713.517,4400025.3892,7506738.3398400005,3627430.9711499996,5527513.8608,1990964.4180000003,1990964.4180000003,1990964.4180000003,1635634.3955,2069523.3389999997,2069523.3389999997,2217490.4905399997,1851876.5616,2752665.9014399997,4801161.456,1362615.34656,1732990.65888,2324875.0439999998,2324875.0439999998,2324875.0439999998,2324875.0439999998,6222366.839259999,6222366.839259999 +31140000.0,1397279.619,1008052.6289999998,2943513.6766799996,598082.4707,598082.4707,598082.4707,776729.8385,2047216.2924,6666927.024640001,1204658.13909,1835669.54528,1411251.516,1411251.516,1411251.516,1412136.4494999999,1397279.619,1397279.619,1770797.5269399998,2120020.614,3151240.5176000004,5496349.74,1559916.4024000003,1983920.5252000003,946292.9249999999,946292.9249999999,946292.9249999999,946292.9249999999,4201154.054459999,4201154.054459999 +31143600.0,656383.2359999999,587690.976,1716057.64992,265142.50653,265142.50653,265142.50653,427003.61199999996,1212923.0670399999,3135932.48832,735547.24845,1120833.9024,514432.011,514432.011,514432.011,463421.16800000006,656383.2359999999,656383.2359999999,582925.80476,843320.73915,1253528.60486,2186387.1015000003,620517.4821400001,789181.6299700001,487755.97500000003,487755.97500000003,487755.97500000003,487755.97500000003,1973525.5962399996,1973525.5962399996 +31147200.0,721085.9369999999,1123090.131,3279423.18252,565656.41847,565656.41847,565656.41847,869345.9425,1596041.5794399998,2561941.24608,1210934.41014,1845233.3868800001,655990.914,655990.914,655990.914,1007270.4180000001,721085.9369999999,721085.9369999999,768001.5167500001,763911.0891,1135492.53244,1980510.231,562087.66556,714869.88338,719969.004,719969.004,719969.004,719969.004,2168065.05058,2168065.05058 +31150800.0,502251.43799999997,533599.986,1558111.95912,340881.30340000003,340881.30340000003,340881.30340000003,704788.6965,1040572.05264,1472927.55648,710724.84,1083009.28,450693.504,450693.504,450693.504,552276.5535,502251.43799999997,502251.43799999997,477534.64992999996,470856.8069999999,699890.8587999999,1220739.8699999999,346457.6012,440628.96259999997,442417.43999999994,442417.43999999994,442417.43999999994,442417.43999999994,1510102.6569199997,1510102.6569199997 +31154400.0,418125.534,344700.96,1006526.8032000001,128972.90318000001,128972.90318000001,128972.90318000001,334714.7125,893545.64344,1274613.4662400002,579973.0402200001,883768.4422400001,393856.8389999999,393856.8389999999,393856.8389999999,301136.3425,418125.534,418125.534,424664.52002,378673.62704999995,562867.95922,981746.4404999999,278628.98978,354363.71518999996,379288.179,379288.179,379288.179,379288.179,1257164.1055599998,1257164.1055599998 +31158000.0,943589.9310000001,1101522.372,3216445.32624,1401917.7840800001,1401917.7840800001,1401917.7840800001,1396030.9825,2165481.09288,2972366.4742400004,1708078.75602,2602786.67584,890198.7449999999,890198.7449999999,890198.7449999999,1435338.604,943589.9310000001,943589.9310000001,1386332.04801,1345346.1598499997,1999749.1067399997,3487934.4884999995,989909.0262599998,1258978.2582299998,978005.1959999999,978005.1959999999,978005.1959999999,978005.1959999999,2837060.39254,2837060.39254 +31161600.0,963953.142,1361009.808,3974148.63936,1527202.85212,1527202.85212,1527202.85212,1196146.4409999999,2476428.2428800003,3377714.6592000006,1809520.25625,2757364.2,1077983.211,1077983.211,1077983.211,1672589.8105000001,963953.142,963953.142,1621260.8655099997,1404437.6645999998,2087583.8866399997,3641134.6859999998,1033388.7013599998,1314276.23428,1161387.003,1161387.003,1161387.003,1161387.003,2898285.7802799996,2898285.7802799996 +31165200.0,915843.279,1262885.091,3687624.46572,1107317.82634,1107317.82634,1107317.82634,1076910.226,2451819.96624,3397127.64736,1628050.032,2480838.144,951027.558,951027.558,951027.558,1357215.5205,915843.279,915843.279,1304639.9940599997,1212099.2685,1801688.2954,3142479.585,891865.6346000001,1134285.4883,1128704.781,1128704.781,1128704.781,1128704.781,2753635.4588599997,2753635.4588599997 +31168800.0,2271572.8770000003,1882874.0040000002,5497992.091680001,3521975.3831900004,3521975.3831900004,3521975.3831900004,2952497.31,3628665.0842399998,7037790.429440001,3811330.04784,5807741.025280001,2409203.7120000003,2409203.7120000003,2409203.7120000003,3083903.0915,2271572.8770000003,2271572.8770000003,3785523.5304900003,2945465.68995,4378198.38358,7636392.5295,2167280.92742,2756374.0654100003,2558446.863,2558446.863,2558446.863,2558446.863,6829862.45018,6829862.45018 +31172400.0,1717607.742,1022491.1490000001,2985674.1550800004,2162691.9358000006,2162691.9358000006,2162691.9358000006,1824620.4689999998,2821228.72824,4997592.957440001,2567894.96859,3912982.8092800006,1781193.0,1781193.0,1781193.0,2237794.4785,1717607.742,1717607.742,1513745.44633,2024615.7764999997,3009428.8825999997,5249003.864999999,1489717.2873999998,1894640.4426999998,1892510.9429999997,1892510.9429999997,1892510.9429999997,1892510.9429999997,5164273.9442799995,5164273.9442799995 +31176000.0,1315262.949,981113.703,2864852.01276,1351283.8664600002,1351283.8664600002,1351283.8664600002,1407572.8345,2209977.55376,4195993.76896,1918721.61033,2923766.26336,1221348.684,1221348.684,1221348.684,1620475.0729999999,1315262.949,1315262.949,1384370.7127899998,1554741.2605499998,2310998.1206199997,4030810.6755,1143982.45838,1454930.71049,1376294.97,1376294.97,1376294.97,1376294.97,3954557.2666599997,3954557.2666599997 +31179600.0,1157605.692,999325.926,2918031.7039199998,1311571.78163,1311571.78163,1311571.78163,1298295.6385,2155389.9349599998,4098725.3504,1860942.03015,2835721.1888,1191011.94,1191011.94,1191011.94,1568966.3185,1157605.692,1157605.692,1429278.42642,1508943.4191,2242923.30444,3912075.5310000004,1110284.2935600001,1412072.97738,1324180.32,1324180.32,1324180.32,1324180.32,3480534.44728,3480534.44728 +31183200.0,822150.927,724918.962,2116763.3690400003,868160.56855,868160.56855,868160.56855,721515.2069999999,1161146.57896,2596677.25632,1098310.7788799999,1673616.42496,652851.4380000001,652851.4380000001,652851.4380000001,799280.209,822150.927,822150.927,1028849.0529199999,726473.9258999999,1079845.1935599998,1883450.919,534541.3084399999,679836.0936199999,854505.654,854505.654,854505.654,854505.654,2471933.78718,2471933.78718 +31186800.0,148672.644,135325.938,395151.73896,166574.22089,166574.22089,166574.22089,72012.934,257622.27352000002,1005745.4592,304015.67532000004,463261.98144000006,233487.009,233487.009,233487.009,146251.8575,148672.644,148672.644,287976.62880999997,113125.43430000001,168151.88012,293288.163,83237.97388,105863.06074000002,193013.75699999998,193013.75699999998,193013.75699999998,193013.75699999998,447009.08296,447009.08296 +31190400.0,149899.05599999998,133369.54200000002,389439.06264,149424.12815,149424.12815,149424.12815,51935.24,281865.1764,963261.9641600001,305924.97432,466171.38944,221888.07,221888.07,221888.07,137859.526,149899.05599999998,149899.05599999998,278535.18082,102604.91129999999,152513.96691999998,266012.733,75496.94708,96017.92933999999,190874.271,190874.271,190874.271,190874.271,450696.49503999995,450696.49503999995 +31194000.0,169797.21899999998,162865.878,475568.36376,148446.78277000002,148446.78277000002,148446.78277000002,62156.619,382573.36007999995,984923.9136000001,351100.36037999997,535010.07296,229839.843,229839.843,229839.843,138431.118,169797.21899999998,169797.21899999998,317894.11212,122169.69989999999,181595.45515999998,316736.259,89892.76684,114326.70682,204861.84,204861.84,204861.84,204861.84,510523.63845999993,510523.63845999993 +31197600.0,226877.98200000002,181722.831,530630.66652,158322.98372000002,158322.98372000002,158322.98372000002,81188.499,447569.05023999995,1022672.0518400002,409296.35901,623689.68992,333646.881,333646.881,333646.881,194367.16599999997,226877.98200000002,226877.98200000002,337998.0266,152970.9786,227379.08424,396591.42600000004,112556.42376,143150.61948,309793.275,309793.275,309793.275,309793.275,682146.46588,682146.46588 +31201200.0,292185.213,232742.913,679609.30596,175040.7285,175040.7285,175040.7285,94213.798,600576.74656,1092517.0822400001,490433.23959,747326.84128,457040.586,457040.586,457040.586,287373.2225,292185.213,292185.213,387805.05711999995,184632.83774999998,274441.89709999994,478677.7275,135853.29789999998,172779.86544999998,385261.56600000005,385261.56600000005,385261.56600000005,385261.56600000005,878503.54042,878503.54042 +31204800.0,360617.56200000003,285273.90599999996,832999.8055199999,199132.07600000003,199132.07600000003,199132.07600000003,96389.02350000001,716044.7944,1181864.8281600003,585498.02892,892187.47264,515406.393,515406.393,515406.393,312038.6535,360617.56200000003,360617.56200000003,422330.49637999997,214594.13025,318976.9541,556355.1525,157898.8909,200817.71695,492804.68999999994,492804.68999999994,492804.68999999994,492804.68999999994,1084256.80308,1084256.80308 +31208400.0,470640.849,316337.16000000003,923704.5072,216006.17797000002,216006.17797000002,216006.17797000002,106215.9595,803181.6824,1398983.3120000002,693520.6118399999,1056793.31328,539253.804,539253.804,539253.804,325445.39999999997,470640.849,470640.849,431824.18578,283133.56409999996,420855.32243999996,734049.9809999999,208330.37556,264957.08838,569088.24,569088.24,569088.24,569088.24,1415060.15266,1415060.15266 +31212000.0,569302.086,443092.407,1293829.82844,325071.11977999995,325071.11977999995,325071.11977999995,198840.054,993832.7514399999,1783552.92736,857321.3581800001,1306394.4505600003,600909.798,600909.798,600909.798,431453.54349999997,569302.086,569302.086,470805.38778,362751.82964999997,539201.48506,940467.7065000001,266913.69194,339464.05787,652305.348,652305.348,652305.348,652305.348,1711701.60524,1711701.60524 +31215600.0,1286755.842,1268680.191,3704546.15772,1197859.33124,1197859.33124,1197859.33124,1113028.9869999997,2159906.52672,2537794.7289600004,1788789.65475,2725774.7120000003,903781.5989999999,903781.5989999999,903781.5989999999,1837595.0250000001,1286755.842,1286755.842,2545639.0512799993,781918.1342999999,1162258.5601199998,2027195.1629999997,575337.2938799999,731720.92074,1766037.168,1766037.168,1766037.168,1766037.168,3868845.89828,3868845.89828 +31219200.0,2375282.5050000004,2125184.7120000003,6205539.3590400005,2946808.18465,2946808.18465,2946808.18465,2129613.5735,3612809.0988000003,4305464.2380800005,3476844.74256,5298049.13152,1553499.432,1553499.432,1553499.432,2499868.665,2375282.5050000004,2375282.5050000004,3664894.1706,1866013.6049999997,2773679.482,4837813.05,1373017.4179999998,1746220.139,2540280.687,2540280.687,2540280.687,2540280.687,7141682.7317,7141682.7317 +31222800.0,2752518.087,2700869.442,7886538.77064,3320380.5420500003,3320380.5420500003,3320380.5420500003,2736780.6900000004,4743579.472560001,10547940.311040001,3742986.53799,5703598.53408,2870704.833,2870704.833,2870704.833,2927400.3219999997,2752518.087,2752518.087,2867013.94876,3666087.84375,5449345.387499999,9504672.1875,2697516.4875,3430734.05625,2581237.728,2581237.728,2581237.728,2581237.728,8275904.38158,8275904.38158 +31226400.0,2114631.969,1870734.435,5462544.5502,2528853.83663,2528853.83663,2528853.83663,3061429.539,4020352.89728,7988822.087680001,3888048.5265300004,5924645.373760001,2943408.633,2943408.633,2943408.633,3370347.4245,2114631.969,2114631.969,2316407.77017,3826433.4025499998,5687686.193419999,9920382.895499999,2815499.14558,3580785.8260899996,2266248.9510000004,2266248.9510000004,2266248.9510000004,2266248.9510000004,6357993.4534599995,6357993.4534599995 +31230000.0,1594308.6450000003,1383450.732,4039676.1374399997,2233131.1327600004,2233131.1327600004,2233131.1327600004,2801389.0555,3939597.1904,8204227.76576,3335243.4393599997,5082275.71712,1564622.472,1564622.472,1564622.472,2659840.2075000005,1594308.6450000003,1594308.6450000003,1720247.2792699998,3093751.58805,4598613.471619999,8020837.450499999,2276390.0573799997,2895140.37499,1950422.5380000002,1950422.5380000002,1950422.5380000002,1950422.5380000002,4793554.6593,4793554.6593 +31233600.0,1302628.218,1110519.834,3242717.91528,1707521.34905,1707521.34905,1707521.34905,1898308.6815,3395695.3428799994,4951463.237120001,2423657.21955,3693191.9536,1341970.893,1341970.893,1341970.893,2111457.201,1302628.218,1302628.218,1358553.82182,1893580.5132,2814655.47888,4909282.812,1393301.21712,1772017.31976,1434756.168,1434756.168,1434756.168,1434756.168,3916568.84212,3916568.84212 +31237200.0,1024077.081,877204.926,2561438.38392,1005654.32198,1005654.32198,1005654.32198,1213632.3045,2399043.10952,3229417.18016,1814323.1792700002,2764682.93984,1002714.258,1002714.258,1002714.258,1322897.3344999999,1024077.081,1024077.081,1048893.3330199998,1261490.3104499998,1875104.1157799996,3270530.4345,928207.68522,1180505.74731,1129443.609,1129443.609,1129443.609,1129443.609,3079058.42354,3079058.42354 +31240800.0,924027.228,793337.274,2316544.8400799995,893577.69006,893577.69006,893577.69006,980457.2329999999,1863809.5681599998,3094821.9404800003,1532193.8858100001,2334771.63552,921481.2450000001,921481.2450000001,921481.2450000001,1238582.6425,924027.228,924027.228,981426.2191499999,1125806.27085,1673420.67914,2918756.9985,828371.0338600001,1053532.2880300002,1019853.1079999999,1019853.1079999999,1019853.1079999999,1019853.1079999999,2778241.86552,2778241.86552 +31244400.0,1153769.757,1037351.7629999999,3029067.1479599997,1293507.87214,1293507.87214,1293507.87214,1247164.7125,2284302.53296,4113970.1344000003,1935831.49893,2949838.47456,1188440.52,1188440.52,1188440.52,1528570.0045,1153769.757,1153769.757,1452200.00523,1480240.8342,2200259.21528,3837661.4220000003,1089164.86072,1385213.02756,1322685.654,1322685.654,1322685.654,1322685.654,3469001.06938,3469001.06938 +31248000.0,1213321.44,1097738.691,3205396.97772,1384612.1033800002,1384612.1033800002,1384612.1033800002,1316651.0455,2407161.2935200003,4370786.865920001,2043787.75146,3114343.2403200003,1260865.872,1260865.872,1260865.872,1604960.448,1213321.44,1213321.44,1552621.8432399998,1569815.1620999998,2333404.26564,4069891.161,1155073.87236,1469036.90478,1387453.4640000002,1387453.4640000002,1387453.4640000002,1387453.4640000002,3648053.1295999996,3648053.1295999996 +31251600.0,1223765.7270000002,1103278.863,3221574.27996,1415279.3661600002,1415279.3661600002,1415279.3661600002,1347741.0975000001,2431708.7932800003,4391311.3657599995,2062240.42353,3142461.5977600003,1269202.842,1269202.842,1269202.842,1615722.311,1223765.7270000002,1223765.7270000002,1560323.2256299998,1583315.7925500001,2353471.86942,4104892.7955000005,1165007.66958,1481670.8280900002,1397238.8969999999,1397238.8969999999,1397238.8969999999,1397238.8969999999,3679455.6191800004,3679455.6191800004 +31255200.0,1248254.6490000002,1118077.953,3264787.62276,1488560.0336200001,1488560.0336200001,1488560.0336200001,1414419.1705,2492986.71608,4452007.42592,2112269.3413500004,3218696.1392000006,1291642.914,1291642.914,1291642.914,1647386.804,1248254.6490000002,1248254.6490000002,1580227.9964899998,1616859.0548999999,2403331.2371599996,4191856.809,1189688.88484,1513060.69582,1422945.618,1422945.618,1422945.618,1422945.618,3753085.64466,3753085.64466 +31258800.0,1252506.0,1121721.006,3275425.3375199996,1494383.93907,1494383.93907,1494383.93907,1420031.382,2502497.1210399996,4465314.384000001,2120093.73849,3230619.0300800004,1295701.944,1295701.944,1295701.944,1652183.512,1252506.0,1252506.0,1584885.4810099995,1621575.2758499999,2410341.52114,4204084.0485,1193159.09186,1517474.14703,1427545.7880000002,1427545.7880000002,1427545.7880000002,1427545.7880000002,3765868.04,3765868.04 +31262400.0,1252760.0999999999,1124065.98,3282272.6616,1481961.2490100001,1481961.2490100001,1481961.2490100001,1409588.4005,2501376.08048,4473655.405440001,2118933.66426,3228851.29792,1296969.5520000001,1296969.5520000001,1296969.5520000001,1651297.3260000001,1252760.0999999999,1252760.0999999999,1587449.0282299998,1620637.35255,2408947.3734199996,4201652.3955,1192468.9655799998,1516596.43609,1428255.5219999999,1428255.5219999999,1428255.5219999999,1428255.5219999999,3766632.0339999995,3766632.0339999995 +31266000.0,1204960.443,1008083.4239999999,2943603.5980799994,1257645.4863500001,1257645.4863500001,1257645.4863500001,1075205.369,2091439.5872799999,3258665.55776,1757842.7773199999,2678617.56544,1028101.0619999999,1028101.0619999999,1028101.0619999999,1312544.835,1204960.443,1204960.443,1521653.0670899998,1289647.7208,1916957.84672,3343531.128,948925.9772800001,1206855.52144,1242928.983,1242928.983,1242928.983,1242928.983,3622914.3986199996,3622914.3986199996 +31269600.0,537029.607,385543.746,1125787.73832,673647.5274100001,673647.5274100001,673647.5274100001,439470.98999999993,1025809.09912,1351905.5411200002,829671.95073,1264262.02016,476307.702,476307.702,476307.702,569671.06,537029.607,537029.607,875327.30649,289537.3674,430374.06216,750652.434,213042.30984,270949.78332,676589.373,676589.373,676589.373,676589.373,1614669.0183799998,1614669.0183799998 +31273200.0,197547.402,158845.71899999998,463829.49947999994,206792.5486,206792.5486,206792.5486,80083.24799999999,440710.3148,1047862.0371200001,381752.24073,581717.70016,290570.853,290570.853,290570.853,157226.87050000002,197547.402,197547.402,299571.92746,122757.07949999999,182468.54779999997,318259.095,90324.9622,114876.3781,213985.395,213985.395,213985.395,213985.395,593959.18868,593959.18868 +31276800.0,209753.99099999998,212703.99,621095.6508,186679.02781000003,186679.02781000003,186679.02781000003,72525.1275,462741.94839999994,1090511.7785600002,386857.28508000006,589496.8153600001,289812.786,289812.786,289812.786,150807.755,209753.99099999998,209753.99099999998,304203.74581999995,134674.22879999998,200182.43391999998,349155.408,99093.63008,126028.47584,230439.44999999998,230439.44999999998,230439.44999999998,230439.44999999998,630660.3329399999,630660.3329399999 +31280400.0,235303.452,224308.185,654979.9002,199816.83722000002,199816.83722000002,199816.83722000002,90507.85450000002,471502.42144,1136071.45216,433192.60047,660103.01024,370541.838,370541.838,370541.838,154590.5655,235303.452,235303.452,351711.32697999995,151708.21694999997,225502.09037999995,393317.59949999995,111627.28061999999,141968.92401,309076.539,309076.539,309076.539,309076.539,707479.04568,707479.04568 +31284000.0,277435.434,254351.292,742705.77264,201543.32308,201543.32308,201543.32308,94398.0625,552736.72216,1143801.4310400002,481387.63490999996,733543.06272,446037.83700000006,446037.83700000006,446037.83700000006,258826.35100000005,277435.434,277435.434,378855.14784,188040.28095,279506.78797999996,487511.8395,138360.50302,175968.55921,381836.799,381836.799,381836.799,381836.799,834155.87156,834155.87156 +31287600.0,366269.424,288341.892,841958.3246399999,212565.42846,212565.42846,212565.42846,98214.0705,731919.8299199999,1259738.6675200001,589936.8279,898951.3568000001,520246.25999999995,520246.25999999995,520246.25999999995,315140.26949999994,366269.424,366269.424,413983.76109999995,223788.63059999997,332643.84103999997,580192.7459999999,164664.22696,209421.95308,483139.623,483139.623,483139.623,483139.623,1101250.0681599998,1101250.0681599998 +31291200.0,468007.629,330067.833,963798.07236,224819.85658000002,224819.85658000002,224819.85658000002,106096.90000000001,816541.9730400001,1536332.704,697782.1836299999,1063287.1369599998,557766.345,557766.345,557766.345,352740.1535,468007.629,468007.629,450755.02783999994,305837.47935,454602.8705399999,792911.9835,225035.97246,286203.46833,569123.253,569123.253,569123.253,569123.253,1407142.93786,1407142.93786 +31294800.0,557955.534,404662.63800000004,1181614.90296,245915.37069,245915.37069,245915.37069,129421.2815,964786.21496,1804601.17952,827968.5401399999,1261666.34688,600613.341,600613.341,600613.341,438580.2715,557955.534,557955.534,470051.31445999997,349859.0069999999,520037.3387999999,907041.8699999999,257427.12119999997,327398.92259999993,644445.7379999999,644445.7379999999,644445.7379999999,644445.7379999999,1677586.30556,1677586.30556 +31298400.0,622815.8640000001,470975.01599999995,1375247.04672,384160.79614000005,384160.79614000005,384160.79614000005,212620.02649999998,1164230.134,1967966.9363200003,965354.0889300001,1471015.75456,645718.362,645718.362,645718.362,494634.37450000003,622815.8640000001,622815.8640000001,512572.10407,393343.95825,584674.2293,1019780.6325000001,289423.45570000005,368092.24735,682188.3450000001,682188.3450000001,682188.3450000001,682188.3450000001,1872599.69776,1872599.69776 +31302000.0,1339721.586,1291837.956,3772166.83152,1230137.9640000002,1230137.9640000002,1230137.9640000002,1116603.628,2229217.1184,2608129.5334400004,1874873.3199000002,2856949.8208000003,965131.662,965131.662,965131.662,1866783.5655,1339721.586,1339721.586,2690047.6610799995,823523.9624999999,1224102.285,2135062.125,605950.965,770655.7575000001,1810675.191,1810675.191,1810675.191,1810675.191,4028096.2352399994,4028096.2352399994 +31305600.0,2425257.4230000004,2139274.1550000003,6246680.5326,3019752.1043800004,3019752.1043800004,3019752.1043800004,2169084.1795,3649011.6617600005,4348876.50432,3538869.44838,5392562.96896,1578636.8790000002,1578636.8790000002,1578636.8790000002,2500077.9299999997,2425257.4230000004,2425257.4230000004,3882866.9396399995,1909179.9994499998,2837842.8633799995,4949725.9245,1404779.35762,1786615.35751,2583800.661,2583800.661,2583800.661,2583800.661,7291940.65182,7291940.65182 +31309200.0,2813306.532,2816595.168,8224457.890559999,3397947.1433600006,3397947.1433600006,3397947.1433600006,2775934.2275,4816448.8668,10578398.207360001,3877101.02241,5907963.46272,2895267.111,2895267.111,2895267.111,2993992.0115,2813306.532,2813306.532,2914169.4715899997,3768741.87345,5601932.364979999,9770812.2645,2773049.57602,3526797.95071,2602363.8449999997,2602363.8449999997,2602363.8449999997,2602363.8449999997,8458674.97288,8458674.97288 +31312800.0,2189925.0779999997,2004032.145,5851773.863399999,2713005.4677,2713005.4677,2713005.4677,3245262.972,4141168.2593600005,8443333.51104,4006374.72627,6104951.96384,3000000.0,3000000.0,3000000.0,3443598.8475,2189925.0779999997,2189925.0779999997,2384565.03246,3980599.3052999997,5916841.436519999,10320072.273,2928934.7974799997,3725054.6585399997,2328870.675,2328870.675,2328870.675,2328870.675,6584374.7345199995,6584374.7345199995 +31316400.0,1666176.528,1443564.5580000002,4215208.5093600005,2383541.95915,2383541.95915,2383541.95915,2919787.857,4093319.7728,8409468.390400002,3479793.0615,5302541.807999999,1618943.5620000002,1618943.5620000002,1618943.5620000002,2749747.7559999996,1666176.528,1666176.528,1884132.7142299998,3313192.1953499997,4924794.32494,8589757.5435,2437854.99806,3100493.43713,2029091.859,2029091.859,2029091.859,2029091.859,5009637.427519999,5009637.427519999 +31320000.0,1377902.349,1169441.07,3414767.9244,1841922.0978400002,1841922.0978400002,1841922.0978400002,2147898.7915000003,3580551.67776,5754907.08608,2608723.8376500006,3975198.2288000006,1403856.7140000002,1403856.7140000002,1403856.7140000002,2265077.6085,1377902.349,1377902.349,1442854.44459,1998393.9704999998,2970452.2721999995,5181021.405,1470423.2178,1870102.0119,1529855.874,1529855.874,1529855.874,1529855.874,4142893.06266,4142893.06266 +31323600.0,1089264.804,943515.621,2755065.61332,1145270.18155,1145270.18155,1145270.18155,1371631.9995,2551812.51632,3429376.04352,1971185.3021699998,3003710.93664,1055838.477,1055838.477,1055838.477,1394094.198,1089264.804,1089264.804,1120207.8841199998,1351289.17035,2008582.9149399998,3503342.2935,994281.9080599999,1264539.74213,1199969.787,1199969.787,1199969.787,1199969.787,3275056.1773599996,3275056.1773599996 +31327200.0,970674.3060000001,832970.3130000001,2432273.31396,951179.0773100001,951179.0773100001,951179.0773100001,1031932.1985,2023212.0060799997,3258408.41984,1628837.30751,2482037.80192,959933.4299999999,959933.4299999999,959933.4299999999,1292455.1430000002,970674.3060000001,970674.3060000001,1044296.3967799998,1202555.39895,1787502.09918,3117736.2195,884843.2318200001,1125354.31161,1067189.67,1067189.67,1067189.67,1067189.67,2918494.08004,2918494.08004 +31330800.0,1189686.621,1067445.9330000002,3116942.1243600002,1341007.3118200002,1341007.3118200002,1341007.3118200002,1290532.7925,2358127.47384,4234451.64224,2008902.49203,3061184.74976,1211465.0010000002,1211465.0010000002,1211465.0010000002,1569046.017,1189686.621,1189686.621,1503581.33913,1523826.99495,2265046.54558,3950662.5795000005,1121235.66542,1426001.06441,1359299.2740000002,1359299.2740000002,1359299.2740000002,1359299.2740000002,3576991.10714,3576991.10714 +31334400.0,1235784.8369999998,1115318.313,3256729.47396,1415576.7244300002,1415576.7244300002,1415576.7244300002,1343999.7655,2451385.3067199998,4435053.23072,2088086.75334,3181846.48128,1267557.936,1267557.936,1267557.936,1615978.7245,1235784.8369999998,1235784.8369999998,1588456.4442499997,1594920.41955,2370721.21622,4134978.8655,1173546.38278,1492530.46669,1410511.221,1410511.221,1410511.221,1410511.221,3715593.0765799996,3715593.0765799996 +31338000.0,1241951.934,1117101.312,3261935.83104,1443475.29238,1443475.29238,1443475.29238,1369402.3069999998,2463118.2755199997,4438960.467200001,2098475.3588400004,3197676.7372800005,1271324.919,1271324.919,1271324.919,1622077.989,1241951.934,1241951.934,1590961.4826299998,1602911.3287499999,2382599.0615,4155696.0375,1179426.1135,1500008.37925,1411832.301,1411832.301,1411832.301,1411832.301,3734135.4815599998,3734135.4815599998 +31341600.0,1264820.571,1130427.474,3300848.22408,1512223.49795,1512223.49795,1512223.49795,1434388.6165,2521113.984,4493339.8060800005,2145642.74799,3269550.8540800004,1292240.166,1292240.166,1292240.166,1649702.922,1264820.571,1264820.571,1608436.1019999997,1634314.81005,2429277.81642,4237112.4705,1202532.87258,1529395.83459,1435104.15,1435104.15,1435104.15,1435104.15,3802893.8501399998,3802893.8501399998 +31345200.0,1260337.497,1125668.973,3286953.40116,1507986.8436600002,1507986.8436600002,1507986.8436600002,1430163.9135,2510530.7126399996,4469186.445440001,2137930.9961099997,3257799.61312,1285564.629,1285564.629,1285564.629,1641259.9070000001,1260337.497,1260337.497,1602239.64836,1626676.992,2417924.8128,4217310.72,1196912.9472,1522248.3456000001,1429045.407,1429045.407,1429045.407,1429045.407,3789414.7409799993,3789414.7409799993 +31348800.0,1244562.936,1112524.5210000002,3248571.6013200004,1477334.5015000002,1477334.5015000002,1477334.5015000002,1401552.9955,2472166.8707999997,4408292.31488,2108252.94519,3212575.91648,1266724.245,1266724.245,1266724.245,1615620.5485,1244562.936,1244562.936,1585256.0385999999,1602944.4456,2382648.28704,4155781.896,1179450.48096,1500039.3700800003,1410103.164,1410103.164,1410103.164,1410103.164,3741985.89424,3741985.89424 +31352400.0,1188106.014,983810.3579999999,2872726.2453599996,1246110.87843,1246110.87843,1246110.87843,1054157.6464999998,2036414.63424,3154230.62464,1725671.2582200002,2629594.2982400004,989118.717,989118.717,989118.717,1263547.8904999997,1188106.014,1188106.014,1501730.8936499998,1256356.1132999999,1867472.54372,3257219.553,924429.93028,1175701.15294,1210834.188,1210834.188,1210834.188,1210834.188,3572238.74876,3572238.74876 +31356000.0,526853.046,373546.056,1090754.48352,673290.34828,673290.34828,673290.34828,430599.08499999996,1000261.77384,1294981.20704,815159.00823,1242147.06016,460238.94000000006,460238.94000000006,460238.94000000006,546765.5095,526853.046,526853.046,855457.7977399998,281847.8592,418944.22527999996,730716.672,207384.35072,263753.92256,658325.037,658325.037,658325.037,658325.037,1584071.49164,1584071.49164 +31359600.0,193844.337,152683.233,445835.04036,206267.86455000003,206267.86455000003,206267.86455000003,78401.141,426473.62119999994,993976.31296,374711.60286,570989.10912,277975.146,277975.146,277975.146,150863.923,193844.337,193844.337,288357.66258,118757.4615,176523.4366,307889.715,87382.0334,111133.52570000001,209356.11899999998,209356.11899999998,209356.11899999998,209356.11899999998,582825.30658,582825.30658 +31363200.0,206947.54799999995,209580.042,611973.7226399999,187372.24649000002,187372.24649000002,187372.24649000002,71402.2715,456097.03288,1052759.6147200002,382744.52559,583229.75328,281759.115,281759.115,281759.115,146405.5355,206947.54799999995,206947.54799999995,295538.5693,129983.4621,193209.98564,336994.161,95642.15236000001,121638.84478,224866.392,224866.392,224866.392,224866.392,622222.2943199999,622222.2943199999 +31366800.0,227252.53799999997,216777.885,632991.4242,196718.28924,196718.28924,196718.28924,88067.084,453832.22248,1080931.60128,417547.76196000003,636263.25632,334006.40099999995,334006.40099999995,334006.40099999995,147479.3705,227252.53799999997,227252.53799999997,334578.24165999994,145122.10289999997,215712.36035999996,376242.48899999994,106781.20163999998,135805.62222,292139.148,292139.148,292139.148,292139.148,683272.6309199999,683272.6309199999 +31370400.0,262943.088,243420.531,710787.95052,197607.71855000002,197607.71855000002,197607.71855000002,90755.09800000001,505386.1364799999,1074654.62464,459141.64989,699644.41888,410664.966,410664.966,410664.966,223525.1165,262943.088,262943.088,358200.04584,175767.6915,261264.56859999997,455694.015,129330.3014,164483.8397,357173.358,357173.358,357173.358,357173.358,790582.21792,790582.21792 +31374000.0,336438.00299999997,263627.424,769792.07808,202126.53780000002,202126.53780000002,202126.53780000002,92765.97750000001,648567.186,1124998.6259200003,540743.75124,823990.47808,462743.02800000005,462743.02800000005,462743.02800000005,287393.83400000003,336438.00299999997,336438.00299999997,375744.93450000003,196630.58205,292275.58122,509782.99049999996,144681.26778,184007.38418999998,434557.06499999994,434557.06499999994,434557.06499999994,434557.06499999994,1011556.9290199998,1011556.9290199998 +31377600.0,410729.301,285588.081,833917.19652,209857.26674,209857.26674,209857.26674,97038.963,707924.29776,1341111.7216000003,620337.67866,945276.4627200001,489238.671,489238.671,489238.671,302512.889,410729.301,410729.301,410668.5167,258834.66975,384736.9659,671052.8475,190451.18910000002,242218.12305000002,498028.13700000005,498028.13700000005,498028.13700000005,498028.13700000005,1234926.0983399998,1234926.0983399998 +31381200.0,485536.449,314534.538,918440.8509600001,225327.54431,225327.54431,225327.54431,116769.42899999999,825595.5031199999,1511493.15264,721249.96062,1099047.55904,521492.86199999996,521492.86199999996,521492.86199999996,370550.964,485536.449,485536.449,421609.74192999996,307296.2245499999,456771.1782199999,796693.9154999999,226109.32077999998,287568.56568999996,564191.154,564191.154,564191.154,564191.154,1459846.25666,1459846.25666 +31384800.0,674396.9069999999,425059.73400000005,1241174.42328,356746.30992,356746.30992,356746.30992,203258.748,1393973.982,1730090.88128,1029854.7010500001,1569302.4016000002,577048.9049999999,577048.9049999999,577048.9049999999,544261.9245,674396.9069999999,674396.9069999999,647707.5485399999,370671.36974999995,550973.2459,960999.8475,272740.9091,346875.18305,682112.076,682112.076,682112.076,682112.076,2027686.7003799998,2027686.7003799998 +31388400.0,1378765.458,794704.182,2320536.21144,1883914.0338700002,1883914.0338700002,1883914.0338700002,1581991.4460000002,3689453.6500800005,4766751.594880001,3312448.3847700004,5047540.39584,1476237.018,1476237.018,1476237.018,2219589.5680000004,1378765.458,1378765.458,2970567.79422,1861852.96305,2767495.02162,4827026.2005,1369956.00738,1742326.59999,1708318.974,1708318.974,1708318.974,1708318.974,4145488.14372,4145488.14372 +31392000.0,1331935.665,1350963.858,3944814.46536,2531874.5051600006,2531874.5051600006,2531874.5051600006,2251083.6565,4709548.828960001,3871489.0431999997,3679412.86566,5606724.36672,1503977.1060000001,1503977.1060000001,1503977.1060000001,2150750.266,1331935.665,1331935.665,2478048.7629299997,2408540.4067499996,3580102.0366999996,6244364.0175,1772209.9782999998,2253918.0596499997,1816212.1139999998,1816212.1139999998,1816212.1139999998,1816212.1139999998,4004686.5661,4004686.5661 +31395600.0,2254551.285,2406266.073,7026296.93316,2080423.5199000004,2080423.5199000004,2080423.5199000004,2920749.321,4981414.617199999,7948148.73088,4133551.64502,6298745.36384,2150353.506,2150353.506,2150353.506,1904633.2865,2254551.285,2254551.285,3382013.8137499997,2400070.87665,3567512.7598599996,6222405.9765,1765978.07714,2245992.25247,2537908.965,2537908.965,2537908.965,2537908.965,6778684.1969,6778684.1969 +31399200.0,1755014.0609999998,1370587.2659999998,4002114.8167199995,895511.6401000001,895511.6401000001,895511.6401000001,1259523.0865,2682679.87328,8118415.889280001,1854860.44191,2826454.00672,1695320.793,1695320.793,1695320.793,1740566.2714999998,1755014.0609999998,1755014.0609999998,3007870.4938099994,2488892.5363499997,3699539.0293399994,6452684.353499999,1831333.27366,2329111.78093,1242994.008,1242994.008,1242994.008,1242994.008,5276742.276739999,5276742.276739999 +31402800.0,820306.122,811668.1410000001,2370070.9717200003,389494.42532000004,389494.42532000004,389494.42532000004,592191.6175,1664345.7989599998,5014707.63264,1004036.95035,1529961.0672000002,666073.314,666073.314,666073.314,662607.624,820306.122,820306.122,977894.4381699999,1391933.1356999998,2068996.9078799996,3608715.5369999995,1024187.8381199999,1302574.46526,644074.008,644074.008,644074.008,644074.008,2466387.07348,2466387.07348 +31406400.0,891130.3200000001,1290278.7719999999,3767614.01424,699812.2305899999,699812.2305899999,699812.2305899999,1016946.6895000001,1908256.84456,3021165.92896,1443496.9250100001,2199614.36192,767451.936,767451.936,767451.936,1126896.8795,891130.3200000001,891130.3200000001,1012905.2833899999,912222.729,1355945.8836,2365021.89,671215.7364,853660.2822000001,856250.7600000001,856250.7600000001,856250.7600000001,856250.7600000001,2679331.8288,2679331.8288 +31410000.0,629545.503,746619.666,2180129.42472,430230.61169,430230.61169,430230.61169,857663.1665,1259207.8936,1848215.1065600002,888304.75041,1353607.23872,533536.0650000001,533536.0650000001,533536.0650000001,725078.5464999999,629545.503,629545.503,635758.8928599999,609656.91255,906206.0774199999,1580591.9955,448587.06158,570518.44409,546339.642,546339.642,546339.642,546339.642,1892833.4790199997,1892833.4790199997 +31413600.0,516548.72699999996,427394.00999999995,1247990.5091999997,199868.03782000003,199868.03782000003,199868.03782000003,491590.568,1081404.6727200001,1592538.0985600003,738299.46939,1125027.76288,463278.99,463278.99,463278.99,382394.817,516548.72699999996,516548.72699999996,562386.01289,501257.78774999996,745079.4770999999,1299557.2275,368826.7179,469078.27545,468947.643,468947.643,468947.643,468947.643,1553089.83918,1553089.83918 +31417200.0,1057104.018,1310009.649,3825228.1750799995,1531773.32781,1531773.32781,1531773.32781,1503413.6635,2358959.55704,3166486.0742400005,1842591.79272,2807758.92224,926935.611,926935.611,926935.611,1485706.327,1057104.018,1057104.018,1576390.4919099996,1419542.58915,2110036.14486,3680295.6015,1044502.9421399999,1328411.45997,1114724.8620000002,1114724.8620000002,1114724.8620000002,1114724.8620000002,3178359.41412,3178359.41412 +31420800.0,1076070.27,1456530.2880000002,4253068.44096,1796059.88892,1796059.88892,1796059.88892,1326446.8,2764908.2062399997,3636889.61984,2073762.9729600002,3160019.7683200003,1144665.9270000001,1144665.9270000001,1144665.9270000001,1749033.496,1076070.27,1076070.27,1833163.2173399997,1516425.4093499999,2254044.68254,3931473.2835,1115789.56046,1419074.64233,1285670.823,1285670.823,1285670.823,1285670.823,3235384.6118,3235384.6118 +31424400.0,1000119.816,1436164.707,4193600.94444,1200913.28016,1200913.28016,1200913.28016,1173260.949,2605909.63936,3650581.7952,1778844.3708000001,2710619.9936,1009038.096,1009038.096,1009038.096,1437804.361,1000119.816,1000119.816,1534890.9807399998,1326879.9378,1972300.5495199997,3440059.0979999998,976321.5344799999,1241697.52204,1242755.868,1242755.868,1242755.868,1242755.868,3007026.91344,3007026.91344 +31428000.0,2294920.245,1893643.5389999999,5529439.133879999,3595402.18807,3595402.18807,3595402.18807,2979127.0705,3729519.8694399996,7078307.669120002,3850101.5156099997,5866821.35712,2407602.108,2407602.108,2407602.108,3079361.5020000003,2294920.245,2294920.245,4012466.6416899995,2992370.12505,4447918.062419999,7757996.6205,2201793.32658,2800267.35159,2574002.229,2574002.229,2574002.229,2574002.229,6900060.2033,6900060.2033 +31431600.0,1766336.844,1032373.2659999998,3014529.9367199996,2366058.3014200004,2366058.3014200004,2366058.3014200004,1853083.2774999999,2853816.55896,5073889.62112,2669377.64457,4067623.07744,1778511.618,1778511.618,1778511.618,2301565.9205,1766336.844,1766336.844,1612798.34872,2094238.0953000002,3112916.87252,5429506.173,1540945.5614800001,1959793.1805400003,1942674.057,1942674.057,1942674.057,1942674.057,5310786.110959999,5310786.110959999 +31435200.0,1339538.352,991174.4130000001,2894229.28596,1434297.82903,1434297.82903,1434297.82903,1501272.983,2239884.12952,4242366.896640001,1976518.55436,3011837.7971200002,1217651.724,1217651.724,1217651.724,1630166.3245,1339538.352,1339538.352,1436935.7780699998,1589473.1574,2362624.29816,4120856.334,1169538.27384,1487432.90532,1388994.4139999999,1388994.4139999999,1388994.4139999999,1388994.4139999999,4027545.31168,4027545.31168 +31438800.0,1187526.189,1018478.3850000001,2973956.8842,1361758.9557,1361758.9557,1361758.9557,1340097.325,2191252.40552,4147499.8246400002,1923283.5888,2930717.8496,1186146.861,1186146.861,1186146.861,1580396.4679999999,1187526.189,1187526.189,1495718.4706099997,1543672.9952999998,2294546.03252,4002115.173,1135838.40148,1444573.00054,1346720.2380000001,1346720.2380000001,1346720.2380000001,1346720.2380000001,3570495.40826,3570495.40826 +31442400.0,842111.5980000001,727942.074,2125590.85608,916871.1751100001,916871.1751100001,916871.1751100001,732405.0404999999,1163482.8008799998,2583834.5696000005,1121078.6019300001,1708310.25056,643830.777,643830.777,643830.777,792748.782,842111.5980000001,842111.5980000001,1057727.63876,730242.2929499999,1085446.5687799999,1893220.7595,537314.08222,683362.54081,861484.959,861484.959,861484.959,861484.959,2531948.8713200004,2531948.8713200004 +31446000.0,151283.229,129913.32,379346.8944,177496.93279999998,177496.93279999998,177496.93279999998,72148.965,248718.36424000002,936114.9280000001,313416.49269,477587.03647999995,219788.04899999997,219788.04899999997,219788.04899999997,138594.59949999998,151283.229,151283.229,275248.38275999995,109397.08124999999,162609.98249999998,283622.0625,80494.6425,102374.05875,193289.037,193289.037,193289.037,193289.037,454858.24185999995,454858.24185999995 +31449600.0,155514.417,132756.615,387649.3158,154884.08199,154884.08199,154884.08199,54720.210999999996,293825.66576,937236.09024,321826.67706,490402.55552000005,217354.23299999998,217354.23299999998,217354.23299999998,135537.185,155514.417,155514.417,275584.68834,103572.26999999999,153951.868,268520.69999999995,76208.73199999999,96923.18599999999,196043.673,196043.673,196043.673,196043.673,467580.0137799999,467580.0137799999 +31453200.0,187885.026,162326.937,473994.65604,154077.62370000003,154077.62370000003,154077.62370000003,64197.791,406232.35056,959230.4345600001,364734.30567,555785.6086399999,226928.34900000005,226928.34900000005,226928.34900000005,135980.77150000003,187885.026,187885.026,314647.69401,122668.74495,182337.24558,318030.0795,90259.96542,114793.71440999999,213269.994,213269.994,213269.994,213269.994,564907.64484,564907.64484 +31456800.0,227997.546,179099.946,522971.84231999994,159102.45384000003,159102.45384000003,159102.45384000003,82401.319,423356.12992,955563.4937600001,400742.88785999996,610655.8291199999,294713.892,294713.892,294713.892,167478.528,227997.546,227997.546,321782.73257,148888.57455,221310.91821999996,386007.41549999994,109552.58077999999,139330.29569,299982.771,299982.771,299982.771,299982.771,685512.62164,685512.62164 +31460400.0,261812.48999999996,222127.89,648613.4388,171695.94145,171695.94145,171695.94145,86096.178,490135.73568,930792.76928,441966.49833000003,673472.75936,369871.164,369871.164,369871.164,246846.69449999998,261812.48999999996,261812.48999999996,335791.74694,161870.157,240606.9988,419663.37,119104.4612,151478.4926,334480.305,334480.305,334480.305,334480.305,787182.8865999999,787182.8865999999 +31464000.0,318368.214,241123.31700000004,704080.0856400001,186669.28423000002,186669.28423000002,186669.28423000002,87439.57599999999,582377.0231199999,977722.37632,506359.82166,771595.9187200001,417709.94999999995,417709.94999999995,417709.94999999995,263476.22,318368.214,318368.214,361759.84507,183944.60909999997,273418.90044,476893.431,135346.89755999998,172135.81938,408942.22500000003,408942.22500000003,408942.22500000003,408942.22500000003,957227.09676,957227.09676 +31467600.0,405696.699,263088.13800000004,768217.36296,202784.87658,202784.87658,202784.87658,98517.2755,671880.47184,1204344.2137600002,609400.0374,928609.5808000001,455126.68200000003,455126.68200000003,455126.68200000003,283411.4535,405696.699,405696.699,381291.28296999994,222970.68044999999,331428.02378,578072.1345,164062.37722,208656.51331,481361.274,481361.274,481361.274,481361.274,1219794.74166,1219794.74166 +31471200.0,601187.46,321942.44999999995,940071.9539999999,318533.92648,318533.92648,318533.92648,188171.424,1206432.18152,1413541.84,906532.0643399999,1381382.19328,508227.189,508227.189,508227.189,437329.78099999996,601187.46,601187.46,593082.25925,324734.47965,482691.74506,841904.2065000001,238940.43194,303887.32787000004,621465.3150000001,621465.3150000001,621465.3150000001,621465.3150000001,1807570.2963999999,1807570.2963999999 +31474800.0,1348903.368,761837.5079999999,2224565.52336,1775790.25921,1775790.25921,1775790.25921,1549852.1534999998,3615500.9825600004,4604382.89216,3226257.51294,4916201.9244800005,1374609.3329999999,1374609.3329999999,1374609.3329999999,2061185.077,1348903.368,1348903.368,2836327.59657,1750455.93105,2601912.27282,4538219.0805,1287989.79618,1638080.98239,1679251.0050000004,1679251.0050000004,1679251.0050000004,1679251.0050000004,4055702.79312,4055702.79312 +31478400.0,1301933.4209999999,1354016.472,3953728.09824,2437190.1309800004,2437190.1309800004,2437190.1309800004,2148189.2425,4667843.56104,3863356.3737600003,3621120.7162200003,5517898.23424,1504850.433,1504850.433,1504850.433,2070337.493,1301933.4209999999,1301933.4209999999,2473238.5993899996,2358391.2048,3505559.2723199995,6114347.568,1735310.07168,2206988.31264,1798511.331,1798511.331,1798511.331,1798511.331,3914479.8191399993,3914479.8191399993 +31482000.0,2263666.551,2426806.566,7086275.17272,1992708.2230000002,1992708.2230000002,1992708.2230000002,2756587.6275,4965295.33536,8054206.75328,4120180.32615,6278370.0208,2181622.341,2181622.341,2181622.341,1924070.8025,2263666.551,2263666.551,3192370.60272,2304483.64335,3425430.00814,5974587.2235,1695644.75486,2156541.4835300003,2547735.945,2547735.945,2547735.945,2547735.945,6806090.76334,6806090.76334 +31485600.0,1812505.2030000002,1384366.779,4042350.99468,1004186.40322,1004186.40322,1004186.40322,1259526.8175,2834249.31776,8179207.116800002,1963611.40815,2992169.7648,1772919.3059999999,1772919.3059999999,1772919.3059999999,1819169.352,1812505.2030000002,1812505.2030000002,2465453.60958,2545787.2563,3784108.4649199997,6600189.183,1873196.54908,2382354.00034,1351885.041,1351885.041,1351885.041,1351885.041,5449598.97702,5449598.97702 +31489200.0,952867.638,871134.264,2543712.05088,561696.86606,561696.86606,561696.86606,756355.9185,1804007.82216,5268724.8096,1235048.1706500002,1881978.1648000001,801458.892,801458.892,801458.892,807360.974,952867.638,952867.638,1060358.7231899998,1574417.13255,2340244.72542,4081822.1955000004,1158460.01358,1473343.4400900002,792295.455,792295.455,792295.455,792295.455,2864955.36492,2864955.36492 +31492800.0,943173.0569999999,1313982.9,3836830.068,772468.5193500001,772468.5193500001,772468.5193500001,1073251.004,1931486.33808,3189752.2252800004,1535655.5129999998,2340046.496,824471.976,824471.976,824471.976,1181505.6609999998,943173.0569999999,943173.0569999999,1165093.1735299998,990806.3815499998,1472754.1770199998,2568757.2854999998,729037.78198,927199.05829,920736.3929999999,920736.3929999999,920736.3929999999,920736.3929999999,2835806.9913799996,2835806.9913799996 +31496400.0,762462.048,830125.5360000001,2423966.5651200004,606223.6387900001,606223.6387900001,606223.6387900001,1016816.178,1488604.3959199998,2398210.2912000003,1130451.37149,1722592.56608,671551.128,671551.128,671551.128,884593.7974999999,762462.048,762462.048,896002.12949,806327.5207499999,1198541.1542999998,2090478.7575,593297.7807,754563.2848499999,703101.189,703101.189,703101.189,703101.189,2292469.2243199996,2292469.2243199996 +31500000.0,677490.228,581715.462,1698609.14904,401436.48501000006,401436.48501000006,401436.48501000006,718917.9585,1368947.48544,2266634.6976,1027174.2973799999,1565217.9769599999,629164.8150000001,629164.8150000001,629164.8150000001,560034.44,677490.228,677490.228,838112.1344699999,739045.782,1098532.2488,1916044.62,543791.7112,691600.8676,654673.356,654673.356,654673.356,654673.356,2036987.28552,2036987.28552 +31503600.0,1093483.488,1386502.7820000001,4048588.12344,1611878.13171,1611878.13171,1611878.13171,1541207.045,2452994.3552,3279159.8982400005,1907611.98243,2906837.3065600004,976067.7119999999,976067.7119999999,976067.7119999999,1513462.307,1093483.488,1093483.488,1713652.65383,1456343.3151,2164737.47084,3775704.8910000003,1071581.00716,1362849.6701800001,1215479.91,1215479.91,1215479.91,1215479.91,3287740.3539199997,3287740.3539199997 +31507200.0,1154999.967,1513023.6360000002,4418029.01712,1951386.0909400003,1951386.0909400003,1951386.0909400003,1399615.4655,2905772.0488799997,3914770.3251200006,2220410.51526,3383482.6899200003,1225283.2410000002,1225283.2410000002,1225283.2410000002,1847992.9685000002,1154999.967,1154999.967,1906671.4507099998,1609819.8471000001,2392868.01964,4173607.0110000004,1184509.41836,1506473.3877800002,1368679.17,1368679.17,1368679.17,1368679.17,3472699.90078,3472699.90078 +31510800.0,1106450.571,1547139.5010000002,4517647.34292,1341691.3689299999,1341691.3689299999,1341691.3689299999,1290349.0635000002,2843088.44392,4074400.14016,1962421.88058,2990357.15136,1145421.183,1145421.183,1145421.183,1585093.6114999999,1106450.571,1106450.571,1660334.0972399998,1469352.6845999998,2184074.8546399996,3809432.886,1081153.33336,1375023.87028,1361654.532,1361654.532,1361654.532,1361654.532,3326728.05014,3326728.05014 +31514400.0,2345515.797,1956150.2820000001,5711958.82344,3674058.3121,3674058.3121,3674058.3121,3044059.634,3907225.7492,7337469.182080001,3936413.3403000003,5998344.137600001,2480710.782,2480710.782,2480710.782,3161337.3785,2345515.797,2345515.797,4224635.03943,3083446.4440499996,4583295.70202,7994120.410499999,2268807.50698,2885496.79579,2657627.13,2657627.13,2657627.13,2657627.13,7052184.162979999,7052184.162979999 +31518000.0,1821650.4810000001,1081434.966,3157790.1007200005,2529802.9809800005,2529802.9809800005,2529802.9809800005,1900165.8165000002,2957421.49944,5376320.981120001,2794316.22057,4258005.66944,1847553.003,1847553.003,1847553.003,2545103.449,1821650.4810000001,1821650.4810000001,1674637.59424,2236799.8611,3324823.4972399995,5799110.751,1645842.86076,2093202.83298,2055573.531,2055573.531,2055573.531,2055573.531,5477095.7795400005,5477095.7795400005 +31521600.0,1367692.77,1009674.591,2948249.8057199996,1555280.4715800001,1555280.4715800001,1555280.4715800001,1576107.47,2302003.99344,4370002.2764800005,2025392.10237,3086311.7750399997,1306409.355,1306409.355,1306409.355,1732589.4529999997,1367692.77,1367692.77,1458234.8140099999,1634903.6071499998,2430153.01606,4238638.9815,1202966.11094,1529946.83237,1422055.437,1422055.437,1422055.437,1422055.437,4112196.2618,4112196.2618 +31525200.0,1197608.1809999999,1027892.6309999999,3001446.4825199996,1410497.65747,1410497.65747,1410497.65747,1366502.9455,2211497.86344,4164017.52512,1938490.05651,2953889.60992,1199676.267,1199676.267,1199676.267,1605028.9745,1197608.1809999999,1197608.1809999999,1512033.8511199998,1555873.97265,2312681.80626,4033747.3365,1144815.91074,1455990.70527,1357325.8020000001,1357325.8020000001,1357325.8020000001,1357325.8020000001,3600808.5975399995,3600808.5975399995 +31528800.0,853500.9750000001,738468.54,2156328.1368,934176.4569500001,934176.4569500001,934176.4569500001,745354.687,1183600.684,2617117.91488,1137901.81554,1733945.6236800002,653453.97,653453.97,653453.97,809487.5179999999,853500.9750000001,853500.9750000001,1075353.2392199999,742054.284,1103004.1456,1923844.44,546005.3744,694416.2312,874799.6309999999,874799.6309999999,874799.6309999999,874799.6309999999,2566192.9315,2566192.9315 +31532400.0,159306.342,136536.843,398687.58156,185692.98891000001,185692.98891000001,185692.98891000001,74188.513,263274.55256,997082.93376,329677.73579999997,502366.0736,232885.782,232885.782,232885.782,146531.224,159306.342,159306.342,289707.58427,115527.55004999999,171722.43242,299515.8705,85005.45658,108110.96659,202416.756,202416.756,202416.756,202416.756,478981.06828,478981.06828 From a15726ac7e9e504744980aa8db3b88c1d3dd0992 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Wed, 24 Apr 2024 16:25:25 +0200 Subject: [PATCH 100/275] 40 hydraulic power gas (#44) This commit adds the Hydraulic power variable and logic in the gas network. The code has been slightly refactored for maximum code re-use between HeatPhysicsMixin and GasPhysicsMixin by moving the complete constraint logic of both head loss and hydraulic power to the head_loss_class. --------- Co-authored-by: Rojer --- examples/pipe_diameter_sizing/src/example.py | 2 +- src/mesido/asset_sizing_mixin.py | 313 +++++++------ src/mesido/esdl/esdl_heat_model.py | 42 +- src/mesido/gas_physics_mixin.py | 251 +++------- src/mesido/head_loss_class.py | 428 +++++++++++++++++- src/mesido/heat_physics_mixin.py | 373 +++------------ .../component_library/milp/gas/gas_base.py | 1 + .../component_library/milp/gas/gas_pipe.py | 18 + src/mesido/techno_economic_mixin.py | 4 +- tests/models/emerge/src/example.py | 82 ++-- tests/test_gas_pipe_topology_optimization.py | 4 +- tests/test_hydraulic_power.py | 251 +++++++++- tests/test_pipe_diameter_sizing.py | 3 + tests/test_setpoint_constraints.py | 2 +- 14 files changed, 1039 insertions(+), 735 deletions(-) diff --git a/examples/pipe_diameter_sizing/src/example.py b/examples/pipe_diameter_sizing/src/example.py index 4ba076214..5613bc9b0 100644 --- a/examples/pipe_diameter_sizing/src/example.py +++ b/examples/pipe_diameter_sizing/src/example.py @@ -53,7 +53,7 @@ def function(self, optimization_problem, ensemble_member): length = parameters[f"{p}.length"] var_name = optimization_problem.pipe_diameter_symbol_name(p) - nominal += length * optimization_problem.variable_nominal(var_name) + nominal += length * optimization_problem.variable_nominal(var_name) * 2.0 obj += optimization_problem.extra_variable(var_name, ensemble_member) * length diff --git a/src/mesido/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py index 6306728af..1d9d8848a 100644 --- a/src/mesido/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -38,52 +38,52 @@ def __init__(self, *args, **kwargs): self._asset_aggregation_count_var_map = {} # Variable for the maximum discharge under pipe class optimization - self.__pipe_topo_max_discharge_var = {} - self._pipe_topo_max_discharge_map = {} - self.__pipe_topo_max_discharge_nominals = {} - self.__pipe_topo_max_discharge_var_bounds = {} + self.__heat_pipe_topo_max_discharge_var = {} + self._heat_pipe_topo_max_discharge_map = {} + self.__heat_pipe_topo_max_discharge_nominals = {} + self.__heat_pipe_topo_max_discharge_var_bounds = {} # Variable for the diameter of a pipe during pipe-class optimization - self.__pipe_topo_diameter_var = {} - self.__pipe_topo_diameter_var_bounds = {} - self._pipe_topo_diameter_map = {} - self.__pipe_topo_diameter_nominals = {} + self.__heat_pipe_topo_diameter_var = {} + self.__heat_pipe_topo_diameter_var_bounds = {} + self._heat_pipe_topo_diameter_map = {} + self.__heat_pipe_topo_diameter_nominals = {} # Variable for the investmentcost in eur/m during pipe-class optimization - self.__pipe_topo_cost_var = {} - self.__pipe_topo_cost_var_bounds = {} - self._pipe_topo_cost_map = {} - self.__pipe_topo_cost_nominals = {} + self.__heat_pipe_topo_cost_var = {} + self.__heat_pipe_topo_cost_var_bounds = {} + self._heat_pipe_topo_cost_map = {} + self.__heat_pipe_topo_cost_nominals = {} # Boolean variables for the various pipe class options per pipe - # The self._pipe_topo_pipe_class_map is already initiated in the HeatPhysicsMixin - self.__pipe_topo_pipe_class_var = {} - self.__pipe_topo_pipe_class_var_bounds = {} - self.__pipe_topo_pipe_class_result = {} + # The self._heat_pipe_topo_pipe_class_map is already initiated in the HeatPhysicsMixin + self.__heat_pipe_topo_pipe_class_var = {} + self.__heat_pipe_topo_pipe_class_var_bounds = {} + self.__heat_pipe_topo_pipe_class_result = {} - self.__pipe_topo_pipe_class_discharge_ordering_var = {} - self.__pipe_topo_pipe_class_discharge_ordering_var_bounds = {} - self.__pipe_topo_pipe_class_discharge_ordering_map = {} + self.__heat_pipe_topo_pipe_class_discharge_ordering_var = {} + self.__heat_pipe_topo_pipe_class_discharge_ordering_var_bounds = {} + self.__heat_pipe_topo_pipe_class_discharge_ordering_map = {} - self.__pipe_topo_pipe_class_cost_ordering_map = {} - self.__pipe_topo_pipe_class_cost_ordering_var = {} - self.__pipe_topo_pipe_class_cost_ordering_var_bounds = {} + self.__heat_pipe_topo_pipe_class_cost_ordering_map = {} + self.__heat_pipe_topo_pipe_class_cost_ordering_var = {} + self.__heat_pipe_topo_pipe_class_cost_ordering_var_bounds = {} - self.__pipe_topo_pipe_class_heat_loss_ordering_map = {} - self.__pipe_topo_pipe_class_heat_loss_ordering_var = {} - self.__pipe_topo_pipe_class_heat_loss_ordering_var_bounds = {} + self.__heat_pipe_topo_pipe_class_heat_loss_ordering_map = {} + self.__heat_pipe_topo_pipe_class_heat_loss_ordering_var = {} + self.__heat_pipe_topo_pipe_class_heat_loss_ordering_var_bounds = {} - self.__pipe_topo_global_pipe_class_count_var = {} - self.__pipe_topo_global_pipe_class_count_map = {} - self.__pipe_topo_global_pipe_class_count_var_bounds = {} + self.__heat_pipe_topo_global_pipe_class_count_var = {} + self.__heat_pipe_topo_global_pipe_class_count_map = {} + self.__heat_pipe_topo_global_pipe_class_count_var_bounds = {} # Dict to specifically update the discharge bounds under pipe-class optimization - self.__pipe_topo_heat_discharge_bounds = {} + self.__heat_pipe_topo_heat_discharge_bounds = {} # list with entry per ensemble member containing dicts of pipe parameter values for # diameter, area and heatloss. - self.__pipe_topo_diameter_area_parameters = [] - self.__pipe_topo_heat_loss_parameters = [] + self.__heat_pipe_topo_diameter_area_parameters = [] + self.__heat_pipe_topo_heat_loss_parameters = [] # Gas # Variable for the maximum discharge under pipe class optimization @@ -105,7 +105,7 @@ def __init__(self, *args, **kwargs): self.__gas_pipe_topo_cost_nominals = {} # Boolean variables for the various pipe class options per pipe - # The self._pipe_topo_pipe_class_map is already initiated in the HeatPhysicsMixin + # The self._gas_pipe_topo_pipe_class_map is already initiated in the GasPhysicsMixin self.__gas_pipe_topo_pipe_class_var = {} self.__gas_pipe_topo_pipe_class_var_bounds = {} self.__gas_pipe_topo_pipe_class_result = {} @@ -142,7 +142,8 @@ def __init__(self, *args, **kwargs): self.__electricity_cable_topo_cost_nominals = {} # Boolean variables for the various pipe class options per pipe - # The self._pipe_topo_pipe_class_map is already initiated in the HeatPhysicsMixin + # The self._electricity_cable_topo_cable_class_map is already initiated in the + # ElectricityPhysicsMixin self.__electricity_cable_topo_cable_class_var = {} self.__electricity_cable_topo_cable_class_var_bounds = {} self.__electricity_cable_topo_cable_class_result = {} @@ -190,17 +191,17 @@ def pre(self): # than a single pipe class for a certain pipe, we set the diameter # and area to NaN to prevent erroneous constraints. for _ in range(self.ensemble_size): - self.__pipe_topo_diameter_area_parameters.append({}) - self.__pipe_topo_heat_loss_parameters.append({}) + self.__heat_pipe_topo_diameter_area_parameters.append({}) + self.__heat_pipe_topo_heat_loss_parameters.append({}) unique_pipe_classes = self.get_unique_pipe_classes() for pc in unique_pipe_classes: pipe_class_count = f"{pc.name}__global_pipe_class_count" - self.__pipe_topo_global_pipe_class_count_var[pipe_class_count] = ca.MX.sym( + self.__heat_pipe_topo_global_pipe_class_count_var[pipe_class_count] = ca.MX.sym( pipe_class_count ) - self.__pipe_topo_global_pipe_class_count_map[f"{pc.name}"] = pipe_class_count - self.__pipe_topo_global_pipe_class_count_var_bounds[pipe_class_count] = ( + self.__heat_pipe_topo_global_pipe_class_count_map[f"{pc.name}"] = pipe_class_count + self.__heat_pipe_topo_global_pipe_class_count_var_bounds[pipe_class_count] = ( 0.0, len(self.energy_system_components.get("heat_pipe", [])), ) @@ -505,34 +506,34 @@ def pre(self): # to the user. Contrary to that, the pipe class booleans are very # much an internal affair. diam_var_name = f"{pipe}__hn_diameter" - self.__pipe_topo_diameter_var[diam_var_name] = ca.MX.sym(diam_var_name) - self._pipe_topo_diameter_map[pipe] = diam_var_name + self.__heat_pipe_topo_diameter_var[diam_var_name] = ca.MX.sym(diam_var_name) + self._heat_pipe_topo_diameter_map[pipe] = diam_var_name cost_var_name = f"{pipe}__hn_cost" - self.__pipe_topo_cost_var[cost_var_name] = ca.MX.sym(cost_var_name) - self._pipe_topo_cost_map[pipe] = cost_var_name + self.__heat_pipe_topo_cost_var[cost_var_name] = ca.MX.sym(cost_var_name) + self._heat_pipe_topo_cost_map[pipe] = cost_var_name max_discharge_var_name = f"{pipe}__hn_max_discharge" max_discharges = [c.maximum_discharge for c in pipe_classes] - self.__pipe_topo_max_discharge_var[max_discharge_var_name] = ca.MX.sym( + self.__heat_pipe_topo_max_discharge_var[max_discharge_var_name] = ca.MX.sym( max_discharge_var_name ) - self._pipe_topo_max_discharge_map[pipe] = max_discharge_var_name + self._heat_pipe_topo_max_discharge_map[pipe] = max_discharge_var_name if len(pipe_classes) > 0: - self.__pipe_topo_max_discharge_nominals[max_discharge_var_name] = np.median( + self.__heat_pipe_topo_max_discharge_nominals[max_discharge_var_name] = np.median( max_discharges ) - self.__pipe_topo_max_discharge_var_bounds[max_discharge_var_name] = ( + self.__heat_pipe_topo_max_discharge_var_bounds[max_discharge_var_name] = ( -max(max_discharges), max(max_discharges), ) else: max_velocity = self.heat_network_settings["maximum_velocity"] - self.__pipe_topo_max_discharge_nominals[max_discharge_var_name] = ( + self.__heat_pipe_topo_max_discharge_nominals[max_discharge_var_name] = ( parameters[f"{pipe}.area"] * max_velocity ) - self.__pipe_topo_max_discharge_var_bounds[max_discharge_var_name] = ( + self.__heat_pipe_topo_max_discharge_var_bounds[max_discharge_var_name] = ( -parameters[f"{pipe}.area"] * max_velocity, parameters[f"{pipe}.area"] * max_velocity, ) @@ -541,47 +542,53 @@ def pre(self): # No pipe class decision to make for this pipe w.r.t. diameter diameter = parameters[f"{pipe}.diameter"] investment_cost = parameters[f"{pipe}.investment_cost_coefficient"] - self.__pipe_topo_diameter_var_bounds[diam_var_name] = (diameter, diameter) - self.__pipe_topo_cost_var_bounds[cost_var_name] = (investment_cost, investment_cost) + self.__heat_pipe_topo_diameter_var_bounds[diam_var_name] = (diameter, diameter) + self.__heat_pipe_topo_cost_var_bounds[cost_var_name] = ( + investment_cost, + investment_cost, + ) if diameter > 0.0: - self.__pipe_topo_diameter_nominals[diam_var_name] = diameter - self.__pipe_topo_cost_nominals[cost_var_name] = max(investment_cost, 1.0) + self.__heat_pipe_topo_diameter_nominals[diam_var_name] = diameter + self.__heat_pipe_topo_cost_nominals[cost_var_name] = max(investment_cost, 1.0) elif len(pipe_classes) == 1: # No pipe class decision to make for this pipe w.r.t. diameter diameter = pipe_classes[0].inner_diameter investment_cost = pipe_classes[0].investment_costs - self.__pipe_topo_diameter_var_bounds[diam_var_name] = (diameter, diameter) - self.__pipe_topo_cost_var_bounds[cost_var_name] = (investment_cost, investment_cost) + self.__heat_pipe_topo_diameter_var_bounds[diam_var_name] = (diameter, diameter) + self.__heat_pipe_topo_cost_var_bounds[cost_var_name] = ( + investment_cost, + investment_cost, + ) if diameter > 0.0: - self.__pipe_topo_diameter_nominals[diam_var_name] = diameter - self.__pipe_topo_cost_nominals[cost_var_name] = max(investment_cost, 1.0) + self.__heat_pipe_topo_diameter_nominals[diam_var_name] = diameter + self.__heat_pipe_topo_cost_nominals[cost_var_name] = max(investment_cost, 1.0) if investment_cost == 0.0: RuntimeWarning(f"{pipe} has an investment cost of 0. €/m") for ensemble_member in range(self.ensemble_size): - d = self.__pipe_topo_diameter_area_parameters[ensemble_member] + d = self.__heat_pipe_topo_diameter_area_parameters[ensemble_member] d[f"{pipe}.diameter"] = diameter d[f"{pipe}.area"] = pipe_classes[0].area else: diameters = [c.inner_diameter for c in pipe_classes] - self.__pipe_topo_diameter_var_bounds[diam_var_name] = ( + self.__heat_pipe_topo_diameter_var_bounds[diam_var_name] = ( min(diameters), max(diameters), ) costs = [c.investment_costs for c in pipe_classes] - self.__pipe_topo_cost_var_bounds[cost_var_name] = ( + self.__heat_pipe_topo_cost_var_bounds[cost_var_name] = ( min(costs), max(costs), ) - self.__pipe_topo_cost_nominals[cost_var_name] = np.median(costs) + self.__heat_pipe_topo_cost_nominals[cost_var_name] = np.median(costs) - self.__pipe_topo_diameter_nominals[diam_var_name] = min( + self.__heat_pipe_topo_diameter_nominals[diam_var_name] = min( x for x in diameters if x > 0.0 ) for ensemble_member in range(self.ensemble_size): - d = self.__pipe_topo_diameter_area_parameters[ensemble_member] + d = self.__heat_pipe_topo_diameter_area_parameters[ensemble_member] d[f"{pipe}.diameter"] = np.nan d[f"{pipe}.area"] = np.nan @@ -616,7 +623,7 @@ def pre(self): ) for ensemble_member in range(self.ensemble_size): - h = self.__pipe_topo_heat_loss_parameters[ensemble_member] + h = self.__heat_pipe_topo_heat_loss_parameters[ensemble_member] h[f"{pipe}.Heat_loss"] = pipe_heat_loss(self, options, parameters, pipe) elif len(pipe_classes) == 1: @@ -637,7 +644,7 @@ def pre(self): ) for ensemble_member in range(self.ensemble_size): - h = self.__pipe_topo_heat_loss_parameters[ensemble_member] + h = self.__heat_pipe_topo_heat_loss_parameters[ensemble_member] h[f"{pipe}.Heat_loss"] = heat_loss else: heat_losses = [ @@ -655,7 +662,7 @@ def pre(self): ) for ensemble_member in range(self.ensemble_size): - h = self.__pipe_topo_heat_loss_parameters[ensemble_member] + h = self.__heat_pipe_topo_heat_loss_parameters[ensemble_member] h[f"{pipe}.Heat_loss"] = max( pipe_heat_loss(self, options, parameters, pipe), 1.0 ) @@ -665,10 +672,10 @@ def pre(self): # No pipe class decision to make for this pipe pass else: - self._pipe_topo_pipe_class_map[pipe] = {} - self.__pipe_topo_pipe_class_discharge_ordering_map[pipe] = {} - self.__pipe_topo_pipe_class_cost_ordering_map[pipe] = {} - self.__pipe_topo_pipe_class_heat_loss_ordering_map[pipe] = {} + self._heat_pipe_topo_pipe_class_map[pipe] = {} + self.__heat_pipe_topo_pipe_class_discharge_ordering_map[pipe] = {} + self.__heat_pipe_topo_pipe_class_cost_ordering_map[pipe] = {} + self.__heat_pipe_topo_pipe_class_heat_loss_ordering_map[pipe] = {} for c in pipe_classes: neighbour = self.has_related_pipe(pipe) @@ -696,39 +703,39 @@ def pre(self): f"{pipe}__hn_pipe_class_{c.name}_heat_loss_ordering" ) - self._pipe_topo_pipe_class_map[pipe][c] = pipe_class_var_name - self.__pipe_topo_pipe_class_var[pipe_class_var_name] = ca.MX.sym( + self._heat_pipe_topo_pipe_class_map[pipe][c] = pipe_class_var_name + self.__heat_pipe_topo_pipe_class_var[pipe_class_var_name] = ca.MX.sym( pipe_class_var_name ) - self.__pipe_topo_pipe_class_var_bounds[pipe_class_var_name] = (0.0, 1.0) + self.__heat_pipe_topo_pipe_class_var_bounds[pipe_class_var_name] = (0.0, 1.0) - self.__pipe_topo_pipe_class_discharge_ordering_map[pipe][ + self.__heat_pipe_topo_pipe_class_discharge_ordering_map[pipe][ c ] = pipe_class_ordering_name - self.__pipe_topo_pipe_class_discharge_ordering_var[pipe_class_ordering_name] = ( - ca.MX.sym(pipe_class_ordering_name) - ) - self.__pipe_topo_pipe_class_discharge_ordering_var_bounds[ + self.__heat_pipe_topo_pipe_class_discharge_ordering_var[ + pipe_class_ordering_name + ] = ca.MX.sym(pipe_class_ordering_name) + self.__heat_pipe_topo_pipe_class_discharge_ordering_var_bounds[ pipe_class_ordering_name ] = (0.0, 1.0) - self.__pipe_topo_pipe_class_cost_ordering_map[pipe][ + self.__heat_pipe_topo_pipe_class_cost_ordering_map[pipe][ c ] = pipe_class_cost_ordering_name - self.__pipe_topo_pipe_class_cost_ordering_var[pipe_class_cost_ordering_name] = ( - ca.MX.sym(pipe_class_cost_ordering_name) - ) - self.__pipe_topo_pipe_class_cost_ordering_var_bounds[ + self.__heat_pipe_topo_pipe_class_cost_ordering_var[ + pipe_class_cost_ordering_name + ] = ca.MX.sym(pipe_class_cost_ordering_name) + self.__heat_pipe_topo_pipe_class_cost_ordering_var_bounds[ pipe_class_cost_ordering_name ] = (0.0, 1.0) - self.__pipe_topo_pipe_class_heat_loss_ordering_map[pipe][ + self.__heat_pipe_topo_pipe_class_heat_loss_ordering_map[pipe][ c ] = pipe_class_heat_loss_ordering_name - self.__pipe_topo_pipe_class_heat_loss_ordering_var[ + self.__heat_pipe_topo_pipe_class_heat_loss_ordering_var[ pipe_class_heat_loss_ordering_name ] = ca.MX.sym(pipe_class_heat_loss_ordering_name) - self.__pipe_topo_pipe_class_heat_loss_ordering_var_bounds[ + self.__heat_pipe_topo_pipe_class_heat_loss_ordering_var_bounds[ pipe_class_heat_loss_ordering_name ] = (0.0, 1.0) @@ -736,11 +743,14 @@ def pre(self): # optimized. Note that the flow direction may have already been fixed # based on the original bounds, if that was desired. We can therefore # naively override the bounds without taking this into account. - for pipe in self._pipe_topo_pipe_class_map: - pipe_classes = self._pipe_topo_pipe_class_map[pipe] + for pipe in self._heat_pipe_topo_pipe_class_map: + pipe_classes = self._heat_pipe_topo_pipe_class_map[pipe] max_discharge = max([c.maximum_discharge for c in pipe_classes]) - self.__pipe_topo_heat_discharge_bounds[f"{pipe}.Q"] = (-max_discharge, max_discharge) + self.__heat_pipe_topo_heat_discharge_bounds[f"{pipe}.Q"] = ( + -max_discharge, + max_discharge, + ) # Heat on cold side is zero, so no change needed cp = parameters[f"{pipe}.cp"] @@ -750,11 +760,17 @@ def pre(self): # TODO: if temperature is variable these bounds should be set differently max_heat = 2.0 * cp * rho * temperature * max_discharge - self.__pipe_topo_heat_discharge_bounds[f"{pipe}.HeatIn.Heat"] = (-max_heat, max_heat) - self.__pipe_topo_heat_discharge_bounds[f"{pipe}.HeatOut.Heat"] = (-max_heat, max_heat) + self.__heat_pipe_topo_heat_discharge_bounds[f"{pipe}.HeatIn.Heat"] = ( + -max_heat, + max_heat, + ) + self.__heat_pipe_topo_heat_discharge_bounds[f"{pipe}.HeatOut.Heat"] = ( + -max_heat, + max_heat, + ) # When optimizing for pipe size, we do not yet support all options - if self._pipe_topo_pipe_class_map: + if self._heat_pipe_topo_pipe_class_map: if np.isfinite(options["maximum_temperature_der"]) and np.isfinite( options["maximum_flow_der"] ): @@ -1006,7 +1022,7 @@ def get_optimized_pipe_class(self, pipe: str) -> PipeClass: Return the optimized pipe class for a specific pipe. If no optimized pipe class is available (yet), a `KeyError` is returned. """ - return self.__pipe_topo_pipe_class_result[pipe] + return self.__heat_pipe_topo_pipe_class_result[pipe] def get_optimized_deman_insulation_class(self, demand_insulation: str) -> DemandInsulationClass: """ @@ -1019,13 +1035,13 @@ def pipe_diameter_symbol_name(self, pipe: str) -> str: """ Return the symbol name for the pipe diameter """ - return self._pipe_topo_diameter_map[pipe] + return self._heat_pipe_topo_diameter_map[pipe] def pipe_cost_symbol_name(self, pipe: str) -> str: """ Return the symbol name for the pipe investment cost per meter """ - return self._pipe_topo_cost_map[pipe] + return self._heat_pipe_topo_cost_map[pipe] @property def extra_variables(self): @@ -1034,21 +1050,21 @@ def extra_variables(self): problem. Note that these are only the normal variables not path variables. """ variables = super().extra_variables.copy() - variables.extend(self.__pipe_topo_diameter_var.values()) - variables.extend(self.__pipe_topo_cost_var.values()) - variables.extend(self.__pipe_topo_pipe_class_var.values()) + variables.extend(self.__heat_pipe_topo_diameter_var.values()) + variables.extend(self.__heat_pipe_topo_cost_var.values()) + variables.extend(self.__heat_pipe_topo_pipe_class_var.values()) variables.extend(self.__gas_pipe_topo_diameter_var.values()) variables.extend(self.__gas_pipe_topo_cost_var.values()) variables.extend(self.__gas_pipe_topo_pipe_class_var.values()) variables.extend(self.__asset_max_size_var.values()) variables.extend(self.__asset_aggregation_count_var.values()) variables.extend(self.__gas_pipe_topo_max_discharge_var.values()) - variables.extend(self.__pipe_topo_max_discharge_var.values()) - variables.extend(self.__pipe_topo_global_pipe_class_count_var.values()) + variables.extend(self.__heat_pipe_topo_max_discharge_var.values()) + variables.extend(self.__heat_pipe_topo_global_pipe_class_count_var.values()) variables.extend(self.__gas_pipe_topo_global_pipe_class_count_var.values()) - variables.extend(self.__pipe_topo_pipe_class_discharge_ordering_var.values()) - variables.extend(self.__pipe_topo_pipe_class_cost_ordering_var.values()) - variables.extend(self.__pipe_topo_pipe_class_heat_loss_ordering_var.values()) + variables.extend(self.__heat_pipe_topo_pipe_class_discharge_ordering_var.values()) + variables.extend(self.__heat_pipe_topo_pipe_class_cost_ordering_var.values()) + variables.extend(self.__heat_pipe_topo_pipe_class_heat_loss_ordering_var.values()) variables.extend(self.__gas_pipe_topo_pipe_class_discharge_ordering_var.values()) variables.extend(self.__gas_pipe_topo_pipe_class_cost_ordering_var.values()) variables.extend(self.__electricity_cable_topo_max_current_var.values()) @@ -1076,11 +1092,11 @@ def variable_is_discrete(self, variable): All variables that only can take integer values should be added to this function. """ if ( - variable in self.__pipe_topo_pipe_class_var + variable in self.__heat_pipe_topo_pipe_class_var or variable in self.__asset_aggregation_count_var - or variable in self.__pipe_topo_pipe_class_discharge_ordering_var - or variable in self.__pipe_topo_pipe_class_cost_ordering_var - or variable in self.__pipe_topo_pipe_class_heat_loss_ordering_var + or variable in self.__heat_pipe_topo_pipe_class_discharge_ordering_var + or variable in self.__heat_pipe_topo_pipe_class_cost_ordering_var + or variable in self.__heat_pipe_topo_pipe_class_heat_loss_ordering_var or variable in self.__gas_pipe_topo_pipe_class_discharge_ordering_var or variable in self.__gas_pipe_topo_pipe_class_cost_ordering_var or variable in self.__gas_pipe_topo_pipe_class_var @@ -1096,16 +1112,16 @@ def variable_nominal(self, variable): """ In this function we add all the nominals for the variables defined/added in the HeatMixin. """ - if variable in self.__pipe_topo_diameter_nominals: - return self.__pipe_topo_diameter_nominals[variable] + if variable in self.__heat_pipe_topo_diameter_nominals: + return self.__heat_pipe_topo_diameter_nominals[variable] elif variable in self._pipe_heat_loss_nominals: return self._pipe_heat_loss_nominals[variable] - elif variable in self.__pipe_topo_cost_nominals: - return self.__pipe_topo_cost_nominals[variable] + elif variable in self.__heat_pipe_topo_cost_nominals: + return self.__heat_pipe_topo_cost_nominals[variable] elif variable in self.__asset_max_size_nominals: return self.__asset_max_size_nominals[variable] - elif variable in self.__pipe_topo_max_discharge_nominals: - return self.__pipe_topo_max_discharge_nominals[variable] + elif variable in self.__heat_pipe_topo_max_discharge_nominals: + return self.__heat_pipe_topo_max_discharge_nominals[variable] elif variable in self.__gas_pipe_topo_diameter_nominals: return self.__gas_pipe_topo_diameter_nominals[variable] elif variable in self.__gas_pipe_topo_cost_nominals: @@ -1127,23 +1143,23 @@ def bounds(self): the HeatMixin. """ bounds = super().bounds() - bounds.update(self.__pipe_topo_pipe_class_var_bounds) - bounds.update(self.__pipe_topo_diameter_var_bounds) - bounds.update(self.__pipe_topo_cost_var_bounds) + bounds.update(self.__heat_pipe_topo_pipe_class_var_bounds) + bounds.update(self.__heat_pipe_topo_diameter_var_bounds) + bounds.update(self.__heat_pipe_topo_cost_var_bounds) bounds.update(self._pipe_heat_loss_var_bounds) - bounds.update(self.__pipe_topo_heat_discharge_bounds) + bounds.update(self.__heat_pipe_topo_heat_discharge_bounds) bounds.update(self.__gas_pipe_topo_pipe_class_var_bounds) bounds.update(self.__gas_pipe_topo_diameter_var_bounds) bounds.update(self.__gas_pipe_topo_cost_var_bounds) bounds.update(self.__asset_max_size_bounds) bounds.update(self.__asset_aggregation_count_var_bounds) - bounds.update(self.__pipe_topo_max_discharge_var_bounds) + bounds.update(self.__heat_pipe_topo_max_discharge_var_bounds) bounds.update(self.__gas_pipe_topo_max_discharge_var_bounds) - bounds.update(self.__pipe_topo_global_pipe_class_count_var_bounds) + bounds.update(self.__heat_pipe_topo_global_pipe_class_count_var_bounds) bounds.update(self.__gas_pipe_topo_global_pipe_class_count_var_bounds) - bounds.update(self.__pipe_topo_pipe_class_discharge_ordering_var_bounds) - bounds.update(self.__pipe_topo_pipe_class_cost_ordering_var_bounds) - bounds.update(self.__pipe_topo_pipe_class_heat_loss_ordering_var_bounds) + bounds.update(self.__heat_pipe_topo_pipe_class_discharge_ordering_var_bounds) + bounds.update(self.__heat_pipe_topo_pipe_class_cost_ordering_var_bounds) + bounds.update(self.__heat_pipe_topo_pipe_class_heat_loss_ordering_var_bounds) bounds.update(self.__gas_pipe_topo_pipe_class_discharge_ordering_var_bounds) bounds.update(self.__gas_pipe_topo_pipe_class_cost_ordering_var_bounds) bounds.update(self.__electricity_cable_topo_max_current_var_bounds) @@ -1166,10 +1182,10 @@ def parameters(self, ensemble_member): # parameters in e.g. constraints when those are variable, we set them # to NaN in that case. In post(), they are set to their resulting # values once again. - if self.__pipe_topo_diameter_area_parameters: - parameters.update(self.__pipe_topo_diameter_area_parameters[ensemble_member]) - if self.__pipe_topo_heat_loss_parameters: - parameters.update(self.__pipe_topo_heat_loss_parameters[ensemble_member]) + if self.__heat_pipe_topo_diameter_area_parameters: + parameters.update(self.__heat_pipe_topo_diameter_area_parameters[ensemble_member]) + if self.__heat_pipe_topo_heat_loss_parameters: + parameters.update(self.__heat_pipe_topo_heat_loss_parameters[ensemble_member]) return parameters @@ -1201,7 +1217,7 @@ def __get_maximum_total_head_loss(self): # TODO: asset sizing is currently hard coded to use only the milp network settings for pipe in components.get("heat_pipe", []): try: - pipe_classes = self._pipe_topo_pipe_class_map[pipe].keys() + pipe_classes = self._heat_pipe_topo_pipe_class_map[pipe].keys() head_loss += max( self._hn_head_loss_class._hn_pipe_head_loss( pipe, @@ -1268,7 +1284,7 @@ def __pipe_topology_constraints(self, ensemble_member): for p in self.energy_system_components.get("heat_pipe", []): try: - pipe_classes = self._pipe_topo_pipe_class_map[p] + pipe_classes = self._heat_pipe_topo_pipe_class_map[p] except KeyError: pass else: @@ -1282,15 +1298,15 @@ def __pipe_topology_constraints(self, ensemble_member): for pc in unique_pipe_classes: var = self.extra_variable( - self.__pipe_topo_global_pipe_class_count_map[pc.name], ensemble_member + self.__heat_pipe_topo_global_pipe_class_count_map[pc.name], ensemble_member ) constraints.append(((pipe_class_count_sum[pc.name] - var), 0.0, 0.0)) # These are the constraints to order the discharge capabilities of the pipe classes - for p, pipe_classes in self.__pipe_topo_pipe_class_discharge_ordering_map.items(): - max_discharge = self.extra_variable(self._pipe_topo_max_discharge_map[p]) + for p, pipe_classes in self.__heat_pipe_topo_pipe_class_discharge_ordering_map.items(): + max_discharge = self.extra_variable(self._heat_pipe_topo_max_discharge_map[p]) max_discharges = { - pc.name: pc.maximum_discharge for pc in self._pipe_topo_pipe_class_map[p] + pc.name: pc.maximum_discharge for pc in self._heat_pipe_topo_pipe_class_map[p] } median_discharge = np.median(list(max_discharges.values())) @@ -1324,10 +1340,10 @@ def __pipe_topology_constraints(self, ensemble_member): ) # These are the constraints to order the costs of the pipe classes - for p, pipe_classes in self.__pipe_topo_pipe_class_cost_ordering_map.items(): - cost_sym_name = self._pipe_topo_cost_map[p] + for p, pipe_classes in self.__heat_pipe_topo_pipe_class_cost_ordering_map.items(): + cost_sym_name = self._heat_pipe_topo_cost_map[p] cost_sym = self.extra_variable(cost_sym_name, ensemble_member) - costs = {pc.name: pc.investment_costs for pc in self._pipe_topo_pipe_class_map[p]} + costs = {pc.name: pc.investment_costs for pc in self._heat_pipe_topo_pipe_class_map[p]} big_m = 2.0 * max(costs.values()) for pc, var_name in pipe_classes.items(): @@ -1353,7 +1369,10 @@ def __pipe_topology_constraints(self, ensemble_member): # These are the constraints to order the milp loss of the pipe classes. if not self.energy_system_options()["neglect_pipe_heat_losses"]: - for pipe, pipe_classes in self.__pipe_topo_pipe_class_heat_loss_ordering_map.items(): + for ( + pipe, + pipe_classes, + ) in self.__heat_pipe_topo_pipe_class_heat_loss_ordering_map.items(): if pipe in self.hot_pipes and self.has_related_pipe(pipe): heat_loss_sym_name = self._pipe_heat_loss_map[pipe] heat_loss_sym = self.extra_variable(heat_loss_sym_name, ensemble_member) @@ -1400,7 +1419,7 @@ def __pipe_topology_constraints(self, ensemble_member): ) ) - for p, pipe_classes in self._pipe_topo_pipe_class_map.items(): + for p, pipe_classes in self._heat_pipe_topo_pipe_class_map.items(): variables = { pc.name: self.extra_variable(var_name, ensemble_member) for pc, var_name in pipe_classes.items() @@ -1410,7 +1429,7 @@ def __pipe_topology_constraints(self, ensemble_member): constraints.append((sum(variables.values()), 1.0, 1.0)) # set the max discharge - max_discharge = self.extra_variable(self._pipe_topo_max_discharge_map[p]) + max_discharge = self.extra_variable(self._heat_pipe_topo_max_discharge_map[p]) max_discharges = {pc.name: pc.maximum_discharge for pc in pipe_classes} max_discharge_expr = sum( variables[pc_name] * max_discharges[pc_name] for pc_name in variables @@ -1419,14 +1438,14 @@ def __pipe_topology_constraints(self, ensemble_member): constraints.append( ( (max_discharge - max_discharge_expr) - / self.variable_nominal(self._pipe_topo_max_discharge_map[p]), + / self.variable_nominal(self._heat_pipe_topo_max_discharge_map[p]), 0.0, 0.0, ) ) # Match the indicators to the diameter symbol - diam_sym_name = self._pipe_topo_diameter_map[p] + diam_sym_name = self._heat_pipe_topo_diameter_map[p] diam_sym = self.extra_variable(diam_sym_name, ensemble_member) diameters = {pc.name: pc.inner_diameter for pc in pipe_classes} @@ -1437,7 +1456,7 @@ def __pipe_topology_constraints(self, ensemble_member): constraints.append(((diam_sym - diam_expr) / constraint_nominal, 0.0, 0.0)) # match the indicators to the cost symbol - cost_sym_name = self._pipe_topo_cost_map[p] + cost_sym_name = self._heat_pipe_topo_cost_map[p] cost_sym = self.extra_variable(cost_sym_name, ensemble_member) investment_costs = {pc.name: pc.investment_costs for pc in pipe_classes} @@ -1746,7 +1765,9 @@ def __pipe_topology_path_constraints(self, ensemble_member): discharge_sym = self.state(f"{p}.Q") nominal = self.variable_nominal(f"{p}.Q") - max_discharge = self.__pipe_topo_max_discharge_var[self._pipe_topo_max_discharge_map[p]] + max_discharge = self.__heat_pipe_topo_max_discharge_var[ + self._heat_pipe_topo_max_discharge_map[p] + ] constraints.append(((max_discharge - discharge_sym) / nominal, 0.0, np.inf)) constraints.append(((-max_discharge - discharge_sym) / nominal, -np.inf, 0.0)) @@ -2172,12 +2193,12 @@ def __pipe_class_to_results(self): else: pipe_class = next( c - for c, s in self._pipe_topo_pipe_class_map[pipe].items() + for c, s in self._heat_pipe_topo_pipe_class_map[pipe].items() if round(results[s][0]) == 1.0 ) for p in [pipe, self.hot_to_cold_pipe(pipe)]: - self.__pipe_topo_pipe_class_result[p] = pipe_class + self.__heat_pipe_topo_pipe_class_result[p] = pipe_class def _pipe_heat_loss_to_parameters(self): """ @@ -2188,7 +2209,7 @@ def _pipe_heat_loss_to_parameters(self): for ensemble_member in range(self.ensemble_size): parameters = self.parameters(ensemble_member) - h = self.__pipe_topo_heat_loss_parameters[ensemble_member] + h = self.__heat_pipe_topo_heat_loss_parameters[ensemble_member] for pipe in self._pipe_heat_losses: pipe_class = self.get_optimized_pipe_class(pipe) @@ -2202,8 +2223,8 @@ def __pipe_diameter_to_parameters(self): optimization """ for ensemble_member in range(self.ensemble_size): - d = self.__pipe_topo_diameter_area_parameters[ensemble_member] - for pipe in self._pipe_topo_pipe_class_map: + d = self.__heat_pipe_topo_diameter_area_parameters[ensemble_member] + for pipe in self._heat_pipe_topo_pipe_class_map: pipe_class = self.get_optimized_pipe_class(pipe) for p in [pipe, self.hot_to_cold_pipe(pipe)]: diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index c076076b0..670989f86 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -557,6 +557,7 @@ def convert_heat_pipe( mass_flow=dict( min=-q_max * density, max=q_max * density, nominal=q_nominal * density ), + Hydraulic_power=dict(nominal=q_nominal * pressure), ) modifiers = dict( length=length, @@ -1441,6 +1442,7 @@ def convert_gas_demand(self, asset: Asset) -> Tuple[Type[GasDemand], MODIFIERS]: # DO not remove due usage in future # hydrogen_specfic_energy = 20.0 / 1.0e6 density = self.get_density(asset.name, asset.in_ports[0].carrier) + pressure = asset.in_ports[0].carrier.pressure * 1.0e5 q_nominal = self._get_connected_q_nominal(asset) modifiers = dict( @@ -1456,6 +1458,7 @@ def convert_gas_demand(self, asset: Asset) -> Tuple[Type[GasDemand], MODIFIERS]: nominal=self._get_connected_q_nominal(asset), ), mass_flow=dict(nominal=density * q_nominal), + Hydraulic_power=dict(min=0.0, max=0.0, nominal=q_nominal * pressure), ), **self._get_cost_figure_modifiers(asset), ) @@ -1481,6 +1484,7 @@ def convert_gas_source(self, asset: Asset) -> Tuple[Type[GasSource], MODIFIERS]: q_nominal = self._get_connected_q_nominal(asset) density_value = self.get_density(asset.name, asset.out_ports[0].carrier) + pressure = asset.out_ports[0].carrier.pressure * 1.0e5 bounds_nominals_mass_flow = dict( min=0.0, @@ -1495,6 +1499,7 @@ def convert_gas_source(self, asset: Asset) -> Tuple[Type[GasSource], MODIFIERS]: GasOut=dict( Q=dict(nominal=q_nominal), mass_flow=bounds_nominals_mass_flow, + Hydraulic_power=dict(nominal=q_nominal * pressure), ), **self._get_cost_figure_modifiers(asset), ) @@ -1587,6 +1592,7 @@ def convert_gas_tank_storage(self, asset: Asset) -> Tuple[Type[GasTankStorage], # hydrogen_specific_energy = 20.0 / 1.0e6 # kg/Wh q_nominal = self._get_connected_q_nominal(asset) density = self.get_density(asset.name, asset.in_ports[0].carrier) + pressure = asset.in_ports[0].carrier.pressure * 1.0e5 modifiers = dict( Q_nominal=q_nominal, @@ -1600,7 +1606,11 @@ def convert_gas_tank_storage(self, asset: Asset) -> Tuple[Type[GasTankStorage], # min=-self._get_connected_q_max(asset), max=self._get_connected_q_max(asset), # nominal=self._get_connected_q_nominal(asset), # ) - GasIn=dict(Q=dict(nominal=q_nominal), mass_flow=dict(nominal=q_nominal * density)), + GasIn=dict( + Q=dict(nominal=q_nominal), + mass_flow=dict(nominal=q_nominal * density), + Hydraulic_power=dict(nominal=q_nominal * pressure), + ), **self._get_cost_figure_modifiers(asset), ) @@ -1624,6 +1634,8 @@ def convert_gas_substation(self, asset: Asset) -> Tuple[Type[GasSubstation], MOD q_nom_in, q_nom_out = self._get_connected_q_nominal(asset) density_in = self.get_density(asset.name, asset.in_ports[0].carrier) density_out = self.get_density(asset.name, asset.out_ports[0].carrier) + pressure_in = asset.in_ports[0].carrier.pressure * 1.0e5 + pressure_out = asset.out_ports[0].carrier.pressure * 1.0e5 assert density_in >= density_out @@ -1632,8 +1644,16 @@ def convert_gas_substation(self, asset: Asset) -> Tuple[Type[GasSubstation], MOD Q_nominal_out=q_nom_out, density_in=density_in, density_out=density_out, - GasIn=dict(Q=dict(nominal=q_nom_in), mass_flow=dict(nominal=q_nom_in * density_in)), - GasOut=dict(Q=dict(nominal=q_nom_out), mass_flow=dict(nominal=q_nom_out * density_out)), + GasIn=dict( + Q=dict(nominal=q_nom_in), + mass_flow=dict(nominal=q_nom_in * density_in), + Hydraulic_power=dict(nominal=q_nom_in * pressure_in), + ), + GasOut=dict( + Q=dict(nominal=q_nom_out), + mass_flow=dict(nominal=q_nom_out * density_out), + Hydraulic_power=dict(nominal=q_nom_out * pressure_out), + ), **self._get_cost_figure_modifiers(asset), ) @@ -1650,13 +1670,15 @@ def convert_compressor(self, asset: Asset) -> Tuple[Type[Compressor], MODIFIERS] Returns ------- - GasTankStorage class with modifiers + Compressor class with modifiers """ assert asset.asset_type in {"Compressor"} q_nom_in, q_nom_out = self._get_connected_q_nominal(asset) density_in = self.get_density(asset.name, asset.in_ports[0].carrier) density_out = self.get_density(asset.name, asset.out_ports[0].carrier) + pressure_in = asset.in_ports[0].carrier.pressure * 1.0e5 + pressure_out = asset.out_ports[0].carrier.pressure * 1.0e5 assert density_out >= density_in @@ -1665,8 +1687,16 @@ def convert_compressor(self, asset: Asset) -> Tuple[Type[Compressor], MODIFIERS] Q_nominal_out=q_nom_out, density_in=density_in, density_out=density_out, - GasIn=dict(Q=dict(nominal=q_nom_in), mass_flow=dict(nominal=q_nom_in * density_in)), - GasOut=dict(Q=dict(nominal=q_nom_out), mass_flow=dict(nominal=q_nom_out * density_out)), + GasIn=dict( + Q=dict(nominal=q_nom_in), + mass_flow=dict(nominal=q_nom_in * density_in), + Hydraulic_power=dict(nominal=q_nom_in * pressure_in), + ), + GasOut=dict( + Q=dict(nominal=q_nom_out), + mass_flow=dict(nominal=q_nom_out * density_out), + Hydraulic_power=dict(nominal=q_nom_out * pressure_out), + ), **self._get_cost_figure_modifiers(asset), ) diff --git a/src/mesido/gas_physics_mixin.py b/src/mesido/gas_physics_mixin.py index 4cca7fa9b..bb8c25cae 100644 --- a/src/mesido/gas_physics_mixin.py +++ b/src/mesido/gas_physics_mixin.py @@ -109,7 +109,7 @@ def __init__(self, *args, **kwargs): self.__gas_pipe_head_loss_bounds = {} self.__gas_pipe_head_loss_nominals = {} self.__gas_pipe_head_loss_zero_bounds = {} - self._hn_gas_pipe_to_head_loss_map = {} + self._gn_pipe_to_head_loss_map = {} # Boolean path-variable for the direction of the flow, inport to outport is positive flow. self.__gas_flow_direct_var = {} @@ -132,6 +132,10 @@ def __init__(self, *args, **kwargs): self._gas_pipe_topo_pipe_class_map = {} + # self.__gas_pipe_disconnect_var = {} + # self.__gas_pipe_disconnect_var_bounds = {} + self._gas_pipe_disconnect_map = {} + def gas_carriers(self): """ This function should be overwritten by the problem and should give a dict with the @@ -183,7 +187,7 @@ def _get_min_bound(bound): if initialized_vars[2] != {}: self.__gas_pipe_head_loss_zero_bounds[f"{pipe_name}.dH"] = initialized_vars[2] if initialized_vars[3] != {}: - self._hn_gas_pipe_to_head_loss_map[pipe_name] = initialized_vars[3] + self._gn_pipe_to_head_loss_map[pipe_name] = initialized_vars[3] if initialized_vars[4] != {}: self.__gas_pipe_head_loss_var[head_loss_var] = initialized_vars[4] if initialized_vars[5] != {}: @@ -233,7 +237,7 @@ def _get_min_bound(bound): else: self.__gas_flow_direct_bounds[flow_dir_var] = (0.0, 1.0) - # Still to be added in the future + # # Still to be added in the future # if parameters[f"{pipe_name}.disconnectable"]: # disconnected_var = f"{pipe_name}__is_disconnected" # self._gas_pipe_disconnect_map[pipe_name] = disconnected_var @@ -336,6 +340,18 @@ def path_goals(self): self, self.gas_network_settings ) ) + if ( + self.gas_network_settings["head_loss_option"] + == HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY + or self.gas_network_settings["head_loss_option"] + == HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + ): + g.append( + self._gn_head_loss_class._hpwr_minimization_goal_class( + self, + self.gas_network_settings, + ) + ) return g @@ -375,7 +391,7 @@ def __get_maximum_total_head_loss(self): self.gas_network_settings, parameters, max_discharge, - network_type=self.gas_network_settings["network_type"], + # network_type=self.gas_network_settings["network_type"], pressure=parameters[f"{pipe}.pressure"], ) @@ -424,6 +440,28 @@ def __gas_node_mixing_path_constraints(self, ensemble_member): return constraints + def __gas_node_hydraulic_power_mixing_path_constraints(self, ensemble_member): + """ + This function adds constraints to ensure that the incoming hydraulic power equals the + outgoing hydraulic power. We assume constant density throughout a hydraulically coupled + system and thus these constraints are needed for mass conservation. + """ + constraints = [] + + for node, connected_pipes in self.energy_system_topology.gas_nodes.items(): + q_sum = 0.0 + q_nominals = [] + + for i_conn, (_pipe, orientation) in connected_pipes.items(): + q_conn = f"{node}.GasConn[{i_conn + 1}].Hydraulic_power" + q_sum += orientation * self.state(q_conn) + q_nominals.append(self.variable_nominal(q_conn)) + + q_nominal = np.median(q_nominals) + constraints.append((q_sum / q_nominal, 0.0, 0.0)) + + return constraints + def __state_vector_scaled(self, variable, ensemble_member): """ This functions returns the casadi symbols scaled with their nominal for the entire time @@ -496,194 +534,6 @@ def __flow_direction_path_constraints(self, ensemble_member): return constraints - def _hn_gas_pipe_head_loss_constraints(self, ensemble_member): - """ - This function adds the head loss constraints for pipes. There are two options namely with - and without pipe class optimization. In both cases we assume that disconnected pipes, pipes - without flow have no head loss. - - Under pipe-class optimization the head loss constraints per pipe class are added and - applied with the big_m method (is_topo_disconnected) to only activate the correct - constraints. - - Under constant pipe class constraints for only one diameter are added. - """ - constraints = [] - - options = self.energy_system_options() - parameters = self.parameters(ensemble_member) - components = self.energy_system_components - # Set the head loss according to the direction in the pipes. Note that - # the `.__head_loss` symbol is always positive by definition, but that - # `.dH` is not (positive when flow is negative, and vice versa). - # If the pipe is disconnected, we leave the .__head_loss symbol free - # (and it has no physical meaning). We also do not set any discharge - # relationship in this case (but dH is still equal to Out - In of - # course). - - for pipe in components.get("gas_pipe", []): - if parameters[f"{pipe}.length"] == 0.0: - # If the pipe does not have a control valve, the head loss is - # forced to zero via bounds. If the pipe _does_ have a control - # valve, then there still is no relationship between the - # discharge and the head loss/dH. - continue - - head_loss_sym = self._hn_gas_pipe_to_head_loss_map[pipe] - - dh = self.__state_vector_scaled(f"{pipe}.dH", ensemble_member) - head_loss = self.__state_vector_scaled(head_loss_sym, ensemble_member) - discharge = self.__state_vector_scaled(f"{pipe}.Q", ensemble_member) - - # We need to make sure the dH is decoupled from the discharge when - # the pipe is disconnected. Simply put, this means making the - # below constraints trivial. - - # Still to be implemented - # is_disconnected_var = self._gas_pipe_disconnect_map.get(pipe) - is_disconnected_var = None - - if is_disconnected_var is None: - is_disconnected = 0.0 - else: - is_disconnected = self.__state_vector_scaled(is_disconnected_var, ensemble_member) - - max_discharge = None - max_head_loss = -np.inf - - if pipe in self._gas_pipe_topo_pipe_class_map: - # Multiple diameter options for this pipe - pipe_classes = self._gas_pipe_topo_pipe_class_map[pipe] - max_discharge = max(c.maximum_discharge for c in pipe_classes) - - for pc, pc_var_name in pipe_classes.items(): - if pc.inner_diameter == 0.0: - continue - - head_loss_max_discharge = self._gn_head_loss_class._hn_pipe_head_loss( - pipe, - self, - options, - self.gas_network_settings, - parameters, - max_discharge, - pipe_class=pc, - network_type=self.gas_network_settings["network_type"], - pressure=parameters[f"{pipe}.pressure"], - ) - - big_m = max( - 2.0 * 2.0 * self.__maximum_total_head_loss, 2 * head_loss_max_discharge - ) - - is_topo_disconnected = 1 - self.extra_variable(pc_var_name, ensemble_member) - is_topo_disconnected = ca.repmat(is_topo_disconnected, dh.size1()) - - # Note that we add the two booleans `is_disconnected` and - # `is_topo_disconnected`. This is allowed because of the way the - # resulting expression is used in the Big-M formulation. We only care - # that the expression (i.e. a single boolean or the sum of the two - # booleans) is either 0 when the pipe is connected, or >= 1 when it - # is disconnected. - constraints.extend( - self._gn_head_loss_class._hn_pipe_head_loss( - pipe, - self, - options, - self.gas_network_settings, - parameters, - discharge, - head_loss, - dh, - is_disconnected + is_topo_disconnected, - big_m, - pc, - network_type=self.gas_network_settings["network_type"], - pressure=parameters[f"{pipe}.pressure"], - ) - ) - - # Contrary to the Big-M calculation above, the relation - # between dH and the head loss symbol requires the - # maximum head loss that can be realized effectively. So - # we pass the current pipe class's maximum discharge. - max_head_loss = max( - max_head_loss, - self._gn_head_loss_class._hn_pipe_head_loss( - pipe, - self, - options, - self.gas_network_settings, - parameters, - pc.maximum_discharge, - pipe_class=pc, - network_type=self.gas_network_settings["network_type"], - pressure=parameters[f"{pipe}.pressure"], - ), - ) - else: - # Only a single diameter for this pipe. Note that we rely on - # the diameter parameter being overridden automatically if a - # single pipe class is set by the user. - area = parameters[f"{pipe}.area"] - max_discharge = self.gas_network_settings["maximum_velocity"] * area - - is_topo_disconnected = int(parameters[f"{pipe}.diameter"] == 0.0) - - constraints.extend( - self._gn_head_loss_class._hn_pipe_head_loss( - pipe, - self, - options, - self.gas_network_settings, - parameters, - discharge, - head_loss, - dh, - is_disconnected + is_topo_disconnected, - 2.0 * 2.0 * self.__maximum_total_head_loss, - network_type=self.gas_network_settings["network_type"], - pressure=parameters[f"{pipe}.pressure"], - ) - ) - - max_head_loss = self._gn_head_loss_class._hn_pipe_head_loss( - pipe, - self, - options, - self.gas_network_settings, - parameters, - max_discharge, - network_type=self.gas_network_settings["network_type"], - pressure=parameters[f"{pipe}.pressure"], - ) - - # Relate the head loss symbol to the pipe's dH symbol. - - # FIXME: Ugly hack. Cold pipes should be modelled completely with - # their own integers as well. - flow_dir = self.__state_vector_scaled( - self._gas_pipe_to_flow_direct_map[pipe], ensemble_member - ) - - # Note that the Big-M should _at least_ cover the maximum - # distance between `head_loss` and `dh`. If `head_loss` can be at - # most 1.0 (= `max_head_loss`), that means our Big-M should be at - # least double (i.e. >= 2.0). And because we do not want Big-Ms to - # be overly tight, we include an additional factor of 2. - big_m = 2.0 * 2.0 * max_head_loss - - constraints.append( - ( - (-dh - head_loss + (1 - flow_dir) * big_m) / big_m, - 0.0, - np.inf, - ) - ) - constraints.append(((dh - head_loss + flow_dir * big_m) / big_m, 0.0, np.inf)) - - return constraints - def path_constraints(self, ensemble_member): """ Here we add all the path constraints to the optimization problem. Please note that the @@ -699,8 +549,13 @@ def path_constraints(self, ensemble_member): constraints.extend( self._gn_head_loss_class._pipe_head_loss_path_constraints(self, ensemble_member) ) - + constraints.extend( + self._gn_head_loss_class._pipe_hydraulic_power_path_constraints( + self, self.__maximum_total_head_loss, ensemble_member + ) + ) constraints.extend(self.__flow_direction_path_constraints(ensemble_member)) + constraints.extend(self.__gas_node_hydraulic_power_mixing_path_constraints(ensemble_member)) return constraints @@ -714,7 +569,11 @@ def constraints(self, ensemble_member): constraints = super().constraints(ensemble_member) if self.gas_network_settings["head_loss_option"] != HeadLossOption.NO_HEADLOSS: - constraints.extend(self._hn_gas_pipe_head_loss_constraints(ensemble_member)) + constraints.extend( + self._gn_head_loss_class._pipe_head_loss_constraints( + self, self.__maximum_total_head_loss, ensemble_member + ) + ) return constraints @@ -793,7 +652,7 @@ def priority_completed(self, priority): parameters, q, None, - network_type=self.gas_network_settings["network_type"], + # network_type=self.gas_network_settings["network_type"], pressure=parameters[f"{pipe}.pressure"], ) if ( @@ -802,7 +661,7 @@ def priority_completed(self, priority): ): head_loss = np.abs(results[f"{pipe}.dH"][inds]) else: - head_loss = results[self._hn_gas_pipe_to_head_loss_map[pipe]][inds] + head_loss = results[self._gn_pipe_to_head_loss_map[pipe]][inds] if not np.allclose(head_loss, head_loss_target, rtol=rtol, atol=atol): logger.warning( diff --git a/src/mesido/head_loss_class.py b/src/mesido/head_loss_class.py index be9a6ee72..ae2b64365 100644 --- a/src/mesido/head_loss_class.py +++ b/src/mesido/head_loss_class.py @@ -19,6 +19,19 @@ logger = logging.getLogger("mesido") +def _state_vector_scaled(optimization_problem, variable, ensemble_member): + """ + This functions returns the casadi symbols scaled with their nominal for the entire time + horizon. + """ + canonical, sign = optimization_problem.alias_relation.canonical_signed(variable) + return ( + optimization_problem.state_vector(canonical, ensemble_member) + * optimization_problem.variable_nominal(canonical) + * sign + ) + + class HeadLossOption(IntEnum): r""" Enumeration for the possible options to take head loss in pipes into account. @@ -149,7 +162,7 @@ def function(self, optimization_problem, ensemble_member): elif self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS: for p in optimization_problem.energy_system_components.get("gas_pipe", []): if not parameters[f"{p}.length"] == 0.0: - sym_name = optimization_problem._hn_gas_pipe_to_head_loss_map[p] + sym_name = optimization_problem._gn_pipe_to_head_loss_map[p] sum_ += optimization_problem.state(sym_name) return sum_ @@ -369,7 +382,7 @@ def initialize_variables_nominals_and_bounds( network_settings, parameters, q_nominal, - network_type=self.network_settings["network_type"], + # network_type=self.network_settings["network_type"], pressure=parameters[f"{pipe_name}.pressure"], ) @@ -495,7 +508,7 @@ def _hn_pipe_head_loss( is_disconnected: Union[ca.MX, int] = 0, big_m: Optional[float] = None, pipe_class: Optional[PipeClass] = None, - network_type: NetworkSettings = NetworkSettings.NETWORK_TYPE_HEAT, + # network_type: NetworkSettings = NetworkSettings.NETWORK_TYPE_HEAT, pressure: float = 0.0, ) -> Union[List[Tuple[ca.MX, BT, BT]], float, np.ndarray]: """ @@ -522,6 +535,8 @@ def _hn_pipe_head_loss( itself then also needs to be passed via the `big_m` keyword argument. """ + network_type = network_settings["network_type"] + if head_loss is None and dh is None: symbolic = False else: @@ -573,7 +588,7 @@ def _hn_pipe_head_loss( maximum_velocity = network_settings["maximum_velocity"] try: - # Only milp networks have a temperature attribute in the pipes, otherwise we will use + # Only heat networks have a temperature attribute in the pipes, otherwise we will use # a default temperature for gas networks temperature = parameters[f"{pipe}.temperature"] for _id, attr in optimization_problem.temperature_carriers().items(): @@ -874,7 +889,6 @@ def _hydraulic_power( big_m: Optional[float] = None, pipe_class: Optional[PipeClass] = None, flow_dir: Union[ca.MX, int] = 0, - network_type: NetworkSettings = NetworkSettings.NETWORK_TYPE_HEAT, pressure: float = 0.0, ) -> Union[List[Tuple[ca.MX, BT, BT]], float, np.ndarray]: """ @@ -904,6 +918,8 @@ def _hydraulic_power( itself then also needs to be passed via the `big_m` keyword argument. """ + network_type = network_settings["network_type"] + if hydraulic_power is None: symbolic = False else: @@ -943,16 +959,22 @@ def _hydraulic_power( assert big_m != 0.0 wall_roughness = energy_system_options["wall_roughness"] - temperature = parameters[f"{pipe}.temperature"] - for _id, attr in optimization_problem.temperature_carriers().items(): - if ( - parameters[f"{pipe}.carrier_id"] == attr["id_number_mapping"] - and len(optimization_problem.temperature_regimes(parameters[f"{pipe}.carrier_id"])) - > 0 - ): - temperature = min( - optimization_problem.temperature_regimes(parameters[f"{pipe}.carrier_id"]) - ) + if network_type == NetworkSettings.NETWORK_TYPE_HEAT: + temperature = parameters[f"{pipe}.temperature"] + for _id, attr in optimization_problem.temperature_carriers().items(): + if ( + parameters[f"{pipe}.carrier_id"] == attr["id_number_mapping"] + and len( + optimization_problem.temperature_regimes(parameters[f"{pipe}.carrier_id"]) + ) + > 0 + ): + temperature = min( + optimization_problem.temperature_regimes(parameters[f"{pipe}.carrier_id"]) + ) + else: + # A default temperature of 20 degrees celcius is used for gas networks. + temperature = 20.0 rho = parameters[f"{pipe}.rho"] if pipe_class is not None: @@ -1134,11 +1156,17 @@ def _pipe_head_loss_path_constraints(self, optimization_problem, _ensemble_membe """ constraints = [] - pipe_type = "heat_pipe" - commodity = "Heat" - if len(optimization_problem.energy_system_components.get(pipe_type, [])) == 0: + if self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HEAT: + commodity = "Heat" + pipe_type = "heat_pipe" + elif self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS: + commodity = "Gas" pipe_type = "gas_pipe" - commodity = NetworkSettings.NETWORK_TYPE_GAS + else: + raise Exception( + f"hydraulic power can not be calculated for network type of " + f"{self.network_settings['network_type']}" + ) for pipe in optimization_problem.energy_system_components.get(pipe_type, []): dh = optimization_problem.state(f"{pipe}.dH") @@ -1178,3 +1206,365 @@ def _demand_head_loss_path_constraints(self, optimization_problem, _ensemble_mem ) return constraints + + def _pipe_head_loss_constraints( + self, optimization_problem, _maximum_total_head_loss, ensemble_member + ): + """ + This function adds the head loss constraints for pipes. There are two options namely with + and without pipe class optimization. In both cases we assume that disconnected pipes, pipes + without flow have no head loss. + + Under pipe-class optimization the head loss constraints per pipe class are added and + applied with the big_m method (is_topo_disconnected) to only activate the correct + constraints. + + Under constant pipe class constraints for only one diameter are added. + """ + constraints = [] + + options = optimization_problem.energy_system_options() + parameters = optimization_problem.parameters(ensemble_member) + components = optimization_problem.energy_system_components + # Set the head loss according to the direction in the pipes. Note that + # the `.__head_loss` symbol is always positive by definition, but that + # `.dH` is not (positive when flow is negative, and vice versa). + # If the pipe is disconnected, we leave the .__head_loss symbol free + # (and it has no physical meaning). We also do not set any discharge + # relationship in this case (but dH is still equal to Out - In of + # course). + + if self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HEAT: + commodity = "heat" + n_type = "hn" + elif self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS: + commodity = "gas" + n_type = "gn" + else: + raise Exception( + f"hydraulic power can not be calculated for network type of " + f"{self.network_settings['network_type']}" + ) + pipe_type = f"{commodity}_pipe" + + pipe_head_loss_map = getattr(optimization_problem, f"_{n_type}_pipe_to_head_loss_map") + is_disconnected_map = getattr(optimization_problem, f"_{commodity}_pipe_disconnect_map") + pipe_topo_class_map = getattr( + optimization_problem, f"_{commodity}_pipe_topo_pipe_class_map" + ) + pipe_to_flow_direct_map = getattr( + optimization_problem, f"_{commodity}_pipe_to_flow_direct_map" + ) + + for pipe in components.get(pipe_type, []): + if parameters[f"{pipe}.length"] == 0.0: + # If the pipe does not have a control valve, the head loss is + # forced to zero via bounds. If the pipe _does_ have a control + # valve, then there still is no relationship between the + # discharge and the head loss/dH. + continue + + head_loss_sym = pipe_head_loss_map[pipe] + + dh = _state_vector_scaled(optimization_problem, f"{pipe}.dH", ensemble_member) + head_loss = _state_vector_scaled(optimization_problem, head_loss_sym, ensemble_member) + discharge = _state_vector_scaled(optimization_problem, f"{pipe}.Q", ensemble_member) + + # We need to make sure the dH is decoupled from the discharge when + # the pipe is disconnected. Simply put, this means making the + # below constraints trivial. + is_disconnected_var = is_disconnected_map.get(pipe) + + if is_disconnected_var is None: + is_disconnected = 0.0 + else: + is_disconnected = _state_vector_scaled( + optimization_problem, is_disconnected_var, ensemble_member + ) + + max_discharge = None + max_head_loss = -np.inf + + if pipe in pipe_topo_class_map: + # Multiple diameter options for this pipe + pipe_classes = pipe_topo_class_map[pipe] + max_discharge = max(c.maximum_discharge for c in pipe_classes) + + for pc, pc_var_name in pipe_classes.items(): + if pc.inner_diameter == 0.0: + continue + + head_loss_max_discharge = self._hn_pipe_head_loss( + pipe, + optimization_problem, + options, + self.network_settings, + parameters, + max_discharge, + pipe_class=pc, + pressure=parameters[f"{pipe}.pressure"], + ) + + if self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HEAT: + big_m = max(1.1 * _maximum_total_head_loss, 2 * head_loss_max_discharge) + elif self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS: + big_m = max( + 2.0 * 2.0 * _maximum_total_head_loss, 2 * head_loss_max_discharge + ) + else: + raise RuntimeError( + f"{self.network_settings['network_type']} is not of type Gas or Heat " + f"thus no maximum total headloss is given" + ) + + is_topo_disconnected = 1 - optimization_problem.extra_variable( + pc_var_name, ensemble_member + ) + is_topo_disconnected = ca.repmat(is_topo_disconnected, dh.size1()) + + # Note that we add the two booleans `is_disconnected` and + # `is_topo_disconnected`. This is allowed because of the way the + # resulting expression is used in the Big-M formulation. We only care + # that the expression (i.e. a single boolean or the sum of the two + # booleans) is either 0 when the pipe is connected, or >= 1 when it + # is disconnected. + constraints.extend( + self._hn_pipe_head_loss( + pipe, + optimization_problem, + options, + self.network_settings, + parameters, + discharge, + head_loss, + dh, + is_disconnected + is_topo_disconnected, + big_m, + pc, + pressure=parameters[f"{pipe}.pressure"], + ) + ) + + # Contrary to the Big-M calculation above, the relation + # between dH and the head loss symbol requires the + # maximum head loss that can be realized effectively. So + # we pass the current pipe class's maximum discharge. + max_head_loss = max( + max_head_loss, + self._hn_pipe_head_loss( + pipe, + optimization_problem, + options, + self.network_settings, + parameters, + pc.maximum_discharge, + pipe_class=pc, + pressure=parameters[f"{pipe}.pressure"], + ), + ) + else: + # Only a single diameter for this pipe. Note that we rely on + # the diameter parameter being overridden automatically if a + # single pipe class is set by the user. + area = parameters[f"{pipe}.area"] + max_discharge = self.network_settings["maximum_velocity"] * area + + is_topo_disconnected = int(parameters[f"{pipe}.diameter"] == 0.0) + + if self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HEAT: + big_m = 1.1 * _maximum_total_head_loss + elif self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS: + big_m = 2.0 * 2.0 * _maximum_total_head_loss + else: + raise RuntimeError( + f"{self.network_settings['network_type']} is not of type Gas or Heat thus " + f"no maximum total headloss is given" + ) + + constraints.extend( + self._hn_pipe_head_loss( + pipe, + optimization_problem, + options, + self.network_settings, + parameters, + discharge, + head_loss, + dh, + is_disconnected + is_topo_disconnected, + big_m=big_m, + pressure=parameters[f"{pipe}.pressure"], + ) + ) + + max_head_loss = self._hn_pipe_head_loss( + pipe, + optimization_problem, + options, + self.network_settings, + parameters, + max_discharge, + pressure=parameters[f"{pipe}.pressure"], + ) + + # Relate the head loss symbol to the pipe's dH symbol. + + # FIXME: Ugly hack. Cold pipes should be modelled completely with + # their own integers as well. + flow_dir = _state_vector_scaled( + optimization_problem, pipe_to_flow_direct_map[pipe], ensemble_member + ) + + # Note that the Big-M should _at least_ cover the maximum + # distance between `head_loss` and `dh`. If `head_loss` can be at + # most 1.0 (= `max_head_loss`), that means our Big-M should be at + # least double (i.e. >= 2.0). And because we do not want Big-Ms to + # be overly tight, we include an additional factor of 2. + big_m = 2 * 2 * max_head_loss + + constraints.append( + ( + (-dh - head_loss + (1 - flow_dir) * big_m) / big_m, + 0.0, + np.inf, + ) + ) + constraints.append(((dh - head_loss + flow_dir * big_m) / big_m, 0.0, np.inf)) + + return constraints + + def _pipe_hydraulic_power_path_constraints( + self, optimization_problem, _maximum_total_head_loss, ensemble_member + ): + """ + This function adds constraints to compute the hydraulic power that is needed to realize the + flow, compensating the pressure drop through the pipe. Similar to the head loss constraints + we allow two supported methods. 1) a single linear line between 0 to max velocity. 2) A + multiple line inequality approach where one can use the minimize_head_losses == True option + to drag down the solution to the actual physical solution. + + Note that the linearizations are made separately from the pressure drop constraints, this is + done to avoid "stacked" overestimations. + """ + constraints = [] + options = optimization_problem.energy_system_options() + + if self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HEAT: + commodity = "heat" + elif self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS: + commodity = "gas" + else: + raise Exception( + f"hydraulic power can not be calculated for network type of " + f"{self.network_settings['network_type']}" + ) + pipe_type = f"{commodity}_pipe" + + pipe_topo_class_map = getattr( + optimization_problem, f"_{commodity}_pipe_topo_pipe_class_map" + ) + + if self.network_settings["head_loss_option"] != HeadLossOption.NO_HEADLOSS: + parameters = optimization_problem.parameters(ensemble_member) + components = optimization_problem.energy_system_components + + for pipe in components.get(pipe_type, []): + if parameters[f"{pipe}.length"] == 0.0: + # If the pipe does not have a control valve, the head loss is + # forced to zero via bounds. If the pipe _does_ have a control + # valve, then there still is no relationship between the + # discharge and the hydraulic_power. + continue + + # TODO: I think the upcomming 8 lines can be removed (e.g. head_loss_option) + if pipe_type == "heat_pipe": + head_loss_option = optimization_problem._hn_get_pipe_head_loss_option( + pipe, self.network_settings, parameters + ) + else: + head_loss_option = self.network_settings["head_loss_option"] + assert ( + head_loss_option != HeadLossOption.NO_HEADLOSS + ), "This method should be skipped when NO_HEADLOSS is set." + + discharge = optimization_problem.state(f"{pipe}.Q") + hydraulic_power = optimization_problem.state(f"{pipe}.Hydraulic_power") + rho = parameters[f"{pipe}.rho"] + + # 0: pipe is connected, 1: pipe is disconnected + is_disconnected_var = getattr( + optimization_problem, f"_{commodity}_pipe_disconnect_map" + ).get(pipe) + # optimization_problem._pipe_disconnect_map.get(pipe) + if is_disconnected_var is None: + is_disconnected = 0.0 + else: + is_disconnected = optimization_problem.state(is_disconnected_var) + + flow_dir_var = getattr( + optimization_problem, f"_{commodity}_pipe_to_flow_direct_map" + ).get(pipe) + flow_dir = optimization_problem.state( + flow_dir_var + ) # 0/1: negative/positive flow direction + + if pipe in pipe_topo_class_map: + # Multiple diameter options for this pipe + pipe_classes = pipe_topo_class_map[pipe] + max_discharge = max(c.maximum_discharge for c in pipe_classes) + for pc, pc_var_name in pipe_classes.items(): + if pc.inner_diameter == 0.0: + continue + + # Calc max hydraulic power based on maximum_total_head_loss = + # f(max_sum_dh_pipes, max_dh_network_options) + max_total_hydraulic_power = 2.0 * ( + rho * GRAVITATIONAL_CONSTANT * _maximum_total_head_loss * max_discharge + ) + + # is_topo_disconnected - 0: pipe selected, 1: pipe disconnected/not selected + # self.__pipe_topo_pipe_class_var - value 0: pipe is not selected, 1: pipe + # is selected + is_topo_disconnected = 1 - optimization_problem.variable(pc_var_name) + + constraints.extend( + self._hydraulic_power( + pipe, + optimization_problem, + options, + self.network_settings, + parameters, + discharge, + hydraulic_power, + is_disconnected=is_topo_disconnected + is_disconnected, + big_m=max_total_hydraulic_power, + pipe_class=pc, + flow_dir=flow_dir, + pressure=parameters[f"{pipe}.pressure"], + ) + ) + else: + is_topo_disconnected = int(parameters[f"{pipe}.diameter"] == 0.0) + max_total_hydraulic_power = 2.0 * ( + rho + * GRAVITATIONAL_CONSTANT + * _maximum_total_head_loss + * parameters[f"{pipe}.area"] + * self.network_settings["maximum_velocity"] + ) + constraints.extend( + self._hydraulic_power( + pipe, + optimization_problem, + options, + self.network_settings, + parameters, + discharge, + hydraulic_power, + is_disconnected=is_disconnected + is_topo_disconnected, + big_m=max_total_hydraulic_power, + flow_dir=flow_dir, + pressure=parameters[f"{pipe}.pressure"], + ) + ) + return constraints diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 0b1affcc1..5eee05803 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -6,7 +6,6 @@ from mesido._heat_loss_u_values_pipe import pipe_heat_loss from mesido.base_component_type_mixin import BaseComponentTypeMixin -from mesido.constants import GRAVITATIONAL_CONSTANT from mesido.demand_insulation_class import DemandInsulationClass from mesido.head_loss_class import HeadLossClass, HeadLossOption from mesido.network_common import NetworkSettings @@ -117,14 +116,14 @@ def __init__(self, *args, **kwargs): self._hn_pipe_to_head_loss_map = {} # Boolean path-variable for the direction of the flow, inport to outport is positive flow. - self.__flow_direct_var = {} - self.__flow_direct_bounds = {} - self._pipe_to_flow_direct_map = {} + self.__heat_flow_direct_var = {} + self.__heat_flow_direct_bounds = {} + self._heat_pipe_to_flow_direct_map = {} # Boolean path-variable to determine whether flow is going through a pipe. - self.__pipe_disconnect_var = {} - self.__pipe_disconnect_var_bounds = {} - self._pipe_disconnect_map = {} + self.__heat_pipe_disconnect_var = {} + self.__heat_pipe_disconnect_var_bounds = {} + self._heat_pipe_disconnect_map = {} # Boolean path-variable for the status of the check valve self.__check_valve_status_var = {} @@ -200,7 +199,7 @@ def __init__(self, *args, **kwargs): # these variables do not exist here, we instead only instantiate the maps to allow the # physics mixin to have the logic in place. The creation of the actual variables and filling # of these maps is in the AssetSizingMixin. - self._pipe_topo_pipe_class_map = {} + self._heat_pipe_topo_pipe_class_map = {} super().__init__(*args, **kwargs) @@ -296,8 +295,8 @@ def _get_min_bound(bound): else: flow_dir_var = f"{pipe_name}__flow_direct_var" - self._pipe_to_flow_direct_map[pipe_name] = flow_dir_var - self.__flow_direct_var[flow_dir_var] = ca.MX.sym(flow_dir_var) + self._heat_pipe_to_flow_direct_map[pipe_name] = flow_dir_var + self.__heat_flow_direct_var[flow_dir_var] = ca.MX.sym(flow_dir_var) # Fix the directions that are already implied by the bounds on heat # Nonnegative heat implies that flow direction Boolean is equal to one. @@ -311,13 +310,13 @@ def _get_min_bound(bound): if (heat_in_lb >= 0.0 and heat_in_ub >= 0.0) or ( heat_out_lb >= 0.0 and heat_out_ub >= 0.0 ): - self.__flow_direct_bounds[flow_dir_var] = (1.0, 1.0) + self.__heat_flow_direct_bounds[flow_dir_var] = (1.0, 1.0) elif (heat_in_lb <= 0.0 and heat_in_ub <= 0.0) or ( heat_out_lb <= 0.0 and heat_out_ub <= 0.0 ): - self.__flow_direct_bounds[flow_dir_var] = (0.0, 0.0) + self.__heat_flow_direct_bounds[flow_dir_var] = (0.0, 0.0) else: - self.__flow_direct_bounds[flow_dir_var] = (0.0, 1.0) + self.__heat_flow_direct_bounds[flow_dir_var] = (0.0, 1.0) if parameters[f"{pipe_name}.disconnectable"]: neighbour = self.has_related_pipe(pipe_name) @@ -326,9 +325,9 @@ def _get_min_bound(bound): else: disconnected_var = f"{pipe_name}__is_disconnected" - self._pipe_disconnect_map[pipe_name] = disconnected_var - self.__pipe_disconnect_var[disconnected_var] = ca.MX.sym(disconnected_var) - self.__pipe_disconnect_var_bounds[disconnected_var] = (0.0, 1.0) + self._heat_pipe_disconnect_map[pipe_name] = disconnected_var + self.__heat_pipe_disconnect_var[disconnected_var] = ca.MX.sym(disconnected_var) + self.__heat_pipe_disconnect_var_bounds[disconnected_var] = (0.0, 1.0) if heat_in_ub <= 0.0 and heat_out_lb >= 0.0: raise Exception(f"Heat flow rate in/out of pipe '{pipe_name}' cannot be zero.") @@ -636,8 +635,8 @@ def path_variables(self): """ variables = super().path_variables.copy() variables.extend(self.__pipe_head_loss_var.values()) - variables.extend(self.__flow_direct_var.values()) - variables.extend(self.__pipe_disconnect_var.values()) + variables.extend(self.__heat_flow_direct_var.values()) + variables.extend(self.__heat_pipe_disconnect_var.values()) variables.extend(self.__check_valve_status_var.values()) variables.extend(self.__control_valve_direction_var.values()) variables.extend(self.__demand_insulation_class_var.values()) @@ -658,8 +657,8 @@ def variable_is_discrete(self, variable): All variables that only can take integer values should be added to this function. """ if ( - variable in self.__flow_direct_var - or variable in self.__pipe_disconnect_var + variable in self.__heat_flow_direct_var + or variable in self.__heat_pipe_disconnect_var or variable in self.__check_valve_status_var or variable in self.__control_valve_direction_var or variable in self.__demand_insulation_class_var @@ -694,8 +693,8 @@ def bounds(self): the HeatMixin. """ bounds = super().bounds() - bounds.update(self.__flow_direct_bounds) - bounds.update(self.__pipe_disconnect_var_bounds) + bounds.update(self.__heat_flow_direct_bounds) + bounds.update(self.__heat_pipe_disconnect_var_bounds) bounds.update(self.__check_valve_status_var_bounds) bounds.update(self.__control_valve_direction_var_bounds) bounds.update(self.__buffer_t0_bounds) @@ -991,7 +990,7 @@ def __pipe_rate_heat_change_constraints(self, ensemble_member): if np.isfinite(t_change) and np.isfinite(q_change): assert ( - not self._pipe_topo_pipe_class_map + not self._heat_pipe_topo_pipe_class_map ), "heat rate change constraints not allowed with topology optimization" for p in self.energy_system_components.get("heat_pipe", []): @@ -1136,7 +1135,7 @@ def __heat_loss_path_constraints(self, ensemble_member): ) ) - is_disconnected_var = self._pipe_disconnect_map.get(p) + is_disconnected_var = self._heat_pipe_disconnect_map.get(p) if is_disconnected_var is None: is_disconnected = 0.0 @@ -1225,10 +1224,10 @@ def __flow_direction_path_constraints(self, ensemble_member): # Also ensure that the discharge has the same sign as the heat. for p in self.energy_system_components.get("heat_pipe", []): - flow_dir_var = self._pipe_to_flow_direct_map[p] + flow_dir_var = self._heat_pipe_to_flow_direct_map[p] flow_dir = self.state(flow_dir_var) - is_disconnected_var = self._pipe_disconnect_map.get(p) + is_disconnected_var = self._heat_pipe_disconnect_map.get(p) if is_disconnected_var is None: is_disconnected = 0.0 @@ -1240,9 +1239,9 @@ def __flow_direction_path_constraints(self, ensemble_member): heat_out = self.state(f"{p}.HeatOut.Heat") try: - pipe_classes = self._pipe_topo_pipe_class_map[p].keys() + pipe_classes = self._heat_pipe_topo_pipe_class_map[p].keys() maximum_discharge = max([c.maximum_discharge for c in pipe_classes]) - var_names = self._pipe_topo_pipe_class_map[p].values() + var_names = self._heat_pipe_topo_pipe_class_map[p].values() dn_none = 0.0 for i, pc in enumerate(pipe_classes): if pc.inner_diameter == 0.0: @@ -1352,10 +1351,10 @@ def __flow_direction_path_constraints(self, ensemble_member): len({p for p in pipes if self.is_cold_pipe(p)}) == 0 ), "Pipe series for Heat models should only contain hot pipes" - base_flow_dir_var = self.state(self._pipe_to_flow_direct_map[pipes[0]]) + base_flow_dir_var = self.state(self._heat_pipe_to_flow_direct_map[pipes[0]]) for p in pipes[1:]: - flow_dir_var = self.state(self._pipe_to_flow_direct_map[p]) + flow_dir_var = self.state(self._heat_pipe_to_flow_direct_map[p]) constraints.append((base_flow_dir_var - flow_dir_var, 0.0, 0.0)) return constraints @@ -1560,115 +1559,6 @@ def __cold_demand_heat_to_discharge_path_constraints(self, ensemble_member): return constraints - def __pipe_hydraulic_power_path_constraints(self, ensemble_member): - """ - This function adds constraints to compute the hydraulic power that is needed to realize the - flow, compensating the pressure drop through the pipe. Similar to the head loss constraints - we allow two supported methods. 1) a single linear line between 0 to max velocity. 2) A - multiple line inequality approach where one can use the minimize_head_losses == True option - to drag down the solution to the actual physical solution. - - Note that the linearizations are made separately from the pressure drop constraints, this is - done to avoid "stacked" overestimations. - """ - constraints = [] - options = self.energy_system_options() - - if self.heat_network_settings["head_loss_option"] != HeadLossOption.NO_HEADLOSS: - parameters = self.parameters(ensemble_member) - components = self.energy_system_components - - for pipe in components.get("heat_pipe", []): - if parameters[f"{pipe}.length"] == 0.0: - # If the pipe does not have a control valve, the head loss is - # forced to zero via bounds. If the pipe _does_ have a control - # valve, then there still is no relationship between the - # discharge and the hydraulic_power. - continue - - head_loss_option = self._hn_get_pipe_head_loss_option( - pipe, self.heat_network_settings, parameters - ) - assert ( - head_loss_option != HeadLossOption.NO_HEADLOSS - ), "This method should be skipped when NO_HEADLOSS is set." - - discharge = self.state(f"{pipe}.Q") - hydraulic_power = self.state(f"{pipe}.Hydraulic_power") - rho = parameters[f"{pipe}.rho"] - - # 0: pipe is connected, 1: pipe is disconnected - is_disconnected_var = self._pipe_disconnect_map.get(pipe) - if is_disconnected_var is None: - is_disconnected = 0.0 - else: - is_disconnected = self.state(is_disconnected_var) - - flow_dir_var = self._pipe_to_flow_direct_map[pipe] - flow_dir = self.state(flow_dir_var) # 0/1: negative/positive flow direction - - if pipe in self._pipe_topo_pipe_class_map: - # Multiple diameter options for this pipe - pipe_classes = self._pipe_topo_pipe_class_map[pipe] - max_discharge = max(c.maximum_discharge for c in pipe_classes) - for pc, pc_var_name in pipe_classes.items(): - if pc.inner_diameter == 0.0: - continue - - # Calc max hydraulic power based on maximum_total_head_loss = - # f(max_sum_dh_pipes, max_dh_network_options) - max_total_hydraulic_power = 2.0 * ( - rho - * GRAVITATIONAL_CONSTANT - * self.__maximum_total_head_loss - * max_discharge - ) - - # is_topo_disconnected - 0: pipe selected, 1: pipe disconnected/not selected - # self.__pipe_topo_pipe_class_var - value 0: pipe is not selected, 1: pipe - # is selected - is_topo_disconnected = 1 - self.variable(pc_var_name) - - constraints.extend( - self._hn_head_loss_class._hydraulic_power( - pipe, - self, - options, - self.heat_network_settings, - parameters, - discharge, - hydraulic_power, - is_disconnected=is_topo_disconnected + is_disconnected, - big_m=max_total_hydraulic_power, - pipe_class=pc, - flow_dir=flow_dir, - ) - ) - else: - is_topo_disconnected = int(parameters[f"{pipe}.diameter"] == 0.0) - max_total_hydraulic_power = 2.0 * ( - rho - * GRAVITATIONAL_CONSTANT - * self.__maximum_total_head_loss - * parameters[f"{pipe}.area"] - * self.heat_network_settings["maximum_velocity"] - ) - constraints.extend( - self._hn_head_loss_class._hydraulic_power( - pipe, - self, - options, - self.heat_network_settings, - parameters, - discharge, - hydraulic_power, - is_disconnected=is_disconnected + is_topo_disconnected, - big_m=max_total_hydraulic_power, - flow_dir=flow_dir, - ) - ) - return constraints - def __pipe_heat_to_discharge_path_constraints(self, ensemble_member): """ This function adds constraints linking the flow to the thermal power at the pipe assets. @@ -1705,7 +1595,7 @@ def __pipe_heat_to_discharge_path_constraints(self, ensemble_member): # temperature instead, as the line can heat up to at maximum the ground temperature. temp = max(parameters[f"{p}.temperature"], parameters[f"{p}.T_ground"]) - flow_dir_var = self._pipe_to_flow_direct_map[p] + flow_dir_var = self._heat_pipe_to_flow_direct_map[p] flow_dir = self.state(flow_dir_var) scaled_heat_in = self.state(f"{p}.HeatIn.Heat") # * heat_to_discharge_fac scaled_heat_out = self.state(f"{p}.HeatOut.Heat") # * heat_to_discharge_fac @@ -1868,7 +1758,7 @@ def __ates_temperature_path_constraints(self, ensemble_member): if ates_asset in self.energy_system_components.get("low_temperature_ates", []): continue - flow_dir_var = self._pipe_to_flow_direct_map[hot_pipe] + flow_dir_var = self._heat_pipe_to_flow_direct_map[hot_pipe] is_buffer_charging = self.state(flow_dir_var) * _hot_pipe_orientation sup_carrier = parameters[f"{ates_asset}.T_supply_id"] @@ -2152,7 +2042,7 @@ def __ates_temperature_changing_path_constraints(self, ensemble_member): f"{ates}.Temperature_change_charging" ) - flow_dir_var = self._pipe_to_flow_direct_map[hot_pipe] + flow_dir_var = self._heat_pipe_to_flow_direct_map[hot_pipe] is_buffer_charging = self.state(flow_dir_var) * _hot_pipe_orientation heat_stored_max = bounds[f"{ates}.Stored_heat"][1] heat_ates_max = bounds[f"{ates}.Heat_ates"][1] @@ -2395,7 +2285,7 @@ def __storage_heat_to_discharge_path_constraints(self, ensemble_member): # extracted from the buffer. We accomplish this by disabling one of # the constraints with a boolean. Note that `discharge` and `heat_hot` # are guaranteed to have the same sign. - flow_dir_var = self._pipe_to_flow_direct_map[hot_pipe] + flow_dir_var = self._heat_pipe_to_flow_direct_map[hot_pipe] is_buffer_charging = self.state(flow_dir_var) big_m = 2.0 * np.max( @@ -2879,7 +2769,7 @@ def _hn_pipe_nominal_discharge(self, energy_system_options, parameters, pipe: st This functions returns a nominal for the discharge of pipes under topology optimization. """ try: - pipe_classes = self._pipe_topo_pipe_class_map[pipe].keys() + pipe_classes = self._heat_pipe_topo_pipe_class_map[pipe].keys() area = np.median(c.area for c in pipe_classes) except KeyError: area = parameters[f"{pipe}.area"] @@ -2904,174 +2794,6 @@ def _hn_get_pipe_head_loss_option(pipe, heat_network_settings, parameters): return head_loss_option - def _hn_pipe_head_loss_constraints(self, ensemble_member): - """ - This function adds the head loss constraints for pipes. There are two options namely with - and without pipe class optimization. In both cases we assume that disconnected pipes, pipes - without flow have no head loss. - - Under pipe-class optimization the head loss constraints per pipe class are added and - applied with the big_m method (is_topo_disconnected) to only activate the correct - constraints. - - Under constant pipe class constraints for only one diameter are added. - """ - constraints = [] - - options = self.energy_system_options() - parameters = self.parameters(ensemble_member) - components = self.energy_system_components - # Set the head loss according to the direction in the pipes. Note that - # the `.__head_loss` symbol is always positive by definition, but that - # `.dH` is not (positive when flow is negative, and vice versa). - # If the pipe is disconnected, we leave the .__head_loss symbol free - # (and it has no physical meaning). We also do not set any discharge - # relationship in this case (but dH is still equal to Out - In of - # course). - - for pipe in components.get("heat_pipe", []): - if parameters[f"{pipe}.length"] == 0.0: - # If the pipe does not have a control valve, the head loss is - # forced to zero via bounds. If the pipe _does_ have a control - # valve, then there still is no relationship between the - # discharge and the head loss/dH. - continue - - head_loss_sym = self._hn_pipe_to_head_loss_map[pipe] - - dh = self.__state_vector_scaled(f"{pipe}.dH", ensemble_member) - head_loss = self.__state_vector_scaled(head_loss_sym, ensemble_member) - discharge = self.__state_vector_scaled(f"{pipe}.Q", ensemble_member) - - # We need to make sure the dH is decoupled from the discharge when - # the pipe is disconnected. Simply put, this means making the - # below constraints trivial. - is_disconnected_var = self._pipe_disconnect_map.get(pipe) - - if is_disconnected_var is None: - is_disconnected = 0.0 - else: - is_disconnected = self.__state_vector_scaled(is_disconnected_var, ensemble_member) - - max_discharge = None - max_head_loss = -np.inf - - if pipe in self._pipe_topo_pipe_class_map: - # Multiple diameter options for this pipe - pipe_classes = self._pipe_topo_pipe_class_map[pipe] - max_discharge = max(c.maximum_discharge for c in pipe_classes) - - for pc, pc_var_name in pipe_classes.items(): - if pc.inner_diameter == 0.0: - continue - - head_loss_max_discharge = self._hn_head_loss_class._hn_pipe_head_loss( - pipe, - self, - options, - self.heat_network_settings, - parameters, - max_discharge, - pipe_class=pc, - ) - - big_m = max(1.1 * self.__maximum_total_head_loss, 2 * head_loss_max_discharge) - - is_topo_disconnected = 1 - self.extra_variable(pc_var_name, ensemble_member) - is_topo_disconnected = ca.repmat(is_topo_disconnected, dh.size1()) - - # Note that we add the two booleans `is_disconnected` and - # `is_topo_disconnected`. This is allowed because of the way the - # resulting expression is used in the Big-M formulation. We only care - # that the expression (i.e. a single boolean or the sum of the two - # booleans) is either 0 when the pipe is connected, or >= 1 when it - # is disconnected. - constraints.extend( - self._hn_head_loss_class._hn_pipe_head_loss( - pipe, - self, - options, - self.heat_network_settings, - parameters, - discharge, - head_loss, - dh, - is_disconnected + is_topo_disconnected, - big_m, - pc, - ) - ) - - # Contrary to the Big-M calculation above, the relation - # between dH and the head loss symbol requires the - # maximum head loss that can be realized effectively. So - # we pass the current pipe class's maximum discharge. - max_head_loss = max( - max_head_loss, - self._hn_head_loss_class._hn_pipe_head_loss( - pipe, - self, - options, - self.heat_network_settings, - parameters, - pc.maximum_discharge, - pipe_class=pc, - ), - ) - else: - # Only a single diameter for this pipe. Note that we rely on - # the diameter parameter being overridden automatically if a - # single pipe class is set by the user. - area = parameters[f"{pipe}.area"] - max_discharge = self.heat_network_settings["maximum_velocity"] * area - - is_topo_disconnected = int(parameters[f"{pipe}.diameter"] == 0.0) - - constraints.extend( - self._hn_head_loss_class._hn_pipe_head_loss( - pipe, - self, - options, - self.heat_network_settings, - parameters, - discharge, - head_loss, - dh, - is_disconnected + is_topo_disconnected, - 1.1 * self.__maximum_total_head_loss, - ) - ) - - max_head_loss = self._hn_head_loss_class._hn_pipe_head_loss( - pipe, self, options, self.heat_network_settings, parameters, max_discharge - ) - - # Relate the head loss symbol to the pipe's dH symbol. - - # FIXME: Ugly hack. Cold pipes should be modelled completely with - # their own integers as well. - flow_dir = self.__state_vector_scaled( - self._pipe_to_flow_direct_map[pipe], ensemble_member - ) - - # Note that the Big-M should _at least_ cover the maximum - # distance between `head_loss` and `dh`. If `head_loss` can be at - # most 1.0 (= `max_head_loss`), that means our Big-M should be at - # least double (i.e. >= 2.0). And because we do not want Big-Ms to - # be overly tight, we include an additional factor of 2. - big_m = 2 * 2 * max_head_loss - - constraints.append( - ( - (-dh - head_loss + (1 - flow_dir) * big_m) / big_m, - 0.0, - np.inf, - ) - ) - constraints.append(((dh - head_loss + flow_dir * big_m) / big_m, 0.0, np.inf)) - - return constraints - def __check_valve_head_discharge_path_constraints(self, ensemble_member): """ This function adds constraints for the check valve functionality. Meaning that the flow can @@ -3102,7 +2824,7 @@ def __check_valve_head_discharge_path_constraints(self, ensemble_member): for p in connected_pipes: try: - pipe_classes = self._pipe_topo_pipe_class_map[p].keys() + pipe_classes = self._heat_pipe_topo_pipe_class_map[p].keys() max_discharge_pipe = max(c.maximum_discharge for c in pipe_classes) except KeyError: max_discharge_pipe = maximum_velocity * parameters[f"{p}.area"] @@ -3149,7 +2871,7 @@ def __control_valve_head_discharge_path_constraints(self, ensemble_member): for p in connected_pipes: try: - pipe_classes = self._pipe_topo_pipe_class_map[p].keys() + pipe_classes = self._heat_pipe_topo_pipe_class_map[p].keys() max_discharge_pipe = max(c.maximum_discharge for c in pipe_classes) except KeyError: max_discharge_pipe = maximum_velocity * parameters[f"{p}.area"] @@ -3200,7 +2922,7 @@ class and the selected temperature in the network. heat_loss_sym = self.extra_variable(heat_loss_sym_name, ensemble_member) try: heat_losses = self._pipe_heat_losses[p] - pipe_classes = self._pipe_topo_pipe_class_map[p] + pipe_classes = self._heat_pipe_topo_pipe_class_map[p] variables = [ self.extra_variable(var_name, ensemble_member) for pc, var_name in pipe_classes.items() @@ -3506,7 +3228,7 @@ def __storage_hydraulic_power_path_constraints(self, ensemble_member): pump_power = self.state(f"{b}.Pump_power") min_dp = parameters[f"{b}.minimum_pressure_drop"] - flow_dir_var = self._pipe_to_flow_direct_map[hot_pipe] + flow_dir_var = self._heat_pipe_to_flow_direct_map[hot_pipe] is_buffer_charging = self.state(flow_dir_var) * hot_pipe_orientation big_m = ( @@ -3581,7 +3303,11 @@ def path_constraints(self, ensemble_member): self._hn_head_loss_class._demand_head_loss_path_constraints(self, ensemble_member) ) - constraints.extend(self.__pipe_hydraulic_power_path_constraints(ensemble_member)) + constraints.extend( + self._hn_head_loss_class._pipe_hydraulic_power_path_constraints( + self, self.__maximum_total_head_loss, ensemble_member + ) + ) constraints.extend(self.__flow_direction_path_constraints(ensemble_member)) constraints.extend(self.__node_heat_mixing_path_constraints(ensemble_member)) constraints.extend(self.__node_hydraulic_power_mixing_path_constraints(ensemble_member)) @@ -3617,7 +3343,12 @@ def constraints(self, ensemble_member): constraints = super().constraints(ensemble_member) if self.heat_network_settings["head_loss_option"] != HeadLossOption.NO_HEADLOSS: - constraints.extend(self._hn_pipe_head_loss_constraints(ensemble_member)) + # constraints.extend(self._hn_pipe_head_loss_constraints(ensemble_member)) + constraints.extend( + self._hn_head_loss_class._pipe_head_loss_constraints( + self, self.__maximum_total_head_loss, ensemble_member + ) + ) constraints.extend(self.__heat_loss_variable_constraints(ensemble_member)) constraints.extend(self.__pipe_rate_heat_change_constraints(ensemble_member)) @@ -3793,7 +3524,7 @@ def post(self): q = results[f"{p}.Q"] try: - is_disconnected = np.round(results[self._pipe_disconnect_map[p]]) + is_disconnected = np.round(results[self._heat_pipe_disconnect_map[p]]) except KeyError: is_disconnected = np.zeros_like(q) @@ -3813,9 +3544,9 @@ def post(self): q = results[f"{p}.Q"] v = q / area - flow_dir = np.round(results[self._pipe_to_flow_direct_map[p]]) + flow_dir = np.round(results[self._heat_pipe_to_flow_direct_map[p]]) try: - is_disconnected = np.round(results[self._pipe_disconnect_map[p]]) + is_disconnected = np.round(results[self._heat_pipe_disconnect_map[p]]) except KeyError: is_disconnected = np.zeros_like(q) diff --git a/src/mesido/pycml/component_library/milp/gas/gas_base.py b/src/mesido/pycml/component_library/milp/gas/gas_base.py index 3f7f1ead3..33668fe2b 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_base.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_base.py @@ -18,6 +18,7 @@ def __init__(self, name, **modifiers): self.add_variable(Variable, "Q_shadow") self.add_variable(Variable, "mass_flow") # [g/s] self.add_variable(Variable, "H") # [m] + self.add_variable(Variable, "Hydraulic_power") # [W] class GasTwoPort(GasComponent): diff --git a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py index 52a90ca0b..cca6be2a2 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py @@ -20,6 +20,7 @@ def __init__(self, name, **modifiers): self.v_max = 15.0 self.density = 2.5e3 # [g/m3] + self.rho = self.density self.diameter = nan self.area = 0.25 * pi * self.diameter**2 self.Q_nominal = self.v_max / 2.0 * self.area @@ -44,3 +45,20 @@ def __init__(self, name, **modifiers): ) # # shadow Q for aliases self.add_equation(((self.GasOut.Q_shadow - (self.GasIn.Q_shadow - 1.0e-3)))) + + # Hydraulic power + # TODO replace value + # rho * ff * length * area / 2 / diameter * velocity**3 + ff = 0.02 # Order of magnitude expected with 0.05-2.5m/s in 20mm-1200mm diameter pipe + velo = self.Q_nominal / self.area + self.Hydraulic_power_nominal = ( + self.rho * ff * max(self.length, 1.0) * pi * self.area / self.diameter / 2.0 * velo**3 + ) + self.add_variable( + Variable, "Hydraulic_power", min=0.0, nominal=self.Hydraulic_power_nominal + ) # [W] + + self.add_equation( + (self.Hydraulic_power - (self.GasIn.Hydraulic_power - self.GasOut.Hydraulic_power)) + / (self.pressure * self.Q_nominal * self.Hydraulic_power_nominal) ** 0.5 + ) diff --git a/src/mesido/techno_economic_mixin.py b/src/mesido/techno_economic_mixin.py index 23c007dec..1a29cf093 100644 --- a/src/mesido/techno_economic_mixin.py +++ b/src/mesido/techno_economic_mixin.py @@ -54,7 +54,7 @@ def get_aggregation_count_max(self, asset_name): return self.bounds()[self._asset_aggregation_count_var_map[asset_name]][1] def get_pipe_class_map(self): - return self._pipe_topo_pipe_class_map + return self._heat_pipe_topo_pipe_class_map def get_gas_pipe_class_map(self): return self._gas_pipe_topo_pipe_class_map @@ -63,7 +63,7 @@ def get_electricity_cable_class_map(self): return self._electricity_cable_topo_cable_class_map def get_pipe_investment_cost_coefficient(self, asset_name, ensemble_member): - return self.extra_variable(self._pipe_topo_cost_map[asset_name], ensemble_member) + return self.extra_variable(self._heat_pipe_topo_cost_map[asset_name], ensemble_member) def get_electricity_carriers(self): return self.electricity_carriers() diff --git a/tests/models/emerge/src/example.py b/tests/models/emerge/src/example.py index db2ee38fc..a844ba9b9 100644 --- a/tests/models/emerge/src/example.py +++ b/tests/models/emerge/src/example.py @@ -1,4 +1,4 @@ -import os +import time import casadi as ca @@ -282,47 +282,51 @@ def post(self): super().post() # Optimized ESDL - self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) - - self._save_json = False - - if os.path.exists(self.output_folder) and self._save_json: - self._write_json_output() - - results = self.extract_results() - - for _type, assets in self.energy_system_components.items(): - for asset in assets: - print("----------------------------------") - print(f"{asset} financials:") - try: - print(f"revenue of {asset} in MEUR/day: ", results[f"{asset}__revenue"] / 1e6) - except KeyError: - print(f"{asset} does not have a revenue") - pass - try: - print( - f"fixed operational costs of {asset} in MEUR/yr : ", - results[f"{asset}__fixed_operational_cost"] / 1e6, - ) - print( - f"variable operational costs of {asset} : ", - results[f"{asset}__variable_operational_cost"] / 1e6, - ) # not yet all included in financialmixin - print(f"max size of {asset} : ", results[f"{asset}__max_size"]) - except KeyError: - print(f"{asset} does not have a costs") - pass + # self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) + # + # self._save_json = False + # + # if os.path.exists(self.output_folder) and self._save_json: + # self._write_json_output() + # + # results = self.extract_results() + # + # for _type, assets in self.energy_system_components.items(): + # for asset in assets: + # print("----------------------------------") + # print(f"{asset} financials:") + # try: + # print(f"revenue of {asset} in MEUR/day: ", results[f"{asset}__revenue"] / 1e6) + # except KeyError: + # print(f"{asset} does not have a revenue") + # pass + # try: + # print( + # f"fixed operational costs of {asset} in MEUR/yr : ", + # results[f"{asset}__fixed_operational_cost"] / 1e6, + # ) + # print( + # f"variable operational costs of {asset} : ", + # results[f"{asset}__variable_operational_cost"] / 1e6, + # ) # not yet all included in financialmixin + # print(f"max size of {asset} : ", results[f"{asset}__max_size"]) + # except KeyError: + # print(f"{asset} does not have a costs") + # pass if __name__ == "__main__": - elect = run_optimization_problem( - EmergeTest, - esdl_file_name="emerge_solar_battery.esdl", - esdl_parser=ESDLFileParser, - profile_reader=ProfileReaderFromFile, - input_timeseries_file="timeseries_with_PV.csv", - ) + + tic = time.time() + for _ in range(10): + elect = run_optimization_problem( + EmergeTest, + esdl_file_name="emerge_solar_battery.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_with_PV.csv", + ) + print(time.time() - tic) # elect = run_optimization_problem( # EmergeTest, # esdl_file_name="emerge.esdl", diff --git a/tests/test_gas_pipe_topology_optimization.py b/tests/test_gas_pipe_topology_optimization.py index a4658301c..2f6371eae 100644 --- a/tests/test_gas_pipe_topology_optimization.py +++ b/tests/test_gas_pipe_topology_optimization.py @@ -51,8 +51,8 @@ def energy_system_options(self): target = solution.get_timeseries(f"{demand}.target_gas_demand").values np.testing.assert_allclose(target, results[f"{demand}.Gas_demand_mass_flow"]) - removed_pipes = ["Pipe_a718", "Pipe_9a6f", "Pipe_2927"] - remained_pipes = ["Pipe_51e4", "Pipe_6b39", "Pipe_f9b0"] + removed_pipes = ["Pipe_a718", "Pipe_9a6f", "Pipe_2927", "Pipe_8592"] + remained_pipes = ["Pipe_51e4", "Pipe_6b39", "Pipe_f9b0", "Pipe_96bc"] for pipe in removed_pipes: np.testing.assert_allclose(results[f"{pipe}__gn_diameter"], 0.0, atol=1.0e-6) np.testing.assert_allclose(results[f"{pipe}__investment_cost"], 0.0, atol=1.0e-6) diff --git a/tests/test_hydraulic_power.py b/tests/test_hydraulic_power.py index 621ef81cd..0d5a2e957 100644 --- a/tests/test_hydraulic_power.py +++ b/tests/test_hydraulic_power.py @@ -1,10 +1,12 @@ from pathlib import Path from unittest import TestCase +from mesido._darcy_weisbach import head_loss +from mesido.constants import GRAVITATIONAL_CONSTANT from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption - +from mesido.network_common import NetworkSettings import numpy as np @@ -14,7 +16,7 @@ class TestHydraulicPower(TestCase): - def test_hydraulic_power(self): + def test_hydraulic_power_heat(self): """ Check the workings for the hydraulic power variable. @@ -238,6 +240,251 @@ def test_hydraulic_power(self): atol=10.0, ) + def test_hydraulic_power_gas(self): + """ + Checks the logic for the hydraulic power of gas pipes. + - checks if value on linearized lines, for multiple lines + - checks if hydraulic power is 0 at end of the pipe + - checks if differences of in/out port is equal to the added hydraulic power of that pipe + - checks absolutae value of the hydraulic power loss over a line + """ + import models.unit_cases_gas.source_sink.src.run_source_sink as run_source_sink + from models.unit_cases_gas.source_sink.src.run_source_sink import ( + GasProblem, + ) + + # Settings + base_folder = Path(run_source_sink.__file__).resolve().parent.parent + + class GasProblemHydraulic(GasProblem): + def read(self): + super().read() + + for d in self.energy_system_components["gas_demand"]: + new_timeseries = self.get_timeseries(f"{d}.target_gas_demand").values * 4e4 + self.set_timeseries(f"{d}.target_gas_demand", new_timeseries) + + def energy_system_options(self): + options = super().energy_system_options() + + self.gas_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_N_LINES_EQUALITY + ) + self.gas_network_settings["n_linearization_lines"] = 3 + self.gas_network_settings["minimum_velocity"] = 0.0 + self.gas_network_settings["minimize_head_losses"] = True + + return options + + solution = run_optimization_problem( + GasProblemHydraulic, + base_folder=base_folder, + esdl_file_name="source_sink.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + + # TODO: add check on values for hydraulic power. + results = solution.extract_results() + parameters = solution.parameters(0) + + pipe = "Pipe_4abc" + pipe_hp_in = results[f"{pipe}.GasIn.Hydraulic_power"] + pipe_hp_out = results[f"{pipe}.GasOut.Hydraulic_power"] + pipe_hp = results[f"{pipe}.Hydraulic_power"] + + pipe_mass = results["Pipe_4abc.GasIn.mass_flow"] + + # due to non linearity, every timestep on new linearized line, a doubled mass flow should + # result in more than doubled hydraulic power + np.testing.assert_array_less( + (pipe_hp[0] + 1e-6) * (pipe_mass[1] / pipe_mass[0]), pipe_hp[1] + ) + np.testing.assert_array_less( + (pipe_hp[1] + 1e-6) * (pipe_mass[2] / pipe_mass[1]), pipe_hp[2] + ) + + np.testing.assert_allclose(pipe_hp, pipe_hp_in - pipe_hp_out) + np.testing.assert_allclose(0, pipe_hp_out) + + # TODO: use mass flow to get calculated hydraulic power + + rho = parameters[f"{pipe}.rho"] + d = parameters[f"{pipe}.diameter"] + area = parameters[f"{pipe}.area"] + length = parameters[f"{pipe}.length"] + pressure = parameters[f"{pipe}.pressure"] + wall_roughness = solution.energy_system_options()["wall_roughness"] + v_max = solution.gas_network_settings["maximum_velocity"] + temperature = 20.0 + + v_inspect = results[f"{pipe}.GasOut.Q"] / solution.parameters(0)[f"{pipe}.area"] + + calc_hp_accurate = [ + rho + * GRAVITATIONAL_CONSTANT + * v + * area + * head_loss( + v, + d, + length, + wall_roughness, + temperature, + network_type=NetworkSettings.NETWORK_TYPE_GAS, + pressure=pressure, + ) + for v in v_inspect + ] + np.testing.assert_array_less(calc_hp_accurate, pipe_hp) + + v_points = [ + i * v_max / solution.gas_network_settings["n_linearization_lines"] + for i in range(solution.gas_network_settings["n_linearization_lines"] + 1) + ] + calc_hp_v_points = [ + rho + * GRAVITATIONAL_CONSTANT + * v + * area + * head_loss( + v, + d, + length, + wall_roughness, + temperature, + network_type=NetworkSettings.NETWORK_TYPE_GAS, + pressure=pressure, + ) + for v in v_points + ] + v_points_volumetric = np.asarray(v_points) * np.pi * d**2 / 4.0 + a = np.diff(calc_hp_v_points) / np.diff(v_points_volumetric) + b = calc_hp_v_points[1:] - a * v_points_volumetric[1:] + + np.testing.assert_allclose(pipe_hp[0], a[0] * results[f"{pipe}.GasOut.Q"][0] + b[0]) + np.testing.assert_allclose(pipe_hp[1], a[1] * results[f"{pipe}.GasOut.Q"][1] + b[1]) + np.testing.assert_allclose(pipe_hp[2], a[2] * results[f"{pipe}.GasOut.Q"][2] + b[2]) + + def test_hydraulic_power_gas_multi_demand(self): + """ + Checks the logic for the hydraulic power of gas pipes. + - checks if value on linearized lines, for multiple lines + - checks if hydraulic power is 0 at end of the pipe if connected to a demand + - checks if hydraulic power at start of line connected to a producers is larger than 0 + - checks if differences of in/out port is equal to the added hydraulic power of that pipe + """ + import models.unit_cases_gas.multi_demand_source_node.src.run_test as run_test + from models.unit_cases_gas.multi_demand_source_node.src.run_test import ( + GasProblem, + ) + + # Settings + base_folder = Path(run_test.__file__).resolve().parent.parent + + class GasProblemHydraulic(GasProblem): + def read(self): + super().read() + + for d in self.energy_system_components["gas_demand"]: + new_timeseries = self.get_timeseries(f"{d}.target_gas_demand").values * 1.5 + self.set_timeseries(f"{d}.target_gas_demand", new_timeseries) + + def energy_system_options(self): + options = super().energy_system_options() + + self.gas_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_N_LINES_EQUALITY + ) + self.gas_network_settings["n_linearization_lines"] = 3 + self.gas_network_settings["minimum_velocity"] = 0.0 + self.gas_network_settings["minimize_head_losses"] = True + + return options + + solution = run_optimization_problem( + GasProblemHydraulic, + base_folder=base_folder, + esdl_file_name="test.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + + # TODO: add check on values for hydraulic power. + results = solution.extract_results() + + pipes = ["Pipe_7c53", "Pipe_f1a4", "Pipe_0e39", "Pipe_c50f"] + for pipe in pipes: + pipe_hp_in = results[f"{pipe}.GasIn.Hydraulic_power"] + pipe_hp_out = results[f"{pipe}.GasOut.Hydraulic_power"] + pipe_hp = results[f"{pipe}.Hydraulic_power"] + + pipe_mass = results[f"{pipe}.GasIn.mass_flow"] + + np.testing.assert_allclose(pipe_hp, pipe_hp_in - pipe_hp_out) + if pipe in ["Pipe_7c53", "Pipe_c50f"]: + # connected to demand, thus hydraulic_power should be 0 + np.testing.assert_allclose(0, pipe_hp_out) + + v_max = solution.gas_network_settings["maximum_velocity"] + + v_inspect = results[f"{pipe}.GasOut.Q"] / solution.parameters(0)[f"{pipe}.area"] + v_points = [ + i * v_max / solution.gas_network_settings["n_linearization_lines"] + for i in range(solution.gas_network_settings["n_linearization_lines"] + 1) + ] + + # due to non linearity, every timestep on new linearized line, a doubled mass flow + # should result in more than doubled hydraulic power + v_inspect_line_ind = [] + for k in range(len(v_inspect)): + for i in range(len(v_points)): + if v_points[i] + 1e-6 < v_inspect[k] <= v_points[i + 1] + 1e-6: + v_inspect_line_ind.append(i) + ind_check = 0 + for k in range(len(v_inspect) - 1): + if v_inspect_line_ind[k] == v_inspect_line_ind[k + 1]: + np.testing.assert_allclose( + pipe_hp[k] * pipe_mass[k + 1] / pipe_mass[k], pipe_hp[k + 1] + ) + elif v_inspect_line_ind[k] < v_inspect_line_ind[k + 1]: + np.testing.assert_array_less( + (pipe_hp[k] + 1e-6) * pipe_mass[k + 1] / pipe_mass[k], pipe_hp[k + 1] + ) + ind_check += 1 + else: + raise RuntimeError( + "For this test to succeed the flow should increase over time" + ) + np.testing.assert_array_less( + 0.5, ind_check, f"{pipe} is not checked between multiple lines" + ) + + # balance of hydraulic power + pipes_demand = ["Pipe_7c53", "Pipe_c50f"] + pipes_source = ["Pipe_0e39", "Pipe_f1a4"] + balance = np.zeros(3) + for p in pipes_demand: + balance += results[f"{p}.GasIn.Hydraulic_power"] + for p in pipes_source: + balance -= results[f"{p}.GasOut.Hydraulic_power"] + np.testing.assert_allclose(balance, 0.0, atol=1e-6) + + for node, connected_pipes in solution.energy_system_topology.gas_nodes.items(): + hydraulic_sum = 0.0 + + for i_conn, (_pipe, orientation) in connected_pipes.items(): + hydraulic_sum += results[f"{node}.GasConn[{i_conn+1}].Q"] * orientation + + np.testing.assert_allclose(hydraulic_sum, 0.0, atol=1.0e-3) + + for d in solution.energy_system_components.get("gas_demand"): + np.testing.assert_allclose(results[f"{d}.GasIn.Hydraulic_power"], 0.0) + for d in solution.energy_system_components.get("gas_source"): + np.testing.assert_array_less(0.0, results[f"{d}.GasOut.Hydraulic_power"]) + if __name__ == "__main__": import time diff --git a/tests/test_pipe_diameter_sizing.py b/tests/test_pipe_diameter_sizing.py index 6a9bd68a5..9e3dc6150 100644 --- a/tests/test_pipe_diameter_sizing.py +++ b/tests/test_pipe_diameter_sizing.py @@ -58,6 +58,9 @@ def test_half_network_gone(self): input_timeseries_file="timeseries_import.xml", ) + feasibility = problem.solver_stats["return_status"] + self.assertTrue((feasibility == "Optimal")) + parameters = problem.parameters(0) diameters = {p: parameters[f"{p}.diameter"] for p in problem.hot_pipes} results = problem.extract_results() diff --git a/tests/test_setpoint_constraints.py b/tests/test_setpoint_constraints.py index 2afe8aa4d..98160c946 100644 --- a/tests/test_setpoint_constraints.py +++ b/tests/test_setpoint_constraints.py @@ -163,7 +163,7 @@ def test_run_small_ates_timed_setpoints_0_changes(self): check = abs( results["HeatProducer_1.Heat_source"][2:] - results["HeatProducer_1.Heat_source"][1:-1] ) - np.testing.assert_array_less(check, 1.0e-6) + np.testing.assert_array_less(check, 1.0e-5) @pytest.mark.fourth def test_run_small_ates_timed_setpoints_multiple_constraints(self): From 1d1988ffae0a299c839fe1ffc65820f010cd8a4d Mon Sep 17 00:00:00 2001 From: JimRojer-TNO <137045207+jimrojerTNO@users.noreply.github.com> Date: Thu, 25 Apr 2024 16:48:35 +0200 Subject: [PATCH 101/275] Checking feasibility in tests (#49) * made new function for running optimization to check on feasibility and use that in tests * changes to make tests feasible and passing again --------- Co-authored-by: Femke Janssen --- src/mesido/financial_mixin.py | 10 +--- src/mesido/util.py | 57 +++++++++++++++++++ .../src/run_ates.py | 17 +++++- .../unit_cases/case_3a_setpoint/model/3a.esdl | 2 +- .../unit_cases/case_3a_setpoint/src/run_3a.py | 38 ++++++------- tests/test_absolute_heat.py | 5 +- tests/test_asset_is_realized.py | 5 +- tests/test_ates.py | 5 +- tests/test_cable_topology_optimization.py | 5 +- tests/test_cold_demand.py | 7 +-- tests/test_elec_boiler.py | 7 +-- tests/test_electric_bus.py | 6 +- tests/test_electric_source_sink.py | 9 ++- tests/test_electrolyzer.py | 5 +- tests/test_gas_boiler.py | 5 +- tests/test_gas_multi_demand_source_node.py | 6 +- tests/test_gas_pipe_topology_optimization.py | 5 +- tests/test_gas_source_sink.py | 6 +- tests/test_head_loss.py | 15 +++-- tests/test_heat.py | 23 ++++---- tests/test_hydraulic_power.py | 14 ++--- tests/test_insulation.py | 7 +-- tests/test_max_size_and_optional_assets.py | 7 +-- tests/test_multicommodity.py | 10 ++-- tests/test_multiple_carriers.py | 5 +- ...est_multiple_in_and_out_port_components.py | 7 +-- tests/test_pipe_diameter_sizing.py | 5 +- tests/test_producer_profiles.py | 5 +- tests/test_setpoint_constraints.py | 15 +++-- tests/test_temperature_ates_hp.py | 11 +--- tests/test_topo_constraints.py | 6 +- tests/test_varying_temperature.py | 17 +++--- tests/test_warmingup_unit_cases.py | 9 ++- 33 files changed, 193 insertions(+), 163 deletions(-) create mode 100644 src/mesido/util.py diff --git a/src/mesido/financial_mixin.py b/src/mesido/financial_mixin.py index 9cff93123..5e01a9dc7 100644 --- a/src/mesido/financial_mixin.py +++ b/src/mesido/financial_mixin.py @@ -1066,7 +1066,7 @@ def __cumulative_investments_made_in_eur_path_constraints(self, ensemble_member) options = self.energy_system_options() if options["include_asset_is_realized"]: for asset in [ - *self.energy_system_components.get("heat_demand", []), + # *self.energy_system_components.get("heat_demand", []), *self.energy_system_components.get("heat_source", []), *self.energy_system_components.get("ates", []), *self.energy_system_components.get("low_temperature_ates", []), @@ -1079,12 +1079,8 @@ def __cumulative_investments_made_in_eur_path_constraints(self, ensemble_member) nominal = self.variable_nominal(var_name) var_name = self.__asset_is_realized_map[asset] asset_is_realized = self.state(var_name) - installation_cost_sym = self.__asset_installation_cost_var[ - self._asset_installation_cost_map[asset] - ] - investment_cost_sym = self.__asset_investment_cost_var[ - self._asset_investment_cost_map[asset] - ] + installation_cost_sym = self.variable(self._asset_installation_cost_map[asset]) + investment_cost_sym = self.variable(self._asset_investment_cost_map[asset]) # TODO: add insulation class cost to the investments made. # if asset in self.heat_network_components.get("demand", []): # for insulation_class in self.__get_insulation_classes(asset): diff --git a/src/mesido/util.py b/src/mesido/util.py new file mode 100644 index 000000000..8e7715eaa --- /dev/null +++ b/src/mesido/util.py @@ -0,0 +1,57 @@ +from mesido.esdl.esdl_parser import BaseESDLParser +from mesido.esdl.profile_parser import BaseProfileReader, InfluxDBProfileReader + +from rtctools.optimization.collocated_integrated_optimization_problem import ( + CollocatedIntegratedOptimizationProblem, +) +from rtctools.util import run_optimization_problem + + +def run_esdl_mesido_optimization( + problem: CollocatedIntegratedOptimizationProblem, + esdl_parser: BaseESDLParser, + esdl_file_name: str = "", + base_folder: str = "", + esdl_string: str = "", + profile_reader: BaseProfileReader = InfluxDBProfileReader, + input_timeseries_file: str = "", + *args, + **kwargs, +): + """ + This function is used to execute an optimization on a mesido defined problem. Compared to the + standard rtc-tools run_optimization_problem() method extra checks can be included here. + + params: + Problem: The problem defined in the mesido + esdl_parser: How the ESDL will be provided to the problem, e.g. file or base64 string. + base_folder: The base folder from where the input, model, output folder are defined + esdl_file_name: The string of the esdl file in case the ESDLFileParser is used and placed in + the model folder. + esdl_string: the base64 string in case the ESDLStringParser is selected + profile_reader: The way the time-series profiles are read + input_timeseries_file: The file from which to read the time-series profiles in case the + FromFileReader is selected. + + Returns: + The solved full problem object with the solution in it. + + """ + + solution = run_optimization_problem( + problem, + *args, + base_folder=base_folder, + esdl_file_name=esdl_file_name, + esdl_string=esdl_string, + esdl_parser=esdl_parser, + profile_reader=profile_reader, + input_timeseries_file=input_timeseries_file, + **kwargs, + ) + + feasibility = solution.solver_stats["return_status"] + + assert feasibility.lower() == "optimal" + + return solution diff --git a/tests/models/test_case_small_network_with_ates/src/run_ates.py b/tests/models/test_case_small_network_with_ates/src/run_ates.py index 1236ed154..0235197c7 100644 --- a/tests/models/test_case_small_network_with_ates/src/run_ates.py +++ b/tests/models/test_case_small_network_with_ates/src/run_ates.py @@ -210,6 +210,7 @@ def energy_system_options(self): """ options = super().energy_system_options() options["include_asset_is_realized"] = True + options["neglect_pipe_heat_losses"] = True return options @@ -253,10 +254,12 @@ def constraints(self, ensemble_member): # Constraints for investment speed, please note that we need to enforce index 0 to be 0. for s in self.energy_system_components.get("heat_source", []): - inv_made = self.state_vector(f"{s}__cumulative_investments_made_in_eur") + inv_made = self.__state_vector_scaled( + f"{s}__cumulative_investments_made_in_eur", ensemble_member + ) nominal = self.variable_nominal(f"{s}__cumulative_investments_made_in_eur") inv_cap = 2.5e5 - constraints.append((inv_made[0], 0.0, 0.0)) + constraints.append((inv_made[0] / nominal, 0.0, 200000.0)) for i in range(1, len(self.times())): constraints.append( (((inv_made[i] - inv_made[i - 1]) * nominal - inv_cap) / nominal, -np.inf, 0.0) @@ -269,6 +272,16 @@ def constraints(self, ensemble_member): return constraints + def __state_vector_scaled(self, variable, ensemble_member): + """ + This functions returns the casadi symbols scaled with their nominal for the entire time + horizon. + """ + canonical, sign = self.alias_relation.canonical_signed(variable) + return ( + self.state_vector(canonical, ensemble_member) * self.variable_nominal(canonical) * sign + ) + def times(self, variable=None): """ For the purposes of this test we take only 25 timesteps to speed up the test. diff --git a/tests/models/unit_cases/case_3a_setpoint/model/3a.esdl b/tests/models/unit_cases/case_3a_setpoint/model/3a.esdl index d896c5451..97c014a23 100644 --- a/tests/models/unit_cases/case_3a_setpoint/model/3a.esdl +++ b/tests/models/unit_cases/case_3a_setpoint/model/3a.esdl @@ -20,7 +20,7 @@ - + diff --git a/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py b/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py index 30600e796..4c0146eab 100644 --- a/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py +++ b/tests/models/unit_cases/case_3a_setpoint/src/run_3a.py @@ -1,5 +1,7 @@ from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.techno_economic_mixin import TechnoEconomicMixin import numpy as np @@ -24,7 +26,7 @@ def __init__(self, state, target): self.target_min = target self.target_max = target - self.function_range = (0.0, 2.0 * max(target.values)) + self.function_range = (-1.0, 2.0 * max(target.values)) self.function_nominal = np.median(target.values) def function(self, optimization_problem, ensemble_member): @@ -37,8 +39,8 @@ class MinimizeSourcesHeatGoal(Goal): order = 1 def __init__(self, source): - self.target_max = 0.0 - self.function_range = (0.0, 10e6) + # self.target_max = 0.0 + # self.function_range = (0.0, 10e6) self.source = source self.function_nominal = 1e6 @@ -67,17 +69,17 @@ def solver_options(self): # gurobi_options["MIPgap"] = 0.001 return options - def heat_network_options(self): - options = super().heat_network_options() - options["minimum_velocity"] = 0.0001 - # options["heat_loss_disconnected_pipe"] = False - # options["neglect_pipe_heat_losses"] = False + def energy_system_options(self): + options = super().energy_system_options() + # options["minimum_velocity"] = 0.0001 + options["heat_loss_disconnected_pipe"] = False + options["neglect_pipe_heat_losses"] = True return options class HeatProblem( - _GoalsAndOptions, ESDLAdditionalVarsMixin, + _GoalsAndOptions, TechnoEconomicMixin, LinearizedOrderGoalProgrammingMixin, SinglePassGoalProgrammingMixin, @@ -92,20 +94,18 @@ def path_goals(self): return goals - def solver_options(self): - options = super().solver_options() - options["solver"] = "highs" - # highs_options = options["highs"] = {} - # highs_options["mip_rel_gap"] = 0.0025 - # options["gurobi"] = gurobi_options = {} - # gurobi_options["MIPgap"] = 0.0001 - return options - if __name__ == "__main__": from rtctools.util import run_optimization_problem - sol = run_optimization_problem(HeatProblem) + sol = run_optimization_problem( + HeatProblem, + # base_folder=base_folder, + esdl_file_name="3a.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_import.xml", + ) results = sol.extract_results() print(results["GeothermalSource_b702.Heat_source"]) diff --git a/tests/test_absolute_heat.py b/tests/test_absolute_heat.py index a8a75de9d..a1557b288 100644 --- a/tests/test_absolute_heat.py +++ b/tests/test_absolute_heat.py @@ -3,8 +3,7 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile - -from rtctools.util import run_optimization_problem +from mesido.util import run_esdl_mesido_optimization from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -27,7 +26,7 @@ def test_absolute_heat(self): base_folder = Path(example.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="absolute_heat.esdl", diff --git a/tests/test_asset_is_realized.py b/tests/test_asset_is_realized.py index 8d16cd3b0..a32e5fc52 100644 --- a/tests/test_asset_is_realized.py +++ b/tests/test_asset_is_realized.py @@ -3,11 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - class TestAssetIsRealized(TestCase): def test_asset_is_realized(self): @@ -36,7 +35,7 @@ def test_asset_is_realized(self): # This is an optimization done over 25 timesteps with a cap on how quickly the cost # for the 2 producers can be realized - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblemPlacingOverTime, base_folder=base_folder, esdl_file_name="test_case_small_network_with_ates.esdl", diff --git a/tests/test_ates.py b/tests/test_ates.py index d9725fffd..150960447 100644 --- a/tests/test_ates.py +++ b/tests/test_ates.py @@ -3,11 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -33,7 +32,7 @@ def test_ates(self): base_folder = Path(run_ates.__file__).resolve().parent.parent # This is an optimization done over a full year with 365 day timesteps - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="test_case_small_network_with_ates.esdl", diff --git a/tests/test_cable_topology_optimization.py b/tests/test_cable_topology_optimization.py index 5a55caa74..6363d9421 100644 --- a/tests/test_cable_topology_optimization.py +++ b/tests/test_cable_topology_optimization.py @@ -3,11 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - class TestElectricityTopo(TestCase): def test_electricity_network_topology(self): @@ -25,7 +24,7 @@ def test_electricity_network_topology(self): base_folder = Path(example.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="enettopology.esdl", diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index ce5e397d9..53cb5b574 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -3,8 +3,7 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile - -from rtctools.util import run_optimization_problem +from mesido.util import run_esdl_mesido_optimization from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -27,7 +26,7 @@ def test_cold_demand(self): base_folder = Path(example.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="LT_wko.esdl", @@ -57,7 +56,7 @@ def test_airco(self): base_folder = Path(example.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="airco.esdl", diff --git a/tests/test_elec_boiler.py b/tests/test_elec_boiler.py index e49c506c4..b1ca9fcb4 100644 --- a/tests/test_elec_boiler.py +++ b/tests/test_elec_boiler.py @@ -3,11 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -28,7 +27,7 @@ def test_elec_boiler(self): base_folder = Path(example.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( SourcePipeSink, base_folder=base_folder, esdl_file_name="sourcesink_witheboiler.esdl", @@ -67,7 +66,7 @@ def test_air_water_hp_elec(self): base_folder = Path(example.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( SourcePipeSink, base_folder=base_folder, esdl_file_name="sourcesink_withHP.esdl", diff --git a/tests/test_electric_bus.py b/tests/test_electric_bus.py index b3bc1224f..71f0d8766 100644 --- a/tests/test_electric_bus.py +++ b/tests/test_electric_bus.py @@ -12,13 +12,11 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - - class TestMILPbus(TestCase): def test_voltages_and_power_network1(self): """ @@ -39,7 +37,7 @@ def test_voltages_and_power_network1(self): base_folder = Path(example.__file__).resolve().parent.parent # Run the problem - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( ElectricityProblem, base_folder=base_folder, esdl_file_name="Electric_bus3.esdl", diff --git a/tests/test_electric_source_sink.py b/tests/test_electric_source_sink.py index 607410560..fae824b65 100644 --- a/tests/test_electric_source_sink.py +++ b/tests/test_electric_source_sink.py @@ -3,11 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - # TODO: still have to make test where elecitricity direction is switched: # e.g. 2 nodes, with at each node a producer and consumer, first one node medium demand, second @@ -36,7 +35,7 @@ def test_source_sink(self): base_folder = Path(example.__file__).resolve().parent.parent tol = 1e-10 - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( ElectricityProblem, base_folder=base_folder, esdl_file_name="case1_elec.esdl", @@ -123,7 +122,7 @@ def test_source_sink_max_curr(self): base_folder = Path(example.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( ElectricityProblemMaxCurr, base_folder=base_folder, esdl_file_name="case1_elec.esdl", @@ -219,7 +218,7 @@ def test_transformer(self): base_folder = Path(example.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( ElectricityProblem, base_folder=base_folder, esdl_file_name="transformer.esdl", diff --git a/tests/test_electrolyzer.py b/tests/test_electrolyzer.py index 25501a14a..df32c5a9f 100644 --- a/tests/test_electrolyzer.py +++ b/tests/test_electrolyzer.py @@ -3,11 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - # from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -38,7 +37,7 @@ def energy_system_options(self): self.gas_network_settings["pipe_minimum_pressure"] = 0.0 return options - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( MILPProblem, base_folder=base_folder, esdl_file_name="h2.esdl", diff --git a/tests/test_gas_boiler.py b/tests/test_gas_boiler.py index c83d39e2b..6c9cb7c7c 100644 --- a/tests/test_gas_boiler.py +++ b/tests/test_gas_boiler.py @@ -3,11 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -29,7 +28,7 @@ def test_gas_boiler(self): base_folder = Path(example.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( SourcePipeSink, base_folder=base_folder, esdl_file_name="sourcesink_withgasboiler.esdl", diff --git a/tests/test_gas_multi_demand_source_node.py b/tests/test_gas_multi_demand_source_node.py index 168c4ce8a..7c9b340f2 100644 --- a/tests/test_gas_multi_demand_source_node.py +++ b/tests/test_gas_multi_demand_source_node.py @@ -3,13 +3,11 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - - class TestMILPGasMultiDemandSourceNode(TestCase): def test_multi_demand_source_node(self): """ @@ -35,7 +33,7 @@ def energy_system_options(self): self.gas_network_settings["pipe_minimum_pressure"] = 0.0 return options - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( GasProblem, base_folder=base_folder, esdl_file_name="test.esdl", diff --git a/tests/test_gas_pipe_topology_optimization.py b/tests/test_gas_pipe_topology_optimization.py index 2f6371eae..17fe1cd4f 100644 --- a/tests/test_gas_pipe_topology_optimization.py +++ b/tests/test_gas_pipe_topology_optimization.py @@ -4,11 +4,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - class TestGasNetwork(TestCase): def test_gas_pipe_top(self): @@ -36,7 +35,7 @@ def energy_system_options(self): self.gas_network_settings["minimize_head_losses"] = True return options - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( GasNetworkProblem, base_folder=base_folder, esdl_file_name="2a_gas.esdl", diff --git a/tests/test_gas_source_sink.py b/tests/test_gas_source_sink.py index 3cea91ff2..a4ab006f4 100644 --- a/tests/test_gas_source_sink.py +++ b/tests/test_gas_source_sink.py @@ -4,13 +4,11 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - - class TestMILPGasSourceSink(TestCase): def test_source_sink(self): """ @@ -40,7 +38,7 @@ def energy_system_options(self): self.heat_network_settings["pipe_minimum_pressure"] = 0.0 return options - soltion = run_optimization_problem( + soltion = run_esdl_mesido_optimization( GasProblem, base_folder=base_folder, esdl_file_name="source_sink.esdl", diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index f5717b2c2..43cdcbe09 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -7,11 +7,10 @@ from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption from mesido.network_common import NetworkSettings +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - from utils_tests import demand_matching_test @@ -88,7 +87,7 @@ def energy_system_options(self): "influxdb_verify_ssl": False, } - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( SourcePipeSinkDW, base_folder=base_folder, esdl_file_name="sourcesink.esdl", @@ -264,7 +263,7 @@ def energy_system_options(self): return options - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( SourcePipeSinkDW, base_folder=base_folder, esdl_file_name="sourcesink.esdl", @@ -441,7 +440,7 @@ def energy_system_options(self): return options - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( TestSourceSink, base_folder=base_folder, esdl_file_name="source_sink.esdl", @@ -593,7 +592,7 @@ def energy_system_options(self): return options - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( TestSourceSink, base_folder=base_folder, esdl_file_name="source_sink.esdl", @@ -729,7 +728,7 @@ def test_gas_substation(self): base_folder = Path(example.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( GasProblem, base_folder=base_folder, esdl_file_name="multiple_carriers.esdl", @@ -778,7 +777,7 @@ def test_compressor(self): base_folder = Path(example.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( GasProblem, base_folder=base_folder, esdl_file_name="compressor.esdl", diff --git a/tests/test_heat.py b/tests/test_heat.py index 544b6226c..342010fcf 100644 --- a/tests/test_heat.py +++ b/tests/test_heat.py @@ -4,11 +4,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -27,7 +26,7 @@ def test_heat_loss(self): base_folder = Path(double_pipe_heat.__file__).resolve().parent.parent - case = run_optimization_problem( + case = run_esdl_mesido_optimization( SourcePipeSink, base_folder=base_folder, esdl_file_name="sourcesink.esdl", @@ -69,7 +68,7 @@ def energy_system_options(self): base_folder = Path(double_pipe_heat.__file__).resolve().parent.parent - case = run_optimization_problem( + case = run_esdl_mesido_optimization( Model, base_folder=base_folder, esdl_file_name="sourcesink.esdl", @@ -160,7 +159,7 @@ def test_min_max_pressure_options(self): - max pressure """ - case_default = run_optimization_problem( + case_default = run_esdl_mesido_optimization( self.SmallerPipes, base_folder=self.base_folder, esdl_file_name=self.esdl_file, @@ -168,7 +167,7 @@ def test_min_max_pressure_options(self): profile_reader=ProfileReaderFromFile, input_timeseries_file=self.input_time_series_file, ) - case_min_pressure = run_optimization_problem( + case_min_pressure = run_esdl_mesido_optimization( self.MinPressure, base_folder=self.base_folder, esdl_file_name=self.esdl_file, @@ -176,7 +175,7 @@ def test_min_max_pressure_options(self): profile_reader=ProfileReaderFromFile, input_timeseries_file=self.input_time_series_file, ) - case_max_pressure = run_optimization_problem( + case_max_pressure = run_esdl_mesido_optimization( self.MaxPressure, base_folder=self.base_folder, esdl_file_name=self.esdl_file, @@ -184,7 +183,7 @@ def test_min_max_pressure_options(self): profile_reader=ProfileReaderFromFile, input_timeseries_file=self.input_time_series_file, ) - case_min_max_pressure = run_optimization_problem( + case_min_max_pressure = run_esdl_mesido_optimization( self.MinMaxPressure, base_folder=self.base_folder, esdl_file_name=self.esdl_file, @@ -293,7 +292,7 @@ def test_disconnected_network_pipe(self): - Check that pipe becomes disconnected when flow is forced to zero """ - case_connected = run_optimization_problem( + case_connected = run_esdl_mesido_optimization( self.ModelConnected, base_folder=self.base_folder, esdl_file_name="sourcesink.esdl", @@ -304,7 +303,7 @@ def test_disconnected_network_pipe(self): results_connected = case_connected.extract_results() q_connected = results_connected["Pipe1.Q"] - case_disconnected = run_optimization_problem( + case_disconnected = run_esdl_mesido_optimization( self.ModelDisconnected, base_folder=self.base_folder, esdl_file_name="sourcesink.esdl", @@ -346,7 +345,7 @@ def test_disconnected_pipe_darcy_weisbach(self): """ - case_linear = run_optimization_problem( + case_linear = run_esdl_mesido_optimization( self.ModelDisconnected, base_folder=self.base_folder, esdl_file_name="sourcesink.esdl", @@ -357,7 +356,7 @@ def test_disconnected_pipe_darcy_weisbach(self): results_linear = case_linear.extract_results() q_linear = results_linear["Pipe1.Q"] - case_dw = run_optimization_problem( + case_dw = run_esdl_mesido_optimization( self.ModelDisconnectedDarcyWeisbach, base_folder=self.base_folder, esdl_file_name="sourcesink.esdl", diff --git a/tests/test_hydraulic_power.py b/tests/test_hydraulic_power.py index 0d5a2e957..d134d9508 100644 --- a/tests/test_hydraulic_power.py +++ b/tests/test_hydraulic_power.py @@ -7,13 +7,13 @@ from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption from mesido.network_common import NetworkSettings +from mesido.util import run_esdl_mesido_optimization + import numpy as np import pandas as pd -from rtctools.util import run_optimization_problem - class TestHydraulicPower(TestCase): def test_hydraulic_power_heat(self): @@ -103,7 +103,7 @@ def test_hydraulic_power_heat(self): run_hydraulic_power.manual_set_pipe_length = run_hydraulic_power.comp_vars_vals[ "pipe_length" ][val] - run_optimization_problem( + run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="test_simple.esdl", @@ -146,7 +146,7 @@ def test_hydraulic_power_heat(self): run_hydraulic_power.manual_set_pipe_length = run_hydraulic_power.comp_vars_vals[ "pipe_length" ][val] - run_optimization_problem( + run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="test_simple.esdl", @@ -197,7 +197,7 @@ def test_hydraulic_power_heat(self): run_hydraulic_power.manual_set_pipe_length = run_hydraulic_power.comp_vars_vals[ "pipe_length" ][val] - run_optimization_problem( + run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="test_simple.esdl", @@ -276,7 +276,7 @@ def energy_system_options(self): return options - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( GasProblemHydraulic, base_folder=base_folder, esdl_file_name="source_sink.esdl", @@ -403,7 +403,7 @@ def energy_system_options(self): return options - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( GasProblemHydraulic, base_folder=base_folder, esdl_file_name="test.esdl", diff --git a/tests/test_insulation.py b/tests/test_insulation.py index 9a628e809..f1d09da89 100644 --- a/tests/test_insulation.py +++ b/tests/test_insulation.py @@ -3,11 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - class TestInsulation(TestCase): """ @@ -61,7 +60,7 @@ def test_insulation_heatdemand(self): from models.insulation.src.run_insulation import HeatProblem base_folder = Path(run_insulation.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="Insulation.esdl", @@ -141,7 +140,7 @@ def test_insulation_heatdemand_b(self): from models.insulation.src.run_insulation import HeatProblemB base_folder = Path(run_insulation.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblemB, base_folder=base_folder, esdl_file_name="Insulation.esdl", diff --git a/tests/test_max_size_and_optional_assets.py b/tests/test_max_size_and_optional_assets.py index e6d0b4941..34b08ee3b 100644 --- a/tests/test_max_size_and_optional_assets.py +++ b/tests/test_max_size_and_optional_assets.py @@ -3,11 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -45,7 +44,7 @@ def test_max_size_and_aggr_count(self): base_folder = Path(run_ates.__file__).resolve().parent.parent # This is an optimization done over a few days - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="test_case_small_network_with_ates_with_buffer.esdl", @@ -145,7 +144,7 @@ def test_max_size_and_aggr_count(self): # This is the same problem, but now with the buffer and ates also optional. # Therefore, we expect that the ates and buffer are no longer placed to avoid their heat # losses. This allows us to check if their placement constraints are proper. - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="test_case_small_network_with_ates_with_buffer_all_optional.esdl", diff --git a/tests/test_multicommodity.py b/tests/test_multicommodity.py index 97df6a5bc..e90bdad26 100644 --- a/tests/test_multicommodity.py +++ b/tests/test_multicommodity.py @@ -3,12 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np - -from rtctools.util import run_optimization_problem - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -34,7 +32,7 @@ def test_heat_pump_elec_min_heat(self): base_folder = Path(run_hp_elec.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblem2, base_folder=base_folder, esdl_file_name="heat_pump_elec.esdl", @@ -104,7 +102,7 @@ def test_heat_pump_elec_min_heat_curr_limit(self): base_folder = Path(run_hp_elec.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="heat_pump_elec.esdl", @@ -176,7 +174,7 @@ def test_heat_pump_elec_min_elec(self): base_folder = Path(run_hp_elec.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( ElectricityProblem, base_folder=base_folder, esdl_file_name="heat_pump_elec.esdl", diff --git a/tests/test_multiple_carriers.py b/tests/test_multiple_carriers.py index 07d53b02a..a3a2ce7fd 100644 --- a/tests/test_multiple_carriers.py +++ b/tests/test_multiple_carriers.py @@ -3,8 +3,7 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile - -from rtctools.util import run_optimization_problem +from mesido.util import run_esdl_mesido_optimization from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -26,7 +25,7 @@ def test_multiple_carriers(self): base_folder = Path(run_multiple_carriers.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="MultipleCarrierTest.esdl", diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index 3f3adb35e..65c47710a 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -3,11 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -60,7 +59,7 @@ def energy_system_options(self): } # ----------------------------------------------------------------------------------------- - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblemPost, base_folder=base_folder, esdl_file_name="heat_exchanger.esdl", @@ -153,7 +152,7 @@ def energy_system_options(self): } # ----------------------------------------------------------------------------------------- - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblemPost, base_folder=base_folder, esdl_file_name="heat_pump.esdl", diff --git a/tests/test_pipe_diameter_sizing.py b/tests/test_pipe_diameter_sizing.py index 9e3dc6150..ba34f2225 100644 --- a/tests/test_pipe_diameter_sizing.py +++ b/tests/test_pipe_diameter_sizing.py @@ -5,11 +5,10 @@ from mesido._darcy_weisbach import friction_factor from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -49,7 +48,7 @@ def test_half_network_gone(self): del root_folder sys.path.pop(1) - problem = run_optimization_problem( + problem = run_esdl_mesido_optimization( PipeDiameterSizingProblem, base_folder=base_folder, esdl_file_name="2a.esdl", diff --git a/tests/test_producer_profiles.py b/tests/test_producer_profiles.py index c23ae2f90..ab9431fd4 100644 --- a/tests/test_producer_profiles.py +++ b/tests/test_producer_profiles.py @@ -3,8 +3,7 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile - -from rtctools.util import run_optimization_problem +from mesido.util import run_esdl_mesido_optimization from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -28,7 +27,7 @@ def test_max_producer_profile(self): base_folder = Path(run_3a.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblemProdProfile, base_folder=base_folder, esdl_file_name="3a.esdl", diff --git a/tests/test_setpoint_constraints.py b/tests/test_setpoint_constraints.py index 98160c946..fd49167b7 100644 --- a/tests/test_setpoint_constraints.py +++ b/tests/test_setpoint_constraints.py @@ -3,13 +3,12 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np import pytest -from rtctools.util import run_optimization_problem - class TestSetpointConstraints(TestCase): @pytest.mark.first @@ -31,7 +30,7 @@ def test_setpoint_constraints(self): base_folder = Path(run_3a.__file__).resolve().parent.parent - _heat_problem_3 = run_optimization_problem( + _heat_problem_3 = run_esdl_mesido_optimization( HeatProblemSetPointConstraints, base_folder=base_folder, esdl_file_name="3a.esdl", @@ -42,7 +41,7 @@ def test_setpoint_constraints(self): ) results_3 = _heat_problem_3.extract_results() - _heat_problem_4 = run_optimization_problem( + _heat_problem_4 = run_esdl_mesido_optimization( HeatProblemSetPointConstraints, base_folder=base_folder, esdl_file_name="3a.esdl", @@ -60,7 +59,7 @@ def test_setpoint_constraints(self): base_folder = Path(run_3a.__file__).resolve().parent.parent - sol_esdl_setpoints = run_optimization_problem( + sol_esdl_setpoints = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="3a.esdl", @@ -114,7 +113,7 @@ def test_run_small_ates_timed_setpoints_2_changes(self): base_folder = Path(run_ates.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblemSetPoints, base_folder=base_folder, esdl_file_name="test_case_small_network_with_ates.esdl", @@ -150,7 +149,7 @@ def test_run_small_ates_timed_setpoints_0_changes(self): base_folder = Path(run_ates.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblemSetPoints, base_folder=base_folder, esdl_file_name="test_case_small_network_with_ates.esdl", @@ -186,7 +185,7 @@ def test_run_small_ates_timed_setpoints_multiple_constraints(self): base_folder = Path(run_ates.__file__).resolve().parent.parent for ihrs in range(119, 122): - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblemSetPoints, base_folder=base_folder, esdl_file_name="test_case_small_network_with_ates.esdl", diff --git a/tests/test_temperature_ates_hp.py b/tests/test_temperature_ates_hp.py index c290c95c8..ef323f449 100644 --- a/tests/test_temperature_ates_hp.py +++ b/tests/test_temperature_ates_hp.py @@ -3,11 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -42,7 +41,7 @@ def test_ates_temperature(self): basefolder = Path(run_ates_temperature.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblem, base_folder=basefolder, esdl_file_name="HP_ATES with return network.esdl", @@ -96,10 +95,6 @@ def test_ates_temperature(self): ) ) - feasibility = solution.solver_stats["return_status"] - - self.assertTrue((feasibility == "Optimal")) - np.testing.assert_allclose(objective_calc / 1e4, objective) np.testing.assert_array_less(ates_temperature_disc - tol, ates_temperature) @@ -160,7 +155,7 @@ def test_ates_max_flow(self): basefolder = Path(run_ates_temperature.__file__).resolve().parent.parent - solution = run_optimization_problem( + solution = run_esdl_mesido_optimization( HeatProblemMaxFlow, base_folder=basefolder, esdl_file_name="HP_ATES with return network.esdl", diff --git a/tests/test_topo_constraints.py b/tests/test_topo_constraints.py index 691626d1b..03c5c9b9d 100644 --- a/tests/test_topo_constraints.py +++ b/tests/test_topo_constraints.py @@ -8,13 +8,11 @@ from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.pipe_class import PipeClass from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.util import run_esdl_mesido_optimization import numpy as np import numpy.testing -from rtctools.util import run_optimization_problem - - MIP_TOLERANCE = 1e-8 @@ -43,7 +41,7 @@ def setUpClass(cls) -> None: del root_folder sys.path.pop(1) - cls.problem = run_optimization_problem( + cls.problem = run_esdl_mesido_optimization( PipeDiameterSizingProblem, base_folder=base_folder, esdl_file_name="2a.esdl", diff --git a/tests/test_varying_temperature.py b/tests/test_varying_temperature.py index f842cabc0..2db1d2488 100644 --- a/tests/test_varying_temperature.py +++ b/tests/test_varying_temperature.py @@ -4,11 +4,10 @@ from mesido._heat_loss_u_values_pipe import pipe_heat_loss from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -33,7 +32,7 @@ def test_1a_temperature_variation(self): base_folder = Path(run_1a.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblemTvar, base_folder=base_folder, esdl_file_name="1a.esdl", @@ -97,7 +96,7 @@ def test_3a_temperature_variation_supply(self): base_folder = Path(run_3a.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblemTvarsup, base_folder=base_folder, esdl_file_name="3a.esdl", @@ -169,7 +168,7 @@ def test_3a_temperature_variation_return(self): base_folder = Path(run_3a.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblemTvarret, base_folder=base_folder, esdl_file_name="3a.esdl", @@ -233,7 +232,7 @@ def test_hex_temperature_variation(self): base_folder = Path(run_heat_exchanger.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblemTvar, base_folder=base_folder, esdl_file_name="heat_exchanger.esdl", @@ -299,7 +298,7 @@ def test_hex_temperature_variation_disablehex(self): base_folder = Path(run_heat_exchanger.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblemTvarDisableHEX, base_folder=base_folder, esdl_file_name="heat_exchanger.esdl", @@ -341,7 +340,7 @@ def test_hex_temperature_variation_secondary(self): base_folder = Path(run_heat_exchanger.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblemTvarSecondary, base_folder=base_folder, esdl_file_name="heat_exchanger.esdl", @@ -379,7 +378,7 @@ def test_heat_pump_varying_temperature(self): base_folder = Path(run_heat_pump.__file__).resolve().parent.parent - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblemTvar, base_folder=base_folder, esdl_file_name="heat_pump.esdl", diff --git a/tests/test_warmingup_unit_cases.py b/tests/test_warmingup_unit_cases.py index 1ba27c43b..19439580d 100644 --- a/tests/test_warmingup_unit_cases.py +++ b/tests/test_warmingup_unit_cases.py @@ -3,11 +3,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization import numpy as np -from rtctools.util import run_optimization_problem - from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -34,7 +33,7 @@ def test_1a(self): base_folder = Path(run_1a.__file__).resolve().parent.parent # Just a "problem is not infeasible" - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="1a.esdl", @@ -103,7 +102,7 @@ def test_2a(self): base_folder = Path(run_2a.__file__).resolve().parent.parent # Just a "problem is not infeasible" - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="2a.esdl", @@ -139,7 +138,7 @@ def test_3a(self): base_folder = Path(run_3a.__file__).resolve().parent.parent # Just a "problem is not infeasible" - heat_problem = run_optimization_problem( + heat_problem = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, esdl_file_name="3a.esdl", From e482504798d44da45472f2adefe4ac1ce8bd1235 Mon Sep 17 00:00:00 2001 From: JimRojer-TNO <137045207+jimrojerTNO@users.noreply.github.com> Date: Thu, 25 Apr 2024 17:28:59 +0200 Subject: [PATCH 102/275] Emerge workflow (#50) * created the emerge wf and a simple test to check if the problem is solved. --------- Co-authored-by: Femke Janssen --- src/mesido/workflows/emerge.py | 244 +++++++++++++++++++++++++++++++++ tests/test_emerge.py | 30 ++++ 2 files changed, 274 insertions(+) create mode 100644 src/mesido/workflows/emerge.py create mode 100644 tests/test_emerge.py diff --git a/src/mesido/workflows/emerge.py b/src/mesido/workflows/emerge.py new file mode 100644 index 000000000..8020826c7 --- /dev/null +++ b/src/mesido/workflows/emerge.py @@ -0,0 +1,244 @@ +import os +import time + +import casadi as ca + +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.io.write_output import ScenarioOutput + +from rtctools.optimization.collocated_integrated_optimization_problem import ( + CollocatedIntegratedOptimizationProblem, +) +from rtctools.optimization.goal_programming_mixin_base import Goal +from rtctools.optimization.linearized_order_goal_programming_mixin import ( + LinearizedOrderGoalProgrammingMixin, +) +from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin +from rtctools.util import run_optimization_problem + + +class MaxRevenue(Goal): + + priority = 1 + + order = 1 + + def __init__(self, asset_name: str): + """ + The constructor of the goal. + + Parameters + ---------- + source : string of the source name that is going to be minimized + """ + + self.asset_name = asset_name + + def function( + self, optimization_problem: CollocatedIntegratedOptimizationProblem, ensemble_member: int + ) -> ca.MX: + """ + This function returns the state variable to be minimized. + + Parameters + ---------- + optimization_problem : The optimization class containing the variables'. + ensemble_member : the ensemble member. + + Returns + ------- + The negative revenue var of the optimization problem. + """ + return -optimization_problem.extra_variable(f"{self.asset_name}__revenue", ensemble_member) + + +class MinCost(Goal): + + priority = 1 + + order = 1 + + def __init__(self, asset_name: str): + # self.target_max = 0.0 + # self.function_range = (0.0, 1.0e9) + # self.function_nominal = 1.0e7 + + self.asset_name = asset_name + + def function( + self, optimization_problem: CollocatedIntegratedOptimizationProblem, ensemble_member: int + ) -> ca.MX: + + return optimization_problem.extra_variable( + f"{self.asset_name}__fixed_operational_cost", ensemble_member + ) + optimization_problem.extra_variable( + f"{self.asset_name}__variable_operational_cost", ensemble_member + ) + + +class EmergeWorkFlow( + ScenarioOutput, + ESDLAdditionalVarsMixin, + TechnoEconomicMixin, + LinearizedOrderGoalProgrammingMixin, + SinglePassGoalProgrammingMixin, + ESDLMixin, + CollocatedIntegratedOptimizationProblem, +): + """ + This problem class is for the absolute heat tests. Meaning that this problem class + is applied to an esdl where there is no dedicated supply or return line. For this test case + we just match heating demand (_GoalsAndOptions) and minimize the energy production to have a + representative result. + """ + + # TODO: this workflow is still work in progress and this part of code still needs to be + # finalised + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.gas_network_settings["head_loss_option"] = HeadLossOption.NO_HEADLOSS + + def goals(self): + + goals = super().goals().copy() + + for asset_name in [ + *self.energy_system_components.get("electricity_demand", []), + *self.energy_system_components.get("gas_demand", []), + ]: + goals.append(MaxRevenue(asset_name)) + goals.append(MinCost(asset_name)) + + for asset_name in [ + *self.energy_system_components.get("electricity_source", []), + *self.energy_system_components.get("gas_tank_storage", []), + *self.energy_system_components.get("electricity_storage", []), + *self.energy_system_components.get("electrolyzer", []), + *self.energy_system_components.get("heat_pump_elec", []), + ]: + goals.append(MinCost(asset_name)) + + return goals + + def constraints(self, ensemble_member): + constraints = super().constraints(ensemble_member) + + for gs in self.energy_system_components.get("gas_tank_storage", []): + canonical, sign = self.alias_relation.canonical_signed(f"{gs}.Stored_gas_mass") + storage_t0 = sign * self.state_vector(canonical, ensemble_member)[0] + constraints.append((storage_t0, 0.0, 0.0)) + canonical, sign = self.alias_relation.canonical_signed(f"{gs}.Gas_tank_flow") + gas_flow_t0 = sign * self.state_vector(canonical, ensemble_member)[0] + constraints.append((gas_flow_t0, 0.0, 0.0)) + + for es in self.energy_system_components.get("electricity_storage", []): + canonical, sign = self.alias_relation.canonical_signed(f"{es}.Stored_electricity") + storage_t0 = sign * self.state_vector(canonical, ensemble_member)[0] + constraints.append((storage_t0, 0.0, 0.0)) + + return constraints + + def solver_options(self): + """ + This function does not add anything at the moment but during debugging we use this. + + Returns + ------- + solver options dict + """ + options = super().solver_options() + options["solver"] = "highs" + return options + + def times(self, variable=None): + return super().times(variable)[:25] + + def energy_system_options(self): + """ + This function does not add anything at the moment but during debugging we use this. + + Returns + ------- + Options dict for the physics modelling + """ + options = super().energy_system_options() + options["minimum_velocity"] = 0.0 + options["heat_loss_disconnected_pipe"] = False + options["neglect_pipe_heat_losses"] = False + options["include_asset_is_switched_on"] = True + options["include_electric_cable_power_loss"] = False + return options + + def post(self): + # In case the solver fails, we do not get in priority_completed(). We + # append this last priority's statistics here in post(). + # TODO: check if we still need this small part of code below + success, _ = self.solver_success(self.solver_stats, False) + # if not success: + # time_taken = time.time() - self.__priority_timer + # self._priorities_output.append( + # ( + # self.__priority, + # time_taken, + # False, + # self.objective_value, + # self.solver_stats, + # ) + # ) + + super().post() + + # Optimized ESDL + self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) + + self._save_json = False + + if os.path.exists(self.output_folder) and self._save_json: + self._write_json_output() + + results = self.extract_results() + + for _type, assets in self.energy_system_components.items(): + for asset in assets: + print("----------------------------------") + print(f"{asset} financials:") + try: + print(f"revenue of {asset} in MEUR/day: ", results[f"{asset}__revenue"] / 1e6) + except KeyError: + print(f"{asset} does not have a revenue") + pass + try: + print( + f"fixed operational costs of {asset} in MEUR/yr : ", + results[f"{asset}__fixed_operational_cost"] / 1e6, + ) + print( + f"variable operational costs of {asset} : ", + results[f"{asset}__variable_operational_cost"] / 1e6, + ) # not yet all included in financialmixin + print(f"max size of {asset} : ", results[f"{asset}__max_size"]) + except KeyError: + print(f"{asset} does not have a costs") + pass + + +if __name__ == "__main__": + + tic = time.time() + elect = run_optimization_problem( + EmergeWorkFlow, + esdl_file_name="emerge_solar_battery.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_with_PV.csv", + ) + print(time.time() - tic) + results = elect.extract_results() + a = 1 diff --git a/tests/test_emerge.py b/tests/test_emerge.py new file mode 100644 index 000000000..2956db7ba --- /dev/null +++ b/tests/test_emerge.py @@ -0,0 +1,30 @@ +from pathlib import Path +from unittest import TestCase + +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization + + +class TestEmerge(TestCase): + def test_emerge_workflow(self): + """ + This test checks if the emerge workflow is succesfully optimized + + Checks: + 1. check if solver succeeds + + """ + import models.emerge.src.example as example + from mesido.workflows.emerge import EmergeWorkFlow + + base_folder = Path(example.__file__).resolve().parent.parent + + _ = run_esdl_mesido_optimization( + EmergeWorkFlow, + base_folder=base_folder, + esdl_file_name="emerge.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) From 58dd0e59ae727b5c740e0a60fb5a949b03f0f184 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Fri, 26 Apr 2024 10:23:14 +0200 Subject: [PATCH 103/275] bug fix (#51): Writing results to influxDB of deleted assets --- src/mesido/workflows/io/write_output.py | 88 +++++++++++++------------ 1 file changed, 45 insertions(+), 43 deletions(-) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index d99b1879a..17a824388 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -901,53 +901,55 @@ def _name_to_asset(name): *self.energy_system_components.get("heat_exchanger", []), *self.energy_system_components.get("heat_pump", []), ]: - # Note: when adding new variables to variables_one_hydraulic_system or" - # variables_two_hydraulic_system also add quantity and units to the ESDL for the new - # variables in the code lower down - # These variables exist for all the assets. Variables that only exist for specific - # assets are only added later, like Pump_power - variables_one_hydraulic_system = ["HeatIn.Q", "Heat_flow"] - variables_two_hydraulic_system = [ - "Primary.HeatIn.Q", - "Secondary.HeatIn.Q", - "Heat_flow", - ] - - # Update/overwrite each asset variable list due to: - # - the addition of head loss minimization: head variable and pump power - # - only a specific variable required for a specific asset: pump power - # - addition of post processed variables: pipe velocity - if self.heat_network_settings["minimize_head_losses"]: - variables_one_hydraulic_system.append("HeatIn.H") - variables_two_hydraulic_system.append("Primary.HeatIn.H") - variables_two_hydraulic_system.append("Secondary.HeatIn.H") - if asset_name in [ - *self.energy_system_components.get("heat_source", []), - *self.energy_system_components.get("heat_buffer", []), - *self.energy_system_components.get("ates", []), - *self.energy_system_components.get("heat_exchanger", []), - *self.energy_system_components.get("heat_pump", []), - ]: - variables_one_hydraulic_system.append("Pump_power") - variables_two_hydraulic_system.append("Pump_power") - elif asset_name in [*self.energy_system_components.get("pump", [])]: - variables_one_hydraulic_system = ["Pump_power"] - variables_two_hydraulic_system = ["Pump_power"] - if asset_name in [*self.energy_system_components.get("heat_pipe", [])]: - variables_one_hydraulic_system.append("PostProc.Velocity") - variables_two_hydraulic_system.append("PostProc.Velocity") - # Velocity at the pipe outlet [m/s] - post_processed_velocity = ( - results[f"{asset_name}.HeatOut.Q"] / parameters[f"{asset_name}.area"] - ) - - profiles = ProfileManager() - profiles.profile_type = "DATETIME_LIST" - profiles.profile_header = ["datetime"] try: # If the asset has been placed asset = _name_to_asset(asset_name) + # Note: when adding new variables to variables_one_hydraulic_system or" + # variables_two_hydraulic_system also add quantity and units to the ESDL for + # the new variables in the code lower down + # These variables exist for all the assets. Variables that only exist for + # specific + # assets are only added later, like Pump_power + variables_one_hydraulic_system = ["HeatIn.Q", "Heat_flow"] + variables_two_hydraulic_system = [ + "Primary.HeatIn.Q", + "Secondary.HeatIn.Q", + "Heat_flow", + ] + + # Update/overwrite each asset variable list due to: + # - the addition of head loss minimization: head variable and pump power + # - only a specific variable required for a specific asset: pump power + # - addition of post processed variables: pipe velocity + if self.heat_network_settings["minimize_head_losses"]: + variables_one_hydraulic_system.append("HeatIn.H") + variables_two_hydraulic_system.append("Primary.HeatIn.H") + variables_two_hydraulic_system.append("Secondary.HeatIn.H") + if asset_name in [ + *self.energy_system_components.get("heat_source", []), + *self.energy_system_components.get("heat_buffer", []), + *self.energy_system_components.get("ates", []), + *self.energy_system_components.get("heat_exchanger", []), + *self.energy_system_components.get("heat_pump", []), + ]: + variables_one_hydraulic_system.append("Pump_power") + variables_two_hydraulic_system.append("Pump_power") + elif asset_name in [*self.energy_system_components.get("pump", [])]: + variables_one_hydraulic_system = ["Pump_power"] + variables_two_hydraulic_system = ["Pump_power"] + if asset_name in [*self.energy_system_components.get("heat_pipe", [])]: + variables_one_hydraulic_system.append("PostProc.Velocity") + variables_two_hydraulic_system.append("PostProc.Velocity") + # Velocity at the pipe outlet [m/s] + post_processed_velocity = ( + results[f"{asset_name}.HeatOut.Q"] / parameters[f"{asset_name}.area"] + ) + + profiles = ProfileManager() + profiles.profile_type = "DATETIME_LIST" + profiles.profile_header = ["datetime"] + # Get index of outport which will be used to assign the profile data to index_outport = -1 for ip in range(len(asset.port)): From 1c1b0f053bed9c6d3f08f3e41bd30cf4ef1d6b36 Mon Sep 17 00:00:00 2001 From: Rojer Date: Fri, 26 Apr 2024 14:03:52 +0200 Subject: [PATCH 104/275] adding esdl requirements --- src/mesido/esdl/esdl_heat_model.py | 487 +++++++++++++++++++++++++++++ 1 file changed, 487 insertions(+) diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index a13c7dc51..77d0e3f5a 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -206,6 +206,31 @@ def convert_heat_buffer(self, asset: Asset) -> Tuple[Type[HeatBuffer], MODIFIERS - Setting the relevant temperatures. - Setting the relevant cost figures. + Required ESDL fields: + --------------------- + - volume/capacity + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified + + Optional ESDL fields: + --------------------- + - max(Dis)ChargeRate + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -316,6 +341,30 @@ def convert_heat_demand(self, asset: Asset) -> Tuple[Type[HeatDemand], MODIFIERS - Setting the relevant temperatures. - Setting the relevant cost figures. + Required ESDL fields: + --------------------- + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified + + Optional ESDL fields: + --------------------- + - power + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -351,6 +400,29 @@ def convert_node(self, asset: Asset) -> Tuple[Type[Node], MODIFIERS]: - Setting the amount of connections + Required ESDL fields: + --------------------- + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with (note only one inport and one outport): + - xsi:type + - id + - name + - connectedTo (allowed to have multiple connections) + - carrier with temperature specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -411,6 +483,32 @@ def convert_heat_pipe( - Setting the relevant temperatures. - Setting the relevant cost figures. + Required ESDL fields: + --------------------- + - Diameter/inner_diameter + - length + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with (note only one inport and one outport): + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified + + Optional ESDL fields: + --------------------- + - Material (for insulation) + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -525,6 +623,29 @@ def convert_pump(self, asset: Asset) -> Tuple[Type[Pump], MODIFIERS]: - Setting the relevant temperatures. - Setting the relevant cost figures. + Required ESDL fields: + --------------------- + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with (note only one inport and one outport): + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -569,6 +690,31 @@ def convert_heat_exchanger(self, asset: Asset) -> Tuple[Type[HeatExchanger], MOD - Setting the relevant temperatures (also checked for making sense physically). - Setting the relevant cost figures. + Required ESDL fields: + --------------------- + - heatTransferCoefficient/power + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - 2 InPorts and 2 OutPorts with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified + + Optional ESDL fields: + --------------------- + - efficiency + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -699,6 +845,32 @@ def convert_heat_pump(self, asset: Asset) -> Tuple[Type[HeatPump], MODIFIERS]: - Setting the relevant temperatures. - Setting the relevant cost figures. + Required ESDL fields: + --------------------- + - power + - COP + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - 2 InPorts and 2 OutPorts with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified + + Optional ESDL fields: + --------------------- + - efficiency + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -778,6 +950,31 @@ def convert_heat_source(self, asset: Asset) -> Tuple[Type[HeatSource], MODIFIERS - Setting the relevant temperatures. - Setting the relevant cost figures. + Required ESDL fields: + --------------------- + - power + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified + + Optional ESDL fields: + --------------------- + - aggregationCount + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -877,6 +1074,32 @@ def convert_ates(self, asset: Asset) -> Tuple[Type[ATES], MODIFIERS]: - Setting the relevant temperatures. - Setting the relevant cost figures. + Required ESDL fields: + --------------------- + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified + + Optional ESDL fields: + --------------------- + - max(Dis)ChargeRate + - aquiferMidTemperature + - aggregationCount + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -969,6 +1192,29 @@ def convert_control_valve(self, asset: Asset) -> Tuple[Type[ControlValve], MODIF - Setting the relevant temperatures. - Setting the relevant cost figures. + Required ESDL fields: + --------------------- + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -1011,6 +1257,29 @@ def convert_check_valve(self, asset: Asset) -> Tuple[Type[CheckValve], MODIFIERS - Setting the relevant temperatures. - Setting the relevant cost figures. + Required ESDL fields: + --------------------- + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -1041,6 +1310,30 @@ def convert_electricity_demand(self, asset: Asset) -> Tuple[Type[ElectricityDema - Setting the electrical power caps + Required ESDL fields: + --------------------- + - power + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with voltage specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -1081,6 +1374,30 @@ def convert_electricity_source(self, asset: Asset) -> Tuple[Type[ElectricitySour - Setting the electrical power caps + Required ESDL fields: + --------------------- + - power + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with voltage specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -1120,6 +1437,29 @@ def convert_electricity_node(self, asset: Asset) -> Tuple[Type[ElectricityNode], - Setting the number of connections + Required ESDL fields: + --------------------- + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo (allowed to have multiple connections) + - carrier with voltage specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -1160,6 +1500,31 @@ def convert_electricity_cable(self, asset: Asset) -> Tuple[Type[ElectricityCable - Setting the length of the cable used for power loss computation. - setting the min and max current. + Required ESDL fields: + --------------------- + - length + - capacity + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with voltage specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -1202,6 +1567,29 @@ def convert_gas_demand(self, asset: Asset) -> Tuple[Type[GasDemand], MODIFIERS]: - ... + Required ESDL fields: + --------------------- + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with pressure specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -1246,6 +1634,29 @@ def convert_gas_source(self, asset: Asset) -> Tuple[Type[GasSource], MODIFIERS]: - ... + Required ESDL fields: + --------------------- + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with pressure specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -1283,6 +1694,35 @@ def convert_electrolyzer(self, asset: Asset) -> Tuple[Type[Electrolyzer], MODIFI This function converts the Electrolyzer object in esdl to a set of modifiers that can be used in a pycml object. + Required ESDL fields: + --------------------- + - power + - minLoad + - maxLoad + - effMinLoad + - effMaxLoad + - efficiency + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with voltage/pressure specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -1350,6 +1790,30 @@ def convert_gas_tank_storage(self, asset: Asset) -> Tuple[Type[GasTankStorage], This function converts the GasTankStorage object in esdl to a set of modifiers that can be used in a pycml object. + Required ESDL fields: + --------------------- + - workingVolume + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with pressure specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -1388,6 +1852,29 @@ def convert_gas_substation(self, asset: Asset) -> Tuple[Type[GasSubstation], MOD This function converts the GasTankStorage object in esdl to a set of modifiers that can be used in a pycml object. + Required ESDL fields: + --------------------- + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with pressure specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. From e2f30cb181d9d262f07957fc387620f7e5de191d Mon Sep 17 00:00:00 2001 From: Rojer Date: Fri, 26 Apr 2024 14:06:10 +0200 Subject: [PATCH 105/275] added esdl requirements --- src/mesido/esdl/esdl_heat_model.py | 96 ++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 761685888..60231a7f8 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -2151,6 +2151,29 @@ def convert_compressor(self, asset: Asset) -> Tuple[Type[Compressor], MODIFIERS] This function converts the Compressor object in esdl to a set of modifiers that can be used in a pycml object. + Required ESDL fields: + --------------------- + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with pressure specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -2194,6 +2217,30 @@ def convert_gas_boiler(self, asset: Asset) -> Tuple[GasBoiler, MODIFIERS]: This function converts the GasHeater object in esdl to a set of modifiers that can be used in a pycml object. + Required ESDL fields: + --------------------- + - power + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with pressure/temperature specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -2260,6 +2307,30 @@ def convert_elec_boiler(self, asset: Asset) -> Tuple[ElecBoiler, MODIFIERS]: This function converts the ElectricBoiler object in esdl to a set of modifiers that can be used in a pycml object. + Required ESDL fields: + --------------------- + - power + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with voltage/temperature specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. @@ -2333,6 +2404,31 @@ def convert_air_water_heat_pump_elec( This function converts the ElectricBoiler object in esdl to a set of modifiers that can be used in a pycml object. + Required ESDL fields: + --------------------- + - power + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with voltage/temperature specified + + Optional ESDL fields: + --------------------- + - COP + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + Parameters ---------- asset : The asset object with its properties. From 8ad493b59f5ca0418b053d2f04af51852a9ca142 Mon Sep 17 00:00:00 2001 From: Rojer Date: Fri, 26 Apr 2024 17:52:26 +0200 Subject: [PATCH 106/275] starting with copying the paper and getting it in the right rst format --- docs/conf.py | 1 + docs/images/linearlines.png | Bin 0 -> 57299 bytes docs/references.bib | 15 ++ docs/theory/Workflows.rst | 35 ++- docs/theory/electricity_physics.rst | 6 + docs/theory/gas_physics.rst | 6 + docs/theory/heat_physics.rst | 358 ++++++++++++++++++++++++++++ docs/theory/index.rst | 9 +- docs/theory/introduction.rst | 2 + docs/theory/philosophy.rst | 18 ++ docs/theory/physics.rst | 41 ++++ 11 files changed, 482 insertions(+), 9 deletions(-) create mode 100644 docs/images/linearlines.png create mode 100644 docs/theory/electricity_physics.rst create mode 100644 docs/theory/gas_physics.rst create mode 100644 docs/theory/heat_physics.rst create mode 100644 docs/theory/philosophy.rst create mode 100644 docs/theory/physics.rst diff --git a/docs/conf.py b/docs/conf.py index 1ddfcb333..59b44a3be 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -22,6 +22,7 @@ # -- Project information ----------------------------------------------------- project = 'Multi-Energy-Systems Integrated Design and Operations' +html_title = 'MESIDO' author = 'Jim Rojer, Kobus van Rooyen and Femke Janssen' review = 'Kobus van Rooyen and Femke Janssen' diff --git a/docs/images/linearlines.png b/docs/images/linearlines.png new file mode 100644 index 0000000000000000000000000000000000000000..786ddfb639a0d7e27d675908da7e0cfdb5242562 GIT binary patch literal 57299 zcmeFZc{JC3_&)eiN{Y%>v``W$JB6~;lbsSuvQ`M$BTKfHr;sEhJB5-`Ldc%%*%jIM zHTzDM&s^{7`F&^R%sF%Bk2&+tIHye?@8z}J_jO(Ob-%pNot3BEylXRwM50wxkWnX* z)(??L>$Em)#CN7xD-YriaeG-UdkyPr_KsI>7?aLivA40Xwzn|5y3fJ*hMk$Ul`x+$ zp9s%BQ+sX6w&}Cq>GBtek+JvO=UncrWDx7THP{rO@#cXH>SA4*=gdFb!YXr83d`}4`7&4-@*{Q0C7 z#RmJo*FW<7e_eFL|9{c{e@rm~|KBXB&(-xC6n;MR@#!t`-Tf&$+fXQ!NAL0P^{VA{ zh56rq|9v8Ca@N8^#KD}Fu~s-_x2V;V6OLBO!TW!&bj_Zh4R8Ct236D>Z`wS>@;E#D z1ZgL~z6iNhJtj7`Io)#i+{lm8j*gC)G_SJW;k3g6$A*aCw7!`i<>2^tWobr7VrN+= zab@}VG?VHGmTlX%`83k+-RtY)vjso5!^4i=zx12=1rEzv;9jU)K@?s0^ zpLO&9XyibVpwOxIS%bZ(meeTG~^g`w*A8seUq;V*?eH z-RiHKZEbCnQ&R;U9a7EGA*IE|QIfWaWNee)BV7}K&e?DEx}yPK+n`v;qmct-E0S6mxXa| zBDN^7|B5^4Eh8__z{27kA0L0#go#d3jx&&2RaKS!zya^akJIhNFF1soZ%i?+ z5C~PV=**M6@OYu@rE)O-^=P*!U-P`URhyU!Cqpowo>ICSXS|8?`xB1iiT>w^kf*4L z&`6%_Dp(&887Ua5;yP8l^BJG~?+Fyz&YQ|Pz3r{$J9Z(V04#}AqjLJ=_CuG419&*C zJ97T@^fWYy&!8r*oi^73DwauqsXusXb~a8WROqDZIgg3lh1c3?hoz*X#Eu_V$F<}hF`v@X(z?4U zF}!OQSA2GB?q_#@|9vcTS)Uy*J;-Y^va*s5GmI=O<*(IZG5gp1gHvjSdOp3wGKvj7l*EW1~adELWMs~|%R>`nF_nmyY3dvWC zD{Bf8FQp35^d|iD2#A&Un=aXH-8DAm8yLuNQ0eLApWhR_pMB4|HFsDq+uj4-BZozI`| zyZ-%k0haktOWKix%Fp@+s={68n@!HY(+*l)UI-Mm?x0*?k#ZG#@#4koc>C_#SZmYs zt=0^5bf*TZBN=9MZ}e}b-6it;=1Aj5i{=2&ZEWjou$Ol5YRgnStJh@+0Y6wxjh!M(%&ko!c(&$7+l*vH$s<`ZgYKa&39yTjC|*4z~q83rovPrzv*n zmC5z~{{91V9|;7*5h=iNntJnQA<}_EhlY~fz7!Vv26CzH>hA95)>gK#NSwk>J#g&U zFp|m!W#1? zA|W9`^SLSAGCVUE3;O}Wmn~j_ayi$2IG}rcJnH#lOy;iJ{#>f82LuFa+gO>IP5a6N zOUs^e2h#1>@$C7r&sv{suEb;=IB>xC_3PI%W7tno6wEI3qkjmT< z?+G=PPRd`)!h={*Qc;DsvP!vzyzay{qNSpuioKYmKaftfjg^^?k56u@r`Wf)_MF{v z!`q9r7cc&hk$zh`{5>IXY9ga{*U{_D>FMbu{s-hMEpcbLk;ZqlpPRC7zP-Zyz_zc9 zZoR-OmC)%T!>9ZP9f$OD7CjmR>Jx|4!dT-PT@sBXu)a!u&5Z=QM(?B>xpF3{A-;TL zK$gf|zM8mZuIx{{=|fdqguR4mEL1qVil4px+B07Ez&$N$d9BlJVeg$gcLw~GZ@)Sd z9&k{3$1|QwUydZ@OcyO%H>ce9^4f&pLL`k$NsQP>^B<3$X9hxBX$mhlyt(i_L4(S` zz+k*R+oWUQ=TD`y>kUmg&UP_|vp*ZQAY;r};x}UD$ocLno*!#v_#Pr|cP$GuXUaz2 z)Bf1odp|OFQfPy##&_GY1fdKc?k$(c5hvl zL}2!Q|F+GKKiIRBTVcu(q3-Ku-mo2S6Ss2#Fj^W2xBlcf!HQ_^mrE}8*-3Fo`=e=$ zCD|(5Wr2@^g2JLBN4)%7=N%5!1b+P-r-b>K1*OXn|j`bE8sn_nJUa%J^%r&4;x6Kbl1cSuf7 z7Gyht^!W%00keWty7g<&ky2&;Tp29X1l`P(C3gm{vvJ5i-{0$nM~K_0C+SP-yUktD zPP;yLKA4^WfeI~PKQ$aaz=h+y&hoXzY_Ix!~CRvc_H8V zV^wdF-b|nh#j^l=D*AmQ(;hxPJ_p3an73{7ix2yk_a%>B7Gt3RV$ptmeSPnABK{N5 z!JA^WuIL)z>WfqNHd3cYiraA(jNw1J`uk;VYy@a`A9MYATs87|@kmmB)blZfwv+V- z>J^uIeE7?P`Pl%XRVE|ID>F5!H_7a>4?o!UA}ond7in|{p6>o~e`#qj8sSJaz+~IX zH)16(PVOfHIEGF21Mj|lB>B?({Ljv_x{*?DVZr*hxKDM;*9^`$i70vW6nV?Eo{g3| z1C$UGt#N1FhM^xxY>1Et*xBy}8@PueAqqK7UY;?V@Z;pOXihn}-D9H+QVjvAPJ3>3 z8^1*)h@xMnp-0PWu~fCvEm#n&Ujb}>yxwrQ&I8!xSn1=vhMjqCe(kEUa=te9_D0AB zGBPV})SrLrhy&EF!A%y|`{!V8h zfi>yfJ6_H}?gE9IDk?O1Yxg(H8J4X(ZmY%09n6di^QWnJDp~*HG}TPG_b=G4+2Z%H%9EdRy!@_=@?nET47%yt19 z&NE?@pLbj5P!y3z*K$?D5FVF&yySy-tt_{=+}_M|m}EmSS2?jeScoR>rz4?J4$Q&}Cau1vz=N_rx>YTrKt5nU)M|Rb=ulJ9wTe__HI6 zOBa}RGjOVOEp&Rsp9w$q(d^rU>kV(ZvG{?IrWO|BuNFV#(Mjhi5Oj5Q1)h83Je`4Y zzR~}c35a91Nu!1Q4*CAk9`S&S`p)+e(*nD?E^8*~uYRw%c_BglJ}{~<7CC{fbgXk_ z5iW^54^(K3l&2VVe^TP`#rKt;YZ=S53>US&flRovx>{vGpELdS z2m)&@hWFR}m@@L!;_5;t@py<_MMXs+3*p=voCMT)K*RD6u;EZs@_{Q?u2e=#M}N7$ z#crtf#o&8q+#6FFjFAryzO+15%0}!s#NDHQP1ddHzDN-D7(4=LBNb3>-E$fH6fmzr z!uk{TsQ@DxK%P@P<+L zA>);*u%nd`;tVDxgB;7gd&KEM8?V(wRe8}JC<7eELM|4dnMc6sa*v9NS^*w%U70F% zU7h>kN?u)PYHs#Fa*+@7A&UgWFy;X;KiZZVs4Bhsv^B$8BTj)%^PRRaYlHhPzn_<| zG1hOS*@sM;GuNnNKV09Rz@-o_;Vfia@yr-#PbKnr(5FvgHwLTEe0y~!`j^k$_@fS^ zT8A&ZDMGjlIcmNG2-c`7EJ*#OlAuZT9=rUz8@8li%M%H<$eSTKE$!vCsxShr=D983 z0E(hq-YelGU}a@h86tQOfja<<8{>aBKAsDK3tRLEuFdALQqYuaxHOttvx%0LNF9Lc z_Y3Y(g)ay3>O3PB%vftiD)uZkBf$}{Rh4S3!NC@nmxb{h*oP6wI`7zOMuKW|z;&`U> z3}i-?x&RGd-sMJU(*`iqpl%*1!IP!#J`mf&j{=r4r?{6>qflVJY9cjxHM%Zh({$YM_ z4X+0nfbg;q?H0_d^Pt@5>hk;;w|+2@gKt1spqWq;2$gcndZ|q39D_U{ec>b%GS`R^ z^Trtm-F*V}^+8@~DX9=G&155w-`uoq8=<PK}oU)A@>#;D$>M%LCz{D%=P>!}L`m}k3bo>_`-ayUyV=P5kc&HAi*rMCX1 zcTgSoIJ+u$g1J4pIo*C(9SFr6gd2#|82nRl+yqfKXR2g3_-ohDkOD$OsKAwVf`Wq7 zzsB0LgR3J?5c?77%*N3%9{VIwCxfp}icK%cbzxjD%VA6@-J;p%=FNUYpOZc2pV{U- z+C0eiGXrOUfn}p4oNa7u_90Wxjy4AZB5=Iv#g-E>tEaqp@uHAPwFp2!LfgL}hSikYIP^g&8yhY4vTaGisi4!OA?7z;JZlIT} zLD*1EF;H6JTR+;8<^xrsXLM8ruQk+~!H)&+`tujtU`MVC_@yUyTW?p_Nrau@Z}Hmz zJ*j^oP6|MJA;K%f1f%N6J z!uH^bfWuDKwKhtu3^ce{URcaqM{ibBW{C{j;2i?uG~$(eVg=P>s}=! zrb^3;?{!~bQlXR7z0(ohyo09XE$;WyHvc!))~no$vqec>7}Lyy&f2Qy`+IOgk_G~$Hgm>M#D;uyyb8q8#U$Ma)@q zwj)23KN7JFpqJDp8_I8_-6aFi1a{RAiQ?#lHGr9jbw>n|X>Rl>BqWZ zOqp$1=<;IO+t*1|)re$Me ziv^1qNJsEFpp$MPH`bEoJ2W&zxf~^E_<(|$_~{Hu*F^y}TI5DKe|FhNfK^sGI;?%MoEDI5UnsQw-GIO!%lhWluEv%3= z3n26XdoS6oUOM6UWe@Z-AD8XtgT`-hAS(dr0sLo1(0k3;~+EJ)PugRCaR zfL&)kdi^N{bF}*}v%7hAgVhi$P{b0>F#h_q+^Ik4Vw4k&w6yek0jtiu)#$kuoj)0s ziOD$8Aiu-w;lmVrZuYB19$Ukt?4J22oD(k;R5c@h#mXgd%T-6@ZM?kr>z8&`QT*4x zqQYpnbzV34$Xbm%0ieG8OHJJZwrnZ2`b~i5>eZ_sQd5=fwQq(WvovkbN?UROnnfZ} znieCEn^Ws$*$et{tOry)_fGq$!$gOrRcngzmJI98YxQx8n0L-k9@yb5BBtAs(T_zR z9{c(8dI#%{9db@iVh^s=K0md7pe9-s+=!Kxm3m&-sO-t$n|v%xBH;1ouLJ;#QA{0p zEWNgP0QW++@dn`tT^_6m_CtbCcAmM0C@c?65^~scEbs402Ayp+MnZxXO#+Qc24vlv zs~R_?O93vs5T0pRgeb8F?WF%l%9#6SPU_bZ%Y#!23WTypQ2ZEKA4qgjJ6jypZ_SS? zLb#p;@V%6JjkE%tF#_62sOBMspU&^Gl;5oIb!OUmwr4wjdvoC}<$>C*Tem{QJLue4 z_DvfS;H4C!7q}L6OQ-YTUa7^d^^NazNiY4@4 zR>@nJP2#2F+1aN>3k5>N&5wQC>3T}*JkRBrNoBHO;m13BTvOK}J;eZvKI79!d?KY* zCcK4~_RRK1RzfcHZdtc}Jww}q+DX-)%;fn`hMWzeX-tRC?NbZS$Z))Ct^)$PVY0~l zj&*0A<=O%;h!a$_MPT8;oW~~w1O(JhdPIG@E{%sJ;`-uLuk*;ejLI=2%l&+Oj{){l zou+y?CYFb6iB|{oQim2HEPKrqgmaR5;s6l0;I&HTbnDKjAx9C9 zwH5vxvWE+<$1G;E51Z>4)hsTE)HSIR?+RHWKopJ8o~M_zNewJ=_VK$>vj?T#~H zBHf4poXXF5_|Fsh%@X;|Za_uqQq}{iD|NTM_oTIca95HR%07M$SrHOSf= z;vjNVHZ&Y9@apY#a&|u0JU^7Dy6Y5q(5v-;--&DLZW^uMc&=PqA>Wk8DvyOWq&Qz5 zDjc6_4RuHyIt>T{u_}>)u9}-y04ZF`y>*mOBgZFtdZtxwCTXWVgaksoPst;eK%-nh zbC1#HE!EZ4HTF3>{o87$QhzN>3`wuLsDFfJb}s(xUchc<;cGO|XNnsdn4pS$zOz2i z_)DsXorA+GBsbT!rNOp5x7{WtCXMg)lu-$Y<`&Sdm`FL8yY_2DH_M*d!^6X2w5b3~ zksvW?=0C1M`4JNnLkXY?RD(!l2+rLZo$iG-HGWW3dnP7S=YBTut_nZ`SO>lE*X%IQ zrJ22=_YRO4Ld`#3X`q@oC!kz!x88dt5V~0^E-k&l-A|V2m*nHCcD+6ltCmoT_f`}b zKCeA%sxClirVJlfTkB%w#c%X&n#d+6C|G8ImdGqu z@phO#j-S0_V+7Y+8qc0soT-s!uoR`am+d$aHsUsx_M<7^LmCNIxpvT2`NhkBF=$6L z6BXX;W@=^Go87J8x_j?lsI-TB%(7IL>t!qm>K5$yP*ci9Tj_l4<{S9dpp(%QYt`52 z?}qCSX}qGj@aFs#6m59)b3!DXr)z;J2BkWBZK)th%)G1v=$0IWRNE@xnLLl{h(;^L#D#!=A~q5Ht29< zz6~Wd#|*ZN3JrcqEg>_1A3oD^{%hp(n#X%jh}jQqKjAR?;at$wDv0FMWcQ{1ogjGh zY0Ha?lNgD-$u&Jay-UegHz4mn2O75@YY9T~pkrn(16U>oizwD$ea9lMJ>|I+04;m z>wdDigLNH+XA}YsCrSMpI&jRYt;{?rS1#Xum8j$)X$g2PexKy2Nru=3@*M|Kd_F13#mwmWWxCpU(2;2fCkT?+4Jg9@8{3qh(Jg_lW~`Q zD9eJ4j#FMpbX@jZy*NwDC({^rWTyeB3BW8j##)YUIe%D__a>L`PUUYx=H8Op`af;S zOuX76r}E>Tk(Nymly&GwAb!XpJwAfSvTJ^RUJhk7U*!JXsO5>STeq%ql}|6r2%6(??&xJFQCFr(rk&hP$8#M8^UGuVhDK{c)jGw{?m^jYVAfb^#RK0YDh`3 zC|{Kzd(+QK-kN<~_gd{hA%G=Orm9P~)aeB?Do?4@R+1=vaD^Fl#CJqduMn;QOnUHC zhsy*D(9qfG5Nt3(efK3}tn}u|*;x@F21``%dCQF(5umSpPrUTa#?DSyLQ>Kf6`fsJ zTgo>S)8h56@d9=;OE`V#9vLxjYHH%R)C*ok3$d%Pq@?5%$V<%NfNj*QgyU#a9f>|y zQ=`YRS)eC6n-~YY#_ur!bKH$9y1X!Mgu@BUk*M@kOwP?69UUE|K`AH}MKbDV%>+h8 zc)N1`y>4?^gm@|eeo^fHF;xH3X9}1)blGirEJF@OVd95~w_C-S_tS59i-nY&IOXfBR1)%PKWWnbZ+4n{Vi8}yJX(0 zR40z;1@eq5)`$l}6MV~Z$|KBTUxIS+dntRcZb{H-b1D%DTrn9+BLcm zTA~PI3#NPp>bt}y-yZeLjG;eomh9I##hG_0Y}fsd5n(yZ#Ls&qfPcgo7bLc0xOnvL z;_0(?z*;a=7b|YlMS9^c7?DjTcT1R4{A%QXYASxzfAGa$OWHIg#{bc-qYn{i=vWv^ zLvJfc{B$VUuPhZ7TvgsxBFm!}6UXqM)lGF0RNe+9_NzTK)f;8HwciSFy)>=PZO!>A z{qVhVqZE7ZfU|Jj;F_>+a5-TKC8(wD*vTr>doGm$9}Va%4cf5xNVidvvjNAFDWx9k zk#~Ccj<5&pfImfsV+``>!9=4iDhpdK5BdjHzTe6-rW=YsYI2f*D+$Dcsn>X}t~i3M z;4KlhDt`QU%a+!}TIUx$bWZaDIERs}wuzTVzK=yaJ5W4oY0H?_8Mxt#MuaR~)Z)MqU$ z?1enN((29Uia|;2?L|(VItARa9UJTSN>SXjdGpn>C;OoUY`raYPu`ZtWB1Iw+8Lj^ zkM>)YgSc4WKjbJcEL?vZGzku(IYx0rAUI`uM@JLYZvBrv>Bo;BE38M@*&9)3e?mNV z_m>T%QN1?tpw)v{$sRwSY;BmXk9D}SQ>xmN&Akk|sTh_ALa0ags^Tvc|NQ#9yYF~< zQvLBvaW1dL#>OrIWxv*le|&b1G5PAPcbwaFbaW&=*x5CI;tn*sM7)%P`6#-6b{D_v zv8MArL85(VY;2KAUp_56hiv!BeKiYDuSlV{7MPps_R#h9M@%s%=SJvmZl+Ac6(4#j z+}g2y`{(DU?tMZDkfa})OMQ6x*us|x(xLv50xs*|(rV3MXT`4?f4rCeG{cB;;A6H( z9wgTkqdRXRKiP=7XD0;Aq2UQLTBKYvX-H}^Q#_W z3pOc+&Og2y&Do?}4hpFI>)KR!(A(4VPvHYv3XBcaOKsY&_!&BqSW`*TP5nb}vkxji zrBN8XP6+2-3J<;`EWx|AY5s7fXZ}j=jk?)m#tGV=Tki%b%DtrfgzgAEXZ7driC897hkgg$m&)Kn`;%ZON&Jz<_lKhe* zIg8qZ>@~`NOs8mo_)7rc#z7ov})O? z;J>Q3zx@aT6h@42dXQY*+-xf%f~u7lZX6MFSO0V)GdE-=f4Zq9&Q&Z)FZ)=$YV<3u zS0%1!q+(y|K(Y`+bdC3t0;@z*=aLW2ypbx&$q?-xfN?jF4ye)#A+ zt>krJB4NiY!w#1Qew2;>gjh<%BRdr1S5{UkyK_)7Q;A*^WV6UBit<^Ym~^;#+4;v| zr)+WU59z?CrRHCIKRUPzu<6}iBY|=A~6$iie%{inQC9qTf zH+xyO1C=a~7Y%`mEpPQeaOmxUfwA@ahbzf%`jWNW2(1o42X2*1i5rvk|Ax_k_c^om z$|9z0IcYb4L*-ZVWKlbD}MZh?t@2}NlPi*}!4`;8{U^Y@$@4)AW?=MU_ z*nKq0WLG_7aKQK+;t3p!IynzK)(lW?)qe{ohW^_CH5ej1!IbG37(6VULHJoDZ;61$ z-)dJo7M(+T`|UkmpX2BEd3xqv$mIi^A$Qi_y!2}^AY|RGjcHJcP$%Hg+eiYfO}3|I zpJtrZW>VZes~t2u3fa^Z9z7U8*G-K?TujvR2WdY|KsAsxcPglyK z;BMgL(9@N&G6fV#d9{_bv_fS4_`SKGo1DXpmlPHj#vH}7ry5u6fCuQ`+}vDQbGrXA zsn%zM%@T?gS}-W|SWvXz~#@5!>M?G@hCG4PcmdMqVt>2idc~EjQ+;b?jV&Pm73N>x}BuHGgq~yUnF6)`K z2O0x;v0*!6FT9l4kvLxtk?rtkn>Ds zw=4PO^6VwICrzIgN3yaTzN-4QY~axy3%ohe5ed{631qC3#rV4%@OzQJ#n1^#kyq>x zG+@P8xq0H>_Z9O13REX&Qp8!>KZp3SU=$@S7$o~z=S2s8O$}) zad6@AJ$VlD=_;ndF3(0k%-SPbEb9YctS+{)$)9D|^ z%VHj)jJH>$-t!FWvWS*`WH2X8h{)4Zb8|!m37*tMm6oM5gvAjc%o3TkGD@=5H5+^l zyJ-FGp(e3gNyp2&-`*h^**Y4@{y4n&NnAVTyg%cA@M*^avZIjWxb6)8bPp$FKA})A zA7SRTF}3vQ%q_RGWA`4((%kQOZKrb3kpT9;@w6x=Z|#>kh?GfQJ5(b0t?rf^eSuJK zDN*c5m9)O=vPt2Wvq6WV3JcZyAI1?NkN8RsA=Fb8&O@vne}4Bq8+kl5Sb2FRV+&84 zGaYF+L*KZLtJ}3V~gh&iv0Bqo-TeCy{`y#B5+xpOT?mgPc`s;>T$NK=T26INmGbk7R zej*>Rf-BHWMp3+jA+)M(ZSX$nmz%TKC$ho1T=S}x+4mP~|GDrmj`i>QPi6TQM_geh{0G1)^h``aM$yU( z{|x8Y^Y8bc+MnlM$D?9-VdL)I_wCA=|4UV}sBRLv50-NkR3m59`2=YWoQghCKxeO& z;_0%jx6q|HCv-7UPj=Mu+eIV7e*=kWt2B8f6$RHLPxIVc2{(dF(HrIm1&B~f(1$5t ze1>uAL;?56sVjB%S~sdfD7ROhX;g0#SO0hL>i~ef7SGA~-M+ z#5WO&uN@~ADygS%39Q?+KF&K+RqH&B-m|g(%CYUF8^$-T$z~jO%4*VyyGEz1{uk&N z!8eX-T4`q|o7c9%1M-jKU_cp=QWLbz$)4Uvl|;D?!M5zH)rInbZX@piS)Q|hM=jt2 z#B*3Uje(X)pppV8X6+I&y*$pa+eBb!q;O^ahaRada#X7>Z8L$1)$Oh?O;_+Yqv!-| ziUL&~NK}y8e~-bidv^s&pUqh}kC32(<-iz4C}C}o$Vyy2BG~*oC_k5XJUAG6M1wuv z^Ptk%3n=sTAn~Dmp--Vl|34REU^oq_V>??l!Fo~pVVDigTcUZppiA+&x}+$_fhi$^ z-|o$i!&faueEy_Bj@`iHgmo5rIEH&bb_Z5cAhnd0#bn)(reT5c$0X09Q}9=YvUGY8m@Z@tZVFjaV| zs=le|P=pVM?B9ux(w32-BnBT?k_4X=OhZp)x>vrmd)n*f1V8a&CSBh-e`UV4|3hkn zVh+1s>|YwFdQd_lg6@Ev&8+E)ku}V)gwF-=opZ=hQXpd9XMX$kT^mjk+a~9McHEXf@vBc79@mG6MYN!G*D6E&4@F2ndh}u@ zB{w3Ah34c|RW413B&8jW^2$$-1aO*B{s}W{fiPj9a7EZ>vE{j%cF^rr_Um63w?DX@ z#3o9mc{Ax@QgG^q!%T|VV4lBU)SKw%SX)`5w1l%mP0a7HZ|uUGd!u>VNw+-%_Zry0 zRl37tm7r;^O-OXF&PFQ1s>Q4KP;38xp>Q31y)>*6ArNzg3`=O>N_%RQ-z2s^KWXdC z$nXi$r{hg2Ip$0c2PYM(ZhU(RIC2A)cRqtW3nByl_vn?Z5>B_HquI~}un%k%?$0aC zaxw0G`fsSQ#w!1*T!UMYJMxSbF{ku$1g+)ON% ze2hJG*L^ObOeJ58!sdK+Et7pXK<-a7ozN%PG6XJvCfSMAzy?6{AP7ZxWR2~KUb$86 z>T;t(C`X%9{!PQ-fT+Lk$FV-!ZTXnHyL(#>iwCbWoRdT>ZH8ClyJPu#AC*@75?2@9 zRQitzPfs*lXHuN_J3RrX2&)8mlAYMX+?+A=Ld6F&M_rNx)=C2hS_{J&W9_O|5;Wf` z$o<``0jI>p#p|+env;NBilKGFFEy3cH?mF7q%X^GpmlXOW6Z_ey9t`{3UV*tS|U<} z&<8lL7ba!!5o zU`;{w_=K$*Y%pMEUlGfBwfwb?{DBqzG+n645eoqeak_wt%?6z|rSt8M!&2?fCb)z+ zx8A;3(RW#?;&-f(rY#f@VAW%oB!gX@21X^iCzfW+Z%8VJ{e89Lj?f(l>PACD`5e|l zM(%*wn|+>18|#gSrM|@WCIwk(NgPS-IP4kuE~fAsLHfbDiAw&N+9(7Slt7Cs`12D} zxA!I6)Bff*3dbEl2RCkGRUxYzG6f}O53t5kYTxDl&PAm zfr>U^J!!ShhnwLU#3S`sIa&zARc`3xKx&ro|LmBy5{|(HweA5`w2w?DxSBIz}WTLd0*$%)De5(HZXY z<)FjGXdoz$JRu4tSaIw|@z=jlH|{hH@mJxZ{P)3wb>~o@fl23)kB@Rp-r%@I+-i)Z z#3rAO&(%9rcz&LzHleyd!zJ!A&ja~z04}D1V=gW(9q!APs8xiUrn}xorvjQas-$=N zd;G-!;OBrSv!?l?|a;sxWY&>wsT4TsBEmemx+m$ zOH3>TadoQKPnt7?<~_z8y*J@#KGFJcT(M&I4Qzm@)0p5k&_da0`B4IaiM*)1oLem) z_{TJRQg!@anRVxc;;D{goiAuFm%1==#vEdB5vm8383dpwudODWPYBrXHemK-s^ss$ z9w!`h_(D&tpHvL|Jt|=$+~qdz2LvM0eb)MZr-qd58QF|CPFaT{$iaZP-J_$A&;~b= zx6Fq!p_*8*(ThKs-rxQ;oP-dt#mf)oLSU_R=#JLSW!rkPfakqy-Mhn~dVAHgRo+7H zmVB?DtF$!TUuF5%#|s6cdu+_I;3r4!Uu>e-3j=8le2vb~EEzs>F;!3eTjV*TOfmH% zesICo_@>`=BU@F87nkIAFfbH?JY33i6$j8DdfTXHNlsxx>>8+y$u-Je^i7vNWKXu z6rQRaXK4WC4L#w=hn@+~%qkrS3kGZ###A$wnIHlP~_c&!ZJ- z#PL_#Fsp=zZ>j6vHZNb_4N&wpLR;RfqthzmcJE7!S-#V@c&m-;pHvn4<2n6Lq<#@E zioPiT11(Xhu$n<>tlhD*|7Ebg()1R;ol~a&=D{IVo@JoO_7~pQKS61BrrVQ^e&|NvawYR z?-1LO`Y;H~t(VO70w#4<IA^>lor2zpP zuI|N1q9~gu9+Cg+=UX5Ev2u+Mr`cnMKN|6SlBFX|pom>qxX$?XXH?ih9i~EoMNkw1 zpA$3%mcIc@qUMQ>Tkd{5yDU}xWClIt!?Wq4e<^pSjU~RcM2#yCR|D#u&4WqSpF5c(iW&`PCQ}Iu9On5f9lH zaWU3utKa$e-;cvFlmh=g%A}@JGo*bYB2Qs0;^3!MFoQp@?@u8x?8l{@&N3A357GDN z1H+rd!fLktFeGUVSis{^G|EB2vnuayyek2qB}SiUch1O!hyJDVPILv`iHu}_qQ$@J zpzRH_ko0_OZTuW6KHnhG8of~xL1x9p*wx$X0f( zXhXaE_U#dL?bM~11q{TkeZ2o08V8i2{L1j}42rT64%{7aUzR{pxx-tJqEKdP``D`5!eA3SI0EHc-zz{yQUW zeQ@Q2>(UJvnysux>SC#2Pd$@Dj%{vXJF{u9+o<&G_yz93iX%sHGk6jSzY~Ei;GHC- z!WWo!qBZkNgLjS?_UBC)7IukRRl?LkhS|pL1pFNA0S>E^h1;mVEWv3|fsTtHqfYse z2x)Dlu{w*f;nj~0*pzT-Vi!wcJcKh$;4stAy`_fU-z}P40j}6B-;s#L;DWionJEV4 zIoy&Nj6^y3ATdJaiSDbv2(v0Iw_x~e2uwjn`Eg&IA_F z3Qr2M4Ppw1Gxu|y1oQ*=qn~FA0~mnTCgoss{IIig7om5`PkJo`A*c?w=UDz%M&_II zu+&zg4>oyl-UGBe>v~j=f-!MZXnMR_%`+!%%^rdgum=O2PUseR_VXy^!(gQ*MyNcB zCa8-E2?-UHCB?@NVt?Dnh(tac?XL|wNy^dfQ8ibc=-%@gwWmGRZf z0~c>5DV0YI3r9fpgv-i2uN|&J6mb3t6*7ip@hCh1#9;KBg`%ke24Q&7s==*!^oZts zFOKzpBo{Q!4nhhh`fBhjrSn8`TaC#tbiQ_xDsNPcSMR~h^1_6$^RyAVUJ5D4U`PUg zBC7pRl(rKCfzqopY&NE~&nYlQw|c@ei0f++CO(kT-;&Nf6VR9s$%?;v7guW!5g9&t zWU9NZlvgTZXHB>N^`r3*sCPR=c>1Kl1;%%2$>q4$FPxkG1YUA zYmUO=6OZj6V%froj0LBye_!|~2&pKL?|A(?a;+)T6iu`%6;bAJMMU)WQ4)$1*ZAGwJs1u_$<>-T|tc>Ard#+8_Z- z2|W}o06|2LIL2}S%LLd3^-2&A#T4sX%bIGKJC0nWcH`;3as)Ic((c{62}}a#Ou(pz zC`W(;P+U?gDhEG_B>YxQz(?nLP(%-2sMsXhtpwnp3Ut}~qJdiwzK5Q8iv6mT+dz{79THfKKcWx8|prMBB`6RldanBR*C0K zPRH^KeRiIHb>i?P-?mUa^>>Zm3F|Gq3(tKaMuvL4Gv9hxh}cYh;_$W;Mg!q1UnupR`{?pj=Xg_e<0jb<9blYD2#*{(BFQ=e2-}C zat#o#nR!4A?GMN4M&fT`SHavt&_*=$cVW4EjM9t~vwYPV>5mYe&@w4;fh?Ty&tm7@ zc7Rin@Dt{@G*!QKuVBH>j{NY$CJn8j)B^%}a7F8rkpIWi2Zl7i!Wq5-AnhWZoP?4q zCnx7iWdfe~bD$n31O*iP4z5ZnqDc#`CMOGW?~i*!Ab8up#84daFT5Aj{x+bwVSk#^ zSxxv|c(gxyA z;7NJyQXPvDT;i}ypow$W&fwX!^jE|_Axi9*f!TC(Z!wWz6d>v&NlDfLtEv(L$$gJ# z1?5)Knu;ZQhcrdDQnhkq>%2sVI%qw;uBtnn8ZgLK5c+}fxBAx~J_r!zJ{+3>FFFF; zxsx?EtQ%%wq`0&q%Z!2?_P*)&*L3sqW)t7}{2%?3bix1QsicPQ#33$({}ZT>1iO|Y ztWQYcV&!Yn(VwcGTR*1XyPNEvtu~cdX`!)EKKo;8NIhJ(i?iQU0Y0|?W2D)On?)VX z)x3A_-qh5T+Q|&|?C4n%F=&aCo)0w}Km0?x= z`xH;p>;})m-^&l4f>9#c8X0-C1j_S9w(1#9{*d=tCU<|hW^5-Ed*%{~8FFIz=vu&Z z_X7lwpuB7#P7&dX|Cr4fanz~TS5(Y#d=Jh~=__UP_-M*|E9rw2_IeN6McUAKe1F~+ z`;wC3CPp9jCzu6U;Dapb?2Lwe@QJj?8ppC*=ECOK#=X6DnQz`58Mq3$uBk}R|y4;qaSwJEXRqn z2pQ!F5dm(`MzhKm*;K=<9TTI1ZL5^78uoX$3D6MMX7JZfc7u;I+gn@19Xs8E(G0C< z9_AAV57m(rvu~WlxgTu{qBN(i!-#NFK7`l_c6*?p-V6$Dxs4U`MmrD5(o&r@p^Uji zjobc7jH$nBOwkH(6@426b8QqrTc!{Or_I+Vb03T6;|F`sK=O^M}g#yr^gxpjF zwiO~|ycycMvxNbWz{-r7RHto0+p(^fUuZ0}#Ll>u=%ii0aMwovr4kd-Y72JDs}-bB z5_{X~AdrgHFg-3O(?{MwNr|&bO!Sp3kwno_PPse0h#?2fEIH&tTg^4+;91uhH>nT_C!_}6a-G3euD;wuvYYp5#|TD@e%k6kRFXJ{_=V9 z1WL<<*9JXyB!H0u1oU$3nV39(!DO1nX#weIujto5;I5c$G*9MY+Cf+_W@+F9=1e;iGlD{XjRB;iCL? zGDSF^V>3*o`=BL0<5po7xJ-i4_&Jn-XMD1WPyV|)Oq)0XDiW4cf#+8Dvl$W8{qS5!;M>7rO zV0KM~KPr?^4$*stHcLb#^qwhwTVv{N%$cUUXSOog-uyUPI*8ycfVNVc`*htZH8r*H z+c$T!w$%FM05MjouypSu2&0` zh-jAB33Z1Bc4P5~U{n>%zP&n_wRLY-MefC+)L+k`P3a2l_BnAe#Z+t?HT4y|6LDDC zDX}DU03cY$g2ithWFNjQ2c`>2E&=TKZaUD#WwgZLpcuFlsqk$R!W+<$+X@Q+URNt0 z7+wHPT$r=liyDv6k_Tzm?yfsLKh~wruhv{k+8SS}^Ks^>?K+`T@yHzZYaBmR147K8 zYcf7Eq6|8Q69mF!f71IueF1ol_J*lhl~1n*aO}XLi|_Y9-yKND#}Ox@QR>A#NxxVBZ&*IqK%rSINF;6K8`aD+geDHvC(;%@m z!Pt;eE<@=^&XVCU9%6Jn0)Hf7AgRhA&ijCll7NDIOy2QGMGPoMGAi`M+u4aFoll^L z-$seC+VE;GbNamLT^p&MpsSB8wA*^3Q`_3xhoM@K2>9#6pZ6Rwofyie7|Qc#{Afa_ z4t7lJxflPS34JA1gyRh1JG>Q4RteyM8>iR2`N6@Spo~11J5zmP z<=05kd3dGPZP;uxJEWF!t?DZppRbQI(9?f`0A|*h7z*bh)RI7$xc4XRI&UbMvt6jDol45(aIqGN$s@an(L;l94UUosUo z5|apnd=(TYBBjFawjT|-CM5VH&)OG+T{kWjG4y?KKA-q!3?53 zNn;MSAB<0VDt$jZ8u(_eJYUcA&UoY|E6QJLv$ z|Gd&mrTzccf~RCFlKb-GuWQOXc_^(^z!i`&Yn_y zFiS+zkM{hIr`ajWhKGwDLMMCLzYRlXxouSUON|bTo6wMFIaLh*Q>y% zb1)pG;A|j}bdx{WD*hBYX1dTG2Oobh5^Fe@G;!NF+`VuNLEG;da(bY|`hWGE^Cun+Vodq%Z zbaP|})8X?Uho&!Cm4 zGTIX^x+0hd>1i)pz*>ZAepsRNeF=Tn8LPSTw1XtXDG_ou3N%Cm63E<<2%k+j2Jmf~ z!WPSawT|HXdyl+y5|c)W4||i~7t}3hI2nkd z5%g3wv6|=TRp)XiuR0Qc{!Z&4xrg`dyN&kQgQnPcooLo3$^azds7k!J-OumbTh0^m ztoXP%T z7encSrJLAdj=9Bvmau$GI9pk%V2_&>b_5QoPP90Co0^ahRv9Yx#Hj4SyBBbi>gM0t z0;T#ypJR|RLBworZQabOkkv*keh5EO9j&p1LmLJiD1Vj@*Xyv{A}Z?h=3D3AT~Po7 z2qYMy(p5=P)pgqzqXeA0g-d>F#~t(y&_P;eieb?zBnyJr_0Ez7(u4@D*z#RR_!lrT zoq@run~Vo8_A9UdlXvVPIRy_sw*v-@aRi8d1T9KZ0q0<*2o+t583 zUCM9tHk;2T=&kH$t$ECQorZ=++-31*x<%{br@1&Ua!_dz8W>k@g&+Bu-%1Or#M9ui zcLAax0Y5m(mg5j!NRi1;6x-mZ&UO5~px?$g77&OaaAjh2^e9tpUF({Tnz~yOUN+bM z!kHz7QU%1nbY}wlXRKn|6LHfo+dXWU9Yo3M#pdnAT=)ZQZ!bDkbmJb+NN@z%I;UV| zB77LV<_;{M;J0~y`h|&y8>tPm0K!u;GSt5G74*#6p3i$y@a77|+Qjbik*3$()5pH0 zm7oYy~|Ti9n3HSmvgg|#T0NCLBU_03tHYD#4(FrhQr7~woe?k51{ zpoFsZLH@88V8<&a)WSdm^DWb^rxipuZ_OS)0g8_*)^9MyH0R zna<{XAeSs!)2nWB>JpKLZBzLsCtPB3#ME^je)u5jaB>&inlOt6kW4s;I36|QDMa!> zEX%*`#Q|YE3?W#5C1eOObC!eohZmDz5mY6I(FusCKP69V_ihGvJjOTHJt{WmK_6YI zj}4f$(@@>amnU0!!z*d2HBMi_Ggo)-w?@f)+g~gQ=I9_^g8lzvJcE1KgRQdOzem=H zf4o^`Z4l2tu=Iw!M_>eGMZKuA##IjkmKH`_fG;q);?W;4`HH| zbwIcF224@j{P=O3^JvHbPrjJ7JF2)hSBuNIDa(oSNOe?UBG@(|N=)07q?w^zyoeSC zV&<@B41=n~Cy4|4?PlfO=>QmssS(r0vNQ^l{66Gd0WeYquM&ox3e)tObT#C70wznv z;{obbi6&;J2C1{#B4-nWYfR)?qCpaT@pfC)7&R5u z&$iqHBuX(I3Wty2Kd|qD%wr~adDWt?^CWyh<^Yjz!diWNL+y%)h=>`aEs=mJ1kT-G zDYRVL%4pDJlT$^#+W?u-#R z?t^t=Q|qDocZI>FDqAb|l-Be{X?+M`5E`|n@CIIi6-?sr8sHrcc}$7%j?3(Ivv>iy z`I>d>kN^QgCML4jLr1W+c`G2=Jap&~%R8``{Hy!gx${nz2{^%)@gSLY;LjKPXO>)0 zdjei514>haIy zoP@DPm&o4}D-~zJ5lGCjEV>g5bwf`q4wSj>^YXbHaG@d=3f`LysnXcwQFECH9f(Dy z4iQ2?Au|qHI5bkTEpzJ~xQMTmB%7ce{Vy_#zJ3iOV;u7TF#2x$zKFW^8JfoemzB#6e+vI!fp5F9~_-;ePGL=kex%P%IM8kBr zGs+dfBM&zGakH?-%YzykUnb<)nS+dD&2Ru>zt5m#VGz6k0%sGZO+lB%c?vNxqA$6~ zz6yupbNmjrBrVjW?tG{RAlcdg@`}neAYd){;5~I&>p?Z=i!qKt=hr*O;GDHRcYyU~ zlFxTg6*K6`*xdn|QwBmEViwg;1a0@)DxXk_Sfd7hg1f-jln;YB%_v>mTNM5^P zV?&ZN34Q$a>rchiSWPJw5S@_>Tr|?G-b)F4Ahf{zzP4cK$LjZ@&1F8EV>Y8-n;$=F zd@TYWvRu;`>3;zSW?6N4X4N1N41)HL02OMgMR~Q3ft{C) z6OAwRXfx!ux&1thd`tRDSK-UtP&;L$@E#?WBohH{`GluOw_*FJ5hJQL>tEsHQC|}7 z3}+|MRBj4z*NIQc+^2!mQ5pwx3x7_Q`2_eqd6jD}s>Wvb`nT$yG)~VCNC)r*kUMMZ z;0k5nTZ0c&n6VSSi7Ar+0ig7s;v3?^b3jtKyc%>h1h5E28MxtineM4p4%h-~X zG>7+fhfo6uCIRa@SCKcjbH2-x9L}ue*xaBpJYNnRd5R#JZ2!Pa>HYiwnp;pMR7|7d z!BH1BBgc>ywiyH6<+48VYKnE^M#3K8oZy#~{Mz!r(OkzmR4jOquu#Zxcy(!!{}@4- zKPAMHTJR6z7HJUr7>lWk;MgD1ZEhU;`PQ8K?1&fj5A$nPE$KZDuk6#~zE7i#dGr^? z3C*g3oCVQH9}y~rpL&1fw)gX=I8GV<`piuKPCvvoR!)!qBl&iqNFD%t-UAeHyswV2 zV5Dz&Y`Bv8j$-kJ;82K(B%~LE;}wL@rl+gP*Jpbl)%h!r;jQbz0nM;Q`T^*4>amV_6hgtX zZB(FUTu*GX2%ob{414k^S0Z z)#GA-bDREs2A8pVkg`)O^G`VNTtbRjXy0@&`(SZbpPq_1>oPA3{2aX#_8n6JY#nP! zSd)+tohzCafRwHqTsHH*8bU=tCye9G`2W1HJvgC=;wS>vR|+!6fPpH!Jbd|kZEMNU zkC}nG*3CnYn$u+_eJ`J|miIIq#RN^FKM`B8(r=U4j&Ar)zs~>mB7XsviSA)t$8=+aI>_RX777_E3|Xy@SCqycxt1nO3p*3nBaL zA+PIS>qC$UIZzP1Gut1ZJTuc3I6HP|Z~gu)64#RNmH81Lb64-9pLtjz04&^yw4al6 zZrWK$gS>l8;S!o$?%v+}{>n3hOd26B=GbdmeWzyQ?C_84Hco!lQeiD`8BR_et9!?_ ze!Y8se!f%$kyFb#|2c&iEY;XDHJ)v}!OUOJy{Dj_qo8Achu22Ju({}H+w8a^aHZ!~ z%$M^thf|=zfcgWS(?!II<7_0^7|Vm?MrH*Jj$KC@C-(lW9vAnK%{Ye44g!IaSf}}! zF%7h(MDUt-Q@)Ao4)qV?YeoM1d#>n6E4$6DqNPoR-UhL!PYm=XNboyYgJ6Jt8qTOs zjVDo`*gXw{<_N|oQw!K{Y+|Ad2n2<&z%*GsmqsO&*981oQvcGrMf=MumP^(SVIyEL z%YaXlC|WEp;DvhtolV%`D8R%L#81#R=8YRef969(*ny_VbpxE4&7AO6GRqO9a(F#-J%L~VPayLp$qt$jK%j3C&10MZ&*=*fR1S`*CW>&=Cc+q&m+H3`8WTqc;?dgx8)HHGl! ze$}9_z---xK8ey@{>#s))#7G)Us6_`*(Gc7L{068EuCWZ^s84Jz$XB`#J&%CkQ%9C z=s_fnYA!90Q3=qIIGsyX)Ljfs|+^oKvv3&&*OoaUtvj38R`U<1wls3SxvW z{MT#&_zeNVH6$wR$pQpHvyfJvdB%&ic5DRDy)PCBmK??Ya!rNDp~Orl`CECMCQj!s zzuQqIy!42{0=9K@)5SNNTU&{FaN@gJvf;&;_#Hduit)^ z5p+Tf)VwF!wy>hC+_QEkyZ=$JeIQGbl8rp~F@@#D&Gk{Q7b}I6EfJ~?+7r7d4s)2j zz5R2?1w8TFd5!PRU@Yyz2V#f!r8pC45pgU^;KS5Yc9U-&2p*3_QKhHb-I2P~VVfu6 zoqm1A)0b}1F2u(|L;pAI-J+~xzZ@5B#oK0 zDrjjAe1Pzbu+dP*05m9ChSiViu(7jyqZm>`sSlC;Yf_Z+#)^h>y}zkWM5uKbyQ~pA z(I@2z|6Tno1;`9QH1ZZU4goJrsULMK!g*pd7=-s8S3RG*)!ctPL+E$>vF6&P(O`6D;ZWh zU*OBVw0ru7t?hF#GbF|r(~r(;bLJohg=L(8-(3=tH$EkQp6&b(_GBFP9L=4pgljBo;B6+|9k@O z8ReOoo`7@6#as!V#JnXl2x3m$u(0kR)+I{IjtjSD1yHgsLNg+rOQ0F9x=#V?Z}4Vq z*?c#^o&NN6a?otYN*J38Y8#8|_1d;^hwRRto(kmpkmNfNz1X9kXk}yHAx%cZAcX;cN3WMcyU#6;XxXT3%{AlR-ZchiqpA z074`A6rV^uVFu$Fn5r>XLMv*52TUQ`2ZyXWtl7sy$d1zL4s~>xXuwx^j5G26{ zG@$nT%_+N4TKch9NTtUEr)=K5c?LZcNzEmxjgVnca)54v`~ML(&AnyI382bv8|P*A z%}*@h8NtY(Vgar<=TjPY{2v-aTdo)~t;g#A`B2jD;pH^}48sbFAmA}4fu}|NS_~8nI}hv;eE$yh=VZe| z7bbSRYqcxD?vH+R2jE`$BNq z!B;BtS-%d*w6u!oKJ%72nRj!RB)AgH8*WdwL;>7QfM83MooMxzdheGnw`10aP>~D3eeUbbcAFg?<40$ML&(T>_gw4Fy<@>a>l111vRuMZXuOvZP149DV& zusZEM9fPEv8MB7ZWue99B6_Ye->|;WfY5>F!S!B#TMv6a%0RaNUBEgd@QYrH?7AH_ z;tYASy`1O*>)aaJt$OXmcNr=?8r*DI_tjVGBS(wSve6E z|Fm>f2Q744eEnF+>Q_ENWY@Ua2g5efxxHCo6*+_ReaWH!y&*ehP;voR+!;;0i{J=w z@`zbkiCznaIX2e=xFqFGjc3(yJ?|XrJKpNeJ07-1s*0{doS2^{c+P*mqroS42S7Nm zENT(-Nj)Q$`1UD{UQ2?SEmvUg2Vj36T2dD#>=0A{upuUoA-+PrT zd30kabDZ!tB2@F*vbdpJ+Znzrc*}f%$Wb$0{c0(%ysyygcj2zH#|{O~`!`R@KKMOZ z@Tt}ltkFk!N$Jnxei&pXw5qU*>OKOJ0#j!h&Ryc-0~CV)$9>$qLmZEw1+cyOV99H{!IUl`OV+Vr74Cuc40bSJJ&w^QUA+ooKwm2M`}=;H1U+&_gHDRTY|ehM9a z3Yi2k4=W>m(F%vQI0Hjb0a9?0rIO+_ZQ&e_-C@)N6bQ~vYq$LXlpQC39bY`#Zm8C) zq$pLY#t^>ahve*`yZ1|4nQ`{x%mXfvB~Zy0wBa)tErPmX0$fJaPq3Kuz$RCMormNF z2-xtk2yOUKs??rH4!dlKT6RHFg3>Yr#R!^9>K`fx*`Hjn?31Jen`TrrlA`f@%<8(;uBSZ zX_ZfWg(r`w;K2>;$;isiu1Aeh(TrDHN?vC(@A$^yeEpek<<^FLsq*s?RH-KSWu5Gf zKft=sB04~X+^oa(H7(O;Nh(5$KbmqPG9#@8VWdbpJP}N{i^@KqjdK|l-@W+2j`jd& zo70Q!p)PtQ$<4P`8lZtDcg!3(;JkM|b4B^@vjs$6*q5@x8E=aaFhDF{Sd;BIegQv4 z3MquMb|}o46XdfdSbr38tGzX?W1UDxrb)G_`s2yteMAC4Atn)|5|E#cuc{;Shc9vi z=4gV#ftd|&41OCKJ?ItkNp~n$YV7co_5TNxcMUV0By}vbg_)vmTcLmy&YmuflK%Iq(m_rH#S(hk4%%029LH_g~9E zOjvE>3V7jDhd%-3$i#$10O1xs z)qYua45I4)e&iEFcA}Zb?+I%rF`XdfU!8ge%@dsBqjP`6Gu-)VuF4Kk+d7XG#W zu`rIFn3E4v6AO)tc+6;VkB+1sj3yvelLwPDJQKA zYc^#aH&hCLYdq=wL_`#e3J8PMc=s_t1Es|H2H{Y@EDv*vBT7==U(=zW>qr zgWqEgZR?gz^MwUVp_8CAk6bL;?#u35HFLC?h5D{Kpj=@`D7$zaG zn3lLm73vI-Xybu?%I6Pv=Dh3e3tKw-7c6bg5BQFmg=b4IE-(wh@eTCM2A7>tkXS`9 z%^jzn9;{qmFrmu}hF^~!J_D>Ia)A!H6{s2K9a%KEWBJinNx9j{%{Cd4eEUUj2}<5j zJ|LK*{kZp%jo?pCB=2IkWm$GmQDD+Cg7S|*pdQ>Lol*Jk_qAAnO@-XEi0T>E{MNYQ z5a{feplhOMFNo6K**zLxwD~>D6^r->66^Q03n>p*i>~=2XFuu+3@}Vg9sc0UcnpwL zZ7bml#K&Iy_ha$qAQ(oT__f?gHjGAPu&67@V~lh9!O?X~(lBauEl_ILP`dhTeT6~u zt1LrvfRA+ZZf>IBxVj9RJ`$79%rN^Pitw)w_?H$6+zh}l62c1*0$H_!{p;D;N`781 zoBj3mgw1()YA)w$-W_+?EzrMo6s+E+{pRd=RA5Rs;p(M{6lZ*^D9>fB?{f#xkYFiM zIW{50z}!M2Ocmz*P2@(Sk?FZCCx+SH)e`Q!)mN_y^>i*=7O=9J9|=4L0o5}IT>)R@ z&A2lGzffDoFFwBmhq4=I_5_Ow2{^{7(K~d^gJ^6Zq4Y!%+MD4Z-AvM9a?VIA2bX0b zK?7{kb9~mC@8p!=&swI!jy|@LS*ox|%S$S%N6B%;-0R_S(N;tlS=%~t+saYY8#zth{K%lM{%Y+Bk!w#q@;TW*J!g+J>qge?gYE^0xeeF#Q3(2l zR}bLu;sbA)Y#=hgj8ssVmRp;JOTgQL_I6>KB%E>YxB3+bWF$6hd{Kn3?XMsPtI{9I zfp4ZiJKLNGS5y7xf|ReZjmzK|;uAfITwHJlDc7Tb*B~_WKI;4N!m{OYJ=iM(B~)ji z5GLpS5yIars;UyMm_zh~1Z~o;TSdpXluGB97Jjt8UpZ!Wj)pe7xGGN8da_@WBwwsv zO(FY`=#o^!xa3ojWmN9Be0O-z-e(A;CWIh{ef1oBE85%fYSej>MoFDpOgM_~?%OCxT=Ez)=3!3F6I1KYnm zNO3>DCh)xNNVpbMpHJ&RnZ~mx7ZQ@Q+Q#Y3ey;3_m)Fbenb@vcnCb1>I3gi@JNy2^ z`aow4e8hieV8BCxsK*FBFM{s#W~kQ(F(kuU@~<2WkMHs?>*C74l&U6%Fgns&q1`qC z-$}5^oSmrJ02k&`rq|L1UT$IBcJ9W{_gOV%HMfsld-&|MkNJ|rAl3-EmSSBWxupVs zDl=PtQ5s^Wpzgo@pVn4{2|*J02ADPi#aBE+o&f@YOWPJJV%jMA3)e$oZLk)WENp3f zZfqx*bDHj2M%?-M7C>%LTJ5s^c?!1iGL(PxwN81o{Jfj=p@M`BvKN4NC%B>wV)`wg z1$;vOrY!hDX#-kg6n=X|zP6_(5Hbd~i#~Z1RmK2+!_TGa3G)-aSv9Q{chTNFKO)t> zEsE~R1I(nP83ZRB5FbB~ifUT%290Z`{aCb={}U-2PY|U{xXxo(9XShCtlR%_TP_Rd zsu4~=L@wJ-Mu=y8Lx%)iL4Eqw^P9Ikkr~gOyGc2`l$<+v_uA|JCCcJ4M7R7D)w2zJ zKA5YppX!MHqi7kS!@AW^o_f3baxx!bqS2sXWmfRyIjrGHx7uy+ldYJ_^vUr36$=X= z>ghw%KOSm+-ZOD4_m5kI({PQ%ix&&PplSpA?mf`sPoHGC>Mw9nC&njLFT@m~t5WvmV#BijRj*qNh^KZTzE?*t_?}d%jh+=#^jF zXlZGcS5~qtQ$8r>Bp9!CvPIoW+y0*csp3oh#p$)TlV&W<&1f<;omKvzzZwO>@bu-& z)#Rc@>{oGUz5Daoc}>M_r6bu3s}`X~yq6QSngS&wv|Wiak|H7u;6aSo&&D^Lif_m{ z;rTjX1p$1kjUe2_d*;Q={&2#yun|gdOC;)=ujceOhp=~1OviEjFNc%XS zQrBAOaN38Ndy(b#WSPa?$IaWjAMH8izJqaP(QA&FUWz58s^DD?>S|`8FSUovIR3Zb z3g!kzn3ItQlUkX`}9B)BYtnEY!|d!n%{eaUdD<)1xj-|U=Hs0H&}T5 z0s=l)VHJQcIdPoo*fyixyKXc)6t`O^JDis{xhWaD?@QFWhNNHM4D8|MKBc2WM#^`&!>Nf0@J;qpcNn_D|YS%JXrvzvR#=?h>8G)f~pfXF8#0KOcUF7LrglZpWWn2^M-IcO=qV#GPj~iA zDK8mv-Y&?nq*@G{wQVg}dA#(U($Re*`|?A;@8Qh6_xQ0dIA;T(hYWp+Y{O6wel$(% zbnaTYawY4OaQ2fNf1Siq9Qeim^aJp2ITX~tcF`DnFM2K=l^I%^!#4+edp+?&xNxi` ze-#kkQ_?yA^)>43t9JaQ$e$gi_C8ZGasi3Cj#OI_luSW5|Xi~{lO#8e4hMUpI z5j>EcVU_=;J*&X#^J@rchSV+$SqrfZ=D2>5$^F_W^^ukQWP>iJ_QU6xXez>~VHAPm z?Yr!SK=0wePgfLg-prAdm4yHtJO1OqB#bj3pe*0V%HerMX+~4=XM~f-t)B2ns5-D0C1V z+x8thf)WzsAQOiAaJ6aL`ka$xi+{1sXtWPOh#yf;T69f_I&MZq~Mx)Jl$I`OlmAnp>9+okY`62EicD{Iz;p z2?>d$FRB{uxZRF<%a)x<&yyNV0SnOHub`n2K@gWiH*-opzRwagN9Qdbzjr@8nW4&W zTF(9v+u-FHWVjI+>kU@KuHRG=N>y-_X!i`TpP>f%k~@Jf!{Jfq`N- zqI5--0cuF{wxM0Oc9ztPeA&PJvybwMimpRF-;bW7cz=kB2MGZL38~p8pOg8;JA^jo zP4CgY46)&S7E42&foDDUdc<6<5ot?@yIABxp6<)RrpH8b+iOJ&i=<3nM_fJd zPG=`hpyDq0>K{p3MRz;tC2Dm+L8gTBfW34d$67F;&otVW7}$B=-(Efv_#+}CgC0K? zlH-EAKgywZ6WA4vSq_&nW240>dhd!%sXttuZL9s1GnC>EHgUvHf}ksgmZZ20=ZGZv zA9&hC(-FW1Be=4T&i5^IArBw&Zr!>9WROuaIL=W_tTtz9qIF8iV*l-m+VoE3i}Zm5 z7eQW;m_1;q0^d#!S-hn`KHAnM{MAwVn0ab?aEFK7vqy~*G%81G5@Rj)a^ShUcn6|o zJw{OCjtH)!Zah4)vU;1Dn@rQ#;fgc9;ej1|mc16o04|ThMfHMr{b^}vj{bS6@mj}a zt>W@-`+bmj0thWabeG^}HZwQ_LO zJ-+bjTV*93^rfW`TOw^|8}g=}l|FGVXIbOsiqMkdh4y&EI$E?ii%1h_!}6?*H8*jvwYA~`jy2`R5_X}ZDkwGbiMc~%qZMF zkt&(N!gnlkVQXkpn|Hd(i$V-$l0y$UL=>1Rb5BpEL?10kp3c@+Fj&G&^`=cp4goFz5bW#wCjk=p6yJN?iRqoF!=?hl4wiy(E=i7D8 zVLP3`s{3E%-lf3?`CLk7^HsBVb_z^y%$h_ASPxaV(SahVeH#E69qr@InVp|)dS=iPwVaC2*8fpSY!{qB6j1`rh%%-6Dlfh5NOT70M$rl%)J}| znbGgFvkw$WoTe@y@8V0r5oP6zsC$wwi#cCoPi-eRb91%j?z&mHQ7-E!^3w62hEQi#4U>Jr2)SQr?CV%>>`cPK7$u8Uf4sP926P3GyVF| zcUI^Ey#fQ(LXt1;Uh~y<_lo0F7mnzU)w~)TnvWbC_SU-6Ry?-Or2PQi4^;oi6*^)b zj*!hFDQ%Hl{Xk?ZRB&~n`5{3U`t}_wQ=R~%1>kw_$rG`32b==+^;Jrx*K#A>y*cE_ z2@t)i`uled{DxBE1Vz3j0k81P%+ivqc1dldx6?1qBGs^>mV+$HGU?fd@4S{cdO-1g zMZDqHDU@*H@kkrLsW{CGItrQv<|2E<-lz(yXWfFuIJj(g7z3yakF>Nj_R=kzO>bpT zzm;K>pBKl`NvtnFhyy~@ON4yiTE3ry&>396N)Zx5}-46Q927YhS$Hev*j>vOX#xo-~$x)zBKz0_00f>*IgFKJug&*jQXQ zq+*>s4b8+GKzS;45UJo!!BExHViVo>)f!b2jlaQY5)=`k+rcTN$nX<&ZS6rjyZyv7 zghVrL0-+<*p!lM7*5*K&@uMNh0;{R)qE3`%J0$Q%_@`)^sc4NtqzT61xRoHwFg^=`vIMVm){6*|Q$Y;gnFw6&TaMT3o#v z07Kq7j3ca3CioW^#INk-0D_@%7o$ao{L-viV&e%##&yf<)KPHXKGrABQ=15llX61v z{#F^8%>d9}HNLLHa%{>nv%gWt`n;z-qL%ANY+-cA&W{oaz0-U1IkR-{;->bM5E&C@ zuYZ2_)#7@Z6~BJ{>h!k%rmWQ%5VjTc*h3oIFx6FQIsq8G4!_di-Md#KA{K+xDoB^N zZ?@^xsdQGx3UGEsdo-3QNrD?~(^vpP!m zU3bQ@q!=%08V{(HOdXV9)#q;9yztnutz+=9i8%Xc?i;z)T^wK6F@qfmMzAme$s8N-;qRvBNz*nu!u`F}E)_Eag(4$*7rKa{f-JU;Qoxh?KP6_p2mUasJ z{P_$5f>wjKqqe-roP;xXPsDl}g#y^6{DEsc%gmg)>zt;O$o~{Q!w=lH<4R5nN#=&* z%iE7lk%@-5twC)jWg|mmH&;Z$^aDpB#Jmj?t{1W}+y(u=&;Sw2A1B z9Us61+=YRjLcyd@?!b#i{kyJD-;j$h19O#6Os7x?U7hT7guSldeTBGsP4-$@85t%H z4quQiSN1-(KEI~2$J*Zh%R-^2VnYf{449?lar5r|{~qneTT!u6z&hhbNzyl^E1fwL z%>VT45vy0s1B<>TuMeO87{XpM6|2AQ+}@m(?^k6voNH}()-*7NAJYY3o~Ff|8|rGa0j4v>q$+-GXgVUn#;`2K29Y~!NxQ;G4ZSaQWg99tce#D?{VV& zBG+}p*w-uSA;Lr!Xi!*BPfrJ)D-nt@C}d`to`-&R7mmD&{@xpWtEp~f*=`vb%yN4^ z815u};G6cvse@}5n@hOqgeMYCB{mJDz^n#s2OR~`1b&e4#GpoAe&uD_gf5LNrVqxu zTT?FJWW}0=<79g};xO+Ezgqu^+J`i?<*Lxkfw~F6xxZCj{(|}R#6%HB&DXLEWBrpd zIcamd?;bJny{cusDe7lu;1cK4+sFCBIpTBQV=N$^O2pc%q8ON%c#*%254jxgGaPv` z?y!c&17qWx06l}7H=xTqBN~A<43fZ)J|iT+KVIW=BsF`j&rgLC(pwk{#+{5TM0x|S zTsm?e?yOl)GX1x2&|G4UL|;*sZ<;b|>}K5jj_a9){X!7i>Iv(YA6}0HgoLn?^d#t7 z5571Vbfn%@Nl2VXXr-nnzfyE)wB&K)GIrHfW=dn>tP z#}4#V2US$)5YS$uw@#aVdBEF4JmJ!|KV8vSTtu5+b0}_B|mnaSY=~lYM~Vq#h1DoS_Wd+)wD*2cu~@m#fwmadrkmjS(LoDcpvj1Iue_ zjsRDPzqu2Q%t+_;ocs|wKpt%-7Ree0rtM6s!^|}22i~{tPvp%Q=~zd>_SvVt&o(Z>BywR__ zmXgp$qyh3;Npf|7@fWA#-nwUi6&s=)qaxJr1m5!5p7F$??qlgW@pqdZI~>rmzT8?> zS66miESDxx%a26k6O;M$Tp}N49()iqoWVOQI=i~CQwk46#h-aaYDP|u47y8X;p4hw z?ehZbnLq7ZF5IS%{)aThynCl%ehuacOkJ9ZmQiPQeH*-DQihYyJz%#;^4`*t$;`%Z z)$`T~S&@FZ349{yqJXeaC=jphwP^WTt+`JXUqVVsTQ_qEa|RLSY6!8y%4kmo_pR!@exkGj(w`gNk!C+`kXQ$oqaQk7iYuf&2!}ij0&sjF&ND*NiVDrB0>(2k7}WnNzUan7kYu>h z2;9+aBN|#YR=uaL03a8@x6$!&p^c?Gf0_Bb+$!u8qsoL>{PruueR1Q)hrXR%Ez3lT zPIvbm)TEGRn+E{$^#1v0N8ZBJc~Gz3SAlH*Y)s@t+!Otax2Dsc^i-C+&U@;OSwClO zXE>#`dqr;UN`~LN6fWJqmb`Jp1_L-2j-EKNl7fq44KNTx5iDVIX_5e3sBgRX?5VnX zBm;6B*lm(N+YAj2b#!%6r|HxVXf?eei6VuZo zG|7`%z&)n1k?YosVXDjehYufiLQ!4<_AP5%IA~?pv}prCB098L6jzW^21sac(4h>g z9$NQs^T$q&n|Gft1Zn9523~t%WA+N#6vgh5TO;XBxGaV(RRr-#<1hDrM1n+;qeS9c3 zhsm`{dXGygD=P~jD!@5+8~3fy#XSsl9^&WcKbrnypgBW~041NU@cR|4kcfLd?i5n~ zHpJNl)jriF`SINBE1Bh@VoGv1k!gFkjLV4uV=h~B_}+iq@b%70J&Nnucyabx(ARl2 zUjNwe8xbqBB??=BsJ`@wD-run+;{^`*K$&R^z?WDNnr=Nc{!C>T!MRtOdH2?-a}{Pi`@X!xXweCs zd@*EaqhQhH?sc4wtKSM!7@kn4Z$H8hJ4O7UL^w|6h-|?h0|S2O9&z{`j``#*{2CcN z)&cC%t1KWpAXfon{hJM+DW_VVZ(BV+T`5M$%N_8tbRHfaM%k#qpX=-6ZziV!eJIUe z|EB-chPQObi>H+KYuP8=SRE^~fhOd{!rUhWq}{L`ZrMb4WFdaxmU(*~WX^+3BWsfV zwc>X+O+lPc1en>{MT%LL9ePNnEn5Q6I@yFCV*B~w&oLE6MU4|E)R^#vixZ0|IONc)Py7aR`Nw9uGmi52ZSWbQ%VHo{+opwvE9Mu{G}~%Wkj#jB2n3JdKi9lF zWF#auqB+MuD2Voe4h=6}|@i=rFREyPEy6>$ueN>M4yFs4Q^{5UnS3Qr5 zy9m-BPvzcoXAFS$Q{PNFIy^@cXv010%$P> zRZmh%yODtc9x5V21jk(X>nLC=zd}Ppx2^d}0g^#WXm`TYVuYQE_iz(?W@h!BcI6tyR`PyMSD)}a}@(7A943l zDO%He;od%vikV@7vql?GylYbGeTQ>ovRiM7kUr@zYGlThCqVww%F#-jXpTg)X>1n5ug+i zoAl|*kKy6kAS+(px966>!$F{jAHebBA|8j76VFZ=z=U8wm{K)ZhBBan zaECA`mmN(Kyu624J{A=gevDCOJjQdwCf;Rw4lBTYnS$b4Jv%#lF8`J+7RMTe%uNZ1 zLh?nlT2Wb9-`&1#mj*~RN{>=;>v(7|Y-|$H=SX|eX!_twbB@wLO<`eSGDbov&5I6u z441DQja_WI6CBKf)lpDXbl4oA(j$p$QJL&|mmt`}?Q;AitdK-OnZ8p3)b_qn{MLOW z7rl4KMIlDuZaQ;I?Z!u@J?|o*V+Rwb2 zw%IeI?>f?d;1^thi>BdZYi&yVmwVZ?DKIcl8B*&}IBr$`ylyZ>^KP7#Wqp zm=}xd*Yi!I3x4QN<};4XF`u@7i}{W{l zIJvs;ftTBlgtvnW`SAmQ-tlC)aJKjXHqWZ`d)d?1M-mXhHCWo&u{Bq*S;hM=b1pnM zC$Y`=r_-nV8wR2-(BgMHmyx+_ExMOw91Thw+>EWYo7EAbpBoHOYr>>&+DX#MM?Gx2 z*j8Rjr*@sOcn|3Bw9`d&;J+aR%faOjpc=nsT;m1+q6D5Q33>KOg!?<)Y~|=Q!G4pg#&7H}zD=6+mkQ*hkpoRvTvkR+ zA!$A!gOAJTYfA>!Y%ezPihi@;Z>wqN^nz-AHZ6fQEdO!+u$cnkga@n<-to_G05%5P z$r`u>!i8|1AcH=C{w$Pxmq2{BSS!_$2Q~s!#Qm)AyAo*>6&WArFD-JSi#kG#r~ly! zCUs0rg%Eh_fj}yCvY5p=0+?u?eKz2-lI13=vTve^f9}zN?W~W!@G;$Y+Mn}kFhd&d zBsNi9@4~`E8(3LE{{DbhE%?qa@&{lqNE*F~1`qe&06?%E{Ce7274sjAsA)O~JUe}O znWLBt#*_j$*cE8t$+v2DSjOUT_1^LD(6n!xeZDzChTQ|FrNGeLbO|<>@GmijI~TQ- zm}p3y#d;$zg&aZ~*w_jU#G%b!gH3*F`}2G@%*hdQ&KyD^DsO$?E5+={cuK;cTIER# z_xdalAP9<6OdEvoL3-vl?CeTy>SVp3Vbhc}T~yO$lapolkbn0p*se)w|D*9!Oi_az zA9*s4`=N?~2V>f_$!C84W_NEd7`>CanyufyZCYGh{P@fE=&@r8Xf=y%z-RivJ6Tv( z7FS7MhClr&m#~o0j-*{jA;oM@YkBd=D89x;D6xVY3T|^6E}l~4kUOv;Kz;06@WrUR zDl*N&G=Vp!+$&=j7bW2eKdP##_?Pg*u;&BSo?qEjU`*ips3;gvNGHxUF+P6C-d+;L z9)RXfZJ#X#Th3ywDl3ti1A);hj9hp!AnU~290wAu>%U{++W~iCtf;8yjE+^z=u|@l&D(S6UP1C4 z23Chgi8oz-yqpi4MG+!*0rh0R;{h{cwk&c>e5=-IOIM^Fk{uj7G{VGit(m4#YjULR z7s1@I34`Z`$Ym#69YpR|0PeqRRh0$)1z;yN$)%U=Mm=I%*2RdN!ILCyJdrnHRYJ0s zWUne38iRlD?9$cSu|LYY%=4nv(YmJNN%f6&o7Cs-7#!TAR^Ic_f&2QgV{1U-^3VCX zKztf3!40TSh@lVtd}ra+OMaQHDo`)n8pR3lNXEf>D3=`?jQ1wwBs4ya7xl)XRT?s^ z^Sb5eZJq7m8V26G?N>Npfn=a}z4zB_7ult9SN6Gu|10N1pZ0xih-Q-%78O;3=&Bo&Q%Tj&r0_jHN(oh2ZTh@mppyd98#ZK#yiL)=9ErRuQVVnIkwbeR*Bpd!&V9j#o zo_hYAUuN=)dM77i2rkP8^A<|;8^#=xYO8r`nEXjd#hGYU5FsWE4OE=rp4rI<$X;LO z-7b^+#t2n|M%pMG!$6c{{|+Jsq4S`^yH9?}fNx-)mH7DqofOy5PcNvDwiYCQ8VXHb zk6qoV(tpVX(eO-avXc+KmO)HKmfDe4=&z9cAi&p!BG;po6TgSv07w*3OqY~luz!y*d2^SoCLO9}w?9hZ4fl4kZ3zVH=k8+;U_OwBV z;pj%*aQ}l32KNSY$+ak5kT?-kf@m?It{eSc>j#>hx#Y!XkNWSk2fD(%+{P?z)V7=2 z$M0R1R&CYJ*@<%%LjZ|efJR{XM6-sPNAb#)my$>HAn$2!&p$cM-i`)RD_MW1+^tTZ zZ6s;v?>D%!{0$U=Ln5|h4FqO6Q{T;uvZ1ze8p-vN=i4*-yD83c`yoe{EZtQMrX3!5 z#W9CntA;{zP0*A`-kQ(k_wR#@@GJCt(ZI?&yKp8M;-v1}dmXcJ>hO+5NN~C^8gJxQ z!`)AaZZweG#{2dloP|X&43K*P$r$KOzKCha|A&BWporg`u_OiQh=7v0{QWy?mAjb2 zw0NY{E?xAnikugJ<-|1Ksxdu3zl?NkLgPuKgyh@9p1Rik!>M0cAa_4r+1sO3xBxNY z)$i||l3ob{_d+zX{!JMK?pGArVvB1dC($3<;r|lg(K_Ic?{1cIgHwlZ=gt%6$bmY1 zNN3&DP`2-gnjlZcOAYI&z|<{*wu}XtCl@W>#o^gBIV~Tz#8A5q z9<2ft_~QK-U+r>f`Re0^FK?;7eeB-dM>p2lmUKs-Qrd4St@Zc#=wc_C zUf#RLa&+zCTjdn<9j8{DmNIhT6qfQ#`^W8=EY+vaWv@ODa4@XGJ>ZA%;-SYm^~&O; zLm);Uh|h#&o6uqBoW(GBZ1u>em@?-aoe7i~BBmsW8z>-q@QX1youw;#rYm2M>c=ooE46NNlb>PEAm9G|S~+KPpvPGr z6PFrU8^DK^i0kh^vC!DiH1I#leI>>Qg6~tIwXzAtc-KHAeEfofM2Lwp^ItBz;nA?H zV_}J!d;XGaU~qxOl`ro$8q=9QI5Khawy6E<^E|6Ee!ETXtpB=Fp#WwrD=5;J$)OR} zPmnOVaL}1@2c^f{Vvj3UT5BIf~t9rI>@L(%>$;A$USV`iEN7JJa$VHg7iY9TY+@7yM2*NXL(o_hi#rq04s-w_ z+i!CTRsAnJ`ZMXRjrG{z;L5KqKh7HW^%R|p_A=OhTPT4x;(egISIkbXfo`w;LN{{e zzH?DNFI0ggAZX1=b>K3>8;dzV8(HiFt<_P)C|?ZS|B9B?ee`T12hqmV=x)MdYG5Pn zs*o~Jkhr+6udh;PEE}XFr0r-{IWyDTXQuF^Y86&~SbOz=U8(SWr;ZM`s5j}shvVu$ z)Yh)UbQCN;JTk)Q;U;hWx(k{iBgxRJ9-^!zWXuE`)~;fjZ~jhDcZ#n*-T9;@6L3GS zj#pNS&FvEp*Zqn_gRY;et_7Bk+P*6pHCXAHKE)OouOT##sjcOH_A1B&XmKS&A>KV9 z6-i8TuPBkYnr;FD^@$qHDgU-@nA6U*Tx>DkZHTL2y^o0%JXAmSb?O=m?|qfi2@;25 z-!N0ZcMqrK>TlpY%+>FI`9#rEUcdj(wPv2Ey(rk?a1?{|dX&AH$jGV5IllHm zh4CRHqiBAA0MCcw>V2HCtiHWJx1YXwbIP>7nGit|+ zpM=Ep#-OqL6Y+^$ga7@(ax7$-~Tb+^cHq@5*3X`Z%A`h>DrzyVby>Z##Y`Y=_kvtoU> z)pc}yAqnolu0Yo5j>i($EQW(oq#h>dX0f2jJ&ZP`MvqRL2k$uAvD84E2SsRE*XE77 zhsV1MK}#u5bP^v%oYgfw6cj=ire(3+bZ~`P8sp}~gj4ooOyhM!?vZJ%^XiMmcYErJ z%4$x_jJOOGp56&KXMtV*WyQq> z2I3C}Q0D~#w`|$+X{lptrdD*ZW~6NJ-%?ZDz%FGXF((DyDVH^&P{u&Aw)Rc<<@|90~SS)$9D9vkjrH`-OWcv&pf!p8#1_& z>}-p2PO(8@hxgt=$@~88^g7RquTUAgB9)(J{qJ3I2J4;K^R!-AuCesg6?6w8jySfv zaJDoyR>d^`oOBe?&13@YN<~2?G3k0q@al3w;I$!zXgBp=9T3*LH(wVZ?Ni$~K+ceC zTxW?1X%&%vkm?pV_EvsqaB%e6p>_Jr4$SgT@;%M<{>ke5z5midt4s2#QcVV3{IpN+ zoOx9Yzk?3|$_=0%uTPG1+heSMge&F{M?_6Q%e{O_ajLlf}xZ3KZOzer8ve)wKN9(_t z9jz1fNN*z{wv^>iqIS}-ncQ%aVyPs8_ooRogg5V z@keRf7%pX0fDERZ6qg1MjGlZ_Qkx(Y4_TBu$S6wIA;$xV*^z31rg*EQk%(yZ{z;J!&lB*xu_1GTL${zX3vjRH$8=RVUr82p)_2i&tJp@$6&er$<*6xYjov2J$5{LMv<#S`T_ zZnUU~9uE9iI-?dYXrJk^?OkYX%-#d5=!6+l0wIVaF;oBt&S`5mv}|*GO)v?-^N<3{ zz{*W9USJPl*~m-deal43K?4c1>mq|G=0#9*!b3OaeETWl*V<%o%Ti%``vvPjhfBNZ zet*5Ob!B#4-2W@=yW_d+|F%yfBb$sU6%A2FB`PFoNQ02$MHUn*@ z{nv7Ic-%V$e7NUqH8JUL^Kb<*K!dC{TT zlId-}2j*@R5B{#Yg`3~CBfM>&f9uzq>;yMJP9+Vu20iqzK{E2cQJp=4?L+GKmnj#d z!XJArmLS>VO&8MPM`4On%V9VX#$ztuyn5}(!2LdCDfyW*b^WcEwmZAK3xP6)!3!=# z4#FE8Bm~_z>GBIRq()V2p4{iF^OVbJH#Cn1NOq|QwN3YLX^QVw)I-6PddCAtNXtb{obO{G5)HcLR2Pbe_p-!qrLqh|3 zp~Db@Y1%&f+gr0glx7u6aZiRWJ=}qP0k@?dBa$JCmyc$$#i8zx3Q|5_iA*XC^4?|> zQbas|p7z*f@kP#9!>12bVzzp=zVwFnXj{EXS+U58obQj%ZfoB2*(@-zNG{DX`&f3i zIzJZ&MvkfgjbJ6xbARnn$}Xo}yBx5uX#M*23mP^{{gMrKdb^ouy?%!gG8?UR= zxqne{<>s4jTxiW741uh^bbS1{?XNTqUER9!H!j}!=Q=O(cYPW;Jgwl;3A>EM_KXVt zDJtJ15l7RdUYGI-Y5WYnb}RLm5(@*KlVAk3;q58KEL{Msh<+*a-MI^#ot^2? zM4dm+)>Q8kh#Ds@9e6WWNb#wIGqU5tR@+WPmeNlZ*+n4;q1J9`@zfmC^k5>eI?G!jNBrkHz; z@-IL94bw5>D~qJ~jTGF*>cG#Uu_D}hR$QGIQ+4j@Rb^*aY*oe*JR_N%7fj+bS~DsR z;9f1C&zaO#{XSRD>&5pe233|Bq=Q zmXe;maz%h4KNE01Fdq5y)Vs?TsiQ%m&W;}3&i#46I_KR}a-vLArM0rB5z+UD+b5erqq!6o&Y z1IMv~1nO#lnx6n87%aNIeO?u%^oX*N2+o}02U7&I)NOlLLdO70=|ABAm@2km9v>es zR~gX$(Goj8_LN=>p7vXub@YMUE6=5B+&4qHE8BV;PJ-7{qw$R6y$f{^;(w;Yu8{oY%w!G#PWkKx`ztsO|xQMe@C42b3j-UL4+XeJ^@X!t-E`>QuUgj zDmpq?^fW97pGsp0Phl*u_@4=F;SSVyr-5jTK`Sir$hTo~d+r2P?f`VyT0iO?AxA`7 zk`S>Jy?a1Y_WbFN+KY%l#-HwaGdx3?>)gXv9CmH0T~?93c3ou^O3B~A&7^evH3|Is z0cQ%@LW}`tdVg2qB{3P9Fc3)P@qw9dSjpaTdfwGmok8jbi&gmAaT`01fTr` zdu`5OLj_122?+^OCGK;;IBMEo4XesG=PsF_>8Ks&`=B;;{WHbXd+v^Ya}J*Z)IU2wB3N%|xEj15I5o)2=4NF%Xy$rg=1GCaYyW-(o{#RpT_Fg> zg*f6uq&5GhD5wEYI$(5#Wi)C8d49?OBO|Eq^Jm4)TZ9Az)}XP*PK<>PPDLBH<_OMn zyz3!1mk(?>;mgL`o$XlR;>#x$w9oQ(95mHf`%lv9D@7Mz!bVSrX#S0XBb}0DTCQ}r zj;P&GeMM*{BtjoGjC*JgGo+7Ck*1Pop#*mc5)~7>v#)U}E|F3zSVE91HWoINm#^6i z8;f;lBmpQbRMx^#`R9yYY-piK#g?*Nvz8@&7x9t_nKu2mO^tS$!28wjYu?pOeY?%u zN66paeiour5C#blB%a1*DDP5$$qV`h48yNk=ny3KJ~|^W?`KlDvBQqb^08%LrYDQ&M^sSVSCZhYz zOl_bP`C2p}2#(?;Z1E@pI~nfm>OK}YG_QkDj9&Z?(cQg!OP<9pGx5>_PX_Ym&KKva zI(hi{r>rX@jbnOs?`YKJ^Odt_&P`ytME83t&*$!n^78Dol-+QK6&b-1^x)Ry=^WNI zYBl21Ic$VKy9wntW!*d>6TWteq@-ap5B9C8(&{-31g}G&wCi?6UrcVU294h#KYkGi zil;QKpN1>F{E{WF|5Z7q%7X~gJ~)W}X-~E#a`5_JP^}p(`eTjJD9V9VB+w=leWrp! zg~Ov`xIP`jlPC!DqGQ7b4D$2-i4F5FZj0z@KqA38hwP`exn)xC@7T7sJq-yg;xr{) z3k+>--9e)4y)l(eL`ZtRed_yL_?`U{=N8%8+U~lI$0mIVlqs?@!ZKQof5*)(7O0yL zM2_FPcdzhAcxY(U7ek#rH8Wuu&WTPo+oD~2vDBthl?r7yT=VnJMxP9;^YR?Al%3os z`j~BIeX+>9CeeyVMbkbX2pJkZcj3YbK-n~7VBEe$Y6Gjd=l1?xQAlmTGVjk*U{(@@ zDYZR_4pC<@f7dsa9B$;U4FGIAb?Q_SEwj6k0RcEO|%na$VY; z!X$Jy?`bIGP4k~#n|1np`4+Q`P-IX?ydQZ7doR_01b1}z)k9oh%r`AflO_2_KRlSh zV^tgIxPDT$lnjilX=j`EDTHvvnLK*=B|}g@c0j9rzbD_oz@YOThAI}0*>9qOYCF8- z6Jgm>U!k8QPBqb;sUfPD6z$aRpV`R8sqPlMt2ts%U+<|4xUAYTk?`JyyI((;3reIt zu1M3fJ(xf*Rj&{05y5L6a&IT3E<5-|s@bavqdC_#?kDUx_)1z?}m@?^! zzG%GXd>nI%4L`0V{rZH)xeS91-h^5nrW><2956;nsj9I6{zB3b;MB;WK!GHk^aw_e z#(OVyOCTLXjUA;bD=r>_=E*A{AwIq))l8}16BtNMwyU|?Dc2>^5II~9aJf5^r((f^ zRsJ^xc`ZUtRn^Q=zALOY&ev&Xk(qWTTra}N$1nKMd!APNtAaJY%i>O-PiwGC%7rIfl8Fm3q_eJ(Nc%9f(224ke;;lrbR z57mX?G87#=fapfX9uoO;IqBeSm#Rrw1t!(1jT_HsE|Q&~$Zm)AE0a<5J+ywyjja!X z)OlUYgS;H%mmf)333=s>+oJbUY+EW9mS)E~Bz};XH78f9&TCBa@!hbq#&HiuL)_$J z*zPMU(vggN94-tf;HXK{JFk6oTn!9POI5hKo>N&R zY!s(46Y24_miEi%1N`^)MR}p027!fJjF0*b0HWy1(P#Ju-PW+FDEsr zn#y>Hl|W9rj!AE3&i#D%9{}3!9PEAff0c(PEz^{9I z)29t*6O>kMv*%sJw*j|r-P)tFpC-+zsCdxt6CnPB=YiNo{%;2|Lo&kNkL#GWUmHtT zT;iD%5SNtL5{W|75&KG`G(4j>%()7^G!~-0J;O5I2Sg!?)j(()_{z`DP>2y>p;wo{ zX`6xiuw4h_%5AZs_YV)bEZO(Y^vf+2iT_FxH{47<31VNNU0&G^J@|x7n!`2avp|K) z(m35C9bYGvbA9L$s8CW|<7S*Pyt`qYt>^qK?;8sF)g=KdxUD8#(rkFx*dWoo`QV;* zCqDNstFZ$)oeI7JRp4MFsztzkddb$B_n-mr- zDNXBHuj%{i(Tg`ST-)11YlH7jo!gz!72o~SL_twa*W5whI7I|QV5!v1T%S#6D;Y_a zfOKPH+?`_4@Ltw8udEPE39m-vjE@?XK6)r|a4CO__k0L2pg26bIZ3RM9K{_U^TTBQ zt$&DdTEpMTzu<)N0g<@?Lto0Ly#w)~YH=%f1drcnfp#VO!i7s|5#59AMFpKp7LEOu zS!=U7B*4jQ(v;1znFpPZy%#w&Jg4XPKJB8T!&_(ST;JxJoqgevaSHZhsau=A^%!e8 zdH#w(tl4DE#)gs`=hT}_mwLE5aqMOd+1$Ls$An(5QaRBlSe*RP!pcfsL4gO=LI{p1 zd^bd7Wd*@t1blO;P%F#~zAAtt&>~l+&As3TvN-KFAI?MNuArcxYj1yj>Mglc?V%w* zR`)8$CDP?9pZ^(M*O0zu=hUOmw#@xz*Ksr|I+_y=*8Z4P2x%bH$iWT-ezhN!kCz0E zm8f0Zh@2-))#-gNPg`4AIQN|W=bwsEz0(V%9+;p0%pI5^`bOx&V6h?(JNoU~L<6yk zPHW$KQIF73j ziLV6=$MTEefahi0i`Z^#b?)1Gs#|clc!TN6Z+@)gz}BCN?|CIp)8Z+7WiiuM!4>K6 z9|`B3_>u@B;sAYBu+zz-g#rP;29Jh?@nNN5Fs+#dM4_;7p}LRr-|yJ{oE$t)I|gUyaF(_GE+E1zG3M#0Sx&s6FK8<~RB>NAFc!id};EI!j` zi$BqY9s@uu9Pw5m|K0cl8%Q36e`J}Ichw?NQuG%zawHg_&vyR27(5}rRmexS0>5!+ zfyCuHY!AVYCQS{9VIke!-IFs4p;m>@#U%J{1><%=qY8VCV07X%c(ooU&L0NDH2px2 zTs57xB|#wsxZZQHyVm8w=2Vc8O?Lw+>qjbQ7&ISteZJ@eNa+goI=BsQy${hxeXXm$ z@7)wgTUO)tfvjs`e+|`0D+Xd{6v|LAejUkwn{E?E?7AJQI{@Cpc9FI*)?f<&4DTF~ z(%?7Bj^7S2n;#VkvA?jOLk~D@evkIA?u20|2<)Ns!=ti?!u)JiClP~5DTm(3;1`i9 zVfwHZotSLEpz(*UuCOOKr)n@X1<$dKU?VIS>l^Xj+PgzHX*szCGC}Zm1A3 z*wML)zeH#TQvxM{qSpPuKZltTu`OC`A$p$G)pr5Rk+77sacGxUwt^ci1>z8fW2)HQ zMiwQ=ZBxi$lg=Ojs5L0dXsL+j+D~afR97V4xY2g)$k;d=%FhnMo?2= z-FMLG)$p?*F>c2)A@N2qpDfUqXn|KpEok3}`qo~1Tt9FPJ^&g&GwwygX)jTQ&ZzMw zDXcKZEhHf~=D3CtF!&(B~m!i?rIPVOC$_8>6n zz>UH9w=kp5AiJZvMOrTPX4WV5+;Q&xNbZlaM9#zqz&YD+li zIGnwDH3Gxw1k7N64r!tA?tJ&!#hVpj2Q6=@>spZ4(WjpZ4b_8{3nZY-OlZs*GIT+) zX7~cD`W|0cXhl@=B9y)i17#Am7nnr-{Pr|i888Cfr& zPLbphVoymG+hBP8LLj!g@8wfi*G^@~>jJEH2S1S7h_47^y~)*p7)v0u;)A;YxftLq zf)Jyv^Q&7vIy$-)oRKv!MX@R3Or1-S9>V}`hD@7K)o0XSy?F67wrI067-9=zGsE52 z>*y2<*fs1y{Z@sWY?iwO-*OT=2#KbPail%UOORZ6a1&v1qK35?UR?-8v>Oi@yTmo4 zcy7aYu+f~Q7VqMRYNb4&tukwSv-vFbJ=mU7f(fdzkx>u^<__Sw(!YV4#S>gi1ZED> zR^(Tq;es|`FT9A_w>joE$GAC@8X5P_9zr0nipucKq_Ud2cvmY53UTGzS}1_5^E}vS z;*3|-wr`l~V;~c_sMY?*k1aU4G4IvkKl<75%U-xW+eMt<6bRrk(QXB9T7re@Jn+8W zA2adk^-a6}BaJ8JO}twoA{I$Hc9AD@pq zfhTO!IfkT$uqOS;@4pL!um9g%|6jim;~I3mkW(Rr`urY-LrB>e(kT80d})c*^9#>J zbyn^ice~K~BjX0Zxz~pT;JHHoTS(|Z(tw70vvr^MG#&rEU177q>p0$c8__ha2aDu! z*Oj#1LW;FK{e;WvYdQh6ItdH1cyPffuez=xX9daF?e@m}ZXXkbrlIB42xxu|2(w?; zxwyE5zgdfsi4f_#-W1?B?|`TcC6`MHW*N_H^p?pi-K*NT-@P$M0P?8e>LX+Ow{-b@ zdN~Q(P1!s;Hj$Oazp`u*GYf!{&uxyCuiw1+F?RS7BZzdqO`XCpVJV?Im)s1|G$E=0 zX6;>F`EXR}yg;e~U0?Lz`)pT91oRU^Gi>{oLfXYUC&2vy_a8t|xc!<~bIni(9yOYx0bCe!VaPwPqpF3D zp;Q`U!M2YdxlsBLBtM#Mo_IS4R(iS_bsf+@27^GImbQ?zJ#d^nHSR`=HXJr#kb6O6 z#Uz#_J7}d?wny**@DrN`e~_vkZzk~15WK61(IQxQjmH)bkip3(n9vgIdELKdc^i5_4vz=^y3WMhbK$;MJrsMdQc^*w?wkL*@g9 zA%=SX4R^q`Zpyxia2}7i4YI5zs-x5B>TX;AuL`OB2h<7JhBysdj!qO8Q)NS24C#G! zeS7;MgaiF}XX6oov%inbzY7H!xg0}p2=*P0@kwy2us;D(eGZK3Fw4$**){b2J7fxC zWur;l0@9qIvh@4z*`q+!Er>4IcEdLe|2S2T))KF}5mZ;u@rB$E7=1fjzzM7!ZY9DX z#~jBEp9!MCk+G3^;D;Z>lb|%e7L^VCdl;y%f^!*!u_Z)def`?>wrz1iX^$IDG)@qz zg3~Y;h8@tPBF}KIP3XUx^oTTnx_AJob3or^XY3K7%s$V6G=dSv z@`TyFAnUYeUp+E*=z3zJzLo^s>+pCdGr^!17{0(r^)jOid3$ob1ZL-qFlKZM8DY#< zJ?r-OeL&O_W_XCJ@NF1>R$zo_DB}zV{vt-#_rtk$!MN&5v+54E_(7*sB$z1$mIN^p|JDFAe3Wr)rs~L(ywxCP| zgvpWSiCLCU5iQn#d6mC^_bhq&)mjpglJnr)#=`{T8Snz47n{t-SKfhcIx@~kfivG) z8M307!hT*3v{mT4|K7 zC-KNmwn1>8#Tg!0T#Mips?x5;GF$>_qHHNHL&j8nX{y!6`; zNfe9RKvQFM>mdhD3kY0$M#{MD@)RGh3^tpjSG@3AJ7%pc31n~flZY8Bl^J35nX}#3 zH@Pm{`INl?ZXn9mc}9K1NPm-ri_r`Hp5c*4yUtadFxSLvANNs5U_Z#UZ^xm{<`x-_W0J61wQ`pPo^#l1tcsc z7v{ulGEupl6WG%-1Je7!uPrmEZ1?iY8rI@E&V~l(!p74N#QrT-@hMTShJUF4pOvb^ zD3%O@DSm=~Dmyp#$;la3Ic5!TkLa^}RO}x}28O7|87e;f>bmmm(9w{v*nZK)r<!HSKo$D|BO{}bCp#Bi^u2vsg*njkRsd7AQX~)j zca)VL-&$9}E`(S>o$UVJeJdZl!2p*nx~0z*Z{S4RVDQe-!GR&i(DMtD5B5BPvX6~{ zG}k9!%x~m3;E8z9m>Jkn9jxn0=B1>fcfAC!cv*P^bmMnmh=2-DYv9@9?C(X0RN^^U zR?*V$+i-bat_t%Hm^&>;#;0Q*sPc0eCgeYB?+5r%lPjb>NDFCd@9y3LreKX+ZZcZd zs?s&>m`*;-f_Dzg?a7D|Nm~j(7RC(aa6n<2_}f8JRD$D?M>Sh9Q2=;(F)=L1)2P9L zME_-v`3go<3v+#AE1lRG;6W0o!ty(^tA13t@nBM?=JHyBng(L3lXDW3IiiTNWPXal zt83?>&hINC*ERJH_mXi9bbDU6axocyPUSFZ1+b7_fTk9>$t1O;k(e(&809F_o{>|h zx*txM3rbW!dBR=t{9IQk2=p6%U6=~Q8NB(E`1VcH<}c)H#it_aFe+v^w44E45Qir2 zjqMuv50NsSIKi3dPZ1!d)A$5ZNi6J|i~`@_2w)yYt2Ta>RIlL3EyFZ|{mN$ZPlE>;s+ogi{IXk|#|KjjVyYuqELPt8 z1_<3fThycXwH(a#OZUU;4Ht}7YNe6I&VhA~xz*{PZdL`5HBQs?VBpld4wrlDKm;lT z${Uz-N#phHs=k)dsfe)o*IzqK1MmPfuJ8}QXg+5)Cy2%l$a+i=s%GMDc)6iLZ-oM# z@*Z#uIPKkXvd_t4?3PB^y#Lg@lTM6Bt1hf{?6E8f5s}2kwHbB~yaF1tT~DI4kVpRl z9|k=DHu*a6R2YW66ik5+*LB^mtFDGK7UF&;8f$+91!2xrUeH1LR>u4J`2Ar#&^HzS zxT5YV!R!D>mib)QJ%U(cY-(!ShI>U6WlVRUX4|1&!#JM_!k1;*IVg%$C>mz@Znz-| zUWmN4jm;fE#o+w4BMv^o=YYGwejGdpASu2b;Tlh`C}G!;aX+54=j*(USSSxOq4ING zegfSk&uh`*#Bk&-OSL@*$Bcv{<6|V@M5kMWq(-}YNRPbSr;i_NqO|(U#429AxZg9- z+|!kWZ~&ZgIy6_bVGvwYYJa4#uoCzCBp?J3q6#-;6fej`&o7C<^#~PaII3jRyvcv? zI=6oM#LK{EMY4`FS?KA_Tyu$Q3(bDL zEf%5PmM4hNRD}$=X$lKcIx=bqW~{A1v-AO4XX2g^HNJgGPvd*(0(YTSAb#!lzG8}a z9WUEY>khcqwtoIRx%FefCzhv&2mDyLGf{cbfCZdnQd|kjYMnw-B`eBu9Q{=PjPJ#P zfz)-zYWqpRN@EGmH$@7HbI6=mvaT6S@$JZSqaCE?pvxq_ByIo5V) zvpg-wqUW0^Hc7t_{WNr#Y9&AjEakpjC}1(7=7pdLf>pwjpdqEbybdT#JGcF!e8Ae6 z7oa0Un9#zfm6gyLsu0Bv^_21@bDG&RPd7c!SP0|d$EaEQiMt7iR6XzyioI3|??e!GAnakRRg$U3MeiUwY+Q1|L3b}NHdz(qYyXqskblQh>) zC6MZG)4E8LCV&~qZ}%biK%h%*P-vKs3+W6qfCd*$unZ(Z{u}-Md#%)Y@=b^rsYm}` zSTo^25Kl}Z4${O|7W4lAlK)3@Iq^^b^M{Vju+k39e7j?ZG=ndLHJkO*^>!TlKWq+E A3;+NC literal 0 HcmV?d00001 diff --git a/docs/references.bib b/docs/references.bib index 969ef3c9b..ecafe4f16 100644 --- a/docs/references.bib +++ b/docs/references.bib @@ -6,6 +6,21 @@ @Book{Pothof2011 isbn = {978-90-89577-018-5}, } +@article{bohm, +author = {Bøhm, Benny and Kristjansson, Halldor}, +title = {Single, twin and triple buried heating pipes: on potential savings in heat losses and costs}, +journal = {International Journal of Energy Research}, +volume = {29}, +number = {14}, +pages = {1301-1312}, +keywords = {buried heating pipes, twin pipes, triple pipes, heat losses, insulation, costs}, +doi = {https://doi.org/10.1002/er.1118}, +comment = {https://onlinelibrary.wiley.com/doi/abs/10.1002/er.1118}, +eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1002/er.1118}, +abstract = {Abstract In order to make district heating systems competitive in areas with single family houses or in other areas with low heat demands it is necessary to reduce the heat losses from the pipes. In recent years the twin pipe has become popular in the Nordic countries. In the article we describe how the heat loss and the heat loss coefficients can be calculated. We introduce the triple pipe with three media pipes (two supply pipes and one return pipe). The temperature dependency and the ageing of polyurethane insulation are briefly discussed. A comparison is made for different 80 mm distribution pipes and for different service pipes with respect to heat losses and to resources, i.e. materials needed for the casing and polyurethane insulation and the gravel in the excavations. For the distribution pipe we found that an egg-shaped twin pipe can reduce the heat loss by 37\% and the investments by 12\% compared with a pair of single pipes. For the service pipes we found that the triple pipe reduces the heat loss by 45\% compared with a common pair of single pipes and by 24\% compared with circular twin pipes. The reduction in investment index is 21\%. The article also addresses the question of the heat exchange between the two media pipes in a twin pipe. Copyright © 2005 John Wiley \& Sons, Ltd.}, +year = {2005} +} + @Article{Boehm2000, author = {Boehm, B.}, title = {On transient heat losses from buried district heating pipes}, diff --git a/docs/theory/Workflows.rst b/docs/theory/Workflows.rst index cf7273550..37057e40d 100644 --- a/docs/theory/Workflows.rst +++ b/docs/theory/Workflows.rst @@ -1,9 +1,11 @@ .. _chp_workflows: -Workflows -========= +Design Toolkit Workflows +======================== -This page eleborates on the available workflows within MESIDO. +This page eleborates on the available Design TOolkit workflows within MESIDO. +The Design Toolkit is a subsidy funded project (NieuweWarmteNu) to help different organizatons in the Districht heating value chain with sketch and conceptual design of District Heating Systems (DHS). +For more information see : https://nwn.nu/projecten/innovaties/design-toolkit-warmtenetten/. MESIDO is by no means limited to only these workflows, but it is left to the user itself to define the most logical workflow if the ones below are unsuitable. Currently two main workflows are provided: @@ -56,24 +58,45 @@ In its default configuration the workflow has the following main assumptions: * The whole network is realized instantaneously, as a single year is optimized and extrapolated for the lifetime. * In reality the realization of DHS is done in phases over a period of years. Hence this assumption is not valid, but allows the user to judge the long term feasibilty of the DHS system. For closing business case computation the effects of phased realization should be taken into account. * Pressure drops are not taken into account, a maximum flow velocity of 3 m/s is used to limit the pressure-drop per meter in the pipes. - * This assumtions is ok/valid when the user is still in a phase where the exact location of (booster-)pumps is to be determined and hence limiting the sizing of pipes with pressuredrop calculations would not be representative. - * Note that EndScenarioSizingHeadLoss can be used when the user wants the pressuredrop functionality. + * This assumptions is ok/valid when the user is still in a phase where the exact location of (booster-)pumps is to be determined and hence limiting the sizing of pipes with pressuredrop calculations would not be representative. + * Note that EndScenarioSizingHeadLoss can be used when the user wants the pressure-drop functionality. * Investment costs are not discounted and all assets depreciate to zero over the system lifetime. * This assumption comes out of an initial development phase, by now EndScenarioDiscounted can be used. * It is assumed that the user provides sufficient possibilities to the optimizer to match the heat demands. * The optimization will become a lot slower in case demands cannot be satisfied. If the user cannot garuantee to have sufficient assets to fullfill the demand it is advised to use slack (peak) sources. * It is assumed that the tank storage in the network can only be used for intra day buffering and hence can only be used by the optimizer for the peak day. * If this assumption is not valid an extension of the workflow is required. -* It is assumed that seasonal storage is cyclic over calander year, meaning that at the beginning and end of the year the same amount of thermal energy must be stored in the seasonal storage. +* It is assumed that seasonal storage is cyclic over calendar year, meaning that at the beginning and end of the year the same amount of thermal energy must be stored in the seasonal storage. * This assumption is required to ensure that the results of a single year can be extrapolated over the lifetime. For the assumptions on the physics and cost modelling the reader is referred to the respective modelling pages. +EndScenarioSizingNoHeatLosses +----------------------------- + +The EndScenarioSizingNoHeatLosses workflow provides all the same functionality as the standard EndScenarioSizing, except that heat losses in the network are not modelled. +This means that the required thermal energy of the system is underestimated and hence mainly the OPEX will be underestimated. +This workflow has the advantage that it is much faster than the default EndScenarioSizing (typically > factor 10). +Therefore, it is recommended to use this workflow in the initial phases of analysis with larger networks. +This workflow will allows to make quicker iterations on the input ESDL file and debug posssible errors in a shorter time-frame. + +EndScenarioSizingNoHeatLosses workflow should not be used as a replacement of the EndScenarioSizing workflow as heat losses can be up to 20% of the demand and should not be neglected for design. + EndScenarioSizingDiscounted --------------------------- +The EndScenarioSizingDiscounted provides everything the EndScenarioSizing workflow provides, but also: + +* The ability to account for varying depreciation times of assets in the system. +* The ability to take into account a discount rate for the CAPEX of assets. EndScenarioSizingHeadLoss ------------------------- + +The EndScenarioSizingHeadLoss provides everything the EndScenarioSizing workflow provides, but also: + +* It takes into account the pressure drops in the network. +* It computes the hydraulic power and thereby the pumping power. It is assumed that every source will have a pump. The pumping cost will be computed with the electricity price profile if an electricity carrier is specified in the ESDL file. + diff --git a/docs/theory/electricity_physics.rst b/docs/theory/electricity_physics.rst new file mode 100644 index 000000000..1b84c2ff7 --- /dev/null +++ b/docs/theory/electricity_physics.rst @@ -0,0 +1,6 @@ +.. _chp_electricity_physics: + +Electricity Physics +=================== + +Coming soon... diff --git a/docs/theory/gas_physics.rst b/docs/theory/gas_physics.rst new file mode 100644 index 000000000..62161f48e --- /dev/null +++ b/docs/theory/gas_physics.rst @@ -0,0 +1,6 @@ +.. _chp_gas_physics: + +Gas Physics +=========== + +Coming soon... diff --git a/docs/theory/heat_physics.rst b/docs/theory/heat_physics.rst new file mode 100644 index 000000000..d6d8f6941 --- /dev/null +++ b/docs/theory/heat_physics.rst @@ -0,0 +1,358 @@ +.. _chp_heat_physics: + +Heat Physics +============ + +Mesido models thermal power (:math:`\dot{Q}`), volumetric flow (:math:`\dot{V}`), and head (:math:`H`) for DHS systems. +These variables are modelled over all time-steps :math:`K` and for each asset in the system :math:`A`. +An asset :math:`a \in A` in the system is modelled using a set of in-ports, denoted by :math:`I^a_{in} \neq \emptyset`, and a set of out-ports, denoted by :math:`I^a_{out} \neq \emptyset`, with :math:`I^a` denoting the union of these two sets. +For an asset :math:`a` the three variables :math:`\dot{Q}_i, \dot{V}_i`, and :math:`H_i` denote the thermal power, volumetric flow and head for port :math:`i \in I^a`. For readability, the variables and equations of the model, given below, are defined without indexing the variables and sets for each time-step. +The equations below are assumed to hold for every time-step, unless otherwise specified. + +Modelling specifically these three variables allows to ensure a hydraulically feasible solution whilst linearizing the physics. +Energy changes are modelled with the assumption of a constant temperature throughout the network. +Although this assumption is not realistic, the linearization made will show that the effects of these assumptions are relatively small and conservative to the objective function outcome. + +General Physics +--------------- + +The DHS is modelled as a closed loop system and thus at every time-step and for every asset, mass balance should hold. +The system is modeled with constant temperature and thus constant density and specific heat. The mass balance is provided as a volumetric flow balance in :eq:`eq:flow_balance`. + +.. math:: + :label: eq:flow_balance + + \sum_{i \in I^a} \dot{V}_{i} = 0 \;\; \forall a \in A + + +To garuantee energy balance :eq:`eq:general_energy_balance` is applied. + +.. math:: + :label: eq:general_energy_balance + + \sum_{i \in I} \dot{Q}_i + \dot{Q}^a_{consumed} = 0 \;\; \forall a \in A + +:math:`\dot{Q}^a_{consumed}` is the thermal power consumed by asset :math:`a`. +The power losses for the asset are included in this variable. Furthermore, the convention that positive consumed power is equal to thermal power production of an asset. + +Network Physics +--------------- + +Pipe +~~~~ +The main function of a pipe is to transport thermal power. +It loses part of this thermal power to the surroundings as the ambient temperature is lower, thus :math:`\dot{Q}^a_{consumed}` equals the (negative) losses incurred in the pipe in :eq:`eq:general_energy_balance`. + +The thermal power losses are approximated with :eq:`eq:heat_loss`, utilizing the Bohm model, :cite:`bohm`. + +.. math:: + :label: eq:heat_loss + + \dot{Q}^a_{consumed} = L^a( (U_2 - U_1)T_{amb} + U_1 T_{sup} - U_2 T_{ret})\delta^a_{discon} \forall a \in A_{pipes} + +where + +.. math:: + :label: eq:pipe_heat_loss_U1 + + U_1 = \frac{R_{subsoil} + R_{ins}}{(R_{subsoil} + R_{ins})^2 - R_{neighbour}^2} + +.. math:: + :label: eq:pipe_heat_loss_U2 + + U_2 = \frac{R_{neighbour}}{(R_{subsoil} + R_{ins})^2 - R_{neighbour}^2} + +.. math:: + :label: eq:pipe_heat_loss_Rins + + R_{ins} = \sum_i \frac{ln(\frac{d^a_{outer}}{d^a_{inner}})}{2\pi k} + +.. math:: + :label: eq:pipe_heat_loss_Rneigh + + R_{neighbour} = \frac{ln(1 + (2H/2d^a_{outer})^2)}{4 \pi k_{subsoil}}, + +.. math:: + + R_{subsoil} = \frac{ln(\frac{4H}{d^a_{outer}})}{2 \pi k_{subsoil} }. + +.. math:: + + \delta^a_{discon} \in \{0, 1\} \;\; \forall a \in A_{pipes} + +Here :math:`T_{sup}, T_{ret}`, and :math:`T_{amb}` are the supply, return and ambient temperatures. +:math:`A_{pipes}` is the set of pipes with :math:`L^a` the length of pipe :math:`a`. +:math:`\delta^a_{discon}` is a binary variable used to model if pipe :math:`a` is in use or not. +:math:`d^a_{inner}` and :math:`d^a_{outer}` are the inner and outer diameters of pipe :math:`a` and :math:`k_{subsoil}` is a constant used to model the resistance of the subsoil. +:math:`\delta^a_{discon}` is modelled using: + +.. math:: + + \dot{Q}_{i} + \delta_{discon}M \geq 0 \;\; \forall i \in I^{a} \;\; \forall a \in A_{pipes}, + +.. math:: + + \dot{Q}_{i} - \delta_{discon}M \leq 0 \;\; \forall i \in I^a \;\; \forall a \in A_{pipes}. + +Here :math:`M` is a sufficiently large constant used in a method called the big-M method \cite{vielma2015mixed}. + +The thermal power loss is approximated as a constant as the network supply and return temperature are assumed constant. +The source side supply temperature and demand side return temperature are selected to guarantee an overestimation of the thermal power loss, since in reality the temperature w.r.t. the ambient decreases as the temperature drops with the thermal power loss. + +Typical temperature drops in the primary network are up to 3 degrees, this implies that for medium temperature networks, operating at 75 degrees and with an ambient of 15 degrees, the error for the heat loss estimation is less than :math:`\frac{3}{75-15} = 5\%`. +During periods of larger heating demand, typically in the winter, the relative error in the heat loss estimation will be smaller and thus it will not result in unnecessary large pipe diameters and heat power production. + +Inequality constraints correlate the volumetric flow :math:`\dot{V}` and the heat flow :math:`\dot{Q}` through pipes as a compensation of heat losses is required: + +.. math:: + :label: eq:pipe_heat2discharge1 + + \dot{Q}_{i} - c_p \rho T^a \dot{V} - (1 - \delta^a_{dir})M \leq 0 \;\; \forall i \in I^a \;\; \forall a \in A_{pipes}, + +.. math:: + :label: eq:pipe_heat2discharge2 + + \dot{Q}_{i} - c_p \rho T^{a} \dot{V} + \delta^a_{dir}M \geq 0 \;\; \forall i \in I^a + \;\; \forall a \in A_{pipes}, + +.. math:: + :label: eq:pipe_flow_dir + + \delta^a_{dir} \in \{ 0, 1 \} \;\; \forall a \in A_{pipes}. + +Here :math:`T^a` is the temperature inside pipe :math:`a`, which is assumed to be either :math:`T_{sup}` or :math:`T_{ret}`, :math:`c_p` and :math:`\rho` are the specific heat capacity and density of water and :math:`M` is a sufficiently large constant number. :math:`\delta^a_{dir}` denotes the flow direction is used to model the flow direction through the pipe, where we assume that a value of :math:`1` indicates a positive flow (from in-port to out-port). This is modelled using: + +.. math:: + :label: eq:flowdir1 + + \dot{Q}^a_{i} - \delta^a_{dir}M \leq 0 \;\; \forall i \in I^a \;\; \forall a \in A_{pipes}, + +.. math:: + :label: eq:flowdir2 + + \dot{Q}_{i} + (1 - \delta_{dir})M \geq 0 \;\; \forall i \in I^{a} \;\; \forall a \in A_{pipes}. + +Within a hydraulically coupled system the volume is assumed to be preserved as result of the mass balance and constant temperature, therefore :eq:`eq:flow_balance` is applied to pipes. +Pipes give resistance opposing the flow in the flow of head loss, :math:`dH`. This head loss must be compensated by pumps which are assumed to be located at sources and storage assets: + +.. math:: + :label: eq:pipe_head + + H^a_{in} - dH = H^a_{out} \;\; \forall a \in A_{pipes}. + +In reality the steady-state head losses are closely modelled with a quadratic relation w.r.t. :math:`\dot{V}`. To approximate the quadratic behaviour a set of linear inequalities is used, see :numref:`inequalitydH`. The general form of the inequalities is given below in :eq:`eq:pipe_head_loss1`-:eq:`eq:pipe_hp2` These inequalities force the head loss to be greater or equal to the approximated quadratic curve. Although this will not enforce a physically feasible answer the optimizer will in practice drag the solution to an equality constraint as the objective function will minimize cost that reduces with lower pressure drop. + +.. _inequalitydH: + +.. figure:: ../images/linearlines.png + :figwidth: 6.94792in + :align: center + + Schematic visualization of how the linear constraints are fitted to the head loss curve. + +This method with linear inequalities is only valid when every unique route the flow can take in the network has a control valve to compensate non-physical head loss induced by the optimizer. This was a valid assumption for the use-case in this research, alternatively a (piece-wise) linear equality constraint between min and max flow-rate can be applied for cases where this assumption is invalid. + +Note that the big M method is used in combination with the flow direction integers to allow the inequality constraints to work both for positive and negative flow and to allow for disabling the constraints when no flow is going through the pipe. + +.. math:: + :label: eq:pipe_head_loss1 + + dH - (\alpha_j \dot{V} + \beta_j) + (\delta^a_{discon} + 1-\delta^a_{dir})M\geq 0 \\ \forall (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, + +.. math:: + :label: eq:pipe_head_loss2 + + dH - (\alpha_j\dot{V} + \beta_j) - (\delta^a_{discon} + \delta^a_{dir})M\leq 0 \\ \forall (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}. + +Where :math:`(\alpha_j, \beta_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. + +Similar as with head loss the hydraulic power, :math:`HP^a`, required to overcome the head losses is modelled with a set of linear inequalities: + +.. math:: + :label: eq:pipe_hp1 + + HP^a - (c_j\dot{V} + d_j) + (\delta^a_{discon} + 1-\delta^a_{dir})M \geq 0 \\ + \forall (c_j, d_j) \;\; \forall a \in A_{pipes}, + +.. math:: + :label: eq:pipe_hp2 + + HP^a - (c_j\dot{V} + d_j) - (\delta_{discon}(k) - 1-\delta_{dir})M\geq 0 \\ + \forall (c_j, d_j) \;\; \forall a \in A_{pipes}. + +Here :math:`(c_j, d_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. + +Node +~~~~ + +A node needs to conserve the flow with :eq:`eq:flow_balance` and the energy with :eq:`eq:general_energy_balance` where no energy losses, production and consumption occurs. + +To make the solution hydraulically feasible it is enforced that all heads connected to the node have to be equal: + +.. math:: + :label: eq:node_head + + H_i = H^a \;\; \forall i \in I^a \;\; a \in A_{nodes}, + +where :math:`A_{nodes}` is the set of all nodes and :math:`H^a` is the headloss for node :math:`a`. + +Asset Physics +------------- + +Source +~~~~~~ + +The main function of a source is to add thermal power to the network that can be consumed, or is lost to the ambient. +The energy balance of the addition of thermal power is ensured by :eq:`eq:general_energy_balance` with :math:`\dot{Q}^a_{consumed}` is set to the (negative) value of the produced amount of heat. + +The addition of energy is executed by increasing the temperature of the incoming cold water of the return network to the outgoing supply temperature. +Therefore, the volumetric flow-rate is linked to the outgoing thermal power with the outgoing supply temperature using: +% + +.. math:: + :label: eq:source_heat2discharge + + \sum_{i \in I^a_{out}} \dot{Q}^a_i = c_p \rho \dot{V}^a T_{sup} \;\; \forall a \in A_{prod}, + +with :math:`A_{prod}` the set of all producers. Note that we assume that every producer has only a single in- and a single out-port. + +This equality constraint ensures that the thermal power cannot be larger than what physically can be transported by the flow. Applying only equality constraints on the outgoing heat of assets, except from pipes, allows to consider temperature regimes, their corresponding heat losses and volumetric flows without modelling the temperature. +No constraints are set on the returning flow to the producer as this is already implied by heat flow constraints on pipes. The optimizer will drag the solution to the minimum amount of thermal power to produce for minimizing cost. + +The errors as a result of not modelling the temperature, e.g. linearizing the problem, can be observed in various parts of the costs. +The heat losses will be overestimated resulting in a conservative estimation w.r.t. the cost of the thermal energy produced. +Furthermore, the overestimation in thermal power will result in an overestimation of the flow and thus of the transportation and pipe sizing cost. + +It is assumed that the source acts within the hydraulically coupled network and does not add or subtract mass, which under the assumption of constant temperature ensures the flow balance :eq:`eq:flow_balance`. + +It is assumed that every source has a pump to reach its desired flow-rate and head: + +.. math:: + :label: eq:source_pump_dh + + H^a_{in} + dH_{pump} = H^a_{out} \;\; \forall a \in A_{prod}. + +Since we assume that a producer has only a single in- and a single out-port, :math:`H^a_{in}` and :math:`H^a_{out}` are the head values of the specific pipes connected to these ports, and :math:`dH_{pump}` is the compensation provided by the pump of the asset. + +Demand +~~~~~~ + +Contrary to a source, a demand's function is to extract thermal power from the network, defined by :eq:`eq:general_energy_balance` where :math:`\dot{Q}^a_{consumed}` is the consumed thermal energy by the demand. + +Likewise to a source, no additional constraints are required to link the heat flow and volumetric flow at the in-going supply side of the demand as this is already implied by all other network constraints. +An equality constraint is used to link outgoing thermal power and volumetric flow with the return temperature of the network: + +.. math:: + :label: eq:consumer_heat2discharge + + \sum_{i \in I^a_{out}} \dot{Q}^a_i = c_p \rho \dot{V}^a T_{ret} \;\; \forall a \in A_{demand}, + +where :math:`A_{demand}` is the set of demand assets. + +Important to note, is that this combination of constraints for the producers and demands, results in a smaller achieved temperature difference at the demand than the difference between the given temperatures for the supply and return side. And a larger achieved temperature difference at the producer. +The choice on where a temperature is fixed results in different errors as already explained at the producers. + +Again it is assumed that a demand also acts within the hydraulically coupled system under the same assumptions, see :eq:`eq:flow_balance`. + +Every demand is assumed to have a control valve to regulate its flow. Typically, a minimum head loss should be maintained: + +.. math:: + :label: eq:demand_head + + H^a_{in} - dH_{valve} = H^a_{out} \;\; \forall a \in A_{demand}. + +Storage +~~~~~~~ + +Storage assets in the network can have the function to add time flexibility with the production and consumption of energy in the network. For shorter periods this capability is provided by tanks, storage over seasons is done with \gls{ht-ates}, \cite{drijver2019state}. Both are modelled with equivalent logic and their own specific parameters. + +The amount of thermal power extracted from or provided to the network subtracted by the losses in the storage is defined as :math:`\dot{Q}^{a}_{consumed}` by: + +.. math:: + :label: eq:change_stored_heat + + \dot{Q}^{a}_{consumed} = \sum_{i \in I^a_{in}} \dot{Q}^{a}_{i} - \sum_{i \in I^a_{out}} \dot{Q}^{a}_{i} - \dot{Q}^{a}_{loss} \;\; \forall a \in A_{storage}, + +where :math:`\dot{Q}^{a}_{in}`, :math:`\dot{Q}^{a}_{out}` and :math:`\dot{Q}^{a}_{loss}` define the heat entering, leaving and heat loss of the storage asset respectively. +The consumed heat of the storage assets is equated to the change change in stored heat, :math:`\dot{Q}^{a}_{stored}`: + + +.. math:: + :label: eq:stored_heat + + \dot{Q}^{a}_{consumed} = \dot{Q}^{a}_{stored} \;\; \forall a \in A_{storage} + + +The storage needs an equality constraints for thermal power to volumetric flow on the outgoing flow to the supply network when it is discharging and acting like a source and on the outgoing flow to the return network when it is charging and acting like a demand. +This is achieved by using the big M method to activate the constraints during charging, :eq:`eq:storage_heat2discharge1` and :eq:`eq:storage_heat2discharge2`, and during discharging, :eq:`eq:storage_heat2discharge3` and :eq:`eq:storage_heat2discharge4`. +For this purpose the flow direction integer of the connecting pipe is used, such that :math:`\delta_{dir}` is 1 for charging. + +.. math:: + :label: eq:storage_heat2discharge1 + + \sum_{i \in I^a_{in}} \dot{Q}^{a}_{i} - c_p \rho \dot{V}^{a} T_{sup} \leq 0 \;\; \forall a \in A_{storage} + +.. math:: + :label: eq:storage_heat2discharge2 + + \sum_{i \in I^a_{in}} \dot{Q}^{a}_{i} - c_p \rho \dot{V}^{a} T_{sup} + \delta^{a}_{dir} M \geq 0 \;\; \forall a \in A_{storage} + +.. math:: + :label: eq:storage_heat2discharge3 + + \sum_{i \in I^a_{out}} \dot{Q}^{a}_{i} - c_p \rho \dot{V}^{a} T_{ret} \geq 0 \;\; \forall a \in A_{storage} + +.. math:: + :label: eq:storage_heat2discharge4 + + \sum_{i \in I^a_{out}} \dot{Q}^{a}_{i} - c_p \rho \dot{V}^{a} T_{ret} - (1-\delta^{a}_{dir}) M \leq 0 \;\; \forall a \in A_{storage} + +For simplicity it is assumed that the loss scales linearly with the amount of stored heat: + +.. math:: + :label: eq:storage_loss + + \dot{Q}^{a}_{loss} = \beta^{a} Q^{a}_{stored} \;\; \forall a \in A_{storage}, + +where :math:`Q^{a}_{stored}` is the heat stored in the storage asset and :math:`\beta` is the efficiency factor. + +For tanks it is assumed that they are cylindrical and radiate heat over their their surface area. This is done as this surface area increases linearly with the stored heat, see :eq:`eq:etatank`. A radiation coefficient, :math:`c_r`, of 1 :math:`W/m^2` is used as an approximation. + +.. math:: + :label: eq:etatank + + \beta_{tank} = \frac{2c_r}{r\rho c_p} + +For an \gls{ht-ates} a first approximation for heat loss is based on an efficiency that is reached in a period of time. In this research a value of 70\% over 100 days is used. + +.. math:: + + \beta_{HTATES} = \eta^{\frac{1}{time}} + + +Similarly as for the other assets the storage assets are assumed to act within the hydraulically coupled system, nonetheless the volumetric flow balance requires additional equations. +The storage is modelled as an asset with two variable volumes, one for the cold and one for the warm water. The total in- and outflow of the storage will be equal, however, the volumes inside the storage might vary under the condition that the sum remains constant and is equal to the total volume of storage:%, modelled using :eq:`eq:storage_volume_constant`. + +.. math:: + :label: eq:storage_volume_constant + + \dot{V}^{a}_{warm}-\dot{V}^{a}_{cold}=0 \;\; \forall a \in A_{storage}, + +where :math:`\dot{V}^{a}_{warm}` and :math:`\dot{V}^{a}_{cold}`, respectively denote the change in volume of the warm and cold water. +The warm volume will increase and decrease with the volumetric flow passing the storage: + +.. math:: + :label: eq:storage_volume_change + + \dot{V}^{a}-\dot{V}^{a}_{warm}=0 \;\; \forall a \in A_{storage}. + +The storage assets are assumed to have both a pump and a valve to regulate their flow rate: + +.. math:: + :label: eq:source_pump + + H^{a}_{in} + dH^{a}_{pump} - dH^{a}_{valve} = H^{a}_{out} \;\; \forall a \in A_{storage}, + +where :math:`dH^{a}_{pump}` is a compensation of the pressure increase by the pump of the storage asset and :math:`dH^{a}_{valve}` is a compensation of the pressure decrease by the control valve of the storage asset. + + diff --git a/docs/theory/index.rst b/docs/theory/index.rst index b2e20649d..bee9df268 100644 --- a/docs/theory/index.rst +++ b/docs/theory/index.rst @@ -1,9 +1,12 @@ .. toctree:: :maxdepth: 3 + :numbered: introduction code_structure + philosophy + physics + heat_physics + electricity_physics + gas_physics Workflows - approach - Validation_pipe_diameter_sizing - pipe_classes diff --git a/docs/theory/introduction.rst b/docs/theory/introduction.rst index 1bbc07549..78e5477f0 100644 --- a/docs/theory/introduction.rst +++ b/docs/theory/introduction.rst @@ -1,3 +1,5 @@ +.. _chp_introduction: + Introduction ============ diff --git a/docs/theory/philosophy.rst b/docs/theory/philosophy.rst new file mode 100644 index 000000000..95177ea66 --- /dev/null +++ b/docs/theory/philosophy.rst @@ -0,0 +1,18 @@ +.. _chp_philosophy: + + +Modelling Philosophy +==================== + +Conceptual design with operational strategy for energy systems starts simultaneously with the initial feasibility studies. +This early phase is challenging as it comes with many uncertainties, such as the expected demand profiles, and the many possibilities of choices of the design, e.g. network routing, sizing, and multiple optional locations for assets as sources and storages. + +Nevertheless, in practice it is seen that the decisions made in these early phases are crucial for the eventual system performance, as they set the boundaries for interactions between assets and sub-parts of the overall energy system. +Later design phases can therefore be limited by decisions made during the initial feasibility phases. +Good trade-offs take into account the interaction between assets, but also trade-offs between design and operational strategy are key in reducing the overall system cost. + +Mesido applies a Mixed Integer Linear Problem (MILP) formulation to adress these challenges. The main reasons are: + +* The early phases of designing the energy system decision makers are typically not looking for high accuracy physical insight, but rather for directions in investment choices. Hence MILP approximation methods that are conservative and feasible whilst staying within accuracy bounds of the available input data suffice. This allows the decision makers to make plans in this early phase with lower financial risk as plans will become more detailed over time. +* Part of the decisions for designing an energy system have an integer nature, e.g. placing a source or options for a pipe size. These design choices cannot be modelled with continuous formulation in a representative manner. +* Due to the large number of uncertainties it is key to have the ability to iterate quickly over input data variations. The computational speed of the optimization is therefore of vital importance. Ideally, the user should be able to do many iterations within one day. diff --git a/docs/theory/physics.rst b/docs/theory/physics.rst new file mode 100644 index 000000000..e86ec6b90 --- /dev/null +++ b/docs/theory/physics.rst @@ -0,0 +1,41 @@ +.. _chp_physics: + +Physics +======= + +Within Mesido the physics are approximated utilizing the mixed integer linear constraints. +The goal within Mesido is to approximate the physics in such a way that the approximation errors result in conservative estimates on the financial aspects of the system, e.g. overestimating cost and underestimating revenue. +To cater for different design phases different approximation fidelities can be configuration in Mesido. +Examples include the approximation of head loss which can be ignored or approximated with multiple linear constraints. +Mesido allows for the integral optimization of energy systems having: + +* A heat commodity (closed loop district heating networks where water is used as the medium) +* A gaseous commodity where pipes transport the gas. +* Electricity commodity where cables transport the energy + +There are documentation pages for the three respective commodities and the physics that are modelled for each. This page will focus on the assets, physics and other functionality that generalizes over the commodities. + +Electrolyzer +------------ + + +Water-water Heat Pump Electrical +-------------------------------- + + + +Air-water Heat Pump Electrical +------------------------------ + + +Electrical Boiler +----------------- + + +Gas Boiler +---------- + + +Setpoint Constraints +-------------------- + From 1abc4c651f43dd65459ce5aab15202f1aabf93c6 Mon Sep 17 00:00:00 2001 From: Rojer Date: Mon, 29 Apr 2024 14:25:28 +0200 Subject: [PATCH 107/275] wip --- docs/conf.py | 25 ++++++++++++++++++++++++- docs/index.rst | 2 +- docs/references.bib | 11 +++++++++++ docs/theory/heat_physics.rst | 26 ++++++++++++++------------ docs/theory/physics.rst | 3 ++- 5 files changed, 52 insertions(+), 15 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 59b44a3be..5a95414ee 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -80,8 +80,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # + + html_theme = 'sphinx_rtd_theme' -html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] +# html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] +html_theme_options = { + 'analytics_id': 'G-XXXXXXXXXX', # Provided by Google in your dashboard + 'analytics_anonymize_ip': False, + 'logo_only': False, + 'display_version': True, + 'prev_next_buttons_location': 'bottom', + 'style_external_links': False, + 'vcs_pageview_mode': '', + # 'style_nav_header_background': 'ba', + # Toc options + 'collapse_navigation': False, + 'sticky_navigation': False, + 'navigation_depth': 3, + 'includehidden': False, + 'titles_only': False +} + +# html_theme_options = { +# 'navigation_depth': -1, +# +# } # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, diff --git a/docs/index.rst b/docs/index.rst index 90c090234..b59ba0cfc 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -6,7 +6,7 @@ This is the documentation for MESIDO. .. toctree:: - :maxdepth: 2 + :maxdepth: 4 :caption: Mesido theory/index diff --git a/docs/references.bib b/docs/references.bib index ecafe4f16..c627143c0 100644 --- a/docs/references.bib +++ b/docs/references.bib @@ -6,6 +6,17 @@ @Book{Pothof2011 isbn = {978-90-89577-018-5}, } +@article{vielma2015mixed, + title={Mixed integer linear programming formulation techniques}, + author={Vielma, Juan Pablo}, + journal={Siam Review}, + volume={57}, + number={1}, + pages={3--57}, + year={2015}, + publisher={SIAM} +} + @article{bohm, author = {Bøhm, Benny and Kristjansson, Halldor}, title = {Single, twin and triple buried heating pipes: on potential savings in heat losses and costs}, diff --git a/docs/theory/heat_physics.rst b/docs/theory/heat_physics.rst index d6d8f6941..7869849ea 100644 --- a/docs/theory/heat_physics.rst +++ b/docs/theory/heat_physics.rst @@ -17,7 +17,8 @@ General Physics --------------- The DHS is modelled as a closed loop system and thus at every time-step and for every asset, mass balance should hold. -The system is modeled with constant temperature and thus constant density and specific heat. The mass balance is provided as a volumetric flow balance in :eq:`eq:flow_balance`. +The system is modeled with constant temperature and thus constant density and specific heat. +The mass balance is provided as a volumetric flow balance in :eq:`eq:flow_balance`. .. math:: :label: eq:flow_balance @@ -80,11 +81,11 @@ where \delta^a_{discon} \in \{0, 1\} \;\; \forall a \in A_{pipes} -Here :math:`T_{sup}, T_{ret}`, and :math:`T_{amb}` are the supply, return and ambient temperatures. -:math:`A_{pipes}` is the set of pipes with :math:`L^a` the length of pipe :math:`a`. -:math:`\delta^a_{discon}` is a binary variable used to model if pipe :math:`a` is in use or not. +:math:`T_{sup}, T_{ret}`, and :math:`T_{amb}` represent the supply, return and ambient temperatures. +:math:`A_{pipes}` define the set of pipes with :math:`L^a` being the length of pipe :math:`a`. +:math:`\delta^a_{discon}` is a boolean variable to model if pipe :math:`a` is in use for a specific time-step. :math:`d^a_{inner}` and :math:`d^a_{outer}` are the inner and outer diameters of pipe :math:`a` and :math:`k_{subsoil}` is a constant used to model the resistance of the subsoil. -:math:`\delta^a_{discon}` is modelled using: +:math:`\delta^a_{discon}` is modelled by: .. math:: @@ -94,15 +95,15 @@ Here :math:`T_{sup}, T_{ret}`, and :math:`T_{amb}` are the supply, return and am \dot{Q}_{i} - \delta_{discon}M \leq 0 \;\; \forall i \in I^a \;\; \forall a \in A_{pipes}. -Here :math:`M` is a sufficiently large constant used in a method called the big-M method \cite{vielma2015mixed}. +Here :math:`M` is a sufficiently large constant used in a method called the big-M method :cite:`vielma2015mixed`. -The thermal power loss is approximated as a constant as the network supply and return temperature are assumed constant. -The source side supply temperature and demand side return temperature are selected to guarantee an overestimation of the thermal power loss, since in reality the temperature w.r.t. the ambient decreases as the temperature drops with the thermal power loss. +The thermal power loss is assumed to be constant as the pipe temperature is assumed to be constant. +The outgoing temperatures at the assets (e.g. supply at the source and return at the demand) are used to ensure an overestimation of the thermal loss. In reality the temperature w.r.t. the ambient decreases as the temperature drops over the pipe with the energy loss. -Typical temperature drops in the primary network are up to 3 degrees, this implies that for medium temperature networks, operating at 75 degrees and with an ambient of 15 degrees, the error for the heat loss estimation is less than :math:`\frac{3}{75-15} = 5\%`. -During periods of larger heating demand, typically in the winter, the relative error in the heat loss estimation will be smaller and thus it will not result in unnecessary large pipe diameters and heat power production. +Typical temperature drops in the primary network are up to 3 degrees, this implies that for medium temperature networks, operating at 75 degrees and with an ambient of 15 degrees, the error for the heat loss estimation is less than :math:`\frac{3}{75-15} \approx 5\%`. -Inequality constraints correlate the volumetric flow :math:`\dot{V}` and the heat flow :math:`\dot{Q}` through pipes as a compensation of heat losses is required: +Inequality constraints are used to relate the volumetric flow :math:`\dot{V}` and the heat flow :math:`\dot{Q}` through pipes as a compensation of heat losses is required. +Please note that the :math:`\dot{V}` and the heat flow :math:`\dot{Q}` will be related by equality constraints for the outgoing flow at the assets, ensuring that the thermal power propagates correctly through the network. .. math:: :label: eq:pipe_heat2discharge1 @@ -120,7 +121,8 @@ Inequality constraints correlate the volumetric flow :math:`\dot{V}` and the hea \delta^a_{dir} \in \{ 0, 1 \} \;\; \forall a \in A_{pipes}. -Here :math:`T^a` is the temperature inside pipe :math:`a`, which is assumed to be either :math:`T_{sup}` or :math:`T_{ret}`, :math:`c_p` and :math:`\rho` are the specific heat capacity and density of water and :math:`M` is a sufficiently large constant number. :math:`\delta^a_{dir}` denotes the flow direction is used to model the flow direction through the pipe, where we assume that a value of :math:`1` indicates a positive flow (from in-port to out-port). This is modelled using: +Here :math:`T^a` is the temperature inside pipe :math:`a`, :math:`c_p` and :math:`\rho` are the specific heat capacity and density of water and :math:`M` is a sufficiently large constant number. +:math:`\delta^a_{dir}` is the variable for flow direction in the pipe, where a value of :math:`1` indicates a positive flow (from in-port to out-port). This is modelled using: .. math:: :label: eq:flowdir1 diff --git a/docs/theory/physics.rst b/docs/theory/physics.rst index e86ec6b90..8b84ba57f 100644 --- a/docs/theory/physics.rst +++ b/docs/theory/physics.rst @@ -13,7 +13,8 @@ Mesido allows for the integral optimization of energy systems having: * A gaseous commodity where pipes transport the gas. * Electricity commodity where cables transport the energy -There are documentation pages for the three respective commodities and the physics that are modelled for each. This page will focus on the assets, physics and other functionality that generalizes over the commodities. +There are documentation pages for the three respective commodities and the physics that are modelled for each. +This page will focus on the assets, physics and other functionality that involves multiple commodities. Electrolyzer ------------ From 37344e7c547958e1e0daf7bfbbb9b105466d722f Mon Sep 17 00:00:00 2001 From: Rojer Date: Mon, 29 Apr 2024 16:42:02 +0200 Subject: [PATCH 108/275] a lot of documentation --- docs/references.bib | 7 ++ docs/theory/Workflows.rst | 8 +- docs/theory/asset_sizing.rst | 155 +++++++++++++++++++++++++++++++++++ docs/theory/financial.rst | 58 +++++++++++++ docs/theory/heat_physics.rst | 104 ++++++++++++----------- docs/theory/index.rst | 5 +- docs/theory/physics.rst | 15 ++-- 7 files changed, 295 insertions(+), 57 deletions(-) create mode 100644 docs/theory/asset_sizing.rst create mode 100644 docs/theory/financial.rst diff --git a/docs/references.bib b/docs/references.bib index c627143c0..f8e928417 100644 --- a/docs/references.bib +++ b/docs/references.bib @@ -32,6 +32,13 @@ @article{bohm year = {2005} } +@inproceedings{drijver2019state, + title={State of the art of HT-ATES in The Netherlands}, + author={Drijver, Benno and Bakema, Guido and Oerlemans, Peter}, + booktitle={European Geothermal Congress: Proceedings, Den Haag, Netherlands}, + year={2019} +} + @Article{Boehm2000, author = {Boehm, B.}, title = {On transient heat losses from buried district heating pipes}, diff --git a/docs/theory/Workflows.rst b/docs/theory/Workflows.rst index 37057e40d..4301a50f0 100644 --- a/docs/theory/Workflows.rst +++ b/docs/theory/Workflows.rst @@ -28,7 +28,7 @@ This workflow comes in a few variants that give the user the possibility to trad * EndScenarioSizingHeadLossDiscounted EndScenarioSizing ------------------ +~~~~~~~~~~~~~~~~~ The EndScenarioSizing workflow in short: @@ -72,7 +72,7 @@ In its default configuration the workflow has the following main assumptions: For the assumptions on the physics and cost modelling the reader is referred to the respective modelling pages. EndScenarioSizingNoHeatLosses ------------------------------ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The EndScenarioSizingNoHeatLosses workflow provides all the same functionality as the standard EndScenarioSizing, except that heat losses in the network are not modelled. This means that the required thermal energy of the system is underestimated and hence mainly the OPEX will be underestimated. @@ -84,7 +84,7 @@ EndScenarioSizingNoHeatLosses workflow should not be used as a replacement of th EndScenarioSizingDiscounted ---------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~ The EndScenarioSizingDiscounted provides everything the EndScenarioSizing workflow provides, but also: @@ -93,7 +93,7 @@ The EndScenarioSizingDiscounted provides everything the EndScenarioSizing workfl EndScenarioSizingHeadLoss -------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~ The EndScenarioSizingHeadLoss provides everything the EndScenarioSizing workflow provides, but also: diff --git a/docs/theory/asset_sizing.rst b/docs/theory/asset_sizing.rst new file mode 100644 index 000000000..0decf3643 --- /dev/null +++ b/docs/theory/asset_sizing.rst @@ -0,0 +1,155 @@ +.. _chp_asset_sizing: + +Asset Sizing +============ + +Mesido supports both the placing and sizing decision. +Where placement is the integer decision if an optional location is selected or not. +The integer for whether or not an asset is placed is govorned based on whether or not power is exchanged between the asset and other assets over the time horizon, see: + +.. math:: + :label: eq:max_placed_power + + \dot{Q}^{a}_{max}-q^{a}_{max}\delta^{a}_{placed} \leq 0 \;\; + +.. math:: + :label: eq:min_placed_power + + -\dot{Q}^{a}_{max}-q^{a}_{min}\delta^{a}_{placed} \leq 0 \;\; + +.. math:: + :label: eq:placement_variable + + \delta^{a}_{placed} \in \{0,1\} \;\; + +Where :math:`(q^{a}_{min}, q^{a}_{max})` the lower and upperbound of the power. + +For the sizing Mesido supports three general methods. +Depending on the physics can be applied to different assets. + +Continious Sizing +----------------- + +If an asset is continuously sized the max size var, :math:`x^{a}_{max}` must if given to be larger than the state, :math:`x^{a}`, (e.g. power) with which the size scales. + +.. math:: + :label: eq:limit_power_ates + + -x^{a}_{max}\leq x^{a} \leq x^{a}_{max} + +Sizing with aggregation +----------------------- + +If an asset is sized based on its aggregation count then the max size variable, :math:`x^{a}_{max}`, +will be bounded based on the amount of aggregations that exist for that asset. +Examples include the sizing of geothermal sources by their amount of wells, with the power per well. + +.. math:: + :label: eq:aggregationcount + + x^{a} \leq \delta^{a}_{aggr,count} X^{a}_{single,max} + +Sizing with integer modelling +----------------------------- + +The integer method can be used if the size of the asset is determined by a number of predefined sizes, :math:`\delta_{j,a}`. +Of all the availabe options a single option should be selected. + +.. math:: + :label: eq:pipe_size_selection + + \sum_{j\in S^{a}} \delta_{j,a} = 1 \;\; + +where: + +.. math:: + :label: eq:pipe_size_variable + + \delta_{j,a} \in \{0,1\} \;\; \forall j \in S^{a} + +The sizing integer can then be used to limit the max size variable, e.g. max flow for a pipe. + +.. math:: + :label: eq:flow_restric_pipe + + x^{a}_{max} - \sum_{j\in S^{a}} \bar{e_j}\delta_{j,a} \leq 0 \;\; + +where :math:`\bar{e_j}` denotes the max value for the state at that sizing option. + +Asset sizing method table +------------------------- + +.. list-table:: Asset Sizing Model + :widths: 25 25 25 25 50 + :header-rows: 1 + + * - Asset + - Sizing Constraints type + - Max Size variable + - Unit + - Notes + * - Heat source + - Continuous + - Max thermal power produced + - Watt + - ~ + * - Heat demand + - Continuous + - Max thermal power consumed + - Watt + - ~ + * - Heat storage: Tank + - Continuous + - tank size + - m3 + - ~ + * - Heat Storage: HT-ATES + - Aggregation Count + - Max thermal power produced + - [-] + - ~ + * - Geothermal (extension source) + - Aggregation Count + - Max thermal power produced + - [-] + - ~ + * - Heat Exchanger + - Continuous + - Max thermal Secondary Power + - Watt + - ~ + * - Heat Pump + - Continuous + - Max thermal Secondary Power + - Watt + - ~ + * - Heat Exchanger + - Continuous + - Max thermal Secondary Power + - Watt + - ~ + * - Heat/Gas Pipe + - Integer + - Diameter + - [-] + - Constraints on max flow and insulation materials. + * - Electricity source + - Continuous + - Max electrical power produced + - Watt + - ~ + * - Electricity demand + - Continuous + - Max electrical power consumed + - Watt + - ~ + * - Gas source + - Continuous + - Max max flow produced + - Watt + - ~ + * - Gas demand + - Continuous + - Max mass flow consumed + - Watt + - ~ diff --git a/docs/theory/financial.rst b/docs/theory/financial.rst new file mode 100644 index 000000000..b8f87ba09 --- /dev/null +++ b/docs/theory/financial.rst @@ -0,0 +1,58 @@ +.. _chp_financial: + +Financial +========= + +Mesido offers the posibility to model the cost and revenues based on the design and operation of the energy system. +The asset cost modelling includes both the CAPEX and OPEX over the time-horizon of the optimization. + +Asset Cost Modelling +-------------------- + +The asset cost modelling breaks down in four categories in which both the CAPEX and OPEX aspects are captured. +The four categories help the optimizer in making both continuous and integer sizing decisions. + +Installation Cost +~~~~~~~~~~~~~~~~~ + +Installation cost is part of the CAPEX and is the fixed amount of cost required to place a(n) (aggregation count) of the asset. +This cost component helps the optimization to make decision in placing assets when multiple equivalent asset options are available. + +.. math:: + :label: eq:installation + + Cost_{installation} = C^{a}_{install} \delta^{a}_{aggr,count} + +Investment Cost +~~~~~~~~~~~~~~~ + +The investment cost is the CAPEX required that scales with the asset size. +The investment cost is the cost component that helps to find the minimum asset sizes. + +.. math:: + :label: eq:invest + + Cost_{investment} = C^{a}_{invest} x^{a}_{max} + + +Variable Operational Cost +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The variable operational cost is the cost component that depends on the useage of the asset over the time horizon. +Typically this is a power consumption or production, which is represented by :math:`x^{a}_{use}`. + +.. math:: + :label: eq:varopex + + Cost_{variable_{OPEX}} = \sum_{K} C^{a}_{variable_{OPEX}} x^{a}_{use} \Delta T_K + + +Fixed Operational Cost +~~~~~~~~~~~~~~~~~~~~~~ + +The fixed operational cost is the cost component that return every X time (typically every calendar year) based on the size of the asset. + +.. math:: + :label: eq:fixedopex + + Cost_{fixed_{OPEX}} = C^{a}_{fixed_{OPEX}} x^{a}_{max} diff --git a/docs/theory/heat_physics.rst b/docs/theory/heat_physics.rst index 7869849ea..d9e7801de 100644 --- a/docs/theory/heat_physics.rst +++ b/docs/theory/heat_physics.rst @@ -134,15 +134,17 @@ Here :math:`T^a` is the temperature inside pipe :math:`a`, :math:`c_p` and :math \dot{Q}_{i} + (1 - \delta_{dir})M \geq 0 \;\; \forall i \in I^{a} \;\; \forall a \in A_{pipes}. -Within a hydraulically coupled system the volume is assumed to be preserved as result of the mass balance and constant temperature, therefore :eq:`eq:flow_balance` is applied to pipes. -Pipes give resistance opposing the flow in the flow of head loss, :math:`dH`. This head loss must be compensated by pumps which are assumed to be located at sources and storage assets: +The head loss, :math:`dH` must be compensated by pumps which are assumed to be located at sources and storage assets: .. math:: :label: eq:pipe_head H^a_{in} - dH = H^a_{out} \;\; \forall a \in A_{pipes}. -In reality the steady-state head losses are closely modelled with a quadratic relation w.r.t. :math:`\dot{V}`. To approximate the quadratic behaviour a set of linear inequalities is used, see :numref:`inequalitydH`. The general form of the inequalities is given below in :eq:`eq:pipe_head_loss1`-:eq:`eq:pipe_hp2` These inequalities force the head loss to be greater or equal to the approximated quadratic curve. Although this will not enforce a physically feasible answer the optimizer will in practice drag the solution to an equality constraint as the objective function will minimize cost that reduces with lower pressure drop. +Steady-state head losses can be closely modelled with a quadratic relation w.r.t. :math:`\dot{V}`. +A set of linear inequalities is used, see :numref:`inequalitydH`, to approximate the quadratic curve. +The general form of the inequalities is given below in :eq:`eq:pipe_head_loss1`-:eq:`eq:pipe_hp2` These inequalities force the head loss to be greater or equal to the approximated quadratic curve. +Although the constraints by themselves will not guarantee a physically feasible answer, the optimization will in drag the solution to an equality constraint as the objective function will minimize cost which reduces with lower pressure drop. .. _inequalitydH: @@ -152,9 +154,12 @@ In reality the steady-state head losses are closely modelled with a quadratic re Schematic visualization of how the linear constraints are fitted to the head loss curve. -This method with linear inequalities is only valid when every unique route the flow can take in the network has a control valve to compensate non-physical head loss induced by the optimizer. This was a valid assumption for the use-case in this research, alternatively a (piece-wise) linear equality constraint between min and max flow-rate can be applied for cases where this assumption is invalid. +This method with linear inequalities is only valid when every unique route the flow can take in the network has a control valve to compensate non-physical head loss induced by the optimizer. +Alternatively a (piece-wise) linear equality constraint between min and max flow-rate can be configured for cases where this assumption is invalid. -Note that the big M method is used in combination with the flow direction integers to allow the inequality constraints to work both for positive and negative flow and to allow for disabling the constraints when no flow is going through the pipe. +KOBUS CAN YOU WRITE OUT THE EQUATIONS FOR THIS. + +Note that the big M method is used with the flow direction and disconnected integers to allow for modelling of bi-directional flow and the ability to disconnect pipes. .. math:: :label: eq:pipe_head_loss1 @@ -187,9 +192,9 @@ Here :math:`(c_j, d_j)` are the coefficients and constants of the linear equatio Node ~~~~ -A node needs to conserve the flow with :eq:`eq:flow_balance` and the energy with :eq:`eq:general_energy_balance` where no energy losses, production and consumption occurs. +The node conserves the flow with :eq:`eq:flow_balance` and the energy with :eq:`eq:general_energy_balance`. -To make the solution hydraulically feasible it is enforced that all heads connected to the node have to be equal: +All heads connected to the node must be equal to ensure hydraulically feasible solution: .. math:: :label: eq:node_head @@ -204,45 +209,43 @@ Asset Physics Source ~~~~~~ -The main function of a source is to add thermal power to the network that can be consumed, or is lost to the ambient. -The energy balance of the addition of thermal power is ensured by :eq:`eq:general_energy_balance` with :math:`\dot{Q}^a_{consumed}` is set to the (negative) value of the produced amount of heat. +The source adds thermal power to the network. +The energy balance is given by :eq:`eq:general_energy_balance` where :math:`\dot{Q}^a_{consumed}` is equal to the (negative) value of the produced heat. + +The addition of energy is executed by increasing the temperature of the incoming water (the return network) to the outgoing supply temperature. +Therefore, the volumetric flow-rate is linked to the outgoing thermal power with the outgoing supply temperature with equality constraints: -The addition of energy is executed by increasing the temperature of the incoming cold water of the return network to the outgoing supply temperature. -Therefore, the volumetric flow-rate is linked to the outgoing thermal power with the outgoing supply temperature using: -% .. math:: :label: eq:source_heat2discharge \sum_{i \in I^a_{out}} \dot{Q}^a_i = c_p \rho \dot{V}^a T_{sup} \;\; \forall a \in A_{prod}, -with :math:`A_{prod}` the set of all producers. Note that we assume that every producer has only a single in- and a single out-port. +where :math:`A_{prod}` is the set of all producers. -This equality constraint ensures that the thermal power cannot be larger than what physically can be transported by the flow. Applying only equality constraints on the outgoing heat of assets, except from pipes, allows to consider temperature regimes, their corresponding heat losses and volumetric flows without modelling the temperature. -No constraints are set on the returning flow to the producer as this is already implied by heat flow constraints on pipes. The optimizer will drag the solution to the minimum amount of thermal power to produce for minimizing cost. +The equality constraints ensure that the thermal power equals what can be physically transported by the flow. +No constraints are set on the returning flow at the in port, as this is already implied by the constraints on pipes. -The errors as a result of not modelling the temperature, e.g. linearizing the problem, can be observed in various parts of the costs. -The heat losses will be overestimated resulting in a conservative estimation w.r.t. the cost of the thermal energy produced. -Furthermore, the overestimation in thermal power will result in an overestimation of the flow and thus of the transportation and pipe sizing cost. +The modelling errors from not modelling temperature are present in various parts of the costs. +The heat losses will be overestimated giving an overestimate w.r.t. the cost of the thermal energy produced. +The overestimation of the thermal power required will induce an overestimation of the flow and thereby of the transportation and pipe sizing. -It is assumed that the source acts within the hydraulically coupled network and does not add or subtract mass, which under the assumption of constant temperature ensures the flow balance :eq:`eq:flow_balance`. +The source is assumed to act within one hydraulically coupled network, :eq:`eq:flow_balance`. -It is assumed that every source has a pump to reach its desired flow-rate and head: +A source is modelled with a pump to reach its desired flow-rate and head: .. math:: :label: eq:source_pump_dh H^a_{in} + dH_{pump} = H^a_{out} \;\; \forall a \in A_{prod}. -Since we assume that a producer has only a single in- and a single out-port, :math:`H^a_{in}` and :math:`H^a_{out}` are the head values of the specific pipes connected to these ports, and :math:`dH_{pump}` is the compensation provided by the pump of the asset. - Demand ~~~~~~ -Contrary to a source, a demand's function is to extract thermal power from the network, defined by :eq:`eq:general_energy_balance` where :math:`\dot{Q}^a_{consumed}` is the consumed thermal energy by the demand. +A demand extracts thermal power from the network, defined by :eq:`eq:general_energy_balance` where :math:`\dot{Q}^a_{consumed}` is the consumed thermal power. -Likewise to a source, no additional constraints are required to link the heat flow and volumetric flow at the in-going supply side of the demand as this is already implied by all other network constraints. -An equality constraint is used to link outgoing thermal power and volumetric flow with the return temperature of the network: +Similar to the source, no constraints are required at the in-going supply side of the demand, and +an equality constraint relates outgoing thermal power with volumetric flow: .. math:: :label: eq:consumer_heat2discharge @@ -251,12 +254,11 @@ An equality constraint is used to link outgoing thermal power and volumetric flo where :math:`A_{demand}` is the set of demand assets. -Important to note, is that this combination of constraints for the producers and demands, results in a smaller achieved temperature difference at the demand than the difference between the given temperatures for the supply and return side. And a larger achieved temperature difference at the producer. -The choice on where a temperature is fixed results in different errors as already explained at the producers. +The combination of constraints ate the producers and demands, results in a smaller achieved temperature difference at the demand than the difference between the given temperatures for the supply and return side, and a larger achieved temperature difference at the producer. -Again it is assumed that a demand also acts within the hydraulically coupled system under the same assumptions, see :eq:`eq:flow_balance`. +Similar as for the source the demand acts within one hydraulically coupled system under the same assumptions, see :eq:`eq:flow_balance`. -Every demand is assumed to have a control valve to regulate its flow. Typically, a minimum head loss should be maintained: +Every demand is modelled with a control valve to regulate its flow. In reality a minimum head loss is be maintained is ofter maintained: .. math:: :label: eq:demand_head @@ -266,28 +268,27 @@ Every demand is assumed to have a control valve to regulate its flow. Typically, Storage ~~~~~~~ -Storage assets in the network can have the function to add time flexibility with the production and consumption of energy in the network. For shorter periods this capability is provided by tanks, storage over seasons is done with \gls{ht-ates}, \cite{drijver2019state}. Both are modelled with equivalent logic and their own specific parameters. +Storage assets add time flexibility with the production and consumption of thermal power. For shorter intra-day periods this capability is provided by tanks, alternatively storage over seasons is done with underground thermal energy storage like HT-ATES, :cite:`drijver2019state`. -The amount of thermal power extracted from or provided to the network subtracted by the losses in the storage is defined as :math:`\dot{Q}^{a}_{consumed}` by: +:math:`\dot{Q}^{a}_{consumed}` can be defined by the thermal power substracted from or added to the network, where the internal losses of the storage are subtracted: .. math:: :label: eq:change_stored_heat - \dot{Q}^{a}_{consumed} = \sum_{i \in I^a_{in}} \dot{Q}^{a}_{i} - \sum_{i \in I^a_{out}} \dot{Q}^{a}_{i} - \dot{Q}^{a}_{loss} \;\; \forall a \in A_{storage}, + \dot{Q}^{a}_{consumed} = \sum_{i \in I^a_{in}} \dot{Q}^{a}_{i} - \sum_{i \in I^a_{out}} \dot{Q}^{a}_{i} - \dot{Q}^{a}_{loss} \;\; \forall a \in A_{storage}. -where :math:`\dot{Q}^{a}_{in}`, :math:`\dot{Q}^{a}_{out}` and :math:`\dot{Q}^{a}_{loss}` define the heat entering, leaving and heat loss of the storage asset respectively. The consumed heat of the storage assets is equated to the change change in stored heat, :math:`\dot{Q}^{a}_{stored}`: - .. math:: :label: eq:stored_heat \dot{Q}^{a}_{consumed} = \dot{Q}^{a}_{stored} \;\; \forall a \in A_{storage} - -The storage needs an equality constraints for thermal power to volumetric flow on the outgoing flow to the supply network when it is discharging and acting like a source and on the outgoing flow to the return network when it is charging and acting like a demand. -This is achieved by using the big M method to activate the constraints during charging, :eq:`eq:storage_heat2discharge1` and :eq:`eq:storage_heat2discharge2`, and during discharging, :eq:`eq:storage_heat2discharge3` and :eq:`eq:storage_heat2discharge4`. -For this purpose the flow direction integer of the connecting pipe is used, such that :math:`\delta_{dir}` is 1 for charging. +Like the source and demand assets the storage needs equality constraints relating the outgoing flow to the thermal power. +Unlike the demand and source the outgoing flow can be either on the in or out port depending whether the storage is charging or discharging. +The default convention is that charging indicates positive flow, therefore :math:`\delta_{dir}` can be used as an integer for charging/discharging. +Equations :eq:`eq:storage_heat2discharge1` and :eq:`eq:storage_heat2discharge2` are active during charging, and during discharging, +:eq:`eq:storage_heat2discharge3` and :eq:`eq:storage_heat2discharge4` are activated by the big M method. .. math:: :label: eq:storage_heat2discharge1 @@ -309,7 +310,10 @@ For this purpose the flow direction integer of the connecting pipe is used, such \sum_{i \in I^a_{out}} \dot{Q}^{a}_{i} - c_p \rho \dot{V}^{a} T_{ret} - (1-\delta^{a}_{dir}) M \leq 0 \;\; \forall a \in A_{storage} -For simplicity it is assumed that the loss scales linearly with the amount of stored heat: +Tank +^^^^ + +Heat loss in a tank is modelled as linear with the stored heat: .. math:: :label: eq:storage_loss @@ -318,29 +322,38 @@ For simplicity it is assumed that the loss scales linearly with the amount of st where :math:`Q^{a}_{stored}` is the heat stored in the storage asset and :math:`\beta` is the efficiency factor. -For tanks it is assumed that they are cylindrical and radiate heat over their their surface area. This is done as this surface area increases linearly with the stored heat, see :eq:`eq:etatank`. A radiation coefficient, :math:`c_r`, of 1 :math:`W/m^2` is used as an approximation. +The efficiency factor is approximated assuming that tanks are cylindrical and lose heat over their surface area, see :eq:`eq:etatank`. +For cylindrical tanks their surface area approximately increases linearly with the stored heat. +A radiation coefficient, :math:`c_r`, of 1 :math:`W/m^2` is used as an approximation. .. math:: :label: eq:etatank \beta_{tank} = \frac{2c_r}{r\rho c_p} -For an \gls{ht-ates} a first approximation for heat loss is based on an efficiency that is reached in a period of time. In this research a value of 70\% over 100 days is used. +HT-ATES +^^^^^^^ + +Two HT-ATES modelling methods are available. The first approximation for heat loss is based on an efficiency that is reached in a period of time. In this research a value of 70\% over 100 days is used. .. math:: \beta_{HTATES} = \eta^{\frac{1}{time}} +The second method: COMING SOON... + -Similarly as for the other assets the storage assets are assumed to act within the hydraulically coupled system, nonetheless the volumetric flow balance requires additional equations. -The storage is modelled as an asset with two variable volumes, one for the cold and one for the warm water. The total in- and outflow of the storage will be equal, however, the volumes inside the storage might vary under the condition that the sum remains constant and is equal to the total volume of storage:%, modelled using :eq:`eq:storage_volume_constant`. +Similarly as for the other assets the storage assets are assumed to act within the hydraulically coupled system, +nonetheless the volumetric flow balance requires additional equations. +The storage is modelled as an asset with a hot and cold volume. +The total volume will be conserved by the in- and outflow at the storage. .. math:: :label: eq:storage_volume_constant \dot{V}^{a}_{warm}-\dot{V}^{a}_{cold}=0 \;\; \forall a \in A_{storage}, -where :math:`\dot{V}^{a}_{warm}` and :math:`\dot{V}^{a}_{cold}`, respectively denote the change in volume of the warm and cold water. +where :math:`\dot{V}^{a}_{warm}` and :math:`\dot{V}^{a}_{cold}`, respectively denote the change in the hot and cold volume. The warm volume will increase and decrease with the volumetric flow passing the storage: .. math:: @@ -348,13 +361,12 @@ The warm volume will increase and decrease with the volumetric flow passing the \dot{V}^{a}-\dot{V}^{a}_{warm}=0 \;\; \forall a \in A_{storage}. -The storage assets are assumed to have both a pump and a valve to regulate their flow rate: +The storage assets are assumed to have both a pump and a valve, as they fulfill both the source and demand role: .. math:: :label: eq:source_pump H^{a}_{in} + dH^{a}_{pump} - dH^{a}_{valve} = H^{a}_{out} \;\; \forall a \in A_{storage}, -where :math:`dH^{a}_{pump}` is a compensation of the pressure increase by the pump of the storage asset and :math:`dH^{a}_{valve}` is a compensation of the pressure decrease by the control valve of the storage asset. diff --git a/docs/theory/index.rst b/docs/theory/index.rst index bee9df268..7153e8e9f 100644 --- a/docs/theory/index.rst +++ b/docs/theory/index.rst @@ -5,8 +5,11 @@ introduction code_structure philosophy + Workflows + financial + asset_sizing physics heat_physics electricity_physics gas_physics - Workflows + diff --git a/docs/theory/physics.rst b/docs/theory/physics.rst index 8b84ba57f..a2b1def27 100644 --- a/docs/theory/physics.rst +++ b/docs/theory/physics.rst @@ -16,27 +16,30 @@ Mesido allows for the integral optimization of energy systems having: There are documentation pages for the three respective commodities and the physics that are modelled for each. This page will focus on the assets, physics and other functionality that involves multiple commodities. +Multi-Commodity Asset Physics +----------------------------- + Electrolyzer ------------- +~~~~~~~~~~~~ Water-water Heat Pump Electrical --------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Air-water Heat Pump Electrical ------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Electrical Boiler ------------------ +~~~~~~~~~~~~~~~~~ Gas Boiler ----------- +~~~~~~~~~~ Setpoint Constraints --------------------- +~~~~~~~~~~~~~~~~~~~~ From 26a02d84599db0105c996523b9b37203ae0c0c4b Mon Sep 17 00:00:00 2001 From: Rojer Date: Mon, 29 Apr 2024 16:52:48 +0200 Subject: [PATCH 109/275] update the link in the ReadMe.txt --- README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index 0bea9ca74..4a85c4266 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,7 @@ The main supported method for defining your Energy system is ESDL (Energy System With ESDL you can define assets like demands, sources, pipes, etc. and fill in their attributes. The ESDLMixin class will parse the ESDL file and utilize the attributes to build up the model representation. -This optimization package was originally developed for operational optimization and hosts two -optimization approaches 1) A MILP approach -and 2) Nonlinear Problem (NLP) approach. These two approaches were developed to run sequentially for -operational optimization. the MILP would fix the integer decision for the NLP problem, such that only the continuous variables need to be solved. The NLP -problem would then find the optimized solution with the steady-state non-linear physics included. The existing outdated (still to be updated / update in progress) documentation can be found on: http://warmingup.pages.ci.tno.nl/rtc-tools-heat-network/ +The documentation on the mathematical modelling and workflow application can be found on: `readthedocs `. Installation ============ From a7b1f547aa83f5854cd396aa356e496919c0a3c4 Mon Sep 17 00:00:00 2001 From: Rojer Date: Wed, 1 May 2024 08:46:37 +0200 Subject: [PATCH 110/275] remove HeatMixin from readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4a85c4266..48e928593 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ mesido is an optimization application for optimal planning, design and operation of Energy Systems with the current main focus on District Heating Systems (DHS). The current application focuses on a Mixed Integer Linear Problem (MILP) approach, with multiple linearization strategies to conservatively approximate the steady-state physics and financial models. -All physics are combined in the HeatMixin class. When inherited this class can be combined with objective functions (that typically incorporate the financial aspects) and interface methods to create an +All physics, placement, sizing and financial models are combined in the TechnoEconomicMixin class. When inherited this class can be combined with objective functions (that typically incorporate the financial aspects) and interface methods to create an optimization workflow (see also running an example). The main supported method for defining your Energy system is ESDL (Energy System Description Language), which is a modelling language for energy systems. See also:https://github.com/EnergyTransition/ESDL. @@ -53,7 +53,7 @@ inherits from (Note only the *classes are defined in mesido the others come from - *ESDLMixin: This class does the parsing and setting up of a model based on an ESDL file. - GoalProgrammingMixin: This class allows you to add Goals (objective functions) with different priorities. - LinearizedOrderGoalProgrammingMixin: This class allows you to add higher order goals (e.g. order=2) for MILP problems. -- *HeatMixin: This class adds all the heat network physics for MILP problems. +- *TechnoEconomicMixin: This class adds all the network physics and sizing variables for MILP problems. Within the PipeDiameterSizingProblem class you can see that the path_goals() function is overwritten and that a path_goal with priority one is added to meet the heat demands. The definition path_goal is used From 4e1716d360789686e3d84813c754bc717db14842 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 1 May 2024 14:32:29 +0200 Subject: [PATCH 111/275] Bug fix - empty esdl string & testing thereof added --- .github/workflows/ci.yml | 15 +- src/mesido/esdl/esdl_mixin.py | 7 +- src/mesido/workflows/__init__.py | 2 + tests/test_updated_esdl_post_process.py | 225 +++++++++++++----------- tests/test_updated_esdl_pre_process.py | 19 +- 5 files changed, 153 insertions(+), 115 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 67d7ca3eb..a157f81aa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -84,6 +84,14 @@ jobs: name: updated_esdl_file path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized.esdl retention-days: 5 + + - name: Upload results + uses: actions/upload-artifact@v4 + with: + name: updated_esdl_string_file + path: examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_esdl_string.esdl + retention-days: 5 + # Post processing testing dependant on pre-processing test_post_processing: @@ -106,7 +114,12 @@ jobs: uses: actions/download-artifact@v4 with: name: updated_esdl_file - path: examples/PoCTutorial/model/ + path: examples/PoCTutorial/model/ + - name: Archive test artifacts + uses: actions/download-artifact@v4 + with: + name: updated_esdl_string_file + path: examples/PoCTutorial/model/ - name: Check test run: tox -vv -etest_env_post diff --git a/src/mesido/esdl/esdl_mixin.py b/src/mesido/esdl/esdl_mixin.py index f52058192..ebf9144fe 100644 --- a/src/mesido/esdl/esdl_mixin.py +++ b/src/mesido/esdl/esdl_mixin.py @@ -363,9 +363,10 @@ def convert_energy_system_to_string(energy_system: esdl.esdl.EnergySystem) -> st ------- An XML string representing the energy system """ - esh = esdl.esdl_handler.EnergySystemHandler(energy_system=energy_system) - esh.resource = XMLResource(uri=esdl.esdl_handler.StringURI("to_string.esdl")) - return esh.to_string() + + uri = esdl.esdl_handler.StringURI('to_string.esdl') + energy_system.eResource.save(uri) + return uri.getvalue() @staticmethod def save_energy_system_to_file(energy_system: esdl.esdl.EnergySystem, file_path: Path) -> None: diff --git a/src/mesido/workflows/__init__.py b/src/mesido/workflows/__init__.py index 587b188db..9790c989f 100644 --- a/src/mesido/workflows/__init__.py +++ b/src/mesido/workflows/__init__.py @@ -1,6 +1,7 @@ from .grow_workflow import ( EndScenarioSizing, EndScenarioSizingDiscountedHIGHS, + EndScenarioSizingDiscountedStagedHIGHS, EndScenarioSizingHIGHS, EndScenarioSizingStaged, EndScenarioSizingStagedHIGHS, @@ -20,6 +21,7 @@ __all__ = [ "EndScenarioSizing", "EndScenarioSizingDiscountedHIGHS", + "EndScenarioSizingDiscountedStagedHIGHS", "EndScenarioSizingHIGHS", "EndScenarioSizingStaged", "EndScenarioSizingStagedHIGHS", diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index b6e45c41b..090892a93 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -4,9 +4,13 @@ from pathlib import Path from unittest import TestCase +import esdl +from esdl.esdl_handler import EnergySystemHandler + from mesido.esdl.esdl_parser import ESDLFileParser from mesido.workflows import EndScenarioSizingStagedHIGHS + import numpy as np @@ -15,7 +19,8 @@ class TestUpdatedESDL(TestCase): def test_updated_esdl(self): """ Check that the updated ESDL resulting from the optmizer, is correct by using the PoCTutorial - and the Grow_workflow + and the Grow_workflow. This is done for the actual esdl file and the esdl string created by + MESIDO. Checks: - That the correct number of KPIs have been added @@ -51,128 +56,138 @@ def test_updated_esdl(self): ) problem.pre() - # test KPIs in optimized ESDL + # Load in optimized esdl in the form of esdl string created by MESIDO + esh = EnergySystemHandler() + file = os.path.join(base_folder, "model", "PoC Tutorial_GrowOptimized_esdl_string.esdl") + optimized_energy_system_esdl_string: esdl.EnergySystem = esh.load_file(file) + + # Load in optimized esdl in the form of the actual optimized esdl file created by MESIDO esdl_path = os.path.join(base_folder, "model", "PoC Tutorial_GrowOptimized.esdl") optimized_energy_system = problem._ESDLMixin__energy_system_handler.load_file(esdl_path) - # High level checks of KPIs - number_of_kpis_top_level_in_esdl = 8 - high_level_kpis_euro = [ - "High level cost breakdown [EUR]", - "Overall cost breakdown [EUR]", - "CAPEX breakdown [EUR]", - "OPEX breakdown [EUR]", - "Area_76a7: Asset cost breakdown [EUR]", - "Area_9d0f: Asset cost breakdown [EUR]", - "Area_a58a: Asset cost breakdown [EUR]", - ] - high_level_kpis_wh = [ - "Energy production [Wh]", - ] - all_high_level_kpis = [] - all_high_level_kpis = high_level_kpis_euro + high_level_kpis_wh - - np.testing.assert_allclose( - len(optimized_energy_system.instance[0].area.KPIs.kpi), number_of_kpis_top_level_in_esdl - ) - for ii in range(len(optimized_energy_system.instance[0].area.KPIs.kpi)): - kpi_name = optimized_energy_system.instance[0].area.KPIs.kpi[ii].name - np.testing.assert_array_equal( - kpi_name in all_high_level_kpis, - True, - err_msg=f"KPI name {kpi_name} was not expected in the ESDL", + optimized_energy_systems = [optimized_energy_system_esdl_string, optimized_energy_system] + + for energy_system in optimized_energy_systems: + # Test KPIs in optimized ESDL + + # High level checks of KPIs + number_of_kpis_top_level_in_esdl = 8 + high_level_kpis_euro = [ + "High level cost breakdown [EUR]", + "Overall cost breakdown [EUR]", + "CAPEX breakdown [EUR]", + "OPEX breakdown [EUR]", + "Area_76a7: Asset cost breakdown [EUR]", + "Area_9d0f: Asset cost breakdown [EUR]", + "Area_a58a: Asset cost breakdown [EUR]", + ] + high_level_kpis_wh = [ + "Energy production [Wh]", + ] + all_high_level_kpis = [] + all_high_level_kpis = high_level_kpis_euro + high_level_kpis_wh + + np.testing.assert_allclose( + len(energy_system.instance[0].area.KPIs.kpi), number_of_kpis_top_level_in_esdl ) - if kpi_name in high_level_kpis_euro: + for ii in range(len(energy_system.instance[0].area.KPIs.kpi)): + kpi_name = energy_system.instance[0].area.KPIs.kpi[ii].name np.testing.assert_array_equal( - optimized_energy_system.instance[0].area.KPIs.kpi[ii].quantityAndUnit.unit.name, - "EURO", + kpi_name in all_high_level_kpis, + True, + err_msg=f"KPI name {kpi_name} was not expected in the ESDL", ) - elif kpi_name in high_level_kpis_wh: - np.testing.assert_array_equal( - optimized_energy_system.instance[0].area.KPIs.kpi[ii].quantityAndUnit.unit.name, - "WATTHOUR", - ) - else: - exit(f"Unexpected KPI name: {kpi_name}") - - # Check the asset quantity - number_of_assets_in_esdl = 15 - np.testing.assert_allclose( - len(optimized_energy_system.instance[0].area.asset), number_of_assets_in_esdl - ) - # Check: - # - that the correct assets were removed - # - asset state - # - pipe diameter sizes - # - asset aggregation count - # - number of ports - # - number of connection to a port - asset_to_be_deleted = ["ResidualHeatSource_76f0", "Pipe_8fa5_ret", "Pipe_8fa5"] - for ii in range(len(optimized_energy_system.instance[0].area.asset)): - asset_name = optimized_energy_system.instance[0].area.asset[ii].name - # Existance of asset and its state - np.testing.assert_array_equal( - asset_name not in asset_to_be_deleted, - True, - err_msg=f"Asset name {asset_name} was not expected in the ESDL", - ) - np.testing.assert_array_equal( - optimized_energy_system.instance[0].area.asset[ii].state.name == "ENABLED", True - ) - - # Check pipe diameter - if ( - len( - fnmatch.filter([optimized_energy_system.instance[0].area.asset[ii].id], "Pipe*") - ) - == 1 - ): - if asset_name not in ["Pipe4", "Pipe4_ret", "Pipe5", "Pipe5_ret"]: + if kpi_name in high_level_kpis_euro: np.testing.assert_array_equal( - optimized_energy_system.instance[0].area.asset[ii].diameter.name, "DN400" + energy_system.instance[0].area.KPIs.kpi[ii].quantityAndUnit.unit.name, + "EURO", ) - else: + elif kpi_name in high_level_kpis_wh: np.testing.assert_array_equal( - optimized_energy_system.instance[0].area.asset[ii].diameter.name, - "DN300", - err_msg=f"Asset name {asset_name} was not expected in the ESDL", + energy_system.instance[0].area.KPIs.kpi[ii].quantityAndUnit.unit.name, + "WATTHOUR", ) - # Check aggregation count + else: + exit(f"Unexpected KPI name: {kpi_name}") + + # Check the asset quantity + number_of_assets_in_esdl = 15 + np.testing.assert_allclose( + len(energy_system.instance[0].area.asset), number_of_assets_in_esdl + ) + # Check: + # - that the correct assets were removed + # - asset state + # - pipe diameter sizes + # - asset aggregation count + # - number of ports + # - number of connection to a port + asset_to_be_deleted = ["ResidualHeatSource_76f0", "Pipe_8fa5_ret", "Pipe_8fa5"] + for ii in range(len(energy_system.instance[0].area.asset)): + asset_name = energy_system.instance[0].area.asset[ii].name + # Existance of asset and its state np.testing.assert_array_equal( - optimized_energy_system.instance[0].area.asset[ii].aggregationCount, - problem.get_aggregation_count_max(asset_name), + asset_name not in asset_to_be_deleted, + True, + err_msg=f"Asset name {asset_name} was not expected in the ESDL", ) - # Check the number of ports of the assets are as expected np.testing.assert_array_equal( - len(optimized_energy_system.instance[0].area.asset[ii].port), - len(problem.esdl_assets[asset_name].in_ports) - + len(problem.esdl_assets[asset_name].out_ports), + energy_system.instance[0].area.asset[ii].state.name == "ENABLED", True ) - # Check the number of connection to a port - optimized_energy_system.instance[0].area.asset[ii].port[1].name - for iport in range(len(optimized_energy_system.instance[0].area.asset[ii].port)): - if optimized_energy_system.instance[0].area.asset[ii].port[iport].name == "In": + + # Check pipe diameter + if ( + len( + fnmatch.filter([energy_system.instance[0].area.asset[ii].id], "Pipe*") + ) + == 1 + ): + if asset_name not in ["Pipe4", "Pipe4_ret", "Pipe5", "Pipe5_ret"]: + np.testing.assert_array_equal( + energy_system.instance[0].area.asset[ii].diameter.name, "DN400" + ) + else: np.testing.assert_array_equal( - len( - optimized_energy_system.instance[0] - .area.asset[ii] - .port[iport] - .connectedTo.items - ), - len(problem.esdl_assets[asset_name].in_ports), + energy_system.instance[0].area.asset[ii].diameter.name, + "DN300", + err_msg=f"Asset name {asset_name} was not expected in the ESDL", ) - if asset_name == "ResidualHeatSource_72d7": - asset_id = optimized_energy_system.instance[0].area.asset[ii].id - np.testing.assert_array_less( - optimized_energy_system.instance[0].area.asset[ii].power, - problem.esdl_assets[asset_id].attributes["power"], + # Check aggregation count + np.testing.assert_array_equal( + energy_system.instance[0].area.asset[ii].aggregationCount, + problem.get_aggregation_count_max(asset_name), + ) + # Check the number of ports of the assets are as expected + np.testing.assert_array_equal( + len(energy_system.instance[0].area.asset[ii].port), + len(problem.esdl_assets[asset_name].in_ports) + + len(problem.esdl_assets[asset_name].out_ports), ) + # Check the number of connection to a port + energy_system.instance[0].area.asset[ii].port[1].name + for iport in range(len(energy_system.instance[0].area.asset[ii].port)): + if energy_system.instance[0].area.asset[ii].port[iport].name == "In": + np.testing.assert_array_equal( + len( + energy_system.instance[0] + .area.asset[ii] + .port[iport] + .connectedTo.items + ), + len(problem.esdl_assets[asset_name].in_ports), + ) + if asset_name == "ResidualHeatSource_72d7": + asset_id = energy_system.instance[0].area.asset[ii].id + np.testing.assert_array_less( + energy_system.instance[0].area.asset[ii].power, + problem.esdl_assets[asset_id].attributes["power"], + ) - # High level check on the polygon areas drawn - number_of_areas_in_esdl = 3 - np.testing.assert_allclose( - len(optimized_energy_system.instance[0].area.area), number_of_areas_in_esdl - ) + # High level check on the polygon areas drawn + number_of_areas_in_esdl = 3 + np.testing.assert_allclose( + len(energy_system.instance[0].area.area), number_of_areas_in_esdl + ) if __name__ == "__main__": diff --git a/tests/test_updated_esdl_pre_process.py b/tests/test_updated_esdl_pre_process.py index 911742d33..749b03816 100644 --- a/tests/test_updated_esdl_pre_process.py +++ b/tests/test_updated_esdl_pre_process.py @@ -4,6 +4,7 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.workflows import run_end_scenario_sizing +# from mesido.workflows.io.write_output import ScenarioOutput class TestUpdatedESDL(TestCase): @@ -11,12 +12,10 @@ class TestUpdatedESDL(TestCase): def test_updated_esdl(self): """ Check that the updated ESDL resulting from the optmizer, is correct by using the PoCTutorial - and the Grow_workflow + and the Grow_workflow. This is done for the actual esdl file and the esdl string created by + MESIDO. For this purpose a network is optimized in this function and the optimized esdl file + and esdl string is saved. - Checks: - - That the correct number of KPIs have been added - - That the correct assets have been removed - - Check that all the assets have a state=ENABLED """ root_folder = str(Path(__file__).resolve().parent.parent) @@ -29,13 +28,21 @@ def test_updated_esdl(self): Path(examples.PoCTutorial.src.run_grow_tutorial.__file__).resolve().parent.parent ) - _ = run_end_scenario_sizing( + problem = run_end_scenario_sizing( EndScenarioSizingStagedHighs, base_folder=base_folder, esdl_file_name="PoC Tutorial.esdl", esdl_parser=ESDLFileParser, ) + optimized_esdl_string = problem.optimized_esdl_string + + file = open( + Path.joinpath(base_folder, "model", "PoC Tutorial_GrowOptimized_esdl_string.esdl"), "w" + ) + file.write(optimized_esdl_string) + file.close() + if __name__ == "__main__": import time From 8d651407f94ac8477de1773daf9e4d5e3f487749 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 1 May 2024 14:38:32 +0200 Subject: [PATCH 112/275] formatting --- src/mesido/esdl/esdl_mixin.py | 3 +-- tests/test_updated_esdl_post_process.py | 7 +------ tests/test_updated_esdl_pre_process.py | 1 - 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/mesido/esdl/esdl_mixin.py b/src/mesido/esdl/esdl_mixin.py index ebf9144fe..f5ebb6750 100644 --- a/src/mesido/esdl/esdl_mixin.py +++ b/src/mesido/esdl/esdl_mixin.py @@ -7,7 +7,6 @@ from typing import Any, Dict, Optional import esdl.esdl_handler -from esdl.resources.xmlresource import XMLResource from mesido.component_type_mixin import ( ModelicaComponentTypeMixin, @@ -364,7 +363,7 @@ def convert_energy_system_to_string(energy_system: esdl.esdl.EnergySystem) -> st An XML string representing the energy system """ - uri = esdl.esdl_handler.StringURI('to_string.esdl') + uri = esdl.esdl_handler.StringURI("to_string.esdl") energy_system.eResource.save(uri) return uri.getvalue() diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 090892a93..4aa2e1c1a 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -136,12 +136,7 @@ def test_updated_esdl(self): ) # Check pipe diameter - if ( - len( - fnmatch.filter([energy_system.instance[0].area.asset[ii].id], "Pipe*") - ) - == 1 - ): + if len(fnmatch.filter([energy_system.instance[0].area.asset[ii].id], "Pipe*")) == 1: if asset_name not in ["Pipe4", "Pipe4_ret", "Pipe5", "Pipe5_ret"]: np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].diameter.name, "DN400" diff --git a/tests/test_updated_esdl_pre_process.py b/tests/test_updated_esdl_pre_process.py index 749b03816..fcd649414 100644 --- a/tests/test_updated_esdl_pre_process.py +++ b/tests/test_updated_esdl_pre_process.py @@ -4,7 +4,6 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.workflows import run_end_scenario_sizing -# from mesido.workflows.io.write_output import ScenarioOutput class TestUpdatedESDL(TestCase): From a200221bd04127597281e60b2fff94e862784a09 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 1 May 2024 14:40:31 +0200 Subject: [PATCH 113/275] formatting --- tests/test_updated_esdl_pre_process.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_updated_esdl_pre_process.py b/tests/test_updated_esdl_pre_process.py index fcd649414..f9f6f3a61 100644 --- a/tests/test_updated_esdl_pre_process.py +++ b/tests/test_updated_esdl_pre_process.py @@ -34,8 +34,8 @@ def test_updated_esdl(self): esdl_parser=ESDLFileParser, ) + # Save optimized esdl string optimized_esdl_string = problem.optimized_esdl_string - file = open( Path.joinpath(base_folder, "model", "PoC Tutorial_GrowOptimized_esdl_string.esdl"), "w" ) From e312daa2b63c7604b5efac04c599f36931f03622 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 1 May 2024 15:30:12 +0200 Subject: [PATCH 114/275] formatting --- tests/test_updated_esdl_post_process.py | 4 +++- tests/test_updated_esdl_pre_process.py | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 4aa2e1c1a..8a36f2d0b 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -20,9 +20,11 @@ def test_updated_esdl(self): """ Check that the updated ESDL resulting from the optmizer, is correct by using the PoCTutorial and the Grow_workflow. This is done for the actual esdl file and the esdl string created by - MESIDO. + MESIDO. Both these resulting optimized energy systems should be identical and it is only + the MESIDO esdl saving method that differs. Checks: + - That the esdl saving method (direct ESDL file and ESDL string) - That the correct number of KPIs have been added - That the correct assets have been removed - That all the assets have a state=ENABLED diff --git a/tests/test_updated_esdl_pre_process.py b/tests/test_updated_esdl_pre_process.py index f9f6f3a61..a3dc3e3a6 100644 --- a/tests/test_updated_esdl_pre_process.py +++ b/tests/test_updated_esdl_pre_process.py @@ -10,10 +10,10 @@ class TestUpdatedESDL(TestCase): def test_updated_esdl(self): """ - Check that the updated ESDL resulting from the optmizer, is correct by using the PoCTutorial - and the Grow_workflow. This is done for the actual esdl file and the esdl string created by - MESIDO. For this purpose a network is optimized in this function and the optimized esdl file - and esdl string is saved. + Check that the updated ESDL resulting from optmizing a network, is correct by using the + PoCTutorial and the Grow_workflow. This is done for the actual esdl file and the esdl + string created by MESIDO. Both these resulting optimized energy systems should be identical + and it is only the MESIDO esdl saving method that differs. """ From 3ab13f39d4cb6f05a36a62d160efd155e81e7b10 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 6 May 2024 08:31:33 +0200 Subject: [PATCH 115/275] 29 database restructuring for animation mode mapeditor (#60) Database restructuring of the results, to allow for the animation mode in mapeditor. The results are now structured according to the carrier. --- src/mesido/workflows/io/write_output.py | 399 +++++++++++++++--------- 1 file changed, 245 insertions(+), 154 deletions(-) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 17a824388..97fb8e31f 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -861,13 +861,17 @@ def _name_to_asset(name): # Important: This code below must be placed after the "Placement" code. Reason: it relies # on unplaced assets being deleted. # ------------------------------------------------------------------------------------------ - # Write asset result profile data to database. The datbase is setup as follows: - # - The each time step is represented by a row of data, with columns datetime, field + # Write asset result profile data to database. The database is setup as follows: + # - The each time step is represented by a row of data, with columns; datetime, field # values + # - The database contains columns based on the carrier connected for visualisation + # purposes + # - Assets with more than 1 carrier are looped over the time steps as many times as there + # are different carriers connected, to ensure the correct data is written to each carrier. # - Database name: input esdl id - # - Measurment: asset name + # - Measurment: carrier id # - Fields: profile value for the specific variable - # - Tags used as filters: output esdl id + # - Tags used as filters: simulationRun, assetClass, assetName, assetId, capability if self.write_result_db_profiles: logger.info("Writing asset result profile data to influxDB") @@ -892,6 +896,13 @@ def _name_to_asset(name): # verify_ssl=self.influxdb_verify_ssl, # ) + capabilities = [ + esdl.Transport, + esdl.Conversion, + esdl.Consumer, + esdl.Producer, + ] + for asset_name in [ *self.energy_system_components.get("heat_source", []), *self.energy_system_components.get("heat_demand", []), @@ -904,6 +915,40 @@ def _name_to_asset(name): try: # If the asset has been placed asset = _name_to_asset(asset_name) + asset_class = asset.__class__.__name__ + asset_id = asset.id + capability = [c for c in capabilities if c in asset.__class__.__mro__][ + 0 + ].__name__ + + # Generate three empty variables, + # For transport and consumer assets, 'port' is filled with the inport + # For producer assets, 'port' is filled with outport as this is linked to the + # same carrier as the inport of consumers (thus all info in one carrier) + # For conversion assets, the primary side is acting like a consumer, the + # secondary side as a producer, thus a similar port structure is assumed, but + # now port_prim and port_sec variable are set, such that data can be saved for + # both carriers. + port, port_prim, port_sec = 3 * [None] + if isinstance(asset, esdl.Transport) or isinstance(asset, esdl.Consumer): + port = [port for port in asset.port if isinstance(port, esdl.InPort)][0] + elif isinstance(asset, esdl.Producer): + port = [port for port in asset.port if isinstance(port, esdl.OutPort)][0] + elif isinstance(asset, esdl.Conversion): + port_prim = [ + port + for port in asset.port + if isinstance(port, esdl.InPort) and "Prim" in port.name + ][0] + port_sec = [ + port + for port in asset.port + if isinstance(port, esdl.OutPort) and "Sec" in port.name + ][0] + else: + NotImplementedError( + f"influxdb not included for assets of type {type(asset)}" + ) # Note: when adding new variables to variables_one_hydraulic_system or" # variables_two_hydraulic_system also add quantity and units to the ESDL for @@ -946,174 +991,220 @@ def _name_to_asset(name): results[f"{asset_name}.HeatOut.Q"] / parameters[f"{asset_name}.area"] ) - profiles = ProfileManager() - profiles.profile_type = "DATETIME_LIST" - profiles.profile_header = ["datetime"] - - # Get index of outport which will be used to assign the profile data to - index_outport = -1 - for ip in range(len(asset.port)): - if isinstance(asset.port[ip], esdl.OutPort): - if index_outport == -1: - index_outport = ip - else: - logger.warning( - f"Asset {asset_name} has more than 1 OutPort, and the " - "profile data has been assigned to the 1st OutPort" - ) - break - - if index_outport == -1: - logger.error( - f"Variable {index_outport} has not been assigned to the asset OutPort" + # Depending on the port set, different carriers are assigned + if port: + carrier_id_dict = {"single_carrier_id": port.carrier.id} + elif port_prim and port_sec: + carrier_id_dict = { + "primary_carrier_id": port_prim.carrier.id, + "secondary_carrier_id": port_sec.carrier.id, + } + else: + NotImplementedError( + "Unsuported types for the different port carrier combinations" ) - sys.exit(1) - for ii in range(len(self.times())): - if not self.io.datetimes[ii].tzinfo: - data_row = [self.io.datetimes[ii].replace(tzinfo=datetime.timezone.utc)] - else: - data_row = [self.io.datetimes[ii]] + # Looping over the carrier_ids relevant for the asset + # If primary or secondary port are set, variables_to_hydraulic_system will be + # used, variable names linking to the secondary port are popped from the list + # when the primary port is selected and vice versa + variables_two_hydraulic_system_org = variables_two_hydraulic_system.copy() + for asset_side, carrier_id in carrier_id_dict.items(): + variables_two_hydraulic_system = variables_two_hydraulic_system_org.copy() + var_pops = [] + if asset_side == "primary_carrier_id": + var_pops = [ + v for v in variables_two_hydraulic_system if "Secondary" in v + ] + elif asset_side == "secondary_carrier_id": + var_pops = [v for v in variables_two_hydraulic_system if "Primary" in v] + for v in var_pops: + variables_two_hydraulic_system.remove(v) + + profiles = ProfileManager() + profiles.profile_type = "DATETIME_LIST" + profiles.profile_header = ["datetime"] # + general_headers + + # Get index of outport which will be used to assign the profile data to + index_outport = -1 + for ip in range(len(asset.port)): + if isinstance(asset.port[ip], esdl.OutPort): + if index_outport == -1: + index_outport = ip + else: + logger.warning( + f"Asset {asset_name} has more than 1 OutPort, and the " + "profile data has been assigned to the 1st OutPort" + ) + break - try: - # For all components dealing with one hydraulic system - if isinstance( - results[f"{asset_name}." + variables_one_hydraulic_system[0]][ii], - numbers.Number, - ): - variables_names = variables_one_hydraulic_system - except KeyError: - # For all components dealing with two hydraulic system - if isinstance( - results[f"{asset_name}." + variables_two_hydraulic_system[0]][ii], - numbers.Number, - ): - variables_names = variables_two_hydraulic_system - except Exception: + if index_outport == -1: logger.error( - f"During the influxDB profile writing for asset: {asset_name}, the " - "following error occured:" + f"Variable {index_outport} has not been assigned to the asset " + f"OutPort" ) - traceback.print_exc() sys.exit(1) - for variable in variables_names: - if ii == 0: - # Set header for each column - profiles.profile_header.append(variable) - # Set profile database attributes for the esdl asset - if not self.io.datetimes[0].tzinfo: - start_date_time = self.io.datetimes[0].replace( - tzinfo=datetime.timezone.utc - ) - logger.warning( - "No timezone specified for the output profile: default UTC" - f"has been used for asset {asset_name} variable {variable}" - ) - else: - start_date_time = self.io.datetimes[0] - if not self.io.datetimes[-1].tzinfo: - end_date_time = self.io.datetimes[-1].replace( - tzinfo=datetime.timezone.utc - ) - else: - end_date_time = self.io.datetimes[-1] - - profile_attributes = esdl.InfluxDBProfile( - database=input_energy_system_id, - measurement=asset_name, - field=profiles.profile_header[-1], - port=self.influxdb_port, - host=self.influxdb_host, - startDate=start_date_time, - endDate=end_date_time, - id=str(uuid.uuid4()), + for ii in range(len(self.times())): + if not self.io.datetimes[ii].tzinfo: + data_row = [ + self.io.datetimes[ii].replace(tzinfo=datetime.timezone.utc) + ] + else: + data_row = [self.io.datetimes[ii]] + + try: + # For all components dealing with one hydraulic system + if isinstance( + results[f"{asset_name}." + variables_one_hydraulic_system[0]][ + ii + ], + numbers.Number, + ): + variables_names = variables_one_hydraulic_system + except KeyError: + # For all components dealing with two hydraulic system + if isinstance( + results[f"{asset_name}." + variables_two_hydraulic_system[0]][ + ii + ], + numbers.Number, + ): + variables_names = variables_two_hydraulic_system + except Exception: + logger.error( + f"During the influxDB profile writing for asset: {asset_name}," + f" the following error occured:" ) - # Assign quantity and units variable - if variable in ["Heat_flow", "Pump_power"]: - profile_attributes.profileQuantityAndUnit = ( - esdl.esdl.QuantityAndUnitType( - physicalQuantity=esdl.PhysicalQuantityEnum.POWER, - unit=esdl.UnitEnum.WATT, - multiplier=esdl.MultiplierEnum.NONE, + traceback.print_exc() + sys.exit(1) + + for variable in variables_names: + if ii == 0: + # Set header for each column + profiles.profile_header.append(variable) + # Set profile database attributes for the esdl asset + if not self.io.datetimes[0].tzinfo: + start_date_time = self.io.datetimes[0].replace( + tzinfo=datetime.timezone.utc ) + logger.warning( + f"No timezone specified for the output profile: " + f"default UTC has been used for asset {asset_name} " + f"variable {variable}" + ) + else: + start_date_time = self.io.datetimes[0] + if not self.io.datetimes[-1].tzinfo: + end_date_time = self.io.datetimes[-1].replace( + tzinfo=datetime.timezone.utc + ) + else: + end_date_time = self.io.datetimes[-1] + + profile_attributes = esdl.InfluxDBProfile( + database=input_energy_system_id, + measurement=asset_name, + field=profiles.profile_header[-1], + port=self.influxdb_port, + host=self.influxdb_host, + startDate=start_date_time, + endDate=end_date_time, + id=str(uuid.uuid4()), ) - elif variable in [ + # Assign quantity and units variable + if variable in ["Heat_flow", "Pump_power"]: + profile_attributes.profileQuantityAndUnit = ( + esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.POWER, + unit=esdl.UnitEnum.WATT, + multiplier=esdl.MultiplierEnum.NONE, + ) + ) + elif variable in [ + "HeatIn.H", + "Primary.HeatIn.H", + "Secondary.HeatIn.H", + ]: + profile_attributes.profileQuantityAndUnit = ( + esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.PRESSURE, + unit=esdl.UnitEnum.PASCAL, + multiplier=esdl.MultiplierEnum.NONE, + ) + ) + elif variable in [ + "HeatIn.Q", + "Primary.HeatIn.Q", + "Secondary.HeatIn.Q", + ]: + profile_attributes.profileQuantityAndUnit = ( + esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.FLOW, + unit=esdl.UnitEnum.CUBIC_METRE, + perTimeUnit=esdl.TimeUnitEnum.SECOND, + multiplier=esdl.MultiplierEnum.NONE, + ) + ) + elif variable in ["PostProc.Velocity"]: + profile_attributes.profileQuantityAndUnit = ( + esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.SPEED, + unit=esdl.UnitEnum.METRE, + perTimeUnit=esdl.TimeUnitEnum.SECOND, + multiplier=esdl.MultiplierEnum.NONE, + ) + ) + else: + logger.warning( + f"No profile units will be written to the ESDL for: " + f"{asset_name}. + {variable}" + ) + + asset.port[index_outport].profile.append(profile_attributes) + + # Add variable values in new column + conversion_factor = 0.0 + if variable in [ "HeatIn.H", "Primary.HeatIn.H", "Secondary.HeatIn.H", ]: - profile_attributes.profileQuantityAndUnit = ( - esdl.esdl.QuantityAndUnitType( - physicalQuantity=esdl.PhysicalQuantityEnum.PRESSURE, - unit=esdl.UnitEnum.PASCAL, - multiplier=esdl.MultiplierEnum.NONE, - ) - ) - elif variable in [ - "HeatIn.Q", - "Primary.HeatIn.Q", - "Secondary.HeatIn.Q", - ]: - profile_attributes.profileQuantityAndUnit = ( - esdl.esdl.QuantityAndUnitType( - physicalQuantity=esdl.PhysicalQuantityEnum.FLOW, - unit=esdl.UnitEnum.CUBIC_METRE, - perTimeUnit=esdl.TimeUnitEnum.SECOND, - multiplier=esdl.MultiplierEnum.NONE, - ) - ) - elif variable in ["PostProc.Velocity"]: - profile_attributes.profileQuantityAndUnit = ( - esdl.esdl.QuantityAndUnitType( - physicalQuantity=esdl.PhysicalQuantityEnum.SPEED, - unit=esdl.UnitEnum.METRE, - perTimeUnit=esdl.TimeUnitEnum.SECOND, - multiplier=esdl.MultiplierEnum.NONE, - ) - ) + conversion_factor = GRAVITATIONAL_CONSTANT * 988.0 else: - logger.warning( - f"No profile units will be written to the ESDL for: " - f"{asset_name}. + {variable}" + conversion_factor = 1.0 + if variable not in ["PostProc.Velocity"]: + data_row.append( + results[f"{asset_name}." + variable][ii] * conversion_factor ) + # The variable evaluation below seems unnecessary, but it would be + # used we expand the list of post process type variables + elif variable in ["PostProc.Velocity"]: + data_row.append(post_processed_velocity[ii]) - asset.port[index_outport].profile.append(profile_attributes) + profiles.profile_data_list.append(data_row) + # end time steps + profiles.num_profile_items = len(profiles.profile_data_list) + profiles.start_datetime = profiles.profile_data_list[0][0] + profiles.end_datetime = profiles.profile_data_list[-1][0] - # Add variable values in new column - conversion_factor = 0.0 - if variable in [ - "HeatIn.H", - "Primary.HeatIn.H", - "Secondary.HeatIn.H", - ]: - conversion_factor = GRAVITATIONAL_CONSTANT * 988.0 - else: - conversion_factor = 1.0 - if variable not in ["PostProc.Velocity"]: - data_row.append( - results[f"{asset_name}." + variable][ii] * conversion_factor - ) - # The variable evaluation below seems unnecessary, but it would be used - # we expand the list of post process type variables - elif variable in ["PostProc.Velocity"]: - data_row.append(post_processed_velocity[ii]) - - profiles.profile_data_list.append(data_row) - # end time steps - profiles.num_profile_items = len(profiles.profile_data_list) - profiles.start_datetime = profiles.profile_data_list[0][0] - profiles.end_datetime = profiles.profile_data_list[-1][0] - - influxdb_profile_manager = InfluxDBProfileManager( - influxdb_conn_settings, profiles - ) - optim_simulation_tag = {"output_esdl_id": energy_system.id} - _ = influxdb_profile_manager.save_influxdb( - measurement=asset_name, - field_names=influxdb_profile_manager.profile_header[1:], - tags=optim_simulation_tag, - ) + influxdb_profile_manager = InfluxDBProfileManager( + influxdb_conn_settings, profiles + ) + + optim_simulation_tag = { + "simulationRun": energy_system.id, + "simulation_type": type(self).__name__, + "assetId": asset_id, + "assetName": asset_name, + "assetClass": asset_class, + "capability": capability, + } + _ = influxdb_profile_manager.save_influxdb( + measurement=carrier_id, + field_names=influxdb_profile_manager.profile_header[1:], + tags=optim_simulation_tag, + ) # -- Test tags -- # do not delete - to be used in test case # prof_loaded_from_influxdb = InfluxDBProfileManager(influxdb_conn_settings) From 0f4a6d33c2cae0a1d0ac9ab24141f12d534ac3bd Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 6 May 2024 09:49:53 +0200 Subject: [PATCH 116/275] formatting --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 48e928593..226fa1594 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Mesido +# MESIDO -mesido is an optimization application for optimal planning, design and +MESIDO is an optimization application for optimal planning, design and operation of Energy Systems with the current main focus on District Heating Systems (DHS). The current application focuses on a Mixed Integer Linear Problem (MILP) approach, with multiple linearization strategies to conservatively approximate the steady-state physics and financial models. All physics, placement, sizing and financial models are combined in the TechnoEconomicMixin class. When inherited this class can be combined with objective functions (that typically incorporate the financial aspects) and interface methods to create an optimization workflow (see also running an example). From b948eecababeba9c1a36761617202a554334dd33 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 6 May 2024 10:40:32 +0200 Subject: [PATCH 117/275] formatting --- docs/theory/philosophy.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/theory/philosophy.rst b/docs/theory/philosophy.rst index 95177ea66..066d76219 100644 --- a/docs/theory/philosophy.rst +++ b/docs/theory/philosophy.rst @@ -4,15 +4,15 @@ Modelling Philosophy ==================== -Conceptual design with operational strategy for energy systems starts simultaneously with the initial feasibility studies. -This early phase is challenging as it comes with many uncertainties, such as the expected demand profiles, and the many possibilities of choices of the design, e.g. network routing, sizing, and multiple optional locations for assets as sources and storages. +The conceptual design including operational strategy for energy systems starts simultaneously with the initial feasibility studies. +This early phase is challenging as it comes with many uncertainties, such as the expected demand profiles and many possible design choices. Examples of the latter being network routing, asset sizing, and multiple optional locations for the placement of assets such as sources and storage options. Nevertheless, in practice it is seen that the decisions made in these early phases are crucial for the eventual system performance, as they set the boundaries for interactions between assets and sub-parts of the overall energy system. Later design phases can therefore be limited by decisions made during the initial feasibility phases. Good trade-offs take into account the interaction between assets, but also trade-offs between design and operational strategy are key in reducing the overall system cost. -Mesido applies a Mixed Integer Linear Problem (MILP) formulation to adress these challenges. The main reasons are: +MESIDO applies a Mixed Integer Linear Problem (MILP) formulation to adress these challenges. The main reasons are: -* The early phases of designing the energy system decision makers are typically not looking for high accuracy physical insight, but rather for directions in investment choices. Hence MILP approximation methods that are conservative and feasible whilst staying within accuracy bounds of the available input data suffice. This allows the decision makers to make plans in this early phase with lower financial risk as plans will become more detailed over time. +* In the early phases of designing an energy system, decision makers are typically not looking for high accuracy physical insight, but rather for directions in investment choices. Hence MILP approximation methods that are conservative and feasible, whilst staying within accuracy bounds of the available input data, will suffice. This allows the decision makers to make plans in this early phase with lower financial risk, as these plans will become more detailed over time. * Part of the decisions for designing an energy system have an integer nature, e.g. placing a source or options for a pipe size. These design choices cannot be modelled with continuous formulation in a representative manner. * Due to the large number of uncertainties it is key to have the ability to iterate quickly over input data variations. The computational speed of the optimization is therefore of vital importance. Ideally, the user should be able to do many iterations within one day. From ee8258e7952ee0fb2fc3834318f706963e564d98 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 6 May 2024 11:56:22 +0200 Subject: [PATCH 118/275] formatting and some restructering --- docs/theory/Workflows.rst | 60 +++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/docs/theory/Workflows.rst b/docs/theory/Workflows.rst index 4301a50f0..de6a861d0 100644 --- a/docs/theory/Workflows.rst +++ b/docs/theory/Workflows.rst @@ -3,8 +3,8 @@ Design Toolkit Workflows ======================== -This page eleborates on the available Design TOolkit workflows within MESIDO. -The Design Toolkit is a subsidy funded project (NieuweWarmteNu) to help different organizatons in the Districht heating value chain with sketch and conceptual design of District Heating Systems (DHS). +This page eleborates on the available Design Toolkit workflows within MESIDO. +The Design Toolkit is a subsidy funded project (NieuweWarmteNu) to help different organizatons in the district heating value chain with sketch and conceptual designing of District Heating Systems (DHS). For more information see : https://nwn.nu/projecten/innovaties/design-toolkit-warmtenetten/. MESIDO is by no means limited to only these workflows, but it is left to the user itself to define the most logical workflow if the ones below are unsuitable. @@ -13,12 +13,12 @@ Currently two main workflows are provided: * EndScenarioSizing * GrowSimulator -These two workflows for now only cover the district heat network commodity. +These two workflows only cover the district heat network commodity for now. EndScenarioSizing ----------------- -The EndScenarioSizing Workflow is designed to optimize a district heating network for both asset (pipes, sources, storages, etc.) sizing and operational strategy for lowest Total Cost of Ownership. +The EndScenarioSizing workflow is designed to optimize a district heating network by taking into account both asset (pipes, sources, storages, etc.) sizing and operational strategy for the lowest Total Cost of Ownership. This workflow comes in a few variants that give the user the possibility to trade-off computational time with model assumptions. * (EndScenarioSizingNoHeatLosses) @@ -32,24 +32,24 @@ EndScenarioSizing The EndScenarioSizing workflow in short: -* The user needs to give a district heating network in ESDL file format in which: - * The user puts all the already present assets and potential assets of the system. - * Specifies the cost coefficients for all assets (e.g. EUR/MW for sizing of source). - * Specifies all the maximum sizes of the assets (e.g XX MW for sources, DN 400 for a pipe). - * Specifies the demand profiles in hourly resolution for a full year at all demands in the system. +* The user needs to provide a district heating network in an ESDL file format which will contain: + * The existing as well as the potential assets of the system. + * User specified cost coefficients for all the assets (e.g. EUR/MW for sizing of source). + * User specified maximum sizes of the assets (e.g XX MW for sources, DN 400 for a pipe). + * User specified demand profiles, in hourly resolution for a full year, at all the demands in the system. * The optimization routine will start by matching all the heat demands. -* After matching the demands it minimizes for system cost where both CAPEX and OPEX over lifetime are minimizes. This allows the optimizer to make trade-offs between investments and potential operational benefits (and vice-versa). -* It uses a representative year and extrapolates the results to approximate cost over the lifetime. -* It creates a smaller mathematical representation of the optimization problem by utilizing a time horizon where by default 5 day timesteps are used except for the peak day where hourly resolution is used. - * The hourly resolution in the peak day is used to ensure that the system is sized to satisfy the demands under maximum load condition. - * The 5 day time-steps are used for the remainder of the year to approximate the OPEX of the system utilizing the average thermal powers. - * This means that also all time-series results will be in this adapted time-line. +* After matching the demands the system cost is minimized, where both CAPEX and OPEX over the lifetime are minimized. This allows the optimizer to make trade-offs between investments and potential operational benefits (and vice-versa). +* A representative year is employed and the results are extrapolated to approximate cost over the lifetime. +* A smaller mathematical representation of the optimization problem is created by utilizing a time horizon with a default 5 day timestep size, except for the peak day which has an hourly resolution. + * The hourly resolution in the peak day is used to ensure that the system is sized to satisfy the demands under a maximum load condition. + * The 5 day timesteps are used for the remainder of the year to approximate the OPEX of the system by utilizing the averaged thermal powers. + * This also means that all time-series results will be in this adapted time-line. A two stage optimization approach is used for faster optimization. In the first stage the system is optimized without heat losses in the network. -This allows for a much easier mathematical representation of the problem an hence much faster optimization. -In a second stage the heat losses in the network are taken into account, however now the problem is bounded with the information of the first stage. -Pipes will only be allowed to be at least as large as the result of the first stage and one DN size larger. +This allows for a much easier mathematical representation of the problem an hence a much faster optimization. +In the second stage the heat losses in the network are taken into account, however now the problem is bounded with the information of the first stage. +Pipes will only be allowed to be at least as large as the result of the first stage or one DN size larger. Furthermore, the flow directions will be utilized if the flow meets a minimum threshold value. Lastly, sources will now have a lower bound with the minimum of the first stage. @@ -57,16 +57,16 @@ In its default configuration the workflow has the following main assumptions: * The whole network is realized instantaneously, as a single year is optimized and extrapolated for the lifetime. * In reality the realization of DHS is done in phases over a period of years. Hence this assumption is not valid, but allows the user to judge the long term feasibilty of the DHS system. For closing business case computation the effects of phased realization should be taken into account. -* Pressure drops are not taken into account, a maximum flow velocity of 3 m/s is used to limit the pressure-drop per meter in the pipes. - * This assumptions is ok/valid when the user is still in a phase where the exact location of (booster-)pumps is to be determined and hence limiting the sizing of pipes with pressuredrop calculations would not be representative. - * Note that EndScenarioSizingHeadLoss can be used when the user wants the pressure-drop functionality. +* Pressure drops are not taken into account, a maximum flow velocity of 3 m/s is used to limit the pressure drop per meter in the pipes. + * This assumptions is sufficient when the user is still in a phase where the exact location of (booster-)pumps is to be determined and hence limiting the sizing of pipes with pressure drop calculations would not be representative. + * Note that EndScenarioSizingHeadLoss can be used when the user wants the pressure drop functionality. * Investment costs are not discounted and all assets depreciate to zero over the system lifetime. * This assumption comes out of an initial development phase, by now EndScenarioDiscounted can be used. * It is assumed that the user provides sufficient possibilities to the optimizer to match the heat demands. - * The optimization will become a lot slower in case demands cannot be satisfied. If the user cannot garuantee to have sufficient assets to fullfill the demand it is advised to use slack (peak) sources. + * The optimization will become significantly slower in scenarios where the demands cannot be satisfied. If the user cannot garuantee to have sufficient assets to fullfill the demand, it is advised to use slack (peak) sources. * It is assumed that the tank storage in the network can only be used for intra day buffering and hence can only be used by the optimizer for the peak day. * If this assumption is not valid an extension of the workflow is required. -* It is assumed that seasonal storage is cyclic over calendar year, meaning that at the beginning and end of the year the same amount of thermal energy must be stored in the seasonal storage. +* It is assumed that the seasonal storage is cyclic over a calendar year. This implies that the stored thermal energy at the beginning and at the end of the year is the same. * This assumption is required to ensure that the results of a single year can be extrapolated over the lifetime. For the assumptions on the physics and cost modelling the reader is referred to the respective modelling pages. @@ -74,11 +74,11 @@ For the assumptions on the physics and cost modelling the reader is referred to EndScenarioSizingNoHeatLosses ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The EndScenarioSizingNoHeatLosses workflow provides all the same functionality as the standard EndScenarioSizing, except that heat losses in the network are not modelled. +The EndScenarioSizingNoHeatLosses workflow provides all the same functionality as the standard EndScenarioSizing, except that heat losses in the network are excluded. This means that the required thermal energy of the system is underestimated and hence mainly the OPEX will be underestimated. -This workflow has the advantage that it is much faster than the default EndScenarioSizing (typically > factor 10). +This workflow has the advantage that it is much faster (typically > factor 10) than the default EndScenarioSizing. Therefore, it is recommended to use this workflow in the initial phases of analysis with larger networks. -This workflow will allows to make quicker iterations on the input ESDL file and debug posssible errors in a shorter time-frame. +This workflow will allow the user to make quicker iterations on the input ESDL file and debug possible errors in a shorter time-frame. EndScenarioSizingNoHeatLosses workflow should not be used as a replacement of the EndScenarioSizing workflow as heat losses can be up to 20% of the demand and should not be neglected for design. @@ -86,7 +86,7 @@ EndScenarioSizingNoHeatLosses workflow should not be used as a replacement of th EndScenarioSizingDiscounted ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The EndScenarioSizingDiscounted provides everything the EndScenarioSizing workflow provides, but also: +The EndScenarioSizingDiscounted provides everything the EndScenarioSizing workflow provides, with the addition of: * The ability to account for varying depreciation times of assets in the system. * The ability to take into account a discount rate for the CAPEX of assets. @@ -95,8 +95,8 @@ The EndScenarioSizingDiscounted provides everything the EndScenarioSizing workfl EndScenarioSizingHeadLoss ~~~~~~~~~~~~~~~~~~~~~~~~~ -The EndScenarioSizingHeadLoss provides everything the EndScenarioSizing workflow provides, but also: +The EndScenarioSizingHeadLoss provides everything the EndScenarioSizing workflow provides, with the addition of: -* It takes into account the pressure drops in the network. -* It computes the hydraulic power and thereby the pumping power. It is assumed that every source will have a pump. The pumping cost will be computed with the electricity price profile if an electricity carrier is specified in the ESDL file. +* Taking into account the pressure drops in the network. +* Computing the hydraulic power and thereby the pumping power. It is assumed that every source will have a pump. The pumping cost will be computed with the electricity price profile if an electricity carrier is specified in the ESDL file. From 0a6391f252e4d92620b7468d0f746700360cce34 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 6 May 2024 12:43:01 +0200 Subject: [PATCH 119/275] formatting changed mesido/Mesido to MESIDO --- README.md | 2 +- docs/index.rst | 2 +- docs/theory/asset_sizing.rst | 4 ++-- docs/theory/financial.rst | 2 +- docs/theory/heat_physics.rst | 2 +- docs/theory/physics.rst | 8 ++++---- src/mesido/util.py | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 226fa1594..acfd5cc62 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ If all is well, you should see something like the following output: ![img.png](img.png) In this example.py file you can see a small workflow being set-up. The PipeDiameterSizingProblem class -inherits from (Note only the *classes are defined in mesido the others come from rtc-tools package): +inherits from (Note only the *classes are defined in MESIDO the others come from rtc-tools package): - CollocatedIntegratedOptimizationProblem: This class does all the discretization of the state variables in your problem. - *ESDLMixin: This class does the parsing and setting up of a model based on an ESDL file. - GoalProgrammingMixin: This class allows you to add Goals (objective functions) with different priorities. diff --git a/docs/index.rst b/docs/index.rst index b59ba0cfc..0b3c4c726 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -7,7 +7,7 @@ This is the documentation for MESIDO. .. toctree:: :maxdepth: 4 - :caption: Mesido + :caption: MESIDO theory/index support diff --git a/docs/theory/asset_sizing.rst b/docs/theory/asset_sizing.rst index 0decf3643..8b835e003 100644 --- a/docs/theory/asset_sizing.rst +++ b/docs/theory/asset_sizing.rst @@ -3,7 +3,7 @@ Asset Sizing ============ -Mesido supports both the placing and sizing decision. +MESIDO supports both the placing and sizing decision. Where placement is the integer decision if an optional location is selected or not. The integer for whether or not an asset is placed is govorned based on whether or not power is exchanged between the asset and other assets over the time horizon, see: @@ -24,7 +24,7 @@ The integer for whether or not an asset is placed is govorned based on whether o Where :math:`(q^{a}_{min}, q^{a}_{max})` the lower and upperbound of the power. -For the sizing Mesido supports three general methods. +For the sizing MESIDO supports three general methods. Depending on the physics can be applied to different assets. Continious Sizing diff --git a/docs/theory/financial.rst b/docs/theory/financial.rst index b8f87ba09..6e7d6634c 100644 --- a/docs/theory/financial.rst +++ b/docs/theory/financial.rst @@ -3,7 +3,7 @@ Financial ========= -Mesido offers the posibility to model the cost and revenues based on the design and operation of the energy system. +MESIDO offers the posibility to model the cost and revenues based on the design and operation of the energy system. The asset cost modelling includes both the CAPEX and OPEX over the time-horizon of the optimization. Asset Cost Modelling diff --git a/docs/theory/heat_physics.rst b/docs/theory/heat_physics.rst index d9e7801de..63f7999ae 100644 --- a/docs/theory/heat_physics.rst +++ b/docs/theory/heat_physics.rst @@ -3,7 +3,7 @@ Heat Physics ============ -Mesido models thermal power (:math:`\dot{Q}`), volumetric flow (:math:`\dot{V}`), and head (:math:`H`) for DHS systems. +MESIDO models thermal power (:math:`\dot{Q}`), volumetric flow (:math:`\dot{V}`), and head (:math:`H`) for DHS systems. These variables are modelled over all time-steps :math:`K` and for each asset in the system :math:`A`. An asset :math:`a \in A` in the system is modelled using a set of in-ports, denoted by :math:`I^a_{in} \neq \emptyset`, and a set of out-ports, denoted by :math:`I^a_{out} \neq \emptyset`, with :math:`I^a` denoting the union of these two sets. For an asset :math:`a` the three variables :math:`\dot{Q}_i, \dot{V}_i`, and :math:`H_i` denote the thermal power, volumetric flow and head for port :math:`i \in I^a`. For readability, the variables and equations of the model, given below, are defined without indexing the variables and sets for each time-step. diff --git a/docs/theory/physics.rst b/docs/theory/physics.rst index a2b1def27..b8bf161a0 100644 --- a/docs/theory/physics.rst +++ b/docs/theory/physics.rst @@ -3,11 +3,11 @@ Physics ======= -Within Mesido the physics are approximated utilizing the mixed integer linear constraints. -The goal within Mesido is to approximate the physics in such a way that the approximation errors result in conservative estimates on the financial aspects of the system, e.g. overestimating cost and underestimating revenue. -To cater for different design phases different approximation fidelities can be configuration in Mesido. +Within MESIDO the physics are approximated utilizing the mixed integer linear constraints. +The goal within MESIDO is to approximate the physics in such a way that the approximation errors result in conservative estimates on the financial aspects of the system, e.g. overestimating cost and underestimating revenue. +To cater for different design phases different approximation fidelities can be configuration in MESIDO. Examples include the approximation of head loss which can be ignored or approximated with multiple linear constraints. -Mesido allows for the integral optimization of energy systems having: +MESIDO allows for the integral optimization of energy systems having: * A heat commodity (closed loop district heating networks where water is used as the medium) * A gaseous commodity where pipes transport the gas. diff --git a/src/mesido/util.py b/src/mesido/util.py index 8e7715eaa..355636926 100644 --- a/src/mesido/util.py +++ b/src/mesido/util.py @@ -19,7 +19,7 @@ def run_esdl_mesido_optimization( **kwargs, ): """ - This function is used to execute an optimization on a mesido defined problem. Compared to the + This function is used to execute an optimization on a MESIDO defined problem. Compared to the standard rtc-tools run_optimization_problem() method extra checks can be included here. params: From 844ff2d9a0907c7902145ea51fc16745975411ed Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 6 May 2024 12:47:00 +0200 Subject: [PATCH 120/275] formatting --- docs/theory/financial.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/theory/financial.rst b/docs/theory/financial.rst index 6e7d6634c..52de8313b 100644 --- a/docs/theory/financial.rst +++ b/docs/theory/financial.rst @@ -38,7 +38,7 @@ The investment cost is the cost component that helps to find the minimum asset s Variable Operational Cost ~~~~~~~~~~~~~~~~~~~~~~~~~ -The variable operational cost is the cost component that depends on the useage of the asset over the time horizon. +The variable operational cost is the cost component that depends on the usage of the asset over the time horizon. Typically this is a power consumption or production, which is represented by :math:`x^{a}_{use}`. .. math:: @@ -50,7 +50,7 @@ Typically this is a power consumption or production, which is represented by :ma Fixed Operational Cost ~~~~~~~~~~~~~~~~~~~~~~ -The fixed operational cost is the cost component that return every X time (typically every calendar year) based on the size of the asset. +The fixed operational cost is the cost component that returns every X time (typically every calendar year) based on the size of the asset. .. math:: :label: eq:fixedopex From 46e7ac5af2d9a6e09874efbe864cd01463d5bc2b Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 6 May 2024 13:13:24 +0200 Subject: [PATCH 121/275] formatting --- docs/theory/asset_sizing.rst | 19 +++++++++---------- docs/theory/heat_physics.rst | 12 ++++++------ docs/theory/physics.rst | 2 +- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/docs/theory/asset_sizing.rst b/docs/theory/asset_sizing.rst index 8b835e003..3f2fca8d3 100644 --- a/docs/theory/asset_sizing.rst +++ b/docs/theory/asset_sizing.rst @@ -3,9 +3,9 @@ Asset Sizing ============ -MESIDO supports both the placing and sizing decision. +MESIDO supports both the placing and sizing decisions. Where placement is the integer decision if an optional location is selected or not. -The integer for whether or not an asset is placed is govorned based on whether or not power is exchanged between the asset and other assets over the time horizon, see: +The integer for whether or not an asset is placed is governed based on whether or not power is exchanged between the asset and other assets over the time horizon, see: .. math:: :label: eq:max_placed_power @@ -22,25 +22,24 @@ The integer for whether or not an asset is placed is govorned based on whether o \delta^{a}_{placed} \in \{0,1\} \;\; -Where :math:`(q^{a}_{min}, q^{a}_{max})` the lower and upperbound of the power. +Where :math:`(q^{a}_{min}, q^{a}_{max})` are the lower and upper bounds of the power. -For the sizing MESIDO supports three general methods. -Depending on the physics can be applied to different assets. +For the sizing MESIDO supports three general methods, which can be applied to different assets depending on the physics. Continious Sizing ----------------- -If an asset is continuously sized the max size var, :math:`x^{a}_{max}` must if given to be larger than the state, :math:`x^{a}`, (e.g. power) with which the size scales. +If an asset is continuously sized, the max size variable :math:`x^{a}_{max}` must if given to be larger than the state, :math:`x^{a}`, (e.g. power) with which the size scales. .. math:: :label: eq:limit_power_ates -x^{a}_{max}\leq x^{a} \leq x^{a}_{max} -Sizing with aggregation +Sizing With Aggregation ----------------------- -If an asset is sized based on its aggregation count then the max size variable, :math:`x^{a}_{max}`, +If an asset is sized based on its aggregation count, then the max size variable, :math:`x^{a}_{max}`, will be bounded based on the amount of aggregations that exist for that asset. Examples include the sizing of geothermal sources by their amount of wells, with the power per well. @@ -49,7 +48,7 @@ Examples include the sizing of geothermal sources by their amount of wells, with x^{a} \leq \delta^{a}_{aggr,count} X^{a}_{single,max} -Sizing with integer modelling +Sizing With Integer Modelling ----------------------------- The integer method can be used if the size of the asset is determined by a number of predefined sizes, :math:`\delta_{j,a}`. @@ -76,7 +75,7 @@ The sizing integer can then be used to limit the max size variable, e.g. max flo where :math:`\bar{e_j}` denotes the max value for the state at that sizing option. -Asset sizing method table +Asset sizing methods employed ------------------------- .. list-table:: Asset Sizing Model diff --git a/docs/theory/heat_physics.rst b/docs/theory/heat_physics.rst index 63f7999ae..4dbb5162f 100644 --- a/docs/theory/heat_physics.rst +++ b/docs/theory/heat_physics.rst @@ -3,11 +3,11 @@ Heat Physics ============ -MESIDO models thermal power (:math:`\dot{Q}`), volumetric flow (:math:`\dot{V}`), and head (:math:`H`) for DHS systems. -These variables are modelled over all time-steps :math:`K` and for each asset in the system :math:`A`. +Mesido models thermal power (:math:`\dot{Q}`), volumetric flow (:math:`\dot{V}`), and head (:math:`H`) for DHS systems. +These variables are modelled over all timesteps :math:`K` and for each asset in the system :math:`A`. An asset :math:`a \in A` in the system is modelled using a set of in-ports, denoted by :math:`I^a_{in} \neq \emptyset`, and a set of out-ports, denoted by :math:`I^a_{out} \neq \emptyset`, with :math:`I^a` denoting the union of these two sets. -For an asset :math:`a` the three variables :math:`\dot{Q}_i, \dot{V}_i`, and :math:`H_i` denote the thermal power, volumetric flow and head for port :math:`i \in I^a`. For readability, the variables and equations of the model, given below, are defined without indexing the variables and sets for each time-step. -The equations below are assumed to hold for every time-step, unless otherwise specified. +For an asset :math:`a` the three variables :math:`\dot{Q}_i, \dot{V}_i`, and :math:`H_i` denote the thermal power, volumetric flow and head for port :math:`i \in I^a`. For readability, the variables and equations of the model, given below, are defined without indexing the variables and sets for each timestep. +The equations below are assumed to hold for every timestep, unless otherwise specified. Modelling specifically these three variables allows to ensure a hydraulically feasible solution whilst linearizing the physics. Energy changes are modelled with the assumption of a constant temperature throughout the network. @@ -16,7 +16,7 @@ Although this assumption is not realistic, the linearization made will show that General Physics --------------- -The DHS is modelled as a closed loop system and thus at every time-step and for every asset, mass balance should hold. +The DHS is modelled as a closed loop system and thus at every timestep and for every asset, mass balance should hold. The system is modeled with constant temperature and thus constant density and specific heat. The mass balance is provided as a volumetric flow balance in :eq:`eq:flow_balance`. @@ -83,7 +83,7 @@ where :math:`T_{sup}, T_{ret}`, and :math:`T_{amb}` represent the supply, return and ambient temperatures. :math:`A_{pipes}` define the set of pipes with :math:`L^a` being the length of pipe :math:`a`. -:math:`\delta^a_{discon}` is a boolean variable to model if pipe :math:`a` is in use for a specific time-step. +:math:`\delta^a_{discon}` is a boolean variable to model if pipe :math:`a` is in use for a specific timestep. :math:`d^a_{inner}` and :math:`d^a_{outer}` are the inner and outer diameters of pipe :math:`a` and :math:`k_{subsoil}` is a constant used to model the resistance of the subsoil. :math:`\delta^a_{discon}` is modelled by: diff --git a/docs/theory/physics.rst b/docs/theory/physics.rst index b8bf161a0..c0ccc67f2 100644 --- a/docs/theory/physics.rst +++ b/docs/theory/physics.rst @@ -4,7 +4,7 @@ Physics ======= Within MESIDO the physics are approximated utilizing the mixed integer linear constraints. -The goal within MESIDO is to approximate the physics in such a way that the approximation errors result in conservative estimates on the financial aspects of the system, e.g. overestimating cost and underestimating revenue. +The goal within MESIDO is to approximate the physics in such a way such that the approximation errors result in conservative estimates of the financial aspects of the system, e.g. overestimating cost and underestimating revenue. To cater for different design phases different approximation fidelities can be configuration in MESIDO. Examples include the approximation of head loss which can be ignored or approximated with multiple linear constraints. MESIDO allows for the integral optimization of energy systems having: From 2c335f7e2f1be9123cf1c30d8d358198c9313528 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 16 May 2024 12:02:25 +0200 Subject: [PATCH 122/275] added cyclic heat constraints to test + formatting --- src/mesido/esdl/esdl_heat_model.py | 4 + src/mesido/heat_physics_mixin.py | 34 ++- .../pycml/component_library/milp/heat/ates.py | 4 +- .../milp/heat/low_temperature_ates.py | 7 +- tests/models/wko/input/timeseries.csv | 9 +- .../models/wko/input/timeseries_original.csv | 9 + .../wko/model/LT_wko_heating_and_cooling.esdl | 222 ++++++++++++++++++ tests/models/wko/src/example.py | 15 +- tests/test_cold_demand.py | 96 +++++++- 9 files changed, 374 insertions(+), 26 deletions(-) create mode 100644 tests/models/wko/input/timeseries_original.csv create mode 100644 tests/models/wko/model/LT_wko_heating_and_cooling.esdl diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 670989f86..d7eeaa48e 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1080,6 +1080,8 @@ def convert_ates(self, asset: Asset) -> Tuple[Type[ATES], MODIFIERS]: ) ) ) + logger.warning("ATES in use: WKO (koude-warmteopslag, cold and heat storage) since the" + " maximum temperature has been specified to be <= 30 degrees Celcius") return LowTemperatureATES, modifiers else: modifiers.update( @@ -1097,6 +1099,8 @@ def convert_ates(self, asset: Asset) -> Tuple[Type[ATES], MODIFIERS]: ), ) ) + logger.warning("ATES in use: High Temperature ATES since the maximum temperature has" + " been specified to be > 30 degrees Celcius or not specified at all") return ATES, modifiers def convert_control_valve(self, asset: Asset) -> Tuple[Type[ControlValve], MODIFIERS]: diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 5eee05803..72b83ed42 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -1,5 +1,6 @@ import logging import math +import sys from typing import List import casadi as ca @@ -2229,16 +2230,31 @@ def __ates_heat_losses_path_constraints(self, ensemble_member): # -np.inf, # 0.0) # ) - else: - # no temperature states available - coeff_efficiency_ates = parameters[f"{ates}.heat_loss_coeff"] - constraints.append( - ( - (heat_loss - stored_heat * coeff_efficiency_ates) / heat_loss_nominal, - 0.0, - 0.0, + else: # no temperature states available + if ates in [*self.energy_system_components.get("ates", [])]: + + coeff_efficiency_ates = parameters[f"{ates}.heat_loss_coeff"] + constraints.append( + ( + (heat_loss - stored_heat * coeff_efficiency_ates) / heat_loss_nominal, + 0.0, + 0.0, + ) ) - ) + elif ates in [*self.energy_system_components.get("low_temperature_ates", [])]: + + coeff_efficiency_ates = parameters[f"{ates}.heat_loss_coeff"] + constraints.append( + ( + (heat_loss - stored_heat * coeff_efficiency_ates) / heat_loss_nominal, + 0.0, + 0.0, + ) + ) + else: + logger.error("An invalid type of ATES is accessed") + sys.exit(1) + return constraints diff --git a/src/mesido/pycml/component_library/milp/heat/ates.py b/src/mesido/pycml/component_library/milp/heat/ates.py index 59c9e5280..7735c9337 100644 --- a/src/mesido/pycml/component_library/milp/heat/ates.py +++ b/src/mesido/pycml/component_library/milp/heat/ates.py @@ -68,8 +68,8 @@ def __init__(self, name, **modifiers): # Thus Heat_buffer = HeatHot = der(Stored_heat). # We connect an ATES as an demand, meaning that flow and Heat_ates are positive under # charging and negative under discharge - self.add_variable(Variable, "Heat_ates", nominal=self.Heat_nominal) - self.add_variable(Variable, "Heat_flow", nominal=self.Heat_nominal) + self.add_variable(Variable, "Heat_ates", nominal=self.Heat_nominal) # [W] + self.add_variable(Variable, "Heat_flow", nominal=self.Heat_nominal) # [W] # Assume the storage fills in about 3 months at typical rate self._typical_fill_time = 3600.0 * 24.0 * 90.0 self._nominal_stored_heat = self.Heat_nominal * self._typical_fill_time diff --git a/src/mesido/pycml/component_library/milp/heat/low_temperature_ates.py b/src/mesido/pycml/component_library/milp/heat/low_temperature_ates.py index 1f0348fdd..161211a5e 100644 --- a/src/mesido/pycml/component_library/milp/heat/low_temperature_ates.py +++ b/src/mesido/pycml/component_library/milp/heat/low_temperature_ates.py @@ -53,8 +53,8 @@ def __init__(self, name, **modifiers): # Thus Heat_buffer = HeatHot = der(Stored_heat). # We connect an ATES as an demand, meaning that flow and Heat_low_temperature_ates are # positive undercharging and negative under discharge - self.add_variable(Variable, "Heat_low_temperature_ates", nominal=self.Heat_nominal) - self.add_variable(Variable, "Heat_flow", nominal=self.Heat_nominal) + self.add_variable(Variable, "Heat_low_temperature_ates", nominal=self.Heat_nominal) # [W] + self.add_variable(Variable, "Heat_flow", nominal=self.Heat_nominal) # [W] # Assume the storage fills in about 3 months at typical rate self._typical_fill_time = 3600.0 * 24.0 * 90.0 self._nominal_stored_heat = self.Heat_nominal * self._typical_fill_time @@ -70,6 +70,7 @@ def __init__(self, name, **modifiers): min=0.0, nominal=self._typical_fill_time * self.Q_nominal, ) + self.add_variable(Variable, "Q", nominal=self.Q_nominal) self.add_variable( Variable, "Pump_power", min=0.0, nominal=self.Q_nominal * self.nominal_pressure @@ -86,7 +87,7 @@ def __init__(self, name, **modifiers): self.add_equation(self.HeatIn.Q - self.HeatOut.Q) self.add_equation(self.Q - self.HeatOut.Q) - # # Heat stored in the ates + # Heat stored in the ates self.add_equation( (self.der(self.Stored_heat) - self.Heat_low_temperature_ates + self.Heat_loss) / self._heat_loss_eq_nominal_ates diff --git a/tests/models/wko/input/timeseries.csv b/tests/models/wko/input/timeseries.csv index 680e238b1..9a34901e8 100644 --- a/tests/models/wko/input/timeseries.csv +++ b/tests/models/wko/input/timeseries.csv @@ -1,9 +1,10 @@ DateTime,HeatingDemand_9b90,CoolingDemand_15e8 -01-01-2019 00:00, 50000., 150000. -01-01-2019 01:00, 100000., 150000. +01-01-2019 00:00, 10000., 10000. +01-01-2019 01:00, 50000., 150000. 01-01-2019 02:00, 100000., 150000. -01-01-2019 03:00, 100000., 0. -01-01-2019 04:00, 150000., 0. +01-01-2019 03:00, 100000., 150000. +01-01-2019 04:00, 100000., 0. 01-01-2019 05:00, 150000., 0. 01-01-2019 06:00, 150000., 0. +01-01-2019 07:00, 150000., 0. diff --git a/tests/models/wko/input/timeseries_original.csv b/tests/models/wko/input/timeseries_original.csv new file mode 100644 index 000000000..680e238b1 --- /dev/null +++ b/tests/models/wko/input/timeseries_original.csv @@ -0,0 +1,9 @@ +DateTime,HeatingDemand_9b90,CoolingDemand_15e8 +01-01-2019 00:00, 50000., 150000. +01-01-2019 01:00, 100000., 150000. +01-01-2019 02:00, 100000., 150000. +01-01-2019 03:00, 100000., 0. +01-01-2019 04:00, 150000., 0. +01-01-2019 05:00, 150000., 0. +01-01-2019 06:00, 150000., 0. + diff --git a/tests/models/wko/model/LT_wko_heating_and_cooling.esdl b/tests/models/wko/model/LT_wko_heating_and_cooling.esdl new file mode 100644 index 000000000..c60f2d135 --- /dev/null +++ b/tests/models/wko/model/LT_wko_heating_and_cooling.esdl @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/wko/src/example.py b/tests/models/wko/src/example.py index c46291cd1..873c183d9 100644 --- a/tests/models/wko/src/example.py +++ b/tests/models/wko/src/example.py @@ -1,3 +1,6 @@ +import sys +import traceback + import casadi as ca from mesido.esdl.esdl_mixin import ESDLMixin @@ -167,8 +170,16 @@ def path_goals(self): """ goals = super().path_goals().copy() - for s in self.energy_system_components["heat_source"]: - goals.append(MinimizeSourcesHeatGoal(s)) + try: + self.energy_system_components["heat_source"] + + for s in self.energy_system_components["heat_source"]: + goals.append(MinimizeSourcesHeatGoal(s)) + except KeyError: + ... + except Exception: + traceback.print_exc() + sys.exit(1) return goals diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 53cb5b574..5705b79a3 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -5,6 +5,8 @@ from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.util import run_esdl_mesido_optimization +import numpy as np + from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test @@ -34,10 +36,11 @@ def test_cold_demand(self): profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries.csv", ) + results = heat_problem.extract_results() - demand_matching_test(heat_problem, heat_problem.extract_results()) - energy_conservation_test(heat_problem, heat_problem.extract_results()) - heat_to_discharge_test(heat_problem, heat_problem.extract_results()) + demand_matching_test(heat_problem, results) + energy_conservation_test(heat_problem, results) + heat_to_discharge_test(heat_problem, results) def test_airco(self): """ @@ -64,11 +67,92 @@ def test_airco(self): profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries.csv", ) + results = heat_problem.extract_results() + + demand_matching_test(heat_problem, results) + energy_conservation_test(heat_problem, results) + heat_to_discharge_test(heat_problem, results) - demand_matching_test(heat_problem, heat_problem.extract_results()) - energy_conservation_test(heat_problem, heat_problem.extract_results()) - heat_to_discharge_test(heat_problem, heat_problem.extract_results()) + + def test_wko(self): + """ + to be updated -->> This test is to check the basic physics for a network which includes cold demand. In this + case we have a network with an air-water hp, a low temperature ates and both hot and cold + demand. In this case the demands are matched and the low temperature ates is utilized. + + Checks: + 1. demand is matched + 2. energy conservation in the network + 3. heat to discharge (note cold line is colder than T_ground) + + """ + import models.wko.src.example as example + from models.wko.src.example import HeatProblem + + base_folder = Path(example.__file__).resolve().parent.parent + + class HeatingCoolingProblem(HeatProblem): + def constraints(self, ensemble_member): + constraints = super().constraints(ensemble_member) + + # Add cyclic constraint, this will also ensure that the total power used in the + # lower temp & higher temp well and via versa is the same. + # Note: + # - WKO in cooling mode: Hot well is being charged with heat and the cold well is + # being discharged + # - WKO in heating mode: Cold well is being charged and the hot well is being + # discharged. + for a in self.energy_system_components.get("low_temperature_ates", []): + stored_heat = self.state_vector(f"{a}.Stored_heat") + constraints.append(((stored_heat[-1] - stored_heat[0]), 0.0, 0.0)) + + # TODO: confirm if the yearly balance between warm and cold well is heat / flow + # related? + # This code below might be needed + # Add constriant such that the total volume used of the lower temp & higher temp + # well of the WKO is the same. Yearly volume balance between the 2 wells. This + # ensures volume balance over the timeline. This is done by adding a constriant to + # esnure the total volume change over the period = 0. + # Note: + # - Volume increase: Hot well is being charged and the cold well is being + # discharged. -> WKO in cooling mode + # - Volume decrease: Cold well is being charged and the hot well is being + # discharged. -> WKO in heating mode + # if heat balance over the year is required, then this needs to change ?????? TBC + # for ates_id in self.energy_system_components.get("low_temperature_ates", []): + # stored_volume = self.state_vector(f"{ates_id}.Stored_volume") + # volume_usage = 0.0 + # for itstep in range(len(self.times()) - 1): + # volume_usage = ( + # volume_usage + stored_volume[itstep + 1] - stored_volume[itstep] + # ) + # constraints.append((volume_usage, 0.0, 0.0)) + + return constraints + + heat_problem = run_esdl_mesido_optimization( + HeatingCoolingProblem, + base_folder=base_folder, + esdl_file_name="LT_wko_heating_and_cooling.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + results = heat_problem.extract_results() + + demand_matching_test(heat_problem, results) + energy_conservation_test(heat_problem, results) + heat_to_discharge_test(heat_problem, results) + + np.testing.assert_allclose( + results["ATES_226d.Stored_heat"][0], results["ATES_226d.Stored_heat"][-1] + ) + np.testing.assert_allclose(results["ATES_226d.Stored_heat"][0], 0.0) if __name__ == "__main__": + test_cold_demand = TestColdDemand() + # test_cold_demand.test_cold_demand() + test_cold_demand.test_wko() + a = 1 From e723b4c56163e62d3b7c8ac9366f2eb703df0979 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 16 May 2024 14:34:49 +0200 Subject: [PATCH 123/275] try to force heatpump on earlier --- tests/models/wko/input/timeseries.csv | 9 ++++----- tests/models/wko/input/timeseries_2.csv | 11 +++++++++++ tests/models/wko/input/timeseries_original.csv | 9 --------- .../models/wko/model/LT_wko_heating_and_cooling.esdl | 2 +- tests/test_cold_demand.py | 7 +++++-- 5 files changed, 21 insertions(+), 17 deletions(-) create mode 100644 tests/models/wko/input/timeseries_2.csv delete mode 100644 tests/models/wko/input/timeseries_original.csv diff --git a/tests/models/wko/input/timeseries.csv b/tests/models/wko/input/timeseries.csv index 9a34901e8..680e238b1 100644 --- a/tests/models/wko/input/timeseries.csv +++ b/tests/models/wko/input/timeseries.csv @@ -1,10 +1,9 @@ DateTime,HeatingDemand_9b90,CoolingDemand_15e8 -01-01-2019 00:00, 10000., 10000. -01-01-2019 01:00, 50000., 150000. +01-01-2019 00:00, 50000., 150000. +01-01-2019 01:00, 100000., 150000. 01-01-2019 02:00, 100000., 150000. -01-01-2019 03:00, 100000., 150000. -01-01-2019 04:00, 100000., 0. +01-01-2019 03:00, 100000., 0. +01-01-2019 04:00, 150000., 0. 01-01-2019 05:00, 150000., 0. 01-01-2019 06:00, 150000., 0. -01-01-2019 07:00, 150000., 0. diff --git a/tests/models/wko/input/timeseries_2.csv b/tests/models/wko/input/timeseries_2.csv new file mode 100644 index 000000000..2f7e72ecf --- /dev/null +++ b/tests/models/wko/input/timeseries_2.csv @@ -0,0 +1,11 @@ +DateTime,HeatingDemand_9b90,CoolingDemand_15e8 +01-01-2019 00:00, 10000., 10000. +01-01-2019 01:00, 50000., 150000. +01-01-2019 02:00, 100000., 150000. +01-01-2019 03:00, 100000., 150000. +01-01-2019 04:00, 100000., 0. +01-01-2019 05:00, 150000., 0. +01-01-2019 06:00, 150000., 0. +01-01-2019 07:00, 150000., 0. +01-01-2019 08:00, 0., 150000. + diff --git a/tests/models/wko/input/timeseries_original.csv b/tests/models/wko/input/timeseries_original.csv deleted file mode 100644 index 680e238b1..000000000 --- a/tests/models/wko/input/timeseries_original.csv +++ /dev/null @@ -1,9 +0,0 @@ -DateTime,HeatingDemand_9b90,CoolingDemand_15e8 -01-01-2019 00:00, 50000., 150000. -01-01-2019 01:00, 100000., 150000. -01-01-2019 02:00, 100000., 150000. -01-01-2019 03:00, 100000., 0. -01-01-2019 04:00, 150000., 0. -01-01-2019 05:00, 150000., 0. -01-01-2019 06:00, 150000., 0. - diff --git a/tests/models/wko/model/LT_wko_heating_and_cooling.esdl b/tests/models/wko/model/LT_wko_heating_and_cooling.esdl index c60f2d135..9660a2e8a 100644 --- a/tests/models/wko/model/LT_wko_heating_and_cooling.esdl +++ b/tests/models/wko/model/LT_wko_heating_and_cooling.esdl @@ -26,7 +26,7 @@ - + diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 5705b79a3..2958d0c2b 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -105,6 +105,8 @@ def constraints(self, ensemble_member): for a in self.energy_system_components.get("low_temperature_ates", []): stored_heat = self.state_vector(f"{a}.Stored_heat") constraints.append(((stored_heat[-1] - stored_heat[0]), 0.0, 0.0)) + # This was added to force the heatpump to start loading the WKO 1st 3 timesteps + constraints.append((stored_heat[0], 0.0, 0.0)) # TODO: confirm if the yearly balance between warm and cold well is heat / flow # related? @@ -136,7 +138,7 @@ def constraints(self, ensemble_member): esdl_file_name="LT_wko_heating_and_cooling.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, - input_timeseries_file="timeseries.csv", + input_timeseries_file="timeseries_2.csv", ) results = heat_problem.extract_results() @@ -149,10 +151,11 @@ def constraints(self, ensemble_member): ) np.testing.assert_allclose(results["ATES_226d.Stored_heat"][0], 0.0) + # Heat pump does not switch on to start loading the WKO. + # Is this intended for some reason Femke? if __name__ == "__main__": test_cold_demand = TestColdDemand() - # test_cold_demand.test_cold_demand() test_cold_demand.test_wko() a = 1 From a02c65c1f6d94c8acb61b982018803050d4dbef6 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 16 May 2024 14:42:01 +0200 Subject: [PATCH 124/275] reverted heat_loss code to original --- src/mesido/heat_physics_mixin.py | 33 +++++++++----------------------- 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 72b83ed42..e48057f48 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -2230,31 +2230,16 @@ def __ates_heat_losses_path_constraints(self, ensemble_member): # -np.inf, # 0.0) # ) - else: # no temperature states available - if ates in [*self.energy_system_components.get("ates", [])]: - - coeff_efficiency_ates = parameters[f"{ates}.heat_loss_coeff"] - constraints.append( - ( - (heat_loss - stored_heat * coeff_efficiency_ates) / heat_loss_nominal, - 0.0, - 0.0, - ) - ) - elif ates in [*self.energy_system_components.get("low_temperature_ates", [])]: - - coeff_efficiency_ates = parameters[f"{ates}.heat_loss_coeff"] - constraints.append( - ( - (heat_loss - stored_heat * coeff_efficiency_ates) / heat_loss_nominal, - 0.0, - 0.0, - ) + else: + # no temperature states available + coeff_efficiency_ates = parameters[f"{ates}.heat_loss_coeff"] + constraints.append( + ( + (heat_loss - stored_heat * coeff_efficiency_ates) / heat_loss_nominal, + 0.0, + 0.0, ) - else: - logger.error("An invalid type of ATES is accessed") - sys.exit(1) - + ) return constraints From 4fdc7bb75d7c38dc97739766d427c1c00b39f191 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 16 May 2024 15:13:11 +0200 Subject: [PATCH 125/275] formatting --- tests/test_cold_demand.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 2958d0c2b..b8e1db080 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -76,14 +76,19 @@ def test_airco(self): def test_wko(self): """ - to be updated -->> This test is to check the basic physics for a network which includes cold demand. In this - case we have a network with an air-water hp, a low temperature ates and both hot and cold - demand. In this case the demands are matched and the low temperature ates is utilized. + This test is to check the basic physics for a network which includes cold demand. In this + case we have a network with an air-water hp, a WKO (warm and cold well) and both hot and + cold demand. + + The demand profiles and the size of the heat pump has been chosen such that the heat is + required is required to switch on to load the warm well of the WKO. Checks: 1. demand is matched 2. energy conservation in the network 3. heat to discharge (note cold line is colder than T_ground) + 4. the cyclic heat_stored contraint, which ensures yearly heat balance between the warm and + cold well """ import models.wko.src.example as example From d3459096ba7a7e4a396565dd7f2e7f745c4ff386 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 16 May 2024 15:14:35 +0200 Subject: [PATCH 126/275] formatting --- tests/test_cold_demand.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index b8e1db080..9fb587a9a 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -80,6 +80,8 @@ def test_wko(self): case we have a network with an air-water hp, a WKO (warm and cold well) and both hot and cold demand. + TODO: resolve issue in test case + The demand profiles and the size of the heat pump has been chosen such that the heat is required is required to switch on to load the warm well of the WKO. From 4e9a06e70d882ae0d95b1a5add06615d65ce019b Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 16 May 2024 15:19:07 +0200 Subject: [PATCH 127/275] formatting --- src/mesido/esdl/esdl_heat_model.py | 12 ++++++++---- src/mesido/heat_physics_mixin.py | 1 - tests/test_cold_demand.py | 6 +++--- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index d7eeaa48e..1f2e9a2e5 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1080,8 +1080,10 @@ def convert_ates(self, asset: Asset) -> Tuple[Type[ATES], MODIFIERS]: ) ) ) - logger.warning("ATES in use: WKO (koude-warmteopslag, cold and heat storage) since the" - " maximum temperature has been specified to be <= 30 degrees Celcius") + logger.warning( + "ATES in use: WKO (koude-warmteopslag, cold and heat storage) since the" + " maximum temperature has been specified to be <= 30 degrees Celcius" + ) return LowTemperatureATES, modifiers else: modifiers.update( @@ -1099,8 +1101,10 @@ def convert_ates(self, asset: Asset) -> Tuple[Type[ATES], MODIFIERS]: ), ) ) - logger.warning("ATES in use: High Temperature ATES since the maximum temperature has" - " been specified to be > 30 degrees Celcius or not specified at all") + logger.warning( + "ATES in use: High Temperature ATES since the maximum temperature has" + " been specified to be > 30 degrees Celcius or not specified at all" + ) return ATES, modifiers def convert_control_valve(self, asset: Asset) -> Tuple[Type[ControlValve], MODIFIERS]: diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index e48057f48..5eee05803 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -1,6 +1,5 @@ import logging import math -import sys from typing import List import casadi as ca diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 9fb587a9a..858079657 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -73,7 +73,6 @@ def test_airco(self): energy_conservation_test(heat_problem, results) heat_to_discharge_test(heat_problem, results) - def test_wko(self): """ This test is to check the basic physics for a network which includes cold demand. In this @@ -83,7 +82,7 @@ def test_wko(self): TODO: resolve issue in test case The demand profiles and the size of the heat pump has been chosen such that the heat is - required is required to switch on to load the warm well of the WKO. + required is required to switch on to load the warm well of the WKO. Checks: 1. demand is matched @@ -151,7 +150,7 @@ def constraints(self, ensemble_member): demand_matching_test(heat_problem, results) energy_conservation_test(heat_problem, results) - heat_to_discharge_test(heat_problem, results) + heat_to_discharge_test(heat_problem, results) np.testing.assert_allclose( results["ATES_226d.Stored_heat"][0], results["ATES_226d.Stored_heat"][-1] @@ -161,6 +160,7 @@ def constraints(self, ensemble_member): # Heat pump does not switch on to start loading the WKO. # Is this intended for some reason Femke? + if __name__ == "__main__": test_cold_demand = TestColdDemand() test_cold_demand.test_wko() From 0931b6b6a31e55193a894882866926368cfe63b8 Mon Sep 17 00:00:00 2001 From: Rojer Date: Tue, 21 May 2024 16:26:12 +0200 Subject: [PATCH 128/275] update from comments kobus --- README.md | 2 +- docs/theory/Workflows.rst | 11 ++++++++--- docs/theory/philosophy.rst | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index acfd5cc62..c32861e1e 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ inherits from (Note only the *classes are defined in MESIDO the others come from - *ESDLMixin: This class does the parsing and setting up of a model based on an ESDL file. - GoalProgrammingMixin: This class allows you to add Goals (objective functions) with different priorities. - LinearizedOrderGoalProgrammingMixin: This class allows you to add higher order goals (e.g. order=2) for MILP problems. -- *TechnoEconomicMixin: This class adds all the network physics and sizing variables for MILP problems. +- *TechnoEconomicMixin: This class combines all the Mixin classes required for a full techno-economic optimization. Within the PipeDiameterSizingProblem class you can see that the path_goals() function is overwritten and that a path_goal with priority one is added to meet the heat demands. The definition path_goal is used diff --git a/docs/theory/Workflows.rst b/docs/theory/Workflows.rst index de6a861d0..0117cb93a 100644 --- a/docs/theory/Workflows.rst +++ b/docs/theory/Workflows.rst @@ -21,8 +21,8 @@ EndScenarioSizing The EndScenarioSizing workflow is designed to optimize a district heating network by taking into account both asset (pipes, sources, storages, etc.) sizing and operational strategy for the lowest Total Cost of Ownership. This workflow comes in a few variants that give the user the possibility to trade-off computational time with model assumptions. -* (EndScenarioSizingNoHeatLosses) * EndScenarioSizing +* EndScenarioSizingNoHeatLosses * EndScenarioSizingDiscounted * EndScenarioSizingHeadLoss * EndScenarioSizingHeadLossDiscounted @@ -51,7 +51,7 @@ This allows for a much easier mathematical representation of the problem an henc In the second stage the heat losses in the network are taken into account, however now the problem is bounded with the information of the first stage. Pipes will only be allowed to be at least as large as the result of the first stage or one DN size larger. Furthermore, the flow directions will be utilized if the flow meets a minimum threshold value. -Lastly, sources will now have a lower bound with the minimum of the first stage. +Lastly, sources placed in the first stage will also be placed in the second stage. In its default configuration the workflow has the following main assumptions: @@ -80,7 +80,7 @@ This workflow has the advantage that it is much faster (typically > factor 10) t Therefore, it is recommended to use this workflow in the initial phases of analysis with larger networks. This workflow will allow the user to make quicker iterations on the input ESDL file and debug possible errors in a shorter time-frame. -EndScenarioSizingNoHeatLosses workflow should not be used as a replacement of the EndScenarioSizing workflow as heat losses can be up to 20% of the demand and should not be neglected for design. +EndScenarioSizingNoHeatLosses workflow should not be used as a replacement of the EndScenarioSizing workflow as heat losses can be up to 30% of the demand and should not be neglected for design. EndScenarioSizingDiscounted @@ -100,3 +100,8 @@ The EndScenarioSizingHeadLoss provides everything the EndScenarioSizing workflow * Taking into account the pressure drops in the network. * Computing the hydraulic power and thereby the pumping power. It is assumed that every source will have a pump. The pumping cost will be computed with the electricity price profile if an electricity carrier is specified in the ESDL file. +EndScenarioSizingHeadLossDiscounted +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The EndScenarioSizingHeadLossDiscounted workflow combines the added functionality of EndScenarioSizingDiscounted and EndScenarioSizingHeadLoss into one workflow. + diff --git a/docs/theory/philosophy.rst b/docs/theory/philosophy.rst index 066d76219..384f77a8a 100644 --- a/docs/theory/philosophy.rst +++ b/docs/theory/philosophy.rst @@ -15,4 +15,4 @@ MESIDO applies a Mixed Integer Linear Problem (MILP) formulation to adress these * In the early phases of designing an energy system, decision makers are typically not looking for high accuracy physical insight, but rather for directions in investment choices. Hence MILP approximation methods that are conservative and feasible, whilst staying within accuracy bounds of the available input data, will suffice. This allows the decision makers to make plans in this early phase with lower financial risk, as these plans will become more detailed over time. * Part of the decisions for designing an energy system have an integer nature, e.g. placing a source or options for a pipe size. These design choices cannot be modelled with continuous formulation in a representative manner. -* Due to the large number of uncertainties it is key to have the ability to iterate quickly over input data variations. The computational speed of the optimization is therefore of vital importance. Ideally, the user should be able to do many iterations within one day. +* Due to the large number of uncertainties it is key to have the ability to iterate quickly over input data variations. The computational speed of the optimization is therefore of vital importance. From 588d9a5b2e6ccde88b2be0651fe534a3c1e89834 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 23 May 2024 13:23:15 +0200 Subject: [PATCH 129/275] Formatting and 3 fixes (open conversations) --- docs/theory/Workflows.rst | 4 ++-- docs/theory/asset_sizing.rst | 2 +- docs/theory/heat_physics.rst | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/theory/Workflows.rst b/docs/theory/Workflows.rst index 0117cb93a..05c7de63c 100644 --- a/docs/theory/Workflows.rst +++ b/docs/theory/Workflows.rst @@ -4,7 +4,7 @@ Design Toolkit Workflows ======================== This page eleborates on the available Design Toolkit workflows within MESIDO. -The Design Toolkit is a subsidy funded project (NieuweWarmteNu) to help different organizatons in the district heating value chain with sketch and conceptual designing of District Heating Systems (DHS). +The Design Toolkit is a subsidy funded project (NieuweWarmteNu) to help different organizatons in the district heating value chain with draft and/or conceptual designing of District Heating Systems (DHS). For more information see : https://nwn.nu/projecten/innovaties/design-toolkit-warmtenetten/. MESIDO is by no means limited to only these workflows, but it is left to the user itself to define the most logical workflow if the ones below are unsuitable. @@ -57,7 +57,7 @@ In its default configuration the workflow has the following main assumptions: * The whole network is realized instantaneously, as a single year is optimized and extrapolated for the lifetime. * In reality the realization of DHS is done in phases over a period of years. Hence this assumption is not valid, but allows the user to judge the long term feasibilty of the DHS system. For closing business case computation the effects of phased realization should be taken into account. -* Pressure drops are not taken into account, a maximum flow velocity of 3 m/s is used to limit the pressure drop per meter in the pipes. +* Pressure drops are not taken into account. However, a maximum flow velocity of 3 m/s is used for each pipe. * This assumptions is sufficient when the user is still in a phase where the exact location of (booster-)pumps is to be determined and hence limiting the sizing of pipes with pressure drop calculations would not be representative. * Note that EndScenarioSizingHeadLoss can be used when the user wants the pressure drop functionality. * Investment costs are not discounted and all assets depreciate to zero over the system lifetime. diff --git a/docs/theory/asset_sizing.rst b/docs/theory/asset_sizing.rst index 3f2fca8d3..ce6af0144 100644 --- a/docs/theory/asset_sizing.rst +++ b/docs/theory/asset_sizing.rst @@ -29,7 +29,7 @@ For the sizing MESIDO supports three general methods, which can be applied to di Continious Sizing ----------------- -If an asset is continuously sized, the max size variable :math:`x^{a}_{max}` must if given to be larger than the state, :math:`x^{a}`, (e.g. power) with which the size scales. +If an asset is continuously sized then the max size variable, :math:`x^{a}_{max}`, must be larger than the state, :math:`x^{a}`, (e.g. power) for every time step. .. math:: :label: eq:limit_power_ates diff --git a/docs/theory/heat_physics.rst b/docs/theory/heat_physics.rst index 4dbb5162f..266295532 100644 --- a/docs/theory/heat_physics.rst +++ b/docs/theory/heat_physics.rst @@ -3,7 +3,7 @@ Heat Physics ============ -Mesido models thermal power (:math:`\dot{Q}`), volumetric flow (:math:`\dot{V}`), and head (:math:`H`) for DHS systems. +MESIDO models thermal power (:math:`\dot{Q}`), volumetric flow (:math:`\dot{V}`), and head (:math:`H`) for DHS systems. These variables are modelled over all timesteps :math:`K` and for each asset in the system :math:`A`. An asset :math:`a \in A` in the system is modelled using a set of in-ports, denoted by :math:`I^a_{in} \neq \emptyset`, and a set of out-ports, denoted by :math:`I^a_{out} \neq \emptyset`, with :math:`I^a` denoting the union of these two sets. For an asset :math:`a` the three variables :math:`\dot{Q}_i, \dot{V}_i`, and :math:`H_i` denote the thermal power, volumetric flow and head for port :math:`i \in I^a`. For readability, the variables and equations of the model, given below, are defined without indexing the variables and sets for each timestep. @@ -155,7 +155,7 @@ Although the constraints by themselves will not guarantee a physically feasible Schematic visualization of how the linear constraints are fitted to the head loss curve. This method with linear inequalities is only valid when every unique route the flow can take in the network has a control valve to compensate non-physical head loss induced by the optimizer. -Alternatively a (piece-wise) linear equality constraint between min and max flow-rate can be configured for cases where this assumption is invalid. +Alternatively a (piece-wise) linear equality constraint between min and max flow rate can be configured for cases where this assumption is invalid. KOBUS CAN YOU WRITE OUT THE EQUATIONS FOR THIS. @@ -213,7 +213,7 @@ The source adds thermal power to the network. The energy balance is given by :eq:`eq:general_energy_balance` where :math:`\dot{Q}^a_{consumed}` is equal to the (negative) value of the produced heat. The addition of energy is executed by increasing the temperature of the incoming water (the return network) to the outgoing supply temperature. -Therefore, the volumetric flow-rate is linked to the outgoing thermal power with the outgoing supply temperature with equality constraints: +Therefore, the volumetric flow rate is linked to the outgoing thermal power with the outgoing supply temperature with equality constraints: .. math:: @@ -232,7 +232,7 @@ The overestimation of the thermal power required will induce an overestimation o The source is assumed to act within one hydraulically coupled network, :eq:`eq:flow_balance`. -A source is modelled with a pump to reach its desired flow-rate and head: +A source is modelled with a pump to reach its desired flow rate and head: .. math:: :label: eq:source_pump_dh From 1dcf925f1b16854d7379c52ee300947c5502ac7b Mon Sep 17 00:00:00 2001 From: Femke Janssen Date: Fri, 24 May 2024 17:39:33 +0200 Subject: [PATCH 130/275] fixed typos in heat_physics --- docs/theory/heat_physics.rst | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/theory/heat_physics.rst b/docs/theory/heat_physics.rst index 266295532..44d952765 100644 --- a/docs/theory/heat_physics.rst +++ b/docs/theory/heat_physics.rst @@ -11,13 +11,13 @@ The equations below are assumed to hold for every timestep, unless otherwise spe Modelling specifically these three variables allows to ensure a hydraulically feasible solution whilst linearizing the physics. Energy changes are modelled with the assumption of a constant temperature throughout the network. -Although this assumption is not realistic, the linearization made will show that the effects of these assumptions are relatively small and conservative to the objective function outcome. +Although this assumption is not realistic, the linearizations made will show that the effects of these assumptions are relatively small and conservative to the objective function outcome. General Physics --------------- The DHS is modelled as a closed loop system and thus at every timestep and for every asset, mass balance should hold. -The system is modeled with constant temperature and thus constant density and specific heat. +The system is modelled with constant temperature and thus constant density and specific heat. The mass balance is provided as a volumetric flow balance in :eq:`eq:flow_balance`. .. math:: @@ -26,7 +26,7 @@ The mass balance is provided as a volumetric flow balance in :eq:`eq:flow_balanc \sum_{i \in I^a} \dot{V}_{i} = 0 \;\; \forall a \in A -To garuantee energy balance :eq:`eq:general_energy_balance` is applied. +The energy balance is guaranteed by :eq:`eq:general_energy_balance`. .. math:: :label: eq:general_energy_balance @@ -34,7 +34,7 @@ To garuantee energy balance :eq:`eq:general_energy_balance` is applied. \sum_{i \in I} \dot{Q}_i + \dot{Q}^a_{consumed} = 0 \;\; \forall a \in A :math:`\dot{Q}^a_{consumed}` is the thermal power consumed by asset :math:`a`. -The power losses for the asset are included in this variable. Furthermore, the convention that positive consumed power is equal to thermal power production of an asset. +The power losses for the asset are included in this variable. Furthermore, the convention is that positive consumed thermal power is equal to thermal power production of an asset. Network Physics --------------- @@ -95,12 +95,12 @@ where \dot{Q}_{i} - \delta_{discon}M \leq 0 \;\; \forall i \in I^a \;\; \forall a \in A_{pipes}. -Here :math:`M` is a sufficiently large constant used in a method called the big-M method :cite:`vielma2015mixed`. +Here :math:`M` is a sufficiently large constant used in a method called the big-M method :cite:`vielma2015mixed` to enable or disable a constraint. The thermal power loss is assumed to be constant as the pipe temperature is assumed to be constant. The outgoing temperatures at the assets (e.g. supply at the source and return at the demand) are used to ensure an overestimation of the thermal loss. In reality the temperature w.r.t. the ambient decreases as the temperature drops over the pipe with the energy loss. -Typical temperature drops in the primary network are up to 3 degrees, this implies that for medium temperature networks, operating at 75 degrees and with an ambient of 15 degrees, the error for the heat loss estimation is less than :math:`\frac{3}{75-15} \approx 5\%`. +Typical temperature drops in the primary network are up to 3 degrees, this implies that for medium temperature networks, operating at 75°C and with an ambient of 15°C, the error for the heat loss estimation is less than :math:`\frac{3}{75-15} \approx 5\%`. Inequality constraints are used to relate the volumetric flow :math:`\dot{V}` and the heat flow :math:`\dot{Q}` through pipes as a compensation of heat losses is required. Please note that the :math:`\dot{V}` and the heat flow :math:`\dot{Q}` will be related by equality constraints for the outgoing flow at the assets, ensuring that the thermal power propagates correctly through the network. @@ -194,7 +194,7 @@ Node The node conserves the flow with :eq:`eq:flow_balance` and the energy with :eq:`eq:general_energy_balance`. -All heads connected to the node must be equal to ensure hydraulically feasible solution: +The head of all pipes connected to the node must be equal to ensure a hydraulically feasible solution: .. math:: :label: eq:node_head @@ -254,11 +254,11 @@ an equality constraint relates outgoing thermal power with volumetric flow: where :math:`A_{demand}` is the set of demand assets. -The combination of constraints ate the producers and demands, results in a smaller achieved temperature difference at the demand than the difference between the given temperatures for the supply and return side, and a larger achieved temperature difference at the producer. +The combination of constraints a the producers and demands, results in a smaller achieved temperature difference at the demand than the difference between the given temperatures for the supply and return side, and a larger achieved temperature difference at the producer. -Similar as for the source the demand acts within one hydraulically coupled system under the same assumptions, see :eq:`eq:flow_balance`. +Similar as for the source, the demand acts within one hydraulically coupled system under the same assumptions, see :eq:`eq:flow_balance`. -Every demand is modelled with a control valve to regulate its flow. In reality a minimum head loss is be maintained is ofter maintained: +Every demand is modelled with a control valve to regulate its flow. In reality a minimum head loss is often maintained: .. math:: :label: eq:demand_head @@ -277,14 +277,14 @@ Storage assets add time flexibility with the production and consumption of therm \dot{Q}^{a}_{consumed} = \sum_{i \in I^a_{in}} \dot{Q}^{a}_{i} - \sum_{i \in I^a_{out}} \dot{Q}^{a}_{i} - \dot{Q}^{a}_{loss} \;\; \forall a \in A_{storage}. -The consumed heat of the storage assets is equated to the change change in stored heat, :math:`\dot{Q}^{a}_{stored}`: +The consumed heat of the storage assets is equated to the change in stored heat, :math:`\dot{Q}^{a}_{stored}`: .. math:: :label: eq:stored_heat \dot{Q}^{a}_{consumed} = \dot{Q}^{a}_{stored} \;\; \forall a \in A_{storage} -Like the source and demand assets the storage needs equality constraints relating the outgoing flow to the thermal power. +Like the source and demand assets, the storage needs equality constraints relating the outgoing flow to the thermal power. Unlike the demand and source the outgoing flow can be either on the in or out port depending whether the storage is charging or discharging. The default convention is that charging indicates positive flow, therefore :math:`\delta_{dir}` can be used as an integer for charging/discharging. Equations :eq:`eq:storage_heat2discharge1` and :eq:`eq:storage_heat2discharge2` are active during charging, and during discharging, @@ -343,8 +343,8 @@ Two HT-ATES modelling methods are available. The first approximation for heat lo The second method: COMING SOON... -Similarly as for the other assets the storage assets are assumed to act within the hydraulically coupled system, -nonetheless the volumetric flow balance requires additional equations. +Similarly as for the other assets, the storage assets are assumed to act within the hydraulically coupled system; +nonetheless, the volumetric flow balance requires additional equations. The storage is modelled as an asset with a hot and cold volume. The total volume will be conserved by the in- and outflow at the storage. From a768df8274b5800b02813959d4fcbe6dc1480a2b Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 27 May 2024 12:00:33 +0200 Subject: [PATCH 131/275] head loss docs update --- docs/theory/heat_physics.rst | 44 ++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/docs/theory/heat_physics.rst b/docs/theory/heat_physics.rst index 44d952765..e3a4b9990 100644 --- a/docs/theory/heat_physics.rst +++ b/docs/theory/heat_physics.rst @@ -143,23 +143,7 @@ The head loss, :math:`dH` must be compensated by pumps which are assumed to be l Steady-state head losses can be closely modelled with a quadratic relation w.r.t. :math:`\dot{V}`. A set of linear inequalities is used, see :numref:`inequalitydH`, to approximate the quadratic curve. -The general form of the inequalities is given below in :eq:`eq:pipe_head_loss1`-:eq:`eq:pipe_hp2` These inequalities force the head loss to be greater or equal to the approximated quadratic curve. -Although the constraints by themselves will not guarantee a physically feasible answer, the optimization will in drag the solution to an equality constraint as the objective function will minimize cost which reduces with lower pressure drop. - -.. _inequalitydH: - -.. figure:: ../images/linearlines.png - :figwidth: 6.94792in - :align: center - - Schematic visualization of how the linear constraints are fitted to the head loss curve. - -This method with linear inequalities is only valid when every unique route the flow can take in the network has a control valve to compensate non-physical head loss induced by the optimizer. -Alternatively a (piece-wise) linear equality constraint between min and max flow rate can be configured for cases where this assumption is invalid. - -KOBUS CAN YOU WRITE OUT THE EQUATIONS FOR THIS. - -Note that the big M method is used with the flow direction and disconnected integers to allow for modelling of bi-directional flow and the ability to disconnect pipes. +The general form of the inequalities is given below in :eq:`eq:pipe_head_loss1`-:eq:`eq:pipe_head_loss2`. Note that the big M method is used with the flow direction and disconnected integers to allow for modelling of bi-directional flow and the ability to disconnect pipes. .. math:: :label: eq:pipe_head_loss1 @@ -173,6 +157,17 @@ Note that the big M method is used with the flow direction and disconnected inte Where :math:`(\alpha_j, \beta_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. +These inequalities force the head loss to be greater or equal to the approximated quadratic curve. +Although the constraints by themselves will not guarantee a physically feasible answer, the optimization will in drag the solution to an equality constraint as the objective function will minimize cost which reduces with lower pressure drop. + +.. _inequalitydH: + +.. figure:: ../images/linearlines.png + :figwidth: 6.94792in + :align: center + + Schematic visualization of how the linear constraints are fitted to the head loss curve. + Similar as with head loss the hydraulic power, :math:`HP^a`, required to overcome the head losses is modelled with a set of linear inequalities: .. math:: @@ -189,6 +184,21 @@ Similar as with head loss the hydraulic power, :math:`HP^a`, required to overcom Here :math:`(c_j, d_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. +The method with linear inequalities, as represented above, is only valid when each possible unique flow path route in the network has a control valve to compensate non-physical head loss induced by the optimizer. Alternatively a (piece-wise) linear equality constraint between min and max flow rate can be configured for cases where this assumption is invalid, with the general form represented by :eq:`eq:pipe_head_loss3`-:eq:`eq:pipe_head_loss4`. + +.. math:: + :label: eq:pipe_head_loss3 + + dH - (\alpha_j \dot{V} + \beta_j) + (\delta^a_{discon} + (1-\delta^a_{dir}) + (1 - \delta^a_{line\_seg}))M\geq 0 \\ \delta^a_{line\_seg} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, + +.. math:: + :label: eq:pipe_head_loss4 + + dH - (\alpha_j\dot{V} + \beta_j) - (\delta^a_{discon} + \delta^a_{dir} + (1 - \delta^a_{line\_seg}))M\leq 0 \\ \delta^a_{line\_seg} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}. + +Where :math:`(\alpha_j, \beta_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. Variable :math:`\delta_{line\_seg}` reperesents an integer value indicating if a linear line segment is active (value = 1) or not (value = 0). + + Node ~~~~ From f0b8f6337a24212331bd17683ac85088665b0f78 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 28 May 2024 09:22:46 +0200 Subject: [PATCH 132/275] Docs: Feedback to comments + update/inlcude head losses --- docs/theory/heat_physics.rst | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/docs/theory/heat_physics.rst b/docs/theory/heat_physics.rst index e3a4b9990..5cb8b0871 100644 --- a/docs/theory/heat_physics.rst +++ b/docs/theory/heat_physics.rst @@ -34,7 +34,7 @@ The energy balance is guaranteed by :eq:`eq:general_energy_balance`. \sum_{i \in I} \dot{Q}_i + \dot{Q}^a_{consumed} = 0 \;\; \forall a \in A :math:`\dot{Q}^a_{consumed}` is the thermal power consumed by asset :math:`a`. -The power losses for the asset are included in this variable. Furthermore, the convention is that positive consumed thermal power is equal to thermal power production of an asset. +The power losses for the asset are included in this variable. Network Physics --------------- @@ -148,12 +148,12 @@ The general form of the inequalities is given below in :eq:`eq:pipe_head_loss1`- .. math:: :label: eq:pipe_head_loss1 - dH - (\alpha_j \dot{V} + \beta_j) + (\delta^a_{discon} + 1-\delta^a_{dir})M\geq 0 \\ \forall (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, + dH - (\alpha_j \dot{V} + \beta_j) + (\delta^a_{discon} + \delta^a_{dir})M\geq 0 \\ \forall (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, .. math:: :label: eq:pipe_head_loss2 - dH - (\alpha_j\dot{V} + \beta_j) - (\delta^a_{discon} + \delta^a_{dir})M\leq 0 \\ \forall (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}. + dH + (\alpha_j\dot{V} + \beta_j) - (\delta^a_{discon} + (1-\delta^a_{dir}))M\leq 0 \\ \forall (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}. Where :math:`(\alpha_j, \beta_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. @@ -184,19 +184,29 @@ Similar as with head loss the hydraulic power, :math:`HP^a`, required to overcom Here :math:`(c_j, d_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. -The method with linear inequalities, as represented above, is only valid when each possible unique flow path route in the network has a control valve to compensate non-physical head loss induced by the optimizer. Alternatively a (piece-wise) linear equality constraint between min and max flow rate can be configured for cases where this assumption is invalid, with the general form represented by :eq:`eq:pipe_head_loss3`-:eq:`eq:pipe_head_loss4`. +The method with linear inequalities, as represented above, is only valid when each possible unique flow path route in the network has a control valve to compensate non-physical head loss induced by the optimizer. Alternatively a (piece-wise) linear equality constraint between min and max flow rate can be configured for cases where this assumption is invalid, with the general form represented by :eq:`eq:pipe_head_loss3`-:eq:`eq:pipe_head_loss6`. .. math:: :label: eq:pipe_head_loss3 - dH - (\alpha_j \dot{V} + \beta_j) + (\delta^a_{discon} + (1-\delta^a_{dir}) + (1 - \delta^a_{line\_seg}))M\geq 0 \\ \delta^a_{line\_seg} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, + dH - (\alpha_j \dot{V} + \beta_j) + (\delta^a_{discon} + \delta^a_{dir} + (1 - \delta^a_{line\_seg_{k}}))M\geq 0 \\ \delta^a_{line\_seg_{k}} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, .. math:: :label: eq:pipe_head_loss4 - dH - (\alpha_j\dot{V} + \beta_j) - (\delta^a_{discon} + \delta^a_{dir} + (1 - \delta^a_{line\_seg}))M\leq 0 \\ \delta^a_{line\_seg} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}. + dH - (\alpha_j\dot{V} + \beta_j) - (\delta^a_{discon} - \delta^a_{dir} + (1 - \delta^a_{line\_seg_{k}}))M\geq 0 \\ \delta^a_{line\_seg_{k}} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, -Where :math:`(\alpha_j, \beta_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. Variable :math:`\delta_{line\_seg}` reperesents an integer value indicating if a linear line segment is active (value = 1) or not (value = 0). +.. math:: + :label: eq:pipe_head_loss5 + + dH + (\alpha_j \dot{V} + \beta_j) - (\delta^a_{discon} + (1 - \delta^a_{dir}) + (1 - \delta^a_{line\_seg_{k}}))M\leq 0 \\ \delta^a_{line\_seg_{k}} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, + +.. math:: + :label: eq:pipe_head_loss6 + + dH + (\alpha_j\dot{V} + \beta_j) + (\delta^a_{discon} - (1-\delta^a_{dir}) + (1 - \delta^a_{line\_seg_{k}}))M\leq 0 \\ \delta^a_{line\_seg_{k}} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}. + +Where :math:`(\alpha_j, \beta_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. Variable :math:`\delta^a_{line\_seg_{k}}` reperesents an integer, for pipe :math:`a`, value indicating if a linear line segment :math:`k` is active (value = 1) or not (value = 0). This would imply that if a quadratic curve is represented by 3 linear lines for instance, then only 1 of the linear lines are appplicable at a specific timestep. Node @@ -264,7 +274,7 @@ an equality constraint relates outgoing thermal power with volumetric flow: where :math:`A_{demand}` is the set of demand assets. -The combination of constraints a the producers and demands, results in a smaller achieved temperature difference at the demand than the difference between the given temperatures for the supply and return side, and a larger achieved temperature difference at the producer. +The combination of constraints at the producers and demands, results in a smaller achieved temperature difference at the demand than the difference between the given temperatures for the supply and return side, and a larger achieved temperature difference at the producer due to pipe heat losses. Similar as for the source, the demand acts within one hydraulically coupled system under the same assumptions, see :eq:`eq:flow_balance`. @@ -336,11 +346,6 @@ The efficiency factor is approximated assuming that tanks are cylindrical and lo For cylindrical tanks their surface area approximately increases linearly with the stored heat. A radiation coefficient, :math:`c_r`, of 1 :math:`W/m^2` is used as an approximation. -.. math:: - :label: eq:etatank - - \beta_{tank} = \frac{2c_r}{r\rho c_p} - HT-ATES ^^^^^^^ From 6e2b299195aaf6b1375299adf0630ba7f4b3796f Mon Sep 17 00:00:00 2001 From: Femke Janssen Date: Tue, 28 May 2024 09:41:29 +0200 Subject: [PATCH 133/275] fixed demand matching and use of HP to allows the wko stored_heat to have any initial value, but keeping cyclic constraint active, thus ensuring initial value is equal to final timestep --- tests/test_cold_demand.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 858079657..3cf0b7b13 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -98,6 +98,11 @@ def test_wko(self): base_folder = Path(example.__file__).resolve().parent.parent class HeatingCoolingProblem(HeatProblem): + # def energy_system_options(self): + # options = super().energy_system_options() + # options["neglect_pipe_heat_losses"] = True + # return options + def constraints(self, ensemble_member): constraints = super().constraints(ensemble_member) @@ -112,7 +117,7 @@ def constraints(self, ensemble_member): stored_heat = self.state_vector(f"{a}.Stored_heat") constraints.append(((stored_heat[-1] - stored_heat[0]), 0.0, 0.0)) # This was added to force the heatpump to start loading the WKO 1st 3 timesteps - constraints.append((stored_heat[0], 0.0, 0.0)) + # constraints.append((stored_heat[0], 0.0, 0.0)) # TODO: confirm if the yearly balance between warm and cold well is heat / flow # related? @@ -155,7 +160,7 @@ def constraints(self, ensemble_member): np.testing.assert_allclose( results["ATES_226d.Stored_heat"][0], results["ATES_226d.Stored_heat"][-1] ) - np.testing.assert_allclose(results["ATES_226d.Stored_heat"][0], 0.0) + # np.testing.assert_allclose(results["ATES_226d.Stored_heat"][0], 0.0) # Heat pump does not switch on to start loading the WKO. # Is this intended for some reason Femke? From 2e826ea200c7f66981d5ba8df16810e656b1320c Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 28 May 2024 11:33:05 +0200 Subject: [PATCH 134/275] Bug fix and updated test case: pipe DN update in esdl --- ...oC Tutorial_GrowOptimized_esdl_string.esdl | 442 ++++++++++++++++++ src/mesido/workflows/io/write_output.py | 8 +- tests/test_updated_esdl_post_process.py | 4 + 3 files changed, 450 insertions(+), 4 deletions(-) create mode 100644 examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_esdl_string.esdl diff --git a/examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_esdl_string.esdl b/examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_esdl_string.esdl new file mode 100644 index 000000000..4a82c6e6b --- /dev/null +++ b/examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_esdl_string.esdl @@ -0,0 +1,442 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 97fb8e31f..c7b64611c 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -814,12 +814,12 @@ def _name_to_asset(name): # When a pipe has not been optimized, enforce pipe to be shown in the simulator # ESDL. if not pipe_classes: - if optimizer_sim: + if not optimizer_sim: continue else: asset.state = esdl.AssetStateEnum.ENABLED - if optimizer_sim: + if not optimizer_sim: pipe_class = self.get_optimized_pipe_class(pipe) cold_pipe = self.hot_to_cold_pipe(pipe) @@ -831,7 +831,7 @@ def _name_to_asset(name): # print(pipe + " has pipeclass: " + pipe_class.name ) # print(pipe + f" has diameter: " + pipe_class.name) - if optimizer_sim: + if not optimizer_sim: assert isinstance(pipe_class, EDRPipeClass) asset_edr = esh_edr.load_from_string(pipe_class.xml_string) @@ -849,7 +849,7 @@ def _name_to_asset(name): except UnboundLocalError: pass - if optimizer_sim: + if not optimizer_sim: for prop in edr_pipe_properties_to_copy: setattr(asset, prop, getattr(asset_edr, prop)) else: diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 8a36f2d0b..f041ad30c 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -139,6 +139,10 @@ def test_updated_esdl(self): # Check pipe diameter if len(fnmatch.filter([energy_system.instance[0].area.asset[ii].id], "Pipe*")) == 1: + if asset_name in ["Pipe1", "Pipe1_ret"]: # original pipe DN400 being sized + np.testing.assert_array_equal( + energy_system.instance[0].area.asset[ii].diameter.name, "DN150" + ) if asset_name not in ["Pipe4", "Pipe4_ret", "Pipe5", "Pipe5_ret"]: np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].diameter.name, "DN400" From 8e0fdb4312962b60550ed28d7c36529d4f186a0f Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 28 May 2024 11:35:34 +0200 Subject: [PATCH 135/275] Remove optimized result esdl file --- ...oC Tutorial_GrowOptimized_esdl_string.esdl | 442 ------------------ 1 file changed, 442 deletions(-) delete mode 100644 examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_esdl_string.esdl diff --git a/examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_esdl_string.esdl b/examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_esdl_string.esdl deleted file mode 100644 index 4a82c6e6b..000000000 --- a/examples/PoCTutorial/model/PoC Tutorial_GrowOptimized_esdl_string.esdl +++ /dev/null @@ -1,442 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From f81e7c53f450dc0eae11b875bd2ab686d6f378f8 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 28 May 2024 11:38:43 +0200 Subject: [PATCH 136/275] Update: ignore updated esdl file string file & added ignore *_fj_* --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 77c03b191..d01bc1ee7 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,9 @@ src/*.egg-info run_pipe_compare.py *_kvr_* .venv/ +# Femke Janssen +*_fj_* # Ignore ESDL files created by workflows *_GrowOptimized.esdl +*_GrowOptimized_esdl_string.esdl *_Simulation.esdl From 86c4b558fe68cc59367dcadb96c4f7f65490fd2f Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 28 May 2024 11:46:10 +0200 Subject: [PATCH 137/275] Formtting in test case --- tests/test_updated_esdl_post_process.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index f041ad30c..e53c05c6f 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -139,20 +139,20 @@ def test_updated_esdl(self): # Check pipe diameter if len(fnmatch.filter([energy_system.instance[0].area.asset[ii].id], "Pipe*")) == 1: - if asset_name in ["Pipe1", "Pipe1_ret"]: # original pipe DN400 being sized + if asset_name in ["Pipe1", "Pipe1_ret"]: np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].diameter.name, "DN150" - ) - if asset_name not in ["Pipe4", "Pipe4_ret", "Pipe5", "Pipe5_ret"]: + ) # original pipe DN400 being sized + elif asset_name not in ["Pipe4", "Pipe4_ret", "Pipe5", "Pipe5_ret"]: np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].diameter.name, "DN400" - ) + ) # pipe DN was not sized and should be the same as specified in the ESDL else: np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].diameter.name, "DN300", err_msg=f"Asset name {asset_name} was not expected in the ESDL", - ) + ) # pipe DN was not sized and should be the same as specified in the ESDL # Check aggregation count np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].aggregationCount, From 6422ee627a16233b31bcac165124084ec1afeff4 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 28 May 2024 14:06:22 +0200 Subject: [PATCH 138/275] Equation update --- docs/theory/heat_physics.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/theory/heat_physics.rst b/docs/theory/heat_physics.rst index 5cb8b0871..1b2e54741 100644 --- a/docs/theory/heat_physics.rst +++ b/docs/theory/heat_physics.rst @@ -194,7 +194,7 @@ The method with linear inequalities, as represented above, is only valid when ea .. math:: :label: eq:pipe_head_loss4 - dH - (\alpha_j\dot{V} + \beta_j) - (\delta^a_{discon} - \delta^a_{dir} + (1 - \delta^a_{line\_seg_{k}}))M\geq 0 \\ \delta^a_{line\_seg_{k}} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, + dH - (\alpha_j\dot{V} + \beta_j) - (\delta^a_{discon} + \delta^a_{dir} + (1 - \delta^a_{line\_seg_{k}}))M\leq 0 \\ \delta^a_{line\_seg_{k}} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, .. math:: :label: eq:pipe_head_loss5 @@ -204,7 +204,7 @@ The method with linear inequalities, as represented above, is only valid when ea .. math:: :label: eq:pipe_head_loss6 - dH + (\alpha_j\dot{V} + \beta_j) + (\delta^a_{discon} - (1-\delta^a_{dir}) + (1 - \delta^a_{line\_seg_{k}}))M\leq 0 \\ \delta^a_{line\_seg_{k}} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}. + dH + (\alpha_j\dot{V} + \beta_j) + (\delta^a_{discon} + (1-\delta^a_{dir}) + (1 - \delta^a_{line\_seg_{k}}))M\geq 0 \\ \delta^a_{line\_seg_{k}} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}. Where :math:`(\alpha_j, \beta_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. Variable :math:`\delta^a_{line\_seg_{k}}` reperesents an integer, for pipe :math:`a`, value indicating if a linear line segment :math:`k` is active (value = 1) or not (value = 0). This would imply that if a quadratic curve is represented by 3 linear lines for instance, then only 1 of the linear lines are appplicable at a specific timestep. From 94094fd64e8972e35f9777b5356d33bced82c186 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 29 May 2024 09:59:05 +0200 Subject: [PATCH 139/275] spelling fix --- docs/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.rst b/docs/index.rst index 0b3c4c726..56010bbee 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,5 +1,5 @@ -Multi-Energy-Systems Integrated Desing and Operations Documentation +Multi-Energy-Systems Integrated Design and Operations Documentation =================================================================== This is the documentation for MESIDO. From 1b2890bcbc613e4691ebdf373d555b13214ea2d9 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 29 May 2024 15:33:50 +0200 Subject: [PATCH 140/275] Fix docs spelling mistake --- docs/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.rst b/docs/index.rst index 0b3c4c726..56010bbee 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,5 +1,5 @@ -Multi-Energy-Systems Integrated Desing and Operations Documentation +Multi-Energy-Systems Integrated Design and Operations Documentation =================================================================== This is the documentation for MESIDO. From 3d075ce8a811d411bb99a16595f05b87916b0346 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 29 May 2024 15:51:26 +0200 Subject: [PATCH 141/275] manual fix bug optimized pipe dn not updated in esdl --- .gitignore | 3 +++ src/mesido/workflows/io/write_output.py | 8 ++++---- tests/test_updated_esdl_post_process.py | 10 +++++++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 77c03b191..d01bc1ee7 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,9 @@ src/*.egg-info run_pipe_compare.py *_kvr_* .venv/ +# Femke Janssen +*_fj_* # Ignore ESDL files created by workflows *_GrowOptimized.esdl +*_GrowOptimized_esdl_string.esdl *_Simulation.esdl diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 17a824388..15895c756 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -814,12 +814,12 @@ def _name_to_asset(name): # When a pipe has not been optimized, enforce pipe to be shown in the simulator # ESDL. if not pipe_classes: - if optimizer_sim: + if not optimizer_sim: continue else: asset.state = esdl.AssetStateEnum.ENABLED - if optimizer_sim: + if not optimizer_sim: pipe_class = self.get_optimized_pipe_class(pipe) cold_pipe = self.hot_to_cold_pipe(pipe) @@ -831,7 +831,7 @@ def _name_to_asset(name): # print(pipe + " has pipeclass: " + pipe_class.name ) # print(pipe + f" has diameter: " + pipe_class.name) - if optimizer_sim: + if not optimizer_sim: assert isinstance(pipe_class, EDRPipeClass) asset_edr = esh_edr.load_from_string(pipe_class.xml_string) @@ -849,7 +849,7 @@ def _name_to_asset(name): except UnboundLocalError: pass - if optimizer_sim: + if not optimizer_sim: for prop in edr_pipe_properties_to_copy: setattr(asset, prop, getattr(asset_edr, prop)) else: diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 8a36f2d0b..e53c05c6f 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -139,16 +139,20 @@ def test_updated_esdl(self): # Check pipe diameter if len(fnmatch.filter([energy_system.instance[0].area.asset[ii].id], "Pipe*")) == 1: - if asset_name not in ["Pipe4", "Pipe4_ret", "Pipe5", "Pipe5_ret"]: + if asset_name in ["Pipe1", "Pipe1_ret"]: + np.testing.assert_array_equal( + energy_system.instance[0].area.asset[ii].diameter.name, "DN150" + ) # original pipe DN400 being sized + elif asset_name not in ["Pipe4", "Pipe4_ret", "Pipe5", "Pipe5_ret"]: np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].diameter.name, "DN400" - ) + ) # pipe DN was not sized and should be the same as specified in the ESDL else: np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].diameter.name, "DN300", err_msg=f"Asset name {asset_name} was not expected in the ESDL", - ) + ) # pipe DN was not sized and should be the same as specified in the ESDL # Check aggregation count np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].aggregationCount, From ac6b1d3e93ceee01bf5d3297bef89c02f76f9cb5 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 14 Jun 2024 14:27:42 +0200 Subject: [PATCH 142/275] Decrease computational time heat_physics pre(): - use set data structure instead of a list --- src/mesido/asset_sizing_mixin.py | 10 ++++++---- src/mesido/heat_physics_mixin.py | 8 ++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/mesido/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py index 1d9d8848a..e5d851262 100644 --- a/src/mesido/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -491,6 +491,7 @@ def pre(self): pipe_class_cost_ordering_name ] = (0.0, 1.0) + set_self_hot_pipes = set(self.hot_pipes) for pipe in self.energy_system_components.get("heat_pipe", []): pipe_classes = self.pipe_classes(pipe) # cold_pipe = self.hot_to_cold_pipe(pipe) @@ -679,7 +680,7 @@ def pre(self): for c in pipe_classes: neighbour = self.has_related_pipe(pipe) - if neighbour and pipe not in self.hot_pipes: + if neighbour and pipe not in set_self_hot_pipes: cold_pipe = self.cold_to_hot_pipe(pipe) pipe_class_var_name = f"{cold_pipe}__hn_pipe_class_{c.name}" pipe_class_ordering_name = ( @@ -1282,6 +1283,7 @@ def __pipe_topology_constraints(self, ensemble_member): unique_pipe_classes = self.get_unique_pipe_classes() pipe_class_count_sum = {pc.name: 0 for pc in unique_pipe_classes} + set_self_hot_pipes = set(self.hot_pipes) for p in self.energy_system_components.get("heat_pipe", []): try: pipe_classes = self._heat_pipe_topo_pipe_class_map[p] @@ -1290,7 +1292,7 @@ def __pipe_topology_constraints(self, ensemble_member): else: for pc in pipe_classes: neighbour = self.has_related_pipe(p) - if neighbour and p not in self.hot_pipes: + if neighbour and p not in set_self_hot_pipes: var_name = f"{self.cold_to_hot_pipe(p)}__hn_pipe_class_{pc.name}" else: var_name = f"{p}__hn_pipe_class_{pc.name}" @@ -1373,7 +1375,7 @@ def __pipe_topology_constraints(self, ensemble_member): pipe, pipe_classes, ) in self.__heat_pipe_topo_pipe_class_heat_loss_ordering_map.items(): - if pipe in self.hot_pipes and self.has_related_pipe(pipe): + if pipe in set_self_hot_pipes and self.has_related_pipe(pipe): heat_loss_sym_name = self._pipe_heat_loss_map[pipe] heat_loss_sym = self.extra_variable(heat_loss_sym_name, ensemble_member) cold_name = self._pipe_heat_loss_map[self.hot_to_cold_pipe(pipe)] @@ -1385,7 +1387,7 @@ def __pipe_topology_constraints(self, ensemble_member): self._pipe_heat_losses[self.hot_to_cold_pipe(pipe)], ) ] - elif pipe in self.hot_pipes and not self.has_related_pipe(pipe): + elif pipe in set_self_hot_pipes and not self.has_related_pipe(pipe): heat_loss_sym_name = self._pipe_heat_loss_map[pipe] heat_loss_sym = self.extra_variable(heat_loss_sym_name, ensemble_member) diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 5eee05803..b30e69df1 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -245,6 +245,10 @@ def _get_min_bound(bound): bounds = self.bounds() + # Set structure used instead of list. Purpose: to make lookup faster when there are many + # pipes in the network. + set_self_hot_pipes = set(self.hot_pipes) + for pipe_name in self.energy_system_components.get("heat_pipe", []): head_loss_var = f"{pipe_name}.__head_loss" initialized_vars = self._hn_head_loss_class.initialize_variables_nominals_and_bounds( @@ -290,7 +294,7 @@ def _get_min_bound(bound): ] = initialized_vars[10][pipe_linear_line_segment_var_name] neighbour = self.has_related_pipe(pipe_name) - if neighbour and pipe_name not in self.hot_pipes: + if neighbour and pipe_name not in set_self_hot_pipes: flow_dir_var = f"{self.cold_to_hot_pipe(pipe_name)}__flow_direct_var" else: flow_dir_var = f"{pipe_name}__flow_direct_var" @@ -320,7 +324,7 @@ def _get_min_bound(bound): if parameters[f"{pipe_name}.disconnectable"]: neighbour = self.has_related_pipe(pipe_name) - if neighbour and pipe_name not in self.hot_pipes: + if neighbour and pipe_name not in set_self_hot_pipes: disconnected_var = f"{self.cold_to_hot_pipe(pipe_name)}__is_disconnected" else: disconnected_var = f"{pipe_name}__is_disconnected" From 42c4bf4681c3b5ea3cea822de74e4e0e32a6b658 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 14 Jun 2024 14:28:27 +0200 Subject: [PATCH 143/275] Load unique profiles from database instead of all the profiles --- src/mesido/esdl/profile_parser.py | 58 ++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index c72030497..4bb79e823 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -196,17 +196,48 @@ def _load_profiles_from_source( profiles: Dict[str, np.ndarray] = dict() logger.info("Reading profiles from InfluxDB") self._reference_datetimes = None + + # Get list of unique profiles and associated series based on specific profile attributes + unique_profiles = [] + unique_profiles_attributes = [] # a list containning lists of attributes + unique_series = [] for profile in [ x for x in self._energy_system.eAllContents() if isinstance(x, esdl.InfluxDBProfile) ]: - series = self._load_profile_timeseries_from_database(profile=profile) - self._check_profile_time_series(profile_time_series=series, profile=profile) + if [ + profile.database, + profile.field, + profile.host, + profile.startDate, + profile.endDate, + profile.measurement, + profile.port, + ] not in unique_profiles_attributes: + unique_profiles_attributes.append( + [ + profile.database, + profile.field, + profile.host, + profile.startDate, + profile.endDate, + profile.measurement, + profile.port, + ] + ) + unique_profiles.append(profile) + + unique_series.append( + self._load_profile_timeseries_from_database(profile=unique_profiles[-1]) + ) + self._check_profile_time_series( + profile_time_series=unique_series[-1], profile=unique_profiles[-1] + ) if self._reference_datetimes is None: # TODO: since the previous function ensures it's a date time index, I'm not sure # how to get rid of this type checking warning - self._reference_datetimes = series.index + self._reference_datetimes = unique_series[-1].index else: - if not all(series.index == self._reference_datetimes): + if not all(unique_series[-1].index == self._reference_datetimes): raise RuntimeError( f"Obtained a profile for asset {profile.field} with a " f"timeseries index that doesn't match the timeseries of " @@ -214,6 +245,25 @@ def _load_profiles_from_source( f"specified to be loaded for each asset covers exactly the " f"same timeseries. " ) + # Loop trough all the requried profiles in the energy system and assign the profile data: + # - series: use the unique series data, without reading from the database again + # - other profile info: get it from the specific profile + for profile in [ + x for x in self._energy_system.eAllContents() if isinstance(x, esdl.InfluxDBProfile) + ]: + index_of_unique_profile = unique_profiles_attributes.index( + [ + profile.database, + profile.field, + profile.host, + profile.startDate, + profile.endDate, + profile.measurement, + profile.port, + ] + ) + series = unique_series[index_of_unique_profile] + self._check_profile_time_series(profile_time_series=series, profile=profile) converted_dataframe = self._convert_profile_to_correct_unit( profile_time_series=series, profile=profile ) From 23855b07ed94a571d533834dcdb22527031cdc69 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 17 Jun 2024 10:10:39 +0200 Subject: [PATCH 144/275] bug fix --- src/mesido/esdl/profile_parser.py | 38 +++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index 4bb79e823..c06c731d2 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -226,25 +226,25 @@ def _load_profiles_from_source( ) unique_profiles.append(profile) - unique_series.append( - self._load_profile_timeseries_from_database(profile=unique_profiles[-1]) - ) - self._check_profile_time_series( - profile_time_series=unique_series[-1], profile=unique_profiles[-1] - ) - if self._reference_datetimes is None: - # TODO: since the previous function ensures it's a date time index, I'm not sure - # how to get rid of this type checking warning - self._reference_datetimes = unique_series[-1].index - else: - if not all(unique_series[-1].index == self._reference_datetimes): - raise RuntimeError( - f"Obtained a profile for asset {profile.field} with a " - f"timeseries index that doesn't match the timeseries of " - f"other assets. Please ensure that the profile that is " - f"specified to be loaded for each asset covers exactly the " - f"same timeseries. " - ) + unique_series.append( + self._load_profile_timeseries_from_database(profile=unique_profiles[-1]) + ) + self._check_profile_time_series( + profile_time_series=unique_series[-1], profile=unique_profiles[-1] + ) + if self._reference_datetimes is None: + # TODO: since the previous function ensures it's a date time index, I'm not sure + # how to get rid of this type checking warning + self._reference_datetimes = unique_series[-1].index + else: + if not all(unique_series[-1].index == self._reference_datetimes): + raise RuntimeError( + f"Obtained a profile for asset {profile.field} with a " + f"timeseries index that doesn't match the timeseries of " + f"other assets. Please ensure that the profile that is " + f"specified to be loaded for each asset covers exactly the " + f"same timeseries. " + ) # Loop trough all the requried profiles in the energy system and assign the profile data: # - series: use the unique series data, without reading from the database again # - other profile info: get it from the specific profile From 10fb6054f33b8fd1c98a57451884f461c43ad606 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 17 Jun 2024 11:07:48 +0200 Subject: [PATCH 145/275] Reduce demand load in network --- examples/PoCTutorial/model/PoC Tutorial.esdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/PoCTutorial/model/PoC Tutorial.esdl b/examples/PoCTutorial/model/PoC Tutorial.esdl index 04b647e30..c4f21eccf 100644 --- a/examples/PoCTutorial/model/PoC Tutorial.esdl +++ b/examples/PoCTutorial/model/PoC Tutorial.esdl @@ -318,7 +318,7 @@ - + From 614e7afafbe289ac7abe2833812c2e779721d61a Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 17 Jun 2024 11:26:32 +0200 Subject: [PATCH 146/275] update network with unique multiplier values --- examples/PoCTutorial/model/PoC Tutorial.esdl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/PoCTutorial/model/PoC Tutorial.esdl b/examples/PoCTutorial/model/PoC Tutorial.esdl index c4f21eccf..fcf030e42 100644 --- a/examples/PoCTutorial/model/PoC Tutorial.esdl +++ b/examples/PoCTutorial/model/PoC Tutorial.esdl @@ -287,7 +287,7 @@ - + @@ -347,7 +347,7 @@ - + From a4a2b09cf7b2e8d16d3bf0e4c0b2ca5662c7d73c Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 17 Jun 2024 11:32:57 +0200 Subject: [PATCH 147/275] Update test case to include checking that the correct profile is assigned per demand --- tests/test_updated_esdl_pre_process.py | 36 +++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/tests/test_updated_esdl_pre_process.py b/tests/test_updated_esdl_pre_process.py index a3dc3e3a6..5b9868d7d 100644 --- a/tests/test_updated_esdl_pre_process.py +++ b/tests/test_updated_esdl_pre_process.py @@ -5,9 +5,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.workflows import run_end_scenario_sizing +import numpy as np -class TestUpdatedESDL(TestCase): +class TestUpdatedESDL(TestCase): def test_updated_esdl(self): """ Check that the updated ESDL resulting from optmizing a network, is correct by using the @@ -15,6 +16,10 @@ def test_updated_esdl(self): string created by MESIDO. Both these resulting optimized energy systems should be identical and it is only the MESIDO esdl saving method that differs. + Additional checks: + - Check that the unique profile identification in profile_parser assigns the correct + profile + """ root_folder = str(Path(__file__).resolve().parent.parent) @@ -42,6 +47,35 @@ def test_updated_esdl(self): file.write(optimized_esdl_string) file.close() + # Check the unique profile identification in profile_parser + # Test that the correct demand profile is assigned to a demand as expected. Note that the + # demand profiles are the adapted profiles (peak-hourly, rest-5daily). Therefore the + # expected max and average hard-coded values are compared to the problem values. + np.testing.assert_allclose( + 1201200.0, # demand4_MW, multiplier 0.75 + max(problem.get_timeseries("HeatingDemand_b0ff.target_heat_demand").values), + ) + np.testing.assert_allclose( + 720720.0, # demand5_MW, multiplier 0.3 + max(problem.get_timeseries("HeatingDemand_8fbe.target_heat_demand").values), + ) + np.testing.assert_allclose( + 916316.712, # demand1_MW, multiplier 0.5 + max(problem.get_timeseries("HeatingDemand_08fd.target_heat_demand").values), + ) + np.testing.assert_allclose( + 443413.79, # demand4_MW, multiplier 0.75 + np.average(problem.get_timeseries("HeatingDemand_b0ff.target_heat_demand").values), + ) + np.testing.assert_allclose( + 266048.27, # demand5_MW, multiplier 0.3 + np.average(problem.get_timeseries("HeatingDemand_8fbe.target_heat_demand").values), + ) + np.testing.assert_allclose( + 575570.74, # demand1_MW, multiplier 0.5 + np.average(problem.get_timeseries("HeatingDemand_08fd.target_heat_demand").values), + ) + if __name__ == "__main__": import time From 2897407fcb1e44c6165e746580444cfd049de51f Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 17 Jun 2024 16:28:59 +0200 Subject: [PATCH 148/275] influxdb results update: - database name now output esdl id - simulationRun now unique id of optimization run --- src/mesido/workflows/io/write_output.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index c7b64611c..5bb33e968 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -302,8 +302,14 @@ def _write_updated_esdl(self, energy_system, optimizer_sim: bool = False): results = self.extract_results() parameters = self.parameters(0) - input_energy_system_id = energy_system.id - energy_system.id = str(uuid.uuid4()) + _ = energy_system.id # input energy system id. Kept here as not sure if still needed + energy_system.id = str(uuid.uuid4()) # output energy system id + output_energy_system_id = energy_system.id + # Currently the simulation_id is created here, but in the future this will probably move + # to account for 1 simulation/optimization/run potentialy generating more than 1 output + # energy system (ESDL) + simulation_id = str(uuid.uuid4()) # simulation (optimization/simulator etc) id + if optimizer_sim: energy_system.name = energy_system.name + "_Simulation" else: @@ -882,7 +888,7 @@ def _name_to_asset(name): port=self.influxdb_port, username=self.influxdb_username, password=self.influxdb_password, - database=input_energy_system_id, + database=output_energy_system_id, ssl=self.influxdb_ssl, verify_ssl=self.influxdb_verify_ssl, ) @@ -1103,7 +1109,7 @@ def _name_to_asset(name): end_date_time = self.io.datetimes[-1] profile_attributes = esdl.InfluxDBProfile( - database=input_energy_system_id, + database=output_energy_system_id, measurement=asset_name, field=profiles.profile_header[-1], port=self.influxdb_port, @@ -1193,7 +1199,7 @@ def _name_to_asset(name): ) optim_simulation_tag = { - "simulationRun": energy_system.id, + "simulationRun": simulation_id, "simulation_type": type(self).__name__, "assetId": asset_id, "assetName": asset_name, From ec6c470b46280e077d1e157c6e4951ffcf83dac4 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 17 Jun 2024 16:29:55 +0200 Subject: [PATCH 149/275] only write updated esdl and updated influxdb at the end of optimization (last stage) --- src/mesido/workflows/grow_workflow.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 2842bff27..c4d806232 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -1,6 +1,7 @@ import locale import logging import os +import sys import time from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin @@ -344,7 +345,20 @@ def post(self): parameters = self.parameters(0) # bounds = self.bounds() # Optimized ESDL - self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) + # Assume there are either no stages (write updated ESDL) or a 2 stages (only write final + # results on stage 2) + try: + if self._stage == 2: # When staging does exists + self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) + elif self._stage > 2: + logger.error(f"The code does not cater for a straging value of: {self._stage}") + sys.exit(1) + except AttributeError: + # Staging does not exist + self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) + except Exception: + logger.error("Unkown error occured when evaluating self._stage for _write_updated_esdl") + sys.exit(1) for d in self.energy_system_components.get("heat_demand", []): realized_demand = results[f"{d}.Heat_demand"] From 58133cfae0b6e9965cde040c35e2869989b893ee Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 19 Jun 2024 12:02:59 +0200 Subject: [PATCH 150/275] add network type check, onlu use write_updated_esdl for heat --- src/mesido/workflows/emerge.py | 3 ++- src/mesido/workflows/grow_workflow.py | 6 +++++- src/mesido/workflows/io/write_output.py | 12 +++++++++++- src/mesido/workflows/simulator_workflow.py | 5 ++++- tests/test_head_loss.py | 4 +++- tests/test_multiple_in_and_out_port_components.py | 8 ++++++-- 6 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/mesido/workflows/emerge.py b/src/mesido/workflows/emerge.py index 8020826c7..fb1c479c3 100644 --- a/src/mesido/workflows/emerge.py +++ b/src/mesido/workflows/emerge.py @@ -196,7 +196,8 @@ def post(self): super().post() # Optimized ESDL - self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) + # TODO: this code still has be to updated to cater for other network types + # self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) self._save_json = False diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 2842bff27..037ea0dd8 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -6,6 +6,7 @@ from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin from mesido.esdl.esdl_mixin import ESDLMixin from mesido.head_loss_class import HeadLossOption +from mesido.network_common import NetworkSettings from mesido.techno_economic_mixin import TechnoEconomicMixin from mesido.workflows.goals.minimize_tco_goal import MinimizeTCO from mesido.workflows.io.write_output import ScenarioOutput @@ -344,7 +345,10 @@ def post(self): parameters = self.parameters(0) # bounds = self.bounds() # Optimized ESDL - self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) + self._write_updated_esdl( + self._ESDLMixin__energy_system_handler.energy_system, + NetworkSettings.NETWORK_TYPE_HEAT, + ) for d in self.energy_system_components.get("heat_demand", []): realized_demand = results[f"{d}.Heat_demand"] diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index c7b64611c..238a4a9b2 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -16,6 +16,7 @@ import mesido.esdl.esdl_parser from mesido.constants import GRAVITATIONAL_CONSTANT from mesido.esdl.edr_pipe_class import EDRPipeClass +from mesido.network_common import NetworkSettings from mesido.techno_economic_mixin import TechnoEconomicMixin from mesido.workflows.utils.helpers import _sort_numbered @@ -296,7 +297,16 @@ def _write_html_output(self, template_name="mpc_buffer_sizing_output"): ) ) - def _write_updated_esdl(self, energy_system, optimizer_sim: bool = False): + def _write_updated_esdl( + self, + energy_system, + network_type, + optimizer_sim: bool = False, + ): + if network_type != NetworkSettings.NETWORK_TYPE_HEAT: + logger.error(f"_write_updated_esdl does not support network type: {network_type}") + sys.exit(1) + from esdl.esdl_handler import EnergySystemHandler results = self.extract_results() diff --git a/src/mesido/workflows/simulator_workflow.py b/src/mesido/workflows/simulator_workflow.py index a534d9446..185aab516 100644 --- a/src/mesido/workflows/simulator_workflow.py +++ b/src/mesido/workflows/simulator_workflow.py @@ -5,6 +5,7 @@ from mesido.esdl.esdl_mixin import ESDLMixin from mesido.head_loss_class import HeadLossOption +from mesido.network_common import NetworkSettings from mesido.techno_economic_mixin import TechnoEconomicMixin from mesido.workflows.io.write_output import ScenarioOutput from mesido.workflows.utils.adapt_profiles import ( @@ -313,7 +314,9 @@ class NetworkSimulatorHIGHS(NetworkSimulator): def post(self): super().post() self._write_updated_esdl( - self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True + self._ESDLMixin__energy_system_handler.energy_system, + NetworkSettings.NETWORK_TYPE_HEAT, + optimizer_sim=True, ) def solver_options(self): diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 43cdcbe09..41cd095e3 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -49,7 +49,9 @@ class SourcePipeSinkDW(SourcePipeSink): # def post(self): # super().post() # self._write_updated_esdl( - # self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True + # self._ESDLMixin__energy_system_handler.energy_system, + # NetworkSettings.NETWORK_TYPE_HEAT, + # optimizer_sim=True, # ) def energy_system_options(self): diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index 65c47710a..19b0ad483 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -39,7 +39,9 @@ class HeatProblemPost(HeatProblem): # def post(self): # super().post() # self._write_updated_esdl( - # self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True + # self._ESDLMixin__energy_system_handler.energy_system, + # NetworkSettings.NETWORK_TYPE_HEAT, + # optimizer_sim=True, # ) def energy_system_options(self): @@ -132,7 +134,9 @@ class HeatProblemPost(HeatProblem): # def post(self): # super().post() # self._write_updated_esdl( - # self._ESDLMixin__energy_system_handler.energy_system, optimizer_sim=True + # self._ESDLMixin__energy_system_handler.energy_system, + # NetworkSettings.NETWORK_TYPE_HEAT, + # optimizer_sim=True, # ) def energy_system_options(self): From 8f1c4edcda825b2fef207c46b7d1c4fd5c27f783 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 19 Jun 2024 12:03:59 +0200 Subject: [PATCH 151/275] bug fix write_updated_esdl: - can now update pipe info if return pipe is not "_ret" - updated test case --- examples/PoCTutorial/model/PoC Tutorial.esdl | 4 +-- src/mesido/workflows/io/write_output.py | 37 +++++++++----------- tests/test_updated_esdl_post_process.py | 6 +++- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/examples/PoCTutorial/model/PoC Tutorial.esdl b/examples/PoCTutorial/model/PoC Tutorial.esdl index 04b647e30..784f00c2e 100644 --- a/examples/PoCTutorial/model/PoC Tutorial.esdl +++ b/examples/PoCTutorial/model/PoC Tutorial.esdl @@ -33,7 +33,7 @@ - + @@ -180,7 +180,7 @@ - + diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 238a4a9b2..52cb89b9a 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -819,7 +819,8 @@ def _name_to_asset(name): esh_edr = EnergySystemHandler() - for pipe in self.hot_pipes: + for pipe in self.energy_system_components.get("heat_pipe", []): + pipe_classes = self.pipe_classes(pipe) # When a pipe has not been optimized, enforce pipe to be shown in the simulator # ESDL. @@ -831,7 +832,6 @@ def _name_to_asset(name): if not optimizer_sim: pipe_class = self.get_optimized_pipe_class(pipe) - cold_pipe = self.hot_to_cold_pipe(pipe) if parameters[f"{pipe}.diameter"] != 0.0 or any(np.abs(results[f"{pipe}.Q"]) > 1.0e-9): # if not isinstance(pipe_class, EDRPipeClass): @@ -843,29 +843,26 @@ def _name_to_asset(name): if not optimizer_sim: assert isinstance(pipe_class, EDRPipeClass) - asset_edr = esh_edr.load_from_string(pipe_class.xml_string) - for p in [pipe, cold_pipe]: - asset = _name_to_asset(p) - asset.state = esdl.AssetStateEnum.ENABLED + asset = _name_to_asset(pipe) + asset.state = esdl.AssetStateEnum.ENABLED - try: - asset.costInformation.investmentCosts.value = pipe_class.investment_costs - except AttributeError: - pass - # do nothing, in the case that no costs have been specified for the return - # pipe in the mapeditor - except UnboundLocalError: - pass + try: + asset.costInformation.investmentCosts.value = pipe_class.investment_costs + except AttributeError: + pass + # do nothing, in the case that no costs have been specified for the return + # pipe in the mapeditor + except UnboundLocalError: + pass - if not optimizer_sim: - for prop in edr_pipe_properties_to_copy: - setattr(asset, prop, getattr(asset_edr, prop)) + if not optimizer_sim: + for prop in edr_pipe_properties_to_copy: + setattr(asset, prop, getattr(asset_edr, prop)) else: - for p in [pipe, cold_pipe]: - asset = _name_to_asset(p) - asset.delete(recursive=True) + asset = _name_to_asset(pipe) + asset.delete(recursive=True) # ------------------------------------------------------------------------------------------ # Important: This code below must be placed after the "Placement" code. Reason: it relies diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index e53c05c6f..aaef69f58 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -139,7 +139,11 @@ def test_updated_esdl(self): # Check pipe diameter if len(fnmatch.filter([energy_system.instance[0].area.asset[ii].id], "Pipe*")) == 1: - if asset_name in ["Pipe1", "Pipe1_ret"]: + if asset_name in ["Pipe1"]: + np.testing.assert_array_equal( + energy_system.instance[0].area.asset[ii].diameter.name, "DN200" + ) # original pipe DN400 being sized + elif asset_name in ["Pipe1_cold_pipe"]: np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].diameter.name, "DN150" ) # original pipe DN400 being sized From 50a2a1d9453a99cf6115996206c8c4c0a70ffd8d Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 19 Jun 2024 12:59:39 +0200 Subject: [PATCH 152/275] fix test case --- tests/test_updated_esdl_post_process.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index aaef69f58..06b6f5f71 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -141,11 +141,11 @@ def test_updated_esdl(self): if len(fnmatch.filter([energy_system.instance[0].area.asset[ii].id], "Pipe*")) == 1: if asset_name in ["Pipe1"]: np.testing.assert_array_equal( - energy_system.instance[0].area.asset[ii].diameter.name, "DN200" + energy_system.instance[0].area.asset[ii].diameter.name, "DN150" ) # original pipe DN400 being sized elif asset_name in ["Pipe1_cold_pipe"]: np.testing.assert_array_equal( - energy_system.instance[0].area.asset[ii].diameter.name, "DN150" + energy_system.instance[0].area.asset[ii].diameter.name, "DN250" ) # original pipe DN400 being sized elif asset_name not in ["Pipe4", "Pipe4_ret", "Pipe5", "Pipe5_ret"]: np.testing.assert_array_equal( From ce577bb1f641dd8a0ad35496267d9631d538c6e7 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 20 Jun 2024 16:27:36 +0200 Subject: [PATCH 153/275] - Added lifetime OPEX costs to High level kpi dashboard - Updated test case & input ESDL - Updated kpi names for yearly costs --- examples/PoCTutorial/model/PoC Tutorial.esdl | 4 +- src/mesido/workflows/io/write_output.py | 142 ++++++++++++++++--- tests/test_updated_esdl_post_process.py | 92 +++++++++++- 3 files changed, 210 insertions(+), 28 deletions(-) diff --git a/examples/PoCTutorial/model/PoC Tutorial.esdl b/examples/PoCTutorial/model/PoC Tutorial.esdl index 04b647e30..8d5511647 100644 --- a/examples/PoCTutorial/model/PoC Tutorial.esdl +++ b/examples/PoCTutorial/model/PoC Tutorial.esdl @@ -11,7 +11,7 @@ - + @@ -222,7 +222,7 @@ - + diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index c7b64611c..61cfef6ea 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -321,11 +321,16 @@ def _name_to_asset(name): kpis_top_level = esdl.KPIs(id=str(uuid.uuid4())) heat_source_energy_wh = {} asset_capex_breakdown = {} - asset_opex_breakdown = {} + asset_opex_breakdown = {} # yearly cost tot_install_cost_euro = 0.0 tot_invest_cost_euro = 0.0 - tot_variable_opex_cost_euro = 0.0 - tot_fixed_opex_cost_euro = 0.0 + tot_variable_opex_cost_euro = 0.0 # yearly cost + tot_fixed_opex_cost_euro = 0.0 # yearly cost + + # over entire lifetime costs + asset_lifetime_opex_breakdown = {} + tot_lifetime_variable_opex_cost_euro = 0.0 + tot_lifetime_fixed_opex_cost_euro = 0.0 for _key, asset in self.esdl_assets.items(): asset_placement_var = self._asset_aggregation_count_var_map[asset.name] @@ -347,6 +352,10 @@ def _name_to_asset(name): results[f"{asset.name}__variable_operational_cost"][0] + results[f"{asset.name}__fixed_operational_cost"][0] ) + asset_lifetime_opex_breakdown[asset.asset_type] += ( + results[f"{asset.name}__variable_operational_cost"][0] + + results[f"{asset.name}__fixed_operational_cost"][0] + ) * asset.attributes["technicalLifetime"] tot_variable_opex_cost_euro += results[ f"{asset.name}__variable_operational_cost" @@ -354,6 +363,12 @@ def _name_to_asset(name): tot_fixed_opex_cost_euro += results[ f"{asset.name}__fixed_operational_cost" ][0] + tot_lifetime_variable_opex_cost_euro += results[ + f"{asset.name}__variable_operational_cost" + ][0] * asset.attributes["technicalLifetime"] + tot_lifetime_fixed_opex_cost_euro += results[ + f"{asset.name}__fixed_operational_cost" + ][0] * asset.attributes["technicalLifetime"] except KeyError: try: @@ -372,6 +387,10 @@ def _name_to_asset(name): results[f"{asset.name}__variable_operational_cost"][0] + results[f"{asset.name}__fixed_operational_cost"][0] ) + asset_lifetime_opex_breakdown[asset.asset_type] = ( + asset_opex_breakdown[asset.asset_type] + * asset.attributes["technicalLifetime"] + ) tot_variable_opex_cost_euro += results[ f"{asset.name}__variable_operational_cost" @@ -379,6 +398,13 @@ def _name_to_asset(name): tot_fixed_opex_cost_euro += results[ f"{asset.name}__fixed_operational_cost" ][0] + tot_lifetime_variable_opex_cost_euro += results[ + f"{asset.name}__variable_operational_cost" + ][0] * asset.attributes["technicalLifetime"] + tot_lifetime_fixed_opex_cost_euro += results[ + f"{asset.name}__fixed_operational_cost" + ][0] * asset.attributes["technicalLifetime"] + except KeyError: # Do not add any costs. Items like joint pass @@ -412,7 +438,7 @@ def _name_to_asset(name): kpis_top_level.kpi.append( esdl.DistributionKPI( - name="High level cost breakdown [EUR]", + name="High level cost breakdown [EUR] (year 1)", distribution=esdl.StringLabelDistribution( stringItem=[ esdl.StringItem( @@ -430,10 +456,33 @@ def _name_to_asset(name): ), ) ) + kpis_top_level.kpi.append( + esdl.DistributionKPI( + name="High level cost breakdown [EUR] (lifetime)", + distribution=esdl.StringLabelDistribution( + stringItem=[ + esdl.StringItem( + label="CAPEX", + value=tot_install_cost_euro + tot_invest_cost_euro, + ), + esdl.StringItem( + label="OPEX", + value=( + tot_lifetime_variable_opex_cost_euro + + tot_lifetime_fixed_opex_cost_euro + ), + ), + ] + ), + quantityAndUnit=esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO + ), + ) + ) kpis_top_level.kpi.append( esdl.DistributionKPI( - name="Overall cost breakdown [EUR]", + name="Overall cost breakdown [EUR] (year 1)", distribution=esdl.StringLabelDistribution( stringItem=[ esdl.StringItem(label="Installation", value=tot_install_cost_euro), @@ -447,6 +496,28 @@ def _name_to_asset(name): ), ) ) + kpis_top_level.kpi.append( + esdl.DistributionKPI( + name="Overall cost breakdown [EUR] (lifetime)", + distribution=esdl.StringLabelDistribution( + stringItem=[ + esdl.StringItem(label="Installation", value=tot_install_cost_euro), + esdl.StringItem(label="Investment", value=tot_invest_cost_euro), + esdl.StringItem( + label="Variable OPEX", + value=tot_lifetime_variable_opex_cost_euro, + ), + esdl.StringItem( + label="Fixed OPEX", + value=tot_lifetime_fixed_opex_cost_euro, + ), + ] + ), + quantityAndUnit=esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO + ), + ) + ) kpis_top_level.kpi.append( esdl.DistributionKPI( @@ -465,7 +536,7 @@ def _name_to_asset(name): kpis_top_level.kpi.append( esdl.DistributionKPI( - name="OPEX breakdown [EUR]", + name="OPEX breakdown [EUR] (year 1)", distribution=esdl.StringLabelDistribution( stringItem=[ esdl.StringItem(label=key, value=value) @@ -477,10 +548,24 @@ def _name_to_asset(name): ), ) ) + kpis_top_level.kpi.append( + esdl.DistributionKPI( + name="OPEX breakdown [EUR] (lifetime)", + distribution=esdl.StringLabelDistribution( + stringItem=[ + esdl.StringItem(label=key, value=value) + for key, value in asset_lifetime_opex_breakdown.items() + ] + ), + quantityAndUnit=esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO + ), + ) + ) kpis_top_level.kpi.append( esdl.DistributionKPI( - name="Energy production [Wh]", + name="Energy production [Wh] (year 1)", distribution=esdl.StringLabelDistribution( stringItem=[ esdl.StringItem(label=key, value=value) @@ -606,22 +691,37 @@ def _name_to_asset(name): # Calculate the estimated energy source [%] for an area try: - total_energy_produced_locally_wh_area = total_energy_produced_locally_wh[ - subarea.name - ] + if not np.isnan(total_energy_produced_locally_wh[subarea.name]): + total_energy_produced_locally_wh_area = total_energy_produced_locally_wh[ + subarea.name + ] + else: + total_energy_produced_locally_wh_area = 0.0 except KeyError: total_energy_produced_locally_wh_area = 0.0 try: - estimated_energy_from_local_source_perc[subarea.name] = min( - total_energy_produced_locally_wh_area - / total_energy_consumed_locally_wh[subarea.name] - * 100.0, - 100.0, - ) - estimated_energy_from_regional_source_perc[subarea.name] = min( - (100.0 - estimated_energy_from_local_source_perc[subarea.name]), 100.0 - ) + if ( + not np.isnan(total_energy_consumed_locally_wh[subarea.name]) + and np.isclose(total_energy_consumed_locally_wh[subarea.name], 0.0) + ): + estimated_energy_from_local_source_perc[subarea.name] = min( + total_energy_produced_locally_wh_area + / total_energy_consumed_locally_wh[subarea.name] + * 100.0, + 100.0, + ) + estimated_energy_from_regional_source_perc[subarea.name] = min( + (100.0 - estimated_energy_from_local_source_perc[subarea.name]), 100.0 + ) + else: + estimated_energy_from_local_source_perc[subarea.name] = 0.0 + estimated_energy_from_regional_source_perc[subarea.name] = 0.0 + logger.warning( + f"KPI estimated energy from local & regional source have been set to 0.0" + f" in area {subarea.name}. Reason: area local energy" + f" consumption value is: {total_energy_consumed_locally_wh[subarea.name]}" + ) except KeyError: # Nothing to do, go on to next section of code pass @@ -659,7 +759,7 @@ def _name_to_asset(name): kpis.kpi.append( esdl.DoubleKPI( value=area_variable_opex_cost / 1.0e6, - name="Variable OPEX", + name="Variable OPEX (year 1)", quantityAndUnit=esdl.esdl.QuantityAndUnitType( physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO, @@ -670,7 +770,7 @@ def _name_to_asset(name): kpis.kpi.append( esdl.DoubleKPI( value=area_fixed_opex_cost / 1.0e6, - name="Fixed OPEX", + name="Fixed OPEX (year 1)", quantityAndUnit=esdl.esdl.QuantityAndUnitType( physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO, diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index e53c05c6f..880f7907b 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -73,18 +73,21 @@ def test_updated_esdl(self): # Test KPIs in optimized ESDL # High level checks of KPIs - number_of_kpis_top_level_in_esdl = 8 + number_of_kpis_top_level_in_esdl = 11 high_level_kpis_euro = [ - "High level cost breakdown [EUR]", - "Overall cost breakdown [EUR]", + "High level cost breakdown [EUR] (year 1)", + "High level cost breakdown [EUR] (lifetime)", + "Overall cost breakdown [EUR] (year 1)", + "Overall cost breakdown [EUR] (lifetime)", "CAPEX breakdown [EUR]", - "OPEX breakdown [EUR]", + "OPEX breakdown [EUR] (year 1)", + "OPEX breakdown [EUR] (lifetime)", "Area_76a7: Asset cost breakdown [EUR]", "Area_9d0f: Asset cost breakdown [EUR]", "Area_a58a: Asset cost breakdown [EUR]", ] high_level_kpis_wh = [ - "Energy production [Wh]", + "Energy production [Wh] (year 1)", ] all_high_level_kpis = [] all_high_level_kpis = high_level_kpis_euro + high_level_kpis_wh @@ -92,6 +95,50 @@ def test_updated_esdl(self): np.testing.assert_allclose( len(energy_system.instance[0].area.KPIs.kpi), number_of_kpis_top_level_in_esdl ) + np.testing.assert_allclose( + len(energy_system.instance[0].area.KPIs.kpi), len(all_high_level_kpis) + ) + + # Assign kpi info that has to be used for comapiring lifetime vs yearly values + # kpi_name_list and kpi_label_list should be the same length and the same order + compare_yearly_lifetime_kpis = { + # lists of 2 kpis that have to be compared + "kpi_name_list": [ + [ + "High level cost breakdown [EUR] (year 1)", + "High level cost breakdown [EUR] (lifetime)", + ], + [ + "Overall cost breakdown [EUR] (year 1)", + "Overall cost breakdown [EUR] (lifetime)", + ], + [ + "Overall cost breakdown [EUR] (year 1)", + "Overall cost breakdown [EUR] (lifetime)", + ], + [ + "OPEX breakdown [EUR] (year 1)", + "OPEX breakdown [EUR] (lifetime)", + ], + ], + # lists of which kpi label that has to be compared or kpi_name_list + "kpi_label_list": [ + ["OPEX"], + ["Variable OPEX"], + ["Fixed OPEX"], + ["ResidualHeatSource"], + ], + "index_high_level_cost_list": [], # leave this empty, this list length is set below + } + for _ in range(len(compare_yearly_lifetime_kpis["kpi_name_list"])): + compare_yearly_lifetime_kpis["index_high_level_cost_list"].append([]) + if ( + len(compare_yearly_lifetime_kpis["kpi_name_list"]) + != len(compare_yearly_lifetime_kpis["kpi_label_list"]) + ): + print("List should be the same length") + exit(1) + for ii in range(len(energy_system.instance[0].area.KPIs.kpi)): kpi_name = energy_system.instance[0].area.KPIs.kpi[ii].name np.testing.assert_array_equal( @@ -112,6 +159,41 @@ def test_updated_esdl(self): else: exit(f"Unexpected KPI name: {kpi_name}") + # Check lifetime vs yearly cost when the lifetime value is 30 years + for il in range(len(compare_yearly_lifetime_kpis["kpi_name_list"])): + + if ( + # kpi_name in [ + # "High level cost breakdown [EUR] (year 1)", + # "High level cost breakdown [EUR] (lifetime)", + # ] + kpi_name in compare_yearly_lifetime_kpis["kpi_name_list"][il] + ): + compare_yearly_lifetime_kpis["index_high_level_cost_list"][il].append(ii) + if len(compare_yearly_lifetime_kpis["index_high_level_cost_list"][il]) == 2: + for iitem in range( + len( + energy_system.instance[0].area.KPIs.kpi[ + ii].distribution.stringItem.items + ) + ): + if energy_system.instance[0].area.KPIs.kpi[compare_yearly_lifetime_kpis["index_high_level_cost_list"][il][0]].distribution.stringItem.items[iitem].label in compare_yearly_lifetime_kpis["kpi_label_list"][il]: + + max_value = max( + energy_system.instance[0].area.KPIs.kpi[compare_yearly_lifetime_kpis["index_high_level_cost_list"][il][0]].distribution.stringItem.items[iitem].value, + energy_system.instance[0].area.KPIs.kpi[compare_yearly_lifetime_kpis["index_high_level_cost_list"][il][1]].distribution.stringItem.items[iitem].value + ) + min_value = min( + energy_system.instance[0].area.KPIs.kpi[compare_yearly_lifetime_kpis["index_high_level_cost_list"][il][0]].distribution.stringItem.items[iitem].value, + energy_system.instance[0].area.KPIs.kpi[compare_yearly_lifetime_kpis["index_high_level_cost_list"][il][1]].distribution.stringItem.items[iitem].value + ) + np.testing.assert_allclose(min_value * 30.0, max_value) + # make ssure that all the items in kpi_name_list was checked + for il in range(len(compare_yearly_lifetime_kpis["kpi_name_list"])): + np.testing.assert_equal( + len(compare_yearly_lifetime_kpis["index_high_level_cost_list"][il]), 2 + ) + # Check the asset quantity number_of_assets_in_esdl = 15 np.testing.assert_allclose( From 20e0cd90ffd4582b3ae4926fbc765d7110029ded Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 21 Jun 2024 10:05:33 +0200 Subject: [PATCH 154/275] formatting --- src/mesido/workflows/io/write_output.py | 33 ++++++----- tests/test_updated_esdl_post_process.py | 75 ++++++++++++++++++------- 2 files changed, 72 insertions(+), 36 deletions(-) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 61cfef6ea..eb527663d 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -363,12 +363,14 @@ def _name_to_asset(name): tot_fixed_opex_cost_euro += results[ f"{asset.name}__fixed_operational_cost" ][0] - tot_lifetime_variable_opex_cost_euro += results[ - f"{asset.name}__variable_operational_cost" - ][0] * asset.attributes["technicalLifetime"] - tot_lifetime_fixed_opex_cost_euro += results[ - f"{asset.name}__fixed_operational_cost" - ][0] * asset.attributes["technicalLifetime"] + tot_lifetime_variable_opex_cost_euro += ( + results[f"{asset.name}__variable_operational_cost"][0] + * asset.attributes["technicalLifetime"] + ) + tot_lifetime_fixed_opex_cost_euro += ( + results[f"{asset.name}__fixed_operational_cost"][0] + * asset.attributes["technicalLifetime"] + ) except KeyError: try: @@ -398,12 +400,14 @@ def _name_to_asset(name): tot_fixed_opex_cost_euro += results[ f"{asset.name}__fixed_operational_cost" ][0] - tot_lifetime_variable_opex_cost_euro += results[ - f"{asset.name}__variable_operational_cost" - ][0] * asset.attributes["technicalLifetime"] - tot_lifetime_fixed_opex_cost_euro += results[ - f"{asset.name}__fixed_operational_cost" - ][0] * asset.attributes["technicalLifetime"] + tot_lifetime_variable_opex_cost_euro += ( + results[f"{asset.name}__variable_operational_cost"][0] + * asset.attributes["technicalLifetime"] + ) + tot_lifetime_fixed_opex_cost_euro += ( + results[f"{asset.name}__fixed_operational_cost"][0] + * asset.attributes["technicalLifetime"] + ) except KeyError: # Do not add any costs. Items like joint @@ -701,9 +705,8 @@ def _name_to_asset(name): total_energy_produced_locally_wh_area = 0.0 try: - if ( - not np.isnan(total_energy_consumed_locally_wh[subarea.name]) - and np.isclose(total_energy_consumed_locally_wh[subarea.name], 0.0) + if not np.isnan(total_energy_consumed_locally_wh[subarea.name]) and np.isclose( + total_energy_consumed_locally_wh[subarea.name], 0.0 ): estimated_energy_from_local_source_perc[subarea.name] = min( total_energy_produced_locally_wh_area diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 880f7907b..a5b272239 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -99,8 +99,9 @@ def test_updated_esdl(self): len(energy_system.instance[0].area.KPIs.kpi), len(all_high_level_kpis) ) - # Assign kpi info that has to be used for comapiring lifetime vs yearly values - # kpi_name_list and kpi_label_list should be the same length and the same order + # Assign kpi info that has to be used for compairing lifetime vs yearly values + # kpi_name_list and kpi_label_list should be the same length and in the same order of + # which the comparison is done compare_yearly_lifetime_kpis = { # lists of 2 kpis that have to be compared "kpi_name_list": [ @@ -121,7 +122,7 @@ def test_updated_esdl(self): "OPEX breakdown [EUR] (lifetime)", ], ], - # lists of which kpi label that has to be compared or kpi_name_list + # lists of which kpi label has to be compared for kpi_name_list "kpi_label_list": [ ["OPEX"], ["Variable OPEX"], @@ -132,9 +133,8 @@ def test_updated_esdl(self): } for _ in range(len(compare_yearly_lifetime_kpis["kpi_name_list"])): compare_yearly_lifetime_kpis["index_high_level_cost_list"].append([]) - if ( - len(compare_yearly_lifetime_kpis["kpi_name_list"]) - != len(compare_yearly_lifetime_kpis["kpi_label_list"]) + if len(compare_yearly_lifetime_kpis["kpi_name_list"]) != len( + compare_yearly_lifetime_kpis["kpi_label_list"] ): print("List should be the same length") exit(1) @@ -162,30 +162,63 @@ def test_updated_esdl(self): # Check lifetime vs yearly cost when the lifetime value is 30 years for il in range(len(compare_yearly_lifetime_kpis["kpi_name_list"])): - if ( - # kpi_name in [ - # "High level cost breakdown [EUR] (year 1)", - # "High level cost breakdown [EUR] (lifetime)", - # ] - kpi_name in compare_yearly_lifetime_kpis["kpi_name_list"][il] - ): + if kpi_name in compare_yearly_lifetime_kpis["kpi_name_list"][il]: compare_yearly_lifetime_kpis["index_high_level_cost_list"][il].append(ii) if len(compare_yearly_lifetime_kpis["index_high_level_cost_list"][il]) == 2: for iitem in range( len( - energy_system.instance[0].area.KPIs.kpi[ - ii].distribution.stringItem.items + energy_system.instance[0] + .area.KPIs.kpi[ii] + .distribution.stringItem.items ) ): - if energy_system.instance[0].area.KPIs.kpi[compare_yearly_lifetime_kpis["index_high_level_cost_list"][il][0]].distribution.stringItem.items[iitem].label in compare_yearly_lifetime_kpis["kpi_label_list"][il]: - + if ( + energy_system.instance[0] + .area.KPIs.kpi[ + compare_yearly_lifetime_kpis["index_high_level_cost_list"][ + il + ][0] + ] + .distribution.stringItem.items[iitem] + .label + in compare_yearly_lifetime_kpis["kpi_label_list"][il] + ): + max_value = max( - energy_system.instance[0].area.KPIs.kpi[compare_yearly_lifetime_kpis["index_high_level_cost_list"][il][0]].distribution.stringItem.items[iitem].value, - energy_system.instance[0].area.KPIs.kpi[compare_yearly_lifetime_kpis["index_high_level_cost_list"][il][1]].distribution.stringItem.items[iitem].value + energy_system.instance[0] + .area.KPIs.kpi[ + compare_yearly_lifetime_kpis[ + "index_high_level_cost_list" + ][il][0] + ] + .distribution.stringItem.items[iitem] + .value, + energy_system.instance[0] + .area.KPIs.kpi[ + compare_yearly_lifetime_kpis[ + "index_high_level_cost_list" + ][il][1] + ] + .distribution.stringItem.items[iitem] + .value, ) min_value = min( - energy_system.instance[0].area.KPIs.kpi[compare_yearly_lifetime_kpis["index_high_level_cost_list"][il][0]].distribution.stringItem.items[iitem].value, - energy_system.instance[0].area.KPIs.kpi[compare_yearly_lifetime_kpis["index_high_level_cost_list"][il][1]].distribution.stringItem.items[iitem].value + energy_system.instance[0] + .area.KPIs.kpi[ + compare_yearly_lifetime_kpis[ + "index_high_level_cost_list" + ][il][0] + ] + .distribution.stringItem.items[iitem] + .value, + energy_system.instance[0] + .area.KPIs.kpi[ + compare_yearly_lifetime_kpis[ + "index_high_level_cost_list" + ][il][1] + ] + .distribution.stringItem.items[iitem] + .value, ) np.testing.assert_allclose(min_value * 30.0, max_value) # make ssure that all the items in kpi_name_list was checked From e70e2638ae41955d00e9a50c928b817bf3aaa68f Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 21 Jun 2024 11:00:48 +0200 Subject: [PATCH 155/275] Remove unnecessary code --- tests/models/wko/src/example.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/tests/models/wko/src/example.py b/tests/models/wko/src/example.py index 873c183d9..e149e5760 100644 --- a/tests/models/wko/src/example.py +++ b/tests/models/wko/src/example.py @@ -169,17 +169,10 @@ def path_goals(self): The appended list of goals """ goals = super().path_goals().copy() + self.energy_system_components["heat_source"] - try: - self.energy_system_components["heat_source"] - - for s in self.energy_system_components["heat_source"]: - goals.append(MinimizeSourcesHeatGoal(s)) - except KeyError: - ... - except Exception: - traceback.print_exc() - sys.exit(1) + for s in self.energy_system_components["heat_source"]: + goals.append(MinimizeSourcesHeatGoal(s)) return goals From 87b40880366bab9a3713a8f03464d24cd47d4e74 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 25 Jun 2024 09:39:17 +0200 Subject: [PATCH 156/275] formatting --- tests/models/wko/src/example.py | 14 +++++++------- tests/test_cold_demand.py | 12 ++++++++---- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/tests/models/wko/src/example.py b/tests/models/wko/src/example.py index e149e5760..e19a16648 100644 --- a/tests/models/wko/src/example.py +++ b/tests/models/wko/src/example.py @@ -221,12 +221,12 @@ def energy_system_options(self): input_timeseries_file="timeseries.csv", ) results = elect.extract_results() - print(results["CoolingDemand_15e8.Cold_demand"]) - print(results["HeatingDemand_9b90.Heat_demand"]) - print(results["HeatPump_b97e.Heat_source"]) - print(results["ATES_226d.Heat_low_temperature_ates"]) - for p in elect.energy_system_components.get("heat_pipe", []): - print(p, results[f"{p}__hn_heat_loss"]) - print(p, elect.bounds()[f"{p}__hn_heat_loss"]) + # print(results["CoolingDemand_15e8.Cold_demand"]) + # print(results["HeatingDemand_9b90.Heat_demand"]) + # print(results["HeatPump_b97e.Heat_source"]) + # print(results["ATES_226d.Heat_low_temperature_ates"]) + # for p in elect.energy_system_components.get("heat_pipe", []): + # print(p, results[f"{p}__hn_heat_loss"]) + # print(p, elect.bounds()[f"{p}__hn_heat_loss"]) a = 1 diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 3cf0b7b13..0e9dd4554 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -135,12 +135,16 @@ def constraints(self, ensemble_member): # for ates_id in self.energy_system_components.get("low_temperature_ates", []): # stored_volume = self.state_vector(f"{ates_id}.Stored_volume") # volume_usage = 0.0 - # for itstep in range(len(self.times()) - 1): - # volume_usage = ( - # volume_usage + stored_volume[itstep + 1] - stored_volume[itstep] - # ) + + # volume_usage = stored_volume[0] - stored_volume[-1] # constraints.append((volume_usage, 0.0, 0.0)) + # for itstep in range(len(self.times()) - 1): + # volume_usage = ( + # volume_usage + stored_volume[itstep + 1] - stored_volume[itstep] + # ) + # constraints.append((volume_usage, 0.0, 0.0)) + return constraints heat_problem = run_esdl_mesido_optimization( From 268f22677fce89ea74f9db89621fc8bf73ea5614 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 26 Jun 2024 09:21:47 +0200 Subject: [PATCH 157/275] Chnaged lifetime to 15yrs --- examples/PoCTutorial/model/PoC Tutorial.esdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/PoCTutorial/model/PoC Tutorial.esdl b/examples/PoCTutorial/model/PoC Tutorial.esdl index 8d5511647..9e4a90a76 100644 --- a/examples/PoCTutorial/model/PoC Tutorial.esdl +++ b/examples/PoCTutorial/model/PoC Tutorial.esdl @@ -11,7 +11,7 @@ - + From 175e82dcb4a6cdad11bc5ff11f411bb505892549 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 26 Jun 2024 09:23:20 +0200 Subject: [PATCH 158/275] Use optim time horizon instead of lifetime in KPIs --- src/mesido/workflows/io/write_output.py | 121 +++++++++++++++--------- tests/test_updated_esdl_post_process.py | 42 ++++---- 2 files changed, 97 insertions(+), 66 deletions(-) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index eb527663d..f1f1276a6 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -1,6 +1,7 @@ import datetime import json import logging +import math import numbers import os import sys @@ -320,29 +321,45 @@ def _name_to_asset(name): # ------------------------------------------------------------------------------------------ kpis_top_level = esdl.KPIs(id=str(uuid.uuid4())) heat_source_energy_wh = {} - asset_capex_breakdown = {} asset_opex_breakdown = {} # yearly cost - tot_install_cost_euro = 0.0 - tot_invest_cost_euro = 0.0 tot_variable_opex_cost_euro = 0.0 # yearly cost tot_fixed_opex_cost_euro = 0.0 # yearly cost - # over entire lifetime costs - asset_lifetime_opex_breakdown = {} - tot_lifetime_variable_opex_cost_euro = 0.0 - tot_lifetime_fixed_opex_cost_euro = 0.0 + # cost over the total time horizon (number of year) being optimized: + # parameters["number_of_years"] + asset_timehorizon_opex_breakdown = {} + tot_timehorizon_variable_opex_cost_euro = 0.0 + tot_timehorizon_fixed_opex_cost_euro = 0.0 + asset_timehorizon_capex_breakdown = {} + tot_timehorizon_install_cost_euro = 0.0 + tot_timehorizon_invest_cost_euro = 0.0 for _key, asset in self.esdl_assets.items(): asset_placement_var = self._asset_aggregation_count_var_map[asset.name] placed = np.round(results[asset_placement_var][0]) >= 1.0 + + if np.isnan(parameters[f"{asset.name}.technical_life"]) or np.isclose( + parameters[f"{asset.name}.technical_life"], 0.0 + ): + capex_factor = 1.0 + else: + capex_factor = math.ceil( + parameters["number_of_years"] + / parameters[f"{asset.name}.technical_life"] + ) + if placed: try: - asset_capex_breakdown[asset.asset_type] += ( + asset_timehorizon_capex_breakdown[asset.asset_type] += ( results[f"{asset.name}__installation_cost"][0] + results[f"{asset.name}__investment_cost"][0] - ) - tot_install_cost_euro += results[f"{asset.name}__installation_cost"][0] - tot_invest_cost_euro += results[f"{asset.name}__investment_cost"][0] + ) * capex_factor + tot_timehorizon_install_cost_euro += ( + results[f"{asset.name}__installation_cost"][0] + ) * capex_factor + tot_timehorizon_invest_cost_euro += ( + results[f"{asset.name}__investment_cost"][0] + ) * capex_factor if ( results[f"{asset.name}__variable_operational_cost"][0] > 0.0 @@ -352,10 +369,10 @@ def _name_to_asset(name): results[f"{asset.name}__variable_operational_cost"][0] + results[f"{asset.name}__fixed_operational_cost"][0] ) - asset_lifetime_opex_breakdown[asset.asset_type] += ( + asset_timehorizon_opex_breakdown[asset.asset_type] += ( results[f"{asset.name}__variable_operational_cost"][0] + results[f"{asset.name}__fixed_operational_cost"][0] - ) * asset.attributes["technicalLifetime"] + ) * parameters["number_of_years"] tot_variable_opex_cost_euro += results[ f"{asset.name}__variable_operational_cost" @@ -363,23 +380,27 @@ def _name_to_asset(name): tot_fixed_opex_cost_euro += results[ f"{asset.name}__fixed_operational_cost" ][0] - tot_lifetime_variable_opex_cost_euro += ( + tot_timehorizon_variable_opex_cost_euro += ( results[f"{asset.name}__variable_operational_cost"][0] - * asset.attributes["technicalLifetime"] + * parameters["number_of_years"] ) - tot_lifetime_fixed_opex_cost_euro += ( + tot_timehorizon_fixed_opex_cost_euro += ( results[f"{asset.name}__fixed_operational_cost"][0] - * asset.attributes["technicalLifetime"] + * parameters["number_of_years"] ) except KeyError: try: - asset_capex_breakdown[asset.asset_type] = ( + asset_timehorizon_capex_breakdown[asset.asset_type] = ( results[f"{asset.name}__installation_cost"][0] + results[f"{asset.name}__investment_cost"][0] - ) - tot_install_cost_euro += results[f"{asset.name}__installation_cost"][0] - tot_invest_cost_euro += results[f"{asset.name}__investment_cost"][0] + ) * capex_factor + tot_timehorizon_install_cost_euro += ( + results[f"{asset.name}__installation_cost"][0] + ) * capex_factor + tot_timehorizon_invest_cost_euro += ( + results[f"{asset.name}__investment_cost"][0] + ) * capex_factor if ( results[f"{asset.name}__variable_operational_cost"][0] > 0.0 @@ -389,9 +410,9 @@ def _name_to_asset(name): results[f"{asset.name}__variable_operational_cost"][0] + results[f"{asset.name}__fixed_operational_cost"][0] ) - asset_lifetime_opex_breakdown[asset.asset_type] = ( + asset_timehorizon_opex_breakdown[asset.asset_type] = ( asset_opex_breakdown[asset.asset_type] - * asset.attributes["technicalLifetime"] + * parameters["number_of_years"] ) tot_variable_opex_cost_euro += results[ @@ -400,13 +421,13 @@ def _name_to_asset(name): tot_fixed_opex_cost_euro += results[ f"{asset.name}__fixed_operational_cost" ][0] - tot_lifetime_variable_opex_cost_euro += ( + tot_timehorizon_variable_opex_cost_euro += ( results[f"{asset.name}__variable_operational_cost"][0] - * asset.attributes["technicalLifetime"] + * parameters["number_of_years"] ) - tot_lifetime_fixed_opex_cost_euro += ( + tot_timehorizon_fixed_opex_cost_euro += ( results[f"{asset.name}__fixed_operational_cost"][0] - * asset.attributes["technicalLifetime"] + * parameters["number_of_years"] ) except KeyError: @@ -442,12 +463,15 @@ def _name_to_asset(name): kpis_top_level.kpi.append( esdl.DistributionKPI( - name="High level cost breakdown [EUR] (year 1)", + name="High level cost breakdown [EUR] (yearly averaged)", distribution=esdl.StringLabelDistribution( stringItem=[ esdl.StringItem( label="CAPEX", - value=tot_install_cost_euro + tot_invest_cost_euro, + value=( + tot_timehorizon_install_cost_euro + + tot_timehorizon_invest_cost_euro + ) / parameters["number_of_years"], ), esdl.StringItem( label="OPEX", @@ -460,20 +484,21 @@ def _name_to_asset(name): ), ) ) + optim_time_horizon = parameters["number_of_years"] kpis_top_level.kpi.append( esdl.DistributionKPI( - name="High level cost breakdown [EUR] (lifetime)", + name=f"High level cost breakdown [EUR] ({optim_time_horizon} year period)", distribution=esdl.StringLabelDistribution( stringItem=[ esdl.StringItem( label="CAPEX", - value=tot_install_cost_euro + tot_invest_cost_euro, + value=tot_timehorizon_install_cost_euro + tot_timehorizon_invest_cost_euro, ), esdl.StringItem( label="OPEX", value=( - tot_lifetime_variable_opex_cost_euro - + tot_lifetime_fixed_opex_cost_euro + tot_timehorizon_variable_opex_cost_euro + + tot_timehorizon_fixed_opex_cost_euro ), ), ] @@ -486,11 +511,13 @@ def _name_to_asset(name): kpis_top_level.kpi.append( esdl.DistributionKPI( - name="Overall cost breakdown [EUR] (year 1)", + name="Overall cost breakdown [EUR] (yearly averaged)", distribution=esdl.StringLabelDistribution( stringItem=[ - esdl.StringItem(label="Installation", value=tot_install_cost_euro), - esdl.StringItem(label="Investment", value=tot_invest_cost_euro), + esdl.StringItem(label="Installation", value=(tot_timehorizon_install_cost_euro + / parameters["number_of_years"])), + esdl.StringItem(label="Investment", value=(tot_timehorizon_invest_cost_euro + / parameters["number_of_years"])), esdl.StringItem(label="Variable OPEX", value=tot_variable_opex_cost_euro), esdl.StringItem(label="Fixed OPEX", value=tot_fixed_opex_cost_euro), ] @@ -502,18 +529,18 @@ def _name_to_asset(name): ) kpis_top_level.kpi.append( esdl.DistributionKPI( - name="Overall cost breakdown [EUR] (lifetime)", + name=f"Overall cost breakdown [EUR] ({optim_time_horizon} year period)", distribution=esdl.StringLabelDistribution( stringItem=[ - esdl.StringItem(label="Installation", value=tot_install_cost_euro), - esdl.StringItem(label="Investment", value=tot_invest_cost_euro), + esdl.StringItem(label="Installation", value=tot_timehorizon_install_cost_euro), + esdl.StringItem(label="Investment", value=tot_timehorizon_invest_cost_euro), esdl.StringItem( label="Variable OPEX", - value=tot_lifetime_variable_opex_cost_euro, + value=tot_timehorizon_variable_opex_cost_euro, ), esdl.StringItem( label="Fixed OPEX", - value=tot_lifetime_fixed_opex_cost_euro, + value=tot_timehorizon_fixed_opex_cost_euro, ), ] ), @@ -525,11 +552,11 @@ def _name_to_asset(name): kpis_top_level.kpi.append( esdl.DistributionKPI( - name="CAPEX breakdown [EUR]", + name=f"CAPEX breakdown [EUR] ({optim_time_horizon} year period)", distribution=esdl.StringLabelDistribution( stringItem=[ esdl.StringItem(label=key, value=value) - for key, value in asset_capex_breakdown.items() + for key, value in asset_timehorizon_capex_breakdown.items() ] ), quantityAndUnit=esdl.esdl.QuantityAndUnitType( @@ -540,7 +567,7 @@ def _name_to_asset(name): kpis_top_level.kpi.append( esdl.DistributionKPI( - name="OPEX breakdown [EUR] (year 1)", + name="OPEX breakdown [EUR] (yearly averaged)", distribution=esdl.StringLabelDistribution( stringItem=[ esdl.StringItem(label=key, value=value) @@ -554,11 +581,11 @@ def _name_to_asset(name): ) kpis_top_level.kpi.append( esdl.DistributionKPI( - name="OPEX breakdown [EUR] (lifetime)", + name=f"OPEX breakdown [EUR] ({optim_time_horizon} year period)", distribution=esdl.StringLabelDistribution( stringItem=[ esdl.StringItem(label=key, value=value) - for key, value in asset_lifetime_opex_breakdown.items() + for key, value in asset_timehorizon_opex_breakdown.items() ] ), quantityAndUnit=esdl.esdl.QuantityAndUnitType( @@ -569,7 +596,7 @@ def _name_to_asset(name): kpis_top_level.kpi.append( esdl.DistributionKPI( - name="Energy production [Wh] (year 1)", + name="Energy production [Wh] (yearly averaged)", distribution=esdl.StringLabelDistribution( stringItem=[ esdl.StringItem(label=key, value=value) diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index a5b272239..870bcdd3e 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -26,6 +26,8 @@ def test_updated_esdl(self): Checks: - That the esdl saving method (direct ESDL file and ESDL string) - That the correct number of KPIs have been added + - Check that the OPEX costs for an asset with a 15 year lifetime == OPEX over optim time + horizon - That the correct assets have been removed - That all the assets have a state=ENABLED - The diameter of all the pipes are as expected @@ -75,19 +77,19 @@ def test_updated_esdl(self): # High level checks of KPIs number_of_kpis_top_level_in_esdl = 11 high_level_kpis_euro = [ - "High level cost breakdown [EUR] (year 1)", - "High level cost breakdown [EUR] (lifetime)", - "Overall cost breakdown [EUR] (year 1)", - "Overall cost breakdown [EUR] (lifetime)", - "CAPEX breakdown [EUR]", - "OPEX breakdown [EUR] (year 1)", - "OPEX breakdown [EUR] (lifetime)", + "High level cost breakdown [EUR] (yearly averaged)", + "High level cost breakdown [EUR] (30.0 year period)", + "Overall cost breakdown [EUR] (yearly averaged)", + "Overall cost breakdown [EUR] (30.0 year period)", + "CAPEX breakdown [EUR] (30.0 year period)", + "OPEX breakdown [EUR] (yearly averaged)", + "OPEX breakdown [EUR] (30.0 year period)", "Area_76a7: Asset cost breakdown [EUR]", "Area_9d0f: Asset cost breakdown [EUR]", "Area_a58a: Asset cost breakdown [EUR]", ] high_level_kpis_wh = [ - "Energy production [Wh] (year 1)", + "Energy production [Wh] (yearly averaged)", ] all_high_level_kpis = [] all_high_level_kpis = high_level_kpis_euro + high_level_kpis_wh @@ -99,27 +101,27 @@ def test_updated_esdl(self): len(energy_system.instance[0].area.KPIs.kpi), len(all_high_level_kpis) ) - # Assign kpi info that has to be used for compairing lifetime vs yearly values + # Assign kpi info that has to be used for compairing optim time horizon vs yearly values # kpi_name_list and kpi_label_list should be the same length and in the same order of # which the comparison is done compare_yearly_lifetime_kpis = { # lists of 2 kpis that have to be compared "kpi_name_list": [ [ - "High level cost breakdown [EUR] (year 1)", - "High level cost breakdown [EUR] (lifetime)", + "High level cost breakdown [EUR] (yearly averaged)", + "High level cost breakdown [EUR] (30.0 year period)", ], [ - "Overall cost breakdown [EUR] (year 1)", - "Overall cost breakdown [EUR] (lifetime)", + "Overall cost breakdown [EUR] (yearly averaged)", + "Overall cost breakdown [EUR] (30.0 year period)", ], [ - "Overall cost breakdown [EUR] (year 1)", - "Overall cost breakdown [EUR] (lifetime)", + "Overall cost breakdown [EUR] (yearly averaged)", + "Overall cost breakdown [EUR] (30.0 year period)", ], [ - "OPEX breakdown [EUR] (year 1)", - "OPEX breakdown [EUR] (lifetime)", + "OPEX breakdown [EUR] (yearly averaged)", + "OPEX breakdown [EUR] (30.0 year period)", ], ], # lists of which kpi label has to be compared for kpi_name_list @@ -159,7 +161,8 @@ def test_updated_esdl(self): else: exit(f"Unexpected KPI name: {kpi_name}") - # Check lifetime vs yearly cost when the lifetime value is 30 years + # Check optim time horizon vs yearly cost when the lifetime value is + # 15 years for il in range(len(compare_yearly_lifetime_kpis["kpi_name_list"])): if kpi_name in compare_yearly_lifetime_kpis["kpi_name_list"][il]: @@ -220,7 +223,8 @@ def test_updated_esdl(self): .distribution.stringItem.items[iitem] .value, ) - np.testing.assert_allclose(min_value * 30.0, max_value) + # Lifetime of 15 years and the optim time horizon is 30 years + np.testing.assert_allclose(min_value * 15.0 * 2.0, max_value) # make ssure that all the items in kpi_name_list was checked for il in range(len(compare_yearly_lifetime_kpis["kpi_name_list"])): np.testing.assert_equal( From 27fa17084e529c2eb223e66c031e3b52d119be33 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 26 Jun 2024 09:28:36 +0200 Subject: [PATCH 159/275] formatting --- src/mesido/workflows/io/write_output.py | 32 ++++++++++++++++--------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index f1f1276a6..2e53db53a 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -344,8 +344,7 @@ def _name_to_asset(name): capex_factor = 1.0 else: capex_factor = math.ceil( - parameters["number_of_years"] - / parameters[f"{asset.name}.technical_life"] + parameters["number_of_years"] / parameters[f"{asset.name}.technical_life"] ) if placed: @@ -469,9 +468,9 @@ def _name_to_asset(name): esdl.StringItem( label="CAPEX", value=( - tot_timehorizon_install_cost_euro - + tot_timehorizon_invest_cost_euro - ) / parameters["number_of_years"], + tot_timehorizon_install_cost_euro + tot_timehorizon_invest_cost_euro + ) + / parameters["number_of_years"], ), esdl.StringItem( label="OPEX", @@ -492,7 +491,8 @@ def _name_to_asset(name): stringItem=[ esdl.StringItem( label="CAPEX", - value=tot_timehorizon_install_cost_euro + tot_timehorizon_invest_cost_euro, + value=tot_timehorizon_install_cost_euro + + tot_timehorizon_invest_cost_euro, ), esdl.StringItem( label="OPEX", @@ -514,10 +514,18 @@ def _name_to_asset(name): name="Overall cost breakdown [EUR] (yearly averaged)", distribution=esdl.StringLabelDistribution( stringItem=[ - esdl.StringItem(label="Installation", value=(tot_timehorizon_install_cost_euro - / parameters["number_of_years"])), - esdl.StringItem(label="Investment", value=(tot_timehorizon_invest_cost_euro - / parameters["number_of_years"])), + esdl.StringItem( + label="Installation", + value=( + tot_timehorizon_install_cost_euro / parameters["number_of_years"] + ), + ), + esdl.StringItem( + label="Investment", + value=( + tot_timehorizon_invest_cost_euro / parameters["number_of_years"] + ), + ), esdl.StringItem(label="Variable OPEX", value=tot_variable_opex_cost_euro), esdl.StringItem(label="Fixed OPEX", value=tot_fixed_opex_cost_euro), ] @@ -532,7 +540,9 @@ def _name_to_asset(name): name=f"Overall cost breakdown [EUR] ({optim_time_horizon} year period)", distribution=esdl.StringLabelDistribution( stringItem=[ - esdl.StringItem(label="Installation", value=tot_timehorizon_install_cost_euro), + esdl.StringItem( + label="Installation", value=tot_timehorizon_install_cost_euro + ), esdl.StringItem(label="Investment", value=tot_timehorizon_invest_cost_euro), esdl.StringItem( label="Variable OPEX", From 5d4d6c92813430efe5de2ca9e6e2fcb5e7274dce Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 26 Jun 2024 13:19:45 +0200 Subject: [PATCH 160/275] seperate function for add kpis to esdl, exclude for emerge workflow --- src/mesido/workflows/emerge.py | 4 +- src/mesido/workflows/io/write_output.py | 221 +++++++++++++----------- 2 files changed, 127 insertions(+), 98 deletions(-) diff --git a/src/mesido/workflows/emerge.py b/src/mesido/workflows/emerge.py index 8020826c7..fab154070 100644 --- a/src/mesido/workflows/emerge.py +++ b/src/mesido/workflows/emerge.py @@ -196,7 +196,9 @@ def post(self): super().post() # Optimized ESDL - self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) + self._write_updated_esdl( + self._ESDLMixin__energy_system_handler.energy_system, add_kpis=False + ) self._save_json = False diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 2e53db53a..370844e12 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -297,24 +297,11 @@ def _write_html_output(self, template_name="mpc_buffer_sizing_output"): ) ) - def _write_updated_esdl(self, energy_system, optimizer_sim: bool = False): - from esdl.esdl_handler import EnergySystemHandler + def _add_kpis_to_energy_system(self, energy_system, optimizer_sim: bool = False): results = self.extract_results() parameters = self.parameters(0) - input_energy_system_id = energy_system.id - energy_system.id = str(uuid.uuid4()) - if optimizer_sim: - energy_system.name = energy_system.name + "_Simulation" - else: - energy_system.name = energy_system.name + "_GrowOptimized" - - def _name_to_asset(name): - return next( - (x for x in energy_system.eAllContents() if hasattr(x, "name") and x.name == name) - ) - # ------------------------------------------------------------------------------------------ # KPIs # General cost breakdowns @@ -326,7 +313,8 @@ def _name_to_asset(name): tot_fixed_opex_cost_euro = 0.0 # yearly cost # cost over the total time horizon (number of year) being optimized: - # parameters["number_of_years"] + # - parameters["number_of_years"] + # - these kpis are not created for the newtwork simualtor->optimizer_sim asset_timehorizon_opex_breakdown = {} tot_timehorizon_variable_opex_cost_euro = 0.0 tot_timehorizon_fixed_opex_cost_euro = 0.0 @@ -334,6 +322,16 @@ def _name_to_asset(name): tot_timehorizon_install_cost_euro = 0.0 tot_timehorizon_invest_cost_euro = 0.0 + # Specify the correct time horizon: + # Optimization=number of year: since it is taken into account in TCO minimization + # Simulator=1: since 30 years of optimization is not applicable for the network simulator + if not optimizer_sim: # optimization mode + optim_time_horizon = parameters["number_of_years"] + elif optimizer_sim: # network simulator mode + optim_time_horizon = 1.0 + else: + logger.error("Variable optimizer_sim has not been set") + for _key, asset in self.esdl_assets.items(): asset_placement_var = self._asset_aggregation_count_var_map[asset.name] placed = np.round(results[asset_placement_var][0]) >= 1.0 @@ -344,7 +342,7 @@ def _name_to_asset(name): capex_factor = 1.0 else: capex_factor = math.ceil( - parameters["number_of_years"] / parameters[f"{asset.name}.technical_life"] + optim_time_horizon / parameters[f"{asset.name}.technical_life"] ) if placed: @@ -371,7 +369,7 @@ def _name_to_asset(name): asset_timehorizon_opex_breakdown[asset.asset_type] += ( results[f"{asset.name}__variable_operational_cost"][0] + results[f"{asset.name}__fixed_operational_cost"][0] - ) * parameters["number_of_years"] + ) * optim_time_horizon tot_variable_opex_cost_euro += results[ f"{asset.name}__variable_operational_cost" @@ -381,11 +379,11 @@ def _name_to_asset(name): ][0] tot_timehorizon_variable_opex_cost_euro += ( results[f"{asset.name}__variable_operational_cost"][0] - * parameters["number_of_years"] + * optim_time_horizon ) tot_timehorizon_fixed_opex_cost_euro += ( results[f"{asset.name}__fixed_operational_cost"][0] - * parameters["number_of_years"] + * optim_time_horizon ) except KeyError: @@ -411,7 +409,7 @@ def _name_to_asset(name): ) asset_timehorizon_opex_breakdown[asset.asset_type] = ( asset_opex_breakdown[asset.asset_type] - * parameters["number_of_years"] + * optim_time_horizon ) tot_variable_opex_cost_euro += results[ @@ -422,11 +420,11 @@ def _name_to_asset(name): ][0] tot_timehorizon_variable_opex_cost_euro += ( results[f"{asset.name}__variable_operational_cost"][0] - * parameters["number_of_years"] + * optim_time_horizon ) tot_timehorizon_fixed_opex_cost_euro += ( results[f"{asset.name}__fixed_operational_cost"][0] - * parameters["number_of_years"] + * optim_time_horizon ) except KeyError: @@ -470,7 +468,7 @@ def _name_to_asset(name): value=( tot_timehorizon_install_cost_euro + tot_timehorizon_invest_cost_euro ) - / parameters["number_of_years"], + / optim_time_horizon, ), esdl.StringItem( label="OPEX", @@ -483,31 +481,32 @@ def _name_to_asset(name): ), ) ) - optim_time_horizon = parameters["number_of_years"] - kpis_top_level.kpi.append( - esdl.DistributionKPI( - name=f"High level cost breakdown [EUR] ({optim_time_horizon} year period)", - distribution=esdl.StringLabelDistribution( - stringItem=[ - esdl.StringItem( - label="CAPEX", - value=tot_timehorizon_install_cost_euro - + tot_timehorizon_invest_cost_euro, - ), - esdl.StringItem( - label="OPEX", - value=( - tot_timehorizon_variable_opex_cost_euro - + tot_timehorizon_fixed_opex_cost_euro + + if not optimizer_sim: + kpis_top_level.kpi.append( + esdl.DistributionKPI( + name=f"High level cost breakdown [EUR] ({optim_time_horizon} year period)", + distribution=esdl.StringLabelDistribution( + stringItem=[ + esdl.StringItem( + label="CAPEX", + value=tot_timehorizon_install_cost_euro + + tot_timehorizon_invest_cost_euro, ), - ), - ] - ), - quantityAndUnit=esdl.esdl.QuantityAndUnitType( - physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO - ), + esdl.StringItem( + label="OPEX", + value=( + tot_timehorizon_variable_opex_cost_euro + + tot_timehorizon_fixed_opex_cost_euro + ), + ), + ] + ), + quantityAndUnit=esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO + ), + ) ) - ) kpis_top_level.kpi.append( esdl.DistributionKPI( @@ -517,13 +516,13 @@ def _name_to_asset(name): esdl.StringItem( label="Installation", value=( - tot_timehorizon_install_cost_euro / parameters["number_of_years"] + tot_timehorizon_install_cost_euro / optim_time_horizon ), ), esdl.StringItem( label="Investment", value=( - tot_timehorizon_invest_cost_euro / parameters["number_of_years"] + tot_timehorizon_invest_cost_euro / optim_time_horizon ), ), esdl.StringItem(label="Variable OPEX", value=tot_variable_opex_cost_euro), @@ -535,45 +534,48 @@ def _name_to_asset(name): ), ) ) - kpis_top_level.kpi.append( - esdl.DistributionKPI( - name=f"Overall cost breakdown [EUR] ({optim_time_horizon} year period)", - distribution=esdl.StringLabelDistribution( - stringItem=[ - esdl.StringItem( - label="Installation", value=tot_timehorizon_install_cost_euro - ), - esdl.StringItem(label="Investment", value=tot_timehorizon_invest_cost_euro), - esdl.StringItem( - label="Variable OPEX", - value=tot_timehorizon_variable_opex_cost_euro, - ), - esdl.StringItem( - label="Fixed OPEX", - value=tot_timehorizon_fixed_opex_cost_euro, - ), - ] - ), - quantityAndUnit=esdl.esdl.QuantityAndUnitType( - physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO - ), + if not optimizer_sim: + kpis_top_level.kpi.append( + esdl.DistributionKPI( + name=f"Overall cost breakdown [EUR] ({optim_time_horizon} year period)", + distribution=esdl.StringLabelDistribution( + stringItem=[ + esdl.StringItem( + label="Installation", value=tot_timehorizon_install_cost_euro + ), + esdl.StringItem( + label="Investment", value=tot_timehorizon_invest_cost_euro + ), + esdl.StringItem( + label="Variable OPEX", + value=tot_timehorizon_variable_opex_cost_euro, + ), + esdl.StringItem( + label="Fixed OPEX", + value=tot_timehorizon_fixed_opex_cost_euro, + ), + ] + ), + quantityAndUnit=esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO + ), + ) ) - ) - kpis_top_level.kpi.append( - esdl.DistributionKPI( - name=f"CAPEX breakdown [EUR] ({optim_time_horizon} year period)", - distribution=esdl.StringLabelDistribution( - stringItem=[ - esdl.StringItem(label=key, value=value) - for key, value in asset_timehorizon_capex_breakdown.items() - ] - ), - quantityAndUnit=esdl.esdl.QuantityAndUnitType( - physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO - ), + kpis_top_level.kpi.append( + esdl.DistributionKPI( + name=f"CAPEX breakdown [EUR] ({optim_time_horizon} year period)", + distribution=esdl.StringLabelDistribution( + stringItem=[ + esdl.StringItem(label=key, value=value) + for key, value in asset_timehorizon_capex_breakdown.items() + ] + ), + quantityAndUnit=esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO + ), + ) ) - ) kpis_top_level.kpi.append( esdl.DistributionKPI( @@ -589,20 +591,21 @@ def _name_to_asset(name): ), ) ) - kpis_top_level.kpi.append( - esdl.DistributionKPI( - name=f"OPEX breakdown [EUR] ({optim_time_horizon} year period)", - distribution=esdl.StringLabelDistribution( - stringItem=[ - esdl.StringItem(label=key, value=value) - for key, value in asset_timehorizon_opex_breakdown.items() - ] - ), - quantityAndUnit=esdl.esdl.QuantityAndUnitType( - physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO - ), + if not optimizer_sim: + kpis_top_level.kpi.append( + esdl.DistributionKPI( + name=f"OPEX breakdown [EUR] ({optim_time_horizon} year period)", + distribution=esdl.StringLabelDistribution( + stringItem=[ + esdl.StringItem(label=key, value=value) + for key, value in asset_timehorizon_opex_breakdown.items() + ] + ), + quantityAndUnit=esdl.esdl.QuantityAndUnitType( + physicalQuantity=esdl.PhysicalQuantityEnum.COST, unit=esdl.UnitEnum.EURO + ), + ) ) - ) kpis_top_level.kpi.append( esdl.DistributionKPI( @@ -916,6 +919,30 @@ def _name_to_asset(name): # ebd sub-area loop # end KPIs + + def _write_updated_esdl( + self, energy_system, optimizer_sim: bool = False, add_kpis: bool = True + ): + from esdl.esdl_handler import EnergySystemHandler + + results = self.extract_results() + parameters = self.parameters(0) + + input_energy_system_id = energy_system.id + energy_system.id = str(uuid.uuid4()) + if optimizer_sim: # network simulator + energy_system.name = energy_system.name + "_Simulation" + else: # network optimization + energy_system.name = energy_system.name + "_GrowOptimized" + + def _name_to_asset(name): + return next( + (x for x in energy_system.eAllContents() if hasattr(x, "name") and x.name == name) + ) + + if add_kpis: + self._add_kpis_to_energy_system(energy_system, optimizer_sim) + # ------------------------------------------------------------------------------------------ # Placement for _, attributes in self.esdl_assets.items(): From 6fab5ee8d4de49b55f330e1772a5038919b40e9c Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 26 Jun 2024 13:26:21 +0200 Subject: [PATCH 161/275] formatting --- src/mesido/workflows/io/write_output.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 370844e12..9f095418c 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -382,8 +382,7 @@ def _add_kpis_to_energy_system(self, energy_system, optimizer_sim: bool = False) * optim_time_horizon ) tot_timehorizon_fixed_opex_cost_euro += ( - results[f"{asset.name}__fixed_operational_cost"][0] - * optim_time_horizon + results[f"{asset.name}__fixed_operational_cost"][0] * optim_time_horizon ) except KeyError: @@ -408,8 +407,7 @@ def _add_kpis_to_energy_system(self, energy_system, optimizer_sim: bool = False) + results[f"{asset.name}__fixed_operational_cost"][0] ) asset_timehorizon_opex_breakdown[asset.asset_type] = ( - asset_opex_breakdown[asset.asset_type] - * optim_time_horizon + asset_opex_breakdown[asset.asset_type] * optim_time_horizon ) tot_variable_opex_cost_euro += results[ @@ -515,15 +513,11 @@ def _add_kpis_to_energy_system(self, energy_system, optimizer_sim: bool = False) stringItem=[ esdl.StringItem( label="Installation", - value=( - tot_timehorizon_install_cost_euro / optim_time_horizon - ), + value=(tot_timehorizon_install_cost_euro / optim_time_horizon), ), esdl.StringItem( label="Investment", - value=( - tot_timehorizon_invest_cost_euro / optim_time_horizon - ), + value=(tot_timehorizon_invest_cost_euro / optim_time_horizon), ), esdl.StringItem(label="Variable OPEX", value=tot_variable_opex_cost_euro), esdl.StringItem(label="Fixed OPEX", value=tot_fixed_opex_cost_euro), @@ -921,7 +915,7 @@ def _add_kpis_to_energy_system(self, energy_system, optimizer_sim: bool = False) # end KPIs def _write_updated_esdl( - self, energy_system, optimizer_sim: bool = False, add_kpis: bool = True + self, energy_system, optimizer_sim: bool = False, add_kpis: bool = True ): from esdl.esdl_handler import EnergySystemHandler From c23f16bbfadba7d293e20e70c914e7a4717737c2 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 26 Jun 2024 15:08:36 +0200 Subject: [PATCH 162/275] Made pipe4 & pipe4_ret optional, updated test case --- examples/PoCTutorial/model/PoC Tutorial.esdl | 4 ++-- tests/test_updated_esdl_post_process.py | 8 ++------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/examples/PoCTutorial/model/PoC Tutorial.esdl b/examples/PoCTutorial/model/PoC Tutorial.esdl index 784f00c2e..40df7b83b 100644 --- a/examples/PoCTutorial/model/PoC Tutorial.esdl +++ b/examples/PoCTutorial/model/PoC Tutorial.esdl @@ -120,7 +120,7 @@ - + @@ -206,7 +206,7 @@ - + diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 06b6f5f71..6216b55ff 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -139,15 +139,11 @@ def test_updated_esdl(self): # Check pipe diameter if len(fnmatch.filter([energy_system.instance[0].area.asset[ii].id], "Pipe*")) == 1: - if asset_name in ["Pipe1"]: + if asset_name in ["Pipe1", "Pipe1_cold_pipe", "Pipe4", "Pipe4_ret"]: np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].diameter.name, "DN150" ) # original pipe DN400 being sized - elif asset_name in ["Pipe1_cold_pipe"]: - np.testing.assert_array_equal( - energy_system.instance[0].area.asset[ii].diameter.name, "DN250" - ) # original pipe DN400 being sized - elif asset_name not in ["Pipe4", "Pipe4_ret", "Pipe5", "Pipe5_ret"]: + elif asset_name not in ["Pipe5", "Pipe5_ret"]: np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].diameter.name, "DN400" ) # pipe DN was not sized and should be the same as specified in the ESDL From eccbc09e42a9acbe39b7fd02cec6f999d62117d5 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 26 Jun 2024 15:57:10 +0200 Subject: [PATCH 163/275] formatting + add _total_stages --- src/mesido/workflows/grow_workflow.py | 30 +++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index c4d806232..9ed199da8 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -345,14 +345,26 @@ def post(self): parameters = self.parameters(0) # bounds = self.bounds() # Optimized ESDL - # Assume there are either no stages (write updated ESDL) or a 2 stages (only write final - # results on stage 2) + # Assume there are either no stages (write updated ESDL) or a maximum of 2 stages + # (only write final results when the stage number is the final stage) + # TODO: once database testing has been added, check that the results have only been written + # once. try: - if self._stage == 2: # When staging does exists + if self._stage == 0: + logger.error( + f"The stage number is: {self._stage} and it is excpected that the" + " stage numbering starts at 1 instead" + ) + sys.exit(1) + if self._total_stages == self._stage: # When staging does exists self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) - elif self._stage > 2: - logger.error(f"The code does not cater for a straging value of: {self._stage}") + elif self._total_stages < self._stage: + logger.error( + f"The stage number: {self._stage} is higher then the total stages" + " expected: {self._total_stages}. Assuming the stage numbering starts at 1" + ) sys.exit(1) + except AttributeError: # Staging does not exist self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) @@ -452,11 +464,13 @@ class SettingsStaged: sizes and flow directions. """ - _stage = 0 + _stage = 0 # current stage that is being used + _total_stages = 0 # total number of stages to be used def __init__( self, stage=None, + total_stages=None, boolean_bounds: list = None, priorities_output: list = None, *args, @@ -465,6 +479,7 @@ def __init__( super().__init__(*args, **kwargs) self._stage = stage + self._total_stages = total_stages self.__boolean_bounds = boolean_bounds if self._stage == 1: @@ -564,6 +579,7 @@ def run_end_scenario_sizing_no_heat_losses( solution = run_optimization_problem( end_scenario_problem_class, stage=1, + total_stages=1, **kwargs, ) @@ -606,6 +622,7 @@ def run_end_scenario_sizing( solution = run_optimization_problem( end_scenario_problem_class, stage=1, + total_stages=2, **kwargs, ) results = solution.extract_results() @@ -674,6 +691,7 @@ def run_end_scenario_sizing( solution = run_optimization_problem( end_scenario_problem_class, stage=2, + total_stages=2, boolean_bounds=boolean_bounds, priorities_output=priorities_output, **kwargs, From 9bbb0867b21708ab67a495b32a1fb1ff5a768b46 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Wed, 26 Jun 2024 16:28:28 +0200 Subject: [PATCH 164/275] updated test case to check profile mutliplier value --- examples/PoCTutorial/model/PoC Tutorial.esdl | 2 +- tests/test_updated_esdl_pre_process.py | 31 ++++++++++++++++---- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/examples/PoCTutorial/model/PoC Tutorial.esdl b/examples/PoCTutorial/model/PoC Tutorial.esdl index fcf030e42..a7bf64f2d 100644 --- a/examples/PoCTutorial/model/PoC Tutorial.esdl +++ b/examples/PoCTutorial/model/PoC Tutorial.esdl @@ -318,7 +318,7 @@ - + diff --git a/tests/test_updated_esdl_pre_process.py b/tests/test_updated_esdl_pre_process.py index 5b9868d7d..9f3bdc236 100644 --- a/tests/test_updated_esdl_pre_process.py +++ b/tests/test_updated_esdl_pre_process.py @@ -19,6 +19,7 @@ def test_updated_esdl(self): Additional checks: - Check that the unique profile identification in profile_parser assigns the correct profile + - Check that the correct mulitpler value has been used """ @@ -52,30 +53,48 @@ def test_updated_esdl(self): # demand profiles are the adapted profiles (peak-hourly, rest-5daily). Therefore the # expected max and average hard-coded values are compared to the problem values. np.testing.assert_allclose( - 1201200.0, # demand4_MW, multiplier 0.75 + 1207800, max(problem.get_timeseries("HeatingDemand_b0ff.target_heat_demand").values), + # demand4_MW, multiplier 0.75, same demand profile as demand HeatingDemand_08fd, but + # with a different multiplier. So one would expect that this value differs from + # HeatingDemand_08fd ) np.testing.assert_allclose( - 720720.0, # demand5_MW, multiplier 0.3 + 724680.0, # demand5_MW, multiplier 0.3 max(problem.get_timeseries("HeatingDemand_8fbe.target_heat_demand").values), ) np.testing.assert_allclose( - 916316.712, # demand1_MW, multiplier 0.5 + 805200.0, # demand4_MW, multiplier 0.5 max(problem.get_timeseries("HeatingDemand_08fd.target_heat_demand").values), ) np.testing.assert_allclose( - 443413.79, # demand4_MW, multiplier 0.75 + 469709.62, # demand4_MW, multiplier 0.75 np.average(problem.get_timeseries("HeatingDemand_b0ff.target_heat_demand").values), ) np.testing.assert_allclose( - 266048.27, # demand5_MW, multiplier 0.3 + 281825.77, # demand5_MW, multiplier 0.3 np.average(problem.get_timeseries("HeatingDemand_8fbe.target_heat_demand").values), ) np.testing.assert_allclose( - 575570.74, # demand1_MW, multiplier 0.5 + 313139.75, # demand4_MW, multiplier 0.5 np.average(problem.get_timeseries("HeatingDemand_08fd.target_heat_demand").values), ) + # Checkk that the correct multiplier value was used + # Compare 2 max values where the same profile was used but with different multiplier values + # HeatingDemand_08fd: multiplier 0.5 + # HeatingDemand_b0ff: multplier 0.75 + np.testing.assert_allclose( + max(problem.get_timeseries("HeatingDemand_08fd.target_heat_demand").values) / 0.5, + max(problem.get_timeseries("HeatingDemand_b0ff.target_heat_demand").values) / 0.75, + ) + np.testing.assert_allclose( + np.average(problem.get_timeseries("HeatingDemand_08fd.target_heat_demand").values) + / 0.5, + np.average(problem.get_timeseries("HeatingDemand_b0ff.target_heat_demand").values) + / 0.75, + ) + if __name__ == "__main__": import time From 4356d9d40a20b44714110b1c8dab6ef2f6999c1d Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Thu, 27 Jun 2024 13:17:14 +0200 Subject: [PATCH 165/275] 90 electricity storage discharge efficiency (#92) * creating battery test case * fixed discharging efficiency calculation battery * created esdl, timeseries and problem setup to test battery --- src/mesido/electricity_physics_mixin.py | 6 +- .../battery/input/timeseries.csv | 5 + .../battery/model/source_sink_storage.esdl | 53 +++++++++ .../battery/src/example.py | 102 ++++++++++++++++++ tests/test_electricity_storage.py | 100 +++++++++++++++++ tests/utils_tests.py | 14 +++ 6 files changed, 277 insertions(+), 3 deletions(-) create mode 100644 tests/models/unit_cases_electricity/battery/input/timeseries.csv create mode 100644 tests/models/unit_cases_electricity/battery/model/source_sink_storage.esdl create mode 100644 tests/models/unit_cases_electricity/battery/src/example.py create mode 100644 tests/test_electricity_storage.py diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index 5e06a63fb..af47bd267 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -450,7 +450,7 @@ def __electricity_storage_path_constraints(self, ensemble_member): current_in = self.state(f"{asset}.ElectricityIn.I") # is_charging is 1 if charging and powerin>0 - big_m = 2 * max(abs(self.bounds()[f"{asset}.ElectricityIn.Power"])) + big_m = 2 * max(np.abs(self.bounds()[f"{asset}.ElectricityIn.Power"])) is_charging = self.state(f"{asset}__is_charging") constraints.append(((power_in + (1 - is_charging) * big_m) / power_nom, 0.0, np.inf)) constraints.append(((power_in - is_charging * big_m) / power_nom, -np.inf, 0.0)) @@ -494,14 +494,14 @@ def __electricity_storage_path_constraints(self, ensemble_member): # discharging constraints.append( ( - (eff_power - discharge_eff * power_in + is_charging * big_m) / power_nom, + (eff_power * discharge_eff - power_in + is_charging * big_m) / power_nom, 0, np.inf, ) ) constraints.append( ( - (eff_power - discharge_eff * power_in - is_charging * big_m) / power_nom, + (eff_power * discharge_eff - power_in - is_charging * big_m) / power_nom, -np.inf, 0, ) diff --git a/tests/models/unit_cases_electricity/battery/input/timeseries.csv b/tests/models/unit_cases_electricity/battery/input/timeseries.csv new file mode 100644 index 000000000..a4f013033 --- /dev/null +++ b/tests/models/unit_cases_electricity/battery/input/timeseries.csv @@ -0,0 +1,5 @@ +DateTime,ElectricityProducer_b95d,ElectricityDemand_2af6 +01-01-2019 00:00, 900.0, 500.0 +01-01-2019 01:00, 900.0, 500.0 +01-01-2019 02:00, 1000.0, 1000.0 +01-01-2019 03:00, 1200.0, 1500.0 diff --git a/tests/models/unit_cases_electricity/battery/model/source_sink_storage.esdl b/tests/models/unit_cases_electricity/battery/model/source_sink_storage.esdl new file mode 100644 index 000000000..b266be55f --- /dev/null +++ b/tests/models/unit_cases_electricity/battery/model/source_sink_storage.esdl @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases_electricity/battery/src/example.py b/tests/models/unit_cases_electricity/battery/src/example.py new file mode 100644 index 000000000..9bd70bd57 --- /dev/null +++ b/tests/models/unit_cases_electricity/battery/src/example.py @@ -0,0 +1,102 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.techno_economic_mixin import TechnoEconomicMixin + +import numpy as np + +from rtctools.optimization.collocated_integrated_optimization_problem import ( + CollocatedIntegratedOptimizationProblem, +) +from rtctools.optimization.goal_programming_mixin import GoalProgrammingMixin +from rtctools.optimization.goal_programming_mixin_base import Goal +from rtctools.optimization.linearized_order_goal_programming_mixin import ( + LinearizedOrderGoalProgrammingMixin, +) +from rtctools.optimization.timeseries import Timeseries +from rtctools.util import run_optimization_problem + + +class TargetDemandGoal(Goal): + priority = 1 + + order = 2 + + def __init__(self, state: str, target: Timeseries): + self.state = state + + self.target_min = target + self.target_max = target + self.function_range = (0.0, 2.0 * max(target.values)) + self.function_nominal = np.median(target.values) + + def function( + self, optimization_problem: CollocatedIntegratedOptimizationProblem, ensemble_member: int + ): + return optimization_problem.state(self.state) + + +class _GoalsAndOptions: + def path_goals(self): + """ + Add goal to meet the specified power demands in the electricity network. + + Returns + ------- + Extended goals list. + """ + goals = super().path_goals().copy() + + for demand in self.energy_system_components["electricity_demand"]: + target = self.get_timeseries(f"{demand}.target_electricity_demand") + state = f"{demand}.Electricity_demand" + + goals.append(TargetDemandGoal(state, target)) + + return goals + + def energy_system_options(self): + options = super().energy_system_options() + options["include_electric_cable_power_loss"] = False + + return options + + +class ElectricityProblem( + _GoalsAndOptions, + TechnoEconomicMixin, + LinearizedOrderGoalProgrammingMixin, + GoalProgrammingMixin, + ESDLMixin, + CollocatedIntegratedOptimizationProblem, +): + """ + Problem to check the behaviour of a simple source, cable, demand network and a battery. + """ + + def constraints(self, ensemble_member): + constraints = super().constraints(ensemble_member) + + for bat in self.energy_system_components.get("electricity_storage", []): + stored_elec = self.state_vector(f"{bat}.Stored_electricity") + constraints.append((stored_elec[0], 0.0, 0.0)) + + return constraints + + def solver_options(self): + options = super().solver_options() + options["solver"] = "highs" + return options + + pass + + +if __name__ == "__main__": + elect = run_optimization_problem( + ElectricityProblem, + esdl_file_name="source_sink_storage.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + r = elect.extract_results() diff --git a/tests/test_electricity_storage.py b/tests/test_electricity_storage.py new file mode 100644 index 000000000..66e970a46 --- /dev/null +++ b/tests/test_electricity_storage.py @@ -0,0 +1,100 @@ +from pathlib import Path +from unittest import TestCase + +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization + +import numpy as np + +from utils_tests import demand_matching_test, feasibility_test + + +class TestMILPElectricSourceSink(TestCase): + def test_source_sink(self): + """ + Tests for an electricity network that consist out of a source, a sink and storage, + connected with electricity cables. + + Checks: + - Check that the efficiency for charging and discharging is used proper to determine the + consumed and stored power + - Check that the battery is used to match demand + - Check that charging and discharging properly connected to the network (direction) + - Check that the is_charging variable is set correctly + + + """ + + import models.unit_cases_electricity.battery.src.example as example + from models.unit_cases_electricity.battery.src.example import ElectricityProblem + + base_folder = Path(example.__file__).resolve().parent.parent + tol = 1e-10 + + solution = run_esdl_mesido_optimization( + ElectricityProblem, + base_folder=base_folder, + esdl_file_name="source_sink_storage.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + results = solution.extract_results() + parameters = solution.parameters(0) + + feasibility_test(solution) + + demand_matching_test(solution, results) + + storage_name = solution.energy_system_components.get("electricity_storage")[0] + charge_eff = parameters[f"{storage_name}.charge_efficiency"] + discharge_eff = parameters[f"{storage_name}.discharge_efficiency"] + is_charging = results[f"{storage_name}__is_charging"] + eff_power_change_bat = results[f"{storage_name}.Effective_power_charging"] + power_bat_network = results[f"{storage_name}.ElectricityIn.Power"] + stored_el = results[f"{storage_name}.Stored_electricity"] + + power_cable_bat = results["ElectricityCable_91c1.ElectricityOut.Power"] + np.testing.assert_allclose(power_cable_bat, power_bat_network, atol=tol) + + # if battery is charging (1), ElectricityIn.Power and effective_power charging should be + # positive, else negative + bigger_then = all(is_charging * eff_power_change_bat >= 0) + smaller_then = all((1 - is_charging) * eff_power_change_bat <= 0) + self.assertTrue(bigger_then) + self.assertTrue(smaller_then) + + bigger_then = all(is_charging * power_bat_network >= 0) + smaller_then = all((1 - is_charging) * power_bat_network <= 0) + self.assertTrue(bigger_then) + self.assertTrue(smaller_then) + + # battery should be charging at atleast one timestep to overcome the difference between max + # production and demand + self.assertTrue(sum(is_charging) >= 1) + + # stored electricity starts at 0 + np.testing.assert_allclose( + stored_el[0], + 0.0, + err_msg="The battery should be empty at the start to check if it operates and " + "predicted", + ) + + # stored electricity change should be equal to the effective power change + stored_change = stored_el[1:] - stored_el[:-1] + np.testing.assert_allclose(eff_power_change_bat[1:] * 3600, stored_change, atol=tol) + + # effective power change while charging should be equal to efficiency * powerIn + np.testing.assert_allclose( + eff_power_change_bat * is_charging, + power_bat_network * is_charging * charge_eff, + atol=tol, + ) + # effective power change while discharging should be equal to powerOut/efficiency + np.testing.assert_allclose( + eff_power_change_bat * (1 - is_charging), + power_bat_network * (1 - is_charging) / discharge_eff, + atol=tol, + ) diff --git a/tests/utils_tests.py b/tests/utils_tests.py index 5ccb11f35..d6dd57499 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -3,6 +3,20 @@ import numpy as np +def feasibility_test(solution): + feasibility = solution.solver_stats["return_status"] + + if solution.solver_options()["solver"] == "highs": + assert feasibility.lower() == "optimal" + elif solution.solver_options()["solver"] == "gurobi": + assert feasibility.lower() == "optimal" + else: + RuntimeError( + f"The solver {solution.solver_options()['solver']} is not used in test to check for " + f"optimality, please use highs or gurobi" + ) + + def demand_matching_test(solution, results): """ "Test function to check whether the milp demand of each consumer is matched""" len_times = 0.0 From 6d2c15c7664498461e561f8364a539bd3d54ea94 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 28 Jun 2024 10:16:45 +0200 Subject: [PATCH 166/275] bug fix --- src/mesido/workflows/io/write_output.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 43febe6a5..69ce51c1f 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -922,8 +922,14 @@ def _write_updated_esdl( results = self.extract_results() parameters = self.parameters(0) - input_energy_system_id = energy_system.id - energy_system.id = str(uuid.uuid4()) + _ = energy_system.id # input energy system id. Kept here as not sure if still needed + energy_system.id = str(uuid.uuid4()) # output energy system id + output_energy_system_id = energy_system.id + # Currently the simulation_id is created here, but in the future this will probably move + # to account for 1 simulation/optimization/run potentialy generating more than 1 output + # energy system (ESDL) + simulation_id = str(uuid.uuid4()) # simulation (optimization/simulator etc) id + if optimizer_sim: # network simulator energy_system.name = energy_system.name + "_Simulation" else: # network optimization From e2672bd43eb794a388abe71ed46375178c0d76b5 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 1 Jul 2024 08:46:51 +0200 Subject: [PATCH 167/275] update esdl: remove network network type check add warnings --- src/mesido/workflows/grow_workflow.py | 11 ++--------- src/mesido/workflows/io/write_output.py | 9 +++++++-- src/mesido/workflows/simulator_workflow.py | 2 -- tests/test_head_loss.py | 1 - tests/test_multiple_in_and_out_port_components.py | 2 -- 5 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 71493b1ce..9ed199da8 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -7,7 +7,6 @@ from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin from mesido.esdl.esdl_mixin import ESDLMixin from mesido.head_loss_class import HeadLossOption -from mesido.network_common import NetworkSettings from mesido.techno_economic_mixin import TechnoEconomicMixin from mesido.workflows.goals.minimize_tco_goal import MinimizeTCO from mesido.workflows.io.write_output import ScenarioOutput @@ -358,10 +357,7 @@ def post(self): ) sys.exit(1) if self._total_stages == self._stage: # When staging does exists - self._write_updated_esdl( - self._ESDLMixin__energy_system_handler.energy_system, - NetworkSettings.NETWORK_TYPE_HEAT, - ) + self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) elif self._total_stages < self._stage: logger.error( f"The stage number: {self._stage} is higher then the total stages" @@ -371,10 +367,7 @@ def post(self): except AttributeError: # Staging does not exist - self._write_updated_esdl( - self._ESDLMixin__energy_system_handler.energy_system, - NetworkSettings.NETWORK_TYPE_HEAT, - ) + self._write_updated_esdl(self._ESDLMixin__energy_system_handler.energy_system) except Exception: logger.error("Unkown error occured when evaluating self._stage for _write_updated_esdl") sys.exit(1) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index d45061c0e..8151d33dd 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -17,7 +17,6 @@ import mesido.esdl.esdl_parser from mesido.constants import GRAVITATIONAL_CONSTANT from mesido.esdl.edr_pipe_class import EDRPipeClass -from mesido.network_common import NetworkSettings from mesido.techno_economic_mixin import TechnoEconomicMixin from mesido.workflows.utils.helpers import _sort_numbered @@ -916,7 +915,10 @@ def _add_kpis_to_energy_system(self, energy_system, optimizer_sim: bool = False) # end KPIs def _write_updated_esdl( - self, energy_system, optimizer_sim: bool = False, add_kpis: bool = True, + self, + energy_system, + optimizer_sim: bool = False, + add_kpis: bool = True, ): from esdl.esdl_handler import EnergySystemHandler @@ -946,6 +948,7 @@ def _name_to_asset(name): # ------------------------------------------------------------------------------------------ # Placement + heat_pipes = set(self.energy_system_components.get("heat_pipe", [])) for _, attributes in self.esdl_assets.items(): name = attributes.name if name in [ @@ -971,6 +974,8 @@ def _name_to_asset(name): asset.delete(recursive=True) else: asset.state = esdl.AssetStateEnum.ENABLED + elif name not in heat_pipes: # because heat pipes are updated below + logger.warning(f"ESDL update: asset {name} has not updated") # Pipes: edr_pipe_properties_to_copy = ["innerDiameter", "outerDiameter", "diameter", "material"] diff --git a/src/mesido/workflows/simulator_workflow.py b/src/mesido/workflows/simulator_workflow.py index 185aab516..cce803efe 100644 --- a/src/mesido/workflows/simulator_workflow.py +++ b/src/mesido/workflows/simulator_workflow.py @@ -5,7 +5,6 @@ from mesido.esdl.esdl_mixin import ESDLMixin from mesido.head_loss_class import HeadLossOption -from mesido.network_common import NetworkSettings from mesido.techno_economic_mixin import TechnoEconomicMixin from mesido.workflows.io.write_output import ScenarioOutput from mesido.workflows.utils.adapt_profiles import ( @@ -315,7 +314,6 @@ def post(self): super().post() self._write_updated_esdl( self._ESDLMixin__energy_system_handler.energy_system, - NetworkSettings.NETWORK_TYPE_HEAT, optimizer_sim=True, ) diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 41cd095e3..1f9dba4ba 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -50,7 +50,6 @@ class SourcePipeSinkDW(SourcePipeSink): # super().post() # self._write_updated_esdl( # self._ESDLMixin__energy_system_handler.energy_system, - # NetworkSettings.NETWORK_TYPE_HEAT, # optimizer_sim=True, # ) diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index 19b0ad483..aec152098 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -40,7 +40,6 @@ class HeatProblemPost(HeatProblem): # super().post() # self._write_updated_esdl( # self._ESDLMixin__energy_system_handler.energy_system, - # NetworkSettings.NETWORK_TYPE_HEAT, # optimizer_sim=True, # ) @@ -135,7 +134,6 @@ class HeatProblemPost(HeatProblem): # super().post() # self._write_updated_esdl( # self._ESDLMixin__energy_system_handler.energy_system, - # NetworkSettings.NETWORK_TYPE_HEAT, # optimizer_sim=True, # ) From 699639b6d5e5e05f79f5ef9d02851be2d1476c49 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 1 Jul 2024 09:44:31 +0200 Subject: [PATCH 168/275] formatting --- tests/models/basic_source_and_demand/src/qth_comparison.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/models/basic_source_and_demand/src/qth_comparison.py b/tests/models/basic_source_and_demand/src/qth_comparison.py index c98705c24..30022503c 100644 --- a/tests/models/basic_source_and_demand/src/qth_comparison.py +++ b/tests/models/basic_source_and_demand/src/qth_comparison.py @@ -97,7 +97,7 @@ class QTHESDL( @property def heat_network_flow_directions(self): pipes = self.energy_system_components["heat_pipe"] - return {p: "__fixed_positive_flow" for p in pipes} + return dict.fromkeys(pipes, "__fixed_positive_flow") def constant_inputs(self, ensemble_member): inputs = super().constant_inputs(ensemble_member) From bccaaf9085000e6b47f8d91c5ffbabd61fef21d2 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Mon, 1 Jul 2024 11:27:50 +0200 Subject: [PATCH 169/275] Update src/mesido/workflows/io/write_output.py Co-authored-by: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> --- src/mesido/workflows/io/write_output.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 8151d33dd..f685ebeda 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -975,7 +975,7 @@ def _name_to_asset(name): else: asset.state = esdl.AssetStateEnum.ENABLED elif name not in heat_pipes: # because heat pipes are updated below - logger.warning(f"ESDL update: asset {name} has not updated") + logger.warning(f"ESDL update: asset {name} has not been updated") # Pipes: edr_pipe_properties_to_copy = ["innerDiameter", "outerDiameter", "diameter", "material"] From deb98a1345c4f6e04a103f60f23c766803dd0db4 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 1 Jul 2024 12:01:00 +0200 Subject: [PATCH 170/275] Electrolyzer modelling options (#98) Created the electrolyzer options to have multiple options on calculations performed on the electrolyzer. How it influences the code, will be developed in the coming weeks --- src/mesido/electricity_physics_mixin.py | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index af47bd267..07e5f7c98 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -1,4 +1,5 @@ import logging +from enum import IntEnum from math import isclose from typing import Tuple @@ -17,6 +18,28 @@ logger = logging.getLogger("mesido") +class ElectrolyzerOption(IntEnum): + """ + Enumeration for the possible options to model the electrolyzer. + For detailed calculations related to these options, see the equations themselves. + + CONSTANT_EFFICIENCY + A constant efficiency is used to determine the H2 produced per energy electricity entering + + LINEARIZED_THREE_LINES_WEAK_INEQUALITY + The efficiency curve is linearized in 3 lines, which are all inequalities and with proper + goals will move towards these lines + + LINEARIZED_THREE_LINES_EQUALITY + The efficiency curve is linearized in 3 lines, which are all equalities using binary + variables and the big-M method to select the relevant lines. + """ + + CONSTANT_EFFICIENCY = 1 + LINEARIZED_THREE_LINES_WEAK_INEQUALITY = 2 + LINEARIZED_THREE_LINES_EQUALITY = 3 + + class ElectricityPhysicsMixin(BaseComponentTypeMixin, CollocatedIntegratedOptimizationProblem): """ This class is used to model the physics of an electricity network with its assets. We model @@ -57,6 +80,9 @@ def energy_system_options(self): options["include_asset_is_switched_on"] = False options["include_electric_cable_power_loss"] = False + options["electrolyzer_efficiency"] = ( + ElectrolyzerOption.LINEARIZED_THREE_LINES_WEAK_INEQUALITY + ) return options From f1bd85bbfd0462547fce55d241faf980a0273883 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 1 Jul 2024 13:04:39 +0200 Subject: [PATCH 171/275] bug in test case, pipe length should be shorter --- tests/models/gas_pipe_topology/model/2a_gas.esdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/models/gas_pipe_topology/model/2a_gas.esdl b/tests/models/gas_pipe_topology/model/2a_gas.esdl index 3589e32b5..c9ac4698c 100644 --- a/tests/models/gas_pipe_topology/model/2a_gas.esdl +++ b/tests/models/gas_pipe_topology/model/2a_gas.esdl @@ -40,7 +40,7 @@ - + From 126c849f2ee637afbc4b2c85aa786ad9e02858cc Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 1 Jul 2024 13:05:32 +0200 Subject: [PATCH 172/275] Priceprofile heatpump (#97) Created test case where the for a heatpump with an electricity price profile. To be used when no electricity network is drawn. --- .../heat_pump_elec/input/timeseries_elec.csv | 5 + .../model/heat_pump_elec_priceprofile.esdl | 314 ++++++++++++++++++ .../heat_pump_elec/src/run_hp_elec.py | 45 ++- tests/test_multicommodity.py | 59 ++++ 4 files changed, 420 insertions(+), 3 deletions(-) create mode 100644 tests/models/unit_cases_electricity/heat_pump_elec/input/timeseries_elec.csv create mode 100644 tests/models/unit_cases_electricity/heat_pump_elec/model/heat_pump_elec_priceprofile.esdl diff --git a/tests/models/unit_cases_electricity/heat_pump_elec/input/timeseries_elec.csv b/tests/models/unit_cases_electricity/heat_pump_elec/input/timeseries_elec.csv new file mode 100644 index 000000000..4704c418f --- /dev/null +++ b/tests/models/unit_cases_electricity/heat_pump_elec/input/timeseries_elec.csv @@ -0,0 +1,5 @@ +DateTime,HeatingDemand_3322,HeatingDemand_18aa,Electr +01-01-2019 00:00, 2500000.0, 2500000.0, 0.03 +01-01-2019 01:00, 2500000.0, 2500000.0, 0.03 +01-01-2019 02:00, 2500000.0, 2500000.0, 0.0003 +01-01-2019 03:00, 2500000.0, 2500000.0, 0.03 diff --git a/tests/models/unit_cases_electricity/heat_pump_elec/model/heat_pump_elec_priceprofile.esdl b/tests/models/unit_cases_electricity/heat_pump_elec/model/heat_pump_elec_priceprofile.esdl new file mode 100644 index 000000000..4a7411bb7 --- /dev/null +++ b/tests/models/unit_cases_electricity/heat_pump_elec/model/heat_pump_elec_priceprofile.esdl @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py b/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py index e2def9854..cd8264ae7 100644 --- a/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py +++ b/tests/models/unit_cases_electricity/heat_pump_elec/src/run_hp_elec.py @@ -1,9 +1,14 @@ import esdl +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin from mesido.esdl.esdl_mixin import ESDLMixin from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption from mesido.physics_mixin import PhysicsMixin +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.goals.minimize_tco_goal import MinimizeTCO + import numpy as np @@ -260,16 +265,50 @@ def energy_system_options(self): return options +class ElectricityProblemPriceProfile( + _GoalsAndOptions, + ESDLAdditionalVarsMixin, + TechnoEconomicMixin, + LinearizedOrderGoalProgrammingMixin, + GoalProgrammingMixin, + ESDLMixin, + CollocatedIntegratedOptimizationProblem, +): + def read(self): + super().read() + + for d in self.energy_system_components["heat_demand"]: + new_timeseries = self.get_timeseries(f"{d}.target_heat_demand").values * 0.01 + self.set_timeseries(f"{d}.target_heat_demand", new_timeseries) + + def goals(self): + goals = super().goals().copy() + + goals.append(MinimizeTCO(priority=2)) + + return goals + + def energy_system_options(self): + options = super().energy_system_options() + self.heat_network_settings["minimum_velocity"] = 0.0001 + options["heat_loss_disconnected_pipe"] = False + options["neglect_pipe_heat_losses"] = True + self.heat_network_settings["head_loss_option"] = HeadLossOption.NO_HEADLOSS + + return options + + if __name__ == "__main__": sol = run_optimization_problem( - HeatProblem2, - esdl_file_name="heat_pump_elec.esdl", + ElectricityProblemPriceProfile, + esdl_file_name="heat_pump_elec_priceprofile.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, - input_timeseries_file="timeseries_import.xml", + input_timeseries_file="timeseries_elec.csv", ) results = sol.extract_results() print(results["GenericConversion_3d3f.Power_elec"]) + print(results["GenericConversion_3d3f__variable_operational_cost"]) print(results["ResidualHeatSource_aec9.Heat_source"]) # print(results["Pipe3__hn_diameter"]) # print(sol.bounds()["Pipe3__hn_diameter"]) diff --git a/tests/test_multicommodity.py b/tests/test_multicommodity.py index e90bdad26..f1f431406 100644 --- a/tests/test_multicommodity.py +++ b/tests/test_multicommodity.py @@ -210,3 +210,62 @@ def test_heat_pump_elec_min_elec(self): # check that prim producer is providing more energy to heatpump and primary demand np.testing.assert_array_less(heatdemand_prim - (heatsource_prim - heatpump_heat_prim), 0) + + def test_heat_pump_elec_price_profile(self): + """ + Verify that minimisation of the electricity power used when price of electricity is high. + + Checks: + - Standard checks for demand matching, heat to discharge and energy conservation + - Check that the producer not connected to the heat pump is only used when electricity + prices of HP are high + - Check calculation of variable operational costs which include the electricity prices + + """ + import models.unit_cases_electricity.heat_pump_elec.src.run_hp_elec as run_hp_elec + from models.unit_cases_electricity.heat_pump_elec.src.run_hp_elec import ( + ElectricityProblemPriceProfile, + ) + + base_folder = Path(run_hp_elec.__file__).resolve().parent.parent + + solution = run_esdl_mesido_optimization( + ElectricityProblemPriceProfile, + base_folder=base_folder, + esdl_file_name="heat_pump_elec_priceprofile.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_elec.csv", + ) + + results = solution.extract_results() + + demand_matching_test(solution, results) + energy_conservation_test(solution, results) + heat_to_discharge_test(solution, results) + + heatpump_power = results["GenericConversion_3d3f.Power_elec"] + heatpump_heat_sec = results["GenericConversion_3d3f.Secondary_heat"] + heatpump_disabled = results["GenericConversion_3d3f__disabled"] + heatdemand_sec = results["HeatingDemand_18aa.Heat_demand"] + var_opex_hp = results["GenericConversion_3d3f__variable_operational_cost"] + # pipe_sec_out_hp_disconnected = results["Pipe_408e__is_disconnected"] + + # check that heatpump is not used when electricity price is high: + price_profile = solution.get_timeseries("Electr.price_profile").values + price_profile_max = price_profile == max(price_profile) + self.assertTrue(all(price_profile_max >= heatpump_disabled)) + self.assertTrue(all(price_profile_max[1:] * heatpump_power[1:] == 0)) + + # check that heatpump is producing all heat for the heatdemand on the secondary side when + # electricity price is low + ind_hp = np.asarray(1 - price_profile_max).nonzero() + np.testing.assert_allclose(heatpump_heat_sec[ind_hp], heatdemand_sec[ind_hp]) + + # check variable_operational_cost for heat pump including the price_profile of electricity + var_opex_hp_non_el = 1e-6 # var_opex in ESDL for HP + timestep = 1.0 # hr + var_opex_hp_calc = sum( + (price_profile[1:] + var_opex_hp_non_el) * heatpump_power[1:] * timestep + ) + np.testing.assert_allclose(var_opex_hp_calc, var_opex_hp) From 3990431b847a5c4284cd196a0f92e31dfa82741e Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 2 Jul 2024 09:26:27 +0200 Subject: [PATCH 173/275] use coolprop, updated test cases, big fix viscosity type --- src/mesido/_darcy_weisbach.py | 20 ++++++++++++++++---- tests/test_electrolyzer.py | 17 +++++++++++++++++ tests/test_head_loss.py | 17 +++++++++++++++-- 3 files changed, 48 insertions(+), 6 deletions(-) diff --git a/src/mesido/_darcy_weisbach.py b/src/mesido/_darcy_weisbach.py index 1a5f60273..ba1564c26 100644 --- a/src/mesido/_darcy_weisbach.py +++ b/src/mesido/_darcy_weisbach.py @@ -2,8 +2,6 @@ import CoolProp as cP -from iapws import IAPWS95 - from mesido.constants import GRAVITATIONAL_CONSTANT from mesido.network_common import NetworkSettings @@ -20,11 +18,18 @@ def _kinematic_viscosity(temperature, network_type=NetworkSettings.NETWORK_TYPE_ which the pressure [Pa] and temperature [K] are provided as inputs. The gas composition is based on Groninger gas. """ + + # Kinematic viscosity [m2/s] = Dynamic viscosity [Pa-s] / density [kg/m3] if network_type == NetworkSettings.NETWORK_TYPE_HEAT: - return IAPWS95(T=273.15 + temperature, P=0.5).nu + return cP.CoolProp.PropsSI( + "V", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER" + ) / cP.CoolProp.PropsSI("D", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER") + elif network_type == NetworkSettings.NETWORK_TYPE_HYDROGEN: pressure = pressure if pressure else 101325 - return cP.CoolProp.PropsSI("V", "T", 273.15 + temperature, "P", pressure, "HYDROGEN") + return cP.CoolProp.PropsSI( + "V", "T", 273.15 + temperature, "P", pressure, "HYDROGEN" + ) / cP.CoolProp.PropsSI("D", "T", 273.15 + temperature, "P", pressure, "HYDROGEN") elif network_type == NetworkSettings.NETWORK_TYPE_GAS: pressure = pressure if pressure else 101325 return cP.CoolProp.PropsSI( @@ -34,6 +39,13 @@ def _kinematic_viscosity(temperature, network_type=NetworkSettings.NETWORK_TYPE_ "P", pressure, NetworkSettings.NETWORK_COMPOSITION_GAS, + ) / cP.CoolProp.PropsSI( + "D", + "T", + 273.15 + temperature, + "P", + pressure, + NetworkSettings.NETWORK_COMPOSITION_GAS, ) else: raise Exception("Unknown network type for computing dynamic viscosity") diff --git a/tests/test_electrolyzer.py b/tests/test_electrolyzer.py index df32c5a9f..1fd6c6d71 100644 --- a/tests/test_electrolyzer.py +++ b/tests/test_electrolyzer.py @@ -1,8 +1,10 @@ from pathlib import Path from unittest import TestCase +import mesido._darcy_weisbach as darcy_weisbach from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.network_common import NetworkSettings from mesido.util import run_esdl_mesido_optimization import numpy as np @@ -23,6 +25,7 @@ def test_electrolyzer(self): - Check the setpoint for the windfarm - Check the max production profile of the windfarm - Check the electrolyzer inequality constraints formulation + - The water kinematic viscosity of hydrogen by comparing head loss to a hard-coded value """ import models.unit_cases_electricity.electrolyzer.src.example as example @@ -48,6 +51,20 @@ def energy_system_options(self): results = solution.extract_results() + # Compare the head loss to hard-coded values. Difference expected if an error + # occours in the calculation of the gas kinematic viscosity. + v_inspect = results["Pipe_6ba6.GasOut.Q"][1] / solution.parameters(0)["Pipe_6ba6.area"] + head_loss_v_inspect = darcy_weisbach.head_loss( + v_inspect, + solution.parameters(0)["Pipe_6ba6.diameter"], + solution.parameters(0)["Pipe_6ba6.length"], + solution.energy_system_options()["wall_roughness"], + 20.0, + network_type=NetworkSettings.NETWORK_TYPE_HYDROGEN, + pressure=solution.parameters(0)["Pipe_6ba6.pressure"], + ) + np.testing.assert_allclose(head_loss_v_inspect, 104.06961666355383) + gas_price_profile = "gas.price_profile" state = "GasDemand_0cf3.Gas_demand_mass_flow" nominal = solution.variable_nominal(state) * np.median( diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 1f9dba4ba..c86a94f7d 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -33,6 +33,7 @@ def test_heat_network_head_loss(self): - That for the dH value approximated by the code is conservative, in other word greater than the theoretical value - That the pump power is conservative + - The water kinematic viscosity of water by comparing head loss to a hard-coded value """ import models.source_pipe_sink.src.double_pipe_heat as example from models.source_pipe_sink.src.double_pipe_heat import SourcePipeSink @@ -169,6 +170,12 @@ def energy_system_options(self): v_inspect, pipe_diameter, pipe_length, pipe_wall_roughness, temperature ) + # Compare the head loss to hard-coded values. Difference expected if an error + # occours in the calculation of the gas kinematic viscosity. + if head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY: + if itime == 3: # this index was chosen randomly + np.testing.assert_allclose(dh_milp_head_loss_function, 0.001690727020401069) + np.testing.assert_allclose(dh_theory, dh_milp_head_loss_function) np.testing.assert_array_less(dh_milp_head_loss_function, dh_manual_linear) @@ -399,6 +406,7 @@ def test_gas_network_head_loss(self): - that the approximated head loss matches the manually calculated value - that linearized dH satisfies the specified constraint - that only one linear line segment is active for the head loss linearization + - the kinematic viscosity of natural gas by comparing head loss to a hard-coded value """ import models.unit_cases_gas.source_sink.src.run_source_sink as example @@ -470,7 +478,7 @@ def energy_system_options(self): # Approximate dH [m] vs Q [m3/s] with a linear line between between v_points # dH_manual_linear = a*Q + b # Then use this linear function to calculate the head loss - delta_dh_theory = darcy_weisbach.head_loss( + head_loss_v_point_1 = darcy_weisbach.head_loss( v_points[1], pipe_diameter, pipe_length, @@ -478,7 +486,8 @@ def energy_system_options(self): temperature, network_type=NetworkSettings.NETWORK_TYPE_GAS, pressure=solution.parameters(0)[f"{pipes[0]}.pressure"], - ) - darcy_weisbach.head_loss( + ) + delta_dh_theory = head_loss_v_point_1 - darcy_weisbach.head_loss( v_points[0], pipe_diameter, pipe_length, @@ -487,6 +496,10 @@ def energy_system_options(self): network_type=NetworkSettings.NETWORK_TYPE_GAS, pressure=solution.parameters(0)[f"{pipes[0]}.pressure"], ) + # Compare the hydraulic power to hard-coded values. Difference expected if an error + # occours in the calculation of the gas kinematic viscosity. + if head_loss_option_setting == HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY: + np.testing.assert_allclose(head_loss_v_point_1, 1298.1537098750562) delta_volumetric_flow = (v_points[1] * np.pi * pipe_diameter**2 / 4.0) - ( v_points[0] * np.pi * pipe_diameter**2 / 4.0 From f41027759bd60bcde61ab42a768db55d9789de81 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 2 Jul 2024 10:27:24 +0200 Subject: [PATCH 174/275] check something --- src/mesido/_darcy_weisbach.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/mesido/_darcy_weisbach.py b/src/mesido/_darcy_weisbach.py index ba1564c26..662bd7bee 100644 --- a/src/mesido/_darcy_weisbach.py +++ b/src/mesido/_darcy_weisbach.py @@ -2,6 +2,8 @@ import CoolProp as cP +from iapws import IAPWS95 + from mesido.constants import GRAVITATIONAL_CONSTANT from mesido.network_common import NetworkSettings @@ -21,9 +23,10 @@ def _kinematic_viscosity(temperature, network_type=NetworkSettings.NETWORK_TYPE_ # Kinematic viscosity [m2/s] = Dynamic viscosity [Pa-s] / density [kg/m3] if network_type == NetworkSettings.NETWORK_TYPE_HEAT: - return cP.CoolProp.PropsSI( - "V", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER" - ) / cP.CoolProp.PropsSI("D", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER") + return IAPWS95(T=273.15 + temperature, P=0.5).nu + # return cP.CoolProp.PropsSI( + # "V", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER" + # ) / cP.CoolProp.PropsSI("D", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER") elif network_type == NetworkSettings.NETWORK_TYPE_HYDROGEN: pressure = pressure if pressure else 101325 From 79ad0333caaccdf73823979b6a6cfb3971a9a3b5 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 2 Jul 2024 10:37:32 +0200 Subject: [PATCH 175/275] check --- src/mesido/_darcy_weisbach.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/mesido/_darcy_weisbach.py b/src/mesido/_darcy_weisbach.py index 662bd7bee..fefb56828 100644 --- a/src/mesido/_darcy_weisbach.py +++ b/src/mesido/_darcy_weisbach.py @@ -23,10 +23,18 @@ def _kinematic_viscosity(temperature, network_type=NetworkSettings.NETWORK_TYPE_ # Kinematic viscosity [m2/s] = Dynamic viscosity [Pa-s] / density [kg/m3] if network_type == NetworkSettings.NETWORK_TYPE_HEAT: - return IAPWS95(T=273.15 + temperature, P=0.5).nu - # return cP.CoolProp.PropsSI( - # "V", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER" - # ) / cP.CoolProp.PropsSI("D", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER") + old = IAPWS95(T=273.15 + temperature, P=0.5).nu + new = cP.CoolProp.PropsSI( + "V", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER" + ) / cP.CoolProp.PropsSI("D", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER") + + if abs(old - new) / old * 100.0 > 0.001: + exit(1) + + # return IAPWS95(T=273.15 + temperature, P=0.5).nu + return cP.CoolProp.PropsSI( + "V", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER" + ) / cP.CoolProp.PropsSI("D", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER") elif network_type == NetworkSettings.NETWORK_TYPE_HYDROGEN: pressure = pressure if pressure else 101325 From 480bb51c2129af06e948fa93839878e15ba06447 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 2 Jul 2024 10:56:29 +0200 Subject: [PATCH 176/275] check pipe length --- examples/pipe_diameter_sizing/model/2a.esdl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/pipe_diameter_sizing/model/2a.esdl b/examples/pipe_diameter_sizing/model/2a.esdl index 5413b8e74..eb93b345d 100644 --- a/examples/pipe_diameter_sizing/model/2a.esdl +++ b/examples/pipe_diameter_sizing/model/2a.esdl @@ -49,7 +49,7 @@ - + @@ -345,7 +345,7 @@ - + From d3e6dec97763ab9f88026623e0742a2ef73482ab Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 2 Jul 2024 10:57:07 +0200 Subject: [PATCH 177/275] temp tox settings --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index cda45d59d..583bd62e6 100644 --- a/tox.ini +++ b/tox.ini @@ -32,7 +32,7 @@ deps = flake8-comprehensions flake8-import-order pep8-naming -commands = flake8 examples src tests setup.py +commands = flake8 examples src tests/pipe_diameter_sizing.py setup.py [testenv:black] From 757809a7c993bcc2f4d67ced1c417c0b635a4360 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 2 Jul 2024 10:59:00 +0200 Subject: [PATCH 178/275] remove temp --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 583bd62e6..cda45d59d 100644 --- a/tox.ini +++ b/tox.ini @@ -32,7 +32,7 @@ deps = flake8-comprehensions flake8-import-order pep8-naming -commands = flake8 examples src tests/pipe_diameter_sizing.py setup.py +commands = flake8 examples src tests setup.py [testenv:black] From 3a7aefb14ca183952ae9e69f613d2b5c02554f37 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 2 Jul 2024 13:25:58 +0200 Subject: [PATCH 179/275] remove all temp code, use correct code --- src/mesido/_darcy_weisbach.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/mesido/_darcy_weisbach.py b/src/mesido/_darcy_weisbach.py index fefb56828..32aea1d7e 100644 --- a/src/mesido/_darcy_weisbach.py +++ b/src/mesido/_darcy_weisbach.py @@ -2,8 +2,6 @@ import CoolProp as cP -from iapws import IAPWS95 - from mesido.constants import GRAVITATIONAL_CONSTANT from mesido.network_common import NetworkSettings @@ -23,19 +21,9 @@ def _kinematic_viscosity(temperature, network_type=NetworkSettings.NETWORK_TYPE_ # Kinematic viscosity [m2/s] = Dynamic viscosity [Pa-s] / density [kg/m3] if network_type == NetworkSettings.NETWORK_TYPE_HEAT: - old = IAPWS95(T=273.15 + temperature, P=0.5).nu - new = cP.CoolProp.PropsSI( - "V", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER" - ) / cP.CoolProp.PropsSI("D", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER") - - if abs(old - new) / old * 100.0 > 0.001: - exit(1) - - # return IAPWS95(T=273.15 + temperature, P=0.5).nu return cP.CoolProp.PropsSI( "V", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER" ) / cP.CoolProp.PropsSI("D", "T", 273.15 + temperature, "P", 0.5 * 10**6, "WATER") - elif network_type == NetworkSettings.NETWORK_TYPE_HYDROGEN: pressure = pressure if pressure else 101325 return cP.CoolProp.PropsSI( From abae89b83ab05e62ca6fe3005e6b1b05c843caf8 Mon Sep 17 00:00:00 2001 From: AlexMGTNO <123077261+AlexMGTNO@users.noreply.github.com> Date: Tue, 2 Jul 2024 15:26:01 +0200 Subject: [PATCH 180/275] Electrolyzer Constant Efficiency (#100) DEV: added electrolyzer constant efficiency constraint and corresponding test suite --- .gitignore | 2 + src/mesido/electricity_physics_mixin.py | 110 +++++++++++------- src/mesido/esdl/esdl_heat_model.py | 1 + .../milp/multicommodity/electrolyzer.py | 2 + .../timeseries_minimum_electrolyzer_power.csv | 4 + .../electrolyzer/src/example.py | 14 ++- tests/test_electrolyzer.py | 105 +++++++++++++---- tests/test_esdl_parsing.py | 6 +- tests/test_profile_parsing.py | 8 +- 9 files changed, 181 insertions(+), 71 deletions(-) create mode 100644 tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv diff --git a/.gitignore b/.gitignore index d01bc1ee7..7c8d6775c 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,5 @@ run_pipe_compare.py *_GrowOptimized.esdl *_GrowOptimized_esdl_string.esdl *_Simulation.esdl +# Alejandro Martin +*_amg_* \ No newline at end of file diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index 07e5f7c98..181fbf691 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -611,52 +611,84 @@ def __electrolyzer_path_constaint(self, ensemble_member): """ constraints = [] parameters = self.parameters(ensemble_member) + options = self.energy_system_options() + # TODO: CHECK UNITS MASSFLOW for asset in self.energy_system_components.get("electrolyzer", []): gas_mass_flow_out = self.state(f"{asset}.Gas_mass_flow_out") power_consumed = self.state(f"{asset}.Power_consumed") - - # Multiple linear lines - curve_fit_number_of_lines = 3 - linear_coef_a, linear_coef_b = self._get_linear_coef_electrolyzer_mass_vs_epower_fit( - parameters[f"{asset}.a_eff_coefficient"], - parameters[f"{asset}.b_eff_coefficient"], - parameters[f"{asset}.c_eff_coefficient"], - n_lines=curve_fit_number_of_lines, - electrical_power_min=max( - parameters[f"{asset}.minimum_load"], - 0.01 * self.bounds()[f"{asset}.ElectricityIn.Power"][1], - ), - electrical_power_max=self.bounds()[f"{asset}.ElectricityIn.Power"][1], - ) - power_consumed_vect = ca.repmat(power_consumed, len(linear_coef_a)) - gas_mass_flow_out_vect = ca.repmat(gas_mass_flow_out, len(linear_coef_a)) - gass_mass_out_linearized_vect = linear_coef_a * power_consumed_vect + linear_coef_b var_name = self.__asset_is_switched_on_map[asset] asset_is_switched_on = self.state(var_name) + if options["electrolyzer_efficiency"] == ElectrolyzerOption.CONSTANT_EFFICIENCY: + nominal = ( + self.variable_nominal(f"{asset}.Gas_mass_flow_out") + * self.variable_nominal(f"{asset}.Power_consumed") + ) ** 0.5 + big_m = ( + self.bounds()[f"{asset}.Power_consumed"][1] / parameters[f"{asset}.efficiency"] + ) * 2 + constraints.extend( + [ + ( + (gas_mass_flow_out * parameters[f"{asset}.efficiency"] - power_consumed) + / nominal, + 0.0, + 0.0, + ), + ] + ) - gass_mass_out_max = ( - linear_coef_a[-1] * self.bounds()[f"{asset}.Power_consumed"][1] + linear_coef_b[-1] - ) - big_m = gass_mass_out_max * 2 - nominal = ( - self.variable_nominal(f"{asset}.Gas_mass_flow_out") - * min(linear_coef_a) - * self.variable_nominal(f"{asset}.Power_consumed") - ) ** 0.5 - constraints.extend( - [ - ( + elif ( + options["electrolyzer_efficiency"] + == ElectrolyzerOption.LINEARIZED_THREE_LINES_WEAK_INEQUALITY + ): + curve_fit_number_of_lines = 3 + linear_coef_a, linear_coef_b = ( + self._get_linear_coef_electrolyzer_mass_vs_epower_fit( + parameters[f"{asset}.a_eff_coefficient"], + parameters[f"{asset}.b_eff_coefficient"], + parameters[f"{asset}.c_eff_coefficient"], + n_lines=curve_fit_number_of_lines, + electrical_power_min=max( + parameters[f"{asset}.minimum_load"], + 0.01 * self.bounds()[f"{asset}.ElectricityIn.Power"][1], + ), + electrical_power_max=self.bounds()[f"{asset}.ElectricityIn.Power"][1], + ) + ) + power_consumed_vect = ca.repmat(power_consumed, len(linear_coef_a)) + gas_mass_flow_out_vect = ca.repmat(gas_mass_flow_out, len(linear_coef_a)) + gass_mass_out_linearized_vect = linear_coef_a * power_consumed_vect + linear_coef_b + + gass_mass_out_max = ( + linear_coef_a[-1] * self.bounds()[f"{asset}.Power_consumed"][1] + + linear_coef_b[-1] + ) + nominal = ( + self.variable_nominal(f"{asset}.Gas_mass_flow_out") + * min(linear_coef_a) + * self.variable_nominal(f"{asset}.Power_consumed") + ) ** 0.5 + big_m = gass_mass_out_max * 2 + constraints.extend( + [ ( - gas_mass_flow_out_vect - - gass_mass_out_linearized_vect - - (1 - asset_is_switched_on) * big_m - ) - / nominal, - -np.inf, - 0.0, - ), - ] - ) + ( + gas_mass_flow_out_vect + - gass_mass_out_linearized_vect + - (1 - asset_is_switched_on) * big_m + ) + / nominal, + -np.inf, + 0.0, + ), + ] + ) + elif ( + options["electrolyzer_efficiency"] + == ElectrolyzerOption.LINEARIZED_THREE_LINES_EQUALITY + ): + raise NotImplementedError + constraints.append( ((gas_mass_flow_out + asset_is_switched_on * big_m) / big_m, 0.0, np.inf) ) diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 60231a7f8..c199800fa 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1995,6 +1995,7 @@ def equations(x): nominal_power_consumed=max_power / 2.0, Q_nominal=q_nominal, density=density, + efficiency=eff_max, GasOut=dict( Q=dict( min=0.0, diff --git a/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py b/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py index e4d727d98..6b01327c2 100644 --- a/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py +++ b/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py @@ -40,6 +40,8 @@ def __init__(self, name, **modifiers): self.Q_nominal = nan self.min_voltage = nan + self.efficiency = nan + self.nominal_gass_mass_out = self.Q_nominal * self.density self.nominal_power_consumed = nan diff --git a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv new file mode 100644 index 000000000..077783356 --- /dev/null +++ b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv @@ -0,0 +1,4 @@ +DateTime,elec,gas,WindPark_7f14 +01-01-2019 00:00, 1.0, 1000000.0, 100000000.0 +01-01-2019 01:00, 1.0, 1000000.0, 100000000.0 +01-01-2019 02:00, 1.0, 1000000.0, 49000000.0 diff --git a/tests/models/unit_cases_electricity/electrolyzer/src/example.py b/tests/models/unit_cases_electricity/electrolyzer/src/example.py index 00e9a78dd..2685c48cf 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/src/example.py +++ b/tests/models/unit_cases_electricity/electrolyzer/src/example.py @@ -1,3 +1,4 @@ +from mesido.electricity_physics_mixin import ElectrolyzerOption from mesido.esdl.esdl_mixin import ESDLMixin from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile @@ -124,7 +125,7 @@ def constraints(self, ensemble_member): return constraints -class MILPProblem( +class MILPProblemInequality( _GoalsAndOptions, TechnoEconomicMixin, LinearizedOrderGoalProgrammingMixin, @@ -156,9 +157,18 @@ def energy_system_options(self): # return super().times(variable)[:5] +class MILPProblemConstantEfficiency(MILPProblemInequality): + + def energy_system_options(self): + options = super().energy_system_options() + options["electrolyzer_efficiency"] = ElectrolyzerOption.CONSTANT_EFFICIENCY + + return options + + if __name__ == "__main__": elect = run_optimization_problem( - MILPProblem, + MILPProblemInequality, esdl_file_name="h2.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, diff --git a/tests/test_electrolyzer.py b/tests/test_electrolyzer.py index df32c5a9f..06e57d55b 100644 --- a/tests/test_electrolyzer.py +++ b/tests/test_electrolyzer.py @@ -8,14 +8,12 @@ import numpy as np -# from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test - - class TestElectrolyzer(TestCase): - def test_electrolyzer(self): + def test_electrolyzer_inequality(self): """ This test is to check the functioning the example with an offshore wind farm in combination - with an electrolyzer and hydrogen storage. + with an electrolyzer and hydrogen storage. The electrolyzer is modelled as the option + LINEARIZED_THREE_LINES_WEAK_INEQUALITY. Checks: - The objective value with the revenue included @@ -26,19 +24,12 @@ def test_electrolyzer(self): """ import models.unit_cases_electricity.electrolyzer.src.example as example - from models.unit_cases_electricity.electrolyzer.src.example import MILPProblem + from models.unit_cases_electricity.electrolyzer.src.example import MILPProblemInequality base_folder = Path(example.__file__).resolve().parent.parent - class MILPProblemSolve(MILPProblem): - def energy_system_options(self): - options = super().energy_system_options() - self.gas_network_settings["pipe_maximum_pressure"] = 100.0 # [bar] - self.gas_network_settings["pipe_minimum_pressure"] = 0.0 - return options - solution = run_esdl_mesido_optimization( - MILPProblem, + MILPProblemInequality, base_folder=base_folder, esdl_file_name="h2.esdl", esdl_parser=ESDLFileParser, @@ -143,9 +134,6 @@ def energy_system_options(self): results["Electrolyzer_fc66.ElectricityIn.Power"] * a[i] + b[i] + 1.0e-3, ) - # print(results["Electrolyzer_fc66.ElectricityIn.Power"]) - # print(results["Electrolyzer_fc66.Gas_mass_flow_out"]) - # ----------------------------------------------------------------------------------------- # Do cost checks @@ -186,12 +174,83 @@ def energy_system_options(self): sum(results["Electrolyzer_fc66__investment_cost"]), ) # ----------------------------------------------------------------------------------------- + # TODO: add check on the electricity power conservation + + def test_electrolyzer_minimum_power(self): + """ + This test is to check that the electrolyzer is switched off when input power is below + the minimum power. The electrolyzer is modelled as the option + LINEARIZED_THREE_LINES_WEAK_INEQUALITY. + + Checks: + - Input power to the electrolyzer is 0 + - Output gas is 0 + - Electrolyzer is switched off + + """ + import models.unit_cases_electricity.electrolyzer.src.example as example + from models.unit_cases_electricity.electrolyzer.src.example import MILPProblemInequality + + base_folder = Path(example.__file__).resolve().parent.parent + solution = run_esdl_mesido_optimization( + MILPProblemInequality, + base_folder=base_folder, + esdl_file_name="h2.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_minimum_electrolyzer_power.csv", + ) -if __name__ == "__main__": - import time + results = solution.extract_results() - start_time = time.time() - test = TestElectrolyzer() - sol = test.test_electrolyzer() - print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) + # Check that the input power is 0 + np.testing.assert_allclose( + results["Electrolyzer_fc66.ElectricityIn.Power"][-1], + 0.0, + ) + # Check that the output gas is 0 + np.testing.assert_allclose( + results["Electrolyzer_fc66.Gas_mass_flow_out"][-1], + 0.0, + ) + # Check that the electrolyzer is switched off + np.testing.assert_allclose( + results["Electrolyzer_fc66__asset_is_switched_on"][-1], + 0, + ) + + def test_electrolyzer_constant_efficiency(self): + """ + This test is to check the functioning the example with an offshore wind farm in combination + with an electrolyzer and hydrogen storage. The electrolyzer is modelled as the option + CONSTANT_EFFICIENCY. + + Checks: + - Check the constant efficiency formulation of the electrolyzer + + """ + import models.unit_cases_electricity.electrolyzer.src.example as example + from models.unit_cases_electricity.electrolyzer.src.example import ( + MILPProblemConstantEfficiency, + ) + + base_folder = Path(example.__file__).resolve().parent.parent + + solution = run_esdl_mesido_optimization( + MILPProblemConstantEfficiency, + base_folder=base_folder, + esdl_file_name="h2.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + + results = solution.extract_results() + + # Electrolyser + efficiency = solution.parameters(0)["Electrolyzer_fc66.efficiency"] + np.testing.assert_allclose( + results["Electrolyzer_fc66.Gas_mass_flow_out"] * efficiency, + results["Electrolyzer_fc66.ElectricityIn.Power"], + ) diff --git a/tests/test_esdl_parsing.py b/tests/test_esdl_parsing.py index 551b7d873..f67a24e6b 100644 --- a/tests/test_esdl_parsing.py +++ b/tests/test_esdl_parsing.py @@ -17,12 +17,12 @@ def test_from_string_and_from_file_are_equal(self): from using either the file or the string as input are the same. """ import models.unit_cases_electricity.electrolyzer.src.example as example - from models.unit_cases_electricity.electrolyzer.src.example import MILPProblem + from models.unit_cases_electricity.electrolyzer.src.example import MILPProblemInequality base_folder = Path(example.__file__).resolve().parent.parent solution_from_file = run_optimization_problem( - MILPProblem, + MILPProblemInequality, base_folder=base_folder, esdl_file_name="h2.esdl", esdl_parser=ESDLFileParser, @@ -34,7 +34,7 @@ def test_from_string_and_from_file_are_equal(self): esdl_string = solution_from_file.esdl_bytes_string solution_from_string = run_optimization_problem( - MILPProblem, + MILPProblemInequality, base_folder=base_folder, esdl_string=esdl_string, esdl_parser=ESDLStringParser, diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index 11e4dd004..ef6ec7479 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -76,12 +76,12 @@ def test_loading_from_csv(self): default UTC timezone has been set. """ import models.unit_cases_electricity.electrolyzer.src.example as example - from models.unit_cases_electricity.electrolyzer.src.example import MILPProblem + from models.unit_cases_electricity.electrolyzer.src.example import MILPProblemInequality base_folder = Path(example.__file__).resolve().parent.parent model_folder = base_folder / "model" input_folder = base_folder / "input" - problem = MILPProblem( + problem = MILPProblemInequality( esdl_parser=ESDLFileParser, base_folder=base_folder, model_folder=model_folder, @@ -145,12 +145,12 @@ def test_loading_from_csv_with_influx_profiles_given(self): if the loaded profiles match those specified in the csv. """ import models.unit_cases_electricity.electrolyzer.src.example as example - from models.unit_cases_electricity.electrolyzer.src.example import MILPProblem + from models.unit_cases_electricity.electrolyzer.src.example import MILPProblemInequality base_folder = Path(example.__file__).resolve().parent.parent model_folder = base_folder / "model" input_folder = base_folder / "input" - problem = MILPProblem( + problem = MILPProblemInequality( esdl_parser=ESDLFileParser, base_folder=base_folder, model_folder=model_folder, From 02ee2a78d5aa937c1b3c97bc74d329d2f4f2af88 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Tue, 2 Jul 2024 19:39:41 +0200 Subject: [PATCH 181/275] Gas import and export (#99) Added the parsing of the ESDL import and export assets, which is similar to gas/electricity producer and consumer respectively. --- src/mesido/esdl/asset_to_component_base.py | 2 + src/mesido/esdl/esdl_heat_model.py | 44 +++++++++++++++++++--- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index cfbc58d1b..a082a4e90 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -81,6 +81,7 @@ class _AssetToComponentBase: "ElectricityDemand": "electricity_demand", "ElectricityProducer": "electricity_source", "Electrolyzer": "electrolyzer", + "Export": "export", "Compressor": "compressor", "GenericConsumer": "heat_demand", "CoolingDemand": "cold_demand", @@ -96,6 +97,7 @@ class _AssetToComponentBase: "GeothermalSource": "heat_source", "Losses": "heat_demand", "HeatProducer": "heat_source", + "Import": "import", "ResidualHeatSource": "heat_source", "GenericConversion": "heat_exchanger", "Joint": "node", diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index c199800fa..fae786472 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1481,7 +1481,7 @@ def convert_electricity_demand(self, asset: Asset) -> Tuple[Type[ElectricityDema ------- ElectricityDemand class with modifiers """ - assert asset.asset_type in {"ElectricityDemand"} + assert asset.asset_type in {"ElectricityDemand", "Export"} max_demand = asset.attributes.get("power", math.inf) min_voltage = asset.in_ports[0].carrier.voltage @@ -1506,6 +1506,40 @@ def convert_electricity_demand(self, asset: Asset) -> Tuple[Type[ElectricityDema return ElectricityDemand, modifiers + def convert_import(self, asset: Asset): + """ + The definition of an Import asset, is an asset that imports energy, thus adds energy to + the network, thereby it acts as a producer." + """ + assert asset.asset_type in {"Import"} + + if isinstance(asset.out_ports[0].carrier, esdl.esdl.GasCommodity): + return self.convert_gas_source(asset) + elif isinstance(asset.out_ports[0].carrier, esdl.esdl.ElectricityCommodity): + return self.convert_electricity_source(asset) + else: + raise RuntimeError( + f"Commodity of type {type(asset.out_ports[0].carrier)} for asset Import " + f"{asset.name} cannot be converted" + ) + + def convert_export(self, asset: Asset): + """ + The definition of an Export asset, is an asset that exports energy from the network, thus + extracts energy to the network, thereby it acts as a consumer." + """ + assert asset.asset_type in {"Export"} + + if isinstance(asset.in_ports[0].carrier, esdl.esdl.GasCommodity): + return self.convert_gas_demand(asset) + elif isinstance(asset.in_ports[0].carrier, esdl.esdl.ElectricityCommodity): + return self.convert_electricity_demand(asset) + else: + raise RuntimeError( + f"Commodity of type {type(asset.in_ports[0].carrier)} for asset Export " + f"{asset.name} cannot be converted" + ) + def convert_electricity_source(self, asset: Asset) -> Tuple[Type[ElectricitySource], MODIFIERS]: """ This function converts the ElectricitySource object in esdl to a set of modifiers that can @@ -1545,7 +1579,7 @@ def convert_electricity_source(self, asset: Asset) -> Tuple[Type[ElectricitySour ------- ElectricitySource class with modifiers """ - assert asset.asset_type in {"ElectricityProducer", "WindPark", "PVInstallation"} + assert asset.asset_type in {"ElectricityProducer", "WindPark", "PVInstallation", "Import"} max_supply = asset.attributes.get( "power", math.inf @@ -1564,7 +1598,7 @@ def convert_electricity_source(self, asset: Asset) -> Tuple[Type[ElectricitySour **self._get_cost_figure_modifiers(asset), ) - if asset.asset_type == "ElectricityProducer": + if asset.asset_type in ["ElectricityProducer", "Import"]: return ElectricitySource, modifiers if asset.asset_type == "WindPark": return WindPark, modifiers @@ -1822,7 +1856,7 @@ def convert_gas_demand(self, asset: Asset) -> Tuple[Type[GasDemand], MODIFIERS]: ------- GasDemand class with modifiers """ - assert asset.asset_type in {"GasDemand"} + assert asset.asset_type in {"GasDemand", "Export"} id_mapping = asset.global_properties["carriers"][asset.in_ports[0].carrier.id][ "id_number_mapping" @@ -1891,7 +1925,7 @@ def convert_gas_source(self, asset: Asset) -> Tuple[Type[GasSource], MODIFIERS]: ------- GasDemand class with modifiers """ - assert asset.asset_type in {"GasProducer"} + assert asset.asset_type in {"GasProducer", "Import"} q_nominal = self._get_connected_q_nominal(asset) density_value = self.get_density(asset.name, asset.out_ports[0].carrier) From ee029c7ea6295266bd084f7b990052cb9d1131bf Mon Sep 17 00:00:00 2001 From: Sebastiaan la Fleur Date: Wed, 3 Jul 2024 11:31:29 +0200 Subject: [PATCH 182/275] 105: Clarify the license as LGPLv3. --- COPYING.LESSER => LICENSE | 0 MANIFEST.in | 1 + README.md | 9 +++++++++ COPYING => additional_info_for_license.txt | 7 +++++++ setup.cfg | 2 +- 5 files changed, 18 insertions(+), 1 deletion(-) rename COPYING.LESSER => LICENSE (100%) rename COPYING => additional_info_for_license.txt (99%) diff --git a/COPYING.LESSER b/LICENSE similarity index 100% rename from COPYING.LESSER rename to LICENSE diff --git a/MANIFEST.in b/MANIFEST.in index ce3306345..ec23f3108 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,3 +2,4 @@ recursive-include src/mesido/modelica/WarmingUp * include versioneer.py include src/mesido/_version.py include src/mesido/esdl/_edr_pipes.json +include additional_info_for_license.txt diff --git a/README.md b/README.md index c32861e1e..37d31578d 100644 --- a/README.md +++ b/README.md @@ -86,3 +86,12 @@ In order to release this package: 6. Check [Github](https://github.com/Multi-Energy-Systems-Optimization/mesido/actions) to confirm the release is processed without errors. 7. Once the release has finished, confirm the new version is available on [pypi](https://pypi.org/project/mesido/). + + +License +======= + +This code base is licensed as LGPLv3 as specified in `LICENSE`. However, the LGPLv3 license +references the GPLv3 license. As such, we have added a copy of GPLv3 as a reference in the file +`additional_info_for_license.txt`. This does NOT entail that this code base is licensed as `GPLv3`. +The copy of the `GPLv3` license is only added as a reference. diff --git a/COPYING b/additional_info_for_license.txt similarity index 99% rename from COPYING rename to additional_info_for_license.txt index f288702d2..75d176cb5 100644 --- a/COPYING +++ b/additional_info_for_license.txt @@ -1,3 +1,10 @@ +In accordance with LGPLv3, a combined work should also contain a copy of the GPLv3 license. +A copy may be found below. This is added as a reference and this does NOT license this library +as GPLv3. + + +A copy of GPLv3 as reference (copied from https://www.gnu.org/licenses/gpl-3.0.txt): + GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 diff --git a/setup.cfg b/setup.cfg index cbf1f11d5..cbfe35f91 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [metadata] -license_file = COPYING.LESSER +license_file = LICENSE # See the docstring in versioneer.py for instructions. Note that you must # re-run 'versioneer.py setup' after changing this section, and commit the From 4a49c51761d797ee646b449737a30a742ab55354 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Thu, 4 Jul 2024 08:58:26 +0200 Subject: [PATCH 183/275] wip: still testing with no heat losses --- tests/test_cold_demand.py | 43 ++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 0e9dd4554..1f2835a6e 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -98,16 +98,20 @@ def test_wko(self): base_folder = Path(example.__file__).resolve().parent.parent class HeatingCoolingProblem(HeatProblem): - # def energy_system_options(self): - # options = super().energy_system_options() - # options["neglect_pipe_heat_losses"] = True - # return options + + # temp code below + def energy_system_options(self): + options = super().energy_system_options() + options["neglect_pipe_heat_losses"] = True + return options def constraints(self, ensemble_member): constraints = super().constraints(ensemble_member) - # Add cyclic constraint, this will also ensure that the total power used in the - # lower temp & higher temp well and via versa is the same. + # TODO: confirm if volume or heat balance is required over year. This will + # determine if cyclic contraint below is for stored_heat or stored_volume + # Add stored_heat cyclic constraint, this will also ensure that the total heat + # change in the wko is 0 over the timeline # Note: # - WKO in cooling mode: Hot well is being charged with heat and the cold well is # being discharged @@ -116,35 +120,21 @@ def constraints(self, ensemble_member): for a in self.energy_system_components.get("low_temperature_ates", []): stored_heat = self.state_vector(f"{a}.Stored_heat") constraints.append(((stored_heat[-1] - stored_heat[0]), 0.0, 0.0)) - # This was added to force the heatpump to start loading the WKO 1st 3 timesteps - # constraints.append((stored_heat[0], 0.0, 0.0)) - - # TODO: confirm if the yearly balance between warm and cold well is heat / flow - # related? # This code below might be needed - # Add constriant such that the total volume used of the lower temp & higher temp - # well of the WKO is the same. Yearly volume balance between the 2 wells. This - # ensures volume balance over the timeline. This is done by adding a constriant to - # esnure the total volume change over the period = 0. + # Add stored_heat cyclic constraint, this will also ensure that the volume + # into the lower temp & out of the higher temp is the same as the volume + # out of the lower temp & into the higher temp over the timeline. # Note: # - Volume increase: Hot well is being charged and the cold well is being # discharged. -> WKO in cooling mode # - Volume decrease: Cold well is being charged and the hot well is being # discharged. -> WKO in heating mode - # if heat balance over the year is required, then this needs to change ?????? TBC # for ates_id in self.energy_system_components.get("low_temperature_ates", []): # stored_volume = self.state_vector(f"{ates_id}.Stored_volume") # volume_usage = 0.0 - # volume_usage = stored_volume[0] - stored_volume[-1] # constraints.append((volume_usage, 0.0, 0.0)) - # for itstep in range(len(self.times()) - 1): - # volume_usage = ( - # volume_usage + stored_volume[itstep + 1] - stored_volume[itstep] - # ) - # constraints.append((volume_usage, 0.0, 0.0)) - return constraints heat_problem = run_esdl_mesido_optimization( @@ -175,3 +165,10 @@ def constraints(self, ensemble_member): test_cold_demand.test_wko() a = 1 + + +# results["Pipe2.HeatIn.Heat"] - results["Pipe2.HeatOut.Heat"] + (results["Pipe5.HeatIn.Heat"] - results["Pipe5.HeatOut.Heat"]) + (results["ATES_226d.Stored_heat"][1] - results["ATES_226d.Stored_heat"][0])/3600 + +# temp = results["Pipe2.HeatIn.Heat"] - results["Pipe2.HeatOut.Heat"] + (results["Pipe5.HeatIn.Heat"] - results["Pipe5.HeatOut.Heat"]) + +# (results["ATES_226d.Stored_heat"][1:] - results["ATES_226d.Stored_heat"][0:-1])/3600 + temp[1:] \ No newline at end of file From f1c069d6b7324dc9252d72e86206e74977fe39d0 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Fri, 5 Jul 2024 10:34:20 +0200 Subject: [PATCH 184/275] Remove last occurance of iawps (#109) --- setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py index a43586463..f10e6be60 100644 --- a/setup.py +++ b/setup.py @@ -64,7 +64,6 @@ "casadi == 3.6.3", "StrEnum == 0.4.15", "CoolProp==6.6.0", - "iapws==1.5.3", ], tests_require=["pytest", "pytest-runner", "numpy"], include_package_data=True, From ec1fa2079afb8bf59b5da7a5a9c41d19998493db Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 9 Jul 2024 15:42:59 +0200 Subject: [PATCH 185/275] formatting fix, already exists in main --- tests/models/basic_source_and_demand/src/qth_comparison.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/models/basic_source_and_demand/src/qth_comparison.py b/tests/models/basic_source_and_demand/src/qth_comparison.py index c98705c24..30022503c 100644 --- a/tests/models/basic_source_and_demand/src/qth_comparison.py +++ b/tests/models/basic_source_and_demand/src/qth_comparison.py @@ -97,7 +97,7 @@ class QTHESDL( @property def heat_network_flow_directions(self): pipes = self.energy_system_components["heat_pipe"] - return {p: "__fixed_positive_flow" for p in pipes} + return dict.fromkeys(pipes, "__fixed_positive_flow") def constant_inputs(self, ensemble_member): inputs = super().constant_inputs(ensemble_member) From 9ccff5e9c2ea19481c1b50d73c3446803328790a Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Wed, 10 Jul 2024 13:48:39 +0200 Subject: [PATCH 186/275] Utils test update (#102) utils_test is updated with checks on - gas and electricity demand profile matching - generalized electricity power conservation - electric buss power conservation test --- src/mesido/base_component_type_mixin.py | 2 +- tests/test_elec_boiler.py | 11 ++- tests/test_electric_bus.py | 19 ++--- tests/test_electric_source_sink.py | 45 +++--------- tests/test_electricity_storage.py | 3 +- tests/utils_tests.py | 95 ++++++++++++++++++++----- 6 files changed, 108 insertions(+), 67 deletions(-) diff --git a/src/mesido/base_component_type_mixin.py b/src/mesido/base_component_type_mixin.py index c9a04ff59..c5d2f7c30 100644 --- a/src/mesido/base_component_type_mixin.py +++ b/src/mesido/base_component_type_mixin.py @@ -23,7 +23,7 @@ def energy_system_components(self) -> Dict[str, str]: def energy_system_components_get(self, list_types: list) -> list: components = [] for component_type in list_types: - components.extend(self.energy_system_components.get(component_type)) + components.extend(self.energy_system_components.get(component_type, [])) components = list(set(components)) return components diff --git a/tests/test_elec_boiler.py b/tests/test_elec_boiler.py index b1ca9fcb4..9db8d6f2e 100644 --- a/tests/test_elec_boiler.py +++ b/tests/test_elec_boiler.py @@ -7,7 +7,12 @@ import numpy as np -from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test +from utils_tests import ( + demand_matching_test, + electric_power_conservation_test, + energy_conservation_test, + heat_to_discharge_test, +) class TestElecBoiler(TestCase): @@ -20,7 +25,7 @@ def test_elec_boiler(self): 1. demand is matched 2. energy conservation in the network 3. heat to discharge - 4. energy conservation over the commodity + 4. energy conservation over the heat and electricity commodity """ import models.source_pipe_sink.src.double_pipe_heat as example from models.source_pipe_sink.src.double_pipe_heat import SourcePipeSink @@ -41,6 +46,7 @@ def test_elec_boiler(self): demand_matching_test(heat_problem, results) energy_conservation_test(heat_problem, results) heat_to_discharge_test(heat_problem, results) + electric_power_conservation_test(heat_problem, results) np.testing.assert_array_less(0.0, results["ElectricBoiler_9aab.Heat_source"]) np.testing.assert_array_less(0.0, results["ElectricityProducer_4dde.ElectricityOut.Power"]) @@ -80,6 +86,7 @@ def test_air_water_hp_elec(self): demand_matching_test(heat_problem, results) energy_conservation_test(heat_problem, results) heat_to_discharge_test(heat_problem, results) + electric_power_conservation_test(heat_problem, results) np.testing.assert_array_less(0.0, results["HeatPump_d8fd.Heat_source"]) np.testing.assert_array_less(0.0, results["ElectricityProducer_4dde.ElectricityOut.Power"]) diff --git a/tests/test_electric_bus.py b/tests/test_electric_bus.py index 71f0d8766..77a87059b 100644 --- a/tests/test_electric_bus.py +++ b/tests/test_electric_bus.py @@ -16,6 +16,8 @@ import numpy as np +from utils_tests import electric_power_conservation_test + class TestMILPbus(TestCase): def test_voltages_and_power_network1(self): @@ -46,6 +48,10 @@ def test_voltages_and_power_network1(self): input_timeseries_file="timeseries.csv", ) results = solution.extract_results() + + # electric power conservation system and no dissipation of power and current in bus + electric_power_conservation_test(solution, results) + v1 = results["Bus_f262.ElectricityConn[1].V"] v2 = results["Bus_f262.ElectricityConn[2].V"] v_outgoing_cable = results["ElectricityCable_de9a.ElectricityIn.V"] @@ -53,14 +59,6 @@ def test_voltages_and_power_network1(self): v_demand = results["ElectricityDemand_e527.ElectricityIn.V"] p_demand = results["ElectricityDemand_e527.ElectricityIn.Power"] i_demand = results["ElectricityDemand_e527.ElectricityIn.I"] - p1 = results["Bus_f262.ElectricityConn[1].Power"] - p2 = results["Bus_f262.ElectricityConn[2].Power"] - p3 = results["Bus_f262.ElectricityConn[3].Power"] - p4 = results["Bus_f262.ElectricityConn[4].Power"] - i1 = results["Bus_f262.ElectricityConn[1].I"] - i2 = results["Bus_f262.ElectricityConn[2].I"] - i3 = results["Bus_f262.ElectricityConn[3].I"] - i4 = results["Bus_f262.ElectricityConn[4].I"] # Incoming voltage == outgoing voltage of bus self.assertTrue(all(v1 == v2)) @@ -68,10 +66,7 @@ def test_voltages_and_power_network1(self): self.assertTrue(all(v1 == v_incoming_cable)) # Outgoing voltage of bus == voltage of outgoing cable self.assertTrue(all(v1 == v_outgoing_cable)) - # Power in == power out = no dissipation of power - np.testing.assert_allclose(p1 + p2 - p3 - p4, 0.0, rtol=1.0e-6, atol=1.0e-6) - # Current in == current out = no dissipation of power - np.testing.assert_allclose(i1 + i2 - i3 - i4, 0.0, rtol=1.0e-6, atol=1.0e-6) + # check if minimum voltage is reached np.testing.assert_array_less( solution.parameters(0)["ElectricityDemand_e527.min_voltage"] - 1.0e-3, v_demand diff --git a/tests/test_electric_source_sink.py b/tests/test_electric_source_sink.py index fae824b65..7b90cff69 100644 --- a/tests/test_electric_source_sink.py +++ b/tests/test_electric_source_sink.py @@ -7,6 +7,8 @@ import numpy as np +from utils_tests import electric_power_conservation_test + # TODO: still have to make test where elecitricity direction is switched: # e.g. 2 nodes, with at each node a producer and consumer, first one node medium demand, second @@ -46,6 +48,9 @@ def test_source_sink(self): results = solution.extract_results() parameters = solution.parameters(0) + # Test energy conservation + electric_power_conservation_test(solution, results) + max_ = solution.bounds()["ElectricityDemand_2af6__max_size"][0] v_min = solution.parameters(0)["ElectricityCable_238f.min_voltage"] @@ -56,15 +61,7 @@ def test_source_sink(self): biggerthen = all(power_consumed >= np.zeros(len(power_consumed))) self.assertTrue(biggerthen) - # Test energy conservation - power_consumed = results["ElectricityDemand_2af6.ElectricityIn.Power"] - power_delivered = results["ElectricityProducer_b95d.ElectricityOut.Power"] power_loss = results["ElectricityCable_238f.Power_loss"] - total_power_dissipation = power_consumed + power_loss - self.assertIsNone( - np.testing.assert_allclose(total_power_dissipation, power_delivered, rtol=1e-4), - msg="No energy conservation. Total demand is not equal to total delivery.", - ) biggerthen = all(power_loss >= np.zeros(len(power_loss))) self.assertTrue(biggerthen) @@ -133,6 +130,9 @@ def test_source_sink_max_curr(self): results = solution.extract_results() parameters = solution.parameters(0) + # Test energy conservation + electric_power_conservation_test(solution, results) + max_power_transport = ( parameters["ElectricityCable_238f.min_voltage"] * parameters["ElectricityCable_238f.max_current"] @@ -157,15 +157,7 @@ def test_source_sink_max_curr(self): biggerthen = all(power_consumed >= np.zeros(len(power_consumed))) self.assertTrue(biggerthen) - # Test energy conservation - power_consumed = results["ElectricityDemand_2af6.ElectricityIn.Power"] - power_delivered = results["ElectricityProducer_b95d.ElectricityOut.Power"] power_loss = results["ElectricityCable_238f.Power_loss"] - total_power_dissipation = power_consumed + power_loss - self.assertIsNone( - np.testing.assert_allclose(total_power_dissipation, power_delivered, rtol=1e-4), - msg="No energy conservation. Total demand is not equal to total delivery.", - ) biggerthen = all(power_loss >= np.zeros(len(power_loss))) self.assertTrue(biggerthen) @@ -229,12 +221,8 @@ def test_transformer(self): results = solution.extract_results() parameters = solution.parameters(0) - # check power conservation in transformer - np.testing.assert_allclose( - results["Transformer_0185.ElectricityIn.Power"], - results["Transformer_0185.ElectricityOut.Power"], - atol=1.0e-3, - ) + # Check power conservation including power conservation in transformer + electric_power_conservation_test(solution, results) # Check that the cables have two different voltage levels assert ( @@ -253,18 +241,7 @@ def test_transformer(self): atol=1.0e-3, ) - for demand in solution.energy_system_components.get("electricity_demand", []): - np.testing.assert_allclose( - results[f"{demand}.ElectricityIn.V"], - parameters[f"{demand}.min_voltage"], - atol=1.0e-3, - ) - np.testing.assert_allclose( - results[f"{demand}.ElectricityIn.V"] * results[f"{demand}.ElectricityIn.I"], - results[f"{demand}.ElectricityIn.Power"], - atol=1.0e-3, - ) - for demand in solution.energy_system_components.get("transformer", []): + for demand in solution.energy_system_components_get(["electricity_demand", "transformer"]): np.testing.assert_allclose( results[f"{demand}.ElectricityIn.V"], parameters[f"{demand}.min_voltage"], diff --git a/tests/test_electricity_storage.py b/tests/test_electricity_storage.py index 66e970a46..1b032e367 100644 --- a/tests/test_electricity_storage.py +++ b/tests/test_electricity_storage.py @@ -7,7 +7,7 @@ import numpy as np -from utils_tests import demand_matching_test, feasibility_test +from utils_tests import demand_matching_test, electric_power_conservation_test, feasibility_test class TestMILPElectricSourceSink(TestCase): @@ -46,6 +46,7 @@ def test_source_sink(self): feasibility_test(solution) demand_matching_test(solution, results) + electric_power_conservation_test(solution, results) storage_name = solution.energy_system_components.get("electricity_storage")[0] charge_eff = parameters[f"{storage_name}.charge_efficiency"] diff --git a/tests/utils_tests.py b/tests/utils_tests.py index d6dd57499..c499d80e5 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -19,7 +19,6 @@ def feasibility_test(solution): def demand_matching_test(solution, results): """ "Test function to check whether the milp demand of each consumer is matched""" - len_times = 0.0 for d in solution.energy_system_components.get("heat_demand", []): if len(solution.times()) > 0: len_times = len(solution.times()) @@ -35,23 +34,27 @@ def demand_matching_test(solution, results): target = solution.get_timeseries(f"{d}.target_cold_demand").values[0:len_times] np.testing.assert_allclose(target, results[f"{d}.Cold_demand"], atol=1.0e-3, rtol=1.0e-6) for d in solution.energy_system_components.get("gas_demand", []): - if len(solution.times()) > 0: - len_times = len(solution.times()) - else: - len_times = len(solution.get_timeseries(f"{d}.target_gas_demand").values) - target = solution.get_timeseries(f"{d}.target_gas_demand").values[0:len_times] - np.testing.assert_allclose( - target, results[f"{d}.Gas_demand_mass_flow"], atol=1.0e-3, rtol=1.0e-6 - ) + timeseries_name = f"{d}.target_gas_demand" + if timeseries_name in solution.io.get_timeseries_names(): + if len(solution.times()) > 0: + len_times = len(solution.times()) + else: + len_times = len(solution.get_timeseries(timeseries_name).values) + target = solution.get_timeseries(timeseries_name).values[0:len_times] + np.testing.assert_allclose( + target, results[f"{d}.Gas_demand_mass_flow"], atol=1.0e-3, rtol=1.0e-6 + ) for d in solution.energy_system_components.get("electricity_demand", []): - if len(solution.times()) > 0: - len_times = len(solution.times()) - else: - len_times = len(solution.get_timeseries(f"{d}.target_electricity_demand").values) - target = solution.get_timeseries(f"{d}.target_electricity_demand").values[0:len_times] - np.testing.assert_allclose( - target, results[f"{d}.Electricity_demand"], atol=1.0e-3, rtol=1.0e-6 - ) + timeseries_name = f"{d}.target_electricity_demand" + if timeseries_name in solution.io.get_timeseries_names(): + if len(solution.times()) > 0: + len_times = len(solution.times()) + else: + len_times = len(solution.get_timeseries(timeseries_name).values) + target = solution.get_timeseries(timeseries_name).values[0:len_times] + np.testing.assert_allclose( + target, results[f"{d}.Electricity_demand"], atol=1.0e-3, rtol=1.0e-6 + ) def _get_component_temperatures(solution, results, component, side=None): @@ -352,6 +355,64 @@ def heat_to_discharge_test(solution, results): ) +def electric_power_conservation_test(solution, results): + """ + Test to check if the electric power is conserved at every timestep. + High level checks: + - Network power conservation + - Power conservation when including power losses in cables. + - Power and current conservation in busses. + - Power conservation in transformers, upto now no losses in transformer. + """ + tol = 1e-6 + energy_sum = np.zeros(len(solution.times())) + + consumers = solution.energy_system_components_get( + [ + "electricity_demand", + "electrolyzer", + "electricity_storage", + "elec_boiler", + "heat_pump_elec", + "air_water_heat_pump_elec", + ] + ) + producers = solution.energy_system_components_get(["electricity_source"]) + cables = solution.energy_system_components_get(["electricity_cable"]) + transformers = solution.energy_system_components.get("transformer", []) + + for asset in consumers: + energy_sum -= results[f"{asset}.ElectricityIn.Power"] + + for asset in producers: + energy_sum += results[f"{asset}.ElectricityOut.Power"] + + for asset in cables: + energy_sum -= results[f"{asset}.Power_loss"] + np.testing.assert_allclose( + results[f"{asset}.Power_loss"], + results[f"{asset}.ElectricityIn.Power"] - results[f"{asset}.ElectricityOut.Power"], + atol=tol, + ) + + for asset, connected_cables in solution.energy_system_topology.busses.items(): + sum_bus_power = np.zeros(len(solution.times())) + sum_bus_current = np.zeros(len(solution.times())) + for i_conn, (_cable, orientation) in connected_cables.items(): + sum_bus_power += orientation * results[f"{asset}.ElectricityConn[{i_conn + 1}].Power"] + sum_bus_current += orientation * results[f"{asset}.ElectricityConn[{i_conn + 1}].I"] + np.testing.assert_allclose(sum_bus_power, 0.0, atol=tol) + np.testing.assert_allclose(sum_bus_current, 0.0, atol=tol) + + for asset in transformers: + np.testing.assert_allclose( + results[f"{asset}.ElectricityIn.Power"], + results[f"{asset}.ElectricityOut.Power"], + ) + + np.testing.assert_allclose(energy_sum, 0.0, atol=tol) + + def energy_conservation_test(solution, results): """Test to check if the energy is conserved at each timestep""" energy_sum = np.zeros(len(solution.times())) From 7aa343aff863767aeba5dcd61c57ac9bbfa1edf6 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Wed, 10 Jul 2024 13:49:52 +0200 Subject: [PATCH 187/275] Add discharging var electricity storages (#110) Creation of discharging variable for electricity storages. It is based on an inequality relation thus only to be used with the correct goals. --- src/mesido/electricity_physics_mixin.py | 57 ++++++++++++++++++- .../battery/src/example.py | 1 + tests/test_electricity_storage.py | 9 +++ 3 files changed, 66 insertions(+), 1 deletion(-) diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index 181fbf691..b23e8f670 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -1,7 +1,7 @@ import logging from enum import IntEnum from math import isclose -from typing import Tuple +from typing import List, Tuple import casadi as ca @@ -71,6 +71,11 @@ def __init__(self, *args, **kwargs): self.__set_point_bounds = {} self.__set_point_map = {} + self.__electricity_storage_discharge_var = {} + self.__electricity_storage_discharge_bounds = {} + self.__electricity_storage_discharge_nominals = {} + self.__electricity_storage_discharge_map = {} + def energy_system_options(self): r""" Returns a dictionary of milp network specific options. @@ -83,6 +88,7 @@ def energy_system_options(self): options["electrolyzer_efficiency"] = ( ElectrolyzerOption.LINEARIZED_THREE_LINES_WEAK_INEQUALITY ) + options["electricity_storage_discharge_variables"] = False return options @@ -120,6 +126,16 @@ def pre(self): self.__storage_charging_var[var_name] = ca.MX.sym(var_name) self.__storage_charging_bounds[var_name] = (0.0, 1.0) + if options["electricity_storage_discharge_variables"]: + bound_storage = self.bounds()[f"{asset}.Effective_power_charging"][0] + var_name = f"{asset}__effective_power_discharging" + self.__electricity_storage_discharge_map[asset] = var_name + self.__electricity_storage_discharge_var[var_name] = ca.MX.sym(var_name) + self.__electricity_storage_discharge_bounds[var_name] = (0, -bound_storage) + self.__electricity_storage_discharge_nominals[var_name] = self.variable_nominal( + f"{asset}.Effective_power_charging" + ) + for asset in [*self.energy_system_components.get("electricity_source", [])]: if isinstance(self.bounds()[f"{asset}.Electricity_source"][1], Timeseries): var_name = f"{asset}__set_point" @@ -149,6 +165,7 @@ def path_variables(self): variables.extend(self.__asset_is_switched_on_var.values()) variables.extend(self.__storage_charging_var.values()) variables.extend(self.__set_point_var.values()) + variables.extend(self.__electricity_storage_discharge_var.values()) return variables @@ -168,6 +185,8 @@ def variable_nominal(self, variable): """ In this function we add all the nominals for the variables defined/added in the HeatMixin. """ + if variable in self.__electricity_storage_discharge_nominals: + return self.__electricity_storage_discharge_nominals[variable] return super().variable_nominal(variable) @@ -182,6 +201,7 @@ def bounds(self): bounds.update(self.__storage_charging_bounds) bounds.update(self.__electricity_producer_upper_bounds) bounds.update(self.__set_point_bounds) + bounds.update(self.__electricity_storage_discharge_bounds) return bounds @@ -535,6 +555,38 @@ def __electricity_storage_path_constraints(self, ensemble_member): return constraints + def __electricity_storage_discharge_var_path_constraints( + self, ensemble_member: int + ) -> List[Tuple[ca.MX, float, float]]: + """ + The discharge variables are added such that two separate goals for charging and discharging + can be created. The discharging variable has a lower bound of 0 and should always be larger + or equal to the negative of the inflow variable. This allows for first a minimization of + the discharging and afterwards a maximisation of the charging without conflicting goals or + constraints. + + :param ensemble_member: + :return: list of the additional constraints that are created + """ + + constraints = [] + options = self.energy_system_options() + + if options["electricity_storage_discharge_variables"]: + for storage in self.energy_system_components.get("electricity_storage", []): + storage_eff_power_charge_var = self.state(f"{storage}.Effective_power_charging") + discharge_var_name = self.__electricity_storage_discharge_map[storage] + storage_discharge_var = self.__electricity_storage_discharge_var[discharge_var_name] + nominal = self.variable_nominal(discharge_var_name) + + # P_effective_charge represents both charging and discharing based on the sign. + # P_discharge >= -P_effective_charge + constraints.append( + ((storage_discharge_var + storage_eff_power_charge_var) / nominal, 0.0, np.inf) + ) + + return constraints + def __get_electrolyzer_gas_mass_flow_out( self, coef_a, coef_b, coef_c, electrical_power_input ) -> float: @@ -735,6 +787,9 @@ def path_constraints(self, ensemble_member): constraints.extend(self.__voltage_loss_path_constraints(ensemble_member)) constraints.extend(self.__electrolyzer_path_constaint(ensemble_member)) constraints.extend(self.__electricity_storage_path_constraints(ensemble_member)) + constraints.extend( + self.__electricity_storage_discharge_var_path_constraints(ensemble_member) + ) return constraints diff --git a/tests/models/unit_cases_electricity/battery/src/example.py b/tests/models/unit_cases_electricity/battery/src/example.py index 9bd70bd57..024faa509 100644 --- a/tests/models/unit_cases_electricity/battery/src/example.py +++ b/tests/models/unit_cases_electricity/battery/src/example.py @@ -58,6 +58,7 @@ def path_goals(self): def energy_system_options(self): options = super().energy_system_options() options["include_electric_cable_power_loss"] = False + options["electricity_storage_discharge_variables"] = True return options diff --git a/tests/test_electricity_storage.py b/tests/test_electricity_storage.py index 1b032e367..fa0b592eb 100644 --- a/tests/test_electricity_storage.py +++ b/tests/test_electricity_storage.py @@ -53,6 +53,7 @@ def test_source_sink(self): discharge_eff = parameters[f"{storage_name}.discharge_efficiency"] is_charging = results[f"{storage_name}__is_charging"] eff_power_change_bat = results[f"{storage_name}.Effective_power_charging"] + eff_power_change_discharge_bat = results[f"{storage_name}__effective_power_discharging"] power_bat_network = results[f"{storage_name}.ElectricityIn.Power"] stored_el = results[f"{storage_name}.Stored_electricity"] @@ -99,3 +100,11 @@ def test_source_sink(self): power_bat_network * (1 - is_charging) / discharge_eff, atol=tol, ) + + # effective power discharge variable should always be the bigger or equal to the negative + # of the charge variable and bigger then zero. The zero should only occur if battery is + # charging. When a goal would be set to minimise discharge it should match the charge power, + # however now this goal is not turned on. + # TODO: when the new goal is included create test, this will end up in the mc_simulator + np.testing.assert_array_less(-eff_power_change_bat, eff_power_change_discharge_bat + tol) + self.assertTrue(all(eff_power_change_discharge_bat >= 0.0)) From fcfa26f7a338137218903b25e2e4152cf55da48a Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Wed, 10 Jul 2024 13:50:20 +0200 Subject: [PATCH 188/275] Discharging variable gas storages (#108) Creation of discharging variable for gas storages. It is based on an inequality relation thus only to be used with the correct goals. --- src/mesido/gas_physics_mixin.py | 50 +++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/mesido/gas_physics_mixin.py b/src/mesido/gas_physics_mixin.py index bb8c25cae..5dc0df744 100644 --- a/src/mesido/gas_physics_mixin.py +++ b/src/mesido/gas_physics_mixin.py @@ -136,6 +136,11 @@ def __init__(self, *args, **kwargs): # self.__gas_pipe_disconnect_var_bounds = {} self._gas_pipe_disconnect_map = {} + self.__gas_storage_discharge_var = {} + self.__gas_storage_discharge_bounds = {} + self.__gas_storage_discharge_nominals = {} + self.__gas_storage_discharge_map = {} + def gas_carriers(self): """ This function should be overwritten by the problem and should give a dict with the @@ -151,6 +156,8 @@ def pre(self): """ super().pre() + options = self.energy_system_options() + def _get_max_bound(bound): if isinstance(bound, np.ndarray): return max(bound) @@ -246,15 +253,30 @@ def _get_min_bound(bound): self.__maximum_total_head_loss = self.__get_maximum_total_head_loss() + if options["gas_storage_discharge_variables"]: + for storage in self.energy_system_components.get("gas_storage", []): + bound_storage_q = self.bounds()[f"{storage}.GasIn.Q"][0] + var_name = f"{storage}__Q_discharge" + self.__gas_storage_discharge_map[storage] = var_name + self.__gas_storage_discharge_var[var_name] = ca.MX.sym(var_name) + self.__gas_storage_discharge_bounds[var_name] = (0, -bound_storage_q) + self.__gas_storage_discharge_nominals[var_name] = self.variable_nominal( + f"{storage}.GasIn.Q" + ) + def energy_system_options(self): r""" Returns a dictionary of milp network specific options. + gas_storage_discharge_variables: creates separate variables for the discharge of the + gas_storages, only required when using the multicommodity simulator as this requires + separate variables to create goals with. """ options = self._gn_head_loss_class.head_loss_network_options() options["minimum_pressure_far_point"] = 1.0 + options["gas_storage_discharge_variables"] = False return options @@ -280,6 +302,7 @@ def path_variables(self): variables.extend(self.__gas_flow_direct_var.values()) # variables.extend(self.__gas_pipe_disconnect_var.values()) # still to be implemented variables.extend(self.__gas_pipe_linear_line_segment_var.values()) + variables.extend(self.__gas_storage_discharge_var.values()) return variables @@ -302,6 +325,8 @@ def variable_nominal(self, variable): if variable in self.__gas_pipe_head_loss_nominals: return self.__gas_pipe_head_loss_nominals[variable] + elif variable in self.__gas_storage_discharge_nominals: + return self.__gas_storage_discharge_nominals[variable] else: return super().variable_nominal(variable) @@ -317,6 +342,7 @@ def bounds(self): bounds.update(self.__gas_pipe_head_loss_bounds) bounds.update(self.__gas_pipe_head_loss_zero_bounds) bounds.update(self.__gas_pipe_linear_line_segment_var_bounds) + bounds.update(self.__gas_storage_discharge_bounds) for k, v in self.__gas_pipe_head_bounds.items(): bounds[k] = self.merge_bounds(bounds[k], v) @@ -534,6 +560,30 @@ def __flow_direction_path_constraints(self, ensemble_member): return constraints + def __gas_storage_discharge_path_constraints(self): + """ + The discharge variables are added such that two separate goals for charging and discharging + can be created. The discharging variable has a lower bound of 0 and should always be larger + or equal to the negative of the inflow variable. This allows for first a minimization of + the discharging and afterwards an maximisation of the charging without conflicting goals or + constraints. + """ + # TODO: still add test + constraints = [] + options = self.energy_system_options() + + if options["gas_storage_discharge_variables"]: + for storage in self.energy_system_components.get("gas_storage"): + storage_charge_var = self.state(f"{storage}.GasIn.Q") + storage_discharge_var_name = f"{storage}__Q_discharge" + storage_discharge_var = self.state(storage_discharge_var_name) + nominal = self.variable_nominal(storage_discharge_var_name) + + # Q_discharge >= -Q + constraints.append( + ((storage_discharge_var + storage_charge_var) / nominal, 0.0, np.inf) + ) + def path_constraints(self, ensemble_member): """ Here we add all the path constraints to the optimization problem. Please note that the From dca36a7b30fd4c92fd7a5cb7556951dff89901b0 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Fri, 12 Jul 2024 09:33:00 +0200 Subject: [PATCH 189/275] Multicommodity simulator (#94) Start of the multicommodity simulator workflow The merrit order is applied using the ESDL marginal costs attribute. Deman profiles are always matched first before the maximisation of demand and minimisation of production goals are applied. It already includes the prioritisation of the electrolyzer. Omitting the use of the TechnoEconomicMixin, to prevent the creation of unnecessary variables. --- src/mesido/electricity_physics_mixin.py | 31 +- src/mesido/esdl/esdl_heat_model.py | 39 +- src/mesido/financial_mixin.py | 8 +- src/mesido/head_loss_class.py | 32 +- .../milp/multicommodity/electrolyzer.py | 2 +- src/mesido/workflows/emerge.py | 3 + src/mesido/workflows/io/write_output.py | 3 +- .../multicommodity_simulator_workflow.py | 653 ++++++++++++++++++ .../models/emerge/input/timeseries_short.csv | 28 + tests/models/emerge/model/emerge.esdl | 6 +- .../emerge_priorities_withoutstorage.esdl | 108 +++ ...merge_priorities_withoutstorage_2prod.esdl | 123 ++++ .../bus_networks/input/timeseries_2.csv | 4 + .../bus_networks/input/timeseries_2_prod.csv | 4 + .../model/Electric_bus4_priorities.esdl | 74 ++ .../electrolyzer/input/timeseries.csv | 2 +- .../timeseries_minimum_electrolyzer_power.csv | 2 +- .../electrolyzer/model/h2.esdl | 2 +- .../model/h2_profiles_added_dummy_values.esdl | 2 +- .../electrolyzer/src/example.py | 20 +- .../model/test_priorities.esdl | 82 +++ .../model/source_sink.esdl | 4 +- .../source_sink/model/source_sink.esdl | 6 +- tests/test_electrolyzer.py | 41 +- tests/test_emerge.py | 3 + tests/test_hydraulic_power.py | 20 +- tests/test_multicommodity_simulator.py | 351 ++++++++++ tests/test_profile_parsing.py | 15 +- tests/utils_tests.py | 2 +- 29 files changed, 1588 insertions(+), 82 deletions(-) create mode 100644 src/mesido/workflows/multicommodity_simulator_workflow.py create mode 100644 tests/models/emerge/input/timeseries_short.csv create mode 100644 tests/models/emerge/model/emerge_priorities_withoutstorage.esdl create mode 100644 tests/models/emerge/model/emerge_priorities_withoutstorage_2prod.esdl create mode 100644 tests/models/unit_cases_electricity/bus_networks/input/timeseries_2.csv create mode 100644 tests/models/unit_cases_electricity/bus_networks/input/timeseries_2_prod.csv create mode 100644 tests/models/unit_cases_electricity/bus_networks/model/Electric_bus4_priorities.esdl create mode 100644 tests/models/unit_cases_gas/multi_demand_source_node/model/test_priorities.esdl create mode 100644 tests/test_multicommodity_simulator.py diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index b23e8f670..bb4ca741c 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -235,13 +235,13 @@ def __state_vector_scaled(self, variable, ensemble_member): def __update_electricity_producer_upper_bounds(self): t = self.times() - for asset in [ - *self.energy_system_components.get("wind_park", []), - *self.energy_system_components.get("solar_pv", []), - ]: - lb = Timeseries(t, np.zeros(len(self.times()))) - ub = self.get_timeseries(f"{asset}.maximum_electricity_source") - self.__electricity_producer_upper_bounds[f"{asset}.Electricity_source"] = (lb, ub) + + timeseries_io_names = self.io.get_timeseries_names() + for asset in self.energy_system_components.get("electricity_source", []): + if f"{asset}.maximum_electricity_source" in timeseries_io_names: + lb = Timeseries(t, np.zeros(len(t))) + ub = self.get_timeseries(f"{asset}.maximum_electricity_source") + self.__electricity_producer_upper_bounds[f"{asset}.Electricity_source"] = (lb, ub) def __electricity_producer_set_point_constraints(self, ensemble_member): """ @@ -609,8 +609,10 @@ def __get_electrolyzer_gas_mass_flow_out( """ if not isclose(electrical_power_input, 0.0): - eff = (coef_a / electrical_power_input) + (coef_b * electrical_power_input) + coef_c - gas_mass_flow_out = (1.0 / eff) * electrical_power_input + eff = ( + (coef_a / electrical_power_input) + (coef_b * electrical_power_input) + coef_c + ) # Wh/g + gas_mass_flow_out = (1.0 / (eff * 3600)) * electrical_power_input else: gas_mass_flow_out = 0.0 @@ -674,14 +676,19 @@ def __electrolyzer_path_constaint(self, ensemble_member): nominal = ( self.variable_nominal(f"{asset}.Gas_mass_flow_out") * self.variable_nominal(f"{asset}.Power_consumed") - ) ** 0.5 + ) ** 0.5 * 3600 big_m = ( - self.bounds()[f"{asset}.Power_consumed"][1] / parameters[f"{asset}.efficiency"] + self.bounds()[f"{asset}.Power_consumed"][1] + / parameters[f"{asset}.efficiency"] + / 3600 ) * 2 constraints.extend( [ ( - (gas_mass_flow_out * parameters[f"{asset}.efficiency"] - power_consumed) + ( + gas_mass_flow_out * parameters[f"{asset}.efficiency"] * 3600 + - power_consumed + ) / nominal, 0.0, 0.0, diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index fae786472..ed706abb1 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1863,9 +1863,21 @@ def convert_gas_demand(self, asset: Asset) -> Tuple[Type[GasDemand], MODIFIERS]: ] # DO not remove due usage in future # hydrogen_specfic_energy = 20.0 / 1.0e6 + specific_energy = ( + self.get_internal_energy(asset.name, asset.in_ports[0].carrier) / 10 + ) # J/g + # TODO: the value being used is the internal energy and not the HHV (higher + # heating value) for hydrogen, therefore it does not represent the energy per weight. + # This still needs to be updated density = self.get_density(asset.name, asset.in_ports[0].carrier) pressure = asset.in_ports[0].carrier.pressure * 1.0e5 q_nominal = self._get_connected_q_nominal(asset) + q_max = self._get_connected_q_max(asset) + # [g/s] = [J/s] * [J/kg]^-1 *1000 + max_mass_flow_g_per_s = min( + asset.attributes["power"] / specific_energy * 1000.0, q_max * density + ) + mass_flow_nominal_g_per_s = min(q_nominal * density, max_mass_flow_g_per_s / 2) modifiers = dict( Q_nominal=q_nominal, @@ -1874,12 +1886,8 @@ def convert_gas_demand(self, asset: Asset) -> Tuple[Type[GasDemand], MODIFIERS]: # *hydrogen_specfic_energy), density=density, GasIn=dict( - Q=dict( - min=0.0, - max=self._get_connected_q_max(asset), - nominal=self._get_connected_q_nominal(asset), - ), - mass_flow=dict(nominal=density * q_nominal), + Q=dict(min=0.0, max=q_max, nominal=q_nominal), + mass_flow=dict(nominal=mass_flow_nominal_g_per_s, max=max_mass_flow_g_per_s), Hydraulic_power=dict(min=0.0, max=0.0, nominal=q_nominal * pressure), ), **self._get_cost_figure_modifiers(asset), @@ -1930,20 +1938,25 @@ def convert_gas_source(self, asset: Asset) -> Tuple[Type[GasSource], MODIFIERS]: q_nominal = self._get_connected_q_nominal(asset) density_value = self.get_density(asset.name, asset.out_ports[0].carrier) pressure = asset.out_ports[0].carrier.pressure * 1.0e5 + specific_energy = ( + self.get_internal_energy(asset.name, asset.out_ports[0].carrier) / 10 + ) # J/g #TODO: is not the HHV for hydrogen, so is off + # [g/s] = [J/s] * [J/kg]^-1 *1000 + max_mass_flow_g_per_s = asset.attributes["power"] / specific_energy * 1000.0 - bounds_nominals_mass_flow = dict( + bounds_nominals_mass_flow_g_per_s = dict( min=0.0, - max=self._get_connected_q_max(asset) * density_value, + max=min(self._get_connected_q_max(asset) * density_value, max_mass_flow_g_per_s), nominal=q_nominal * density_value, ) modifiers = dict( Q_nominal=q_nominal, density=density_value, - Gas_source_mass_flow=bounds_nominals_mass_flow, + Gas_source_mass_flow=bounds_nominals_mass_flow_g_per_s, GasOut=dict( Q=dict(nominal=q_nominal), - mass_flow=bounds_nominals_mass_flow, + mass_flow=bounds_nominals_mass_flow_g_per_s, Hydraulic_power=dict(nominal=q_nominal * pressure), ), **self._get_cost_figure_modifiers(asset), @@ -2019,6 +2032,9 @@ def equations(x): q_nominal = self._get_connected_q_nominal(asset) density = self.get_density(asset.name, asset.out_ports[0].carrier) + # [g/s] = [W] * [kWh/kg]^-1 * 1/3600 = [g/h] * 1/3600 + mass_flow_max_g_per_s = max_power / eff_max_load / 3600 + mass_flow_nominal_g_per_s = min(density * q_nominal, mass_flow_max_g_per_s / 2) modifiers = dict( min_voltage=v_min, @@ -2027,6 +2043,7 @@ def equations(x): c_eff_coefficient=c, minimum_load=min_load, nominal_power_consumed=max_power / 2.0, + nominal_gass_mass_out=mass_flow_nominal_g_per_s, Q_nominal=q_nominal, density=density, efficiency=eff_max, @@ -2036,7 +2053,7 @@ def equations(x): max=self._get_connected_q_max(asset), nominal=q_nominal, ), - mass_flow=dict(nominal=q_nominal * density), + mass_flow=dict(nominal=mass_flow_nominal_g_per_s, max=mass_flow_max_g_per_s), ), ElectricityIn=dict( Power=dict(min=0.0, max=max_power, nominal=max_power / 2.0), diff --git a/src/mesido/financial_mixin.py b/src/mesido/financial_mixin.py index 5e01a9dc7..faf19307d 100644 --- a/src/mesido/financial_mixin.py +++ b/src/mesido/financial_mixin.py @@ -182,6 +182,10 @@ def pre(self): nominal_fixed_operational = bounds[f"{asset_name}.Stored_electricity"][1] nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational + elif asset_name in [*self.energy_system_components.get("gas_demand", [])]: + nominal_fixed_operational = bounds[f"{asset_name}.Gas_demand_mass_flow"][1] + nominal_variable_operational = nominal_fixed_operational + nominal_investment = nominal_fixed_operational else: logger.warning( f"Asset {asset_name} has type for which " @@ -1245,9 +1249,11 @@ def __revenue_constraints(self, ensemble_member): for _id, attr in self.get_electricity_carriers().items(): if attr["id_number_mapping"] == parameters[f"{demand}.id_mapping_carrier"]: carrier_name = attr["name"] + cost_multiplier = 1 / 3600.0 # priceprofile electricity is EUR/Wh for _id, attr in self.get_gas_carriers().items(): if attr["id_number_mapping"] == parameters[f"{demand}.id_mapping_carrier"]: carrier_name = attr["name"] + cost_multiplier = 1.0 # priceprofile gas is in EUR/g if carrier_name is not None: price_profile = self.get_timeseries(f"{carrier_name}.price_profile").values @@ -1266,7 +1272,7 @@ def __revenue_constraints(self, ensemble_member): nominal = self.variable_nominal(variable_revenue_var) sum = 0.0 - timesteps = np.diff(self.times()) / 3600.0 + timesteps = np.diff(self.times()) * cost_multiplier for i in range(1, len(self.times())): sum += price_profile[i] * energy_flow[i] * timesteps[i - 1] diff --git a/src/mesido/head_loss_class.py b/src/mesido/head_loss_class.py index ae2b64365..d9e75b451 100644 --- a/src/mesido/head_loss_class.py +++ b/src/mesido/head_loss_class.py @@ -159,7 +159,10 @@ def function(self, optimization_problem, ensemble_member): ): sym_name = optimization_problem._hn_pipe_to_head_loss_map[p] sum_ += optimization_problem.state(sym_name) - elif self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS: + elif ( + self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS + or self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HYDROGEN + ): for p in optimization_problem.energy_system_components.get("gas_pipe", []): if not parameters[f"{p}.length"] == 0.0: sym_name = optimization_problem._gn_pipe_to_head_loss_map[p] @@ -1159,7 +1162,10 @@ def _pipe_head_loss_path_constraints(self, optimization_problem, _ensemble_membe if self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HEAT: commodity = "Heat" pipe_type = "heat_pipe" - elif self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS: + elif ( + self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS + or self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HYDROGEN + ): commodity = "Gas" pipe_type = "gas_pipe" else: @@ -1237,7 +1243,10 @@ def _pipe_head_loss_constraints( if self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HEAT: commodity = "heat" n_type = "hn" - elif self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS: + elif ( + self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS + or self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HYDROGEN + ): commodity = "gas" n_type = "gn" else: @@ -1307,7 +1316,11 @@ def _pipe_head_loss_constraints( if self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HEAT: big_m = max(1.1 * _maximum_total_head_loss, 2 * head_loss_max_discharge) - elif self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS: + elif ( + self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS + or self.network_settings["network_type"] + == NetworkSettings.NETWORK_TYPE_HYDROGEN + ): big_m = max( 2.0 * 2.0 * _maximum_total_head_loss, 2 * head_loss_max_discharge ) @@ -1373,7 +1386,11 @@ def _pipe_head_loss_constraints( if self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HEAT: big_m = 1.1 * _maximum_total_head_loss - elif self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS: + elif ( + self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS + or self.network_settings["network_type"] + == NetworkSettings.NETWORK_TYPE_HYDROGEN + ): big_m = 2.0 * 2.0 * _maximum_total_head_loss else: raise RuntimeError( @@ -1451,7 +1468,10 @@ def _pipe_hydraulic_power_path_constraints( if self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HEAT: commodity = "heat" - elif self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS: + elif ( + self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_GAS + or self.network_settings["network_type"] == NetworkSettings.NETWORK_TYPE_HYDROGEN + ): commodity = "gas" else: raise Exception( diff --git a/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py b/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py index 6b01327c2..62124ebe5 100644 --- a/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py +++ b/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py @@ -54,7 +54,7 @@ def __init__(self, name, **modifiers): self.add_variable(GasPort, "GasOut") self.add_variable( Variable, "Gas_mass_flow_out", min=0.0, nominal=self.nominal_gass_mass_out - ) # [kg/hr] + ) # [g/s] self.add_equation( (self.GasOut.mass_flow - self.Gas_mass_flow_out) / self.nominal_gass_mass_out ) diff --git a/src/mesido/workflows/emerge.py b/src/mesido/workflows/emerge.py index fab154070..5eb42762e 100644 --- a/src/mesido/workflows/emerge.py +++ b/src/mesido/workflows/emerge.py @@ -155,6 +155,9 @@ def solver_options(self): """ options = super().solver_options() options["solver"] = "highs" + highs_options = options["highs"] = {} + highs_options["presolve"] = "off" + return options def times(self, variable=None): diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index f685ebeda..8de8efd54 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -17,7 +17,6 @@ import mesido.esdl.esdl_parser from mesido.constants import GRAVITATIONAL_CONSTANT from mesido.esdl.edr_pipe_class import EDRPipeClass -from mesido.techno_economic_mixin import TechnoEconomicMixin from mesido.workflows.utils.helpers import _sort_numbered import numpy as np @@ -31,7 +30,7 @@ logger = logging.getLogger("mesido") -class ScenarioOutput(TechnoEconomicMixin): +class ScenarioOutput: __optimized_energy_system_handler = None def __init__(self, **kwargs): diff --git a/src/mesido/workflows/multicommodity_simulator_workflow.py b/src/mesido/workflows/multicommodity_simulator_workflow.py new file mode 100644 index 000000000..184db3750 --- /dev/null +++ b/src/mesido/workflows/multicommodity_simulator_workflow.py @@ -0,0 +1,653 @@ +import locale +import logging +import time +from pathlib import Path + +import esdl + +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.physics_mixin import PhysicsMixin +from mesido.workflows.io.write_output import ScenarioOutput +from mesido.workflows.utils.helpers import main_decorator + +import numpy as np + +from rtctools.optimization.collocated_integrated_optimization_problem import ( + CollocatedIntegratedOptimizationProblem, +) +from rtctools.optimization.goal_programming_mixin import Goal +from rtctools.optimization.linearized_order_goal_programming_mixin import ( + LinearizedOrderGoalProgrammingMixin, +) +from rtctools.optimization.single_pass_goal_programming_mixin import ( + CachingQPSol, + SinglePassGoalProgrammingMixin, +) +from rtctools.util import run_optimization_problem + +DB_HOST = "172.17.0.2" +DB_PORT = 8086 +DB_NAME = "Warmtenetten" +DB_USER = "admin" +DB_PASSWORD = "admin" + +logger = logging.getLogger("WarmingUP-MPC") +logger.setLevel(logging.INFO) + +locale.setlocale(locale.LC_ALL, "") + +WATT_TO_MEGA_WATT = 1.0e6 +WATT_TO_KILO_WATT = 1.0e3 + + +# ------------------------------------------------------------------------------------------------- +# Step 1: +# Match the target demand specified +class TargetDemandGoal(Goal): + def __init__(self, state, target, priority=1, order=2): + self.state = state + + self.target_min = target + self.target_max = target + self.function_range = (-2.0 * max(target.values), 2.0 * max(target.values)) + self.function_nominal = np.median(target.values) + self.priority = priority + self.order = order + + def function(self, optimization_problem, ensemble_member): + return optimization_problem.state(self.state) + + +# ------------------------------------------------------------------------------------------------- +# Step 2: +# Match the maximum producer profiles +class TargetProducerGoal(Goal): + def __init__(self, state, target, priority=20, order=2): + self.state = state + + self.target_min = target + self.target_max = target + self.function_range = (-2.0 * max(target.values), 2.0 * max(target.values)) + self.function_nominal = np.median(target.values) + self.priority = priority + self.order = order + + def function(self, optimization_problem, ensemble_member): + return optimization_problem.state(self.state) + + +# ------------------------------------------------------------------------------------------------- +# Step 3: +# The merit order of the sources and consumers (something like [3, 1, 2]), determine the priority +# in which the source is available for use and the consumer to consume. +# The priorities are determined based on the marginal costs provided in ESDL. For producer, the +# lower the marginal costs, the more the producer should be used (e.g. cheap to use). For consumers +# the opposite is true, the higher the marginal costs (e.g. more revenue), the more energy should +# be delivered to that consumer. +# Minimize the source use with lowest priority 3 (highest marginal costs), then the source with +# priority 2 etc, while the consumers are maximised starting with the highest marginal costs. +class MinimizeSourcesGoalMerit(Goal): + """ + Apply constraints to enforce esdl specified milp producer merit order usage + """ + + def __init__(self, source_variable, prod_priority, func_range_bound, nominal, order=2): + self.target_max = 0.0 # func_range_bound[0] + self.function_range = func_range_bound + self.source_variable = source_variable + self.function_nominal = nominal + self.priority = prod_priority + self.order = order + + def function(self, optimization_problem, ensemble_member): + return optimization_problem.state(f"{self.source_variable}") + + +class MaximizeDemandGoalMerit(Goal): + """ + Apply constraints to enforce maximisation of consumption, priority is based on the marginal + costs + """ + + def __init__(self, demand_variable, prod_priority, func_range_bound, nominal, order=2): + + self.demand_variable = demand_variable + self.function_nominal = nominal + self.priority = prod_priority + self.order = 1 + + def function(self, optimization_problem, ensemble_member): + return -optimization_problem.state(f"{self.demand_variable}") + + +class MinimizeStorageGoalMerit(Goal): + """ + Apply constraints to enforce minimisation of charging of storage, priority is based on the + marginal costs + """ + + def __init__(self, source_variable, prod_priority, func_range_bound, nominal, order=2): + self.target_min = 0.0 # func_range_bound[0] + self.target_max = func_range_bound[1] * 0.999 + self.function_range = func_range_bound + self.source_variable = source_variable + self.function_nominal = nominal + self.priority = prod_priority + self.order = order + + def function(self, optimization_problem, ensemble_member): + return optimization_problem.state(f"{self.source_variable}") + + +class MaximizeStorageGoalMerit(Goal): + """ + Apply constraints to enforce maximisation of discharging of storage, priority is based on the + marginal costs + """ + + def __init__(self, demand_variable, prod_priority, func_range_bound, nominal, order=2): + self.target_min = func_range_bound[1] + self.function_range = func_range_bound + self.demand_variable = demand_variable + self.function_nominal = nominal + self.priority = prod_priority + 1 + self.order = order + + def function(self, optimization_problem, ensemble_member): + return optimization_problem.state(f"{self.demand_variable}") + + +# ------------------------------------------------------------------------------------------------- +class _GoalsAndOptions: + def path_goals(self): + goals = super().path_goals().copy() + + # Demand and producer matching + map_demand = { + "electricity_demand": { + "target": "target_electricity_demand", + "state": "Electricity_demand", + }, + "gas_demand": {"target": "target_gas_demand", "state": "Gas_demand_mass_flow"}, + } + map_prod = { + "electricity_source": { + "target": "maximum_electricity_source", + "state": "Electricity_source", + }, + "gas_source": {"target": "maximum_gas_source", "state": "Gas_source_mass_flow"}, + } + for type, type_values in [*map_demand.items(), *map_prod.items()]: + for asset in self.energy_system_components.get(type, []): + timeseries_name = f"{asset}.{type_values['target']}" + if timeseries_name in self.io.get_timeseries_names(): + target = self.get_timeseries(timeseries_name) + state = f"{asset}.{type_values['state']}" + if type in map_demand.keys(): + goals.append(TargetDemandGoal(state, target)) + else: + priority = 2 * len(self._esdl_assets) + goals.append(TargetProducerGoal(state, target, priority)) + + return goals + + +# ------------------------------------------------------------------------------------------------- +class MultiCommoditySimulator( + ScenarioOutput, + _GoalsAndOptions, + PhysicsMixin, + LinearizedOrderGoalProgrammingMixin, + SinglePassGoalProgrammingMixin, + ESDLMixin, + CollocatedIntegratedOptimizationProblem, +): + """ + This workflow allows for the simulation of (combined) hydrogen and electricity networks, + containing consumers, producers and conversion assets. + The priority of the consumers, producers and conversion assets is set using the marginal costs + in the ESDL file, allowing for flexible customised operation. Producers with the lowest marginal + costs are maximised in operation before other consumers are used, while consumers with the + highest marginal costs are maximised before other consumers are satisfied. In case both profiles + and marginal costs are provided for producers or consumers, then the marginal costs are ignored + and the profiles will be matched. always are preferred over the + To obtain this workflow the objective functions are setup according to the scheme described + below. + + Goal priorities are: + 1. Match target demand specified + 2. Producers with highest marginal costs are minimised and Consumers with highest marginal + costs are maximised first, working back towards the lower marginal costs. + 3. Producers with a production profile will be matched at end. This goal should be obsolete, as + the bound is set towards the production profile and other producers are first minimised. + + Notes: + - Currently all demand profiles can be used, however the length of the simulation is based on + the length and timestep of these profiles. Too long timehorizons might results in too big + problems for the solver. + - No cyclic constraints are yet applied to storages as this workflow solely functions as a + simulator. + - TODO: When the number of assets become larger, the simulator might be applied in stages with + consecutive parts of the time horizon. + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self._qpsol = None + self._priorities_output = [] + + def pre(self): + self._qpsol = CachingQPSol() + + super().pre() + + @property + def esdl_assets(self): + assets = super().esdl_assets + + for asset in assets.values(): + # Overwrite all assets marked as optional to be used + if asset.attributes["state"].name in ["OPTIONAL"]: + asset.attributes["state"] = esdl.AssetStateEnum.ENABLED + logger.warning( + "The following asset has been specified as OPTIONAL but it has been changed " + f"to be included in the simulation, asset type: {asset.asset_type }, asset " + f"name: {asset.name}" + ) + + return assets + + def __create_asset_list_controls(self, asset_types_to_include, assets_without_control): + """ + This function creates the lists and dictionaries of assets to include in the optimization + based on the marginal costs, e.g. priorities. It excludes the assets who already have + assigned timeseries for demand or production. + Furthermore, it creates a map of the variables that are required for every asset. + :param asset_types_to_include: + :param assets_without_control: + :return: + """ + type_variable_map = { + "electricity_demand": "Electricity_demand", + "electricity_source": "Electricity_source", + "gas_demand": "Gas_demand_mass_flow", + "gas_source": "Gas_source_mass_flow", + "gas_tank_storage": "Gas_tank_flow", + "electrolyzer": "Power_consumed", + } + + assets_to_include = {} + asset_variable_map = {} + available_timeseries = [t.split(".")[0] for t in self.io.get_timeseries_names()] + for group, asset_types in asset_types_to_include.items(): + for asset_type in asset_types: + for asset in self.energy_system_components.get(asset_type, []): + if asset not in available_timeseries: + if group in assets_to_include.keys(): + assets_to_include[group].append(asset) + else: + assets_to_include[group] = [asset] + asset_variable_map[asset] = type_variable_map[asset_type] + + assets_list = [asset for a_type in assets_to_include.values() for asset in a_type] + unused_asset = [ + asset.asset_type + for asset in self.esdl_assets.values() + if asset.asset_type not in assets_without_control + if asset.name not in assets_list + if asset.name not in available_timeseries + ] + assert ( + len(unused_asset) == 0 + ), f"Asset types: {unused_asset} are not included in controls of the simulator" + + asset_info = { + "assets_to_include": assets_to_include, + "assets_to_include_list": assets_list, + "asset_variable_map": asset_variable_map, + } + return asset_info + + def __create_merit_path_goals(self, asset_info, max_value_merit, index_start_of_priority): + """ + This method creates the goals for every asset that is based on the marginal cost and the + relevant variable for that asset. Depending on the type of asset, the goal is a minimisation + or maximisation. + :param asset_info: + :param max_value_merit: + :param index_start_of_priority: + :return: + """ + goals = [] + assets_to_include = asset_info["assets_to_include"] + assets_list = asset_info["assets_to_include_list"] + asset_merit = asset_info["asset_merit"] + asset_variable_map = asset_info["asset_variable_map"] + for asset in assets_list: + index_s = asset_merit["asset_name"].index(f"{asset}") + marginal_priority = ( + index_start_of_priority + max_value_merit - asset_merit["merit_order"][index_s] + ) + assert ( + marginal_priority >= index_start_of_priority + ), "Priorities assigned must be smaller than the total number of producers" + variable_name = f"{asset}.{asset_variable_map[asset]}" + + if asset in [ + *assets_to_include.get("source", []), + ]: + goals.append( + MinimizeSourcesGoalMerit( + variable_name, + marginal_priority, + self.bounds()[variable_name], + self.variable_nominal(variable_name), + ) + ) + elif asset in assets_to_include.get("conversion", []): + goals.append( + MinimizeSourcesGoalMerit( + variable_name, + marginal_priority + 1, + self.bounds()[variable_name], + self.variable_nominal(variable_name), + ) + ) + variable_name = f"{asset}.Gas_mass_flow_out" + goals.append( + MaximizeDemandGoalMerit( + variable_name, + marginal_priority, + self.bounds()[variable_name], + self.variable_nominal(variable_name), + ) + ) + elif asset in assets_to_include.get("demand", []): + goals.append( + MaximizeDemandGoalMerit( + variable_name, + marginal_priority, + self.bounds()[variable_name], + self.variable_nominal(variable_name), + ) + ) + elif asset in assets_to_include.get("storage", []): + # TODO: should use separate variable for charging and discharging + + # charging acts as consumer + # Marginal costs for discharging > marginal cost for charging + goals.append( + MaximizeStorageGoalMerit( + variable_name, + marginal_priority, + self.bounds()[variable_name], + self.variable_nominal(variable_name), + ) + ) + + # discharging acts as producer + # Marginal costs for discharging should be larger than marginal cost for charging + # TODO: add check on the marginal costs for charging/discharging + index_s = asset_merit["asset_name"].index(f"{asset}_discharge") + marginal_priority = ( + index_start_of_priority + max_value_merit - asset_merit["merit_order"][index_s] + ) + assert ( + marginal_priority >= index_start_of_priority + ), "Priorities assigned must be smaller than the total number of producers" + variable_name = f"{asset}.{asset_variable_map[asset]}" + + goals.append( + MinimizeStorageGoalMerit( + variable_name, + marginal_priority, + self.bounds()[variable_name], + self.variable_nominal(variable_name), + ) + ) + else: + raise Exception( + f"No goal was set for {asset}, while a priority was provided. This asset group " + f"still has to be added to the goals." + ) + return goals + + def __merit_path_goals(self): + """ + This method organizes the goals and assigns their priorities + The first two priorities are reserved for matching of demand. Thereby the priorities of the + other goals to maximize specific producers and minimize demand, start at priority 3. + :return: + """ + # TODO: improve the asset_types_to_include and esdl_assets_to_include + asset_types_to_include = { + "source": ["electricity_source", "gas_source"], + "demand": ["electricity_demand", "gas_demand"], + "conversion": ["electrolyzer"], + "storage": ["gas_tank_storage"], + } + + assets_without_control = ["Pipe", "ElectricityCable", "Joint", "Bus"] + + # TODO also include other assets than producers, e.g. storage, conversion and possible + # demand for the ones without a profile + # TODO exclude producers from merit order if they have a profile, even if a marginal cost + # is set + + # Storage: charge priority should be higher than discharge priority + asset_info = self.__create_asset_list_controls( + asset_types_to_include, assets_without_control + ) + + asset_info["asset_merit"] = self.__merit_controls(asset_info["assets_to_include_list"]) + max_value_merit = max(asset_info["asset_merit"]["merit_order"]) + + # Priority 1 & 2 reserved for target demand goal & additional goal like matching + # producer profile (without merit order) + index_start_of_priority = 3 + + goals = self.__create_merit_path_goals(asset_info, max_value_merit, index_start_of_priority) + + return goals + + def path_goals(self): + goals = super().path_goals().copy() + + goals.extend(self.__merit_path_goals()) + + return goals + + def energy_system_options(self): + options = super().energy_system_options() + + self.gas_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + ) + self.gas_network_settings["minimize_head_losses"] = True + options["include_asset_is_switched_on"] = True + + return options + + def path_constraints(self, ensemble_member): + """ + Constraints to limit producer production in case timeseries for the production exist, + relevant when the first goals is not to match profile. + """ + constraints = super().path_constraints(ensemble_member) + + return constraints + + def constraints(self, ensemble_member): + """ + Add equality constraints to enforce a cyclic energy balance [J] between the end and the + start of the time horizon used as well an inequality constraint to enforce no milp supply + [W] to the netwok in the 1st time step + """ + constraints = super().constraints(ensemble_member) + + # TODO: cyclic constraints + + return constraints + + def __merit_controls(self, assets_list): + attributes = { + "asset_name": [], + "merit_order": [], + } + + assets = self.esdl_assets + for a in assets.values(): + if a.name in assets_list: + attributes["asset_name"].append(a.name) + try: + attributes["merit_order"].append( + a.attributes["costInformation"].marginalCosts.value + ) + except AttributeError: + try: + attributes["merit_order"].append( + a.attributes["controlStrategy"].marginalChargeCosts.value + ) + attributes["merit_order"].append( + a.attributes["controlStrategy"].marginalDischargeCosts.value + ) + attributes["asset_name"].append(f"{a.name}_discharge") + except AttributeError: + raise Exception(f"Asset: {a.name} does not have a merit order specified") + + last_merit_order = attributes["merit_order"][-1] + + if attributes["merit_order"][-1] <= 0.0: + raise Exception( + "The specified producer usage merit order must be a " + f"positve integer value, producer name:{a.name}, current " + f"specified merit value: {last_merit_order}" + ) + + # update merit order to be integers and have maximumally one step in priority + set_merit = set(attributes["merit_order"]) + order_prio = list(set_merit) + order_prio.sort() + map_prio = dict(zip(order_prio, list(range(1, len(set_merit) + 1)))) + a = [map_prio[v] for v in attributes["merit_order"]] + attributes["merit_order"] = a + return attributes + + def solver_options(self): + options = super().solver_options() + options["casadi_solver"] = self._qpsol + + return options + + def priority_started(self, priority): + goals_print = set() + for goal in [*self.path_goals(), *self.goals()]: + if goal.priority == priority: + goals_print.update([str(type(goal))]) + logger.info(f"{goals_print}") + self.__priority = priority + self.__priority_timer = time.time() + + super().priority_started(priority) + + def priority_completed(self, priority): + super().priority_completed(priority) + + self._hot_start = True + + time_taken = time.time() - self.__priority_timer + self._priorities_output.append( + ( + priority, + time_taken, + True, + self.objective_value, + self.solver_stats, + ) + ) + logger.info(f"Goal with priority {priority} has been completed") + if priority == 1 and self.objective_value > 1e-6: + raise RuntimeError("The heating demand is not matched") + + def __state_vector_scaled(self, variable, ensemble_member): + canonical, sign = self.alias_relation.canonical_signed(variable) + return ( + self.state_vector(canonical, ensemble_member) * self.variable_nominal(canonical) * sign + ) + + # TODO: post will be created later + # def post(self): + # super().post() + # self._write_updated_esdl(self.get_energy_system_copy(), optimizer_sim=True) + + +# ------------------------------------------------------------------------------------------------- +class MultiCommoditySimulatorHIGHS(MultiCommoditySimulator): + + def solver_options(self): + options = super().solver_options() + options["solver"] = "highs" + + return options + + +class MultiCommoditySimulatorNoLosses(MultiCommoditySimulator): + def energy_system_options(self): + options = super().energy_system_options() + + self.gas_network_settings["head_loss_option"] = HeadLossOption.NO_HEADLOSS + self.gas_network_settings["minimize_head_losses"] = False + options["include_electric_cable_power_loss"] = False + + return options + + def solver_options(self): + # For some cases the presolve of the HIGHS solver makes this problem infeasible, therefore + # the presolve is turned off. + options = super().solver_options() + options["solver"] = "highs" + highs_options = options["highs"] = {} + highs_options["presolve"] = "off" + + return options + + +# ------------------------------------------------------------------------------------------------- +@main_decorator +def main(runinfo_path, log_level): + logger.info("Run Network Simulator") + + kwargs = { + "write_result_db_profiles": False, + "influxdb_host": "localhost", + "influxdb_port": 8086, + "influxdb_username": None, + "influxdb_password": None, + "influxdb_ssl": False, + "influxdb_verify_ssl": False, + } + + _ = run_optimization_problem( + MultiCommoditySimulatorHIGHS, + esdl_run_info_path=runinfo_path, + log_level=log_level, + **kwargs, + ) + + +if __name__ == "__main__": + # main() + import tests.models.emerge.src.example as example + + base_folder = Path(example.__file__).resolve().parent.parent + solution = run_optimization_problem( + MultiCommoditySimulatorNoLosses, + base_folder=base_folder, + esdl_file_name="emerge_priorities_withoutstorage.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) diff --git a/tests/models/emerge/input/timeseries_short.csv b/tests/models/emerge/input/timeseries_short.csv new file mode 100644 index 000000000..f80b1da59 --- /dev/null +++ b/tests/models/emerge/input/timeseries_short.csv @@ -0,0 +1,28 @@ +DateTime,WindPark_9074,Elec,Hydrogen +2016-01-01Z 00:00:00,.0,2.239e-05,2.4 +2016-01-01Z 01:00:00,.0,2.0589999999999998e-05,2.4 +2016-01-01Z 02:00:00,.0,1.6809999999999997e-05,2.4 +2016-01-01Z 03:00:00,.0,1.741e-05,2.4 +2016-01-01Z 04:00:00,.0,1.702e-05,2.4 +2016-01-01Z 05:00:00,.0,1.5859999999999997e-05,2.4 +2016-01-01Z 06:00:00,1999997849.6,1.816e-05,2.4 +2016-01-01Z 07:00:00,1999999562.2,1.7729999999999998e-05,2.4 +2016-01-01Z 08:00:00,.0,1.977e-05,2.4 +2016-01-01Z 09:00:00,.0,2.3749999999999998e-05,2.4 +2016-01-01Z 10:00:00,1999995228.8,2.603e-05,2.4 +2016-01-01Z 11:00:00,1999995622.6000001,2.706e-05,2.4 +2016-01-01Z 12:00:00,1997697985.6,2.6589999999999998e-05,2.4 +2016-01-01Z 13:00:00,1658513101.4,2.4999999999999998e-05,2.4 +2016-01-01Z 14:00:00,1317659536.0,2.704e-05,2.4 +2016-01-01Z 15:00:00,618343094.1999999,3.446e-05,2.4 +2016-01-01Z 16:00:00,1199762886.2,4.514e-05,2.4 +2016-01-01Z 17:00:00,771068238.2,3.9999999999999996e-05,2.4 +2016-01-01Z 18:00:00,1001978579.5999999,3.530004e-05,2.4 +2016-01-01Z 19:00:00,1132050786.8,3.307e-05,2.4 +2016-01-01Z 20:00:00,1293624672.0,2.952e-05,2.4 +2016-01-01Z 21:00:00,1720023264.3999999,3.01e-05,2.4 +2016-01-01Z 22:00:00,1814015745.6,2.457e-05,2.4 +2016-01-01Z 23:00:00,1836244191.8,2.2199999999999998e-05,2.4 +2016-01-02Z 00:00:00,1986853387.6000001,1.657e-05,2.4 +2016-01-02Z 01:00:00,1999994376.9999998,1.535e-05,2.4 +2016-01-02Z 02:00:00,1999819409.8,1.277e-05,2.4 \ No newline at end of file diff --git a/tests/models/emerge/model/emerge.esdl b/tests/models/emerge/model/emerge.esdl index db56768a8..bd3302660 100644 --- a/tests/models/emerge/model/emerge.esdl +++ b/tests/models/emerge/model/emerge.esdl @@ -90,7 +90,7 @@ - + @@ -98,7 +98,7 @@ - + @@ -106,7 +106,7 @@ - + diff --git a/tests/models/emerge/model/emerge_priorities_withoutstorage.esdl b/tests/models/emerge/model/emerge_priorities_withoutstorage.esdl new file mode 100644 index 000000000..3b848e437 --- /dev/null +++ b/tests/models/emerge/model/emerge_priorities_withoutstorage.esdl @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/emerge/model/emerge_priorities_withoutstorage_2prod.esdl b/tests/models/emerge/model/emerge_priorities_withoutstorage_2prod.esdl new file mode 100644 index 000000000..a6bbbd861 --- /dev/null +++ b/tests/models/emerge/model/emerge_priorities_withoutstorage_2prod.esdl @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases_electricity/bus_networks/input/timeseries_2.csv b/tests/models/unit_cases_electricity/bus_networks/input/timeseries_2.csv new file mode 100644 index 000000000..8be0b94ba --- /dev/null +++ b/tests/models/unit_cases_electricity/bus_networks/input/timeseries_2.csv @@ -0,0 +1,4 @@ +DateTime,ElectricityDemand_e527 +01-01-2019 00:00, 500. +01-01-2019 01:00, 1000. +01-01-2019 02:00, 1500. diff --git a/tests/models/unit_cases_electricity/bus_networks/input/timeseries_2_prod.csv b/tests/models/unit_cases_electricity/bus_networks/input/timeseries_2_prod.csv new file mode 100644 index 000000000..bafe06b17 --- /dev/null +++ b/tests/models/unit_cases_electricity/bus_networks/input/timeseries_2_prod.csv @@ -0,0 +1,4 @@ +DateTime,ElectricityDemand_e527,ElectricityProducer_17a1 +01-01-2019 00:00, 500., 1200. +01-01-2019 01:00, 1000., 400. +01-01-2019 02:00, 1500., 600. diff --git a/tests/models/unit_cases_electricity/bus_networks/model/Electric_bus4_priorities.esdl b/tests/models/unit_cases_electricity/bus_networks/model/Electric_bus4_priorities.esdl new file mode 100644 index 000000000..8b7738a75 --- /dev/null +++ b/tests/models/unit_cases_electricity/bus_networks/model/Electric_bus4_priorities.esdl @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries.csv b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries.csv index 3565170c7..7ae8dad9a 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries.csv +++ b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries.csv @@ -1,4 +1,4 @@ -DateTime,elec,gas,WindPark_7f14 +DateTime,elec,Hydrogen,WindPark_7f14 01-01-2019 00:00, 1.0, 1000000.0, 100000000.0 01-01-2019 01:00, 1.0, 1000000.0, 100000000.0 01-01-2019 02:00, 1.0, 1000000.0, 100000000.0 diff --git a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv index 077783356..0b899c189 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv +++ b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv @@ -1,4 +1,4 @@ -DateTime,elec,gas,WindPark_7f14 +DateTime,elec,Hydrogen,WindPark_7f14 01-01-2019 00:00, 1.0, 1000000.0, 100000000.0 01-01-2019 01:00, 1.0, 1000000.0, 100000000.0 01-01-2019 02:00, 1.0, 1000000.0, 49000000.0 diff --git a/tests/models/unit_cases_electricity/electrolyzer/model/h2.esdl b/tests/models/unit_cases_electricity/electrolyzer/model/h2.esdl index 562c7bb9c..13425926f 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/model/h2.esdl +++ b/tests/models/unit_cases_electricity/electrolyzer/model/h2.esdl @@ -3,7 +3,7 @@ - + diff --git a/tests/models/unit_cases_electricity/electrolyzer/model/h2_profiles_added_dummy_values.esdl b/tests/models/unit_cases_electricity/electrolyzer/model/h2_profiles_added_dummy_values.esdl index 604f0e275..a9669ea26 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/model/h2_profiles_added_dummy_values.esdl +++ b/tests/models/unit_cases_electricity/electrolyzer/model/h2_profiles_added_dummy_values.esdl @@ -11,7 +11,7 @@ - + diff --git a/tests/models/unit_cases_electricity/electrolyzer/src/example.py b/tests/models/unit_cases_electricity/electrolyzer/src/example.py index 2685c48cf..0469f89d2 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/src/example.py +++ b/tests/models/unit_cases_electricity/electrolyzer/src/example.py @@ -2,6 +2,7 @@ from mesido.esdl.esdl_mixin import ESDLMixin from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.network_common import NetworkSettings from mesido.techno_economic_mixin import TechnoEconomicMixin import numpy as np @@ -33,29 +34,13 @@ def function(self, optimization_problem, ensemble_member): symbols = ( sign * optimization_problem.state_vector(canonical, ensemble_member) - * optimization_problem.variable_nominal(self.state) + # * optimization_problem.variable_nominal(self.state) ) price_profile = optimization_problem.get_timeseries(self.price_profile).values sum = 0.0 for i in range(len(price_profile)): sum += symbols[i] * price_profile[i] - for asset in [ - *optimization_problem.energy_system_components.get("gas_demand", []), - *optimization_problem.energy_system_components.get("gas_source", []), - *optimization_problem.energy_system_components.get("electrolyzer", []), - *optimization_problem.energy_system_components.get("gas_tank_storage", []), - *optimization_problem.energy_system_components.get("wind_park", []), - *optimization_problem.energy_system_components.get("electricity_demand", []), - *optimization_problem.energy_system_components.get("electricity_source", []), - ]: - sum -= optimization_problem.extra_variable( - f"{asset}__variable_operational_cost", ensemble_member - ) - sum -= optimization_problem.extra_variable( - f"{asset}__fixed_operational_cost", ensemble_member - ) - return -sum @@ -150,6 +135,7 @@ def energy_system_options(self): options = super().energy_system_options() options["include_asset_is_switched_on"] = True options["include_electric_cable_power_loss"] = False + self.gas_network_settings["network_type"] = NetworkSettings.NETWORK_TYPE_HYDROGEN return options diff --git a/tests/models/unit_cases_gas/multi_demand_source_node/model/test_priorities.esdl b/tests/models/unit_cases_gas/multi_demand_source_node/model/test_priorities.esdl new file mode 100644 index 000000000..fe20d89ab --- /dev/null +++ b/tests/models/unit_cases_gas/multi_demand_source_node/model/test_priorities.esdl @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases_gas/source_pipe_split_sink/model/source_sink.esdl b/tests/models/unit_cases_gas/source_pipe_split_sink/model/source_sink.esdl index 2f9a13e5f..3a56abd9f 100644 --- a/tests/models/unit_cases_gas/source_pipe_split_sink/model/source_sink.esdl +++ b/tests/models/unit_cases_gas/source_pipe_split_sink/model/source_sink.esdl @@ -10,11 +10,11 @@ - + - + diff --git a/tests/models/unit_cases_gas/source_sink/model/source_sink.esdl b/tests/models/unit_cases_gas/source_sink/model/source_sink.esdl index ed7f406a5..ca79d6f70 100644 --- a/tests/models/unit_cases_gas/source_sink/model/source_sink.esdl +++ b/tests/models/unit_cases_gas/source_sink/model/source_sink.esdl @@ -2,7 +2,7 @@ - + @@ -10,11 +10,11 @@ - + - + diff --git a/tests/test_electrolyzer.py b/tests/test_electrolyzer.py index f67dfbcd2..cadb1ef07 100644 --- a/tests/test_electrolyzer.py +++ b/tests/test_electrolyzer.py @@ -24,7 +24,7 @@ def test_electrolyzer_inequality(self): - Check the max production profile of the windfarm - Check the electrolyzer inequality constraints formulation - The water kinematic viscosity of hydrogen by comparing head loss to a hard-coded value - + - The pipe head loss constraint for a hydrogen network """ import models.unit_cases_electricity.electrolyzer.src.example as example from models.unit_cases_electricity.electrolyzer.src.example import MILPProblemInequality @@ -42,11 +42,16 @@ def test_electrolyzer_inequality(self): results = solution.extract_results() - # Compare the head loss to hard-coded values. Difference expected if an error + # TODO: potential move this code to the head loss test case (does not contain a hydrogen + # network optimization). For now this was not done, because it would imply adding a + # hydrogen network solve purely for the checks below which seems unnecessary + # Check: + # - Compare the head loss to hard-coded values. Difference expected if an error # occours in the calculation of the gas kinematic viscosity. - v_inspect = results["Pipe_6ba6.GasOut.Q"][1] / solution.parameters(0)["Pipe_6ba6.area"] - head_loss_v_inspect = darcy_weisbach.head_loss( - v_inspect, + # - Check head loss contraint + v_inspect = results["Pipe_6ba6.GasOut.Q"] / solution.parameters(0)["Pipe_6ba6.area"] + head_loss_max = darcy_weisbach.head_loss( + solution.gas_network_settings["maximum_velocity"], solution.parameters(0)["Pipe_6ba6.diameter"], solution.parameters(0)["Pipe_6ba6.length"], solution.energy_system_options()["wall_roughness"], @@ -54,9 +59,14 @@ def test_electrolyzer_inequality(self): network_type=NetworkSettings.NETWORK_TYPE_HYDROGEN, pressure=solution.parameters(0)["Pipe_6ba6.pressure"], ) - np.testing.assert_allclose(head_loss_v_inspect, 104.06961666355383) + for iv in range(len(v_inspect)): + np.testing.assert_allclose( + v_inspect[iv] / solution.gas_network_settings["maximum_velocity"] * head_loss_max, + 2.173724632, + ) + np.testing.assert_allclose(-results["Pipe_6ba6.dH"][iv], 2.173724632) - gas_price_profile = "gas.price_profile" + gas_price_profile = "Hydrogen.price_profile" state = "GasDemand_0cf3.Gas_demand_mass_flow" nominal = solution.variable_nominal(state) * np.median( solution.get_timeseries(gas_price_profile).values @@ -101,10 +111,9 @@ def test_electrolyzer_inequality(self): # Checks on the storage timestep = 3600.0 - rho = solution.parameters(0)["GasStorage_e492.density_max_storage"] np.testing.assert_allclose( np.diff(results["GasStorage_e492.Stored_gas_mass"]), - results["GasStorage_e492.Gas_tank_flow"][1:] * rho * timestep, + results["GasStorage_e492.Gas_tank_flow"][1:] * timestep, rtol=1e-6, atol=1e-8, ) @@ -225,6 +234,7 @@ def test_electrolyzer_minimum_power(self): np.testing.assert_allclose( results["Electrolyzer_fc66.ElectricityIn.Power"][-1], 0.0, + atol=5e-5, ) # Check that the output gas is 0 np.testing.assert_allclose( @@ -268,6 +278,17 @@ def test_electrolyzer_constant_efficiency(self): # Electrolyser efficiency = solution.parameters(0)["Electrolyzer_fc66.efficiency"] np.testing.assert_allclose( - results["Electrolyzer_fc66.Gas_mass_flow_out"] * efficiency, + results["Electrolyzer_fc66.Gas_mass_flow_out"] * efficiency * 3600, results["Electrolyzer_fc66.ElectricityIn.Power"], ) + + +if __name__ == "__main__": + import time + + start_time = time.time() + a = TestElectrolyzer() + a.test_electrolyzer_inequality() + a.test_electrolyzer_minimum_power() + a.test_electrolyzer_constant_efficiency() + print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) diff --git a/tests/test_emerge.py b/tests/test_emerge.py index 2956db7ba..1c1e94c42 100644 --- a/tests/test_emerge.py +++ b/tests/test_emerge.py @@ -28,3 +28,6 @@ def test_emerge_workflow(self): profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries.csv", ) + + # TODO: checks on values need to be added, not sure if cost values now make sense, scaling + # is not too bad, but if presolve of HIGHS is on, it becomes infeasible. diff --git a/tests/test_hydraulic_power.py b/tests/test_hydraulic_power.py index d134d9508..b2857e4f7 100644 --- a/tests/test_hydraulic_power.py +++ b/tests/test_hydraulic_power.py @@ -9,11 +9,12 @@ from mesido.network_common import NetworkSettings from mesido.util import run_esdl_mesido_optimization - import numpy as np import pandas as pd +from utils_tests import demand_matching_test + class TestHydraulicPower(TestCase): def test_hydraulic_power_heat(self): @@ -247,6 +248,7 @@ def test_hydraulic_power_gas(self): - checks if hydraulic power is 0 at end of the pipe - checks if differences of in/out port is equal to the added hydraulic power of that pipe - checks absolutae value of the hydraulic power loss over a line + - demand matching """ import models.unit_cases_gas.source_sink.src.run_source_sink as run_source_sink from models.unit_cases_gas.source_sink.src.run_source_sink import ( @@ -261,7 +263,7 @@ def read(self): super().read() for d in self.energy_system_components["gas_demand"]: - new_timeseries = self.get_timeseries(f"{d}.target_gas_demand").values * 4e4 + new_timeseries = self.get_timeseries(f"{d}.target_gas_demand").values * 5e3 self.set_timeseries(f"{d}.target_gas_demand", new_timeseries) def energy_system_options(self): @@ -298,11 +300,12 @@ def energy_system_options(self): # due to non linearity, every timestep on new linearized line, a doubled mass flow should # result in more than doubled hydraulic power + tol_hp = 1.0e-6 np.testing.assert_array_less( - (pipe_hp[0] + 1e-6) * (pipe_mass[1] / pipe_mass[0]), pipe_hp[1] + pipe_hp[0] * (pipe_mass[1] / pipe_mass[0]), pipe_hp[1] + tol_hp ) np.testing.assert_array_less( - (pipe_hp[1] + 1e-6) * (pipe_mass[2] / pipe_mass[1]), pipe_hp[2] + pipe_hp[1] * (pipe_mass[2] / pipe_mass[1]), pipe_hp[2] + tol_hp ) np.testing.assert_allclose(pipe_hp, pipe_hp_in - pipe_hp_out) @@ -337,7 +340,7 @@ def energy_system_options(self): ) for v in v_inspect ] - np.testing.assert_array_less(calc_hp_accurate, pipe_hp) + np.testing.assert_array_less(calc_hp_accurate, pipe_hp + tol_hp) v_points = [ i * v_max / solution.gas_network_settings["n_linearization_lines"] @@ -367,6 +370,8 @@ def energy_system_options(self): np.testing.assert_allclose(pipe_hp[1], a[1] * results[f"{pipe}.GasOut.Q"][1] + b[1]) np.testing.assert_allclose(pipe_hp[2], a[2] * results[f"{pipe}.GasOut.Q"][2] + b[2]) + demand_matching_test(solution, results) + def test_hydraulic_power_gas_multi_demand(self): """ Checks the logic for the hydraulic power of gas pipes. @@ -491,5 +496,8 @@ def energy_system_options(self): start_time = time.time() a = TestHydraulicPower() - a.test_hydraulic_power() + a.test_hydraulic_power_heat() + a.test_hydraulic_power_gas() + a.test_hydraulic_power_gas_multi_demand() + print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) diff --git a/tests/test_multicommodity_simulator.py b/tests/test_multicommodity_simulator.py new file mode 100644 index 000000000..08592bf83 --- /dev/null +++ b/tests/test_multicommodity_simulator.py @@ -0,0 +1,351 @@ +from pathlib import Path +from unittest import TestCase + +from mesido.electricity_physics_mixin import ElectrolyzerOption +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.workflows.multicommodity_simulator_workflow import ( + MultiCommoditySimulator, + MultiCommoditySimulatorNoLosses, +) + +import numpy as np + +from rtctools.util import run_optimization_problem + +from utils_tests import demand_matching_test, energy_conservation_test + + +def checks_all_mc_simulations(solution, results): + # General checks + demand_matching_test(solution, results) + energy_conservation_test(solution, results) + + for prod in solution.energy_system_components.get("electricity_source", []): + prod_profile_name = f"{prod}.maximum_electricity_source" + energy_prod = results[f"{prod}.Electricity_source"] + if prod_profile_name in solution.io.get_timeseries_names(): + target = solution.get_timeseries(prod_profile_name).values[: len(energy_prod)] + np.testing.assert_allclose(target, energy_prod, atol=1.0e-3, rtol=1.0e-6) + # print(prod, energy_prod) + + for demand in solution.energy_system_components.get("electricity_demand", []): + energy_demand = results[f"{demand}.Electricity_demand"] + if f"{demand}.target_electricity_demand" in solution.io.get_timeseries_names(): + target = solution.get_timeseries(f"{demand}.target_electricity_demand").values + np.testing.assert_allclose(target, energy_demand, atol=1.0e-3, rtol=1.0e-6) + # print(demand, target, energy_demand) + # else: + # print(demand, energy_demand) + + for demand in solution.energy_system_components.get("gas_demand", []): + energy_demand = results[f"{demand}.Gas_demand_mass_flow"] + if f"{demand}.target_gas_demand" in solution.io.get_timeseries_names(): + target = solution.get_timeseries(f"{demand}.target_gas_demand").values + np.testing.assert_allclose(target, energy_demand, atol=1.0e-3, rtol=1.0e-6) + # print(demand, target, energy_demand) + # else: + # print(demand, energy_demand) + + +class TestMultiCommoditySimulator(TestCase): + # TODO: update docstring + """ + In this test case several producers and consumers as well as conversion assets are applied, for + the two commodities Hydrogen and electricity. + The priority of the consumers, producers and conversion assets is set using the marginal costs + in the ESDL file, allowing for flexible customised operation. + + Checks: + - General checks namely demand matching, energy conservation and asset milp variable vs + calculated milp (based on flow rate) + - Check that producer 1 (merit oder = 2) is only used for the supply of milp lossed in the + connected and is does not contribute to the heating demands 1, 2 and 3 + - Check that the ATES is not delivering any milp to the network during the 1st time step + """ + + def test_multi_commodity_simulator_priorities_el(self): + import models.unit_cases_electricity.bus_networks.src.example as example + + base_folder = Path(example.__file__).resolve().parent.parent + + solution = run_optimization_problem( + MultiCommoditySimulator, + base_folder=base_folder, + esdl_file_name="Electric_bus4_priorities.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_2.csv", + ) + + bounds = solution.bounds() + results = solution.extract_results() + + checks_all_mc_simulations(solution, results) + + prod_1 = results["ElectricityProducer_a215.Electricity_source"] + prod_2 = results["ElectricityProducer_17a1.Electricity_source"] + dem_1 = results["ElectricityDemand_e527.Electricity_demand"] + dem_2 = results["ElectricityDemand_281a.Electricity_demand"] + + # check producer with highest priority (lowest marginal costs is maximizing production) + np.testing.assert_allclose( + prod_1, bounds["ElectricityProducer_a215.Electricity_source"][1], atol=1e-3, rtol=1e-6 + ) + # check producer with second highest priority is only producing to meet profile of demand + prod_2_target = dem_1 - prod_1 + prod_2_target[prod_2_target < 0] = 0 + np.testing.assert_allclose(prod_2, prod_2_target, atol=1e-3, rtol=1e-6) + # check demand with lowest marginal cost is only consuming if electricity left from producer + # with highest priority after the matching of demand profile + demand_2_target = prod_1 - dem_1 + demand_2_target[demand_2_target < 0] = 0 + np.testing.assert_allclose(dem_2, demand_2_target, atol=1e-3, rtol=1e-6) + + def test_multi_commodity_simulator_prod_profile(self): + import models.unit_cases_electricity.bus_networks.src.example as example + + base_folder = Path(example.__file__).resolve().parent.parent + + solution = run_optimization_problem( + MultiCommoditySimulator, + base_folder=base_folder, + esdl_file_name="Electric_bus4_priorities.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_2_prod.csv", + ) + + bounds = solution.bounds() + results = solution.extract_results() + + checks_all_mc_simulations(solution, results) + + prod_1 = results["ElectricityProducer_a215.Electricity_source"] + prod_2 = results["ElectricityProducer_17a1.Electricity_source"] + dem_1 = results["ElectricityDemand_e527.Electricity_demand"] + dem_2 = results["ElectricityDemand_281a.Electricity_demand"] + + # check producer with highest priority (lowest marginal costs is maximizing production) is + # producing at max capacity, except when demand profile + max demand of other demand is + # lower than prod_2 profile and max capacity prod_1 + np.testing.assert_allclose( + prod_1[1:], + bounds["ElectricityProducer_a215.Electricity_source"][1], + atol=1e-3, + rtol=1e-6, + ) + np.testing.assert_allclose( + prod_1[0], + bounds["ElectricityDemand_281a.Electricity_demand"][1] + dem_1[0] - prod_2[0], + atol=1e-3, + rtol=1e-6, + ) + + # check demand with lowest marginal cost is only consuming if electricity left from producer + # with highest priority and producer with profile, after the matching of demand profile + demand_2_target = prod_1 + prod_2 - dem_1 + demand_2_target[demand_2_target < 0] = 0 + np.testing.assert_allclose(dem_2, demand_2_target, atol=1e-3, rtol=1e-6) + + # Check that producer 1 (merit oder = 2) is not used + # and is does not contribute to the heating demands 1, 2 and 3 + # TODO: these tests need to be updated for elec/gas + + import models.unit_cases_gas.multi_demand_source_node.src.run_test as example + + base_folder = Path(example.__file__).resolve().parent.parent + + solution = run_optimization_problem( + MultiCommoditySimulator, + base_folder=base_folder, + esdl_file_name="test_priorities.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + + results = solution.extract_results() + bounds = solution.bounds() + + checks_all_mc_simulations(solution, results) + + prod_1 = results["GasProducer_3573.Gas_source_mass_flow"] + prod_2 = results["GasProducer_a977.Gas_source_mass_flow"] + dem_1 = results["GasDemand_47d0.Gas_demand_mass_flow"] + dem_2 = results["GasDemand_7979.Gas_demand_mass_flow"] + prod_1_bound = bounds["GasProducer_3573.Gas_source_mass_flow"][1] + dem_2_bound = bounds["GasDemand_7979.Gas_demand_mass_flow"] + + # check producer with highest marginal cost (prod_2) is only producing to match demand + # profile of dem_1 + the max of dem_2, + # check producer_1 is maxed out + prod_2_target = dem_1 + dem_2 - prod_1 + prod_2_target[prod_2_target < 0] = 0 + np.testing.assert_allclose(prod_2, prod_2_target, atol=1e-3, rtol=1e-6) + np.testing.assert_allclose(prod_1, prod_1_bound) + + # check demand 1 is matching the profile (in check_all_mc_simulations) and that demand 2 + # is maxed out + checks_all_mc_simulations(solution, results) + np.testing.assert_allclose(dem_2, dem_2_bound[1], atol=1e-3, rtol=1e-6) + + def test_multi_commodity_simulator_emerge(self): + import models.emerge.src.example as example + + base_folder = Path(example.__file__).resolve().parent.parent + + solution = run_optimization_problem( + MultiCommoditySimulatorNoLosses, + base_folder=base_folder, + esdl_file_name="emerge_priorities_withoutstorage.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_short.csv", + ) + + bounds = solution.bounds() + results = solution.extract_results() + + # all_mc_checks cannot be used because max electricity production of windfarm is larger + # than the max electricity take off at electrolyzer (due to mas gas demand) and the max + # electricity demand. + # checks_all_mc_simulations(solution, results) + tol = 1.0e-6 + + esdl_electrolyzer = solution._esdl_assets[ + solution.esdl_asset_name_to_id_map["Electrolyzer_6327"] + ] + demand_gas = results["GasDemand_4146.Gas_demand_mass_flow"] + demand_el = results["ElectricityDemand_f833.Electricity_demand"] + electrolyzer_power = results["Electrolyzer_6327.Power_consumed"] + electrolyzer_gas = results["Electrolyzer_6327.Gas_mass_flow_out"] + windfarm_power = results["WindPark_9074.Electricity_source"] + windfarm_target = solution.get_timeseries( + "WindPark_9074.maximum_electricity_source" + ).values[: len(windfarm_power)] + # cap on el consumption by electricity_demand (due to cap, 1.3GW) and by electrolyzer + # (due to cap of gas demand) + cap_el_consumption = 2.1e9 + windfarm_target = np.minimum( + np.ones(len(windfarm_target)) * cap_el_consumption, windfarm_target + ) + np.testing.assert_allclose(windfarm_target, windfarm_power, atol=1.0e-3, rtol=tol) + + efficiency = electrolyzer_power / electrolyzer_gas # W/(g/s) = Ws/g + efficiency = efficiency / 3600 # Wh/g + provided_efficiencies = ( + esdl_electrolyzer.attributes["effMaxLoad"], + esdl_electrolyzer.attributes["effMinLoad"], + esdl_electrolyzer.attributes["efficiency"], + ) + np.testing.assert_array_less(min(provided_efficiencies), efficiency[electrolyzer_power > 0]) + np.testing.assert_array_less( + efficiency[electrolyzer_power > 0], max(provided_efficiencies) + tol + ) + + # demand gas maximised when sufficient power available to convert electricity to gas + cap_electrolyzer_power = ( + cap_el_consumption - bounds["ElectricityDemand_f833.Electricity_demand"][1] + ) + index_gas_max = windfarm_power >= cap_electrolyzer_power + np.testing.assert_allclose( + demand_gas[index_gas_max], bounds["Electrolyzer_6327.Gas_mass_flow_out"][1] + ) + # due to priority settings, electricity demand only consuming if demand_gas maximised and + # enough windfarm power + demand_el_calc = windfarm_power - electrolyzer_power + demand_el_calc[demand_el_calc < 0] = 0 + np.testing.assert_allclose(demand_el_calc, demand_el) + + def test_multi_commodity_simulator_emerge_lowprod(self): + import models.emerge.src.example as example + + base_folder = Path(example.__file__).resolve().parent.parent + + class MCSimulatorShortSmallProd(MultiCommoditySimulatorNoLosses): + + def read(self, variable=None): + super().read() + + for asset in self.energy_system_components["wind_park"]: + new_timeseries = ( + self.get_timeseries(f"{asset}.maximum_electricity_source").values * 0.5 + ) + self.set_timeseries(f"{asset}.maximum_electricity_source", new_timeseries) + + def energy_system_options(self): + options = super().energy_system_options() + + options["electrolyzer_efficiency"] = ( + ElectrolyzerOption.LINEARIZED_THREE_LINES_WEAK_INEQUALITY + ) + + return options + + # TODO: somehow highs always says it is in feasible + solution = run_optimization_problem( + MCSimulatorShortSmallProd, + base_folder=base_folder, + esdl_file_name="emerge_priorities_withoutstorage_2prod.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_short.csv", + ) + + results = solution.extract_results() + bounds = solution.bounds() + + checks_all_mc_simulations(solution, results) + + esdl_electrolyzer = solution._esdl_assets[ + solution.esdl_asset_name_to_id_map["Electrolyzer_6327"] + ] + demand_gas = results["GasDemand_4146.Gas_demand_mass_flow"] + demand_el = results["ElectricityDemand_f833.Electricity_demand"] + electrolyzer_power = results["Electrolyzer_6327.Power_consumed"] + electrolyzer_gas = results["Electrolyzer_6327.Gas_mass_flow_out"] + windfarm_power = results["WindPark_9074.Electricity_source"] + prod_power = results["ElectricityProducer_4850.Electricity_source"] + prod_power_cap = 3e8 # W + + efficiency = electrolyzer_power / electrolyzer_gas # W/(g/s) = Ws/g + efficiency = efficiency / 3600 # Wh/g + provided_efficiencies = ( + esdl_electrolyzer.attributes["effMaxLoad"], + esdl_electrolyzer.attributes["effMinLoad"], + esdl_electrolyzer.attributes["efficiency"], + ) + np.testing.assert_array_less(min(provided_efficiencies) - 1e-12, efficiency) + np.testing.assert_array_less(efficiency, max(provided_efficiencies) + 1e-12) + + # demand gas maximised when sufficient power available to convert electricity to gas + cap_electrolyzer_power = 444880000.0 + index_gas_max = windfarm_power >= cap_electrolyzer_power + np.testing.assert_allclose( + demand_gas[index_gas_max], bounds["Electrolyzer_6327.Gas_mass_flow_out"][1] + ) + # due to priority settings, electricity demand only consuming if demand_gas maximised and + # enough windfarm power + demand_el_calc = windfarm_power - electrolyzer_power + demand_el_calc[demand_el_calc < 0] = 0 + np.testing.assert_allclose(demand_el_calc, demand_el, atol=1e-5 * max(demand_el)) + # electricity_producer only producing upto its own cap if windfarm_power is insufficient to + # fullfill demand_gas + el_prod_calc = np.maximum( + np.minimum(max(electrolyzer_power) - windfarm_power, prod_power_cap), 0.0 + ) + np.testing.assert_allclose(el_prod_calc, prod_power, atol=1e-5 * max(demand_el)) + + +if __name__ == "__main__": + import time + + start_time = time.time() + a = TestMultiCommoditySimulator() + a.test_multi_commodity_simulator_priorities_el() + a.test_multi_commodity_simulator_prod_profile() + a.test_multi_commodity_simulator_emerge() + a.test_multi_commodity_simulator_emerge_lowprod() + + print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index ef6ec7479..a8980a8a7 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -104,7 +104,9 @@ def test_loading_from_csv(self): np.testing.assert_equal(expected_array, problem.get_timeseries("elec.price_profile").values) expected_array = np.array([1.0e6] * 3) - np.testing.assert_equal(expected_array, problem.get_timeseries("gas.price_profile").values) + np.testing.assert_equal( + expected_array, problem.get_timeseries("Hydrogen.price_profile").values + ) def test_loading_from_xml(self): """ @@ -173,8 +175,15 @@ def test_loading_from_csv_with_influx_profiles_given(self): np.testing.assert_equal(expected_array, problem.get_timeseries("elec.price_profile").values) expected_array = np.array([1.0e6] * 3) - np.testing.assert_equal(expected_array, problem.get_timeseries("gas.price_profile").values) + np.testing.assert_equal( + expected_array, problem.get_timeseries("Hydrogen.price_profile").values + ) if __name__ == "__main__": - unittest.main() + # unittest.main() + a = TestProfileLoading() + a.test_loading_from_influx() + a.test_loading_from_csv() + a.test_loading_from_xml() + a.test_loading_from_csv_with_influx_profiles_given() diff --git a/tests/utils_tests.py b/tests/utils_tests.py index c499d80e5..8b2c81881 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -304,7 +304,7 @@ def heat_to_discharge_test(solution, results): test.assertTrue( expr=all( results[f"{p}.HeatIn.Heat"][indices] - <= results[f"{p}.Q"][indices] * rho * cp * temperature + tol + <= (results[f"{p}.Q"][indices] + 1e-7) * rho * cp * temperature ) ) test.assertTrue( From f62beb69453d19936fccc32f978f5e68782e9c62 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Jul 2024 14:22:23 +0200 Subject: [PATCH 190/275] Inlcude heat losses --- tests/test_cold_demand.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 1f2835a6e..a64aef486 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -102,7 +102,7 @@ class HeatingCoolingProblem(HeatProblem): # temp code below def energy_system_options(self): options = super().energy_system_options() - options["neglect_pipe_heat_losses"] = True + options["neglect_pipe_heat_losses"] = False return options def constraints(self, ensemble_member): From 76c2ce2a922774937eca4c039d3317cfa9f1102e Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Fri, 12 Jul 2024 14:22:31 +0200 Subject: [PATCH 191/275] Formatting --- tests/models/wko/src/example.py | 3 --- tests/test_cold_demand.py | 16 ++-------------- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/tests/models/wko/src/example.py b/tests/models/wko/src/example.py index e19a16648..bafca1f0c 100644 --- a/tests/models/wko/src/example.py +++ b/tests/models/wko/src/example.py @@ -1,6 +1,3 @@ -import sys -import traceback - import casadi as ca from mesido.esdl.esdl_mixin import ESDLMixin diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index a64aef486..0418edfbe 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -99,7 +99,8 @@ def test_wko(self): class HeatingCoolingProblem(HeatProblem): - # temp code below + # TODO: investigate why test fails when heat_losses are neglected. + # An issue has been created for this def energy_system_options(self): options = super().energy_system_options() options["neglect_pipe_heat_losses"] = False @@ -154,21 +155,8 @@ def constraints(self, ensemble_member): np.testing.assert_allclose( results["ATES_226d.Stored_heat"][0], results["ATES_226d.Stored_heat"][-1] ) - # np.testing.assert_allclose(results["ATES_226d.Stored_heat"][0], 0.0) - - # Heat pump does not switch on to start loading the WKO. - # Is this intended for some reason Femke? if __name__ == "__main__": test_cold_demand = TestColdDemand() test_cold_demand.test_wko() - - a = 1 - - -# results["Pipe2.HeatIn.Heat"] - results["Pipe2.HeatOut.Heat"] + (results["Pipe5.HeatIn.Heat"] - results["Pipe5.HeatOut.Heat"]) + (results["ATES_226d.Stored_heat"][1] - results["ATES_226d.Stored_heat"][0])/3600 - -# temp = results["Pipe2.HeatIn.Heat"] - results["Pipe2.HeatOut.Heat"] + (results["Pipe5.HeatIn.Heat"] - results["Pipe5.HeatOut.Heat"]) - -# (results["ATES_226d.Stored_heat"][1:] - results["ATES_226d.Stored_heat"][0:-1])/3600 + temp[1:] \ No newline at end of file From a9b675acf79bdc0f9f90f78161b0f9b4a3200b15 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Fri, 12 Jul 2024 16:12:50 +0200 Subject: [PATCH 192/275] Multicommodity simulator storage (#119) This merge commit includes the storages in the multicommodity simulator workflow. The goals are on the charging and discharging variables, with the discharging to be minimised and the charging to be maximised. Test case on the storage are also implented. Furthermore this commit also includes a testcase for the simulator where the headloss is included. --- src/mesido/esdl/esdl_heat_model.py | 15 + src/mesido/gas_physics_mixin.py | 15 +- .../milp/electricity/electricity_storage.py | 5 +- .../component_library/milp/gas/gas_pipe.py | 1 + .../multicommodity_simulator_workflow.py | 55 +++- .../model/emerge_battery_priorities.esdl | 147 ++++++++++ .../emerge/model/emerge_priorities.esdl | 130 +++++++++ tests/test_multicommodity_simulator.py | 274 ++++++++++++++++-- tests/utils_tests.py | 2 +- 9 files changed, 604 insertions(+), 40 deletions(-) create mode 100644 tests/models/emerge/model/emerge_battery_priorities.esdl create mode 100644 tests/models/emerge/model/emerge_priorities.esdl diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index ed706abb1..4fa3ee3a1 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -643,6 +643,10 @@ def convert_heat_pipe( conductivies_insulation, ) = self._pipe_get_diameter_and_insulation(asset) + id_mapping = asset.global_properties["carriers"][asset.in_ports[0].carrier.id][ + "id_number_mapping" + ] + if isinstance(asset.in_ports[0].carrier, esdl.esdl.GasCommodity): q_nominal = math.pi * diameter**2 / 4.0 * self.v_max_gas / 2.0 self._set_q_nominal(asset, q_nominal) @@ -658,6 +662,7 @@ def convert_heat_pipe( Hydraulic_power=dict(nominal=q_nominal * pressure), ) modifiers = dict( + id_mapping_carrier=id_mapping, length=length, density=density, diameter=diameter, @@ -1643,6 +1648,9 @@ def convert_electricity_storage( I=dict(min=-i_max, max=i_max, nominal=i_nom), Power=dict(min=-max_discharge, max=max_charge, nominal=max_charge / 2.0), ), + Effective_power_charging=dict( + min=-max_discharge, max=max_charge, nominal=max_charge / 2.0 + ), **self._get_cost_figure_modifiers(asset), ) @@ -2013,6 +2021,13 @@ def convert_electrolyzer(self, asset: Asset) -> Tuple[Type[Electrolyzer], MODIFI max_power = asset.attributes.get("power", math.inf) min_load = float(asset.attributes["minLoad"]) max_load = float(asset.attributes["maxLoad"]) + if not max_power == max_load: + max_power = max_load + logger.warning( + f"The maximum load and the power of the electrolyzer did not match for " + f"{asset.name}. The maximum load of {max_load}W is now used as maximum " + f"power." + ) eff_min_load = asset.attributes["effMinLoad"] # Wh/g eff_max_load = asset.attributes["effMaxLoad"] # Wh/g eff_max = asset.attributes["efficiency"] # Wh/g diff --git a/src/mesido/gas_physics_mixin.py b/src/mesido/gas_physics_mixin.py index 5dc0df744..b8ec6e508 100644 --- a/src/mesido/gas_physics_mixin.py +++ b/src/mesido/gas_physics_mixin.py @@ -181,7 +181,10 @@ def _get_min_bound(bound): # Note we always use the gas network type for the naming of variables, independent of # the gas mixture used. initialized_vars = self._gn_head_loss_class.initialize_variables_nominals_and_bounds( - self, NetworkSettings.NETWORK_TYPE_GAS, pipe_name, self.gas_network_settings + self, + self.gas_network_settings["network_type"], + pipe_name, + self.gas_network_settings, ) if initialized_vars[0] != {}: self.__gas_pipe_head_bounds[ @@ -254,7 +257,7 @@ def _get_min_bound(bound): self.__maximum_total_head_loss = self.__get_maximum_total_head_loss() if options["gas_storage_discharge_variables"]: - for storage in self.energy_system_components.get("gas_storage", []): + for storage in self.energy_system_components.get("gas_tank_storage", []): bound_storage_q = self.bounds()[f"{storage}.GasIn.Q"][0] var_name = f"{storage}__Q_discharge" self.__gas_storage_discharge_map[storage] = var_name @@ -560,7 +563,7 @@ def __flow_direction_path_constraints(self, ensemble_member): return constraints - def __gas_storage_discharge_path_constraints(self): + def __gas_storage_discharge_path_constraints(self, ensemble_member): """ The discharge variables are added such that two separate goals for charging and discharging can be created. The discharging variable has a lower bound of 0 and should always be larger @@ -568,12 +571,11 @@ def __gas_storage_discharge_path_constraints(self): the discharging and afterwards an maximisation of the charging without conflicting goals or constraints. """ - # TODO: still add test constraints = [] options = self.energy_system_options() if options["gas_storage_discharge_variables"]: - for storage in self.energy_system_components.get("gas_storage"): + for storage in self.energy_system_components.get("gas_tank_storage", []): storage_charge_var = self.state(f"{storage}.GasIn.Q") storage_discharge_var_name = f"{storage}__Q_discharge" storage_discharge_var = self.state(storage_discharge_var_name) @@ -584,6 +586,8 @@ def __gas_storage_discharge_path_constraints(self): ((storage_discharge_var + storage_charge_var) / nominal, 0.0, np.inf) ) + return constraints + def path_constraints(self, ensemble_member): """ Here we add all the path constraints to the optimization problem. Please note that the @@ -606,6 +610,7 @@ def path_constraints(self, ensemble_member): ) constraints.extend(self.__flow_direction_path_constraints(ensemble_member)) constraints.extend(self.__gas_node_hydraulic_power_mixing_path_constraints(ensemble_member)) + constraints.extend(self.__gas_storage_discharge_path_constraints(ensemble_member)) return constraints diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_storage.py b/src/mesido/pycml/component_library/milp/electricity/electricity_storage.py index f18c39da8..442a17e83 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_storage.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_storage.py @@ -36,7 +36,10 @@ def __init__(self, name, **modifiers): nominal=self._nominal_stored_electricity, ) self.add_variable( - Variable, "Effective_power_charging", nominal=self.ElectricityIn.Power.nominal + Variable, + "Effective_power_charging", + nominal=self.ElectricityIn.Power.nominal, + max=self.ElectricityIn.Power.max, ) self.add_equation( diff --git a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py index cca6be2a2..460d40b20 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py @@ -25,6 +25,7 @@ def __init__(self, name, **modifiers): self.area = 0.25 * pi * self.diameter**2 self.Q_nominal = self.v_max / 2.0 * self.area self.pressure = 16.0e5 + self.id_mapping_carrier = -1 self.nominal_head = 30.0 self.length = nan diff --git a/src/mesido/workflows/multicommodity_simulator_workflow.py b/src/mesido/workflows/multicommodity_simulator_workflow.py index 184db3750..c24766f51 100644 --- a/src/mesido/workflows/multicommodity_simulator_workflow.py +++ b/src/mesido/workflows/multicommodity_simulator_workflow.py @@ -9,6 +9,7 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption +from mesido.network_common import NetworkSettings from mesido.physics_mixin import PhysicsMixin from mesido.workflows.io.write_output import ScenarioOutput from mesido.workflows.utils.helpers import main_decorator @@ -130,8 +131,7 @@ class MinimizeStorageGoalMerit(Goal): """ def __init__(self, source_variable, prod_priority, func_range_bound, nominal, order=2): - self.target_min = 0.0 # func_range_bound[0] - self.target_max = func_range_bound[1] * 0.999 + self.target_max = 0.0 self.function_range = func_range_bound self.source_variable = source_variable self.function_nominal = nominal @@ -153,7 +153,7 @@ def __init__(self, demand_variable, prod_priority, func_range_bound, nominal, or self.function_range = func_range_bound self.demand_variable = demand_variable self.function_nominal = nominal - self.priority = prod_priority + 1 + self.priority = prod_priority self.order = order def function(self, optimization_problem, ensemble_member): @@ -275,7 +275,11 @@ def __create_asset_list_controls(self, asset_types_to_include, assets_without_co "electricity_source": "Electricity_source", "gas_demand": "Gas_demand_mass_flow", "gas_source": "Gas_source_mass_flow", - "gas_tank_storage": "Gas_tank_flow", + "gas_tank_storage": {"charge": "Gas_tank_flow", "discharge": "__Q_discharge"}, + "electricity_storage": { + "charge": "Effective_power_charging", + "discharge": "__effective_power_discharging", + }, "electrolyzer": "Power_consumed", } @@ -334,11 +338,12 @@ def __create_merit_path_goals(self, asset_info, max_value_merit, index_start_of_ assert ( marginal_priority >= index_start_of_priority ), "Priorities assigned must be smaller than the total number of producers" - variable_name = f"{asset}.{asset_variable_map[asset]}" if asset in [ *assets_to_include.get("source", []), ]: + variable_name = f"{asset}.{asset_variable_map[asset]}" + goals.append( MinimizeSourcesGoalMerit( variable_name, @@ -348,10 +353,15 @@ def __create_merit_path_goals(self, asset_info, max_value_merit, index_start_of_ ) ) elif asset in assets_to_include.get("conversion", []): + variable_name = f"{asset}.{asset_variable_map[asset]}" + index_s = asset_merit["asset_name"].index(f"{asset}_prod") + marginal_priority_source = ( + index_start_of_priority + max_value_merit - asset_merit["merit_order"][index_s] + ) goals.append( MinimizeSourcesGoalMerit( variable_name, - marginal_priority + 1, + marginal_priority_source, self.bounds()[variable_name], self.variable_nominal(variable_name), ) @@ -366,6 +376,8 @@ def __create_merit_path_goals(self, asset_info, max_value_merit, index_start_of_ ) ) elif asset in assets_to_include.get("demand", []): + variable_name = f"{asset}.{asset_variable_map[asset]}" + goals.append( MaximizeDemandGoalMerit( variable_name, @@ -379,6 +391,8 @@ def __create_merit_path_goals(self, asset_info, max_value_merit, index_start_of_ # charging acts as consumer # Marginal costs for discharging > marginal cost for charging + variable_name = f"{asset}.{asset_variable_map[asset]['charge']}" + goals.append( MaximizeStorageGoalMerit( variable_name, @@ -398,7 +412,8 @@ def __create_merit_path_goals(self, asset_info, max_value_merit, index_start_of_ assert ( marginal_priority >= index_start_of_priority ), "Priorities assigned must be smaller than the total number of producers" - variable_name = f"{asset}.{asset_variable_map[asset]}" + + variable_name = f"{asset}{asset_variable_map[asset]['discharge']}" goals.append( MinimizeStorageGoalMerit( @@ -422,12 +437,13 @@ def __merit_path_goals(self): other goals to maximize specific producers and minimize demand, start at priority 3. :return: """ + # TODO: improve the asset_types_to_include and esdl_assets_to_include asset_types_to_include = { "source": ["electricity_source", "gas_source"], "demand": ["electricity_demand", "gas_demand"], "conversion": ["electrolyzer"], - "storage": ["gas_tank_storage"], + "storage": ["gas_tank_storage", "electricity_storage"], } assets_without_control = ["Pipe", "ElectricityCable", "Joint", "Bus"] @@ -463,12 +479,14 @@ def path_goals(self): def energy_system_options(self): options = super().energy_system_options() - self.gas_network_settings["head_loss_option"] = ( - HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY - ) + self.gas_network_settings["head_loss_option"] = HeadLossOption.LINEARIZED_N_LINES_EQUALITY + self.gas_network_settings["network_type"] = NetworkSettings.NETWORK_TYPE_HYDROGEN self.gas_network_settings["minimize_head_losses"] = True options["include_asset_is_switched_on"] = True + options["gas_storage_discharge_variables"] = True + options["electricity_storage_discharge_variables"] = True + return options def path_constraints(self, ensemble_member): @@ -506,6 +524,17 @@ def __merit_controls(self, assets_list): attributes["merit_order"].append( a.attributes["costInformation"].marginalCosts.value ) + if ( + a.asset_type == "Electrolyzer" + ): # electrolyzer would require minimisation of electricity right after + # maximisation gas, therefore a merit_order with a very small adjusted + # value is used (e.g. 1e-6) to ensure these goals are right after each + # other and no other goals are in between. + attributes["asset_name"].append(f"{a.name}_prod") + attributes["merit_order"].append( + a.attributes["costInformation"].marginalCosts.value - 1e-6 + ) + except AttributeError: try: attributes["merit_order"].append( @@ -540,6 +569,10 @@ def solver_options(self): options = super().solver_options() options["casadi_solver"] = self._qpsol + options["solver"] = "highs" + highs_options = options["highs"] = {} + highs_options["presolve"] = "off" + return options def priority_started(self, priority): diff --git a/tests/models/emerge/model/emerge_battery_priorities.esdl b/tests/models/emerge/model/emerge_battery_priorities.esdl new file mode 100644 index 000000000..ca30b865b --- /dev/null +++ b/tests/models/emerge/model/emerge_battery_priorities.esdl @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/emerge/model/emerge_priorities.esdl b/tests/models/emerge/model/emerge_priorities.esdl new file mode 100644 index 000000000..eb4b8641f --- /dev/null +++ b/tests/models/emerge/model/emerge_priorities.esdl @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_multicommodity_simulator.py b/tests/test_multicommodity_simulator.py index 08592bf83..dac54d14a 100644 --- a/tests/test_multicommodity_simulator.py +++ b/tests/test_multicommodity_simulator.py @@ -1,9 +1,11 @@ from pathlib import Path from unittest import TestCase +import mesido._darcy_weisbach as darcy_weisbach from mesido.electricity_physics_mixin import ElectrolyzerOption from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.network_common import NetworkSettings from mesido.workflows.multicommodity_simulator_workflow import ( MultiCommoditySimulator, MultiCommoditySimulatorNoLosses, @@ -13,7 +15,26 @@ from rtctools.util import run_optimization_problem -from utils_tests import demand_matching_test, energy_conservation_test +from utils_tests import ( + demand_matching_test, + electric_power_conservation_test, + energy_conservation_test, + feasibility_test, +) + + +def check_electrolyzer_efficiency(tol, electrolyzer_gas, electrolyzer_power, esdl_electrolyzer): + efficiency = electrolyzer_power / electrolyzer_gas # W/(g/s) = Ws/g + efficiency = efficiency / 3600 # Wh/g + provided_efficiencies = ( + esdl_electrolyzer.attributes["effMaxLoad"], + esdl_electrolyzer.attributes["effMinLoad"], + esdl_electrolyzer.attributes["efficiency"], + ) + np.testing.assert_array_less(min(provided_efficiencies), efficiency[electrolyzer_power > 0]) + np.testing.assert_array_less( + efficiency[electrolyzer_power > 0], max(provided_efficiencies) + tol + ) def checks_all_mc_simulations(solution, results): @@ -232,17 +253,7 @@ def test_multi_commodity_simulator_emerge(self): ) np.testing.assert_allclose(windfarm_target, windfarm_power, atol=1.0e-3, rtol=tol) - efficiency = electrolyzer_power / electrolyzer_gas # W/(g/s) = Ws/g - efficiency = efficiency / 3600 # Wh/g - provided_efficiencies = ( - esdl_electrolyzer.attributes["effMaxLoad"], - esdl_electrolyzer.attributes["effMinLoad"], - esdl_electrolyzer.attributes["efficiency"], - ) - np.testing.assert_array_less(min(provided_efficiencies), efficiency[electrolyzer_power > 0]) - np.testing.assert_array_less( - efficiency[electrolyzer_power > 0], max(provided_efficiencies) + tol - ) + check_electrolyzer_efficiency(tol, electrolyzer_gas, electrolyzer_power, esdl_electrolyzer) # demand gas maximised when sufficient power available to convert electricity to gas cap_electrolyzer_power = ( @@ -283,7 +294,6 @@ def energy_system_options(self): return options - # TODO: somehow highs always says it is in feasible solution = run_optimization_problem( MCSimulatorShortSmallProd, base_folder=base_folder, @@ -296,6 +306,8 @@ def energy_system_options(self): results = solution.extract_results() bounds = solution.bounds() + tol = 1.0e-6 + checks_all_mc_simulations(solution, results) esdl_electrolyzer = solution._esdl_assets[ @@ -309,15 +321,7 @@ def energy_system_options(self): prod_power = results["ElectricityProducer_4850.Electricity_source"] prod_power_cap = 3e8 # W - efficiency = electrolyzer_power / electrolyzer_gas # W/(g/s) = Ws/g - efficiency = efficiency / 3600 # Wh/g - provided_efficiencies = ( - esdl_electrolyzer.attributes["effMaxLoad"], - esdl_electrolyzer.attributes["effMinLoad"], - esdl_electrolyzer.attributes["efficiency"], - ) - np.testing.assert_array_less(min(provided_efficiencies) - 1e-12, efficiency) - np.testing.assert_array_less(efficiency, max(provided_efficiencies) + 1e-12) + check_electrolyzer_efficiency(tol, electrolyzer_gas, electrolyzer_power, esdl_electrolyzer) # demand gas maximised when sufficient power available to convert electricity to gas cap_electrolyzer_power = 444880000.0 @@ -337,6 +341,232 @@ def energy_system_options(self): ) np.testing.assert_allclose(el_prod_calc, prod_power, atol=1e-5 * max(demand_el)) + def test_multi_commodity_simulator_emerge_storage(self): + """ + Test to run the multicommodity simulator including a gas_storage. + Checks: + - feasibility + - power conservation + - efficiency of electrolyzer + - gas mass balance + - gas storage charges when additional production of hydrogen is possible and discharges + when no production is possible. + """ + + import models.emerge.src.example as example + + base_folder = Path(example.__file__).resolve().parent.parent + + solution = run_optimization_problem( + MultiCommoditySimulatorNoLosses, + base_folder=base_folder, + esdl_file_name="emerge_priorities.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_short.csv", + ) + + results = solution.extract_results() + + feasibility_test(solution) + electric_power_conservation_test(solution, results) + + # checks_all_mc_simulations(solution, results) + tol = 1.0e-6 + + esdl_electrolyzer = solution._esdl_assets[ + solution.esdl_asset_name_to_id_map["Electrolyzer_6327"] + ] + demand_gas = results["GasDemand_4146.Gas_demand_mass_flow"] + electrolyzer_power = results["Electrolyzer_6327.Power_consumed"] + electrolyzer_gas = results["Electrolyzer_6327.Gas_mass_flow_out"] + storage_gas_mass_flow = results["GasStorage_9172.Gas_tank_flow"] + + check_electrolyzer_efficiency(tol, electrolyzer_gas, electrolyzer_power, esdl_electrolyzer) + + # gas mass balance including storage + np.testing.assert_allclose( + electrolyzer_gas - storage_gas_mass_flow, demand_gas, rtol=tol, atol=tol + ) + # timestep 7 & 8 electrolyzer should be producing more hydrogen then the demand can take. + # gas_demand is limited by pipe size. + # storage is not charging if gas demand is not maximised at bound + # storage is charging if electrolyzer produces more gas than max of demand. + gas_demand_bound = solution.bounds()["GasDemand_4146.Gas_demand_mass_flow"] + storage_not_charging = demand_gas != gas_demand_bound[1] + np.testing.assert_array_less(storage_gas_mass_flow[storage_not_charging], 0.0 + tol) + storage_charging = electrolyzer_gas >= gas_demand_bound[1] + np.testing.assert_array_less(0.0 - tol, storage_gas_mass_flow[storage_charging]) + + def test_multi_commodity_simulator_emerge_battery(self): + """ + Test to run the multicommodity simulator including a battery and gas storage. + Checks: + - matching of profiles consumer and producers (checks_all_mc_simulations) + - feasibility + - power conservation + - efficiency of electrolyzer + - gas mass balance + - battery charges when over production of electricity and discharges when not enough + electrical power is produced for the electrolyzer. + - gas storage is not charged/discharged due to priority level. + """ + import models.emerge.src.example as example + + base_folder = Path(example.__file__).resolve().parent.parent + + solution = run_optimization_problem( + MultiCommoditySimulatorNoLosses, + base_folder=base_folder, + esdl_file_name="emerge_battery_priorities.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_short.csv", + ) + + results = solution.extract_results() + + feasibility_test(solution) + electric_power_conservation_test(solution, results) + + checks_all_mc_simulations(solution, results) + tol = 1.0e-6 + + esdl_electrolyzer = solution._esdl_assets[ + solution.esdl_asset_name_to_id_map["Electrolyzer_6327"] + ] + demand_gas = results["GasDemand_4146.Gas_demand_mass_flow"] + electrolyzer_power = results["Electrolyzer_6327.Power_consumed"] + electrolyzer_power_bound = solution.bounds()["Electrolyzer_6327.Power_consumed"][1] + electrolyzer_gas = results["Electrolyzer_6327.Gas_mass_flow_out"] + windfarm_power = results["WindPark_9074.Electricity_source"] + storage_gas_mass_flow = results["GasStorage_9172.Gas_tank_flow"] + battery_power = results["Battery_4688.ElectricityIn.Power"] + + check_electrolyzer_efficiency(tol, electrolyzer_gas, electrolyzer_power, esdl_electrolyzer) + + # gas mass balance including storage + np.testing.assert_allclose( + electrolyzer_gas - storage_gas_mass_flow, demand_gas, rtol=tol, atol=tol + ) + + # check battery only discharged if not enough windpower for electrolyzer + discharge_battery = windfarm_power < electrolyzer_power_bound + np.testing.assert_array_less(battery_power[discharge_battery], 0.0 + tol) + charge_battery = windfarm_power > electrolyzer_power_bound + np.testing.assert_array_less(0.0, battery_power[charge_battery]) + + # gas_storage not used due to low priority + np.testing.assert_allclose(storage_gas_mass_flow[1:], 0.0, atol=tol) + + def test_multi_commodity_simulator_emerge_head_losses(self): + """ + Test to run the multicommodity simulator including a battery and gas storage. + Checks: + - feasibility + - power conservation + - efficiency of electrolyzer + - gas mass balance + - battery charges when over production of electricity and discharges when not enough + electrical power is produced for the electrolyzer. + - gas storage is not charged/discharged due to priority level. + """ + import models.emerge.src.example as example + + base_folder = Path(example.__file__).resolve().parent.parent + + solution = run_optimization_problem( + MultiCommoditySimulator, + base_folder=base_folder, + esdl_file_name="emerge_battery_priorities.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_short.csv", + ) + + results = solution.extract_results() + parameters = solution.parameters(0) + + feasibility_test(solution) + electric_power_conservation_test(solution, results) + + checks_all_mc_simulations(solution, results) + tol = 1.0e-6 + + esdl_electrolyzer = solution._esdl_assets[ + solution.esdl_asset_name_to_id_map["Electrolyzer_6327"] + ] + demand_gas = results["GasDemand_4146.Gas_demand_mass_flow"] + electrolyzer_power = results["Electrolyzer_6327.Power_consumed"] + electrolyzer_power_bound = solution.bounds()["Electrolyzer_6327.Power_consumed"][1] + electrolyzer_gas = results["Electrolyzer_6327.Gas_mass_flow_out"] + windfarm_power = results["WindPark_9074.Electricity_source"] + storage_gas_mass_flow = results["GasStorage_9172.Gas_tank_flow"] + battery_power = results["Battery_4688.ElectricityIn.Power"] + + check_electrolyzer_efficiency(tol, electrolyzer_gas, electrolyzer_power, esdl_electrolyzer) + + # gas mass balance including storage + np.testing.assert_allclose( + electrolyzer_gas - storage_gas_mass_flow, demand_gas, rtol=tol, atol=tol + ) + + # check battery only discharged if not enough windpower for electrolyzer + discharge_battery = windfarm_power < electrolyzer_power_bound + np.testing.assert_array_less(battery_power[discharge_battery], 0.0 + tol) + charge_battery = windfarm_power > electrolyzer_power_bound + np.testing.assert_array_less(0.0, battery_power[charge_battery]) + + # gas_storage not used due to low priority + np.testing.assert_allclose(storage_gas_mass_flow[1:], 0.0, atol=tol) + + # linearized dw_headloss calculations + linear_lines = 5 + velocities = np.linspace(0, 15, linear_lines + 1) + + for pipe in solution.energy_system_components.get("gas_pipe"): + length = parameters[f"{pipe}.length"] + diameter = parameters[f"{pipe}.diameter"] + vol_flow_rate = results[f"{pipe}.GasIn.Q"] + v_pipe = vol_flow_rate / (3.14 * (diameter / 2) ** 2) + wall_roughness = solution.energy_system_options()["wall_roughness"] + head_loss = results[f"{pipe}.dH"] + head_loss_full_var = results[f"{pipe}.__head_loss"] + # If this test fails there is most likely a scaling issue. + np.testing.assert_allclose(np.abs(np.asarray(head_loss)), head_loss_full_var) + for i in range(1, len(v_pipe)): + v = v_pipe[i] + line_num = velocities.searchsorted(abs(v)) + if abs(v) > 1e-8: + dw_headloss_max = darcy_weisbach.head_loss( + velocities[line_num], + diameter, + length, + wall_roughness, + 20, + NetworkSettings.NETWORK_TYPE_HYDROGEN, + 15e5, + ) + dw_headloss_min = darcy_weisbach.head_loss( + velocities[line_num - 1], + diameter, + length, + wall_roughness, + 20, + NetworkSettings.NETWORK_TYPE_HYDROGEN, + 15e5, + ) + a = (dw_headloss_max - dw_headloss_min) / ( + velocities[line_num] - velocities[line_num - 1] + ) + b = dw_headloss_min - a * velocities[line_num - 1] + headloss_calc = a * v + b + np.testing.assert_allclose(abs(head_loss[i]), headloss_calc, 0.1) + # else: + # np.testing.assert_allclose(abs(head_loss[i]), 0.0) + + print("a") + if __name__ == "__main__": import time diff --git a/tests/utils_tests.py b/tests/utils_tests.py index 8b2c81881..c45239a30 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -364,7 +364,7 @@ def electric_power_conservation_test(solution, results): - Power and current conservation in busses. - Power conservation in transformers, upto now no losses in transformer. """ - tol = 1e-6 + tol = 1e-4 energy_sum = np.zeros(len(solution.times())) consumers = solution.energy_system_components_get( From 086ea25d483c5cfc26cef66bd7929c5024327fca Mon Sep 17 00:00:00 2001 From: AlexMGTNO <123077261+AlexMGTNO@users.noreply.github.com> Date: Tue, 16 Jul 2024 16:46:33 +0200 Subject: [PATCH 193/275] Electrolyzer equality constraint (#114) DEV: electrolyzer equality constraints --- src/mesido/electricity_physics_mixin.py | 101 +++++++-- .../component_library/milp/gas/gas_pipe.py | 2 +- .../multicommodity_simulator_workflow.py | 1 + .../models/emerge/input/timeseries_short.csv | 6 +- .../electrolyzer/input/timeseries.csv | 1 + .../input/timeseries_electrolyzer_general.csv | 5 + .../input/timeseries_equality_constraints.csv | 4 + .../timeseries_minimum_electrolyzer_power.csv | 4 +- .../electrolyzer/src/example.py | 16 +- tests/test_electrolyzer.py | 214 ++++++++++++++++-- tests/test_multicommodity_simulator.py | 13 +- tests/utils_tests.py | 2 +- 12 files changed, 320 insertions(+), 49 deletions(-) create mode 100644 tests/models/unit_cases_electricity/electrolyzer/input/timeseries_electrolyzer_general.csv create mode 100644 tests/models/unit_cases_electricity/electrolyzer/input/timeseries_equality_constraints.csv diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index bb4ca741c..fa6c34048 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -71,6 +71,10 @@ def __init__(self, *args, **kwargs): self.__set_point_bounds = {} self.__set_point_map = {} + # Boolean path-variable for the equality constraint of the electrolyzer + self.__electrolyzer_is_active_linear_segment_map = {} + self.__electrolyzer_is_active_linear_segment_var = {} + self.__electrolyzer_is_active_linear_segment_bounds = {} self.__electricity_storage_discharge_var = {} self.__electricity_storage_discharge_bounds = {} self.__electricity_storage_discharge_nominals = {} @@ -120,6 +124,21 @@ def pre(self): self.__asset_is_switched_on_var[var_name] = ca.MX.sym(var_name) self.__asset_is_switched_on_bounds[var_name] = (0.0, 1.0) + if options["electrolyzer_efficiency"] == ElectrolyzerOption.LINEARIZED_THREE_LINES_EQUALITY: + for asset in [ + *self.energy_system_components.get("electrolyzer", []), + ]: + self.__electrolyzer_is_active_linear_segment_map[asset] = {} + n_lines = 3 + for n_line in range(n_lines): + var_name = f"{asset}__line_{n_line}_active" + + self.__electrolyzer_is_active_linear_segment_map[asset][ + f"line_{n_line}" + ] = var_name + self.__electrolyzer_is_active_linear_segment_var[var_name] = ca.MX.sym(var_name) + self.__electrolyzer_is_active_linear_segment_bounds[var_name] = (0.0, 1.0) + for asset in [*self.energy_system_components.get("electricity_storage", [])]: var_name = f"{asset}__is_charging" self.__storage_charging_map[asset] = var_name @@ -165,6 +184,7 @@ def path_variables(self): variables.extend(self.__asset_is_switched_on_var.values()) variables.extend(self.__storage_charging_var.values()) variables.extend(self.__set_point_var.values()) + variables.extend(self.__electrolyzer_is_active_linear_segment_var.values()) variables.extend(self.__electricity_storage_discharge_var.values()) return variables @@ -174,6 +194,8 @@ def variable_is_discrete(self, variable): All variables that only can take integer values should be added to this function. """ + if variable in self.__electrolyzer_is_active_linear_segment_var: + return True if variable in self.__asset_is_switched_on_var: return True if variable in self.__storage_charging_var: @@ -197,6 +219,7 @@ def bounds(self): """ bounds = super().bounds() + bounds.update(self.__electrolyzer_is_active_linear_segment_bounds) bounds.update(self.__asset_is_switched_on_bounds) bounds.update(self.__storage_charging_bounds) bounds.update(self.__electricity_producer_upper_bounds) @@ -591,7 +614,7 @@ def __get_electrolyzer_gas_mass_flow_out( self, coef_a, coef_b, coef_c, electrical_power_input ) -> float: """ - This function returns the gas mass flow rate [kg/s] out of an electrolyzer based on the + This function returns the gas mass flow rate [g/s] out of an electrolyzer based on the theoretical efficiency curve: energy [Ws] / gas mass [kg] = (coef_a / electrical_power_input) + (b * electrical_power_input) + coef_c @@ -605,14 +628,13 @@ def __get_electrolyzer_gas_mass_flow_out( Returns ------- - gas mass flow rate produced by the electrolyzer [kg/s] + gas mass flow rate produced by the electrolyzer [g/s] """ if not isclose(electrical_power_input, 0.0): - eff = ( - (coef_a / electrical_power_input) + (coef_b * electrical_power_input) + coef_c - ) # Wh/g - gas_mass_flow_out = (1.0 / (eff * 3600)) * electrical_power_input + eff = (coef_a / electrical_power_input) + (coef_b * electrical_power_input) + coef_c + gas_mass_flow_out = (1.0 / eff) * electrical_power_input * (1 / (3600)) # g/s + else: gas_mass_flow_out = 0.0 @@ -623,14 +645,14 @@ def _get_linear_coef_electrolyzer_mass_vs_epower_fit( ) -> Tuple[np.array, np.array]: """ This function returns a set of coefficients to approximate a gas mass flow rate curve with - linear functions in the form of: gass mass flow rate [kg/s] = b + (a * electrical_power) + linear functions in the form of: gass mass flow rate [g/s] = b + (a * electrical_power) Parameters ---------- coef_a: electrolyzer efficience curve coefficent coef_b: electrolyzer efficience curve coefficent coef_c: electrolyzer efficience curve coefficent - n_lines: numebr of linear lines used to approximate the non-linear curve + n_lines: number of linear lines used to approximate the non-linear curve electrical_power_min: minimum electrical power consumed [W] electrical_power_max: maximum electrical power consumed [W] @@ -659,7 +681,7 @@ def __electrolyzer_path_constaint(self, ensemble_member): """ This functions add the constraints for the gas mass flow production based as a functions of electrical power input. This production is approximated by an electrolyzer efficience curve - (energy/gas mass vs electrical power input, [Ws/kg] vs [W]) which is then linearized. If + (energy/gas mass vs electrical power input, [KWh/kg] vs [W]) which is then linearized. If the load becomes lower than the minimum load both the gass_mass_flow and the electricity power should be 0. """ @@ -699,8 +721,19 @@ def __electrolyzer_path_constaint(self, ensemble_member): elif ( options["electrolyzer_efficiency"] == ElectrolyzerOption.LINEARIZED_THREE_LINES_WEAK_INEQUALITY + or options["electrolyzer_efficiency"] + == ElectrolyzerOption.LINEARIZED_THREE_LINES_EQUALITY ): - curve_fit_number_of_lines = 3 + if ( + options["electrolyzer_efficiency"] + == ElectrolyzerOption.LINEARIZED_THREE_LINES_WEAK_INEQUALITY + ): + curve_fit_number_of_lines = 3 + else: + curve_fit_number_of_lines = len( + self.__electrolyzer_is_active_linear_segment_map[asset] + ) + linear_coef_a, linear_coef_b = ( self._get_linear_coef_electrolyzer_mass_vs_epower_fit( parameters[f"{asset}.a_eff_coefficient"], @@ -742,11 +775,49 @@ def __electrolyzer_path_constaint(self, ensemble_member): ), ] ) - elif ( - options["electrolyzer_efficiency"] - == ElectrolyzerOption.LINEARIZED_THREE_LINES_EQUALITY - ): - raise NotImplementedError + if ( + options["electrolyzer_efficiency"] + == ElectrolyzerOption.LINEARIZED_THREE_LINES_EQUALITY + ): + is_line_segment_active_sum = 0.0 + for n_line in range(curve_fit_number_of_lines): + var_name = self.__electrolyzer_is_active_linear_segment_map[asset][ + f"line_{n_line}" + ] + is_line_segment_active = self.state(var_name) + # Equality constraint to map the input power to the output massflow + # of the electrolyzer + constraints.append( + ( + ( + gas_mass_flow_out_vect[n_line] + - gass_mass_out_linearized_vect[n_line] + - (1 - is_line_segment_active) * big_m + ) + / nominal, + -np.inf, + 0.0, + ), + ) + # + constraints.append( + ( + ( + gas_mass_flow_out_vect[n_line] + - gass_mass_out_linearized_vect[n_line] + + (1 - is_line_segment_active) * big_m + ) + / nominal, + 0.0, + np.inf, + ), + ) + is_line_segment_active_sum += is_line_segment_active + # Constraint to ensure that only one line is active, if the electrolyzer + # is switched on + constraints.append( + (is_line_segment_active_sum + (1 - asset_is_switched_on), 1.0, 1.0), + ) constraints.append( ((gas_mass_flow_out + asset_is_switched_on * big_m) / big_m, 0.0, np.inf) diff --git a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py index 460d40b20..f6e9ce957 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py @@ -32,7 +32,7 @@ def __init__(self, name, **modifiers): self.r = 1.0e-6 * self.length # TODO: temporary value self.nominal_head_loss = (self.Q_nominal * self.r * self.nominal_head) ** 0.5 - self.add_variable(Variable, "dH", nominal=self.Q_nominal * self.r) + self.add_variable(Variable, "dH") self.add_variable(Variable, "Q", nominal=self.Q_nominal) # Flow should be preserved diff --git a/src/mesido/workflows/multicommodity_simulator_workflow.py b/src/mesido/workflows/multicommodity_simulator_workflow.py index c24766f51..94e893285 100644 --- a/src/mesido/workflows/multicommodity_simulator_workflow.py +++ b/src/mesido/workflows/multicommodity_simulator_workflow.py @@ -483,6 +483,7 @@ def energy_system_options(self): self.gas_network_settings["network_type"] = NetworkSettings.NETWORK_TYPE_HYDROGEN self.gas_network_settings["minimize_head_losses"] = True options["include_asset_is_switched_on"] = True + options["estimated_velocity"] = 7.5 options["gas_storage_discharge_variables"] = True options["electricity_storage_discharge_variables"] = True diff --git a/tests/models/emerge/input/timeseries_short.csv b/tests/models/emerge/input/timeseries_short.csv index f80b1da59..9d6629bf8 100644 --- a/tests/models/emerge/input/timeseries_short.csv +++ b/tests/models/emerge/input/timeseries_short.csv @@ -21,8 +21,4 @@ DateTime,WindPark_9074,Elec,Hydrogen 2016-01-01Z 19:00:00,1132050786.8,3.307e-05,2.4 2016-01-01Z 20:00:00,1293624672.0,2.952e-05,2.4 2016-01-01Z 21:00:00,1720023264.3999999,3.01e-05,2.4 -2016-01-01Z 22:00:00,1814015745.6,2.457e-05,2.4 -2016-01-01Z 23:00:00,1836244191.8,2.2199999999999998e-05,2.4 -2016-01-02Z 00:00:00,1986853387.6000001,1.657e-05,2.4 -2016-01-02Z 01:00:00,1999994376.9999998,1.535e-05,2.4 -2016-01-02Z 02:00:00,1999819409.8,1.277e-05,2.4 \ No newline at end of file +2016-01-01Z 22:00:00,1814015745.6,2.457e-05,2.4 \ No newline at end of file diff --git a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries.csv b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries.csv index 7ae8dad9a..3eb40fd20 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries.csv +++ b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries.csv @@ -2,3 +2,4 @@ DateTime,elec,Hydrogen,WindPark_7f14 01-01-2019 00:00, 1.0, 1000000.0, 100000000.0 01-01-2019 01:00, 1.0, 1000000.0, 100000000.0 01-01-2019 02:00, 1.0, 1000000.0, 100000000.0 + diff --git a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_electrolyzer_general.csv b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_electrolyzer_general.csv new file mode 100644 index 000000000..104c60f5e --- /dev/null +++ b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_electrolyzer_general.csv @@ -0,0 +1,5 @@ +DateTime,elec,Hydrogen,WindPark_7f14 +01-01-2019 00:00, 10.0, 10000000.0, 100000000.0 +01-01-2019 01:00, 10.0, 10000000.0, 100000000.0 +01-01-2019 02:00, 10.0, 10000000.0, 100000000.0 + diff --git a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_equality_constraints.csv b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_equality_constraints.csv new file mode 100644 index 000000000..bf9687fc0 --- /dev/null +++ b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_equality_constraints.csv @@ -0,0 +1,4 @@ +DateTime,elec,Hydrogen,WindPark_7f14 +01-01-2019 00:00, 10.0, 10000000.0, 100000000.0 +01-01-2019 01:00, 10.0, 10000000.0, 300000000.0 +01-01-2019 02:00, 10.0, 10000000.0, 400000000.0 diff --git a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv index 0b899c189..f6ceb3580 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv +++ b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv @@ -1,4 +1,4 @@ DateTime,elec,Hydrogen,WindPark_7f14 01-01-2019 00:00, 1.0, 1000000.0, 100000000.0 -01-01-2019 01:00, 1.0, 1000000.0, 100000000.0 -01-01-2019 02:00, 1.0, 1000000.0, 49000000.0 +01-01-2019 01:00, 10.0, 10000000.0, 100000000.0 +01-01-2019 02:00, 10.0, 10000000.0, 49000000.0 diff --git a/tests/models/unit_cases_electricity/electrolyzer/src/example.py b/tests/models/unit_cases_electricity/electrolyzer/src/example.py index 0469f89d2..449ca54b6 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/src/example.py +++ b/tests/models/unit_cases_electricity/electrolyzer/src/example.py @@ -31,11 +31,8 @@ def __init__(self, state, price_profile, nominal): def function(self, optimization_problem, ensemble_member): canonical, sign = optimization_problem.alias_relation.canonical_signed(self.state) - symbols = ( - sign - * optimization_problem.state_vector(canonical, ensemble_member) - # * optimization_problem.variable_nominal(self.state) - ) + + symbols = sign * optimization_problem.state_vector(canonical, ensemble_member) price_profile = optimization_problem.get_timeseries(self.price_profile).values sum = 0.0 for i in range(len(price_profile)): @@ -152,6 +149,15 @@ def energy_system_options(self): return options +class MILPProblemEquality(MILPProblemInequality): + + def energy_system_options(self): + options = super().energy_system_options() + options["electrolyzer_efficiency"] = ElectrolyzerOption.LINEARIZED_THREE_LINES_EQUALITY + + return options + + if __name__ == "__main__": elect = run_optimization_problem( MILPProblemInequality, diff --git a/tests/test_electrolyzer.py b/tests/test_electrolyzer.py index cadb1ef07..8762dafc9 100644 --- a/tests/test_electrolyzer.py +++ b/tests/test_electrolyzer.py @@ -37,7 +37,7 @@ def test_electrolyzer_inequality(self): esdl_file_name="h2.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, - input_timeseries_file="timeseries.csv", + input_timeseries_file="timeseries_electrolyzer_general.csv", ) results = solution.extract_results() @@ -48,6 +48,7 @@ def test_electrolyzer_inequality(self): # Check: # - Compare the head loss to hard-coded values. Difference expected if an error # occours in the calculation of the gas kinematic viscosity. + # - Check head loss contraint v_inspect = results["Pipe_6ba6.GasOut.Q"] / solution.parameters(0)["Pipe_6ba6.area"] head_loss_max = darcy_weisbach.head_loss( @@ -146,7 +147,10 @@ def test_electrolyzer_inequality(self): coef_b, coef_c, n_lines=3, - electrical_power_min=0.0, + electrical_power_min=max( + solution.parameters(0)["Electrolyzer_fc66.minimum_load"], + 0.01 * solution.bounds()["Electrolyzer_fc66.ElectricityIn.Power"][1], + ), electrical_power_max=solution.bounds()["Electrolyzer_fc66.ElectricityIn.Power"][1], ) # TODO: Add test below once the mass flow is coupled to the volumetric flow rate. Currently @@ -160,6 +164,16 @@ def test_electrolyzer_inequality(self): results["Electrolyzer_fc66.ElectricityIn.Power"] * a[i] + b[i] + 1.0e-3, ) + # Check electrolyzer input power + np.testing.assert_allclose( + results["Electrolyzer_fc66.ElectricityIn.Power"], + [1.00000000e08, 1.00000000e08, 1.00000000e08], + ) + # Check electrolyzer output massflow + np.testing.assert_allclose( + results["Electrolyzer_fc66.Gas_mass_flow_out"], [431.367058, 431.367058, 431.367058] + ) + # ----------------------------------------------------------------------------------------- # Do cost checks @@ -209,9 +223,17 @@ def test_electrolyzer_minimum_power(self): LINEARIZED_THREE_LINES_WEAK_INEQUALITY. Checks: - - Input power to the electrolyzer is 0 - - Output gas is 0 - - Electrolyzer is switched off + - Input power to the electrolyzer is 0 when available wind power is 49MW, as the + threshold for the electrolyzer is 50MW + - Output gas is 0 when available wind power is 49MW, as the threshold for the + electrolyzer is 50MW + - Electrolyzer is switched off when available wind power is 49MW, as the threshold for the + electrolyzer is 50MW + - Input power is greater than 0 when available power is greater than 50MW + - Output gas is greater than 0 when available power is greater than 50MW + - Electrolyzer is switched on when available power is greater than 50MW + - Electrolyzer input power equals hardcoded values + - Electrolyzer output massflow equals harcoded values """ import models.unit_cases_electricity.electrolyzer.src.example as example @@ -246,6 +268,33 @@ def test_electrolyzer_minimum_power(self): results["Electrolyzer_fc66__asset_is_switched_on"][-1], 0, ) + # Check that the input power is greater than 0 + np.testing.assert_array_less( + np.zeros(2), + results["Electrolyzer_fc66.ElectricityIn.Power"][:-1], + ) + # Check that the output gas is 0 + np.testing.assert_array_less( + np.zeros(2), + results["Electrolyzer_fc66.Gas_mass_flow_out"][:-1], + ) + # Check that the electrolyzer is switched off + np.testing.assert_allclose( + results["Electrolyzer_fc66__asset_is_switched_on"][:-1], + np.ones(2), + ) + # Check electrolyzer input power + # np.testing.assert_allclose( + # results["Electrolyzer_fc66.ElectricityIn.Power"], + # [ 1.00000000e+08, 1.00000000e+08, -3.59365315e-05], + # atol=1e-4, + # ) + # Check electrolyzer output massflow + # np.testing.assert_allclose( + # results["Electrolyzer_fc66.Gas_mass_flow_out"], + # [431.367058, 431.367058, 0. ], + # atol=1e-4, + # ) def test_electrolyzer_constant_efficiency(self): """ @@ -255,6 +304,7 @@ def test_electrolyzer_constant_efficiency(self): Checks: - Check the constant efficiency formulation of the electrolyzer + - Check hardcoded values for input power and output massflow os the electrolyzer """ import models.unit_cases_electricity.electrolyzer.src.example as example @@ -270,7 +320,7 @@ def test_electrolyzer_constant_efficiency(self): esdl_file_name="h2.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, - input_timeseries_file="timeseries.csv", + input_timeseries_file="timeseries_electrolyzer_general.csv", ) results = solution.extract_results() @@ -282,13 +332,149 @@ def test_electrolyzer_constant_efficiency(self): results["Electrolyzer_fc66.ElectricityIn.Power"], ) + # Check input power values. Not really needed since the massflow check is equivalent + # np.testing.assert_allclose( + # results["Electrolyzer_fc66.ElectricityIn.Power"], + # [1.00000000e+08, 1.00000000e+08, 1.00000000e+08], + # atol=1e-4, + # ) + # Check output massflow values + np.testing.assert_allclose( + results["Electrolyzer_fc66.Gas_mass_flow_out"], + [440.91710758, 440.91710758, 440.91710758], + atol=1e-4, + ) + + def test_electrolyzer_equality_constraint(self): + """ + This test is to check the functioning the example with an offshore wind farm in combination + with an electrolyzer and hydrogen storage. The electrolyzer is modelled as the option + LINEARIZED_THREE_LINES_EQUALITY. -if __name__ == "__main__": - import time + Checks: + - Check that only one line is activated + - Check that the expected lines are activated, depending on the input power + - Check that the output massflow lies on the line segment + - Check hardcoded values - start_time = time.time() - a = TestElectrolyzer() - a.test_electrolyzer_inequality() - a.test_electrolyzer_minimum_power() - a.test_electrolyzer_constant_efficiency() - print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) + """ + import models.unit_cases_electricity.electrolyzer.src.example as example + from models.unit_cases_electricity.electrolyzer.src.example import ( + MILPProblemEquality, + ) + + base_folder = Path(example.__file__).resolve().parent.parent + + solution = run_esdl_mesido_optimization( + MILPProblemEquality, + base_folder=base_folder, + esdl_file_name="h2.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_equality_constraints.csv", + ) + + results = solution.extract_results() + + # Check that there is only one activated line per timestep + for timestep in range(len(results["Electrolyzer_fc66__line_0_active"])): + np.testing.assert_allclose( + ( + results["Electrolyzer_fc66__line_0_active"][timestep] + + results["Electrolyzer_fc66__line_1_active"][timestep] + + results["Electrolyzer_fc66__line_2_active"][timestep] + + (1 - results["Electrolyzer_fc66__asset_is_switched_on"][timestep]) + ), + 1.0, + ) + # Check that for the first, second and third timesteps, only the lines + # 0, 1 and 2 are activated (respectively), being the wind power 100, 300 + # and 400 MW. + for idx in range(3): + np.testing.assert_allclose( + ( + results[f"Electrolyzer_fc66__line_{idx}_active"][idx] + + (1 - results["Electrolyzer_fc66__asset_is_switched_on"][idx]) + ), + 1.0, + ) + # Check that the output massflow lies on the line segment + coef_a = solution.parameters(0)["Electrolyzer_fc66.a_eff_coefficient"] + coef_b = solution.parameters(0)["Electrolyzer_fc66.b_eff_coefficient"] + coef_c = solution.parameters(0)["Electrolyzer_fc66.c_eff_coefficient"] + a, b = solution._get_linear_coef_electrolyzer_mass_vs_epower_fit( + coef_a, + coef_b, + coef_c, + n_lines=3, + electrical_power_min=max( + solution.parameters(0)["Electrolyzer_fc66.minimum_load"], + 0.01 * solution.bounds()["Electrolyzer_fc66.ElectricityIn.Power"][1], + ), + electrical_power_max=solution.bounds()["Electrolyzer_fc66.ElectricityIn.Power"][1], + ) + for idx in range(3): + np.testing.assert_allclose( + results["Electrolyzer_fc66.Gas_mass_flow_out"][idx], + results["Electrolyzer_fc66.ElectricityIn.Power"][idx] * a[idx] + b[idx], + ) + # Check hardcoded values + np.testing.assert_allclose( + results["Electrolyzer_fc66.Gas_mass_flow_out"], + [431.367058, 1285.95625642, 1673.61498453], + atol=1e-4, + ) + + def test_electrolyzer_equality_constraint_inactive_line(self): + """ + This test is to check the functioning the example with an offshore wind farm in combination + with an electrolyzer and hydrogen storage. The electrolyzer is modelled as the option + LINEARIZED_THREE_LINES_EQUALITY. + + Checks: + - Check that no line is active when the electrolyzer is switched off + - Check that the input power is 0 when the electrolyzer is switched off + - Check that the output massflow is 0 when the electrolyzer is switched off + + """ + import models.unit_cases_electricity.electrolyzer.src.example as example + from models.unit_cases_electricity.electrolyzer.src.example import ( + MILPProblemEquality, + ) + + base_folder = Path(example.__file__).resolve().parent.parent + + solution = run_esdl_mesido_optimization( + MILPProblemEquality, + base_folder=base_folder, + esdl_file_name="h2.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_minimum_electrolyzer_power.csv", + ) + + results = solution.extract_results() + + # Input power to the electrolyzer is below the minimum one, + # such that no line should be active + np.testing.assert_allclose( + ( + results["Electrolyzer_fc66__line_0_active"][-1] + + results["Electrolyzer_fc66__line_1_active"][-1] + + results["Electrolyzer_fc66__line_2_active"][-1] + + (1 - results["Electrolyzer_fc66__asset_is_switched_on"][-1]) + ), + 1.0, + ) + # Check that the input power is 0 + np.testing.assert_allclose( + results["Electrolyzer_fc66.ElectricityIn.Power"][-1], + 0.0, + atol=1e-4, + ) + # Check that the output gas is 0 + np.testing.assert_allclose( + results["Electrolyzer_fc66.Gas_mass_flow_out"][-1], + 0.0, + atol=1e-4, + ) diff --git a/tests/test_multicommodity_simulator.py b/tests/test_multicommodity_simulator.py index dac54d14a..1e82ac1d7 100644 --- a/tests/test_multicommodity_simulator.py +++ b/tests/test_multicommodity_simulator.py @@ -513,7 +513,7 @@ def test_multi_commodity_simulator_emerge_head_losses(self): # check battery only discharged if not enough windpower for electrolyzer discharge_battery = windfarm_power < electrolyzer_power_bound - np.testing.assert_array_less(battery_power[discharge_battery], 0.0 + tol) + np.testing.assert_array_less(battery_power[discharge_battery], 1.0) charge_battery = windfarm_power > electrolyzer_power_bound np.testing.assert_array_less(0.0, battery_power[charge_battery]) @@ -533,7 +533,12 @@ def test_multi_commodity_simulator_emerge_head_losses(self): head_loss = results[f"{pipe}.dH"] head_loss_full_var = results[f"{pipe}.__head_loss"] # If this test fails there is most likely a scaling issue. - np.testing.assert_allclose(np.abs(np.asarray(head_loss)), head_loss_full_var) + indexes = np.abs(v_pipe) > 0.0 + + indexes[0] = False + np.testing.assert_allclose( + np.abs(np.asarray(head_loss[indexes])), head_loss_full_var[indexes] + ) for i in range(1, len(v_pipe)): v = v_pipe[i] line_num = velocities.searchsorted(abs(v)) @@ -562,10 +567,6 @@ def test_multi_commodity_simulator_emerge_head_losses(self): b = dw_headloss_min - a * velocities[line_num - 1] headloss_calc = a * v + b np.testing.assert_allclose(abs(head_loss[i]), headloss_calc, 0.1) - # else: - # np.testing.assert_allclose(abs(head_loss[i]), 0.0) - - print("a") if __name__ == "__main__": diff --git a/tests/utils_tests.py b/tests/utils_tests.py index c45239a30..ce86f59cc 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -364,7 +364,7 @@ def electric_power_conservation_test(solution, results): - Power and current conservation in busses. - Power conservation in transformers, upto now no losses in transformer. """ - tol = 1e-4 + tol = 1e-2 energy_sum = np.zeros(len(solution.times())) consumers = solution.energy_system_components_get( From 327eb4db709a2a3b4247dd0c598f4f63a45a376b Mon Sep 17 00:00:00 2001 From: Femke Janssen Date: Thu, 18 Jul 2024 09:52:24 +0200 Subject: [PATCH 194/275] resolved issue where heatlosses are turned off for cold delivery, due to a bug in the temperature selection where the ground temperature was used in pipes --- src/mesido/esdl/esdl_heat_model.py | 2 ++ src/mesido/heat_physics_mixin.py | 10 +++++----- tests/test_cold_demand.py | 2 +- tests/utils_tests.py | 12 ------------ 4 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 12682bbd8..71d35f9ac 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1002,6 +1002,8 @@ def convert_heat_pump( # In this case we only have the secondary side ports, here we assume a air-water HP if len(asset.in_ports) == 1 and len(asset.out_ports) == 1: + #TODO: the power filled in at the heatpmp should always be the electric power, thus, + # the max heat supply should be power*cop _, modifiers = self.convert_heat_source(asset) return AirWaterHeatPump, modifiers # In this case we only have the secondary side ports, here we assume a air-water HP elec diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index b30e69df1..a5bd5ad8b 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -1594,10 +1594,6 @@ def __pipe_heat_to_discharge_path_constraints(self, ensemble_member): for p in self.energy_system_components.get("heat_pipe", []): cp = parameters[f"{p}.cp"] rho = parameters[f"{p}.rho"] - # Note that during cold delivery the line can be colder than the ground temperature. - # In this case we have to bound the heat flowing in the line with the ground - # temperature instead, as the line can heat up to at maximum the ground temperature. - temp = max(parameters[f"{p}.temperature"], parameters[f"{p}.T_ground"]) flow_dir_var = self._heat_pipe_to_flow_direct_map[p] flow_dir = self.state(flow_dir_var) @@ -1619,6 +1615,7 @@ def __pipe_heat_to_discharge_path_constraints(self, ensemble_member): for heat in [scaled_heat_in, scaled_heat_out]: if self.energy_system_options()["neglect_pipe_heat_losses"]: + temp = parameters[f"{p}.temperature"] if len(temperatures) == 0: constraints.append( ( @@ -1630,7 +1627,6 @@ def __pipe_heat_to_discharge_path_constraints(self, ensemble_member): else: for temperature in temperatures: temperature_is_selected = self.state(f"{carrier}_{temperature}") - temperature = max(temperature, parameters[f"{p}.T_ground"]) constraints.append( ( ( @@ -1656,6 +1652,10 @@ def __pipe_heat_to_discharge_path_constraints(self, ensemble_member): ) ) else: + # Note that during cold delivery the line can be colder than the ground temperature. + # In this case we have to bound the heat flowing in the line with the ground + # temperature instead, as the line can heat up to at maximum the ground temperature. + temp = max(parameters[f"{p}.temperature"], parameters[f"{p}.T_ground"]) assert big_m > 0.0 carrier = parameters[f"{p}.carrier_id"] diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 0418edfbe..7a922af6f 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -103,7 +103,7 @@ class HeatingCoolingProblem(HeatProblem): # An issue has been created for this def energy_system_options(self): options = super().energy_system_options() - options["neglect_pipe_heat_losses"] = False + options["neglect_pipe_heat_losses"] = True return options def constraints(self, ensemble_member): diff --git a/tests/utils_tests.py b/tests/utils_tests.py index 8b2c81881..1c9b21526 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -145,18 +145,6 @@ def heat_to_discharge_test(solution, results): for d in solution.energy_system_components.get("cold_demand", []): cp = solution.parameters(0)[f"{d}.cp"] rho = solution.parameters(0)[f"{d}.rho"] - # return_id = solution.parameters(0)[f"{d}.T_return_id"] - # if f"{return_id}_temperature" in results.keys(): - # return_t = results[f"{return_id}_temperature"] - # else: - # return_t = solution.parameters(0)[f"{d}.T_return"] - # supply_id = solution.parameters(0)[f"{d}.T_supply_id"] - # if f"{supply_id}_temperature" in results.keys(): - # supply_t = results[f"{supply_id}_temperature"] - # else: - # supply_t = solution.parameters(0)[f"{d}.T_supply"] - # dt = supply_t - return_t - # dt = solution.parameters(0)[f"{d}.dT"] supply_t, return_t, dt = _get_component_temperatures(solution, results, d) np.testing.assert_allclose( results[f"{d}.Cold_demand"], From f13ffbccdfcfa17352aa34dcee3275c72804ec3f Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:12:30 +0200 Subject: [PATCH 195/275] Sequential mc simulator (#125) Implementation of sequential staged class and run function for the multicommodity simulator. A defined windowsize is used to split up the problem in multiple staged optimizations. The sequential staged approach passes on the last timestep of the stage to the next stage as the initial condition, to ensure continuity of the timehorizon of the assets. The test checks also the condition in which the result between the staged and unstaged are the same and also the condition when they might be different. --------- Co-authored-by: Rojer --- src/mesido/electricity_physics_mixin.py | 11 +- src/mesido/gas_physics_mixin.py | 8 +- .../multicommodity_simulator_workflow.py | 176 +++++++++++++++++- ...e_battery_priorities_limited_capacity.esdl | 147 +++++++++++++++ tests/models/emerge/src/example.py | 35 ++-- tests/test_multicommodity_simulator.py | 100 +++++++++- 6 files changed, 458 insertions(+), 19 deletions(-) create mode 100644 tests/models/emerge/model/emerge_battery_priorities_limited_capacity.esdl diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index fa6c34048..9828605ee 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -1,3 +1,4 @@ +import copy import logging from enum import IntEnum from math import isclose @@ -146,11 +147,14 @@ def pre(self): self.__storage_charging_bounds[var_name] = (0.0, 1.0) if options["electricity_storage_discharge_variables"]: - bound_storage = self.bounds()[f"{asset}.Effective_power_charging"][0] + bound_storage = -self.bounds()[f"{asset}.Effective_power_charging"][0] + if isinstance(bound_storage, Timeseries): + bound_storage = copy.deepcopy(bound_storage) + bound_storage.values[bound_storage.values < 0] = 0.0 var_name = f"{asset}__effective_power_discharging" self.__electricity_storage_discharge_map[asset] = var_name self.__electricity_storage_discharge_var[var_name] = ca.MX.sym(var_name) - self.__electricity_storage_discharge_bounds[var_name] = (0, -bound_storage) + self.__electricity_storage_discharge_bounds[var_name] = (0, bound_storage) self.__electricity_storage_discharge_nominals[var_name] = self.variable_nominal( f"{asset}.Effective_power_charging" ) @@ -264,6 +268,9 @@ def __update_electricity_producer_upper_bounds(self): if f"{asset}.maximum_electricity_source" in timeseries_io_names: lb = Timeseries(t, np.zeros(len(t))) ub = self.get_timeseries(f"{asset}.maximum_electricity_source") + start_indx = np.where(ub.times == t[0])[0][0] + end_indx = np.where(ub.times == t[-1])[0][0] + 1 + ub = Timeseries(t, (np.asarray(ub.values)[start_indx:end_indx]).tolist()) self.__electricity_producer_upper_bounds[f"{asset}.Electricity_source"] = (lb, ub) def __electricity_producer_set_point_constraints(self, ensemble_member): diff --git a/src/mesido/gas_physics_mixin.py b/src/mesido/gas_physics_mixin.py index b8ec6e508..fc462374a 100644 --- a/src/mesido/gas_physics_mixin.py +++ b/src/mesido/gas_physics_mixin.py @@ -1,3 +1,4 @@ +import copy import logging import casadi as ca @@ -258,11 +259,14 @@ def _get_min_bound(bound): if options["gas_storage_discharge_variables"]: for storage in self.energy_system_components.get("gas_tank_storage", []): - bound_storage_q = self.bounds()[f"{storage}.GasIn.Q"][0] + bound_storage_q = -self.bounds()[f"{storage}.GasIn.Q"][0] + if isinstance(bound_storage_q, Timeseries): + bound_storage_q = copy.deepcopy(bound_storage_q) + bound_storage_q.values[bound_storage_q.values < 0] = 0.0 var_name = f"{storage}__Q_discharge" self.__gas_storage_discharge_map[storage] = var_name self.__gas_storage_discharge_var[var_name] = ca.MX.sym(var_name) - self.__gas_storage_discharge_bounds[var_name] = (0, -bound_storage_q) + self.__gas_storage_discharge_bounds[var_name] = (0, bound_storage_q) self.__gas_storage_discharge_nominals[var_name] = self.variable_nominal( f"{storage}.GasIn.Q" ) diff --git a/src/mesido/workflows/multicommodity_simulator_workflow.py b/src/mesido/workflows/multicommodity_simulator_workflow.py index 94e893285..308bf319f 100644 --- a/src/mesido/workflows/multicommodity_simulator_workflow.py +++ b/src/mesido/workflows/multicommodity_simulator_workflow.py @@ -27,6 +27,7 @@ CachingQPSol, SinglePassGoalProgrammingMixin, ) +from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem DB_HOST = "172.17.0.2" @@ -44,6 +45,29 @@ WATT_TO_KILO_WATT = 1.0e3 +def _extract_values_timeseries(v, type_r=None): + if isinstance(v, Timeseries): + v = v.values + if type_r == "min": + v = min(v) + elif type_r == "max": + v = max(v) + return v + + +class OptimisationOverview: + """ + This class is used to combine the optimisation results, bounds, parameters and aliases + needed for post-processing and visualisation. + """ + + def __init__(self, total_results, bounds, parameters, aliases): + self.results = total_results + self.bounds = bounds + self.parameters = parameters + self.aliases = aliases + + # ------------------------------------------------------------------------------------------------- # Step 1: # Match the target demand specified @@ -393,11 +417,16 @@ def __create_merit_path_goals(self, asset_info, max_value_merit, index_start_of_ # Marginal costs for discharging > marginal cost for charging variable_name = f"{asset}.{asset_variable_map[asset]['charge']}" + func_range = self.bounds()[variable_name] + v1 = _extract_values_timeseries(func_range[0], "min") + v2 = _extract_values_timeseries(func_range[1], "max") + func_range = (v1, v2) + goals.append( MaximizeStorageGoalMerit( variable_name, marginal_priority, - self.bounds()[variable_name], + func_range, self.variable_nominal(variable_name), ) ) @@ -415,11 +444,16 @@ def __create_merit_path_goals(self, asset_info, max_value_merit, index_start_of_ variable_name = f"{asset}{asset_variable_map[asset]['discharge']}" + func_range = self.bounds()[variable_name] + v1 = _extract_values_timeseries(func_range[0], "min") + v2 = _extract_values_timeseries(func_range[1], "max") + func_range = (v1, v2) + goals.append( MinimizeStorageGoalMerit( variable_name, marginal_priority, - self.bounds()[variable_name], + func_range, self.variable_nominal(variable_name), ) ) @@ -649,6 +683,144 @@ def solver_options(self): return options +def run_sequatially_staged_simulation( + multi_commodity_simulator_class, simulation_window_size=2, *args, **kwargs +): + """ + This function is to run the MultiCommoditySimulator class in a staged manner where the stages + are sequantial parts of the time horizon. This is done to make the problem smaller and allow + for quicker run of the optimization/simulation. To ensure a physically sound result the + variables that affect the outcome of the next stage are constrained by setting bounds, e.g. the + amount of stored energy in a storage. + + Parameters + ---------- + multi_commodity_simulator_class : The problem class to run + simulation_window_size : The amount of indices to run in a single stage + + Returns + ------- + The results dict where all the time results are concatenated. + """ + + class MultiCommoditySimulatorTimeSequential(multi_commodity_simulator_class): + """ + This Problem class is used to run the MultiCommoditySimulator class in a sequantial manner + to reduce computational time. This class enables this by allowing to run a part of the + timeseries and setting bounds on the (initial-)state variables. + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.__start_time_index = kwargs.get("start_index", None) + self.__end_time_index = kwargs.get("end_index", None) + self._full_time_series = None + + self.__storage_initial_state_bounds = kwargs.get("storage_initial_state_bounds", {}) + + def times(self, variable=None) -> np.ndarray: + """ + In this function the part of the time-horizon is enforced. Note that the full + time-horizon is also set to an internal member for enabling setting bounds to the next + sequantial optimization. + """ + if self._full_time_series is None: + self._full_time_series = super().times(variable) + + if self.__start_time_index is not None and self.__end_time_index is not None: + return super().times(variable)[self.__start_time_index : self.__end_time_index] + elif self.__start_time_index is not None: + return super().times(variable)[self.__start_time_index :] + elif self.__end_time_index is not None: + return super().times(variable)[: self.__end_time_index] + else: + return super().times(variable) + + def bounds(self): + """ + Here we set bounds on the initial state to ensure that the sequantial simulation is a + physcially valid. + """ + bounds = super().bounds() + bounds.update(self.__storage_initial_state_bounds) + return bounds + + # Note that the window size should be larger than 1 otherwise this function is has no + # benefit and the writing of the results dict will fail. + assert simulation_window_size >= 2 + + total_results = None + # This is an initial value for end_time, will be corrected after the first stage + end_time = 2 * simulation_window_size + end_time_confirmed = False + storage_initial_state_bounds = {} + + # TODO: make this dict complete for all relevant assets and their associated variables. + constrained_assets = { + "electricity_storage": ["Stored_electricity", "Effective_power_charging"], + "gas_tank_storage": ["Stored_gas_mass", "Gas_tank_flow"], + } + + tic = time.time() + for simulated_window in range(0, end_time, simulation_window_size): + + # Note that the end time is not necessarily a multiple of simulation_window_size + sub_end_time = min(end_time, simulated_window + simulation_window_size) + + # max operation for start_index to avoid the overlap function in the first stage + solution = run_optimization_problem( + MultiCommoditySimulatorTimeSequential, + start_index=max(simulated_window - 1, 0), + end_index=sub_end_time, + storage_initial_state_bounds=storage_initial_state_bounds, + **kwargs, + ) + if not end_time_confirmed: + end_time = len(solution._full_time_series) + end_time_confirmed = True + results = solution.extract_results() + + # TODO: check if we now capture all relevant variables. + if total_results is None: + total_results = results + aliases = solution.alias_relation._canonical_variables_map + bounds = solution.bounds() + parameters = solution.parameters(0) + else: + for key, data in results.items(): + if len(total_results[key]) > 1: + total_results[key] = np.concatenate((total_results[key], data[1:])) + + if sub_end_time < end_time: + for asset_type, variables in constrained_assets.items(): + for asset in solution.energy_system_components.get(asset_type, []): + sub_time_series = solution._full_time_series[ + simulated_window + - 1 + + simulation_window_size : min( + end_time, simulated_window + 2 * simulation_window_size + ) + ] + for variable in variables: + lb_value = _extract_values_timeseries( + solution.bounds()[f"{asset}.{variable}"][0], "min" + ) + ub_value = _extract_values_timeseries( + solution.bounds()[f"{asset}.{variable}"][1], "max" + ) + lb_values = [lb_value] * len(sub_time_series) + ub_values = [ub_value] * len(sub_time_series) + lb_values[0] = ub_values[0] = results[f"{asset}.{variable}"][-1] + lb = Timeseries(sub_time_series, lb_values) + ub = Timeseries(sub_time_series, ub_values) + storage_initial_state_bounds[f"{asset}.{variable}"] = (lb, ub) + + print(time.time() - tic) + + return OptimisationOverview(total_results, bounds, parameters, aliases) + + # ------------------------------------------------------------------------------------------------- @main_decorator def main(runinfo_path, log_level): diff --git a/tests/models/emerge/model/emerge_battery_priorities_limited_capacity.esdl b/tests/models/emerge/model/emerge_battery_priorities_limited_capacity.esdl new file mode 100644 index 000000000..002d0ff68 --- /dev/null +++ b/tests/models/emerge/model/emerge_battery_priorities_limited_capacity.esdl @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/emerge/src/example.py b/tests/models/emerge/src/example.py index a844ba9b9..38c7e041d 100644 --- a/tests/models/emerge/src/example.py +++ b/tests/models/emerge/src/example.py @@ -9,6 +9,10 @@ from mesido.head_loss_class import HeadLossOption from mesido.techno_economic_mixin import TechnoEconomicMixin from mesido.workflows.io.write_output import ScenarioOutput +from mesido.workflows.multicommodity_simulator_workflow import ( + MultiCommoditySimulatorNoLosses, + run_sequatially_staged_simulation, +) from rtctools.optimization.collocated_integrated_optimization_problem import ( CollocatedIntegratedOptimizationProblem, @@ -18,7 +22,6 @@ LinearizedOrderGoalProgrammingMixin, ) from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin -from rtctools.util import run_optimization_problem class MaxHydrogenProduction(Goal): @@ -318,14 +321,24 @@ def post(self): if __name__ == "__main__": tic = time.time() - for _ in range(10): - elect = run_optimization_problem( - EmergeTest, - esdl_file_name="emerge_solar_battery.esdl", - esdl_parser=ESDLFileParser, - profile_reader=ProfileReaderFromFile, - input_timeseries_file="timeseries_with_PV.csv", - ) + # for _ in range(10): + # elect = run_optimization_problem( + # EmergeTest, + # esdl_file_name="emerge_solar_battery.esdl", + # esdl_parser=ESDLFileParser, + # profile_reader=ProfileReaderFromFile, + # input_timeseries_file="timeseries_with_PV.csv", + # ) + + solution = run_sequatially_staged_simulation( + multi_commodity_simulator_class=MultiCommoditySimulatorNoLosses, + simulation_window_size=20, + esdl_file_name="emerge_battery_priorities.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_short.csv", + ) + print(time.time() - tic) # elect = run_optimization_problem( # EmergeTest, @@ -334,5 +347,5 @@ def post(self): # profile_reader=ProfileReaderFromFile, # input_timeseries_file="timeseries.csv", # ) - results = elect.extract_results() - a = 1 + # results = elect.extract_results() + # a = 1 diff --git a/tests/test_multicommodity_simulator.py b/tests/test_multicommodity_simulator.py index 1e82ac1d7..04cdaea0d 100644 --- a/tests/test_multicommodity_simulator.py +++ b/tests/test_multicommodity_simulator.py @@ -9,6 +9,7 @@ from mesido.workflows.multicommodity_simulator_workflow import ( MultiCommoditySimulator, MultiCommoditySimulatorNoLosses, + run_sequatially_staged_simulation, ) import numpy as np @@ -31,7 +32,7 @@ def check_electrolyzer_efficiency(tol, electrolyzer_gas, electrolyzer_power, esd esdl_electrolyzer.attributes["effMinLoad"], esdl_electrolyzer.attributes["efficiency"], ) - np.testing.assert_array_less(min(provided_efficiencies), efficiency[electrolyzer_power > 0]) + np.testing.assert_array_less(min(provided_efficiencies), efficiency[electrolyzer_power > 1]) np.testing.assert_array_less( efficiency[electrolyzer_power > 0], max(provided_efficiencies) + tol ) @@ -534,7 +535,6 @@ def test_multi_commodity_simulator_emerge_head_losses(self): head_loss_full_var = results[f"{pipe}.__head_loss"] # If this test fails there is most likely a scaling issue. indexes = np.abs(v_pipe) > 0.0 - indexes[0] = False np.testing.assert_allclose( np.abs(np.asarray(head_loss[indexes])), head_loss_full_var[indexes] @@ -568,6 +568,102 @@ def test_multi_commodity_simulator_emerge_head_losses(self): headloss_calc = a * v + b np.testing.assert_allclose(abs(head_loss[i]), headloss_calc, 0.1) + def test_multi_commodity_simulator_sequential_staged(self): + """ + Test to run the multicommodity simulator including a battery and gas storage using + the sequential staged optimization approach. The results between the staged and unstaaged + approach should be equal if the assets in the system do not have an internal state that + makes timesteps interdependent (like Stored_energy for a battery) or when the bounds on + those states do not limit the problem. + + Checks: + - that the staged approach results in same values as the unstaged approach. + - Verify that under limited case bounds are set correctly. + """ + import models.emerge.src.example as example + + base_folder = Path(example.__file__).resolve().parent.parent + + solution_staged_unbounded = run_sequatially_staged_simulation( + multi_commodity_simulator_class=MultiCommoditySimulatorNoLosses, + simulation_window_size=20, + base_folder=base_folder, + esdl_file_name="emerge_battery_priorities.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_short.csv", + ) + + results_staged = solution_staged_unbounded.results + + solution_unstaged = run_optimization_problem( + MultiCommoditySimulatorNoLosses, + base_folder=base_folder, + esdl_file_name="emerge_battery_priorities.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_short.csv", + ) + + results_unstaged = solution_unstaged.extract_results() + + # Checking that the results are the same. + for key, value in results_unstaged.items(): + value_staged = results_staged[key] + np.testing.assert_allclose(value, value_staged) + + solution_staged_bounded = run_sequatially_staged_simulation( + multi_commodity_simulator_class=MultiCommoditySimulatorNoLosses, + simulation_window_size=20, + base_folder=base_folder, + esdl_file_name="emerge_battery_priorities_limited_capacity.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_short.csv", + ) + + results_staged_bounded = solution_staged_bounded.results + + solution_unstaged_bounded = run_optimization_problem( + MultiCommoditySimulatorNoLosses, + base_folder=base_folder, + esdl_file_name="emerge_battery_priorities_limited_capacity.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_short.csv", + ) + + results_unstaged_bounded = solution_unstaged_bounded.extract_results() + + check_different = np.sum( + np.abs( + results_staged_bounded["Battery_4688.Stored_electricity"] + - results_unstaged_bounded["Battery_4688.Stored_electricity"] + ) + ) + + assert check_different > 0 + + class MultiCommoditySimulatorNoLossesWin(MultiCommoditySimulatorNoLosses): + def times(self, variable=None) -> np.ndarray: + return super().times(variable)[:20] + + solution_unstaged_bounded_win = run_optimization_problem( + MultiCommoditySimulatorNoLossesWin, + base_folder=base_folder, + esdl_file_name="emerge_battery_priorities_limited_capacity.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_short.csv", + ) + + results_unstaged_bounded_win = solution_unstaged_bounded_win.extract_results() + + np.testing.assert_allclose( + results_staged_bounded["Battery_4688.Stored_electricity"][20], + results_unstaged_bounded_win["Battery_4688.Stored_electricity"][-1], + ) + if __name__ == "__main__": import time From ea47aa864f7d6ed7c15378ed3535d2baa240a134 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:21:16 +0200 Subject: [PATCH 196/275] Update on the structure of the profiles provided as output to the database(#126) Profile measurement is set to carrier id and the filters are updated with the asset_id and the quotes using the ampersand symbol. --- examples/PoCTutorial/src/run_grow_tutorial.py | 11 +++++++++++ src/mesido/workflows/io/write_output.py | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/examples/PoCTutorial/src/run_grow_tutorial.py b/examples/PoCTutorial/src/run_grow_tutorial.py index bf62064cf..c74d0c061 100644 --- a/examples/PoCTutorial/src/run_grow_tutorial.py +++ b/examples/PoCTutorial/src/run_grow_tutorial.py @@ -11,6 +11,16 @@ class EndScenarioSizingStagedHighs(EndScenarioSizingStagedHIGHS): if __name__ == "__main__": import time + kwargs = { + "write_result_db_profiles": True, + "influxdb_host": "localhost", + "influxdb_port": 8086, + "influxdb_username": None, + "influxdb_password": None, + "influxdb_ssl": False, + "influxdb_verify_ssl": False, + } + start_time = time.time() base_folder = Path(__file__).resolve().parent.parent solution = run_end_scenario_sizing( @@ -18,6 +28,7 @@ class EndScenarioSizingStagedHighs(EndScenarioSizingStagedHIGHS): base_folder=base_folder, esdl_file_name="PoC Tutorial.esdl", esdl_parser=ESDLFileParser, + **kwargs, ) print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 8de8efd54..24c624351 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -1264,13 +1264,14 @@ def _name_to_asset(name): profile_attributes = esdl.InfluxDBProfile( database=output_energy_system_id, - measurement=asset_name, + measurement=carrier_id, field=profiles.profile_header[-1], port=self.influxdb_port, host=self.influxdb_host, startDate=start_date_time, endDate=end_date_time, id=str(uuid.uuid4()), + filters='"assetId"=' + f"'{str(asset_id)}'", ) # Assign quantity and units variable if variable in ["Heat_flow", "Pump_power"]: From 45579a5a24e14d0917279efa02868e5a2077567c Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 5 Aug 2024 16:03:34 +0200 Subject: [PATCH 197/275] Removed unfit check in log of postprocessing (#127) Removed warning "Heat direction of pipe might be wrong" --- src/mesido/heat_physics_mixin.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index b30e69df1..768628d2c 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -3509,15 +3509,6 @@ def post(self): parameters = self.parameters(0) options = self.energy_system_options() - # The flow directions are the same as the heat directions if the - # return (i.e. cold) line has zero heat throughout. Here we check that - # this is indeed the case. - for p in self.cold_pipes: - heat_in = results[f"{p}.HeatIn.Heat"] - heat_out = results[f"{p}.HeatOut.Heat"] - if np.any(heat_in > 1.0) or np.any(heat_out > 1.0): - logger.warning(f"Heat directions of pipes might be wrong. Check {p}.") - if self.heat_network_settings["head_loss_option"] != HeadLossOption.NO_HEADLOSS: for p in self.energy_system_components.get("heat_pipe", []): head_diff = results[f"{p}.HeatIn.H"] - results[f"{p}.HeatOut.H"] From dcfec3152260e064bcea7431f29eb9037c61ef16 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 6 Aug 2024 14:25:17 +0200 Subject: [PATCH 198/275] formatting --- tests/models/wko/src/example.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/models/wko/src/example.py b/tests/models/wko/src/example.py index bafca1f0c..dfeb9ccc6 100644 --- a/tests/models/wko/src/example.py +++ b/tests/models/wko/src/example.py @@ -166,7 +166,6 @@ def path_goals(self): The appended list of goals """ goals = super().path_goals().copy() - self.energy_system_components["heat_source"] for s in self.energy_system_components["heat_source"]: goals.append(MinimizeSourcesHeatGoal(s)) From 5b89dcff7b036bed3ddddc98f44c1accdda68a68 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 6 Aug 2024 14:47:23 +0200 Subject: [PATCH 199/275] formatting --- src/mesido/esdl/esdl_heat_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index e39831e40..76bcb89e7 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1007,7 +1007,7 @@ def convert_heat_pump( # In this case we only have the secondary side ports, here we assume a air-water HP if len(asset.in_ports) == 1 and len(asset.out_ports) == 1: - #TODO: the power filled in at the heatpmp should always be the electric power, thus, + # TODO: the power filled in at the heatpmp should always be the electric power, thus, # the max heat supply should be power*cop _, modifiers = self.convert_heat_source(asset) return AirWaterHeatPump, modifiers From 687e73738060cf4877076332ca02794a64580267 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 6 Aug 2024 14:52:40 +0200 Subject: [PATCH 200/275] formatting --- src/mesido/heat_physics_mixin.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index efdcdb92a..dccb085a7 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -1652,9 +1652,11 @@ def __pipe_heat_to_discharge_path_constraints(self, ensemble_member): ) ) else: - # Note that during cold delivery the line can be colder than the ground temperature. + # Note that during cold delivery the line can be colder than the ground + # temperature. # In this case we have to bound the heat flowing in the line with the ground - # temperature instead, as the line can heat up to at maximum the ground temperature. + # temperature instead, as the line can heat up to at maximum the ground + # temperature. temp = max(parameters[f"{p}.temperature"], parameters[f"{p}.T_ground"]) assert big_m > 0.0 From 6d54038df95bfe1dfc3cd255ee32c7d68e75c9b9 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 6 Aug 2024 14:55:53 +0200 Subject: [PATCH 201/275] Removed todo as it has been resolved --- tests/test_cold_demand.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 7a922af6f..fe33ac67f 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -99,8 +99,6 @@ def test_wko(self): class HeatingCoolingProblem(HeatProblem): - # TODO: investigate why test fails when heat_losses are neglected. - # An issue has been created for this def energy_system_options(self): options = super().energy_system_options() options["neglect_pipe_heat_losses"] = True From 88b1e18e501721f19cdc3880cae55599790a02ea Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Tue, 6 Aug 2024 16:18:52 +0200 Subject: [PATCH 202/275] Updated the test case to check heat gain/loss --- tests/test_cold_demand.py | 57 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index fe33ac67f..222e174dc 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -84,24 +84,30 @@ def test_wko(self): The demand profiles and the size of the heat pump has been chosen such that the heat is required is required to switch on to load the warm well of the WKO. - Checks: + Checks for scenario with and without pipe heat losses: 1. demand is matched 2. energy conservation in the network 3. heat to discharge (note cold line is colder than T_ground) 4. the cyclic heat_stored contraint, which ensures yearly heat balance between the warm and cold well - + 5. pipe heat loss and gain + - pipe heat losses included: expect loss and gain values due to the carrier + temperatures (warm and cold) in the pipes being higher and lower than the ground + temperature + - pipe heat losses excluded: excpect no heat losses or gains """ import models.wko.src.example as example from models.wko.src.example import HeatProblem base_folder = Path(example.__file__).resolve().parent.parent + # ------------------------------------------------------------------------------------------ + # Pipe heat losses inlcuded class HeatingCoolingProblem(HeatProblem): def energy_system_options(self): options = super().energy_system_options() - options["neglect_pipe_heat_losses"] = True + options["neglect_pipe_heat_losses"] = False return options def constraints(self, ensemble_member): @@ -150,9 +156,54 @@ def constraints(self, ensemble_member): energy_conservation_test(heat_problem, results) heat_to_discharge_test(heat_problem, results) + # Check cyclic constraint np.testing.assert_allclose( results["ATES_226d.Stored_heat"][0], results["ATES_226d.Stored_heat"][-1] ) + # Check heat loss and gain + tol_value = 1.0e-6 + np.testing.assert_array_less( + 0.0, results["Pipe1.HeatIn.Heat"] - results["Pipe1.HeatOut.Heat"] + tol_value + ) + np.testing.assert_array_less( + results["Pipe1_ret.HeatIn.Heat"] - results["Pipe1_ret.HeatOut.Heat"] - tol_value, 0.0 + ) + + # ------------------------------------------------------------------------------------------ + # Pipe heat losses excluded + class HeatingCoolingProblemNoHeatLoss(HeatingCoolingProblem): + def energy_system_options(self): + options = super().energy_system_options() + options["neglect_pipe_heat_losses"] = True + return options + + heat_problem = run_esdl_mesido_optimization( + HeatingCoolingProblemNoHeatLoss, + base_folder=base_folder, + esdl_file_name="LT_wko_heating_and_cooling.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_2.csv", + ) + results = heat_problem.extract_results() + + demand_matching_test(heat_problem, results) + energy_conservation_test(heat_problem, results) + heat_to_discharge_test(heat_problem, results) + + # Check cyclic constraint + np.testing.assert_allclose( + results["ATES_226d.Stored_heat"][0], results["ATES_226d.Stored_heat"][-1] + ) + # Check heat loss and gain + tol_value = 1.0e-6 + np.testing.assert_allclose( + 0.0, results["Pipe1.HeatIn.Heat"] - results["Pipe1.HeatOut.Heat"], atol=1e-6 + ) + np.testing.assert_allclose( + 0.0, results["Pipe1_ret.HeatIn.Heat"] - results["Pipe1_ret.HeatOut.Heat"], atol=1e-6 + ) + # ------------------------------------------------------------------------------------------ if __name__ == "__main__": From 139f36dcfe59e9e7096d3155a2a49ea29d515034 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Tue, 6 Aug 2024 17:37:36 +0200 Subject: [PATCH 203/275] Scaling problem check (#137) Created a test function to check the scaling in optimization problems. This still needs to be added to all tests, with a strict check to ensure that we are not making the scaling worse when adding or updating constraints and boundaries. --- tests/test_multicommodity_simulator.py | 17 +++- tests/utils_test_scaling.py | 112 +++++++++++++++++++++++++ tox.ini | 5 ++ 3 files changed, 131 insertions(+), 3 deletions(-) create mode 100644 tests/utils_test_scaling.py diff --git a/tests/test_multicommodity_simulator.py b/tests/test_multicommodity_simulator.py index 04cdaea0d..6919e11a9 100644 --- a/tests/test_multicommodity_simulator.py +++ b/tests/test_multicommodity_simulator.py @@ -16,6 +16,8 @@ from rtctools.util import run_optimization_problem +from utils_test_scaling import create_problem_with_debug_info, problem_scaling_check + from utils_tests import ( demand_matching_test, electric_power_conservation_test, @@ -91,8 +93,12 @@ def test_multi_commodity_simulator_priorities_el(self): base_folder = Path(example.__file__).resolve().parent.parent + multicommoditysimulatorscaling, logger, logs_list = create_problem_with_debug_info( + MultiCommoditySimulator + ) + solution = run_optimization_problem( - MultiCommoditySimulator, + multicommoditysimulatorscaling, base_folder=base_folder, esdl_file_name="Electric_bus4_priorities.esdl", esdl_parser=ESDLFileParser, @@ -100,6 +106,7 @@ def test_multi_commodity_simulator_priorities_el(self): input_timeseries_file="timeseries_2.csv", ) + problem_scaling_check(logs_list, logger) bounds = solution.bounds() results = solution.extract_results() @@ -416,15 +423,19 @@ def test_multi_commodity_simulator_emerge_battery(self): base_folder = Path(example.__file__).resolve().parent.parent + multicommoditysimulatornolossesscaling, logger, logs_list = create_problem_with_debug_info( + MultiCommoditySimulatorNoLosses + ) + solution = run_optimization_problem( - MultiCommoditySimulatorNoLosses, + multicommoditysimulatornolossesscaling, base_folder=base_folder, esdl_file_name="emerge_battery_priorities.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries_short.csv", ) - + problem_scaling_check(logs_list, logger, order_diff=1e7) results = solution.extract_results() feasibility_test(solution) diff --git a/tests/utils_test_scaling.py b/tests/utils_test_scaling.py new file mode 100644 index 000000000..a4c2508da --- /dev/null +++ b/tests/utils_test_scaling.py @@ -0,0 +1,112 @@ +import logging +import math +import re + +from rtctools._internal.debug_check_helpers import DebugLevel + + +def create_log_list_scaling(): + """ + Creation of a list for the logs which will be filled with the logging information of the + problem. + :return: + """ + + class LogRecordsListHandler(logging.Handler): + """ + Handler class to store log entries in a list + """ + + def __init__(self, records_list): + self.records_list = records_list + super().__init__() + + def emit(self, record): + self.records_list.append(record) + + logs_list = [] + + logger = logging.getLogger("rtctools") + logger.setLevel(logging.INFO) + + logger.addHandler(LogRecordsListHandler(logs_list)) + + return logger, logs_list + + +def create_problem_with_debug_info(problem_class): + """ + The problem class that needs to be executed is updated with a debuglevel to + ensure that the information about the scaling is logged. Furthermore, the logging list is + created to allow for backtracking and check scaling information. + :param problem_class: The problem class that should be executed + :return: + The problem class including its debuglevel and the logging list and logger. + """ + # TODO: currently only the default settings can be used to check the scaling. + logger, logs_list = create_log_list_scaling() + + class ProblemClassScaling(problem_class): + _debug_check_level = DebugLevel.VERYHIGH + + return ProblemClassScaling, logger, logs_list + + +def check_order(dict_values, maximum_order_diff): + """ + Checks the difference in order between the lower and upperbound of several problem settings; + objective, matrix and right hand side. + :param dict_values: dictionary with the different problem settings and their respective lower + and upperbound + :param maximum_order_diff: the maximum difference that is allowed. + :return: + """ + msg_order = {} + for key, value in dict_values.items(): + if value[0] != 0.0: + order = value[1] / value[0] + else: + order = value[1] + if order > maximum_order_diff: + order_wrong = math.floor(math.log(order, 10)) + msg_order[key] = ( + f"The scaling of this problem is not great, for the {key}, the values are {value} " + f"which is of the order {order_wrong}, {maximum_order_diff} is the maximum allowed " + f"order difference." + ) + assert len(msg_order) == 0, msg_order + + +def problem_scaling_check(logs_list, logger, order_diff=1e6): + """ + Checks the difference in order between the lower and upperbound of several problem settings; + objective, matrix and rhs. + These settings are first to be extracted from the logging information. + :param logs_list: The list containing all the logs. + :param logger: The logger that logs information, warnings and errors depending on the level set. + :param order_diff: The maximum difference between the lower and upperbound. + :return: + """ + linear_coeff_log = [ + log for log in logs_list if "__debug_check_transcribe_linear_coefficients" in log.funcName + ] + range_data = {} + for log in linear_coeff_log: + if ( + "Statistics of constraints: max & min of abs(jac(g, x0))), " "max & min of abs(g(x0))" + ) == log.msg: + data = linear_coeff_log[linear_coeff_log.index(log) + 1] + data_str = re.findall(r"[-+]?\d*\.\d+|\d+", data.msg) + range_data["matrix"] = [float(data_str[1]), float(data_str[0])] + range_data["rhs"] = [float(data_str[3]), float(data_str[2])] + elif ("Statistics of objective: max & min of abs(jac(f,") in log.msg: + data = linear_coeff_log[linear_coeff_log.index(log) + 1] + data_str = re.findall(r"[-+]?\d*\.\d+|\d+", data.msg) + if len(data_str) > 2: + range_data["objective_matrix"] = [float(data_str[1]), float(data_str[0])] + range_data["objective"] = [float(data_str[3]), float(data_str[2])] + else: + range_data["objective"] = [float(data_str[1]), float(data_str[0])] + for k, v in range_data.items(): + logger.info(f"{k,v}") + check_order(range_data, order_diff) diff --git a/tox.ini b/tox.ini index cda45d59d..5645a9106 100644 --- a/tox.ini +++ b/tox.ini @@ -2,6 +2,11 @@ envlist = py39, test_env_main, test_env_pre, test_env_post, flake8, black +# Allowing logging INFO when using pytest +[pytest] +log_cli = 1 +log_cli_level = INFO + # Basic setup for test environments [testenv] deps = From 65802aff09e0e1eb6181173de199119b4bcc7280 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:35:45 +0200 Subject: [PATCH 204/275] Fix the headloss equality constraints (#135) Bugfix in the headloss equality constraints to ensure the proper integer linear_line selection variables are selected. Thereby the headloss equality constraints can now be used when minimize_head_loss is turned off. --- src/mesido/head_loss_class.py | 78 ++++++++----------- .../multicommodity_simulator_workflow.py | 3 +- .../emerge/input/timeseries_short_2.csv | 4 + .../pipe_test/src/run_hydraulic_power.py | 10 ++- tests/test_head_loss.py | 11 ++- tests/test_hydraulic_power.py | 4 +- tests/test_multicommodity_simulator.py | 7 +- 7 files changed, 60 insertions(+), 57 deletions(-) create mode 100644 tests/models/emerge/input/timeseries_short_2.csv diff --git a/src/mesido/head_loss_class.py b/src/mesido/head_loss_class.py index d9e75b451..4377979c9 100644 --- a/src/mesido/head_loss_class.py +++ b/src/mesido/head_loss_class.py @@ -822,55 +822,43 @@ def _hn_pipe_head_loss( ) # Add equality constraint, value == 0.0 for all linear lines - # Loop twice due to linear lines exsiting for negative and positive discharge - # ii==0: this is the linear lines for the negative discharge possibility - # ii==1: this is the linear lines for the postive discharge possibility - for ii in range(2): - for ii_line in range(n_linear_lines): - ii_line_used = (ii * 2) + ii_line - - ii_start = (ii_line + 2 * ii) * n_timesteps - ii_end = ii_start + n_timesteps - constraints.append( + for ii_line_used in range(len(pipe_linear_line_segment)): + ii_start = ii_line_used * n_timesteps + ii_end = ii_start + n_timesteps + constraints.append( + ( ( - ( - head_loss_vec[ii_start:ii_end] - - ( - a_vec[ii_start:ii_end] * discharge_vec[ii_start:ii_end] - + b_vec[ii_start:ii_end] - ) - + is_disconnected_vec[ii_start:ii_end] * big_m_lin - + big_m_lin - * (1 - is_line_segment_active[ii_line_used][0:n_timesteps]) + head_loss_vec[ii_start:ii_end] + - ( + a_vec[ii_start:ii_end] * discharge_vec[ii_start:ii_end] + + b_vec[ii_start:ii_end] ) - / constraint_nominal[ii_start:ii_end], - 0.0, - np.inf, - ), - ) - for ii in range(2): - for ii_line in range(n_linear_lines): - ii_line_used = (ii * 2) + ii_line - - ii_start = (ii_line + 2 * ii) * n_timesteps - ii_end = ii_start + n_timesteps - constraints.append( + + is_disconnected_vec[ii_start:ii_end] * big_m_lin + + big_m_lin + * (1 - is_line_segment_active[ii_line_used][0:n_timesteps]) + ) + / constraint_nominal[ii_start:ii_end], + 0.0, + np.inf, + ), + ) + constraints.append( + ( ( - ( - head_loss_vec[ii_start:ii_end] - - ( - a_vec[ii_start:ii_end] * discharge_vec[ii_start:ii_end] - + b_vec[ii_start:ii_end] - ) - - is_disconnected_vec[ii_start:ii_end] * big_m_lin - - big_m_lin - * (1 - is_line_segment_active[ii_line_used][0:n_timesteps]) + head_loss_vec[ii_start:ii_end] + - ( + a_vec[ii_start:ii_end] * discharge_vec[ii_start:ii_end] + + b_vec[ii_start:ii_end] ) - / constraint_nominal[ii_start:ii_end], - -np.inf, - 0.0, - ), - ) + - is_disconnected_vec[ii_start:ii_end] * big_m_lin + - big_m_lin + * (1 - is_line_segment_active[ii_line_used][0:n_timesteps]) + ) + / constraint_nominal[ii_start:ii_end], + -np.inf, + 0.0, + ), + ) return constraints else: ret = np.amax(a * np.tile(discharge, (len(a), 1)).transpose() + b, axis=1) diff --git a/src/mesido/workflows/multicommodity_simulator_workflow.py b/src/mesido/workflows/multicommodity_simulator_workflow.py index 308bf319f..b51ba8f5e 100644 --- a/src/mesido/workflows/multicommodity_simulator_workflow.py +++ b/src/mesido/workflows/multicommodity_simulator_workflow.py @@ -515,7 +515,8 @@ def energy_system_options(self): self.gas_network_settings["head_loss_option"] = HeadLossOption.LINEARIZED_N_LINES_EQUALITY self.gas_network_settings["network_type"] = NetworkSettings.NETWORK_TYPE_HYDROGEN - self.gas_network_settings["minimize_head_losses"] = True + self.gas_network_settings["minimize_head_losses"] = False + self.gas_network_settings["maximum_velocity"] = 60.0 options["include_asset_is_switched_on"] = True options["estimated_velocity"] = 7.5 diff --git a/tests/models/emerge/input/timeseries_short_2.csv b/tests/models/emerge/input/timeseries_short_2.csv new file mode 100644 index 000000000..09f28f507 --- /dev/null +++ b/tests/models/emerge/input/timeseries_short_2.csv @@ -0,0 +1,4 @@ +DateTime,WindPark_9074,Elec,Hydrogen +2016-01-01Z 06:00:00,1999997849.6,1.816e-05,2.4 +2016-01-01Z 07:00:00,1999999562.2,1.7729999999999998e-05,2.4 +2016-01-01Z 08:00:00,.0,1.977e-05,2.4 \ No newline at end of file diff --git a/tests/models/pipe_test/src/run_hydraulic_power.py b/tests/models/pipe_test/src/run_hydraulic_power.py index c195807cc..2c22454d9 100644 --- a/tests/models/pipe_test/src/run_hydraulic_power.py +++ b/tests/models/pipe_test/src/run_hydraulic_power.py @@ -77,7 +77,10 @@ def __init__(self, *args, **kwargs): self.heat_network_settings["head_loss_option"] = head_loss_setting if head_loss_setting == HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY: self.heat_network_settings["n_linearization_lines"] = n_linearization_lines_setting - self.heat_network_settings["minimize_head_losses"] = True + if head_loss_setting == HeadLossOption.LINEARIZED_N_LINES_EQUALITY: + self.heat_network_settings["minimize_head_losses"] = False + else: + self.heat_network_settings["minimize_head_losses"] = True def pre(self): super().pre() @@ -104,7 +107,10 @@ def heat_network_options(self): self.heat_network_settings["head_loss_option"] = head_loss_setting if head_loss_setting == HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY: self.heat_network_settings["n_linearization_lines"] = n_linearization_lines_setting - self.heat_network_settings["minimize_head_losses"] = True + if head_loss_setting == HeadLossOption.LINEARIZED_N_LINES_EQUALITY: + self.heat_network_settings["minimize_head_losses"] = False + else: + self.heat_network_settings["minimize_head_losses"] = True return options diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index c86a94f7d..60e71186c 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -73,7 +73,7 @@ def energy_system_options(self): self.heat_network_settings["head_loss_option"] = ( HeadLossOption.LINEARIZED_N_LINES_EQUALITY ) - self.heat_network_settings["minimize_head_losses"] = True + self.heat_network_settings["minimize_head_losses"] = False self.heat_network_settings["minimum_velocity"] = 1.0e-6 return options @@ -267,7 +267,10 @@ def energy_system_options(self): self.heat_network_settings["n_linearization_lines"] = 2 self.heat_network_settings["minimum_velocity"] = 0.0 - self.heat_network_settings["minimize_head_losses"] = True + if head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_EQUALITY: + self.heat_network_settings["minimize_head_losses"] = False + else: + self.heat_network_settings["minimize_head_losses"] = True return options @@ -442,7 +445,7 @@ def energy_system_options(self): ): self.gas_network_settings["n_linearization_lines"] = 2 self.gas_network_settings["minimize_head_losses"] = True - if head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_EQUALITY: + elif head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_EQUALITY: self.gas_network_settings["n_linearization_lines"] = 2 self.gas_network_settings["minimize_head_losses"] = True self.gas_network_settings["minimum_velocity"] = 0.0 @@ -593,7 +596,7 @@ def energy_system_options(self): if head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_EQUALITY: # do not change in value below, see notes above self.gas_network_settings["n_linearization_lines"] = 2 - self.gas_network_settings["minimize_head_losses"] = True + self.gas_network_settings["minimize_head_losses"] = False # if statements below are currently not used, potential use in the future elif head_loss_option_setting == HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY: self.gas_network_settings["minimize_head_losses"] = True diff --git a/tests/test_hydraulic_power.py b/tests/test_hydraulic_power.py index b2857e4f7..f51f5c15f 100644 --- a/tests/test_hydraulic_power.py +++ b/tests/test_hydraulic_power.py @@ -274,7 +274,7 @@ def energy_system_options(self): ) self.gas_network_settings["n_linearization_lines"] = 3 self.gas_network_settings["minimum_velocity"] = 0.0 - self.gas_network_settings["minimize_head_losses"] = True + self.gas_network_settings["minimize_head_losses"] = False return options @@ -404,7 +404,7 @@ def energy_system_options(self): ) self.gas_network_settings["n_linearization_lines"] = 3 self.gas_network_settings["minimum_velocity"] = 0.0 - self.gas_network_settings["minimize_head_losses"] = True + self.gas_network_settings["minimize_head_losses"] = False return options diff --git a/tests/test_multicommodity_simulator.py b/tests/test_multicommodity_simulator.py index 6919e11a9..a81b87730 100644 --- a/tests/test_multicommodity_simulator.py +++ b/tests/test_multicommodity_simulator.py @@ -493,7 +493,7 @@ def test_multi_commodity_simulator_emerge_head_losses(self): esdl_file_name="emerge_battery_priorities.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, - input_timeseries_file="timeseries_short.csv", + input_timeseries_file="timeseries_short_2.csv", ) results = solution.extract_results() @@ -534,7 +534,8 @@ def test_multi_commodity_simulator_emerge_head_losses(self): # linearized dw_headloss calculations linear_lines = 5 - velocities = np.linspace(0, 15, linear_lines + 1) + v_max = solution.gas_network_settings["maximum_velocity"] + velocities = np.linspace(0, v_max, linear_lines + 1) for pipe in solution.energy_system_components.get("gas_pipe"): length = parameters[f"{pipe}.length"] @@ -545,7 +546,7 @@ def test_multi_commodity_simulator_emerge_head_losses(self): head_loss = results[f"{pipe}.dH"] head_loss_full_var = results[f"{pipe}.__head_loss"] # If this test fails there is most likely a scaling issue. - indexes = np.abs(v_pipe) > 0.0 + indexes = np.abs(v_pipe) > 1e-11 indexes[0] = False np.testing.assert_allclose( np.abs(np.asarray(head_loss[indexes])), head_loss_full_var[indexes] From fe9be9f0d8128a27f0d78c26dcaa8dcf2e209901 Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 12 Aug 2024 14:07:23 +0200 Subject: [PATCH 205/275] Update git ignore for Jaime --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 7c8d6775c..7f3e1a703 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,8 @@ run_pipe_compare.py .venv/ # Femke Janssen *_fj_* +# Jaime Santiago Patterson +*_jsp_* # Ignore ESDL files created by workflows *_GrowOptimized.esdl *_GrowOptimized_esdl_string.esdl From e996a1d1e47d8607e888da84f99b8c126c465cfa Mon Sep 17 00:00:00 2001 From: "kobus.vanrooyen@tno.nl" Date: Mon, 12 Aug 2024 14:35:53 +0200 Subject: [PATCH 206/275] Changed abbreviation to more default instead --- .gitignore | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 7f3e1a703..9b3d94b6b 100644 --- a/.gitignore +++ b/.gitignore @@ -27,12 +27,10 @@ src/*.egg-info # Kobus van Rooyen run_pipe_compare.py -*_kvr_* .venv/ -# Femke Janssen -*_fj_* -# Jaime Santiago Patterson -*_jsp_* +# Abbreviation to be added to files/folders name +# Meaning of abbreviation: exclude from version control +*_efvc_* # Ignore ESDL files created by workflows *_GrowOptimized.esdl *_GrowOptimized_esdl_string.esdl From 90be7345cc89e219bae4b20a705116646171728f Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Mon, 12 Aug 2024 15:26:15 +0200 Subject: [PATCH 207/275] Cleanup of gitignore file (#144) * Removed Alex abbreviation as well * Further cleanup of gitignore file --- .gitignore | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 9b3d94b6b..6016fb631 100644 --- a/.gitignore +++ b/.gitignore @@ -25,15 +25,11 @@ src/*.egg-info .ipynb_checkpoints .vscode -# Kobus van Rooyen -run_pipe_compare.py -.venv/ # Abbreviation to be added to files/folders name # Meaning of abbreviation: exclude from version control *_efvc_* + # Ignore ESDL files created by workflows *_GrowOptimized.esdl *_GrowOptimized_esdl_string.esdl -*_Simulation.esdl -# Alejandro Martin -*_amg_* \ No newline at end of file +*_Simulation.esdl \ No newline at end of file From 7972394139a7f82b8e4307535eff449829c8f962 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Wed, 14 Aug 2024 09:53:18 +0200 Subject: [PATCH 208/275] Fixes on headloss constraints (#142) A bug is fixed, such that the __head_loss and .dH variable are now set equally. Also some testcases have been updated to check this. --------- Co-authored-by: kobus.vanrooyen@tno.nl --- .../input/timeseries_import.xml | 12 ++-- examples/pipe_diameter_sizing/model/2a.esdl | 6 +- examples/pipe_diameter_sizing/src/example.py | 5 +- src/mesido/head_loss_class.py | 57 +++++++++++-------- .../timeseries_minimum_electrolyzer_power.csv | 2 +- tests/test_electrolyzer.py | 22 ++++++- tests/test_gas_pipe_topology_optimization.py | 2 +- tests/test_hydraulic_power.py | 5 +- tests/test_pipe_diameter_sizing.py | 2 +- 9 files changed, 72 insertions(+), 41 deletions(-) diff --git a/examples/pipe_diameter_sizing/input/timeseries_import.xml b/examples/pipe_diameter_sizing/input/timeseries_import.xml index 513e247b9..329f810f5 100644 --- a/examples/pipe_diameter_sizing/input/timeseries_import.xml +++ b/examples/pipe_diameter_sizing/input/timeseries_import.xml @@ -13,8 +13,8 @@ -999.0 W - - + +
@@ -28,8 +28,8 @@ -999.0 W
- - + +
@@ -43,7 +43,7 @@ -999.0 W
- - + +
diff --git a/examples/pipe_diameter_sizing/model/2a.esdl b/examples/pipe_diameter_sizing/model/2a.esdl index eb93b345d..06f9a58c7 100644 --- a/examples/pipe_diameter_sizing/model/2a.esdl +++ b/examples/pipe_diameter_sizing/model/2a.esdl @@ -182,7 +182,7 @@
- + @@ -191,7 +191,7 @@ - + @@ -200,7 +200,7 @@ - + diff --git a/examples/pipe_diameter_sizing/src/example.py b/examples/pipe_diameter_sizing/src/example.py index 5613bc9b0..95a0ebf81 100644 --- a/examples/pipe_diameter_sizing/src/example.py +++ b/examples/pipe_diameter_sizing/src/example.py @@ -76,9 +76,12 @@ def energy_system_options(self): return options def pipe_classes(self, pipe): + # Do not delete pipeclass DN40, locally it runs with DN40, but in pipeline it seems + # that scaling is a bit too much off resulting in infeasibility probably because of + # machine accuracy. If scaling can be improved DN40 can be included again. return [ PipeClass("None", 0.0, 0.0, (0.0, 0.0), 0.0), - PipeClass("DN40", 0.0431, 1.5, (0.179091, 0.005049), 1.0), + # PipeClass("DN40", 0.0431, 1.5, (0.179091, 0.005049), 1.0), PipeClass("DN50", 0.0545, 1.7, (0.201377, 0.006086), 2.0), PipeClass("DN65", 0.0703, 1.9, (0.227114, 0.007300), 3.0), PipeClass("DN80", 0.0825, 2.2, (0.238244, 0.007611), 4.0), diff --git a/src/mesido/head_loss_class.py b/src/mesido/head_loss_class.py index 4377979c9..a0c7f75d6 100644 --- a/src/mesido/head_loss_class.py +++ b/src/mesido/head_loss_class.py @@ -409,30 +409,28 @@ def initialize_variables_nominals_and_bounds( # We need to creat linear line segments for the - and + volumetric flow rate # possibilites. Line number 1, 2, N for the - & + side is created discharge_type = ["neg_discharge", "pos_discharge"] - line_number = 0 - for dtype in discharge_type: - for ii_line in range(network_settings["n_linearization_lines"] * 2): - if ii_line < network_settings["n_linearization_lines"]: - dtype = discharge_type[0] - line_number = ii_line + 1 - else: - dtype = discharge_type[1] - line_number = ii_line + 1 - network_settings["n_linearization_lines"] - - # start line segment numbering from 1 up to "n_linearization_lines" - pipe_linear_line_segment_var_name = ( - f"{pipe_name}__pipe_linear_line_segment_num_{line_number}_{dtype}" - ) + for ii_line in range(network_settings["n_linearization_lines"] * 2): + if ii_line < network_settings["n_linearization_lines"]: + dtype = discharge_type[0] + line_number = ii_line + 1 + else: + dtype = discharge_type[1] + line_number = ii_line + 1 - network_settings["n_linearization_lines"] + + # start line segment numbering from 1 up to "n_linearization_lines" + pipe_linear_line_segment_var_name = ( + f"{pipe_name}__pipe_linear_line_segment_num_{line_number}_{dtype}" + ) - self._pipe_linear_line_segment_map[pipe_name][ - ii_line - ] = pipe_linear_line_segment_var_name - self.__pipe_linear_line_segment_var[pipe_name][ - pipe_linear_line_segment_var_name - ] = ca.MX.sym(pipe_linear_line_segment_var_name) - self.__pipe_linear_line_segment_var_bounds[pipe_name][ - pipe_linear_line_segment_var_name - ] = (0.0, 1.0) + self._pipe_linear_line_segment_map[pipe_name][ + ii_line + ] = pipe_linear_line_segment_var_name + self.__pipe_linear_line_segment_var[pipe_name][ + pipe_linear_line_segment_var_name + ] = ca.MX.sym(pipe_linear_line_segment_var_name) + self.__pipe_linear_line_segment_var_bounds[pipe_name][ + pipe_linear_line_segment_var_name + ] = (0.0, 1.0) return ( ( @@ -767,7 +765,9 @@ def _hn_pipe_head_loss( big_m_lin = 0.0 else: big_m_lin = big_m - constraint_nominal = (constraint_nominal * big_m_lin) ** 0.5 + constraint_nominal = np.abs( + head_loss_nominal * (a_vec * q_nominal + b_vec) * big_m + ) ** (1.0 / 3.0) constraints = [] @@ -1436,6 +1436,15 @@ def _pipe_head_loss_constraints( ) constraints.append(((dh - head_loss + flow_dir * big_m) / big_m, 0.0, np.inf)) + constraints.append( + ( + (-dh - head_loss - (1 - flow_dir) * big_m) / big_m, + -np.inf, + 0.0, + ) + ) + constraints.append(((dh - head_loss - flow_dir * big_m) / big_m, -np.inf, 0.0)) + return constraints def _pipe_hydraulic_power_path_constraints( diff --git a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv index f6ceb3580..50a007c54 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv +++ b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_minimum_electrolyzer_power.csv @@ -1,4 +1,4 @@ DateTime,elec,Hydrogen,WindPark_7f14 -01-01-2019 00:00, 1.0, 1000000.0, 100000000.0 +01-01-2019 00:00, 1.0, 10000000.0, 100000000.0 01-01-2019 01:00, 10.0, 10000000.0, 100000000.0 01-01-2019 02:00, 10.0, 10000000.0, 49000000.0 diff --git a/tests/test_electrolyzer.py b/tests/test_electrolyzer.py index 8762dafc9..4eb173233 100644 --- a/tests/test_electrolyzer.py +++ b/tests/test_electrolyzer.py @@ -31,8 +31,17 @@ def test_electrolyzer_inequality(self): base_folder = Path(example.__file__).resolve().parent.parent + class MILPProblemInequalityWithoutPresolve(MILPProblemInequality): + def solver_options(self): + options = super().solver_options() + options["solver"] = "highs" + highs_options = options["highs"] = {} + highs_options["presolve"] = "off" + + return options + solution = run_esdl_mesido_optimization( - MILPProblemInequality, + MILPProblemInequalityWithoutPresolve, base_folder=base_folder, esdl_file_name="h2.esdl", esdl_parser=ESDLFileParser, @@ -241,8 +250,17 @@ def test_electrolyzer_minimum_power(self): base_folder = Path(example.__file__).resolve().parent.parent + class MILPProblemInequalityWithoutPresolve(MILPProblemInequality): + def solver_options(self): + options = super().solver_options() + options["solver"] = "highs" + highs_options = options["highs"] = {} + highs_options["presolve"] = "off" + + return options + solution = run_esdl_mesido_optimization( - MILPProblemInequality, + MILPProblemInequalityWithoutPresolve, base_folder=base_folder, esdl_file_name="h2.esdl", esdl_parser=ESDLFileParser, diff --git a/tests/test_gas_pipe_topology_optimization.py b/tests/test_gas_pipe_topology_optimization.py index 17fe1cd4f..72b7d528b 100644 --- a/tests/test_gas_pipe_topology_optimization.py +++ b/tests/test_gas_pipe_topology_optimization.py @@ -32,7 +32,7 @@ def energy_system_options(self): self.gas_network_settings["head_loss_option"] = ( HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY ) - self.gas_network_settings["minimize_head_losses"] = True + self.gas_network_settings["minimize_head_losses"] = False return options solution = run_esdl_mesido_optimization( diff --git a/tests/test_hydraulic_power.py b/tests/test_hydraulic_power.py index f51f5c15f..679ac8654 100644 --- a/tests/test_hydraulic_power.py +++ b/tests/test_hydraulic_power.py @@ -389,11 +389,12 @@ def test_hydraulic_power_gas_multi_demand(self): base_folder = Path(run_test.__file__).resolve().parent.parent class GasProblemHydraulic(GasProblem): + def read(self): super().read() for d in self.energy_system_components["gas_demand"]: - new_timeseries = self.get_timeseries(f"{d}.target_gas_demand").values * 1.5 + new_timeseries = self.get_timeseries(f"{d}.target_gas_demand").values * 3 self.set_timeseries(f"{d}.target_gas_demand", new_timeseries) def energy_system_options(self): @@ -460,7 +461,7 @@ def energy_system_options(self): ) ind_check += 1 else: - raise RuntimeError( + raise RuntimeWarning( "For this test to succeed the flow should increase over time" ) np.testing.assert_array_less( diff --git a/tests/test_pipe_diameter_sizing.py b/tests/test_pipe_diameter_sizing.py index ba34f2225..ed791f706 100644 --- a/tests/test_pipe_diameter_sizing.py +++ b/tests/test_pipe_diameter_sizing.py @@ -101,7 +101,7 @@ def test_half_network_gone(self): ) for pipe in problem.energy_system_components.get("heat_pipe", []): - if results[f"{pipe}__hn_diameter"] == 0.0: + if results[f"{pipe}__hn_diameter"] <= 1e-15: # TODO: At the moment it is so that a pipe which is not placed (diameter == 0.) can # have head loss since there is an equivalent solution where simultaniously the # is_disconnected variable is also true disabling the head_loss constraints. From 16f8ebeef5134d42be27e6e394139560618dba93 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:42:00 +0200 Subject: [PATCH 209/275] Identify insufficient installed capacity, log and exit run (#147) * Identify insufficient installed capacity, log and exit run * Update installed capacity in existing test case * Add potential error to logger * Add cold_demand installed capacity check as well * Uptdate utils, and use in new test cases * Add new tests --- src/mesido/esdl/esdl_mixin.py | 2 +- src/mesido/esdl/profile_parser.py | 24 +- src/mesido/workflows/grow_workflow.py | 21 ++ .../model/1a_with_influx_profiles.esdl | 6 +- .../1a_with_influx_profiles_error_check.esdl | 172 +++++++++++ .../models/wko/model/LT_wko_error_check.esdl | 271 ++++++++++++++++++ tests/models/wko/src/example.py | 31 ++ tests/test_cold_demand.py | 46 +++ tests/test_end_scenario_sizing.py | 5 +- tests/test_profile_parsing.py | 51 ++++ tests/utils_test_scaling.py | 6 +- 11 files changed, 624 insertions(+), 11 deletions(-) create mode 100644 tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check.esdl create mode 100644 tests/models/wko/model/LT_wko_error_check.esdl diff --git a/src/mesido/esdl/esdl_mixin.py b/src/mesido/esdl/esdl_mixin.py index f5ebb6750..a120096aa 100644 --- a/src/mesido/esdl/esdl_mixin.py +++ b/src/mesido/esdl/esdl_mixin.py @@ -535,7 +535,7 @@ def read(self) -> None: energy_system_components = self.energy_system_components esdl_carriers = self.esdl_carriers io = self.io - self.__profile_reader.read_profiles( + self._asset_potential_errors = self.__profile_reader.read_profiles( energy_system_components=energy_system_components, io=io, esdl_asset_id_to_name_map=self.esdl_asset_id_to_name_map, diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index c06c731d2..ac4d55808 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -100,10 +100,19 @@ def read_profiles( zip(esdl_asset_id_to_name_map.values(), esdl_asset_id_to_name_map.keys()) ) + # Define variable containing potential error information + asset_potential_errors = { + "heat_demand.power": {}, # error type, heat demand name, error message + "cold_demand.power": {}, # error type, cold demand name, error message + } + for ensemble_member in range(ensemble_size): for component_type, var_name in self.component_type_to_var_name_map.items(): for component in energy_system_components.get(component_type, []): profile = self._profiles[ensemble_member].get(component + var_name, None) + asset_power = esdl_assets[esdl_asset_names_to_ids[component]].attributes[ + "power" + ] if profile is not None: values = profile else: @@ -114,9 +123,6 @@ def read_profiles( f"No profile provided for {component=} and " f"{ensemble_member=}, using the assets power value instead" ) - asset_power = esdl_assets[esdl_asset_names_to_ids[component]].attributes[ - "power" - ] values = np.array([asset_power] * len(self._reference_datetimes)) io.set_timeseries( @@ -125,6 +131,17 @@ def read_profiles( values=values, ensemble_member=ensemble_member, ) + # Check if that the installed heat/cool demand capacity is sufficient + if component_type in ["heat_demand", "cold_demand"]: + max_profile_value = max(values) + if asset_power < max_profile_value: + asset_potential_errors[f"{component_type}.power"][component] = ( + f"{component}: The installed capacity of" + f" {round(asset_power / 1.0e6, 3)}MW should be larger than the" + " maximum of the heat demand profile " + f"{round(max_profile_value / 1.0e6, 3)}MW" + ) + for properties in carrier_properties.values(): carrier_name = properties["name"] profile = self._profiles[ensemble_member].get( @@ -140,6 +157,7 @@ def read_profiles( values=profile, ensemble_member=ensemble_member, ) + return asset_potential_errors def _load_profiles_from_source( self, diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 9ed199da8..b092a9fe2 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -160,6 +160,8 @@ def __init__(self, *args, **kwargs): self._save_json = False + self._asset_potential_errors = dict() + def parameters(self, ensemble_member): parameters = super().parameters(ensemble_member) parameters["peak_day_index"] = self.__indx_max_peak @@ -179,6 +181,25 @@ def read(self): """ super().read() + # Error checking: + # - installed capacity/power of a heating/cooling demand is sufficient for the specified + # demand profile + is_error = False + for error_type, errors in self._asset_potential_errors.items(): + if error_type in ["heat_demand.power", "cold_demand.power"]: + if len(errors) > 0: + for asset_name in errors: + logger.error(self._asset_potential_errors[error_type][asset_name]) + logger.error( + "Asset insufficient installed capacity: please increase the" + " installed power or reduce the demand profile peak value of the demand(s)" + " listed." + ) + is_error = True + if is_error: + exit(1) + # end error checking + ( self.__indx_max_peak, self.__heat_demand_nominal, diff --git a/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles.esdl b/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles.esdl index 8745c9228..e24211ed3 100644 --- a/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles.esdl +++ b/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles.esdl @@ -17,7 +17,7 @@ - + @@ -26,7 +26,7 @@ - + @@ -126,7 +126,7 @@ - + diff --git a/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check.esdl b/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check.esdl new file mode 100644 index 000000000..afcb33e10 --- /dev/null +++ b/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check.esdl @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/wko/model/LT_wko_error_check.esdl b/tests/models/wko/model/LT_wko_error_check.esdl new file mode 100644 index 000000000..2c2f72be7 --- /dev/null +++ b/tests/models/wko/model/LT_wko_error_check.esdl @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/wko/src/example.py b/tests/models/wko/src/example.py index dfeb9ccc6..6965b34fd 100644 --- a/tests/models/wko/src/example.py +++ b/tests/models/wko/src/example.py @@ -1,3 +1,5 @@ +import logging + import casadi as ca from mesido.esdl.esdl_mixin import ESDLMixin @@ -19,6 +21,9 @@ from rtctools.optimization.timeseries import Timeseries from rtctools.util import run_optimization_problem +logger = logging.getLogger("WarmingUP-MPC") +logger.setLevel(logging.INFO) + class TargetDemandGoal(Goal): """ @@ -157,6 +162,32 @@ def __init__(self, *args, **kwargs): self.heat_network_settings["head_loss_option"] = HeadLossOption.NO_HEADLOSS self.heat_network_settings["minimum_velocity"] = 0.0 + def read(self): + """ + Reads the yearly profile with hourly time steps and adapt to a daily averaged profile + except for the day with the peak demand. + """ + super().read() + + # Error checking: + # - installed capacity/power of a heating/cooling demand is sufficient for the specified + # demand profile + is_error = False + for error_type, errors in self._asset_potential_errors.items(): + if error_type in ["heat_demand.power", "cold_demand.power"]: + if len(errors) > 0: + for asset_name in errors: + logger.error(self._asset_potential_errors[error_type][asset_name]) + logger.error( + "Asset insufficient installed capacity: please increase the" + " installed power or reduce the demand profile peak value of the demand(s)" + " listed." + ) + is_error = True + if is_error: + exit(1) + # end error checking + def path_goals(self): """ This function adds the minimization goal for minimizing the milp production. diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 222e174dc..6fa393883 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -7,10 +7,54 @@ import numpy as np +from utils_test_scaling import create_log_list_scaling + from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test class TestColdDemand(TestCase): + + def test_insufficient_capacity(self): + """ + This test checks that the error checks in the code for sufficient installed cool/heatig + capacity of a cold/heat demand is sufficient (grow_workflow not used) + + Checks: + 1. SystemExit is raised + 2. That the error is due to insufficient heat/cold specified capacities + + """ + import models.wko.src.example as example + from models.wko.src.example import HeatProblem + + logger, logs_list = create_log_list_scaling("WarmingUP-MPC") + + base_folder = Path(example.__file__).resolve().parent.parent + + with self.assertRaises(SystemExit) as cm: + _ = run_esdl_mesido_optimization( + HeatProblem, + base_folder=base_folder, + esdl_file_name="LT_wko_error_check.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + # Is SystemExit is raised + np.testing.assert_array_equal(cm.exception.code, 1) + + # Check that the heat & cold demand had an error + np.testing.assert_equal( + logs_list[0].msg == "HeatingDemand_9b90: The installed capacity of 0.05MW should be" + " larger than the maximum of the heat demand profile 0.15MW", + True, + ) + np.testing.assert_equal( + logs_list[2].msg == "CoolingDemand_15e8: The installed capacity of 0.05MW should be" + " larger than the maximum of the heat demand profile 0.15MW", + True, + ) + def test_cold_demand(self): """ This test is to check the basic physics for a network which includes cold demand. In this @@ -208,4 +252,6 @@ def energy_system_options(self): if __name__ == "__main__": test_cold_demand = TestColdDemand() + test_cold_demand.test_insufficient_capacity() + test_cold_demand.test_cold_demand() test_cold_demand.test_wko() diff --git a/tests/test_end_scenario_sizing.py b/tests/test_end_scenario_sizing.py index 6b5840d67..72facd9dc 100644 --- a/tests/test_end_scenario_sizing.py +++ b/tests/test_end_scenario_sizing.py @@ -341,6 +341,9 @@ def test_end_scenario_sizing_head_loss(self): start_time = time.time() a = TestEndScenarioSizing() - # a.test_end_scenario_sizing() + a.setUpClass() + a.test_end_scenario_sizing() + a.test_end_scenario_sizing_staged() + a.test_end_scenario_sizing_discounted() a.test_end_scenario_sizing_head_loss() print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index a8980a8a7..2005c9962 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -13,6 +13,8 @@ import pandas as pd +from utils_test_scaling import create_log_list_scaling + class MockInfluxDBProfileReader(InfluxDBProfileReader): def __init__(self, energy_system: esdl.EnergySystem, file_path: Optional[Path]): @@ -28,6 +30,54 @@ def _load_profile_timeseries_from_database(self, profile: esdl.InfluxDBProfile) class TestProfileLoading(unittest.TestCase): + def test_insufficient_capacity(self): + """ + This test checks that the error checks in the code for sufficient installed cool/heatig + capacity of a cold/heat demand is sufficient (grow_workflow) + + Checks: + 1. SystemExit is raised + 2. That the error is due to insufficient heat specified capacities + """ + import models.unit_cases.case_1a.src.run_1a as run_1a + + base_folder = Path(run_1a.__file__).resolve().parent.parent + model_folder = base_folder / "model" + input_folder = base_folder / "input" + + logger, logs_list = create_log_list_scaling("WarmingUP-MPC") + + with self.assertRaises(SystemExit) as cm: + problem = EndScenarioSizingStagedHIGHS( + esdl_parser=ESDLFileParser, + base_folder=base_folder, + model_folder=model_folder, + input_folder=input_folder, + esdl_file_name="1a_with_influx_profiles_error_check.esdl", + profile_reader=MockInfluxDBProfileReader, + input_timeseries_file="influx_mock.csv", + ) + problem.pre() + # Is SystemExit is raised + np.testing.assert_array_equal(cm.exception.code, 1) + + # Check that the heat demand had an error + np.testing.assert_equal( + logs_list[0].msg == "HeatingDemand_2ab9: The installed capacity of 6.0MW should be" + " larger than the maximum of the heat demand profile 5175.717MW", + True, + ) + np.testing.assert_equal( + logs_list[1].msg == "HeatingDemand_506c: The installed capacity of 2.0MW should be" + " larger than the maximum of the heat demand profile 1957.931MW", + True, + ) + np.testing.assert_equal( + logs_list[2].msg == "HeatingDemand_6662: The installed capacity of 2.0MW should be" + " larger than the maximum of the heat demand profile 1957.931MW", + True, + ) + def test_loading_from_influx(self): """ This test checks if loading an ESDL with influxDB profiles works. Since @@ -183,6 +233,7 @@ def test_loading_from_csv_with_influx_profiles_given(self): if __name__ == "__main__": # unittest.main() a = TestProfileLoading() + a.test_insufficient_capacity() a.test_loading_from_influx() a.test_loading_from_csv() a.test_loading_from_xml() diff --git a/tests/utils_test_scaling.py b/tests/utils_test_scaling.py index a4c2508da..6362d4ce8 100644 --- a/tests/utils_test_scaling.py +++ b/tests/utils_test_scaling.py @@ -5,7 +5,7 @@ from rtctools._internal.debug_check_helpers import DebugLevel -def create_log_list_scaling(): +def create_log_list_scaling(logger_name): """ Creation of a list for the logs which will be filled with the logging information of the problem. @@ -26,7 +26,7 @@ def emit(self, record): logs_list = [] - logger = logging.getLogger("rtctools") + logger = logging.getLogger(logger_name) logger.setLevel(logging.INFO) logger.addHandler(LogRecordsListHandler(logs_list)) @@ -44,7 +44,7 @@ def create_problem_with_debug_info(problem_class): The problem class including its debuglevel and the logging list and logger. """ # TODO: currently only the default settings can be used to check the scaling. - logger, logs_list = create_log_list_scaling() + logger, logs_list = create_log_list_scaling("rtctools") class ProblemClassScaling(problem_class): _debug_check_level = DebugLevel.VERYHIGH From 464471002fa0285261411adb3dd57c9ed34078da Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:49:16 +0200 Subject: [PATCH 210/275] Starting point (#148) * Starting with changelog file to give info of code changes --- CHANGELOG.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..47cc03af3 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,23 @@ +# [Unreleased] - 2024-08-16 + +## Added +- xxxx + +## Changed +- xxxx + +## Fixed +- xxxx + +# [0.1.7] - 2024-08-16 + +## Added +- xxxx + +## Changed +- xxxx + +## Fixed +- xxxx + + From d7972074f600abdcc5b67b4d41fa9f97a82557b9 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Tue, 20 Aug 2024 15:25:15 +0200 Subject: [PATCH 211/275] Logical links (#138) Conversion of logical links in ESDL between assets, without a pipe or cable (transport assets) connected in between can now also be used in MESIDO. The connection of assets with logical links, does not have equalities between the ports for head, hydraulic power and voltage as those are linked to transport assets. The retry loop in the esdl_model_base.py has also been replaced, now first all transport assets are added before other assets are created. Tests have been included. --------- Co-authored-by: Rojer --- CHANGELOG.md | 6 +- src/mesido/asset_sizing_mixin.py | 6 + src/mesido/component_type_mixin.py | 231 +++++----- src/mesido/esdl/asset_to_component_base.py | 402 +++++++++++++----- src/mesido/esdl/esdl_heat_model.py | 113 ++--- src/mesido/esdl/esdl_mixin.py | 3 +- src/mesido/esdl/esdl_model_base.py | 202 +++++++-- src/mesido/financial_mixin.py | 65 +++ src/mesido/gas_physics_mixin.py | 11 - src/mesido/heat_physics_mixin.py | 4 + .../milp/electricity/electricity_base.py | 2 +- .../component_library/milp/gas/compressor.py | 7 + .../component_library/milp/gas/gas_base.py | 1 - .../component_library/milp/gas/gas_demand.py | 2 + .../component_library/milp/gas/gas_pipe.py | 2 - .../component_library/milp/gas/gas_source.py | 2 + .../milp/gas/gas_substation.py | 7 + .../milp/gas/gas_tank_storage.py | 2 + src/mesido/pycml/model_base.py | 39 ++ src/mesido/util.py | 2 +- .../model/emerge_with_logical_links.esdl | 87 ++++ tests/models/emerge/src/example.py | 2 +- tests/models/heatpump/src/run_heat_pump.py | 2 +- ...ourcesink_with_node2node_logical_link.esdl | 111 +++++ .../model/Electric_bus4_logical_links.esdl | 33 ++ .../bus_networks/src/example.py | 2 +- .../input/timeseries_electrolyzer_general.csv | 2 +- .../electrolyzer/src/example.py | 2 + .../model/test_logical_links.esdl | 36 ++ .../multi_demand_source_node/src/run_test.py | 14 +- .../model/split_with_logical_link.esdl | 59 +++ tests/test_heat.py | 2 +- tests/test_logical_links.py | 197 +++++++++ tests/test_multicommodity.py | 9 +- tests/test_warmingup_unit_cases.py | 2 +- tests/utils_tests.py | 5 +- 36 files changed, 1311 insertions(+), 363 deletions(-) create mode 100644 tests/models/emerge/model/emerge_with_logical_links.esdl create mode 100644 tests/models/source_pipe_split_sink/model/sourcesink_with_node2node_logical_link.esdl create mode 100644 tests/models/unit_cases_electricity/bus_networks/model/Electric_bus4_logical_links.esdl create mode 100644 tests/models/unit_cases_gas/multi_demand_source_node/model/test_logical_links.esdl create mode 100644 tests/models/unit_cases_gas/source_pipe_split_sink/model/split_with_logical_link.esdl create mode 100644 tests/test_logical_links.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 47cc03af3..91ca42133 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,10 @@ -# [Unreleased] - 2024-08-16 +# [Unreleased] - 2024-08-20 ## Added -- xxxx +- Functionality to connect assets with logical links ## Changed -- xxxx +- Replaced Retry loop to connect all assets and apply the correct modifiers of the linked assets ## Fixed - xxxx diff --git a/src/mesido/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py index e5d851262..8b9a0b60a 100644 --- a/src/mesido/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -879,32 +879,38 @@ def _make_max_size_var(name, lb, ub, nominal): for asset_name in self.energy_system_components.get("gas_tank_storage", []): ub = bounds[f"{asset_name}.Stored_gas_mass"][1] + ub = ub if isinstance(ub, float) else max(ub.values) lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) for asset_name in self.energy_system_components.get("gas_substation", []): ub = bounds[f"{asset_name}.GasIn.Q"][1] + ub = ub if isinstance(ub, float) else max(ub.values) lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) for asset_name in self.energy_system_components.get("compressor", []): ub = bounds[f"{asset_name}.GasIn.Q"][1] + ub = ub if isinstance(ub, float) else max(ub.values) lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) for asset_name in self.energy_system_components.get("electrolyzer", []): ub = bounds[f"{asset_name}.ElectricityIn.Power"][1] + ub = ub if isinstance(ub, float) else max(ub.values) lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) for asset_name in self.energy_system_components.get("electricity_demand", []): v = bounds[f"{asset_name}.Electricity_demand"][1] ub = v if not np.isinf(v) else bounds[f"{asset_name}.ElectricityIn.Power"][1] + ub = ub if isinstance(ub, float) else max(ub.values) lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) for asset_name in self.energy_system_components.get("transformer", []): ub = bounds[f"{asset_name}.ElectricityIn.Power"][1] + ub = ub if isinstance(ub, float) else max(ub.values) lb = 0.0 if parameters[f"{asset_name}.state"] == 2 else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) diff --git a/src/mesido/component_type_mixin.py b/src/mesido/component_type_mixin.py index 5b6437085..8c0d2a3ec 100644 --- a/src/mesido/component_type_mixin.py +++ b/src/mesido/component_type_mixin.py @@ -5,6 +5,8 @@ from mesido.heat_network_common import NodeConnectionDirection from mesido.topology import Topology +import numpy as np + from pymoca.backends.casadi.alias_relation import AliasRelation logger = logging.getLogger("mesido") @@ -34,46 +36,62 @@ def pre(self): gas_nodes = components.get("gas_node", []) buffers = components.get("heat_buffer", []) atess = [*components.get("ates", []), *components.get("low_temperature_ates", [])] - try: - pipes = components["heat_pipe"] - cables = components.get("electricity_cable", []) - gas_pipes = components.get("gas_pipe", []) - except KeyError: - try: - cables = components["electricity_cable"] - gas_pipes = components.get("gas_pipe", []) - pipes = [] - except KeyError: - try: - cables = [] - gas_pipes = components["gas_pipe"] - pipes = [] - except KeyError: - logger.error( - "A valid network should have at least one pipe/cable, " - "assets cannot be connected directly" - ) + pipes = components.get("heat_pipe", []) + + # An energy system should have at least one asset. + assert len(components) > 1 # Figure out which pipes are connected to which nodes, which pipes # are connected in series, and which pipes are connected to which buffers. pipes_set = set(pipes) - cables_set = set(cables) - gas_pipes_set = set(gas_pipes) parameters = [self.parameters(e) for e in range(self.ensemble_size)] node_connections = {} bus_connections = {} gas_node_connections = {} - # Figure out if we are dealing with a Heat model, or a QTH model - try: - if len(pipes): - _ = self.variable(f"{pipes[0]}.HeatIn.Heat") - heat_network_model_type = "Heat" - else: - heat_network_model_type = "Heat" - except KeyError: - heat_network_model_type = "QTH" + heat_network_model_type = "Heat" + + # Note that a pipe series can include both hot and cold pipes for + # QTH models. It is only about figuring out which pipes are + # related direction-wise. + # For Heat models, only hot pipes are allowed to be part of pipe + # series, as the cold part is zero milp by construction. + if heat_network_model_type == "QTH": + alias_relation = self.alias_relation + elif heat_network_model_type == "Heat": + # There is no proper AliasRelation yet (because there is milp loss in pipes). + # So we build one, as that is the easiest way to figure out which pipes are + # connected to each other in series. We do this by making a temporary/shadow + # discharge (".Q") variable per pipe, as that way we can share the processing + # logic for determining pipe series with that of QTH models. + alias_relation = AliasRelation() + + # Look for aliases only in the hot pipes. All cold pipes are zero by convention anyway. + hot_pipes = self.hot_pipes.copy() + + pipes_map = {f"{pipe}.HeatIn.Heat": pipe for pipe in hot_pipes} + pipes_map.update({f"{pipe}.HeatOut.Heat": pipe for pipe in hot_pipes}) + + for p in hot_pipes: + for port in ["In", "Out"]: + heat_port = f"{p}.Heat{port}.Heat" + connected = self.alias_relation.aliases(heat_port).intersection( + pipes_map.keys() + ) + connected.remove(heat_port) + + if connected: + other_pipe_port = next(iter(connected)) + if other_pipe_port.endswith(f".Heat{port}.Heat"): + sign_prefix = "-" + else: + sign_prefix = "" + other_pipe = pipes_map[other_pipe_port] + if f"{other_pipe}.Q" not in alias_relation.canonical_variables: + alias_relation.add(f"{p}.Q", f"{sign_prefix}{other_pipe}.Q") + + node_to_node_logical_link_map = {} for n in [*nodes, *busses, *gas_nodes]: n_connections = [ens_params[f"{n}.n"] for ens_params in parameters] @@ -99,91 +117,106 @@ def pre(self): if n in nodes: cur_port = f"{n}.{heat_network_model_type}Conn[{i + 1}]" prop = "T" if heat_network_model_type == "QTH" else "Heat" + prop_h = "H" in_suffix = ".QTHIn.T" if heat_network_model_type == "QTH" else ".HeatIn.Heat" out_suffix = ( ".QTHOut.T" if heat_network_model_type == "QTH" else ".HeatOut.Heat" ) + in_suffix_h = ".HeatIn.H" + out_suffix_h = ".HeatOut.H" + node_suffix = ".HeatConn[1].Heat" elif n in busses: cur_port = f"{n}.ElectricityConn[{i + 1}]" prop = "Power" + prop_h = "V" in_suffix = ".ElectricityIn.Power" out_suffix = ".ElectricityOut.Power" + in_suffix_h = ".ElectricityIn.V" + out_suffix_h = ".ElectricityOut.V" + node_suffix = ".ElectricityConn[1].Power" elif n in gas_nodes: # TODO: Ideally a temporary variable would be created to make the connections # map that is not passed to the problem cur_port = f"{n}.GasConn[{i + 1}]" - prop = "Q_shadow" - in_suffix = ".GasIn.Q_shadow" - out_suffix = ".GasOut.Q_shadow" + prop = "Q" + prop_h = "H" + in_suffix = ".GasIn.Q" + out_suffix = ".GasOut.Q" + in_suffix_h = ".GasIn.H" + out_suffix_h = ".GasOut.H" + node_suffix = ".GasConn[1].Q" aliases = [ x for x in self.alias_relation.aliases(f"{cur_port}.{prop}") if not x.startswith(n) and x.endswith(f".{prop}") ] - if len(aliases) > 1: - raise Exception(f"More than one connection to {cur_port}") - elif len(aliases) == 0: + if len(aliases) == 0: raise Exception(f"Found no connection to {cur_port}") - if aliases[0].endswith(out_suffix): - pipe_w_orientation = ( + # Here we make a count of the amount of in and out port aliases. + in_suffix_count = np.sum([1 if x.endswith(in_suffix) else 0 for x in aliases]) + out_suffix_count = np.sum([1 if x.endswith(out_suffix) else 0 for x in aliases]) + + # Here we gather the aliases for a property that is equal for all node ports. + aliases_h = [ + x + for x in self.alias_relation.aliases(f"{cur_port}.{prop_h}") + if not x.startswith(n) and x.endswith(f".{prop_h}") + ] + pipe_out_port = False + # We can have multiple aliases, specifically when a pipe is connected to a port the + # direction of that pipe matters. To determine if the connected alias is a pipe and + # which direction it has we look for the overlap between the prop and prop_h in the + # aliases. This means that if a pipe is both in the aliases and in the aliases_h, + # then that must be the pipe connected to the port of the node. + for k in range(len(aliases)): + pipe_name = aliases[k].split(".")[0] + if pipe_name + out_suffix_h in aliases_h: + pipe_out_port = True + node_connection_direction = NodeConnectionDirection.IN + elif pipe_name + in_suffix_h in aliases_h: + pipe_out_port = True + node_connection_direction = NodeConnectionDirection.OUT + + if pipe_out_port: + # This is only for when a pipe is connected to a gas node to determine direction + asset_w_orientation = ( + pipe_name, + node_connection_direction, + ) + elif out_suffix_count > in_suffix_count: + # This is for the case of Non pipe asset is logically linked to a node + asset_w_orientation = ( aliases[0][: -len(out_suffix)], NodeConnectionDirection.IN, ) - else: - assert aliases[0].endswith(in_suffix) - pipe_w_orientation = ( + elif out_suffix_count < in_suffix_count: + # This is for the case of Non pipe asset is logically linked to a node + asset_w_orientation = ( aliases[0][: -len(in_suffix)], NodeConnectionDirection.OUT, ) + elif out_suffix_count == in_suffix_count: + # This is for the case of logical links between node to node + # Note that we cannot determine the direction of node to node logical links, we + # therefore, always take the first node with an in port and the second node with + # and out port. + if n not in list(node_to_node_logical_link_map.values()): + node_to_node_logical_link_map[n] = aliases[0][: -len(node_suffix)] + asset_w_orientation = ( + aliases[0][: -len(node_suffix)], + NodeConnectionDirection.IN, + ) + else: + asset_w_orientation = ( + aliases[0][: -len(node_suffix)], + NodeConnectionDirection.OUT, + ) + else: + logger.error("connections are not properly matched") - assert ( - pipe_w_orientation[0] in pipes_set - or pipe_w_orientation[0] in cables_set - or pipe_w_orientation[0] in gas_pipes_set - ) - - connected_pipes[i] = pipe_w_orientation - - # Note that a pipe series can include both hot and cold pipes for - # QTH models. It is only about figuring out which pipes are - # related direction-wise. - # For Heat models, only hot pipes are allowed to be part of pipe - # series, as the cold part is zero milp by construction. - if heat_network_model_type == "QTH": - alias_relation = self.alias_relation - elif heat_network_model_type == "Heat": - # There is no proper AliasRelation yet (because there is milp loss in pipes). - # So we build one, as that is the easiest way to figure out which pipes are - # connected to each other in series. We do this by making a temporary/shadow - # discharge (".Q") variable per pipe, as that way we can share the processing - # logic for determining pipe series with that of QTH models. - alias_relation = AliasRelation() - - # Look for aliases only in the hot pipes. All cold pipes are zero by convention anyway. - hot_pipes = self.hot_pipes.copy() - - pipes_map = {f"{pipe}.HeatIn.Heat": pipe for pipe in hot_pipes} - pipes_map.update({f"{pipe}.HeatOut.Heat": pipe for pipe in hot_pipes}) - - for p in hot_pipes: - for port in ["In", "Out"]: - heat_port = f"{p}.Heat{port}.Heat" - connected = self.alias_relation.aliases(heat_port).intersection( - pipes_map.keys() - ) - connected.remove(heat_port) - - if connected: - other_pipe_port = next(iter(connected)) - if other_pipe_port.endswith(f".Heat{port}.Heat"): - sign_prefix = "-" - else: - sign_prefix = "" - other_pipe = pipes_map[other_pipe_port] - if f"{other_pipe}.Q" not in alias_relation.canonical_variables: - alias_relation.add(f"{p}.Q", f"{sign_prefix}{other_pipe}.Q") + connected_pipes[i] = asset_w_orientation canonical_pipe_qs = {p: alias_relation.canonical_signed(f"{p}.Q") for p in pipes} # Move sign from canonical to alias @@ -225,25 +258,25 @@ def pre(self): out_suffix = ".QTHOut.T" if heat_network_model_type == "QTH" else ".HeatOut.Heat" alias = aliases[0] if alias.endswith(out_suffix): - pipe_w_orientation = ( + asset_w_orientation = ( alias[: -len(out_suffix)], NodeConnectionDirection.IN, ) else: assert alias.endswith(in_suffix) - pipe_w_orientation = ( + asset_w_orientation = ( alias[: -len(in_suffix)], NodeConnectionDirection.OUT, ) - assert pipe_w_orientation[0] in pipes_set + assert asset_w_orientation[0] in pipes_set if k == "In": - assert self.is_hot_pipe(pipe_w_orientation[0]) + assert self.is_hot_pipe(asset_w_orientation[0]) else: - assert self.is_cold_pipe(pipe_w_orientation[0]) + assert self.is_cold_pipe(asset_w_orientation[0]) - buffer_connections[b].append(pipe_w_orientation) + buffer_connections[b].append(asset_w_orientation) buffer_connections[b] = tuple(buffer_connections[b]) @@ -270,25 +303,25 @@ def pre(self): out_suffix = ".QTHOut.T" if heat_network_model_type == "QTH" else ".HeatOut.Heat" if aliases[0].endswith(out_suffix): - pipe_w_orientation = ( + asset_w_orientation = ( aliases[0][: -len(out_suffix)], NodeConnectionDirection.IN, ) else: assert aliases[0].endswith(in_suffix) - pipe_w_orientation = ( + asset_w_orientation = ( aliases[0][: -len(in_suffix)], NodeConnectionDirection.OUT, ) - assert pipe_w_orientation[0] in pipes_set + assert asset_w_orientation[0] in pipes_set if k == "Out": - assert self.is_cold_pipe(pipe_w_orientation[0]) + assert self.is_cold_pipe(asset_w_orientation[0]) else: - assert self.is_hot_pipe(pipe_w_orientation[0]) + assert self.is_hot_pipe(asset_w_orientation[0]) - ates_connections[a].append(pipe_w_orientation) + ates_connections[a].append(asset_w_orientation) ates_connections[a] = tuple(ates_connections[a]) diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index a082a4e90..0225cf55e 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -5,11 +5,14 @@ from pathlib import Path from typing import Any, Dict, Tuple, Type, Union +import CoolProp as cP + import esdl from esdl import TimeUnitEnum, UnitEnum from mesido.esdl._exceptions import _RetryLaterException from mesido.esdl.common import Asset +from mesido.network_common import NetworkSettings from mesido.pycml import Model as _Model @@ -42,6 +45,79 @@ } +def get_internal_energy(asset_name, carrier): + # The default of 20°C is also used in the head_loss_class. Thus, when updating ensure it + # is also updated in the head_loss_class. + temperature = 20.0 + + if NetworkSettings.NETWORK_TYPE_GAS in carrier.name: + internal_energy = cP.CoolProp.PropsSI( + "U", + "T", + 273.15 + temperature, + "P", + carrier.pressure * 1.0e5, + NetworkSettings.NETWORK_COMPOSITION_GAS, + ) + elif NetworkSettings.NETWORK_TYPE_HYDROGEN in carrier.name: + internal_energy = cP.CoolProp.PropsSI( + "U", + "T", + 273.15 + temperature, + "P", + carrier.pressure * 1.0e5, + str(NetworkSettings.NETWORK_TYPE_HYDROGEN).upper(), + ) + else: + logger.warning( + f"Neither gas or hydrogen was used in the carrier " f"name of pipe {asset_name}" + ) + internal_energy = 46.0e6 # natural gas at about 8 bar + return internal_energy # we use gram per second and coolprop gives results in kJ per kg + + +def get_density(asset_name, carrier): + # TODO: gas carrier temperature still needs to be resolved. + # The default of 20°C is also used in the head_loss_class. Thus, when updating ensure it + # is also updated in the head_loss_class. + temperature = 20.0 + + if NetworkSettings.NETWORK_TYPE_GAS in carrier.name: + density = cP.CoolProp.PropsSI( + "D", + "T", + 273.15 + temperature, + "P", + carrier.pressure * 1.0e5, + NetworkSettings.NETWORK_COMPOSITION_GAS, + ) + elif NetworkSettings.NETWORK_TYPE_HYDROGEN in carrier.name: + density = cP.CoolProp.PropsSI( + "D", + "T", + 273.15 + temperature, + "P", + carrier.pressure * 1.0e5, + str(NetworkSettings.NETWORK_TYPE_HYDROGEN).upper(), + ) + elif NetworkSettings.NETWORK_TYPE_HEAT in carrier.name: + density = cP.CoolProp.PropsSI( + "D", + "T", + 273.15 + temperature, + "P", + 16.0e5, + "INCOMP::Water", + ) + return density # to convert from kg/m3 + else: + logger.warning( + f"Neither water, gas or hydrogen was used in the carrier " f"name of pipe {asset_name}" + ) + density = 6.2 # natural gas at about 8 bar + return density * 1.0e3 # to convert from kg/m3 to g/m3 + + class _AssetToComponentBase: # A map of pipe class name to edr asset in _edr_pipes.json STEEL_S1_PIPE_EDR_ASSETS = { @@ -116,6 +192,8 @@ class _AssetToComponentBase: primary_port_name_convention = "primary" secondary_port_name_convention = "secondary" + __power_keys = ["power", "maxDischargeRate", "maxChargeRate"] + def __init__(self, **kwargs): """ In this init we initialize some dicts and we load the edr pipes. @@ -136,6 +214,25 @@ def convert(self, asset: Asset) -> Tuple[Type[_Model], MODIFIERS]: With more descriptive variable names the return type would be: Tuple[pycml_heat_component_type, Dict[component_attribute, new_attribute_value]] """ + + dispatch_method_name = f"convert_{self.component_map[asset.asset_type]}" + return getattr(self, dispatch_method_name)(asset) + + def port_asset_type_connections(self, asset): + """ + Here we populate a map between ports and asset types that we need before we can convert + the individual assets. This is because for the parsing of some assets we need to know if + they are connected to a certain type of asset, like a is disconnectable depending on which + asset type it is connected. + + Parameters + ---------- + asset : Asset pipe object with it's properties from ESDL + + Returns + ------- + None + """ ports = [] if asset.in_ports is not None: ports.extend(asset.in_ports) @@ -146,9 +243,6 @@ def convert(self, asset: Asset) -> Tuple[Type[_Model], MODIFIERS]: for port in ports: self._port_to_esdl_component_type[port] = asset.asset_type - dispatch_method_name = f"convert_{self.component_map[asset.asset_type]}" - return getattr(self, dispatch_method_name)(asset) - def _pipe_get_diameter_and_insulation(self, asset: Asset) -> Tuple[float, list, list]: """ There are multiple ways to specify pipe properties like inner-diameter and @@ -355,28 +449,55 @@ def _set_electricity_current_nominal_and_max( pass def _get_connected_q_max(self, asset: Asset) -> float: - if asset.in_ports is None or asset.asset_type == "Electrolyzer": - connected_port = asset.out_ports[0].connectedTo[0] - q_max = self._port_to_q_max.get(connected_port, None) - if q_max is not None: - self._set_q_nominal(asset, q_max) - return q_max - else: - raise _RetryLaterException( - f"Could not determine max discharge for {asset.asset_type} '{asset.name}'" + if asset.in_ports is not None and asset.asset_type != "Electrolyzer": + for port in asset.in_ports: + connected_port = port.connectedTo[0] + q_max = ( + self._port_to_q_max.get(connected_port, None) + if self._port_to_q_max.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + / ( + get_density(asset.name, port.carrier) + * get_internal_energy(asset.name, port.carrier) + / 1.0e3 + ) ) - elif asset.out_ports is None: - connected_port = asset.in_ports[0].connectedTo[0] - q_max = self._port_to_q_max.get(connected_port, None) - if q_max is not None: - self._set_q_max(asset, q_max) - return q_max - else: - raise _RetryLaterException( - f"Could not determine max discharge for {asset.asset_type} '{asset.name}'" + if q_max is not None: + self._set_q_max(asset, q_max) + return q_max + else: + logger.error( + f"Tried to get the maximum flow for {asset.name}, however this was never " + f"set" + ) + elif asset.out_ports is not None: + for port in asset.out_ports: + connected_port = port.connectedTo[0] + q_max = ( + self._port_to_q_max.get(connected_port, None) + if self._port_to_q_max.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + / ( + get_density(asset.name, port.carrier) + * get_internal_energy(asset.name, port.carrier) + / 1.0e3 + ) ) + if q_max is not None: + self._set_q_max(asset, q_max) + return q_max + else: + logger.error( + f"Tried to get the maximum flow for {asset.name}, however this was never " + f"set" + ) + else: + logger.error( + f"Tried to get the maximum flow for {asset.name}, however this was never set" + ) def _get_connected_i_nominal_and_max(self, asset: Asset) -> Tuple[float, float]: + if ( asset.in_ports is not None and asset.out_ports is not None @@ -386,32 +507,56 @@ def _get_connected_i_nominal_and_max(self, asset: Asset) -> Tuple[float, float]: and isinstance(asset.out_ports[0].carrier, esdl.ElectricityCommodity) ): # Transformer connected_port = asset.out_ports[0].connectedTo[0] - i_max_out = self._port_to_i_max.get(connected_port, None) - i_nom_out = self._port_to_i_nominal.get(connected_port, None) + i_max_out = ( + self._port_to_i_max.get(connected_port, None) + if self._port_to_i_max.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + ) + i_nom_out = ( + self._port_to_i_nominal.get(connected_port, None) + if self._port_to_i_nominal.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + ) connected_port = asset.in_ports[0].connectedTo[0] - i_max_in = self._port_to_i_max.get(connected_port, None) - i_nom_in = self._port_to_i_nominal.get(connected_port, None) - if i_nom_in is not None and i_nom_out is not None: + i_max_in = ( + self._port_to_i_max.get(connected_port, None) + if self._port_to_i_max.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + ) + i_nom_in = ( + self._port_to_i_nominal.get(connected_port, None) + if self._port_to_i_nominal.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + ) + if i_nom_in > 0.0 and i_nom_out > 0.0: self._port_to_i_nominal[asset.in_ports[0]] = i_nom_in self._port_to_i_max[asset.in_ports[0]] = i_max_in self._port_to_i_nominal[asset.out_ports[0]] = i_nom_out self._port_to_i_max[asset.out_ports[0]] = i_max_out return i_max_in, i_nom_in, i_max_out, i_nom_out else: - raise _RetryLaterException( + raise logger.error( f"Could not determine max and nominal current for {asset.asset_type}" " '{asset.name}'" ) elif asset.in_ports is None: connected_port = asset.out_ports[0].connectedTo[0] - i_max = self._port_to_i_max.get(connected_port, None) - i_nom = self._port_to_i_nominal.get(connected_port, None) - if i_max is not None: + i_max = ( + self._port_to_i_max.get(connected_port, None) + if self._port_to_i_max.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + ) + i_nom = ( + self._port_to_i_nominal.get(connected_port, None) + if self._port_to_i_nominal.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + ) + if i_max > 0.0: self._set_electricity_current_nominal_and_max(asset, i_max, i_nom) return i_max, i_nom else: - raise _RetryLaterException( + raise logger.error( f"Could not determine max and nominal current for {asset.asset_type}" " '{asset.name}'" ) @@ -424,16 +569,24 @@ def _get_connected_i_nominal_and_max(self, asset: Asset) -> Tuple[float, float]: for port in asset.in_ports: if isinstance(port.carrier, esdl.ElectricityCommodity): connected_port = port.connectedTo[0] - i_max = self._port_to_i_max.get(connected_port, None) - i_nom = self._port_to_i_nominal.get(connected_port, None) - if i_max is not None: - self._set_electricity_current_nominal_and_max(asset, i_max, i_nom) - return i_max, i_nom - else: - raise _RetryLaterException( - f"Could not determine max and nominal current for {asset.asset_type}" - f" '{asset.name}'" - ) + i_max = ( + self._port_to_i_max.get(connected_port, None) + if self._port_to_i_max.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + ) + i_nom = ( + self._port_to_i_nominal.get(connected_port, None) + if self._port_to_i_nominal.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + ) + if i_max > 0.0: + self._set_electricity_current_nominal_and_max(asset, i_max, i_nom) + return i_max, i_nom + else: + raise logger.error( + f"Could not determine max and nominal current for {asset.asset_type}" + f" '{asset.name}'" + ) def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: """ @@ -451,70 +604,95 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: Either the connected nominal flow [m3/s] if it is only connected to one hydraulic system, otherwise a dict with the flow nominals of both the primary and secondary side. """ - if asset.in_ports is None: - connected_port = asset.out_ports[0].connectedTo[0] - q_nominal = self._port_to_q_nominal.get(connected_port, None) - if q_nominal is not None: - self._set_q_nominal(asset, q_nominal) - return q_nominal - else: - raise _RetryLaterException( - f"Could not determine nominal discharge for {asset.asset_type} '{asset.name}'" - ) - elif asset.out_ports is None: - connected_port = asset.in_ports[0].connectedTo[0] - q_nominal = self._port_to_q_nominal.get(connected_port, None) - if q_nominal is not None: - self._set_q_nominal(asset, q_nominal) - return q_nominal - else: - raise _RetryLaterException( - f"Could not determine nominal discharge for {asset.asset_type} '{asset.name}'" - ) - elif ( - len(asset.in_ports) == 1 + + if ( + asset.in_ports is not None + and asset.out_ports is not None + and len(asset.in_ports) == 1 and len(asset.out_ports) == 1 and asset.in_ports[0].carrier.id != asset.out_ports[0].carrier.id and isinstance(asset.in_ports[0].carrier, esdl.GasCommodity) and isinstance(asset.out_ports[0].carrier, esdl.GasCommodity) ): # Cater for gas substation - try: - connected_port = asset.in_ports[0].connectedTo[0] - q_nominal_in = self._port_to_q_nominal[connected_port] - except KeyError: - connected_port = asset.out_ports[0].connectedTo[0] - q_nominal_out = self._port_to_q_nominal.get(connected_port, None) - - try: - connected_port = asset.out_ports[0].connectedTo[0] - q_nominal_out = self._port_to_q_nominal[connected_port] - except KeyError: - connected_port = asset.in_ports[0].connectedTo[0] - q_nominal_in = self._port_to_q_nominal.get(connected_port, None) + connected_port = asset.in_ports[0].connectedTo[0] + q_nominal_in = ( + self._port_to_q_nominal.get(connected_port, None) + if self._port_to_q_nominal.get(connected_port, False) + else 0.0 + ) + connected_port = asset.out_ports[0].connectedTo[0] + q_nominal_out = ( + self._port_to_q_nominal.get(connected_port, None) + if self._port_to_q_nominal.get(connected_port, False) + else 0.0 + ) - if q_nominal_in is not None and q_nominal_out is not None: + if q_nominal_in > 0.0 and q_nominal_out > 0.0: self._port_to_q_nominal[asset.in_ports[0]] = q_nominal_in self._port_to_q_nominal[asset.out_ports[0]] = q_nominal_out return q_nominal_in, q_nominal_out - else: - raise _RetryLaterException( - f"Could not determine nominal discharge for {asset.asset_type} '{asset.name}'" - ) - elif len(asset.in_ports) == 1 and len(asset.out_ports) == 1: - try: - connected_port = asset.in_ports[0].connectedTo[0] - q_nominal = self._port_to_q_nominal[connected_port] - except KeyError: - connected_port = asset.out_ports[0].connectedTo[0] - q_nominal = self._port_to_q_nominal.get(connected_port, None) - - if q_nominal is not None: - self._set_q_nominal(asset, q_nominal) - return q_nominal - else: - raise _RetryLaterException( - f"Could not determine nominal discharge for {asset.asset_type} '{asset.name}'" - ) + elif ( + asset.in_ports is not None + and asset.out_ports is not None + and len(asset.in_ports) == 1 + and len(asset.out_ports) == 1 + ): + for port in [*asset.in_ports, *asset.out_ports]: + if isinstance(port.carrier, esdl.GasCommodity) or isinstance( + port.carrier, esdl.HeatCommodity + ): + connected_port = port.connectedTo[0] + q_nominal = ( + self._port_to_q_nominal.get(connected_port, None) + if self._port_to_q_nominal.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + / ( + get_density(asset.name, port.carrier) + * get_internal_energy(asset.name, port.carrier) + / 1.0e3 + ) + ) + if q_nominal is not None: + self._set_q_nominal(asset, q_nominal) + return q_nominal + elif asset.in_ports is not None and asset.out_ports is None and len(asset.in_ports) == 1: + for port in asset.in_ports: + if isinstance(port.carrier, esdl.GasCommodity) or isinstance( + port.carrier, esdl.HeatCommodity + ): + connected_port = port.connectedTo[0] + q_nominal = ( + self._port_to_q_nominal.get(connected_port, None) + if self._port_to_q_nominal.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + / ( + get_density(asset.name, port.carrier) + * get_internal_energy(asset.name, port.carrier) + / 1.0e3 + ) + ) + if q_nominal is not None: + self._set_q_nominal(asset, q_nominal) + return q_nominal + elif asset.out_ports is not None and asset.in_ports is None and len(asset.out_ports) == 1: + for port in asset.out_ports: + if isinstance(port.carrier, esdl.GasCommodity) or isinstance( + port.carrier, esdl.HeatCommodity + ): + connected_port = port.connectedTo[0] + q_nominal = ( + self._port_to_q_nominal.get(connected_port, None) + if self._port_to_q_nominal.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + / ( + get_density(asset.name, port.carrier) + * get_internal_energy(asset.name, port.carrier) + / 1.0e3 + ) + ) + if q_nominal is not None: + self._set_q_nominal(asset, q_nominal) + return q_nominal elif len(asset.in_ports) == 2 and len(asset.out_ports) == 1: # for gas_boiler or e_boiler q_nominals = {} try: @@ -534,17 +712,22 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: except KeyError: if isinstance(asset.out_ports[0].carrier, esdl.GasCommodity): connected_port = asset.out_ports[0].connectedTo[0] - q_nominals["Q_nominal"] = self._port_to_q_nominal.get(connected_port, None) + q_nominals["Q_nominal"] = ( + self._port_to_q_nominal.get(connected_port, None) + if self._port_to_q_max.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + / ( + get_density(asset.name, port.carrier) + * get_internal_energy(asset.name, port.carrier) + / 1.0e3 + ) + ) else: logger.error(f"{asset.name} should have a heat carrier on out port") if q_nominals["Q_nominal"] is not None: self._port_to_q_nominal[asset.out_ports[0]] = q_nominals["Q_nominal"] return q_nominals - else: - raise _RetryLaterException( - f"Could not determine nominal discharge for {asset.asset_type} '{asset.name}'" - ) elif len(asset.in_ports) >= 2 and len(asset.out_ports) == 2: q_nominals = {} for p in asset.in_ports: @@ -560,7 +743,16 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: q_nominal = self._port_to_q_nominal[connected_port] except KeyError: connected_port = out_port.connectedTo[0] - q_nominal = self._port_to_q_nominal.get(connected_port, None) + q_nominal = ( + self._port_to_q_nominal.get(connected_port, None) + if self._port_to_q_max.get(connected_port, False) + else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + / ( + get_density(asset.name, p.carrier) + * get_internal_energy(asset.name, p.carrier) + / 1.0e3 + ) + ) if q_nominal is not None: self._port_to_q_nominal[p] = q_nominal self._port_to_q_nominal[out_port] = q_nominal @@ -568,11 +760,7 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: q_nominals["Secondary"] = {"Q_nominal": q_nominal} else: q_nominals["Primary"] = {"Q_nominal": q_nominal} - else: - raise _RetryLaterException( - f"Could not determine nominal discharge for {asset.asset_type} " - f"{asset.name}" - ) + return q_nominals def _get_cost_figure_modifiers(self, asset: Asset) -> Dict: diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 76bcb89e7..6306fe60d 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -2,14 +2,16 @@ import math from typing import Dict, Tuple, Type, Union -import CoolProp as cP - import esdl -from mesido.esdl.asset_to_component_base import MODIFIERS, _AssetToComponentBase +from mesido.esdl.asset_to_component_base import ( + MODIFIERS, + _AssetToComponentBase, + get_density, + get_internal_energy, +) from mesido.esdl.common import Asset from mesido.esdl.esdl_model_base import _ESDLModelBase -from mesido.network_common import NetworkSettings from mesido.pycml.component_library.milp import ( ATES, AirWaterHeatPump, @@ -99,67 +101,6 @@ def _rho_cp_modifiers(self) -> Dict: """ return dict(rho=self.rho, cp=self.cp) - def get_internal_energy(self, asset_name, carrier): - # The default of 20°C is also used in the head_loss_class. Thus, when updating ensure it - # is also updated in the head_loss_class. - temperature = 20.0 - - if NetworkSettings.NETWORK_TYPE_GAS in carrier.name: - internal_energy = cP.CoolProp.PropsSI( - "U", - "T", - 273.15 + temperature, - "P", - carrier.pressure * 1.0e5, - NetworkSettings.NETWORK_COMPOSITION_GAS, - ) - elif NetworkSettings.NETWORK_TYPE_HYDROGEN in carrier.name: - internal_energy = cP.CoolProp.PropsSI( - "U", - "T", - 273.15 + temperature, - "P", - carrier.pressure * 1.0e5, - str(NetworkSettings.NETWORK_TYPE_HYDROGEN).upper(), - ) - else: - logger.warning( - f"Neither gas or hydrogen was used in the carrier " f"name of pipe {asset_name}" - ) - internal_energy = 46.0e6 # natural gas at about 8 bar - return internal_energy # we use gram per second and coolprop gives results in kJ per kg - - def get_density(self, asset_name, carrier): - # TODO: gas carrier temperature still needs to be resolved. - # The default of 20°C is also used in the head_loss_class. Thus, when updating ensure it - # is also updated in the head_loss_class. - temperature = 20.0 - - if NetworkSettings.NETWORK_TYPE_GAS in carrier.name: - density = cP.CoolProp.PropsSI( - "D", - "T", - 273.15 + temperature, - "P", - carrier.pressure * 1.0e5, - NetworkSettings.NETWORK_COMPOSITION_GAS, - ) - elif NetworkSettings.NETWORK_TYPE_HYDROGEN in carrier.name: - density = cP.CoolProp.PropsSI( - "D", - "T", - 273.15 + temperature, - "P", - carrier.pressure * 1.0e5, - str(NetworkSettings.NETWORK_TYPE_HYDROGEN).upper(), - ) - else: - logger.warning( - f"Neither gas or hydrogen was used in the carrier " f"name of pipe {asset_name}" - ) - density = 6.2 # natural gas at about 8 bar - return density * 1.0e3 # to convert from kg/m3 to g/m3 - def get_asset_attribute_value( self, asset: Asset, @@ -653,7 +594,7 @@ def convert_heat_pipe( q_max = math.pi * diameter**2 / 4.0 * self.v_max_gas self._set_q_max(asset, q_max) pressure = asset.in_ports[0].carrier.pressure * 1.0e5 - density = self.get_density(asset.name, asset.in_ports[0].carrier) + density = get_density(asset.name, asset.in_ports[0].carrier) bounds_nominals = dict( Q=dict(min=-q_max, max=q_max, nominal=q_nominal), mass_flow=dict( @@ -1881,13 +1822,11 @@ def convert_gas_demand(self, asset: Asset) -> Tuple[Type[GasDemand], MODIFIERS]: ] # DO not remove due usage in future # hydrogen_specfic_energy = 20.0 / 1.0e6 - specific_energy = ( - self.get_internal_energy(asset.name, asset.in_ports[0].carrier) / 10 - ) # J/g + specific_energy = get_internal_energy(asset.name, asset.in_ports[0].carrier) / 10 # J/g # TODO: the value being used is the internal energy and not the HHV (higher # heating value) for hydrogen, therefore it does not represent the energy per weight. # This still needs to be updated - density = self.get_density(asset.name, asset.in_ports[0].carrier) + density = get_density(asset.name, asset.in_ports[0].carrier) pressure = asset.in_ports[0].carrier.pressure * 1.0e5 q_nominal = self._get_connected_q_nominal(asset) q_max = self._get_connected_q_max(asset) @@ -1904,7 +1843,7 @@ def convert_gas_demand(self, asset: Asset) -> Tuple[Type[GasDemand], MODIFIERS]: # *hydrogen_specfic_energy), density=density, GasIn=dict( - Q=dict(min=0.0, max=q_max, nominal=q_nominal), + Q=dict(min=0.0, nominal=q_nominal), mass_flow=dict(nominal=mass_flow_nominal_g_per_s, max=max_mass_flow_g_per_s), Hydraulic_power=dict(min=0.0, max=0.0, nominal=q_nominal * pressure), ), @@ -1954,10 +1893,10 @@ def convert_gas_source(self, asset: Asset) -> Tuple[Type[GasSource], MODIFIERS]: assert asset.asset_type in {"GasProducer", "Import"} q_nominal = self._get_connected_q_nominal(asset) - density_value = self.get_density(asset.name, asset.out_ports[0].carrier) + density_value = get_density(asset.name, asset.out_ports[0].carrier) pressure = asset.out_ports[0].carrier.pressure * 1.0e5 specific_energy = ( - self.get_internal_energy(asset.name, asset.out_ports[0].carrier) / 10 + get_internal_energy(asset.name, asset.out_ports[0].carrier) / 10 ) # J/g #TODO: is not the HHV for hydrogen, so is off # [g/s] = [J/s] * [J/kg]^-1 *1000 max_mass_flow_g_per_s = asset.attributes["power"] / specific_energy * 1000.0 @@ -2056,7 +1995,7 @@ def equations(x): a, b, c = fsolve(equations, (0, 0, 0)) q_nominal = self._get_connected_q_nominal(asset) - density = self.get_density(asset.name, asset.out_ports[0].carrier) + density = get_density(asset.name, asset.out_ports[0].carrier) # [g/s] = [W] * [kWh/kg]^-1 * 1/3600 = [g/h] * 1/3600 mass_flow_max_g_per_s = max_power / eff_max_load / 3600 mass_flow_nominal_g_per_s = min(density * q_nominal, mass_flow_max_g_per_s / 2) @@ -2132,7 +2071,7 @@ def convert_gas_tank_storage(self, asset: Asset) -> Tuple[Type[GasTankStorage], # DO not remove due usage in future # hydrogen_specific_energy = 20.0 / 1.0e6 # kg/Wh q_nominal = self._get_connected_q_nominal(asset) - density = self.get_density(asset.name, asset.in_ports[0].carrier) + density = get_density(asset.name, asset.in_ports[0].carrier) pressure = asset.in_ports[0].carrier.pressure * 1.0e5 modifiers = dict( @@ -2191,13 +2130,13 @@ def convert_gas_substation(self, asset: Asset) -> Tuple[Type[GasSubstation], MOD Returns ------- - GasTankStorage class with modifiers + GasSubstation class with modifiers """ assert asset.asset_type in {"GasConversion", "PressureReducingValve"} q_nom_in, q_nom_out = self._get_connected_q_nominal(asset) - density_in = self.get_density(asset.name, asset.in_ports[0].carrier) - density_out = self.get_density(asset.name, asset.out_ports[0].carrier) + density_in = get_density(asset.name, asset.in_ports[0].carrier) + density_out = get_density(asset.name, asset.out_ports[0].carrier) pressure_in = asset.in_ports[0].carrier.pressure * 1.0e5 pressure_out = asset.out_ports[0].carrier.pressure * 1.0e5 @@ -2262,8 +2201,8 @@ def convert_compressor(self, asset: Asset) -> Tuple[Type[Compressor], MODIFIERS] assert asset.asset_type in {"Compressor"} q_nom_in, q_nom_out = self._get_connected_q_nominal(asset) - density_in = self.get_density(asset.name, asset.in_ports[0].carrier) - density_out = self.get_density(asset.name, asset.out_ports[0].carrier) + density_in = get_density(asset.name, asset.in_ports[0].carrier) + density_out = get_density(asset.name, asset.out_ports[0].carrier) pressure_in = asset.in_ports[0].carrier.pressure * 1.0e5 pressure_out = asset.out_ports[0].carrier.pressure * 1.0e5 @@ -2344,8 +2283,8 @@ def convert_gas_boiler(self, asset: Asset) -> Tuple[GasBoiler, MODIFIERS]: for port in asset.in_ports: if isinstance(port.carrier, esdl.GasCommodity): - density = self.get_density(asset.name, port.carrier) - internal_energy = self.get_internal_energy(asset.name, port.carrier) + density = get_density(asset.name, port.carrier) + internal_energy = get_internal_energy(asset.name, port.carrier) # TODO: CO2 coefficient @@ -2576,7 +2515,13 @@ class ESDLHeatModel(_ESDLModelBase): This probably could be standardized in that case this class would become obsolete. """ - def __init__(self, assets: Dict[str, Asset], converter_class=AssetToHeatComponent, **kwargs): + def __init__( + self, + assets: Dict[str, Asset], + name_to_id_map: Dict[str, str], + converter_class=AssetToHeatComponent, + **kwargs, + ): super().__init__(None) converter = converter_class( @@ -2589,4 +2534,4 @@ def __init__(self, assets: Dict[str, Asset], converter_class=AssetToHeatComponen } ) - self._esdl_convert(converter, assets, "Heat") + self._esdl_convert(converter, assets, name_to_id_map, "MILP") diff --git a/src/mesido/esdl/esdl_mixin.py b/src/mesido/esdl/esdl_mixin.py index a120096aa..f6caf85c0 100644 --- a/src/mesido/esdl/esdl_mixin.py +++ b/src/mesido/esdl/esdl_mixin.py @@ -117,9 +117,10 @@ def __init__(self, *args, **kwargs) -> None: # Although we work with the names, the FEWS import data uses the component IDs self.__timeseries_id_map = {a.id: a.name for a in assets.values()} + name_to_id_map = {a.name: a.id for a in assets.values()} if isinstance(self, PhysicsMixin): - self.__model = ESDLHeatModel(assets, **self.esdl_heat_model_options()) + self.__model = ESDLHeatModel(assets, name_to_id_map, **self.esdl_heat_model_options()) else: assert isinstance(self, QTHMixin) diff --git a/src/mesido/esdl/esdl_model_base.py b/src/mesido/esdl/esdl_model_base.py index 14bb611c9..3b6e655bc 100644 --- a/src/mesido/esdl/esdl_model_base.py +++ b/src/mesido/esdl/esdl_model_base.py @@ -7,8 +7,6 @@ from mesido.esdl.asset_to_component_base import _AssetToComponentBase from mesido.pycml import Model as _Model -from ._exceptions import _RetryLaterException, _SkipAssetException - logger = logging.getLogger("mesido") @@ -27,7 +25,9 @@ class _ESDLModelBase(_Model): primary_port_name_convention = "prim" secondary_port_name_convention = "sec" - def _esdl_convert(self, converter: _AssetToComponentBase, assets: Dict, prefix: str) -> None: + def _esdl_convert( + self, converter: _AssetToComponentBase, assets: Dict, name_to_id_map: Dict, prefix: str + ) -> None: """ In this function we convert the esdl parsed assets and instantiate the pycml objects for those assets. We use the converter to create those pycml objects and the same time we look @@ -47,33 +47,37 @@ def _esdl_convert(self, converter: _AssetToComponentBase, assets: Dict, prefix: # Sometimes we need information of one component in order to convert # another. For example, the nominal discharge of a pipe is used to set # the nominal discharge of its connected components. - retry_assets = list(assets.values()) skip_assets = list() - for _ in range(RETRY_LOOP_LIMIT): - current_assets = retry_assets - retry_assets = [] + transport_asset_types = ["Pipe", "ElectricityCable"] + assets_transport = {} + assets_other = {} + + for name, properties in assets.items(): + if properties.asset_type in transport_asset_types: + assets_transport[name] = properties + else: + assets_other[name] = properties - for asset in current_assets: - try: - pycml_type, modifiers = converter.convert(asset) - except _SkipAssetException: - skip_assets.append(asset) - continue - except _RetryLaterException: - retry_assets.append(asset) - continue + # We create an assets sorted to first loop over specific assets (the transport assets), + # before parsing the other assets. This is because the properties of the transport assets + # are used to set nominals for other assets that are then parsed later. + assets_sorted = {} + assets_sorted.update(assets_transport) + assets_sorted.update(assets_other) + # TODO: replace when python 3.8 is no longer supported + # assets_sorted = assets_transport | assets_other - self.add_variable(pycml_type, asset.name, **modifiers) + for asset in list(assets.values()): + converter.port_asset_type_connections(asset) - if not retry_assets: - break - else: - raise Exception("Parsing of assets exceeded maximum iteration limit.") + for asset in list(assets_sorted.values()): + pycml_type, modifiers = converter.convert(asset) + self.add_variable(pycml_type, asset.name, **modifiers) - in_suf = f"{prefix}In" - out_suf = f"{prefix}Out" - node_suf = f"{prefix}Conn" + in_suf = "HeatIn" + out_suf = "HeatOut" + node_suf = "HeatConn" elec_in_suf = "ElectricityIn" elec_out_suf = "ElectricityOut" elec_node_suf = "ElectricityConn" @@ -81,16 +85,9 @@ def _esdl_convert(self, converter: _AssetToComponentBase, assets: Dict, prefix: gas_out_suf = "GasOut" gas_node_suf = "GasConn" + # TODO: check but I think the skip_assets is no longer needed skip_asset_ids = {a.id for a in skip_assets} - # pipe_assets = [ - # a - # for a in assets.values() - # if ( - # a.asset_type == "heat_pipe" - # and a.id not in skip_asset_ids - # and isinstance(a.in_ports[0].carrier, esdl.HeatCommodity) - # ) - # ] + node_assets = [ a for a in assets.values() @@ -139,7 +136,7 @@ def _esdl_convert(self, converter: _AssetToComponentBase, assets: Dict, prefix: or asset.asset_type == "HeatExchange" or asset.asset_type == "HeatPump" ): - if prefix != "Heat": + if prefix != "MILP": raise Exception( "Hydraulically decoulpled systems are not yet supported for nonlinear (QTH)" "optimization" @@ -336,20 +333,128 @@ def _esdl_convert(self, converter: _AssetToComponentBase, assets: Dict, prefix: for port in (asset.in_ports[0], asset.out_ports[0]): for connected_to in port.connectedTo.items: conn = (port.id, connected_to.id) - if conn in connections or tuple(reversed(conn)) in connections: + # Here we skip the adding of the connection if we already had the reverse + # connection. Note that we don't do that for logical links between nodes, as we + # need both connections in order to make the topology object in + # component_type_mixin.py. + if connected_to.id in list(port_map.keys()) and ( + conn in connections or tuple(reversed(conn)) in connections + ): continue if isinstance(port.carrier, esdl.HeatCommodity): - self.connect(getattr(component, node_suf)[i], port_map[connected_to.id]) + # First we check if the connected_to.id is in the port_map and if the + # connected aasset is of type Pipe. In this case we want to fully connect + # the model with head losses and hydraulic power. + if ( + connected_to.id in list(port_map.keys()) + and assets[ + name_to_id_map[port_map[connected_to.id].name.split(".")[0]] + ].asset_type + == "Pipe" + ): + self.connect(getattr(component, node_suf)[i], port_map[connected_to.id]) + elif connected_to.id not in list(port_map.keys()): + # If The asset is not in the + # port map means that there is a direct node to node connection with a + # logical link. Here we need to do some tricks to recover the correct + # port index of the node. + for node in node_assets: + if connected_to.id in [node.in_ports[0].id, node.out_ports[0].id]: + connected_node_asset = node + count = 1 + for ct in [ + *list(node.in_ports[0].connectedTo), + *list(node.out_ports[0].connectedTo), + ]: + if ct.id == port.id: + idx = count + else: + count += 1 + self.connect_logical_links( + getattr(component, node_suf)[i], + getattr(getattr(self, connected_node_asset.name), node_suf)[idx], + ) + else: + # If the Connected asset is not of type pipe, there might be + # logical link like source to node. + self.connect_logical_links( + getattr(component, node_suf)[i], port_map[connected_to.id] + ) connections.add(conn) i += 1 elif isinstance(port.carrier, esdl.ElectricityCommodity): - self.connect( - getattr(component, elec_node_suf)[i], port_map[connected_to.id] - ) + # Same logic as for heat see comments there + if ( + connected_to.id in list(port_map.keys()) + and assets[ + name_to_id_map[port_map[connected_to.id].name.split(".")[0]] + ].asset_type + == "ElectricityCable" + ): + self.connect( + getattr(component, elec_node_suf)[i], port_map[connected_to.id] + ) + elif connected_to.id not in list(port_map.keys()): + for node in bus_assets: + if connected_to.id in [node.in_ports[0].id, node.out_ports[0].id]: + connected_node_asset = node + count = 1 + for ct in [ + *list(node.in_ports[0].connectedTo), + *list(node.out_ports[0].connectedTo), + ]: + if ct.id == port.id: + idx = count + else: + count += 1 + self.connect_logical_links( + getattr(component, elec_node_suf)[i], + getattr(getattr(self, connected_node_asset.name), elec_node_suf)[ + idx + ], + ) + else: + self.connect_logical_links( + getattr(component, elec_node_suf)[i], + port_map[connected_to.id], + ) connections.add(conn) i += 1 elif isinstance(port.carrier, esdl.GasCommodity): - self.connect(getattr(component, gas_node_suf)[i], port_map[connected_to.id]) + # Same logic as for heat see comments there + if ( + connected_to.id in list(port_map.keys()) + and assets[ + name_to_id_map[port_map[connected_to.id].name.split(".")[0]] + ].asset_type + == "Pipe" + ): + self.connect( + getattr(component, gas_node_suf)[i], port_map[connected_to.id] + ) + elif connected_to.id not in list(port_map.keys()): + for node in gas_node_assets: + if connected_to.id in [node.in_ports[0].id, node.out_ports[0].id]: + connected_node_asset = node + count = 1 + for ct in [ + *list(node.in_ports[0].connectedTo), + *list(node.out_ports[0].connectedTo), + ]: + if ct.id == port.id: + idx = count + else: + count += 1 + self.connect_logical_links( + getattr(component, gas_node_suf)[i], + getattr(getattr(self, connected_node_asset.name), gas_node_suf)[ + idx + ], + ) + else: + self.connect_logical_links( + getattr(component, gas_node_suf)[i], port_map[connected_to.id] + ) connections.add(conn) i += 1 else: @@ -388,6 +493,19 @@ def _esdl_convert(self, converter: _AssetToComponentBase, assets: Dict, prefix: conn = (port.id, connected_to.id) if conn in connections or tuple(reversed(conn)) in connections: continue - - self.connect(port_map[port.id], port_map[connected_to.id]) + if ( + asset.asset_type == "Pipe" + or asset.asset_type == "ElectricityCable" + or assets[ + name_to_id_map[port_map[connected_to.id].name.split(".")[0]] + ].asset_type + == "Pipe" + or assets[ + name_to_id_map[port_map[connected_to.id].name.split(".")[0]] + ].asset_type + == "ElectricityCable" + ): + self.connect(port_map[port.id], port_map[connected_to.id]) + else: + self.connect_logical_links(port_map[port.id], port_map[connected_to.id]) connections.add(conn) diff --git a/src/mesido/financial_mixin.py b/src/mesido/financial_mixin.py index faf19307d..81a4cc155 100644 --- a/src/mesido/financial_mixin.py +++ b/src/mesido/financial_mixin.py @@ -113,12 +113,22 @@ def pre(self): continue elif asset_name in [*self.energy_system_components.get("ates", [])]: nominal_fixed_operational = self.variable_nominal(f"{asset_name}.Heat_ates") + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("low_temperature_ates", [])]: nominal_fixed_operational = self.variable_nominal( f"{asset_name}.Heat_low_temperature_ates" ) + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("heat_demand", [])]: @@ -127,26 +137,56 @@ def pre(self): if not np.isinf(bounds[f"{asset_name}.Heat_demand"][1]) else bounds[f"{asset_name}.HeatIn.Heat"][1] ) + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("heat_source", [])]: nominal_fixed_operational = self.variable_nominal(f"{asset_name}.Heat_source") + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("heat_pipe", [])]: nominal_fixed_operational = max(parameters[f"{asset_name}.length"], 1.0) + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("electricity_cable", [])]: nominal_fixed_operational = max(parameters[f"{asset_name}.length"], 1.0) + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("gas_pipe", [])]: nominal_fixed_operational = max(parameters[f"{asset_name}.length"], 1.0) + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("heat_buffer", [])]: nominal_fixed_operational = self.variable_nominal(f"{asset_name}.Stored_heat") + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = self.variable_nominal(f"{asset_name}.Heat_buffer") nominal_investment = nominal_fixed_operational elif asset_name in [ @@ -159,14 +199,29 @@ def pre(self): # TODO: set the nominal values below elif asset_name in [*self.energy_system_components.get("gas_tank_storage", [])]: nominal_fixed_operational = bounds[f"{asset_name}.Stored_gas_mass"][1] + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("electricity_demand", [])]: nominal_fixed_operational = bounds[f"{asset_name}.Electricity_demand"][1] + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("electrolyzer", [])]: nominal_fixed_operational = bounds[f"{asset_name}.Power_consumed"][1] + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("electricity_source", [])]: @@ -180,10 +235,20 @@ def pre(self): nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("electricity_storage", [])]: nominal_fixed_operational = bounds[f"{asset_name}.Stored_electricity"][1] + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational elif asset_name in [*self.energy_system_components.get("gas_demand", [])]: nominal_fixed_operational = bounds[f"{asset_name}.Gas_demand_mass_flow"][1] + nominal_fixed_operational = ( + nominal_fixed_operational + if isinstance(nominal_fixed_operational, float) + else max(nominal_fixed_operational.values) + ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational else: diff --git a/src/mesido/gas_physics_mixin.py b/src/mesido/gas_physics_mixin.py index fc462374a..e0c784d86 100644 --- a/src/mesido/gas_physics_mixin.py +++ b/src/mesido/gas_physics_mixin.py @@ -460,17 +460,6 @@ def __gas_node_mixing_path_constraints(self, ensemble_member): q_nominal = np.median(q_nominals) constraints.append((q_sum / q_nominal, 0.0, 0.0)) - q_sum = 0.0 - q_nominals = [] - - for i_conn, (_pipe, orientation) in connected_pipes.items(): - gas_conn = f"{node}.GasConn[{i_conn + 1}].Q_shadow" - q_sum += orientation * self.state(gas_conn) - q_nominals.append(self.variable_nominal(gas_conn)) - - q_nominal = np.median(q_nominals) - constraints.append((q_sum / q_nominal, 0.0, 0.0)) - return constraints def __gas_node_hydraulic_power_mixing_path_constraints(self, ensemble_member): diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index dccb085a7..2fbd3f459 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -2273,6 +2273,10 @@ def __storage_heat_to_discharge_path_constraints(self, ensemble_member): (hot_pipe, _hot_pipe_orientation), (_cold_pipe, _cold_pipe_orientation), ) in {**self.energy_system_topology.buffers, **self.energy_system_topology.ates}.items(): + if hot_pipe not in self.energy_system_components.get("heat_pipe", []): + # We skip the constraints in case their is a logical link to the storage. + continue + heat_nominal = parameters[f"{b}.Heat_nominal"] q_nominal = self.variable_nominal(f"{b}.Q") cp = parameters[f"{b}.cp"] diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_base.py b/src/mesido/pycml/component_library/milp/electricity/electricity_base.py index 993f15328..28c7a6a5f 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_base.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_base.py @@ -13,8 +13,8 @@ def __init__(self, name, **modifiers): super().__init__(name, **modifiers) self.add_variable(Variable, "Power") - self.add_variable(Variable, "V", min=0.0) self.add_variable(Variable, "I") + self.add_variable(Variable, "V", min=0.0) class ElectricityTwoPort(ElectricityComponent): diff --git a/src/mesido/pycml/component_library/milp/gas/compressor.py b/src/mesido/pycml/component_library/milp/gas/compressor.py index b83420781..41d7c62aa 100644 --- a/src/mesido/pycml/component_library/milp/gas/compressor.py +++ b/src/mesido/pycml/component_library/milp/gas/compressor.py @@ -28,3 +28,10 @@ def __init__(self, name, **modifiers): ** 0.5 ) ) + + self.add_equation( + ((self.GasIn.Q - self.GasIn.mass_flow / self.density_in) / self.Q_nominal_in) + ) + self.add_equation( + ((self.GasOut.Q - self.GasOut.mass_flow / self.density_out) / self.Q_nominal_out) + ) diff --git a/src/mesido/pycml/component_library/milp/gas/gas_base.py b/src/mesido/pycml/component_library/milp/gas/gas_base.py index 33668fe2b..3583be82b 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_base.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_base.py @@ -15,7 +15,6 @@ def __init__(self, name, **modifiers): # TODO: think of more elegant approach for Q_shadow, currently required to ensure that # every port has a unique variable to make the correct port mapping self.add_variable(Variable, "Q") # [m3/s] - self.add_variable(Variable, "Q_shadow") self.add_variable(Variable, "mass_flow") # [g/s] self.add_variable(Variable, "H") # [m] self.add_variable(Variable, "Hydraulic_power") # [W] diff --git a/src/mesido/pycml/component_library/milp/gas/gas_demand.py b/src/mesido/pycml/component_library/milp/gas/gas_demand.py index 7b05a5d7d..c697116ae 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_demand.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_demand.py @@ -32,3 +32,5 @@ def __init__(self, name, **modifiers): self.add_equation( ((self.GasIn.mass_flow - self.Gas_demand_mass_flow) / (self.Q_nominal * self.density)) ) + + self.add_equation(((self.GasIn.Q - self.GasIn.mass_flow / self.density) / self.Q_nominal)) diff --git a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py index f6e9ce957..12d2a139a 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py @@ -44,8 +44,6 @@ def __init__(self, name, **modifiers): self.add_equation( ((self.GasIn.mass_flow - self.GasOut.mass_flow) / (self.Q_nominal * self.density)) ) - # # shadow Q for aliases - self.add_equation(((self.GasOut.Q_shadow - (self.GasIn.Q_shadow - 1.0e-3)))) # Hydraulic power # TODO replace value diff --git a/src/mesido/pycml/component_library/milp/gas/gas_source.py b/src/mesido/pycml/component_library/milp/gas/gas_source.py index d369dd519..21d1beb09 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_source.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_source.py @@ -29,3 +29,5 @@ def __init__(self, name, **modifiers): self.add_equation( ((self.GasOut.mass_flow - self.Gas_source_mass_flow) / (self.Q_nominal * self.density)) ) + + self.add_equation(((self.GasOut.Q - self.GasOut.mass_flow / self.density) / self.Q_nominal)) diff --git a/src/mesido/pycml/component_library/milp/gas/gas_substation.py b/src/mesido/pycml/component_library/milp/gas/gas_substation.py index 9f9b0ca77..20722a596 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_substation.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_substation.py @@ -29,3 +29,10 @@ def __init__(self, name, **modifiers): ** 0.5 ) ) + + self.add_equation( + ((self.GasIn.Q - self.GasIn.mass_flow / self.density_in) / self.Q_nominal_in) + ) + self.add_equation( + ((self.GasOut.Q - self.GasOut.mass_flow / self.density_out) / self.Q_nominal_out) + ) diff --git a/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py b/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py index f2b7d9e68..c2bd96295 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py @@ -42,6 +42,8 @@ def __init__(self, name, **modifiers): ((self.GasIn.mass_flow - self.Gas_tank_flow) / (self.Q_nominal * self.density)) ) + self.add_equation(((self.GasIn.Q - self.GasIn.mass_flow / self.density) / self.Q_nominal)) + self.add_equation( ( (self.der(self.Stored_gas_mass) - (self.Gas_tank_flow)) diff --git a/src/mesido/pycml/model_base.py b/src/mesido/pycml/model_base.py index 3eb988cd9..4d011664f 100644 --- a/src/mesido/pycml/model_base.py +++ b/src/mesido/pycml/model_base.py @@ -225,6 +225,16 @@ def add_initial_equation(self, equation, lb=None, ub=None): self._initial_inequalities.append((equation, lb, ub)) def connect(self, a: "Connector", b: "Connector"): + """ + This function sets equality constraints to the variables of the two (connected) ports. + + Params: + a: port 1 + b: port 2 + + Return: + None + """ if not a.variables.keys() == b.variables.keys(): raise Exception( f"Cannot connect port {a} of type {type(a)} to port {b} " @@ -233,6 +243,35 @@ def connect(self, a: "Connector", b: "Connector"): self._equations.extend([a.variables[k] - b.variables[k] for k in a.variables.keys()]) + def connect_logical_links(self, a: "Connector", b: "Connector"): + """ + This function sets equality constraints to the variables of the two (connected) ports. Note + that this function is used for logical links, meaning that we only use this function for + models where the user defined direct connection between assets without the use of + "transport" assets in between. For that purpose we do not make equality constraints for + head, voltage and hydrualic power as these are inherent for the transport modelling. + + Params: + a: port 1 + b: port 2 + + Return: + None + """ + if not a.variables.keys() == b.variables.keys(): + raise Exception( + f"Cannot connect port {a} of type {type(a)} to port {b} " + f"of type {type(b)} as they have different variables." + ) + + self._equations.extend( + [ + a.variables[k] - b.variables[k] + for k in a.variables.keys() + if (k != "H" and k != "Hydraulic_power" and k != "V") + ] + ) + def der(self, var: Variable): return var.der() diff --git a/src/mesido/util.py b/src/mesido/util.py index 355636926..7b52ed47d 100644 --- a/src/mesido/util.py +++ b/src/mesido/util.py @@ -52,6 +52,6 @@ def run_esdl_mesido_optimization( feasibility = solution.solver_stats["return_status"] - assert feasibility.lower() == "optimal" + assert feasibility.lower() == "optimal" or feasibility.lower() == "finished" return solution diff --git a/tests/models/emerge/model/emerge_with_logical_links.esdl b/tests/models/emerge/model/emerge_with_logical_links.esdl new file mode 100644 index 000000000..cc4d3f45e --- /dev/null +++ b/tests/models/emerge/model/emerge_with_logical_links.esdl @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/emerge/src/example.py b/tests/models/emerge/src/example.py index 38c7e041d..a91b0fa7e 100644 --- a/tests/models/emerge/src/example.py +++ b/tests/models/emerge/src/example.py @@ -243,7 +243,7 @@ def solver_options(self): solver options dict """ options = super().solver_options() - options["solver"] = "gurobi" + options["solver"] = "highs" return options def times(self, variable=None): diff --git a/tests/models/heatpump/src/run_heat_pump.py b/tests/models/heatpump/src/run_heat_pump.py index 43d4b20ca..bb5f23e58 100644 --- a/tests/models/heatpump/src/run_heat_pump.py +++ b/tests/models/heatpump/src/run_heat_pump.py @@ -124,7 +124,7 @@ def solver_options(self): options = super().solver_options() options["solver"] = "highs" highs_options = options["highs"] = {} - highs_options["mip_rel_gap"] = 0.01 + highs_options["mip_rel_gap"] = 0.001 return options def temperature_carriers(self): diff --git a/tests/models/source_pipe_split_sink/model/sourcesink_with_node2node_logical_link.esdl b/tests/models/source_pipe_split_sink/model/sourcesink_with_node2node_logical_link.esdl new file mode 100644 index 000000000..81b7dcfa5 --- /dev/null +++ b/tests/models/source_pipe_split_sink/model/sourcesink_with_node2node_logical_link.esdl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases_electricity/bus_networks/model/Electric_bus4_logical_links.esdl b/tests/models/unit_cases_electricity/bus_networks/model/Electric_bus4_logical_links.esdl new file mode 100644 index 000000000..106ca4617 --- /dev/null +++ b/tests/models/unit_cases_electricity/bus_networks/model/Electric_bus4_logical_links.esdl @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases_electricity/bus_networks/src/example.py b/tests/models/unit_cases_electricity/bus_networks/src/example.py index 9c0e7abda..b815765cf 100644 --- a/tests/models/unit_cases_electricity/bus_networks/src/example.py +++ b/tests/models/unit_cases_electricity/bus_networks/src/example.py @@ -74,7 +74,7 @@ class ElectricityProblem( if __name__ == "__main__": elect = run_optimization_problem( ElectricityProblem, - esdl_file_name="Electric_bus3.esdl", + esdl_file_name="Electric_bus4_logical_links.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries.csv", diff --git a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_electrolyzer_general.csv b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_electrolyzer_general.csv index 104c60f5e..36b4fea0a 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_electrolyzer_general.csv +++ b/tests/models/unit_cases_electricity/electrolyzer/input/timeseries_electrolyzer_general.csv @@ -1,5 +1,5 @@ DateTime,elec,Hydrogen,WindPark_7f14 01-01-2019 00:00, 10.0, 10000000.0, 100000000.0 -01-01-2019 01:00, 10.0, 10000000.0, 100000000.0 +01-01-2019 01:00, 10.0, 11000000.0, 100000000.0 01-01-2019 02:00, 10.0, 10000000.0, 100000000.0 diff --git a/tests/models/unit_cases_electricity/electrolyzer/src/example.py b/tests/models/unit_cases_electricity/electrolyzer/src/example.py index 449ca54b6..4d88de903 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/src/example.py +++ b/tests/models/unit_cases_electricity/electrolyzer/src/example.py @@ -125,6 +125,8 @@ def path_goals(self): def solver_options(self): options = super().solver_options() options["solver"] = "highs" + highs_options = options["highs"] = {} + highs_options["presolve"] = "off" return options diff --git a/tests/models/unit_cases_gas/multi_demand_source_node/model/test_logical_links.esdl b/tests/models/unit_cases_gas/multi_demand_source_node/model/test_logical_links.esdl new file mode 100644 index 000000000..79e085966 --- /dev/null +++ b/tests/models/unit_cases_gas/multi_demand_source_node/model/test_logical_links.esdl @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py b/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py index 019fe9937..41562037c 100644 --- a/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py +++ b/tests/models/unit_cases_gas/multi_demand_source_node/src/run_test.py @@ -1,7 +1,8 @@ from mesido.esdl.esdl_mixin import ESDLMixin from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile -from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.head_loss_class import HeadLossOption +from mesido.physics_mixin import PhysicsMixin import numpy as np @@ -58,7 +59,7 @@ def path_goals(self): class GasProblem( _GoalsAndOptions, - TechnoEconomicMixin, + PhysicsMixin, LinearizedOrderGoalProgrammingMixin, GoalProgrammingMixin, ESDLMixin, @@ -68,6 +69,11 @@ class GasProblem( This is a problem to check the behaviour of a gas network with a node. """ + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.gas_network_settings["head_loss_option"] = HeadLossOption.NO_HEADLOSS + def times(self, variable=None) -> np.ndarray: """ Shorten the horizon here to have a faster test. @@ -86,10 +92,12 @@ def times(self, variable=None) -> np.ndarray: if __name__ == "__main__": elect = run_optimization_problem( GasProblem, - esdl_file_name="test.esdl", + esdl_file_name="test_logical_links.esdl", esdl_parser=ESDLFileParser, profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries.csv", ) r = elect.extract_results() + print(r["GasProducer_3573.GasOut.Q"]) + print(r["GasDemand_47d0.Gas_demand_mass_flow"]) a = 1 diff --git a/tests/models/unit_cases_gas/source_pipe_split_sink/model/split_with_logical_link.esdl b/tests/models/unit_cases_gas/source_pipe_split_sink/model/split_with_logical_link.esdl new file mode 100644 index 000000000..0659f7c02 --- /dev/null +++ b/tests/models/unit_cases_gas/source_pipe_split_sink/model/split_with_logical_link.esdl @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_heat.py b/tests/test_heat.py index 342010fcf..b1acaa7cf 100644 --- a/tests/test_heat.py +++ b/tests/test_heat.py @@ -94,7 +94,7 @@ class TestMinMaxPressureOptions(TestCase): from models.source_pipe_sink.src.double_pipe_heat import SourcePipeSink base_folder = Path(double_pipe_heat.__file__).resolve().parent.parent - min_pressure = 4.0 + min_pressure = 5.0 max_pressure = 12.0 esdl_file = "sourcesink.esdl" input_time_series_file = "timeseries_import.csv" diff --git a/tests/test_logical_links.py b/tests/test_logical_links.py new file mode 100644 index 000000000..5df0793b8 --- /dev/null +++ b/tests/test_logical_links.py @@ -0,0 +1,197 @@ +from pathlib import Path +from unittest import TestCase + +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization + +import numpy as np + +from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test + + +class TestLogicalLinks(TestCase): + def test_logical_links_electricity(self): + """ + This test checks if the logic implemented for logically linked energy system, Meaning an + energy system where assets are directly connected to each other without a network + (transport asset(s)) in between. + + Checks: + 1. Check that energy is conserved + + """ + import models.unit_cases_electricity.bus_networks.src.example as example + from models.unit_cases_electricity.bus_networks.src.example import ElectricityProblem + + base_folder = Path(example.__file__).resolve().parent.parent + + problem = run_esdl_mesido_optimization( + ElectricityProblem, + esdl_file_name="Electric_bus4_logical_links.esdl", + base_folder=base_folder, + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + results = problem.extract_results() + + np.testing.assert_allclose( + results["ElectricityDemand_281a.Electricity_demand"] + + results["ElectricityDemand_e527.Electricity_demand"], + results["ElectricityProducer_17a1.Electricity_source"] + + results["ElectricityProducer_a215.Electricity_source"], + ) + + def test_logical_links_gas(self): + """ + This test checks if the logic implemented for logically linked energy system, Meaning an + energy system where assets are directly connected to each other without a network + (transport asset(s)) in between. + + Checks: + 1. Check that energy is conserved + + """ + import models.unit_cases_gas.multi_demand_source_node.src.run_test as example + from models.unit_cases_gas.multi_demand_source_node.src.run_test import GasProblem + + base_folder = Path(example.__file__).resolve().parent.parent + + problem = run_esdl_mesido_optimization( + GasProblem, + esdl_file_name="test_logical_links.esdl", + base_folder=base_folder, + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + results = problem.extract_results() + + np.testing.assert_allclose( + results["GasDemand_47d0.Gas_demand_mass_flow"] + + results["GasDemand_7978.Gas_demand_mass_flow"], + results["GasProducer_a977.Gas_source_mass_flow"] + + results["GasProducer_3573.Gas_source_mass_flow"], + ) + + def test_logical_links_nodes(self): + """ + This test checks if the logic implemented for a partially logically linked energy system. + Meaning an energy system where assets are directly connected to each other without a network + (transport asset(s)) in between. This specific test covers the logical connection between + two nodes. + """ + + import models.unit_cases_gas.source_pipe_split_sink.src.run_source_sink as example + from models.unit_cases_gas.source_pipe_split_sink.src.run_source_sink import GasProblem + + base_folder = Path(example.__file__).resolve().parent.parent + + problem = run_esdl_mesido_optimization( + GasProblem, + esdl_file_name="split_with_logical_link.esdl", + base_folder=base_folder, + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries.csv", + ) + results = problem.extract_results() + + demand_matching_test(problem, results) + + # We check that no artificial gas in created + np.testing.assert_allclose( + results["GasProducer_0876.GasOut.Q"], results["GasDemand_a2d8.GasIn.Q"] + ) + + # We test conservaiton of flow at the nodes + for node, connected_pipes in problem.energy_system_topology.gas_nodes.items(): + discharge_sum = 0.0 + + for i_conn, (_pipe, orientation) in connected_pipes.items(): + discharge_sum += results[f"{node}.GasConn[{i_conn+1}].Q"] * orientation + np.testing.assert_allclose( + results[f"{node}.GasConn[{i_conn+1}].H"], results[f"{node}.H"], atol=1.0e-6 + ) + np.testing.assert_allclose(discharge_sum, 0.0, atol=1.0e-12) + + def test_logical_links_nodes_heat(self): + """ + This test checks if the logic implemented for a partially logically linked energy system. + Meaning an energy system where assets are directly connected to each other without a network + (transport asset(s)) in between. This specific test covers the logical connection between + two nodes in a heat network. Please note that due to the closed system constraints we need + to set the minimum velocity to zero to avoid backflow in the solution. + """ + + import models.source_pipe_split_sink.src.double_pipe_heat as example + from models.source_pipe_split_sink.src.double_pipe_heat import SourcePipeSink + + base_folder = Path(example.__file__).resolve().parent.parent + + problem = run_esdl_mesido_optimization( + SourcePipeSink, + esdl_file_name="sourcesink_with_node2node_logical_link.esdl", + base_folder=base_folder, + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_import.csv", + ) + results = problem.extract_results() + + demand_matching_test(problem, results) + energy_conservation_test(problem, results) + heat_to_discharge_test(problem, results) + + # We test conservaiton of flow at the nodes + for node, connected_pipes in problem.energy_system_topology.nodes.items(): + discharge_sum = 0.0 + + for i_conn, (_pipe, orientation) in connected_pipes.items(): + discharge_sum += results[f"{node}.HeatConn[{i_conn+1}].Q"] * orientation + np.testing.assert_allclose( + results[f"{node}.HeatConn[{i_conn+1}].H"], results[f"{node}.H"], atol=1.0e-6 + ) + np.testing.assert_allclose(discharge_sum, 0.0, atol=1.0e-12) + + def test_logical_links_network_hybrid(self): + """ + This test checks if the logic implemented for logically linked energy system, Meaning an + energy system where assets are directly connected to each other without a network + (transport asset(s)) in between. This test uses the emerge use-case and the logic is both + checked for the gas and heat commodity. + + Checks: + 1. Check that energy is conserved + + """ + import models.emerge.src.example as example + from models.emerge.src.example import EmergeTest + + base_folder = Path(example.__file__).resolve().parent.parent + + problem = run_esdl_mesido_optimization( + EmergeTest, + base_folder=base_folder, + esdl_file_name="emerge_with_logical_links.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_short.csv", + ) + results = problem.extract_results() + + assert all( + results["ElectricityCable_e388.ElectricityIn.V"] + == results["Bus_24cf.ElectricityConn[3].V"] + ) + + assert ( + np.sum( + np.abs( + results["WindPark_9074.ElectricityOut.V"] + - results["Bus_24cf.ElectricityConn[3].V"] + ) + ) + != 0.0 + ) diff --git a/tests/test_multicommodity.py b/tests/test_multicommodity.py index f1f431406..010537eed 100644 --- a/tests/test_multicommodity.py +++ b/tests/test_multicommodity.py @@ -229,8 +229,15 @@ def test_heat_pump_elec_price_profile(self): base_folder = Path(run_hp_elec.__file__).resolve().parent.parent + class TestProblem(ElectricityProblemPriceProfile): + def solver_options(self): + options = super().solver_options() + # For some reason the test requires cbc, highs fails for strange reasons + options["solver"] = "cbc" + return options + solution = run_esdl_mesido_optimization( - ElectricityProblemPriceProfile, + TestProblem, base_folder=base_folder, esdl_file_name="heat_pump_elec_priceprofile.esdl", esdl_parser=ESDLFileParser, diff --git a/tests/test_warmingup_unit_cases.py b/tests/test_warmingup_unit_cases.py index 19439580d..ad1ac9876 100644 --- a/tests/test_warmingup_unit_cases.py +++ b/tests/test_warmingup_unit_cases.py @@ -183,7 +183,7 @@ def test_3a(self): results[f"{buffer}.Stored_heat"][-1] - results[f"{buffer}.Stored_heat"][0], np.sum(results[f"{buffer}.Heat_buffer"][1:] * 3600.0) - np.sum(results[f"{buffer}.Heat_loss"][1:] * 3600.0), - atol=1.0e-3, + atol=1.0, ) np.testing.assert_allclose(results[f"{buffer}.Heat_buffer"][0], 0.0, atol=1.0e-6) diff --git a/tests/utils_tests.py b/tests/utils_tests.py index 92e5b4958..a77320fcc 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -170,7 +170,10 @@ def heat_to_discharge_test(solution, results): print(d, max(abs(results[f"{d}.HeatOut.Heat"] - results[f"{d}.Q"] * rho * cp * supply_t))) np.testing.assert_allclose( - results[f"{d}.HeatOut.Heat"], results[f"{d}.Q"] * rho * cp * supply_t, atol=tol + results[f"{d}.HeatOut.Heat"], + results[f"{d}.Q"] * rho * cp * supply_t, + atol=5.0, + rtol=1.0e-4, ) for d in [ From 0f434f863c34cd650faf41e79218543230dc07be Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Wed, 21 Aug 2024 12:10:42 +0200 Subject: [PATCH 212/275] Updates after use case challanges (#153) - Increase solve time to 600s stage 1, priority 1 - Add error check for generic consumer - Updated test cases - Add error check and exit for when stage 1, priority 1 was not successful --- CHANGELOG.md | 4 ++- src/mesido/esdl/profile_parser.py | 30 +++++++++++++------ src/mesido/workflows/grow_workflow.py | 29 ++++++++++++++++-- .../1a_with_influx_profiles_error_check.esdl | 2 +- tests/test_profile_parsing.py | 25 ++++++++++++++-- 5 files changed, 73 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91ca42133..ef2e27891 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,15 @@ # [Unreleased] - 2024-08-20 ## Added +- User feedback regarding demand type to be used in heat networks - Functionality to connect assets with logical links ## Changed +- Increased time limit for stage 1, priority 1 - Replaced Retry loop to connect all assets and apply the correct modifiers of the linked assets ## Fixed -- xxxx +- Error exit when stage 1, priority 1 was not successful # [0.1.7] - 2024-08-16 diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index ac4d55808..5753786b4 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -38,6 +38,7 @@ class BaseProfileReader: "gas_demand": ".target_gas_demand", "gas_source": ".maximum_gas_source", } + carrier_profile_var_name: str = ".price_profile" def __init__(self, energy_system: esdl.EnergySystem, file_path: Optional[Path]): @@ -45,6 +46,11 @@ def __init__(self, energy_system: esdl.EnergySystem, file_path: Optional[Path]): self._energy_system: esdl.EnergySystem = energy_system self._file_path: Optional[Path] = file_path self._reference_datetimes: Optional[pd.DatetimeIndex] = None + self._asset_potential_errors_identified: Dict[str, Dict] = { + "heat_demand.power": {}, # error type, heat demand name, error message + "cold_demand.power": {}, # error type, cold demand name, error message + "heat_demand.type": {}, # error type, heat demand name, error message + } def read_profiles( self, @@ -54,7 +60,7 @@ def read_profiles( esdl_assets: Dict[str, Asset], carrier_properties: Dict[str, Dict], ensemble_size: int, - ) -> None: + ) -> Dict[str, Dict]: """ This function takes a datastore and a dictionary of milp network components and loads a profile for each demand and source in the provided milp network components into the @@ -100,12 +106,6 @@ def read_profiles( zip(esdl_asset_id_to_name_map.values(), esdl_asset_id_to_name_map.keys()) ) - # Define variable containing potential error information - asset_potential_errors = { - "heat_demand.power": {}, # error type, heat demand name, error message - "cold_demand.power": {}, # error type, cold demand name, error message - } - for ensemble_member in range(ensemble_size): for component_type, var_name in self.component_type_to_var_name_map.items(): for component in energy_system_components.get(component_type, []): @@ -135,7 +135,9 @@ def read_profiles( if component_type in ["heat_demand", "cold_demand"]: max_profile_value = max(values) if asset_power < max_profile_value: - asset_potential_errors[f"{component_type}.power"][component] = ( + self._asset_potential_errors_identified[f"{component_type}.power"][ + component + ] = ( f"{component}: The installed capacity of" f" {round(asset_power / 1.0e6, 3)}MW should be larger than the" " maximum of the heat demand profile " @@ -157,7 +159,7 @@ def read_profiles( values=profile, ensemble_member=ensemble_member, ) - return asset_potential_errors + return self._asset_potential_errors_identified def _load_profiles_from_source( self, @@ -193,6 +195,7 @@ def _load_profiles_from_source( class InfluxDBProfileReader(BaseProfileReader): asset_type_to_variable_name_conversion = { esdl.esdl.HeatingDemand: ".target_heat_demand", + esdl.esdl.GenericConsumer: ".target_heat_demand", esdl.esdl.HeatProducer: ".maximum_heat_source", esdl.esdl.ElectricityDemand: ".target_electricity_demand", esdl.esdl.ElectricityProducer: ".maximum_electricity_source", @@ -295,12 +298,21 @@ def _load_profiles_from_source( var_base_name = asset.name try: variable_suffix = self.asset_type_to_variable_name_conversion[type(asset)] + # For multicommidity work profiles need to be assigned to GenericConsumer, but + # not for heat network (this asset_potential_errors is used in grow_workflow) + if type(asset) is esdl.GenericConsumer: + # asset_potential_errors + self._asset_potential_errors_identified["heat_demand.type"][asset.name] = ( + f"Asset {asset.name}: This asset is currently a GenericConsumer please" + " change it to a HeatingDemand" + ) except KeyError: raise RuntimeError( f"The asset {profile.field} is of type {type(asset)} which is " f"currently not supported to have a profile to be loaded " f"from the database." ) + exit(1) else: raise RuntimeError( f"Got a profile for a {container}. Currently only profiles " diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index b092a9fe2..1b874f5cb 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -3,6 +3,7 @@ import os import sys import time +from typing import Dict from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin from mesido.esdl.esdl_mixin import ESDLMixin @@ -160,7 +161,7 @@ def __init__(self, *args, **kwargs): self._save_json = False - self._asset_potential_errors = dict() + self._asset_potential_errors = Dict[str, Dict] def parameters(self, ensemble_member): parameters = super().parameters(ensemble_member) @@ -196,6 +197,13 @@ def read(self): " listed." ) is_error = True + elif error_type in ["heat_demand.type"]: + if len(errors) > 0: + for asset_name in errors: + logger.error(self._asset_potential_errors[error_type][asset_name]) + logger.error("Incorrect asset type: please update.") + is_error = True + if is_error: exit(1) # end error checking @@ -232,13 +240,14 @@ def path_goals(self): bounds = self.bounds() for demand in self.energy_system_components["heat_demand"]: - # target = self.get_timeseries(f"{demand}.target_heat_demand_peak") target = self.get_timeseries(f"{demand}.target_heat_demand") if bounds[f"{demand}.HeatIn.Heat"][1] < max(target.values): logger.warning( f"{demand} has a flow limit, {bounds[f'{demand}.HeatIn.Heat'][1]}, " f"lower that wat is required for the maximum demand {max(target.values)}" ) + # TODO: update this caclulation to bounds[f"{demand}.HeatIn.Heat"][1]/ dT * Tsup & move + # to potential_errors variable state = f"{demand}.Heat_demand" goals.append(TargetHeatGoal(state, target)) @@ -293,7 +302,7 @@ def solver_options(self): if options["solver"] == "highs": highs_options = options["highs"] if self.__priority == 1: - highs_options["time_limit"] = 100 + highs_options["time_limit"] = 600 else: highs_options["time_limit"] = 100000 return options @@ -646,6 +655,20 @@ def run_end_scenario_sizing( total_stages=2, **kwargs, ) + # Error checking + solver_success, _ = solution.solver_success(solution.solver_stats, False) + if not solver_success: + if ( + solution.solver_stats["return_status"] == "Time limit reached" + and solution.objective_value > 1e-6 + and solution._stage == 1 + ): + logger.error("Optimization maximum allowed time limit reached for stage_1, goal_1") + exit(1) + else: + logger.error("Unsuccessful: unexpected error for stage_1, goal_1") + exit(1) + results = solution.extract_results() parameters = solution.parameters(0) bounds = solution.bounds() diff --git a/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check.esdl b/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check.esdl index afcb33e10..389762d84 100644 --- a/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check.esdl +++ b/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check.esdl @@ -17,7 +17,7 @@ - + diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index 2005c9962..6c13f8e24 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -29,8 +29,8 @@ def _load_profile_timeseries_from_database(self, profile: esdl.InfluxDBProfile) return self._loaded_profiles[profile.id] -class TestProfileLoading(unittest.TestCase): - def test_insufficient_capacity(self): +class TestPotentialErros(unittest.TestCase): + def test_asset_potential_errors(self): """ This test checks that the error checks in the code for sufficient installed cool/heatig capacity of a cold/heat demand is sufficient (grow_workflow) @@ -77,6 +77,24 @@ def test_insufficient_capacity(self): " larger than the maximum of the heat demand profile 1957.931MW", True, ) + np.testing.assert_equal( + logs_list[3].msg == "Asset insufficient installed capacity: please increase the" + " installed power or reduce the demand profile peak value of the demand(s) listed.", + True, + ) + # d + np.testing.assert_equal( + logs_list[4].msg == "Asset HeatingDemand_2ab9: This asset is currently a" + " GenericConsumer please change it to a HeatingDemand", + True, + ) + np.testing.assert_equal( + logs_list[5].msg == "Incorrect asset type: please update.", + True, + ) + + +class TestProfileLoading(unittest.TestCase): def test_loading_from_influx(self): """ @@ -233,7 +251,8 @@ def test_loading_from_csv_with_influx_profiles_given(self): if __name__ == "__main__": # unittest.main() a = TestProfileLoading() - a.test_insufficient_capacity() + b = TestPotentialErros() + b.test_asset_potential_errors() a.test_loading_from_influx() a.test_loading_from_csv() a.test_loading_from_xml() From d533fcbb13dabf63842be4cbb746efe035399583 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Fri, 23 Aug 2024 14:34:00 +0200 Subject: [PATCH 213/275] Update info for version release (#156) Updated changelog for new MESIDO release --- CHANGELOG.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef2e27891..e4a76ec74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,25 +1,26 @@ -# [Unreleased] - 2024-08-20 +# [Unreleased] - 2024-08-23 ## Added -- User feedback regarding demand type to be used in heat networks -- Functionality to connect assets with logical links +- xxx ## Changed -- Increased time limit for stage 1, priority 1 -- Replaced Retry loop to connect all assets and apply the correct modifiers of the linked assets +- xxx ## Fixed -- Error exit when stage 1, priority 1 was not successful +- xxx + -# [0.1.7] - 2024-08-16 +# [0.1.7] - 2024-08-23 ## Added -- xxxx +- User feedback regarding demand type to be used in heat networks +- Functionality to connect assets with logical links ## Changed -- xxxx +- Increased time limit for stage 1, priority 1 +- Replaced Retry loop to connect all assets and apply the correct modifiers of the linked assets ## Fixed -- xxxx +- Error exit when stage 1, priority 1 was not successful From 13e5379ca17a6255f7941ba82dcb1fa033d65e7b Mon Sep 17 00:00:00 2001 From: JimRojer-TNO <137045207+jimrojerTNO@users.noreply.github.com> Date: Wed, 18 Sep 2024 13:50:26 +0200 Subject: [PATCH 214/275] removing some old rtc-tools-heat-network stuff (#160) Updating Readme removing some old wrong naming and fixing links --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 37d31578d..6f4762c58 100644 --- a/README.md +++ b/README.md @@ -5,16 +5,17 @@ operation of Energy Systems with the current main focus on District Heating Syst All physics, placement, sizing and financial models are combined in the TechnoEconomicMixin class. When inherited this class can be combined with objective functions (that typically incorporate the financial aspects) and interface methods to create an optimization workflow (see also running an example). -The main supported method for defining your Energy system is ESDL (Energy System Description Language), which is a modelling language for energy systems. See also:https://github.com/EnergyTransition/ESDL. +The main supported method for defining your Energy system is ESDL (Energy System Description Language), which is a modelling language for energy systems. See also: https://github.com/EnergyTransition/ESDL. With ESDL you can define assets like demands, sources, pipes, etc. and fill in their attributes. The ESDLMixin class will parse the ESDL file and utilize the attributes to build up the model representation. -The documentation on the mathematical modelling and workflow application can be found on: `readthedocs `. +The documentation on the mathematical modelling and workflow application can be found on: +readthedocs: https://mesido.readthedocs.io/en/latest/. Installation ============ -Installation of the RTC-Tools Heat Network library is as simple as:: +Installation of the MESIDO library is as simple as:: # 1a. Use pip to install directly pip install mesido @@ -25,7 +26,7 @@ If you are going to develop and change the source code, you probably want to do git clone https://github.com/Multi-Energy-Systems-Optimization/mesido pip install -e mesido -RTC-Tools Heat Network depends on `RTC-Tools `_, which is automatically installed as one of its dependencies. +MESIDO depends on `RTC-Tools `_, which is automatically installed as one of its dependencies. Running an example ================== @@ -42,7 +43,7 @@ These do not come with the installation, and need to be downloaded separately:: # 3. Run the example python example.py -You will see the progress of RTC-Tools in your shell. +You will see the progress in your shell. If all is well, you should see something like the following output: ![img.png](img.png) From ce52c3864a14d9f41564d2378d1415ae280e1bac Mon Sep 17 00:00:00 2001 From: Jaimepatt Date: Thu, 3 Oct 2024 13:09:17 +0200 Subject: [PATCH 215/275] Create tutorial esdl (#171) Added the 'esdl_generator.py' that generates the tutorial esdl using pyesdl. By default it generates the given esdl, but the inputs can be modified to customize it. --- examples/PoCTutorial/src/esdl_generator.py | 478 +++++++++++++++++++++ 1 file changed, 478 insertions(+) create mode 100644 examples/PoCTutorial/src/esdl_generator.py diff --git a/examples/PoCTutorial/src/esdl_generator.py b/examples/PoCTutorial/src/esdl_generator.py new file mode 100644 index 000000000..afad41434 --- /dev/null +++ b/examples/PoCTutorial/src/esdl_generator.py @@ -0,0 +1,478 @@ +import os +from uuid import uuid4 + +import esdl +from esdl.esdl_handler import EnergySystemHandler + +from pyecore.ecore import EDate + + +def create_in_out_ports(asset, in_carrier, out_carrier, demand_profile=None): + # Adds in an out ports to an assets and assigns them the corresponding carriers. + in_port = esdl.InPort(id=str(uuid4()), name="In_port", carrier=in_carrier) + out_port = esdl.OutPort(id=str(uuid4()), name="Out_port", carrier=out_carrier) + if demand_profile is not None: + in_port.profile.append(demand_profile) + asset.port.append(in_port) + asset.port.append(out_port) + + +def get_in_out_ports(asset): + # Gets the ports of an asset and sorts them as in and out. + for port in asset.port: + if isinstance(port, esdl.InPort): + in_port = port + else: + out_port = port + return in_port, out_port + + +def add_geometry_point(asset, lat_lon_list): + # Adds an esdl point to an asset. + point = esdl.Point(lat=lat_lon_list[0], lon=lat_lon_list[1]) + asset.geometry = point + + +def define_area(area, points): + # Creates a polygon given a series of points and assigns it to the given area. + area.geometry = esdl.Polygon() + area_shape = esdl.SubPolygon() + for point in points: + point_add = esdl.Point(lat=point[0], lon=point[1]) + area_shape.point.append(point_add) + area.geometry.exterior = area_shape + + +def create_cost_value_profile(cost_value, unit, per_unit=None, per_multiplier=None): + # Creates a cost profile with a single constant value that can be used to be assigned + # to any asset. + qua_per = esdl.QuantityAndUnitType(id=str(uuid4())) + qua_per.unit = esdl.UnitEnum.from_string(unit) + if per_unit is not None: + qua_per.perUnit = esdl.UnitEnum.from_string(per_unit) + if per_multiplier is not None: + qua_per.perMultiplier = esdl.MultiplierEnum.from_string(per_multiplier) + qua_per.physicalQuantity = esdl.PhysicalQuantityEnum.from_string("COST") + esdl_cost_profile = esdl.SingleValue( + id=str(uuid4()), value=cost_value, profileQuantityAndUnit=qua_per + ) + + return esdl_cost_profile + + +def import_demand_profile(demand_profile_parameters, profile_quantity): + # Imports the demand profile from InfluxDB and creates the demand object. + # demand_profile_parameters is a dictionary (see below) and the profile quantity + # must be an esdl.QuantityAndUnitType object. + + demand_profile = esdl.InfluxDBProfile( + id=str(uuid4()), + multiplier=demand_profile_parameters["multiplier"], + database=demand_profile_parameters["database"], + measurement=demand_profile_parameters["measurement"], + host=demand_profile_parameters["host"], + field=demand_profile_parameters["field"], + port=demand_profile_parameters["port"], + startDate=demand_profile_parameters["startDate"], + endDate=demand_profile_parameters["endDate"], + ) + + demand_profile.profileQuantityAndUnit = esdl.QuantityAndUnitReference( + reference=profile_quantity + ) + + return demand_profile + + +def create_joint(joint_name, carrier, location, area): + # Creates a joint, assigns it its carrier and ports and appends it to + # the selected area + + joint = esdl.Joint(id=str(uuid4()), name=joint_name) + create_in_out_ports(joint, carrier, carrier) + add_geometry_point(joint, location) + area.asset.append(joint) + + return joint + + +def create_pipe( + name_pipe, from_asset, to_asset, carrier, area, elbow_point=None, state_pipe="ENABLED" +): + # Creates a pipe, connects it to its corresponding assets, assigns it its + # carrier, geometry and state ("ENABLED" or "OPTIONAL") and appends it to + # its corresponding area. + + pipe = esdl.Pipe(id=str(uuid4()), diameter=pipe_d, name=name_pipe, state=state_pipe) + create_in_out_ports(pipe, carrier, carrier) + + _, connect_from = get_in_out_ports(from_asset) + connect_to, _ = get_in_out_ports(to_asset) + pipe_ports = get_in_out_ports(pipe) + # Connect the corresponding ports to each other + for port in pipe_ports: + if isinstance(port, esdl.InPort): + port.connectedTo.append(connect_from) + pipe_start = esdl.Point(lat=from_asset.geometry.lat, lon=from_asset.geometry.lon) + else: + port.connectedTo.append(connect_to) + pipe_end = esdl.Point(lat=to_asset.geometry.lat, lon=to_asset.geometry.lon) + # Configure pipe geometry + pipe.geometry = esdl.Line() + pipe.geometry.point.append(pipe_start) + if elbow_point: + pipe_elbow = esdl.Point(lat=elbow_point[0], lon=elbow_point[1]) + pipe.geometry.point.append(pipe_elbow) + pipe.geometry.point.append(pipe_end) + + area.asset.append(pipe) + + return pipe + + +if __name__ == "__main__": + + # -------------------------------------------------- # + # INPUT # + # -------------------------------------------------- # + + esdl_file_name = "tutorial_generated.esdl" # Name of the output esdl file. + save_folder = "examples/PoCTutorial/model" # Folder to output the esdl to. + + # System parameters + temp_supply = 80.0 # degC + temp_ret = 30.0 # degC + + # Heat demand 1 parameters + demand_1_power = 15e6 # W + demand_1_inv_cost = 1e6 # eur/MW + demand_1_inst_cost = 1e6 # eur + area_1_coord = [ + [52.003232185574326, 4.376142024993897], + [52.002228236493224, 4.372107982635499], + [52.0031132980428, 4.3712711334228525], + [52.00197724570447, 4.366979598999024], + [51.99826505971136, 4.369254112243653], + [51.99945404958839, 4.373760223388673], + [51.995635958872874, 4.3776869773864755], + [51.9963626102222, 4.380712509155274], + ] + demand_1_coord = [52.00107, 4.37353] + demand_1_profile_params = { + "multiplier": 0.75, + "database": "energy_profiles", + "measurement": "WarmingUp default profiles", + "host": "profiles.warmingup.info", + "field": "demand4_MW", + "port": 443, + "startDate": EDate.from_string("2018-12-31T23:00:00.000000+0000"), + "endDate": EDate.from_string("2019-12-31T22:00:00.000000+0000"), + } + + # Demand 2 parameters + demand_2_power = 15e6 # W + demand_2_inv_cost = 1e6 # eur/MW + demand_2_inst_cost = 1e6 # eur + area_2_coord = [ + [51.99817258139733, 4.3692970275878915], + [51.99932194116153, 4.373695850372315], + [51.99534529503086, 4.376678466796876], + [51.99624370444482, 4.38081979751587], + [51.99490929572965, 4.381613731384278], + [51.99272923553559, 4.372708797454835], + ] + demand_2_coord = [51.99653, 4.3731] + demand_2_profile_params = { + "multiplier": 0.5, + "database": "energy_profiles", + "measurement": "WarmingUp default profiles", + "host": "profiles.warmingup.info", + "field": "demand4_MW", + "port": 443, + "startDate": EDate.from_string("2018-12-31T23:00:00.000000+0000"), + "endDate": EDate.from_string("2019-12-31T22:00:00.000000+0000"), + } + + # Demand 3 parameters + demand_3_power = 15e6 # W + demand_3_inv_cost = 1e6 # eur/MW + demand_3_inst_cost = 1e6 # eur + area_3_coord = [ + [51.992279997820766, 4.372987747192384], + [51.994235470276436, 4.382214546203614], + [51.989333415199866, 4.38581943511963], + [51.98688879367896, 4.37633514404297], + ] + demand_3_coord = [51.99074, 4.3791] + demand_3_profile_params = { + "multiplier": 0.3, + "database": "energy_profiles", + "measurement": "WarmingUp default profiles", + "host": "profiles.warmingup.info", + "field": "demand4_MW", + "port": 443, + "startDate": EDate.from_string("2018-12-31T23:00:00.000000+0000"), + "endDate": EDate.from_string("2019-12-31T22:00:00.000000+0000"), + } + + # Source 1 parameters + source_1_power = 50e6 # W + source_1_inv_cost = 1.5e6 # eur/MW + source_1_inst_cost = 10e6 # eur + source_1_varop_cost = 100.0 # eur/MWh + source_1_fixop_cost = 6e5 # eur/MW + prod_1_coord = [52.00483, 4.37272] + + # Source 2 parameters + source_2_power = 50e6 # W + source_2_inv_cost = 2e6 # eur/MW + source_2_inst_cost = 20e6 # eur + source_2_varop_cost = 200.0 # eur/MWh + source_2_fixop_cost = 9e5 # eur/MW + prod_2_coord = [51.99543, 4.36457] + + # Joints + joint_1_coord = [52.00098, 4.36702] + joint_2_coord = [51.99596, 4.36951] + joint_1ret_coord = [52.00033, 4.36646] + joint_2ret_coord = [51.99537, 4.36895] + + # Pipes + pipe_diam = "DN400" # Assumes all pipes have the same diameter. + pipe_1_elbow_coord = [52.00353, 4.36593] + pipe_3_elbow_coord = [51.9898, 4.37191] + pipe_1ret_elbow_coord = [52.00363, 4.36492] + pipe_3ret_elbow_coord = [51.98922, 4.3717] + + # -------------------------------------------------- # + # PROCESSING # + # -------------------------------------------------- # + + esh = EnergySystemHandler() + energy_system = esh.create_empty_energy_system(name="Generated PoC tutorial") + main_area = energy_system.instance[0].area # Logical high level area. + + # Create heat carriers + heat_commodity_primary = esdl.HeatCommodity( + id=str(uuid4()), name="HeatCommodityPrimary", supplyTemperature=temp_supply + ) + heat_commodity_ret = esdl.HeatCommodity( + id=str(uuid4()), name="HeatCommodityRet", returnTemperature=temp_ret + ) + heat_carrs = esdl.Carriers(id=str(uuid4())) + heat_carrs.carrier.append(heat_commodity_primary) + heat_carrs.carrier.append(heat_commodity_ret) + id_primary_carr = heat_commodity_primary.id + id_ret_carr = heat_commodity_ret.id + esi = esh.energy_system.energySystemInformation + if not esi: + esi = esdl.EnergySystemInformation(id=str(uuid4())) + esh.energy_system.energySystemInformation = esi + esh.add_object(esi) + + quantities = esdl.QuantityAndUnits(id=str(uuid4())) + power_quantity = esdl.QuantityAndUnitType( + id=str(uuid4()), + description="Power in MW", + physicalQuantity="POWER", + multiplier="MEGA", + unit="WATT", + ) + quantities.quantityAndUnit.append(power_quantity) + + esi.quantityAndUnits = quantities + esi.carriers = heat_carrs + + # Area 1 (demand 1) + area_1 = esdl.Area(id=str(uuid4()), name="Area_demand_1") + define_area(area_1, area_1_coord) + main_area.area.append(area_1) + + heat_demand_1 = esdl.HeatingDemand(id=str(uuid4()), name="Heat_demand1") + area_1.asset.append(heat_demand_1) + add_geometry_point(heat_demand_1, demand_1_coord) + heat_demand_1.power = demand_1_power + + heat_demand_1.costInformation = esdl.CostInformation(id=str(uuid4())) + cost_info = heat_demand_1.costInformation + cost_info.investmentCosts = create_cost_value_profile( + demand_1_inv_cost, "EURO", per_unit="WATT", per_multiplier="MEGA" + ) + cost_info.installationCosts = create_cost_value_profile(demand_1_inst_cost, "EURO") + + in_carrier = heat_commodity_primary + out_carrier = heat_commodity_ret + + heat_demand_profile = import_demand_profile(demand_1_profile_params, power_quantity) + create_in_out_ports(heat_demand_1, in_carrier, out_carrier, demand_profile=heat_demand_profile) + + # Area 2 (demand 2) + area_2 = esdl.Area(id=str(uuid4()), name="Area_demand_2") + define_area(area_2, area_2_coord) + main_area.area.append(area_2) + + heat_demand_2 = esdl.HeatingDemand(id=str(uuid4()), name="Heat_demand2") + area_2.asset.append(heat_demand_2) + add_geometry_point(heat_demand_2, demand_2_coord) + heat_demand_2.power = demand_2_power + + heat_demand_2.costInformation = esdl.CostInformation(id=str(uuid4())) + cost_info = heat_demand_2.costInformation + cost_info.investmentCosts = create_cost_value_profile( + demand_2_inv_cost, "EURO", per_unit="WATT", per_multiplier="MEGA" + ) + cost_info.installationCosts = create_cost_value_profile(demand_2_inst_cost, "EURO") + + in_carrier = heat_commodity_primary + out_carrier = heat_commodity_ret + + heat_demand_profile = import_demand_profile(demand_2_profile_params, power_quantity) + create_in_out_ports(heat_demand_2, in_carrier, out_carrier, demand_profile=heat_demand_profile) + + # Area 3 (demand 3) + area_3 = esdl.Area(id=str(uuid4()), name="Area_demand_3") + define_area(area_3, area_3_coord) + main_area.area.append(area_3) + + heat_demand_3 = esdl.HeatingDemand(id=str(uuid4()), name="Heat_demand3") + area_3.asset.append(heat_demand_3) + add_geometry_point(heat_demand_3, demand_3_coord) + heat_demand_3.power = demand_3_power + + heat_demand_3.costInformation = esdl.CostInformation(id=str(uuid4())) + cost_info = heat_demand_3.costInformation + cost_info.investmentCosts = create_cost_value_profile( + demand_3_inv_cost, "EURO", per_unit="WATT", per_multiplier="MEGA" + ) + cost_info.installationCosts = create_cost_value_profile(demand_3_inst_cost, "EURO") + + in_carrier = heat_commodity_primary + out_carrier = heat_commodity_ret + + heat_demand_profile = import_demand_profile(demand_3_profile_params, power_quantity) + create_in_out_ports(heat_demand_3, in_carrier, out_carrier, demand_profile=heat_demand_profile) + + # Main area (sources) + heat_source_1 = esdl.ResidualHeatSource(id=str(uuid4()), name="Heat_source1", state="OPTIONAL") + heat_source_2 = esdl.ResidualHeatSource(id=str(uuid4()), name="Heat_source2", state="OPTIONAL") + main_area.asset.append(heat_source_1) + main_area.asset.append(heat_source_2) + add_geometry_point(heat_source_1, prod_1_coord) + add_geometry_point(heat_source_2, prod_2_coord) + + heat_source_1.power = source_1_power + heat_source_2.power = source_2_power + + heat_source_1.costInformation = esdl.CostInformation(id=str(uuid4())) + cost_info = heat_source_1.costInformation + cost_info.investmentCosts = create_cost_value_profile( + source_1_inv_cost, "EURO", per_unit="WATT", per_multiplier="MEGA" + ) + cost_info.installationCosts = create_cost_value_profile(source_1_inst_cost, "EURO") + cost_info.variableOperationalCosts = create_cost_value_profile( + source_1_varop_cost, "EURO", per_unit="WATTHOUR", per_multiplier="MEGA" + ) + cost_info.fixedOperationalCosts = create_cost_value_profile( + source_1_fixop_cost, "EURO", per_unit="WATT", per_multiplier="MEGA" + ) + + heat_source_2.costInformation = esdl.CostInformation(id=str(uuid4())) + cost_info = heat_source_2.costInformation + cost_info.investmentCosts = create_cost_value_profile( + source_2_inv_cost, "EURO", per_unit="WATT", per_multiplier="MEGA" + ) + cost_info.installationCosts = create_cost_value_profile(source_2_inst_cost, "EURO") + cost_info.variableOperationalCosts = create_cost_value_profile( + source_2_varop_cost, "EURO", per_unit="WATTHOUR", per_multiplier="MEGA" + ) + cost_info.fixedOperationalCosts = create_cost_value_profile( + source_2_fixop_cost, "EURO", per_unit="WATT", per_multiplier="MEGA" + ) + + in_carrier = heat_commodity_ret + out_carrier = heat_commodity_primary + create_in_out_ports(heat_source_1, in_carrier, out_carrier) + in_carrier = heat_commodity_ret + out_carrier = heat_commodity_primary + create_in_out_ports(heat_source_2, in_carrier, out_carrier) + + # Main netowrk joints joints + primary_carr = heat_commodity_primary + + joint_1 = create_joint("Joint_1", primary_carr, joint_1_coord, main_area) + joint_2 = create_joint("Joint_2", primary_carr, joint_2_coord, main_area) + + # Primary network pipes + pipe_d = esdl.PipeDiameterEnum.from_string(pipe_diam) # Pipe diameters + + pipe_1 = create_pipe( + "Pipe_1", + heat_source_1, + joint_1, + primary_carr, + main_area, + elbow_point=pipe_1_elbow_coord, + state_pipe="OPTIONAL", + ) + + pipe_2 = create_pipe( + "Pipe_2", + joint_1, + joint_2, + primary_carr, + main_area, + ) + + pipe_3 = create_pipe( + "Pipe_3", joint_2, heat_demand_3, primary_carr, main_area, elbow_point=pipe_3_elbow_coord + ) + + pipe_4 = create_pipe("Pipe_4", joint_1, heat_demand_1, primary_carr, main_area) + + pipe_5 = create_pipe("Pipe_5", joint_2, heat_demand_2, primary_carr, main_area) + + pipe_6 = create_pipe( + "Pipe_6", heat_source_2, joint_2, primary_carr, main_area, state_pipe="OPTIONAL" + ) + + # Return network joints + ret_carr = heat_commodity_ret + + joint_1ret = create_joint("Joint_1ret", ret_carr, joint_1ret_coord, main_area) + joint_2ret = create_joint("Joint_2ret", ret_carr, joint_2ret_coord, main_area) + + # Return network pipes. + + pipe_1ret = create_pipe( + "Pipe_1ret", + joint_1ret, + heat_source_1, + ret_carr, + main_area, + elbow_point=pipe_1ret_elbow_coord, + state_pipe="OPTIONAL", + ) + + pipe_2ret = create_pipe("Pipe_2ret", joint_2ret, joint_1ret, ret_carr, main_area) + + pipe_3ret = create_pipe( + "Pipe_3ret", + heat_demand_3, + joint_2ret, + ret_carr, + main_area, + elbow_point=pipe_3ret_elbow_coord, + ) + + pipe_4ret = create_pipe("Pipe_4ret", heat_demand_1, joint_1ret, ret_carr, main_area) + + pipe_5ret = create_pipe("Pipe_5ret", heat_demand_2, joint_2ret, ret_carr, main_area) + + pipe_6ret = create_pipe( + "Pipe_6ret", joint_2ret, heat_source_2, ret_carr, main_area, state_pipe="OPTIONAL" + ) + + # File export and saving + save_dir = save_folder + os.chdir(save_dir) + esh.save(filename=esdl_file_name) From 87e81d9158ca68ba5dacff64a9f00558189de6b4 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Fri, 4 Oct 2024 13:59:51 +0200 Subject: [PATCH 216/275] 54 mesido validation with pandapipes simple model (#169) Added validation test with pandapipes --- CHANGELOG.md | 4 +- README.md | 3 +- docs/images/dH_MESIDO_10_vs_pandapipes.png | Bin 0 -> 43436 bytes docs/theory/heat_physics.rst | 10 + .../pandapipes/input/timeseries_constant.csv | 11 + examples/pandapipes/model/Test_Tree_S1C1.esdl | 57 +++ .../pandapipes/src/pandapipeesdlparser.py | 346 ++++++++++++++++++ examples/pandapipes/src/run_example.py | 125 +++++++ src/mesido/workflows/io/write_output.py | 3 +- tests/test_validation_pandapipes.py | 327 +++++++++++++++++ tox.ini | 6 +- 11 files changed, 885 insertions(+), 7 deletions(-) create mode 100644 docs/images/dH_MESIDO_10_vs_pandapipes.png create mode 100644 examples/pandapipes/input/timeseries_constant.csv create mode 100644 examples/pandapipes/model/Test_Tree_S1C1.esdl create mode 100644 examples/pandapipes/src/pandapipeesdlparser.py create mode 100644 examples/pandapipes/src/run_example.py create mode 100644 tests/test_validation_pandapipes.py diff --git a/CHANGELOG.md b/CHANGELOG.md index e4a76ec74..4ef200afd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ -# [Unreleased] - 2024-08-23 +# [Unreleased] - 2024-09-20 ## Added -- xxx +- Test case: Head loss validation with pandapipes ## Changed - xxx diff --git a/README.md b/README.md index 6f4762c58..519d31034 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ # MESIDO MESIDO is an optimization application for optimal planning, design and -operation of Energy Systems with the current main focus on District Heating Systems (DHS). The current application focuses on a Mixed Integer Linear Problem (MILP) approach, with multiple linearization strategies to conservatively approximate the steady-state physics and financial models. -All physics, placement, sizing and financial models are combined in the TechnoEconomicMixin class. When inherited this class can be combined with objective functions (that typically incorporate the financial aspects) and interface methods to create an +operation of Energy Systems with the current main focus on District Heating Systems (DHS). The current application focuses on a Mixed Integer Linear Problem (MILP) approach, with multiple linearization strategies to conservatively approximate the steady-state physics and financial models. See for example the head loss validation test, using pandapipes, in the test folder. All physics, placement, sizing and financial models are combined in the TechnoEconomicMixin class. When inherited this class can be combined with objective functions (that typically incorporate the financial aspects) and interface methods to create an optimization workflow (see also running an example). The main supported method for defining your Energy system is ESDL (Energy System Description Language), which is a modelling language for energy systems. See also: https://github.com/EnergyTransition/ESDL. diff --git a/docs/images/dH_MESIDO_10_vs_pandapipes.png b/docs/images/dH_MESIDO_10_vs_pandapipes.png new file mode 100644 index 0000000000000000000000000000000000000000..80701035582994f07908bf77d8d515ada3a35843 GIT binary patch literal 43436 zcmeFZcT|ap9KtMp7oRyqGQSp#-4hC}0IjJqENbry(9?3ZB z11LEwIWzUby}y|?Yt5SZWB&WTUYBmKykWn4@2Yz0si*d96(w0x5^53x0s>Oh!+UB3 z1cb8$1gCY*o`JvlL-(Bt{v+aYU&lq=-ps}Qv6Cr*;$s&F8+#WU%O^M7Or4x9?d|xu zg}8Y+Z&;)@Yw#(1>E*d<~(eMQ~vOfza1XxIuj6(Jw|>`Wl3dP5)folq3+$$ z@JLw1yL(*4HZ=Yzo(o}=zN>t;)_ty)q4wb={(sE~InVy{hWfAj(%a97R4)F*`a$jf zsq{Ai&(E^g1{o2e9*%W%?h&I0&Ype7SWQ!hnfduHvC?~s^TJIQKCuClYk@c6-2?=W z)RoFE9RG=c6}}Jt86+YRJ^q7R!1LqZ1kir?K#2U!BjW#Fa_WCyLO}4p+Poa{uqY*T z=jj&nTXf&h%vQV4&CSglt3WMeH$scKLPy6P(YlVQzd$GMVeEO~y6^`{-`%W7U!Jf2 z{;l%*G84bgw!?i{*|8b1zmUB&$Uv!2TqM++q1anu*}J?@dFRd@k_#8=mLz$23eR_y zJ5D?(wH{D<{rWY@`SThtNyuG(kKa*D64z~y=ISl8#YIZ_AMUjw)=5yrb9LSS@3UuB z_BNL^bG5jzdAjPw=3V`0Ci&&L%7eWvZ4VERjL8bWgDS7h#q4k2?nxZ&uX!CEY)#G2 z=VWEEy3Y5Z^vmtA0jCJp@$O@$Z40N6=h_56KjcZ34O80k_>pp7u=Td{w1Q!skM2}k zRBt4k`sCswC#o%8sE~qF=fhYi*LaiTk2Il^d|{Uv&27kzA~|q7y*QPatF3>Jp)>#h}q#sDSFOQVdIy>)4HIFJeIekJ$ zMD)_>=W7|(dTGL?QLQFbnc~Rfo#+~Fxg6}elCx_(R8sQU9img|=KIpCEalr?=Cv_D z2h*ipZig?i8RD&7?~%6}t2>a0`jwWJRx(yyS&4UhTU}kv$aeeoAE_B?DZiSgw^Ysp z1IV=gb`bU5EqQa5?a9Kmi$oIgu?oz!Tch53Wj3*)v|<_chr9BcIU1D3w?3@?NidBm;d>hn#bm{8&;J#O|_XWux`^3Nd!l68|rzkPX55=YP+t_{_tj> zJ*vq&7%sJD*C`t3dTM7h?3XD&Ztvvot}KQ-REA4cM{7J+;)p7Y&5Cu6jErFa@QfMU zkax_xS?%zjpFcme_r4I5e)`hElSdIemDCjU@4smhGuwYAka_pcR!ir-dF;GD_p{FG zF1AH+z~Z49@oO`p1_lPm_Cxjb=j+>xO;2yaP|WYjATXX|Nj2IMzL9k zx1SMgSSHk^OPAyn6&1@@`m)va%Iy*vv%wl-DJhWK9`RjWCoZucla$yRaUL$WH?CSj zp-^61cz1!vU;je&w7g@muVmPRtwVnKa>^M}>Ji=*zAo|9fB*toVF&4kKvH>qN(pv$ zxmxe7=*A~MQo|&3s0FM{euy216cZM^%Ue9~I?YU_L|Bu?MpV^DgCQ75Z`sOdtv+}K z-uRBV+fM_{zQ0fY{8<_dNFI%Nmw*3-w<8uipIbP(s^{qFC<@bS>%6_YYX#;C+o@J^ zdz_HVphD%#moJuUf&cz%(U~9;yHR#*GJ+5898nez6fuEGNzH+p)6w(VX7?_ z2R{y%*~Wt-%aRGYz{bRMe`j?{9am;6;4m&-YKPyg`^0ZQY9Qvm+=rOSdyW z~B_)kwc#NYnGc)%O4)|>C;Qr6itg{vQ9NGmf&CRm+ z-&{?8KT)TXua%yb*3!_xpnk53(bLO|T|`6|z7>tZ&^NQfO-_F;{|eQA-(kkY!lLf; zXu!wUH!3c!?cfspF8rxVw_|Yp%VsPV+k^@bb9StBJQd#fAk&uw|#M{@g6%YBeTPI2R8+A!+C9rGd zv67LIAs$p&Vk45Rp@QVxk zwv#RI-h_n>6n9B-M6{+=I?v=NV0(kAhTqZ^fRx|Sb`>ci_GHU=AUI!Zke4A2; zWjMH;p+ojaAmaqMO!w;%@84T2j@6GnR8aWdWKzcGzHA_azI6S%%{^J!Oxv)~P{HRf zUXV&jNilG9ciuYBuvCBK^7AVZgZ*et6L_&WJMW365K>grzkgrpvBd~Grrd1RDK=9a zE>lf?K!tuw#b=gABWBsdD1%llvH0PFTVZKF$5Rt-x7U*{54U}OM%Y^hAM-Wbq-LXE zzud;z$%z-j{8q`5RxWmSq_X&C>)T<4!yEn^UJNRo8pBP# zefu^jN^;mlqDj5)%^E_t&~Ias7F^e5jsx46=PyuGXlY zH{=|Vu#}|Ng>T^plVyVDm&(WLOh?~Nho@;9`wHMEU{_};#PaIZ`Ba*9#JS>T_SFI7 zY1Vpelr%F(pbBeN-$e5m7nrt3X9Mzi6B^pTHRfN~-L2y3;lT=lg^i8P$;nCW;lo#Q z(VW@z{`;ywfBsxuUylq53i3PH&<59GhEsEb9S~5P@_|8y+gQ2(IjcN^IdebpU5}mEKi= zPY_hqZf(jRR9{~YSk0k*6Rg}49{A?G9_m zno&qdNHJbeu}kWx24*M&Zp+p!Hkth5lk&5fe(z zM{5W84*!tK%9UxKFsZ|euV24LhKJwa;o%VxIXF6Cm5`9=^*icQSI&Og9J+hBw^Hi4 zX2zvorU3K#QPh1ok4Zi{&6^HJ72d1b{q8227gePMuHL_1)NS#-9qt(+F(Y1hp&DXg zBKR)n>F=ubeg{1vG~g}?Yuy0;yKMh{tjihgV*Vo{BEofl+YwMMi!JV8vchdCj@zKZ zpjT_Q+b#?9?75+zuVs_P@S~VuEXvi{Pzi9RXfjgzIpSeXK|>w*Y@al1DPwpZ5Q0KP_y?+ZOrnYPp0iI zv)wmcmq&Jzc)`C5;y>93KDPMv?KRrYC&{qNamNoZLg|x65?g!~7{vL8?y2?|CKRlb z+{1?t%g0(8LeA=IhX5>>}1_rW=iyI&y z8oVJkU7k`iOXUva0oX4uhy|WDokwC9mtIN5ij*>Z^yf>e-OuV3-`~0;b+lhBxjV~X zSmU7zAJY?K?3X=S>n&g9m|BWhAY%5C`@dy$IVrGNsxlCVd(1Juo6y?)H9e9z_2r5A2m}@fQ4}$3fQ}_^LmfI^G^|MDm9ZH(Y1C z@4$|JNHb9H?{7O&p~|6^r=q5YCLw1}1BX<*JD=-bYe{=-CGX$*8?yvo=Mogu^7Hen za+;DG#(z8FVq-%=7OnE}NuymQp{LT-OP7+tt69S2S@op7&Yv);g7snL<>fVO?RwSH z@{pWEOToT&Bl>GY!^)1QR_;cUP|p@yC9w>SXq;l*J^ zy{2Q$HOg#sJv}|yApK-FuB+MIT*?J}l0icQX$P2Q29AP)BHGT+-Q69mPI+TtVBpmy z21s1$j(iFsK*b<8{0HzMX&8K`09adkM#ktKJvDsaqSC#4|H2-3$N8>Jcc|aHcW?8| z-N1@LQG!RxFpiQ(UrrZTkX>{)}!BMEO!ZS4vhvQCS^ z;8&+R6FE>Mq@;>CN&8XpjzlqSaAC!o{3C=UqQA)ut6YA3eR&Qs+l|>D4EQ<(6x!m- z^uSefbpib7xuPuYIIz>u&_GT}nF&V5XXqGXcXjz3CHIJPKfthT>1U_s%HTODfQ7vP z3CS;B`~VIpZArh{E&mJ|U7lPNyCuAn_@r!c*? z$clMyE_!~r4kIW^1Y;Gj9nxcX5R|JQBrEWE_5r(^G;yuQLxVm-i(d=L1-ilsFL=7=-ruiZfD#vzG}?n2i=(E6XRD^VU2deO7N zqE{mF>?FK#q7=)|eEI(ozj{|j23u%c@4|F|!Myw!gPGk}#_PkTv!uFmvtI}=f*&ZBRI1_14Bb>zP=DbQveS(0DH`3{PQyfUos#_-nmS? ztz}%oS8JnzGuSxt8SOYoK-_|Zf$qvhDMt zyo->j{1`Cy_Z@Hq)9n{qsfn<|0k*qJPha@6A;|jMt4qA+Wp3WQsaNTg4iG<9us}A9 zZXW#m@C4-T8%wyYvck2Mk7Vr1N#Y3R`RAX1)`zVNE$4dD!D*=;9UiP~U)R>w2FE^M zw#TlS6S=tuN!vUiKgbCq5NZl`x6qQ)E+ilbvI08Ie|&3vVSxknCL~00%UDXP{`iXk z@RKDV8UK)VS8}Qq-Z~(qGeN~_Uts4dcY6N9fW_7{Js^4EL3$EVUQS4Qv7b<*q zR`H*>L`C&RM@K*DaKhIB6oo&Rf8XlrQW|r~9H_w$62rns`NCume=-f8{vMkOsZKWB z>3)4>ax#sAOK+ri1kw>XF){zuNtEr-r~4S6)z^N9JLU-ESbua_Ju)&v$9mLp*RMEh zY<~s+W~<}ConsZ*qC9&S=+$$R2wkRDoR$rbLnY77}W%_1zYr32B3>3n4HRsGo*ADqX^nS_w=h2>U>N|qiL@>h>71j z^6aOF0d6jRem7w?(QUxXt6`RXfeH=lo zeQ_-L>AT~R8r8C+Rynj#Qk-$=R*mOId87GeHp8BW+BjF!d_8bZZ1R^ZBL)On0%oIG z^vm{3xR=xie`S^9&qyfbVPNvaAWd!UZ{vNXAyN4@Fu$@6)N7 z&f$cqmMMv7hnlQPM>p-3HoYnp9UO{~uy2`%wZc*w`#9o!!K5r>^6G&u1wiozK{1fZ zwzs#-XDVa*fx|#hHbAn`wW%rjXwG+#zp1IKyKc;D9>BaK85RU10joY%KuVnWZ3x4& zFUTajAuas?5Qu}5QvtFpEb#6nCasqbR@-^3hCZ1_8+L-D3iuuo{zUcY)mWrXa;gEh z5js9NxbA3G9m}aG;%;))#U#F{s7P$NIFoN?tHDNap_K(wvs9NP;hjOg&ZeGW(fEcO zu@d0Ib7p5PAZyQtl!qF~X#Yd116=q`8AgY=7#!>t5iv3I#SWO+8~RKcX;$MiVxr2*K}}X<`#ZTq=P1b) zV|DCvXPhWC@1+xfwm3NFJcBLKmrAU5xPzYjiBUGLJBqWq+VOP4q{ZgyF`6q9sp>+1&R;p{wmb)FtuBaOFf7Ir5tPr-nC}yhh2BJ@@pnsPl3HV=G=r+PEVzTT4K0 zNSNvq$$#GUeJ41k4+gD-sa5U7`w*6l7gJfSot+YAIpNp>Xe)h~DYjJ??2$_&gKJX`?l@OX}bu?LuTR z42qaU)b1xzH33RjQ0eqYY~z!6jFlA?gTj9!WsrxZ)YOL^m|eRS(;Xp?yOnYSTHjdc zv*l|^%0dHezPguHyv)tb9l_(tuUtt5u+?h9J0yD9AsDz(*aVpe((she?{xD6jdb^8 zqL(B&P)^RySo7Yd?E5?WFx16+cbaX151j=+BI-Q-7Fh7f`FS~2*}xNmlNGSJl2WYu z$I!>ufI8C#5*6677DssO^-*l@K%d?C*+jOHd!3_|Q@>1lnrm~_JL&I2?McM(*S|mp zX3~neSpYu(_y93G0k=gRfIqusT|>3rP`y zNYF272D?-T>Liq2szAWH-vScBd0crR*p{=g`K2|;i`3HX>Lc$0<;f>*`~b-Hwt)d{ zs9gXFrMs)w;`!aISkQhn??DK4D;6uDKI7)Fw{7)KqL^S52Vo zDN$**PIpu5BaZ*)dY$m-t@GqilH#e`PD%1vMUiuQOz=d2|AT_o2GC0jYh6+U3}NCa zkT{qKcOlh;SFc{}`HIDUh1d6FVMepNloy-Wt;O=4+}OoNZp<%af6I3OuubM3KBCpGW!mE!CtU+Z`89{iI+y>!= zg@rkqxfv`;9(S4KB3r({M?A=l$8o&XtF z%7_qUTO0dG_(u4R;R(nhk+KFgpV?a@NQS<@Itx#_5e$KHhPe}KyhjF8Gg2$y*kdAr zs|$sxNmA)9?uKZW1<8~=`oY_4?~-SB_x7x3yOW^`76VKh8>BBtg-1O@;m7{Ynt<0j z;??mR&P%PWt-#hOd0z*vX0D00ti#N?Y4l?FDWNc)P(BlZPyrLl%4wYk@@4tk9T49kDO`OaU!nskyd?K z$xx%1t(-~fZKn56u#7eGnqyK-6x9TC5QXX>1Q*xlk3a;%Cx7R{QF7}1#$XbW(n7e1 z7RIe7j!($$$n;vE=wz@~JKFt_PO_Sjkul4CWfbt|JDB+V3F(A8U6-{Bjj+fjgO_DN z@QC9zmCNXqGW&k5Bk6!>M?$Z46|Ew!EHLz|=X8!UM+g_AU4N$0hL(%8Ip*MTY^g$ILP8$YCoEylBMCOpxNDdg zjMS@m|5(U!qQ4{A%J?B86H_)mqH8`TvD&nhk;4r4Pl%PF+`&>-LW87gH{a{VC#qp| z5=c=DsiGiXEiEk_U87}Xm2-i%>Lb6*yMOL~niPO%5ttZ2`FJ=;GSjwx3C$={>18oF zTfXkn+XH)9R{BoYUr?a}NCGv5e1u?eUFe63*j?RCFW`YVi`T2X5WZS^N9zIds}7!ZTS8KflJVF(cz1DW9A) zah(^_iT6KH>!PzWWPp_CX`=DW3wM`}Dg z_4_GgQu`|C$+@}gJ1@@Q9hZS-P4m7E8FvJW@+fboRVh-x)GM)g2Squ}Je}JRA!nh? z3e0yjqr~oPDv+1M2X%_bP+}RO5@)zehRraxOL*k$=aR zB9eX9db`IeWDxstA#dF3x^-ScaQ43K;A(Cf&6H0|?oVo|aaEXQhLjIS@)696Cf6QB zha6=V72N{b0{;mQObEk+w-tpVNET*-DfAP|r+rPt7;EC>h~+D+$^M%VH!MnV{ptxC zS#B5*Q?~B=B(ci*=N04wMv6HWtLjUYJ>**=*&}dpvC-pZ+=-=pmDUfaZ(9+5&s6f=bm+#m;$N zhxd~7L-9_boF`S%0RJ7YUOV3nyr`~gYJxlUHhMa2p1~X*aq&Noc)a$r-OGBybVuMq zL_~b%@P_vtp>UC7y5kl(-e& zIMn~=clgN)cw}7*On*#qs$gsYe zu1EI`l_ME7NmsS+)yJ(SCp27e)Ij7sEsik3-s+jwUz;(l306_wayisek~(W=`qa3| zwDp?_?SlDE5KID!zO!$e%pAFjF{(i2{u*)rJD#cQZf}nb?1pUY{*O#*p^Yo)`-Yty zC9~P3y++X(7Wk|a3%t?%p4T^eG>KOtKOx3?)Nn!a+D(5RAsQCK<O_Q+_Yv+$XdL@8+NXI`b((_h4vQ#CFT1$sw6a@%A?f(TDm#=(N6 z&|qM@vOUTMHom;zeBK6qh?)_-JG_E7@c0#b$(@at5d5*uKeS5C+GJ z;+yI}6&6N3z8e~bQ(Nf?4UVeEizpoVipY2&U8uSJSE6!dJgLgVFVbAsHDrnQS!Wz< ze9jzi%7*v#79Rs^MT}lgYs98@wTsP%Q%GvczTB6vr6u)vbh2SC{0uIPo_+aah4o7U zJBnScIK*#z>=t=O0z=S=!m`Lan1ZKwEwveT>{kIjtAp?5R}%(sO|1dnPb~h?K%HKd z!3)_C&AV+OPDWW?=kkwS-o81b()q6ViM50a*n znNb8L-2#9R@Wvq_+JgzS!!=f~e{JTe8_|>H`>aq!u}O=_cFG>F*rO|e8{>fR)N)@7B?AyX6ZYOIkT_&%nh^2Wt*1K>;Qca<6 zie_qrrJOyAyP#e$zrhW~_9=P3;M!M~j>!(M&ulxKXmY&FL`z0_ zyhH&u#rt8-!_g|z*?~7Bii6wA7SnBw6=N_l*2C}P(?_gIhuN7QT{-zGUC=Ld?9Wv& z=ZUa}skuhAC*)CtP+KgYTblYg@6+zlnK1GA-th{Ar*j+DrOeeEXnZScDY5OkFq>O0 zsu5ls(dzbvK&-)V&NQ$N}ZYtudDwK+sKnhXce_1ol{sz1oFag93U1&;vy1jufjetr8J@?3e~IMsljo&5FdAGpwQ zq6xoIS--y;jA&dyX$JXN4v@LjVs3eegix#tirjrb?IGzY2yfU`Q~pJ2kh8P1dr4Oi z2W$h0yxIWEnR#4@e~h!a5O#JmK~Tx}ozsO8hRzR1?Vxkzw;e7yFSXLnQ?D^rhiIg7 zpdiBm*@E}hG8S0SY#=wSAWL6eU2W@5pb@gufYJ~mXMyn`g;ioQx;~KGlmh<=g&V~k zCVJpFHS%Omr9Z_Abx9N*I7w8^UE*3>tp`CE&Cvgmb? z^~^(!Wh>z+@Df!%JD-5`%mh*qgl(E=L|nq9QzQ*yeOz0_b?=>@73)q8?C)uQ}YT~0^T?E0%R?>&Lc7hw4L{ZYNJ{&cKxzEpft4d zbR4_ZK$)U}hQcVbx%rIC9;kt^DfiEzdSECkLWo4(VXW-1%8*d%NO5f6?*Wh;s1=D` z&7Wb|Cn3(`kPXpygS5%z5ZF02pmvV+n4o?d>rDXo2<*RiMki291SV%7wjY*+^|7t% z`qr;=pwRKf5t7S>hQ13g2L-Q>k8i8A5F+X+;P3E;poFekLMl#~G~Pn6dO)SkCGCB1 zMkb!D4PYx)sM%^$dyKsm&Az0YDc;C#H7cK|k?COs5a2o;(ZMOm7ZuTyD=YrZ@}59L zCE6|4cJ6e|jIJa=V(>qSJHpXfO8rIf>1)SC@WgrDkpCpDjYeUmP{JYg^o)!y9AhrV zvbUy59l|^_Y%r`|M0Z2w@xnR{8IF` zytmLJy1UmUYPAqh!2`mIvd{qk!>D}hWeWNYG zLjA(-YZ@<%WJ(_06WZ|{mZV=c*3gKA(HbuneCPuGZtu)_Qqqof5&J67Y)=;#0J;@R zrprP+GWESv^X_qL)6VB8I6cOkK`@k=XnVv0b*<{{=V1w9|HA{24mHw+mV&M>XRDWI z_IGSMn$euc-__GA&5X>BflPa*TAXIHv%i_r&eWYqf|HZ8H^#K3?YU8o1{+GK(*mlg zN+3V2GyM*#jNXvi`0((Hm7p{Q8Xgf1bInpE9y_SB@;RExJhf3;orVYJ=CfnQy1%i^ zw-3EG?F-0zT{qos`6%{uC_+pA7Kehw_tociys>>CAwjqm$nl4`hjY3hNJV;yqB-qg2;Ghb8$5qJp4t9R5zMjz%N~Iu5 zl&+fL`X8F$3zxIx+IK#vZ+AmD;I|npDq*?^WKCbSyFH|xNP3EAP@r+Jyyg$fBqc!TUVsI2-qAcr2Va?QPa_b$JAXTtfz*DzFqazq;H z%oEz3yRxrb&vm2__*m1(UWm&pCp0d))qKI@vrNM>i5I+3Bjw&}h1lGCuP;LtMlLYv zsbD-gIeFCP!nBhanB-hpW=2Maw-IzNAeBxeAW;jsSZ3e8brBJD}tsDKSaa>b5S+*Rvd;Eu8QbX`F@LVZTr1ItLMu}dP_g+x7J&= zkw8i>uHxg#Phv24%F}@e8re$!voVkDh3K&2>7%3b9%Lp(fuMLq&?8kt% zYW{U*pw(X8(@)fa2?i4DEl<0wS{Ee9-!Js1dz~`jI>uMOFCzOc$zzvjDOj9G23?$q z(cAFWT{E`fp?9}B{pj3<4WX4FdcW>C0c#hKvo$t0;{Pa=!*@WaEEYjv%lI`!ez-x) zdzXc$`61e1e|6#YjO<*4pW@`ajXUN!5gqjf)$XTHpJFSW%@06kyydbZV$Fwm^78W4 z>J$8PKwP*G$J~v%Y`4DzpL=B1rYS6i`j;Qt^Y(k&RwH1lR&#CosStUnFA}ugA=w4>Dbn_W)FMESP~?ha-k*QoYh=px z|7QP&YfQIbhNqp+-?1Z+UvG(>5=v(T{?4zS(?Mw;6jLgl000B_9N5|KBs-UJ@Uq`g zDxf2=lhP^P!)oF$pDGJIGfofVi{aAO0(!J86v2zak>Go4Ma^o;DzPdhKiN?1;|s~J z4h1yJ0t!QVPi+eYRotHd`5D4J0YGZ)SB0Ahf?&~zT*+v&x?=Kreym7E2{573S9dJt zoHtl!0ur5GJs*YgJ1MQG21GP0EJapDg|NOXGJT8vi2O8N+23~5R|W7fgNPCNTHJaE zpQ~oeSa1Iyf{|x32EVvbS6Gz#=6W+Xeg*T)H&PmFJbLt@rl!VDtlxxp4um5^35agE zs5Vi|J!h=@lBg569C{MXA#IrCcfUBvl8sE;9Kh#qWB6WUs7r#(tsA5{z5RFUUFLdd zn~V1mT@l>_kXveXz4cI^Nts|m*`500H9hr%dMvjrA#t0Is>mJofNbdXY~Q`jY>+xq z-+uBhD5=|y>6y=CfTZ_%D6RUc)vuCc{y{nM7%2S&m`JG~GqY#*`Ht|tJI2rogy@qj zdzs1EzlkE8!e>PwYr0Y)b8TJ^d@M z#pk^;R)VxsTvLA``0oa6o{b-5+u^D(Iu6a8G_aasQKa+nk#?v-O+lTr8*7~hpQq6q zwbAh&z18JM$JWSCu=V9;v@Q*N1HvyB)*lX^tYtisGTFb=-WdFD?842A0x<Y;D!4D*Os*ALgLg z#P-b0b1;6!HO&!-pAD+`hKE=%V4Wc9ngfLEE@ncJIRbcVicDlfd>X*`A7 znOP{w?V-zIe}$<{B)nk=PqmIH582ch)u%=M4{QEmVBj<5hMR7P?fb01ksO)Hi##1Q zr7xkx1j@}{170~r^_lspr&^x4X?HWRfy@?q(K;hNk(rUbNKT&Kk$G9*SA4z6$I%Kt z?}`2;evb7^JKmK;!n6U4k79^?L41OUEC{=vUOUsS1b2O2K7eu$7|MVvQ`$@M;DK<) zQqCA<`pp91vJj&SHw5q{WYzadjTE5-n^vbd)_dYt=6w`W6k?*=M6?6qG|%@0)#j*l zJ_~w_Ctrth%#bLu6~d>$rdW#2tQY%~k8Nu8Y(d^nJWZ}gkE)26V-JbP;2{1u&kacE zeDcv^v3g~$qm{3>&9h)NM8J7fnAFxt&p?GlJYjM9Jdy>3M*v?wA2l%A9W$1%4ZMs% zC!v*V-~LA#Y>ACzY=@b?>|c)JLPCHM-;!|Ur4oYINn!ATJMQf z%dsp^kf_zD9#HY!aAF~vb}9$Q?RLT}n0(~%lgJj*UX1!_tW!y|rFp=fF0eI3vFbR3 zb0jzlD@3A(G{sPp94 zRFO6|@kQu26!?W5SU+5RDb!Y(Hi8|V@1;ai%L%ZZj+6o$o0>9kkfj%dN$x%b zR00AnM0N{JW-gHZ(=ZXi9&2C+ZLTt@-yP?egDl{(6qwD)ZT2gomFSW;HA#j<=?I9& zFA^POV*Jq1N-$hv8BxXsIpJuqjuLH+j;Ebl;jtLa7{4 znxd~#Q?o-RJ2yQs?AEB5jT)GuxR%l!SeG4pK-1QM9cr>XCHxO85hx)CK+6XuS~)~d zjc9Wb)C*XWO;}hMKL{$STxc5>l!M0yB(U@IYoHNbJm@-n=azF-?=j8F2K zpUYfVDxY^U3vnjcYQ0Ia3o@b-wA{R(1CjpiK;$IgrcUHQSUm$ISz)@I0 z*AgVf)RI0Gffs1w>_&hDVS0^FcL53@N)~xZ>Z6zIHG<(& zuGn=`FNM=_z(nzl`olGrb$s66yS7WKE<&M%0mMI5hz{JIJbhXUGD^TUO0Xi@APKak zMd%0-X-Hv>yeGK046E<|cx{&6WEk-nrFxL`VgtWkKDqES$LXlTG2tGH`1d0KKK>h6 z?YLWypF{hR2-4$Yy9dI5Y>p;JqJ+1gEe`1-c=hTmP1pt>s^JwUxSd@#>%D-!2%Tdfm2st=#-yr(14b&-ie(GlMD5^E^b*8Hg|t!VQ$5X&`^F zKHT3y!Wn4(tW!&1&<-Yub$9tGFKjn1d}<2^jRm>wkan^0VvZLRq21o~&IH1i^A{W= zDnQk&j_AKZX$tLE(5r%!s6l84{cowDWwioc3Va3PMo4=hTzpn#idEnEV}Dz8K~qhO z3PIu-gtFERV#)5DGX&wf*MFVgg*+MLwAn5=Xr5zjxP_#GpgwtshH8BpD9+~r(v-bI zrk28`+y{@DxUQ`5gL&Xf`e3xk0`L(_3P?$Qj#Kf2Wf zQH=N6c44II4j8?w->B9> zNNfn&X-&}ILs}0Q39@|wX!muQ0O>Fr3=K5C!>nvD&_z4~;~p1=_IJu;MnUT4JItW(l%kQmTizn%vhdmbpt0U#U6uU<`qU6~8w^tmQTFi@~ust^in zBCo+Np`DXst^`YQIO@ud-{p)u)WI)^~$fc1yV;l1n z8X1!mE$zsusIozRitil+c##bZvO6s$9i3mh=IJB1@z1BCxb!!ZjGz-~{4qJCPmU|0 z1C;Il-BT4ND75z>+G=FYvV*!$XUA8<1~QH7Ss!p>hI-)$DE!nIyWj0bEQ>Zn4Zr^xvOl zKK~@yg>I5u~Ef|_E>MN2gIDys?-bt@+h5t$JXx!Ry$kQEAlM%|pg6F}&WWJ)Uu#=@h0#AEy zvlXTJSi5P>kwgh>Rcf(EVX8|Ai=<#HBbWj{1Zgz|O`kd(8=#SVmuRXBV@%0o)Cc_m zh+q|A#F0j(mHMNCV*uh72Nul^uJ+lpXTYk5L-ED_}66 zQcX{+Y3qw9jzFc-apj&Oee>~OYJ%$Ni|*faK0bK~QpZwg7Q{t6qd@2rUbiz%1GFBZ z$sJ1g-PwteDg;}WuR3bS34sI;B=FYY#q~a!ynX=rBv8a0U`|&eVEu%-Aq@H-`bg~b zsVoV5=&@yMF|j3B3y2=SvW#Fs%+p616V_rayDNHrt#3(B!R*b2pL zLwMhvshCfC`RwW$Z>{?CVv}d!;EVr{XGaLj{`aJa=B6e&G%&B<&DIWT*~aNc#Os7R z!?D8s;fBKfiv#dM0?YV6yI$A_hOd=D9ZJcbnjwMdS?{hQ`98I*0^)b%%BIDz*6kU5 z|Dpy|(U2w-a62QeHsI7ysv0VKsY1Z7E(ztvMx7=MHH_G19&O z+Z?zJ&?=X@UT?WW;svu_3cVirhSgfI|Eeb{fWyiHX8|g;cR;5``kq>O)RiQWV^H}C zG!04#!pRU8%!WshhL%`fQ$`es^nxIQIN==2#a_^Xw?ZHSC~#tJw47<4pkYOHZ_N@>(AareuL*wTroPS^e0nlq9zubg37CGL9CgZ>#1`)%EsKwRW zD_th!o{4*|&Vu+)6izsxJ%@C^!v3@$TArV8qx3O3_h0rr6he~A5HG3!f<$64Dw45s znk{8M5z~_}qnCB>Ls&?!=>@n{Ae3is0>JfamZWZYW+_O!Yqx&|djXmt2j>lSH&{z~ zgxH1J8-xTn>>w4+lNl8Kl&6&oha#}DE%Zy)?@&U;!=x3_d2S+I%)XwYG2D9MOiXRL zCbSzQG+8K#oc4I8J_6xeK|3Uy&_|gAWv@7XOEf}Hz~K&a&|qb`_u|D10bqei>BI*E z*^b5l~m>eSN3UpfUvl6bcRf6X>}$*d~Lii9lwI#8kV?d41Za*?f1& z8?|zNF2Bg@=14kiK!fvp2p2Me=YIeqg^rt3w30qLpyONp^9KPQn$X6s-z+~fJ+%aq z;YbX|IHOAndcUXwZ$jJ3`7v4`AU?l?YA{mQ(sqs+AlBz;c~a|mF8!bT!E+O%`1OYm z>1bH~3iys7Iiz=Z$nfS-CLCF^W>%h0O*ZUndKRNX7;yB&ov0S1o@72R$Rb)zdd1=kp$RFeIWQ;)iHFfk zhlhvM5?(IM8Q@rp{Gl=(w|;2Sap3i`vyl;n9yu+ek-B!nchg0kyz3?alFv&pa{Iol zOYY- zgO()KE|xv(u2y+DRB7AfuMBZl`rhp?wd*E{DG8rX{Z=WeKF&jef*)Vg^ShxHlpqs{ z_PWDex1&*I>)%1QpOr&AQwEgKe*{~D3I?CW7`P^9LK9z?7xR7TV9}kzFi&l7W#e}uSat-Yke9hss{_c|sThK zdVJ08HUjpS4WY>>n#(wuK{85UWkB5$M{n6}z=z379aYW892$V8 zOoZNtgOIEsJRr6R4%7we^as$_9Dh22T^y^Q!GbpTG9rphaSSz91E43$X z>%B#Nzhu4AE7F;uLe|aw%z<0o?mR~bR2(8$l>4FI`n{bosCYHf9$o?=!f|>62P$0! zw++2sIA&mMKg&!arIGlF(cVM80h2PlDHn^}{r3KW!DWHIT(gS^PCqjUG$U?j?C3BP zz|n|W=h4zjN+T7>>;wQeE&dJc(eH3M(0u@2Doie{ORrbD-)d9ZCgA>9bN294bX~Vb z*uWECXMz^iAmJBvkXc6Y7#}7zogpH!g#JO@1hAd)pRQ0tsNHOe*DE%SDPSJax!aL@ zkE?VE3shou_6TS48G^0Gnc>NJa1L)}nN{W$^GRQ+8R^Wm;fMPFK zmkKvpu|h`q90eur)m*GD1Mz0hT8BJ>*~AHefv$br5D49eSm!Q@%)Y)pTqp|iaj0vM z)6nEXgM_K`T_nF>0Z7sx@P%h?pus%K1Qk`ROh>-7T|-fK@YcvmH_qt-0a?pUC4n#+ zAtj^_AFeI{5N-K6;1tqLe43CDfjG3{9x8|o8fX~?D1O(1RHG~u;BVBq1)nhbko4!mi7?Oz^WFAb#p7%21{FoqU6?|s zp5bo5;fB(kE`p+}UA~p_{z;+H{x2kv(%XT|o`pi@n^gzbV{dXB2mpCCP`)DvBOp1H z)c)@m$V39n2gW1|${^607loXS>Eg>miCmxrQE2Va({VlZ zFTMKCe{#G_(BcWXzdSl7CI${gCShTel6I$jz;Qx>WOnj6z4u) z^{{$?q0Z46?CQUC>V~XS*0CqdbKP9jt=%2A$RGPSv%=JOInrk{fX;TvK;2s_0uz%9 zW-c9iACW5sFj~SiQ*TV;b~#piLYVpz@RQorxkfa<-v{z@v9T=oTp-YGOD5SxfD@>< z)%*{4G7F%U5KijBIf6~Y)@YwbImUH6QAm{)->$ujjp zI-xD?B?3B<3+mk<^xZQHH4)u95h+jGFJf38Ii!WgCId%)3e+uOK+LNkVakjoh; z#Yiq`E8ll=CNv^w;a2)TDEseluKPcH9DcW#b|RvQQYd?bN<>2T9))CNN4A#AC|h=e zY(mIZG9r{2GRg`et8BmX>H6Hi@Ao+F`=8r!bX>>Pb$P#EujhO`&c}J4kL+!hkjDJn zLQ3R-DjEQ!O;sLwT8V-cDB?tou=KBZIRTeG6qJoXO^DTo=0$9#H%{Z@C#>7DjF+L(ZCMkrs4YF+r?aC|Va zWkcmTkw{6Gi|;Q+14MoI?gnHA)^>J8LaZMUK?bqJgopcP$Ib^e9f#tqYx=ZP{Sv2K z#gjfnf6?dh{030=%-j7xxqhLh3@}KkOdN#KxW>VPSpS>rJ!gQ982zO0vFD4z=;SU za`4}Gz#;u(pqwU3)4_5bXg(nlXeGk!l1_dB0b|19Ba&4DDp(XOrn+|7t0mNqRw)-o zMqIAPE%~dpoJkG0&u@1O0dbsw1_byLmJJ+Bz7#l2a>GT9O+Dj6YAT;=n-Fp|@{pL> zOsi`cjrKf;erN1);>zaQ<#yrX;kv3__R6E;RVUv4eKq%7m51jTwO&sQ#XX!13dE|4 z=g;4TAnT+Qk?9a~CuGAq5Z}r}e*hzmBjDsiH#Zn+6qWwpHvoBzN>&lmbLKbJR0&YN?Zfff`Rd|!0;xwH|2IDV)xOIm4m6NoD3N-4dk5O~NLUfQ z7En=>Qi8^18}f!vqn>)B-)N_x^C6YvDq_rH)_<$xLdxsD&@)uo;2e4*hI0rRMjFr` z;f`z^6C@UIOV@vhY7+!*2?$+}xh*a5UIKEa=R}BaLOm6x)uU_jb_5)i{>~E`q1_jp z?|y0TAJxI({Jv3zPtB)SQF4ADsgR9`h){}?WoSxJtXQc(nt}i5L*=F_x|n@YDp*Oq z=M|GwkdWxBG?u6J9HJ+s?R)qk%(X&9o23CRLo6a`fGzEU1lz4CW73@J99q*h*naj? zg4-pJLq_%-(?dd6GAjyC8nFaiTGXyOK1k7v-kaK0`L5-+H`{rcn3yoopWweT z;x-UzPb~C^;SZn)-pe@8e5b*sBSOZ~^jf+s+o!b>ELA*mSNqHbuRJ(8(3E8N$YZ+$ zYln?_uysZ zXoAk;g1H}M5}T8Be?P%lqE}4N1e9$^6~Y3@g{Z~G5DwPLCMjV7M7H?>#IqO3iWNA!m+d^L~o;M&PpWg+cBc z5AXsp)EGZI>YP}X#G5qZH25B8oB1IsjdB^Jj(oSDC9}yFg&%8Wi@3idZG#=DL4jQ@ zrMRIep_PZsccB1cN~(r#SS@Z(oaRSz4Aa#Jj%9WUN3|~xdl|FwXOAs{;c;P~Rm4zE zj{m5CWNL8u9(VrO5yWMccgXPKFy?{J2eIcOtVp;@_-5BZK7?{AjM@@`{_LTpjfe2* z{R$jAS_d2<5Y+;<`JRGu*Bsq+slBsGW`|nNJZQ?gdBSHb;-7!-G|zsriBh>9H!4#C zj_R;84jB;RC(q2>F8lbA7#PAziiFb?-$N*L;X7NFMP?+OXr+?$kOryT;n| zeA>mvm(H&Aace0CEDvGf**h}A233@11=eWg8yr%mFr?8a9HfcN3wy3qN~#NeiLL4{ zA~gr6?fUu#90r0+Q8)=G-Ah*WMSbX#kQW;tsQI$QrMf5FfFuuTFF0lLjDPlIHO1RL z_fcF;F)L%=GKY<|SYlH!+aDh4i|p{=W5Mg8 zpp9>k_qj8?slMBZ#93(X6k+~gTtG5uyZMh`86+Xg&2#$IP*cH!n>RK_qfa$1-$16R zK|9>^!Z7EAb!N2%#)4NbWcjce>hw?M$pM>dZ3qjb)AOsb01Vt=?Fl=#SoNK{m9bwB zGWgibwX0@pt&?$1&S2d1Nx$?yh2mroLdwV`@&G+9k3Dgd6CGKQHo}Wew+&QvIQvFK zUZ!h|N8Ti_!I)Z0ruNMWal-wwUb-5AFI_kXY#54myt*H#B*mP&er=M{^SI72bunea z&)-eat01gCmQ7o>Aa9?m(?x2&FX|tRr3luKop21H0&)Z$)I*TxzAV%=NjQL#OXyDcF&bO}^ogy=JwM5DYpVVhm>Pzh0-xfL z$=1INz~gIEZ<%iuWTupygXXrxG_CM8oD?=hv2b!KtXWTW1;R;Y*@$@9svs^K#My7s zk(cE5dAxXChY(K(P3E4mc3<+KzhKsWZ7g6X{BK69U`%K^KrZ}ndj zM~K;@yH$u6$sdFXNw7Qs*XTl9y$vaALT3tGj*!b4Ef#HMGjBmCDf(SN!ypiR|BjK#&Jkj+IUh9D>4=vLZO z-NB3Co+tvaz6JMY;w%OmOC`IDYbo6?0ziJBG4OhwEEwZZ91(cN>zHcO#lGE2vPbgy z8cWuf^`6Js|D7fO z^P^Oo!zqQ3RF>+Nc_W9QWTx$^EQR%X$#czH{4xW2T)S3N-W&i6_Q;VVHyM5u1;WsC ztY|(JtlBsfl}MC^wfmLcqTmHs<4MrD5CaWHhhD$@T2KXer2LDEml@pD{9r_Dt8c-A z%k9&rYsPzj{`Tg`%7&58#8tv6`=e+k^`eW?0{3D~?Y(pidpqAPXf5*R2(d?+!F zT+5x79oWnoRw3Q2Nu>1>;r^c6`Iu2Le zf)`M&K;r&~O&a$F-YZR?hCWM;&F6-JEDLE=t?TT_mAD@eje6YNIXLTUDZfpY&Ut$$3l z)h9>&S)Ii7Q*wN<4KDR)n4l5uKunX~zWC~qHsZ3zkEh71Sb*$yOl!7qb(~tRTp9tkT zCA7E?OxeYGZvK30_~J*LbeE6>`zj_Q+#r&B*lX3_eERtDR~SR2A$qvv-|0MAV>^!{ zKM|lXj-TORfs5X>hhVt5IMeeK;J-qf+#GzT5&$ho`x9)K6z9q`S5ppFoTgfF8tjof zlTfFc+z@DdU}&g`o=>W3c;xk_2BgI`mADnyQh{q#(v*FW;O&PQvB){ev4a;k0Bf6|BjAKF^7Mm$&RbD+eB7B2i z(=EC!L}Csj3lat*)g+Gw7w+lrHgz2>MrC4RV#*l?Qa%SnbqH9FF@V#Nl`yO$Va8+7 zW(|nE`!5)B;G1)gyc!g=WWMy(O}BPbJ=w#PZ|LPe$0n8PiP@VGFmK-M_<9o*?eM_n zTqr<5^5Ega<$-6gb~i@;`Y)6UYo-No0`Un?X`c(1m0&v7bgK7vA4gYM5ims9{#383aKlB5`|cLVZF#d(eZ3J;kDeDs`zyx z^{f2x5ZQRGfZDLe$(>Cn_UR4ZhN6GPc89+Jk-=ck)3~H70iAQU6-=>e$^J*{x;-6V z8#(#h(3a>Nb#7lnd1J944f@!A;${xxi|N7db+>xYC!cJu`;>O>0LtFfTmCeEtYA&L zF3G4_fvXN)8mlPoV#H{&y!c;K_Nd77%$8jSLA|@2#F=egMw!UVmudtDKTOI@(O*rm ztRrJl@&ZQq$KVMQ?XvU$FQDk`DGs`fa}}R_&})V%*Sev^y%FssJ)5p8H;(_JYE40Jj+m%-1F^^)mBq=iF7eMLQNmWsL&QIY64jqorX)eJNP3Ttm3s?`BGWX#T#YSv_(M~FtVpI~bRuM`8q z;hqj@T*`H~zoCB_g;Sp0-vfA$nT4g#yiHd|<1HpU@fgU+%}9qTtx2K7cLci#hGf%l z!n!fgDJJN`b8h^rJkcBoyYvkOXlhr@o0Kcw>idZ9FC}6tOwEiA9A{I%x0K!*GP(Ox z@#H0+eCE=Klf{n0)4k6Ru`(7ao+#3J&QY|nV5Fl1U-Woo+h~pm?0)r+SF3(g$U&yq z-vI{x0pSlB2fyn^7YJWQa4D7e`b_6&&i4)mpwBBB?+hg*haJEx^zR$2Hzt+gN4X0!I9MJ(*d9&84S^scTJ`u%;V>NCH>OF2igMgwEAT zwl~+Qn7%O52yA{XQP$T}n{yDt4*F%#d)+r&qxB%YGHN0O6or<)rzxuLCK&rshdn8W zmlIQ{+X@mrcu&NZXpQp9ZlSm@60-pJ4c5@;2@6j#MHcKzd$$L5roywwXO)ao*ku^M z{!uX`;?bT!EH+W{KJP4?>dJ3?2x|}=)j9w8cz$nKzOQqlNaE{h)8VFz)rrz6EPMPJ>OQjmy^0C3-!})VOt)?2PP{3=bCUXCz~Eo|>)35M zD@thlAW*3Qn@CI+YdwE8kjm=Nv?-T5EhxMAhTmPf)6X9ZDzW2$0_(5DjTFG#g$T+lC5-?jk|@%( zHA@vGw1s7V<8wj1s##f4X7Vz1d?#X^ix_!jv2|)!&JSZ4D!z>KD2NBS>ICTQ{>J9B zo+nhBc!$2n1nZb9Ym}{VF~fc09RBQZQ=(O_ayYWMFd@y>E5XR9Nxu`^|uB zk%7%#`1?>+Tjt8k*)gUDPbFWArskoB0uLQC`Af6p!6+*R6~1CXWKF(w)7bt#|2DNt zi<9lt1rg=8c>RDjy3RcBOa1zvkQn|ZwkPiUe|0}llhLw~yjZ|`Ok|cNccwo;E{NAe ztvE^|>qOkp`&?3+pe&Fx)qQ_AViS#m+v#-Kqw)JRYi|sWa`6RUKGCIyaz>&;zMsxb zRau$p-v2&-#kXZcu)qIHLbkfr>C7NvqrOS{U*)UwlW!NrSKFAXMK290_>jf=#-2>t zeqV^biMLcMsH(ab8y-r^2)&QuNdoX`v{+?x#6_1*-tEO zxdXnk%lPWLYdnE*8YhICUM5EwYn^wEB7^UKgq+sh2XXGk!E^C~=;EAH9#g~jEkT9p z1{z*rjxWTIQ%_C4wNk*9DM~g0zdO(mviBJTZJ2I;;%+H8SEZcg)5epKz;5$>caLDaR#)*_s|qZk?O7jH&I! zGBD5oUdQWWY_M1CjIel=f5hIQq%9-<`_F-?Pay z?uS^E|MVYbwr8SpTZ*aPt;BPb(RJ&D17_xy{uxn$lbb*;9nf}L12;kki;Hd!jac5A z&2DBmV#PIJe7=tb0IWtkJsozBhY??UG(fa%`P zpBn{$+#uy27iZ)VosS+@fRyAw4y+1bd5YRwERZwmV^
aQ*l8wnBpJ6QAhz%K=} zjL*&VrqA+m%&8{iRp}OGGp6ZY8m-_v@g?Ug8`DC+{%}_vAmqwpn;m&iQHgaqPx`Ew z5AJhaf|YuMunx$mu(0KUgc*fLLx~HN+rQ8zhd7nm zMxEH9M3bzc%}EDdK2hFW-B6>hkSkRCDbxmpkb}TL^iVQxLum^IuqjY)J0~YenX^U5 zNe0H`^0?SZ^$?N@Q_wy&3LUcuivWezM9}^0BaW<~WS@+mLUzm4F;m`X#@qGJY4vD- z|9F{|M{@92{SgFfWT2-;s>T9;`(11nyb9{m(pVw$Z1WH+pM_{vnzpQ5^Cp$7gT=*T zmF7XMpIgTt?jxws|4U6hMOE5-$T|Z&RN}-49b-LcIiMIm+7Q)niVBDkSsRL^D+ZW% zLhJ)*o|g(==I3zzEcsx7vSf`OoYz1a0l$o8o)d{NlTh!d__i zaSp*zBm7I6QniJUH5zCLgv5aHc>=&pp5t`l6V#V0?!s)J-QND6W_EsF-o&~Ct#{#= z&=*}1c9oWN1PgYXk37tw(^U5DD3hkSR@CTkKj|nY)8lfjc|$725$A{ZD(BvHR=n#} z@xP}aq*JkTb*qv65idp}HzsH%R;^6%{sq2)w`wOtMffQE8Nx>Td&YZYM}%*yG#7L1 zvDvaQ*eD^7RWU33{4kB`Ke}@hlRxQqQz&`}Awo|=a*yra1oJ#)^#6g+|3p!+N`5%; zr^Fli#~c>-G?-hUbRSFAEl!0$r?N~~PUD;~&Gak>%k;qD4W@aOz^ij&QDuph`L^0w ziJCGmZh0ljCzQ~ehLHNqzRixzkeI0e(s~O7oA|)Mk5nFEbw+R2>&u~sOHcI<48#Fc zy8g)&lm{X786&0^L0xIhKN>>b_F6wzSX~t}Vt+zSqs+-iWo*6S^o7WmtYIzf|J4Pb z+>Me#Ap^$^2cgjsYBZ45An@PwMJ!;?PKt^6$14;HVsCcA-Bx62MjvchHPYOpJt{CT zhB!QbxWCCi29)Zm8XwKAYi{$ao!m>L{^ZOLX2`ca%`2taqi7)MIX`UFXN({@9ZRbMb8LSokSedveF@GUw#A(*dAh*+SIQk<^QQn zMyJf=m}+R=(3M!n6U=u@Pf_pOwh^+EfhY0)poL$#iKsujx}x zO!ZVsPSKd9D*T!sx_Mwc-AV%o^gQs`qcAx|@3-ndlQ=P{iHyX~&CQKC2*1C#%KhG@ zEV?$!KmH=KC!~aqq%9OS9ew(tuTMQMb*RPlg3B+f5h1GN7S@%o?*!CPb zha#rHD)P%*V0EJWOFAsLet)M;!QBe?_F|ZWiL} z`y9o1d9RR@P0<^k4xPX3pUR?n6l!nr;9ry0HQJIgRcjM1I(G1|*R=Hk@EahhQbr9V z_+-vgW=5UFb>6)OISF-qV%BT@DN~7|FYStIAzg4wz%5VKqwZPNNUBQ-YE-!wLZqQi zmdkNzA7fIq*$H`If>m2C$h1+R*n_Dl!Q_xb?sy%x>Ft?63_BKfx-}`qD7J z&ZLvWPq26Y%a1c%2G({#s*=imtcr3Y^eT#7d504BeIO6m{ezH34HB^oZUD^I$Qd+h z`u#7ssDnP}@2qti=QK#Ja^kE_O#wbtiS{XafY;xwuxjQ>aDL_#v`eJgO140A*U}es zof2mWo38lKhv($Gsnx;Sw`cD6D-*>R?%%Z{%%0IAR$C%D>OVH9M{s_S5{d0hql5M% z8HJ3#a+xmJRT!u#_Kp6Gsa4)G{3%adIsHwv&u(%`a3D87SW21}LUyl_)NKAG*K|B@ zSIFTctDbBNcGuZH<-Dj%%1KFYJYt&`{SK2T|G#G?hy(UzS)yD>YSRKo@Us4hb-?f zt!`IVVA?fd;m&yfsANs0GPV5u7|RvEy&OadBmu#}m}S?n*CFKQbFOvttWAzRoOUeR zv9?66P*(*hs+H~<(#m>M&@sybsI~jtpN>70gEGjci0alQ^Y-JVGqzeZ*Zc$F8P?D@ zz4^D6G&2pKfKX`T>+`D~G^f1MD4Tdg9``IWNv!rjrv+M=>1>sb%gp8+|B1H6I1rlawZ zar-vyN4e>Cvoe4(fJc!g8>&~gUW%6~TWxJ`Ra-lQEwr5)Gt#RkyWG+lS#eRjWB!0! z4O-q5yFhzD)4UIu~BIA+D}oJIRiokibZcooZq$4m%6jALZ6X;AYv@k#-qpKPw3celztYc zQSE+rlXG*p$)7F$6*{_TyI(rQ;^o_SYbjp3lyi?4A6+iItLZV_*BNd1wY3kW>BBM? zR^>ga6i;S77R_a}t;^*f1CBL=10uD$M#VCQ^;fnvtoix$hnpq+`wq8DEv~Ak#uN9L z)9<*b^r)7d23lg{OPjxlUtm{|jSE0o&M!P%`rOr>90fC+K|1$%61iTuq%w2gRdeC?5>x5=f(Z|9#*$X*q6q*o(}%D#smB9{n++>>yDj%Ha&Lv0=NGhq%ctj zom}icR=jY7{(zZa)!$cT`;W8671ZC;)uVl{ym7bGKOEeqQxpY((d)8bog6tzanGk-xFOPR%`OVKPri5%qHuEzi&=9+q|D0Blhl$==ypU z&4a5V{nNj#e(XbaP03_~M65X1v2?aoOHI*QVf0_xo!C z4#}_4)W_M z;pEquRg{!If-)j5A+f$I`q;}cw&jO?LN={`wRcj=emuTyW0RgW=v`<-_hXYW)qyYf zz8atQmK;3$@K4G0(K}?sx!04|k?BT;WN`g@2Jex8>E*UduAu>|A8v_j{}bzS%Jq(D zlo+GGVBr08s$AK+d=jw|T<U6cJZxqZwX@9#Uqol5uZ;nzWieW7i4YUSV8H0!KPuItLWEkTH`R_rP) z8{$>#@-Y3H5qq^gqtWtX&Iz^=E9KuCPOg0`SHc)BF>fxMJI6BUec7i!vAS*N-W#T) z>|_iix4fWeU+CRWtN$&>;y`FZpD{GFzI zhKi)TFZsOIbw0Y}+RWvAmwbj+A{m5;2kj%o)r;&v4%O7Fb??W>Ah4(PRy2Hyd^cHK z+RVExY2A8Th zRqw#lOAb|Ee@m*oK|V zq4gm=eR0d zwdRO|;Fm*Z-Ux)RENYt5SO?Zp{I$TkeR|>CkUz)Bg#FUPeCm6hfm!M(LrwR%RTDx|wuWtV}!@pL+&XJ`T$J{(B zXmtg=qJ7+-jjktvAmS) z(OrA|wn9b5px&xZw~F58cs0vCn2^@1ZbGuVV87dwHZnJ%|*}QWb`H)H`Iot$q zHMTvxhbST}%am*8+O73n2kPQVvkkLs`j-CP!F2tFgi?o#fQ> z%+tGRc0EW)er{?eBoQaU#mN)qI_@_!KX{CLWwV50ek8rFW@&&lzwK<+K^NS`fG{5p zTNDPUA4uz~QN4aeN$0V^w1%4yj<8Kb5mj;=2R^>TYQH>kR$=}N^XP+>*PA7`4O=U*VwB7IsDdRjVb%JmX#clq;Dxr!dhwxhI|Vn-g$prRWFu^? zq7`#>6~SIe)+r22E9$Jwjug=P_r-!=YqYNRRoQPrmGe4(S9uoIrCAl?Y#UelNwepU zuHGs6t1qJM?sxj}BGbiJfGIR0P(U)TT2NOcB3KWD2?~{J^$IHlJf@b@~ z*ZD~@ht>XV%}|i8%t_gKymzCtgM)yfp&?qOZHsFclQloC-bMZAcVPap<4Mmy_odo3 zwkDiZaXUlJRP@j4=3PmdVX+}LRlnxr5pSRT!212!Vc%s~Ti>@ZH-5ZGuVARI&CZ^T z>dxF}$IjCD(ZTD$#lEb#)vpG3-ZsXiCx7m9zf8@0S|}PgcX#~E?sI*|-{)XB*b;Xy z$un&79+EVvGMthgk#HP1RxkJ!uwGFNbj_NbJy=?i`+OwhLW(1@Uuu zg*WK(wuBzt;l(w~C!A<1^l)#K~|n_RL3}{ zE%I#a5|z-?y_u6YHYEkS)#g<1?dG|~A^-2Gce!ZBZr9s`jJwa7R0K#jC<<*moTX2D zQ*5LuH6c0KAct3dWmppUa9Ys3xO;asBz~o%9Rg;xRoB~}U}(-<2yKuFt(N)Y`}muX z-M^r;sS7iAZA{O;v3TrgaCyJ+r%zLI!xB&59a9kU_?jYi%+9U2e<T zO4-kcZU$6jx{MD>T;69w|!ho8%^{LDZ4 z^#oh!9bxuY7q#fgQaE(-&7k1%m3NVmSmk(R20grPgE85P9w=D5Xqf>f(?|4D@oaJ& zwHIhf)2)-{DEtTk(=j$SrqieWHtlBq11rOwwDEc=3H$Ud`S*J>3Wou183!h0gT`i~ zPQ9CSmWSI<&RL3B-76n2j~hO=@WZWEEksw6{*BtkEmQv@Pee7Jj%Z|&s23ItJRAOm zYd3l0T%}`YE%Z1Fr*@&a8#e{KV3>htK%>Fv^!qfZ+O?45*B+OQ7IhQ(*I|Ev@##ZQ zD1ZL^Sy@%}6CGysfhi|zWO<@kQ9e{FUNd5+sG$L6;wE@L1_lQDhIQV%nJ!zdp3Gd{pnvB6-~Hl-jg*M@ zPIr!+on{(}{F&z)9PznC=lGPA=b;ou{&c@{g0+{)rs&-jM=4wds%4Z>l*9U@rYi8x zD$sYF@-6!&Jw~VxZZLgKs=9sPnk1{bY}mG6Z=(0p?K6zmYa>3vf(Kn$en5xl%^(!) zL(j)~Ye;EnVL+7cdX5ISJ{5aNHH}_KVBikAolNJxlnY0f z?+5C*3nV$gHyXr=U(*x7Mh==~VEpaQ)K?y{#5< z`Qvg*N%?xp>uX=-*S4+iVNLtn`E%fD83(1u>T0@L`hrkN_WHF~H*I7-c zKS)VRz0{A}c42Mn#_bt9uMMC7a{q_zjong8k0Ku()XZwRI96QoJvTpeYUaQ@1amI* z9}UaJzh(t@bgUfL7lvL^3h$sd?YfX^aXr0*$l;UxEHYbZ`7IAZJfa8Yq0!ba+ZhBu z!iQ%S?U~z_DTe41d)dy8m!8+`-E&GIYkUN^@h;1WidAt9QkcBl*#|6RbQ>N-7ldo; zeDdpInOQin<=9EV+23}?%D&nvp4IAi+HI^`->qu%S*Bk4G2$HE_id7=j6NhfOD4GC zt{FwTA8r8vFn;^?j{zeY4DnF|G>ECyrtx^_b;wu&({m3IQow8EvVk#Ft@vd z*E9Rad(ri+cX(GXgfCH9rnP9Y@uw+}AcWT;oSYFCVy4OB1J{}I$kQ`1^Rlvza_d|p z&Axr=1EZbO33Y?EKWznF#=JZ|DYwT8?Z@{lySFIc(Um+({UG*=nuaL@<3;&tqfDRo zw}p#x_Igo!vF%6_rgge<>fHMmYu7#8LAUpkbx!sLd+&oMzeGPeOTS9>ZK-3!!I$k9 zFrsVa5AlBZ&HG{X;`l!yP2Z0Gz~#TIWi17dTQw^eS!vsM+@kdM^)*$}i@G{TI)r#u zRbAS@Z3B9LPPf^d>vc9xmQwtx7V!FII|N%`b2`rB;;xWRwMeF&ndr&<&KR;r?!BMju%%1Ry}Q&Fky$mAZQYI0Te25> zIHvPfqT>r;7j<+PaT(NfP@P-lcyANcnOWzz)qNPKrpVvVpFbC@=C*Yq_e1eQABW4> zmMvSPaN0nVI2V0|PT9)pH2gdEi#R{~^XE^$`4g>=+|4lwH~#n73Q9^BoSn}=_95VO z)p*zDFZ7Zw!Qm}N`xXYLsrT-^=ACdW)M;hG6bX&Qp}pjn`y4WdQEu0l3A&`e#J`SLSL32G;_ zLUt!%xm~a@QGGd5u*tqASv~U^kLg~>9Ry%heJ*Pb0gv3JOPkq4ypSzSz$@xnx*9)V zI^1=JC`eom<$QpC?XRTf{|h({Zou9+XPaI1#5(!SHz)?)d>1Mnd-KTfm?LyOnlXen8nP=wn#1Y!s4k*pR49i3Vz zB_uChx&{jy0|SE{yLQz}3X`Y=Dc|cDrqTbV@i3eFC{UP{pSP6FUo>;;MCQHWB>oi* z65ysnp37~nA^MMF;ec`%-YNHo2mOt%B4LOUV`5`bJf>o0Wu<%9SKr3ns1`2bBDmM9 z&pYk+@81$b58fKg{~I$xpnqnj``*-O2R-UaC--iFpnYLoQ<8&>Y|9sYnaQxma#}Hf zaggZjAv1yI0ze|r!hprRX!bg+*c>`FdKbBuLcYHMbUo%<#=p{Eq%)D@os zj2(Rm)73h~Lw*pDK)CC$>Ng@LG z-^9(bF$(O7QnM~AJGu-7cwH2Gnx%+py1%AHVGw9bmep)Ir@%wQc4|I2 zviEBNbIrNQun4cjtsO8@9a7f8zogkPn8wu?G*7*i(mD|s5U}PfOk^XAgCWLFN85W{ zT!=V%gLGGX^Hk{tR} zFjHJRv@KgM&OxTOV%9rL(OAdSG4EdIW|#|7;Bl;M6q;C&m@%Ee!O6MHtIYcS^rx~{ zFDmHHVtyR@Lyf+@vpRzFf`9)uoWuM0%=h>8^?i3+UPK4NnGf_FA>1{l^?}@JpK`3w8 zJ`RJI7Rmgdo+s4uY>%U2&IOwGPZ(@{QG$XXu!?y2m50~H!L>e z;DCus5~G(i$zb~2Aw^(to8t*o)i=76>(RSmaP82)WGS&07MiE8_tWq7dJv-HxXB%i zk_jkWw63^V8)LPz-NEN}U?b&1jhql4-wgn(m!u>Avhe&`T9s--yK78+Sx8 zo>mWYc60$Jh*qEdok;F&?kP2)@M`vaZ`dAD-k{y>mQ*=*ZLHqdF9poXnDTO9!~$3% zILD3Px-einAde;7^598U=GTJecVvZO(QS|&?H{zuH)YGT=qfTX99E2O7zD-U2#r>> z))_j-KEi57Im|}$+Isx_d3aPpMbl8$4O7^1R z5J_YDg+Vf-Gf9s0>CY;Ur4&+c-oD)ktxG5caCYIDfEHU4AqZ$DhTq;?HA<om(b`rN@7|0hh^|<^^&~J0Ao(`(W zCM^rtDcq>N_oF>fntT^j>zB`-bzk)vh^$Y`Fi$zH4IIw`A|lKvT;Lg%j|9Gz+$zwF z*ZmxLT=BAsib~eh#Dw)E>_o_cOqq;co{jctIb_TO)|JSbXOM|Cs!L3Uao^vvkDOoZ z<~i*Pzl}t>+@beNLdS5)!c;7{fy5UT{mkOuK*ti$v8Zfhb1}>Dv zzD~qDmbqGR;<;m*n(MKF@wPjDhu7L7CN?oS`6wFHOXQXQDEVPI)9G|3>VKDx@5;R& zJ5_V&Rx z7jYwmgZ1BKjQ!vl^q}n8RjmG+iCMP6vA9IGxFXoFc7CrBGy?T9@#|BV$Z^|eA`#k0 z9?Vao350aI_Z5R_=$pc0&lS7sa~O{oxF&!#zQshF=Ctnv&lNWgvxrEMlqkI(T4Cc0 z$%Q|eC&J6y+~S(w(OHtR8_@j6;#_)geM3CpaMgg-q%jHmDH3j5 zUidIhw9$ftNqDjh2%CuaxLXGz&C$}HqUAJ_HE?S&C8x6re>O)foEt{Gy0w`Xh@3VV zKFNUFxF?>W&}zdc#(u@j>?A<^nhx*1hOi98YU6UALFR$v;jOjCPcm56QFddUGJr{; zgFJld)SKLJG!ajUAR}$847}l);4M}>+uC*Oc2ZN9!J_LK0Iu?9CWh#DeIJO>>u~c# z`MNr{B^v~TcKMO`6%&VnjGgWNOww>ko5G1(%LyX$1MBnluNM!0HK))c zXhlpDjN1ay6gMJ+8Y4b74Bo4S#3ZajT`N6`m(r z7;ii(;%u8yr<;jwyclkD>?Yxq)TK*@j~zqLSc9dhIMLav{=U9(2tEURea`}z7#tk@ z94YkAdzwS1fHpq2K={a!dyrQ9Av3~9BBndU!xKa{4NlI)b92mx57QiAv%)e`(T6I- zoA&hG(udo3@7Qq`Y;ANUHh{2{6j#i=776 zh(;eD?c|xj-Qw8H3x~pB;!Fe*A8{abghkb>&k$PjyDsn>8yimzHC2b`XlZ@E)uLSi z{@5Fhl#gX)JNND_$EtJq@qlIqucMx2q8wQ_8f^|_MGGW1v?qf;`aGWTQ%#K_NJ=L) zv%R|(N9`AWYVQHq7sf7Dxms8Ue!;;Wr9bqLO(IVW{rK@Cmq^qO28J3e#MzeO zr3Vdz2Cx}x;uXSX)&rk!VIrj10H3)ZU5uMWP&IRU*I{m++qV~~pJJLwO9-e0xL%!c z^~A)*>3d&=GKhr#d-m-4gJV4cP1-HNldErNu*&a%;pjaW)Liwx3O9|cX3gm}HRw*| zVjS%}v5Bw4b~n;C3{E{rh(HEljoLqw)5Xlq9f)Rm1?T2*=+JD!`mTS3*QL@!BRIvh z38XcA?nu+)gGZ+wYtVs?N{^TjAzbLMp2w<_L1+6_pE1qyBY9I(wridt%WV#^TbQw0 z^9&I0nr8!1PN{7?Xit2~T^+W!g>4H6qUcM`z<58aUoL|GE2SS1Qd+QU1%o{T@BISx zzdQ0xmOwAhEAMmD6Dtew>~CZy${DTV`fw z_mw#RZ8d62ZGUI=3MusZQ?TOaiH(gdIulZDNK8&L;aab&q3tGGzA$57=(fD1QT#A} zG_RV{4^%gWrx*dz`cu-uClh#V)IF0&j3f9|fjj1bhPeI!-h{_52i`1;qn#jZ{DPE)^r(0j${3}ECSk*I+X zOvA{j?k|JqqslT;ihRVKnCSj0wPoGdEWz#mAq*ZLt27 z)8F6Yu~388v~()o8)QWRkeQvm7CVWA5W0@qtLBhkZ`DKaA%o!AXAbTMJJ&orkyenQ zF~`%QrBAVeGeb*K8qKcfX=>>oD6es=@=U=0%8asm_ijbgQ_iV36BMYQYo6Sj36PI& zR&;St&gItB@x1xK?ca9!kAa-29*`v^?B4p8+RTzigu9z@CkF?mk7m+rjR(V zvTVPZgPpJPsut8%cn3Z>?Eyp~Dr>89SKYnsB5K3e4WXdor+~5XDmj_T9RXF*!h|#h zt#344~!iM^;l+)4=Q`E0PGI(RXXy zF%QKWI!*Ja{U}K()!kTH=F=CTeR&NKveF2@sM$1u>%Ktge=+IZ#P4vO(6$+EhpZI!V~NrO?O{) zF*^}dFs@Iqe>toLB>=1rhyRgc0UIP?r$dr(Z2ypR96%oYr>P1>jIn zuk0LFRNwZx17Ni#&fBvP_cEg_djI}?x;jPGbv?=hv1l?g&%5DXfc-ayZ5z_Cva%)y z5?OaF;Tb@hXVlLM7+R;eU-wmnbE`)@DF=wlFm+n^g{X~h?;!kEBeKi6& zls&H@&K{T&lhx3m!#PdaFJK*$9)>G8<=KBDFX2u59`U)AVC3azr(U!vj3N%Yi~Q;z z1$(JD!HR_spfiM(MevftY5W;mI&ox=4z;fv0=1^j=p+P#69Lf+_dk3%&ny?^4elA# zI$0t;!g?hX^ZXHB#G?Wlyu{Sdyp-jo z#3^Q(*TmbjnVQR1n^?ccFMVvVFZ=NBdEfVW&iSAJIp=@QcZK7kbfgmVKrnbrKZ9ai z=m|aeIrELI?&yV1x!B*;gN9&Jnpe}h*#M*w)U8ADN?z_E!($P+D5UxAZCO%l;(M2h zuu2-^?}2DPz}t5e$b;kK_n1bLY;1hj)Rlwb-Z`0Hjr!1Mn^QKb1pr2OQ#~sdABB5I zY0AzC8L)b1_a#VP;_67EY_MQ{P0d~$xsHEGP=$mQ;|P4rb3mZozW^y9>}cjwzU}Np zZPqlA@-iKS0k0HUXTVsz!W3oq#7-f?SW4B1pt5Ug_rdiyOci*3#v(VHm37<3@!fMn zT1V`13@;oVyt=?4q;3*l6tkbJQ2ou&1O}_i^u5hWXXakm1A$GI1A?_6xbdR#4Nnbu zmaM!HLhV?)s2$6#-HE}7fm-nTJ$;MiX+gV))96COPq%Y|yTvZ?xS#Fg>g4O~XJc(` zEGZmAgVK8V;~MtgG*)6Glg%_5sw%XqxHu=S6GO48I6FCSUSryXwPV)8ByiQ0UYg`e zebHbnc@EV`{dF{l?;uz69a<_xp?J^6hY5SSl(;&-*kVZ(Muh>NG&IN~A|eFP1GBnl z%s(=$dc~U(bTd~zi|uR)+LADGjdq>P7MG4)h6Q8CgxX!~K~VYzfMMNJR21>Y*_STG<&}4ig6xPPu_*E*GUXK_e3AM9ER@qoAXB#Tj8%=;*;`|Azo`sk9$^Y>Islcp_&;JR7 b + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/pandapipes/src/pandapipeesdlparser.py b/examples/pandapipes/src/pandapipeesdlparser.py new file mode 100644 index 000000000..0cb8de959 --- /dev/null +++ b/examples/pandapipes/src/pandapipeesdlparser.py @@ -0,0 +1,346 @@ +# THIS CODE DOES NOT MEET THE CODE FORMATTING STANDARD +# Reason: this is only used to parse the esdl for the pandapipes validation test case + +""" +PandapipeEsdlParser +==================================== +The module for reading ESDL file to pandapipe format +""" + +from esdl.esdl_handler import EnergySystemHandler +import esdl +import pandapipes as pp +import math +import uuid + + +class PandapipeEsdlParserClass(object): + """ Class of Pandapipe ESDL Parser """ + def __init__(self): + """ + Function initialize class attribute + + Attributes + ------------ + esdlFileName + A string describes the name of esdl file + esh + An object EnergySystemHandler + esdl_asset + A mapping to the ESDL asset + """ + + self.esdlFileName = None + self.esh = EnergySystemHandler() + self.esdl_asset = {'heat':{}} + self.initAsset() + + def initAsset(self): + """ + Function clean esdl_asset attribute + """ + + self.esdl_asset['heat'] = {'consumer': [], 'producer': [], 'buffer': [], 'ates': [], 'heatpump': [], 'pump': [], + 'heatexchanger': [], 'pipe': [], 'joint': []} + + def get_assets_by_commodity_type(self, commodity_type: str): + """ + Function read asset from ESDL based on commodity + + Parameters + ----------- + commodity_type + HeatCommodity, GasCommodity or ElectricityCommodity + + """ + + assets = [] + for item in self.esh.energy_system.eAllContents(): + if isinstance(item, esdl.EnergyAsset): + for port in item.port: + if port.carrier.__class__.__name__ == commodity_type: + assets.append({"type": item.__class__.__name__, "name": item.name, "id": item.id}) + break + return assets + + def loadESDLFile(self, esdlFile): + """ + Function read esdl file and mapping the asset + + Parameters + ----------- + esdlFile + file name of ESDL file + """ + self.esdlFileName = esdlFile + self.esh.load_file(self.esdlFileName) + + assets = self.get_assets_by_commodity_type('HeatCommodity') + for asset in assets: + asset_obj = self.esh.get_by_id(asset["id"]) + self.add_asset_heat(asset_obj) + + def add_asset_heat(self, asset): + """ Function mapping ESDL asset to esdl_asset attribute""" + if isinstance(asset, esdl.Consumer): + self.esdl_asset['heat']['consumer'].append(asset) + + if isinstance(asset, esdl.Producer) or isinstance(asset, esdl.GasHeater): + self.esdl_asset['heat']['producer'].append(asset) + + if isinstance(asset, esdl.HeatStorage): + self.esdl_asset['heat']['buffer'].append(asset) + + if isinstance(asset, esdl.Pipe): + self.esdl_asset['heat']['pipe'].append(asset) + + if isinstance(asset, esdl.HeatExchange): + self.esdl_asset['heat']['heatexchanger'].append(asset) + + if isinstance(asset, esdl.Joint): + self.esdl_asset['heat']['joint'].append(asset) + + def add_additional_joint(self): + """ Function add extra joint when pipe is connected directly to producer/consumer""" + + for asset in self.esdl_asset['heat']['consumer'] + self.esdl_asset['heat']['producer']: + for port in asset.port: + if isinstance(port,esdl.InPort): + if not isinstance(port.connectedTo[0].eContainer(), esdl.Joint): + #add extra joint + coord=esdl.Point(lon=asset.geometry.lon+1e-4,lat=asset.geometry.lat+1e-4) + newjoint = esdl.Joint(id=str(uuid.uuid4()),name='inport joint ' + asset.name,geometry=coord) + newjoint_inport = esdl.InPort(id=str(uuid.uuid4()), name='inport') + newjoint_inport.carrier = port.carrier + newjoint_outport = esdl.OutPort(id=str(uuid.uuid4()), name='outport') + newjoint_outport.carrier = port.carrier + newjoint.port.append(newjoint_inport) + newjoint.port.append(newjoint_outport) + self.esdl_asset['heat']['joint'].append(newjoint) + + #change connection to newjoint + in_asset = port.connectedTo[0].eContainer() + in_asset.port[1].connectedTo[0] = newjoint_inport + port.connectedTo.append(newjoint_outport) + + if isinstance(port, esdl.OutPort): + if not isinstance(port.connectedTo[0].eContainer(), esdl.Joint): + # add extra joint + coord = esdl.Point(lon=asset.geometry.lon -1e-4, lat=asset.geometry.lat -1e-4) + newjoint = esdl.Joint(id=str(uuid.uuid4()), name='outport joint ' + asset.name,geometry=coord) + newjoint_inport = esdl.InPort(id=str(uuid.uuid4()), name='inport') + newjoint_inport.carrier = port.carrier + newjoint_outport = esdl.OutPort(id=str(uuid.uuid4()), name='outport') + newjoint_outport.carrier = port.carrier + newjoint.port.append(newjoint_inport) + newjoint.port.append(newjoint_outport) + self.esdl_asset['heat']['joint'].append(newjoint) + + # change connection to newjoint + out_asset = port.connectedTo[0].eContainer() + out_asset.port[0].connectedTo[0] = newjoint_outport + port.connectedTo.append(newjoint_inport) + + + + def createpandapipenet(self): + """ + Function create pandapipe network from esdl_asset + + return argument + + Parameters + ----------- + net + pandapipe network + net_asset + system component + Tsup + Supply temperature + Tret + Return temperature + """ + + # specify water properties + print("\nNote that the water properties have been hardcoded\n") + + import pandapipes.properties.fluids as fl + water_const = fl.Fluid("water_const", "liquid") + + density_mesido = 988 + density_const = fl.FluidPropertyConstant(density_mesido) + kinematic_viscosity_mesido = 3.6437149167588743e-07 # @ T=80 degrees + viscosity_const = fl.FluidPropertyConstant(kinematic_viscosity_mesido * density_mesido) + heat_capacity_const = fl.FluidPropertyConstant(4200) + + water_const.add_property(property_name="density", prop=density_const) + water_const.add_property(property_name="viscosity", prop=viscosity_const) + water_const.add_property(property_name="heat_capacity", prop=heat_capacity_const) + + net = pp.create_empty_network(fluid="water") + + fl._add_fluid_to_net(net, water_const) # checl fluid used -->> net.fluid + + + net_asset = {'DemandCluster': [], 'ProductionCluster': [], 'Buffer': [], 'ATES': [], 'Heatpump': [], 'Pump': [], + 'HeatExchanger': [], 'Pipe': []} + + + nodeids = [] + for asset in self.esdl_asset['heat']['joint']: + for port in asset.port: + if port.carrier.__class__.__name__ == 'HeatCommodity': + if not port.carrier.supplyTemperature == 0: + Tfluid = port.carrier.supplyTemperature + if not port.carrier.returnTemperature == 0: + Tfluid = port.carrier.returnTemperature + + coord = (asset.geometry.lon, asset.geometry.lat) + + pp.create_junction(net, + pn_bar=100, + tfluid_k=273.15 + Tfluid, + name=asset.name, + geodata=coord) + + nodeids.append(asset.id) + + + dx = 1000 #m + for asset in self.esdl_asset['heat']['pipe']: + for port in asset.port: + if isinstance(port, esdl.InPort): + node_input_id = port.connectedTo[0].eContainer().id + if isinstance(port, esdl.OutPort): + node_output_id = port.connectedTo[0].eContainer().id + + coord = [] + for point in asset.geometry.point: + coord.append((point.lon, point.lat)) + + # temp_inner_diam_m = ( + # asset.innerDiameter if asset.diameter.name=='DN200' + # else float(asset.diameter.name[2:])*1e-3 + # ) + pp.create_pipe_from_parameters(net, + from_junction=nodeids.index(node_input_id), + to_junction=nodeids.index(node_output_id), + length_km=asset.length * 1e-3, + sections=math.ceil(asset.length / dx), + alpha_w_per_m2k=0.5, + k_mm=0.2, + text_k=273.15 + 10.0, + diameter_m=asset.innerDiameter, + name=asset.name, + geodata=coord) + + producer = 0 + for asset in self.esdl_asset['heat']['producer']: + producer = producer + 1 + for port in asset.port: + if isinstance(port, esdl.InPort): + node_input_id = port.connectedTo[0].eContainer().id + if isinstance(port, esdl.OutPort): + node_output_id = port.connectedTo[0].eContainer().id + + for port in asset.port: + if port.carrier.__class__.__name__ == 'HeatCommodity': + if not port.carrier.supplyTemperature == 0: + Tsup = port.carrier.supplyTemperature + if not port.carrier.returnTemperature == 0: + Tret = port.carrier.returnTemperature + + coord = (asset.geometry.lon, asset.geometry.lat) + + node_valve = pp.create_junction(net, + pn_bar=100, + tfluid_k=273.15 + Tsup, + name='valve joint ' + asset.name, + geodata=coord) + + pp.create_flow_control(net, + from_junction=node_valve, + to_junction=nodeids.index(node_output_id), + controlled_mdot_kg_per_s=0, + diameter_m=0.5, + control_active=True, + name='valve ' + asset.name) + + pp.create_circ_pump_const_mass_flow(net, + return_junction=nodeids.index(node_input_id), + flow_junction=node_valve, + p_flow_bar=100, + mdot_flow_kg_per_s=0.0, + t_flow_k=273.15 + Tsup, + name=asset.name, + type='auto') + + + for asset in self.esdl_asset['heat']['consumer']: + for port in asset.port: + if isinstance(port, esdl.InPort): + node_input_id = port.connectedTo[0].eContainer().id + if isinstance(port, esdl.OutPort): + node_output_id = port.connectedTo[0].eContainer().id + + for port in asset.port: + if port.carrier.__class__.__name__ == 'HeatCommodity': + if not port.carrier.supplyTemperature == 0: + Tsup = port.carrier.supplyTemperature + if not port.carrier.returnTemperature == 0: + Tret = port.carrier.returnTemperature + + coord = (asset.geometry.lon, asset.geometry.lat) + + node_valve = pp.create_junction(net, + pn_bar=100, + tfluid_k=273.15 + Tsup, + name='valve joint ' + asset.name, + geodata=coord) + + + pp.create_flow_control(net, + from_junction=nodeids.index(node_input_id), + to_junction=node_valve, + controlled_mdot_kg_per_s=0, + diameter_m=0.5, + control_active=True, + name='valve ' + asset.name) + + pp.create_heat_exchanger(net, + from_junction=node_valve, + to_junction=nodeids.index(node_output_id), + diameter_m=0.5, + qext_w=0.0, + name=asset.name) + + + return net, net_asset, Tsup, Tret + + + def correcting_pressure_return(self, net): + + + # find minimum pressure at inlet consumer + min_inlet_pressure = net.res_flow_control.p_from_bar.min() + idxmin = net.res_flow_control.p_from_bar.idxmin() + + dP_cons = net.res_flow_control.p_from_bar.values - net.res_flow_control.p_to_bar.values + + dP_offset = 0.5 - dP_cons[idxmin] + + # shift junction pressure (return side only) + idx_node_return = net.junction.index[net.junction.tfluid_k==net.junction.tfluid_k.min()] + net.res_junction.p_bar[idx_node_return] = net.res_junction.p_bar[idx_node_return] - dP_offset + + + # update pressure at pipe + net.res_pipe.p_from_bar = net.res_junction.p_bar[net.pipe.from_junction].values + net.res_pipe.p_to_bar = net.res_junction.p_bar[net.pipe.to_junction].values + + # update pressure at producer + net.res_circ_pump_mass.deltap_bar = net.res_junction.p_bar[net.circ_pump_mass.flow_junction].values - net.res_junction.p_bar[net.circ_pump_mass.return_junction].values + + + + return net \ No newline at end of file diff --git a/examples/pandapipes/src/run_example.py b/examples/pandapipes/src/run_example.py new file mode 100644 index 000000000..0e6ddb863 --- /dev/null +++ b/examples/pandapipes/src/run_example.py @@ -0,0 +1,125 @@ +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.io.write_output import ScenarioOutput + + +from rtctools.optimization.collocated_integrated_optimization_problem import ( + CollocatedIntegratedOptimizationProblem, +) +from rtctools.optimization.goal_programming_mixin import Goal +from rtctools.optimization.linearized_order_goal_programming_mixin import ( + LinearizedOrderGoalProgrammingMixin, +) +from rtctools.optimization.single_pass_goal_programming_mixin import SinglePassGoalProgrammingMixin +from rtctools.util import run_optimization_problem + + +class TargetDemandGoal(Goal): + priority = 1 + + order = 2 + + def __init__(self, optimization_problem): + self.target_min = optimization_problem.get_timeseries("demand_1.target_heat_demand") + self.target_max = optimization_problem.get_timeseries("demand_1.target_heat_demand") + self.function_range = (0.0, 60e6) + self.function_nominal = 1e6 + + def function(self, optimization_problem, ensemble_member): + return optimization_problem.state("demand_1.Heat_demand") + + +class MinimizeProduction(Goal): + priority = 2 + + order = 1 + + def __init__(self): + self.function_nominal = 1e6 + + def function(self, optimization_problem, ensemble_member): + sum = 0 + for source in optimization_problem.energy_system_components.get("heat_source", []): + sum = optimization_problem.state(f"{source}.Heat_source") + return sum + + +class SourcePipeSink( + ScenarioOutput, + TechnoEconomicMixin, + LinearizedOrderGoalProgrammingMixin, + SinglePassGoalProgrammingMixin, + ESDLMixin, + CollocatedIntegratedOptimizationProblem, +): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def path_goals(self): + g = super().path_goals().copy() + g.append(TargetDemandGoal(self)) + g.append(MinimizeProduction()) + return g + + def post(self): + super().post() + + +class HeatProblemHydraulic(SourcePipeSink): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.heat_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + ) + self.heat_network_settings["n_linearization_lines"] = 3 + self.heat_network_settings["minimize_head_losses"] = True + + def energy_system_options(self): + options = super().energy_system_options() + + return options + + def solver_options(self): + options = super().solver_options() + # options["solver"] = "gurobi" + + return options + + +if __name__ == "__main__": + solution = run_optimization_problem( + HeatProblemHydraulic, + esdl_file_name="Test_Tree_S1C1.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_constant.csv", + ) + results = solution.extract_results() + + # mdata_points = 10 + # print("dP, bar") + # print(-results[f"Pipe1.dH"] * 988.0 * 9.81 / 100e3) # pressure in bar + # print(-results[f"Pipe1_ret.dH"] * 988.0 * 9.81 / 100e3) # pressure in bar + + # print("dP, kPa") + # print(-results[f"Pipe1.dH"] * 988.0 * 9.81 / 1e3) # kPa + # print(-results[f"Pipe1_ret.dH"] * 988.0 * 9.81 / 1e3) # kPa + + # print("dH, m") + # print(-results[f"Pipe1.dH"]) # m + # print(-results[f"Pipe1_ret.dH"]) # m + + # print("mass flow, kg/s") + # print(results[f"Pipe1.Q"][0:mdata_points] * 988.0) + + # print("v, m/s") + # print(results[f"Pipe1.Q"][0:mdata_points] / solution.parameters(0)[f"Pipe1.area"]) + # print(results[f"Pipe1_ret.Q"][0:mdata_points] / solution.parameters(0)[f"Pipe1_ret.area"]) + + # print("dHP, W") + # print(results["Pipe1_ret.Hydraulic_power"][0:mdata_points]) + + # a = 1 diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 24c624351..44b907aa2 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -1468,7 +1468,7 @@ def _name_to_asset(name): # test = 0.0 # ------------------------------------------------------------------------------------------ # Save esdl file - + # Edwin_marker_esdl_string - line 1224 if self.esdl_parser_class == mesido.esdl.esdl_parser.ESDLFileParser: extension = "_Simulation.esdl" if optimizer_sim else "_GrowOptimized.esdl" file_path = Path(self.model_folder) / (Path(self.esdl_file_name).stem + extension) @@ -1476,6 +1476,7 @@ def _name_to_asset(name): self.optimized_esdl_string = self.convert_energy_system_to_string( energy_system=energy_system ) + # self.__optimized_energy_system_handler = esh # self.optimized_esdl_string = esh.to_string() # diff --git a/tests/test_validation_pandapipes.py b/tests/test_validation_pandapipes.py new file mode 100644 index 000000000..a91da05a8 --- /dev/null +++ b/tests/test_validation_pandapipes.py @@ -0,0 +1,327 @@ +import os +import sys +from pathlib import Path +from unittest import TestCase + +from mesido.constants import GRAVITATIONAL_CONSTANT +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.head_loss_class import HeadLossOption +from mesido.util import run_esdl_mesido_optimization + +import numpy as np + +import pandapipes as pp +from pandapipes.timeseries import run_timeseries + +import pandapower.control as control +from pandapower.timeseries import DFData +from pandapower.timeseries import OutputWriter + +import pandas as pd + +from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test + + +class ValidateWithPandaPipes(TestCase): + """ + Test case for a heat network consisting out of a source, pipe(s) and a sink + """ + + def test_heat_network_head_loss(self): + """ + Heat network: compare the piecewise linear inequality constraints of the head loss + approximation to pandapipes + + Checks: + - head losses + - cp value + - check pandapipes values + """ + root_folder = str(Path(__file__).resolve().parent.parent) + sys.path.insert(1, root_folder) + + import examples.pandapipes.src.run_example + from examples.pandapipes.src.run_example import HeatProblemHydraulic + + base_folder = Path(examples.pandapipes.src.run_example.__file__).resolve().parent.parent + + class SourcePipeSinkNetwork(HeatProblemHydraulic): + + def energy_system_options(self): + options = super().energy_system_options() + self.heat_network_settings["head_loss_option"] = ( + HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + ) + self.heat_network_settings["n_linearization_lines"] = 10 + + self.heat_network_settings["minimum_velocity"] = 0.0 + + return options + + def times(self, variable=None) -> np.ndarray: + """ + Shorten the timeseries to speed up the test + + Parameters + ---------- + variable : string with name of the variable + + Returns + ------- + The timeseries + """ + return super().times(variable)[:10] + + demand_time_series_file = "timeseries_constant.csv" + + solution = run_esdl_mesido_optimization( + SourcePipeSinkNetwork, + base_folder=base_folder, + esdl_file_name="Test_Tree_S1C1.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file=demand_time_series_file, + ) + results = solution.extract_results() + + demand_matching_test(solution, results) + energy_conservation_test(solution, results) + heat_to_discharge_test(solution, results) + + # ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + # Setup and run pandapipes + # ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + from examples.pandapipes.src.pandapipeesdlparser import PandapipeEsdlParserClass + + esdl_file = os.path.join(base_folder, "model", "Test_Tree_S1C1.esdl") + esdlparser = PandapipeEsdlParserClass() + esdlparser.loadESDLFile(esdl_file) + # A producer/consumer cannot directly connect to a pipe, but must be connected to a joint, + # therefore additional joints created for the inlet & outlet of these assets + esdlparser.add_additional_joint() + + # ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + # Setup scenario + total_producers = len(esdlparser.esdl_asset["heat"]["producer"]) + total_consumers = len(esdlparser.esdl_asset["heat"]["consumer"]) + + # Create panda_pipes network + net, net_asset, supply_temperature, return_temperature = esdlparser.createpandapipenet() + + # Setup profile data + raw_profile_demand_load_watt = pd.read_csv( + os.path.join(base_folder, "input", demand_time_series_file) + ) + profile_demand_load_watt = pd.DataFrame(columns=["0"]) + profile_demand_load_watt["0"] = raw_profile_demand_load_watt["demand_1"] + + demand_power = profile_demand_load_watt["0"].to_numpy() / total_consumers + profile_demand_load_watt = pd.DataFrame(results["demand_1.Heat_demand"]) + + # Setup supply mass flow for panda_pipes + average_temperature_kelvin = (supply_temperature + return_temperature) / 2.0 + 273.15 + cp_joule_kgkelvin = pp.get_fluid(net).get_heat_capacity(average_temperature_kelvin) + + # Enforce mass flow rate instead of cacluting it from Q = m_dot... + mesido_demand_flow_kg_s = results["Pipe1.Q"] * 988.0 + demand_flow = mesido_demand_flow_kg_s + supply_flow = demand_flow * total_consumers / total_producers + + # Below control is needed when there is more than 1 producer/heat demand + net.flow_control.control_active[0] = False # 1st supplier + net.flow_control.control_active[0 + total_producers] = False # 1st demand + + # Assign profiles to the following assets: + # - producer mass flow rate, supply temperature + # - heat demand power + # Producer + isupply = 0 + supply_flow_kg_s = pd.DataFrame(supply_flow, columns=[f"{isupply}"]) + ds_supply_pump_flow_kg_s = DFData(supply_flow_kg_s) + control.ConstControl( + net, + element="circ_pump_mass", + variable="mdot_flow_kg_per_s", + element_index=net.circ_pump_mass.index.values[isupply], + data_source=ds_supply_pump_flow_kg_s, + profile_name=net.circ_pump_mass.index.values[isupply].astype(str), + ) + supply_temp_kelvin = pd.DataFrame( + [supply_temperature + 273.15] * len(profile_demand_load_watt), + columns=[f"{isupply}"], + ) + df_supply_pump_temperature_kelvin = DFData(supply_temp_kelvin) + control.ConstControl( + net, + element="circ_pump_mass", + variable="t_flow_k", + element_index=net.circ_pump_mass.index.values[isupply], + data_source=df_supply_pump_temperature_kelvin, + profile_name=net.circ_pump_mass.index.values[isupply].astype(str), + ) + + # Demand settings + idemand = 0 + demand_power_watt = pd.DataFrame(demand_power, columns=[f"{idemand}"]) + ds_demand_power_watt = DFData(demand_power_watt) + control.ConstControl( + net, + element="heat_exchanger", + variable="qext_w", + element_index=net.heat_exchanger.index.values[idemand], + data_source=ds_demand_power_watt, + profile_name=net.heat_exchanger.index.values[idemand].astype(str), + ) + + if profile_demand_load_watt.shape[0] != supply_flow_kg_s.shape[0]: + exit("profiles do not match") + # Completed scenario setup + + # ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + # Run panda_pipes simulation + time_steps = range(profile_demand_load_watt.shape[0]) + log_variables = [ + ("res_pipe", "v_mean_m_per_s"), + ("res_pipe", "p_from_bar"), + ("res_pipe", "p_to_bar"), + ("res_pipe", "mdot_from_kg_per_s"), + ("heat_exchanger", "qext_w"), + ] + ow = OutputWriter( + net, + time_steps, + output_path=None, + log_variables=log_variables, + ) + + try: + run_timeseries(net, time_steps, mode="all", friction_model="colebrook") + except Exception as e: + print(e) + exit("Pandapipes runs was not successful") + + # ------------------------------------------------------------------------------ + # Post processing panda_pipes results and tests + net = esdlparser.correcting_pressure_return(net) + ow.np_results["heat_exchanger.qext_w"] + mdata_points = len(mesido_demand_flow_kg_s) + + density = ( + ow.np_results["res_pipe.mdot_from_kg_per_s"][0:mdata_points] + / ow.np_results["res_pipe.v_mean_m_per_s"][0:mdata_points] + / (np.pi * net.pipe.diameter_m[0] * net.pipe.diameter_m[0] / 4.0) + ) + pandapipes_head_loss_m = ( + ( + ow.np_results["res_pipe.p_to_bar"][0:mdata_points] + - ow.np_results["res_pipe.p_from_bar"][0:mdata_points] + ) + * 100.0e3 + / density[0][0] + / GRAVITATIONAL_CONSTANT + ) + + # Compare head losses + # Hard coded value of 9 used below, since the last data entry has value close to 0, and + # a comparison is not of importance + for ii in range(len(results["Pipe1.dH"][:9])): + np.testing.assert_array_less( + pandapipes_head_loss_m[ii][0], 0.0 + ) # check that values are negative + # check that mesido > pandapipes within % + np.testing.assert_array_less( + results["Pipe1.dH"][ii] / pandapipes_head_loss_m[ii][0], 1.08 + ) + np.testing.assert_array_less( + 1.0, results["Pipe1.dH"][ii] / pandapipes_head_loss_m[ii][0] + ) + # Check cp value + np.testing.assert_allclose(4200.0, cp_joule_kgkelvin) + + # Check panpapipes results + # Expected results (during validation) during validation work + expected_dh = { # + "pandapipes": [ + -1.34309074e01, + -1.06285745e01, + -8.15362473e00, + -6.00606036e00, + -4.18588773e00, + -2.69436747e00, + -1.52897525e00, + -6.91030646e-01, + -1.80687567e-01, + -2.05221922e-05, + ], + } + for ii in range(len(pandapipes_head_loss_m)): + np.testing.assert_allclose(expected_dh["pandapipes"][ii], pandapipes_head_loss_m[ii][0]) + + # ------------------------------------------------------------------------------------------ + # Do not delete the code below. + # ------------------------------------------------------------------------------------------ + + # # Plotting code for manual checking values + # import matplotlib.pyplot as plt + + # # Setup data for easy plotting + # velo_m_s = { + # "pandapipes": [], + # "mesido": results["Pipe1.HeatIn.Q"] / solution.parameters(0)["Pipe1.area"], + # } + # head_loss_m = { + # "pandapipes": [], + # "mesido": -results["Pipe1.dH"], + # } + # for ii in range(len(ow.np_results["res_pipe.v_mean_m_per_s"])): + # velo_m_s["pandapipes"].append(ow.np_results["res_pipe.v_mean_m_per_s"][ii][0]) + # head_loss_m["pandapipes"].append(-pandapipes_head_loss_m[ii][0]) + + # # Plot data + # plt.figure().set_size_inches(10, 6) + # plt.plot(velo_m_s["pandapipes"], head_loss_m["pandapipes"], linewidth=2) + # plt.plot( + # velo_m_s["mesido"], + # head_loss_m["mesido"], + # "k--", + # linewidth=2, + # alpha=0.75, + # marker="x" + # ) + + # plt.legend(["pandapipes", "MESIDO"], prop={'size': 13}) + # plt.xlabel("Flow velocity [m/s]", fontsize=16) + # plt.ylabel("Head loss [m]", fontsize=16) + # plt.grid() + # plt.xticks(np.linspace(0, 2.5, 6), fontsize=16) + # plt.yticks( + # np.linspace(0, 15.0, 7), + # labels=["0.0", "2.5", "5.0", "7.5", "10.0", "12.5", "15.0"], + # fontsize=16, + # ) + # plt.xlim([0., 2.5]) + # plt.tick_params(left=False, right=False, labelleft=False) + # plt.ylim([0., 15.]) + # plt.tick_params(left=True, right=False, labelleft=True) + # n_lines = solution.heat_network_settings["n_linearization_lines"] + # plt.savefig(f"dH MESIDO_{n_lines} vs pandapipes") + # plt.show() + # plt.close() + + # end Plotting code for manual checking values + # ------------------------------------------------------------------------------------------ + + +if __name__ == "__main__": + import time + + start_time = time.time() + a = ValidateWithPandaPipes() + a.test_heat_network_head_loss() + + print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) diff --git a/tox.ini b/tox.ini index 5645a9106..1cdcd134d 100644 --- a/tox.ini +++ b/tox.ini @@ -14,6 +14,8 @@ deps = pytest-xdist pytest-ordering numpy + pandapipes==0.10.0 + pandapower==2.14.6 extras = all # Main tests (typical normal test) @@ -37,7 +39,7 @@ deps = flake8-comprehensions flake8-import-order pep8-naming -commands = flake8 examples src tests setup.py +commands = flake8 examples src tests setup.py --exclude=pandapipeesdlparser.py [testenv:black] @@ -45,4 +47,4 @@ skip_install = True deps = black >= 24.1.1 commands = - black --line-length 100 --target-version py38 --check --diff examples src tests setup.py + black --line-length 100 --target-version py38 --check --diff examples src tests setup.py --force-exclude=pandapipeesdlparser.py From 07c52e633e3e06f23d0608ae7ad6886113670e36 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 7 Oct 2024 08:30:06 +0200 Subject: [PATCH 217/275] fix on the check of the profile parsing and the scaling of the ATES (#173) Fix on the check of the profile parsing, e.g. if profile added power does not need to filled in and the scaling of the ATES temperature has been improved. --- CHANGELOG.md | 3 ++- src/mesido/esdl/profile_parser.py | 2 +- src/mesido/heat_physics_mixin.py | 11 +++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ef200afd..3a2c4589b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,8 @@ - Test case: Head loss validation with pandapipes ## Changed -- xxx +- Bugfix: No longer required to provide a power at the heating demands when a profile has been added. +- Bugfix: Scaling fix on ATES temperature variable when temperature modelling not used. ## Fixed - xxx diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index 5753786b4..038818746 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -134,7 +134,7 @@ def read_profiles( # Check if that the installed heat/cool demand capacity is sufficient if component_type in ["heat_demand", "cold_demand"]: max_profile_value = max(values) - if asset_power < max_profile_value: + if asset_power < max_profile_value and asset_power != 0.0: self._asset_potential_errors_identified[f"{component_type}.power"][ component ] = ( diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 2fbd3f459..72002e22f 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -2038,15 +2038,14 @@ def __ates_temperature_changing_path_constraints(self, ensemble_member): ates_dt_charging = self.state(f"{ates}.Temperature_change_charging") ates_dt_loss = self.state(f"{ates}.Temperature_loss") + ates_temperature_loss_nominal = self.variable_nominal(f"{ates}.Temperature_loss") + ates_dt_charging_nominal = self.variable_nominal(f"{ates}.Temperature_change_charging") + sup_carrier = parameters[f"{ates}.T_supply_id"] supply_temperatures = self.temperature_regimes(sup_carrier) if options["include_ates_temperature_options"] and len(supply_temperatures) != 0: soil_temperature = parameters[f"{ates}.T_amb"] - ates_temperature_loss_nominal = self.variable_nominal(f"{ates}.Temperature_loss") - ates_dt_charging_nominal = self.variable_nominal( - f"{ates}.Temperature_change_charging" - ) flow_dir_var = self._heat_pipe_to_flow_direct_map[hot_pipe] is_buffer_charging = self.state(flow_dir_var) * _hot_pipe_orientation @@ -2162,8 +2161,8 @@ def __ates_temperature_changing_path_constraints(self, ensemble_member): ) ) else: - constraints.append((ates_dt_charging, 0.0, 0.0)) - constraints.append((ates_dt_loss, 0.0, 0.0)) + constraints.append((ates_dt_charging / ates_dt_charging_nominal, 0.0, 0.0)) + constraints.append((ates_dt_loss / ates_temperature_loss_nominal, 0.0, 0.0)) return constraints def __ates_heat_losses_path_constraints(self, ensemble_member): From 0b8b4407d2ad6c8a11806278ebbd7571339c86d9 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 7 Oct 2024 08:33:24 +0200 Subject: [PATCH 218/275] Cleanup run grow workflow solvers (#174) A separate function has been created to allow running optimization problem with different solvers. The solver options are now provided with separate classes, to allow for different combinations between different solvers and problem classes. Also included a setup for the CPLEX solver in the EndScenarioSizing class. --- CHANGELOG.md | 2 + examples/PoCTutorial/src/run_grow_tutorial.py | 4 +- examples/municipality/src/run_municipality.py | 4 +- manual_run/testing_bugs/src/run_grow.py | 5 +- src/mesido/workflows/__init__.py | 8 +- src/mesido/workflows/grow_workflow.py | 82 ++++++++----------- src/mesido/workflows/utils/helpers.py | 36 ++++++++ tests/test_end_scenario_sizing.py | 14 ++-- tests/test_profile_parsing.py | 6 +- tests/test_updated_esdl_post_process.py | 4 +- 10 files changed, 91 insertions(+), 74 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a2c4589b..96ae64445 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,10 @@ ## Added - Test case: Head loss validation with pandapipes +- Grow_workflow: Solver class created to allow the use of CPLEX as a solver for EndScenarioSizing classes. ## Changed +- Impact on the way EndScenarioSizing problems in MESIDO are run: The calling of the different optimization problem classes has been split from the solver classes. In EndScenarioSizing classes, the HIGHS solver is the default and the calling functions also cather for other solvers by adding the keyword "solver_class" with the respective solver class. - Bugfix: No longer required to provide a power at the heating demands when a profile has been added. - Bugfix: Scaling fix on ATES temperature variable when temperature modelling not used. diff --git a/examples/PoCTutorial/src/run_grow_tutorial.py b/examples/PoCTutorial/src/run_grow_tutorial.py index c74d0c061..d28d91a05 100644 --- a/examples/PoCTutorial/src/run_grow_tutorial.py +++ b/examples/PoCTutorial/src/run_grow_tutorial.py @@ -1,10 +1,10 @@ from pathlib import Path from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.workflows import EndScenarioSizingStagedHIGHS, run_end_scenario_sizing +from mesido.workflows import EndScenarioSizingStaged, run_end_scenario_sizing -class EndScenarioSizingStagedHighs(EndScenarioSizingStagedHIGHS): +class EndScenarioSizingStagedHighs(EndScenarioSizingStaged): pass diff --git a/examples/municipality/src/run_municipality.py b/examples/municipality/src/run_municipality.py index 09add0e7d..153ab70f1 100644 --- a/examples/municipality/src/run_municipality.py +++ b/examples/municipality/src/run_municipality.py @@ -1,7 +1,7 @@ from pathlib import Path from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.workflows import EndScenarioSizingStagedHIGHS, run_end_scenario_sizing +from mesido.workflows import EndScenarioSizingStaged, run_end_scenario_sizing if __name__ == "__main__": @@ -11,7 +11,7 @@ base_folder = Path(__file__).resolve().parent.parent solution = run_end_scenario_sizing( - EndScenarioSizingStagedHIGHS, + EndScenarioSizingStaged, base_folder=base_folder, esdl_file_name="GROW_withATES_Prod_install.esdl", esdl_parser=ESDLFileParser, diff --git a/manual_run/testing_bugs/src/run_grow.py b/manual_run/testing_bugs/src/run_grow.py index 6dcd75db4..f7ec98bd0 100644 --- a/manual_run/testing_bugs/src/run_grow.py +++ b/manual_run/testing_bugs/src/run_grow.py @@ -1,8 +1,7 @@ from pathlib import Path from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.workflows import EndScenarioSizingStagedHIGHS, run_end_scenario_sizing -from mesido.workflows.grow_workflow import EndScenarioSizingStagedGurobi +from mesido.workflows import EndScenarioSizingStaged, run_end_scenario_sizing if __name__ == "__main__": import time @@ -11,7 +10,7 @@ base_folder = Path(__file__).resolve().parent.parent solution = run_end_scenario_sizing( - EndScenarioSizingStagedHIGHS, + EndScenarioSizingStaged, base_folder=base_folder, esdl_file_name="Base Netwerk Delft.esdl", esdl_parser=ESDLFileParser, diff --git a/src/mesido/workflows/__init__.py b/src/mesido/workflows/__init__.py index 9790c989f..04ae90d66 100644 --- a/src/mesido/workflows/__init__.py +++ b/src/mesido/workflows/__init__.py @@ -1,10 +1,8 @@ from .grow_workflow import ( EndScenarioSizing, - EndScenarioSizingDiscountedHIGHS, - EndScenarioSizingDiscountedStagedHIGHS, + EndScenarioSizingDiscounted, EndScenarioSizingHIGHS, EndScenarioSizingStaged, - EndScenarioSizingStagedHIGHS, SolverGurobi, SolverHIGHS, run_end_scenario_sizing, @@ -20,11 +18,9 @@ __all__ = [ "EndScenarioSizing", - "EndScenarioSizingDiscountedHIGHS", - "EndScenarioSizingDiscountedStagedHIGHS", + "EndScenarioSizingDiscounted", "EndScenarioSizingHIGHS", "EndScenarioSizingStaged", - "EndScenarioSizingStagedHIGHS", "SolverGurobi", "SolverHIGHS", "run_end_scenario_sizing", diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 1b874f5cb..502ed8a10 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -14,7 +14,7 @@ from mesido.workflows.utils.adapt_profiles import ( adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day, ) -from mesido.workflows.utils.helpers import main_decorator +from mesido.workflows.utils.helpers import main_decorator, run_optimization_problem_solver import numpy as np @@ -30,7 +30,6 @@ CachingQPSol, SinglePassGoalProgrammingMixin, ) -from rtctools.util import run_optimization_problem DB_HOST = "172.17.0.2" @@ -86,6 +85,7 @@ def solver_options(self): highs_options["mip_rel_gap"] = 0.02 options["gurobi"] = None + options["cplex"] = None return options @@ -110,6 +110,24 @@ def solver_options(self): return options +class SolverCPLEX: + def solver_options(self): + options = super().solver_options() + options["casadi_solver"] = self._qpsol + options["solver"] = "cplex" + cplex_options = options["cplex"] = {} + if hasattr(self, "_stage"): + if self._stage == 1: + cplex_options["CPX_PARAM_EPGAP"] = 0.005 + else: + cplex_options["CPX_PARAM_EPGAP"] = 0.02 + cplex_options["CPX_PARAM_EPGAP"] = 0.02 + + options["highs"] = None + + return options + + class EndScenarioSizing( SolverHIGHS, ScenarioOutput, @@ -425,14 +443,6 @@ class EndScenarioSizingHIGHS(EndScenarioSizing): pass -class EndScenarioSizingGurobi(SolverGurobi, EndScenarioSizing): - """ - Uses Gurobi as the solver for the EndScenarioSizing problem. - """ - - pass - - class EndScenarioSizingDiscounted(EndScenarioSizing): """ The discounted annualized is utilised as the objective function. @@ -453,14 +463,6 @@ def energy_system_options(self): return options -class EndScenarioSizingDiscountedHIGHS(EndScenarioSizingDiscounted): - pass - - -class EndScenarioSizingDiscountedGurobi(SolverGurobi, EndScenarioSizingDiscounted): - pass - - class EndScenarioSizingHeadLoss(EndScenarioSizing): """ EndScenarioSizing optimisation including the linearised inequality DarcyWeisbach Head loss @@ -541,48 +543,23 @@ class EndScenarioSizingStaged(SettingsStaged, EndScenarioSizing): pass -class EndScenarioSizingStagedHIGHS(EndScenarioSizingStaged): - pass - - -class EndScenarioSizingStagedGurobi(SolverGurobi, EndScenarioSizingStaged): - pass - - class EndScenarioSizingDiscountedStaged(SettingsStaged, EndScenarioSizingDiscounted): pass -class EndScenarioSizingDiscountedStagedHIGHS(EndScenarioSizingDiscountedStaged): - pass - - -class EndScenarioSizingDiscountedStagedGurobi(SolverGurobi, EndScenarioSizingDiscountedStaged): - pass - - class EndScenarioSizingHeadLossStaged(SettingsStaged, EndScenarioSizingHeadLoss): pass -class EndScenarioSizingHeadLossStagedGurobi(SolverGurobi, EndScenarioSizingHeadLossStaged): - pass - - class EndScenarioSizingHeadLossDiscountedStaged( SettingsStaged, EndScenarioSizingHeadLossDiscounted ): pass -class EndScenarioSizingHeadLossDiscountedStagedGurobi( - SolverGurobi, EndScenarioSizingHeadLossDiscountedStaged -): - pass - - def run_end_scenario_sizing_no_heat_losses( end_scenario_problem_class, + solver_class=SolverHIGHS, **kwargs, ): """ @@ -593,6 +570,7 @@ def run_end_scenario_sizing_no_heat_losses( Parameters ---------- end_scenario_problem_class : The end scenario problem class. + solver_class: The solver and its settings to be used to solve the problem. staged_pipe_optimization : Boolean to toggle between the staged or non-staged approach Returns @@ -606,8 +584,9 @@ def run_end_scenario_sizing_no_heat_losses( ), "A staged problem class is required as input for the sizing without heat_losses" start_time = time.time() - solution = run_optimization_problem( + solution = run_optimization_problem_solver( end_scenario_problem_class, + solver_class=solver_class, stage=1, total_stages=1, **kwargs, @@ -620,6 +599,7 @@ def run_end_scenario_sizing_no_heat_losses( def run_end_scenario_sizing( end_scenario_problem_class, + solver_class=None, staged_pipe_optimization=True, **kwargs, ): @@ -636,6 +616,7 @@ def run_end_scenario_sizing( Parameters ---------- end_scenario_problem_class : The end scenario problem class. + solver_class: The solver and its settings to be used to solve the problem. staged_pipe_optimization : Boolean to toggle between the staged or non-staged approach Returns @@ -649,8 +630,9 @@ def run_end_scenario_sizing( start_time = time.time() if staged_pipe_optimization and issubclass(end_scenario_problem_class, SettingsStaged): - solution = run_optimization_problem( + solution = run_optimization_problem_solver( end_scenario_problem_class, + solver_class=solver_class, stage=1, total_stages=2, **kwargs, @@ -732,8 +714,9 @@ def run_end_scenario_sizing( pass priorities_output = solution._priorities_output - solution = run_optimization_problem( + solution = run_optimization_problem_solver( end_scenario_problem_class, + solver_class=solver_class, stage=2, total_stages=2, boolean_bounds=boolean_bounds, @@ -765,8 +748,9 @@ def main(runinfo_path, log_level): # user write-user # password nwn_write_test - _ = run_optimization_problem( - EndScenarioSizingHIGHS, + _ = run_optimization_problem_solver( + EndScenarioSizing, + solver_class=SolverHIGHS, esdl_run_info_path=runinfo_path, log_level=log_level, **kwargs, diff --git a/src/mesido/workflows/utils/helpers.py b/src/mesido/workflows/utils/helpers.py index 77ab83839..6f711b9af 100644 --- a/src/mesido/workflows/utils/helpers.py +++ b/src/mesido/workflows/utils/helpers.py @@ -9,6 +9,8 @@ from mesido import __version__ +from rtctools.util import run_optimization_problem + MULTI_ENUM_NAME_TO_FACTOR = { esdl.MultiplierEnum.ATTO: 1e-18, @@ -132,3 +134,37 @@ def get_cost_value_and_unit(cost_info: esdl.SingleValue): cost_value /= MULTI_ENUM_NAME_TO_FACTOR[per_multiplier] return cost_value, unit, per_unit, per_time_uni + + +def run_optimization_problem_solver( + scenario_problem_class, + solver_class=None, + **kwargs, +): + """ + This method runs the optimisation problem based on the scenario_problem_class. An additional + solver_class can be added to substitute the default solver options of the problem definition + class. + :param scenario_problem_class: Class defining the optimization problem + :param solver_class: Class defining the solver settings. + :param kwargs: + :return: + """ + + new_solver = False + if solver_class: + + if not issubclass(scenario_problem_class, solver_class): + # if solver_class is already a subclass of the problem class, then these settings are + # already used and it should not be added to the inheritance structure. + class ProblemSolverClass(solver_class, scenario_problem_class): + pass + + solution = run_optimization_problem(ProblemSolverClass, **kwargs) + + new_solver = True + + if not new_solver: + solution = run_optimization_problem(scenario_problem_class, **kwargs) + + return solution diff --git a/tests/test_end_scenario_sizing.py b/tests/test_end_scenario_sizing.py index 72facd9dc..106f2c883 100644 --- a/tests/test_end_scenario_sizing.py +++ b/tests/test_end_scenario_sizing.py @@ -5,9 +5,9 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.workflows import ( - EndScenarioSizingDiscountedHIGHS, - EndScenarioSizingHIGHS, - EndScenarioSizingStagedHIGHS, + EndScenarioSizing, + EndScenarioSizingDiscounted, + EndScenarioSizingStaged, run_end_scenario_sizing, ) from mesido.workflows.grow_workflow import EndScenarioSizingHeadLossStaged @@ -29,7 +29,7 @@ def setUpClass(cls) -> None: # This is an optimization done over a full year with timesteps of 5 days and hour timesteps # for the peak day cls.solution = run_optimization_problem( - EndScenarioSizingHIGHS, + EndScenarioSizing, base_folder=base_folder, esdl_file_name="test_case_small_network_with_ates_with_buffer_all_optional.esdl", esdl_parser=ESDLFileParser, @@ -133,7 +133,7 @@ def test_end_scenario_sizing_staged(self): solution_unstaged = self.solution solution_unstaged_2 = run_end_scenario_sizing( - EndScenarioSizingHIGHS, + EndScenarioSizing, staged_pipe_optimization=False, base_folder=base_folder, esdl_file_name="test_case_small_network_with_ates_with_buffer_all_optional.esdl", @@ -143,7 +143,7 @@ def test_end_scenario_sizing_staged(self): ) solution_staged = run_end_scenario_sizing( - EndScenarioSizingStagedHIGHS, + EndScenarioSizingStaged, base_folder=base_folder, esdl_file_name="test_case_small_network_with_ates_with_buffer_all_optional.esdl", esdl_parser=ESDLFileParser, @@ -240,7 +240,7 @@ def test_end_scenario_sizing_discounted(self): base_folder = Path(run_ates.__file__).resolve().parent.parent - class TestEndScenarioSizingDiscountedHIGHS(EndScenarioSizingDiscountedHIGHS): + class TestEndScenarioSizingDiscountedHIGHS(EndScenarioSizingDiscounted): def solver_options(self): options = super().solver_options() options["solver"] = "highs" diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index 6c13f8e24..e4184fef6 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -7,7 +7,7 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import InfluxDBProfileReader, ProfileReaderFromFile -from mesido.workflows import EndScenarioSizingStagedHIGHS +from mesido.workflows import EndScenarioSizingStaged import numpy as np @@ -48,7 +48,7 @@ def test_asset_potential_errors(self): logger, logs_list = create_log_list_scaling("WarmingUP-MPC") with self.assertRaises(SystemExit) as cm: - problem = EndScenarioSizingStagedHIGHS( + problem = EndScenarioSizingStaged( esdl_parser=ESDLFileParser, base_folder=base_folder, model_folder=model_folder, @@ -114,7 +114,7 @@ def test_loading_from_influx(self): base_folder = Path(run_1a.__file__).resolve().parent.parent model_folder = base_folder / "model" input_folder = base_folder / "input" - problem = EndScenarioSizingStagedHIGHS( + problem = EndScenarioSizingStaged( esdl_parser=ESDLFileParser, base_folder=base_folder, model_folder=model_folder, diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 5d92f5b50..80562681a 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -8,7 +8,7 @@ from esdl.esdl_handler import EnergySystemHandler from mesido.esdl.esdl_parser import ESDLFileParser -from mesido.workflows import EndScenarioSizingStagedHIGHS +from mesido.workflows import EndScenarioSizingStaged import numpy as np @@ -51,7 +51,7 @@ def test_updated_esdl(self): model_folder = base_folder / "model" input_folder = base_folder / "input" - problem = EndScenarioSizingStagedHIGHS( + problem = EndScenarioSizingStaged( esdl_file_name="PoC Tutorial.esdl", esdl_parser=ESDLFileParser, base_folder=base_folder, From 48da8fb424369bf323ad89215b4d9fd88b93d505 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 7 Oct 2024 08:53:57 +0200 Subject: [PATCH 219/275] Electrolyzer curve update (#178) A factor has been added in the input data to determine the shape on the specific power curve for the maximum efficiency of the electrolyzer. --- CHANGELOG.md | 4 +++- src/mesido/esdl/esdl_heat_model.py | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96ae64445..36547a433 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,9 @@ # [Unreleased] - 2024-09-20 ## Added -- Test case: Head loss validation with pandapipes +- Test case: Head loss validation with pandapipes. +- Example on ESDL file creation using pyESDL for the PoC Tutorial. +- Electrolyzer specific power curve valley location specified optionally specified in ESDL. - Grow_workflow: Solver class created to allow the use of CPLEX as a solver for EndScenarioSizing classes. ## Changed diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 6306fe60d..588af47fb 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1948,6 +1948,7 @@ def convert_electrolyzer(self, asset: Asset) -> Tuple[Type[Electrolyzer], MODIFI Optional ESDL fields: --------------------- - technicalLifetime + - powerFactor - CostInformation: discountRate - CostInformation: marginalCost - CostInformation: installationCost @@ -1981,11 +1982,15 @@ def convert_electrolyzer(self, asset: Asset) -> Tuple[Type[Electrolyzer], MODIFI eff_max_load = asset.attributes["effMaxLoad"] # Wh/g eff_max = asset.attributes["efficiency"] # Wh/g + power_factor = ( + asset.attributes["powerFactor"] if asset.attributes["powerFactor"] != 0.0 else 2.5 + ) + def equations(x): a, b, c = x eq1 = a / min_load + b * min_load + c - eff_min_load eq2 = a / max_load + b * max_load + c - eff_max_load - eq3 = a / (min_load * 2.5) + b * (min_load * 2.5) + c - eff_max + eq3 = a / (min_load * power_factor) + b * (min_load * power_factor) + c - eff_max return [eq1, eq2, eq3] # Here we approximate the efficiency curve of the electrolyzer with the function: From 92ef74ba31e4833896a0e1c3d5e847136e23bf86 Mon Sep 17 00:00:00 2001 From: JimRojer-TNO <137045207+jimrojerTNO@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:11:01 +0200 Subject: [PATCH 220/275] Gas physics docs (#161) Added gas physics documentation --- CHANGELOG.md | 3 +- docs/theory/asset_sizing.rst | 2 +- docs/theory/gas_physics.rst | 211 ++++++++++++++++++++++++++++++++++- 3 files changed, 213 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36547a433..c3cfdcc96 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ -# [Unreleased] - 2024-09-20 +# [Unreleased] - 2024-10-07 ## Added +- Gas physics documentation - Test case: Head loss validation with pandapipes. - Example on ESDL file creation using pyESDL for the PoC Tutorial. - Electrolyzer specific power curve valley location specified optionally specified in ESDL. diff --git a/docs/theory/asset_sizing.rst b/docs/theory/asset_sizing.rst index ce6af0144..c401f91a2 100644 --- a/docs/theory/asset_sizing.rst +++ b/docs/theory/asset_sizing.rst @@ -76,7 +76,7 @@ The sizing integer can then be used to limit the max size variable, e.g. max flo where :math:`\bar{e_j}` denotes the max value for the state at that sizing option. Asset sizing methods employed -------------------------- +----------------------------- .. list-table:: Asset Sizing Model :widths: 25 25 25 25 50 diff --git a/docs/theory/gas_physics.rst b/docs/theory/gas_physics.rst index 62161f48e..333641946 100644 --- a/docs/theory/gas_physics.rst +++ b/docs/theory/gas_physics.rst @@ -3,4 +3,213 @@ Gas Physics =========== -Coming soon... +MESIDO models the volumetric flow (:math:`\dot{V}`), the mass flow (:math:`\dot{m}`), the head +(:math:`H`) and the hydraulic power (:math:`HP`). +These variables are modelled over all timesteps :math:`K` and for each asset in the system +:math:`A`. +An asset :math:`a \in A` in the system is modelled using a set of in-ports, denoted by +:math:`I^a_{in} \neq \emptyset`, and a set of out-ports, denoted by +:math:`I^a_{out} \neq \emptyset`, with :math:`I^a` denoting the union of these two sets. +For an asset :math:`a` the variables :math:`\dot{V}_i, \dot{m}_i`, +:math:`H_i` and :math:`HP_i` denote the volumetric flow, mass flow, head and hydraulic power for port :math:`i \in I^a`. +For readability, the variables and equations of the model, given below, are defined without +indexing the variables and sets for each timestep. +The equations below are assumed to hold for every timestep, unless otherwise specified. + +By modelling these variables the gaseous system can be closely approximated. The method will show that for the modelling assumptions a feasible conservative solution will be guaranteed. + +Incompressible Flow +------------------- + +Under incompressible flow assumption the volumetric- and mass flow for every asset should equate to zero. + +.. math:: + :label: eq:Q_balance + + \sum_{i \in I} \dot{V}_i + \dot{V}^a_{consumed} = 0 \;\; \forall a \in A. + +.. math:: + :label: eq:m_balance + + \sum_{i \in I} \dot{m}_i + \dot{m}^a_{consumed} = 0 \;\; \forall a \in A. + +:math:`\dot{V}^a_{consumed}` and :math:`\dot{m}^a_{consumed}` are the volumetric- and mass flow consumed by asset :math:`a`. + +Network Physics +--------------- + +Pipe +~~~~ +The main function of a pipe is to transport gas mass. +In reality it loses part of this mass as the pipe is pressurized and has small leaks. +Within MESIDO it is assumed that these leaks are small and are neglected in the optimization. + +Equality constraints are used to relate the volumetric flow to the mass flow. + +.. math:: + :label: eq:vol_to_mass + + \dot{m}^a = \rho \dot{V}^a \;\; \forall a \in A_{pipes}. + +Where :math:`\rho` is the density of the medium which is assumed constant in one hydrualic +coupled system and is set based on the design nominal pressure in the system. + +The head loss, :math:`dH` must be compensated by pumps which are assumed to be located at sources +and storage assets. + +.. math:: + :label: eq:gas_pipe_head + + H^a_{in} - dH = H^a_{out} \;\; \forall a \in A_{pipes}. + +Steady-state head losses can be closely modelled with a quadratic relation w.r.t. :math:`\dot{V}`. +A set of linear inequalities is used, see :numref:`inequalitydH`, to approximate the quadratic curve. +The general form of the inequalities is given below in :eq:`eq:pipe_head_loss1`-:eq:`eq:pipe_head_loss2`. +Note that the big M method is used with the flow direction and disconnected integers to allow for +modelling of bi-directional flow and the ability to disconnect pipes. + +.. math:: + :label: eq:gas_pipe_head_loss1 + + dH - (\alpha_j \dot{V} + \beta_j) + (\delta^a_{discon} + \delta^a_{dir})M\geq 0 \\ \forall (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, + +.. math:: + :label: eq:gas_pipe_head_loss2 + + dH + (\alpha_j\dot{V} + \beta_j) - (\delta^a_{discon} + (1-\delta^a_{dir}))M\leq 0 \\ \forall (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}. + +Where :math:`(\alpha_j, \beta_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. + +These inequalities force the head loss to be greater or equal to the approximated quadratic curve. +Although the constraints by themselves will not guarantee a physically feasible answer, the optimization will in drag the solution to an equality constraint as the objective function will minimize cost which reduces with lower pressure drop. + +.. _inequalitydH: + +.. figure:: ../images/linearlines.png + :figwidth: 6.94792in + :align: center + + Schematic visualization of how the linear constraints are fitted to the gas pipe head loss curve. + +Similar as with head loss the hydraulic power, :math:`HP^a`, required to overcome the head losses is modelled with a set of linear inequalities: + +.. math:: + :label: eq:gas_pipe_hp1 + + HP^a - (c_j\dot{V} + d_j) + (\delta^a_{discon} + 1-\delta^a_{dir})M \geq 0 \\ + \forall (c_j, d_j) \;\; \forall a \in A_{pipes}, + +.. math:: + :label: eq:gas_pipe_hp2 + + HP^a - (c_j\dot{V} + d_j) - (\delta_{discon}(k) - 1-\delta_{dir})M\geq 0 \\ + \forall (c_j, d_j) \;\; \forall a \in A_{pipes}. + +Here :math:`(c_j, d_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. + +The method with linear inequalities, as represented above, is only valid when each possible unique flow path route in the network has a control valve to compensate non-physical head loss induced by the optimizer. Alternatively a (piece-wise) linear equality constraint between min and max flow rate can be configured for cases where this assumption is invalid, with the general form represented by :eq:`eq:pipe_head_loss3`-:eq:`eq:pipe_head_loss6`. + +.. math:: + :label: eq:gas_pipe_head_loss3 + + dH - (\alpha_j \dot{V} + \beta_j) + (\delta^a_{discon} + \delta^a_{dir} + (1 - \delta^a_{line\_seg_{k}}))M\geq 0 \\ \delta^a_{line\_seg_{k}} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, + +.. math:: + :label: eq:gas_pipe_head_loss4 + + dH - (\alpha_j\dot{V} + \beta_j) - (\delta^a_{discon} + \delta^a_{dir} + (1 - \delta^a_{line\_seg_{k}}))M\leq 0 \\ \delta^a_{line\_seg_{k}} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, + +.. math:: + :label: eq:gas_pipe_head_loss5 + + dH + (\alpha_j \dot{V} + \beta_j) - (\delta^a_{discon} + (1 - \delta^a_{dir}) + (1 - \delta^a_{line\_seg_{k}}))M\leq 0 \\ \delta^a_{line\_seg_{k}} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}, + +.. math:: + :label: eq:gas_pipe_head_loss6 + + dH + (\alpha_j\dot{V} + \beta_j) + (\delta^a_{discon} + (1-\delta^a_{dir}) + (1 - \delta^a_{line\_seg_{k}}))M\geq 0 \\ \delta^a_{line\_seg_{k}} \in \{ 0, 1 \}, (\alpha_j, \beta_j) \;\; \forall a \in A_{pipes}. + +Where :math:`(\alpha_j, \beta_j)` are the coefficients and constants of the linear equations used to approximate the quadratic equation. Variable :math:`\delta^a_{line\_seg_{k}}` reperesents an integer, for pipe :math:`a`, value indicating if a linear line segment :math:`k` is active (value = 1) or not (value = 0). This would imply that if a quadratic curve is represented by 3 linear lines for instance, then only 1 of the linear lines are appplicable at a specific timestep. + + +Node +~~~~ + +The node conserves the flow with :eq:`eq:Q_balance` and the energy with :eq:`eq:m_balance`. + +The head of all pipes connected to the node must be equal to ensure a hydraulically feasible solution: + +.. math:: + :label: eq:gas_node_head + + H_i = H^a \;\; \forall i \in I^a \;\; a \in A_{nodes}, + +where :math:`A_{nodes}` is the set of all nodes and :math:`H^a` is the headloss for node :math:`a`. + + +Asset Physics +------------- + +Source +~~~~~~ + +The source adds gas mass to the network. +The volumetric- and mass flow balance is given by :eq:`eq:Q_balance` and :eq:`eq:m_balance` where +:math:`\dot{V}^a_{consumed}` and :math:`\dot{m}^a_{consumed}` is equal to the (negative) value of the supplied gas to the network. + +A source is modelled with a pump to reach its desired flow rate and head: + +.. math:: + :label: eq:gas_source_pump_dh + + H^a_{pump} = H^a_{out} \;\; \forall a \in A_{prod}. + +Demand +~~~~~~ + +A demand extracts gas from the network, defined by :eq:`eq:Q_balance` and :eq:`eq:m_balance` where +:math:`\dot{V}^a_{consumed}` and :math:`\dot{m}^a_{consumed}` are the consumed gas from the network. + +Every demand is modelled with a control valve to regulate its flow. In reality a minimum head loss is often maintained: + +.. math:: + :label: eq:gas_demand_head + + H_{connected} - dH_{valve} = H^a_{out} \;\; \forall a \in A_{demand}. + +Where :math:`H_{connected}` is the head at the port of the connected asset (normally a pipe). + +Storage +~~~~~~~ + +Storage assets add time flexibility with the production and consumption of gas. For shorter +intra-day periods this capability is provided by tanks, alternatively storage over seasons is done +with underground storage like salt caverns. + +:math:`\dot{m}^{a}_{consumed}` can be defined by the gas mass substracted from or added to the +network, where the internal losses of the storage are subtracted: + +.. math:: + :label: eq:change_stored_gas + + \dot{m}^{a}_{consumed} = \sum_{i \in I^a_{in}} \dot{m}^{a}_{i} - \sum_{i \in I^a_{out}} \dot{m}^{a}_{i} - \dot{m}^{a}_{loss} \;\; \forall a \in A_{storage}. + +The consumed mass of the storage assets is equated to the change in stored gas mass, :math:`\dot{m}^{a}_{stored}`: + +.. math:: + :label: eq:stored_gas + + \dot{m}^{a}_{consumed} = \dot{m}^{a}_{stored} \;\; \forall a \in A_{storage} + +Compressor and Sub-station/control-valve +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The compressor and sub-station are used to change the nominal pressure level in the system. +This means that these assets will have a different pressure level and thus density on their in port +w.r.t. their out port. +It is assumed that mass is maintained over the pressure step. + +.. math:: + :label: eq:mass_balance_pressure_level + + \sum_{i \in I^a_{in}} \dot{m}^{a} = \sum_{i \in I^a_{in}} \dot{m}^{a}\;\; \forall a \in A_{Compressor, sub-station} + From e0d609574a1d85af0c568db0013f8fcf6f926718 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:13:56 +0200 Subject: [PATCH 221/275] Update min velocity in grow_workflow (#170) - Updated the min velocity setting to 1e-4 which is should cater for a DN800 connected to a 10kW heat demand - Added tests for checking min velo value --- CHANGELOG.md | 3 +- src/mesido/esdl/asset_to_component_base.py | 6 ++ src/mesido/workflows/grow_workflow.py | 5 +- src/mesido/workflows/utils/adapt_profiles.py | 6 ++ tests/test_end_scenario_sizing.py | 7 +- tests/test_head_loss.py | 73 ++++++++++++++++++-- tests/test_profile_parsing.py | 4 +- tests/test_updated_esdl_pre_process.py | 27 ++++++-- 8 files changed, 115 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3cfdcc96..2dcf849d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,8 @@ - Bugfix: Scaling fix on ATES temperature variable when temperature modelling not used. ## Fixed -- xxx +- bug fix in grow_workflow (heat networks), changed minimum velocity from 0 to default value +- addition to tests checking the minimum velocity setting in a workflow # [0.1.7] - 2024-08-23 diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index 0225cf55e..1efdc28b4 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -339,6 +339,12 @@ def _is_disconnectable_pipe(self, asset: Asset) -> bool: A bool that specifies whether we should have a disconnectable variable for this pipe. """ + # TODO: this functionality combined with heat_loss_disconnected_pipe is not functioning as + # intended anymore. When heat_loss_disconnected_pipe = True, then a pipe should be able to + # be disconnected but still include head losses for a pipe (with v=0m/s in the pipe). + # Currently if heat_loss_disconnected_pipe = True then a pipe cannot be disconnected + # anymore. This was checked with PoC tutorial example while trying to use this + # functionality on a pipe connected to a heating demand. assert asset.asset_type == "Pipe" if len(asset.in_ports) == 1 and len(asset.out_ports) == 1: connected_type_in = self._port_to_esdl_component_type.get( diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 502ed8a10..9079ac8ee 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -151,7 +151,9 @@ class EndScenarioSizing( def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.heat_network_settings["minimum_velocity"] = 0.0 # 0.001 + # default setting to cater for ~ 10kW heat, DN800 pipe at dT = 40 degrees Celcuis + self.heat_network_settings["minimum_velocity"] = 1.0e-4 + self.heat_network_settings["maximum_velocity"] = 3.0 self.heat_network_settings["head_loss_option"] = HeadLossOption.NO_HEADLOSS @@ -250,7 +252,6 @@ def energy_system_options(self): options = super().energy_system_options() options["maximum_temperature_der"] = np.inf options["heat_loss_disconnected_pipe"] = True - # options.update(self._override_hn_options) return options def path_goals(self): diff --git a/src/mesido/workflows/utils/adapt_profiles.py b/src/mesido/workflows/utils/adapt_profiles.py index 59fba692f..c9055c9a7 100644 --- a/src/mesido/workflows/utils/adapt_profiles.py +++ b/src/mesido/workflows/utils/adapt_profiles.py @@ -47,6 +47,12 @@ def set_data_with_averages_and_peak_day( else: values_for_mean.append(val) + # At this point new_data[0] = 0.0. This value is not utilized. The heat demand value + # new_data[1] at new_date_times[1] is active from new_date_times[0] up to new_date_times[1]. To + # ensure a no 0.0 heat demand values end up in the optimization, new_data[0] is forced to have + # an artificial value below + new_data[0] = new_data[1] + # last datetime is not in input data, so we need to take the mean of the last bit new_data.append(np.mean(values_for_mean)) diff --git a/tests/test_end_scenario_sizing.py b/tests/test_end_scenario_sizing.py index 106f2c883..2a7447eba 100644 --- a/tests/test_end_scenario_sizing.py +++ b/tests/test_end_scenario_sizing.py @@ -45,9 +45,10 @@ def test_end_scenario_sizing(self): day. Checks: + - demand matching + - minimum velocity setting - Cyclic behaviour for ATES - That buffer tank is only used on peak day - - demand matching - Check if TCO goal included the desired cost components. @@ -66,6 +67,10 @@ def test_end_scenario_sizing(self): # Check whehter the heat demand is matched demand_matching_test(self.solution, self.results) + # Check the minimum velocity setting==default value. Keep the default value hard-coded to + # prevent future coding bugs + np.testing.assert_equal(1.0e-4, self.solution.heat_network_settings["minimum_velocity"]) + # Check whether cyclic ates constraint is working for a in self.solution.energy_system_components.get("ates", []): stored_heat = self.results[f"{a}.Stored_heat"] diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 60e71186c..032fdaa66 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -244,33 +244,60 @@ def test_heat_network_pipe_split_head_loss(self): - That only one linear line is active for the applicable pipes - That the linearized dH value is constraint is satisfied - Pipe 4 for has a zero flow rate, but its dH should be the same as pipe 2 + - Check that the minimum velocity in the longest parallel pipe (Pipe4): + - LINEARIZED_N_LINES_WEAK_INEQUALITY: pipe velo == 0.0 or == default value + - LINEARIZED_N_LINES_EQUALITY: velo > min velocity """ import models.source_pipe_split_sink.src.double_pipe_heat as example from models.source_pipe_split_sink.src.double_pipe_heat import SourcePipeSink base_folder = Path(example.__file__).resolve().parent.parent + # Keep track of the number of runs + counter_linearized_n_lines_weak_ineq_runs = 0 + counter_total_runs = 0 + # Specify the head loss linearizations to be tested for head_loss_option_setting in [ - HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY, + # Do not change the order of the items below. + HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY, # with min velo = 0.0 + HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY, # with min velo = default value HeadLossOption.LINEARIZED_N_LINES_EQUALITY, ]: + counter_total_runs += 1 + + if head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY: + counter_linearized_n_lines_weak_ineq_runs += 1 + # Added for case where head loss is modelled via DW class SourcePipeSinkDW(SourcePipeSink): def energy_system_options(self): options = super().energy_system_options() - nonlocal head_loss_option_setting + nonlocal head_loss_option_setting, counter_linearized_n_lines_weak_ineq_runs head_loss_option_setting = head_loss_option_setting + counter_linearized_n_lines_weak_ineq_runs = ( + counter_linearized_n_lines_weak_ineq_runs + ) self.heat_network_settings["head_loss_option"] = head_loss_option_setting self.heat_network_settings["n_linearization_lines"] = 2 - self.heat_network_settings["minimum_velocity"] = 0.0 if head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_EQUALITY: self.heat_network_settings["minimize_head_losses"] = False - else: + self.heat_network_settings["minimum_velocity"] = 0.0 + elif ( + head_loss_option_setting + == HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + ): self.heat_network_settings["minimize_head_losses"] = True + if counter_linearized_n_lines_weak_ineq_runs == 1: + self.heat_network_settings["minimum_velocity"] = 0.0 + elif counter_linearized_n_lines_weak_ineq_runs == 2: + ... + # Do not delete. This reminds the dev that different min velo value + # with min velo = default value (>0.0), instead of specifying a value + # here return options @@ -400,6 +427,44 @@ def energy_system_options(self): results["Pipe2.dH"][ii], results[f"{pipe}.dH"][ii] ) + # Check min pipe velocity + if ( + solution.heat_network_settings["head_loss_option"] + == HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + and counter_linearized_n_lines_weak_ineq_runs == 1 + ): + np.testing.assert_allclose( + results["Pipe4.HeatIn.Q"] + / (solution.parameters(0)["Pipe4.diameter"] ** 2 / 4.0 * np.pi), + 0.0, + atol=1e-07, + ) + elif ( + solution.heat_network_settings["head_loss_option"] + == HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY + and counter_linearized_n_lines_weak_ineq_runs == 2 + ): + np.testing.assert_allclose( + results["Pipe4.HeatIn.Q"] + / (solution.parameters(0)["Pipe4.diameter"] ** 2 / 4.0 * np.pi), + 0.005, # Keep this value hard-coded to prevent future errors + ) + else: # LINEARIZED_N_LINES_EQUALITY + np.testing.assert_array_less( + solution.heat_network_settings["minimum_velocity"], + results["Pipe4.HeatIn.Q"] + / (solution.parameters(0)["Pipe4.diameter"] ** 2 / 4.0 * np.pi), + ) + # Checking that all the runs were done + if counter_total_runs not in [ + 1, + 2, + 3, + ] or counter_linearized_n_lines_weak_ineq_runs not in [0, 1, 2]: + exit("Something went wrong with the number of runs") + elif counter_total_runs == 3 and counter_linearized_n_lines_weak_ineq_runs != 2: + exit("Something went wrong with the number of runs") + def test_gas_network_head_loss(self): """ Gas network: Test the head loss approximation diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index e4184fef6..741074ee7 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -130,11 +130,11 @@ def test_loading_from_influx(self): # the three demands in the test ESDL for demand_name in ["HeatingDemand_2ab9", "HeatingDemand_6662", "HeatingDemand_506c"]: profile_values = problem.get_timeseries(f"{demand_name}.target_heat_demand").values - self.assertEqual(profile_values[0], 0.0) + self.assertEqual(profile_values[0], profile_values[1]) self.assertEqual(len(profile_values), 26) heat_price_profile = problem.get_timeseries("Heat.price_profile").values - self.assertEqual(heat_price_profile[0], 0.0) + self.assertEqual(heat_price_profile[0], heat_price_profile[1]) self.assertLess(max(heat_price_profile), 1.0) def test_loading_from_csv(self): diff --git a/tests/test_updated_esdl_pre_process.py b/tests/test_updated_esdl_pre_process.py index 9f3bdc236..60693aa61 100644 --- a/tests/test_updated_esdl_pre_process.py +++ b/tests/test_updated_esdl_pre_process.py @@ -7,6 +7,10 @@ import numpy as np +from utils_test_scaling import create_problem_with_debug_info # , problem_scaling_check + +from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test + class TestUpdatedESDL(TestCase): def test_updated_esdl(self): @@ -33,13 +37,20 @@ def test_updated_esdl(self): Path(examples.PoCTutorial.src.run_grow_tutorial.__file__).resolve().parent.parent ) + optimscaling, logger, logs_list = create_problem_with_debug_info( + EndScenarioSizingStagedHighs + ) + problem = run_end_scenario_sizing( - EndScenarioSizingStagedHighs, + optimscaling, base_folder=base_folder, esdl_file_name="PoC Tutorial.esdl", esdl_parser=ESDLFileParser, ) + # This code below is used to do manual check. Do not delete + # problem_scaling_check(logs_list, logger) + # Save optimized esdl string optimized_esdl_string = problem.optimized_esdl_string file = open( @@ -48,6 +59,10 @@ def test_updated_esdl(self): file.write(optimized_esdl_string) file.close() + demand_matching_test(problem, problem.extract_results()) + energy_conservation_test(problem, problem.extract_results()) + heat_to_discharge_test(problem, problem.extract_results()) + # Check the unique profile identification in profile_parser # Test that the correct demand profile is assigned to a demand as expected. Note that the # demand profiles are the adapted profiles (peak-hourly, rest-5daily). Therefore the @@ -60,7 +75,7 @@ def test_updated_esdl(self): # HeatingDemand_08fd ) np.testing.assert_allclose( - 724680.0, # demand5_MW, multiplier 0.3 + 724680.0, # demand5_MW, multiplier 0.33 max(problem.get_timeseries("HeatingDemand_8fbe.target_heat_demand").values), ) np.testing.assert_allclose( @@ -68,19 +83,19 @@ def test_updated_esdl(self): max(problem.get_timeseries("HeatingDemand_08fd.target_heat_demand").values), ) np.testing.assert_allclose( - 469709.62, # demand4_MW, multiplier 0.75 + 475130.185, # demand4_MW, multiplier 0.75 np.average(problem.get_timeseries("HeatingDemand_b0ff.target_heat_demand").values), ) np.testing.assert_allclose( - 281825.77, # demand5_MW, multiplier 0.3 + 285078.111, # demand5_MW, multiplier 0.3 np.average(problem.get_timeseries("HeatingDemand_8fbe.target_heat_demand").values), ) np.testing.assert_allclose( - 313139.75, # demand4_MW, multiplier 0.5 + 316753.457, # demand4_MW, multiplier 0.5 np.average(problem.get_timeseries("HeatingDemand_08fd.target_heat_demand").values), ) - # Checkk that the correct multiplier value was used + # Check that the correct multiplier value was used # Compare 2 max values where the same profile was used but with different multiplier values # HeatingDemand_08fd: multiplier 0.5 # HeatingDemand_b0ff: multplier 0.75 From a043cd912f0c62899137b0ae1739bf3e29b31465 Mon Sep 17 00:00:00 2001 From: JimRojer-TNO <137045207+jimrojerTNO@users.noreply.github.com> Date: Mon, 7 Oct 2024 11:24:56 +0200 Subject: [PATCH 222/275] Fixes scaling NSE (#159) Fix on nominals in electricity cables and gas pipes. Fix on nominals for nodes with logical links. Co-authored-by: Femke Janssen --- CHANGELOG.md | 1 + src/mesido/electricity_physics_mixin.py | 49 ++++++++++++++-- src/mesido/esdl/asset_to_component_base.py | 58 ++++++++++++++++--- src/mesido/gas_physics_mixin.py | 45 ++++++++++++-- src/mesido/heat_physics_mixin.py | 36 ++++++++++++ .../milp/electricity/electricity_cable.py | 11 +++- .../component_library/milp/gas/gas_pipe.py | 9 +-- tests/test_multicommodity_simulator.py | 2 +- 8 files changed, 181 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2dcf849d5..4443c3342 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - Impact on the way EndScenarioSizing problems in MESIDO are run: The calling of the different optimization problem classes has been split from the solver classes. In EndScenarioSizing classes, the HIGHS solver is the default and the calling functions also cather for other solvers by adding the keyword "solver_class" with the respective solver class. - Bugfix: No longer required to provide a power at the heating demands when a profile has been added. - Bugfix: Scaling fix on ATES temperature variable when temperature modelling not used. +- Bugfix: Fix on nominals in electricity cables and gas pipes. Fix on nominals for nodes with logical links. ## Fixed - bug fix in grow_workflow (heat networks), changed minimum velocity from 0 to default value diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index 9828605ee..308c8a30f 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -81,6 +81,9 @@ def __init__(self, *args, **kwargs): self.__electricity_storage_discharge_nominals = {} self.__electricity_storage_discharge_map = {} + # Map for setting node nominals in case of logical links. + self.__bus_variable_nominal = {} + def energy_system_options(self): r""" Returns a dictionary of milp network specific options. @@ -166,6 +169,37 @@ def pre(self): self.__set_point_var[var_name] = ca.MX.sym(var_name) self.__set_point_bounds[var_name] = (0.0, 1.0) + # Setting the bus nominals using the connected assets. + for node, connected_assets in self.energy_system_topology.busses.items(): + nominals = {} + for var in ["Power", "I", "V"]: + nominals[var] = [] + for _, (asset, _orientation) in connected_assets.items(): + var_nom = self.variable_nominal(f"{asset}.ElectricityOut.{var}") + if var_nom != 1: + nominals[var].append(var_nom) + elif self.variable_nominal(f"{asset}.ElectricityIn.{var}") != 1: + nominals[var].append(self.variable_nominal(f"{asset}.ElectricityIn.{var}")) + else: + nominals[var].append(1) + + for i in range(len(connected_assets)): + if self.variable_nominal(f"{node}.ElectricityConn[{i + 1}].{var}") == 1: + if nominals[var][i] != 1: + # Here we set a nominal based directly on the connected asset. + self.__bus_variable_nominal[ + f"{node}.ElectricityConn[{i + 1}].{var}" + ] = nominals[var][i] + else: + # Here we set a nominal based on median of all the connected assets to + # the node. This is specifically done when we have a logical link for + # node to node. In this case we cannot set the nominal based on the + # connected node, hence we assume a node has at least one not node + # asset connected to it. + self.__bus_variable_nominal[ + f"{node}.ElectricityConn[{i + 1}].{var}" + ] = np.median([x for x in nominals[var] if x != 1]) + @property def extra_variables(self): """ @@ -213,8 +247,10 @@ def variable_nominal(self, variable): """ if variable in self.__electricity_storage_discharge_nominals: return self.__electricity_storage_discharge_nominals[variable] - - return super().variable_nominal(variable) + elif variable in self.__bus_variable_nominal: + return self.__bus_variable_nominal[variable] + else: + return super().variable_nominal(variable) def bounds(self): """ @@ -290,12 +326,13 @@ def __electricity_producer_set_point_constraints(self, ensemble_member): ) # TODO: [: len(self.times())] should be removed once the emerge test is properly # time-sampled. - max = self.bounds()[f"{asset}.Electricity_source"][1].values[: len(self.times())] + max_ = self.bounds()[f"{asset}.Electricity_source"][1].values[: len(self.times())] + a = [x for x in max_ if abs(x) > 0.0] nominal = ( - self.variable_nominal(f"{asset}.Electricity_source") * np.median(max) - ) ** 0.5 + self.variable_nominal(f"{asset}.Electricity_source") * min(a) * np.median(a) + ) ** (1.0 / 3.0) - constraints.append(((set_point * max - electricity_source) / nominal, 0.0, 0.0)) + constraints.append(((set_point * max_ - electricity_source) / nominal, 0.0, 0.0)) return constraints diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index 1efdc28b4..183e9b740 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -192,7 +192,7 @@ class _AssetToComponentBase: primary_port_name_convention = "primary" secondary_port_name_convention = "secondary" - __power_keys = ["power", "maxDischargeRate", "maxChargeRate"] + __power_keys = ["power", "maxDischargeRate", "maxChargeRate", "capacity"] def __init__(self, **kwargs): """ @@ -516,23 +516,43 @@ def _get_connected_i_nominal_and_max(self, asset: Asset) -> Tuple[float, float]: i_max_out = ( self._port_to_i_max.get(connected_port, None) if self._port_to_i_max.get(connected_port, False) - else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + else max( + [ + asset.attributes.get(key, -1) / connected_port.carrier.voltage + for key in self.__power_keys + ] + ) ) i_nom_out = ( self._port_to_i_nominal.get(connected_port, None) if self._port_to_i_nominal.get(connected_port, False) - else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + else max( + [ + asset.attributes.get(key, -1) / connected_port.carrier.voltage / 2.0 + for key in self.__power_keys + ] + ) ) connected_port = asset.in_ports[0].connectedTo[0] i_max_in = ( self._port_to_i_max.get(connected_port, None) if self._port_to_i_max.get(connected_port, False) - else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + else max( + [ + asset.attributes.get(key, -1) / connected_port.carrier.voltage + for key in self.__power_keys + ] + ) ) i_nom_in = ( self._port_to_i_nominal.get(connected_port, None) if self._port_to_i_nominal.get(connected_port, False) - else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + else max( + [ + asset.attributes.get(key, -1) / connected_port.carrier.voltage / 2.0 + for key in self.__power_keys + ] + ) ) if i_nom_in > 0.0 and i_nom_out > 0.0: self._port_to_i_nominal[asset.in_ports[0]] = i_nom_in @@ -551,12 +571,22 @@ def _get_connected_i_nominal_and_max(self, asset: Asset) -> Tuple[float, float]: i_max = ( self._port_to_i_max.get(connected_port, None) if self._port_to_i_max.get(connected_port, False) - else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + else max( + [ + asset.attributes.get(key, -1) / connected_port.carrier.voltage + for key in self.__power_keys + ] + ) ) i_nom = ( self._port_to_i_nominal.get(connected_port, None) if self._port_to_i_nominal.get(connected_port, False) - else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + else max( + [ + asset.attributes.get(key, -1) / connected_port.carrier.voltage / 2.0 + for key in self.__power_keys + ] + ) ) if i_max > 0.0: self._set_electricity_current_nominal_and_max(asset, i_max, i_nom) @@ -578,12 +608,22 @@ def _get_connected_i_nominal_and_max(self, asset: Asset) -> Tuple[float, float]: i_max = ( self._port_to_i_max.get(connected_port, None) if self._port_to_i_max.get(connected_port, False) - else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + else max( + [ + asset.attributes.get(key, -1) / connected_port.carrier.voltage + for key in self.__power_keys + ] + ) ) i_nom = ( self._port_to_i_nominal.get(connected_port, None) if self._port_to_i_nominal.get(connected_port, False) - else max([asset.attributes.get(key, -1) for key in self.__power_keys]) + else max( + [ + asset.attributes.get(key, -1) / connected_port.carrier.voltage / 2.0 + for key in self.__power_keys + ] + ) ) if i_max > 0.0: self._set_electricity_current_nominal_and_max(asset, i_max, i_nom) diff --git a/src/mesido/gas_physics_mixin.py b/src/mesido/gas_physics_mixin.py index e0c784d86..0808975cf 100644 --- a/src/mesido/gas_physics_mixin.py +++ b/src/mesido/gas_physics_mixin.py @@ -142,6 +142,10 @@ def __init__(self, *args, **kwargs): self.__gas_storage_discharge_nominals = {} self.__gas_storage_discharge_map = {} + # Map for setting port variable nominals in the case they were not set during the model + # parsing (logical links). + self.__gas_node_variable_nominal = {} + def gas_carriers(self): """ This function should be overwritten by the problem and should give a dict with the @@ -271,6 +275,37 @@ def _get_min_bound(bound): f"{storage}.GasIn.Q" ) + # Setting the node nominals using the connected assets. + for node, connected_assets in self.energy_system_topology.gas_nodes.items(): + nominals = {} + for var in ["Q", "H", "Hydraulic_power"]: + nominals[var] = [] + for _, (asset, _orientation) in connected_assets.items(): + var_nom = self.variable_nominal(f"{asset}.GasOut.{var}") + if var_nom != 1: + nominals[var].append(var_nom) + elif self.variable_nominal(f"{asset}.GasIn.{var}") != 1: + nominals[var].append(self.variable_nominal(f"{asset}.GasIn.{var}")) + else: + nominals[var].append(1) + + for i in range(len(connected_assets)): + if self.variable_nominal(f"{node}.GasConn[{i + 1}].{var}") == 1: + if nominals[var][i] != 1: + # Here we set a nominal based directly on the connected asset. + self.__gas_node_variable_nominal[f"{node}.GasConn[{i + 1}].{var}"] = ( + nominals[var][i] + ) + else: + # Here we set a nominal based on median of all the connected assets to + # the node. This is specifically done when we have a logical link for + # node to node. In this case we cannot set the nominal based on the + # connected node, hence we assume a node has at least one not node + # asset connected to it. + self.__gas_node_variable_nominal[f"{node}.GasConn[{i + 1}].{var}"] = ( + np.median([x for x in nominals[var] if x != 1]) + ) + def energy_system_options(self): r""" Returns a dictionary of milp network specific options. @@ -334,6 +369,8 @@ def variable_nominal(self, variable): return self.__gas_pipe_head_loss_nominals[variable] elif variable in self.__gas_storage_discharge_nominals: return self.__gas_storage_discharge_nominals[variable] + elif variable in self.__gas_node_variable_nominal: + return self.__gas_node_variable_nominal[variable] else: return super().variable_nominal(variable) @@ -596,11 +633,11 @@ def path_constraints(self, ensemble_member): constraints.extend( self._gn_head_loss_class._pipe_head_loss_path_constraints(self, ensemble_member) ) - constraints.extend( - self._gn_head_loss_class._pipe_hydraulic_power_path_constraints( - self, self.__maximum_total_head_loss, ensemble_member + constraints.extend( + self._gn_head_loss_class._pipe_hydraulic_power_path_constraints( + self, self.__maximum_total_head_loss, ensemble_member + ) ) - ) constraints.extend(self.__flow_direction_path_constraints(ensemble_member)) constraints.extend(self.__gas_node_hydraulic_power_mixing_path_constraints(ensemble_member)) constraints.extend(self.__gas_storage_discharge_path_constraints(ensemble_member)) diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 72002e22f..72ae814e3 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -201,6 +201,9 @@ def __init__(self, *args, **kwargs): # of these maps is in the AssetSizingMixin. self._heat_pipe_topo_pipe_class_map = {} + # Map for setting node nominals in case of logical links. + self.__heat_node_variable_nominal = {} + super().__init__(*args, **kwargs) def temperature_carriers(self): @@ -545,6 +548,37 @@ def _get_min_bound(bound): self.__maximum_total_head_loss = self.__get_maximum_total_head_loss() + # Setting the node nominals using the connected assets. + for node, connected_assets in self.energy_system_topology.nodes.items(): + nominals = {} + for var in ["Q", "H", "Heat", "Hydraulic_power"]: + nominals[var] = [] + for _, (asset, _orientation) in connected_assets.items(): + var_nom = self.variable_nominal(f"{asset}.HeatOut.{var}") + if var_nom != 1: + nominals[var].append(var_nom) + elif self.variable_nominal(f"{asset}.HeatIn.{var}") != 1: + nominals[var].append(self.variable_nominal(f"{asset}.HeatIn.{var}")) + else: + nominals[var].append(1) + + for i in range(len(connected_assets)): + if self.variable_nominal(f"{node}.HeatConn[{i + 1}].{var}") == 1: + if nominals[var][i] != 1: + # Here we set a nominal based directly on the connected asset. + self.__heat_node_variable_nominal[f"{node}.HeatConn[{i + 1}].{var}"] = ( + nominals[var][i] + ) + else: + # Here we set a nominal based on median of all the connected assets to + # the node. This is specifically done when we have a logical link for + # node to node. In this case we cannot set the nominal based on the + # connected node, hence we assume a node has at least one not node + # asset connected to it. + self.__heat_node_variable_nominal[f"{node}.HeatConn[{i + 1}].{var}"] = ( + np.median([x for x in nominals[var] if x != 1]) + ) + def energy_system_options(self): r""" Returns a dictionary of heat network physics specific options. @@ -688,6 +722,8 @@ def variable_nominal(self, variable): return self.__pipe_head_loss_nominals[variable] elif variable in self.__ates_max_stored_heat_nominals: return self.__ates_max_stored_heat_nominals[variable] + elif variable in self.__heat_node_variable_nominal: + return self.__heat_node_variable_nominal[variable] else: return super().variable_nominal(variable) diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py b/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py index cb2512bc5..673d16c0a 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py @@ -31,8 +31,13 @@ def __init__(self, name, **modifiers): self.nominal_current = nan self.nominal_voltage = nan self.r = 1.0e-6 * self.length # TODO: temporary value - self.nominal_voltage_loss = (self.nominal_current * self.r * self.nominal_current) ** 0.5 - self.add_variable(Variable, "Power_loss", min=0.0, nominal=self.r * self.max_current**2) + self.nominal_voltage_loss = (self.nominal_current * self.r * self.nominal_voltage) ** 0.5 + self.power_loss_nominal = self.r * self.max_current * self.nominal_current + # We accept lower accuracy in the loss computation to improve scaling in case the nominals + # are very far apart. Typically, when a short cable has a very high max capacity. + if self.power_loss_nominal / self.ElectricityIn.Power.nominal < 1.0e-4: + self.power_loss_nominal = self.ElectricityIn.Power.nominal * 1.0e-4 + self.add_variable(Variable, "Power_loss", min=0.0, nominal=self.power_loss_nominal) self.add_variable(Variable, "I", nominal=self.nominal_current) self.add_variable(Variable, "V_loss", nominal=self.nominal_voltage_loss) @@ -50,6 +55,6 @@ def __init__(self, name, **modifiers): self.add_equation( ( (self.ElectricityOut.Power - (self.ElectricityIn.Power - self.Power_loss)) - / (self.nominal_voltage * self.nominal_current * self.r * self.max_current) ** 0.5 + / (self.ElectricityIn.Power.nominal * self.Power_loss.nominal) ** 0.5 ) ) diff --git a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py index 12d2a139a..e7f2ad984 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py @@ -48,16 +48,11 @@ def __init__(self, name, **modifiers): # Hydraulic power # TODO replace value # rho * ff * length * area / 2 / diameter * velocity**3 - ff = 0.02 # Order of magnitude expected with 0.05-2.5m/s in 20mm-1200mm diameter pipe - velo = self.Q_nominal / self.area - self.Hydraulic_power_nominal = ( - self.rho * ff * max(self.length, 1.0) * pi * self.area / self.diameter / 2.0 * velo**3 - ) self.add_variable( - Variable, "Hydraulic_power", min=0.0, nominal=self.Hydraulic_power_nominal + Variable, "Hydraulic_power", min=0.0, nominal=self.GasIn.Hydraulic_power.nominal ) # [W] self.add_equation( (self.Hydraulic_power - (self.GasIn.Hydraulic_power - self.GasOut.Hydraulic_power)) - / (self.pressure * self.Q_nominal * self.Hydraulic_power_nominal) ** 0.5 + / self.GasIn.Hydraulic_power.nominal ) diff --git a/tests/test_multicommodity_simulator.py b/tests/test_multicommodity_simulator.py index a81b87730..18d630c29 100644 --- a/tests/test_multicommodity_simulator.py +++ b/tests/test_multicommodity_simulator.py @@ -275,7 +275,7 @@ def test_multi_commodity_simulator_emerge(self): # enough windfarm power demand_el_calc = windfarm_power - electrolyzer_power demand_el_calc[demand_el_calc < 0] = 0 - np.testing.assert_allclose(demand_el_calc, demand_el) + np.testing.assert_allclose(demand_el_calc, demand_el, atol=1.0e-6) def test_multi_commodity_simulator_emerge_lowprod(self): import models.emerge.src.example as example From 87fb72a30b0625e3d6b451609e8c470bc1f3d372 Mon Sep 17 00:00:00 2001 From: JimRojer-TNO <137045207+jimrojerTNO@users.noreply.github.com> Date: Mon, 7 Oct 2024 13:31:43 +0200 Subject: [PATCH 223/275] first version electricity physics docs (#162) First version electricity physics docs --- CHANGELOG.md | 3 +- docs/theory/electricity_physics.rst | 111 +++++++++++++++++++++++++++- docs/theory/heat_physics.rst | 4 +- 3 files changed, 113 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4443c3342..056ba892a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # [Unreleased] - 2024-10-07 ## Added -- Gas physics documentation +- Gas & electricity 1st version of physics documentation - Test case: Head loss validation with pandapipes. - Example on ESDL file creation using pyESDL for the PoC Tutorial. - Electrolyzer specific power curve valley location specified optionally specified in ESDL. @@ -14,6 +14,7 @@ - Bugfix: Fix on nominals in electricity cables and gas pipes. Fix on nominals for nodes with logical links. ## Fixed +- documentation: heat physics tank storage - bug fix in grow_workflow (heat networks), changed minimum velocity from 0 to default value - addition to tests checking the minimum velocity setting in a workflow diff --git a/docs/theory/electricity_physics.rst b/docs/theory/electricity_physics.rst index 1b84c2ff7..68cf23783 100644 --- a/docs/theory/electricity_physics.rst +++ b/docs/theory/electricity_physics.rst @@ -3,4 +3,113 @@ Electricity Physics =================== -Coming soon... +MESIDO models the electric power (:math:`\dot{P}`), the voltage (:math:`V`) and the current +(:math:`I`). +These variables are modelled over all timesteps :math:`K` and for each asset in the system +:math:`A`. +An asset :math:`a \in A` in the system is modelled using a set of in-ports, denoted by +:math:`I^a_{in} \neq \emptyset`, and a set of out-ports, denoted by +:math:`I^a_{out} \neq \emptyset`, with :math:`I^a` denoting the union of these two sets. +For an asset :math:`a` the variables :math:`\dot{P}_i, V_i` and +:math:`I_i` denote the electrical power, voltage and current for port :math:`i \in I^a`. +For readability, the variables and equations of the model, given below, are defined without +indexing the variables and sets for each timestep. +The equations below are assumed to hold for every timestep, unless otherwise specified. + +By modelling these variables the electrical power system can be approximated. + +General Physics +--------------- + +For all assets energy conservation should be guaranteed. + +.. math:: + :label: eq:Q_balance + + \sum_{i \in I} \dot{P}_i + \dot{P}^a_{consumed} = 0 \;\; \forall a \in A + +Where :math:`\dot{P}^a_{consumed}` is the electrical power consumed by asset :math:`a`. + +Network Physics +--------------- + +Electricity Cable +~~~~~~~~~~~~~~~~~ + +The main function of an electricity cable is to transport electrical power over the network. +Whilst doing so the cable dissepates part of this energy due to the resistance of the cable. +Within MESIDO the user can select whether or not to model this power loss (energy_system_options -> include_electric_cable_power_loss). When power loss is included it is represented with a DC (direct current) approximation as follows. + +.. math:: + :label: eq:V_drop + + V^a_{out} = V^a_{in} - r^a I \;\; \forall a \in A_{cables} + +.. math:: + :label: eq:P_drop + + P^a_{out} = P^a_{in} - r^a I^a_{max} I^a \;\; \forall a \in A_{cables} + +Where :math:`r^a` denotes the resistance of the cable and :math:`I_{max}` denotes the max current +of the cable. The linearization of the power loss is done using the max current to ensure a +conservative approximation of the power throughout the network. + +Bus +~~~ + +A bus is a point in the network where multiple electricity cables come together to ensure an +electrically feasible solution. The voltages of all these ports should be equal (similar with head at a node). + +.. math:: + :label: eq:bus_V + + V_i = V^a \;\; \forall i \in I^a \;\; a \in A_{busses} + + +Asset Physics +------------- + +Electricity Source +~~~~~~~~~~~~~~~~~~ + +The function of an electricity source is to add electrical power to the network. +The power balance is given by :eq:`eq:Q_balance` where :math:`\dot{P}_{consumed}` is equal to the +(negative) produced power of the source. + +Electricity Demand +~~~~~~~~~~~~~~~~~~ + +The function of an electricity demand is to subtract electrical power from the network. +The power balance is given by :eq:`eq:Q_balance` where :math:`\dot{P}_{consumed}` is equal to the +consumed power of the demand. + +Furthermore, demands typically consume their power at a prescribed voltage. + +.. math:: + :label: eq:V_min + + V^a_i = V_min \;\; \forall i \in I^a \;\; a \in A_{electricity demands} + +Electricity storage +~~~~~~~~~~~~~~~~~~~ + +Storage assets add time flexibility with the production and consumption of electrical power. +Batteries are typically used for the storage of electrical energy. + +:math:`\dot{P}^{a}_{consumed}` can be defined by the electical power substracted from or added to the +network, where the internal losses of the storage are subtracted: + +.. math:: + :label: eq:change_stored_gas + + \dot{P}^{a}_{consumed} = \sum_{i \in I^a_{in}} \dot{P}^{a}_{i} - \sum_{i \in I^a_{out}} \dot{P}^{a}_{i} - \dot{P}^{a}_{loss} \;\; \forall a \in A_{storage}. + +The consumed power of the storage assets is equated to the change in stored energy, :math:`\dot{P}^{a}_{stored}`: + +.. math:: + :label: eq:stored_gas + + \dot{P}^{a}_{consumed} = \dot{P}^{a}_{stored} \;\; \forall a \in A_{storage} + +Upcoming: ADD THE ENERGY LOSS MODEL + diff --git a/docs/theory/heat_physics.rst b/docs/theory/heat_physics.rst index 2dd7eeb50..c911d293e 100644 --- a/docs/theory/heat_physics.rst +++ b/docs/theory/heat_physics.rst @@ -352,9 +352,7 @@ Heat loss in a tank is modelled as linear with the stored heat: where :math:`Q^{a}_{stored}` is the heat stored in the storage asset and :math:`\beta` is the efficiency factor. -The efficiency factor is approximated assuming that tanks are cylindrical and lose heat over their surface area, see :eq:`eq:etatank`. -For cylindrical tanks their surface area approximately increases linearly with the stored heat. -A radiation coefficient, :math:`c_r`, of 1 :math:`W/m^2` is used as an approximation. +The efficiency factor is approximated assuming that tanks are cylindrical and lose heat over their surface area. For cylindrical tanks their surface area approximately increases linearly with the stored heat. A radiation coefficient, :math:`c_r`, of 1 :math:`W/m^2` is used as an approximation. HT-ATES ^^^^^^^ From 0aaf4b741a72d8173d4756c02f8f7baa2a0b4f83 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Wed, 9 Oct 2024 08:38:45 +0200 Subject: [PATCH 224/275] 157 create use case wko (#167) Added example case using WKO --- CHANGELOG.md | 3 + .../input/timeseries_4.csv | 8761 +++++++++++++++++ ...d cooling network with return network.esdl | 271 + examples/heating_and_cooling/src/run_case.py | 148 + .../model/Demo_areas with return network.esdl | 598 ++ src/mesido/workflows/grow_workflow.py | 1 + src/mesido/workflows/simulator_workflow.py | 2 +- src/mesido/workflows/utils/adapt_profiles.py | 37 +- tests/test_cold_demand.py | 5 + 9 files changed, 9824 insertions(+), 2 deletions(-) create mode 100644 examples/heating_and_cooling/input/timeseries_4.csv create mode 100644 examples/heating_and_cooling/model/Heating and cooling network with return network.esdl create mode 100644 examples/heating_and_cooling/src/run_case.py create mode 100644 manual_run/testing_bugs/model/Demo_areas with return network.esdl diff --git a/CHANGELOG.md b/CHANGELOG.md index 056ba892a..f19a4e160 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # [Unreleased] - 2024-10-07 ## Added +- Heating and cooling example case added (2 heating demands, 1 cold demand, hot and cold producer, WKO as seasonal storage) +- Gas physics documentation - Gas & electricity 1st version of physics documentation - Test case: Head loss validation with pandapipes. - Example on ESDL file creation using pyESDL for the PoC Tutorial. @@ -8,6 +10,7 @@ - Grow_workflow: Solver class created to allow the use of CPLEX as a solver for EndScenarioSizing classes. ## Changed +- Cooling demand added to adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day (peak cooling day not used yet) - Impact on the way EndScenarioSizing problems in MESIDO are run: The calling of the different optimization problem classes has been split from the solver classes. In EndScenarioSizing classes, the HIGHS solver is the default and the calling functions also cather for other solvers by adding the keyword "solver_class" with the respective solver class. - Bugfix: No longer required to provide a power at the heating demands when a profile has been added. - Bugfix: Scaling fix on ATES temperature variable when temperature modelling not used. diff --git a/examples/heating_and_cooling/input/timeseries_4.csv b/examples/heating_and_cooling/input/timeseries_4.csv new file mode 100644 index 000000000..e6e6492d1 --- /dev/null +++ b/examples/heating_and_cooling/input/timeseries_4.csv @@ -0,0 +1,8761 @@ +DateTime,CoolingDemand_1,HeatingDemand_1,HeatingDemand_2 +31-12-2018 23:00,7153333.333,0.050329049,0.050329049 +01-01-2019 0:00,7153333.762,0.019461529,0.019461529 +01-01-2019 1:00,7153335.048,0.005371142,0.005371142 +01-01-2019 2:00,7153337.192,0.002531358,0.002531358 +01-01-2019 3:00,7153340.193,0.006376971,0.006376971 +01-01-2019 4:00,7153344.051,0.039930779,0.039930779 +01-01-2019 5:00,7153348.767,0.189693727,0.189693727 +01-01-2019 6:00,7153354.34,0.398271631,0.398271631 +01-01-2019 7:00,7153360.771,0.545202955,0.545202955 +01-01-2019 8:00,7153368.059,0.664203859,0.664203859 +01-01-2019 9:00,7153376.205,0.552707393,0.552707393 +01-01-2019 10:00,7153385.208,0.51662341,0.51662341 +01-01-2019 11:00,7153395.068,0.639689954,0.639689954 +01-01-2019 12:00,7153405.786,0.54726439,0.54726439 +01-01-2019 13:00,7153417.361,0.462136528,0.462136528 +01-01-2019 14:00,7153429.794,0.49566353,0.49566353 +01-01-2019 15:00,7153443.084,0.50413802,0.50413802 +01-01-2019 16:00,7153457.231,0.477233502,0.477233502 +01-01-2019 17:00,7153472.236,0.500550865,0.500550865 +01-01-2019 18:00,7153488.098,0.485878609,0.485878609 +01-01-2019 19:00,7153504.817,0.436978888,0.436978888 +01-01-2019 20:00,7153522.394,0.360554953,0.360554953 +01-01-2019 21:00,7153540.828,0.234138179,0.234138179 +01-01-2019 22:00,7153560.119,0.111812117,0.111812117 +01-01-2019 23:00,7153580.268,0.048379859,0.048379859 +02-01-2019 0:00,7153601.274,0.019428271,0.019428271 +02-01-2019 1:00,7153623.137,0.006310747,0.006310747 +02-01-2019 2:00,7153645.858,0.003488399,0.003488399 +02-01-2019 3:00,7153669.436,0.009135712,0.009135712 +02-01-2019 4:00,7153693.871,0.044403937,0.044403937 +02-01-2019 5:00,7153719.163,0.208010815,0.208010815 +02-01-2019 6:00,7153745.313,0.42089549,0.42089549 +02-01-2019 7:00,7153772.32,0.562652669,0.562652669 +02-01-2019 8:00,7153800.184,0.679147921,0.679147921 +02-01-2019 9:00,7153828.905,0.541377445,0.541377445 +02-01-2019 10:00,7153858.484,0.519032215,0.519032215 +02-01-2019 11:00,7153888.919,0.634940763,0.634940763 +02-01-2019 12:00,7153920.212,0.56137586,0.56137586 +02-01-2019 13:00,7153952.362,0.461387204,0.461387204 +02-01-2019 14:00,7153985.369,0.491492373,0.491492373 +02-01-2019 15:00,7154019.233,0.499763615,0.499763615 +02-01-2019 16:00,7154053.954,0.47286208,0.47286208 +02-01-2019 17:00,7154089.532,0.496882406,0.496882406 +02-01-2019 18:00,7154125.967,0.476811477,0.476811477 +02-01-2019 19:00,7154163.26,0.435859797,0.435859797 +02-01-2019 20:00,7154201.409,0.360541095,0.360541095 +02-01-2019 21:00,7154240.415,0.234457849,0.234457849 +02-01-2019 22:00,7154280.279,0.110798835,0.110798835 +02-01-2019 23:00,7154320.999,0.047974401,0.047974401 +03-01-2019 0:00,7154362.576,0.019739858,0.019739858 +03-01-2019 1:00,7154405.01,0.006558014,0.006558014 +03-01-2019 2:00,7154448.301,0.004095333,0.004095333 +03-01-2019 3:00,7154492.449,0.009698575,0.009698575 +03-01-2019 4:00,7154537.453,0.046215446,0.046215446 +03-01-2019 5:00,7154583.315,0.210114138,0.210114138 +03-01-2019 6:00,7154630.033,0.428649595,0.428649595 +03-01-2019 7:00,7154677.608,0.573832993,0.573832993 +03-01-2019 8:00,7154726.039,0.688455907,0.688455907 +03-01-2019 9:00,7154775.328,0.561987952,0.561987952 +03-01-2019 10:00,7154825.473,0.422583027,0.422583027 +03-01-2019 11:00,7154876.475,0.614018054,0.614018054 +03-01-2019 12:00,7154928.333,0.559906046,0.559906046 +03-01-2019 13:00,7154981.048,0.413295178,0.413295178 +03-01-2019 14:00,7155034.62,0.486553554,0.486553554 +03-01-2019 15:00,7155089.048,0.506249886,0.506249886 +03-01-2019 16:00,7155144.333,0.487711428,0.487711428 +03-01-2019 17:00,7155200.474,0.504661317,0.504661317 +03-01-2019 18:00,7155257.472,0.490970828,0.490970828 +03-01-2019 19:00,7155315.326,0.445743687,0.445743687 +03-01-2019 20:00,7155374.036,0.369159712,0.369159712 +03-01-2019 21:00,7155433.603,0.239956244,0.239956244 +03-01-2019 22:00,7155494.027,0.113382063,0.113382063 +03-01-2019 23:00,7155555.306,0.049037055,0.049037055 +04-01-2019 0:00,7155617.442,0.02030774,0.02030774 +04-01-2019 1:00,7155680.434,0.007109878,0.007109878 +04-01-2019 2:00,7155744.283,0.005020789,0.005020789 +04-01-2019 3:00,7155808.987,0.01117393,0.01117393 +04-01-2019 4:00,7155874.548,0.049549104,0.049549104 +04-01-2019 5:00,7155940.965,0.216591901,0.216591901 +04-01-2019 6:00,7156008.238,0.435886536,0.435886536 +04-01-2019 7:00,7156076.367,0.571507133,0.571507133 +04-01-2019 8:00,7156145.352,0.683565181,0.683565181 +04-01-2019 9:00,7156215.193,0.558496764,0.558496764 +04-01-2019 10:00,7156285.89,0.520799155,0.520799155 +04-01-2019 11:00,7156357.443,0.638113454,0.638113454 +04-01-2019 12:00,7156429.851,0.565700035,0.565700035 +04-01-2019 13:00,7156503.116,0.458892894,0.458892894 +04-01-2019 14:00,7156577.236,0.490262044,0.490262044 +04-01-2019 15:00,7156652.212,0.495260083,0.495260083 +04-01-2019 16:00,7156728.044,0.463318659,0.463318659 +04-01-2019 17:00,7156804.732,0.487164971,0.487164971 +04-01-2019 18:00,7156882.275,0.465230564,0.465230564 +04-01-2019 19:00,7156960.674,0.423526252,0.423526252 +04-01-2019 20:00,7157039.928,0.348720126,0.348720126 +04-01-2019 21:00,7157120.038,0.22672459,0.22672459 +04-01-2019 22:00,7157201.004,0.10641711,0.10641711 +04-01-2019 23:00,7157282.824,0.045729951,0.045729951 +05-01-2019 0:00,7157365.501,0.019021529,0.019021529 +05-01-2019 1:00,7157449.032,0.006342652,0.006342652 +05-01-2019 2:00,7157533.419,0.003929531,0.003929531 +05-01-2019 3:00,7157618.661,0.007741717,0.007741717 +05-01-2019 4:00,7157704.759,0.03904124,0.03904124 +05-01-2019 5:00,7157791.711,0.177959059,0.177959059 +05-01-2019 6:00,7157879.519,0.372426717,0.372426717 +05-01-2019 7:00,7157968.182,0.4936847,0.4936847 +05-01-2019 8:00,7158057.7,0.599716805,0.599716805 +05-01-2019 9:00,7158148.073,0.495757386,0.495757386 +05-01-2019 10:00,7158239.301,0.473899887,0.473899887 +05-01-2019 11:00,7158331.383,0.600328524,0.600328524 +05-01-2019 12:00,7158424.321,0.534210447,0.534210447 +05-01-2019 13:00,7158518.114,0.423469638,0.423469638 +05-01-2019 14:00,7158612.761,0.457344488,0.457344488 +05-01-2019 15:00,7158708.263,0.470152128,0.470152128 +05-01-2019 16:00,7158804.619,0.439618076,0.439618076 +05-01-2019 17:00,7158901.83,0.465026649,0.465026649 +05-01-2019 18:00,7158999.896,0.447384175,0.447384175 +05-01-2019 19:00,7159098.816,0.409161519,0.409161519 +05-01-2019 20:00,7159198.591,0.336858569,0.336858569 +05-01-2019 21:00,7159299.22,0.217426284,0.217426284 +05-01-2019 22:00,7159400.704,0.102868237,0.102868237 +05-01-2019 23:00,7159503.042,0.044590477,0.044590477 +06-01-2019 0:00,7159606.234,0.018339846,0.018339846 +06-01-2019 1:00,7159710.28,0.006150537,0.006150537 +06-01-2019 2:00,7159815.181,0.003529487,0.003529487 +06-01-2019 3:00,7159920.935,0.007075878,0.007075878 +06-01-2019 4:00,7160027.544,0.036569713,0.036569713 +06-01-2019 5:00,7160135.006,0.171923542,0.171923542 +06-01-2019 6:00,7160243.323,0.361518493,0.361518493 +06-01-2019 7:00,7160352.493,0.48360434,0.48360434 +06-01-2019 8:00,7160462.518,0.590215083,0.590215083 +06-01-2019 9:00,7160573.396,0.488820498,0.488820498 +06-01-2019 10:00,7160685.127,0.452909283,0.452909283 +06-01-2019 11:00,7160797.713,0.588111095,0.588111095 +06-01-2019 12:00,7160911.152,0.524773969,0.524773969 +06-01-2019 13:00,7161025.444,0.413723647,0.413723647 +06-01-2019 14:00,7161140.59,0.454449225,0.454449225 +06-01-2019 15:00,7161256.589,0.46363899,0.46363899 +06-01-2019 16:00,7161373.442,0.434776402,0.434776402 +06-01-2019 17:00,7161491.148,0.458370174,0.458370174 +06-01-2019 18:00,7161609.707,0.439796801,0.439796801 +06-01-2019 19:00,7161729.12,0.401021343,0.401021343 +06-01-2019 20:00,7161849.385,0.330607429,0.330607429 +06-01-2019 21:00,7161970.504,0.215495228,0.215495228 +06-01-2019 22:00,7162092.476,0.10271267,0.10271267 +06-01-2019 23:00,7162215.3,0.04586981,0.04586981 +07-01-2019 0:00,7162338.978,0.019632177,0.019632177 +07-01-2019 1:00,7162463.508,0.006798462,0.006798462 +07-01-2019 2:00,7162588.891,0.004260438,0.004260438 +07-01-2019 3:00,7162715.126,0.008989145,0.008989145 +07-01-2019 4:00,7162842.214,0.0422622,0.0422622 +07-01-2019 5:00,7162970.155,0.187005394,0.187005394 +07-01-2019 6:00,7163098.948,0.382383436,0.382383436 +07-01-2019 7:00,7163228.594,0.50159386,0.50159386 +07-01-2019 8:00,7163359.092,0.600515151,0.600515151 +07-01-2019 9:00,7163490.442,0.486873308,0.486873308 +07-01-2019 10:00,7163622.645,0.461152611,0.461152611 +07-01-2019 11:00,7163755.699,0.582754635,0.582754635 +07-01-2019 12:00,7163889.606,0.514167394,0.514167394 +07-01-2019 13:00,7164024.365,0.40024011,0.40024011 +07-01-2019 14:00,7164159.975,0.43969489,0.43969489 +07-01-2019 15:00,7164296.438,0.449535339,0.449535339 +07-01-2019 16:00,7164433.752,0.421003933,0.421003933 +07-01-2019 17:00,7164571.918,0.444968636,0.444968636 +07-01-2019 18:00,7164710.936,0.421059934,0.421059934 +07-01-2019 19:00,7164850.805,0.381925104,0.381925104 +07-01-2019 20:00,7164991.525,0.308273439,0.308273439 +07-01-2019 21:00,7165133.098,0.196221668,0.196221668 +07-01-2019 22:00,7165275.521,0.094276231,0.094276231 +07-01-2019 23:00,7165418.796,0.04094332,0.04094332 +08-01-2019 0:00,7165562.922,0.016636476,0.016636476 +08-01-2019 1:00,7165707.899,0.00553427,0.00553427 +08-01-2019 2:00,7165853.727,0.003089608,0.003089608 +08-01-2019 3:00,7166000.407,0.004912056,0.004912056 +08-01-2019 4:00,7166147.937,0.027654966,0.027654966 +08-01-2019 5:00,7166296.318,0.140687363,0.140687363 +08-01-2019 6:00,7166445.549,0.304211653,0.304211653 +08-01-2019 7:00,7166595.632,0.413806726,0.413806726 +08-01-2019 8:00,7166746.565,0.51295431,0.51295431 +08-01-2019 9:00,7166898.348,0.436477765,0.436477765 +08-01-2019 10:00,7167050.982,0.412640076,0.412640076 +08-01-2019 11:00,7167204.467,0.555377657,0.555377657 +08-01-2019 12:00,7167358.802,0.494114076,0.494114076 +08-01-2019 13:00,7167513.986,0.382548114,0.382548114 +08-01-2019 14:00,7167670.021,0.423531907,0.423531907 +08-01-2019 15:00,7167826.907,0.436970644,0.436970644 +08-01-2019 16:00,7167984.642,0.408668739,0.408668739 +08-01-2019 17:00,7168143.227,0.433833089,0.433833089 +08-01-2019 18:00,7168302.661,0.416230639,0.416230639 +08-01-2019 19:00,7168462.946,0.383180971,0.383180971 +08-01-2019 20:00,7168624.08,0.31690591,0.31690591 +08-01-2019 21:00,7168786.064,0.207821852,0.207821852 +08-01-2019 22:00,7168948.897,0.097006367,0.097006367 +08-01-2019 23:00,7169112.58,0.043376897,0.043376897 +09-01-2019 0:00,7169277.112,0.017520636,0.017520636 +09-01-2019 1:00,7169442.493,0.006019236,0.006019236 +09-01-2019 2:00,7169608.723,0.003345468,0.003345468 +09-01-2019 3:00,7169775.803,0.006004303,0.006004303 +09-01-2019 4:00,7169943.731,0.032397864,0.032397864 +09-01-2019 5:00,7170112.508,0.15891724,0.15891724 +09-01-2019 6:00,7170282.134,0.338045376,0.338045376 +09-01-2019 7:00,7170452.609,0.458179773,0.458179773 +09-01-2019 8:00,7170623.932,0.560557402,0.560557402 +09-01-2019 9:00,7170796.104,0.458831181,0.458831181 +09-01-2019 10:00,7170969.125,0.447603856,0.447603856 +09-01-2019 11:00,7171142.993,0.571529125,0.571529125 +09-01-2019 12:00,7171317.71,0.486836139,0.486836139 +09-01-2019 13:00,7171493.276,0.352128571,0.352128571 +09-01-2019 14:00,7171669.689,0.435176558,0.435176558 +09-01-2019 15:00,7171846.95,0.452141063,0.452141063 +09-01-2019 16:00,7172025.059,0.426759042,0.426759042 +09-01-2019 17:00,7172204.016,0.453818924,0.453818924 +09-01-2019 18:00,7172383.821,0.435415103,0.435415103 +09-01-2019 19:00,7172564.473,0.396964519,0.396964519 +09-01-2019 20:00,7172745.973,0.328215286,0.328215286 +09-01-2019 21:00,7172928.321,0.213614226,0.213614226 +09-01-2019 22:00,7173111.515,0.102185371,0.102185371 +09-01-2019 23:00,7173295.557,0.044469016,0.044469016 +10-01-2019 0:00,7173480.446,0.018805298,0.018805298 +10-01-2019 1:00,7173666.183,0.006779596,0.006779596 +10-01-2019 2:00,7173852.766,0.004156134,0.004156134 +10-01-2019 3:00,7174040.196,0.008437588,0.008437588 +10-01-2019 4:00,7174228.473,0.040934357,0.040934357 +10-01-2019 5:00,7174417.596,0.186377163,0.186377163 +10-01-2019 6:00,7174607.566,0.389688306,0.389688306 +10-01-2019 7:00,7174798.383,0.520196472,0.520196472 +10-01-2019 8:00,7174990.046,0.62572418,0.62572418 +10-01-2019 9:00,7175182.555,0.509193668,0.509193668 +10-01-2019 10:00,7175375.91,0.48519654,0.48519654 +10-01-2019 11:00,7175570.112,0.605351904,0.605351904 +10-01-2019 12:00,7175765.159,0.531118278,0.531118278 +10-01-2019 13:00,7175961.053,0.418254502,0.418254502 +10-01-2019 14:00,7176157.792,0.463842663,0.463842663 +10-01-2019 15:00,7176355.377,0.47569793,0.47569793 +10-01-2019 16:00,7176553.807,0.448089109,0.448089109 +10-01-2019 17:00,7176753.083,0.476483155,0.476483155 +10-01-2019 18:00,7176953.205,0.460804063,0.460804063 +10-01-2019 19:00,7177154.171,0.421834017,0.421834017 +10-01-2019 20:00,7177355.983,0.347171672,0.347171672 +10-01-2019 21:00,7177558.64,0.224966951,0.224966951 +10-01-2019 22:00,7177762.142,0.106268805,0.106268805 +10-01-2019 23:00,7177966.489,0.046003631,0.046003631 +11-01-2019 0:00,7178171.68,0.019139769,0.019139769 +11-01-2019 1:00,7178377.716,0.006668968,0.006668968 +11-01-2019 2:00,7178584.597,0.004577772,0.004577772 +11-01-2019 3:00,7178792.322,0.008324014,0.008324014 +11-01-2019 4:00,7179000.892,0.039482612,0.039482612 +11-01-2019 5:00,7179210.305,0.176064608,0.176064608 +11-01-2019 6:00,7179420.563,0.36616921,0.36616921 +11-01-2019 7:00,7179631.665,0.481756708,0.481756708 +11-01-2019 8:00,7179843.611,0.57898573,0.57898573 +11-01-2019 9:00,7180056.4,0.47147639,0.47147639 +11-01-2019 10:00,7180270.034,0.454278709,0.454278709 +11-01-2019 11:00,7180484.51,0.576476417,0.576476417 +11-01-2019 12:00,7180699.831,0.512484741,0.512484741 +11-01-2019 13:00,7180915.994,0.394310868,0.394310868 +11-01-2019 14:00,7181133.001,0.441362266,0.441362266 +11-01-2019 15:00,7181350.851,0.451090025,0.451090025 +11-01-2019 16:00,7181569.544,0.422352688,0.422352688 +11-01-2019 17:00,7181789.08,0.447848017,0.447848017 +11-01-2019 18:00,7182009.459,0.429538466,0.429538466 +11-01-2019 19:00,7182230.68,0.393278622,0.393278622 +11-01-2019 20:00,7182452.744,0.323524531,0.323524531 +11-01-2019 21:00,7182675.651,0.209032722,0.209032722 +11-01-2019 22:00,7182899.399,0.09887287,0.09887287 +11-01-2019 23:00,7183123.99,0.042573266,0.042573266 +12-01-2019 0:00,7183349.423,0.017717186,0.017717186 +12-01-2019 1:00,7183575.698,0.006004519,0.006004519 +12-01-2019 2:00,7183802.815,0.003448414,0.003448414 +12-01-2019 3:00,7184030.774,0.005969447,0.005969447 +12-01-2019 4:00,7184259.574,0.032149347,0.032149347 +12-01-2019 5:00,7184489.216,0.153660386,0.153660386 +12-01-2019 6:00,7184719.699,0.328258783,0.328258783 +12-01-2019 7:00,7184951.024,0.438452631,0.438452631 +12-01-2019 8:00,7185183.19,0.537800938,0.537800938 +12-01-2019 9:00,7185416.197,0.445409229,0.445409229 +12-01-2019 10:00,7185650.044,0.438525482,0.438525482 +12-01-2019 11:00,7185884.733,0.562623772,0.562623772 +12-01-2019 12:00,7186120.262,0.495562455,0.495562455 +12-01-2019 13:00,7186356.632,0.375319856,0.375319856 +12-01-2019 14:00,7186593.842,0.423674581,0.423674581 +12-01-2019 15:00,7186831.892,0.435020618,0.435020618 +12-01-2019 16:00,7187070.783,0.406244961,0.406244961 +12-01-2019 17:00,7187310.514,0.430360633,0.430360633 +12-01-2019 18:00,7187551.085,0.411893155,0.411893155 +12-01-2019 19:00,7187792.495,0.37437433,0.37437433 +12-01-2019 20:00,7188034.746,0.306431394,0.306431394 +12-01-2019 21:00,7188277.835,0.197409241,0.197409241 +12-01-2019 22:00,7188521.765,0.093401925,0.093401925 +12-01-2019 23:00,7188766.533,0.039900248,0.039900248 +13-01-2019 0:00,7189012.141,0.016329827,0.016329827 +13-01-2019 1:00,7189258.588,0.005443725,0.005443725 +13-01-2019 2:00,7189505.874,0.003043262,0.003043262 +13-01-2019 3:00,7189753.999,0.004605259,0.004605259 +13-01-2019 4:00,7190002.962,0.025266751,0.025266751 +13-01-2019 5:00,7190252.764,0.128273352,0.128273352 +13-01-2019 6:00,7190503.405,0.278612126,0.278612126 +13-01-2019 7:00,7190754.883,0.376051775,0.376051775 +13-01-2019 8:00,7191007.2,0.46585309,0.46585309 +13-01-2019 9:00,7191260.355,0.393129138,0.393129138 +13-01-2019 10:00,7191514.348,0.398614913,0.398614913 +13-01-2019 11:00,7191769.179,0.529197807,0.529197807 +13-01-2019 12:00,7192024.847,0.466434926,0.466434926 +13-01-2019 13:00,7192281.353,0.344963537,0.344963537 +13-01-2019 14:00,7192538.696,0.393568393,0.393568393 +13-01-2019 15:00,7192796.877,0.403619737,0.403619737 +13-01-2019 16:00,7193055.894,0.374309541,0.374309541 +13-01-2019 17:00,7193315.749,0.410379335,0.410379335 +13-01-2019 18:00,7193576.44,0.388690548,0.388690548 +13-01-2019 19:00,7193837.969,0.354293236,0.354293236 +13-01-2019 20:00,7194100.334,0.289659382,0.289659382 +13-01-2019 21:00,7194363.535,0.186927802,0.186927802 +13-01-2019 22:00,7194627.572,0.088453529,0.088453529 +13-01-2019 23:00,7194892.446,0.037957367,0.037957367 +14-01-2019 0:00,7195158.156,0.015671919,0.015671919 +14-01-2019 1:00,7195424.702,0.005128269,0.005128269 +14-01-2019 2:00,7195692.083,0.002869633,0.002869633 +14-01-2019 3:00,7195960.301,0.00424043,0.00424043 +14-01-2019 4:00,7196229.353,0.023020482,0.023020482 +14-01-2019 5:00,7196499.241,0.124466761,0.124466761 +14-01-2019 6:00,7196769.965,0.27645431,0.27645431 +14-01-2019 7:00,7197041.523,0.384244682,0.384244682 +14-01-2019 8:00,7197313.916,0.470589075,0.470589075 +14-01-2019 9:00,7197587.144,0.35920487,0.35920487 +14-01-2019 10:00,7197861.207,0.319362427,0.319362427 +14-01-2019 11:00,7198136.105,0.473411042,0.473411042 +14-01-2019 12:00,7198411.836,0.407179204,0.407179204 +14-01-2019 13:00,7198688.402,0.328199207,0.328199207 +14-01-2019 14:00,7198965.802,0.400552197,0.400552197 +14-01-2019 15:00,7199244.036,0.430819347,0.430819347 +14-01-2019 16:00,7199523.104,0.416569763,0.416569763 +14-01-2019 17:00,7199803.006,0.4421836,0.4421836 +14-01-2019 18:00,7200083.741,0.426781341,0.426781341 +14-01-2019 19:00,7200365.309,0.392766587,0.392766587 +14-01-2019 20:00,7200647.711,0.319981829,0.319981829 +14-01-2019 21:00,7200930.945,0.20646585,0.20646585 +14-01-2019 22:00,7201215.013,0.099896948,0.099896948 +14-01-2019 23:00,7201499.914,0.043623103,0.043623103 +15-01-2019 0:00,7201785.647,0.017922751,0.017922751 +15-01-2019 1:00,7202072.212,0.006104353,0.006104353 +15-01-2019 2:00,7202359.61,0.003489052,0.003489052 +15-01-2019 3:00,7202647.84,0.006272777,0.006272777 +15-01-2019 4:00,7202936.903,0.032372232,0.032372232 +15-01-2019 5:00,7203226.797,0.156708373,0.156708373 +15-01-2019 6:00,7203517.523,0.328884703,0.328884703 +15-01-2019 7:00,7203809.08,0.436180116,0.436180116 +15-01-2019 8:00,7204101.469,0.528974999,0.528974999 +15-01-2019 9:00,7204394.69,0.429521622,0.429521622 +15-01-2019 10:00,7204688.741,0.426531102,0.426531102 +15-01-2019 11:00,7204983.624,0.55644789,0.55644789 +15-01-2019 12:00,7205279.337,0.486972506,0.486972506 +15-01-2019 13:00,7205575.881,0.363020483,0.363020483 +15-01-2019 14:00,7205873.256,0.411328909,0.411328909 +15-01-2019 15:00,7206171.461,0.423509333,0.423509333 +15-01-2019 16:00,7206470.496,0.396393328,0.396393328 +15-01-2019 17:00,7206770.362,0.420724866,0.420724866 +15-01-2019 18:00,7207071.057,0.404148918,0.404148918 +15-01-2019 19:00,7207372.582,0.368106945,0.368106945 +15-01-2019 20:00,7207674.937,0.302468713,0.302468713 +15-01-2019 21:00,7207978.121,0.195399093,0.195399093 +15-01-2019 22:00,7208282.135,0.092404811,0.092404811 +15-01-2019 23:00,7208586.977,0.039605299,0.039605299 +16-01-2019 0:00,7208892.649,0.016066295,0.016066295 +16-01-2019 1:00,7209199.15,0.00534173,0.00534173 +16-01-2019 2:00,7209506.479,0.003003519,0.003003519 +16-01-2019 3:00,7209814.637,0.004522689,0.004522689 +16-01-2019 4:00,7210123.623,0.024751561,0.024751561 +16-01-2019 5:00,7210433.437,0.129024965,0.129024965 +16-01-2019 6:00,7210744.08,0.284155439,0.284155439 +16-01-2019 7:00,7211055.55,0.389551608,0.389551608 +16-01-2019 8:00,7211367.848,0.487695492,0.487695492 +16-01-2019 9:00,7211680.974,0.405316565,0.405316565 +16-01-2019 10:00,7211994.927,0.41359592,0.41359592 +16-01-2019 11:00,7212309.707,0.549832712,0.549832712 +16-01-2019 12:00,7212625.315,0.484768396,0.484768396 +16-01-2019 13:00,7212941.749,0.362211387,0.362211387 +16-01-2019 14:00,7213259.01,0.420597873,0.420597873 +16-01-2019 15:00,7213577.098,0.434374843,0.434374843 +16-01-2019 16:00,7213896.012,0.406866688,0.406866688 +16-01-2019 17:00,7214215.752,0.436107574,0.436107574 +16-01-2019 18:00,7214536.319,0.419101578,0.419101578 +16-01-2019 19:00,7214857.711,0.382018275,0.382018275 +16-01-2019 20:00,7215179.93,0.312068881,0.312068881 +16-01-2019 21:00,7215502.974,0.203402515,0.203402515 +16-01-2019 22:00,7215826.843,0.09730631,0.09730631 +16-01-2019 23:00,7216151.538,0.042242528,0.042242528 +17-01-2019 0:00,7216477.057,0.017355847,0.017355847 +17-01-2019 1:00,7216803.402,0.005904945,0.005904945 +17-01-2019 2:00,7217130.571,0.003377814,0.003377814 +17-01-2019 3:00,7217458.566,0.005789542,0.005789542 +17-01-2019 4:00,7217787.384,0.031173104,0.031173104 +17-01-2019 5:00,7218117.027,0.152928141,0.152928141 +17-01-2019 6:00,7218447.494,0.326763631,0.326763631 +17-01-2019 7:00,7218778.785,0.443718995,0.443718995 +17-01-2019 8:00,7219110.899,0.547781086,0.547781086 +17-01-2019 9:00,7219443.837,0.447146644,0.447146644 +17-01-2019 10:00,7219777.599,0.447832268,0.447832268 +17-01-2019 11:00,7220112.184,0.576089493,0.576089493 +17-01-2019 12:00,7220447.592,0.524159958,0.524159958 +17-01-2019 13:00,7220783.823,0.306972858,0.306972858 +17-01-2019 14:00,7221120.876,0.442582984,0.442582984 +17-01-2019 15:00,7221458.752,0.469265611,0.469265611 +17-01-2019 16:00,7221797.451,0.453219387,0.453219387 +17-01-2019 17:00,7222136.972,0.47558262,0.47558262 +17-01-2019 18:00,7222477.314,0.46277128,0.46277128 +17-01-2019 19:00,7222818.479,0.421319344,0.421319344 +17-01-2019 20:00,7223160.465,0.349973249,0.349973249 +17-01-2019 21:00,7223503.273,0.224880192,0.224880192 +17-01-2019 22:00,7223846.902,0.108141335,0.108141335 +17-01-2019 23:00,7224191.353,0.048050154,0.048050154 +18-01-2019 0:00,7224536.624,0.020761933,0.020761933 +18-01-2019 1:00,7224882.716,0.007659666,0.007659666 +18-01-2019 2:00,7225229.629,0.006027165,0.006027165 +18-01-2019 3:00,7225577.362,0.012938599,0.012938599 +18-01-2019 4:00,7225925.915,0.052822818,0.052822818 +18-01-2019 5:00,7226275.289,0.224891422,0.224891422 +18-01-2019 6:00,7226625.482,0.463716358,0.463716358 +18-01-2019 7:00,7226976.496,0.61028002,0.61028002 +18-01-2019 8:00,7227328.328,0.705949769,0.705949769 +18-01-2019 9:00,7227680.98,0.451851375,0.451851375 +18-01-2019 10:00,7228034.452,0.465551678,0.465551678 +18-01-2019 11:00,7228388.742,0.61708622,0.61708622 +18-01-2019 12:00,7228743.851,0.543468774,0.543468774 +18-01-2019 13:00,7229099.779,0.425742147,0.425742147 +18-01-2019 14:00,7229456.525,0.490635136,0.490635136 +18-01-2019 15:00,7229814.089,0.512156183,0.512156183 +18-01-2019 16:00,7230172.472,0.491655429,0.491655429 +18-01-2019 17:00,7230531.672,0.527081401,0.527081401 +18-01-2019 18:00,7230891.69,0.512061662,0.512061662 +18-01-2019 19:00,7231252.526,0.470137436,0.470137436 +18-01-2019 20:00,7231614.179,0.391742984,0.391742984 +18-01-2019 21:00,7231976.649,0.253986111,0.253986111 +18-01-2019 22:00,7232339.936,0.120661418,0.120661418 +18-01-2019 23:00,7232704.04,0.05405307,0.05405307 +19-01-2019 0:00,7233068.961,0.02330414,0.02330414 +19-01-2019 1:00,7233434.698,0.010658742,0.010658742 +19-01-2019 2:00,7233801.251,0.009784187,0.009784187 +19-01-2019 3:00,7234168.62,0.020690288,0.020690288 +19-01-2019 4:00,7234536.805,0.069906801,0.069906801 +19-01-2019 5:00,7234905.806,0.271322634,0.271322634 +19-01-2019 6:00,7235275.622,0.532493001,0.532493001 +19-01-2019 7:00,7235646.254,0.688032045,0.688032045 +19-01-2019 8:00,7236017.7,0.787218617,0.787218617 +19-01-2019 9:00,7236389.962,0.477559189,0.477559189 +19-01-2019 10:00,7236763.038,0.425745936,0.425745936 +19-01-2019 11:00,7237136.929,0.668513665,0.668513665 +19-01-2019 12:00,7237511.634,0.591674015,0.591674015 +19-01-2019 13:00,7237887.153,0.469213941,0.469213941 +19-01-2019 14:00,7238263.486,0.532506365,0.532506365 +19-01-2019 15:00,7238640.633,0.553039333,0.553039333 +19-01-2019 16:00,7239018.593,0.536509629,0.536509629 +19-01-2019 17:00,7239397.367,0.566009684,0.566009684 +19-01-2019 18:00,7239776.953,0.547333232,0.547333232 +19-01-2019 19:00,7240157.353,0.5054696,0.5054696 +19-01-2019 20:00,7240538.566,0.419087211,0.419087211 +19-01-2019 21:00,7240920.591,0.273271104,0.273271104 +19-01-2019 22:00,7241303.429,0.131339489,0.131339489 +19-01-2019 23:00,7241687.078,0.059409449,0.059409449 +20-01-2019 0:00,7242071.54,0.027679123,0.027679123 +20-01-2019 1:00,7242456.813,0.016174918,0.016174918 +20-01-2019 2:00,7242842.898,0.018406377,0.018406377 +20-01-2019 3:00,7243229.795,0.033685953,0.033685953 +20-01-2019 4:00,7243617.502,0.099031177,0.099031177 +20-01-2019 5:00,7244006.021,0.329635173,0.329635173 +20-01-2019 6:00,7244395.35,0.627368616,0.627368616 +20-01-2019 7:00,7244785.49,0.790536982,0.790536982 +20-01-2019 8:00,7245176.441,0.857794046,0.857794046 +20-01-2019 9:00,7245568.201,0.508677724,0.508677724 +20-01-2019 10:00,7245960.772,0.435994807,0.435994807 +20-01-2019 11:00,7246354.152,0.621566085,0.621566085 +20-01-2019 12:00,7246748.342,0.46584543,0.46584543 +20-01-2019 13:00,7247143.341,0.311568125,0.311568125 +20-01-2019 14:00,7247539.149,0.515749146,0.515749146 +20-01-2019 15:00,7247935.767,0.584146464,0.584146464 +20-01-2019 16:00,7248333.193,0.571113579,0.571113579 +20-01-2019 17:00,7248731.428,0.60657623,0.60657623 +20-01-2019 18:00,7249130.471,0.582347553,0.582347553 +20-01-2019 19:00,7249530.322,0.538812688,0.538812688 +20-01-2019 20:00,7249930.981,0.453814097,0.453814097 +20-01-2019 21:00,7250332.448,0.29873983,0.29873983 +20-01-2019 22:00,7250734.722,0.143403471,0.143403471 +20-01-2019 23:00,7251137.804,0.066630738,0.066630738 +21-01-2019 0:00,7251541.693,0.034125531,0.034125531 +21-01-2019 1:00,7251946.389,0.025534618,0.025534618 +21-01-2019 2:00,7252351.891,0.030386866,0.030386866 +21-01-2019 3:00,7252758.2,0.053522826,0.053522826 +21-01-2019 4:00,7253165.315,0.132783565,0.132783565 +21-01-2019 5:00,7253573.237,0.399897184,0.399897184 +21-01-2019 6:00,7253981.964,0.723335399,0.723335399 +21-01-2019 7:00,7254391.497,0.885470408,0.885470408 +21-01-2019 8:00,7254801.835,0.949665085,0.949665085 +21-01-2019 9:00,7255212.979,0.577024785,0.577024785 +21-01-2019 10:00,7255624.927,0.612463793,0.612463793 +21-01-2019 11:00,7256037.68,0.723930485,0.723930485 +21-01-2019 12:00,7256451.238,0.619717519,0.619717519 +21-01-2019 13:00,7256865.601,0.51617871,0.51617871 +21-01-2019 14:00,7257280.767,0.581790432,0.581790432 +21-01-2019 15:00,7257696.738,0.603094275,0.603094275 +21-01-2019 16:00,7258113.512,0.587042631,0.587042631 +21-01-2019 17:00,7258531.09,0.613616901,0.613616901 +21-01-2019 18:00,7258949.471,0.59205358,0.59205358 +21-01-2019 19:00,7259368.655,0.544196209,0.544196209 +21-01-2019 20:00,7259788.642,0.44732415,0.44732415 +21-01-2019 21:00,7260209.431,0.290676612,0.290676612 +21-01-2019 22:00,7260631.023,0.140151145,0.140151145 +21-01-2019 23:00,7261053.418,0.065122501,0.065122501 +22-01-2019 0:00,7261476.614,0.033124958,0.033124958 +22-01-2019 1:00,7261900.612,0.02456983,0.02456983 +22-01-2019 2:00,7262325.412,0.028080459,0.028080459 +22-01-2019 3:00,7262751.013,0.049243162,0.049243162 +22-01-2019 4:00,7263177.415,0.124157713,0.124157713 +22-01-2019 5:00,7263604.619,0.376392676,0.376392676 +22-01-2019 6:00,7264032.623,0.686069647,0.686069647 +22-01-2019 7:00,7264461.427,0.842554187,0.842554187 +22-01-2019 8:00,7264891.031,0.944453314,0.944453314 +22-01-2019 9:00,7265321.436,0.721710894,0.721710894 +22-01-2019 10:00,7265752.641,0.664484694,0.664484694 +22-01-2019 11:00,7266184.645,0.78369847,0.78369847 +22-01-2019 12:00,7266617.448,0.689819028,0.689819028 +22-01-2019 13:00,7267051.051,0.56692782,0.56692782 +22-01-2019 14:00,7267485.452,0.629669761,0.629669761 +22-01-2019 15:00,7267920.653,0.64268757,0.64268757 +22-01-2019 16:00,7268356.651,0.616668722,0.616668722 +22-01-2019 17:00,7268793.448,0.638636203,0.638636203 +22-01-2019 18:00,7269231.043,0.61233964,0.61233964 +22-01-2019 19:00,7269669.436,0.559826173,0.559826173 +22-01-2019 20:00,7270108.627,0.462496004,0.462496004 +22-01-2019 21:00,7270548.614,0.299185019,0.299185019 +22-01-2019 22:00,7270989.399,0.142638125,0.142638125 +22-01-2019 23:00,7271430.981,0.065986541,0.065986541 +23-01-2019 0:00,7271873.359,0.033712001,0.033712001 +23-01-2019 1:00,7272316.534,0.025801935,0.025801935 +23-01-2019 2:00,7272760.506,0.028437321,0.028437321 +23-01-2019 3:00,7273205.273,0.049292501,0.049292501 +23-01-2019 4:00,7273650.836,0.12467793,0.12467793 +23-01-2019 5:00,7274097.194,0.376888367,0.376888367 +23-01-2019 6:00,7274544.348,0.690539619,0.690539619 +23-01-2019 7:00,7274992.297,0.854872741,0.854872741 +23-01-2019 8:00,7275441.04,0.953519314,0.953519314 +23-01-2019 9:00,7275890.579,0.72739612,0.72739612 +23-01-2019 10:00,7276340.911,0.660579767,0.660579767 +23-01-2019 11:00,7276792.038,0.780295095,0.780295095 +23-01-2019 12:00,7277243.959,0.687705552,0.687705552 +23-01-2019 13:00,7277696.673,0.56319625,0.56319625 +23-01-2019 14:00,7278150.181,0.62683893,0.62683893 +23-01-2019 15:00,7278604.482,0.641608862,0.641608862 +23-01-2019 16:00,7279059.576,0.617556412,0.617556412 +23-01-2019 17:00,7279515.463,0.642077077,0.642077077 +23-01-2019 18:00,7279972.142,0.616166408,0.616166408 +23-01-2019 19:00,7280429.614,0.564477777,0.564477777 +23-01-2019 20:00,7280887.878,0.468419479,0.468419479 +23-01-2019 21:00,7281346.933,0.303395539,0.303395539 +23-01-2019 22:00,7281806.78,0.145570545,0.145570545 +23-01-2019 23:00,7282267.419,0.067691673,0.067691673 +24-01-2019 0:00,7282728.848,0.035196324,0.035196324 +24-01-2019 1:00,7283191.068,0.028254339,0.028254339 +24-01-2019 2:00,7283654.079,0.032155949,0.032155949 +24-01-2019 3:00,7284117.881,0.054691727,0.054691727 +24-01-2019 4:00,7284582.472,0.1346774,0.1346774 +24-01-2019 5:00,7285047.854,0.395318316,0.395318316 +24-01-2019 6:00,7285514.025,0.710974644,0.710974644 +24-01-2019 7:00,7285980.985,0.870967096,0.870967096 +24-01-2019 8:00,7286448.735,0.977967404,0.977967404 +24-01-2019 9:00,7286917.274,0.748862618,0.748862618 +24-01-2019 10:00,7287386.601,0.678703484,0.678703484 +24-01-2019 11:00,7287856.717,0.794789407,0.794789407 +24-01-2019 12:00,7288327.621,0.699140721,0.699140721 +24-01-2019 13:00,7288799.313,0.551246024,0.551246024 +24-01-2019 14:00,7289271.793,0.64346169,0.64346169 +24-01-2019 15:00,7289745.06,0.658689005,0.658689005 +24-01-2019 16:00,7290219.115,0.634391013,0.634391013 +24-01-2019 17:00,7290693.957,0.660468617,0.660468617 +24-01-2019 18:00,7291169.585,0.636202107,0.636202107 +24-01-2019 19:00,7291646,0.581361273,0.581361273 +24-01-2019 20:00,7292123.201,0.482209532,0.482209532 +24-01-2019 21:00,7292601.188,0.312827999,0.312827999 +24-01-2019 22:00,7293079.961,0.149473481,0.149473481 +24-01-2019 23:00,7293559.52,0.07014564,0.07014564 +25-01-2019 0:00,7294039.863,0.038051051,0.038051051 +25-01-2019 1:00,7294520.992,0.031967836,0.031967836 +25-01-2019 2:00,7295002.906,0.03788024,0.03788024 +25-01-2019 3:00,7295485.604,0.061311561,0.061311561 +25-01-2019 4:00,7295969.086,0.146459032,0.146459032 +25-01-2019 5:00,7296453.353,0.414950711,0.414950711 +25-01-2019 6:00,7296938.403,0.73611311,0.73611311 +25-01-2019 7:00,7297424.237,0.894710774,0.894710774 +25-01-2019 8:00,7297910.854,1,1 +25-01-2019 9:00,7298398.255,0.778775741,0.778775741 +25-01-2019 10:00,7298886.438,0.680300148,0.680300148 +25-01-2019 11:00,7299375.403,0.791621723,0.791621723 +25-01-2019 12:00,7299865.151,0.691127312,0.691127312 +25-01-2019 13:00,7300355.681,0.562667906,0.562667906 +25-01-2019 14:00,7300846.993,0.629788121,0.629788121 +25-01-2019 15:00,7301339.086,0.640436167,0.640436167 +25-01-2019 16:00,7301831.961,0.613861077,0.613861077 +25-01-2019 17:00,7302325.617,0.633904948,0.633904948 +25-01-2019 18:00,7302820.053,0.600404266,0.600404266 +25-01-2019 19:00,7303315.27,0.540447072,0.540447072 +25-01-2019 20:00,7303811.267,0.440566188,0.440566188 +25-01-2019 21:00,7304308.044,0.282324171,0.282324171 +25-01-2019 22:00,7304805.601,0.132192946,0.132192946 +25-01-2019 23:00,7305303.938,0.058649726,0.058649726 +26-01-2019 0:00,7305803.054,0.027340873,0.027340873 +26-01-2019 1:00,7306302.948,0.018074717,0.018074717 +26-01-2019 2:00,7306803.622,0.018927243,0.018927243 +26-01-2019 3:00,7307305.074,0.032394332,0.032394332 +26-01-2019 4:00,7307807.304,0.093717077,0.093717077 +26-01-2019 5:00,7308310.312,0.302469328,0.302469328 +26-01-2019 6:00,7308814.098,0.573402569,0.573402569 +26-01-2019 7:00,7309318.661,0.717656421,0.717656421 +26-01-2019 8:00,7309824.002,0.814802648,0.814802648 +26-01-2019 9:00,7310330.119,0.610089998,0.610089998 +26-01-2019 10:00,7310837.013,0.564213507,0.564213507 +26-01-2019 11:00,7311344.684,0.696994952,0.696994952 +26-01-2019 12:00,7311853.13,0.59999592,0.59999592 +26-01-2019 13:00,7312362.353,0.471275254,0.471275254 +26-01-2019 14:00,7312872.351,0.539884135,0.539884135 +26-01-2019 15:00,7313383.124,0.554034289,0.554034289 +26-01-2019 16:00,7313894.673,0.531648929,0.531648929 +26-01-2019 17:00,7314406.996,0.552576371,0.552576371 +26-01-2019 18:00,7314920.094,0.530682558,0.530682558 +26-01-2019 19:00,7315433.966,0.48020112,0.48020112 +26-01-2019 20:00,7315948.613,0.3951162,0.3951162 +26-01-2019 21:00,7316464.033,0.254230729,0.254230729 +26-01-2019 22:00,7316980.226,0.120232808,0.120232808 +26-01-2019 23:00,7317497.193,0.052869098,0.052869098 +27-01-2019 0:00,7318014.933,0.022565144,0.022565144 +27-01-2019 1:00,7318533.445,0.010025947,0.010025947 +27-01-2019 2:00,7319052.73,0.010125288,0.010125288 +27-01-2019 3:00,7319572.788,0.018645869,0.018645869 +27-01-2019 4:00,7320093.617,0.065940951,0.065940951 +27-01-2019 5:00,7320615.217,0.246505305,0.246505305 +27-01-2019 6:00,7321137.589,0.489085714,0.489085714 +27-01-2019 7:00,7321660.732,0.627303147,0.627303147 +27-01-2019 8:00,7322184.646,0.73013796,0.73013796 +27-01-2019 9:00,7322709.331,0.551050506,0.551050506 +27-01-2019 10:00,7323234.786,0.522942347,0.522942347 +27-01-2019 11:00,7323761.011,0.658842978,0.658842978 +27-01-2019 12:00,7324288.005,0.575836564,0.575836564 +27-01-2019 13:00,7324815.77,0.439107947,0.439107947 +27-01-2019 14:00,7325344.303,0.514682654,0.514682654 +27-01-2019 15:00,7325873.605,0.538308001,0.538308001 +27-01-2019 16:00,7326403.676,0.511851167,0.511851167 +27-01-2019 17:00,7326934.515,0.534644396,0.534644396 +27-01-2019 18:00,7327466.123,0.51091953,0.51091953 +27-01-2019 19:00,7327998.498,0.46661809,0.46661809 +27-01-2019 20:00,7328531.641,0.386091813,0.386091813 +27-01-2019 21:00,7329065.551,0.251484519,0.251484519 +27-01-2019 22:00,7329600.229,0.11870646,0.11870646 +27-01-2019 23:00,7330135.672,0.05216511,0.05216511 +28-01-2019 0:00,7330671.883,0.021829239,0.021829239 +28-01-2019 1:00,7331208.86,0.009245221,0.009245221 +28-01-2019 2:00,7331746.602,0.008216484,0.008216484 +28-01-2019 3:00,7332285.11,0.016670805,0.016670805 +28-01-2019 4:00,7332824.384,0.060285575,0.060285575 +28-01-2019 5:00,7333364.423,0.238926068,0.238926068 +28-01-2019 6:00,7333905.226,0.478386773,0.478386773 +28-01-2019 7:00,7334446.794,0.615724727,0.615724727 +28-01-2019 8:00,7334989.126,0.721366954,0.721366954 +28-01-2019 9:00,7335532.223,0.542787859,0.542787859 +28-01-2019 10:00,7336076.083,0.514127267,0.514127267 +28-01-2019 11:00,7336620.706,0.64340029,0.64340029 +28-01-2019 12:00,7337166.092,0.552126069,0.552126069 +28-01-2019 13:00,7337712.242,0.374300685,0.374300685 +28-01-2019 14:00,7338259.154,0.506231214,0.506231214 +28-01-2019 15:00,7338806.828,0.521605519,0.521605519 +28-01-2019 16:00,7339355.264,0.512284933,0.512284933 +28-01-2019 17:00,7339904.462,0.535137891,0.535137891 +28-01-2019 18:00,7340454.422,0.520301056,0.520301056 +28-01-2019 19:00,7341005.142,0.469298504,0.469298504 +28-01-2019 20:00,7341556.624,0.391014745,0.391014745 +28-01-2019 21:00,7342108.866,0.255875644,0.255875644 +28-01-2019 22:00,7342661.868,0.121782744,0.121782744 +28-01-2019 23:00,7343215.631,0.054008239,0.054008239 +29-01-2019 0:00,7343770.153,0.022726652,0.022726652 +29-01-2019 1:00,7344325.435,0.010211598,0.010211598 +29-01-2019 2:00,7344881.475,0.009558223,0.009558223 +29-01-2019 3:00,7345438.275,0.019970198,0.019970198 +29-01-2019 4:00,7345995.833,0.069118552,0.069118552 +29-01-2019 5:00,7346554.15,0.264018537,0.264018537 +29-01-2019 6:00,7347113.225,0.519859829,0.519859829 +29-01-2019 7:00,7347673.057,0.664269808,0.664269808 +29-01-2019 8:00,7348233.647,0.76866608,0.76866608 +29-01-2019 9:00,7348794.994,0.572805062,0.572805062 +29-01-2019 10:00,7349357.098,0.539885881,0.539885881 +29-01-2019 11:00,7349919.958,0.666527384,0.666527384 +29-01-2019 12:00,7350483.575,0.573475676,0.573475676 +29-01-2019 13:00,7351047.948,0.441146228,0.441146228 +29-01-2019 14:00,7351613.076,0.52048221,0.52048221 +29-01-2019 15:00,7352178.96,0.541645157,0.541645157 +29-01-2019 16:00,7352745.599,0.528590865,0.528590865 +29-01-2019 17:00,7353312.993,0.55594461,0.55594461 +29-01-2019 18:00,7353881.142,0.532610252,0.532610252 +29-01-2019 19:00,7354450.045,0.487085294,0.487085294 +29-01-2019 20:00,7355019.701,0.40201926,0.40201926 +29-01-2019 21:00,7355590.112,0.262076715,0.262076715 +29-01-2019 22:00,7356161.275,0.124942992,0.124942992 +29-01-2019 23:00,7356733.192,0.055788041,0.055788041 +30-01-2019 0:00,7357305.862,0.024336692,0.024336692 +30-01-2019 1:00,7357879.284,0.011837599,0.011837599 +30-01-2019 2:00,7358453.458,0.011846743,0.011846743 +30-01-2019 3:00,7359028.384,0.023392691,0.023392691 +30-01-2019 4:00,7359604.062,0.077544657,0.077544657 +30-01-2019 5:00,7360180.491,0.28263517,0.28263517 +30-01-2019 6:00,7360757.672,0.549707224,0.549707224 +30-01-2019 7:00,7361335.602,0.700581517,0.700581517 +30-01-2019 8:00,7361914.284,0.803338293,0.803338293 +30-01-2019 9:00,7362493.715,0.59249894,0.59249894 +30-01-2019 10:00,7363073.897,0.552553249,0.552553249 +30-01-2019 11:00,7363654.827,0.686906033,0.686906033 +30-01-2019 12:00,7364236.507,0.593383364,0.593383364 +30-01-2019 13:00,7364818.936,0.45972879,0.45972879 +30-01-2019 14:00,7365402.114,0.543188116,0.543188116 +30-01-2019 15:00,7365986.04,0.562420658,0.562420658 +30-01-2019 16:00,7366570.714,0.548534083,0.548534083 +30-01-2019 17:00,7367156.135,0.573127259,0.573127259 +30-01-2019 18:00,7367742.305,0.549947078,0.549947078 +30-01-2019 19:00,7368329.221,0.503149239,0.503149239 +30-01-2019 20:00,7368916.884,0.415577511,0.415577511 +30-01-2019 21:00,7369505.294,0.268498255,0.268498255 +30-01-2019 22:00,7370094.449,0.127071872,0.127071872 +30-01-2019 23:00,7370684.351,0.057246645,0.057246645 +31-01-2019 0:00,7371274.998,0.025481396,0.025481396 +31-01-2019 1:00,7371866.391,0.013423152,0.013423152 +31-01-2019 2:00,7372458.529,0.014483729,0.014483729 +31-01-2019 3:00,7373051.411,0.026980774,0.026980774 +31-01-2019 4:00,7373645.038,0.085816464,0.085816464 +31-01-2019 5:00,7374239.409,0.30171016,0.30171016 +31-01-2019 6:00,7374834.523,0.585045443,0.585045443 +31-01-2019 7:00,7375430.382,0.737145825,0.737145825 +31-01-2019 8:00,7376026.983,0.842509853,0.842509853 +31-01-2019 9:00,7376624.327,0.651385275,0.651385275 +31-01-2019 10:00,7377222.414,0.616784028,0.616784028 +31-01-2019 11:00,7377821.243,0.738935557,0.738935557 +31-01-2019 12:00,7378420.814,0.630174812,0.630174812 +31-01-2019 13:00,7379021.126,0.496650989,0.496650989 +31-01-2019 14:00,7379622.18,0.581967536,0.581967536 +31-01-2019 15:00,7380223.975,0.59881597,0.59881597 +31-01-2019 16:00,7380826.511,0.582317176,0.582317176 +31-01-2019 17:00,7381429.787,0.607186311,0.607186311 +31-01-2019 18:00,7382033.803,0.579109365,0.579109365 +31-01-2019 19:00,7382638.559,0.53088983,0.53088983 +31-01-2019 20:00,7383244.054,0.438534123,0.438534123 +31-01-2019 21:00,7383850.288,0.282511105,0.282511105 +31-01-2019 22:00,7384457.262,0.134952951,0.134952951 +31-01-2019 23:00,7385064.974,0.060864612,0.060864612 +01-02-2019 0:00,7385673.424,0.028723149,0.028723149 +01-02-2019 1:00,7386282.612,0.017858144,0.017858144 +01-02-2019 2:00,7386892.537,0.019895673,0.019895673 +01-02-2019 3:00,7387503.2,0.035563998,0.035563998 +01-02-2019 4:00,7388114.6,0.100921225,0.100921225 +01-02-2019 5:00,7388726.736,0.32885998,0.32885998 +01-02-2019 6:00,7389339.609,0.620818023,0.620818023 +01-02-2019 7:00,7389953.218,0.769449201,0.769449201 +01-02-2019 8:00,7390567.562,0.87000908,0.87000908 +01-02-2019 9:00,7391182.642,0.645241408,0.645241408 +01-02-2019 10:00,7391798.457,0.597303293,0.597303293 +01-02-2019 11:00,7392415.007,0.726841658,0.726841658 +01-02-2019 12:00,7393032.291,0.626333247,0.626333247 +01-02-2019 13:00,7393650.309,0.492325195,0.492325195 +01-02-2019 14:00,7394269.061,0.569304413,0.569304413 +01-02-2019 15:00,7394888.547,0.58349178,0.58349178 +01-02-2019 16:00,7395508.766,0.569684736,0.569684736 +01-02-2019 17:00,7396129.717,0.592775799,0.592775799 +01-02-2019 18:00,7396751.401,0.56758295,0.56758295 +01-02-2019 19:00,7397373.817,0.518096099,0.518096099 +01-02-2019 20:00,7397996.966,0.425984189,0.425984189 +01-02-2019 21:00,7398620.845,0.276152281,0.276152281 +01-02-2019 22:00,7399245.456,0.13100747,0.13100747 +01-02-2019 23:00,7399870.798,0.058620938,0.058620938 +02-02-2019 0:00,7400496.871,0.027222231,0.027222231 +02-02-2019 1:00,7401123.673,0.016248812,0.016248812 +02-02-2019 2:00,7401751.206,0.017919192,0.017919192 +02-02-2019 3:00,7402379.468,0.031776512,0.031776512 +02-02-2019 4:00,7403008.46,0.093576268,0.093576268 +02-02-2019 5:00,7403638.181,0.310362842,0.310362842 +02-02-2019 6:00,7404268.63,0.59203737,0.59203737 +02-02-2019 7:00,7404899.808,0.738312737,0.738312737 +02-02-2019 8:00,7405531.713,0.657630531,0.657630531 +02-02-2019 9:00,7406164.347,0.60486787,0.60486787 +02-02-2019 10:00,7406797.707,0.575711172,0.575711172 +02-02-2019 11:00,7407431.795,0.712200077,0.712200077 +02-02-2019 12:00,7408066.61,0.612600112,0.612600112 +02-02-2019 13:00,7408702.15,0.479637285,0.479637285 +02-02-2019 14:00,7409338.417,0.355475679,0.355475679 +02-02-2019 15:00,7409975.41,0.574958914,0.574958914 +02-02-2019 16:00,7410613.128,0.559648964,0.559648964 +02-02-2019 17:00,7411251.571,0.58544704,0.58544704 +02-02-2019 18:00,7411890.739,0.563183421,0.563183421 +02-02-2019 19:00,7412530.631,0.514088468,0.514088468 +02-02-2019 20:00,7413171.248,0.429543978,0.429543978 +02-02-2019 21:00,7413812.588,0.27663983,0.27663983 +02-02-2019 22:00,7414454.651,0.130301201,0.130301201 +02-02-2019 23:00,7415097.438,0.05995419,0.05995419 +03-02-2019 0:00,7415740.947,0.028069783,0.028069783 +03-02-2019 1:00,7416385.179,0.01658337,0.01658337 +03-02-2019 2:00,7417030.133,0.018452699,0.018452699 +03-02-2019 3:00,7417675.809,0.033267585,0.033267585 +03-02-2019 4:00,7418322.206,0.098188501,0.098188501 +03-02-2019 5:00,7418969.324,0.323044207,0.323044207 +03-02-2019 6:00,7419617.163,0.6203104,0.6203104 +03-02-2019 7:00,7420265.722,0.761987813,0.761987813 +03-02-2019 8:00,7420915.002,0.535318232,0.535318232 +03-02-2019 9:00,7421565.001,0.4256548,0.4256548 +03-02-2019 10:00,7422215.72,0.367424882,0.367424882 +03-02-2019 11:00,7422867.158,0.53530347,0.53530347 +03-02-2019 12:00,7423519.315,0.426440996,0.426440996 +03-02-2019 13:00,7424172.19,0.251661869,0.251661869 +03-02-2019 14:00,7424825.783,0.236167151,0.236167151 +03-02-2019 15:00,7425480.094,0.506612466,0.506612466 +03-02-2019 16:00,7426135.122,0.55062152,0.55062152 +03-02-2019 17:00,7426790.868,0.587134995,0.587134995 +03-02-2019 18:00,7427447.33,0.571989536,0.571989536 +03-02-2019 19:00,7428104.508,0.521534872,0.521534872 +03-02-2019 20:00,7428762.403,0.429826587,0.429826587 +03-02-2019 21:00,7429421.014,0.274533734,0.274533734 +03-02-2019 22:00,7430080.339,0.130780104,0.130780104 +03-02-2019 23:00,7430740.38,0.058605061,0.058605061 +04-02-2019 0:00,7431401.136,0.027183603,0.027183603 +04-02-2019 1:00,7432062.606,0.015883376,0.015883376 +04-02-2019 2:00,7432724.79,0.017543126,0.017543126 +04-02-2019 3:00,7433387.688,0.031244004,0.031244004 +04-02-2019 4:00,7434051.299,0.093361019,0.093361019 +04-02-2019 5:00,7434715.623,0.311788245,0.311788245 +04-02-2019 6:00,7435380.659,0.594013142,0.594013142 +04-02-2019 7:00,7436046.409,0.736182121,0.736182121 +04-02-2019 8:00,7436712.87,0.644508457,0.644508457 +04-02-2019 9:00,7437380.042,0.58790653,0.58790653 +04-02-2019 10:00,7438047.926,0.557125707,0.557125707 +04-02-2019 11:00,7438716.521,0.689997962,0.689997962 +04-02-2019 12:00,7439385.827,0.602977369,0.602977369 +04-02-2019 13:00,7440055.843,0.464835456,0.464835456 +04-02-2019 14:00,7440726.569,0.337773099,0.337773099 +04-02-2019 15:00,7441398.004,0.565697539,0.565697539 +04-02-2019 16:00,7442070.149,0.554589518,0.554589518 +04-02-2019 17:00,7442743.002,0.577622748,0.577622748 +04-02-2019 18:00,7443416.564,0.552132027,0.552132027 +04-02-2019 19:00,7444090.834,0.502430688,0.502430688 +04-02-2019 20:00,7444765.813,0.413705827,0.413705827 +04-02-2019 21:00,7445441.498,0.267051639,0.267051639 +04-02-2019 22:00,7446117.891,0.126041748,0.126041748 +04-02-2019 23:00,7446794.99,0.056072774,0.056072774 +05-02-2019 0:00,7447472.796,0.025045382,0.025045382 +05-02-2019 1:00,7448151.309,0.012945678,0.012945678 +05-02-2019 2:00,7448830.526,0.013781152,0.013781152 +05-02-2019 3:00,7449510.45,0.024332307,0.024332307 +05-02-2019 4:00,7450191.078,0.079500666,0.079500666 +05-02-2019 5:00,7450872.411,0.280391132,0.280391132 +05-02-2019 6:00,7451554.449,0.543155389,0.543155389 +05-02-2019 7:00,7452237.19,0.68216599,0.68216599 +05-02-2019 8:00,7452920.635,0.588550383,0.588550383 +05-02-2019 9:00,7453604.784,0.550409896,0.550409896 +05-02-2019 10:00,7454289.635,0.532781354,0.532781354 +05-02-2019 11:00,7454975.189,0.669078464,0.669078464 +05-02-2019 12:00,7455661.445,0.573046045,0.573046045 +05-02-2019 13:00,7456348.403,0.431435961,0.431435961 +05-02-2019 14:00,7457036.063,0.302980194,0.302980194 +05-02-2019 15:00,7457724.424,0.532295044,0.532295044 +05-02-2019 16:00,7458413.485,0.522897482,0.522897482 +05-02-2019 17:00,7459103.248,0.54479086,0.54479086 +05-02-2019 18:00,7459793.71,0.521260209,0.521260209 +05-02-2019 19:00,7460484.872,0.480445616,0.480445616 +05-02-2019 20:00,7461176.733,0.397762473,0.397762473 +05-02-2019 21:00,7461869.294,0.257359431,0.257359431 +05-02-2019 22:00,7462562.553,0.12283104,0.12283104 +05-02-2019 23:00,7463256.511,0.054784137,0.054784137 +06-02-2019 0:00,7463951.166,0.023616622,0.023616622 +06-02-2019 1:00,7464646.52,0.011012531,0.011012531 +06-02-2019 2:00,7465342.57,0.01087647,0.01087647 +06-02-2019 3:00,7466039.318,0.021107467,0.021107467 +06-02-2019 4:00,7466736.761,0.071495639,0.071495639 +06-02-2019 5:00,7467434.902,0.264418117,0.264418117 +06-02-2019 6:00,7468133.738,0.518277174,0.518277174 +06-02-2019 7:00,7468833.269,0.656192171,0.656192171 +06-02-2019 8:00,7469533.496,0.560762246,0.560762246 +06-02-2019 9:00,7470234.417,0.525628538,0.525628538 +06-02-2019 10:00,7470936.033,0.508711465,0.508711465 +06-02-2019 11:00,7471638.343,0.646234145,0.646234145 +06-02-2019 12:00,7472341.346,0.550191948,0.550191948 +06-02-2019 13:00,7473045.043,0.404945471,0.404945471 +06-02-2019 14:00,7473749.433,0.274689112,0.274689112 +06-02-2019 15:00,7474454.515,0.505410823,0.505410823 +06-02-2019 16:00,7475160.29,0.498221021,0.498221021 +06-02-2019 17:00,7475866.756,0.520668513,0.520668513 +06-02-2019 18:00,7476573.914,0.496386998,0.496386998 +06-02-2019 19:00,7477281.763,0.450284806,0.450284806 +06-02-2019 20:00,7477990.303,0.369357486,0.369357486 +06-02-2019 21:00,7478699.533,0.237760658,0.237760658 +06-02-2019 22:00,7479409.454,0.112056272,0.112056272 +06-02-2019 23:00,7480120.064,0.04899621,0.04899621 +07-02-2019 0:00,7480831.363,0.020733734,0.020733734 +07-02-2019 1:00,7481543.351,0.007984969,0.007984969 +07-02-2019 2:00,7482256.028,0.006112752,0.006112752 +07-02-2019 3:00,7482969.393,0.01222372,0.01222372 +07-02-2019 4:00,7483683.446,0.049984892,0.049984892 +07-02-2019 5:00,7484398.186,0.204573792,0.204573792 +07-02-2019 6:00,7485113.614,0.419156963,0.419156963 +07-02-2019 7:00,7485829.728,0.533958391,0.533958391 +07-02-2019 8:00,7486546.529,0.44169494,0.44169494 +07-02-2019 9:00,7487264.015,0.432603961,0.432603961 +07-02-2019 10:00,7487982.188,0.431879999,0.431879999 +07-02-2019 11:00,7488701.045,0.581489634,0.581489634 +07-02-2019 12:00,7489420.588,0.467349601,0.467349601 +07-02-2019 13:00,7490140.815,0.291444471,0.291444471 +07-02-2019 14:00,7490861.726,0.109625883,0.109625883 +07-02-2019 15:00,7491583.321,0.370404094,0.370404094 +07-02-2019 16:00,7492305.599,0.449286912,0.449286912 +07-02-2019 17:00,7493028.56,0.481239051,0.481239051 +07-02-2019 18:00,7493752.204,0.461920111,0.461920111 +07-02-2019 19:00,7494476.531,0.421351156,0.421351156 +07-02-2019 20:00,7495201.539,0.348058578,0.348058578 +07-02-2019 21:00,7495927.229,0.225674513,0.225674513 +07-02-2019 22:00,7496653.6,0.106206154,0.106206154 +07-02-2019 23:00,7497380.652,0.046014215,0.046014215 +08-02-2019 0:00,7498108.384,0.019336394,0.019336394 +08-02-2019 1:00,7498836.796,0.006891656,0.006891656 +08-02-2019 2:00,7499565.888,0.004757641,0.004757641 +08-02-2019 3:00,7500295.66,0.009023183,0.009023183 +08-02-2019 4:00,7501026.11,0.042912144,0.042912144 +08-02-2019 5:00,7501757.239,0.186579633,0.186579633 +08-02-2019 6:00,7502489.046,0.388864673,0.388864673 +08-02-2019 7:00,7503221.531,0.497198214,0.497198214 +08-02-2019 8:00,7503954.693,0.403991268,0.403991268 +08-02-2019 9:00,7504688.532,0.40444728,0.40444728 +08-02-2019 10:00,7505423.048,0.403512656,0.403512656 +08-02-2019 11:00,7506158.24,0.55711051,0.55711051 +08-02-2019 12:00,7506894.108,0.467011458,0.467011458 +08-02-2019 13:00,7507630.652,0.318101632,0.318101632 +08-02-2019 14:00,7508367.871,0.191068027,0.191068027 +08-02-2019 15:00,7509105.765,0.408403652,0.408403652 +08-02-2019 16:00,7509844.333,0.421082384,0.421082384 +08-02-2019 17:00,7510583.575,0.442231695,0.442231695 +08-02-2019 18:00,7511323.491,0.425217378,0.425217378 +08-02-2019 19:00,7512064.08,0.388419295,0.388419295 +08-02-2019 20:00,7512805.341,0.318613084,0.318613084 +08-02-2019 21:00,7513547.276,0.204920604,0.204920604 +08-02-2019 22:00,7514289.882,0.096333744,0.096333744 +08-02-2019 23:00,7515033.161,0.041007525,0.041007525 +09-02-2019 0:00,7515777.11,0.016942781,0.016942781 +09-02-2019 1:00,7516521.731,0.00578121,0.00578121 +09-02-2019 2:00,7517267.022,0.003296799,0.003296799 +09-02-2019 3:00,7518012.983,0.005292965,0.005292965 +09-02-2019 4:00,7518759.614,0.029574195,0.029574195 +09-02-2019 5:00,7519506.915,0.145123761,0.145123761 +09-02-2019 6:00,7520254.885,0.315455668,0.315455668 +09-02-2019 7:00,7521003.523,0.405986555,0.405986555 +09-02-2019 8:00,7521752.829,0.320946872,0.320946872 +09-02-2019 9:00,7522502.804,0.332908263,0.332908263 +09-02-2019 10:00,7523253.446,0.3461659,0.3461659 +09-02-2019 11:00,7524004.755,0.47235841,0.47235841 +09-02-2019 12:00,7524756.731,0.390835212,0.390835212 +09-02-2019 13:00,7525509.373,0.23297534,0.23297534 +09-02-2019 14:00,7526262.681,0.147298752,0.147298752 +09-02-2019 15:00,7527016.655,0.366378507,0.366378507 +09-02-2019 16:00,7527771.294,0.395875912,0.395875912 +09-02-2019 17:00,7528526.598,0.424495027,0.424495027 +09-02-2019 18:00,7529282.566,0.403911616,0.403911616 +09-02-2019 19:00,7530039.198,0.368573156,0.368573156 +09-02-2019 20:00,7530796.494,0.301235176,0.301235176 +09-02-2019 21:00,7531554.453,0.193866652,0.193866652 +09-02-2019 22:00,7532313.075,0.091713887,0.091713887 +09-02-2019 23:00,7533072.359,0.039454762,0.039454762 +10-02-2019 0:00,7533832.306,0.016034253,0.016034253 +10-02-2019 1:00,7534592.914,0.00536251,0.00536251 +10-02-2019 2:00,7535354.183,0.00301964,0.00301964 +10-02-2019 3:00,7536116.113,0.004593682,0.004593682 +10-02-2019 4:00,7536878.704,0.025682012,0.025682012 +10-02-2019 5:00,7537641.955,0.133430712,0.133430712 +10-02-2019 6:00,7538405.866,0.289116555,0.289116555 +10-02-2019 7:00,7539170.436,0.372164746,0.372164746 +10-02-2019 8:00,7539935.665,0.301740156,0.301740156 +10-02-2019 9:00,7540701.552,0.326346868,0.326346868 +10-02-2019 10:00,7541468.098,0.342794901,0.342794901 +10-02-2019 11:00,7542235.301,0.485387528,0.485387528 +10-02-2019 12:00,7543003.162,0.430759743,0.430759743 +10-02-2019 13:00,7543771.68,0.277541857,0.277541857 +10-02-2019 14:00,7544540.854,0.164978668,0.164978668 +10-02-2019 15:00,7545310.684,0.386113744,0.386113744 +10-02-2019 16:00,7546081.17,0.413141532,0.413141532 +10-02-2019 17:00,7546852.312,0.444595811,0.444595811 +10-02-2019 18:00,7547624.109,0.430129208,0.430129208 +10-02-2019 19:00,7548396.56,0.391121828,0.391121828 +10-02-2019 20:00,7549169.665,0.319165919,0.319165919 +10-02-2019 21:00,7549943.424,0.206351228,0.206351228 +10-02-2019 22:00,7550717.837,0.097286447,0.097286447 +10-02-2019 23:00,7551492.902,0.0420668,0.0420668 +11-02-2019 0:00,7552268.62,0.017291375,0.017291375 +11-02-2019 1:00,7553044.991,0.005868639,0.005868639 +11-02-2019 2:00,7553822.013,0.003324896,0.003324896 +11-02-2019 3:00,7554599.686,0.005646906,0.005646906 +11-02-2019 4:00,7555378.011,0.030620732,0.030620732 +11-02-2019 5:00,7556156.986,0.152277136,0.152277136 +11-02-2019 6:00,7556936.611,0.325957979,0.325957979 +11-02-2019 7:00,7557716.886,0.408271677,0.408271677 +11-02-2019 8:00,7558497.811,0.309391027,0.309391027 +11-02-2019 9:00,7559279.384,0.330655832,0.330655832 +11-02-2019 10:00,7560061.606,0.331415362,0.331415362 +11-02-2019 11:00,7560844.477,0.435985395,0.435985395 +11-02-2019 12:00,7561627.995,0.358665664,0.358665664 +11-02-2019 13:00,7562412.16,0.186375884,0.186375884 +11-02-2019 14:00,7563196.972,0.0806082,0.0806082 +11-02-2019 15:00,7563982.431,0.146243032,0.146243032 +11-02-2019 16:00,7564768.537,0.378823948,0.378823948 +11-02-2019 17:00,7565555.287,0.434320743,0.434320743 +11-02-2019 18:00,7566342.684,0.436929373,0.436929373 +11-02-2019 19:00,7567130.725,0.402681467,0.402681467 +11-02-2019 20:00,7567919.411,0.331263637,0.331263637 +11-02-2019 21:00,7568708.741,0.215185997,0.215185997 +11-02-2019 22:00,7569498.714,0.104544848,0.104544848 +11-02-2019 23:00,7570289.331,0.044027722,0.044027722 +12-02-2019 0:00,7571080.591,0.018750921,0.018750921 +12-02-2019 1:00,7571872.494,0.006555123,0.006555123 +12-02-2019 2:00,7572665.038,0.00405428,0.00405428 +12-02-2019 3:00,7573458.225,0.008254397,0.008254397 +12-02-2019 4:00,7574252.052,0.039096191,0.039096191 +12-02-2019 5:00,7575046.521,0.179455581,0.179455581 +12-02-2019 6:00,7575841.629,0.371643404,0.371643404 +12-02-2019 7:00,7576637.378,0.473219276,0.473219276 +12-02-2019 8:00,7577433.767,0.378891344,0.378891344 +12-02-2019 9:00,7578230.795,0.380082861,0.380082861 +12-02-2019 10:00,7579028.462,0.375044411,0.375044411 +12-02-2019 11:00,7579826.767,0.51697307,0.51697307 +12-02-2019 12:00,7580625.71,0.437551871,0.437551871 +12-02-2019 13:00,7581425.291,0.255626062,0.255626062 +12-02-2019 14:00,7582225.509,0.152989526,0.152989526 +12-02-2019 15:00,7583026.364,0.37746365,0.37746365 +12-02-2019 16:00,7583827.855,0.411738959,0.411738959 +12-02-2019 17:00,7584629.982,0.441610005,0.441610005 +12-02-2019 18:00,7585432.745,0.423730172,0.423730172 +12-02-2019 19:00,7586236.142,0.386855253,0.386855253 +12-02-2019 20:00,7587040.175,0.321903885,0.321903885 +12-02-2019 21:00,7587844.842,0.208205734,0.208205734 +12-02-2019 22:00,7588650.142,0.098561209,0.098561209 +12-02-2019 23:00,7589456.077,0.042243348,0.042243348 +13-02-2019 0:00,7590262.644,0.017693041,0.017693041 +13-02-2019 1:00,7591069.844,0.006009833,0.006009833 +13-02-2019 2:00,7591877.676,0.003490259,0.003490259 +13-02-2019 3:00,7592686.14,0.006119374,0.006119374 +13-02-2019 4:00,7593495.235,0.032500459,0.032500459 +13-02-2019 5:00,7594304.962,0.156397253,0.156397253 +13-02-2019 6:00,7595115.319,0.332963699,0.332963699 +13-02-2019 7:00,7595926.306,0.426381185,0.426381185 +13-02-2019 8:00,7596737.923,0.339848357,0.339848357 +13-02-2019 9:00,7597550.169,0.354101795,0.354101795 +13-02-2019 10:00,7598363.044,0.363943591,0.363943591 +13-02-2019 11:00,7599176.547,0.51002941,0.51002941 +13-02-2019 12:00,7599990.679,0.441185992,0.441185992 +13-02-2019 13:00,7600805.438,0.279768727,0.279768727 +13-02-2019 14:00,7601620.825,0.149373834,0.149373834 +13-02-2019 15:00,7602436.838,0.37179297,0.37179297 +13-02-2019 16:00,7603253.478,0.408960727,0.408960727 +13-02-2019 17:00,7604070.743,0.441033375,0.441033375 +13-02-2019 18:00,7604888.634,0.425392939,0.425392939 +13-02-2019 19:00,7605707.151,0.391794644,0.391794644 +13-02-2019 20:00,7606526.292,0.32582611,0.32582611 +13-02-2019 21:00,7607346.057,0.212368865,0.212368865 +13-02-2019 22:00,7608166.446,0.101722285,0.101722285 +13-02-2019 23:00,7608987.459,0.045448609,0.045448609 +14-02-2019 0:00,7609809.094,0.018805847,0.018805847 +14-02-2019 1:00,7610631.353,0.006688177,0.006688177 +14-02-2019 2:00,7611454.233,0.004212767,0.004212767 +14-02-2019 3:00,7612277.735,0.008440985,0.008440985 +14-02-2019 4:00,7613101.858,0.040838067,0.040838067 +14-02-2019 5:00,7613926.603,0.185874972,0.185874972 +14-02-2019 6:00,7614751.968,0.390361913,0.390361913 +14-02-2019 7:00,7615577.953,0.480821233,0.480821233 +14-02-2019 8:00,7616404.557,0.363412899,0.363412899 +14-02-2019 9:00,7617231.781,0.363322911,0.363322911 +14-02-2019 10:00,7618059.623,0.358508466,0.358508466 +14-02-2019 11:00,7618888.084,0.485431182,0.485431182 +14-02-2019 12:00,7619717.163,0.419275506,0.419275506 +14-02-2019 13:00,7620546.859,0.258613265,0.258613265 +14-02-2019 14:00,7621377.172,0.128197355,0.128197355 +14-02-2019 15:00,7622208.102,0.339148097,0.339148097 +14-02-2019 16:00,7623039.649,0.409145011,0.409145011 +14-02-2019 17:00,7623871.811,0.459460387,0.459460387 +14-02-2019 18:00,7624704.588,0.450580711,0.450580711 +14-02-2019 19:00,7625537.98,0.419619541,0.419619541 +14-02-2019 20:00,7626371.987,0.346224994,0.346224994 +14-02-2019 21:00,7627206.608,0.227843586,0.227843586 +14-02-2019 22:00,7628041.842,0.107555716,0.107555716 +14-02-2019 23:00,7628877.69,0.046162317,0.046162317 +15-02-2019 0:00,7629714.15,0.019843304,0.019843304 +15-02-2019 1:00,7630551.223,0.006946282,0.006946282 +15-02-2019 2:00,7631388.908,0.004978574,0.004978574 +15-02-2019 3:00,7632227.204,0.009838409,0.009838409 +15-02-2019 4:00,7633066.112,0.043827741,0.043827741 +15-02-2019 5:00,7633905.63,0.195093975,0.195093975 +15-02-2019 6:00,7634745.758,0.405824824,0.405824824 +15-02-2019 7:00,7635586.496,0.489338096,0.489338096 +15-02-2019 8:00,7636427.843,0.324661157,0.324661157 +15-02-2019 9:00,7637269.799,0.265548953,0.265548953 +15-02-2019 10:00,7638112.364,0.230505568,0.230505568 +15-02-2019 11:00,7638955.536,0.28742746,0.28742746 +15-02-2019 12:00,7639799.316,0.22620528,0.22620528 +15-02-2019 13:00,7640643.704,0.106409181,0.106409181 +15-02-2019 14:00,7641488.698,0.04444385,0.04444385 +15-02-2019 15:00,7642334.298,0.06725894,0.06725894 +15-02-2019 16:00,7643180.505,0.209825897,0.209825897 +15-02-2019 17:00,7644027.316,0.378833757,0.378833757 +15-02-2019 18:00,7644874.733,0.400217254,0.400217254 +15-02-2019 19:00,7645722.754,0.380849975,0.380849975 +15-02-2019 20:00,7646571.38,0.334164892,0.334164892 +15-02-2019 21:00,7647420.609,0.219379169,0.219379169 +15-02-2019 22:00,7648270.441,0.102848686,0.102848686 +15-02-2019 23:00,7649120.876,0.043518011,0.043518011 +16-02-2019 0:00,7649971.914,0.019118993,0.019118993 +16-02-2019 1:00,7650823.553,0.00667682,0.00667682 +16-02-2019 2:00,7651675.794,0.004175574,0.004175574 +16-02-2019 3:00,7652528.636,0.007963829,0.007963829 +16-02-2019 4:00,7653382.079,0.039311222,0.039311222 +16-02-2019 5:00,7654236.122,0.183201649,0.183201649 +16-02-2019 6:00,7655090.764,0.383989815,0.383989815 +16-02-2019 7:00,7655946.006,0.481715014,0.481715014 +16-02-2019 8:00,7656801.847,0.346102256,0.346102256 +16-02-2019 9:00,7657658.286,0.341489793,0.341489793 +16-02-2019 10:00,7658515.323,0.332223004,0.332223004 +16-02-2019 11:00,7659372.957,0.450585121,0.450585121 +16-02-2019 12:00,7660231.189,0.388893555,0.388893555 +16-02-2019 13:00,7661090.017,0.234609627,0.234609627 +16-02-2019 14:00,7661949.442,0.114331146,0.114331146 +16-02-2019 15:00,7662809.462,0.321545053,0.321545053 +16-02-2019 16:00,7663670.078,0.384682363,0.384682363 +16-02-2019 17:00,7664531.289,0.438632603,0.438632603 +16-02-2019 18:00,7665393.094,0.43403558,0.43403558 +16-02-2019 19:00,7666255.493,0.39890818,0.39890818 +16-02-2019 20:00,7667118.485,0.330445904,0.330445904 +16-02-2019 21:00,7667982.071,0.217600622,0.217600622 +16-02-2019 22:00,7668846.249,0.104351069,0.104351069 +16-02-2019 23:00,7669711.02,0.046003803,0.046003803 +17-02-2019 0:00,7670576.382,0.01938899,0.01938899 +17-02-2019 1:00,7671442.336,0.006815139,0.006815139 +17-02-2019 2:00,7672308.88,0.004513233,0.004513233 +17-02-2019 3:00,7673176.015,0.008937601,0.008937601 +17-02-2019 4:00,7674043.74,0.042277061,0.042277061 +17-02-2019 5:00,7674912.055,0.190606444,0.190606444 +17-02-2019 6:00,7675780.958,0.395806273,0.395806273 +17-02-2019 7:00,7676650.451,0.49164271,0.49164271 +17-02-2019 8:00,7677520.531,0.381385024,0.381385024 +17-02-2019 9:00,7678391.199,0.3684862,0.3684862 +17-02-2019 10:00,7679262.455,0.352842246,0.352842246 +17-02-2019 11:00,7680134.297,0.466509259,0.466509259 +17-02-2019 12:00,7681006.726,0.393958834,0.393958834 +17-02-2019 13:00,7681879.741,0.236074264,0.236074264 +17-02-2019 14:00,7682753.341,0.108175246,0.108175246 +17-02-2019 15:00,7683627.527,0.285803578,0.285803578 +17-02-2019 16:00,7684502.297,0.37340034,0.37340034 +17-02-2019 17:00,7685377.651,0.409560497,0.409560497 +17-02-2019 18:00,7686253.589,0.395981,0.395981 +17-02-2019 19:00,7687130.11,0.376956102,0.376956102 +17-02-2019 20:00,7688007.214,0.309822592,0.309822592 +17-02-2019 21:00,7688884.9,0.203646493,0.203646493 +17-02-2019 22:00,7689763.169,0.099591203,0.099591203 +17-02-2019 23:00,7690642.018,0.043837047,0.043837047 +18-02-2019 0:00,7691521.449,0.018395053,0.018395053 +18-02-2019 1:00,7692401.46,0.006408458,0.006408458 +18-02-2019 2:00,7693282.052,0.00382953,0.00382953 +18-02-2019 3:00,7694163.223,0.007215159,0.007215159 +18-02-2019 4:00,7695044.973,0.03671833,0.03671833 +18-02-2019 5:00,7695927.302,0.173849035,0.173849035 +18-02-2019 6:00,7696810.209,0.363361948,0.363361948 +18-02-2019 7:00,7697693.694,0.448253349,0.448253349 +18-02-2019 8:00,7698577.757,0.350278124,0.350278124 +18-02-2019 9:00,7699462.396,0.345914412,0.345914412 +18-02-2019 10:00,7700347.612,0.332840381,0.332840381 +18-02-2019 11:00,7701233.404,0.442114913,0.442114913 +18-02-2019 12:00,7702119.772,0.377372591,0.377372591 +18-02-2019 13:00,7703006.714,0.225396339,0.225396339 +18-02-2019 14:00,7703894.231,0.10237257,0.10237257 +18-02-2019 15:00,7704782.323,0.2692044,0.2692044 +18-02-2019 16:00,7705670.988,0.361880007,0.361880007 +18-02-2019 17:00,7706560.226,0.423733814,0.423733814 +18-02-2019 18:00,7707450.038,0.395557191,0.395557191 +18-02-2019 19:00,7708340.421,0.376308948,0.376308948 +18-02-2019 20:00,7709231.377,0.318045025,0.318045025 +18-02-2019 21:00,7710122.904,0.203931935,0.203931935 +18-02-2019 22:00,7711015.002,0.091931071,0.091931071 +18-02-2019 23:00,7711907.67,0.039517892,0.039517892 +19-02-2019 0:00,7712800.909,0.016303302,0.016303302 +19-02-2019 1:00,7713694.717,0.005485094,0.005485094 +19-02-2019 2:00,7714589.094,0.003071976,0.003071976 +19-02-2019 3:00,7715484.04,0.004776967,0.004776967 +19-02-2019 4:00,7716379.554,0.025849039,0.025849039 +19-02-2019 5:00,7717275.636,0.135748215,0.135748215 +19-02-2019 6:00,7718172.286,0.296824333,0.296824333 +19-02-2019 7:00,7719069.502,0.368426227,0.368426227 +19-02-2019 8:00,7719967.284,0.284923134,0.284923134 +19-02-2019 9:00,7720865.633,0.295202456,0.295202456 +19-02-2019 10:00,7721764.547,0.305463954,0.305463954 +19-02-2019 11:00,7722664.026,0.425921342,0.425921342 +19-02-2019 12:00,7723564.069,0.35950442,0.35950442 +19-02-2019 13:00,7724464.676,0.217478201,0.217478201 +19-02-2019 14:00,7725365.848,0.09155322,0.09155322 +19-02-2019 15:00,7726267.582,0.250691009,0.250691009 +19-02-2019 16:00,7727169.879,0.366954941,0.366954941 +19-02-2019 17:00,7728072.738,0.413802067,0.413802067 +19-02-2019 18:00,7728976.159,0.402728633,0.402728633 +19-02-2019 19:00,7729880.141,0.369665757,0.369665757 +19-02-2019 20:00,7730784.684,0.301387841,0.301387841 +19-02-2019 21:00,7731689.788,0.195228884,0.195228884 +19-02-2019 22:00,7732595.451,0.092570717,0.092570717 +19-02-2019 23:00,7733501.674,0.039930869,0.039930869 +20-02-2019 0:00,7734408.455,0.01629267,0.01629267 +20-02-2019 1:00,7735315.795,0.005466185,0.005466185 +20-02-2019 2:00,7736223.694,0.003091774,0.003091774 +20-02-2019 3:00,7737132.149,0.004777727,0.004777727 +20-02-2019 4:00,7738041.162,0.0257928,0.0257928 +20-02-2019 5:00,7738950.732,0.135790338,0.135790338 +20-02-2019 6:00,7739860.857,0.29484913,0.29484913 +20-02-2019 7:00,7740771.539,0.376208704,0.376208704 +20-02-2019 8:00,7741682.775,0.290939661,0.290939661 +20-02-2019 9:00,7742594.566,0.3041226,0.3041226 +20-02-2019 10:00,7743506.912,0.307176879,0.307176879 +20-02-2019 11:00,7744419.811,0.422672053,0.422672053 +20-02-2019 12:00,7745333.264,0.371448737,0.371448737 +20-02-2019 13:00,7746247.27,0.202899423,0.202899423 +20-02-2019 14:00,7747161.828,0.096314516,0.096314516 +20-02-2019 15:00,7748076.938,0.249415845,0.249415845 +20-02-2019 16:00,7748992.599,0.349990651,0.349990651 +20-02-2019 17:00,7749908.811,0.396011698,0.396011698 +20-02-2019 18:00,7750825.574,0.385085056,0.385085056 +20-02-2019 19:00,7751742.887,0.354324288,0.354324288 +20-02-2019 20:00,7752660.75,0.291484943,0.291484943 +20-02-2019 21:00,7753579.161,0.190123166,0.190123166 +20-02-2019 22:00,7754498.122,0.090647104,0.090647104 +20-02-2019 23:00,7755417.63,0.038611403,0.038611403 +21-02-2019 0:00,7756337.686,0.015660807,0.015660807 +21-02-2019 1:00,7757258.289,0.005168477,0.005168477 +21-02-2019 2:00,7758179.439,0.00293699,0.00293699 +21-02-2019 3:00,7759101.136,0.004388597,0.004388597 +21-02-2019 4:00,7760023.378,0.023223205,0.023223205 +21-02-2019 5:00,7760946.165,0.126798687,0.126798687 +21-02-2019 6:00,7761869.497,0.276901028,0.276901028 +21-02-2019 7:00,7762793.374,0.350515901,0.350515901 +21-02-2019 8:00,7763717.795,0.271257465,0.271257465 +21-02-2019 9:00,7764642.758,0.289008652,0.289008652 +21-02-2019 10:00,7765568.265,0.298714789,0.298714789 +21-02-2019 11:00,7766494.315,0.407242608,0.407242608 +21-02-2019 12:00,7767420.906,0.354863109,0.354863109 +21-02-2019 13:00,7768348.039,0.202805578,0.202805578 +21-02-2019 14:00,7769275.713,0.096123907,0.096123907 +21-02-2019 15:00,7770203.927,0.264223308,0.264223308 +21-02-2019 16:00,7771132.682,0.350809178,0.350809178 +21-02-2019 17:00,7772061.976,0.391833745,0.391833745 +21-02-2019 18:00,7772991.809,0.375212106,0.375212106 +21-02-2019 19:00,7773922.181,0.340084689,0.340084689 +21-02-2019 20:00,7774853.091,0.277725704,0.277725704 +21-02-2019 21:00,7775784.538,0.179217524,0.179217524 +21-02-2019 22:00,7776716.523,0.084770986,0.084770986 +21-02-2019 23:00,7777649.045,0.036305847,0.036305847 +22-02-2019 0:00,7778582.103,0.014489445,0.014489445 +22-02-2019 1:00,7779515.697,0.004557457,0.004557457 +22-02-2019 2:00,7780449.826,0.002424533,0.002424533 +22-02-2019 3:00,7781384.489,0.003577114,0.003577114 +22-02-2019 4:00,7782319.687,0.017404066,0.017404066 +22-02-2019 5:00,7783255.419,0.100864666,0.100864666 +22-02-2019 6:00,7784191.685,0.229797522,0.229797522 +22-02-2019 7:00,7785128.483,0.294530789,0.294530789 +22-02-2019 8:00,7786065.813,0.230999918,0.230999918 +22-02-2019 9:00,7787003.676,0.259175371,0.259175371 +22-02-2019 10:00,7787942.07,0.274264104,0.274264104 +22-02-2019 11:00,7788880.995,0.372548704,0.372548704 +22-02-2019 12:00,7789820.45,0.325872793,0.325872793 +22-02-2019 13:00,7790760.435,0.182960298,0.182960298 +22-02-2019 14:00,7791700.95,0.08545439,0.08545439 +22-02-2019 15:00,7792641.994,0.199610994,0.199610994 +22-02-2019 16:00,7793583.566,0.317900826,0.317900826 +22-02-2019 17:00,7794525.667,0.35922077,0.35922077 +22-02-2019 18:00,7795468.295,0.357243013,0.357243013 +22-02-2019 19:00,7796411.45,0.338805238,0.338805238 +22-02-2019 20:00,7797355.131,0.273535918,0.273535918 +22-02-2019 21:00,7798299.339,0.177208021,0.177208021 +22-02-2019 22:00,7799244.073,0.085023493,0.085023493 +22-02-2019 23:00,7800189.331,0.036924807,0.036924807 +23-02-2019 0:00,7801135.114,0.014945346,0.014945346 +23-02-2019 1:00,7802081.422,0.00471076,0.00471076 +23-02-2019 2:00,7803028.253,0.002561678,0.002561678 +23-02-2019 3:00,7803975.607,0.003896888,0.003896888 +23-02-2019 4:00,7804923.484,0.019608959,0.019608959 +23-02-2019 5:00,7805871.883,0.11610052,0.11610052 +23-02-2019 6:00,7806820.804,0.262196704,0.262196704 +23-02-2019 7:00,7807770.246,0.331993383,0.331993383 +23-02-2019 8:00,7808720.209,0.255754323,0.255754323 +23-02-2019 9:00,7809670.692,0.237935548,0.237935548 +23-02-2019 10:00,7810621.695,0.256132154,0.256132154 +23-02-2019 11:00,7811573.217,0.321807918,0.321807918 +23-02-2019 12:00,7812525.258,0.239290566,0.239290566 +23-02-2019 13:00,7813477.818,0.125691332,0.125691332 +23-02-2019 14:00,7814430.895,0.062324783,0.062324783 +23-02-2019 15:00,7815384.489,0.090284999,0.090284999 +23-02-2019 16:00,7816338.6,0.241234349,0.241234349 +23-02-2019 17:00,7817293.228,0.359811646,0.359811646 +23-02-2019 18:00,7818248.371,0.359445155,0.359445155 +23-02-2019 19:00,7819204.03,0.348777597,0.348777597 +23-02-2019 20:00,7820160.204,0.303432119,0.303432119 +23-02-2019 21:00,7821116.892,0.182995135,0.182995135 +23-02-2019 22:00,7822074.094,0.087558639,0.087558639 +23-02-2019 23:00,7823031.809,0.038688555,0.038688555 +24-02-2019 0:00,7823990.038,0.01574694,0.01574694 +24-02-2019 1:00,7824948.778,0.005179793,0.005179793 +24-02-2019 2:00,7825908.031,0.002959391,0.002959391 +24-02-2019 3:00,7826867.795,0.004654476,0.004654476 +24-02-2019 4:00,7827828.07,0.0253274,0.0253274 +24-02-2019 5:00,7828788.855,0.141777402,0.141777402 +24-02-2019 6:00,7829750.15,0.313125005,0.313125005 +24-02-2019 7:00,7830711.955,0.366714233,0.366714233 +24-02-2019 8:00,7831674.269,0.221557465,0.221557465 +24-02-2019 9:00,7832637.091,0.184241502,0.184241502 +24-02-2019 10:00,7833600.421,0.174561748,0.174561748 +24-02-2019 11:00,7834564.259,0.204940324,0.204940324 +24-02-2019 12:00,7835528.603,0.192830235,0.192830235 +24-02-2019 13:00,7836493.454,0.10825493,0.10825493 +24-02-2019 14:00,7837458.811,0.05448834,0.05448834 +24-02-2019 15:00,7838424.674,0.133394507,0.133394507 +24-02-2019 16:00,7839391.041,0.272880493,0.272880493 +24-02-2019 17:00,7840357.913,0.349919076,0.349919076 +24-02-2019 18:00,7841325.289,0.364271654,0.364271654 +24-02-2019 19:00,7842293.168,0.353818742,0.353818742 +24-02-2019 20:00,7843261.551,0.298437179,0.298437179 +24-02-2019 21:00,7844230.435,0.197876682,0.197876682 +24-02-2019 22:00,7845199.822,0.096168627,0.096168627 +24-02-2019 23:00,7846169.711,0.042480456,0.042480456 +25-02-2019 0:00,7847140.1,0.017479339,0.017479339 +25-02-2019 1:00,7848110.99,0.006065317,0.006065317 +25-02-2019 2:00,7849082.38,0.003465083,0.003465083 +25-02-2019 3:00,7850054.269,0.006121753,0.006121753 +25-02-2019 4:00,7851026.657,0.031486699,0.031486699 +25-02-2019 5:00,7851999.544,0.159084474,0.159084474 +25-02-2019 6:00,7852972.929,0.33519536,0.33519536 +25-02-2019 7:00,7853946.811,0.383840449,0.383840449 +25-02-2019 8:00,7854921.191,0.240481913,0.240481913 +25-02-2019 9:00,7855896.067,0.200973253,0.200973253 +25-02-2019 10:00,7856871.438,0.207380978,0.207380978 +25-02-2019 11:00,7857847.306,0.228505258,0.228505258 +25-02-2019 12:00,7858823.668,0.174743448,0.174743448 +25-02-2019 13:00,7859800.525,0.097472937,0.097472937 +25-02-2019 14:00,7860777.876,0.044778102,0.044778102 +25-02-2019 15:00,7861755.72,0.062986387,0.062986387 +25-02-2019 16:00,7862734.057,0.175526647,0.175526647 +25-02-2019 17:00,7863712.887,0.327360078,0.327360078 +25-02-2019 18:00,7864692.209,0.355696862,0.355696862 +25-02-2019 19:00,7865672.022,0.348415978,0.348415978 +25-02-2019 20:00,7866652.326,0.299260959,0.299260959 +25-02-2019 21:00,7867633.12,0.198122648,0.198122648 +25-02-2019 22:00,7868614.405,0.095287642,0.095287642 +25-02-2019 23:00,7869596.179,0.04192905,0.04192905 +26-02-2019 0:00,7870578.442,0.017391692,0.017391692 +26-02-2019 1:00,7871561.193,0.005694747,0.005694747 +26-02-2019 2:00,7872544.432,0.003349807,0.003349807 +26-02-2019 3:00,7873528.159,0.005672633,0.005672633 +26-02-2019 4:00,7874512.373,0.030032729,0.030032729 +26-02-2019 5:00,7875497.073,0.157561611,0.157561611 +26-02-2019 6:00,7876482.259,0.332411641,0.332411641 +26-02-2019 7:00,7877467.93,0.400494602,0.400494602 +26-02-2019 8:00,7878454.086,0.300978283,0.300978283 +26-02-2019 9:00,7879440.727,0.284607793,0.284607793 +26-02-2019 10:00,7880427.852,0.264019046,0.264019046 +26-02-2019 11:00,7881415.46,0.332880931,0.332880931 +26-02-2019 12:00,7882403.55,0.286361201,0.286361201 +26-02-2019 13:00,7883392.123,0.156742279,0.156742279 +26-02-2019 14:00,7884381.178,0.069784059,0.069784059 +26-02-2019 15:00,7885370.715,0.098272299,0.098272299 +26-02-2019 16:00,7886360.732,0.236428728,0.236428728 +26-02-2019 17:00,7887351.229,0.357629346,0.357629346 +26-02-2019 18:00,7888342.207,0.370251659,0.370251659 +26-02-2019 19:00,7889333.663,0.349170548,0.349170548 +26-02-2019 20:00,7890325.599,0.292023328,0.292023328 +26-02-2019 21:00,7891318.012,0.191852868,0.191852868 +26-02-2019 22:00,7892310.904,0.092846792,0.092846792 +26-02-2019 23:00,7893304.272,0.040923993,0.040923993 +27-02-2019 0:00,7894298.118,0.0167016,0.0167016 +27-02-2019 1:00,7895292.439,0.005630015,0.005630015 +27-02-2019 2:00,7896287.237,0.00323548,0.00323548 +27-02-2019 3:00,7897282.509,0.005220626,0.005220626 +27-02-2019 4:00,7898278.257,0.027153381,0.027153381 +27-02-2019 5:00,7899274.478,0.143856546,0.143856546 +27-02-2019 6:00,7900271.173,0.301609075,0.301609075 +27-02-2019 7:00,7901268.342,0.340466749,0.340466749 +27-02-2019 8:00,7902265.983,0.203861947,0.203861947 +27-02-2019 9:00,7903264.096,0.16522505,0.16522505 +27-02-2019 10:00,7904262.68,0.152488506,0.152488506 +27-02-2019 11:00,7905261.736,0.165325029,0.165325029 +27-02-2019 12:00,7906261.263,0.109680634,0.109680634 +27-02-2019 13:00,7907261.259,0.041667621,0.041667621 +27-02-2019 14:00,7908261.725,0.019955639,0.019955639 +27-02-2019 15:00,7909262.66,0.024610444,0.024610444 +27-02-2019 16:00,7910264.064,0.049498482,0.049498482 +27-02-2019 17:00,7911265.936,0.128314611,0.128314611 +27-02-2019 18:00,7912268.275,0.208765116,0.208765116 +27-02-2019 19:00,7913271.081,0.261688123,0.261688123 +27-02-2019 20:00,7914274.354,0.227001879,0.227001879 +27-02-2019 21:00,7915278.092,0.152643913,0.152643913 +27-02-2019 22:00,7916282.297,0.076391876,0.076391876 +27-02-2019 23:00,7917286.966,0.035045556,0.035045556 +28-02-2019 0:00,7918292.099,0.014846948,0.014846948 +28-02-2019 1:00,7919297.696,0.00459434,0.00459434 +28-02-2019 2:00,7920303.757,0.002558344,0.002558344 +28-02-2019 3:00,7921310.281,0.003894311,0.003894311 +28-02-2019 4:00,7922317.266,0.014855758,0.014855758 +28-02-2019 5:00,7923324.714,0.112232345,0.112232345 +28-02-2019 6:00,7924332.623,0.247760209,0.247760209 +28-02-2019 7:00,7925340.993,0.193385152,0.193385152 +28-02-2019 8:00,7926349.823,0.198496534,0.198496534 +28-02-2019 9:00,7927359.113,0.226835165,0.226835165 +28-02-2019 10:00,7928368.862,0.252642284,0.252642284 +28-02-2019 11:00,7929379.07,0.291564365,0.291564365 +28-02-2019 12:00,7930389.735,0.281164177,0.281164177 +28-02-2019 13:00,7931400.859,0.149597536,0.149597536 +28-02-2019 14:00,7932412.44,0.072358961,0.072358961 +28-02-2019 15:00,7933424.477,0.045789866,0.045789866 +28-02-2019 16:00,7934436.971,0.17324095,0.17324095 +28-02-2019 17:00,7935449.92,0.330798559,0.330798559 +28-02-2019 18:00,7936463.324,0.326567789,0.326567789 +28-02-2019 19:00,7937477.183,0.308364365,0.308364365 +28-02-2019 20:00,7938491.495,0.257478576,0.257478576 +28-02-2019 21:00,7939506.261,0.166994259,0.166994259 +28-02-2019 22:00,7940521.481,0.079342952,0.079342952 +28-02-2019 23:00,7941537.152,0.034040098,0.034040098 +01-03-2019 0:00,7942553.276,0.013706875,0.013706875 +01-03-2019 1:00,7943569.851,0.003975152,0.003975152 +01-03-2019 2:00,7944586.877,0.002171822,0.002171822 +01-03-2019 3:00,7945604.353,0.003293882,0.003293882 +01-03-2019 4:00,7946622.279,0.013410455,0.013410455 +01-03-2019 5:00,7947640.654,0.089736765,0.089736765 +01-03-2019 6:00,7948659.479,0.203107774,0.203107774 +01-03-2019 7:00,7949678.751,0.161622196,0.161622196 +01-03-2019 8:00,7950698.471,0.171732018,0.171732018 +01-03-2019 9:00,7951718.639,0.21029493,0.21029493 +01-03-2019 10:00,7952739.253,0.247830834,0.247830834 +01-03-2019 11:00,7953760.313,0.357877257,0.357877257 +01-03-2019 12:00,7954781.819,0.312841485,0.312841485 +01-03-2019 13:00,7955803.77,0.166408317,0.166408317 +01-03-2019 14:00,7956826.166,0.081719369,0.081719369 +01-03-2019 15:00,7957849.005,0.057784273,0.057784273 +01-03-2019 16:00,7958872.289,0.257722452,0.257722452 +01-03-2019 17:00,7959896.015,0.368045134,0.368045134 +01-03-2019 18:00,7960920.184,0.358256053,0.358256053 +01-03-2019 19:00,7961944.794,0.340694761,0.340694761 +01-03-2019 20:00,7962969.847,0.283518105,0.283518105 +01-03-2019 21:00,7963995.34,0.18487264,0.18487264 +01-03-2019 22:00,7965021.273,0.087726022,0.087726022 +01-03-2019 23:00,7966047.646,0.039290702,0.039290702 +02-03-2019 0:00,7967074.459,0.015438746,0.015438746 +02-03-2019 1:00,7968101.711,0.005010916,0.005010916 +02-03-2019 2:00,7969129.4,0.002836128,0.002836128 +02-03-2019 3:00,7970157.528,0.004116118,0.004116118 +02-03-2019 4:00,7971186.092,0.020153665,0.020153665 +02-03-2019 5:00,7972215.094,0.117902781,0.117902781 +02-03-2019 6:00,7973244.531,0.25501239,0.25501239 +02-03-2019 7:00,7974274.404,0.203446517,0.203446517 +02-03-2019 8:00,7975304.712,0.206826096,0.206826096 +02-03-2019 9:00,7976335.455,0.236039219,0.236039219 +02-03-2019 10:00,7977366.632,0.259053054,0.259053054 +02-03-2019 11:00,7978398.242,0.31909154,0.31909154 +02-03-2019 12:00,7979430.285,0.264350025,0.264350025 +02-03-2019 13:00,7980462.761,0.148424413,0.148424413 +02-03-2019 14:00,7981495.669,0.073544062,0.073544062 +02-03-2019 15:00,7982529.008,0.051655078,0.051655078 +02-03-2019 16:00,7983562.777,0.197169631,0.197169631 +02-03-2019 17:00,7984596.978,0.341414583,0.341414583 +02-03-2019 18:00,7985631.608,0.332283029,0.332283029 +02-03-2019 19:00,7986666.667,0.312384616,0.312384616 +02-03-2019 20:00,7987702.155,0.260992199,0.260992199 +02-03-2019 21:00,7988738.071,0.169592827,0.169592827 +02-03-2019 22:00,7989774.414,0.079685162,0.079685162 +02-03-2019 23:00,7990811.185,0.033695284,0.033695284 +03-03-2019 0:00,7991848.383,0.013362914,0.013362914 +03-03-2019 1:00,7992886.006,0.003835449,0.003835449 +03-03-2019 2:00,7993924.055,0.002050837,0.002050837 +03-03-2019 3:00,7994962.529,0.003072953,0.003072953 +03-03-2019 4:00,7996001.427,0.012387462,0.012387462 +03-03-2019 5:00,7997040.75,0.080891778,0.080891778 +03-03-2019 6:00,7998080.495,0.178303235,0.178303235 +03-03-2019 7:00,7999120.664,0.143459085,0.143459085 +03-03-2019 8:00,8000161.255,0.154148445,0.154148445 +03-03-2019 9:00,8001202.267,0.187851591,0.187851591 +03-03-2019 10:00,8002243.701,0.216403337,0.216403337 +03-03-2019 11:00,8003285.556,0.297686229,0.297686229 +03-03-2019 12:00,8004327.831,0.254800561,0.254800561 +03-03-2019 13:00,8005370.525,0.13735338,0.13735338 +03-03-2019 14:00,8006413.639,0.065767409,0.065767409 +03-03-2019 15:00,8007457.171,0.041470434,0.041470434 +03-03-2019 16:00,8008501.121,0.125674835,0.125674835 +03-03-2019 17:00,8009545.488,0.289868116,0.289868116 +03-03-2019 18:00,8010590.273,0.298515461,0.298515461 +03-03-2019 19:00,8011635.474,0.277480077,0.277480077 +03-03-2019 20:00,8012681.09,0.231904586,0.231904586 +03-03-2019 21:00,8013727.122,0.149609186,0.149609186 +03-03-2019 22:00,8014773.569,0.07013029,0.07013029 +03-03-2019 23:00,8015820.43,0.029376841,0.029376841 +04-03-2019 0:00,8016867.705,0.011848637,0.011848637 +04-03-2019 1:00,8017915.393,0.003140753,0.003140753 +04-03-2019 2:00,8018963.494,0.001363372,0.001363372 +04-03-2019 3:00,8020012.007,0.002470907,0.002470907 +04-03-2019 4:00,8021060.931,0.008251566,0.008251566 +04-03-2019 5:00,8022110.266,0.060591636,0.060591636 +04-03-2019 6:00,8023160.012,0.133996006,0.133996006 +04-03-2019 7:00,8024210.168,0.112958794,0.112958794 +04-03-2019 8:00,8025260.733,0.13303153,0.13303153 +04-03-2019 9:00,8026311.707,0.167557212,0.167557212 +04-03-2019 10:00,8027363.09,0.199299837,0.199299837 +04-03-2019 11:00,8028414.88,0.285768733,0.285768733 +04-03-2019 12:00,8029467.077,0.231837829,0.231837829 +04-03-2019 13:00,8030519.681,0.127543938,0.127543938 +04-03-2019 14:00,8031572.692,0.056720763,0.056720763 +04-03-2019 15:00,8032626.107,0.03780661,0.03780661 +04-03-2019 16:00,8033679.928,0.100269979,0.100269979 +04-03-2019 17:00,8034734.154,0.288327829,0.288327829 +04-03-2019 18:00,8035788.783,0.315878645,0.315878645 +04-03-2019 19:00,8036843.816,0.29027728,0.29027728 +04-03-2019 20:00,8037899.252,0.242692633,0.242692633 +04-03-2019 21:00,8038955.09,0.161353623,0.161353623 +04-03-2019 22:00,8040011.33,0.077338017,0.077338017 +04-03-2019 23:00,8041067.971,0.033535529,0.033535529 +05-03-2019 0:00,8042125.013,0.013462277,0.013462277 +05-03-2019 1:00,8043182.456,0.003696056,0.003696056 +05-03-2019 2:00,8044240.297,0.001915715,0.001915715 +05-03-2019 3:00,8045298.538,0.003050116,0.003050116 +05-03-2019 4:00,8046357.178,0.011828124,0.011828124 +05-03-2019 5:00,8047416.215,0.083498832,0.083498832 +05-03-2019 6:00,8048475.65,0.186721584,0.186721584 +05-03-2019 7:00,8049535.482,0.122592875,0.122592875 +05-03-2019 8:00,8050595.71,0.128349102,0.128349102 +05-03-2019 9:00,8051656.334,0.163667686,0.163667686 +05-03-2019 10:00,8052717.354,0.189543293,0.189543293 +05-03-2019 11:00,8053778.768,0.244575706,0.244575706 +05-03-2019 12:00,8054840.576,0.2077146,0.2077146 +05-03-2019 13:00,8055902.778,0.109217693,0.109217693 +05-03-2019 14:00,8056965.373,0.045261527,0.045261527 +05-03-2019 15:00,8058028.36,0.028232118,0.028232118 +05-03-2019 16:00,8059091.74,0.050912883,0.050912883 +05-03-2019 17:00,8060155.511,0.15830426,0.15830426 +05-03-2019 18:00,8061219.673,0.289625189,0.289625189 +05-03-2019 19:00,8062284.225,0.30187335,0.30187335 +05-03-2019 20:00,8063349.167,0.243463122,0.243463122 +05-03-2019 21:00,8064414.498,0.159026706,0.159026706 +05-03-2019 22:00,8065480.219,0.0758606,0.0758606 +05-03-2019 23:00,8066546.327,0.033849615,0.033849615 +06-03-2019 0:00,8067612.823,0.013484429,0.013484429 +06-03-2019 1:00,8068679.706,0.003936233,0.003936233 +06-03-2019 2:00,8069746.975,0.00209965,0.00209965 +06-03-2019 3:00,8070814.63,0.002784433,0.002784433 +06-03-2019 4:00,8071882.671,0.011250018,0.011250018 +06-03-2019 5:00,8072951.097,0.083690206,0.083690206 +06-03-2019 6:00,8074019.907,0.179163332,0.179163332 +06-03-2019 7:00,8075089.101,0.140563189,0.140563189 +06-03-2019 8:00,8076158.678,0.149408021,0.149408021 +06-03-2019 9:00,8077228.638,0.179295698,0.179295698 +06-03-2019 10:00,8078298.98,0.208220539,0.208220539 +06-03-2019 11:00,8079369.703,0.281401428,0.281401428 +06-03-2019 12:00,8080440.808,0.237848049,0.237848049 +06-03-2019 13:00,8081512.293,0.128622131,0.128622131 +06-03-2019 14:00,8082584.157,0.060105044,0.060105044 +06-03-2019 15:00,8083656.402,0.037537021,0.037537021 +06-03-2019 16:00,8084729.025,0.092933208,0.092933208 +06-03-2019 17:00,8085802.026,0.254503568,0.254503568 +06-03-2019 18:00,8086875.405,0.292111009,0.292111009 +06-03-2019 19:00,8087949.161,0.268183877,0.268183877 +06-03-2019 20:00,8089023.294,0.223001968,0.223001968 +06-03-2019 21:00,8090097.803,0.149181628,0.149181628 +06-03-2019 22:00,8091172.687,0.071736691,0.071736691 +06-03-2019 23:00,8092247.947,0.030334967,0.030334967 +07-03-2019 0:00,8093323.58,0.012309352,0.012309352 +07-03-2019 1:00,8094399.588,0.003249349,0.003249349 +07-03-2019 2:00,8095475.969,0.001497055,0.001497055 +07-03-2019 3:00,8096552.723,0.002496081,0.002496081 +07-03-2019 4:00,8097629.848,0.008766408,0.008766408 +07-03-2019 5:00,8098707.346,0.063966628,0.063966628 +07-03-2019 6:00,8099785.214,0.140267536,0.140267536 +07-03-2019 7:00,8100863.453,0.114241159,0.114241159 +07-03-2019 8:00,8101942.062,0.125693817,0.125693817 +07-03-2019 9:00,8103021.041,0.154319523,0.154319523 +07-03-2019 10:00,8104100.388,0.175379828,0.175379828 +07-03-2019 11:00,8105180.103,0.23667714,0.23667714 +07-03-2019 12:00,8106260.187,0.196930845,0.196930845 +07-03-2019 13:00,8107340.637,0.084131576,0.084131576 +07-03-2019 14:00,8108421.454,0.037939264,0.037939264 +07-03-2019 15:00,8109502.638,0.027300664,0.027300664 +07-03-2019 16:00,8110584.186,0.056583203,0.056583203 +07-03-2019 17:00,8111666.1,0.152856755,0.152856755 +07-03-2019 18:00,8112748.378,0.253994911,0.253994911 +07-03-2019 19:00,8113831.02,0.274436301,0.274436301 +07-03-2019 20:00,8114914.025,0.229653246,0.229653246 +07-03-2019 21:00,8115997.393,0.14879235,0.14879235 +07-03-2019 22:00,8117081.124,0.071808392,0.071808392 +07-03-2019 23:00,8118165.215,0.032567249,0.032567249 +08-03-2019 0:00,8119249.668,0.012873639,0.012873639 +08-03-2019 1:00,8120334.482,0.003534594,0.003534594 +08-03-2019 2:00,8121419.655,0.001820542,0.001820542 +08-03-2019 3:00,8122505.188,0.00258666,0.00258666 +08-03-2019 4:00,8123591.079,0.009522372,0.009522372 +08-03-2019 5:00,8124677.329,0.075613298,0.075613298 +08-03-2019 6:00,8125763.937,0.162230526,0.162230526 +08-03-2019 7:00,8126850.901,0.127679456,0.127679456 +08-03-2019 8:00,8127938.223,0.114956994,0.114956994 +08-03-2019 9:00,8129025.9,0.137011947,0.137011947 +08-03-2019 10:00,8130113.933,0.155205059,0.155205059 +08-03-2019 11:00,8131202.32,0.220770099,0.220770099 +08-03-2019 12:00,8132291.062,0.158836254,0.158836254 +08-03-2019 13:00,8133380.158,0.088307787,0.088307787 +08-03-2019 14:00,8134469.607,0.041876677,0.041876677 +08-03-2019 15:00,8135559.409,0.030294839,0.030294839 +08-03-2019 16:00,8136649.563,0.084695393,0.084695393 +08-03-2019 17:00,8137740.069,0.23838136,0.23838136 +08-03-2019 18:00,8138830.925,0.303539417,0.303539417 +08-03-2019 19:00,8139922.132,0.281026012,0.281026012 +08-03-2019 20:00,8141013.689,0.234302357,0.234302357 +08-03-2019 21:00,8142105.595,0.153338712,0.153338712 +08-03-2019 22:00,8143197.85,0.074086754,0.074086754 +08-03-2019 23:00,8144290.453,0.033206889,0.033206889 +09-03-2019 0:00,8145383.403,0.013027115,0.013027115 +09-03-2019 1:00,8146476.701,0.003688338,0.003688338 +09-03-2019 2:00,8147570.345,0.001896652,0.001896652 +09-03-2019 3:00,8148664.335,0.00261953,0.00261953 +09-03-2019 4:00,8149758.671,0.009584653,0.009584653 +09-03-2019 5:00,8150853.351,0.075543322,0.075543322 +09-03-2019 6:00,8151948.376,0.160285132,0.160285132 +09-03-2019 7:00,8153043.744,0.124841997,0.124841997 +09-03-2019 8:00,8154139.456,0.136663226,0.136663226 +09-03-2019 9:00,8155235.51,0.165491326,0.165491326 +09-03-2019 10:00,8156331.905,0.190600809,0.190600809 +09-03-2019 11:00,8157428.643,0.262075167,0.262075167 +09-03-2019 12:00,8158525.721,0.218818978,0.218818978 +09-03-2019 13:00,8159623.14,0.119946464,0.119946464 +09-03-2019 14:00,8160720.898,0.056421992,0.056421992 +09-03-2019 15:00,8161818.995,0.027960817,0.027960817 +09-03-2019 16:00,8162917.431,0.045255195,0.045255195 +09-03-2019 17:00,8164016.206,0.143607008,0.143607008 +09-03-2019 18:00,8165115.317,0.276755276,0.276755276 +09-03-2019 19:00,8166214.766,0.280075736,0.280075736 +09-03-2019 20:00,8167314.55,0.228453356,0.228453356 +09-03-2019 21:00,8168414.671,0.148666414,0.148666414 +09-03-2019 22:00,8169515.127,0.072085244,0.072085244 +09-03-2019 23:00,8170615.917,0.032240236,0.032240236 +10-03-2019 0:00,8171717.042,0.012951641,0.012951641 +10-03-2019 1:00,8172818.5,0.003629955,0.003629955 +10-03-2019 2:00,8173920.291,0.001885366,0.001885366 +10-03-2019 3:00,8175022.415,0.002689858,0.002689858 +10-03-2019 4:00,8176124.87,0.010166781,0.010166781 +10-03-2019 5:00,8177227.656,0.080619523,0.080619523 +10-03-2019 6:00,8178330.773,0.176857749,0.176857749 +10-03-2019 7:00,8179434.221,0.135692818,0.135692818 +10-03-2019 8:00,8180537.998,0.147870109,0.147870109 +10-03-2019 9:00,8181642.103,0.182356251,0.182356251 +10-03-2019 10:00,8182746.538,0.216421579,0.216421579 +10-03-2019 11:00,8183851.3,0.295412926,0.295412926 +10-03-2019 12:00,8184956.389,0.249440637,0.249440637 +10-03-2019 13:00,8186061.805,0.138346021,0.138346021 +10-03-2019 14:00,8187167.547,0.067723585,0.067723585 +10-03-2019 15:00,8188273.615,0.04286788,0.04286788 +10-03-2019 16:00,8189380.008,0.173836434,0.173836434 +10-03-2019 17:00,8190486.725,0.364126679,0.364126679 +10-03-2019 18:00,8191593.766,0.353692626,0.353692626 +10-03-2019 19:00,8192701.13,0.321338786,0.321338786 +10-03-2019 20:00,8193808.817,0.263339302,0.263339302 +10-03-2019 21:00,8194916.826,0.172111178,0.172111178 +10-03-2019 22:00,8196025.157,0.083337589,0.083337589 +10-03-2019 23:00,8197133.809,0.036762712,0.036762712 +11-03-2019 0:00,8198242.781,0.014786389,0.014786389 +11-03-2019 1:00,8199352.073,0.004783809,0.004783809 +11-03-2019 2:00,8200461.684,0.00262209,0.00262209 +11-03-2019 3:00,8201571.614,0.00370149,0.00370149 +11-03-2019 4:00,8202681.863,0.017943838,0.017943838 +11-03-2019 5:00,8203792.429,0.111300823,0.111300823 +11-03-2019 6:00,8204903.311,0.235969817,0.235969817 +11-03-2019 7:00,8206014.511,0.177038343,0.177038343 +11-03-2019 8:00,8207126.026,0.178590769,0.178590769 +11-03-2019 9:00,8208237.856,0.207951087,0.207951087 +11-03-2019 10:00,8209350.001,0.239943182,0.239943182 +11-03-2019 11:00,8210462.461,0.330468543,0.330468543 +11-03-2019 12:00,8211575.234,0.285905893,0.285905893 +11-03-2019 13:00,8212688.32,0.147988508,0.147988508 +11-03-2019 14:00,8213801.718,0.071774159,0.071774159 +11-03-2019 15:00,8214915.428,0.043936887,0.043936887 +11-03-2019 16:00,8216029.45,0.14972285,0.14972285 +11-03-2019 17:00,8217143.782,0.352522812,0.352522812 +11-03-2019 18:00,8218258.425,0.35311038,0.35311038 +11-03-2019 19:00,8219373.376,0.331541461,0.331541461 +11-03-2019 20:00,8220488.637,0.283477285,0.283477285 +11-03-2019 21:00,8221604.207,0.190925272,0.190925272 +11-03-2019 22:00,8222720.084,0.092106909,0.092106909 +11-03-2019 23:00,8223836.269,0.039648119,0.039648119 +12-03-2019 0:00,8224952.76,0.0160015,0.0160015 +12-03-2019 1:00,8226069.557,0.005328745,0.005328745 +12-03-2019 2:00,8227186.66,0.003039507,0.003039507 +12-03-2019 3:00,8228304.068,0.004500911,0.004500911 +12-03-2019 4:00,8229421.78,0.022060884,0.022060884 +12-03-2019 5:00,8230539.796,0.124908153,0.124908153 +12-03-2019 6:00,8231658.116,0.258581187,0.258581187 +12-03-2019 7:00,8232776.738,0.19393956,0.19393956 +12-03-2019 8:00,8233895.662,0.188406677,0.188406677 +12-03-2019 9:00,8235014.888,0.213262076,0.213262076 +12-03-2019 10:00,8236134.414,0.241610849,0.241610849 +12-03-2019 11:00,8237254.241,0.336979109,0.336979109 +12-03-2019 12:00,8238374.368,0.285924749,0.285924749 +12-03-2019 13:00,8239494.794,0.15255092,0.15255092 +12-03-2019 14:00,8240615.519,0.072889146,0.072889146 +12-03-2019 15:00,8241736.541,0.043661825,0.043661825 +12-03-2019 16:00,8242857.862,0.144439729,0.144439729 +12-03-2019 17:00,8243979.479,0.345301682,0.345301682 +12-03-2019 18:00,8245101.392,0.349849247,0.349849247 +12-03-2019 19:00,8246223.602,0.342238856,0.342238856 +12-03-2019 20:00,8247346.106,0.290214033,0.290214033 +12-03-2019 21:00,8248468.905,0.188885977,0.188885977 +12-03-2019 22:00,8249591.998,0.088458844,0.088458844 +12-03-2019 23:00,8250715.385,0.038311257,0.038311257 +13-03-2019 0:00,8251839.064,0.01540176,0.01540176 +13-03-2019 1:00,8252963.036,0.005167191,0.005167191 +13-03-2019 2:00,8254087.299,0.002923753,0.002923753 +13-03-2019 3:00,8255211.854,0.004219782,0.004219782 +13-03-2019 4:00,8256336.699,0.020621098,0.020621098 +13-03-2019 5:00,8257461.834,0.117857721,0.117857721 +13-03-2019 6:00,8258587.259,0.246640842,0.246640842 +13-03-2019 7:00,8259712.972,0.184733895,0.184733895 +13-03-2019 8:00,8260838.973,0.181222742,0.181222742 +13-03-2019 9:00,8261965.263,0.209959447,0.209959447 +13-03-2019 10:00,8263091.839,0.243519732,0.243519732 +13-03-2019 11:00,8264218.702,0.346961331,0.346961331 +13-03-2019 12:00,8265345.851,0.294933836,0.294933836 +13-03-2019 13:00,8266473.285,0.156692029,0.156692029 +13-03-2019 14:00,8267601.004,0.07461202,0.07461202 +13-03-2019 15:00,8268729.007,0.04421396,0.04421396 +13-03-2019 16:00,8269857.293,0.145993972,0.145993972 +13-03-2019 17:00,8270985.863,0.35083972,0.35083972 +13-03-2019 18:00,8272114.715,0.349296466,0.349296466 +13-03-2019 19:00,8273243.849,0.326837532,0.326837532 +13-03-2019 20:00,8274373.264,0.277537939,0.277537939 +13-03-2019 21:00,8275502.96,0.179930985,0.179930985 +13-03-2019 22:00,8276632.936,0.084969641,0.084969641 +13-03-2019 23:00,8277763.192,0.036724301,0.036724301 +14-03-2019 0:00,8278893.727,0.01472875,0.01472875 +14-03-2019 1:00,8280024.54,0.004792133,0.004792133 +14-03-2019 2:00,8281155.631,0.002642651,0.002642651 +14-03-2019 3:00,8282286.999,0.003819753,0.003819753 +14-03-2019 4:00,8283418.643,0.018085962,0.018085962 +14-03-2019 5:00,8284550.564,0.107548191,0.107548191 +14-03-2019 6:00,8285682.76,0.231022174,0.231022174 +14-03-2019 7:00,8286815.231,0.171752637,0.171752637 +14-03-2019 8:00,8287947.976,0.170906965,0.170906965 +14-03-2019 9:00,8289080.995,0.201329805,0.201329805 +14-03-2019 10:00,8290214.288,0.231601157,0.231601157 +14-03-2019 11:00,8291347.852,0.317950522,0.317950522 +14-03-2019 12:00,8292481.689,0.268279637,0.268279637 +14-03-2019 13:00,8293615.797,0.143603254,0.143603254 +14-03-2019 14:00,8294750.176,0.067438254,0.067438254 +14-03-2019 15:00,8295884.825,0.041036496,0.041036496 +14-03-2019 16:00,8297019.744,0.122946193,0.122946193 +14-03-2019 17:00,8298154.932,0.325979624,0.325979624 +14-03-2019 18:00,8299290.388,0.341566608,0.341566608 +14-03-2019 19:00,8300426.112,0.313535323,0.313535323 +14-03-2019 20:00,8301562.104,0.263990075,0.263990075 +14-03-2019 21:00,8302698.362,0.173826563,0.173826563 +14-03-2019 22:00,8303834.886,0.082410956,0.082410956 +14-03-2019 23:00,8304971.676,0.035987286,0.035987286 +15-03-2019 0:00,8306108.731,0.014303567,0.014303567 +15-03-2019 1:00,8307246.05,0.004541456,0.004541456 +15-03-2019 2:00,8308383.633,0.002467059,0.002467059 +15-03-2019 3:00,8309521.479,0.00354165,0.00354165 +15-03-2019 4:00,8310659.588,0.015928682,0.015928682 +15-03-2019 5:00,8311797.959,0.099163019,0.099163019 +15-03-2019 6:00,8312936.591,0.214812696,0.214812696 +15-03-2019 7:00,8314075.484,0.156873641,0.156873641 +15-03-2019 8:00,8315214.638,0.15472238,0.15472238 +15-03-2019 9:00,8316354.051,0.180497304,0.180497304 +15-03-2019 10:00,8317493.723,0.205317146,0.205317146 +15-03-2019 11:00,8318633.654,0.274088362,0.274088362 +15-03-2019 12:00,8319773.843,0.232283877,0.232283877 +15-03-2019 13:00,8320914.289,0.125037088,0.125037088 +15-03-2019 14:00,8322054.991,0.057213782,0.057213782 +15-03-2019 15:00,8323195.95,0.035552789,0.035552789 +15-03-2019 16:00,8324337.165,0.085148679,0.085148679 +15-03-2019 17:00,8325478.635,0.255023189,0.255023189 +15-03-2019 18:00,8326620.359,0.319719154,0.319719154 +15-03-2019 19:00,8327762.336,0.29768171,0.29768171 +15-03-2019 20:00,8328904.567,0.24886347,0.24886347 +15-03-2019 21:00,8330047.051,0.164470343,0.164470343 +15-03-2019 22:00,8331189.787,0.078089753,0.078089753 +15-03-2019 23:00,8332332.774,0.033607186,0.033607186 +16-03-2019 0:00,8333476.012,0.013638841,0.013638841 +16-03-2019 1:00,8334619.5,0.003919034,0.003919034 +16-03-2019 2:00,8335763.239,0.002125696,0.002125696 +16-03-2019 3:00,8336907.226,0.002830366,0.002830366 +16-03-2019 4:00,8338051.462,0.012747541,0.012747541 +16-03-2019 5:00,8339195.945,0.086463633,0.086463633 +16-03-2019 6:00,8340340.676,0.182390866,0.182390866 +16-03-2019 7:00,8341485.654,0.133668763,0.133668763 +16-03-2019 8:00,8342630.878,0.138570707,0.138570707 +16-03-2019 9:00,8343776.348,0.165867391,0.165867391 +16-03-2019 10:00,8344922.062,0.190913999,0.190913999 +16-03-2019 11:00,8346068.021,0.260556114,0.260556114 +16-03-2019 12:00,8347214.224,0.216961467,0.216961467 +16-03-2019 13:00,8348360.67,0.11729732,0.11729732 +16-03-2019 14:00,8349507.359,0.053141462,0.053141462 +16-03-2019 15:00,8350654.289,0.033406447,0.033406447 +16-03-2019 16:00,8351801.462,0.069067373,0.069067373 +16-03-2019 17:00,8352948.875,0.213689405,0.213689405 +16-03-2019 18:00,8354096.528,0.295104126,0.295104126 +16-03-2019 19:00,8355244.421,0.272220927,0.272220927 +16-03-2019 20:00,8356392.553,0.224619601,0.224619601 +16-03-2019 21:00,8357540.924,0.146237411,0.146237411 +16-03-2019 22:00,8358689.532,0.072104664,0.072104664 +16-03-2019 23:00,8359838.378,0.030457562,0.030457562 +17-03-2019 0:00,8360987.461,0.012558077,0.012558077 +17-03-2019 1:00,8362136.78,0.003457018,0.003457018 +17-03-2019 2:00,8363286.334,0.001731756,0.001731756 +17-03-2019 3:00,8364436.123,0.002500653,0.002500653 +17-03-2019 4:00,8365586.147,0.010277346,0.010277346 +17-03-2019 5:00,8366736.404,0.075174102,0.075174102 +17-03-2019 6:00,8367886.895,0.158350488,0.158350488 +17-03-2019 7:00,8369037.618,0.120758978,0.120758978 +17-03-2019 8:00,8370188.573,0.131937152,0.131937152 +17-03-2019 9:00,8371339.76,0.156369271,0.156369271 +17-03-2019 10:00,8372491.177,0.178712125,0.178712125 +17-03-2019 11:00,8373642.825,0.231744847,0.231744847 +17-03-2019 12:00,8374794.702,0.193727177,0.193727177 +17-03-2019 13:00,8375946.808,0.094849226,0.094849226 +17-03-2019 14:00,8377099.143,0.036870357,0.036870357 +17-03-2019 15:00,8378251.706,0.023260241,0.023260241 +17-03-2019 16:00,8379404.496,0.043644202,0.043644202 +17-03-2019 17:00,8380557.512,0.11507907,0.11507907 +17-03-2019 18:00,8381710.755,0.228708388,0.228708388 +17-03-2019 19:00,8382864.223,0.302870335,0.302870335 +17-03-2019 20:00,8384017.916,0.251354654,0.251354654 +17-03-2019 21:00,8385171.833,0.164349507,0.164349507 +17-03-2019 22:00,8386325.974,0.078679435,0.078679435 +17-03-2019 23:00,8387480.338,0.035908242,0.035908242 +18-03-2019 0:00,8388634.925,0.014201929,0.014201929 +18-03-2019 1:00,8389789.733,0.004206634,0.004206634 +18-03-2019 2:00,8390944.763,0.002466874,0.002466874 +18-03-2019 3:00,8392100.014,0.003316256,0.003316256 +18-03-2019 4:00,8393255.485,0.013620148,0.013620148 +18-03-2019 5:00,8394411.175,0.103417867,0.103417867 +18-03-2019 6:00,8395567.084,0.205323515,0.205323515 +18-03-2019 7:00,8396723.212,0.128283259,0.128283259 +18-03-2019 8:00,8397879.557,0.130666573,0.130666573 +18-03-2019 9:00,8399036.119,0.161167669,0.161167669 +18-03-2019 10:00,8400192.898,0.183751128,0.183751128 +18-03-2019 11:00,8401349.894,0.264959971,0.264959971 +18-03-2019 12:00,8402507.104,0.225810814,0.225810814 +18-03-2019 13:00,8403664.529,0.104996379,0.104996379 +18-03-2019 14:00,8404822.169,0.046242448,0.046242448 +18-03-2019 15:00,8405980.022,0.030442814,0.030442814 +18-03-2019 16:00,8407138.087,0.061705673,0.061705673 +18-03-2019 17:00,8408296.366,0.207114571,0.207114571 +18-03-2019 18:00,8409454.856,0.340112453,0.340112453 +18-03-2019 19:00,8410613.557,0.323224294,0.323224294 +18-03-2019 20:00,8411772.469,0.276577025,0.276577025 +18-03-2019 21:00,8412931.591,0.186251607,0.186251607 +18-03-2019 22:00,8414090.923,0.091658408,0.091658408 +18-03-2019 23:00,8415250.463,0.042439292,0.042439292 +19-03-2019 0:00,8416410.212,0.017405789,0.017405789 +19-03-2019 1:00,8417570.168,0.005884741,0.005884741 +19-03-2019 2:00,8418730.331,0.003593151,0.003593151 +19-03-2019 3:00,8419890.701,0.006274113,0.006274113 +19-03-2019 4:00,8421051.276,0.030926953,0.030926953 +19-03-2019 5:00,8422212.057,0.167425203,0.167425203 +19-03-2019 6:00,8423373.042,0.326692427,0.326692427 +19-03-2019 7:00,8424534.231,0.244355239,0.244355239 +19-03-2019 8:00,8425695.624,0.22891922,0.22891922 +19-03-2019 9:00,8426857.22,0.23290336,0.23290336 +19-03-2019 10:00,8428019.018,0.243930617,0.243930617 +19-03-2019 11:00,8429181.017,0.304208831,0.304208831 +19-03-2019 12:00,8430343.218,0.224692046,0.224692046 +19-03-2019 13:00,8431505.619,0.115937862,0.115937862 +19-03-2019 14:00,8432668.22,0.055061432,0.055061432 +19-03-2019 15:00,8433831.02,0.03399994,0.03399994 +19-03-2019 16:00,8434994.019,0.077050968,0.077050968 +19-03-2019 17:00,8436157.216,0.23092697,0.23092697 +19-03-2019 18:00,8437320.611,0.342819967,0.342819967 +19-03-2019 19:00,8438484.202,0.328634225,0.328634225 +19-03-2019 20:00,8439647.99,0.284159097,0.284159097 +19-03-2019 21:00,8440811.973,0.190206847,0.190206847 +19-03-2019 22:00,8441976.151,0.094598689,0.094598689 +19-03-2019 23:00,8443140.524,0.041109885,0.041109885 +20-03-2019 0:00,8444305.091,0.01550744,0.01550744 +20-03-2019 1:00,8445469.851,0.005372541,0.005372541 +20-03-2019 2:00,8446634.804,0.003040595,0.003040595 +20-03-2019 3:00,8447799.948,0.004145923,0.004145923 +20-03-2019 4:00,8448965.285,0.021442557,0.021442557 +20-03-2019 5:00,8450130.812,0.122143681,0.122143681 +20-03-2019 6:00,8451296.529,0.246817295,0.246817295 +20-03-2019 7:00,8452462.436,0.17895921,0.17895921 +20-03-2019 8:00,8453628.532,0.172187107,0.172187107 +20-03-2019 9:00,8454794.817,0.194026081,0.194026081 +20-03-2019 10:00,8455961.29,0.221584609,0.221584609 +20-03-2019 11:00,8457127.949,0.306271265,0.306271265 +20-03-2019 12:00,8458294.796,0.255626285,0.255626285 +20-03-2019 13:00,8459461.828,0.136632578,0.136632578 +20-03-2019 14:00,8460629.047,0.062342245,0.062342245 +20-03-2019 15:00,8461796.449,0.037180747,0.037180747 +20-03-2019 16:00,8462964.037,0.085813477,0.085813477 +20-03-2019 17:00,8464131.808,0.2551518,0.2551518 +20-03-2019 18:00,8465299.762,0.324657098,0.324657098 +20-03-2019 19:00,8466467.898,0.301183883,0.301183883 +20-03-2019 20:00,8467636.216,0.251705746,0.251705746 +20-03-2019 21:00,8468804.716,0.174740627,0.174740627 +20-03-2019 22:00,8469973.396,0.086381553,0.086381553 +20-03-2019 23:00,8471142.257,0.037453741,0.037453741 +21-03-2019 0:00,8472311.297,0.015442088,0.015442088 +21-03-2019 1:00,8473480.515,0.005030544,0.005030544 +21-03-2019 2:00,8474649.912,0.002823105,0.002823105 +21-03-2019 3:00,8475819.487,0.003789758,0.003789758 +21-03-2019 4:00,8476989.239,0.019673717,0.019673717 +21-03-2019 5:00,8478159.167,0.114538674,0.114538674 +21-03-2019 6:00,8479329.271,0.230352445,0.230352445 +21-03-2019 7:00,8480499.55,0.163515944,0.163515944 +21-03-2019 8:00,8481670.004,0.157593695,0.157593695 +21-03-2019 9:00,8482840.632,0.181922929,0.181922929 +21-03-2019 10:00,8484011.434,0.208488225,0.208488225 +21-03-2019 11:00,8485182.408,0.284776736,0.284776736 +21-03-2019 12:00,8486353.555,0.235951419,0.235951419 +21-03-2019 13:00,8487524.873,0.126879869,0.126879869 +21-03-2019 14:00,8488696.362,0.056970106,0.056970106 +21-03-2019 15:00,8489868.022,0.034565544,0.034565544 +21-03-2019 16:00,8491039.852,0.073211298,0.073211298 +21-03-2019 17:00,8492211.85,0.231966209,0.231966209 +21-03-2019 18:00,8493384.018,0.321026068,0.321026068 +21-03-2019 19:00,8494556.353,0.303860441,0.303860441 +21-03-2019 20:00,8495728.856,0.26312366,0.26312366 +21-03-2019 21:00,8496901.526,0.17745762,0.17745762 +21-03-2019 22:00,8498074.362,0.088522679,0.088522679 +21-03-2019 23:00,8499247.363,0.038598898,0.038598898 +22-03-2019 0:00,8500420.53,0.014974436,0.014974436 +22-03-2019 1:00,8501593.861,0.00478203,0.00478203 +22-03-2019 2:00,8502767.356,0.002704493,0.002704493 +22-03-2019 3:00,8503941.014,0.003557053,0.003557053 +22-03-2019 4:00,8505114.834,0.017650238,0.017650238 +22-03-2019 5:00,8506288.817,0.109071617,0.109071617 +22-03-2019 6:00,8507462.961,0.224776092,0.224776092 +22-03-2019 7:00,8508637.266,0.168332799,0.168332799 +22-03-2019 8:00,8509811.731,0.170869785,0.170869785 +22-03-2019 9:00,8510986.355,0.194875116,0.194875116 +22-03-2019 10:00,8512161.139,0.208628105,0.208628105 +22-03-2019 11:00,8513336.081,0.273365873,0.273365873 +22-03-2019 12:00,8514511.18,0.212945145,0.212945145 +22-03-2019 13:00,8515686.437,0.07710616,0.07710616 +22-03-2019 14:00,8516861.85,0.020107928,0.020107928 +22-03-2019 15:00,8518037.42,0.018783729,0.018783729 +22-03-2019 16:00,8519213.144,0.030731036,0.030731036 +22-03-2019 17:00,8520389.024,0.060215846,0.060215846 +22-03-2019 18:00,8521565.057,0.077664745,0.077664745 +22-03-2019 19:00,8522741.244,0.10772876,0.10772876 +22-03-2019 20:00,8523917.584,0.135783568,0.135783568 +22-03-2019 21:00,8525094.077,0.132462385,0.132462385 +22-03-2019 22:00,8526270.721,0.073909986,0.073909986 +22-03-2019 23:00,8527447.516,0.033348993,0.033348993 +23-03-2019 0:00,8528624.462,0.013110363,0.013110363 +23-03-2019 1:00,8529801.557,0.00357972,0.00357972 +23-03-2019 2:00,8530978.802,0.001852489,0.001852489 +23-03-2019 3:00,8532156.196,0.00295811,0.00295811 +23-03-2019 4:00,8533333.737,0.009714374,0.009714374 +23-03-2019 5:00,8534511.426,0.077360234,0.077360234 +23-03-2019 6:00,8535689.262,0.162338841,0.162338841 +23-03-2019 7:00,8536867.245,0.117227737,0.117227737 +23-03-2019 8:00,8538045.373,0.12679541,0.12679541 +23-03-2019 9:00,8539223.645,0.15141052,0.15141052 +23-03-2019 10:00,8540402.063,0.173271582,0.173271582 +23-03-2019 11:00,8541580.624,0.235950177,0.235950177 +23-03-2019 12:00,8542759.329,0.194427727,0.194427727 +23-03-2019 13:00,8543938.176,0.106804075,0.106804075 +23-03-2019 14:00,8545117.165,0.047254627,0.047254627 +23-03-2019 15:00,8546296.295,0.029996496,0.029996496 +23-03-2019 16:00,8547475.567,0.055809133,0.055809133 +23-03-2019 17:00,8548654.978,0.189111006,0.189111006 +23-03-2019 18:00,8549834.53,0.307711537,0.307711537 +23-03-2019 19:00,8551014.22,0.301558809,0.301558809 +23-03-2019 20:00,8552194.048,0.250517329,0.250517329 +23-03-2019 21:00,8553374.015,0.164698468,0.164698468 +23-03-2019 22:00,8554554.118,0.080271486,0.080271486 +23-03-2019 23:00,8555734.358,0.038676259,0.038676259 +24-03-2019 0:00,8556914.734,0.015519708,0.015519708 +24-03-2019 1:00,8558095.246,0.005302702,0.005302702 +24-03-2019 2:00,8559275.892,0.003041837,0.003041837 +24-03-2019 3:00,8560456.672,0.004381874,0.004381874 +24-03-2019 4:00,8561637.586,0.020952025,0.020952025 +24-03-2019 5:00,8562818.632,0.137165802,0.137165802 +24-03-2019 6:00,8563999.811,0.255278593,0.255278593 +24-03-2019 7:00,8565181.122,0.173315953,0.173315953 +24-03-2019 8:00,8566362.564,0.165349079,0.165349079 +24-03-2019 9:00,8567544.136,0.187889241,0.187889241 +24-03-2019 10:00,8568725.838,0.202766781,0.202766781 +24-03-2019 11:00,8569907.669,0.275395326,0.275395326 +24-03-2019 12:00,8571089.629,0.21505736,0.21505736 +24-03-2019 13:00,8572271.718,0.088216036,0.088216036 +24-03-2019 14:00,8573453.933,0.024562607,0.024562607 +24-03-2019 15:00,8574636.276,0.018783729,0.018783729 +24-03-2019 16:00,8575818.744,0.033298772,0.033298772 +24-03-2019 17:00,8577001.338,0.072339739,0.072339739 +24-03-2019 18:00,8578184.058,0.106624646,0.106624646 +24-03-2019 19:00,8579366.901,0.168298827,0.168298827 +24-03-2019 20:00,8580549.869,0.223258954,0.223258954 +24-03-2019 21:00,8581732.96,0.169191512,0.169191512 +24-03-2019 22:00,8582916.173,0.081129402,0.081129402 +24-03-2019 23:00,8584099.508,0.036448853,0.036448853 +25-03-2019 0:00,8585282.965,0.013909407,0.013909407 +25-03-2019 1:00,8586466.542,0.004455737,0.004455737 +25-03-2019 2:00,8587650.239,0.002301666,0.002301666 +25-03-2019 3:00,8588834.056,0.00341373,0.00341373 +25-03-2019 4:00,8590017.992,0.013488188,0.013488188 +25-03-2019 5:00,8591202.046,0.099365245,0.099365245 +25-03-2019 6:00,8592386.218,0.204621233,0.204621233 +25-03-2019 7:00,8593570.507,0.127076361,0.127076361 +25-03-2019 8:00,8594754.913,0.117682596,0.117682596 +25-03-2019 9:00,8595939.434,0.137116954,0.137116954 +25-03-2019 10:00,8597124.071,0.162281923,0.162281923 +25-03-2019 11:00,8598308.822,0.2377329,0.2377329 +25-03-2019 12:00,8599493.688,0.191229513,0.191229513 +25-03-2019 13:00,8600678.667,0.107873366,0.107873366 +25-03-2019 14:00,8601863.758,0.048729514,0.048729514 +25-03-2019 15:00,8603048.962,0.031591814,0.031591814 +25-03-2019 16:00,8604234.278,0.073486634,0.073486634 +25-03-2019 17:00,8605419.704,0.244867718,0.244867718 +25-03-2019 18:00,8606605.241,0.332601556,0.332601556 +25-03-2019 19:00,8607790.888,0.308483576,0.308483576 +25-03-2019 20:00,8608976.644,0.253043052,0.253043052 +25-03-2019 21:00,8610162.508,0.163954027,0.163954027 +25-03-2019 22:00,8611348.48,0.078552232,0.078552232 +25-03-2019 23:00,8612534.56,0.035793265,0.035793265 +26-03-2019 0:00,8613720.747,0.014125667,0.014125667 +26-03-2019 1:00,8614907.039,0.004338265,0.004338265 +26-03-2019 2:00,8616093.437,0.002601805,0.002601805 +26-03-2019 3:00,8617279.94,0.003592047,0.003592047 +26-03-2019 4:00,8618466.548,0.014783016,0.014783016 +26-03-2019 5:00,8619653.259,0.109520553,0.109520553 +26-03-2019 6:00,8620840.073,0.21942945,0.21942945 +26-03-2019 7:00,8622026.989,0.153463837,0.153463837 +26-03-2019 8:00,8623214.007,0.152125817,0.152125817 +26-03-2019 9:00,8624401.127,0.177070613,0.177070613 +26-03-2019 10:00,8625588.347,0.204187961,0.204187961 +26-03-2019 11:00,8626775.667,0.282705006,0.282705006 +26-03-2019 12:00,8627963.087,0.232960913,0.232960913 +26-03-2019 13:00,8629150.605,0.126870198,0.126870198 +26-03-2019 14:00,8630338.222,0.05699342,0.05699342 +26-03-2019 15:00,8631525.936,0.034377121,0.034377121 +26-03-2019 16:00,8632713.747,0.071241902,0.071241902 +26-03-2019 17:00,8633901.655,0.235811974,0.235811974 +26-03-2019 18:00,8635089.658,0.334634505,0.334634505 +26-03-2019 19:00,8636277.756,0.309584008,0.309584008 +26-03-2019 20:00,8637465.949,0.253882135,0.253882135 +26-03-2019 21:00,8638654.236,0.166147956,0.166147956 +26-03-2019 22:00,8639842.616,0.080223641,0.080223641 +26-03-2019 23:00,8641031.089,0.036022022,0.036022022 +27-03-2019 0:00,8642219.654,0.014380399,0.014380399 +27-03-2019 1:00,8643408.31,0.004719891,0.004719891 +27-03-2019 2:00,8644597.057,0.002575447,0.002575447 +27-03-2019 3:00,8645785.895,0.003364102,0.003364102 +27-03-2019 4:00,8646974.822,0.014908643,0.014908643 +27-03-2019 5:00,8648163.838,0.102423319,0.102423319 +27-03-2019 6:00,8649352.942,0.108815927,0.108815927 +27-03-2019 7:00,8650542.134,0.081678009,0.081678009 +27-03-2019 8:00,8651731.414,0.09806351,0.09806351 +27-03-2019 9:00,8652920.78,0.097694767,0.097694767 +27-03-2019 10:00,8654110.232,0.107054819,0.107054819 +27-03-2019 11:00,8655299.769,0.153490337,0.153490337 +27-03-2019 12:00,8656489.391,0.121808513,0.121808513 +27-03-2019 13:00,8657679.097,0.065822253,0.065822253 +27-03-2019 14:00,8658868.887,0.030515104,0.030515104 +27-03-2019 15:00,8660058.759,0.023538171,0.023538171 +27-03-2019 16:00,8661248.714,0.033022666,0.033022666 +27-03-2019 17:00,8662438.75,0.087323809,0.087323809 +27-03-2019 18:00,8663628.868,0.179858535,0.179858535 +27-03-2019 19:00,8664819.066,0.26270375,0.26270375 +27-03-2019 20:00,8666009.344,0.235582802,0.235582802 +27-03-2019 21:00,8667199.701,0.155059901,0.155059901 +27-03-2019 22:00,8668390.136,0.074476446,0.074476446 +27-03-2019 23:00,8669580.65,0.03355591,0.03355591 +28-03-2019 0:00,8670771.241,0.013192388,0.013192388 +28-03-2019 1:00,8671961.909,0.00360852,0.00360852 +28-03-2019 2:00,8673152.653,0.00182501,0.00182501 +28-03-2019 3:00,8674343.472,0.002874869,0.002874869 +28-03-2019 4:00,8675534.367,0.010443192,0.010443192 +28-03-2019 5:00,8676725.335,0.081839613,0.081839613 +28-03-2019 6:00,8677916.378,0.113019343,0.113019343 +28-03-2019 7:00,8679107.493,0.098477577,0.098477577 +28-03-2019 8:00,8680298.682,0.11221326,0.11221326 +28-03-2019 9:00,8681489.941,0.128287985,0.128287985 +28-03-2019 10:00,8682681.273,0.147754167,0.147754167 +28-03-2019 11:00,8683872.674,0.210562991,0.210562991 +28-03-2019 12:00,8685064.146,0.169334296,0.169334296 +28-03-2019 13:00,8686255.688,0.090664806,0.090664806 +28-03-2019 14:00,8687447.298,0.039578789,0.039578789 +28-03-2019 15:00,8688638.976,0.026135177,0.026135177 +28-03-2019 16:00,8689830.722,0.033395493,0.033395493 +28-03-2019 17:00,8691022.535,0.081298574,0.081298574 +28-03-2019 18:00,8692214.414,0.171976176,0.171976176 +28-03-2019 19:00,8693406.359,0.262477858,0.262477858 +28-03-2019 20:00,8694598.369,0.236840772,0.236840772 +28-03-2019 21:00,8695790.443,0.161980453,0.161980453 +28-03-2019 22:00,8696982.582,0.079860983,0.079860983 +28-03-2019 23:00,8698174.784,0.037200353,0.037200353 +29-03-2019 0:00,8699367.048,0.014735244,0.014735244 +29-03-2019 1:00,8700559.374,0.004604816,0.004604816 +29-03-2019 2:00,8701751.762,0.002499711,0.002499711 +29-03-2019 3:00,8702944.211,0.003860542,0.003860542 +29-03-2019 4:00,8704136.72,0.016846679,0.016846679 +29-03-2019 5:00,8705329.289,0.116966576,0.116966576 +29-03-2019 6:00,8706521.916,0.11513045,0.11513045 +29-03-2019 7:00,8707714.602,0.075541139,0.075541139 +29-03-2019 8:00,8708907.346,0.0722342,0.0722342 +29-03-2019 9:00,8710100.147,0.048459118,0.048459118 +29-03-2019 10:00,8711293.004,0.039606989,0.039606989 +29-03-2019 11:00,8712485.918,0.037537403,0.037537403 +29-03-2019 12:00,8713678.886,0.026565329,0.026565329 +29-03-2019 13:00,8714871.91,0.023193057,0.023193057 +29-03-2019 14:00,8716064.987,0.016696648,0.016696648 +29-03-2019 15:00,8717258.118,0.018783729,0.018783729 +29-03-2019 16:00,8718451.302,0.030610522,0.030610522 +29-03-2019 17:00,8719644.538,0.054397703,0.054397703 +29-03-2019 18:00,8720837.825,0.056615981,0.056615981 +29-03-2019 19:00,8722031.164,0.051798454,0.051798454 +29-03-2019 20:00,8723224.553,0.04271486,0.04271486 +29-03-2019 21:00,8724417.992,0.032410483,0.032410483 +29-03-2019 22:00,8725611.48,0.018822079,0.018822079 +29-03-2019 23:00,8726805.016,0.009766712,0.009766712 +30-03-2019 0:00,8727998.601,0.005231921,0.005231921 +30-03-2019 1:00,8729192.233,0.001918394,0.001918394 +30-03-2019 2:00,8730385.911,0.001883963,0.001883963 +30-03-2019 3:00,8731579.636,0.002253515,0.002253515 +30-03-2019 4:00,8732773.406,0.007581048,0.007581048 +30-03-2019 5:00,8733967.221,0.054335067,0.054335067 +30-03-2019 6:00,8735161.081,0.074436878,0.074436878 +30-03-2019 7:00,8736354.984,0.057819107,0.057819107 +30-03-2019 8:00,8737548.929,0.062404305,0.062404305 +30-03-2019 9:00,8738742.918,0.045198749,0.045198749 +30-03-2019 10:00,8739936.948,0.04081804,0.04081804 +30-03-2019 11:00,8741131.019,0.039821197,0.039821197 +30-03-2019 12:00,8742325.131,0.026927869,0.026927869 +30-03-2019 13:00,8743519.283,0.023954161,0.023954161 +30-03-2019 14:00,8744713.475,0.016731818,0.016731818 +30-03-2019 15:00,8745907.705,0.018793231,0.018793231 +30-03-2019 16:00,8747101.973,0.030610522,0.030610522 +30-03-2019 17:00,8748296.278,0.055801544,0.055801544 +30-03-2019 18:00,8749490.621,0.058201513,0.058201513 +30-03-2019 19:00,8750685,0.054175664,0.054175664 +30-03-2019 20:00,8751879.414,0.053907683,0.053907683 +30-03-2019 21:00,8753073.864,0.048169571,0.048169571 +30-03-2019 22:00,8754268.347,0.025518402,0.025518402 +30-03-2019 23:00,8755462.865,0.010980848,0.010980848 +31-03-2019 0:00,8756657.416,0.005389565,0.005389565 +31-03-2019 1:00,8757852,0.000926475,0.000926475 +31-03-2019 2:00,8759046.615,0.000987927,0.000987927 +31-03-2019 3:00,8760241.262,0.002331039,0.002331039 +31-03-2019 4:00,8761435.94,0.011714547,0.011714547 +31-03-2019 5:00,8762630.647,0.071853474,0.071853474 +31-03-2019 6:00,8763825.385,0.098316162,0.098316162 +31-03-2019 7:00,8765020.151,0.08469725,0.08469725 +31-03-2019 8:00,8766214.945,0.100146753,0.100146753 +31-03-2019 9:00,8767409.767,0.083917743,0.083917743 +31-03-2019 10:00,8768604.616,0.073958115,0.073958115 +31-03-2019 11:00,8769799.492,0.060979869,0.060979869 +31-03-2019 12:00,8770994.393,0.038879297,0.038879297 +31-03-2019 13:00,8772189.32,0.022413538,0.022413538 +31-03-2019 14:00,8773384.271,0.016696648,0.016696648 +31-03-2019 15:00,8774579.246,0.018783729,0.018783729 +31-03-2019 16:00,8775774.245,0.030610522,0.030610522 +31-03-2019 17:00,8776969.266,0.054336422,0.054336422 +31-03-2019 18:00,8778164.31,0.056696358,0.056696358 +31-03-2019 19:00,8779359.375,0.050313832,0.050313832 +31-03-2019 20:00,8780554.461,0.042290846,0.042290846 +31-03-2019 21:00,8781749.567,0.030785414,0.030785414 +31-03-2019 22:00,8782944.693,0.018062292,0.018062292 +31-03-2019 23:00,8784139.838,0.007115509,0.007115509 +01-04-2019 0:00,8785335.001,0.003861838,0.003861838 +01-04-2019 1:00,8786530.182,0.00181,0.00181 +01-04-2019 2:00,8787725.381,0.001563754,0.001563754 +01-04-2019 3:00,8788920.596,0.004119869,0.004119869 +01-04-2019 4:00,8790115.827,0.021171027,0.021171027 +01-04-2019 5:00,8791311.073,0.089946396,0.089946396 +01-04-2019 6:00,8792506.334,0.095254861,0.095254861 +01-04-2019 7:00,8793701.61,0.058983141,0.058983141 +01-04-2019 8:00,8794896.898,0.062889486,0.062889486 +01-04-2019 9:00,8796092.2,0.043976802,0.043976802 +01-04-2019 10:00,8797287.514,0.037627085,0.037627085 +01-04-2019 11:00,8798482.84,0.032347729,0.032347729 +01-04-2019 12:00,8799678.177,0.026875072,0.026875072 +01-04-2019 13:00,8800873.524,0.021566504,0.021566504 +01-04-2019 14:00,8802068.881,0.016696648,0.016696648 +01-04-2019 15:00,8803264.247,0.018783729,0.018783729 +01-04-2019 16:00,8804459.622,0.030610522,0.030610522 +01-04-2019 17:00,8805655.005,0.05429011,0.05429011 +01-04-2019 18:00,8806850.395,0.056512829,0.056512829 +01-04-2019 19:00,8808045.793,0.050210406,0.050210406 +01-04-2019 20:00,8809241.196,0.041741948,0.041741948 +01-04-2019 21:00,8810436.605,0.029012108,0.029012108 +01-04-2019 22:00,8811632.018,0.01401183,0.01401183 +01-04-2019 23:00,8812827.436,0.00549035,0.00549035 +02-04-2019 0:00,8814022.858,0.003970728,0.003970728 +02-04-2019 1:00,8815218.283,0.001711879,0.001711879 +02-04-2019 2:00,8816413.71,0.001464307,0.001464307 +02-04-2019 3:00,8817609.139,0.002070798,0.002070798 +02-04-2019 4:00,8818804.569,0.009832588,0.009832588 +02-04-2019 5:00,8820000,0.062920674,0.062920674 +02-04-2019 6:00,8821195.431,0.08082308,0.08082308 +02-04-2019 7:00,8822390.861,0.064409968,0.064409968 +02-04-2019 8:00,8823586.29,0.075740735,0.075740735 +02-04-2019 9:00,8824781.717,0.067541419,0.067541419 +02-04-2019 10:00,8825977.142,0.06010177,0.06010177 +02-04-2019 11:00,8827172.564,0.060254538,0.060254538 +02-04-2019 12:00,8828367.982,0.039711682,0.039711682 +02-04-2019 13:00,8829563.395,0.025865117,0.025865117 +02-04-2019 14:00,8830758.804,0.017136727,0.017136727 +02-04-2019 15:00,8831954.207,0.018836164,0.018836164 +02-04-2019 16:00,8833149.605,0.031537845,0.031537845 +02-04-2019 17:00,8834344.995,0.058118937,0.058118937 +02-04-2019 18:00,8835540.378,0.06481414,0.06481414 +02-04-2019 19:00,8836735.753,0.085268026,0.085268026 +02-04-2019 20:00,8837931.119,0.072063947,0.072063947 +02-04-2019 21:00,8839126.476,0.044540575,0.044540575 +02-04-2019 22:00,8840321.823,0.023411331,0.023411331 +02-04-2019 23:00,8841517.16,0.01213695,0.01213695 +03-04-2019 0:00,8842712.486,0.004935128,0.004935128 +03-04-2019 1:00,8843907.8,0.00154212,0.00154212 +03-04-2019 2:00,8845103.102,0.001827258,0.001827258 +03-04-2019 3:00,8846298.39,0.004360514,0.004360514 +03-04-2019 4:00,8847493.666,0.024605657,0.024605657 +03-04-2019 5:00,8848688.927,0.094119033,0.094119033 +03-04-2019 6:00,8849884.173,0.117274912,0.117274912 +03-04-2019 7:00,8851079.404,0.102862094,0.102862094 +03-04-2019 8:00,8852274.619,0.130191532,0.130191532 +03-04-2019 9:00,8853469.818,0.119309822,0.119309822 +03-04-2019 10:00,8854664.999,0.117480372,0.117480372 +03-04-2019 11:00,8855860.162,0.13902754,0.13902754 +03-04-2019 12:00,8857055.307,0.079229965,0.079229965 +03-04-2019 13:00,8858250.433,0.038959836,0.038959836 +03-04-2019 14:00,8859445.539,0.020941712,0.020941712 +03-04-2019 15:00,8860640.625,0.019594751,0.019594751 +03-04-2019 16:00,8861835.69,0.03227031,0.03227031 +03-04-2019 17:00,8863030.734,0.06619245,0.06619245 +03-04-2019 18:00,8864225.755,0.120947101,0.120947101 +03-04-2019 19:00,8865420.754,0.165305225,0.165305225 +03-04-2019 20:00,8866615.729,0.14842168,0.14842168 +03-04-2019 21:00,8867810.68,0.085450136,0.085450136 +03-04-2019 22:00,8869005.607,0.043574306,0.043574306 +03-04-2019 23:00,8870200.508,0.01599333,0.01599333 +04-04-2019 0:00,8871395.384,0.006497599,0.006497599 +04-04-2019 1:00,8872590.233,0.002447435,0.002447435 +04-04-2019 2:00,8873785.055,0.002742265,0.002742265 +04-04-2019 3:00,8874979.849,0.008058849,0.008058849 +04-04-2019 4:00,8876174.615,0.055769687,0.055769687 +04-04-2019 5:00,8877369.353,0.171297966,0.171297966 +04-04-2019 6:00,8878564.06,0.163006087,0.163006087 +04-04-2019 7:00,8879758.738,0.137690831,0.137690831 +04-04-2019 8:00,8880953.385,0.182030182,0.182030182 +04-04-2019 9:00,8882148,0.179091015,0.179091015 +04-04-2019 10:00,8883342.584,0.187824637,0.187824637 +04-04-2019 11:00,8884537.135,0.224450921,0.224450921 +04-04-2019 12:00,8885731.653,0.117896422,0.117896422 +04-04-2019 13:00,8886926.136,0.055690672,0.055690672 +04-04-2019 14:00,8888120.586,0.02730606,0.02730606 +04-04-2019 15:00,8889315,0.020930226,0.020930226 +04-04-2019 16:00,8890509.379,0.032724108,0.032724108 +04-04-2019 17:00,8891703.722,0.075916272,0.075916272 +04-04-2019 18:00,8892898.027,0.137700001,0.137700001 +04-04-2019 19:00,8894092.295,0.196974377,0.196974377 +04-04-2019 20:00,8895286.525,0.165879,0.165879 +04-04-2019 21:00,8896480.717,0.092461915,0.092461915 +04-04-2019 22:00,8897674.869,0.044713749,0.044713749 +04-04-2019 23:00,8898868.981,0.016510974,0.016510974 +05-04-2019 0:00,8900063.052,0.006722569,0.006722569 +05-04-2019 1:00,8901257.082,0.002628263,0.002628263 +05-04-2019 2:00,8902451.071,0.003066257,0.003066257 +05-04-2019 3:00,8903645.016,0.010535706,0.010535706 +05-04-2019 4:00,8904838.919,0.071974011,0.071974011 +05-04-2019 5:00,8906032.779,0.200472793,0.200472793 +05-04-2019 6:00,8907226.594,0.175537937,0.175537937 +05-04-2019 7:00,8908420.364,0.144081627,0.144081627 +05-04-2019 8:00,8909614.089,0.183555775,0.183555775 +05-04-2019 9:00,8910807.767,0.169999424,0.169999424 +05-04-2019 10:00,8912001.399,0.135061216,0.135061216 +05-04-2019 11:00,8913194.984,0.160611944,0.160611944 +05-04-2019 12:00,8914388.52,0.089420299,0.089420299 +05-04-2019 13:00,8915582.008,0.04079035,0.04079035 +05-04-2019 14:00,8916775.447,0.021669691,0.021669691 +05-04-2019 15:00,8917968.836,0.019363754,0.019363754 +05-04-2019 16:00,8919162.175,0.032124382,0.032124382 +05-04-2019 17:00,8920355.462,0.062672538,0.062672538 +05-04-2019 18:00,8921548.698,0.114691874,0.114691874 +05-04-2019 19:00,8922741.882,0.141922816,0.141922816 +05-04-2019 20:00,8923935.013,0.13929392,0.13929392 +05-04-2019 21:00,8925128.09,0.084036879,0.084036879 +05-04-2019 22:00,8926321.114,0.041769155,0.041769155 +05-04-2019 23:00,8927514.082,0.015085599,0.015085599 +06-04-2019 0:00,8928706.996,0.005918962,0.005918962 +06-04-2019 1:00,8929899.853,0.001977945,0.001977945 +06-04-2019 2:00,8931092.654,0.002282023,0.002282023 +06-04-2019 3:00,8932285.398,0.00578698,0.00578698 +06-04-2019 4:00,8933478.084,0.039100832,0.039100832 +06-04-2019 5:00,8934670.711,0.133931555,0.133931555 +06-04-2019 6:00,8935863.28,0.135577421,0.135577421 +06-04-2019 7:00,8937055.789,0.118966548,0.118966548 +06-04-2019 8:00,8938248.238,0.157055736,0.157055736 +06-04-2019 9:00,8939440.626,0.150758453,0.150758453 +06-04-2019 10:00,8940632.952,0.1554261,0.1554261 +06-04-2019 11:00,8941825.216,0.176083869,0.176083869 +06-04-2019 12:00,8943017.418,0.088313695,0.088313695 +06-04-2019 13:00,8944209.557,0.041886319,0.041886319 +06-04-2019 14:00,8945401.631,0.021922032,0.021922032 +06-04-2019 15:00,8946593.641,0.01900687,0.01900687 +06-04-2019 16:00,8947785.586,0.031530033,0.031530033 +06-04-2019 17:00,8948977.465,0.058327435,0.058327435 +06-04-2019 18:00,8950169.278,0.07661104,0.07661104 +06-04-2019 19:00,8951361.024,0.104726142,0.104726142 +06-04-2019 20:00,8952552.702,0.102530837,0.102530837 +06-04-2019 21:00,8953744.312,0.074213179,0.074213179 +06-04-2019 22:00,8954935.854,0.038189214,0.038189214 +06-04-2019 23:00,8956127.326,0.013783587,0.013783587 +07-04-2019 0:00,8957318.727,0.004888114,0.004888114 +07-04-2019 1:00,8958510.059,0.001365481,0.001365481 +07-04-2019 2:00,8959701.318,0.001636124,0.001636124 +07-04-2019 3:00,8960892.507,0.003893384,0.003893384 +07-04-2019 4:00,8962083.622,0.023079688,0.023079688 +07-04-2019 5:00,8963274.665,0.091063758,0.091063758 +07-04-2019 6:00,8964465.633,0.109643347,0.109643347 +07-04-2019 7:00,8965656.528,0.092552488,0.092552488 +07-04-2019 8:00,8966847.347,0.112482079,0.112482079 +07-04-2019 9:00,8968038.091,0.092211971,0.092211971 +07-04-2019 10:00,8969228.759,0.049549333,0.049549333 +07-04-2019 11:00,8970419.35,0.03911469,0.03911469 +07-04-2019 12:00,8971609.864,0.029437006,0.029437006 +07-04-2019 13:00,8972800.299,0.022248851,0.022248851 +07-04-2019 14:00,8973990.656,0.016696648,0.016696648 +07-04-2019 15:00,8975180.934,0.018783729,0.018783729 +07-04-2019 16:00,8976371.132,0.030610522,0.030610522 +07-04-2019 17:00,8977561.25,0.055138478,0.055138478 +07-04-2019 18:00,8978751.286,0.057266402,0.057266402 +07-04-2019 19:00,8979941.241,0.050780958,0.050780958 +07-04-2019 20:00,8981131.113,0.043590078,0.043590078 +07-04-2019 21:00,8982320.903,0.032073439,0.032073439 +07-04-2019 22:00,8983510.609,0.017100148,0.017100148 +07-04-2019 23:00,8984700.231,0.006662714,0.006662714 +08-04-2019 0:00,8985889.768,0.003381948,0.003381948 +08-04-2019 1:00,8987079.22,0.000894235,0.000894235 +08-04-2019 2:00,8988268.586,0.000695694,0.000695694 +08-04-2019 3:00,8989457.866,0.001588496,0.001588496 +08-04-2019 4:00,8990647.058,0.006679002,0.006679002 +08-04-2019 5:00,8991836.162,0.050485529,0.050485529 +08-04-2019 6:00,8993025.178,0.070497221,0.070497221 +08-04-2019 7:00,8994214.105,0.051395054,0.051395054 +08-04-2019 8:00,8995402.943,0.059592598,0.059592598 +08-04-2019 9:00,8996591.69,0.043295996,0.043295996 +08-04-2019 10:00,8997780.346,0.037356711,0.037356711 +08-04-2019 11:00,8998968.911,0.031308123,0.031308123 +08-04-2019 12:00,9000157.384,0.025044973,0.025044973 +08-04-2019 13:00,9001345.764,0.021566504,0.021566504 +08-04-2019 14:00,9002534.051,0.016696648,0.016696648 +08-04-2019 15:00,9003722.244,0.018783729,0.018783729 +08-04-2019 16:00,9004910.342,0.030610522,0.030610522 +08-04-2019 17:00,9006098.345,0.054264107,0.054264107 +08-04-2019 18:00,9007286.253,0.055170722,0.055170722 +08-04-2019 19:00,9008474.064,0.049398852,0.049398852 +08-04-2019 20:00,9009661.778,0.0412991,0.0412991 +08-04-2019 21:00,9010849.395,0.028806518,0.028806518 +08-04-2019 22:00,9012036.913,0.013913874,0.013913874 +08-04-2019 23:00,9013224.333,0.004869856,0.004869856 +09-04-2019 0:00,9014411.653,0.002782775,0.002782775 +09-04-2019 1:00,9015598.873,0.000695694,0.000695694 +09-04-2019 2:00,9016785.993,0.000695694,0.000695694 +09-04-2019 3:00,9017973.011,0.001391387,0.001391387 +09-04-2019 4:00,9019159.927,0.005146048,0.005146048 +09-04-2019 5:00,9020346.741,0.040829046,0.040829046 +09-04-2019 6:00,9021533.452,0.068734372,0.068734372 +09-04-2019 7:00,9022720.06,0.050754155,0.050754155 +09-04-2019 8:00,9023906.563,0.060830064,0.060830064 +09-04-2019 9:00,9025092.961,0.044186405,0.044186405 +09-04-2019 10:00,9026279.253,0.038406059,0.038406059 +09-04-2019 11:00,9027465.44,0.032688958,0.032688958 +09-04-2019 12:00,9028651.52,0.027930231,0.027930231 +09-04-2019 13:00,9029837.492,0.021572145,0.021572145 +09-04-2019 14:00,9031023.356,0.016696648,0.016696648 +09-04-2019 15:00,9032209.112,0.018783729,0.018783729 +09-04-2019 16:00,9033394.759,0.030610522,0.030610522 +09-04-2019 17:00,9034580.296,0.054964075,0.054964075 +09-04-2019 18:00,9035765.722,0.0571246,0.0571246 +09-04-2019 19:00,9036951.038,0.050485661,0.050485661 +09-04-2019 20:00,9038136.242,0.041643,0.041643 +09-04-2019 21:00,9039321.333,0.028947856,0.028947856 +09-04-2019 22:00,9040506.312,0.014904326,0.014904326 +09-04-2019 23:00,9041691.178,0.005902896,0.005902896 +10-04-2019 0:00,9042875.929,0.003216469,0.003216469 +10-04-2019 1:00,9044060.566,0.000695694,0.000695694 +10-04-2019 2:00,9045245.087,0.000886178,0.000886178 +10-04-2019 3:00,9046429.493,0.001703365,0.001703365 +10-04-2019 4:00,9047613.782,0.006034576,0.006034576 +10-04-2019 5:00,9048797.954,0.051093044,0.051093044 +10-04-2019 6:00,9049982.008,0.070586409,0.070586409 +10-04-2019 7:00,9051165.944,0.051880113,0.051880113 +10-04-2019 8:00,9052349.761,0.060212854,0.060212854 +10-04-2019 9:00,9053533.458,0.043384939,0.043384939 +10-04-2019 10:00,9054717.035,0.03748867,0.03748867 +10-04-2019 11:00,9055900.492,0.031663986,0.031663986 +10-04-2019 12:00,9057083.827,0.025535168,0.025535168 +10-04-2019 13:00,9058267.04,0.021566504,0.021566504 +10-04-2019 14:00,9059450.131,0.016696648,0.016696648 +10-04-2019 15:00,9060633.099,0.018783729,0.018783729 +10-04-2019 16:00,9061815.942,0.030610522,0.030610522 +10-04-2019 17:00,9062998.662,0.054264107,0.054264107 +10-04-2019 18:00,9064181.256,0.055252755,0.055252755 +10-04-2019 19:00,9065363.724,0.049922368,0.049922368 +10-04-2019 20:00,9066546.067,0.041459475,0.041459475 +10-04-2019 21:00,9067728.282,0.02896096,0.02896096 +10-04-2019 22:00,9068910.371,0.013913874,0.013913874 +10-04-2019 23:00,9070092.331,0.004869856,0.004869856 +11-04-2019 0:00,9071274.162,0.002821346,0.002821346 +11-04-2019 1:00,9072455.864,0.001039929,0.001039929 +11-04-2019 2:00,9073637.436,0.001392657,0.001392657 +11-04-2019 3:00,9074818.878,0.002097596,0.002097596 +11-04-2019 4:00,9076000.189,0.006492389,0.006492389 +11-04-2019 5:00,9077181.368,0.042607031,0.042607031 +11-04-2019 6:00,9078362.414,0.070739806,0.070739806 +11-04-2019 7:00,9079543.328,0.050680878,0.050680878 +11-04-2019 8:00,9080724.108,0.060666097,0.060666097 +11-04-2019 9:00,9081904.754,0.04358388,0.04358388 +11-04-2019 10:00,9083085.266,0.03763621,0.03763621 +11-04-2019 11:00,9084265.642,0.032290684,0.032290684 +11-04-2019 12:00,9085445.882,0.027202954,0.027202954 +11-04-2019 13:00,9086625.985,0.021566504,0.021566504 +11-04-2019 14:00,9087805.952,0.016696648,0.016696648 +11-04-2019 15:00,9088985.78,0.018805016,0.018805016 +11-04-2019 16:00,9090165.47,0.030622837,0.030622837 +11-04-2019 17:00,9091345.022,0.055810257,0.055810257 +11-04-2019 18:00,9092524.433,0.057854827,0.057854827 +11-04-2019 19:00,9093703.705,0.050782304,0.050782304 +11-04-2019 20:00,9094882.835,0.042005922,0.042005922 +11-04-2019 21:00,9096061.824,0.028986923,0.028986923 +11-04-2019 22:00,9097240.671,0.013974099,0.013974099 +11-04-2019 23:00,9098419.376,0.0056808,0.0056808 +12-04-2019 0:00,9099597.937,0.003595054,0.003595054 +12-04-2019 1:00,9100776.355,0.001439883,0.001439883 +12-04-2019 2:00,9101954.627,0.001446745,0.001446745 +12-04-2019 3:00,9103132.755,0.002089597,0.002089597 +12-04-2019 4:00,9104310.738,0.009541723,0.009541723 +12-04-2019 5:00,9105488.574,0.059982088,0.059982088 +12-04-2019 6:00,9106666.263,0.076374924,0.076374924 +12-04-2019 7:00,9107843.804,0.055977878,0.055977878 +12-04-2019 8:00,9109021.198,0.063349203,0.063349203 +12-04-2019 9:00,9110198.443,0.047123812,0.047123812 +12-04-2019 10:00,9111375.538,0.040049374,0.040049374 +12-04-2019 11:00,9112552.484,0.039292272,0.039292272 +12-04-2019 12:00,9113729.279,0.031098473,0.031098473 +12-04-2019 13:00,9114905.923,0.023057635,0.023057635 +12-04-2019 14:00,9116082.416,0.017370876,0.017370876 +12-04-2019 15:00,9117258.756,0.01881565,0.01881565 +12-04-2019 16:00,9118434.943,0.030677832,0.030677832 +12-04-2019 17:00,9119610.976,0.056913114,0.056913114 +12-04-2019 18:00,9120786.856,0.059448572,0.059448572 +12-04-2019 19:00,9121962.58,0.063688005,0.063688005 +12-04-2019 20:00,9123138.15,0.068755789,0.068755789 +12-04-2019 21:00,9124313.563,0.042407653,0.042407653 +12-04-2019 22:00,9125488.82,0.020344323,0.020344323 +12-04-2019 23:00,9126663.919,0.008270029,0.008270029 +13-04-2019 0:00,9127838.861,0.004917301,0.004917301 +13-04-2019 1:00,9129013.645,0.002589996,0.002589996 +13-04-2019 2:00,9130188.269,0.002821117,0.002821117 +13-04-2019 3:00,9131362.734,0.006867579,0.006867579 +13-04-2019 4:00,9132537.039,0.034623356,0.034623356 +13-04-2019 5:00,9133711.183,0.108239907,0.108239907 +13-04-2019 6:00,9134885.166,0.100881781,0.100881781 +13-04-2019 7:00,9136058.986,0.057542924,0.057542924 +13-04-2019 8:00,9137232.644,0.064879183,0.064879183 +13-04-2019 9:00,9138406.139,0.048234016,0.048234016 +13-04-2019 10:00,9139579.47,0.045095181,0.045095181 +13-04-2019 11:00,9140752.637,0.044288516,0.044288516 +13-04-2019 12:00,9141925.638,0.035877234,0.035877234 +13-04-2019 13:00,9143098.474,0.024702864,0.024702864 +13-04-2019 14:00,9144271.144,0.018330426,0.018330426 +13-04-2019 15:00,9145443.647,0.019886747,0.019886747 +13-04-2019 16:00,9146615.982,0.032103414,0.032103414 +13-04-2019 17:00,9147788.15,0.06343498,0.06343498 +13-04-2019 18:00,9148960.148,0.104012572,0.104012572 +13-04-2019 19:00,9150131.978,0.105873108,0.105873108 +13-04-2019 20:00,9151303.638,0.083303608,0.083303608 +13-04-2019 21:00,9152475.127,0.050381925,0.050381925 +13-04-2019 22:00,9153646.445,0.032704711,0.032704711 +13-04-2019 23:00,9154817.592,0.01674059,0.01674059 +14-04-2019 0:00,9155988.566,0.007466889,0.007466889 +14-04-2019 1:00,9157159.368,0.003255369,0.003255369 +14-04-2019 2:00,9158329.996,0.00358503,0.00358503 +14-04-2019 3:00,9159500.45,0.009416624,0.009416624 +14-04-2019 4:00,9160670.729,0.051757059,0.051757059 +14-04-2019 5:00,9161840.833,0.166447034,0.166447034 +14-04-2019 6:00,9163010.761,0.15703612,0.15703612 +14-04-2019 7:00,9164180.513,0.128210023,0.128210023 +14-04-2019 8:00,9165350.088,0.109571645,0.109571645 +14-04-2019 9:00,9166519.485,0.060004017,0.060004017 +14-04-2019 10:00,9167688.703,0.04837555,0.04837555 +14-04-2019 11:00,9168857.743,0.052827993,0.052827993 +14-04-2019 12:00,9170026.604,0.033855128,0.033855128 +14-04-2019 13:00,9171195.284,0.022973961,0.022973961 +14-04-2019 14:00,9172363.784,0.016794238,0.016794238 +14-04-2019 15:00,9173532.102,0.018783729,0.018783729 +14-04-2019 16:00,9174700.238,0.030749892,0.030749892 +14-04-2019 17:00,9175868.192,0.056968368,0.056968368 +14-04-2019 18:00,9177035.963,0.059107559,0.059107559 +14-04-2019 19:00,9178203.551,0.053095012,0.053095012 +14-04-2019 20:00,9179370.953,0.063422102,0.063422102 +14-04-2019 21:00,9180538.172,0.04395817,0.04395817 +14-04-2019 22:00,9181705.204,0.02182801,0.02182801 +14-04-2019 23:00,9182872.051,0.009106011,0.009106011 +15-04-2019 0:00,9184038.71,0.005496358,0.005496358 +15-04-2019 1:00,9185205.183,0.002860546,0.002860546 +15-04-2019 2:00,9186371.468,0.003048615,0.003048615 +15-04-2019 3:00,9187537.564,0.007460413,0.007460413 +15-04-2019 4:00,9188703.471,0.03925313,0.03925313 +15-04-2019 5:00,9189869.188,0.118613358,0.118613358 +15-04-2019 6:00,9191034.715,0.119271439,0.119271439 +15-04-2019 7:00,9192200.052,0.075238694,0.075238694 +15-04-2019 8:00,9193365.196,0.072660459,0.072660459 +15-04-2019 9:00,9194530.149,0.053249429,0.053249429 +15-04-2019 10:00,9195694.909,0.048311283,0.048311283 +15-04-2019 11:00,9196859.476,0.045100111,0.045100111 +15-04-2019 12:00,9198023.849,0.031805569,0.031805569 +15-04-2019 13:00,9199188.027,0.023414921,0.023414921 +15-04-2019 14:00,9200352.01,0.016696648,0.016696648 +15-04-2019 15:00,9201515.798,0.018783729,0.018783729 +15-04-2019 16:00,9202679.389,0.030610522,0.030610522 +15-04-2019 17:00,9203842.784,0.054367207,0.054367207 +15-04-2019 18:00,9205005.981,0.057257745,0.057257745 +15-04-2019 19:00,9206168.98,0.050575113,0.050575113 +15-04-2019 20:00,9207331.78,0.042155032,0.042155032 +15-04-2019 21:00,9208494.381,0.030580346,0.030580346 +15-04-2019 22:00,9209656.782,0.017791773,0.017791773 +15-04-2019 23:00,9210818.983,0.006622327,0.006622327 +16-04-2019 0:00,9211980.982,0.003845922,0.003845922 +16-04-2019 1:00,9213142.78,0.001886819,0.001886819 +16-04-2019 2:00,9214304.376,0.001541982,0.001541982 +16-04-2019 3:00,9215465.769,0.003671562,0.003671562 +16-04-2019 4:00,9216626.958,0.01766395,0.01766395 +16-04-2019 5:00,9217787.943,0.074282931,0.074282931 +16-04-2019 6:00,9218948.724,0.076403027,0.076403027 +16-04-2019 7:00,9220109.299,0.058652767,0.058652767 +16-04-2019 8:00,9221269.669,0.070316179,0.070316179 +16-04-2019 9:00,9222429.832,0.060854767,0.060854767 +16-04-2019 10:00,9223589.788,0.051807493,0.051807493 +16-04-2019 11:00,9224749.537,0.040447617,0.040447617 +16-04-2019 12:00,9225909.077,0.031929285,0.031929285 +16-04-2019 13:00,9227068.409,0.023005004,0.023005004 +16-04-2019 14:00,9228227.531,0.016911859,0.016911859 +16-04-2019 15:00,9229386.443,0.018808113,0.018808113 +16-04-2019 16:00,9230545.144,0.030884655,0.030884655 +16-04-2019 17:00,9231703.634,0.05652512,0.05652512 +16-04-2019 18:00,9232861.913,0.058568634,0.058568634 +16-04-2019 19:00,9234019.978,0.054077798,0.054077798 +16-04-2019 20:00,9235177.831,0.055125544,0.055125544 +16-04-2019 21:00,9236335.471,0.038397176,0.038397176 +16-04-2019 22:00,9237492.896,0.019329914,0.019329914 +16-04-2019 23:00,9238650.106,0.00740184,0.00740184 +17-04-2019 0:00,9239807.102,0.003507908,0.003507908 +17-04-2019 1:00,9240963.881,0.001155179,0.001155179 +17-04-2019 2:00,9242120.443,0.00139156,0.00139156 +17-04-2019 3:00,9243276.788,0.002969042,0.002969042 +17-04-2019 4:00,9244432.916,0.01429973,0.01429973 +17-04-2019 5:00,9245588.825,0.066588354,0.066588354 +17-04-2019 6:00,9246744.515,0.082480007,0.082480007 +17-04-2019 7:00,9247899.986,0.06250685,0.06250685 +17-04-2019 8:00,9249055.237,0.070773888,0.070773888 +17-04-2019 9:00,9250210.267,0.05672642,0.05672642 +17-04-2019 10:00,9251365.075,0.049748605,0.049748605 +17-04-2019 11:00,9252519.662,0.044152435,0.044152435 +17-04-2019 12:00,9253674.026,0.032042741,0.032042741 +17-04-2019 13:00,9254828.167,0.022735975,0.022735975 +17-04-2019 14:00,9255982.084,0.016839523,0.016839523 +17-04-2019 15:00,9257135.777,0.018783729,0.018783729 +17-04-2019 16:00,9258289.245,0.030721633,0.030721633 +17-04-2019 17:00,9259442.488,0.056061651,0.056061651 +17-04-2019 18:00,9260595.504,0.058007673,0.058007673 +17-04-2019 19:00,9261748.294,0.0518866,0.0518866 +17-04-2019 20:00,9262900.857,0.051070911,0.051070911 +17-04-2019 21:00,9264053.192,0.036572731,0.036572731 +17-04-2019 22:00,9265205.298,0.017952997,0.017952997 +17-04-2019 23:00,9266357.175,0.006747678,0.006747678 +18-04-2019 0:00,9267508.823,0.003286003,0.003286003 +18-04-2019 1:00,9268660.24,0.000872141,0.000872141 +18-04-2019 2:00,9269811.427,0.000695694,0.000695694 +18-04-2019 3:00,9270962.382,0.001628653,0.001628653 +18-04-2019 4:00,9272113.105,0.006497091,0.006497091 +18-04-2019 5:00,9273263.596,0.046245363,0.046245363 +18-04-2019 6:00,9274413.853,0.069009715,0.069009715 +18-04-2019 7:00,9275563.877,0.050313027,0.050313027 +18-04-2019 8:00,9276713.666,0.059149792,0.059149792 +18-04-2019 9:00,9277863.22,0.043146943,0.043146943 +18-04-2019 10:00,9279012.539,0.037178892,0.037178892 +18-04-2019 11:00,9280161.622,0.031306216,0.031306216 +18-04-2019 12:00,9281310.468,0.025044973,0.025044973 +18-04-2019 13:00,9282459.076,0.021566504,0.021566504 +18-04-2019 14:00,9283607.447,0.016696648,0.016696648 +18-04-2019 15:00,9284755.579,0.018783729,0.018783729 +18-04-2019 16:00,9285903.472,0.030610522,0.030610522 +18-04-2019 17:00,9287051.125,0.054264107,0.054264107 +18-04-2019 18:00,9288198.538,0.054959801,0.054959801 +18-04-2019 19:00,9289345.711,0.048698558,0.048698558 +18-04-2019 20:00,9290492.641,0.040350234,0.040350234 +18-04-2019 21:00,9291639.33,0.028523441,0.028523441 +18-04-2019 22:00,9292785.776,0.013913874,0.013913874 +18-04-2019 23:00,9293931.979,0.004869856,0.004869856 +19-04-2019 0:00,9295077.938,0.002782775,0.002782775 +19-04-2019 1:00,9296223.652,0.000695694,0.000695694 +19-04-2019 2:00,9297369.122,0.000695694,0.000695694 +19-04-2019 3:00,9298514.346,0.001391387,0.001391387 +19-04-2019 4:00,9299659.324,0.004869856,0.004869856 +19-04-2019 5:00,9300804.055,0.039916968,0.039916968 +19-04-2019 6:00,9301948.538,0.065434389,0.065434389 +19-04-2019 7:00,9303092.774,0.050374494,0.050374494 +19-04-2019 8:00,9304236.761,0.059133963,0.059133963 +19-04-2019 9:00,9305380.5,0.042841189,0.042841189 +19-04-2019 10:00,9306523.988,0.036871765,0.036871765 +19-04-2019 11:00,9307667.226,0.031306216,0.031306216 +19-04-2019 12:00,9308810.213,0.025044973,0.025044973 +19-04-2019 13:00,9309952.949,0.021566504,0.021566504 +19-04-2019 14:00,9311095.433,0.016696648,0.016696648 +19-04-2019 15:00,9312237.664,0.018783729,0.018783729 +19-04-2019 16:00,9313379.641,0.030610522,0.030610522 +19-04-2019 17:00,9314521.365,0.054264107,0.054264107 +19-04-2019 18:00,9315662.835,0.054959801,0.054959801 +19-04-2019 19:00,9316804.05,0.048698558,0.048698558 +19-04-2019 20:00,9317945.009,0.040350234,0.040350234 +19-04-2019 21:00,9319085.711,0.028523441,0.028523441 +19-04-2019 22:00,9320226.157,0.013913874,0.013913874 +19-04-2019 23:00,9321366.346,0.004869856,0.004869856 +20-04-2019 0:00,9322506.277,0.002782775,0.002782775 +20-04-2019 1:00,9323645.949,0.000695694,0.000695694 +20-04-2019 2:00,9324785.362,0.000695694,0.000695694 +20-04-2019 3:00,9325924.516,0.001391387,0.001391387 +20-04-2019 4:00,9327063.409,0.004869856,0.004869856 +20-04-2019 5:00,9328202.041,0.038958846,0.038958846 +20-04-2019 6:00,9329340.412,0.064699512,0.064699512 +20-04-2019 7:00,9330478.521,0.050089945,0.050089945 +20-04-2019 8:00,9331616.367,0.059133963,0.059133963 +20-04-2019 9:00,9332753.95,0.042437315,0.042437315 +20-04-2019 10:00,9333891.269,0.036871765,0.036871765 +20-04-2019 11:00,9335028.324,0.031306216,0.031306216 +20-04-2019 12:00,9336165.114,0.025044973,0.025044973 +20-04-2019 13:00,9337301.638,0.021566504,0.021566504 +20-04-2019 14:00,9338437.896,0.016696648,0.016696648 +20-04-2019 15:00,9339573.888,0.018783729,0.018783729 +20-04-2019 16:00,9340709.612,0.030610522,0.030610522 +20-04-2019 17:00,9341845.068,0.054264107,0.054264107 +20-04-2019 18:00,9342980.256,0.054959801,0.054959801 +20-04-2019 19:00,9344115.175,0.048698558,0.048698558 +20-04-2019 20:00,9345249.824,0.040350234,0.040350234 +20-04-2019 21:00,9346384.203,0.028523441,0.028523441 +20-04-2019 22:00,9347518.311,0.013913874,0.013913874 +20-04-2019 23:00,9348652.148,0.004869856,0.004869856 +21-04-2019 0:00,9349785.712,0.002782775,0.002782775 +21-04-2019 1:00,9350919.005,0.000695694,0.000695694 +21-04-2019 2:00,9352052.024,0.000695694,0.000695694 +21-04-2019 3:00,9353184.769,0.001391387,0.001391387 +21-04-2019 4:00,9354317.24,0.004869856,0.004869856 +21-04-2019 5:00,9355449.436,0.038958846,0.038958846 +21-04-2019 6:00,9356581.357,0.064699512,0.064699512 +21-04-2019 7:00,9357713.001,0.050089945,0.050089945 +21-04-2019 8:00,9358844.369,0.059133963,0.059133963 +21-04-2019 9:00,9359975.46,0.042437315,0.042437315 +21-04-2019 10:00,9361106.273,0.036871765,0.036871765 +21-04-2019 11:00,9362236.808,0.031306216,0.031306216 +21-04-2019 12:00,9363367.064,0.025044973,0.025044973 +21-04-2019 13:00,9364497.04,0.021566504,0.021566504 +21-04-2019 14:00,9365626.736,0.016696648,0.016696648 +21-04-2019 15:00,9366756.151,0.018783729,0.018783729 +21-04-2019 16:00,9367885.285,0.030610522,0.030610522 +21-04-2019 17:00,9369014.137,0.054264107,0.054264107 +21-04-2019 18:00,9370142.707,0.054959801,0.054959801 +21-04-2019 19:00,9371270.993,0.048698558,0.048698558 +21-04-2019 20:00,9372398.996,0.040350234,0.040350234 +21-04-2019 21:00,9373526.715,0.028523441,0.028523441 +21-04-2019 22:00,9374654.149,0.013913874,0.013913874 +21-04-2019 23:00,9375781.298,0.004869856,0.004869856 +22-04-2019 0:00,9376908.161,0.002782775,0.002782775 +22-04-2019 1:00,9378034.737,0.000695694,0.000695694 +22-04-2019 2:00,9379161.027,0.000695694,0.000695694 +22-04-2019 3:00,9380287.028,0.001391387,0.001391387 +22-04-2019 4:00,9381412.741,0.004869856,0.004869856 +22-04-2019 5:00,9382538.166,0.038958846,0.038958846 +22-04-2019 6:00,9383663.301,0.064699512,0.064699512 +22-04-2019 7:00,9384788.146,0.050089945,0.050089945 +22-04-2019 8:00,9385912.701,0.059133963,0.059133963 +22-04-2019 9:00,9387036.964,0.042437315,0.042437315 +22-04-2019 10:00,9388160.936,0.036871765,0.036871765 +22-04-2019 11:00,9389284.615,0.031306216,0.031306216 +22-04-2019 12:00,9390408.002,0.025044973,0.025044973 +22-04-2019 13:00,9391531.095,0.021566504,0.021566504 +22-04-2019 14:00,9392653.894,0.016696648,0.016696648 +22-04-2019 15:00,9393776.398,0.018783729,0.018783729 +22-04-2019 16:00,9394898.608,0.030610522,0.030610522 +22-04-2019 17:00,9396020.521,0.054264107,0.054264107 +22-04-2019 18:00,9397142.138,0.054959801,0.054959801 +22-04-2019 19:00,9398263.459,0.048698558,0.048698558 +22-04-2019 20:00,9399384.481,0.040350234,0.040350234 +22-04-2019 21:00,9400505.206,0.028523441,0.028523441 +22-04-2019 22:00,9401625.632,0.013913874,0.013913874 +22-04-2019 23:00,9402745.759,0.004869856,0.004869856 +23-04-2019 0:00,9403865.586,0.002782775,0.002782775 +23-04-2019 1:00,9404985.112,0.000695694,0.000695694 +23-04-2019 2:00,9406104.338,0.000695694,0.000695694 +23-04-2019 3:00,9407223.262,0.001391387,0.001391387 +23-04-2019 4:00,9408341.884,0.004869856,0.004869856 +23-04-2019 5:00,9409460.204,0.038958846,0.038958846 +23-04-2019 6:00,9410578.22,0.064699512,0.064699512 +23-04-2019 7:00,9411695.932,0.050089945,0.050089945 +23-04-2019 8:00,9412813.34,0.059133963,0.059133963 +23-04-2019 9:00,9413930.443,0.042437315,0.042437315 +23-04-2019 10:00,9415047.24,0.036871765,0.036871765 +23-04-2019 11:00,9416163.731,0.031306216,0.031306216 +23-04-2019 12:00,9417279.916,0.025044973,0.025044973 +23-04-2019 13:00,9418395.793,0.021566504,0.021566504 +23-04-2019 14:00,9419511.363,0.016696648,0.016696648 +23-04-2019 15:00,9420626.624,0.018783729,0.018783729 +23-04-2019 16:00,9421741.575,0.030610522,0.030610522 +23-04-2019 17:00,9422856.218,0.054264107,0.054264107 +23-04-2019 18:00,9423970.55,0.054959801,0.054959801 +23-04-2019 19:00,9425084.572,0.048698558,0.048698558 +23-04-2019 20:00,9426198.282,0.040350234,0.040350234 +23-04-2019 21:00,9427311.68,0.028523441,0.028523441 +23-04-2019 22:00,9428424.766,0.013913874,0.013913874 +23-04-2019 23:00,9429537.539,0.004869856,0.004869856 +24-04-2019 0:00,9430649.999,0.002782775,0.002782775 +24-04-2019 1:00,9431762.144,0.000695694,0.000695694 +24-04-2019 2:00,9432873.974,0.000695694,0.000695694 +24-04-2019 3:00,9433985.489,0.001391387,0.001391387 +24-04-2019 4:00,9435096.689,0.004869856,0.004869856 +24-04-2019 5:00,9436207.571,0.038958846,0.038958846 +24-04-2019 6:00,9437318.137,0.064699512,0.064699512 +24-04-2019 7:00,9438428.386,0.050089945,0.050089945 +24-04-2019 8:00,9439538.316,0.059133963,0.059133963 +24-04-2019 9:00,9440647.927,0.042437315,0.042437315 +24-04-2019 10:00,9441757.219,0.036871765,0.036871765 +24-04-2019 11:00,9442866.191,0.031306216,0.031306216 +24-04-2019 12:00,9443974.843,0.025044973,0.025044973 +24-04-2019 13:00,9445083.174,0.021566504,0.021566504 +24-04-2019 14:00,9446191.183,0.016696648,0.016696648 +24-04-2019 15:00,9447298.87,0.018783729,0.018783729 +24-04-2019 16:00,9448406.234,0.030610522,0.030610522 +24-04-2019 17:00,9449513.275,0.054264107,0.054264107 +24-04-2019 18:00,9450619.992,0.054959801,0.054959801 +24-04-2019 19:00,9451726.385,0.048698558,0.048698558 +24-04-2019 20:00,9452832.453,0.040350234,0.040350234 +24-04-2019 21:00,9453938.195,0.028523441,0.028523441 +24-04-2019 22:00,9455043.611,0.013913874,0.013913874 +24-04-2019 23:00,9456148.7,0.004869856,0.004869856 +25-04-2019 0:00,9457253.462,0.002782775,0.002782775 +25-04-2019 1:00,9458357.897,0.000695694,0.000695694 +25-04-2019 2:00,9459462.002,0.000695694,0.000695694 +25-04-2019 3:00,9460565.779,0.001391387,0.001391387 +25-04-2019 4:00,9461669.227,0.004869856,0.004869856 +25-04-2019 5:00,9462772.344,0.038958846,0.038958846 +25-04-2019 6:00,9463875.13,0.064699512,0.064699512 +25-04-2019 7:00,9464977.585,0.050089945,0.050089945 +25-04-2019 8:00,9466079.709,0.059133963,0.059133963 +25-04-2019 9:00,9467181.5,0.042437315,0.042437315 +25-04-2019 10:00,9468282.958,0.036871765,0.036871765 +25-04-2019 11:00,9469384.083,0.031306216,0.031306216 +25-04-2019 12:00,9470484.873,0.025044973,0.025044973 +25-04-2019 13:00,9471585.329,0.021566504,0.021566504 +25-04-2019 14:00,9472685.45,0.016696648,0.016696648 +25-04-2019 15:00,9473785.234,0.018783729,0.018783729 +25-04-2019 16:00,9474884.683,0.030610522,0.030610522 +25-04-2019 17:00,9475983.794,0.054264107,0.054264107 +25-04-2019 18:00,9477082.569,0.054959801,0.054959801 +25-04-2019 19:00,9478181.005,0.048698558,0.048698558 +25-04-2019 20:00,9479279.102,0.040350234,0.040350234 +25-04-2019 21:00,9480376.86,0.028523441,0.028523441 +25-04-2019 22:00,9481474.279,0.013913874,0.013913874 +25-04-2019 23:00,9482571.357,0.004869856,0.004869856 +26-04-2019 0:00,9483668.095,0.002782775,0.002782775 +26-04-2019 1:00,9484764.49,0.000695694,0.000695694 +26-04-2019 2:00,9485860.544,0.000695694,0.000695694 +26-04-2019 3:00,9486956.256,0.001391387,0.001391387 +26-04-2019 4:00,9488051.624,0.004869856,0.004869856 +26-04-2019 5:00,9489146.649,0.038958846,0.038958846 +26-04-2019 6:00,9490241.329,0.064699512,0.064699512 +26-04-2019 7:00,9491335.665,0.050089945,0.050089945 +26-04-2019 8:00,9492429.655,0.059133963,0.059133963 +26-04-2019 9:00,9493523.299,0.042437315,0.042437315 +26-04-2019 10:00,9494616.597,0.036871765,0.036871765 +26-04-2019 11:00,9495709.547,0.031306216,0.031306216 +26-04-2019 12:00,9496802.15,0.025044973,0.025044973 +26-04-2019 13:00,9497894.405,0.021566504,0.021566504 +26-04-2019 14:00,9498986.311,0.016696648,0.016696648 +26-04-2019 15:00,9500077.868,0.018783729,0.018783729 +26-04-2019 16:00,9501169.075,0.030610522,0.030610522 +26-04-2019 17:00,9502259.931,0.054264107,0.054264107 +26-04-2019 18:00,9503350.437,0.054959801,0.054959801 +26-04-2019 19:00,9504440.591,0.048698558,0.048698558 +26-04-2019 20:00,9505530.393,0.040350234,0.040350234 +26-04-2019 21:00,9506619.842,0.028523441,0.028523441 +26-04-2019 22:00,9507708.938,0.013913874,0.013913874 +26-04-2019 23:00,9508797.68,0.004869856,0.004869856 +27-04-2019 0:00,9509886.067,0.002782775,0.002782775 +27-04-2019 1:00,9510974.1,0.000695694,0.000695694 +27-04-2019 2:00,9512061.777,0.000695694,0.000695694 +27-04-2019 3:00,9513149.099,0.001391387,0.001391387 +27-04-2019 4:00,9514236.063,0.004869856,0.004869856 +27-04-2019 5:00,9515322.671,0.038958846,0.038958846 +27-04-2019 6:00,9516408.921,0.064699512,0.064699512 +27-04-2019 7:00,9517494.812,0.050089945,0.050089945 +27-04-2019 8:00,9518580.345,0.059133963,0.059133963 +27-04-2019 9:00,9519665.518,0.042437315,0.042437315 +27-04-2019 10:00,9520750.332,0.036871765,0.036871765 +27-04-2019 11:00,9521834.785,0.031306216,0.031306216 +27-04-2019 12:00,9522918.876,0.025044973,0.025044973 +27-04-2019 13:00,9524002.607,0.021566504,0.021566504 +27-04-2019 14:00,9525085.975,0.016696648,0.016696648 +27-04-2019 15:00,9526168.98,0.018783729,0.018783729 +27-04-2019 16:00,9527251.622,0.030610522,0.030610522 +27-04-2019 17:00,9528333.9,0.054264107,0.054264107 +27-04-2019 18:00,9529415.814,0.054959801,0.054959801 +27-04-2019 19:00,9530497.362,0.048698558,0.048698558 +27-04-2019 20:00,9531578.546,0.040350234,0.040350234 +27-04-2019 21:00,9532659.363,0.028523441,0.028523441 +27-04-2019 22:00,9533739.813,0.013913874,0.013913874 +27-04-2019 23:00,9534819.897,0.004869856,0.004869856 +28-04-2019 0:00,9535899.612,0.002782775,0.002782775 +28-04-2019 1:00,9536978.959,0.000695694,0.000695694 +28-04-2019 2:00,9538057.938,0.000695694,0.000695694 +28-04-2019 3:00,9539136.547,0.001391387,0.001391387 +28-04-2019 4:00,9540214.786,0.004869856,0.004869856 +28-04-2019 5:00,9541292.654,0.039617081,0.039617081 +28-04-2019 6:00,9542370.152,0.064699512,0.064699512 +28-04-2019 7:00,9543447.277,0.050089945,0.050089945 +28-04-2019 8:00,9544524.031,0.059133963,0.059133963 +28-04-2019 9:00,9545600.412,0.043038662,0.043038662 +28-04-2019 10:00,9546676.42,0.036871765,0.036871765 +28-04-2019 11:00,9547752.053,0.031440703,0.031440703 +28-04-2019 12:00,9548827.313,0.025533836,0.025533836 +28-04-2019 13:00,9549902.197,0.021566504,0.021566504 +28-04-2019 14:00,9550976.706,0.016696648,0.016696648 +28-04-2019 15:00,9552050.839,0.018783729,0.018783729 +28-04-2019 16:00,9553124.595,0.030610522,0.030610522 +28-04-2019 17:00,9554197.974,0.054264107,0.054264107 +28-04-2019 18:00,9555270.975,0.054959801,0.054959801 +28-04-2019 19:00,9556343.598,0.048999878,0.048999878 +28-04-2019 20:00,9557415.843,0.04067475,0.04067475 +28-04-2019 21:00,9558487.707,0.028796541,0.028796541 +28-04-2019 22:00,9559559.192,0.013913874,0.013913874 +28-04-2019 23:00,9560630.297,0.004869856,0.004869856 +29-04-2019 0:00,9561701.02,0.002782775,0.002782775 +29-04-2019 1:00,9562771.362,0.000695694,0.000695694 +29-04-2019 2:00,9563841.322,0.000695694,0.000695694 +29-04-2019 3:00,9564910.899,0.001391387,0.001391387 +29-04-2019 4:00,9565980.093,0.004869856,0.004869856 +29-04-2019 5:00,9567048.903,0.040301437,0.040301437 +29-04-2019 6:00,9568117.329,0.066668795,0.066668795 +29-04-2019 7:00,9569185.37,0.050089945,0.050089945 +29-04-2019 8:00,9570253.025,0.059274291,0.059274291 +29-04-2019 9:00,9571320.294,0.043727558,0.043727558 +29-04-2019 10:00,9572387.177,0.037509783,0.037509783 +29-04-2019 11:00,9573453.673,0.031555738,0.031555738 +29-04-2019 12:00,9574519.781,0.025611963,0.025611963 +29-04-2019 13:00,9575585.502,0.021566504,0.021566504 +29-04-2019 14:00,9576650.833,0.016696648,0.016696648 +29-04-2019 15:00,9577715.775,0.018783729,0.018783729 +29-04-2019 16:00,9578780.327,0.030610522,0.030610522 +29-04-2019 17:00,9579844.489,0.054264107,0.054264107 +29-04-2019 18:00,9580908.26,0.055009093,0.055009093 +29-04-2019 19:00,9581971.64,0.049010928,0.049010928 +29-04-2019 20:00,9583034.627,0.040806038,0.040806038 +29-04-2019 21:00,9584097.222,0.02878226,0.02878226 +29-04-2019 22:00,9585159.424,0.013913874,0.013913874 +29-04-2019 23:00,9586221.232,0.004869856,0.004869856 +30-04-2019 0:00,9587282.646,0.002782775,0.002782775 +30-04-2019 1:00,9588343.666,0.000695694,0.000695694 +30-04-2019 2:00,9589404.29,0.000695694,0.000695694 +30-04-2019 3:00,9590464.518,0.001391387,0.001391387 +30-04-2019 4:00,9591524.35,0.004869856,0.004869856 +30-04-2019 5:00,9592583.785,0.039977566,0.039977566 +30-04-2019 6:00,9593642.822,0.065963506,0.065963506 +30-04-2019 7:00,9594701.462,0.050117612,0.050117612 +30-04-2019 8:00,9595759.703,0.059327613,0.059327613 +30-04-2019 9:00,9596817.544,0.043947634,0.043947634 +30-04-2019 10:00,9597874.987,0.037612081,0.037612081 +30-04-2019 11:00,9598932.029,0.032194399,0.032194399 +30-04-2019 12:00,9599988.67,0.026320107,0.026320107 +30-04-2019 13:00,9601044.91,0.021566504,0.021566504 +30-04-2019 14:00,9602100.748,0.016696648,0.016696648 +30-04-2019 15:00,9603156.184,0.018783729,0.018783729 +30-04-2019 16:00,9604211.217,0.030610522,0.030610522 +30-04-2019 17:00,9605265.846,0.054264107,0.054264107 +30-04-2019 18:00,9606320.072,0.055212252,0.055212252 +30-04-2019 19:00,9607373.893,0.04950075,0.04950075 +30-04-2019 20:00,9608427.308,0.040908785,0.040908785 +30-04-2019 21:00,9609480.319,0.028804541,0.028804541 +30-04-2019 22:00,9610532.923,0.013913874,0.013913874 +30-04-2019 23:00,9611585.12,0.004869856,0.004869856 +01-05-2019 0:00,9612636.91,0.002782775,0.002782775 +01-05-2019 1:00,9613688.293,0.000695694,0.000695694 +01-05-2019 2:00,9614739.267,0.000695694,0.000695694 +01-05-2019 3:00,9615789.832,0.001391387,0.001391387 +01-05-2019 4:00,9616839.988,0.004869856,0.004869856 +01-05-2019 5:00,9617889.734,0.040391283,0.040391283 +01-05-2019 6:00,9618939.069,0.067476087,0.067476087 +01-05-2019 7:00,9619987.993,0.050635831,0.050635831 +01-05-2019 8:00,9621036.506,0.060198985,0.060198985 +01-05-2019 9:00,9622084.607,0.044063351,0.044063351 +01-05-2019 10:00,9623132.295,0.037771574,0.037771574 +01-05-2019 11:00,9624179.57,0.031949929,0.031949929 +01-05-2019 12:00,9625226.431,0.026103618,0.026103618 +01-05-2019 13:00,9626272.878,0.021566504,0.021566504 +01-05-2019 14:00,9627318.91,0.016696648,0.016696648 +01-05-2019 15:00,9628364.526,0.018783729,0.018783729 +01-05-2019 16:00,9629409.727,0.030610522,0.030610522 +01-05-2019 17:00,9630454.512,0.054264107,0.054264107 +01-05-2019 18:00,9631498.879,0.055312707,0.055312707 +01-05-2019 19:00,9632542.829,0.049592628,0.049592628 +01-05-2019 20:00,9633586.361,0.041019852,0.041019852 +01-05-2019 21:00,9634629.475,0.028869787,0.028869787 +01-05-2019 22:00,9635672.169,0.013913874,0.013913874 +01-05-2019 23:00,9636714.444,0.004869856,0.004869856 +02-05-2019 0:00,9637756.299,0.002782775,0.002782775 +02-05-2019 1:00,9638797.733,0.000695694,0.000695694 +02-05-2019 2:00,9639838.745,0.000824158,0.000824158 +02-05-2019 3:00,9640879.336,0.001657642,0.001657642 +02-05-2019 4:00,9641919.505,0.005142284,0.005142284 +02-05-2019 5:00,9642959.25,0.040824184,0.040824184 +02-05-2019 6:00,9643998.573,0.068613272,0.068613272 +02-05-2019 7:00,9645037.471,0.050659578,0.050659578 +02-05-2019 8:00,9646075.945,0.060629258,0.060629258 +02-05-2019 9:00,9647113.994,0.044123592,0.044123592 +02-05-2019 10:00,9648151.617,0.038039552,0.038039552 +02-05-2019 11:00,9649188.815,0.032661901,0.032661901 +02-05-2019 12:00,9650225.586,0.02765742,0.02765742 +02-05-2019 13:00,9651261.929,0.021608945,0.021608945 +02-05-2019 14:00,9652297.845,0.016696648,0.016696648 +02-05-2019 15:00,9653333.333,0.018783729,0.018783729 +02-05-2019 16:00,9654368.392,0.030610522,0.030610522 +02-05-2019 17:00,9655403.022,0.054373946,0.054373946 +02-05-2019 18:00,9656437.223,0.056480053,0.056480053 +02-05-2019 19:00,9657470.992,0.049785124,0.049785124 +02-05-2019 20:00,9658504.331,0.041417806,0.041417806 +02-05-2019 21:00,9659537.239,0.028870423,0.028870423 +02-05-2019 22:00,9660569.715,0.013913874,0.013913874 +02-05-2019 23:00,9661601.758,0.004869856,0.004869856 +03-05-2019 0:00,9662633.368,0.002782775,0.002782775 +03-05-2019 1:00,9663664.545,0.000695694,0.000695694 +03-05-2019 2:00,9664695.288,0.000732333,0.000732333 +03-05-2019 3:00,9665725.596,0.001655144,0.001655144 +03-05-2019 4:00,9666755.469,0.005319417,0.005319417 +03-05-2019 5:00,9667784.906,0.040695073,0.040695073 +03-05-2019 6:00,9668813.908,0.068716111,0.068716111 +03-05-2019 7:00,9669842.472,0.050804945,0.050804945 +03-05-2019 8:00,9670870.6,0.060820972,0.060820972 +03-05-2019 9:00,9671898.289,0.04426619,0.04426619 +03-05-2019 10:00,9672925.541,0.03842846,0.03842846 +03-05-2019 11:00,9673952.354,0.033021042,0.033021042 +03-05-2019 12:00,9674978.727,0.028248689,0.028248689 +03-05-2019 13:00,9676004.66,0.021753137,0.021753137 +03-05-2019 14:00,9677030.153,0.016727281,0.016727281 +03-05-2019 15:00,9678055.206,0.018797666,0.018797666 +03-05-2019 16:00,9679079.816,0.030742752,0.030742752 +03-05-2019 17:00,9680103.985,0.055021075,0.055021075 +03-05-2019 18:00,9681127.711,0.057360978,0.057360978 +03-05-2019 19:00,9682150.995,0.050427015,0.050427015 +03-05-2019 20:00,9683173.834,0.041837983,0.041837983 +03-05-2019 21:00,9684196.23,0.028935756,0.028935756 +03-05-2019 22:00,9685218.181,0.013913874,0.013913874 +03-05-2019 23:00,9686239.687,0.004869856,0.004869856 +04-05-2019 0:00,9687260.747,0.002782775,0.002782775 +04-05-2019 1:00,9688281.361,0.000888411,0.000888411 +04-05-2019 2:00,9689301.529,0.001331778,0.001331778 +04-05-2019 3:00,9690321.249,0.001843955,0.001843955 +04-05-2019 4:00,9691340.521,0.005985248,0.005985248 +04-05-2019 5:00,9692359.346,0.040874172,0.040874172 +04-05-2019 6:00,9693377.721,0.068121673,0.068121673 +04-05-2019 7:00,9694395.647,0.050148697,0.050148697 +04-05-2019 8:00,9695413.123,0.060197052,0.060197052 +04-05-2019 9:00,9696430.149,0.044096509,0.044096509 +04-05-2019 10:00,9697446.724,0.038000397,0.038000397 +04-05-2019 11:00,9698462.848,0.032686103,0.032686103 +04-05-2019 12:00,9699478.519,0.027926164,0.027926164 +04-05-2019 13:00,9700493.739,0.021933122,0.021933122 +04-05-2019 14:00,9701508.505,0.016696648,0.016696648 +04-05-2019 15:00,9702522.817,0.018783729,0.018783729 +04-05-2019 16:00,9703536.676,0.030610522,0.030610522 +04-05-2019 17:00,9704550.08,0.054386089,0.054386089 +04-05-2019 18:00,9705563.029,0.057029227,0.057029227 +04-05-2019 19:00,9706575.523,0.050123224,0.050123224 +04-05-2019 20:00,9707587.56,0.04186999,0.04186999 +04-05-2019 21:00,9708599.141,0.028983424,0.028983424 +04-05-2019 22:00,9709610.265,0.013913874,0.013913874 +04-05-2019 23:00,9710620.93,0.004869856,0.004869856 +05-05-2019 0:00,9711631.138,0.002967993,0.002967993 +05-05-2019 1:00,9712640.887,0.001382966,0.001382966 +05-05-2019 2:00,9713650.177,0.001412763,0.001412763 +05-05-2019 3:00,9714659.007,0.002044511,0.002044511 +05-05-2019 4:00,9715667.377,0.006465375,0.006465375 +05-05-2019 5:00,9716675.286,0.041185544,0.041185544 +05-05-2019 6:00,9717682.734,0.069572965,0.069572965 +05-05-2019 7:00,9718689.719,0.050660554,0.050660554 +05-05-2019 8:00,9719696.243,0.061102655,0.061102655 +05-05-2019 9:00,9720702.304,0.044548801,0.044548801 +05-05-2019 10:00,9721707.901,0.039027644,0.039027644 +05-05-2019 11:00,9722713.034,0.034018329,0.034018329 +05-05-2019 12:00,9723717.703,0.028307011,0.028307011 +05-05-2019 13:00,9724721.908,0.022148493,0.022148493 +05-05-2019 14:00,9725725.646,0.017061384,0.017061384 +05-05-2019 15:00,9726728.919,0.019064038,0.019064038 +05-05-2019 16:00,9727731.725,0.031261377,0.031261377 +05-05-2019 17:00,9728734.064,0.054966811,0.054966811 +05-05-2019 18:00,9729735.936,0.057951716,0.057951716 +05-05-2019 19:00,9730737.34,0.051268838,0.051268838 +05-05-2019 20:00,9731738.275,0.042121533,0.042121533 +05-05-2019 21:00,9732738.741,0.029019368,0.029019368 +05-05-2019 22:00,9733738.737,0.013913874,0.013913874 +05-05-2019 23:00,9734738.264,0.004869856,0.004869856 +06-05-2019 0:00,9735737.32,0.003512888,0.003512888 +06-05-2019 1:00,9736735.904,0.00183726,0.00183726 +06-05-2019 2:00,9737734.017,0.001643567,0.001643567 +06-05-2019 3:00,9738731.658,0.002425895,0.002425895 +06-05-2019 4:00,9739728.827,0.00736554,0.00736554 +06-05-2019 5:00,9740725.522,0.041145503,0.041145503 +06-05-2019 6:00,9741721.743,0.07124371,0.07124371 +06-05-2019 7:00,9742717.491,0.05108084,0.05108084 +06-05-2019 8:00,9743712.763,0.062854872,0.062854872 +06-05-2019 9:00,9744707.561,0.04504404,0.04504404 +06-05-2019 10:00,9745701.882,0.039649465,0.039649465 +06-05-2019 11:00,9746695.728,0.034334909,0.034334909 +06-05-2019 12:00,9747689.096,0.029621251,0.029621251 +06-05-2019 13:00,9748681.988,0.022095219,0.022095219 +06-05-2019 14:00,9749674.401,0.017132615,0.017132615 +06-05-2019 15:00,9750666.337,0.019096575,0.019096575 +06-05-2019 16:00,9751657.793,0.031385355,0.031385355 +06-05-2019 17:00,9752648.771,0.055703066,0.055703066 +06-05-2019 18:00,9753639.268,0.058644324,0.058644324 +06-05-2019 19:00,9754629.285,0.051330311,0.051330311 +06-05-2019 20:00,9755618.822,0.042213783,0.042213783 +06-05-2019 21:00,9756607.877,0.029047753,0.029047753 +06-05-2019 22:00,9757596.45,0.013913874,0.013913874 +06-05-2019 23:00,9758584.54,0.005868998,0.005868998 +07-05-2019 0:00,9759572.148,0.004250508,0.004250508 +07-05-2019 1:00,9760559.273,0.001999699,0.001999699 +07-05-2019 2:00,9761545.914,0.001685957,0.001685957 +07-05-2019 3:00,9762532.07,0.002503254,0.002503254 +07-05-2019 4:00,9763517.741,0.00751132,0.00751132 +07-05-2019 5:00,9764502.927,0.041471347,0.041471347 +07-05-2019 6:00,9765487.627,0.072325914,0.072325914 +07-05-2019 7:00,9766471.841,0.055087667,0.055087667 +07-05-2019 8:00,9767455.568,0.064043664,0.064043664 +07-05-2019 9:00,9768438.807,0.045093063,0.045093063 +07-05-2019 10:00,9769421.558,0.039677561,0.039677561 +07-05-2019 11:00,9770403.821,0.034424434,0.034424434 +07-05-2019 12:00,9771385.595,0.029598361,0.029598361 +07-05-2019 13:00,9772366.88,0.022326501,0.022326501 +07-05-2019 14:00,9773347.674,0.017058454,0.017058454 +07-05-2019 15:00,9774327.978,0.019021157,0.019021157 +07-05-2019 16:00,9775307.791,0.031005483,0.031005483 +07-05-2019 17:00,9776287.113,0.055316175,0.055316175 +07-05-2019 18:00,9777265.943,0.058308512,0.058308512 +07-05-2019 19:00,9778244.28,0.05128778,0.05128778 +07-05-2019 20:00,9779222.124,0.042189842,0.042189842 +07-05-2019 21:00,9780199.475,0.029107633,0.029107633 +07-05-2019 22:00,9781176.332,0.017115222,0.017115222 +07-05-2019 23:00,9782152.694,0.006283112,0.006283112 +08-05-2019 0:00,9783128.562,0.003822585,0.003822585 +08-05-2019 1:00,9784103.933,0.001610726,0.001610726 +08-05-2019 2:00,9785078.809,0.001434794,0.001434794 +08-05-2019 3:00,9786053.189,0.002057817,0.002057817 +08-05-2019 4:00,9787027.071,0.006951201,0.006951201 +08-05-2019 5:00,9788000.456,0.041166867,0.041166867 +08-05-2019 6:00,9788973.343,0.071703742,0.071703742 +08-05-2019 7:00,9789945.731,0.054584118,0.054584118 +08-05-2019 8:00,9790917.62,0.063709755,0.063709755 +08-05-2019 9:00,9791889.01,0.044821259,0.044821259 +08-05-2019 10:00,9792859.9,0.039491227,0.039491227 +08-05-2019 11:00,9793830.289,0.034218175,0.034218175 +08-05-2019 12:00,9794800.178,0.02952057,0.02952057 +08-05-2019 13:00,9795769.565,0.022287499,0.022287499 +08-05-2019 14:00,9796738.449,0.016948481,0.016948481 +08-05-2019 15:00,9797706.832,0.018958831,0.018958831 +08-05-2019 16:00,9798674.711,0.031017196,0.031017196 +08-05-2019 17:00,9799642.087,0.055187384,0.055187384 +08-05-2019 18:00,9800608.959,0.058039925,0.058039925 +08-05-2019 19:00,9801575.326,0.051192402,0.051192402 +08-05-2019 20:00,9802541.189,0.04195267,0.04195267 +08-05-2019 21:00,9803506.546,0.029331945,0.029331945 +08-05-2019 22:00,9804471.397,0.016218916,0.016218916 +08-05-2019 23:00,9805435.741,0.006174795,0.006174795 +09-05-2019 0:00,9806399.579,0.003225818,0.003225818 +09-05-2019 1:00,9807362.909,0.001129393,0.001129393 +09-05-2019 2:00,9808325.731,0.001368001,0.001368001 +09-05-2019 3:00,9809288.045,0.00198336,0.00198336 +09-05-2019 4:00,9810249.85,0.006203385,0.006203385 +09-05-2019 5:00,9811211.145,0.040926715,0.040926715 +09-05-2019 6:00,9812171.93,0.068724833,0.068724833 +09-05-2019 7:00,9813132.205,0.050439787,0.050439787 +09-05-2019 8:00,9814091.969,0.060557638,0.060557638 +09-05-2019 9:00,9815051.222,0.044083354,0.044083354 +09-05-2019 10:00,9816009.962,0.038309302,0.038309302 +09-05-2019 11:00,9816968.191,0.032660384,0.032660384 +09-05-2019 12:00,9817925.906,0.027967418,0.027967418 +09-05-2019 13:00,9818883.108,0.02156653,0.02156653 +09-05-2019 14:00,9819839.796,0.016696648,0.016696648 +09-05-2019 15:00,9820795.97,0.018783729,0.018783729 +09-05-2019 16:00,9821751.629,0.030610522,0.030610522 +09-05-2019 17:00,9822706.772,0.054302671,0.054302671 +09-05-2019 18:00,9823661.4,0.056106696,0.056106696 +09-05-2019 19:00,9824615.511,0.049855996,0.049855996 +09-05-2019 20:00,9825569.105,0.041696399,0.041696399 +09-05-2019 21:00,9826522.182,0.028901899,0.028901899 +09-05-2019 22:00,9827474.742,0.013913874,0.013913874 +09-05-2019 23:00,9828426.783,0.004869856,0.004869856 +10-05-2019 0:00,9829378.305,0.002782775,0.002782775 +10-05-2019 1:00,9830329.308,0.000695694,0.000695694 +10-05-2019 2:00,9831279.791,0.001045348,0.001045348 +10-05-2019 3:00,9832229.754,0.001681778,0.001681778 +10-05-2019 4:00,9833179.196,0.005558885,0.005558885 +10-05-2019 5:00,9834128.117,0.040793374,0.040793374 +10-05-2019 6:00,9835076.516,0.069313835,0.069313835 +10-05-2019 7:00,9836024.393,0.050848835,0.050848835 +10-05-2019 8:00,9836971.747,0.061046633,0.061046633 +10-05-2019 9:00,9837918.578,0.044361083,0.044361083 +10-05-2019 10:00,9838864.886,0.038646216,0.038646216 +10-05-2019 11:00,9839810.669,0.033206478,0.033206478 +10-05-2019 12:00,9840755.927,0.028573968,0.028573968 +10-05-2019 13:00,9841700.661,0.021721578,0.021721578 +10-05-2019 14:00,9842644.869,0.016696648,0.016696648 +10-05-2019 15:00,9843588.55,0.018783729,0.018783729 +10-05-2019 16:00,9844531.705,0.030610522,0.030610522 +10-05-2019 17:00,9845474.333,0.054264107,0.054264107 +10-05-2019 18:00,9846416.434,0.055647954,0.055647954 +10-05-2019 19:00,9847358.006,0.049873755,0.049873755 +10-05-2019 20:00,9848299.05,0.041698212,0.041698212 +10-05-2019 21:00,9849239.565,0.028921596,0.028921596 +10-05-2019 22:00,9850179.55,0.013913874,0.013913874 +10-05-2019 23:00,9851119.005,0.004869856,0.004869856 +11-05-2019 0:00,9852057.93,0.002782775,0.002782775 +11-05-2019 1:00,9852996.324,0.000791097,0.000791097 +11-05-2019 2:00,9853934.187,0.00123249,0.00123249 +11-05-2019 3:00,9854871.517,0.001731369,0.001731369 +11-05-2019 4:00,9855808.315,0.00587586,0.00587586 +11-05-2019 5:00,9856744.581,0.041008566,0.041008566 +11-05-2019 6:00,9857680.313,0.069886962,0.069886962 +11-05-2019 7:00,9858615.511,0.050867478,0.050867478 +11-05-2019 8:00,9859550.174,0.061387611,0.061387611 +11-05-2019 9:00,9860484.303,0.044110358,0.044110358 +11-05-2019 10:00,9861417.897,0.03830621,0.03830621 +11-05-2019 11:00,9862350.955,0.032375156,0.032375156 +11-05-2019 12:00,9863283.477,0.027119251,0.027119251 +11-05-2019 13:00,9864215.462,0.021566504,0.021566504 +11-05-2019 14:00,9865146.909,0.016696648,0.016696648 +11-05-2019 15:00,9866077.819,0.018783729,0.018783729 +11-05-2019 16:00,9867008.191,0.030610522,0.030610522 +11-05-2019 17:00,9867938.024,0.054264107,0.054264107 +11-05-2019 18:00,9868867.318,0.054959801,0.054959801 +11-05-2019 19:00,9869796.073,0.049187221,0.049187221 +11-05-2019 20:00,9870724.287,0.041163888,0.041163888 +11-05-2019 21:00,9871651.961,0.028915865,0.028915865 +11-05-2019 22:00,9872579.094,0.013913874,0.013913874 +11-05-2019 23:00,9873505.685,0.004869856,0.004869856 +12-05-2019 0:00,9874431.735,0.002782775,0.002782775 +12-05-2019 1:00,9875357.242,0.000695694,0.000695694 +12-05-2019 2:00,9876282.205,0.000913272,0.000913272 +12-05-2019 3:00,9877206.626,0.001579697,0.001579697 +12-05-2019 4:00,9878130.503,0.005421605,0.005421605 +12-05-2019 5:00,9879053.835,0.040762349,0.040762349 +12-05-2019 6:00,9879976.622,0.067498674,0.067498674 +12-05-2019 7:00,9880898.864,0.050089945,0.050089945 +12-05-2019 8:00,9881820.561,0.059435285,0.059435285 +12-05-2019 9:00,9882741.711,0.044028562,0.044028562 +12-05-2019 10:00,9883662.314,0.03804653,0.03804653 +12-05-2019 11:00,9884582.37,0.03243469,0.03243469 +12-05-2019 12:00,9885501.878,0.026595392,0.026595392 +12-05-2019 13:00,9886420.839,0.021566504,0.021566504 +12-05-2019 14:00,9887339.25,0.016696648,0.016696648 +12-05-2019 15:00,9888257.113,0.018783729,0.018783729 +12-05-2019 16:00,9889174.426,0.030610522,0.030610522 +12-05-2019 17:00,9890091.189,0.054264107,0.054264107 +12-05-2019 18:00,9891007.401,0.054959801,0.054959801 +12-05-2019 19:00,9891923.062,0.048842361,0.048842361 +12-05-2019 20:00,9892838.172,0.040821562,0.040821562 +12-05-2019 21:00,9893752.73,0.028927222,0.028927222 +12-05-2019 22:00,9894666.736,0.013913874,0.013913874 +12-05-2019 23:00,9895580.189,0.004869856,0.004869856 +13-05-2019 0:00,9896493.088,0.002782775,0.002782775 +13-05-2019 1:00,9897405.434,0.000695694,0.000695694 +13-05-2019 2:00,9898317.225,0.000946213,0.000946213 +13-05-2019 3:00,9899228.461,0.001612951,0.001612951 +13-05-2019 4:00,9900139.143,0.005912067,0.005912067 +13-05-2019 5:00,9901049.268,0.040876686,0.040876686 +13-05-2019 6:00,9901958.838,0.068136146,0.068136146 +13-05-2019 7:00,9902867.851,0.050089945,0.050089945 +13-05-2019 8:00,9903776.306,0.05942012,0.05942012 +13-05-2019 9:00,9904684.205,0.042990113,0.042990113 +13-05-2019 10:00,9905591.545,0.037467333,0.037467333 +13-05-2019 11:00,9906498.326,0.031468267,0.031468267 +13-05-2019 12:00,9907404.549,0.025217958,0.025217958 +13-05-2019 13:00,9908310.212,0.021592148,0.021592148 +13-05-2019 14:00,9909215.316,0.016696648,0.016696648 +13-05-2019 15:00,9910119.859,0.018783729,0.018783729 +13-05-2019 16:00,9911023.841,0.030610522,0.030610522 +13-05-2019 17:00,9911927.262,0.054264107,0.054264107 +13-05-2019 18:00,9912830.121,0.055064234,0.055064234 +13-05-2019 19:00,9913732.418,0.049588985,0.049588985 +13-05-2019 20:00,9914634.152,0.041118961,0.041118961 +13-05-2019 21:00,9915535.324,0.028913593,0.028913593 +13-05-2019 22:00,9916435.931,0.013913874,0.013913874 +13-05-2019 23:00,9917335.974,0.004869856,0.004869856 +14-05-2019 0:00,9918235.453,0.002782775,0.002782775 +14-05-2019 1:00,9919134.367,0.000713678,0.000713678 +14-05-2019 2:00,9920032.716,0.001003749,0.001003749 +14-05-2019 3:00,9920930.498,0.001739474,0.001739474 +14-05-2019 4:00,9921827.714,0.005560625,0.005560625 +14-05-2019 5:00,9922724.364,0.04103682,0.04103682 +14-05-2019 6:00,9923620.446,0.069530149,0.069530149 +14-05-2019 7:00,9924515.96,0.050750539,0.050750539 +14-05-2019 8:00,9925410.906,0.060534381,0.060534381 +14-05-2019 9:00,9926305.283,0.043420972,0.043420972 +14-05-2019 10:00,9927199.091,0.037402879,0.037402879 +14-05-2019 11:00,9928092.33,0.031640745,0.031640745 +14-05-2019 12:00,9928984.998,0.025603872,0.025603872 +14-05-2019 13:00,9929877.096,0.021566504,0.021566504 +14-05-2019 14:00,9930768.623,0.016696648,0.016696648 +14-05-2019 15:00,9931659.579,0.018783729,0.018783729 +14-05-2019 16:00,9932549.962,0.030610522,0.030610522 +14-05-2019 17:00,9933439.774,0.054264107,0.054264107 +14-05-2019 18:00,9934329.012,0.055302549,0.055302549 +14-05-2019 19:00,9935217.677,0.049715764,0.049715764 +14-05-2019 20:00,9936105.769,0.041317495,0.041317495 +14-05-2019 21:00,9936993.286,0.028891033,0.028891033 +14-05-2019 22:00,9937880.228,0.013913874,0.013913874 +14-05-2019 23:00,9938766.596,0.004869856,0.004869856 +15-05-2019 0:00,9939652.388,0.002782775,0.002782775 +15-05-2019 1:00,9940537.604,0.000695694,0.000695694 +15-05-2019 2:00,9941422.243,0.000959229,0.000959229 +15-05-2019 3:00,9942306.306,0.001711937,0.001711937 +15-05-2019 4:00,9943189.791,0.005332482,0.005332482 +15-05-2019 5:00,9944072.698,0.040626368,0.040626368 +15-05-2019 6:00,9944955.027,0.06723322,0.06723322 +15-05-2019 7:00,9945836.777,0.050089945,0.050089945 +15-05-2019 8:00,9946717.948,0.059133963,0.059133963 +15-05-2019 9:00,9947598.54,0.042807294,0.042807294 +15-05-2019 10:00,9948478.551,0.037322783,0.037322783 +15-05-2019 11:00,9949357.982,0.031329647,0.031329647 +15-05-2019 12:00,9950236.831,0.025044973,0.025044973 +15-05-2019 13:00,9951115.1,0.021566504,0.021566504 +15-05-2019 14:00,9951992.786,0.016696648,0.016696648 +15-05-2019 15:00,9952869.89,0.018783729,0.018783729 +15-05-2019 16:00,9953746.411,0.030610522,0.030610522 +15-05-2019 17:00,9954622.349,0.054264107,0.054264107 +15-05-2019 18:00,9955497.703,0.054959801,0.054959801 +15-05-2019 19:00,9956372.473,0.049108709,0.049108709 +15-05-2019 20:00,9957246.659,0.040936982,0.040936982 +15-05-2019 21:00,9958120.259,0.028845516,0.028845516 +15-05-2019 22:00,9958993.274,0.013913874,0.013913874 +15-05-2019 23:00,9959865.703,0.004869856,0.004869856 +16-05-2019 0:00,9960737.545,0.002782775,0.002782775 +16-05-2019 1:00,9961608.801,0.000695694,0.000695694 +16-05-2019 2:00,9962479.469,0.000695694,0.000695694 +16-05-2019 3:00,9963349.549,0.001391387,0.001391387 +16-05-2019 4:00,9964219.042,0.004869856,0.004869856 +16-05-2019 5:00,9965087.945,0.040573466,0.040573466 +16-05-2019 6:00,9965956.26,0.067833686,0.067833686 +16-05-2019 7:00,9966823.985,0.050660453,0.050660453 +16-05-2019 8:00,9967691.12,0.060418274,0.060418274 +16-05-2019 9:00,9968557.664,0.044084107,0.044084107 +16-05-2019 10:00,9969423.618,0.037555589,0.037555589 +16-05-2019 11:00,9970288.98,0.032045888,0.032045888 +16-05-2019 12:00,9971153.751,0.026080328,0.026080328 +16-05-2019 13:00,9972017.929,0.021566504,0.021566504 +16-05-2019 14:00,9972881.515,0.016696648,0.016696648 +16-05-2019 15:00,9973744.507,0.018783729,0.018783729 +16-05-2019 16:00,9974606.906,0.030610522,0.030610522 +16-05-2019 17:00,9975468.711,0.054264107,0.054264107 +16-05-2019 18:00,9976329.922,0.054992611,0.054992611 +16-05-2019 19:00,9977190.538,0.049062605,0.049062605 +16-05-2019 20:00,9978050.558,0.040950851,0.040950851 +16-05-2019 21:00,9978909.983,0.0288295,0.0288295 +16-05-2019 22:00,9979768.811,0.013913874,0.013913874 +16-05-2019 23:00,9980627.043,0.004869856,0.004869856 +17-05-2019 0:00,9981484.677,0.002782775,0.002782775 +17-05-2019 1:00,9982341.714,0.000695694,0.000695694 +17-05-2019 2:00,9983198.153,0.000695694,0.000695694 +17-05-2019 3:00,9984053.994,0.001391387,0.001391387 +17-05-2019 4:00,9984909.236,0.004869856,0.004869856 +17-05-2019 5:00,9985763.878,0.04022842,0.04022842 +17-05-2019 6:00,9986617.921,0.066934192,0.066934192 +17-05-2019 7:00,9987471.364,0.050576969,0.050576969 +17-05-2019 8:00,9988324.206,0.059689843,0.059689843 +17-05-2019 9:00,9989176.447,0.044001953,0.044001953 +17-05-2019 10:00,9990028.086,0.037842982,0.037842982 +17-05-2019 11:00,9990879.124,0.032124914,0.032124914 +17-05-2019 12:00,9991729.559,0.026733444,0.026733444 +17-05-2019 13:00,9992579.391,0.021566504,0.021566504 +17-05-2019 14:00,9993428.62,0.016696648,0.016696648 +17-05-2019 15:00,9994277.246,0.018783729,0.018783729 +17-05-2019 16:00,9995125.267,0.030610522,0.030610522 +17-05-2019 17:00,9995972.684,0.054264107,0.054264107 +17-05-2019 18:00,9996819.495,0.055185114,0.055185114 +17-05-2019 19:00,9997665.702,0.04955822,0.04955822 +17-05-2019 20:00,9998511.302,0.041123013,0.041123013 +17-05-2019 21:00,9999356.296,0.028816012,0.028816012 +17-05-2019 22:00,10000200.68,0.013913874,0.013913874 +17-05-2019 23:00,10001044.46,0.004869856,0.004869856 +18-05-2019 0:00,10001887.64,0.002782775,0.002782775 +18-05-2019 1:00,10002730.2,0.000695694,0.000695694 +18-05-2019 2:00,10003572.16,0.000695694,0.000695694 +18-05-2019 3:00,10004413.5,0.001391387,0.001391387 +18-05-2019 4:00,10005254.24,0.005021555,0.005021555 +18-05-2019 5:00,10006094.37,0.04013744,0.04013744 +18-05-2019 6:00,10006933.89,0.066214094,0.066214094 +18-05-2019 7:00,10007772.8,0.050089945,0.050089945 +18-05-2019 8:00,10008611.09,0.059133963,0.059133963 +18-05-2019 9:00,10009448.78,0.042883657,0.042883657 +18-05-2019 10:00,10010285.85,0.036871765,0.036871765 +18-05-2019 11:00,10011122.31,0.031306216,0.031306216 +18-05-2019 12:00,10011958.16,0.025044973,0.025044973 +18-05-2019 13:00,10012793.39,0.021566504,0.021566504 +18-05-2019 14:00,10013628.01,0.016696648,0.016696648 +18-05-2019 15:00,10014462.02,0.018783729,0.018783729 +18-05-2019 16:00,10015295.41,0.030610522,0.030610522 +18-05-2019 17:00,10016128.19,0.054264107,0.054264107 +18-05-2019 18:00,10016960.35,0.054959801,0.054959801 +18-05-2019 19:00,10017791.9,0.048698558,0.048698558 +18-05-2019 20:00,10018622.83,0.040350234,0.040350234 +18-05-2019 21:00,10019453.14,0.028523441,0.028523441 +18-05-2019 22:00,10020282.84,0.013913874,0.013913874 +18-05-2019 23:00,10021111.92,0.004869856,0.004869856 +19-05-2019 0:00,10021940.38,0.002782775,0.002782775 +19-05-2019 1:00,10022768.22,0.000695694,0.000695694 +19-05-2019 2:00,10023595.44,0.000695694,0.000695694 +19-05-2019 3:00,10024422.05,0.001391387,0.001391387 +19-05-2019 4:00,10025248.03,0.004869856,0.004869856 +19-05-2019 5:00,10026073.4,0.039147898,0.039147898 +19-05-2019 6:00,10026898.14,0.064699512,0.064699512 +19-05-2019 7:00,10027722.26,0.050089945,0.050089945 +19-05-2019 8:00,10028545.77,0.059133963,0.059133963 +19-05-2019 9:00,10029368.65,0.042561543,0.042561543 +19-05-2019 10:00,10030190.91,0.036871765,0.036871765 +19-05-2019 11:00,10031012.54,0.031306216,0.031306216 +19-05-2019 12:00,10031833.55,0.025151291,0.025151291 +19-05-2019 13:00,10032653.94,0.021566504,0.021566504 +19-05-2019 14:00,10033473.71,0.016696648,0.016696648 +19-05-2019 15:00,10034292.85,0.018783729,0.018783729 +19-05-2019 16:00,10035111.37,0.030610522,0.030610522 +19-05-2019 17:00,10035929.26,0.054264107,0.054264107 +19-05-2019 18:00,10036746.52,0.054959801,0.054959801 +19-05-2019 19:00,10037563.16,0.048698558,0.048698558 +19-05-2019 20:00,10038379.18,0.040350234,0.040350234 +19-05-2019 21:00,10039194.56,0.028523441,0.028523441 +19-05-2019 22:00,10040009.32,0.013913874,0.013913874 +19-05-2019 23:00,10040823.45,0.004869856,0.004869856 +20-05-2019 0:00,10041636.96,0.002782775,0.002782775 +20-05-2019 1:00,10042449.83,0.000695694,0.000695694 +20-05-2019 2:00,10043262.08,0.000695694,0.000695694 +20-05-2019 3:00,10044073.69,0.001391387,0.001391387 +20-05-2019 4:00,10044884.68,0.004869856,0.004869856 +20-05-2019 5:00,10045695.04,0.039166597,0.039166597 +20-05-2019 6:00,10046504.76,0.064699512,0.064699512 +20-05-2019 7:00,10047313.86,0.050089945,0.050089945 +20-05-2019 8:00,10048122.32,0.059133963,0.059133963 +20-05-2019 9:00,10048930.16,0.042648365,0.042648365 +20-05-2019 10:00,10049737.36,0.036871765,0.036871765 +20-05-2019 11:00,10050543.92,0.031306216,0.031306216 +20-05-2019 12:00,10051349.86,0.025243738,0.025243738 +20-05-2019 13:00,10052155.16,0.021566504,0.021566504 +20-05-2019 14:00,10052959.83,0.016696648,0.016696648 +20-05-2019 15:00,10053763.86,0.018783729,0.018783729 +20-05-2019 16:00,10054567.26,0.030610522,0.030610522 +20-05-2019 17:00,10055370.02,0.054264107,0.054264107 +20-05-2019 18:00,10056172.15,0.054959801,0.054959801 +20-05-2019 19:00,10056973.64,0.048698558,0.048698558 +20-05-2019 20:00,10057774.49,0.040350234,0.040350234 +20-05-2019 21:00,10058574.71,0.028523441,0.028523441 +20-05-2019 22:00,10059374.29,0.013913874,0.013913874 +20-05-2019 23:00,10060173.23,0.004869856,0.004869856 +21-05-2019 0:00,10060971.54,0.002782775,0.002782775 +21-05-2019 1:00,10061769.21,0.000695694,0.000695694 +21-05-2019 2:00,10062566.23,0.000695694,0.000695694 +21-05-2019 3:00,10063362.62,0.001391387,0.001391387 +21-05-2019 4:00,10064158.37,0.004869856,0.004869856 +21-05-2019 5:00,10064953.48,0.039315526,0.039315526 +21-05-2019 6:00,10065747.95,0.064699512,0.064699512 +21-05-2019 7:00,10066541.78,0.050089945,0.050089945 +21-05-2019 8:00,10067334.96,0.059133963,0.059133963 +21-05-2019 9:00,10068127.51,0.04281593,0.04281593 +21-05-2019 10:00,10068919.41,0.036871765,0.036871765 +21-05-2019 11:00,10069710.67,0.031317288,0.031317288 +21-05-2019 12:00,10070501.29,0.025388791,0.025388791 +21-05-2019 13:00,10071291.26,0.021566504,0.021566504 +21-05-2019 14:00,10072080.59,0.016696648,0.016696648 +21-05-2019 15:00,10072869.28,0.018783729,0.018783729 +21-05-2019 16:00,10073657.32,0.030610522,0.030610522 +21-05-2019 17:00,10074444.71,0.054264107,0.054264107 +21-05-2019 18:00,10075231.46,0.054959801,0.054959801 +21-05-2019 19:00,10076017.57,0.048818087,0.048818087 +21-05-2019 20:00,10076803.03,0.040350234,0.040350234 +21-05-2019 21:00,10077587.84,0.02866768,0.02866768 +21-05-2019 22:00,10078372.01,0.013913874,0.013913874 +21-05-2019 23:00,10079155.52,0.004869856,0.004869856 +22-05-2019 0:00,10079938.39,0.002782775,0.002782775 +22-05-2019 1:00,10080720.62,0.000695694,0.000695694 +22-05-2019 2:00,10081502.19,0.000695694,0.000695694 +22-05-2019 3:00,10082283.11,0.001391387,0.001391387 +22-05-2019 4:00,10083063.39,0.004869856,0.004869856 +22-05-2019 5:00,10083843.01,0.039491929,0.039491929 +22-05-2019 6:00,10084621.99,0.064699512,0.064699512 +22-05-2019 7:00,10085400.31,0.050089945,0.050089945 +22-05-2019 8:00,10086177.99,0.059133963,0.059133963 +22-05-2019 9:00,10086955.01,0.042493956,0.042493956 +22-05-2019 10:00,10087731.38,0.036871765,0.036871765 +22-05-2019 11:00,10088507.1,0.031306216,0.031306216 +22-05-2019 12:00,10089282.16,0.025044973,0.025044973 +22-05-2019 13:00,10090056.58,0.021566504,0.021566504 +22-05-2019 14:00,10090830.33,0.016696648,0.016696648 +22-05-2019 15:00,10091603.44,0.018783729,0.018783729 +22-05-2019 16:00,10092375.89,0.030610522,0.030610522 +22-05-2019 17:00,10093147.69,0.054264107,0.054264107 +22-05-2019 18:00,10093918.83,0.054959801,0.054959801 +22-05-2019 19:00,10094689.32,0.048698558,0.048698558 +22-05-2019 20:00,10095459.15,0.040350234,0.040350234 +22-05-2019 21:00,10096228.32,0.028523441,0.028523441 +22-05-2019 22:00,10096996.84,0.013913874,0.013913874 +22-05-2019 23:00,10097764.7,0.004869856,0.004869856 +23-05-2019 0:00,10098531.9,0.002782775,0.002782775 +23-05-2019 1:00,10099298.45,0.000695694,0.000695694 +23-05-2019 2:00,10100064.34,0.000695694,0.000695694 +23-05-2019 3:00,10100829.56,0.001391387,0.001391387 +23-05-2019 4:00,10101594.13,0.004869856,0.004869856 +23-05-2019 5:00,10102358.04,0.039132526,0.039132526 +23-05-2019 6:00,10103121.3,0.064699512,0.064699512 +23-05-2019 7:00,10103883.89,0.050089945,0.050089945 +23-05-2019 8:00,10104645.82,0.059133963,0.059133963 +23-05-2019 9:00,10105407.09,0.042437315,0.042437315 +23-05-2019 10:00,10106167.69,0.036871765,0.036871765 +23-05-2019 11:00,10106927.64,0.031306216,0.031306216 +23-05-2019 12:00,10107686.93,0.025044973,0.025044973 +23-05-2019 13:00,10108445.55,0.021566504,0.021566504 +23-05-2019 14:00,10109203.51,0.016696648,0.016696648 +23-05-2019 15:00,10109960.8,0.018783729,0.018783729 +23-05-2019 16:00,10110717.43,0.030610522,0.030610522 +23-05-2019 17:00,10111473.4,0.054264107,0.054264107 +23-05-2019 18:00,10112228.71,0.054959801,0.054959801 +23-05-2019 19:00,10112983.34,0.048698558,0.048698558 +23-05-2019 20:00,10113737.32,0.040350234,0.040350234 +23-05-2019 21:00,10114490.63,0.028523441,0.028523441 +23-05-2019 22:00,10115243.27,0.013913874,0.013913874 +23-05-2019 23:00,10115995.24,0.004869856,0.004869856 +24-05-2019 0:00,10116746.55,0.002782775,0.002782775 +24-05-2019 1:00,10117497.2,0.000695694,0.000695694 +24-05-2019 2:00,10118247.17,0.000695694,0.000695694 +24-05-2019 3:00,10118996.48,0.001391387,0.001391387 +24-05-2019 4:00,10119745.12,0.004869856,0.004869856 +24-05-2019 5:00,10120493.09,0.038996651,0.038996651 +24-05-2019 6:00,10121240.39,0.064699512,0.064699512 +24-05-2019 7:00,10121987.02,0.050089945,0.050089945 +24-05-2019 8:00,10122732.98,0.059133963,0.059133963 +24-05-2019 9:00,10123478.27,0.042437315,0.042437315 +24-05-2019 10:00,10124222.89,0.036871765,0.036871765 +24-05-2019 11:00,10124966.84,0.031306216,0.031306216 +24-05-2019 12:00,10125710.12,0.025044973,0.025044973 +24-05-2019 13:00,10126452.72,0.021566504,0.021566504 +24-05-2019 14:00,10127194.66,0.016696648,0.016696648 +24-05-2019 15:00,10127935.92,0.018783729,0.018783729 +24-05-2019 16:00,10128676.51,0.030610522,0.030610522 +24-05-2019 17:00,10129416.43,0.054264107,0.054264107 +24-05-2019 18:00,10130155.67,0.054959801,0.054959801 +24-05-2019 19:00,10130894.24,0.048698558,0.048698558 +24-05-2019 20:00,10131632.13,0.040350234,0.040350234 +24-05-2019 21:00,10132369.35,0.028523441,0.028523441 +24-05-2019 22:00,10133105.89,0.013913874,0.013913874 +24-05-2019 23:00,10133841.76,0.004869856,0.004869856 +25-05-2019 0:00,10134576.95,0.002782775,0.002782775 +25-05-2019 1:00,10135311.47,0.000695694,0.000695694 +25-05-2019 2:00,10136045.31,0.000695694,0.000695694 +25-05-2019 3:00,10136778.47,0.001391387,0.001391387 +25-05-2019 4:00,10137510.95,0.004869856,0.004869856 +25-05-2019 5:00,10138242.76,0.038958846,0.038958846 +25-05-2019 6:00,10138973.89,0.064699512,0.064699512 +25-05-2019 7:00,10139704.34,0.050089945,0.050089945 +25-05-2019 8:00,10140434.11,0.059133963,0.059133963 +25-05-2019 9:00,10141163.2,0.042437315,0.042437315 +25-05-2019 10:00,10141891.62,0.036871765,0.036871765 +25-05-2019 11:00,10142619.35,0.031306216,0.031306216 +25-05-2019 12:00,10143346.4,0.025044973,0.025044973 +25-05-2019 13:00,10144072.77,0.021566504,0.021566504 +25-05-2019 14:00,10144798.46,0.016696648,0.016696648 +25-05-2019 15:00,10145523.47,0.018783729,0.018783729 +25-05-2019 16:00,10146247.8,0.030610522,0.030610522 +25-05-2019 17:00,10146971.44,0.054264107,0.054264107 +25-05-2019 18:00,10147694.4,0.054959801,0.054959801 +25-05-2019 19:00,10148416.68,0.048698558,0.048698558 +25-05-2019 20:00,10149138.27,0.040350234,0.040350234 +25-05-2019 21:00,10149859.19,0.028523441,0.028523441 +25-05-2019 22:00,10150579.41,0.013913874,0.013913874 +25-05-2019 23:00,10151298.95,0.004869856,0.004869856 +26-05-2019 0:00,10152017.81,0.002782775,0.002782775 +26-05-2019 1:00,10152735.98,0.000695694,0.000695694 +26-05-2019 2:00,10153453.47,0.000695694,0.000695694 +26-05-2019 3:00,10154170.27,0.001391387,0.001391387 +26-05-2019 4:00,10154886.39,0.004869856,0.004869856 +26-05-2019 5:00,10155601.81,0.038958846,0.038958846 +26-05-2019 6:00,10156316.55,0.064699512,0.064699512 +26-05-2019 7:00,10157030.61,0.050089945,0.050089945 +26-05-2019 8:00,10157743.97,0.059133963,0.059133963 +26-05-2019 9:00,10158456.65,0.042437315,0.042437315 +26-05-2019 10:00,10159168.64,0.036871765,0.036871765 +26-05-2019 11:00,10159879.94,0.031306216,0.031306216 +26-05-2019 12:00,10160590.55,0.025044973,0.025044973 +26-05-2019 13:00,10161300.47,0.021566504,0.021566504 +26-05-2019 14:00,10162009.7,0.016696648,0.016696648 +26-05-2019 15:00,10162718.24,0.018783729,0.018783729 +26-05-2019 16:00,10163426.09,0.030610522,0.030610522 +26-05-2019 17:00,10164133.24,0.054264107,0.054264107 +26-05-2019 18:00,10164839.71,0.054959801,0.054959801 +26-05-2019 19:00,10165545.48,0.048698558,0.048698558 +26-05-2019 20:00,10166250.57,0.040350234,0.040350234 +26-05-2019 21:00,10166954.96,0.028523441,0.028523441 +26-05-2019 22:00,10167658.65,0.013913874,0.013913874 +26-05-2019 23:00,10168361.66,0.004869856,0.004869856 +27-05-2019 0:00,10169063.97,0.002782775,0.002782775 +27-05-2019 1:00,10169765.58,0.000695694,0.000695694 +27-05-2019 2:00,10170466.5,0.000695694,0.000695694 +27-05-2019 3:00,10171166.73,0.001391387,0.001391387 +27-05-2019 4:00,10171866.26,0.004869856,0.004869856 +27-05-2019 5:00,10172565.1,0.038958846,0.038958846 +27-05-2019 6:00,10173263.24,0.064699512,0.064699512 +27-05-2019 7:00,10173960.68,0.050089945,0.050089945 +27-05-2019 8:00,10174657.43,0.059133963,0.059133963 +27-05-2019 9:00,10175353.48,0.042437315,0.042437315 +27-05-2019 10:00,10176048.83,0.036871765,0.036871765 +27-05-2019 11:00,10176743.49,0.031306216,0.031306216 +27-05-2019 12:00,10177437.45,0.025044973,0.025044973 +27-05-2019 13:00,10178130.71,0.021566504,0.021566504 +27-05-2019 14:00,10178823.27,0.016696648,0.016696648 +27-05-2019 15:00,10179515.13,0.018783729,0.018783729 +27-05-2019 16:00,10180206.29,0.030610522,0.030610522 +27-05-2019 17:00,10180896.75,0.054264107,0.054264107 +27-05-2019 18:00,10181586.51,0.054959801,0.054959801 +27-05-2019 19:00,10182275.58,0.048698558,0.048698558 +27-05-2019 20:00,10182963.94,0.040350234,0.040350234 +27-05-2019 21:00,10183651.6,0.028523441,0.028523441 +27-05-2019 22:00,10184338.55,0.013913874,0.013913874 +27-05-2019 23:00,10185024.81,0.004869856,0.004869856 +28-05-2019 0:00,10185710.37,0.002782775,0.002782775 +28-05-2019 1:00,10186395.22,0.000695694,0.000695694 +28-05-2019 2:00,10187079.36,0.000695694,0.000695694 +28-05-2019 3:00,10187762.81,0.001391387,0.001391387 +28-05-2019 4:00,10188445.55,0.004869856,0.004869856 +28-05-2019 5:00,10189127.59,0.038958846,0.038958846 +28-05-2019 6:00,10189808.92,0.064699512,0.064699512 +28-05-2019 7:00,10190489.55,0.050089945,0.050089945 +28-05-2019 8:00,10191169.47,0.059133963,0.059133963 +28-05-2019 9:00,10191848.69,0.042437315,0.042437315 +28-05-2019 10:00,10192527.2,0.036871765,0.036871765 +28-05-2019 11:00,10193205.01,0.031306216,0.031306216 +28-05-2019 12:00,10193882.11,0.025044973,0.025044973 +28-05-2019 13:00,10194558.5,0.021566504,0.021566504 +28-05-2019 14:00,10195234.19,0.016696648,0.016696648 +28-05-2019 15:00,10195909.17,0.018783729,0.018783729 +28-05-2019 16:00,10196583.44,0.030610522,0.030610522 +28-05-2019 17:00,10197257,0.054264107,0.054264107 +28-05-2019 18:00,10197929.85,0.054959801,0.054959801 +28-05-2019 19:00,10198602,0.048698558,0.048698558 +28-05-2019 20:00,10199273.43,0.040350234,0.040350234 +28-05-2019 21:00,10199944.16,0.028523441,0.028523441 +28-05-2019 22:00,10200614.17,0.013913874,0.013913874 +28-05-2019 23:00,10201283.48,0.004869856,0.004869856 +29-05-2019 0:00,10201952.07,0.002782775,0.002782775 +29-05-2019 1:00,10202619.96,0.000695694,0.000695694 +29-05-2019 2:00,10203287.13,0.000695694,0.000695694 +29-05-2019 3:00,10203953.59,0.001391387,0.001391387 +29-05-2019 4:00,10204619.34,0.004869856,0.004869856 +29-05-2019 5:00,10205284.38,0.038958846,0.038958846 +29-05-2019 6:00,10205948.7,0.064699512,0.064699512 +29-05-2019 7:00,10206612.31,0.050089945,0.050089945 +29-05-2019 8:00,10207275.21,0.059133963,0.059133963 +29-05-2019 9:00,10207937.39,0.042437315,0.042437315 +29-05-2019 10:00,10208598.86,0.036871765,0.036871765 +29-05-2019 11:00,10209259.62,0.031306216,0.031306216 +29-05-2019 12:00,10209919.66,0.025044973,0.025044973 +29-05-2019 13:00,10210578.99,0.021566504,0.021566504 +29-05-2019 14:00,10211237.6,0.016696648,0.016696648 +29-05-2019 15:00,10211895.49,0.018783729,0.018783729 +29-05-2019 16:00,10212552.67,0.030610522,0.030610522 +29-05-2019 17:00,10213209.13,0.054264107,0.054264107 +29-05-2019 18:00,10213864.88,0.054959801,0.054959801 +29-05-2019 19:00,10214519.91,0.048698558,0.048698558 +29-05-2019 20:00,10215174.22,0.040350234,0.040350234 +29-05-2019 21:00,10215827.81,0.028523441,0.028523441 +29-05-2019 22:00,10216480.69,0.013913874,0.013913874 +29-05-2019 23:00,10217132.84,0.004869856,0.004869856 +30-05-2019 0:00,10217784.28,0.002782775,0.002782775 +30-05-2019 1:00,10218435,0.000695694,0.000695694 +30-05-2019 2:00,10219085,0.000695694,0.000695694 +30-05-2019 3:00,10219734.28,0.001391387,0.001391387 +30-05-2019 4:00,10220382.84,0.004869856,0.004869856 +30-05-2019 5:00,10221030.68,0.038958846,0.038958846 +30-05-2019 6:00,10221677.79,0.064699512,0.064699512 +30-05-2019 7:00,10222324.19,0.050089945,0.050089945 +30-05-2019 8:00,10222969.87,0.059133963,0.059133963 +30-05-2019 9:00,10223614.82,0.042437315,0.042437315 +30-05-2019 10:00,10224259.05,0.036871765,0.036871765 +30-05-2019 11:00,10224902.56,0.031306216,0.031306216 +30-05-2019 12:00,10225545.35,0.025044973,0.025044973 +30-05-2019 13:00,10226187.41,0.021566504,0.021566504 +30-05-2019 14:00,10226828.75,0.016696648,0.016696648 +30-05-2019 15:00,10227469.37,0.018783729,0.018783729 +30-05-2019 16:00,10228109.26,0.030610522,0.030610522 +30-05-2019 17:00,10228748.43,0.054264107,0.054264107 +30-05-2019 18:00,10229386.87,0.054959801,0.054959801 +30-05-2019 19:00,10230024.59,0.048698558,0.048698558 +30-05-2019 20:00,10230661.58,0.040350234,0.040350234 +30-05-2019 21:00,10231297.85,0.028523441,0.028523441 +30-05-2019 22:00,10231933.39,0.013913874,0.013913874 +30-05-2019 23:00,10232568.2,0.004869856,0.004869856 +31-05-2019 0:00,10233202.29,0.002782775,0.002782775 +31-05-2019 1:00,10233835.65,0.000695694,0.000695694 +31-05-2019 2:00,10234468.29,0.000695694,0.000695694 +31-05-2019 3:00,10235100.19,0.001391387,0.001391387 +31-05-2019 4:00,10235731.37,0.004869856,0.004869856 +31-05-2019 5:00,10236361.82,0.038958846,0.038958846 +31-05-2019 6:00,10236991.54,0.064699512,0.064699512 +31-05-2019 7:00,10237620.53,0.050089945,0.050089945 +31-05-2019 8:00,10238248.79,0.059133963,0.059133963 +31-05-2019 9:00,10238876.33,0.042437315,0.042437315 +31-05-2019 10:00,10239503.13,0.036871765,0.036871765 +31-05-2019 11:00,10240129.2,0.031306216,0.031306216 +31-05-2019 12:00,10240754.54,0.025044973,0.025044973 +31-05-2019 13:00,10241379.15,0.021566504,0.021566504 +31-05-2019 14:00,10242003.03,0.016696648,0.016696648 +31-05-2019 15:00,10242626.18,0.018783729,0.018783729 +31-05-2019 16:00,10243248.6,0.030610522,0.030610522 +31-05-2019 17:00,10243870.28,0.054264107,0.054264107 +31-05-2019 18:00,10244491.23,0.054959801,0.054959801 +31-05-2019 19:00,10245111.45,0.048698558,0.048698558 +31-05-2019 20:00,10245730.94,0.040350234,0.040350234 +31-05-2019 21:00,10246349.69,0.028523441,0.028523441 +31-05-2019 22:00,10246967.71,0.013913874,0.013913874 +31-05-2019 23:00,10247584.99,0.004869856,0.004869856 +01-06-2019 0:00,10248201.54,0.002782775,0.002782775 +01-06-2019 1:00,10248817.36,0.000695694,0.000695694 +01-06-2019 2:00,10249432.44,0.000695694,0.000695694 +01-06-2019 3:00,10250046.78,0.001391387,0.001391387 +01-06-2019 4:00,10250660.39,0.004869856,0.004869856 +01-06-2019 5:00,10251273.26,0.038958846,0.038958846 +01-06-2019 6:00,10251885.4,0.064699512,0.064699512 +01-06-2019 7:00,10252496.8,0.050089945,0.050089945 +01-06-2019 8:00,10253107.46,0.059133963,0.059133963 +01-06-2019 9:00,10253717.39,0.042437315,0.042437315 +01-06-2019 10:00,10254326.58,0.036871765,0.036871765 +01-06-2019 11:00,10254935.03,0.031306216,0.031306216 +01-06-2019 12:00,10255542.74,0.025044973,0.025044973 +01-06-2019 13:00,10256149.71,0.021566504,0.021566504 +01-06-2019 14:00,10256755.95,0.016696648,0.016696648 +01-06-2019 15:00,10257361.44,0.018783729,0.018783729 +01-06-2019 16:00,10257966.2,0.030610522,0.030610522 +01-06-2019 17:00,10258570.21,0.054264107,0.054264107 +01-06-2019 18:00,10259173.49,0.054959801,0.054959801 +01-06-2019 19:00,10259776.03,0.048698558,0.048698558 +01-06-2019 20:00,10260377.82,0.040350234,0.040350234 +01-06-2019 21:00,10260978.87,0.028523441,0.028523441 +01-06-2019 22:00,10261579.19,0.013913874,0.013913874 +01-06-2019 23:00,10262178.76,0.004869856,0.004869856 +02-06-2019 0:00,10262777.59,0.002782775,0.002782775 +02-06-2019 1:00,10263375.67,0.000695694,0.000695694 +02-06-2019 2:00,10263973.02,0.000695694,0.000695694 +02-06-2019 3:00,10264569.62,0.001391387,0.001391387 +02-06-2019 4:00,10265165.48,0.004869856,0.004869856 +02-06-2019 5:00,10265760.59,0.038958846,0.038958846 +02-06-2019 6:00,10266354.96,0.064699512,0.064699512 +02-06-2019 7:00,10266948.59,0.050089945,0.050089945 +02-06-2019 8:00,10267541.47,0.059133963,0.059133963 +02-06-2019 9:00,10268133.61,0.042437315,0.042437315 +02-06-2019 10:00,10268725,0.036871765,0.036871765 +02-06-2019 11:00,10269315.65,0.031306216,0.031306216 +02-06-2019 12:00,10269905.55,0.025044973,0.025044973 +02-06-2019 13:00,10270494.71,0.021566504,0.021566504 +02-06-2019 14:00,10271083.12,0.016696648,0.016696648 +02-06-2019 15:00,10271670.78,0.018783729,0.018783729 +02-06-2019 16:00,10272257.7,0.030610522,0.030610522 +02-06-2019 17:00,10272843.86,0.054264107,0.054264107 +02-06-2019 18:00,10273429.29,0.054959801,0.054959801 +02-06-2019 19:00,10274013.96,0.048698558,0.048698558 +02-06-2019 20:00,10274597.89,0.040350234,0.040350234 +02-06-2019 21:00,10275181.06,0.028523441,0.028523441 +02-06-2019 22:00,10275763.49,0.013913874,0.013913874 +02-06-2019 23:00,10276345.17,0.004869856,0.004869856 +03-06-2019 0:00,10276926.1,0.002782775,0.002782775 +03-06-2019 1:00,10277506.28,0.000695694,0.000695694 +03-06-2019 2:00,10278085.72,0.000695694,0.000695694 +03-06-2019 3:00,10278664.4,0.001391387,0.001391387 +03-06-2019 4:00,10279242.33,0.004869856,0.004869856 +03-06-2019 5:00,10279819.51,0.038958846,0.038958846 +03-06-2019 6:00,10280395.94,0.064699512,0.064699512 +03-06-2019 7:00,10280971.62,0.050089945,0.050089945 +03-06-2019 8:00,10281546.54,0.059133963,0.059133963 +03-06-2019 9:00,10282120.72,0.042437315,0.042437315 +03-06-2019 10:00,10282694.14,0.036871765,0.036871765 +03-06-2019 11:00,10283266.81,0.031306216,0.031306216 +03-06-2019 12:00,10283838.72,0.025044973,0.025044973 +03-06-2019 13:00,10284409.89,0.021566504,0.021566504 +03-06-2019 14:00,10284980.3,0.016696648,0.016696648 +03-06-2019 15:00,10285549.96,0.018783729,0.018783729 +03-06-2019 16:00,10286118.86,0.030610522,0.030610522 +03-06-2019 17:00,10286687.01,0.054264107,0.054264107 +03-06-2019 18:00,10287254.4,0.054959801,0.054959801 +03-06-2019 19:00,10287821.04,0.048698558,0.048698558 +03-06-2019 20:00,10288386.92,0.040350234,0.040350234 +03-06-2019 21:00,10288952.05,0.028523441,0.028523441 +03-06-2019 22:00,10289516.42,0.013913874,0.013913874 +03-06-2019 23:00,10290080.04,0.004869856,0.004869856 +04-06-2019 0:00,10290642.9,0.002782775,0.002782775 +04-06-2019 1:00,10291205.01,0.000695694,0.000695694 +04-06-2019 2:00,10291766.35,0.000695694,0.000695694 +04-06-2019 3:00,10292326.94,0.001391387,0.001391387 +04-06-2019 4:00,10292886.78,0.004869856,0.004869856 +04-06-2019 5:00,10293445.85,0.038958846,0.038958846 +04-06-2019 6:00,10294004.17,0.064699512,0.064699512 +04-06-2019 7:00,10294561.72,0.050089945,0.050089945 +04-06-2019 8:00,10295118.52,0.059133963,0.059133963 +04-06-2019 9:00,10295674.57,0.042437315,0.042437315 +04-06-2019 10:00,10296229.85,0.036871765,0.036871765 +04-06-2019 11:00,10296784.37,0.031306216,0.031306216 +04-06-2019 12:00,10297338.13,0.025044973,0.025044973 +04-06-2019 13:00,10297891.13,0.021566504,0.021566504 +04-06-2019 14:00,10298443.38,0.016696648,0.016696648 +04-06-2019 15:00,10298994.86,0.018783729,0.018783729 +04-06-2019 16:00,10299545.58,0.030610522,0.030610522 +04-06-2019 17:00,10300095.54,0.054264107,0.054264107 +04-06-2019 18:00,10300644.74,0.054959801,0.054959801 +04-06-2019 19:00,10301193.17,0.048698558,0.048698558 +04-06-2019 20:00,10301740.85,0.040350234,0.040350234 +04-06-2019 21:00,10302287.76,0.028523441,0.028523441 +04-06-2019 22:00,10302833.91,0.013913874,0.013913874 +04-06-2019 23:00,10303379.29,0.004869856,0.004869856 +05-06-2019 0:00,10303923.92,0.002782775,0.002782775 +05-06-2019 1:00,10304467.78,0.000695694,0.000695694 +05-06-2019 2:00,10305010.87,0.000695694,0.000695694 +05-06-2019 3:00,10305553.21,0.001391387,0.001391387 +05-06-2019 4:00,10306094.77,0.004869856,0.004869856 +05-06-2019 5:00,10306635.58,0.038958846,0.038958846 +05-06-2019 6:00,10307175.62,0.064699512,0.064699512 +05-06-2019 7:00,10307714.89,0.050089945,0.050089945 +05-06-2019 8:00,10308253.4,0.059133963,0.059133963 +05-06-2019 9:00,10308791.14,0.042437315,0.042437315 +05-06-2019 10:00,10309328.12,0.036871765,0.036871765 +05-06-2019 11:00,10309864.33,0.031306216,0.031306216 +05-06-2019 12:00,10310399.77,0.025044973,0.025044973 +05-06-2019 13:00,10310934.45,0.021566504,0.021566504 +05-06-2019 14:00,10311468.36,0.016696648,0.016696648 +05-06-2019 15:00,10312001.5,0.018783729,0.018783729 +05-06-2019 16:00,10312533.88,0.030610522,0.030610522 +05-06-2019 17:00,10313065.48,0.054264107,0.054264107 +05-06-2019 18:00,10313596.32,0.054959801,0.054959801 +05-06-2019 19:00,10314126.39,0.048698558,0.048698558 +05-06-2019 20:00,10314655.7,0.040350234,0.040350234 +05-06-2019 21:00,10315184.23,0.028523441,0.028523441 +05-06-2019 22:00,10315711.99,0.013913874,0.013913874 +05-06-2019 23:00,10316238.99,0.004869856,0.004869856 +06-06-2019 0:00,10316765.21,0.002782775,0.002782775 +06-06-2019 1:00,10317290.67,0.000695694,0.000695694 +06-06-2019 2:00,10317815.35,0.000695694,0.000695694 +06-06-2019 3:00,10318339.27,0.001391387,0.001391387 +06-06-2019 4:00,10318862.41,0.004869856,0.004869856 +06-06-2019 5:00,10319384.78,0.038958846,0.038958846 +06-06-2019 6:00,10319906.38,0.064699512,0.064699512 +06-06-2019 7:00,10320427.21,0.050089945,0.050089945 +06-06-2019 8:00,10320947.27,0.059133963,0.059133963 +06-06-2019 9:00,10321466.55,0.042437315,0.042437315 +06-06-2019 10:00,10321985.07,0.036871765,0.036871765 +06-06-2019 11:00,10322502.81,0.031306216,0.031306216 +06-06-2019 12:00,10323019.77,0.025044973,0.025044973 +06-06-2019 13:00,10323535.97,0.021566504,0.021566504 +06-06-2019 14:00,10324051.39,0.016696648,0.016696648 +06-06-2019 15:00,10324566.03,0.018783729,0.018783729 +06-06-2019 16:00,10325079.91,0.030610522,0.030610522 +06-06-2019 17:00,10325593,0.054264107,0.054264107 +06-06-2019 18:00,10326105.33,0.054959801,0.054959801 +06-06-2019 19:00,10326616.88,0.048698558,0.048698558 +06-06-2019 20:00,10327127.65,0.040350234,0.040350234 +06-06-2019 21:00,10327637.65,0.028523441,0.028523441 +06-06-2019 22:00,10328146.87,0.013913874,0.013913874 +06-06-2019 23:00,10328655.32,0.004869856,0.004869856 +07-06-2019 0:00,10329162.99,0.002782775,0.002782775 +07-06-2019 1:00,10329669.88,0.000695694,0.000695694 +07-06-2019 2:00,10330176,0.000695694,0.000695694 +07-06-2019 3:00,10330681.34,0.001391387,0.001391387 +07-06-2019 4:00,10331185.9,0.004869856,0.004869856 +07-06-2019 5:00,10331689.69,0.038958846,0.038958846 +07-06-2019 6:00,10332192.7,0.064699512,0.064699512 +07-06-2019 7:00,10332694.93,0.050089945,0.050089945 +07-06-2019 8:00,10333196.38,0.059133963,0.059133963 +07-06-2019 9:00,10333697.05,0.042437315,0.042437315 +07-06-2019 10:00,10334196.95,0.036871765,0.036871765 +07-06-2019 11:00,10334696.06,0.031306216,0.031306216 +07-06-2019 12:00,10335194.4,0.025044973,0.025044973 +07-06-2019 13:00,10335691.96,0.021566504,0.021566504 +07-06-2019 14:00,10336188.73,0.016696648,0.016696648 +07-06-2019 15:00,10336684.73,0.018783729,0.018783729 +07-06-2019 16:00,10337179.95,0.030610522,0.030610522 +07-06-2019 17:00,10337674.38,0.054264107,0.054264107 +07-06-2019 18:00,10338168.04,0.054959801,0.054959801 +07-06-2019 19:00,10338660.91,0.048698558,0.048698558 +07-06-2019 20:00,10339153.01,0.040350234,0.040350234 +07-06-2019 21:00,10339644.32,0.028523441,0.028523441 +07-06-2019 22:00,10340134.85,0.013913874,0.013913874 +07-06-2019 23:00,10340624.6,0.004869856,0.004869856 +08-06-2019 0:00,10341113.56,0.002782775,0.002782775 +08-06-2019 1:00,10341601.75,0.000695694,0.000695694 +08-06-2019 2:00,10342089.15,0.000695694,0.000695694 +08-06-2019 3:00,10342575.76,0.001391387,0.001391387 +08-06-2019 4:00,10343061.6,0.004869856,0.004869856 +08-06-2019 5:00,10343546.65,0.038958846,0.038958846 +08-06-2019 6:00,10344030.91,0.064699512,0.064699512 +08-06-2019 7:00,10344514.4,0.050089945,0.050089945 +08-06-2019 8:00,10344997.09,0.059133963,0.059133963 +08-06-2019 9:00,10345479.01,0.042437315,0.042437315 +08-06-2019 10:00,10345960.14,0.036871765,0.036871765 +08-06-2019 11:00,10346440.48,0.031306216,0.031306216 +08-06-2019 12:00,10346920.04,0.025044973,0.025044973 +08-06-2019 13:00,10347398.81,0.021566504,0.021566504 +08-06-2019 14:00,10347876.8,0.016696648,0.016696648 +08-06-2019 15:00,10348354,0.018783729,0.018783729 +08-06-2019 16:00,10348830.42,0.030610522,0.030610522 +08-06-2019 17:00,10349306.04,0.054264107,0.054264107 +08-06-2019 18:00,10349780.89,0.054959801,0.054959801 +08-06-2019 19:00,10350254.94,0.048698558,0.048698558 +08-06-2019 20:00,10350728.21,0.040350234,0.040350234 +08-06-2019 21:00,10351200.69,0.028523441,0.028523441 +08-06-2019 22:00,10351672.38,0.013913874,0.013913874 +08-06-2019 23:00,10352143.28,0.004869856,0.004869856 +09-06-2019 0:00,10352613.4,0.002782775,0.002782775 +09-06-2019 1:00,10353082.73,0.000695694,0.000695694 +09-06-2019 2:00,10353551.26,0.000695694,0.000695694 +09-06-2019 3:00,10354019.01,0.001391387,0.001391387 +09-06-2019 4:00,10354485.98,0.004869856,0.004869856 +09-06-2019 5:00,10354952.15,0.038958846,0.038958846 +09-06-2019 6:00,10355417.53,0.064699512,0.064699512 +09-06-2019 7:00,10355882.12,0.050089945,0.050089945 +09-06-2019 8:00,10356345.92,0.059133963,0.059133963 +09-06-2019 9:00,10356808.93,0.042437315,0.042437315 +09-06-2019 10:00,10357271.15,0.036871765,0.036871765 +09-06-2019 11:00,10357732.58,0.031306216,0.031306216 +09-06-2019 12:00,10358193.22,0.025044973,0.025044973 +09-06-2019 13:00,10358653.07,0.021566504,0.021566504 +09-06-2019 14:00,10359112.12,0.016696648,0.016696648 +09-06-2019 15:00,10359570.39,0.018783729,0.018783729 +09-06-2019 16:00,10360027.86,0.030610522,0.030610522 +09-06-2019 17:00,10360484.54,0.054264107,0.054264107 +09-06-2019 18:00,10360940.42,0.054959801,0.054959801 +09-06-2019 19:00,10361395.52,0.048698558,0.048698558 +09-06-2019 20:00,10361849.82,0.040350234,0.040350234 +09-06-2019 21:00,10362303.33,0.028523441,0.028523441 +09-06-2019 22:00,10362756.04,0.013913874,0.013913874 +09-06-2019 23:00,10363207.96,0.004869856,0.004869856 +10-06-2019 0:00,10363659.09,0.002782775,0.002782775 +10-06-2019 1:00,10364109.42,0.000695694,0.000695694 +10-06-2019 2:00,10364558.96,0.000695694,0.000695694 +10-06-2019 3:00,10365007.7,0.001391387,0.001391387 +10-06-2019 4:00,10365455.65,0.004869856,0.004869856 +10-06-2019 5:00,10365902.81,0.038958846,0.038958846 +10-06-2019 6:00,10366349.16,0.064699512,0.064699512 +10-06-2019 7:00,10366794.73,0.050089945,0.050089945 +10-06-2019 8:00,10367239.49,0.059133963,0.059133963 +10-06-2019 9:00,10367683.47,0.042437315,0.042437315 +10-06-2019 10:00,10368126.64,0.036871765,0.036871765 +10-06-2019 11:00,10368569.02,0.031306216,0.031306216 +10-06-2019 12:00,10369010.6,0.025044973,0.025044973 +10-06-2019 13:00,10369451.39,0.021566504,0.021566504 +10-06-2019 14:00,10369891.37,0.016696648,0.016696648 +10-06-2019 15:00,10370330.56,0.018783729,0.018783729 +10-06-2019 16:00,10370768.96,0.030610522,0.030610522 +10-06-2019 17:00,10371206.55,0.054264107,0.054264107 +10-06-2019 18:00,10371643.35,0.054959801,0.054959801 +10-06-2019 19:00,10372079.35,0.048698558,0.048698558 +10-06-2019 20:00,10372514.55,0.040350234,0.040350234 +10-06-2019 21:00,10372948.95,0.028523441,0.028523441 +10-06-2019 22:00,10373382.55,0.013913874,0.013913874 +10-06-2019 23:00,10373815.36,0.004869856,0.004869856 +11-06-2019 0:00,10374247.36,0.002782775,0.002782775 +11-06-2019 1:00,10374678.56,0.000695694,0.000695694 +11-06-2019 2:00,10375108.97,0.000695694,0.000695694 +11-06-2019 3:00,10375538.57,0.001391387,0.001391387 +11-06-2019 4:00,10375967.38,0.004869856,0.004869856 +11-06-2019 5:00,10376395.38,0.038958846,0.038958846 +11-06-2019 6:00,10376822.58,0.064699512,0.064699512 +11-06-2019 7:00,10377248.99,0.050089945,0.050089945 +11-06-2019 8:00,10377674.59,0.059133963,0.059133963 +11-06-2019 9:00,10378099.39,0.042437315,0.042437315 +11-06-2019 10:00,10378523.39,0.036871765,0.036871765 +11-06-2019 11:00,10378946.58,0.031306216,0.031306216 +11-06-2019 12:00,10379368.98,0.025044973,0.025044973 +11-06-2019 13:00,10379790.57,0.021566504,0.021566504 +11-06-2019 14:00,10380211.36,0.016696648,0.016696648 +11-06-2019 15:00,10380631.35,0.018783729,0.018783729 +11-06-2019 16:00,10381050.53,0.030610522,0.030610522 +11-06-2019 17:00,10381468.91,0.054264107,0.054264107 +11-06-2019 18:00,10381886.49,0.054959801,0.054959801 +11-06-2019 19:00,10382303.26,0.048698558,0.048698558 +11-06-2019 20:00,10382719.23,0.040350234,0.040350234 +11-06-2019 21:00,10383134.4,0.028523441,0.028523441 +11-06-2019 22:00,10383548.76,0.013913874,0.013913874 +11-06-2019 23:00,10383962.32,0.004869856,0.004869856 +12-06-2019 0:00,10384375.07,0.002782775,0.002782775 +12-06-2019 1:00,10384787.02,0.000695694,0.000695694 +12-06-2019 2:00,10385198.16,0.000695694,0.000695694 +12-06-2019 3:00,10385608.5,0.001391387,0.001391387 +12-06-2019 4:00,10386018.04,0.004869856,0.004869856 +12-06-2019 5:00,10386426.76,0.038958846,0.038958846 +12-06-2019 6:00,10386834.68,0.064699512,0.064699512 +12-06-2019 7:00,10387241.8,0.050089945,0.050089945 +12-06-2019 8:00,10387648.11,0.059133963,0.059133963 +12-06-2019 9:00,10388053.61,0.042437315,0.042437315 +12-06-2019 10:00,10388458.31,0.036871765,0.036871765 +12-06-2019 11:00,10388862.2,0.031306216,0.031306216 +12-06-2019 12:00,10389265.28,0.025044973,0.025044973 +12-06-2019 13:00,10389667.55,0.021566504,0.021566504 +12-06-2019 14:00,10390069.02,0.016696648,0.016696648 +12-06-2019 15:00,10390469.68,0.018783729,0.018783729 +12-06-2019 16:00,10390869.53,0.030610522,0.030610522 +12-06-2019 17:00,10391268.57,0.054264107,0.054264107 +12-06-2019 18:00,10391666.81,0.054959801,0.054959801 +12-06-2019 19:00,10392064.23,0.048698558,0.048698558 +12-06-2019 20:00,10392460.85,0.040350234,0.040350234 +12-06-2019 21:00,10392856.66,0.028523441,0.028523441 +12-06-2019 22:00,10393251.66,0.013913874,0.013913874 +12-06-2019 23:00,10393645.85,0.004869856,0.004869856 +13-06-2019 0:00,10394039.23,0.002782775,0.002782775 +13-06-2019 1:00,10394431.8,0.000695694,0.000695694 +13-06-2019 2:00,10394823.56,0.000695694,0.000695694 +13-06-2019 3:00,10395214.51,0.001391387,0.001391387 +13-06-2019 4:00,10395604.65,0.004869856,0.004869856 +13-06-2019 5:00,10395993.98,0.038958846,0.038958846 +13-06-2019 6:00,10396382.5,0.064699512,0.064699512 +13-06-2019 7:00,10396770.21,0.050089945,0.050089945 +13-06-2019 8:00,10397157.1,0.059133963,0.059133963 +13-06-2019 9:00,10397543.19,0.042437315,0.042437315 +13-06-2019 10:00,10397928.46,0.036871765,0.036871765 +13-06-2019 11:00,10398312.92,0.031306216,0.031306216 +13-06-2019 12:00,10398696.57,0.025044973,0.025044973 +13-06-2019 13:00,10399079.41,0.021566504,0.021566504 +13-06-2019 14:00,10399461.43,0.016696648,0.016696648 +13-06-2019 15:00,10399842.65,0.018783729,0.018783729 +13-06-2019 16:00,10400223.05,0.030610522,0.030610522 +13-06-2019 17:00,10400602.63,0.054264107,0.054264107 +13-06-2019 18:00,10400981.41,0.054959801,0.054959801 +13-06-2019 19:00,10401359.37,0.048698558,0.048698558 +13-06-2019 20:00,10401736.51,0.040350234,0.040350234 +13-06-2019 21:00,10402112.85,0.028523441,0.028523441 +13-06-2019 22:00,10402488.37,0.013913874,0.013913874 +13-06-2019 23:00,10402863.07,0.004869856,0.004869856 +14-06-2019 0:00,10403236.96,0.002782775,0.002782775 +14-06-2019 1:00,10403610.04,0.000695694,0.000695694 +14-06-2019 2:00,10403982.3,0.000695694,0.000695694 +14-06-2019 3:00,10404353.75,0.001391387,0.001391387 +14-06-2019 4:00,10404724.38,0.004869856,0.004869856 +14-06-2019 5:00,10405094.19,0.038958846,0.038958846 +14-06-2019 6:00,10405463.19,0.064699512,0.064699512 +14-06-2019 7:00,10405831.38,0.050089945,0.050089945 +14-06-2019 8:00,10406198.75,0.059133963,0.059133963 +14-06-2019 9:00,10406565.3,0.042437315,0.042437315 +14-06-2019 10:00,10406931.04,0.036871765,0.036871765 +14-06-2019 11:00,10407295.96,0.031306216,0.031306216 +14-06-2019 12:00,10407660.06,0.025044973,0.025044973 +14-06-2019 13:00,10408023.35,0.021566504,0.021566504 +14-06-2019 14:00,10408385.82,0.016696648,0.016696648 +14-06-2019 15:00,10408747.47,0.018783729,0.018783729 +14-06-2019 16:00,10409108.31,0.030610522,0.030610522 +14-06-2019 17:00,10409468.33,0.054264107,0.054264107 +14-06-2019 18:00,10409827.53,0.054959801,0.054959801 +14-06-2019 19:00,10410185.91,0.048698558,0.048698558 +14-06-2019 20:00,10410543.48,0.040350234,0.040350234 +14-06-2019 21:00,10410900.22,0.028523441,0.028523441 +14-06-2019 22:00,10411256.15,0.013913874,0.013913874 +14-06-2019 23:00,10411611.26,0.004869856,0.004869856 +15-06-2019 0:00,10411965.55,0.002782775,0.002782775 +15-06-2019 1:00,10412319.02,0.000695694,0.000695694 +15-06-2019 2:00,10412671.67,0.000695694,0.000695694 +15-06-2019 3:00,10413023.5,0.001391387,0.001391387 +15-06-2019 4:00,10413374.52,0.004869856,0.004869856 +15-06-2019 5:00,10413724.71,0.038958846,0.038958846 +15-06-2019 6:00,10414074.08,0.064699512,0.064699512 +15-06-2019 7:00,10414422.64,0.050089945,0.050089945 +15-06-2019 8:00,10414770.37,0.059133963,0.059133963 +15-06-2019 9:00,10415117.28,0.042437315,0.042437315 +15-06-2019 10:00,10415463.38,0.036871765,0.036871765 +15-06-2019 11:00,10415808.65,0.031306216,0.031306216 +15-06-2019 12:00,10416153.1,0.025044973,0.025044973 +15-06-2019 13:00,10416496.73,0.021566504,0.021566504 +15-06-2019 14:00,10416839.53,0.016696648,0.016696648 +15-06-2019 15:00,10417181.52,0.018783729,0.018783729 +15-06-2019 16:00,10417522.69,0.030610522,0.030610522 +15-06-2019 17:00,10417863.03,0.054264107,0.054264107 +15-06-2019 18:00,10418202.55,0.054959801,0.054959801 +15-06-2019 19:00,10418541.25,0.048698558,0.048698558 +15-06-2019 20:00,10418879.12,0.040350234,0.040350234 +15-06-2019 21:00,10419216.18,0.028523441,0.028523441 +15-06-2019 22:00,10419552.41,0.013913874,0.013913874 +15-06-2019 23:00,10419887.82,0.004869856,0.004869856 +16-06-2019 0:00,10420222.4,0.002782775,0.002782775 +16-06-2019 1:00,10420556.16,0.000695694,0.000695694 +16-06-2019 2:00,10420889.1,0.000695694,0.000695694 +16-06-2019 3:00,10421221.22,0.001391387,0.001391387 +16-06-2019 4:00,10421552.51,0.004869856,0.004869856 +16-06-2019 5:00,10421882.97,0.038958846,0.038958846 +16-06-2019 6:00,10422212.62,0.064699512,0.064699512 +16-06-2019 7:00,10422541.43,0.050089945,0.050089945 +16-06-2019 8:00,10422869.43,0.059133963,0.059133963 +16-06-2019 9:00,10423196.6,0.042437315,0.042437315 +16-06-2019 10:00,10423522.94,0.036871765,0.036871765 +16-06-2019 11:00,10423848.46,0.031306216,0.031306216 +16-06-2019 12:00,10424173.16,0.025044973,0.025044973 +16-06-2019 13:00,10424497.03,0.021566504,0.021566504 +16-06-2019 14:00,10424820.07,0.016696648,0.016696648 +16-06-2019 15:00,10425142.29,0.018783729,0.018783729 +16-06-2019 16:00,10425463.68,0.030610522,0.030610522 +16-06-2019 17:00,10425784.25,0.054264107,0.054264107 +16-06-2019 18:00,10426103.99,0.054959801,0.054959801 +16-06-2019 19:00,10426422.9,0.048698558,0.048698558 +16-06-2019 20:00,10426740.99,0.040350234,0.040350234 +16-06-2019 21:00,10427058.25,0.028523441,0.028523441 +16-06-2019 22:00,10427374.69,0.013913874,0.013913874 +16-06-2019 23:00,10427690.29,0.004869856,0.004869856 +17-06-2019 0:00,10428005.07,0.002782775,0.002782775 +17-06-2019 1:00,10428319.03,0.000695694,0.000695694 +17-06-2019 2:00,10428632.15,0.000695694,0.000695694 +17-06-2019 3:00,10428944.45,0.001391387,0.001391387 +17-06-2019 4:00,10429255.92,0.004869856,0.004869856 +17-06-2019 5:00,10429566.56,0.038958846,0.038958846 +17-06-2019 6:00,10429876.38,0.064699512,0.064699512 +17-06-2019 7:00,10430185.36,0.050089945,0.050089945 +17-06-2019 8:00,10430493.52,0.059133963,0.059133963 +17-06-2019 9:00,10430800.85,0.042437315,0.042437315 +17-06-2019 10:00,10431107.35,0.036871765,0.036871765 +17-06-2019 11:00,10431413.02,0.031306216,0.031306216 +17-06-2019 12:00,10431717.87,0.025044973,0.025044973 +17-06-2019 13:00,10432021.88,0.021566504,0.021566504 +17-06-2019 14:00,10432325.06,0.016696648,0.016696648 +17-06-2019 15:00,10432627.42,0.018783729,0.018783729 +17-06-2019 16:00,10432928.94,0.030610522,0.030610522 +17-06-2019 17:00,10433229.64,0.054264107,0.054264107 +17-06-2019 18:00,10433529.5,0.054959801,0.054959801 +17-06-2019 19:00,10433828.54,0.048698558,0.048698558 +17-06-2019 20:00,10434126.74,0.040350234,0.040350234 +17-06-2019 21:00,10434424.12,0.028523441,0.028523441 +17-06-2019 22:00,10434720.66,0.013913874,0.013913874 +17-06-2019 23:00,10435016.38,0.004869856,0.004869856 +18-06-2019 0:00,10435311.26,0.002782775,0.002782775 +18-06-2019 1:00,10435605.31,0.000695694,0.000695694 +18-06-2019 2:00,10435898.53,0.000695694,0.000695694 +18-06-2019 3:00,10436190.92,0.001391387,0.001391387 +18-06-2019 4:00,10436482.48,0.004869856,0.004869856 +18-06-2019 5:00,10436773.2,0.038958846,0.038958846 +18-06-2019 6:00,10437063.1,0.064699512,0.064699512 +18-06-2019 7:00,10437352.16,0.050089945,0.050089945 +18-06-2019 8:00,10437640.39,0.059133963,0.059133963 +18-06-2019 9:00,10437927.79,0.042437315,0.042437315 +18-06-2019 10:00,10438214.35,0.036871765,0.036871765 +18-06-2019 11:00,10438500.09,0.031306216,0.031306216 +18-06-2019 12:00,10438784.99,0.025044973,0.025044973 +18-06-2019 13:00,10439069.05,0.021566504,0.021566504 +18-06-2019 14:00,10439352.29,0.016696648,0.016696648 +18-06-2019 15:00,10439634.69,0.018783729,0.018783729 +18-06-2019 16:00,10439916.26,0.030610522,0.030610522 +18-06-2019 17:00,10440196.99,0.054264107,0.054264107 +18-06-2019 18:00,10440476.9,0.054959801,0.054959801 +18-06-2019 19:00,10440755.96,0.048698558,0.048698558 +18-06-2019 20:00,10441034.2,0.040350234,0.040350234 +18-06-2019 21:00,10441311.6,0.028523441,0.028523441 +18-06-2019 22:00,10441588.16,0.013913874,0.013913874 +18-06-2019 23:00,10441863.9,0.004869856,0.004869856 +19-06-2019 0:00,10442138.79,0.002782775,0.002782775 +19-06-2019 1:00,10442412.86,0.000695694,0.000695694 +19-06-2019 2:00,10442686.08,0.000695694,0.000695694 +19-06-2019 3:00,10442958.48,0.001391387,0.001391387 +19-06-2019 4:00,10443230.04,0.004869856,0.004869856 +19-06-2019 5:00,10443500.76,0.038958846,0.038958846 +19-06-2019 6:00,10443770.65,0.064699512,0.064699512 +19-06-2019 7:00,10444039.7,0.050089945,0.050089945 +19-06-2019 8:00,10444307.92,0.059133963,0.059133963 +19-06-2019 9:00,10444575.3,0.042437315,0.042437315 +19-06-2019 10:00,10444841.84,0.036871765,0.036871765 +19-06-2019 11:00,10445107.55,0.031306216,0.031306216 +19-06-2019 12:00,10445372.43,0.025044973,0.025044973 +19-06-2019 13:00,10445636.47,0.021566504,0.021566504 +19-06-2019 14:00,10445899.67,0.016696648,0.016696648 +19-06-2019 15:00,10446162.03,0.018783729,0.018783729 +19-06-2019 16:00,10446423.56,0.030610522,0.030610522 +19-06-2019 17:00,10446684.25,0.054264107,0.054264107 +19-06-2019 18:00,10446944.11,0.054959801,0.054959801 +19-06-2019 19:00,10447203.12,0.048698558,0.048698558 +19-06-2019 20:00,10447461.3,0.040350234,0.040350234 +19-06-2019 21:00,10447718.65,0.028523441,0.028523441 +19-06-2019 22:00,10447975.15,0.013913874,0.013913874 +19-06-2019 23:00,10448230.82,0.004869856,0.004869856 +20-06-2019 0:00,10448485.65,0.002782775,0.002782775 +20-06-2019 1:00,10448739.64,0.000695694,0.000695694 +20-06-2019 2:00,10448992.8,0.000695694,0.000695694 +20-06-2019 3:00,10449245.12,0.001391387,0.001391387 +20-06-2019 4:00,10449496.6,0.004869856,0.004869856 +20-06-2019 5:00,10449747.24,0.038958846,0.038958846 +20-06-2019 6:00,10449997.04,0.064699512,0.064699512 +20-06-2019 7:00,10450246,0.050089945,0.050089945 +20-06-2019 8:00,10450494.13,0.059133963,0.059133963 +20-06-2019 9:00,10450741.41,0.042437315,0.042437315 +20-06-2019 10:00,10450987.86,0.036871765,0.036871765 +20-06-2019 11:00,10451233.47,0.031306216,0.031306216 +20-06-2019 12:00,10451478.24,0.025044973,0.025044973 +20-06-2019 13:00,10451722.16,0.021566504,0.021566504 +20-06-2019 14:00,10451965.25,0.016696648,0.016696648 +20-06-2019 15:00,10452207.5,0.018783729,0.018783729 +20-06-2019 16:00,10452448.92,0.030610522,0.030610522 +20-06-2019 17:00,10452689.49,0.054264107,0.054264107 +20-06-2019 18:00,10452929.22,0.054959801,0.054959801 +20-06-2019 19:00,10453168.11,0.048698558,0.048698558 +20-06-2019 20:00,10453406.16,0.040350234,0.040350234 +20-06-2019 21:00,10453643.37,0.028523441,0.028523441 +20-06-2019 22:00,10453879.74,0.013913874,0.013913874 +20-06-2019 23:00,10454115.27,0.004869856,0.004869856 +21-06-2019 0:00,10454349.96,0.002782775,0.002782775 +21-06-2019 1:00,10454583.8,0.000695694,0.000695694 +21-06-2019 2:00,10454816.81,0.000695694,0.000695694 +21-06-2019 3:00,10455048.98,0.001391387,0.001391387 +21-06-2019 4:00,10455280.3,0.004869856,0.004869856 +21-06-2019 5:00,10455510.78,0.038958846,0.038958846 +21-06-2019 6:00,10455740.43,0.064699512,0.064699512 +21-06-2019 7:00,10455969.23,0.050089945,0.050089945 +21-06-2019 8:00,10456197.18,0.059133963,0.059133963 +21-06-2019 9:00,10456424.3,0.042437315,0.042437315 +21-06-2019 10:00,10456650.58,0.036871765,0.036871765 +21-06-2019 11:00,10456876.01,0.031306216,0.031306216 +21-06-2019 12:00,10457100.6,0.025044973,0.025044973 +21-06-2019 13:00,10457324.35,0.021566504,0.021566504 +21-06-2019 14:00,10457547.26,0.016696648,0.016696648 +21-06-2019 15:00,10457769.32,0.018783729,0.018783729 +21-06-2019 16:00,10457990.54,0.030610522,0.030610522 +21-06-2019 17:00,10458210.92,0.054264107,0.054264107 +21-06-2019 18:00,10458430.46,0.054959801,0.054959801 +21-06-2019 19:00,10458649.15,0.048698558,0.048698558 +21-06-2019 20:00,10458867,0.040350234,0.040350234 +21-06-2019 21:00,10459084.01,0.028523441,0.028523441 +21-06-2019 22:00,10459300.17,0.013913874,0.013913874 +21-06-2019 23:00,10459515.49,0.004869856,0.004869856 +22-06-2019 0:00,10459729.97,0.002782775,0.002782775 +22-06-2019 1:00,10459943.6,0.000695694,0.000695694 +22-06-2019 2:00,10460156.39,0.000695694,0.000695694 +22-06-2019 3:00,10460368.33,0.001391387,0.001391387 +22-06-2019 4:00,10460579.44,0.004869856,0.004869856 +22-06-2019 5:00,10460789.69,0.038958846,0.038958846 +22-06-2019 6:00,10460999.11,0.064699512,0.064699512 +22-06-2019 7:00,10461207.68,0.050089945,0.050089945 +22-06-2019 8:00,10461415.4,0.059133963,0.059133963 +22-06-2019 9:00,10461622.28,0.042437315,0.042437315 +22-06-2019 10:00,10461828.32,0.036871765,0.036871765 +22-06-2019 11:00,10462033.51,0.031306216,0.031306216 +22-06-2019 12:00,10462237.86,0.025044973,0.025044973 +22-06-2019 13:00,10462441.36,0.021566504,0.021566504 +22-06-2019 14:00,10462644.02,0.016696648,0.016696648 +22-06-2019 15:00,10462845.83,0.018783729,0.018783729 +22-06-2019 16:00,10463046.8,0.030610522,0.030610522 +22-06-2019 17:00,10463246.92,0.054264107,0.054264107 +22-06-2019 18:00,10463446.19,0.054959801,0.054959801 +22-06-2019 19:00,10463644.62,0.048698558,0.048698558 +22-06-2019 20:00,10463842.21,0.040350234,0.040350234 +22-06-2019 21:00,10464038.95,0.028523441,0.028523441 +22-06-2019 22:00,10464234.84,0.013913874,0.013913874 +22-06-2019 23:00,10464429.89,0.004869856,0.004869856 +23-06-2019 0:00,10464624.09,0.002782775,0.002782775 +23-06-2019 1:00,10464817.45,0.000695694,0.000695694 +23-06-2019 2:00,10465009.95,0.000695694,0.000695694 +23-06-2019 3:00,10465201.62,0.001391387,0.001391387 +23-06-2019 4:00,10465392.43,0.004869856,0.004869856 +23-06-2019 5:00,10465582.4,0.038958846,0.038958846 +23-06-2019 6:00,10465771.53,0.064699512,0.064699512 +23-06-2019 7:00,10465959.8,0.050089945,0.050089945 +23-06-2019 8:00,10466147.23,0.059133963,0.059133963 +23-06-2019 9:00,10466333.82,0.042437315,0.042437315 +23-06-2019 10:00,10466519.55,0.036871765,0.036871765 +23-06-2019 11:00,10466704.44,0.031306216,0.031306216 +23-06-2019 12:00,10466888.48,0.025044973,0.025044973 +23-06-2019 13:00,10467071.68,0.021566504,0.021566504 +23-06-2019 14:00,10467254.03,0.016696648,0.016696648 +23-06-2019 15:00,10467435.53,0.018783729,0.018783729 +23-06-2019 16:00,10467616.18,0.030610522,0.030610522 +23-06-2019 17:00,10467795.98,0.054264107,0.054264107 +23-06-2019 18:00,10467974.94,0.054959801,0.054959801 +23-06-2019 19:00,10468153.05,0.048698558,0.048698558 +23-06-2019 20:00,10468330.31,0.040350234,0.040350234 +23-06-2019 21:00,10468506.72,0.028523441,0.028523441 +23-06-2019 22:00,10468682.29,0.013913874,0.013913874 +23-06-2019 23:00,10468857.01,0.004869856,0.004869856 +24-06-2019 0:00,10469030.88,0.002782775,0.002782775 +24-06-2019 1:00,10469203.9,0.000695694,0.000695694 +24-06-2019 2:00,10469376.07,0.000695694,0.000695694 +24-06-2019 3:00,10469547.39,0.001391387,0.001391387 +24-06-2019 4:00,10469717.87,0.004869856,0.004869856 +24-06-2019 5:00,10469887.49,0.038958846,0.038958846 +24-06-2019 6:00,10470056.27,0.064699512,0.064699512 +24-06-2019 7:00,10470224.2,0.050089945,0.050089945 +24-06-2019 8:00,10470391.28,0.059133963,0.059133963 +24-06-2019 9:00,10470557.51,0.042437315,0.042437315 +24-06-2019 10:00,10470722.89,0.036871765,0.036871765 +24-06-2019 11:00,10470887.42,0.031306216,0.031306216 +24-06-2019 12:00,10471051.1,0.025044973,0.025044973 +24-06-2019 13:00,10471213.94,0.021566504,0.021566504 +24-06-2019 14:00,10471375.92,0.016696648,0.016696648 +24-06-2019 15:00,10471537.05,0.018783729,0.018783729 +24-06-2019 16:00,10471697.34,0.030610522,0.030610522 +24-06-2019 17:00,10471856.77,0.054264107,0.054264107 +24-06-2019 18:00,10472015.36,0.054959801,0.054959801 +24-06-2019 19:00,10472173.09,0.048698558,0.048698558 +24-06-2019 20:00,10472329.98,0.040350234,0.040350234 +24-06-2019 21:00,10472486.01,0.028523441,0.028523441 +24-06-2019 22:00,10472641.2,0.013913874,0.013913874 +24-06-2019 23:00,10472795.53,0.004869856,0.004869856 +25-06-2019 0:00,10472949.02,0.002782775,0.002782775 +25-06-2019 1:00,10473101.65,0.000695694,0.000695694 +25-06-2019 2:00,10473253.44,0.000695694,0.000695694 +25-06-2019 3:00,10473404.37,0.001391387,0.001391387 +25-06-2019 4:00,10473554.45,0.004869856,0.004869856 +25-06-2019 5:00,10473703.68,0.038958846,0.038958846 +25-06-2019 6:00,10473852.06,0.064699512,0.064699512 +25-06-2019 7:00,10473999.59,0.050089945,0.050089945 +25-06-2019 8:00,10474146.27,0.059133963,0.059133963 +25-06-2019 9:00,10474292.1,0.042437315,0.042437315 +25-06-2019 10:00,10474437.08,0.036871765,0.036871765 +25-06-2019 11:00,10474581.2,0.031306216,0.031306216 +25-06-2019 12:00,10474724.48,0.025044973,0.025044973 +25-06-2019 13:00,10474866.9,0.021566504,0.021566504 +25-06-2019 14:00,10475008.47,0.016696648,0.016696648 +25-06-2019 15:00,10475149.2,0.018783729,0.018783729 +25-06-2019 16:00,10475289.06,0.030610522,0.030610522 +25-06-2019 17:00,10475428.08,0.054264107,0.054264107 +25-06-2019 18:00,10475566.25,0.054959801,0.054959801 +25-06-2019 19:00,10475703.56,0.048698558,0.048698558 +25-06-2019 20:00,10475840.02,0.040350234,0.040350234 +25-06-2019 21:00,10475975.64,0.028523441,0.028523441 +25-06-2019 22:00,10476110.39,0.013913874,0.013913874 +25-06-2019 23:00,10476244.3,0.004869856,0.004869856 +26-06-2019 0:00,10476377.36,0.002782775,0.002782775 +26-06-2019 1:00,10476509.56,0.000695694,0.000695694 +26-06-2019 2:00,10476640.91,0.000695694,0.000695694 +26-06-2019 3:00,10476771.41,0.001391387,0.001391387 +26-06-2019 4:00,10476901.05,0.004869856,0.004869856 +26-06-2019 5:00,10477029.84,0.038958846,0.038958846 +26-06-2019 6:00,10477157.79,0.064699512,0.064699512 +26-06-2019 7:00,10477284.87,0.050089945,0.050089945 +26-06-2019 8:00,10477411.11,0.059133963,0.059133963 +26-06-2019 9:00,10477536.49,0.042437315,0.042437315 +26-06-2019 10:00,10477661.02,0.036871765,0.036871765 +26-06-2019 11:00,10477784.7,0.031306216,0.031306216 +26-06-2019 12:00,10477907.52,0.025044973,0.025044973 +26-06-2019 13:00,10478029.5,0.021566504,0.021566504 +26-06-2019 14:00,10478150.61,0.016696648,0.016696648 +26-06-2019 15:00,10478270.88,0.018783729,0.018783729 +26-06-2019 16:00,10478390.29,0.030610522,0.030610522 +26-06-2019 17:00,10478508.85,0.054264107,0.054264107 +26-06-2019 18:00,10478626.56,0.054959801,0.054959801 +26-06-2019 19:00,10478743.41,0.048698558,0.048698558 +26-06-2019 20:00,10478859.41,0.040350234,0.040350234 +26-06-2019 21:00,10478974.56,0.028523441,0.028523441 +26-06-2019 22:00,10479088.85,0.013913874,0.013913874 +26-06-2019 23:00,10479202.29,0.004869856,0.004869856 +27-06-2019 0:00,10479314.87,0.002782775,0.002782775 +27-06-2019 1:00,10479426.6,0.000695694,0.000695694 +27-06-2019 2:00,10479537.48,0.000695694,0.000695694 +27-06-2019 3:00,10479647.51,0.001391387,0.001391387 +27-06-2019 4:00,10479756.68,0.004869856,0.004869856 +27-06-2019 5:00,10479864.99,0.038958846,0.038958846 +27-06-2019 6:00,10479972.46,0.064699512,0.064699512 +27-06-2019 7:00,10480079.06,0.050089945,0.050089945 +27-06-2019 8:00,10480184.82,0.059133963,0.059133963 +27-06-2019 9:00,10480289.72,0.042437315,0.042437315 +27-06-2019 10:00,10480393.77,0.036871765,0.036871765 +27-06-2019 11:00,10480496.96,0.031306216,0.031306216 +27-06-2019 12:00,10480599.3,0.025044973,0.025044973 +27-06-2019 13:00,10480700.78,0.021566504,0.021566504 +27-06-2019 14:00,10480801.41,0.016696648,0.016696648 +27-06-2019 15:00,10480901.18,0.018783729,0.018783729 +27-06-2019 16:00,10481000.1,0.030610522,0.030610522 +27-06-2019 17:00,10481098.17,0.054264107,0.054264107 +27-06-2019 18:00,10481195.38,0.054959801,0.054959801 +27-06-2019 19:00,10481291.74,0.048698558,0.048698558 +27-06-2019 20:00,10481387.24,0.040350234,0.040350234 +27-06-2019 21:00,10481481.89,0.028523441,0.028523441 +27-06-2019 22:00,10481575.68,0.013913874,0.013913874 +27-06-2019 23:00,10481668.62,0.004869856,0.004869856 +28-06-2019 0:00,10481760.7,0.002782775,0.002782775 +28-06-2019 1:00,10481851.93,0.000695694,0.000695694 +28-06-2019 2:00,10481942.3,0.000695694,0.000695694 +28-06-2019 3:00,10482031.82,0.001391387,0.001391387 +28-06-2019 4:00,10482120.48,0.004869856,0.004869856 +28-06-2019 5:00,10482208.29,0.038958846,0.038958846 +28-06-2019 6:00,10482295.24,0.064699512,0.064699512 +28-06-2019 7:00,10482381.34,0.050089945,0.050089945 +28-06-2019 8:00,10482466.58,0.059133963,0.059133963 +28-06-2019 9:00,10482550.97,0.042437315,0.042437315 +28-06-2019 10:00,10482634.5,0.036871765,0.036871765 +28-06-2019 11:00,10482717.18,0.031306216,0.031306216 +28-06-2019 12:00,10482799,0.025044973,0.025044973 +28-06-2019 13:00,10482879.96,0.021566504,0.021566504 +28-06-2019 14:00,10482960.07,0.016696648,0.016696648 +28-06-2019 15:00,10483039.33,0.018783729,0.018783729 +28-06-2019 16:00,10483117.72,0.030610522,0.030610522 +28-06-2019 17:00,10483195.27,0.054264107,0.054264107 +28-06-2019 18:00,10483271.96,0.054959801,0.054959801 +28-06-2019 19:00,10483347.79,0.048698558,0.048698558 +28-06-2019 20:00,10483422.76,0.040350234,0.040350234 +28-06-2019 21:00,10483496.88,0.028523441,0.028523441 +28-06-2019 22:00,10483570.15,0.013913874,0.013913874 +28-06-2019 23:00,10483642.56,0.004869856,0.004869856 +29-06-2019 0:00,10483714.11,0.002782775,0.002782775 +29-06-2019 1:00,10483784.81,0.000695694,0.000695694 +29-06-2019 2:00,10483854.65,0.000695694,0.000695694 +29-06-2019 3:00,10483923.63,0.001391387,0.001391387 +29-06-2019 4:00,10483991.76,0.004869856,0.004869856 +29-06-2019 5:00,10484059.04,0.038958846,0.038958846 +29-06-2019 6:00,10484125.45,0.064699512,0.064699512 +29-06-2019 7:00,10484191.01,0.050089945,0.050089945 +29-06-2019 8:00,10484255.72,0.059133963,0.059133963 +29-06-2019 9:00,10484319.57,0.042437315,0.042437315 +29-06-2019 10:00,10484382.56,0.036871765,0.036871765 +29-06-2019 11:00,10484444.69,0.031306216,0.031306216 +29-06-2019 12:00,10484505.97,0.025044973,0.025044973 +29-06-2019 13:00,10484566.4,0.021566504,0.021566504 +29-06-2019 14:00,10484625.96,0.016696648,0.016696648 +29-06-2019 15:00,10484684.67,0.018783729,0.018783729 +29-06-2019 16:00,10484742.53,0.030610522,0.030610522 +29-06-2019 17:00,10484799.53,0.054264107,0.054264107 +29-06-2019 18:00,10484855.67,0.054959801,0.054959801 +29-06-2019 19:00,10484910.95,0.048698558,0.048698558 +29-06-2019 20:00,10484965.38,0.040350234,0.040350234 +29-06-2019 21:00,10485018.95,0.028523441,0.028523441 +29-06-2019 22:00,10485071.67,0.013913874,0.013913874 +29-06-2019 23:00,10485123.53,0.004869856,0.004869856 +30-06-2019 0:00,10485174.53,0.002782775,0.002782775 +30-06-2019 1:00,10485224.67,0.000695694,0.000695694 +30-06-2019 2:00,10485273.96,0.000695694,0.000695694 +30-06-2019 3:00,10485322.39,0.001391387,0.001391387 +30-06-2019 4:00,10485369.97,0.004869856,0.004869856 +30-06-2019 5:00,10485416.69,0.038958846,0.038958846 +30-06-2019 6:00,10485462.55,0.064699512,0.064699512 +30-06-2019 7:00,10485507.55,0.050089945,0.050089945 +30-06-2019 8:00,10485551.7,0.059133963,0.059133963 +30-06-2019 9:00,10485594.99,0.042437315,0.042437315 +30-06-2019 10:00,10485637.42,0.036871765,0.036871765 +30-06-2019 11:00,10485679,0.031306216,0.031306216 +30-06-2019 12:00,10485719.72,0.025044973,0.025044973 +30-06-2019 13:00,10485759.58,0.021566504,0.021566504 +30-06-2019 14:00,10485798.59,0.016696648,0.016696648 +30-06-2019 15:00,10485836.74,0.018783729,0.018783729 +30-06-2019 16:00,10485874.03,0.030610522,0.030610522 +30-06-2019 17:00,10485910.47,0.054264107,0.054264107 +30-06-2019 18:00,10485946.05,0.054959801,0.054959801 +30-06-2019 19:00,10485980.77,0.048698558,0.048698558 +30-06-2019 20:00,10486014.63,0.040350234,0.040350234 +30-06-2019 21:00,10486047.64,0.028523441,0.028523441 +30-06-2019 22:00,10486079.79,0.013913874,0.013913874 +30-06-2019 23:00,10486111.08,0.004869856,0.004869856 +01-07-2019 0:00,10486141.52,0.002782775,0.002782775 +01-07-2019 1:00,10486171.09,0.000695694,0.000695694 +01-07-2019 2:00,10486199.82,0.000695694,0.000695694 +01-07-2019 3:00,10486227.68,0.001391387,0.001391387 +01-07-2019 4:00,10486254.69,0.004869856,0.004869856 +01-07-2019 5:00,10486280.84,0.038958846,0.038958846 +01-07-2019 6:00,10486306.13,0.064699512,0.064699512 +01-07-2019 7:00,10486330.56,0.050089945,0.050089945 +01-07-2019 8:00,10486354.14,0.059133963,0.059133963 +01-07-2019 9:00,10486376.86,0.042437315,0.042437315 +01-07-2019 10:00,10486398.73,0.036871765,0.036871765 +01-07-2019 11:00,10486419.73,0.031306216,0.031306216 +01-07-2019 12:00,10486439.88,0.025044973,0.025044973 +01-07-2019 13:00,10486459.17,0.021566504,0.021566504 +01-07-2019 14:00,10486477.61,0.016696648,0.016696648 +01-07-2019 15:00,10486495.18,0.018783729,0.018783729 +01-07-2019 16:00,10486511.9,0.030610522,0.030610522 +01-07-2019 17:00,10486527.76,0.054264107,0.054264107 +01-07-2019 18:00,10486542.77,0.054959801,0.054959801 +01-07-2019 19:00,10486556.92,0.048698558,0.048698558 +01-07-2019 20:00,10486570.21,0.040350234,0.040350234 +01-07-2019 21:00,10486582.64,0.028523441,0.028523441 +01-07-2019 22:00,10486594.21,0.013913874,0.013913874 +01-07-2019 23:00,10486604.93,0.004869856,0.004869856 +02-07-2019 0:00,10486614.79,0.002782775,0.002782775 +02-07-2019 1:00,10486623.8,0.000695694,0.000695694 +02-07-2019 2:00,10486631.94,0.000695694,0.000695694 +02-07-2019 3:00,10486639.23,0.001391387,0.001391387 +02-07-2019 4:00,10486645.66,0.004869856,0.004869856 +02-07-2019 5:00,10486651.23,0.038958846,0.038958846 +02-07-2019 6:00,10486655.95,0.064699512,0.064699512 +02-07-2019 7:00,10486659.81,0.050089945,0.050089945 +02-07-2019 8:00,10486662.81,0.059133963,0.059133963 +02-07-2019 9:00,10486664.95,0.042437315,0.042437315 +02-07-2019 10:00,10486666.24,0.036871765,0.036871765 +02-07-2019 11:00,10486666.67,0.031306216,0.031306216 +02-07-2019 12:00,10486666.24,0.025044973,0.025044973 +02-07-2019 13:00,10486664.95,0.021566504,0.021566504 +02-07-2019 14:00,10486662.81,0.016696648,0.016696648 +02-07-2019 15:00,10486659.81,0.018783729,0.018783729 +02-07-2019 16:00,10486655.95,0.030610522,0.030610522 +02-07-2019 17:00,10486651.23,0.054264107,0.054264107 +02-07-2019 18:00,10486645.66,0.054959801,0.054959801 +02-07-2019 19:00,10486639.23,0.048698558,0.048698558 +02-07-2019 20:00,10486631.94,0.040350234,0.040350234 +02-07-2019 21:00,10486623.8,0.028523441,0.028523441 +02-07-2019 22:00,10486614.79,0.013913874,0.013913874 +02-07-2019 23:00,10486604.93,0.004869856,0.004869856 +03-07-2019 0:00,10486594.21,0.002782775,0.002782775 +03-07-2019 1:00,10486582.64,0.000695694,0.000695694 +03-07-2019 2:00,10486570.21,0.000695694,0.000695694 +03-07-2019 3:00,10486556.92,0.001391387,0.001391387 +03-07-2019 4:00,10486542.77,0.004869856,0.004869856 +03-07-2019 5:00,10486527.76,0.038958846,0.038958846 +03-07-2019 6:00,10486511.9,0.064699512,0.064699512 +03-07-2019 7:00,10486495.18,0.050089945,0.050089945 +03-07-2019 8:00,10486477.61,0.059133963,0.059133963 +03-07-2019 9:00,10486459.17,0.042437315,0.042437315 +03-07-2019 10:00,10486439.88,0.036871765,0.036871765 +03-07-2019 11:00,10486419.73,0.031306216,0.031306216 +03-07-2019 12:00,10486398.73,0.025044973,0.025044973 +03-07-2019 13:00,10486376.86,0.021566504,0.021566504 +03-07-2019 14:00,10486354.14,0.016696648,0.016696648 +03-07-2019 15:00,10486330.56,0.018783729,0.018783729 +03-07-2019 16:00,10486306.13,0.030610522,0.030610522 +03-07-2019 17:00,10486280.84,0.054264107,0.054264107 +03-07-2019 18:00,10486254.69,0.054959801,0.054959801 +03-07-2019 19:00,10486227.68,0.048698558,0.048698558 +03-07-2019 20:00,10486199.82,0.040350234,0.040350234 +03-07-2019 21:00,10486171.09,0.028523441,0.028523441 +03-07-2019 22:00,10486141.52,0.013913874,0.013913874 +03-07-2019 23:00,10486111.08,0.004869856,0.004869856 +04-07-2019 0:00,10486079.79,0.002782775,0.002782775 +04-07-2019 1:00,10486047.64,0.000695694,0.000695694 +04-07-2019 2:00,10486014.63,0.000695694,0.000695694 +04-07-2019 3:00,10485980.77,0.001391387,0.001391387 +04-07-2019 4:00,10485946.05,0.004869856,0.004869856 +04-07-2019 5:00,10485910.47,0.038958846,0.038958846 +04-07-2019 6:00,10485874.03,0.064699512,0.064699512 +04-07-2019 7:00,10485836.74,0.050089945,0.050089945 +04-07-2019 8:00,10485798.59,0.059133963,0.059133963 +04-07-2019 9:00,10485759.58,0.042437315,0.042437315 +04-07-2019 10:00,10485719.72,0.036871765,0.036871765 +04-07-2019 11:00,10485679,0.031306216,0.031306216 +04-07-2019 12:00,10485637.42,0.025044973,0.025044973 +04-07-2019 13:00,10485594.99,0.021566504,0.021566504 +04-07-2019 14:00,10485551.7,0.016696648,0.016696648 +04-07-2019 15:00,10485507.55,0.018783729,0.018783729 +04-07-2019 16:00,10485462.55,0.030610522,0.030610522 +04-07-2019 17:00,10485416.69,0.054264107,0.054264107 +04-07-2019 18:00,10485369.97,0.054959801,0.054959801 +04-07-2019 19:00,10485322.39,0.048698558,0.048698558 +04-07-2019 20:00,10485273.96,0.040350234,0.040350234 +04-07-2019 21:00,10485224.67,0.028523441,0.028523441 +04-07-2019 22:00,10485174.53,0.013913874,0.013913874 +04-07-2019 23:00,10485123.53,0.004869856,0.004869856 +05-07-2019 0:00,10485071.67,0.002782775,0.002782775 +05-07-2019 1:00,10485018.95,0.000695694,0.000695694 +05-07-2019 2:00,10484965.38,0.000695694,0.000695694 +05-07-2019 3:00,10484910.95,0.001391387,0.001391387 +05-07-2019 4:00,10484855.67,0.004869856,0.004869856 +05-07-2019 5:00,10484799.53,0.038958846,0.038958846 +05-07-2019 6:00,10484742.53,0.064699512,0.064699512 +05-07-2019 7:00,10484684.67,0.050089945,0.050089945 +05-07-2019 8:00,10484625.96,0.059133963,0.059133963 +05-07-2019 9:00,10484566.4,0.042437315,0.042437315 +05-07-2019 10:00,10484505.97,0.036871765,0.036871765 +05-07-2019 11:00,10484444.69,0.031306216,0.031306216 +05-07-2019 12:00,10484382.56,0.025044973,0.025044973 +05-07-2019 13:00,10484319.57,0.021566504,0.021566504 +05-07-2019 14:00,10484255.72,0.016696648,0.016696648 +05-07-2019 15:00,10484191.01,0.018783729,0.018783729 +05-07-2019 16:00,10484125.45,0.030610522,0.030610522 +05-07-2019 17:00,10484059.04,0.054264107,0.054264107 +05-07-2019 18:00,10483991.76,0.054959801,0.054959801 +05-07-2019 19:00,10483923.63,0.048698558,0.048698558 +05-07-2019 20:00,10483854.65,0.040350234,0.040350234 +05-07-2019 21:00,10483784.81,0.028523441,0.028523441 +05-07-2019 22:00,10483714.11,0.013913874,0.013913874 +05-07-2019 23:00,10483642.56,0.004869856,0.004869856 +06-07-2019 0:00,10483570.15,0.002782775,0.002782775 +06-07-2019 1:00,10483496.88,0.000695694,0.000695694 +06-07-2019 2:00,10483422.76,0.000695694,0.000695694 +06-07-2019 3:00,10483347.79,0.001391387,0.001391387 +06-07-2019 4:00,10483271.96,0.004869856,0.004869856 +06-07-2019 5:00,10483195.27,0.038958846,0.038958846 +06-07-2019 6:00,10483117.72,0.064699512,0.064699512 +06-07-2019 7:00,10483039.33,0.050089945,0.050089945 +06-07-2019 8:00,10482960.07,0.059133963,0.059133963 +06-07-2019 9:00,10482879.96,0.042437315,0.042437315 +06-07-2019 10:00,10482799,0.036871765,0.036871765 +06-07-2019 11:00,10482717.18,0.031306216,0.031306216 +06-07-2019 12:00,10482634.5,0.025044973,0.025044973 +06-07-2019 13:00,10482550.97,0.021566504,0.021566504 +06-07-2019 14:00,10482466.58,0.016696648,0.016696648 +06-07-2019 15:00,10482381.34,0.018783729,0.018783729 +06-07-2019 16:00,10482295.24,0.030610522,0.030610522 +06-07-2019 17:00,10482208.29,0.054264107,0.054264107 +06-07-2019 18:00,10482120.48,0.054959801,0.054959801 +06-07-2019 19:00,10482031.82,0.048698558,0.048698558 +06-07-2019 20:00,10481942.3,0.040350234,0.040350234 +06-07-2019 21:00,10481851.93,0.028523441,0.028523441 +06-07-2019 22:00,10481760.7,0.013913874,0.013913874 +06-07-2019 23:00,10481668.62,0.004869856,0.004869856 +07-07-2019 0:00,10481575.68,0.002782775,0.002782775 +07-07-2019 1:00,10481481.89,0.000695694,0.000695694 +07-07-2019 2:00,10481387.24,0.000695694,0.000695694 +07-07-2019 3:00,10481291.74,0.001391387,0.001391387 +07-07-2019 4:00,10481195.38,0.004869856,0.004869856 +07-07-2019 5:00,10481098.17,0.038958846,0.038958846 +07-07-2019 6:00,10481000.1,0.064699512,0.064699512 +07-07-2019 7:00,10480901.18,0.050089945,0.050089945 +07-07-2019 8:00,10480801.41,0.059133963,0.059133963 +07-07-2019 9:00,10480700.78,0.042437315,0.042437315 +07-07-2019 10:00,10480599.3,0.036871765,0.036871765 +07-07-2019 11:00,10480496.96,0.031306216,0.031306216 +07-07-2019 12:00,10480393.77,0.025044973,0.025044973 +07-07-2019 13:00,10480289.72,0.021566504,0.021566504 +07-07-2019 14:00,10480184.82,0.016696648,0.016696648 +07-07-2019 15:00,10480079.06,0.018783729,0.018783729 +07-07-2019 16:00,10479972.46,0.030610522,0.030610522 +07-07-2019 17:00,10479864.99,0.054264107,0.054264107 +07-07-2019 18:00,10479756.68,0.054959801,0.054959801 +07-07-2019 19:00,10479647.51,0.048698558,0.048698558 +07-07-2019 20:00,10479537.48,0.040350234,0.040350234 +07-07-2019 21:00,10479426.6,0.028523441,0.028523441 +07-07-2019 22:00,10479314.87,0.013913874,0.013913874 +07-07-2019 23:00,10479202.29,0.004869856,0.004869856 +08-07-2019 0:00,10479088.85,0.002782775,0.002782775 +08-07-2019 1:00,10478974.56,0.000695694,0.000695694 +08-07-2019 2:00,10478859.41,0.000695694,0.000695694 +08-07-2019 3:00,10478743.41,0.001391387,0.001391387 +08-07-2019 4:00,10478626.56,0.004869856,0.004869856 +08-07-2019 5:00,10478508.85,0.038958846,0.038958846 +08-07-2019 6:00,10478390.29,0.064699512,0.064699512 +08-07-2019 7:00,10478270.88,0.050089945,0.050089945 +08-07-2019 8:00,10478150.61,0.059133963,0.059133963 +08-07-2019 9:00,10478029.5,0.042437315,0.042437315 +08-07-2019 10:00,10477907.52,0.036871765,0.036871765 +08-07-2019 11:00,10477784.7,0.031306216,0.031306216 +08-07-2019 12:00,10477661.02,0.025044973,0.025044973 +08-07-2019 13:00,10477536.49,0.021566504,0.021566504 +08-07-2019 14:00,10477411.11,0.016696648,0.016696648 +08-07-2019 15:00,10477284.87,0.018783729,0.018783729 +08-07-2019 16:00,10477157.79,0.030610522,0.030610522 +08-07-2019 17:00,10477029.84,0.054264107,0.054264107 +08-07-2019 18:00,10476901.05,0.054959801,0.054959801 +08-07-2019 19:00,10476771.41,0.048698558,0.048698558 +08-07-2019 20:00,10476640.91,0.040350234,0.040350234 +08-07-2019 21:00,10476509.56,0.028523441,0.028523441 +08-07-2019 22:00,10476377.36,0.013913874,0.013913874 +08-07-2019 23:00,10476244.3,0.004869856,0.004869856 +09-07-2019 0:00,10476110.39,0.002782775,0.002782775 +09-07-2019 1:00,10475975.64,0.000695694,0.000695694 +09-07-2019 2:00,10475840.02,0.000695694,0.000695694 +09-07-2019 3:00,10475703.56,0.001391387,0.001391387 +09-07-2019 4:00,10475566.25,0.004869856,0.004869856 +09-07-2019 5:00,10475428.08,0.038958846,0.038958846 +09-07-2019 6:00,10475289.06,0.064699512,0.064699512 +09-07-2019 7:00,10475149.2,0.050089945,0.050089945 +09-07-2019 8:00,10475008.47,0.059133963,0.059133963 +09-07-2019 9:00,10474866.9,0.042437315,0.042437315 +09-07-2019 10:00,10474724.48,0.036871765,0.036871765 +09-07-2019 11:00,10474581.2,0.031306216,0.031306216 +09-07-2019 12:00,10474437.08,0.025044973,0.025044973 +09-07-2019 13:00,10474292.1,0.021566504,0.021566504 +09-07-2019 14:00,10474146.27,0.016696648,0.016696648 +09-07-2019 15:00,10473999.59,0.018783729,0.018783729 +09-07-2019 16:00,10473852.06,0.030610522,0.030610522 +09-07-2019 17:00,10473703.68,0.054264107,0.054264107 +09-07-2019 18:00,10473554.45,0.054959801,0.054959801 +09-07-2019 19:00,10473404.37,0.048698558,0.048698558 +09-07-2019 20:00,10473253.44,0.040350234,0.040350234 +09-07-2019 21:00,10473101.65,0.028523441,0.028523441 +09-07-2019 22:00,10472949.02,0.013913874,0.013913874 +09-07-2019 23:00,10472795.53,0.004869856,0.004869856 +10-07-2019 0:00,10472641.2,0.002782775,0.002782775 +10-07-2019 1:00,10472486.01,0.000695694,0.000695694 +10-07-2019 2:00,10472329.98,0.000695694,0.000695694 +10-07-2019 3:00,10472173.09,0.001391387,0.001391387 +10-07-2019 4:00,10472015.36,0.004869856,0.004869856 +10-07-2019 5:00,10471856.77,0.038958846,0.038958846 +10-07-2019 6:00,10471697.34,0.064699512,0.064699512 +10-07-2019 7:00,10471537.05,0.050089945,0.050089945 +10-07-2019 8:00,10471375.92,0.059133963,0.059133963 +10-07-2019 9:00,10471213.94,0.042437315,0.042437315 +10-07-2019 10:00,10471051.1,0.036871765,0.036871765 +10-07-2019 11:00,10470887.42,0.031306216,0.031306216 +10-07-2019 12:00,10470722.89,0.025044973,0.025044973 +10-07-2019 13:00,10470557.51,0.021566504,0.021566504 +10-07-2019 14:00,10470391.28,0.016696648,0.016696648 +10-07-2019 15:00,10470224.2,0.018783729,0.018783729 +10-07-2019 16:00,10470056.27,0.030610522,0.030610522 +10-07-2019 17:00,10469887.49,0.054264107,0.054264107 +10-07-2019 18:00,10469717.87,0.054959801,0.054959801 +10-07-2019 19:00,10469547.39,0.048698558,0.048698558 +10-07-2019 20:00,10469376.07,0.040350234,0.040350234 +10-07-2019 21:00,10469203.9,0.028523441,0.028523441 +10-07-2019 22:00,10469030.88,0.013913874,0.013913874 +10-07-2019 23:00,10468857.01,0.004869856,0.004869856 +11-07-2019 0:00,10468682.29,0.002782775,0.002782775 +11-07-2019 1:00,10468506.72,0.000695694,0.000695694 +11-07-2019 2:00,10468330.31,0.000695694,0.000695694 +11-07-2019 3:00,10468153.05,0.001391387,0.001391387 +11-07-2019 4:00,10467974.94,0.004869856,0.004869856 +11-07-2019 5:00,10467795.98,0.038958846,0.038958846 +11-07-2019 6:00,10467616.18,0.064699512,0.064699512 +11-07-2019 7:00,10467435.53,0.050089945,0.050089945 +11-07-2019 8:00,10467254.03,0.059133963,0.059133963 +11-07-2019 9:00,10467071.68,0.042437315,0.042437315 +11-07-2019 10:00,10466888.48,0.036871765,0.036871765 +11-07-2019 11:00,10466704.44,0.031306216,0.031306216 +11-07-2019 12:00,10466519.55,0.025044973,0.025044973 +11-07-2019 13:00,10466333.82,0.021566504,0.021566504 +11-07-2019 14:00,10466147.23,0.016696648,0.016696648 +11-07-2019 15:00,10465959.8,0.018783729,0.018783729 +11-07-2019 16:00,10465771.53,0.030610522,0.030610522 +11-07-2019 17:00,10465582.4,0.054264107,0.054264107 +11-07-2019 18:00,10465392.43,0.054959801,0.054959801 +11-07-2019 19:00,10465201.62,0.048698558,0.048698558 +11-07-2019 20:00,10465009.95,0.040350234,0.040350234 +11-07-2019 21:00,10464817.45,0.028523441,0.028523441 +11-07-2019 22:00,10464624.09,0.013913874,0.013913874 +11-07-2019 23:00,10464429.89,0.004869856,0.004869856 +12-07-2019 0:00,10464234.84,0.002782775,0.002782775 +12-07-2019 1:00,10464038.95,0.000695694,0.000695694 +12-07-2019 2:00,10463842.21,0.000695694,0.000695694 +12-07-2019 3:00,10463644.62,0.001391387,0.001391387 +12-07-2019 4:00,10463446.19,0.004869856,0.004869856 +12-07-2019 5:00,10463246.92,0.038958846,0.038958846 +12-07-2019 6:00,10463046.8,0.064699512,0.064699512 +12-07-2019 7:00,10462845.83,0.050089945,0.050089945 +12-07-2019 8:00,10462644.02,0.059133963,0.059133963 +12-07-2019 9:00,10462441.36,0.042437315,0.042437315 +12-07-2019 10:00,10462237.86,0.036871765,0.036871765 +12-07-2019 11:00,10462033.51,0.031306216,0.031306216 +12-07-2019 12:00,10461828.32,0.025044973,0.025044973 +12-07-2019 13:00,10461622.28,0.021566504,0.021566504 +12-07-2019 14:00,10461415.4,0.016696648,0.016696648 +12-07-2019 15:00,10461207.68,0.018783729,0.018783729 +12-07-2019 16:00,10460999.11,0.030610522,0.030610522 +12-07-2019 17:00,10460789.69,0.054264107,0.054264107 +12-07-2019 18:00,10460579.44,0.054959801,0.054959801 +12-07-2019 19:00,10460368.33,0.048698558,0.048698558 +12-07-2019 20:00,10460156.39,0.040350234,0.040350234 +12-07-2019 21:00,10459943.6,0.028523441,0.028523441 +12-07-2019 22:00,10459729.97,0.013913874,0.013913874 +12-07-2019 23:00,10459515.49,0.004869856,0.004869856 +13-07-2019 0:00,10459300.17,0.002782775,0.002782775 +13-07-2019 1:00,10459084.01,0.000695694,0.000695694 +13-07-2019 2:00,10458867,0.000695694,0.000695694 +13-07-2019 3:00,10458649.15,0.001391387,0.001391387 +13-07-2019 4:00,10458430.46,0.004869856,0.004869856 +13-07-2019 5:00,10458210.92,0.038958846,0.038958846 +13-07-2019 6:00,10457990.54,0.064699512,0.064699512 +13-07-2019 7:00,10457769.32,0.050089945,0.050089945 +13-07-2019 8:00,10457547.26,0.059133963,0.059133963 +13-07-2019 9:00,10457324.35,0.042437315,0.042437315 +13-07-2019 10:00,10457100.6,0.036871765,0.036871765 +13-07-2019 11:00,10456876.01,0.031306216,0.031306216 +13-07-2019 12:00,10456650.58,0.025044973,0.025044973 +13-07-2019 13:00,10456424.3,0.021566504,0.021566504 +13-07-2019 14:00,10456197.18,0.016696648,0.016696648 +13-07-2019 15:00,10455969.23,0.018783729,0.018783729 +13-07-2019 16:00,10455740.43,0.030610522,0.030610522 +13-07-2019 17:00,10455510.78,0.054264107,0.054264107 +13-07-2019 18:00,10455280.3,0.054959801,0.054959801 +13-07-2019 19:00,10455048.98,0.048698558,0.048698558 +13-07-2019 20:00,10454816.81,0.040350234,0.040350234 +13-07-2019 21:00,10454583.8,0.028523441,0.028523441 +13-07-2019 22:00,10454349.96,0.013913874,0.013913874 +13-07-2019 23:00,10454115.27,0.004869856,0.004869856 +14-07-2019 0:00,10453879.74,0.002782775,0.002782775 +14-07-2019 1:00,10453643.37,0.000695694,0.000695694 +14-07-2019 2:00,10453406.16,0.000695694,0.000695694 +14-07-2019 3:00,10453168.11,0.001391387,0.001391387 +14-07-2019 4:00,10452929.22,0.004869856,0.004869856 +14-07-2019 5:00,10452689.49,0.038958846,0.038958846 +14-07-2019 6:00,10452448.92,0.064699512,0.064699512 +14-07-2019 7:00,10452207.5,0.050089945,0.050089945 +14-07-2019 8:00,10451965.25,0.059133963,0.059133963 +14-07-2019 9:00,10451722.16,0.042437315,0.042437315 +14-07-2019 10:00,10451478.24,0.036871765,0.036871765 +14-07-2019 11:00,10451233.47,0.031306216,0.031306216 +14-07-2019 12:00,10450987.86,0.025044973,0.025044973 +14-07-2019 13:00,10450741.41,0.021566504,0.021566504 +14-07-2019 14:00,10450494.13,0.016696648,0.016696648 +14-07-2019 15:00,10450246,0.018783729,0.018783729 +14-07-2019 16:00,10449997.04,0.030610522,0.030610522 +14-07-2019 17:00,10449747.24,0.054264107,0.054264107 +14-07-2019 18:00,10449496.6,0.054959801,0.054959801 +14-07-2019 19:00,10449245.12,0.048698558,0.048698558 +14-07-2019 20:00,10448992.8,0.040350234,0.040350234 +14-07-2019 21:00,10448739.64,0.028523441,0.028523441 +14-07-2019 22:00,10448485.65,0.013913874,0.013913874 +14-07-2019 23:00,10448230.82,0.004869856,0.004869856 +15-07-2019 0:00,10447975.15,0.002782775,0.002782775 +15-07-2019 1:00,10447718.65,0.000695694,0.000695694 +15-07-2019 2:00,10447461.3,0.000695694,0.000695694 +15-07-2019 3:00,10447203.12,0.001391387,0.001391387 +15-07-2019 4:00,10446944.11,0.004869856,0.004869856 +15-07-2019 5:00,10446684.25,0.038958846,0.038958846 +15-07-2019 6:00,10446423.56,0.064699512,0.064699512 +15-07-2019 7:00,10446162.03,0.050089945,0.050089945 +15-07-2019 8:00,10445899.67,0.059133963,0.059133963 +15-07-2019 9:00,10445636.47,0.042437315,0.042437315 +15-07-2019 10:00,10445372.43,0.036871765,0.036871765 +15-07-2019 11:00,10445107.55,0.031306216,0.031306216 +15-07-2019 12:00,10444841.84,0.025044973,0.025044973 +15-07-2019 13:00,10444575.3,0.021566504,0.021566504 +15-07-2019 14:00,10444307.92,0.016696648,0.016696648 +15-07-2019 15:00,10444039.7,0.018783729,0.018783729 +15-07-2019 16:00,10443770.65,0.030610522,0.030610522 +15-07-2019 17:00,10443500.76,0.054264107,0.054264107 +15-07-2019 18:00,10443230.04,0.054959801,0.054959801 +15-07-2019 19:00,10442958.48,0.048698558,0.048698558 +15-07-2019 20:00,10442686.08,0.040350234,0.040350234 +15-07-2019 21:00,10442412.86,0.028523441,0.028523441 +15-07-2019 22:00,10442138.79,0.013913874,0.013913874 +15-07-2019 23:00,10441863.9,0.004869856,0.004869856 +16-07-2019 0:00,10441588.16,0.002782775,0.002782775 +16-07-2019 1:00,10441311.6,0.000695694,0.000695694 +16-07-2019 2:00,10441034.2,0.000695694,0.000695694 +16-07-2019 3:00,10440755.96,0.001391387,0.001391387 +16-07-2019 4:00,10440476.9,0.004869856,0.004869856 +16-07-2019 5:00,10440196.99,0.038958846,0.038958846 +16-07-2019 6:00,10439916.26,0.064699512,0.064699512 +16-07-2019 7:00,10439634.69,0.050089945,0.050089945 +16-07-2019 8:00,10439352.29,0.059133963,0.059133963 +16-07-2019 9:00,10439069.05,0.042437315,0.042437315 +16-07-2019 10:00,10438784.99,0.036871765,0.036871765 +16-07-2019 11:00,10438500.09,0.031306216,0.031306216 +16-07-2019 12:00,10438214.35,0.025044973,0.025044973 +16-07-2019 13:00,10437927.79,0.021566504,0.021566504 +16-07-2019 14:00,10437640.39,0.016696648,0.016696648 +16-07-2019 15:00,10437352.16,0.018783729,0.018783729 +16-07-2019 16:00,10437063.1,0.030610522,0.030610522 +16-07-2019 17:00,10436773.2,0.054264107,0.054264107 +16-07-2019 18:00,10436482.48,0.054959801,0.054959801 +16-07-2019 19:00,10436190.92,0.048698558,0.048698558 +16-07-2019 20:00,10435898.53,0.040350234,0.040350234 +16-07-2019 21:00,10435605.31,0.028523441,0.028523441 +16-07-2019 22:00,10435311.26,0.013913874,0.013913874 +16-07-2019 23:00,10435016.38,0.004869856,0.004869856 +17-07-2019 0:00,10434720.66,0.002782775,0.002782775 +17-07-2019 1:00,10434424.12,0.000695694,0.000695694 +17-07-2019 2:00,10434126.74,0.000695694,0.000695694 +17-07-2019 3:00,10433828.54,0.001391387,0.001391387 +17-07-2019 4:00,10433529.5,0.004869856,0.004869856 +17-07-2019 5:00,10433229.64,0.038958846,0.038958846 +17-07-2019 6:00,10432928.94,0.064699512,0.064699512 +17-07-2019 7:00,10432627.42,0.050089945,0.050089945 +17-07-2019 8:00,10432325.06,0.059133963,0.059133963 +17-07-2019 9:00,10432021.88,0.042437315,0.042437315 +17-07-2019 10:00,10431717.87,0.036871765,0.036871765 +17-07-2019 11:00,10431413.02,0.031306216,0.031306216 +17-07-2019 12:00,10431107.35,0.025044973,0.025044973 +17-07-2019 13:00,10430800.85,0.021566504,0.021566504 +17-07-2019 14:00,10430493.52,0.016696648,0.016696648 +17-07-2019 15:00,10430185.36,0.018783729,0.018783729 +17-07-2019 16:00,10429876.38,0.030610522,0.030610522 +17-07-2019 17:00,10429566.56,0.054264107,0.054264107 +17-07-2019 18:00,10429255.92,0.054959801,0.054959801 +17-07-2019 19:00,10428944.45,0.048698558,0.048698558 +17-07-2019 20:00,10428632.15,0.040350234,0.040350234 +17-07-2019 21:00,10428319.03,0.028523441,0.028523441 +17-07-2019 22:00,10428005.07,0.013913874,0.013913874 +17-07-2019 23:00,10427690.29,0.004869856,0.004869856 +18-07-2019 0:00,10427374.69,0.002782775,0.002782775 +18-07-2019 1:00,10427058.25,0.000695694,0.000695694 +18-07-2019 2:00,10426740.99,0.000695694,0.000695694 +18-07-2019 3:00,10426422.9,0.001391387,0.001391387 +18-07-2019 4:00,10426103.99,0.004869856,0.004869856 +18-07-2019 5:00,10425784.25,0.038958846,0.038958846 +18-07-2019 6:00,10425463.68,0.064699512,0.064699512 +18-07-2019 7:00,10425142.29,0.050089945,0.050089945 +18-07-2019 8:00,10424820.07,0.059133963,0.059133963 +18-07-2019 9:00,10424497.03,0.042437315,0.042437315 +18-07-2019 10:00,10424173.16,0.036871765,0.036871765 +18-07-2019 11:00,10423848.46,0.031306216,0.031306216 +18-07-2019 12:00,10423522.94,0.025044973,0.025044973 +18-07-2019 13:00,10423196.6,0.021566504,0.021566504 +18-07-2019 14:00,10422869.43,0.016696648,0.016696648 +18-07-2019 15:00,10422541.43,0.018783729,0.018783729 +18-07-2019 16:00,10422212.62,0.030610522,0.030610522 +18-07-2019 17:00,10421882.97,0.054264107,0.054264107 +18-07-2019 18:00,10421552.51,0.054959801,0.054959801 +18-07-2019 19:00,10421221.22,0.048698558,0.048698558 +18-07-2019 20:00,10420889.1,0.040350234,0.040350234 +18-07-2019 21:00,10420556.16,0.028523441,0.028523441 +18-07-2019 22:00,10420222.4,0.013913874,0.013913874 +18-07-2019 23:00,10419887.82,0.004869856,0.004869856 +19-07-2019 0:00,10419552.41,0.002782775,0.002782775 +19-07-2019 1:00,10419216.18,0.000695694,0.000695694 +19-07-2019 2:00,10418879.12,0.000695694,0.000695694 +19-07-2019 3:00,10418541.25,0.001391387,0.001391387 +19-07-2019 4:00,10418202.55,0.004869856,0.004869856 +19-07-2019 5:00,10417863.03,0.038958846,0.038958846 +19-07-2019 6:00,10417522.69,0.064699512,0.064699512 +19-07-2019 7:00,10417181.52,0.050089945,0.050089945 +19-07-2019 8:00,10416839.53,0.059133963,0.059133963 +19-07-2019 9:00,10416496.73,0.042437315,0.042437315 +19-07-2019 10:00,10416153.1,0.036871765,0.036871765 +19-07-2019 11:00,10415808.65,0.031306216,0.031306216 +19-07-2019 12:00,10415463.38,0.025044973,0.025044973 +19-07-2019 13:00,10415117.28,0.021566504,0.021566504 +19-07-2019 14:00,10414770.37,0.016696648,0.016696648 +19-07-2019 15:00,10414422.64,0.018783729,0.018783729 +19-07-2019 16:00,10414074.08,0.030610522,0.030610522 +19-07-2019 17:00,10413724.71,0.054264107,0.054264107 +19-07-2019 18:00,10413374.52,0.054959801,0.054959801 +19-07-2019 19:00,10413023.5,0.048698558,0.048698558 +19-07-2019 20:00,10412671.67,0.040350234,0.040350234 +19-07-2019 21:00,10412319.02,0.028523441,0.028523441 +19-07-2019 22:00,10411965.55,0.013913874,0.013913874 +19-07-2019 23:00,10411611.26,0.004869856,0.004869856 +20-07-2019 0:00,10411256.15,0.002782775,0.002782775 +20-07-2019 1:00,10410900.22,0.000695694,0.000695694 +20-07-2019 2:00,10410543.48,0.000695694,0.000695694 +20-07-2019 3:00,10410185.91,0.001391387,0.001391387 +20-07-2019 4:00,10409827.53,0.004869856,0.004869856 +20-07-2019 5:00,10409468.33,0.038958846,0.038958846 +20-07-2019 6:00,10409108.31,0.064699512,0.064699512 +20-07-2019 7:00,10408747.47,0.050089945,0.050089945 +20-07-2019 8:00,10408385.82,0.059133963,0.059133963 +20-07-2019 9:00,10408023.35,0.042437315,0.042437315 +20-07-2019 10:00,10407660.06,0.036871765,0.036871765 +20-07-2019 11:00,10407295.96,0.031306216,0.031306216 +20-07-2019 12:00,10406931.04,0.025044973,0.025044973 +20-07-2019 13:00,10406565.3,0.021566504,0.021566504 +20-07-2019 14:00,10406198.75,0.016696648,0.016696648 +20-07-2019 15:00,10405831.38,0.018783729,0.018783729 +20-07-2019 16:00,10405463.19,0.030610522,0.030610522 +20-07-2019 17:00,10405094.19,0.054264107,0.054264107 +20-07-2019 18:00,10404724.38,0.054959801,0.054959801 +20-07-2019 19:00,10404353.75,0.048698558,0.048698558 +20-07-2019 20:00,10403982.3,0.040350234,0.040350234 +20-07-2019 21:00,10403610.04,0.028523441,0.028523441 +20-07-2019 22:00,10403236.96,0.013913874,0.013913874 +20-07-2019 23:00,10402863.07,0.004869856,0.004869856 +21-07-2019 0:00,10402488.37,0.002782775,0.002782775 +21-07-2019 1:00,10402112.85,0.000695694,0.000695694 +21-07-2019 2:00,10401736.51,0.000695694,0.000695694 +21-07-2019 3:00,10401359.37,0.001391387,0.001391387 +21-07-2019 4:00,10400981.41,0.004869856,0.004869856 +21-07-2019 5:00,10400602.63,0.038958846,0.038958846 +21-07-2019 6:00,10400223.05,0.064699512,0.064699512 +21-07-2019 7:00,10399842.65,0.050089945,0.050089945 +21-07-2019 8:00,10399461.43,0.059133963,0.059133963 +21-07-2019 9:00,10399079.41,0.042437315,0.042437315 +21-07-2019 10:00,10398696.57,0.036871765,0.036871765 +21-07-2019 11:00,10398312.92,0.031306216,0.031306216 +21-07-2019 12:00,10397928.46,0.025044973,0.025044973 +21-07-2019 13:00,10397543.19,0.021566504,0.021566504 +21-07-2019 14:00,10397157.1,0.016696648,0.016696648 +21-07-2019 15:00,10396770.21,0.018783729,0.018783729 +21-07-2019 16:00,10396382.5,0.030610522,0.030610522 +21-07-2019 17:00,10395993.98,0.054264107,0.054264107 +21-07-2019 18:00,10395604.65,0.054959801,0.054959801 +21-07-2019 19:00,10395214.51,0.048698558,0.048698558 +21-07-2019 20:00,10394823.56,0.040350234,0.040350234 +21-07-2019 21:00,10394431.8,0.028523441,0.028523441 +21-07-2019 22:00,10394039.23,0.013913874,0.013913874 +21-07-2019 23:00,10393645.85,0.004869856,0.004869856 +22-07-2019 0:00,10393251.66,0.002782775,0.002782775 +22-07-2019 1:00,10392856.66,0.000695694,0.000695694 +22-07-2019 2:00,10392460.85,0.000695694,0.000695694 +22-07-2019 3:00,10392064.23,0.001391387,0.001391387 +22-07-2019 4:00,10391666.81,0.004869856,0.004869856 +22-07-2019 5:00,10391268.57,0.038958846,0.038958846 +22-07-2019 6:00,10390869.53,0.064699512,0.064699512 +22-07-2019 7:00,10390469.68,0.050089945,0.050089945 +22-07-2019 8:00,10390069.02,0.059133963,0.059133963 +22-07-2019 9:00,10389667.55,0.042437315,0.042437315 +22-07-2019 10:00,10389265.28,0.036871765,0.036871765 +22-07-2019 11:00,10388862.2,0.031306216,0.031306216 +22-07-2019 12:00,10388458.31,0.025044973,0.025044973 +22-07-2019 13:00,10388053.61,0.021566504,0.021566504 +22-07-2019 14:00,10387648.11,0.016696648,0.016696648 +22-07-2019 15:00,10387241.8,0.018783729,0.018783729 +22-07-2019 16:00,10386834.68,0.030610522,0.030610522 +22-07-2019 17:00,10386426.76,0.054264107,0.054264107 +22-07-2019 18:00,10386018.04,0.054959801,0.054959801 +22-07-2019 19:00,10385608.5,0.048698558,0.048698558 +22-07-2019 20:00,10385198.16,0.040350234,0.040350234 +22-07-2019 21:00,10384787.02,0.028523441,0.028523441 +22-07-2019 22:00,10384375.07,0.013913874,0.013913874 +22-07-2019 23:00,10383962.32,0.004869856,0.004869856 +23-07-2019 0:00,10383548.76,0.002782775,0.002782775 +23-07-2019 1:00,10383134.4,0.000695694,0.000695694 +23-07-2019 2:00,10382719.23,0.000695694,0.000695694 +23-07-2019 3:00,10382303.26,0.001391387,0.001391387 +23-07-2019 4:00,10381886.49,0.004869856,0.004869856 +23-07-2019 5:00,10381468.91,0.038958846,0.038958846 +23-07-2019 6:00,10381050.53,0.064699512,0.064699512 +23-07-2019 7:00,10380631.35,0.050089945,0.050089945 +23-07-2019 8:00,10380211.36,0.059133963,0.059133963 +23-07-2019 9:00,10379790.57,0.042437315,0.042437315 +23-07-2019 10:00,10379368.98,0.036871765,0.036871765 +23-07-2019 11:00,10378946.58,0.031306216,0.031306216 +23-07-2019 12:00,10378523.39,0.025044973,0.025044973 +23-07-2019 13:00,10378099.39,0.021566504,0.021566504 +23-07-2019 14:00,10377674.59,0.016696648,0.016696648 +23-07-2019 15:00,10377248.99,0.018783729,0.018783729 +23-07-2019 16:00,10376822.58,0.030610522,0.030610522 +23-07-2019 17:00,10376395.38,0.054264107,0.054264107 +23-07-2019 18:00,10375967.38,0.054959801,0.054959801 +23-07-2019 19:00,10375538.57,0.048698558,0.048698558 +23-07-2019 20:00,10375108.97,0.040350234,0.040350234 +23-07-2019 21:00,10374678.56,0.028523441,0.028523441 +23-07-2019 22:00,10374247.36,0.013913874,0.013913874 +23-07-2019 23:00,10373815.36,0.004869856,0.004869856 +24-07-2019 0:00,10373382.55,0.002782775,0.002782775 +24-07-2019 1:00,10372948.95,0.000695694,0.000695694 +24-07-2019 2:00,10372514.55,0.000695694,0.000695694 +24-07-2019 3:00,10372079.35,0.001391387,0.001391387 +24-07-2019 4:00,10371643.35,0.004869856,0.004869856 +24-07-2019 5:00,10371206.55,0.038958846,0.038958846 +24-07-2019 6:00,10370768.96,0.064699512,0.064699512 +24-07-2019 7:00,10370330.56,0.050089945,0.050089945 +24-07-2019 8:00,10369891.37,0.059133963,0.059133963 +24-07-2019 9:00,10369451.39,0.042437315,0.042437315 +24-07-2019 10:00,10369010.6,0.036871765,0.036871765 +24-07-2019 11:00,10368569.02,0.031306216,0.031306216 +24-07-2019 12:00,10368126.64,0.025044973,0.025044973 +24-07-2019 13:00,10367683.47,0.021566504,0.021566504 +24-07-2019 14:00,10367239.49,0.016696648,0.016696648 +24-07-2019 15:00,10366794.73,0.018783729,0.018783729 +24-07-2019 16:00,10366349.16,0.030610522,0.030610522 +24-07-2019 17:00,10365902.81,0.054264107,0.054264107 +24-07-2019 18:00,10365455.65,0.054959801,0.054959801 +24-07-2019 19:00,10365007.7,0.048698558,0.048698558 +24-07-2019 20:00,10364558.96,0.040350234,0.040350234 +24-07-2019 21:00,10364109.42,0.028523441,0.028523441 +24-07-2019 22:00,10363659.09,0.013913874,0.013913874 +24-07-2019 23:00,10363207.96,0.004869856,0.004869856 +25-07-2019 0:00,10362756.04,0.002782775,0.002782775 +25-07-2019 1:00,10362303.33,0.000695694,0.000695694 +25-07-2019 2:00,10361849.82,0.000695694,0.000695694 +25-07-2019 3:00,10361395.52,0.001391387,0.001391387 +25-07-2019 4:00,10360940.42,0.004869856,0.004869856 +25-07-2019 5:00,10360484.54,0.038958846,0.038958846 +25-07-2019 6:00,10360027.86,0.064699512,0.064699512 +25-07-2019 7:00,10359570.39,0.050089945,0.050089945 +25-07-2019 8:00,10359112.12,0.059133963,0.059133963 +25-07-2019 9:00,10358653.07,0.042437315,0.042437315 +25-07-2019 10:00,10358193.22,0.036871765,0.036871765 +25-07-2019 11:00,10357732.58,0.031306216,0.031306216 +25-07-2019 12:00,10357271.15,0.025044973,0.025044973 +25-07-2019 13:00,10356808.93,0.021566504,0.021566504 +25-07-2019 14:00,10356345.92,0.016696648,0.016696648 +25-07-2019 15:00,10355882.12,0.018783729,0.018783729 +25-07-2019 16:00,10355417.53,0.030610522,0.030610522 +25-07-2019 17:00,10354952.15,0.054264107,0.054264107 +25-07-2019 18:00,10354485.98,0.054959801,0.054959801 +25-07-2019 19:00,10354019.01,0.048698558,0.048698558 +25-07-2019 20:00,10353551.26,0.040350234,0.040350234 +25-07-2019 21:00,10353082.73,0.028523441,0.028523441 +25-07-2019 22:00,10352613.4,0.013913874,0.013913874 +25-07-2019 23:00,10352143.28,0.004869856,0.004869856 +26-07-2019 0:00,10351672.38,0.002782775,0.002782775 +26-07-2019 1:00,10351200.69,0.000695694,0.000695694 +26-07-2019 2:00,10350728.21,0.000695694,0.000695694 +26-07-2019 3:00,10350254.94,0.001391387,0.001391387 +26-07-2019 4:00,10349780.89,0.004869856,0.004869856 +26-07-2019 5:00,10349306.04,0.038958846,0.038958846 +26-07-2019 6:00,10348830.42,0.064699512,0.064699512 +26-07-2019 7:00,10348354,0.050089945,0.050089945 +26-07-2019 8:00,10347876.8,0.059133963,0.059133963 +26-07-2019 9:00,10347398.81,0.042437315,0.042437315 +26-07-2019 10:00,10346920.04,0.036871765,0.036871765 +26-07-2019 11:00,10346440.48,0.031306216,0.031306216 +26-07-2019 12:00,10345960.14,0.025044973,0.025044973 +26-07-2019 13:00,10345479.01,0.021566504,0.021566504 +26-07-2019 14:00,10344997.09,0.016696648,0.016696648 +26-07-2019 15:00,10344514.4,0.018783729,0.018783729 +26-07-2019 16:00,10344030.91,0.030610522,0.030610522 +26-07-2019 17:00,10343546.65,0.054264107,0.054264107 +26-07-2019 18:00,10343061.6,0.054959801,0.054959801 +26-07-2019 19:00,10342575.76,0.048698558,0.048698558 +26-07-2019 20:00,10342089.15,0.040350234,0.040350234 +26-07-2019 21:00,10341601.75,0.028523441,0.028523441 +26-07-2019 22:00,10341113.56,0.013913874,0.013913874 +26-07-2019 23:00,10340624.6,0.004869856,0.004869856 +27-07-2019 0:00,10340134.85,0.002782775,0.002782775 +27-07-2019 1:00,10339644.32,0.000695694,0.000695694 +27-07-2019 2:00,10339153.01,0.000695694,0.000695694 +27-07-2019 3:00,10338660.91,0.001391387,0.001391387 +27-07-2019 4:00,10338168.04,0.004869856,0.004869856 +27-07-2019 5:00,10337674.38,0.038958846,0.038958846 +27-07-2019 6:00,10337179.95,0.064699512,0.064699512 +27-07-2019 7:00,10336684.73,0.050089945,0.050089945 +27-07-2019 8:00,10336188.73,0.059133963,0.059133963 +27-07-2019 9:00,10335691.96,0.042437315,0.042437315 +27-07-2019 10:00,10335194.4,0.036871765,0.036871765 +27-07-2019 11:00,10334696.06,0.031306216,0.031306216 +27-07-2019 12:00,10334196.95,0.025044973,0.025044973 +27-07-2019 13:00,10333697.05,0.021566504,0.021566504 +27-07-2019 14:00,10333196.38,0.016696648,0.016696648 +27-07-2019 15:00,10332694.93,0.018783729,0.018783729 +27-07-2019 16:00,10332192.7,0.030610522,0.030610522 +27-07-2019 17:00,10331689.69,0.054264107,0.054264107 +27-07-2019 18:00,10331185.9,0.054959801,0.054959801 +27-07-2019 19:00,10330681.34,0.048698558,0.048698558 +27-07-2019 20:00,10330176,0.040350234,0.040350234 +27-07-2019 21:00,10329669.88,0.028523441,0.028523441 +27-07-2019 22:00,10329162.99,0.013913874,0.013913874 +27-07-2019 23:00,10328655.32,0.004869856,0.004869856 +28-07-2019 0:00,10328146.87,0.002782775,0.002782775 +28-07-2019 1:00,10327637.65,0.000695694,0.000695694 +28-07-2019 2:00,10327127.65,0.000695694,0.000695694 +28-07-2019 3:00,10326616.88,0.001391387,0.001391387 +28-07-2019 4:00,10326105.33,0.004869856,0.004869856 +28-07-2019 5:00,10325593,0.038958846,0.038958846 +28-07-2019 6:00,10325079.91,0.064699512,0.064699512 +28-07-2019 7:00,10324566.03,0.050089945,0.050089945 +28-07-2019 8:00,10324051.39,0.059133963,0.059133963 +28-07-2019 9:00,10323535.97,0.042437315,0.042437315 +28-07-2019 10:00,10323019.77,0.036871765,0.036871765 +28-07-2019 11:00,10322502.81,0.031306216,0.031306216 +28-07-2019 12:00,10321985.07,0.025044973,0.025044973 +28-07-2019 13:00,10321466.55,0.021566504,0.021566504 +28-07-2019 14:00,10320947.27,0.016696648,0.016696648 +28-07-2019 15:00,10320427.21,0.018783729,0.018783729 +28-07-2019 16:00,10319906.38,0.030610522,0.030610522 +28-07-2019 17:00,10319384.78,0.054264107,0.054264107 +28-07-2019 18:00,10318862.41,0.054959801,0.054959801 +28-07-2019 19:00,10318339.27,0.048698558,0.048698558 +28-07-2019 20:00,10317815.35,0.040350234,0.040350234 +28-07-2019 21:00,10317290.67,0.028523441,0.028523441 +28-07-2019 22:00,10316765.21,0.013913874,0.013913874 +28-07-2019 23:00,10316238.99,0.004869856,0.004869856 +29-07-2019 0:00,10315711.99,0.002782775,0.002782775 +29-07-2019 1:00,10315184.23,0.000695694,0.000695694 +29-07-2019 2:00,10314655.7,0.000695694,0.000695694 +29-07-2019 3:00,10314126.39,0.001391387,0.001391387 +29-07-2019 4:00,10313596.32,0.004869856,0.004869856 +29-07-2019 5:00,10313065.48,0.038958846,0.038958846 +29-07-2019 6:00,10312533.88,0.064699512,0.064699512 +29-07-2019 7:00,10312001.5,0.050089945,0.050089945 +29-07-2019 8:00,10311468.36,0.059133963,0.059133963 +29-07-2019 9:00,10310934.45,0.042437315,0.042437315 +29-07-2019 10:00,10310399.77,0.036871765,0.036871765 +29-07-2019 11:00,10309864.33,0.031306216,0.031306216 +29-07-2019 12:00,10309328.12,0.025044973,0.025044973 +29-07-2019 13:00,10308791.14,0.021566504,0.021566504 +29-07-2019 14:00,10308253.4,0.016696648,0.016696648 +29-07-2019 15:00,10307714.89,0.018783729,0.018783729 +29-07-2019 16:00,10307175.62,0.030610522,0.030610522 +29-07-2019 17:00,10306635.58,0.054264107,0.054264107 +29-07-2019 18:00,10306094.77,0.054959801,0.054959801 +29-07-2019 19:00,10305553.21,0.048698558,0.048698558 +29-07-2019 20:00,10305010.87,0.040350234,0.040350234 +29-07-2019 21:00,10304467.78,0.028523441,0.028523441 +29-07-2019 22:00,10303923.92,0.013913874,0.013913874 +29-07-2019 23:00,10303379.29,0.004869856,0.004869856 +30-07-2019 0:00,10302833.91,0.002782775,0.002782775 +30-07-2019 1:00,10302287.76,0.000695694,0.000695694 +30-07-2019 2:00,10301740.85,0.000695694,0.000695694 +30-07-2019 3:00,10301193.17,0.001391387,0.001391387 +30-07-2019 4:00,10300644.74,0.004869856,0.004869856 +30-07-2019 5:00,10300095.54,0.038958846,0.038958846 +30-07-2019 6:00,10299545.58,0.064699512,0.064699512 +30-07-2019 7:00,10298994.86,0.050089945,0.050089945 +30-07-2019 8:00,10298443.38,0.059133963,0.059133963 +30-07-2019 9:00,10297891.13,0.042437315,0.042437315 +30-07-2019 10:00,10297338.13,0.036871765,0.036871765 +30-07-2019 11:00,10296784.37,0.031306216,0.031306216 +30-07-2019 12:00,10296229.85,0.025044973,0.025044973 +30-07-2019 13:00,10295674.57,0.021566504,0.021566504 +30-07-2019 14:00,10295118.52,0.016696648,0.016696648 +30-07-2019 15:00,10294561.72,0.018783729,0.018783729 +30-07-2019 16:00,10294004.17,0.030610522,0.030610522 +30-07-2019 17:00,10293445.85,0.054264107,0.054264107 +30-07-2019 18:00,10292886.78,0.054959801,0.054959801 +30-07-2019 19:00,10292326.94,0.048698558,0.048698558 +30-07-2019 20:00,10291766.35,0.040350234,0.040350234 +30-07-2019 21:00,10291205.01,0.028523441,0.028523441 +30-07-2019 22:00,10290642.9,0.013913874,0.013913874 +30-07-2019 23:00,10290080.04,0.004869856,0.004869856 +31-07-2019 0:00,10289516.42,0.002782775,0.002782775 +31-07-2019 1:00,10288952.05,0.000695694,0.000695694 +31-07-2019 2:00,10288386.92,0.000695694,0.000695694 +31-07-2019 3:00,10287821.04,0.001391387,0.001391387 +31-07-2019 4:00,10287254.4,0.004869856,0.004869856 +31-07-2019 5:00,10286687.01,0.038958846,0.038958846 +31-07-2019 6:00,10286118.86,0.064699512,0.064699512 +31-07-2019 7:00,10285549.96,0.050089945,0.050089945 +31-07-2019 8:00,10284980.3,0.059133963,0.059133963 +31-07-2019 9:00,10284409.89,0.042437315,0.042437315 +31-07-2019 10:00,10283838.72,0.036871765,0.036871765 +31-07-2019 11:00,10283266.81,0.031306216,0.031306216 +31-07-2019 12:00,10282694.14,0.025044973,0.025044973 +31-07-2019 13:00,10282120.72,0.021566504,0.021566504 +31-07-2019 14:00,10281546.54,0.016696648,0.016696648 +31-07-2019 15:00,10280971.62,0.018783729,0.018783729 +31-07-2019 16:00,10280395.94,0.030610522,0.030610522 +31-07-2019 17:00,10279819.51,0.054264107,0.054264107 +31-07-2019 18:00,10279242.33,0.054959801,0.054959801 +31-07-2019 19:00,10278664.4,0.048698558,0.048698558 +31-07-2019 20:00,10278085.72,0.040350234,0.040350234 +31-07-2019 21:00,10277506.28,0.028523441,0.028523441 +31-07-2019 22:00,10276926.1,0.013913874,0.013913874 +31-07-2019 23:00,10276345.17,0.004869856,0.004869856 +01-08-2019 0:00,10275763.49,0.002782775,0.002782775 +01-08-2019 1:00,10275181.06,0.000695694,0.000695694 +01-08-2019 2:00,10274597.89,0.000695694,0.000695694 +01-08-2019 3:00,10274013.96,0.001391387,0.001391387 +01-08-2019 4:00,10273429.29,0.004869856,0.004869856 +01-08-2019 5:00,10272843.86,0.038958846,0.038958846 +01-08-2019 6:00,10272257.7,0.064699512,0.064699512 +01-08-2019 7:00,10271670.78,0.050089945,0.050089945 +01-08-2019 8:00,10271083.12,0.059133963,0.059133963 +01-08-2019 9:00,10270494.71,0.042437315,0.042437315 +01-08-2019 10:00,10269905.55,0.036871765,0.036871765 +01-08-2019 11:00,10269315.65,0.031306216,0.031306216 +01-08-2019 12:00,10268725,0.025044973,0.025044973 +01-08-2019 13:00,10268133.61,0.021566504,0.021566504 +01-08-2019 14:00,10267541.47,0.016696648,0.016696648 +01-08-2019 15:00,10266948.59,0.018783729,0.018783729 +01-08-2019 16:00,10266354.96,0.030610522,0.030610522 +01-08-2019 17:00,10265760.59,0.054264107,0.054264107 +01-08-2019 18:00,10265165.48,0.054959801,0.054959801 +01-08-2019 19:00,10264569.62,0.048698558,0.048698558 +01-08-2019 20:00,10263973.02,0.040350234,0.040350234 +01-08-2019 21:00,10263375.67,0.028523441,0.028523441 +01-08-2019 22:00,10262777.59,0.013913874,0.013913874 +01-08-2019 23:00,10262178.76,0.004869856,0.004869856 +02-08-2019 0:00,10261579.19,0.002782775,0.002782775 +02-08-2019 1:00,10260978.87,0.000695694,0.000695694 +02-08-2019 2:00,10260377.82,0.000695694,0.000695694 +02-08-2019 3:00,10259776.03,0.001391387,0.001391387 +02-08-2019 4:00,10259173.49,0.004869856,0.004869856 +02-08-2019 5:00,10258570.21,0.038958846,0.038958846 +02-08-2019 6:00,10257966.2,0.064699512,0.064699512 +02-08-2019 7:00,10257361.44,0.050089945,0.050089945 +02-08-2019 8:00,10256755.95,0.059133963,0.059133963 +02-08-2019 9:00,10256149.71,0.042437315,0.042437315 +02-08-2019 10:00,10255542.74,0.036871765,0.036871765 +02-08-2019 11:00,10254935.03,0.031306216,0.031306216 +02-08-2019 12:00,10254326.58,0.025044973,0.025044973 +02-08-2019 13:00,10253717.39,0.021566504,0.021566504 +02-08-2019 14:00,10253107.46,0.016696648,0.016696648 +02-08-2019 15:00,10252496.8,0.018783729,0.018783729 +02-08-2019 16:00,10251885.4,0.030610522,0.030610522 +02-08-2019 17:00,10251273.26,0.054264107,0.054264107 +02-08-2019 18:00,10250660.39,0.054959801,0.054959801 +02-08-2019 19:00,10250046.78,0.048698558,0.048698558 +02-08-2019 20:00,10249432.44,0.040350234,0.040350234 +02-08-2019 21:00,10248817.36,0.028523441,0.028523441 +02-08-2019 22:00,10248201.54,0.013913874,0.013913874 +02-08-2019 23:00,10247584.99,0.004869856,0.004869856 +03-08-2019 0:00,10246967.71,0.002782775,0.002782775 +03-08-2019 1:00,10246349.69,0.000695694,0.000695694 +03-08-2019 2:00,10245730.94,0.000695694,0.000695694 +03-08-2019 3:00,10245111.45,0.001391387,0.001391387 +03-08-2019 4:00,10244491.23,0.004869856,0.004869856 +03-08-2019 5:00,10243870.28,0.038958846,0.038958846 +03-08-2019 6:00,10243248.6,0.064699512,0.064699512 +03-08-2019 7:00,10242626.18,0.050089945,0.050089945 +03-08-2019 8:00,10242003.03,0.059133963,0.059133963 +03-08-2019 9:00,10241379.15,0.042437315,0.042437315 +03-08-2019 10:00,10240754.54,0.036871765,0.036871765 +03-08-2019 11:00,10240129.2,0.031306216,0.031306216 +03-08-2019 12:00,10239503.13,0.025044973,0.025044973 +03-08-2019 13:00,10238876.33,0.021566504,0.021566504 +03-08-2019 14:00,10238248.79,0.016696648,0.016696648 +03-08-2019 15:00,10237620.53,0.018783729,0.018783729 +03-08-2019 16:00,10236991.54,0.030610522,0.030610522 +03-08-2019 17:00,10236361.82,0.054264107,0.054264107 +03-08-2019 18:00,10235731.37,0.054959801,0.054959801 +03-08-2019 19:00,10235100.19,0.048698558,0.048698558 +03-08-2019 20:00,10234468.29,0.040350234,0.040350234 +03-08-2019 21:00,10233835.65,0.028523441,0.028523441 +03-08-2019 22:00,10233202.29,0.013913874,0.013913874 +03-08-2019 23:00,10232568.2,0.004869856,0.004869856 +04-08-2019 0:00,10231933.39,0.002782775,0.002782775 +04-08-2019 1:00,10231297.85,0.000695694,0.000695694 +04-08-2019 2:00,10230661.58,0.000695694,0.000695694 +04-08-2019 3:00,10230024.59,0.001391387,0.001391387 +04-08-2019 4:00,10229386.87,0.004869856,0.004869856 +04-08-2019 5:00,10228748.43,0.038958846,0.038958846 +04-08-2019 6:00,10228109.26,0.064699512,0.064699512 +04-08-2019 7:00,10227469.37,0.050089945,0.050089945 +04-08-2019 8:00,10226828.75,0.059133963,0.059133963 +04-08-2019 9:00,10226187.41,0.042437315,0.042437315 +04-08-2019 10:00,10225545.35,0.036871765,0.036871765 +04-08-2019 11:00,10224902.56,0.031306216,0.031306216 +04-08-2019 12:00,10224259.05,0.025044973,0.025044973 +04-08-2019 13:00,10223614.82,0.021566504,0.021566504 +04-08-2019 14:00,10222969.87,0.016696648,0.016696648 +04-08-2019 15:00,10222324.19,0.018783729,0.018783729 +04-08-2019 16:00,10221677.79,0.030610522,0.030610522 +04-08-2019 17:00,10221030.68,0.054264107,0.054264107 +04-08-2019 18:00,10220382.84,0.054959801,0.054959801 +04-08-2019 19:00,10219734.28,0.048698558,0.048698558 +04-08-2019 20:00,10219085,0.040350234,0.040350234 +04-08-2019 21:00,10218435,0.028523441,0.028523441 +04-08-2019 22:00,10217784.28,0.013913874,0.013913874 +04-08-2019 23:00,10217132.84,0.004869856,0.004869856 +05-08-2019 0:00,10216480.69,0.002782775,0.002782775 +05-08-2019 1:00,10215827.81,0.000695694,0.000695694 +05-08-2019 2:00,10215174.22,0.000695694,0.000695694 +05-08-2019 3:00,10214519.91,0.001391387,0.001391387 +05-08-2019 4:00,10213864.88,0.004869856,0.004869856 +05-08-2019 5:00,10213209.13,0.038958846,0.038958846 +05-08-2019 6:00,10212552.67,0.064699512,0.064699512 +05-08-2019 7:00,10211895.49,0.050089945,0.050089945 +05-08-2019 8:00,10211237.6,0.059133963,0.059133963 +05-08-2019 9:00,10210578.99,0.042437315,0.042437315 +05-08-2019 10:00,10209919.66,0.036871765,0.036871765 +05-08-2019 11:00,10209259.62,0.031306216,0.031306216 +05-08-2019 12:00,10208598.86,0.025044973,0.025044973 +05-08-2019 13:00,10207937.39,0.021566504,0.021566504 +05-08-2019 14:00,10207275.21,0.016696648,0.016696648 +05-08-2019 15:00,10206612.31,0.018783729,0.018783729 +05-08-2019 16:00,10205948.7,0.030610522,0.030610522 +05-08-2019 17:00,10205284.38,0.054264107,0.054264107 +05-08-2019 18:00,10204619.34,0.054959801,0.054959801 +05-08-2019 19:00,10203953.59,0.048698558,0.048698558 +05-08-2019 20:00,10203287.13,0.040350234,0.040350234 +05-08-2019 21:00,10202619.96,0.028523441,0.028523441 +05-08-2019 22:00,10201952.07,0.013913874,0.013913874 +05-08-2019 23:00,10201283.48,0.004869856,0.004869856 +06-08-2019 0:00,10200614.17,0.002782775,0.002782775 +06-08-2019 1:00,10199944.16,0.000695694,0.000695694 +06-08-2019 2:00,10199273.43,0.000695694,0.000695694 +06-08-2019 3:00,10198602,0.001391387,0.001391387 +06-08-2019 4:00,10197929.85,0.004869856,0.004869856 +06-08-2019 5:00,10197257,0.038958846,0.038958846 +06-08-2019 6:00,10196583.44,0.064699512,0.064699512 +06-08-2019 7:00,10195909.17,0.050089945,0.050089945 +06-08-2019 8:00,10195234.19,0.059133963,0.059133963 +06-08-2019 9:00,10194558.5,0.042437315,0.042437315 +06-08-2019 10:00,10193882.11,0.036871765,0.036871765 +06-08-2019 11:00,10193205.01,0.031306216,0.031306216 +06-08-2019 12:00,10192527.2,0.025044973,0.025044973 +06-08-2019 13:00,10191848.69,0.021566504,0.021566504 +06-08-2019 14:00,10191169.47,0.016696648,0.016696648 +06-08-2019 15:00,10190489.55,0.018783729,0.018783729 +06-08-2019 16:00,10189808.92,0.030610522,0.030610522 +06-08-2019 17:00,10189127.59,0.054264107,0.054264107 +06-08-2019 18:00,10188445.55,0.054959801,0.054959801 +06-08-2019 19:00,10187762.81,0.048698558,0.048698558 +06-08-2019 20:00,10187079.36,0.040350234,0.040350234 +06-08-2019 21:00,10186395.22,0.028523441,0.028523441 +06-08-2019 22:00,10185710.37,0.013913874,0.013913874 +06-08-2019 23:00,10185024.81,0.004869856,0.004869856 +07-08-2019 0:00,10184338.55,0.002782775,0.002782775 +07-08-2019 1:00,10183651.6,0.000695694,0.000695694 +07-08-2019 2:00,10182963.94,0.000695694,0.000695694 +07-08-2019 3:00,10182275.58,0.001391387,0.001391387 +07-08-2019 4:00,10181586.51,0.004869856,0.004869856 +07-08-2019 5:00,10180896.75,0.038958846,0.038958846 +07-08-2019 6:00,10180206.29,0.064699512,0.064699512 +07-08-2019 7:00,10179515.13,0.050089945,0.050089945 +07-08-2019 8:00,10178823.27,0.059133963,0.059133963 +07-08-2019 9:00,10178130.71,0.042437315,0.042437315 +07-08-2019 10:00,10177437.45,0.036871765,0.036871765 +07-08-2019 11:00,10176743.49,0.031306216,0.031306216 +07-08-2019 12:00,10176048.83,0.025044973,0.025044973 +07-08-2019 13:00,10175353.48,0.021566504,0.021566504 +07-08-2019 14:00,10174657.43,0.016696648,0.016696648 +07-08-2019 15:00,10173960.68,0.018783729,0.018783729 +07-08-2019 16:00,10173263.24,0.030610522,0.030610522 +07-08-2019 17:00,10172565.1,0.054264107,0.054264107 +07-08-2019 18:00,10171866.26,0.054959801,0.054959801 +07-08-2019 19:00,10171166.73,0.048698558,0.048698558 +07-08-2019 20:00,10170466.5,0.040350234,0.040350234 +07-08-2019 21:00,10169765.58,0.028523441,0.028523441 +07-08-2019 22:00,10169063.97,0.013913874,0.013913874 +07-08-2019 23:00,10168361.66,0.004869856,0.004869856 +08-08-2019 0:00,10167658.65,0.002782775,0.002782775 +08-08-2019 1:00,10166954.96,0.000695694,0.000695694 +08-08-2019 2:00,10166250.57,0.000695694,0.000695694 +08-08-2019 3:00,10165545.48,0.001391387,0.001391387 +08-08-2019 4:00,10164839.71,0.004869856,0.004869856 +08-08-2019 5:00,10164133.24,0.038958846,0.038958846 +08-08-2019 6:00,10163426.09,0.064699512,0.064699512 +08-08-2019 7:00,10162718.24,0.050089945,0.050089945 +08-08-2019 8:00,10162009.7,0.059133963,0.059133963 +08-08-2019 9:00,10161300.47,0.042437315,0.042437315 +08-08-2019 10:00,10160590.55,0.036871765,0.036871765 +08-08-2019 11:00,10159879.94,0.031306216,0.031306216 +08-08-2019 12:00,10159168.64,0.025044973,0.025044973 +08-08-2019 13:00,10158456.65,0.021566504,0.021566504 +08-08-2019 14:00,10157743.97,0.016696648,0.016696648 +08-08-2019 15:00,10157030.61,0.018783729,0.018783729 +08-08-2019 16:00,10156316.55,0.030610522,0.030610522 +08-08-2019 17:00,10155601.81,0.054264107,0.054264107 +08-08-2019 18:00,10154886.39,0.054959801,0.054959801 +08-08-2019 19:00,10154170.27,0.048698558,0.048698558 +08-08-2019 20:00,10153453.47,0.040350234,0.040350234 +08-08-2019 21:00,10152735.98,0.028523441,0.028523441 +08-08-2019 22:00,10152017.81,0.013913874,0.013913874 +08-08-2019 23:00,10151298.95,0.004869856,0.004869856 +09-08-2019 0:00,10150579.41,0.002782775,0.002782775 +09-08-2019 1:00,10149859.19,0.000695694,0.000695694 +09-08-2019 2:00,10149138.27,0.000695694,0.000695694 +09-08-2019 3:00,10148416.68,0.001391387,0.001391387 +09-08-2019 4:00,10147694.4,0.004869856,0.004869856 +09-08-2019 5:00,10146971.44,0.038958846,0.038958846 +09-08-2019 6:00,10146247.8,0.064699512,0.064699512 +09-08-2019 7:00,10145523.47,0.050089945,0.050089945 +09-08-2019 8:00,10144798.46,0.059133963,0.059133963 +09-08-2019 9:00,10144072.77,0.042437315,0.042437315 +09-08-2019 10:00,10143346.4,0.036871765,0.036871765 +09-08-2019 11:00,10142619.35,0.031306216,0.031306216 +09-08-2019 12:00,10141891.62,0.025044973,0.025044973 +09-08-2019 13:00,10141163.2,0.021566504,0.021566504 +09-08-2019 14:00,10140434.11,0.016696648,0.016696648 +09-08-2019 15:00,10139704.34,0.018783729,0.018783729 +09-08-2019 16:00,10138973.89,0.030610522,0.030610522 +09-08-2019 17:00,10138242.76,0.054264107,0.054264107 +09-08-2019 18:00,10137510.95,0.054959801,0.054959801 +09-08-2019 19:00,10136778.47,0.048698558,0.048698558 +09-08-2019 20:00,10136045.31,0.040350234,0.040350234 +09-08-2019 21:00,10135311.47,0.028523441,0.028523441 +09-08-2019 22:00,10134576.95,0.013913874,0.013913874 +09-08-2019 23:00,10133841.76,0.004869856,0.004869856 +10-08-2019 0:00,10133105.89,0.002782775,0.002782775 +10-08-2019 1:00,10132369.35,0.000695694,0.000695694 +10-08-2019 2:00,10131632.13,0.000695694,0.000695694 +10-08-2019 3:00,10130894.24,0.001391387,0.001391387 +10-08-2019 4:00,10130155.67,0.004869856,0.004869856 +10-08-2019 5:00,10129416.43,0.038958846,0.038958846 +10-08-2019 6:00,10128676.51,0.064699512,0.064699512 +10-08-2019 7:00,10127935.92,0.050089945,0.050089945 +10-08-2019 8:00,10127194.66,0.059133963,0.059133963 +10-08-2019 9:00,10126452.72,0.042437315,0.042437315 +10-08-2019 10:00,10125710.12,0.036871765,0.036871765 +10-08-2019 11:00,10124966.84,0.031306216,0.031306216 +10-08-2019 12:00,10124222.89,0.025044973,0.025044973 +10-08-2019 13:00,10123478.27,0.021566504,0.021566504 +10-08-2019 14:00,10122732.98,0.016696648,0.016696648 +10-08-2019 15:00,10121987.02,0.018783729,0.018783729 +10-08-2019 16:00,10121240.39,0.030610522,0.030610522 +10-08-2019 17:00,10120493.09,0.054264107,0.054264107 +10-08-2019 18:00,10119745.12,0.054959801,0.054959801 +10-08-2019 19:00,10118996.48,0.048698558,0.048698558 +10-08-2019 20:00,10118247.17,0.040350234,0.040350234 +10-08-2019 21:00,10117497.2,0.028523441,0.028523441 +10-08-2019 22:00,10116746.55,0.013913874,0.013913874 +10-08-2019 23:00,10115995.24,0.004869856,0.004869856 +11-08-2019 0:00,10115243.27,0.002782775,0.002782775 +11-08-2019 1:00,10114490.63,0.000695694,0.000695694 +11-08-2019 2:00,10113737.32,0.000695694,0.000695694 +11-08-2019 3:00,10112983.34,0.001391387,0.001391387 +11-08-2019 4:00,10112228.71,0.004869856,0.004869856 +11-08-2019 5:00,10111473.4,0.038958846,0.038958846 +11-08-2019 6:00,10110717.43,0.064699512,0.064699512 +11-08-2019 7:00,10109960.8,0.050089945,0.050089945 +11-08-2019 8:00,10109203.51,0.059133963,0.059133963 +11-08-2019 9:00,10108445.55,0.042437315,0.042437315 +11-08-2019 10:00,10107686.93,0.036871765,0.036871765 +11-08-2019 11:00,10106927.64,0.031306216,0.031306216 +11-08-2019 12:00,10106167.69,0.025044973,0.025044973 +11-08-2019 13:00,10105407.09,0.021566504,0.021566504 +11-08-2019 14:00,10104645.82,0.016696648,0.016696648 +11-08-2019 15:00,10103883.89,0.018783729,0.018783729 +11-08-2019 16:00,10103121.3,0.030610522,0.030610522 +11-08-2019 17:00,10102358.04,0.054264107,0.054264107 +11-08-2019 18:00,10101594.13,0.054959801,0.054959801 +11-08-2019 19:00,10100829.56,0.048698558,0.048698558 +11-08-2019 20:00,10100064.34,0.040350234,0.040350234 +11-08-2019 21:00,10099298.45,0.028523441,0.028523441 +11-08-2019 22:00,10098531.9,0.013913874,0.013913874 +11-08-2019 23:00,10097764.7,0.004869856,0.004869856 +12-08-2019 0:00,10096996.84,0.002782775,0.002782775 +12-08-2019 1:00,10096228.32,0.000695694,0.000695694 +12-08-2019 2:00,10095459.15,0.000695694,0.000695694 +12-08-2019 3:00,10094689.32,0.001391387,0.001391387 +12-08-2019 4:00,10093918.83,0.004869856,0.004869856 +12-08-2019 5:00,10093147.69,0.038958846,0.038958846 +12-08-2019 6:00,10092375.89,0.064699512,0.064699512 +12-08-2019 7:00,10091603.44,0.050089945,0.050089945 +12-08-2019 8:00,10090830.33,0.059133963,0.059133963 +12-08-2019 9:00,10090056.58,0.042437315,0.042437315 +12-08-2019 10:00,10089282.16,0.036871765,0.036871765 +12-08-2019 11:00,10088507.1,0.031306216,0.031306216 +12-08-2019 12:00,10087731.38,0.025044973,0.025044973 +12-08-2019 13:00,10086955.01,0.021566504,0.021566504 +12-08-2019 14:00,10086177.99,0.016696648,0.016696648 +12-08-2019 15:00,10085400.31,0.018783729,0.018783729 +12-08-2019 16:00,10084621.99,0.030610522,0.030610522 +12-08-2019 17:00,10083843.01,0.054264107,0.054264107 +12-08-2019 18:00,10083063.39,0.054959801,0.054959801 +12-08-2019 19:00,10082283.11,0.048698558,0.048698558 +12-08-2019 20:00,10081502.19,0.040350234,0.040350234 +12-08-2019 21:00,10080720.62,0.028523441,0.028523441 +12-08-2019 22:00,10079938.39,0.013913874,0.013913874 +12-08-2019 23:00,10079155.52,0.004869856,0.004869856 +13-08-2019 0:00,10078372.01,0.002782775,0.002782775 +13-08-2019 1:00,10077587.84,0.000695694,0.000695694 +13-08-2019 2:00,10076803.03,0.000695694,0.000695694 +13-08-2019 3:00,10076017.57,0.001391387,0.001391387 +13-08-2019 4:00,10075231.46,0.004869856,0.004869856 +13-08-2019 5:00,10074444.71,0.038958846,0.038958846 +13-08-2019 6:00,10073657.32,0.064699512,0.064699512 +13-08-2019 7:00,10072869.28,0.050089945,0.050089945 +13-08-2019 8:00,10072080.59,0.059133963,0.059133963 +13-08-2019 9:00,10071291.26,0.042437315,0.042437315 +13-08-2019 10:00,10070501.29,0.036871765,0.036871765 +13-08-2019 11:00,10069710.67,0.031306216,0.031306216 +13-08-2019 12:00,10068919.41,0.025044973,0.025044973 +13-08-2019 13:00,10068127.51,0.021566504,0.021566504 +13-08-2019 14:00,10067334.96,0.016696648,0.016696648 +13-08-2019 15:00,10066541.78,0.018783729,0.018783729 +13-08-2019 16:00,10065747.95,0.030610522,0.030610522 +13-08-2019 17:00,10064953.48,0.054264107,0.054264107 +13-08-2019 18:00,10064158.37,0.054959801,0.054959801 +13-08-2019 19:00,10063362.62,0.048698558,0.048698558 +13-08-2019 20:00,10062566.23,0.040350234,0.040350234 +13-08-2019 21:00,10061769.21,0.028523441,0.028523441 +13-08-2019 22:00,10060971.54,0.013913874,0.013913874 +13-08-2019 23:00,10060173.23,0.004869856,0.004869856 +14-08-2019 0:00,10059374.29,0.002782775,0.002782775 +14-08-2019 1:00,10058574.71,0.000695694,0.000695694 +14-08-2019 2:00,10057774.49,0.000695694,0.000695694 +14-08-2019 3:00,10056973.64,0.001391387,0.001391387 +14-08-2019 4:00,10056172.15,0.004869856,0.004869856 +14-08-2019 5:00,10055370.02,0.038958846,0.038958846 +14-08-2019 6:00,10054567.26,0.064699512,0.064699512 +14-08-2019 7:00,10053763.86,0.050089945,0.050089945 +14-08-2019 8:00,10052959.83,0.059133963,0.059133963 +14-08-2019 9:00,10052155.16,0.042437315,0.042437315 +14-08-2019 10:00,10051349.86,0.036871765,0.036871765 +14-08-2019 11:00,10050543.92,0.031306216,0.031306216 +14-08-2019 12:00,10049737.36,0.025044973,0.025044973 +14-08-2019 13:00,10048930.16,0.021566504,0.021566504 +14-08-2019 14:00,10048122.32,0.016696648,0.016696648 +14-08-2019 15:00,10047313.86,0.018783729,0.018783729 +14-08-2019 16:00,10046504.76,0.030610522,0.030610522 +14-08-2019 17:00,10045695.04,0.054264107,0.054264107 +14-08-2019 18:00,10044884.68,0.054959801,0.054959801 +14-08-2019 19:00,10044073.69,0.048698558,0.048698558 +14-08-2019 20:00,10043262.08,0.040350234,0.040350234 +14-08-2019 21:00,10042449.83,0.028523441,0.028523441 +14-08-2019 22:00,10041636.96,0.013913874,0.013913874 +14-08-2019 23:00,10040823.45,0.004869856,0.004869856 +15-08-2019 0:00,10040009.32,0.002782775,0.002782775 +15-08-2019 1:00,10039194.56,0.000695694,0.000695694 +15-08-2019 2:00,10038379.18,0.000695694,0.000695694 +15-08-2019 3:00,10037563.16,0.001391387,0.001391387 +15-08-2019 4:00,10036746.52,0.004869856,0.004869856 +15-08-2019 5:00,10035929.26,0.038958846,0.038958846 +15-08-2019 6:00,10035111.37,0.064699512,0.064699512 +15-08-2019 7:00,10034292.85,0.050089945,0.050089945 +15-08-2019 8:00,10033473.71,0.059133963,0.059133963 +15-08-2019 9:00,10032653.94,0.042437315,0.042437315 +15-08-2019 10:00,10031833.55,0.036871765,0.036871765 +15-08-2019 11:00,10031012.54,0.031306216,0.031306216 +15-08-2019 12:00,10030190.91,0.025044973,0.025044973 +15-08-2019 13:00,10029368.65,0.021566504,0.021566504 +15-08-2019 14:00,10028545.77,0.016696648,0.016696648 +15-08-2019 15:00,10027722.26,0.018783729,0.018783729 +15-08-2019 16:00,10026898.14,0.030610522,0.030610522 +15-08-2019 17:00,10026073.4,0.054264107,0.054264107 +15-08-2019 18:00,10025248.03,0.054959801,0.054959801 +15-08-2019 19:00,10024422.05,0.048698558,0.048698558 +15-08-2019 20:00,10023595.44,0.040350234,0.040350234 +15-08-2019 21:00,10022768.22,0.028523441,0.028523441 +15-08-2019 22:00,10021940.38,0.013913874,0.013913874 +15-08-2019 23:00,10021111.92,0.004869856,0.004869856 +16-08-2019 0:00,10020282.84,0.002782775,0.002782775 +16-08-2019 1:00,10019453.14,0.000695694,0.000695694 +16-08-2019 2:00,10018622.83,0.000695694,0.000695694 +16-08-2019 3:00,10017791.9,0.001391387,0.001391387 +16-08-2019 4:00,10016960.35,0.004869856,0.004869856 +16-08-2019 5:00,10016128.19,0.038958846,0.038958846 +16-08-2019 6:00,10015295.41,0.064699512,0.064699512 +16-08-2019 7:00,10014462.02,0.050089945,0.050089945 +16-08-2019 8:00,10013628.01,0.059133963,0.059133963 +16-08-2019 9:00,10012793.39,0.042437315,0.042437315 +16-08-2019 10:00,10011958.16,0.036871765,0.036871765 +16-08-2019 11:00,10011122.31,0.031306216,0.031306216 +16-08-2019 12:00,10010285.85,0.025044973,0.025044973 +16-08-2019 13:00,10009448.78,0.021566504,0.021566504 +16-08-2019 14:00,10008611.09,0.016696648,0.016696648 +16-08-2019 15:00,10007772.8,0.018783729,0.018783729 +16-08-2019 16:00,10006933.89,0.030610522,0.030610522 +16-08-2019 17:00,10006094.37,0.054264107,0.054264107 +16-08-2019 18:00,10005254.24,0.054959801,0.054959801 +16-08-2019 19:00,10004413.5,0.048698558,0.048698558 +16-08-2019 20:00,10003572.16,0.040350234,0.040350234 +16-08-2019 21:00,10002730.2,0.028523441,0.028523441 +16-08-2019 22:00,10001887.64,0.013913874,0.013913874 +16-08-2019 23:00,10001044.46,0.004869856,0.004869856 +17-08-2019 0:00,10000200.68,0.002782775,0.002782775 +17-08-2019 1:00,9999356.296,0.000695694,0.000695694 +17-08-2019 2:00,9998511.302,0.000695694,0.000695694 +17-08-2019 3:00,9997665.702,0.001391387,0.001391387 +17-08-2019 4:00,9996819.495,0.004869856,0.004869856 +17-08-2019 5:00,9995972.684,0.038958846,0.038958846 +17-08-2019 6:00,9995125.267,0.064699512,0.064699512 +17-08-2019 7:00,9994277.246,0.050089945,0.050089945 +17-08-2019 8:00,9993428.62,0.059133963,0.059133963 +17-08-2019 9:00,9992579.391,0.042437315,0.042437315 +17-08-2019 10:00,9991729.559,0.036871765,0.036871765 +17-08-2019 11:00,9990879.124,0.031306216,0.031306216 +17-08-2019 12:00,9990028.086,0.025044973,0.025044973 +17-08-2019 13:00,9989176.447,0.021566504,0.021566504 +17-08-2019 14:00,9988324.206,0.016696648,0.016696648 +17-08-2019 15:00,9987471.364,0.018783729,0.018783729 +17-08-2019 16:00,9986617.921,0.030610522,0.030610522 +17-08-2019 17:00,9985763.878,0.054264107,0.054264107 +17-08-2019 18:00,9984909.236,0.054959801,0.054959801 +17-08-2019 19:00,9984053.994,0.048698558,0.048698558 +17-08-2019 20:00,9983198.153,0.040350234,0.040350234 +17-08-2019 21:00,9982341.714,0.028523441,0.028523441 +17-08-2019 22:00,9981484.677,0.013913874,0.013913874 +17-08-2019 23:00,9980627.043,0.004869856,0.004869856 +18-08-2019 0:00,9979768.811,0.002782775,0.002782775 +18-08-2019 1:00,9978909.983,0.000695694,0.000695694 +18-08-2019 2:00,9978050.558,0.000695694,0.000695694 +18-08-2019 3:00,9977190.538,0.001391387,0.001391387 +18-08-2019 4:00,9976329.922,0.004869856,0.004869856 +18-08-2019 5:00,9975468.711,0.038958846,0.038958846 +18-08-2019 6:00,9974606.906,0.064699512,0.064699512 +18-08-2019 7:00,9973744.507,0.050089945,0.050089945 +18-08-2019 8:00,9972881.515,0.059133963,0.059133963 +18-08-2019 9:00,9972017.929,0.042437315,0.042437315 +18-08-2019 10:00,9971153.751,0.036871765,0.036871765 +18-08-2019 11:00,9970288.98,0.031306216,0.031306216 +18-08-2019 12:00,9969423.618,0.025044973,0.025044973 +18-08-2019 13:00,9968557.664,0.021566504,0.021566504 +18-08-2019 14:00,9967691.12,0.016696648,0.016696648 +18-08-2019 15:00,9966823.985,0.018783729,0.018783729 +18-08-2019 16:00,9965956.26,0.030610522,0.030610522 +18-08-2019 17:00,9965087.945,0.054264107,0.054264107 +18-08-2019 18:00,9964219.042,0.054959801,0.054959801 +18-08-2019 19:00,9963349.549,0.048698558,0.048698558 +18-08-2019 20:00,9962479.469,0.040350234,0.040350234 +18-08-2019 21:00,9961608.801,0.028523441,0.028523441 +18-08-2019 22:00,9960737.545,0.013913874,0.013913874 +18-08-2019 23:00,9959865.703,0.004869856,0.004869856 +19-08-2019 0:00,9958993.274,0.002782775,0.002782775 +19-08-2019 1:00,9958120.259,0.000695694,0.000695694 +19-08-2019 2:00,9957246.659,0.000695694,0.000695694 +19-08-2019 3:00,9956372.473,0.001391387,0.001391387 +19-08-2019 4:00,9955497.703,0.004869856,0.004869856 +19-08-2019 5:00,9954622.349,0.038958846,0.038958846 +19-08-2019 6:00,9953746.411,0.064699512,0.064699512 +19-08-2019 7:00,9952869.89,0.050089945,0.050089945 +19-08-2019 8:00,9951992.786,0.059133963,0.059133963 +19-08-2019 9:00,9951115.1,0.042437315,0.042437315 +19-08-2019 10:00,9950236.831,0.036871765,0.036871765 +19-08-2019 11:00,9949357.982,0.031306216,0.031306216 +19-08-2019 12:00,9948478.551,0.025044973,0.025044973 +19-08-2019 13:00,9947598.54,0.021566504,0.021566504 +19-08-2019 14:00,9946717.948,0.016696648,0.016696648 +19-08-2019 15:00,9945836.777,0.018783729,0.018783729 +19-08-2019 16:00,9944955.027,0.030610522,0.030610522 +19-08-2019 17:00,9944072.698,0.054264107,0.054264107 +19-08-2019 18:00,9943189.791,0.054959801,0.054959801 +19-08-2019 19:00,9942306.306,0.048698558,0.048698558 +19-08-2019 20:00,9941422.243,0.040350234,0.040350234 +19-08-2019 21:00,9940537.604,0.028523441,0.028523441 +19-08-2019 22:00,9939652.388,0.013913874,0.013913874 +19-08-2019 23:00,9938766.596,0.004869856,0.004869856 +20-08-2019 0:00,9937880.228,0.002782775,0.002782775 +20-08-2019 1:00,9936993.286,0.000695694,0.000695694 +20-08-2019 2:00,9936105.769,0.000695694,0.000695694 +20-08-2019 3:00,9935217.677,0.001391387,0.001391387 +20-08-2019 4:00,9934329.012,0.004869856,0.004869856 +20-08-2019 5:00,9933439.774,0.038958846,0.038958846 +20-08-2019 6:00,9932549.962,0.064699512,0.064699512 +20-08-2019 7:00,9931659.579,0.050089945,0.050089945 +20-08-2019 8:00,9930768.623,0.059133963,0.059133963 +20-08-2019 9:00,9929877.096,0.042437315,0.042437315 +20-08-2019 10:00,9928984.998,0.036871765,0.036871765 +20-08-2019 11:00,9928092.33,0.031306216,0.031306216 +20-08-2019 12:00,9927199.091,0.025044973,0.025044973 +20-08-2019 13:00,9926305.283,0.021566504,0.021566504 +20-08-2019 14:00,9925410.906,0.016696648,0.016696648 +20-08-2019 15:00,9924515.96,0.018783729,0.018783729 +20-08-2019 16:00,9923620.446,0.030610522,0.030610522 +20-08-2019 17:00,9922724.364,0.054264107,0.054264107 +20-08-2019 18:00,9921827.714,0.054959801,0.054959801 +20-08-2019 19:00,9920930.498,0.048698558,0.048698558 +20-08-2019 20:00,9920032.716,0.040350234,0.040350234 +20-08-2019 21:00,9919134.367,0.028523441,0.028523441 +20-08-2019 22:00,9918235.453,0.013913874,0.013913874 +20-08-2019 23:00,9917335.974,0.004869856,0.004869856 +21-08-2019 0:00,9916435.931,0.002782775,0.002782775 +21-08-2019 1:00,9915535.324,0.000695694,0.000695694 +21-08-2019 2:00,9914634.152,0.000695694,0.000695694 +21-08-2019 3:00,9913732.418,0.001391387,0.001391387 +21-08-2019 4:00,9912830.121,0.004869856,0.004869856 +21-08-2019 5:00,9911927.262,0.038958846,0.038958846 +21-08-2019 6:00,9911023.841,0.064699512,0.064699512 +21-08-2019 7:00,9910119.859,0.050089945,0.050089945 +21-08-2019 8:00,9909215.316,0.059133963,0.059133963 +21-08-2019 9:00,9908310.212,0.042437315,0.042437315 +21-08-2019 10:00,9907404.549,0.036871765,0.036871765 +21-08-2019 11:00,9906498.326,0.031306216,0.031306216 +21-08-2019 12:00,9905591.545,0.025044973,0.025044973 +21-08-2019 13:00,9904684.205,0.021566504,0.021566504 +21-08-2019 14:00,9903776.306,0.016696648,0.016696648 +21-08-2019 15:00,9902867.851,0.018783729,0.018783729 +21-08-2019 16:00,9901958.838,0.030610522,0.030610522 +21-08-2019 17:00,9901049.268,0.054264107,0.054264107 +21-08-2019 18:00,9900139.143,0.054959801,0.054959801 +21-08-2019 19:00,9899228.461,0.048698558,0.048698558 +21-08-2019 20:00,9898317.225,0.040350234,0.040350234 +21-08-2019 21:00,9897405.434,0.028523441,0.028523441 +21-08-2019 22:00,9896493.088,0.013913874,0.013913874 +21-08-2019 23:00,9895580.189,0.004869856,0.004869856 +22-08-2019 0:00,9894666.736,0.002782775,0.002782775 +22-08-2019 1:00,9893752.73,0.000695694,0.000695694 +22-08-2019 2:00,9892838.172,0.000695694,0.000695694 +22-08-2019 3:00,9891923.062,0.001391387,0.001391387 +22-08-2019 4:00,9891007.401,0.004869856,0.004869856 +22-08-2019 5:00,9890091.189,0.038958846,0.038958846 +22-08-2019 6:00,9889174.426,0.064699512,0.064699512 +22-08-2019 7:00,9888257.113,0.050089945,0.050089945 +22-08-2019 8:00,9887339.25,0.059133963,0.059133963 +22-08-2019 9:00,9886420.839,0.042437315,0.042437315 +22-08-2019 10:00,9885501.878,0.036871765,0.036871765 +22-08-2019 11:00,9884582.37,0.031306216,0.031306216 +22-08-2019 12:00,9883662.314,0.025044973,0.025044973 +22-08-2019 13:00,9882741.711,0.021566504,0.021566504 +22-08-2019 14:00,9881820.561,0.016696648,0.016696648 +22-08-2019 15:00,9880898.864,0.018783729,0.018783729 +22-08-2019 16:00,9879976.622,0.030610522,0.030610522 +22-08-2019 17:00,9879053.835,0.054264107,0.054264107 +22-08-2019 18:00,9878130.503,0.054959801,0.054959801 +22-08-2019 19:00,9877206.626,0.048698558,0.048698558 +22-08-2019 20:00,9876282.205,0.040350234,0.040350234 +22-08-2019 21:00,9875357.242,0.028523441,0.028523441 +22-08-2019 22:00,9874431.735,0.013913874,0.013913874 +22-08-2019 23:00,9873505.685,0.004869856,0.004869856 +23-08-2019 0:00,9872579.094,0.002782775,0.002782775 +23-08-2019 1:00,9871651.961,0.000695694,0.000695694 +23-08-2019 2:00,9870724.287,0.000695694,0.000695694 +23-08-2019 3:00,9869796.073,0.001391387,0.001391387 +23-08-2019 4:00,9868867.318,0.004869856,0.004869856 +23-08-2019 5:00,9867938.024,0.038958846,0.038958846 +23-08-2019 6:00,9867008.191,0.064699512,0.064699512 +23-08-2019 7:00,9866077.819,0.050089945,0.050089945 +23-08-2019 8:00,9865146.909,0.059133963,0.059133963 +23-08-2019 9:00,9864215.462,0.042437315,0.042437315 +23-08-2019 10:00,9863283.477,0.036871765,0.036871765 +23-08-2019 11:00,9862350.955,0.031306216,0.031306216 +23-08-2019 12:00,9861417.897,0.025044973,0.025044973 +23-08-2019 13:00,9860484.303,0.021566504,0.021566504 +23-08-2019 14:00,9859550.174,0.016696648,0.016696648 +23-08-2019 15:00,9858615.511,0.018783729,0.018783729 +23-08-2019 16:00,9857680.313,0.030610522,0.030610522 +23-08-2019 17:00,9856744.581,0.054264107,0.054264107 +23-08-2019 18:00,9855808.315,0.054959801,0.054959801 +23-08-2019 19:00,9854871.517,0.048698558,0.048698558 +23-08-2019 20:00,9853934.187,0.040350234,0.040350234 +23-08-2019 21:00,9852996.324,0.028523441,0.028523441 +23-08-2019 22:00,9852057.93,0.013913874,0.013913874 +23-08-2019 23:00,9851119.005,0.004869856,0.004869856 +24-08-2019 0:00,9850179.55,0.002782775,0.002782775 +24-08-2019 1:00,9849239.565,0.000695694,0.000695694 +24-08-2019 2:00,9848299.05,0.000695694,0.000695694 +24-08-2019 3:00,9847358.006,0.001391387,0.001391387 +24-08-2019 4:00,9846416.434,0.004869856,0.004869856 +24-08-2019 5:00,9845474.333,0.038958846,0.038958846 +24-08-2019 6:00,9844531.705,0.064699512,0.064699512 +24-08-2019 7:00,9843588.55,0.050089945,0.050089945 +24-08-2019 8:00,9842644.869,0.059133963,0.059133963 +24-08-2019 9:00,9841700.661,0.042437315,0.042437315 +24-08-2019 10:00,9840755.927,0.036871765,0.036871765 +24-08-2019 11:00,9839810.669,0.031306216,0.031306216 +24-08-2019 12:00,9838864.886,0.025044973,0.025044973 +24-08-2019 13:00,9837918.578,0.021566504,0.021566504 +24-08-2019 14:00,9836971.747,0.016696648,0.016696648 +24-08-2019 15:00,9836024.393,0.018783729,0.018783729 +24-08-2019 16:00,9835076.516,0.030610522,0.030610522 +24-08-2019 17:00,9834128.117,0.054264107,0.054264107 +24-08-2019 18:00,9833179.196,0.054959801,0.054959801 +24-08-2019 19:00,9832229.754,0.048698558,0.048698558 +24-08-2019 20:00,9831279.791,0.040350234,0.040350234 +24-08-2019 21:00,9830329.308,0.028523441,0.028523441 +24-08-2019 22:00,9829378.305,0.013913874,0.013913874 +24-08-2019 23:00,9828426.783,0.004869856,0.004869856 +25-08-2019 0:00,9827474.742,0.002782775,0.002782775 +25-08-2019 1:00,9826522.182,0.000695694,0.000695694 +25-08-2019 2:00,9825569.105,0.000695694,0.000695694 +25-08-2019 3:00,9824615.511,0.001391387,0.001391387 +25-08-2019 4:00,9823661.4,0.004869856,0.004869856 +25-08-2019 5:00,9822706.772,0.038958846,0.038958846 +25-08-2019 6:00,9821751.629,0.064699512,0.064699512 +25-08-2019 7:00,9820795.97,0.050089945,0.050089945 +25-08-2019 8:00,9819839.796,0.059133963,0.059133963 +25-08-2019 9:00,9818883.108,0.042437315,0.042437315 +25-08-2019 10:00,9817925.906,0.036871765,0.036871765 +25-08-2019 11:00,9816968.191,0.031306216,0.031306216 +25-08-2019 12:00,9816009.962,0.025044973,0.025044973 +25-08-2019 13:00,9815051.222,0.021566504,0.021566504 +25-08-2019 14:00,9814091.969,0.016696648,0.016696648 +25-08-2019 15:00,9813132.205,0.018783729,0.018783729 +25-08-2019 16:00,9812171.93,0.030610522,0.030610522 +25-08-2019 17:00,9811211.145,0.054264107,0.054264107 +25-08-2019 18:00,9810249.85,0.054959801,0.054959801 +25-08-2019 19:00,9809288.045,0.048698558,0.048698558 +25-08-2019 20:00,9808325.731,0.040350234,0.040350234 +25-08-2019 21:00,9807362.909,0.028523441,0.028523441 +25-08-2019 22:00,9806399.579,0.013913874,0.013913874 +25-08-2019 23:00,9805435.741,0.004869856,0.004869856 +26-08-2019 0:00,9804471.397,0.002782775,0.002782775 +26-08-2019 1:00,9803506.546,0.000695694,0.000695694 +26-08-2019 2:00,9802541.189,0.000695694,0.000695694 +26-08-2019 3:00,9801575.326,0.001391387,0.001391387 +26-08-2019 4:00,9800608.959,0.004869856,0.004869856 +26-08-2019 5:00,9799642.087,0.038958846,0.038958846 +26-08-2019 6:00,9798674.711,0.064699512,0.064699512 +26-08-2019 7:00,9797706.832,0.050089945,0.050089945 +26-08-2019 8:00,9796738.449,0.059133963,0.059133963 +26-08-2019 9:00,9795769.565,0.042437315,0.042437315 +26-08-2019 10:00,9794800.178,0.036871765,0.036871765 +26-08-2019 11:00,9793830.289,0.031306216,0.031306216 +26-08-2019 12:00,9792859.9,0.025044973,0.025044973 +26-08-2019 13:00,9791889.01,0.021566504,0.021566504 +26-08-2019 14:00,9790917.62,0.016696648,0.016696648 +26-08-2019 15:00,9789945.731,0.018783729,0.018783729 +26-08-2019 16:00,9788973.343,0.030610522,0.030610522 +26-08-2019 17:00,9788000.456,0.054264107,0.054264107 +26-08-2019 18:00,9787027.071,0.054959801,0.054959801 +26-08-2019 19:00,9786053.189,0.048698558,0.048698558 +26-08-2019 20:00,9785078.809,0.040350234,0.040350234 +26-08-2019 21:00,9784103.933,0.028523441,0.028523441 +26-08-2019 22:00,9783128.562,0.013913874,0.013913874 +26-08-2019 23:00,9782152.694,0.004869856,0.004869856 +27-08-2019 0:00,9781176.332,0.002782775,0.002782775 +27-08-2019 1:00,9780199.475,0.000695694,0.000695694 +27-08-2019 2:00,9779222.124,0.000695694,0.000695694 +27-08-2019 3:00,9778244.28,0.001391387,0.001391387 +27-08-2019 4:00,9777265.943,0.004869856,0.004869856 +27-08-2019 5:00,9776287.113,0.038958846,0.038958846 +27-08-2019 6:00,9775307.791,0.064699512,0.064699512 +27-08-2019 7:00,9774327.978,0.050089945,0.050089945 +27-08-2019 8:00,9773347.674,0.059133963,0.059133963 +27-08-2019 9:00,9772366.88,0.042437315,0.042437315 +27-08-2019 10:00,9771385.595,0.036871765,0.036871765 +27-08-2019 11:00,9770403.821,0.031306216,0.031306216 +27-08-2019 12:00,9769421.558,0.025044973,0.025044973 +27-08-2019 13:00,9768438.807,0.021566504,0.021566504 +27-08-2019 14:00,9767455.568,0.016696648,0.016696648 +27-08-2019 15:00,9766471.841,0.018783729,0.018783729 +27-08-2019 16:00,9765487.627,0.030610522,0.030610522 +27-08-2019 17:00,9764502.927,0.054264107,0.054264107 +27-08-2019 18:00,9763517.741,0.054959801,0.054959801 +27-08-2019 19:00,9762532.07,0.048698558,0.048698558 +27-08-2019 20:00,9761545.914,0.040350234,0.040350234 +27-08-2019 21:00,9760559.273,0.028523441,0.028523441 +27-08-2019 22:00,9759572.148,0.013913874,0.013913874 +27-08-2019 23:00,9758584.54,0.004869856,0.004869856 +28-08-2019 0:00,9757596.45,0.002782775,0.002782775 +28-08-2019 1:00,9756607.877,0.000695694,0.000695694 +28-08-2019 2:00,9755618.822,0.000695694,0.000695694 +28-08-2019 3:00,9754629.285,0.001391387,0.001391387 +28-08-2019 4:00,9753639.268,0.004869856,0.004869856 +28-08-2019 5:00,9752648.771,0.038958846,0.038958846 +28-08-2019 6:00,9751657.793,0.064699512,0.064699512 +28-08-2019 7:00,9750666.337,0.050089945,0.050089945 +28-08-2019 8:00,9749674.401,0.059133963,0.059133963 +28-08-2019 9:00,9748681.988,0.042437315,0.042437315 +28-08-2019 10:00,9747689.096,0.036871765,0.036871765 +28-08-2019 11:00,9746695.728,0.031306216,0.031306216 +28-08-2019 12:00,9745701.882,0.025044973,0.025044973 +28-08-2019 13:00,9744707.561,0.021566504,0.021566504 +28-08-2019 14:00,9743712.763,0.016696648,0.016696648 +28-08-2019 15:00,9742717.491,0.018783729,0.018783729 +28-08-2019 16:00,9741721.743,0.030610522,0.030610522 +28-08-2019 17:00,9740725.522,0.054264107,0.054264107 +28-08-2019 18:00,9739728.827,0.054959801,0.054959801 +28-08-2019 19:00,9738731.658,0.048698558,0.048698558 +28-08-2019 20:00,9737734.017,0.040350234,0.040350234 +28-08-2019 21:00,9736735.904,0.028523441,0.028523441 +28-08-2019 22:00,9735737.32,0.013913874,0.013913874 +28-08-2019 23:00,9734738.264,0.004869856,0.004869856 +29-08-2019 0:00,9733738.737,0.002782775,0.002782775 +29-08-2019 1:00,9732738.741,0.000695694,0.000695694 +29-08-2019 2:00,9731738.275,0.000695694,0.000695694 +29-08-2019 3:00,9730737.34,0.001391387,0.001391387 +29-08-2019 4:00,9729735.936,0.004869856,0.004869856 +29-08-2019 5:00,9728734.064,0.038958846,0.038958846 +29-08-2019 6:00,9727731.725,0.064699512,0.064699512 +29-08-2019 7:00,9726728.919,0.050089945,0.050089945 +29-08-2019 8:00,9725725.646,0.059133963,0.059133963 +29-08-2019 9:00,9724721.908,0.042437315,0.042437315 +29-08-2019 10:00,9723717.703,0.036871765,0.036871765 +29-08-2019 11:00,9722713.034,0.031306216,0.031306216 +29-08-2019 12:00,9721707.901,0.025044973,0.025044973 +29-08-2019 13:00,9720702.304,0.021566504,0.021566504 +29-08-2019 14:00,9719696.243,0.016696648,0.016696648 +29-08-2019 15:00,9718689.719,0.018783729,0.018783729 +29-08-2019 16:00,9717682.734,0.030610522,0.030610522 +29-08-2019 17:00,9716675.286,0.054264107,0.054264107 +29-08-2019 18:00,9715667.377,0.054959801,0.054959801 +29-08-2019 19:00,9714659.007,0.048698558,0.048698558 +29-08-2019 20:00,9713650.177,0.040350234,0.040350234 +29-08-2019 21:00,9712640.887,0.028523441,0.028523441 +29-08-2019 22:00,9711631.138,0.013913874,0.013913874 +29-08-2019 23:00,9710620.93,0.004869856,0.004869856 +30-08-2019 0:00,9709610.265,0.002782775,0.002782775 +30-08-2019 1:00,9708599.141,0.000695694,0.000695694 +30-08-2019 2:00,9707587.56,0.000695694,0.000695694 +30-08-2019 3:00,9706575.523,0.001391387,0.001391387 +30-08-2019 4:00,9705563.029,0.004869856,0.004869856 +30-08-2019 5:00,9704550.08,0.038958846,0.038958846 +30-08-2019 6:00,9703536.676,0.064699512,0.064699512 +30-08-2019 7:00,9702522.817,0.050089945,0.050089945 +30-08-2019 8:00,9701508.505,0.059133963,0.059133963 +30-08-2019 9:00,9700493.739,0.042437315,0.042437315 +30-08-2019 10:00,9699478.519,0.036871765,0.036871765 +30-08-2019 11:00,9698462.848,0.031306216,0.031306216 +30-08-2019 12:00,9697446.724,0.025044973,0.025044973 +30-08-2019 13:00,9696430.149,0.021566504,0.021566504 +30-08-2019 14:00,9695413.123,0.016696648,0.016696648 +30-08-2019 15:00,9694395.647,0.018783729,0.018783729 +30-08-2019 16:00,9693377.721,0.030610522,0.030610522 +30-08-2019 17:00,9692359.346,0.054264107,0.054264107 +30-08-2019 18:00,9691340.521,0.054959801,0.054959801 +30-08-2019 19:00,9690321.249,0.048698558,0.048698558 +30-08-2019 20:00,9689301.529,0.040350234,0.040350234 +30-08-2019 21:00,9688281.361,0.028523441,0.028523441 +30-08-2019 22:00,9687260.747,0.013913874,0.013913874 +30-08-2019 23:00,9686239.687,0.004869856,0.004869856 +31-08-2019 0:00,9685218.181,0.002782775,0.002782775 +31-08-2019 1:00,9684196.23,0.000695694,0.000695694 +31-08-2019 2:00,9683173.834,0.000695694,0.000695694 +31-08-2019 3:00,9682150.995,0.001391387,0.001391387 +31-08-2019 4:00,9681127.711,0.004869856,0.004869856 +31-08-2019 5:00,9680103.985,0.038958846,0.038958846 +31-08-2019 6:00,9679079.816,0.064699512,0.064699512 +31-08-2019 7:00,9678055.206,0.050089945,0.050089945 +31-08-2019 8:00,9677030.153,0.059133963,0.059133963 +31-08-2019 9:00,9676004.66,0.042437315,0.042437315 +31-08-2019 10:00,9674978.727,0.036871765,0.036871765 +31-08-2019 11:00,9673952.354,0.031306216,0.031306216 +31-08-2019 12:00,9672925.541,0.025044973,0.025044973 +31-08-2019 13:00,9671898.289,0.021566504,0.021566504 +31-08-2019 14:00,9670870.6,0.016696648,0.016696648 +31-08-2019 15:00,9669842.472,0.018783729,0.018783729 +31-08-2019 16:00,9668813.908,0.030610522,0.030610522 +31-08-2019 17:00,9667784.906,0.054264107,0.054264107 +31-08-2019 18:00,9666755.469,0.054959801,0.054959801 +31-08-2019 19:00,9665725.596,0.048698558,0.048698558 +31-08-2019 20:00,9664695.288,0.040350234,0.040350234 +31-08-2019 21:00,9663664.545,0.028523441,0.028523441 +31-08-2019 22:00,9662633.368,0.013913874,0.013913874 +31-08-2019 23:00,9661601.758,0.004869856,0.004869856 +01-09-2019 0:00,9660569.715,0.002782775,0.002782775 +01-09-2019 1:00,9659537.239,0.000695694,0.000695694 +01-09-2019 2:00,9658504.331,0.000695694,0.000695694 +01-09-2019 3:00,9657470.992,0.001391387,0.001391387 +01-09-2019 4:00,9656437.223,0.004869856,0.004869856 +01-09-2019 5:00,9655403.022,0.038958846,0.038958846 +01-09-2019 6:00,9654368.392,0.064699512,0.064699512 +01-09-2019 7:00,9653333.333,0.050089945,0.050089945 +01-09-2019 8:00,9652297.845,0.059133963,0.059133963 +01-09-2019 9:00,9651261.929,0.042437315,0.042437315 +01-09-2019 10:00,9650225.586,0.036871765,0.036871765 +01-09-2019 11:00,9649188.815,0.031306216,0.031306216 +01-09-2019 12:00,9648151.617,0.025044973,0.025044973 +01-09-2019 13:00,9647113.994,0.021566504,0.021566504 +01-09-2019 14:00,9646075.945,0.016696648,0.016696648 +01-09-2019 15:00,9645037.471,0.018783729,0.018783729 +01-09-2019 16:00,9643998.573,0.030610522,0.030610522 +01-09-2019 17:00,9642959.25,0.054264107,0.054264107 +01-09-2019 18:00,9641919.505,0.054959801,0.054959801 +01-09-2019 19:00,9640879.336,0.048698558,0.048698558 +01-09-2019 20:00,9639838.745,0.040350234,0.040350234 +01-09-2019 21:00,9638797.733,0.028523441,0.028523441 +01-09-2019 22:00,9637756.299,0.013913874,0.013913874 +01-09-2019 23:00,9636714.444,0.004869856,0.004869856 +02-09-2019 0:00,9635672.169,0.002782775,0.002782775 +02-09-2019 1:00,9634629.475,0.000695694,0.000695694 +02-09-2019 2:00,9633586.361,0.000695694,0.000695694 +02-09-2019 3:00,9632542.829,0.001391387,0.001391387 +02-09-2019 4:00,9631498.879,0.004869856,0.004869856 +02-09-2019 5:00,9630454.512,0.038958846,0.038958846 +02-09-2019 6:00,9629409.727,0.064699512,0.064699512 +02-09-2019 7:00,9628364.526,0.050089945,0.050089945 +02-09-2019 8:00,9627318.91,0.059133963,0.059133963 +02-09-2019 9:00,9626272.878,0.042437315,0.042437315 +02-09-2019 10:00,9625226.431,0.036871765,0.036871765 +02-09-2019 11:00,9624179.57,0.031306216,0.031306216 +02-09-2019 12:00,9623132.295,0.025044973,0.025044973 +02-09-2019 13:00,9622084.607,0.021566504,0.021566504 +02-09-2019 14:00,9621036.506,0.016696648,0.016696648 +02-09-2019 15:00,9619987.993,0.018783729,0.018783729 +02-09-2019 16:00,9618939.069,0.030610522,0.030610522 +02-09-2019 17:00,9617889.734,0.054264107,0.054264107 +02-09-2019 18:00,9616839.988,0.054959801,0.054959801 +02-09-2019 19:00,9615789.832,0.048698558,0.048698558 +02-09-2019 20:00,9614739.267,0.040350234,0.040350234 +02-09-2019 21:00,9613688.293,0.028523441,0.028523441 +02-09-2019 22:00,9612636.91,0.013913874,0.013913874 +02-09-2019 23:00,9611585.12,0.004869856,0.004869856 +03-09-2019 0:00,9610532.923,0.002782775,0.002782775 +03-09-2019 1:00,9609480.319,0.000695694,0.000695694 +03-09-2019 2:00,9608427.308,0.000695694,0.000695694 +03-09-2019 3:00,9607373.893,0.001391387,0.001391387 +03-09-2019 4:00,9606320.072,0.004869856,0.004869856 +03-09-2019 5:00,9605265.846,0.038958846,0.038958846 +03-09-2019 6:00,9604211.217,0.064699512,0.064699512 +03-09-2019 7:00,9603156.184,0.050089945,0.050089945 +03-09-2019 8:00,9602100.748,0.059133963,0.059133963 +03-09-2019 9:00,9601044.91,0.042437315,0.042437315 +03-09-2019 10:00,9599988.67,0.036871765,0.036871765 +03-09-2019 11:00,9598932.029,0.031306216,0.031306216 +03-09-2019 12:00,9597874.987,0.025044973,0.025044973 +03-09-2019 13:00,9596817.544,0.021566504,0.021566504 +03-09-2019 14:00,9595759.703,0.016696648,0.016696648 +03-09-2019 15:00,9594701.462,0.018783729,0.018783729 +03-09-2019 16:00,9593642.822,0.030610522,0.030610522 +03-09-2019 17:00,9592583.785,0.054264107,0.054264107 +03-09-2019 18:00,9591524.35,0.054959801,0.054959801 +03-09-2019 19:00,9590464.518,0.048698558,0.048698558 +03-09-2019 20:00,9589404.29,0.040350234,0.040350234 +03-09-2019 21:00,9588343.666,0.028523441,0.028523441 +03-09-2019 22:00,9587282.646,0.013913874,0.013913874 +03-09-2019 23:00,9586221.232,0.004869856,0.004869856 +04-09-2019 0:00,9585159.424,0.002782775,0.002782775 +04-09-2019 1:00,9584097.222,0.000695694,0.000695694 +04-09-2019 2:00,9583034.627,0.000695694,0.000695694 +04-09-2019 3:00,9581971.64,0.001391387,0.001391387 +04-09-2019 4:00,9580908.26,0.004869856,0.004869856 +04-09-2019 5:00,9579844.489,0.038958846,0.038958846 +04-09-2019 6:00,9578780.327,0.064699512,0.064699512 +04-09-2019 7:00,9577715.775,0.050089945,0.050089945 +04-09-2019 8:00,9576650.833,0.059133963,0.059133963 +04-09-2019 9:00,9575585.502,0.042437315,0.042437315 +04-09-2019 10:00,9574519.781,0.036871765,0.036871765 +04-09-2019 11:00,9573453.673,0.031306216,0.031306216 +04-09-2019 12:00,9572387.177,0.025044973,0.025044973 +04-09-2019 13:00,9571320.294,0.021566504,0.021566504 +04-09-2019 14:00,9570253.025,0.016696648,0.016696648 +04-09-2019 15:00,9569185.37,0.018783729,0.018783729 +04-09-2019 16:00,9568117.329,0.030610522,0.030610522 +04-09-2019 17:00,9567048.903,0.054264107,0.054264107 +04-09-2019 18:00,9565980.093,0.054959801,0.054959801 +04-09-2019 19:00,9564910.899,0.048698558,0.048698558 +04-09-2019 20:00,9563841.322,0.040350234,0.040350234 +04-09-2019 21:00,9562771.362,0.028523441,0.028523441 +04-09-2019 22:00,9561701.02,0.013913874,0.013913874 +04-09-2019 23:00,9560630.297,0.004869856,0.004869856 +05-09-2019 0:00,9559559.192,0.002782775,0.002782775 +05-09-2019 1:00,9558487.707,0.000695694,0.000695694 +05-09-2019 2:00,9557415.843,0.000695694,0.000695694 +05-09-2019 3:00,9556343.598,0.001391387,0.001391387 +05-09-2019 4:00,9555270.975,0.004869856,0.004869856 +05-09-2019 5:00,9554197.974,0.038958846,0.038958846 +05-09-2019 6:00,9553124.595,0.064699512,0.064699512 +05-09-2019 7:00,9552050.839,0.050089945,0.050089945 +05-09-2019 8:00,9550976.706,0.059133963,0.059133963 +05-09-2019 9:00,9549902.197,0.042437315,0.042437315 +05-09-2019 10:00,9548827.313,0.036871765,0.036871765 +05-09-2019 11:00,9547752.053,0.031306216,0.031306216 +05-09-2019 12:00,9546676.42,0.025044973,0.025044973 +05-09-2019 13:00,9545600.412,0.021566504,0.021566504 +05-09-2019 14:00,9544524.031,0.016696648,0.016696648 +05-09-2019 15:00,9543447.277,0.018783729,0.018783729 +05-09-2019 16:00,9542370.152,0.030610522,0.030610522 +05-09-2019 17:00,9541292.654,0.054264107,0.054264107 +05-09-2019 18:00,9540214.786,0.054959801,0.054959801 +05-09-2019 19:00,9539136.547,0.048698558,0.048698558 +05-09-2019 20:00,9538057.938,0.040350234,0.040350234 +05-09-2019 21:00,9536978.959,0.028523441,0.028523441 +05-09-2019 22:00,9535899.612,0.013913874,0.013913874 +05-09-2019 23:00,9534819.897,0.004869856,0.004869856 +06-09-2019 0:00,9533739.813,0.002782775,0.002782775 +06-09-2019 1:00,9532659.363,0.000695694,0.000695694 +06-09-2019 2:00,9531578.546,0.000695694,0.000695694 +06-09-2019 3:00,9530497.362,0.001391387,0.001391387 +06-09-2019 4:00,9529415.814,0.004869856,0.004869856 +06-09-2019 5:00,9528333.9,0.038958846,0.038958846 +06-09-2019 6:00,9527251.622,0.064699512,0.064699512 +06-09-2019 7:00,9526168.98,0.050089945,0.050089945 +06-09-2019 8:00,9525085.975,0.059133963,0.059133963 +06-09-2019 9:00,9524002.607,0.042437315,0.042437315 +06-09-2019 10:00,9522918.876,0.036871765,0.036871765 +06-09-2019 11:00,9521834.785,0.031306216,0.031306216 +06-09-2019 12:00,9520750.332,0.025044973,0.025044973 +06-09-2019 13:00,9519665.518,0.021566504,0.021566504 +06-09-2019 14:00,9518580.345,0.016696648,0.016696648 +06-09-2019 15:00,9517494.812,0.018783729,0.018783729 +06-09-2019 16:00,9516408.921,0.030610522,0.030610522 +06-09-2019 17:00,9515322.671,0.054264107,0.054264107 +06-09-2019 18:00,9514236.063,0.054959801,0.054959801 +06-09-2019 19:00,9513149.099,0.048698558,0.048698558 +06-09-2019 20:00,9512061.777,0.040350234,0.040350234 +06-09-2019 21:00,9510974.1,0.028523441,0.028523441 +06-09-2019 22:00,9509886.067,0.013913874,0.013913874 +06-09-2019 23:00,9508797.68,0.004869856,0.004869856 +07-09-2019 0:00,9507708.938,0.002782775,0.002782775 +07-09-2019 1:00,9506619.842,0.000695694,0.000695694 +07-09-2019 2:00,9505530.393,0.000695694,0.000695694 +07-09-2019 3:00,9504440.591,0.001391387,0.001391387 +07-09-2019 4:00,9503350.437,0.004869856,0.004869856 +07-09-2019 5:00,9502259.931,0.038958846,0.038958846 +07-09-2019 6:00,9501169.075,0.064699512,0.064699512 +07-09-2019 7:00,9500077.868,0.050089945,0.050089945 +07-09-2019 8:00,9498986.311,0.059133963,0.059133963 +07-09-2019 9:00,9497894.405,0.042437315,0.042437315 +07-09-2019 10:00,9496802.15,0.036871765,0.036871765 +07-09-2019 11:00,9495709.547,0.031306216,0.031306216 +07-09-2019 12:00,9494616.597,0.025044973,0.025044973 +07-09-2019 13:00,9493523.299,0.021566504,0.021566504 +07-09-2019 14:00,9492429.655,0.016696648,0.016696648 +07-09-2019 15:00,9491335.665,0.018783729,0.018783729 +07-09-2019 16:00,9490241.329,0.030610522,0.030610522 +07-09-2019 17:00,9489146.649,0.054264107,0.054264107 +07-09-2019 18:00,9488051.624,0.054959801,0.054959801 +07-09-2019 19:00,9486956.256,0.048698558,0.048698558 +07-09-2019 20:00,9485860.544,0.040350234,0.040350234 +07-09-2019 21:00,9484764.49,0.028523441,0.028523441 +07-09-2019 22:00,9483668.095,0.013913874,0.013913874 +07-09-2019 23:00,9482571.357,0.004869856,0.004869856 +08-09-2019 0:00,9481474.279,0.002782775,0.002782775 +08-09-2019 1:00,9480376.86,0.000695694,0.000695694 +08-09-2019 2:00,9479279.102,0.000695694,0.000695694 +08-09-2019 3:00,9478181.005,0.001391387,0.001391387 +08-09-2019 4:00,9477082.569,0.004869856,0.004869856 +08-09-2019 5:00,9475983.794,0.038958846,0.038958846 +08-09-2019 6:00,9474884.683,0.064699512,0.064699512 +08-09-2019 7:00,9473785.234,0.050089945,0.050089945 +08-09-2019 8:00,9472685.45,0.059133963,0.059133963 +08-09-2019 9:00,9471585.329,0.042437315,0.042437315 +08-09-2019 10:00,9470484.873,0.036871765,0.036871765 +08-09-2019 11:00,9469384.083,0.031306216,0.031306216 +08-09-2019 12:00,9468282.958,0.025044973,0.025044973 +08-09-2019 13:00,9467181.5,0.021566504,0.021566504 +08-09-2019 14:00,9466079.709,0.016696648,0.016696648 +08-09-2019 15:00,9464977.585,0.018783729,0.018783729 +08-09-2019 16:00,9463875.13,0.030610522,0.030610522 +08-09-2019 17:00,9462772.344,0.054264107,0.054264107 +08-09-2019 18:00,9461669.227,0.054959801,0.054959801 +08-09-2019 19:00,9460565.779,0.048698558,0.048698558 +08-09-2019 20:00,9459462.002,0.040350234,0.040350234 +08-09-2019 21:00,9458357.897,0.028523441,0.028523441 +08-09-2019 22:00,9457253.462,0.013913874,0.013913874 +08-09-2019 23:00,9456148.7,0.004869856,0.004869856 +09-09-2019 0:00,9455043.611,0.002782775,0.002782775 +09-09-2019 1:00,9453938.195,0.000695694,0.000695694 +09-09-2019 2:00,9452832.453,0.000695694,0.000695694 +09-09-2019 3:00,9451726.385,0.001391387,0.001391387 +09-09-2019 4:00,9450619.992,0.004869856,0.004869856 +09-09-2019 5:00,9449513.275,0.038958846,0.038958846 +09-09-2019 6:00,9448406.234,0.064699512,0.064699512 +09-09-2019 7:00,9447298.87,0.050089945,0.050089945 +09-09-2019 8:00,9446191.183,0.059133963,0.059133963 +09-09-2019 9:00,9445083.174,0.042437315,0.042437315 +09-09-2019 10:00,9443974.843,0.036871765,0.036871765 +09-09-2019 11:00,9442866.191,0.031306216,0.031306216 +09-09-2019 12:00,9441757.219,0.025044973,0.025044973 +09-09-2019 13:00,9440647.927,0.021566504,0.021566504 +09-09-2019 14:00,9439538.316,0.016696648,0.016696648 +09-09-2019 15:00,9438428.386,0.018783729,0.018783729 +09-09-2019 16:00,9437318.137,0.030610522,0.030610522 +09-09-2019 17:00,9436207.571,0.054264107,0.054264107 +09-09-2019 18:00,9435096.689,0.054959801,0.054959801 +09-09-2019 19:00,9433985.489,0.048698558,0.048698558 +09-09-2019 20:00,9432873.974,0.040350234,0.040350234 +09-09-2019 21:00,9431762.144,0.028523441,0.028523441 +09-09-2019 22:00,9430649.999,0.013913874,0.013913874 +09-09-2019 23:00,9429537.539,0.004869856,0.004869856 +10-09-2019 0:00,9428424.766,0.002782775,0.002782775 +10-09-2019 1:00,9427311.68,0.000695694,0.000695694 +10-09-2019 2:00,9426198.282,0.000695694,0.000695694 +10-09-2019 3:00,9425084.572,0.001391387,0.001391387 +10-09-2019 4:00,9423970.55,0.004869856,0.004869856 +10-09-2019 5:00,9422856.218,0.038958846,0.038958846 +10-09-2019 6:00,9421741.575,0.064699512,0.064699512 +10-09-2019 7:00,9420626.624,0.050089945,0.050089945 +10-09-2019 8:00,9419511.363,0.059133963,0.059133963 +10-09-2019 9:00,9418395.793,0.042437315,0.042437315 +10-09-2019 10:00,9417279.916,0.036871765,0.036871765 +10-09-2019 11:00,9416163.731,0.031306216,0.031306216 +10-09-2019 12:00,9415047.24,0.025044973,0.025044973 +10-09-2019 13:00,9413930.443,0.021566504,0.021566504 +10-09-2019 14:00,9412813.34,0.016696648,0.016696648 +10-09-2019 15:00,9411695.932,0.018783729,0.018783729 +10-09-2019 16:00,9410578.22,0.030610522,0.030610522 +10-09-2019 17:00,9409460.204,0.054264107,0.054264107 +10-09-2019 18:00,9408341.884,0.054959801,0.054959801 +10-09-2019 19:00,9407223.262,0.048698558,0.048698558 +10-09-2019 20:00,9406104.338,0.040350234,0.040350234 +10-09-2019 21:00,9404985.112,0.028523441,0.028523441 +10-09-2019 22:00,9403865.586,0.013913874,0.013913874 +10-09-2019 23:00,9402745.759,0.004869856,0.004869856 +11-09-2019 0:00,9401625.632,0.002782775,0.002782775 +11-09-2019 1:00,9400505.206,0.000695694,0.000695694 +11-09-2019 2:00,9399384.481,0.000695694,0.000695694 +11-09-2019 3:00,9398263.459,0.001391387,0.001391387 +11-09-2019 4:00,9397142.138,0.004869856,0.004869856 +11-09-2019 5:00,9396020.521,0.039090878,0.039090878 +11-09-2019 6:00,9394898.608,0.064699512,0.064699512 +11-09-2019 7:00,9393776.398,0.050089945,0.050089945 +11-09-2019 8:00,9392653.894,0.059133963,0.059133963 +11-09-2019 9:00,9391531.095,0.042751794,0.042751794 +11-09-2019 10:00,9390408.002,0.036871765,0.036871765 +11-09-2019 11:00,9389284.615,0.031306216,0.031306216 +11-09-2019 12:00,9388160.936,0.025133763,0.025133763 +11-09-2019 13:00,9387036.964,0.021566504,0.021566504 +11-09-2019 14:00,9385912.701,0.016696648,0.016696648 +11-09-2019 15:00,9384788.146,0.018783729,0.018783729 +11-09-2019 16:00,9383663.301,0.030610522,0.030610522 +11-09-2019 17:00,9382538.166,0.054264107,0.054264107 +11-09-2019 18:00,9381412.741,0.054959801,0.054959801 +11-09-2019 19:00,9380287.028,0.048698558,0.048698558 +11-09-2019 20:00,9379161.027,0.040350234,0.040350234 +11-09-2019 21:00,9378034.737,0.028523441,0.028523441 +11-09-2019 22:00,9376908.161,0.013913874,0.013913874 +11-09-2019 23:00,9375781.298,0.004869856,0.004869856 +12-09-2019 0:00,9374654.149,0.002782775,0.002782775 +12-09-2019 1:00,9373526.715,0.000695694,0.000695694 +12-09-2019 2:00,9372398.996,0.000695694,0.000695694 +12-09-2019 3:00,9371270.993,0.001391387,0.001391387 +12-09-2019 4:00,9370142.707,0.004869856,0.004869856 +12-09-2019 5:00,9369014.137,0.038958846,0.038958846 +12-09-2019 6:00,9367885.285,0.064699512,0.064699512 +12-09-2019 7:00,9366756.151,0.050089945,0.050089945 +12-09-2019 8:00,9365626.736,0.059133963,0.059133963 +12-09-2019 9:00,9364497.04,0.042437315,0.042437315 +12-09-2019 10:00,9363367.064,0.036871765,0.036871765 +12-09-2019 11:00,9362236.808,0.031306216,0.031306216 +12-09-2019 12:00,9361106.273,0.025044973,0.025044973 +12-09-2019 13:00,9359975.46,0.021566504,0.021566504 +12-09-2019 14:00,9358844.369,0.016696648,0.016696648 +12-09-2019 15:00,9357713.001,0.018783729,0.018783729 +12-09-2019 16:00,9356581.357,0.030610522,0.030610522 +12-09-2019 17:00,9355449.436,0.054264107,0.054264107 +12-09-2019 18:00,9354317.24,0.054959801,0.054959801 +12-09-2019 19:00,9353184.769,0.048698558,0.048698558 +12-09-2019 20:00,9352052.024,0.040350234,0.040350234 +12-09-2019 21:00,9350919.005,0.028523441,0.028523441 +12-09-2019 22:00,9349785.712,0.013913874,0.013913874 +12-09-2019 23:00,9348652.148,0.004869856,0.004869856 +13-09-2019 0:00,9347518.311,0.002782775,0.002782775 +13-09-2019 1:00,9346384.203,0.000695694,0.000695694 +13-09-2019 2:00,9345249.824,0.000695694,0.000695694 +13-09-2019 3:00,9344115.175,0.001391387,0.001391387 +13-09-2019 4:00,9342980.256,0.004869856,0.004869856 +13-09-2019 5:00,9341845.068,0.038958846,0.038958846 +13-09-2019 6:00,9340709.612,0.064699512,0.064699512 +13-09-2019 7:00,9339573.888,0.050089945,0.050089945 +13-09-2019 8:00,9338437.896,0.059133963,0.059133963 +13-09-2019 9:00,9337301.638,0.042437315,0.042437315 +13-09-2019 10:00,9336165.114,0.036871765,0.036871765 +13-09-2019 11:00,9335028.324,0.031306216,0.031306216 +13-09-2019 12:00,9333891.269,0.025044973,0.025044973 +13-09-2019 13:00,9332753.95,0.021566504,0.021566504 +13-09-2019 14:00,9331616.367,0.016696648,0.016696648 +13-09-2019 15:00,9330478.521,0.018783729,0.018783729 +13-09-2019 16:00,9329340.412,0.030610522,0.030610522 +13-09-2019 17:00,9328202.041,0.054264107,0.054264107 +13-09-2019 18:00,9327063.409,0.054959801,0.054959801 +13-09-2019 19:00,9325924.516,0.048698558,0.048698558 +13-09-2019 20:00,9324785.362,0.040350234,0.040350234 +13-09-2019 21:00,9323645.949,0.028523441,0.028523441 +13-09-2019 22:00,9322506.277,0.013913874,0.013913874 +13-09-2019 23:00,9321366.346,0.004869856,0.004869856 +14-09-2019 0:00,9320226.157,0.002782775,0.002782775 +14-09-2019 1:00,9319085.711,0.000695694,0.000695694 +14-09-2019 2:00,9317945.009,0.000695694,0.000695694 +14-09-2019 3:00,9316804.05,0.001391387,0.001391387 +14-09-2019 4:00,9315662.835,0.004869856,0.004869856 +14-09-2019 5:00,9314521.365,0.038958846,0.038958846 +14-09-2019 6:00,9313379.641,0.064699512,0.064699512 +14-09-2019 7:00,9312237.664,0.050089945,0.050089945 +14-09-2019 8:00,9311095.433,0.059133963,0.059133963 +14-09-2019 9:00,9309952.949,0.042437315,0.042437315 +14-09-2019 10:00,9308810.213,0.036871765,0.036871765 +14-09-2019 11:00,9307667.226,0.031306216,0.031306216 +14-09-2019 12:00,9306523.988,0.025044973,0.025044973 +14-09-2019 13:00,9305380.5,0.021566504,0.021566504 +14-09-2019 14:00,9304236.761,0.016696648,0.016696648 +14-09-2019 15:00,9303092.774,0.018783729,0.018783729 +14-09-2019 16:00,9301948.538,0.030610522,0.030610522 +14-09-2019 17:00,9300804.055,0.054264107,0.054264107 +14-09-2019 18:00,9299659.324,0.054959801,0.054959801 +14-09-2019 19:00,9298514.346,0.048698558,0.048698558 +14-09-2019 20:00,9297369.122,0.040350234,0.040350234 +14-09-2019 21:00,9296223.652,0.028523441,0.028523441 +14-09-2019 22:00,9295077.938,0.013913874,0.013913874 +14-09-2019 23:00,9293931.979,0.004869856,0.004869856 +15-09-2019 0:00,9292785.776,0.002782775,0.002782775 +15-09-2019 1:00,9291639.33,0.000695694,0.000695694 +15-09-2019 2:00,9290492.641,0.000695694,0.000695694 +15-09-2019 3:00,9289345.711,0.001391387,0.001391387 +15-09-2019 4:00,9288198.538,0.004869856,0.004869856 +15-09-2019 5:00,9287051.125,0.038958846,0.038958846 +15-09-2019 6:00,9285903.472,0.064699512,0.064699512 +15-09-2019 7:00,9284755.579,0.050089945,0.050089945 +15-09-2019 8:00,9283607.447,0.059133963,0.059133963 +15-09-2019 9:00,9282459.076,0.042437315,0.042437315 +15-09-2019 10:00,9281310.468,0.036871765,0.036871765 +15-09-2019 11:00,9280161.622,0.031306216,0.031306216 +15-09-2019 12:00,9279012.539,0.025044973,0.025044973 +15-09-2019 13:00,9277863.22,0.021566504,0.021566504 +15-09-2019 14:00,9276713.666,0.016696648,0.016696648 +15-09-2019 15:00,9275563.877,0.018783729,0.018783729 +15-09-2019 16:00,9274413.853,0.030610522,0.030610522 +15-09-2019 17:00,9273263.596,0.054264107,0.054264107 +15-09-2019 18:00,9272113.105,0.054959801,0.054959801 +15-09-2019 19:00,9270962.382,0.048698558,0.048698558 +15-09-2019 20:00,9269811.427,0.040350234,0.040350234 +15-09-2019 21:00,9268660.24,0.028523441,0.028523441 +15-09-2019 22:00,9267508.823,0.013913874,0.013913874 +15-09-2019 23:00,9266357.175,0.004869856,0.004869856 +16-09-2019 0:00,9265205.298,0.002782775,0.002782775 +16-09-2019 1:00,9264053.192,0.000695694,0.000695694 +16-09-2019 2:00,9262900.857,0.000695694,0.000695694 +16-09-2019 3:00,9261748.294,0.001391387,0.001391387 +16-09-2019 4:00,9260595.504,0.004869856,0.004869856 +16-09-2019 5:00,9259442.488,0.038958846,0.038958846 +16-09-2019 6:00,9258289.245,0.064699512,0.064699512 +16-09-2019 7:00,9257135.777,0.050089945,0.050089945 +16-09-2019 8:00,9255982.084,0.059133963,0.059133963 +16-09-2019 9:00,9254828.167,0.042437315,0.042437315 +16-09-2019 10:00,9253674.026,0.036871765,0.036871765 +16-09-2019 11:00,9252519.662,0.031306216,0.031306216 +16-09-2019 12:00,9251365.075,0.025044973,0.025044973 +16-09-2019 13:00,9250210.267,0.021566504,0.021566504 +16-09-2019 14:00,9249055.237,0.016696648,0.016696648 +16-09-2019 15:00,9247899.986,0.018783729,0.018783729 +16-09-2019 16:00,9246744.515,0.030610522,0.030610522 +16-09-2019 17:00,9245588.825,0.054264107,0.054264107 +16-09-2019 18:00,9244432.916,0.054959801,0.054959801 +16-09-2019 19:00,9243276.788,0.048698558,0.048698558 +16-09-2019 20:00,9242120.443,0.040350234,0.040350234 +16-09-2019 21:00,9240963.881,0.028523441,0.028523441 +16-09-2019 22:00,9239807.102,0.013913874,0.013913874 +16-09-2019 23:00,9238650.106,0.004869856,0.004869856 +17-09-2019 0:00,9237492.896,0.002782775,0.002782775 +17-09-2019 1:00,9236335.471,0.000695694,0.000695694 +17-09-2019 2:00,9235177.831,0.000695694,0.000695694 +17-09-2019 3:00,9234019.978,0.001391387,0.001391387 +17-09-2019 4:00,9232861.913,0.004869856,0.004869856 +17-09-2019 5:00,9231703.634,0.039055034,0.039055034 +17-09-2019 6:00,9230545.144,0.064699512,0.064699512 +17-09-2019 7:00,9229386.443,0.050089945,0.050089945 +17-09-2019 8:00,9228227.531,0.059133963,0.059133963 +17-09-2019 9:00,9227068.409,0.042780561,0.042780561 +17-09-2019 10:00,9225909.077,0.036871765,0.036871765 +17-09-2019 11:00,9224749.537,0.031306216,0.031306216 +17-09-2019 12:00,9223589.788,0.025044973,0.025044973 +17-09-2019 13:00,9222429.832,0.021566504,0.021566504 +17-09-2019 14:00,9221269.669,0.016696648,0.016696648 +17-09-2019 15:00,9220109.299,0.018783729,0.018783729 +17-09-2019 16:00,9218948.724,0.030610522,0.030610522 +17-09-2019 17:00,9217787.943,0.054264107,0.054264107 +17-09-2019 18:00,9216626.958,0.054959801,0.054959801 +17-09-2019 19:00,9215465.769,0.048698558,0.048698558 +17-09-2019 20:00,9214304.376,0.040350234,0.040350234 +17-09-2019 21:00,9213142.78,0.028523441,0.028523441 +17-09-2019 22:00,9211980.982,0.013913874,0.013913874 +17-09-2019 23:00,9210818.983,0.004869856,0.004869856 +18-09-2019 0:00,9209656.782,0.002782775,0.002782775 +18-09-2019 1:00,9208494.381,0.000695694,0.000695694 +18-09-2019 2:00,9207331.78,0.000695694,0.000695694 +18-09-2019 3:00,9206168.98,0.001391387,0.001391387 +18-09-2019 4:00,9205005.981,0.004869856,0.004869856 +18-09-2019 5:00,9203842.784,0.03975662,0.03975662 +18-09-2019 6:00,9202679.389,0.064699512,0.064699512 +18-09-2019 7:00,9201515.798,0.050089945,0.050089945 +18-09-2019 8:00,9200352.01,0.059133963,0.059133963 +18-09-2019 9:00,9199188.027,0.042841044,0.042841044 +18-09-2019 10:00,9198023.849,0.036871765,0.036871765 +18-09-2019 11:00,9196859.476,0.031306216,0.031306216 +18-09-2019 12:00,9195694.909,0.025044973,0.025044973 +18-09-2019 13:00,9194530.149,0.021566504,0.021566504 +18-09-2019 14:00,9193365.196,0.016696648,0.016696648 +18-09-2019 15:00,9192200.052,0.018783729,0.018783729 +18-09-2019 16:00,9191034.715,0.030610522,0.030610522 +18-09-2019 17:00,9189869.188,0.054264107,0.054264107 +18-09-2019 18:00,9188703.471,0.055013599,0.055013599 +18-09-2019 19:00,9187537.564,0.048969052,0.048969052 +18-09-2019 20:00,9186371.468,0.040350234,0.040350234 +18-09-2019 21:00,9185205.183,0.028640888,0.028640888 +18-09-2019 22:00,9184038.71,0.013913874,0.013913874 +18-09-2019 23:00,9182872.051,0.004869856,0.004869856 +19-09-2019 0:00,9181705.204,0.002782775,0.002782775 +19-09-2019 1:00,9180538.172,0.000695694,0.000695694 +19-09-2019 2:00,9179370.953,0.000695694,0.000695694 +19-09-2019 3:00,9178203.551,0.001391387,0.001391387 +19-09-2019 4:00,9177035.963,0.004869856,0.004869856 +19-09-2019 5:00,9175868.192,0.039876325,0.039876325 +19-09-2019 6:00,9174700.238,0.065467646,0.065467646 +19-09-2019 7:00,9173532.102,0.050089945,0.050089945 +19-09-2019 8:00,9172363.784,0.059503818,0.059503818 +19-09-2019 9:00,9171195.284,0.043786726,0.043786726 +19-09-2019 10:00,9170026.604,0.037320715,0.037320715 +19-09-2019 11:00,9168857.743,0.031617818,0.031617818 +19-09-2019 12:00,9167688.703,0.025653301,0.025653301 +19-09-2019 13:00,9166519.485,0.021566504,0.021566504 +19-09-2019 14:00,9165350.088,0.016696648,0.016696648 +19-09-2019 15:00,9164180.513,0.018783729,0.018783729 +19-09-2019 16:00,9163010.761,0.030610522,0.030610522 +19-09-2019 17:00,9161840.833,0.054264107,0.054264107 +19-09-2019 18:00,9160670.729,0.055236059,0.055236059 +19-09-2019 19:00,9159500.45,0.049086849,0.049086849 +19-09-2019 20:00,9158329.996,0.040826931,0.040826931 +19-09-2019 21:00,9157159.368,0.028769302,0.028769302 +19-09-2019 22:00,9155988.566,0.013913874,0.013913874 +19-09-2019 23:00,9154817.592,0.004869856,0.004869856 +20-09-2019 0:00,9153646.445,0.002782775,0.002782775 +20-09-2019 1:00,9152475.127,0.000695694,0.000695694 +20-09-2019 2:00,9151303.638,0.000695694,0.000695694 +20-09-2019 3:00,9150131.978,0.001391387,0.001391387 +20-09-2019 4:00,9148960.148,0.004869856,0.004869856 +20-09-2019 5:00,9147788.15,0.040339317,0.040339317 +20-09-2019 6:00,9146615.982,0.068239232,0.068239232 +20-09-2019 7:00,9145443.647,0.050812481,0.050812481 +20-09-2019 8:00,9144271.144,0.0608469,0.0608469 +20-09-2019 9:00,9143098.474,0.043952064,0.043952064 +20-09-2019 10:00,9141925.638,0.037582818,0.037582818 +20-09-2019 11:00,9140752.637,0.031845043,0.031845043 +20-09-2019 12:00,9139579.47,0.026065491,0.026065491 +20-09-2019 13:00,9138406.139,0.021566504,0.021566504 +20-09-2019 14:00,9137232.644,0.016696648,0.016696648 +20-09-2019 15:00,9136058.986,0.018783729,0.018783729 +20-09-2019 16:00,9134885.166,0.030610522,0.030610522 +20-09-2019 17:00,9133711.183,0.054264107,0.054264107 +20-09-2019 18:00,9132537.039,0.054959801,0.054959801 +20-09-2019 19:00,9131362.734,0.048890759,0.048890759 +20-09-2019 20:00,9130188.269,0.0404129,0.0404129 +20-09-2019 21:00,9129013.645,0.028750544,0.028750544 +20-09-2019 22:00,9127838.861,0.013913874,0.013913874 +20-09-2019 23:00,9126663.919,0.004869856,0.004869856 +21-09-2019 0:00,9125488.82,0.002782775,0.002782775 +21-09-2019 1:00,9124313.563,0.000695694,0.000695694 +21-09-2019 2:00,9123138.15,0.000695694,0.000695694 +21-09-2019 3:00,9121962.58,0.001391387,0.001391387 +21-09-2019 4:00,9120786.856,0.004869856,0.004869856 +21-09-2019 5:00,9119610.976,0.040100584,0.040100584 +21-09-2019 6:00,9118434.943,0.067131742,0.067131742 +21-09-2019 7:00,9117258.756,0.050408584,0.050408584 +21-09-2019 8:00,9116082.416,0.059217265,0.059217265 +21-09-2019 9:00,9114905.923,0.043126949,0.043126949 +21-09-2019 10:00,9113729.279,0.036893556,0.036893556 +21-09-2019 11:00,9112552.484,0.031306216,0.031306216 +21-09-2019 12:00,9111375.538,0.025044973,0.025044973 +21-09-2019 13:00,9110198.443,0.021566504,0.021566504 +21-09-2019 14:00,9109021.198,0.016696648,0.016696648 +21-09-2019 15:00,9107843.804,0.018783729,0.018783729 +21-09-2019 16:00,9106666.263,0.030610522,0.030610522 +21-09-2019 17:00,9105488.574,0.054264107,0.054264107 +21-09-2019 18:00,9104310.738,0.054959801,0.054959801 +21-09-2019 19:00,9103132.755,0.048698558,0.048698558 +21-09-2019 20:00,9101954.627,0.040350234,0.040350234 +21-09-2019 21:00,9100776.355,0.028523441,0.028523441 +21-09-2019 22:00,9099597.937,0.013913874,0.013913874 +21-09-2019 23:00,9098419.376,0.004869856,0.004869856 +22-09-2019 0:00,9097240.671,0.002782775,0.002782775 +22-09-2019 1:00,9096061.824,0.000695694,0.000695694 +22-09-2019 2:00,9094882.835,0.000695694,0.000695694 +22-09-2019 3:00,9093703.705,0.001391387,0.001391387 +22-09-2019 4:00,9092524.433,0.004869856,0.004869856 +22-09-2019 5:00,9091345.022,0.039039662,0.039039662 +22-09-2019 6:00,9090165.47,0.06477761,0.06477761 +22-09-2019 7:00,9088985.78,0.050089945,0.050089945 +22-09-2019 8:00,9087805.952,0.059133963,0.059133963 +22-09-2019 9:00,9086625.985,0.042896264,0.042896264 +22-09-2019 10:00,9085445.882,0.036871765,0.036871765 +22-09-2019 11:00,9084265.642,0.031306216,0.031306216 +22-09-2019 12:00,9083085.266,0.025044973,0.025044973 +22-09-2019 13:00,9081904.754,0.021566504,0.021566504 +22-09-2019 14:00,9080724.108,0.016696648,0.016696648 +22-09-2019 15:00,9079543.328,0.018783729,0.018783729 +22-09-2019 16:00,9078362.414,0.030610522,0.030610522 +22-09-2019 17:00,9077181.368,0.054264107,0.054264107 +22-09-2019 18:00,9076000.189,0.054959801,0.054959801 +22-09-2019 19:00,9074818.878,0.048698558,0.048698558 +22-09-2019 20:00,9073637.436,0.040350234,0.040350234 +22-09-2019 21:00,9072455.864,0.028523441,0.028523441 +22-09-2019 22:00,9071274.162,0.013913874,0.013913874 +22-09-2019 23:00,9070092.331,0.004869856,0.004869856 +23-09-2019 0:00,9068910.371,0.002782775,0.002782775 +23-09-2019 1:00,9067728.282,0.000695694,0.000695694 +23-09-2019 2:00,9066546.067,0.000695694,0.000695694 +23-09-2019 3:00,9065363.724,0.001391387,0.001391387 +23-09-2019 4:00,9064181.256,0.004869856,0.004869856 +23-09-2019 5:00,9062998.662,0.038958846,0.038958846 +23-09-2019 6:00,9061815.942,0.064699512,0.064699512 +23-09-2019 7:00,9060633.099,0.050089945,0.050089945 +23-09-2019 8:00,9059450.131,0.059133963,0.059133963 +23-09-2019 9:00,9058267.04,0.042661323,0.042661323 +23-09-2019 10:00,9057083.827,0.036871765,0.036871765 +23-09-2019 11:00,9055900.492,0.031306216,0.031306216 +23-09-2019 12:00,9054717.035,0.025044973,0.025044973 +23-09-2019 13:00,9053533.458,0.021566504,0.021566504 +23-09-2019 14:00,9052349.761,0.016696648,0.016696648 +23-09-2019 15:00,9051165.944,0.018783729,0.018783729 +23-09-2019 16:00,9049982.008,0.030610522,0.030610522 +23-09-2019 17:00,9048797.954,0.054264107,0.054264107 +23-09-2019 18:00,9047613.782,0.054959801,0.054959801 +23-09-2019 19:00,9046429.493,0.048698558,0.048698558 +23-09-2019 20:00,9045245.087,0.040350234,0.040350234 +23-09-2019 21:00,9044060.566,0.028523441,0.028523441 +23-09-2019 22:00,9042875.929,0.013913874,0.013913874 +23-09-2019 23:00,9041691.178,0.004869856,0.004869856 +24-09-2019 0:00,9040506.312,0.002782775,0.002782775 +24-09-2019 1:00,9039321.333,0.000695694,0.000695694 +24-09-2019 2:00,9038136.242,0.000695694,0.000695694 +24-09-2019 3:00,9036951.038,0.001391387,0.001391387 +24-09-2019 4:00,9035765.722,0.004869856,0.004869856 +24-09-2019 5:00,9034580.296,0.038958846,0.038958846 +24-09-2019 6:00,9033394.759,0.064699512,0.064699512 +24-09-2019 7:00,9032209.112,0.050089945,0.050089945 +24-09-2019 8:00,9031023.356,0.059133963,0.059133963 +24-09-2019 9:00,9029837.492,0.04268159,0.04268159 +24-09-2019 10:00,9028651.52,0.036871765,0.036871765 +24-09-2019 11:00,9027465.44,0.031306216,0.031306216 +24-09-2019 12:00,9026279.253,0.025044973,0.025044973 +24-09-2019 13:00,9025092.961,0.021566504,0.021566504 +24-09-2019 14:00,9023906.563,0.016696648,0.016696648 +24-09-2019 15:00,9022720.06,0.018783729,0.018783729 +24-09-2019 16:00,9021533.452,0.030610522,0.030610522 +24-09-2019 17:00,9020346.741,0.054264107,0.054264107 +24-09-2019 18:00,9019159.927,0.054959801,0.054959801 +24-09-2019 19:00,9017973.011,0.048698558,0.048698558 +24-09-2019 20:00,9016785.993,0.040350234,0.040350234 +24-09-2019 21:00,9015598.873,0.028523441,0.028523441 +24-09-2019 22:00,9014411.653,0.013913874,0.013913874 +24-09-2019 23:00,9013224.333,0.004869856,0.004869856 +25-09-2019 0:00,9012036.913,0.002782775,0.002782775 +25-09-2019 1:00,9010849.395,0.000695694,0.000695694 +25-09-2019 2:00,9009661.778,0.000695694,0.000695694 +25-09-2019 3:00,9008474.064,0.001391387,0.001391387 +25-09-2019 4:00,9007286.253,0.004869856,0.004869856 +25-09-2019 5:00,9006098.345,0.038958846,0.038958846 +25-09-2019 6:00,9004910.342,0.064699512,0.064699512 +25-09-2019 7:00,9003722.244,0.050089945,0.050089945 +25-09-2019 8:00,9002534.051,0.059133963,0.059133963 +25-09-2019 9:00,9001345.764,0.042926496,0.042926496 +25-09-2019 10:00,9000157.384,0.036871765,0.036871765 +25-09-2019 11:00,8998968.911,0.031306216,0.031306216 +25-09-2019 12:00,8997780.346,0.025044973,0.025044973 +25-09-2019 13:00,8996591.69,0.021566504,0.021566504 +25-09-2019 14:00,8995402.943,0.016696648,0.016696648 +25-09-2019 15:00,8994214.105,0.018783729,0.018783729 +25-09-2019 16:00,8993025.178,0.030610522,0.030610522 +25-09-2019 17:00,8991836.162,0.054264107,0.054264107 +25-09-2019 18:00,8990647.058,0.054959801,0.054959801 +25-09-2019 19:00,8989457.866,0.048698558,0.048698558 +25-09-2019 20:00,8988268.586,0.040350234,0.040350234 +25-09-2019 21:00,8987079.22,0.028523441,0.028523441 +25-09-2019 22:00,8985889.768,0.013913874,0.013913874 +25-09-2019 23:00,8984700.231,0.004869856,0.004869856 +26-09-2019 0:00,8983510.609,0.002782775,0.002782775 +26-09-2019 1:00,8982320.903,0.000695694,0.000695694 +26-09-2019 2:00,8981131.113,0.000695694,0.000695694 +26-09-2019 3:00,8979941.241,0.001391387,0.001391387 +26-09-2019 4:00,8978751.286,0.004869856,0.004869856 +26-09-2019 5:00,8977561.25,0.038958846,0.038958846 +26-09-2019 6:00,8976371.132,0.064699512,0.064699512 +26-09-2019 7:00,8975180.934,0.050089945,0.050089945 +26-09-2019 8:00,8973990.656,0.059133963,0.059133963 +26-09-2019 9:00,8972800.299,0.042772987,0.042772987 +26-09-2019 10:00,8971609.864,0.036871765,0.036871765 +26-09-2019 11:00,8970419.35,0.031306216,0.031306216 +26-09-2019 12:00,8969228.759,0.025044973,0.025044973 +26-09-2019 13:00,8968038.091,0.021566504,0.021566504 +26-09-2019 14:00,8966847.347,0.016696648,0.016696648 +26-09-2019 15:00,8965656.528,0.018783729,0.018783729 +26-09-2019 16:00,8964465.633,0.030610522,0.030610522 +26-09-2019 17:00,8963274.665,0.054264107,0.054264107 +26-09-2019 18:00,8962083.622,0.054959801,0.054959801 +26-09-2019 19:00,8960892.507,0.048698558,0.048698558 +26-09-2019 20:00,8959701.318,0.040350234,0.040350234 +26-09-2019 21:00,8958510.059,0.028523441,0.028523441 +26-09-2019 22:00,8957318.727,0.013913874,0.013913874 +26-09-2019 23:00,8956127.326,0.004869856,0.004869856 +27-09-2019 0:00,8954935.854,0.002782775,0.002782775 +27-09-2019 1:00,8953744.312,0.000695694,0.000695694 +27-09-2019 2:00,8952552.702,0.000695694,0.000695694 +27-09-2019 3:00,8951361.024,0.001391387,0.001391387 +27-09-2019 4:00,8950169.278,0.004869856,0.004869856 +27-09-2019 5:00,8948977.465,0.038958846,0.038958846 +27-09-2019 6:00,8947785.586,0.064699512,0.064699512 +27-09-2019 7:00,8946593.641,0.050089945,0.050089945 +27-09-2019 8:00,8945401.631,0.059133963,0.059133963 +27-09-2019 9:00,8944209.557,0.042695775,0.042695775 +27-09-2019 10:00,8943017.418,0.036871765,0.036871765 +27-09-2019 11:00,8941825.216,0.031306216,0.031306216 +27-09-2019 12:00,8940632.952,0.025044973,0.025044973 +27-09-2019 13:00,8939440.626,0.021566504,0.021566504 +27-09-2019 14:00,8938248.238,0.016696648,0.016696648 +27-09-2019 15:00,8937055.789,0.018783729,0.018783729 +27-09-2019 16:00,8935863.28,0.030610522,0.030610522 +27-09-2019 17:00,8934670.711,0.054264107,0.054264107 +27-09-2019 18:00,8933478.084,0.054959801,0.054959801 +27-09-2019 19:00,8932285.398,0.048698558,0.048698558 +27-09-2019 20:00,8931092.654,0.040350234,0.040350234 +27-09-2019 21:00,8929899.853,0.028523441,0.028523441 +27-09-2019 22:00,8928706.996,0.013913874,0.013913874 +27-09-2019 23:00,8927514.082,0.004869856,0.004869856 +28-09-2019 0:00,8926321.114,0.002782775,0.002782775 +28-09-2019 1:00,8925128.09,0.000695694,0.000695694 +28-09-2019 2:00,8923935.013,0.000695694,0.000695694 +28-09-2019 3:00,8922741.882,0.001391387,0.001391387 +28-09-2019 4:00,8921548.698,0.004869856,0.004869856 +28-09-2019 5:00,8920355.462,0.038958846,0.038958846 +28-09-2019 6:00,8919162.175,0.064699512,0.064699512 +28-09-2019 7:00,8917968.836,0.050089945,0.050089945 +28-09-2019 8:00,8916775.447,0.059133963,0.059133963 +28-09-2019 9:00,8915582.008,0.04253185,0.04253185 +28-09-2019 10:00,8914388.52,0.036871765,0.036871765 +28-09-2019 11:00,8913194.984,0.031306216,0.031306216 +28-09-2019 12:00,8912001.399,0.025044973,0.025044973 +28-09-2019 13:00,8910807.767,0.021566504,0.021566504 +28-09-2019 14:00,8909614.089,0.016696648,0.016696648 +28-09-2019 15:00,8908420.364,0.018783729,0.018783729 +28-09-2019 16:00,8907226.594,0.030610522,0.030610522 +28-09-2019 17:00,8906032.779,0.054264107,0.054264107 +28-09-2019 18:00,8904838.919,0.054959801,0.054959801 +28-09-2019 19:00,8903645.016,0.048698558,0.048698558 +28-09-2019 20:00,8902451.071,0.040350234,0.040350234 +28-09-2019 21:00,8901257.082,0.028523441,0.028523441 +28-09-2019 22:00,8900063.052,0.013913874,0.013913874 +28-09-2019 23:00,8898868.981,0.004869856,0.004869856 +29-09-2019 0:00,8897674.869,0.002782775,0.002782775 +29-09-2019 1:00,8896480.717,0.000695694,0.000695694 +29-09-2019 2:00,8895286.525,0.000695694,0.000695694 +29-09-2019 3:00,8894092.295,0.001391387,0.001391387 +29-09-2019 4:00,8892898.027,0.004869856,0.004869856 +29-09-2019 5:00,8891703.722,0.038958846,0.038958846 +29-09-2019 6:00,8890509.379,0.064699512,0.064699512 +29-09-2019 7:00,8889315,0.050089945,0.050089945 +29-09-2019 8:00,8888120.586,0.059133963,0.059133963 +29-09-2019 9:00,8886926.136,0.042838182,0.042838182 +29-09-2019 10:00,8885731.653,0.036871765,0.036871765 +29-09-2019 11:00,8884537.135,0.031306216,0.031306216 +29-09-2019 12:00,8883342.584,0.025044973,0.025044973 +29-09-2019 13:00,8882148,0.021566504,0.021566504 +29-09-2019 14:00,8880953.385,0.016696648,0.016696648 +29-09-2019 15:00,8879758.738,0.018783729,0.018783729 +29-09-2019 16:00,8878564.06,0.030610522,0.030610522 +29-09-2019 17:00,8877369.353,0.054264107,0.054264107 +29-09-2019 18:00,8876174.615,0.054959801,0.054959801 +29-09-2019 19:00,8874979.849,0.048698558,0.048698558 +29-09-2019 20:00,8873785.055,0.040350234,0.040350234 +29-09-2019 21:00,8872590.233,0.028523441,0.028523441 +29-09-2019 22:00,8871395.384,0.013913874,0.013913874 +29-09-2019 23:00,8870200.508,0.004869856,0.004869856 +30-09-2019 0:00,8869005.607,0.002782775,0.002782775 +30-09-2019 1:00,8867810.68,0.000695694,0.000695694 +30-09-2019 2:00,8866615.729,0.000695694,0.000695694 +30-09-2019 3:00,8865420.754,0.001391387,0.001391387 +30-09-2019 4:00,8864225.755,0.004869856,0.004869856 +30-09-2019 5:00,8863030.734,0.038958846,0.038958846 +30-09-2019 6:00,8861835.69,0.064699512,0.064699512 +30-09-2019 7:00,8860640.625,0.050089945,0.050089945 +30-09-2019 8:00,8859445.539,0.059133963,0.059133963 +30-09-2019 9:00,8858250.433,0.042885551,0.042885551 +30-09-2019 10:00,8857055.307,0.036871765,0.036871765 +30-09-2019 11:00,8855860.162,0.031306216,0.031306216 +30-09-2019 12:00,8854664.999,0.025044973,0.025044973 +30-09-2019 13:00,8853469.818,0.021566504,0.021566504 +30-09-2019 14:00,8852274.619,0.016696648,0.016696648 +30-09-2019 15:00,8851079.404,0.018783729,0.018783729 +30-09-2019 16:00,8849884.173,0.030610522,0.030610522 +30-09-2019 17:00,8848688.927,0.054264107,0.054264107 +30-09-2019 18:00,8847493.666,0.054959801,0.054959801 +30-09-2019 19:00,8846298.39,0.048698558,0.048698558 +30-09-2019 20:00,8845103.102,0.040350234,0.040350234 +30-09-2019 21:00,8843907.8,0.028523441,0.028523441 +30-09-2019 22:00,8842712.486,0.013913874,0.013913874 +30-09-2019 23:00,8841517.16,0.004869856,0.004869856 +01-10-2019 0:00,8840321.823,0.002782775,0.002782775 +01-10-2019 1:00,8839126.476,0.000695694,0.000695694 +01-10-2019 2:00,8837931.119,0.000695694,0.000695694 +01-10-2019 3:00,8836735.753,0.001391387,0.001391387 +01-10-2019 4:00,8835540.378,0.004869856,0.004869856 +01-10-2019 5:00,8834344.995,0.038958846,0.038958846 +01-10-2019 6:00,8833149.605,0.064699512,0.064699512 +01-10-2019 7:00,8831954.207,0.050089945,0.050089945 +01-10-2019 8:00,8830758.804,0.059133963,0.059133963 +01-10-2019 9:00,8829563.395,0.042821514,0.042821514 +01-10-2019 10:00,8828367.982,0.036871765,0.036871765 +01-10-2019 11:00,8827172.564,0.031306216,0.031306216 +01-10-2019 12:00,8825977.142,0.025044973,0.025044973 +01-10-2019 13:00,8824781.717,0.021566504,0.021566504 +01-10-2019 14:00,8823586.29,0.016696648,0.016696648 +01-10-2019 15:00,8822390.861,0.018783729,0.018783729 +01-10-2019 16:00,8821195.431,0.030610522,0.030610522 +01-10-2019 17:00,8820000,0.054264107,0.054264107 +01-10-2019 18:00,8818804.569,0.054959801,0.054959801 +01-10-2019 19:00,8817609.139,0.048698558,0.048698558 +01-10-2019 20:00,8816413.71,0.040350234,0.040350234 +01-10-2019 21:00,8815218.283,0.028523441,0.028523441 +01-10-2019 22:00,8814022.858,0.013913874,0.013913874 +01-10-2019 23:00,8812827.436,0.004869856,0.004869856 +02-10-2019 0:00,8811632.018,0.002782775,0.002782775 +02-10-2019 1:00,8810436.605,0.000695694,0.000695694 +02-10-2019 2:00,8809241.196,0.000695694,0.000695694 +02-10-2019 3:00,8808045.793,0.001391387,0.001391387 +02-10-2019 4:00,8806850.395,0.004869856,0.004869856 +02-10-2019 5:00,8805655.005,0.039138412,0.039138412 +02-10-2019 6:00,8804459.622,0.064794905,0.064794905 +02-10-2019 7:00,8803264.247,0.050193041,0.050193041 +02-10-2019 8:00,8802068.881,0.059133963,0.059133963 +02-10-2019 9:00,8800873.524,0.042860179,0.042860179 +02-10-2019 10:00,8799678.177,0.036871765,0.036871765 +02-10-2019 11:00,8798482.84,0.031306216,0.031306216 +02-10-2019 12:00,8797287.514,0.025044973,0.025044973 +02-10-2019 13:00,8796092.2,0.021566504,0.021566504 +02-10-2019 14:00,8794896.898,0.016696648,0.016696648 +02-10-2019 15:00,8793701.61,0.018783729,0.018783729 +02-10-2019 16:00,8792506.334,0.030610522,0.030610522 +02-10-2019 17:00,8791311.073,0.054403152,0.054403152 +02-10-2019 18:00,8790115.827,0.055355817,0.055355817 +02-10-2019 19:00,8788920.596,0.048915342,0.048915342 +02-10-2019 20:00,8787725.381,0.040350234,0.040350234 +02-10-2019 21:00,8786530.182,0.028547732,0.028547732 +02-10-2019 22:00,8785335.001,0.013913874,0.013913874 +02-10-2019 23:00,8784139.838,0.004869856,0.004869856 +03-10-2019 0:00,8782944.693,0.002782775,0.002782775 +03-10-2019 1:00,8781749.567,0.000695694,0.000695694 +03-10-2019 2:00,8780554.461,0.000695694,0.000695694 +03-10-2019 3:00,8779359.375,0.001391387,0.001391387 +03-10-2019 4:00,8778164.31,0.004869856,0.004869856 +03-10-2019 5:00,8776969.266,0.03957076,0.03957076 +03-10-2019 6:00,8775774.245,0.065365294,0.065365294 +03-10-2019 7:00,8774579.246,0.050810725,0.050810725 +03-10-2019 8:00,8773384.271,0.059386043,0.059386043 +03-10-2019 9:00,8772189.32,0.0436135,0.0436135 +03-10-2019 10:00,8770994.393,0.037054339,0.037054339 +03-10-2019 11:00,8769799.492,0.031437375,0.031437375 +03-10-2019 12:00,8768604.616,0.02546656,0.02546656 +03-10-2019 13:00,8767409.767,0.021566504,0.021566504 +03-10-2019 14:00,8766214.945,0.016696648,0.016696648 +03-10-2019 15:00,8765020.151,0.018783729,0.018783729 +03-10-2019 16:00,8763825.385,0.030664774,0.030664774 +03-10-2019 17:00,8762630.647,0.054688333,0.054688333 +03-10-2019 18:00,8761435.94,0.056250669,0.056250669 +03-10-2019 19:00,8760241.262,0.04946593,0.04946593 +03-10-2019 20:00,8759046.615,0.040980859,0.040980859 +03-10-2019 21:00,8757852,0.028715914,0.028715914 +03-10-2019 22:00,8756657.416,0.013913874,0.013913874 +03-10-2019 23:00,8755462.865,0.004869856,0.004869856 +04-10-2019 0:00,8754268.347,0.002782775,0.002782775 +04-10-2019 1:00,8753073.864,0.000695694,0.000695694 +04-10-2019 2:00,8751879.414,0.000695694,0.000695694 +04-10-2019 3:00,8750685,0.001391387,0.001391387 +04-10-2019 4:00,8749490.621,0.004869856,0.004869856 +04-10-2019 5:00,8748296.278,0.039827051,0.039827051 +04-10-2019 6:00,8747101.973,0.066952722,0.066952722 +04-10-2019 7:00,8745907.705,0.051120118,0.051120118 +04-10-2019 8:00,8744713.475,0.060254471,0.060254471 +04-10-2019 9:00,8743519.283,0.044136318,0.044136318 +04-10-2019 10:00,8742325.131,0.038075369,0.038075369 +04-10-2019 11:00,8741131.019,0.032200653,0.032200653 +04-10-2019 12:00,8739936.948,0.027072874,0.027072874 +04-10-2019 13:00,8738742.918,0.021566504,0.021566504 +04-10-2019 14:00,8737548.929,0.016696648,0.016696648 +04-10-2019 15:00,8736354.984,0.018783729,0.018783729 +04-10-2019 16:00,8735161.081,0.030809343,0.030809343 +04-10-2019 17:00,8733967.221,0.055562033,0.055562033 +04-10-2019 18:00,8732773.406,0.056804991,0.056804991 +04-10-2019 19:00,8731579.636,0.050035425,0.050035425 +04-10-2019 20:00,8730385.911,0.041295374,0.041295374 +04-10-2019 21:00,8729192.233,0.028762483,0.028762483 +04-10-2019 22:00,8727998.601,0.013913874,0.013913874 +04-10-2019 23:00,8726805.016,0.004869856,0.004869856 +05-10-2019 0:00,8725611.48,0.002782775,0.002782775 +05-10-2019 1:00,8724417.992,0.000695694,0.000695694 +05-10-2019 2:00,8723224.553,0.000695694,0.000695694 +05-10-2019 3:00,8722031.164,0.001391387,0.001391387 +05-10-2019 4:00,8720837.825,0.004979979,0.004979979 +05-10-2019 5:00,8719644.538,0.040352336,0.040352336 +05-10-2019 6:00,8718451.302,0.068669373,0.068669373 +05-10-2019 7:00,8717258.118,0.051150966,0.051150966 +05-10-2019 8:00,8716064.987,0.061092175,0.061092175 +05-10-2019 9:00,8714871.91,0.044239476,0.044239476 +05-10-2019 10:00,8713678.886,0.038346323,0.038346323 +05-10-2019 11:00,8712485.918,0.032549937,0.032549937 +05-10-2019 12:00,8711293.004,0.027812346,0.027812346 +05-10-2019 13:00,8710100.147,0.021578241,0.021578241 +05-10-2019 14:00,8708907.346,0.016696648,0.016696648 +05-10-2019 15:00,8707714.602,0.018783729,0.018783729 +05-10-2019 16:00,8706521.916,0.031575164,0.031575164 +05-10-2019 17:00,8705329.289,0.056475358,0.056475358 +05-10-2019 18:00,8704136.72,0.057488072,0.057488072 +05-10-2019 19:00,8702944.211,0.050259867,0.050259867 +05-10-2019 20:00,8701751.762,0.041426172,0.041426172 +05-10-2019 21:00,8700559.374,0.028799082,0.028799082 +05-10-2019 22:00,8699367.048,0.013913874,0.013913874 +05-10-2019 23:00,8698174.784,0.004869856,0.004869856 +06-10-2019 0:00,8696982.582,0.002782775,0.002782775 +06-10-2019 1:00,8695790.443,0.000695694,0.000695694 +06-10-2019 2:00,8694598.369,0.000695694,0.000695694 +06-10-2019 3:00,8693406.359,0.001391387,0.001391387 +06-10-2019 4:00,8692214.414,0.00509663,0.00509663 +06-10-2019 5:00,8691022.535,0.040506316,0.040506316 +06-10-2019 6:00,8689830.722,0.069331594,0.069331594 +06-10-2019 7:00,8688638.976,0.051179551,0.051179551 +06-10-2019 8:00,8687447.298,0.06168439,0.06168439 +06-10-2019 9:00,8686255.688,0.044418169,0.044418169 +06-10-2019 10:00,8685064.146,0.038776367,0.038776367 +06-10-2019 11:00,8683872.674,0.033271882,0.033271882 +06-10-2019 12:00,8682681.273,0.02869125,0.02869125 +06-10-2019 13:00,8681489.941,0.02181206,0.02181206 +06-10-2019 14:00,8680298.682,0.016751029,0.016751029 +06-10-2019 15:00,8679107.493,0.019019316,0.019019316 +06-10-2019 16:00,8677916.378,0.032923382,0.032923382 +06-10-2019 17:00,8676725.335,0.05722841,0.05722841 +06-10-2019 18:00,8675534.367,0.057850099,0.057850099 +06-10-2019 19:00,8674343.472,0.050485174,0.050485174 +06-10-2019 20:00,8673152.653,0.041588831,0.041588831 +06-10-2019 21:00,8671961.909,0.028848607,0.028848607 +06-10-2019 22:00,8670771.241,0.013913874,0.013913874 +06-10-2019 23:00,8669580.65,0.004869856,0.004869856 +07-10-2019 0:00,8668390.136,0.002892555,0.002892555 +07-10-2019 1:00,8667199.701,0.000695694,0.000695694 +07-10-2019 2:00,8666009.344,0.000695694,0.000695694 +07-10-2019 3:00,8664819.066,0.001479167,0.001479167 +07-10-2019 4:00,8663628.868,0.005315214,0.005315214 +07-10-2019 5:00,8662438.75,0.040920492,0.040920492 +07-10-2019 6:00,8661248.714,0.071871369,0.071871369 +07-10-2019 7:00,8660058.759,0.055768935,0.055768935 +07-10-2019 8:00,8658868.887,0.064568463,0.064568463 +07-10-2019 9:00,8657679.097,0.044586361,0.044586361 +07-10-2019 10:00,8656489.391,0.039068312,0.039068312 +07-10-2019 11:00,8655299.769,0.033704567,0.033704567 +07-10-2019 12:00,8654110.232,0.028938353,0.028938353 +07-10-2019 13:00,8652920.78,0.021929039,0.021929039 +07-10-2019 14:00,8651731.414,0.016804346,0.016804346 +07-10-2019 15:00,8650542.134,0.019122624,0.019122624 +07-10-2019 16:00,8649352.942,0.033125359,0.033125359 +07-10-2019 17:00,8648163.838,0.057294148,0.057294148 +07-10-2019 18:00,8646974.822,0.057903437,0.057903437 +07-10-2019 19:00,8645785.895,0.050513263,0.050513263 +07-10-2019 20:00,8644597.057,0.044073879,0.044073879 +07-10-2019 21:00,8643408.31,0.033510036,0.033510036 +07-10-2019 22:00,8642219.654,0.016196921,0.016196921 +07-10-2019 23:00,8641031.089,0.005653542,0.005653542 +08-10-2019 0:00,8639842.616,0.003043629,0.003043629 +08-10-2019 1:00,8638654.236,0.000695694,0.000695694 +08-10-2019 2:00,8637465.949,0.000695694,0.000695694 +08-10-2019 3:00,8636277.756,0.001391387,0.001391387 +08-10-2019 4:00,8635089.658,0.00521454,0.00521454 +08-10-2019 5:00,8633901.655,0.040617154,0.040617154 +08-10-2019 6:00,8632713.747,0.070949116,0.070949116 +08-10-2019 7:00,8631525.936,0.056981429,0.056981429 +08-10-2019 8:00,8630338.222,0.065684303,0.065684303 +08-10-2019 9:00,8629150.605,0.046114741,0.046114741 +08-10-2019 10:00,8627963.087,0.038605977,0.038605977 +08-10-2019 11:00,8626775.667,0.032914967,0.032914967 +08-10-2019 12:00,8625588.347,0.028309295,0.028309295 +08-10-2019 13:00,8624401.127,0.021607351,0.021607351 +08-10-2019 14:00,8623214.007,0.016700762,0.016700762 +08-10-2019 15:00,8622026.989,0.018830957,0.018830957 +08-10-2019 16:00,8620840.073,0.032078811,0.032078811 +08-10-2019 17:00,8619653.259,0.05684447,0.05684447 +08-10-2019 18:00,8618466.548,0.057523522,0.057523522 +08-10-2019 19:00,8617279.94,0.050260838,0.050260838 +08-10-2019 20:00,8616093.437,0.041663781,0.041663781 +08-10-2019 21:00,8614907.039,0.031577525,0.031577525 +08-10-2019 22:00,8613720.747,0.016092824,0.016092824 +08-10-2019 23:00,8612534.56,0.005652883,0.005652883 +09-10-2019 0:00,8611348.48,0.003045729,0.003045729 +09-10-2019 1:00,8610162.508,0.000695694,0.000695694 +09-10-2019 2:00,8608976.644,0.000695694,0.000695694 +09-10-2019 3:00,8607790.888,0.001391387,0.001391387 +09-10-2019 4:00,8606605.241,0.005140028,0.005140028 +09-10-2019 5:00,8605419.704,0.040478245,0.040478245 +09-10-2019 6:00,8604234.278,0.070533046,0.070533046 +09-10-2019 7:00,8603048.962,0.05708247,0.05708247 +09-10-2019 8:00,8601863.758,0.066277892,0.066277892 +09-10-2019 9:00,8600678.667,0.049727973,0.049727973 +09-10-2019 10:00,8599493.688,0.040343749,0.040343749 +09-10-2019 11:00,8598308.822,0.03493432,0.03493432 +09-10-2019 12:00,8597124.071,0.028384925,0.028384925 +09-10-2019 13:00,8595939.434,0.021609519,0.021609519 +09-10-2019 14:00,8594754.913,0.016708316,0.016708316 +09-10-2019 15:00,8593570.507,0.018852734,0.018852734 +09-10-2019 16:00,8592386.218,0.032493328,0.032493328 +09-10-2019 17:00,8591202.046,0.057029832,0.057029832 +09-10-2019 18:00,8590017.992,0.057618081,0.057618081 +09-10-2019 19:00,8588834.056,0.056742286,0.056742286 +09-10-2019 20:00,8587650.239,0.052755626,0.052755626 +09-10-2019 21:00,8586466.542,0.034596475,0.034596475 +09-10-2019 22:00,8585282.965,0.016559857,0.016559857 +09-10-2019 23:00,8584099.508,0.005859846,0.005859846 +10-10-2019 0:00,8582916.173,0.003090215,0.003090215 +10-10-2019 1:00,8581732.96,0.000695694,0.000695694 +10-10-2019 2:00,8580549.869,0.000695694,0.000695694 +10-10-2019 3:00,8579366.901,0.001391387,0.001391387 +10-10-2019 4:00,8578184.058,0.005193737,0.005193737 +10-10-2019 5:00,8577001.338,0.040574177,0.040574177 +10-10-2019 6:00,8575818.744,0.072036861,0.072036861 +10-10-2019 7:00,8574636.276,0.057815762,0.057815762 +10-10-2019 8:00,8573453.933,0.066560333,0.066560333 +10-10-2019 9:00,8572271.718,0.049884471,0.049884471 +10-10-2019 10:00,8571089.629,0.038028088,0.038028088 +10-10-2019 11:00,8569907.669,0.032347744,0.032347744 +10-10-2019 12:00,8568725.838,0.027778835,0.027778835 +10-10-2019 13:00,8567544.136,0.021601694,0.021601694 +10-10-2019 14:00,8566362.564,0.016696648,0.016696648 +10-10-2019 15:00,8565181.122,0.018783729,0.018783729 +10-10-2019 16:00,8563999.811,0.031842735,0.031842735 +10-10-2019 17:00,8562818.632,0.056670794,0.056670794 +10-10-2019 18:00,8561637.586,0.057415882,0.057415882 +10-10-2019 19:00,8560456.672,0.050898515,0.050898515 +10-10-2019 20:00,8559275.892,0.04710526,0.04710526 +10-10-2019 21:00,8558095.246,0.033253138,0.033253138 +10-10-2019 22:00,8556914.734,0.016170039,0.016170039 +10-10-2019 23:00,8555734.358,0.005645879,0.005645879 +11-10-2019 0:00,8554554.118,0.003041152,0.003041152 +11-10-2019 1:00,8553374.015,0.000695694,0.000695694 +11-10-2019 2:00,8552194.048,0.000695694,0.000695694 +11-10-2019 3:00,8551014.22,0.001391387,0.001391387 +11-10-2019 4:00,8549834.53,0.005000995,0.005000995 +11-10-2019 5:00,8548654.978,0.040150228,0.040150228 +11-10-2019 6:00,8547475.567,0.06945637,0.06945637 +11-10-2019 7:00,8546296.295,0.056993354,0.056993354 +11-10-2019 8:00,8545117.165,0.065544308,0.065544308 +11-10-2019 9:00,8543938.176,0.050238225,0.050238225 +11-10-2019 10:00,8542759.329,0.042022402,0.042022402 +11-10-2019 11:00,8541580.624,0.036086495,0.036086495 +11-10-2019 12:00,8540402.063,0.02789757,0.02789757 +11-10-2019 13:00,8539223.645,0.021578159,0.021578159 +11-10-2019 14:00,8538045.373,0.016696648,0.016696648 +11-10-2019 15:00,8536867.245,0.018783729,0.018783729 +11-10-2019 16:00,8535689.262,0.031515591,0.031515591 +11-10-2019 17:00,8534511.426,0.056208871,0.056208871 +11-10-2019 18:00,8533333.737,0.056938766,0.056938766 +11-10-2019 19:00,8532156.196,0.050325302,0.050325302 +11-10-2019 20:00,8530978.802,0.044628911,0.044628911 +11-10-2019 21:00,8529801.557,0.031642978,0.031642978 +11-10-2019 22:00,8528624.462,0.015400087,0.015400087 +11-10-2019 23:00,8527447.516,0.005394305,0.005394305 +12-10-2019 0:00,8526270.721,0.002964416,0.002964416 +12-10-2019 1:00,8525094.077,0.000695694,0.000695694 +12-10-2019 2:00,8523917.584,0.000695694,0.000695694 +12-10-2019 3:00,8522741.244,0.001391387,0.001391387 +12-10-2019 4:00,8521565.057,0.004869856,0.004869856 +12-10-2019 5:00,8520389.024,0.039693333,0.039693333 +12-10-2019 6:00,8519213.144,0.067622334,0.067622334 +12-10-2019 7:00,8518037.42,0.055012665,0.055012665 +12-10-2019 8:00,8516861.85,0.062657383,0.062657383 +12-10-2019 9:00,8515686.437,0.045916132,0.045916132 +12-10-2019 10:00,8514511.18,0.038621744,0.038621744 +12-10-2019 11:00,8513336.081,0.033509283,0.033509283 +12-10-2019 12:00,8512161.139,0.027850982,0.027850982 +12-10-2019 13:00,8510986.355,0.021580821,0.021580821 +12-10-2019 14:00,8509811.731,0.016696648,0.016696648 +12-10-2019 15:00,8508637.266,0.018801975,0.018801975 +12-10-2019 16:00,8507462.961,0.031740508,0.031740508 +12-10-2019 17:00,8506288.817,0.056464685,0.056464685 +12-10-2019 18:00,8505114.834,0.057259905,0.057259905 +12-10-2019 19:00,8503941.014,0.056739179,0.056739179 +12-10-2019 20:00,8502767.356,0.051474854,0.051474854 +12-10-2019 21:00,8501593.861,0.033914249,0.033914249 +12-10-2019 22:00,8500420.53,0.016314859,0.016314859 +12-10-2019 23:00,8499247.363,0.005784069,0.005784069 +13-10-2019 0:00,8498074.362,0.003057987,0.003057987 +13-10-2019 1:00,8496901.526,0.000725762,0.000725762 +13-10-2019 2:00,8495728.856,0.000695694,0.000695694 +13-10-2019 3:00,8494556.353,0.001391387,0.001391387 +13-10-2019 4:00,8493384.018,0.004936395,0.004936395 +13-10-2019 5:00,8492211.85,0.040010235,0.040010235 +13-10-2019 6:00,8491039.852,0.069360906,0.069360906 +13-10-2019 7:00,8489868.022,0.057773136,0.057773136 +13-10-2019 8:00,8488696.362,0.065229861,0.065229861 +13-10-2019 9:00,8487524.873,0.049323507,0.049323507 +13-10-2019 10:00,8486353.555,0.039895357,0.039895357 +13-10-2019 11:00,8485182.408,0.032470305,0.032470305 +13-10-2019 12:00,8484011.434,0.026791464,0.026791464 +13-10-2019 13:00,8482840.632,0.021566504,0.021566504 +13-10-2019 14:00,8481670.004,0.016696648,0.016696648 +13-10-2019 15:00,8480499.55,0.018783729,0.018783729 +13-10-2019 16:00,8479329.271,0.030610522,0.030610522 +13-10-2019 17:00,8478159.167,0.054445336,0.054445336 +13-10-2019 18:00,8476989.239,0.055638979,0.055638979 +13-10-2019 19:00,8475819.487,0.049437122,0.049437122 +13-10-2019 20:00,8474649.912,0.041036665,0.041036665 +13-10-2019 21:00,8473480.515,0.028671303,0.028671303 +13-10-2019 22:00,8472311.297,0.013913874,0.013913874 +13-10-2019 23:00,8471142.257,0.004869856,0.004869856 +14-10-2019 0:00,8469973.396,0.002782775,0.002782775 +14-10-2019 1:00,8468804.716,0.000695694,0.000695694 +14-10-2019 2:00,8467636.216,0.000695694,0.000695694 +14-10-2019 3:00,8466467.898,0.001391387,0.001391387 +14-10-2019 4:00,8465299.762,0.004869856,0.004869856 +14-10-2019 5:00,8464131.808,0.039450823,0.039450823 +14-10-2019 6:00,8462964.037,0.066267524,0.066267524 +14-10-2019 7:00,8461796.449,0.052485047,0.052485047 +14-10-2019 8:00,8460629.047,0.059692292,0.059692292 +14-10-2019 9:00,8459461.828,0.043967785,0.043967785 +14-10-2019 10:00,8458294.796,0.037974991,0.037974991 +14-10-2019 11:00,8457127.949,0.032292628,0.032292628 +14-10-2019 12:00,8455961.29,0.02659414,0.02659414 +14-10-2019 13:00,8454794.817,0.021566504,0.021566504 +14-10-2019 14:00,8453628.532,0.016696648,0.016696648 +14-10-2019 15:00,8452462.436,0.018783729,0.018783729 +14-10-2019 16:00,8451296.529,0.030636156,0.030636156 +14-10-2019 17:00,8450130.812,0.054592362,0.054592362 +14-10-2019 18:00,8448965.285,0.055847343,0.055847343 +14-10-2019 19:00,8447799.948,0.049422263,0.049422263 +14-10-2019 20:00,8446634.804,0.040904977,0.040904977 +14-10-2019 21:00,8445469.851,0.028637588,0.028637588 +14-10-2019 22:00,8444305.091,0.013913874,0.013913874 +14-10-2019 23:00,8443140.524,0.004869856,0.004869856 +15-10-2019 0:00,8441976.151,0.002782775,0.002782775 +15-10-2019 1:00,8440811.973,0.000695694,0.000695694 +15-10-2019 2:00,8439647.99,0.000695694,0.000695694 +15-10-2019 3:00,8438484.202,0.001391387,0.001391387 +15-10-2019 4:00,8437320.611,0.004869856,0.004869856 +15-10-2019 5:00,8436157.216,0.039058651,0.039058651 +15-10-2019 6:00,8434994.019,0.064786096,0.064786096 +15-10-2019 7:00,8433831.02,0.050916505,0.050916505 +15-10-2019 8:00,8432668.22,0.059320363,0.059320363 +15-10-2019 9:00,8431505.619,0.043658799,0.043658799 +15-10-2019 10:00,8430343.218,0.037308782,0.037308782 +15-10-2019 11:00,8429181.017,0.031905956,0.031905956 +15-10-2019 12:00,8428019.018,0.025968527,0.025968527 +15-10-2019 13:00,8426857.22,0.021566504,0.021566504 +15-10-2019 14:00,8425695.624,0.016696648,0.016696648 +15-10-2019 15:00,8424534.231,0.018783729,0.018783729 +15-10-2019 16:00,8423373.042,0.030610522,0.030610522 +15-10-2019 17:00,8422212.057,0.05449419,0.05449419 +15-10-2019 18:00,8421051.276,0.055596542,0.055596542 +15-10-2019 19:00,8419890.701,0.049340477,0.049340477 +15-10-2019 20:00,8418730.331,0.040981606,0.040981606 +15-10-2019 21:00,8417570.168,0.028656625,0.028656625 +15-10-2019 22:00,8416410.212,0.013913874,0.013913874 +15-10-2019 23:00,8415250.463,0.004869856,0.004869856 +16-10-2019 0:00,8414090.923,0.002782775,0.002782775 +16-10-2019 1:00,8412931.591,0.000695694,0.000695694 +16-10-2019 2:00,8411772.469,0.000695694,0.000695694 +16-10-2019 3:00,8410613.557,0.001391387,0.001391387 +16-10-2019 4:00,8409454.856,0.004869856,0.004869856 +16-10-2019 5:00,8408296.366,0.039327299,0.039327299 +16-10-2019 6:00,8407138.087,0.065644245,0.065644245 +16-10-2019 7:00,8405980.022,0.050921182,0.050921182 +16-10-2019 8:00,8404822.169,0.059344736,0.059344736 +16-10-2019 9:00,8403664.529,0.043738736,0.043738736 +16-10-2019 10:00,8402507.104,0.037489641,0.037489641 +16-10-2019 11:00,8401349.894,0.031738882,0.031738882 +16-10-2019 12:00,8400192.898,0.026106352,0.026106352 +16-10-2019 13:00,8399036.119,0.021566504,0.021566504 +16-10-2019 14:00,8397879.557,0.016696648,0.016696648 +16-10-2019 15:00,8396723.212,0.018783729,0.018783729 +16-10-2019 16:00,8395567.084,0.030699846,0.030699846 +16-10-2019 17:00,8394411.175,0.054803869,0.054803869 +16-10-2019 18:00,8393255.485,0.056280669,0.056280669 +16-10-2019 19:00,8392100.014,0.04957642,0.04957642 +16-10-2019 20:00,8390944.763,0.041003742,0.041003742 +16-10-2019 21:00,8389789.733,0.028662327,0.028662327 +16-10-2019 22:00,8388634.925,0.013913874,0.013913874 +16-10-2019 23:00,8387480.338,0.004869856,0.004869856 +17-10-2019 0:00,8386325.974,0.002782775,0.002782775 +17-10-2019 1:00,8385171.833,0.000695694,0.000695694 +17-10-2019 2:00,8384017.916,0.000695694,0.000695694 +17-10-2019 3:00,8382864.223,0.001391387,0.001391387 +17-10-2019 4:00,8381710.755,0.004869856,0.004869856 +17-10-2019 5:00,8380557.512,0.039302387,0.039302387 +17-10-2019 6:00,8379404.496,0.065578386,0.065578386 +17-10-2019 7:00,8378251.706,0.054564042,0.054564042 +17-10-2019 8:00,8377099.143,0.060941744,0.060941744 +17-10-2019 9:00,8375946.808,0.04403369,0.04403369 +17-10-2019 10:00,8374794.702,0.037950511,0.037950511 +17-10-2019 11:00,8373642.825,0.031734711,0.031734711 +17-10-2019 12:00,8372491.177,0.026297968,0.026297968 +17-10-2019 13:00,8371339.76,0.021566504,0.021566504 +17-10-2019 14:00,8370188.573,0.016696648,0.016696648 +17-10-2019 15:00,8369037.618,0.018783729,0.018783729 +17-10-2019 16:00,8367886.895,0.031025314,0.031025314 +17-10-2019 17:00,8366736.404,0.055639142,0.055639142 +17-10-2019 18:00,8365586.147,0.056648094,0.056648094 +17-10-2019 19:00,8364436.123,0.049853453,0.049853453 +17-10-2019 20:00,8363286.334,0.041122573,0.041122573 +17-10-2019 21:00,8362136.78,0.028760973,0.028760973 +17-10-2019 22:00,8360987.461,0.014789036,0.014789036 +17-10-2019 23:00,8359838.378,0.005392381,0.005392381 +18-10-2019 0:00,8358689.532,0.00297947,0.00297947 +18-10-2019 1:00,8357540.924,0.000695694,0.000695694 +18-10-2019 2:00,8356392.553,0.000695694,0.000695694 +18-10-2019 3:00,8355244.421,0.001391387,0.001391387 +18-10-2019 4:00,8354096.528,0.004869856,0.004869856 +18-10-2019 5:00,8352948.875,0.039467141,0.039467141 +18-10-2019 6:00,8351801.462,0.066538964,0.066538964 +18-10-2019 7:00,8350654.289,0.057323197,0.057323197 +18-10-2019 8:00,8349507.359,0.06452633,0.06452633 +18-10-2019 9:00,8348360.67,0.049324551,0.049324551 +18-10-2019 10:00,8347214.224,0.039527735,0.039527735 +18-10-2019 11:00,8346068.021,0.03330194,0.03330194 +18-10-2019 12:00,8344922.062,0.027485559,0.027485559 +18-10-2019 13:00,8343776.348,0.021566504,0.021566504 +18-10-2019 14:00,8342630.878,0.016696648,0.016696648 +18-10-2019 15:00,8341485.654,0.018918954,0.018918954 +18-10-2019 16:00,8340340.676,0.031843777,0.031843777 +18-10-2019 17:00,8339195.945,0.056120504,0.056120504 +18-10-2019 18:00,8338051.462,0.058800681,0.058800681 +18-10-2019 19:00,8336907.226,0.05933962,0.05933962 +18-10-2019 20:00,8335763.239,0.050469784,0.050469784 +18-10-2019 21:00,8334619.5,0.033312228,0.033312228 +18-10-2019 22:00,8333476.012,0.016102004,0.016102004 +18-10-2019 23:00,8332332.774,0.005685882,0.005685882 +19-10-2019 0:00,8331189.787,0.003029842,0.003029842 +19-10-2019 1:00,8330047.051,0.0007888,0.0007888 +19-10-2019 2:00,8328904.567,0.000695694,0.000695694 +19-10-2019 3:00,8327762.336,0.001391387,0.001391387 +19-10-2019 4:00,8326620.359,0.004869856,0.004869856 +19-10-2019 5:00,8325478.635,0.039715304,0.039715304 +19-10-2019 6:00,8324337.165,0.068831565,0.068831565 +19-10-2019 7:00,8323195.95,0.062601564,0.062601564 +19-10-2019 8:00,8322054.991,0.071643526,0.071643526 +19-10-2019 9:00,8320914.289,0.060561765,0.060561765 +19-10-2019 10:00,8319773.843,0.050257444,0.050257444 +19-10-2019 11:00,8318633.654,0.043639178,0.043639178 +19-10-2019 12:00,8317493.723,0.029949509,0.029949509 +19-10-2019 13:00,8316354.051,0.021988584,0.021988584 +19-10-2019 14:00,8315214.638,0.016696648,0.016696648 +19-10-2019 15:00,8314075.484,0.019035579,0.019035579 +19-10-2019 16:00,8312936.591,0.032771256,0.032771256 +19-10-2019 17:00,8311797.959,0.059756533,0.059756533 +19-10-2019 18:00,8310659.588,0.07056705,0.07056705 +19-10-2019 19:00,8309521.479,0.066628546,0.066628546 +19-10-2019 20:00,8308383.633,0.054169828,0.054169828 +19-10-2019 21:00,8307246.05,0.035267574,0.035267574 +19-10-2019 22:00,8306108.731,0.01715688,0.01715688 +19-10-2019 23:00,8304971.676,0.00624201,0.00624201 +20-10-2019 0:00,8303834.886,0.003171883,0.003171883 +20-10-2019 1:00,8302698.362,0.000811471,0.000811471 +20-10-2019 2:00,8301562.104,0.000695694,0.000695694 +20-10-2019 3:00,8300426.112,0.001391387,0.001391387 +20-10-2019 4:00,8299290.388,0.00492912,0.00492912 +20-10-2019 5:00,8298154.932,0.040119735,0.040119735 +20-10-2019 6:00,8297019.744,0.072325118,0.072325118 +20-10-2019 7:00,8295884.825,0.069858088,0.069858088 +20-10-2019 8:00,8294750.176,0.080863112,0.080863112 +20-10-2019 9:00,8293615.797,0.076110322,0.076110322 +20-10-2019 10:00,8292481.689,0.065406717,0.065406717 +20-10-2019 11:00,8291347.852,0.060704799,0.060704799 +20-10-2019 12:00,8290214.288,0.037324684,0.037324684 +20-10-2019 13:00,8289080.995,0.024698034,0.024698034 +20-10-2019 14:00,8287947.976,0.016974722,0.016974722 +20-10-2019 15:00,8286815.231,0.020389224,0.020389224 +20-10-2019 16:00,8285682.76,0.035593645,0.035593645 +20-10-2019 17:00,8284550.564,0.075501974,0.075501974 +20-10-2019 18:00,8283418.643,0.085522153,0.085522153 +20-10-2019 19:00,8282286.999,0.078116024,0.078116024 +20-10-2019 20:00,8281155.631,0.059860128,0.059860128 +20-10-2019 21:00,8280024.54,0.037375452,0.037375452 +20-10-2019 22:00,8278893.727,0.01775352,0.01775352 +20-10-2019 23:00,8277763.192,0.006425395,0.006425395 +21-10-2019 0:00,8276632.936,0.003222629,0.003222629 +21-10-2019 1:00,8275502.96,0.000831579,0.000831579 +21-10-2019 2:00,8274373.264,0.000695694,0.000695694 +21-10-2019 3:00,8273243.849,0.001391387,0.001391387 +21-10-2019 4:00,8272114.715,0.004989277,0.004989277 +21-10-2019 5:00,8270985.863,0.040419536,0.040419536 +21-10-2019 6:00,8269857.293,0.074693311,0.074693311 +21-10-2019 7:00,8268729.007,0.073550483,0.073550483 +21-10-2019 8:00,8267601.004,0.083848767,0.083848767 +21-10-2019 9:00,8266473.285,0.078827034,0.078827034 +21-10-2019 10:00,8265345.851,0.06839185,0.06839185 +21-10-2019 11:00,8264218.702,0.063996508,0.063996508 +21-10-2019 12:00,8263091.839,0.039501961,0.039501961 +21-10-2019 13:00,8261965.263,0.025208924,0.025208924 +21-10-2019 14:00,8260838.973,0.017144677,0.017144677 +21-10-2019 15:00,8259712.972,0.020755784,0.020755784 +21-10-2019 16:00,8258587.259,0.037568045,0.037568045 +21-10-2019 17:00,8257461.834,0.080330204,0.080330204 +21-10-2019 18:00,8256336.699,0.089378484,0.089378484 +21-10-2019 19:00,8255211.854,0.0801498,0.0801498 +21-10-2019 20:00,8254087.299,0.060528515,0.060528515 +21-10-2019 21:00,8252963.036,0.037757655,0.037757655 +21-10-2019 22:00,8251839.064,0.018073981,0.018073981 +21-10-2019 23:00,8250715.385,0.006476038,0.006476038 +22-10-2019 0:00,8249591.998,0.003230305,0.003230305 +22-10-2019 1:00,8248468.905,0.000834932,0.000834932 +22-10-2019 2:00,8247346.106,0.000695694,0.000695694 +22-10-2019 3:00,8246223.602,0.001391387,0.001391387 +22-10-2019 4:00,8245101.392,0.004990567,0.004990567 +22-10-2019 5:00,8243979.479,0.040415791,0.040415791 +22-10-2019 6:00,8242857.862,0.074631795,0.074631795 +22-10-2019 7:00,8241736.541,0.073095677,0.073095677 +22-10-2019 8:00,8240615.519,0.083931717,0.083931717 +22-10-2019 9:00,8239494.794,0.078212942,0.078212942 +22-10-2019 10:00,8238374.368,0.065853818,0.065853818 +22-10-2019 11:00,8237254.241,0.06153838,0.06153838 +22-10-2019 12:00,8236134.414,0.038400366,0.038400366 +22-10-2019 13:00,8235014.888,0.024415648,0.024415648 +22-10-2019 14:00,8233895.662,0.016946729,0.016946729 +22-10-2019 15:00,8232776.738,0.020464417,0.020464417 +22-10-2019 16:00,8231658.116,0.037112804,0.037112804 +22-10-2019 17:00,8230539.796,0.080916713,0.080916713 +22-10-2019 18:00,8229421.78,0.093602511,0.093602511 +22-10-2019 19:00,8228304.068,0.085278332,0.085278332 +22-10-2019 20:00,8227186.66,0.065313487,0.065313487 +22-10-2019 21:00,8226069.557,0.040406166,0.040406166 +22-10-2019 22:00,8224952.76,0.019291126,0.019291126 +22-10-2019 23:00,8223836.269,0.006968593,0.006968593 +23-10-2019 0:00,8222720.084,0.003378653,0.003378653 +23-10-2019 1:00,8221604.207,0.000880779,0.000880779 +23-10-2019 2:00,8220488.637,0.000695694,0.000695694 +23-10-2019 3:00,8219373.376,0.001637708,0.001637708 +23-10-2019 4:00,8218258.425,0.007463257,0.007463257 +23-10-2019 5:00,8217143.782,0.052970254,0.052970254 +23-10-2019 6:00,8216029.45,0.098926077,0.098926077 +23-10-2019 7:00,8214915.428,0.097608131,0.097608131 +23-10-2019 8:00,8213801.718,0.095234697,0.095234697 +23-10-2019 9:00,8212688.32,0.090199548,0.090199548 +23-10-2019 10:00,8211575.234,0.078526586,0.078526586 +23-10-2019 11:00,8210462.461,0.079828882,0.079828882 +23-10-2019 12:00,8209350.001,0.048071641,0.048071641 +23-10-2019 13:00,8208237.856,0.026134145,0.026134145 +23-10-2019 14:00,8207126.026,0.017370317,0.017370317 +23-10-2019 15:00,8206014.511,0.020068867,0.020068867 +23-10-2019 16:00,8204903.311,0.036785147,0.036785147 +23-10-2019 17:00,8203792.429,0.074826334,0.074826334 +23-10-2019 18:00,8202681.863,0.093154262,0.093154262 +23-10-2019 19:00,8201571.614,0.083769439,0.083769439 +23-10-2019 20:00,8200461.684,0.063274353,0.063274353 +23-10-2019 21:00,8199352.073,0.038798744,0.038798744 +23-10-2019 22:00,8198242.781,0.018394429,0.018394429 +23-10-2019 23:00,8197133.809,0.006619271,0.006619271 +24-10-2019 0:00,8196025.157,0.003265218,0.003265218 +24-10-2019 1:00,8194916.826,0.000850616,0.000850616 +24-10-2019 2:00,8193808.817,0.000695694,0.000695694 +24-10-2019 3:00,8192701.13,0.001413838,0.001413838 +24-10-2019 4:00,8191593.766,0.005165287,0.005165287 +24-10-2019 5:00,8190486.725,0.042263694,0.042263694 +24-10-2019 6:00,8189380.008,0.0800195,0.0800195 +24-10-2019 7:00,8188273.615,0.080496355,0.080496355 +24-10-2019 8:00,8187167.547,0.088414593,0.088414593 +24-10-2019 9:00,8186061.805,0.08407179,0.08407179 +24-10-2019 10:00,8184956.389,0.073866318,0.073866318 +24-10-2019 11:00,8183851.3,0.07041474,0.07041474 +24-10-2019 12:00,8182746.538,0.042886713,0.042886713 +24-10-2019 13:00,8181642.103,0.025735938,0.025735938 +24-10-2019 14:00,8180537.998,0.017153611,0.017153611 +24-10-2019 15:00,8179434.221,0.020061939,0.020061939 +24-10-2019 16:00,8178330.773,0.035113977,0.035113977 +24-10-2019 17:00,8177227.656,0.066327121,0.066327121 +24-10-2019 18:00,8176124.87,0.079660541,0.079660541 +24-10-2019 19:00,8175022.415,0.076062677,0.076062677 +24-10-2019 20:00,8173920.291,0.059007047,0.059007047 +24-10-2019 21:00,8172818.5,0.037077603,0.037077603 +24-10-2019 22:00,8171717.042,0.017815862,0.017815862 +24-10-2019 23:00,8170615.917,0.006381786,0.006381786 +25-10-2019 0:00,8169515.127,0.003196623,0.003196623 +25-10-2019 1:00,8168414.671,0.000830998,0.000830998 +25-10-2019 2:00,8167314.55,0.000695694,0.000695694 +25-10-2019 3:00,8166214.766,0.001391387,0.001391387 +25-10-2019 4:00,8165115.317,0.004901688,0.004901688 +25-10-2019 5:00,8164016.206,0.040024229,0.040024229 +25-10-2019 6:00,8162917.431,0.072802004,0.072802004 +25-10-2019 7:00,8161818.995,0.07224214,0.07224214 +25-10-2019 8:00,8160720.898,0.084062604,0.084062604 +25-10-2019 9:00,8159623.14,0.078534977,0.078534977 +25-10-2019 10:00,8158525.721,0.069498723,0.069498723 +25-10-2019 11:00,8157428.643,0.065999845,0.065999845 +25-10-2019 12:00,8156331.905,0.040965642,0.040965642 +25-10-2019 13:00,8155235.51,0.02567986,0.02567986 +25-10-2019 14:00,8154139.456,0.017394205,0.017394205 +25-10-2019 15:00,8153043.744,0.020779302,0.020779302 +25-10-2019 16:00,8151948.376,0.036594693,0.036594693 +25-10-2019 17:00,8150853.351,0.075558004,0.075558004 +25-10-2019 18:00,8149758.671,0.084684828,0.084684828 +25-10-2019 19:00,8148664.335,0.074716939,0.074716939 +25-10-2019 20:00,8147570.345,0.057009426,0.057009426 +25-10-2019 21:00,8146476.701,0.036161595,0.036161595 +25-10-2019 22:00,8145383.403,0.017265281,0.017265281 +25-10-2019 23:00,8144290.453,0.006147909,0.006147909 +26-10-2019 0:00,8143197.85,0.003132734,0.003132734 +26-10-2019 1:00,8142105.595,0.000808601,0.000808601 +26-10-2019 2:00,8141013.689,0.000695694,0.000695694 +26-10-2019 3:00,8139922.132,0.001391387,0.001391387 +26-10-2019 4:00,8138830.925,0.004869856,0.004869856 +26-10-2019 5:00,8137740.069,0.039474025,0.039474025 +26-10-2019 6:00,8136649.563,0.069274529,0.069274529 +26-10-2019 7:00,8135559.409,0.065949118,0.065949118 +26-10-2019 8:00,8134469.607,0.07422025,0.07422025 +26-10-2019 9:00,8133380.158,0.060099086,0.060099086 +26-10-2019 10:00,8132291.062,0.046103623,0.046103623 +26-10-2019 11:00,8131202.32,0.03844846,0.03844846 +26-10-2019 12:00,8130113.933,0.0268445,0.0268445 +26-10-2019 13:00,8129025.9,0.021566504,0.021566504 +26-10-2019 14:00,8127938.223,0.016696648,0.016696648 +26-10-2019 15:00,8126850.901,0.018789939,0.018789939 +26-10-2019 16:00,8125763.937,0.031072442,0.031072442 +26-10-2019 17:00,8124677.329,0.055768072,0.055768072 +26-10-2019 18:00,8123591.079,0.057212539,0.057212539 +26-10-2019 19:00,8122505.188,0.05161521,0.05161521 +26-10-2019 20:00,8121419.655,0.044753824,0.044753824 +26-10-2019 21:00,8120334.482,0.030965678,0.030965678 +26-10-2019 22:00,8119249.668,0.015515647,0.015515647 +26-10-2019 23:00,8118165.215,0.005718961,0.005718961 +27-10-2019 0:00,8117081.124,0.003126915,0.003126915 +27-10-2019 1:00,8115997.393,0.001053627,0.001053627 +27-10-2019 2:00,8114914.025,0.000810398,0.000810398 +27-10-2019 3:00,8113831.02,0.001391387,0.001391387 +27-10-2019 4:00,8112748.378,0.004869856,0.004869856 +27-10-2019 5:00,8111666.1,0.038958846,0.038958846 +27-10-2019 6:00,8110584.186,0.065488389,0.065488389 +27-10-2019 7:00,8109502.638,0.054671589,0.054671589 +27-10-2019 8:00,8108421.454,0.067997922,0.067997922 +27-10-2019 9:00,8107340.637,0.05316274,0.05316274 +27-10-2019 10:00,8106260.187,0.057181486,0.057181486 +27-10-2019 11:00,8105180.103,0.057159175,0.057159175 +27-10-2019 12:00,8104100.388,0.043635849,0.043635849 +27-10-2019 13:00,8103021.041,0.028450739,0.028450739 +27-10-2019 14:00,8101942.062,0.017802634,0.017802634 +27-10-2019 15:00,8100863.453,0.022020153,0.022020153 +27-10-2019 16:00,8099785.214,0.042690823,0.042690823 +27-10-2019 17:00,8098707.346,0.089606739,0.089606739 +27-10-2019 18:00,8097629.848,0.100610143,0.100610143 +27-10-2019 19:00,8096552.723,0.092868609,0.092868609 +27-10-2019 20:00,8095475.969,0.078721016,0.078721016 +27-10-2019 21:00,8094399.588,0.052472736,0.052472736 +27-10-2019 22:00,8093323.58,0.025756338,0.025756338 +27-10-2019 23:00,8092247.947,0.013281577,0.013281577 +28-10-2019 0:00,8091172.687,0.008702855,0.008702855 +28-10-2019 1:00,8090097.803,0.002261083,0.002261083 +28-10-2019 2:00,8089023.294,0.000893663,0.000893663 +28-10-2019 3:00,8087949.161,0.001391387,0.001391387 +28-10-2019 4:00,8086875.405,0.00545811,0.00545811 +28-10-2019 5:00,8085802.026,0.044416466,0.044416466 +28-10-2019 6:00,8084729.025,0.088257716,0.088257716 +28-10-2019 7:00,8083656.402,0.098944471,0.098944471 +28-10-2019 8:00,8082584.157,0.090513281,0.090513281 +28-10-2019 9:00,8081512.293,0.085463828,0.085463828 +28-10-2019 10:00,8080440.808,0.069406044,0.069406044 +28-10-2019 11:00,8079369.703,0.064998135,0.064998135 +28-10-2019 12:00,8078298.98,0.050956818,0.050956818 +28-10-2019 13:00,8077228.638,0.035562918,0.035562918 +28-10-2019 14:00,8076158.678,0.018415618,0.018415618 +28-10-2019 15:00,8075089.101,0.024289945,0.024289945 +28-10-2019 16:00,8074019.907,0.059856394,0.059856394 +28-10-2019 17:00,8072951.097,0.114281204,0.114281204 +28-10-2019 18:00,8071882.671,0.124504075,0.124504075 +28-10-2019 19:00,8070814.63,0.16800252,0.16800252 +28-10-2019 20:00,8069746.975,0.167342864,0.167342864 +28-10-2019 21:00,8068679.706,0.112498587,0.112498587 +28-10-2019 22:00,8067612.823,0.055263567,0.055263567 +28-10-2019 23:00,8066546.327,0.024821612,0.024821612 +29-10-2019 0:00,8065480.219,0.010151507,0.010151507 +29-10-2019 1:00,8064414.498,0.002559275,0.002559275 +29-10-2019 2:00,8063349.167,0.00093263,0.00093263 +29-10-2019 3:00,8062284.225,0.002068701,0.002068701 +29-10-2019 4:00,8061219.673,0.007181907,0.007181907 +29-10-2019 5:00,8060155.511,0.056231644,0.056231644 +29-10-2019 6:00,8059091.74,0.117900306,0.117900306 +29-10-2019 7:00,8058028.36,0.133342706,0.133342706 +29-10-2019 8:00,8056965.373,0.116007119,0.116007119 +29-10-2019 9:00,8055902.778,0.102055223,0.102055223 +29-10-2019 10:00,8054840.576,0.091994609,0.091994609 +29-10-2019 11:00,8053778.768,0.099565436,0.099565436 +29-10-2019 12:00,8052717.354,0.052825052,0.052825052 +29-10-2019 13:00,8051656.334,0.036815197,0.036815197 +29-10-2019 14:00,8050595.71,0.019000833,0.019000833 +29-10-2019 15:00,8049535.482,0.025411497,0.025411497 +29-10-2019 16:00,8048475.65,0.074699224,0.074699224 +29-10-2019 17:00,8047416.215,0.149597722,0.149597722 +29-10-2019 18:00,8046357.178,0.206214764,0.206214764 +29-10-2019 19:00,8045298.538,0.223787507,0.223787507 +29-10-2019 20:00,8044240.297,0.192993375,0.192993375 +29-10-2019 21:00,8043182.456,0.130297263,0.130297263 +29-10-2019 22:00,8042125.013,0.064535076,0.064535076 +29-10-2019 23:00,8041067.971,0.029039889,0.029039889 +30-10-2019 0:00,8040011.33,0.012115473,0.012115473 +30-10-2019 1:00,8038955.09,0.00320172,0.00320172 +30-10-2019 2:00,8037899.252,0.00167321,0.00167321 +30-10-2019 3:00,8036843.816,0.002974257,0.002974257 +30-10-2019 4:00,8035788.783,0.009471302,0.009471302 +30-10-2019 5:00,8034734.154,0.072719647,0.072719647 +30-10-2019 6:00,8033679.928,0.159091661,0.159091661 +30-10-2019 7:00,8032626.107,0.196791231,0.196791231 +30-10-2019 8:00,8031572.692,0.144301003,0.144301003 +30-10-2019 9:00,8030519.681,0.144520248,0.144520248 +30-10-2019 10:00,8029467.077,0.14198142,0.14198142 +30-10-2019 11:00,8028414.88,0.162908361,0.162908361 +30-10-2019 12:00,8027363.09,0.110030842,0.110030842 +30-10-2019 13:00,8026311.707,0.043046815,0.043046815 +30-10-2019 14:00,8025260.733,0.019572289,0.019572289 +30-10-2019 15:00,8024210.168,0.030472471,0.030472471 +30-10-2019 16:00,8023160.012,0.099680081,0.099680081 +30-10-2019 17:00,8022110.266,0.1936965,0.1936965 +30-10-2019 18:00,8021060.931,0.265587552,0.265587552 +30-10-2019 19:00,8020012.007,0.26722867,0.26722867 +30-10-2019 20:00,8018963.494,0.225411124,0.225411124 +30-10-2019 21:00,8017915.393,0.149610135,0.149610135 +30-10-2019 22:00,8016867.705,0.074348321,0.074348321 +30-10-2019 23:00,8015820.43,0.034904484,0.034904484 +31-10-2019 0:00,8014773.569,0.014240225,0.014240225 +31-10-2019 1:00,8013727.122,0.004535511,0.004535511 +31-10-2019 2:00,8012681.09,0.002587476,0.002587476 +31-10-2019 3:00,8011635.474,0.003743456,0.003743456 +31-10-2019 4:00,8010590.273,0.013715156,0.013715156 +31-10-2019 5:00,8009545.488,0.102867618,0.102867618 +31-10-2019 6:00,8008501.121,0.226511497,0.226511497 +31-10-2019 7:00,8007457.171,0.276868014,0.276868014 +31-10-2019 8:00,8006413.639,0.185189106,0.185189106 +31-10-2019 9:00,8005370.525,0.191520192,0.191520192 +31-10-2019 10:00,8004327.831,0.217817867,0.217817867 +31-10-2019 11:00,8003285.556,0.254073806,0.254073806 +31-10-2019 12:00,8002243.701,0.190121555,0.190121555 +31-10-2019 13:00,8001202.267,0.10041344,0.10041344 +31-10-2019 14:00,8000161.255,0.04768507,0.04768507 +31-10-2019 15:00,7999120.664,0.109128861,0.109128861 +31-10-2019 16:00,7998080.495,0.242172378,0.242172378 +31-10-2019 17:00,7997040.75,0.351604098,0.351604098 +31-10-2019 18:00,7996001.427,0.344716167,0.344716167 +31-10-2019 19:00,7994962.529,0.324320121,0.324320121 +31-10-2019 20:00,7993924.055,0.268332219,0.268332219 +31-10-2019 21:00,7992886.006,0.18055084,0.18055084 +31-10-2019 22:00,7991848.383,0.08962929,0.08962929 +31-10-2019 23:00,7990811.185,0.040710313,0.040710313 +01-11-2019 0:00,7989774.414,0.016501105,0.016501105 +01-11-2019 1:00,7988738.071,0.005493383,0.005493383 +01-11-2019 2:00,7987702.155,0.003137499,0.003137499 +01-11-2019 3:00,7986666.667,0.005049497,0.005049497 +01-11-2019 4:00,7985631.608,0.020944978,0.020944978 +01-11-2019 5:00,7984596.978,0.130734573,0.130734573 +01-11-2019 6:00,7983562.777,0.270752496,0.270752496 +01-11-2019 7:00,7982529.008,0.336729773,0.336729773 +01-11-2019 8:00,7981495.669,0.275224335,0.275224335 +01-11-2019 9:00,7980462.761,0.290622854,0.290622854 +01-11-2019 10:00,7979430.285,0.319607498,0.319607498 +01-11-2019 11:00,7978398.242,0.42616353,0.42616353 +01-11-2019 12:00,7977366.632,0.369744855,0.369744855 +01-11-2019 13:00,7976335.455,0.201966138,0.201966138 +01-11-2019 14:00,7975304.712,0.116105836,0.116105836 +01-11-2019 15:00,7974274.404,0.276089147,0.276089147 +01-11-2019 16:00,7973244.531,0.311857894,0.311857894 +01-11-2019 17:00,7972215.094,0.341200158,0.341200158 +01-11-2019 18:00,7971186.092,0.321713851,0.321713851 +01-11-2019 19:00,7970157.528,0.288436811,0.288436811 +01-11-2019 20:00,7969129.4,0.231096357,0.231096357 +01-11-2019 21:00,7968101.711,0.148493396,0.148493396 +01-11-2019 22:00,7967074.459,0.06994136,0.06994136 +01-11-2019 23:00,7966047.646,0.03057872,0.03057872 +02-11-2019 0:00,7965021.273,0.012273195,0.012273195 +02-11-2019 1:00,7963995.34,0.003466282,0.003466282 +02-11-2019 2:00,7962969.847,0.001916125,0.001916125 +02-11-2019 3:00,7961944.794,0.002597412,0.002597412 +02-11-2019 4:00,7960920.184,0.008969454,0.008969454 +02-11-2019 5:00,7959896.015,0.066404705,0.066404705 +02-11-2019 6:00,7958872.289,0.141339317,0.141339317 +02-11-2019 7:00,7957849.005,0.176277323,0.176277323 +02-11-2019 8:00,7956826.166,0.164815881,0.164815881 +02-11-2019 9:00,7955803.77,0.201532598,0.201532598 +02-11-2019 10:00,7954781.819,0.214607394,0.214607394 +02-11-2019 11:00,7953760.313,0.287270767,0.287270767 +02-11-2019 12:00,7952739.253,0.252159107,0.252159107 +02-11-2019 13:00,7951718.639,0.12713034,0.12713034 +02-11-2019 14:00,7950698.471,0.063646282,0.063646282 +02-11-2019 15:00,7949678.751,0.125934168,0.125934168 +02-11-2019 16:00,7948659.479,0.233621333,0.233621333 +02-11-2019 17:00,7947640.654,0.280384252,0.280384252 +02-11-2019 18:00,7946622.279,0.276102212,0.276102212 +02-11-2019 19:00,7945604.353,0.255943627,0.255943627 +02-11-2019 20:00,7944586.877,0.208139144,0.208139144 +02-11-2019 21:00,7943569.851,0.136077125,0.136077125 +02-11-2019 22:00,7942553.276,0.064806432,0.064806432 +02-11-2019 23:00,7941537.152,0.028926662,0.028926662 +03-11-2019 0:00,7940521.481,0.011806846,0.011806846 +03-11-2019 1:00,7939506.261,0.003214377,0.003214377 +03-11-2019 2:00,7938491.495,0.001470969,0.001470969 +03-11-2019 3:00,7937477.183,0.002316292,0.002316292 +03-11-2019 4:00,7936463.324,0.007601381,0.007601381 +03-11-2019 5:00,7935449.92,0.060881232,0.060881232 +03-11-2019 6:00,7934436.971,0.131669553,0.131669553 +03-11-2019 7:00,7933424.477,0.173017118,0.173017118 +03-11-2019 8:00,7932412.44,0.162148876,0.162148876 +03-11-2019 9:00,7931400.859,0.195112074,0.195112074 +03-11-2019 10:00,7930389.735,0.227337876,0.227337876 +03-11-2019 11:00,7929379.07,0.299403542,0.299403542 +03-11-2019 12:00,7928368.862,0.259673751,0.259673751 +03-11-2019 13:00,7927359.113,0.140358444,0.140358444 +03-11-2019 14:00,7926349.823,0.071392265,0.071392265 +03-11-2019 15:00,7925340.993,0.15865089,0.15865089 +03-11-2019 16:00,7924332.623,0.252563857,0.252563857 +03-11-2019 17:00,7923324.714,0.291349736,0.291349736 +03-11-2019 18:00,7922317.266,0.284591171,0.284591171 +03-11-2019 19:00,7921310.281,0.260896738,0.260896738 +03-11-2019 20:00,7920303.757,0.213996223,0.213996223 +03-11-2019 21:00,7919297.696,0.139639219,0.139639219 +03-11-2019 22:00,7918292.099,0.066224988,0.066224988 +03-11-2019 23:00,7917286.966,0.029785415,0.029785415 +04-11-2019 0:00,7916282.297,0.012111044,0.012111044 +04-11-2019 1:00,7915278.092,0.003184223,0.003184223 +04-11-2019 2:00,7914274.354,0.001403212,0.001403212 +04-11-2019 3:00,7913271.081,0.002208718,0.002208718 +04-11-2019 4:00,7912268.275,0.007441899,0.007441899 +04-11-2019 5:00,7911265.936,0.058575615,0.058575615 +04-11-2019 6:00,7910264.064,0.124744539,0.124744539 +04-11-2019 7:00,7909262.66,0.163383635,0.163383635 +04-11-2019 8:00,7908261.725,0.157005923,0.157005923 +04-11-2019 9:00,7907261.259,0.195629116,0.195629116 +04-11-2019 10:00,7906261.263,0.229055747,0.229055747 +04-11-2019 11:00,7905261.736,0.304514383,0.304514383 +04-11-2019 12:00,7904262.68,0.264938211,0.264938211 +04-11-2019 13:00,7903264.096,0.142365308,0.142365308 +04-11-2019 14:00,7902265.983,0.07149224,0.07149224 +04-11-2019 15:00,7901268.342,0.156032835,0.156032835 +04-11-2019 16:00,7900271.173,0.255314147,0.255314147 +04-11-2019 17:00,7899274.478,0.293235649,0.293235649 +04-11-2019 18:00,7898278.257,0.285045068,0.285045068 +04-11-2019 19:00,7897282.509,0.26107269,0.26107269 +04-11-2019 20:00,7896287.237,0.212200924,0.212200924 +04-11-2019 21:00,7895292.439,0.137487317,0.137487317 +04-11-2019 22:00,7894298.118,0.065652767,0.065652767 +04-11-2019 23:00,7893304.272,0.029047131,0.029047131 +05-11-2019 0:00,7892310.904,0.011920413,0.011920413 +05-11-2019 1:00,7891318.012,0.003198136,0.003198136 +05-11-2019 2:00,7890325.599,0.001365882,0.001365882 +05-11-2019 3:00,7889333.663,0.002181859,0.002181859 +05-11-2019 4:00,7888342.207,0.007786024,0.007786024 +05-11-2019 5:00,7887351.229,0.059661517,0.059661517 +05-11-2019 6:00,7886360.732,0.130081324,0.130081324 +05-11-2019 7:00,7885370.715,0.174023558,0.174023558 +05-11-2019 8:00,7884381.178,0.163167945,0.163167945 +05-11-2019 9:00,7883392.123,0.203664242,0.203664242 +05-11-2019 10:00,7882403.55,0.240397899,0.240397899 +05-11-2019 11:00,7881415.46,0.321814574,0.321814574 +05-11-2019 12:00,7880427.852,0.280870654,0.280870654 +05-11-2019 13:00,7879440.727,0.152537814,0.152537814 +05-11-2019 14:00,7878454.086,0.07979524,0.07979524 +05-11-2019 15:00,7877467.93,0.18941633,0.18941633 +05-11-2019 16:00,7876482.259,0.266589669,0.266589669 +05-11-2019 17:00,7875497.073,0.305873616,0.305873616 +05-11-2019 18:00,7874512.373,0.297515443,0.297515443 +05-11-2019 19:00,7873528.159,0.268449109,0.268449109 +05-11-2019 20:00,7872544.432,0.216430444,0.216430444 +05-11-2019 21:00,7871561.193,0.140527529,0.140527529 +05-11-2019 22:00,7870578.442,0.066954953,0.066954953 +05-11-2019 23:00,7869596.179,0.029661297,0.029661297 +06-11-2019 0:00,7868614.405,0.012116166,0.012116166 +06-11-2019 1:00,7867633.12,0.003237265,0.003237265 +06-11-2019 2:00,7866652.326,0.001395316,0.001395316 +06-11-2019 3:00,7865672.022,0.002237225,0.002237225 +06-11-2019 4:00,7864692.209,0.008175007,0.008175007 +06-11-2019 5:00,7863712.887,0.061329477,0.061329477 +06-11-2019 6:00,7862734.057,0.135514979,0.135514979 +06-11-2019 7:00,7861755.72,0.184316481,0.184316481 +06-11-2019 8:00,7860777.876,0.16981018,0.16981018 +06-11-2019 9:00,7859800.525,0.211682273,0.211682273 +06-11-2019 10:00,7858823.668,0.23914738,0.23914738 +06-11-2019 11:00,7857847.306,0.29293502,0.29293502 +06-11-2019 12:00,7856871.438,0.274284701,0.274284701 +06-11-2019 13:00,7855896.067,0.150401,0.150401 +06-11-2019 14:00,7854921.191,0.081447892,0.081447892 +06-11-2019 15:00,7853946.811,0.215432428,0.215432428 +06-11-2019 16:00,7852972.929,0.291185424,0.291185424 +06-11-2019 17:00,7851999.544,0.323707068,0.323707068 +06-11-2019 18:00,7851026.657,0.311567474,0.311567474 +06-11-2019 19:00,7850054.269,0.285372818,0.285372818 +06-11-2019 20:00,7849082.38,0.23281921,0.23281921 +06-11-2019 21:00,7848110.99,0.150539177,0.150539177 +06-11-2019 22:00,7847140.1,0.071731808,0.071731808 +06-11-2019 23:00,7846169.711,0.032144906,0.032144906 +07-11-2019 0:00,7845199.822,0.012897459,0.012897459 +07-11-2019 1:00,7844230.435,0.003450291,0.003450291 +07-11-2019 2:00,7843261.551,0.001757341,0.001757341 +07-11-2019 3:00,7842293.168,0.002562721,0.002562721 +07-11-2019 4:00,7841325.289,0.010105306,0.010105306 +07-11-2019 5:00,7840357.913,0.070883712,0.070883712 +07-11-2019 6:00,7839391.041,0.159673349,0.159673349 +07-11-2019 7:00,7838424.674,0.215809709,0.215809709 +07-11-2019 8:00,7837458.811,0.188844299,0.188844299 +07-11-2019 9:00,7836493.454,0.227916948,0.227916948 +07-11-2019 10:00,7835528.603,0.265519811,0.265519811 +07-11-2019 11:00,7834564.259,0.360046625,0.360046625 +07-11-2019 12:00,7833600.421,0.323134996,0.323134996 +07-11-2019 13:00,7832637.091,0.17678525,0.17678525 +07-11-2019 14:00,7831674.269,0.098797994,0.098797994 +07-11-2019 15:00,7830711.955,0.25182278,0.25182278 +07-11-2019 16:00,7829750.15,0.29370375,0.29370375 +07-11-2019 17:00,7828788.855,0.329397498,0.329397498 +07-11-2019 18:00,7827828.07,0.320475371,0.320475371 +07-11-2019 19:00,7826867.795,0.293972512,0.293972512 +07-11-2019 20:00,7825908.031,0.242787294,0.242787294 +07-11-2019 21:00,7824948.778,0.159265515,0.159265515 +07-11-2019 22:00,7823990.038,0.077059628,0.077059628 +07-11-2019 23:00,7823031.809,0.034487628,0.034487628 +08-11-2019 0:00,7822074.094,0.01408645,0.01408645 +08-11-2019 1:00,7821116.892,0.004082875,0.004082875 +08-11-2019 2:00,7820160.204,0.002235433,0.002235433 +08-11-2019 3:00,7819204.03,0.003501802,0.003501802 +08-11-2019 4:00,7818248.371,0.014524977,0.014524977 +08-11-2019 5:00,7817293.228,0.09715294,0.09715294 +08-11-2019 6:00,7816338.6,0.222982064,0.222982064 +08-11-2019 7:00,7815384.489,0.290405354,0.290405354 +08-11-2019 8:00,7814430.895,0.196784789,0.196784789 +08-11-2019 9:00,7813477.818,0.19341262,0.19341262 +08-11-2019 10:00,7812525.258,0.201669825,0.201669825 +08-11-2019 11:00,7811573.217,0.2498236,0.2498236 +08-11-2019 12:00,7810621.695,0.204129544,0.204129544 +08-11-2019 13:00,7809670.692,0.101932143,0.101932143 +08-11-2019 14:00,7808720.209,0.051898899,0.051898899 +08-11-2019 15:00,7807770.246,0.111310946,0.111310946 +08-11-2019 16:00,7806820.804,0.277935633,0.277935633 +08-11-2019 17:00,7805871.883,0.365756705,0.365756705 +08-11-2019 18:00,7804923.484,0.36194509,0.36194509 +08-11-2019 19:00,7803975.607,0.338972742,0.338972742 +08-11-2019 20:00,7803028.253,0.27448066,0.27448066 +08-11-2019 21:00,7802081.422,0.175623349,0.175623349 +08-11-2019 22:00,7801135.114,0.085327521,0.085327521 +08-11-2019 23:00,7800189.331,0.038273913,0.038273913 +09-11-2019 0:00,7799244.073,0.015492185,0.015492185 +09-11-2019 1:00,7798299.339,0.004991216,0.004991216 +09-11-2019 2:00,7797355.131,0.002782552,0.002782552 +09-11-2019 3:00,7796411.45,0.00364949,0.00364949 +09-11-2019 4:00,7795468.295,0.018635055,0.018635055 +09-11-2019 5:00,7794525.667,0.110702277,0.110702277 +09-11-2019 6:00,7793583.566,0.241993694,0.241993694 +09-11-2019 7:00,7792641.994,0.312873003,0.312873003 +09-11-2019 8:00,7791700.95,0.25462844,0.25462844 +09-11-2019 9:00,7790760.435,0.273618484,0.273618484 +09-11-2019 10:00,7789820.45,0.307215018,0.307215018 +09-11-2019 11:00,7788880.995,0.415071311,0.415071311 +09-11-2019 12:00,7787942.07,0.355265787,0.355265787 +09-11-2019 13:00,7787003.676,0.205456577,0.205456577 +09-11-2019 14:00,7786065.813,0.116501033,0.116501033 +09-11-2019 15:00,7785128.483,0.309430765,0.309430765 +09-11-2019 16:00,7784191.685,0.33427575,0.33427575 +09-11-2019 17:00,7783255.419,0.371951178,0.371951178 +09-11-2019 18:00,7782319.687,0.355673887,0.355673887 +09-11-2019 19:00,7781384.489,0.327249352,0.327249352 +09-11-2019 20:00,7780449.826,0.270086396,0.270086396 +09-11-2019 21:00,7779515.697,0.17815619,0.17815619 +09-11-2019 22:00,7778582.103,0.088240908,0.088240908 +09-11-2019 23:00,7777649.045,0.040430548,0.040430548 +10-11-2019 0:00,7776716.523,0.016491345,0.016491345 +10-11-2019 1:00,7775784.538,0.005585942,0.005585942 +10-11-2019 2:00,7774853.091,0.003276159,0.003276159 +10-11-2019 3:00,7773922.181,0.005207194,0.005207194 +10-11-2019 4:00,7772991.809,0.027172168,0.027172168 +10-11-2019 5:00,7772061.976,0.147069925,0.147069925 +10-11-2019 6:00,7771132.682,0.320073331,0.320073331 +10-11-2019 7:00,7770203.927,0.40607925,0.40607925 +10-11-2019 8:00,7769275.713,0.281721367,0.281721367 +10-11-2019 9:00,7768348.039,0.250508905,0.250508905 +10-11-2019 10:00,7767420.906,0.24149905,0.24149905 +10-11-2019 11:00,7766494.315,0.310303262,0.310303262 +10-11-2019 12:00,7765568.265,0.25247953,0.25247953 +10-11-2019 13:00,7764642.758,0.126798286,0.126798286 +10-11-2019 14:00,7763717.795,0.061682655,0.061682655 +10-11-2019 15:00,7762793.374,0.139440123,0.139440123 +10-11-2019 16:00,7761869.497,0.351093072,0.351093072 +10-11-2019 17:00,7760946.165,0.4209121,0.4209121 +10-11-2019 18:00,7760023.378,0.417608015,0.417608015 +10-11-2019 19:00,7759101.136,0.391958681,0.391958681 +10-11-2019 20:00,7758179.439,0.32618848,0.32618848 +10-11-2019 21:00,7757258.289,0.213740435,0.213740435 +10-11-2019 22:00,7756337.686,0.100326205,0.100326205 +10-11-2019 23:00,7755417.63,0.045559921,0.045559921 +11-11-2019 0:00,7754498.122,0.018749196,0.018749196 +11-11-2019 1:00,7753579.161,0.006590454,0.006590454 +11-11-2019 2:00,7752660.75,0.004399751,0.004399751 +11-11-2019 3:00,7751742.887,0.007820808,0.007820808 +11-11-2019 4:00,7750825.574,0.036735146,0.036735146 +11-11-2019 5:00,7749908.811,0.171234642,0.171234642 +11-11-2019 6:00,7748992.599,0.352820045,0.352820045 +11-11-2019 7:00,7748076.938,0.445324761,0.445324761 +11-11-2019 8:00,7747161.828,0.371995902,0.371995902 +11-11-2019 9:00,7746247.27,0.36592176,0.36592176 +11-11-2019 10:00,7745333.264,0.378135663,0.378135663 +11-11-2019 11:00,7744419.811,0.518083497,0.518083497 +11-11-2019 12:00,7743506.912,0.453160188,0.453160188 +11-11-2019 13:00,7742594.566,0.278213577,0.278213577 +11-11-2019 14:00,7741682.775,0.212440935,0.212440935 +11-11-2019 15:00,7740771.539,0.38956082,0.38956082 +11-11-2019 16:00,7739860.857,0.397540034,0.397540034 +11-11-2019 17:00,7738950.732,0.426342792,0.426342792 +11-11-2019 18:00,7738041.162,0.40880514,0.40880514 +11-11-2019 19:00,7737132.149,0.373831624,0.373831624 +11-11-2019 20:00,7736223.694,0.308366734,0.308366734 +11-11-2019 21:00,7735315.795,0.200479616,0.200479616 +11-11-2019 22:00,7734408.455,0.096239446,0.096239446 +11-11-2019 23:00,7733501.674,0.042149913,0.042149913 +12-11-2019 0:00,7732595.451,0.017486928,0.017486928 +12-11-2019 1:00,7731689.788,0.006049166,0.006049166 +12-11-2019 2:00,7730784.684,0.003535081,0.003535081 +12-11-2019 3:00,7729880.141,0.006040166,0.006040166 +12-11-2019 4:00,7728976.159,0.031363512,0.031363512 +12-11-2019 5:00,7728072.738,0.153208067,0.153208067 +12-11-2019 6:00,7727169.879,0.328906207,0.328906207 +12-11-2019 7:00,7726267.582,0.427414941,0.427414941 +12-11-2019 8:00,7725365.848,0.516237891,0.516237891 +12-11-2019 9:00,7724464.676,0.396961124,0.396961124 +12-11-2019 10:00,7723564.069,0.404330456,0.404330456 +12-11-2019 11:00,7722664.026,0.56029097,0.56029097 +12-11-2019 12:00,7721764.547,0.435214769,0.435214769 +12-11-2019 13:00,7720865.633,0.271235664,0.271235664 +12-11-2019 14:00,7719967.284,0.389115626,0.389115626 +12-11-2019 15:00,7719069.502,0.408764333,0.408764333 +12-11-2019 16:00,7718172.286,0.412194383,0.412194383 +12-11-2019 17:00,7717275.636,0.440781685,0.440781685 +12-11-2019 18:00,7716379.554,0.422633047,0.422633047 +12-11-2019 19:00,7715484.04,0.387743666,0.387743666 +12-11-2019 20:00,7714589.094,0.319465034,0.319465034 +12-11-2019 21:00,7713694.717,0.206234036,0.206234036 +12-11-2019 22:00,7712800.909,0.098049504,0.098049504 +12-11-2019 23:00,7711907.67,0.042547771,0.042547771 +13-11-2019 0:00,7711015.002,0.017799569,0.017799569 +13-11-2019 1:00,7710122.904,0.006079431,0.006079431 +13-11-2019 2:00,7709231.377,0.003655834,0.003655834 +13-11-2019 3:00,7708340.421,0.006236482,0.006236482 +13-11-2019 4:00,7707450.038,0.032296584,0.032296584 +13-11-2019 5:00,7706560.226,0.154201726,0.154201726 +13-11-2019 6:00,7705670.988,0.326969988,0.326969988 +13-11-2019 7:00,7704782.323,0.420692541,0.420692541 +13-11-2019 8:00,7703894.231,0.497851985,0.497851985 +13-11-2019 9:00,7703006.714,0.3901376,0.3901376 +13-11-2019 10:00,7702119.772,0.390309964,0.390309964 +13-11-2019 11:00,7701233.404,0.540115076,0.540115076 +13-11-2019 12:00,7700347.612,0.465081452,0.465081452 +13-11-2019 13:00,7699462.396,0.301938485,0.301938485 +13-11-2019 14:00,7698577.757,0.401329911,0.401329911 +13-11-2019 15:00,7697693.694,0.417760305,0.417760305 +13-11-2019 16:00,7696810.209,0.41205984,0.41205984 +13-11-2019 17:00,7695927.302,0.441178276,0.441178276 +13-11-2019 18:00,7695044.973,0.429345116,0.429345116 +13-11-2019 19:00,7694163.223,0.392016211,0.392016211 +13-11-2019 20:00,7693282.052,0.318000339,0.318000339 +13-11-2019 21:00,7692401.46,0.204678743,0.204678743 +13-11-2019 22:00,7691521.449,0.098837451,0.098837451 +13-11-2019 23:00,7690642.018,0.042709657,0.042709657 +14-11-2019 0:00,7689763.169,0.017989276,0.017989276 +14-11-2019 1:00,7688884.9,0.00621877,0.00621877 +14-11-2019 2:00,7688007.214,0.00377604,0.00377604 +14-11-2019 3:00,7687130.11,0.0066448,0.0066448 +14-11-2019 4:00,7686253.589,0.034605478,0.034605478 +14-11-2019 5:00,7685377.651,0.162968069,0.162968069 +14-11-2019 6:00,7684502.297,0.342958493,0.342958493 +14-11-2019 7:00,7683627.527,0.443787993,0.443787993 +14-11-2019 8:00,7682753.341,0.531475196,0.531475196 +14-11-2019 9:00,7681879.741,0.408222015,0.408222015 +14-11-2019 10:00,7681006.726,0.406777282,0.406777282 +14-11-2019 11:00,7680134.297,0.546697373,0.546697373 +14-11-2019 12:00,7679262.455,0.470393181,0.470393181 +14-11-2019 13:00,7678391.199,0.314862083,0.314862083 +14-11-2019 14:00,7677520.531,0.404061757,0.404061757 +14-11-2019 15:00,7676650.451,0.419931594,0.419931594 +14-11-2019 16:00,7675780.958,0.409729159,0.409729159 +14-11-2019 17:00,7674912.055,0.435689312,0.435689312 +14-11-2019 18:00,7674043.74,0.418174716,0.418174716 +14-11-2019 19:00,7673176.015,0.382412613,0.382412613 +14-11-2019 20:00,7672308.88,0.314914597,0.314914597 +14-11-2019 21:00,7671442.336,0.206189646,0.206189646 +14-11-2019 22:00,7670576.382,0.098985802,0.098985802 +14-11-2019 23:00,7669711.02,0.043348809,0.043348809 +15-11-2019 0:00,7668846.249,0.01825499,0.01825499 +15-11-2019 1:00,7667982.071,0.006381547,0.006381547 +15-11-2019 2:00,7667118.485,0.003877643,0.003877643 +15-11-2019 3:00,7666255.493,0.007150696,0.007150696 +15-11-2019 4:00,7665393.094,0.036485557,0.036485557 +15-11-2019 5:00,7664531.289,0.170082774,0.170082774 +15-11-2019 6:00,7663670.078,0.357570099,0.357570099 +15-11-2019 7:00,7662809.462,0.463223171,0.463223171 +15-11-2019 8:00,7661949.442,0.555550092,0.555550092 +15-11-2019 9:00,7661090.017,0.427333907,0.427333907 +15-11-2019 10:00,7660231.189,0.42978336,0.42978336 +15-11-2019 11:00,7659372.957,0.567748117,0.567748117 +15-11-2019 12:00,7658515.323,0.492371389,0.492371389 +15-11-2019 13:00,7657658.286,0.344628023,0.344628023 +15-11-2019 14:00,7656801.847,0.428105107,0.428105107 +15-11-2019 15:00,7655946.006,0.442813857,0.442813857 +15-11-2019 16:00,7655090.764,0.431240688,0.431240688 +15-11-2019 17:00,7654236.122,0.454721777,0.454721777 +15-11-2019 18:00,7653382.079,0.434818325,0.434818325 +15-11-2019 19:00,7652528.636,0.398656325,0.398656325 +15-11-2019 20:00,7651675.794,0.328832859,0.328832859 +15-11-2019 21:00,7650823.553,0.214595883,0.214595883 +15-11-2019 22:00,7649971.914,0.104180085,0.104180085 +15-11-2019 23:00,7649120.876,0.046074912,0.046074912 +16-11-2019 0:00,7648270.441,0.019370324,0.019370324 +16-11-2019 1:00,7647420.609,0.006916433,0.006916433 +16-11-2019 2:00,7646571.38,0.004758217,0.004758217 +16-11-2019 3:00,7645722.754,0.009346336,0.009346336 +16-11-2019 4:00,7644874.733,0.043140829,0.043140829 +16-11-2019 5:00,7644027.316,0.192079784,0.192079784 +16-11-2019 6:00,7643180.505,0.40159107,0.40159107 +16-11-2019 7:00,7642334.298,0.521165288,0.521165288 +16-11-2019 8:00,7641488.698,0.610763075,0.610763075 +16-11-2019 9:00,7640643.704,0.462923667,0.462923667 +16-11-2019 10:00,7639799.316,0.451091639,0.451091639 +16-11-2019 11:00,7638955.536,0.582257079,0.582257079 +16-11-2019 12:00,7638112.364,0.503450177,0.503450177 +16-11-2019 13:00,7637269.799,0.365381712,0.365381712 +16-11-2019 14:00,7636427.843,0.445119548,0.445119548 +16-11-2019 15:00,7635586.496,0.46526394,0.46526394 +16-11-2019 16:00,7634745.758,0.452442575,0.452442575 +16-11-2019 17:00,7633905.63,0.47385047,0.47385047 +16-11-2019 18:00,7633066.112,0.445814174,0.445814174 +16-11-2019 19:00,7632227.204,0.403514867,0.403514867 +16-11-2019 20:00,7631388.908,0.331020785,0.331020785 +16-11-2019 21:00,7630551.223,0.215235289,0.215235289 +16-11-2019 22:00,7629714.15,0.102382453,0.102382453 +16-11-2019 23:00,7628877.69,0.044262407,0.044262407 +17-11-2019 0:00,7628041.842,0.018641968,0.018641968 +17-11-2019 1:00,7627206.608,0.006586391,0.006586391 +17-11-2019 2:00,7626371.987,0.004402667,0.004402667 +17-11-2019 3:00,7625537.98,0.007820885,0.007820885 +17-11-2019 4:00,7624704.588,0.040475425,0.040475425 +17-11-2019 5:00,7623871.811,0.181660099,0.181660099 +17-11-2019 6:00,7623039.649,0.385716739,0.385716739 +17-11-2019 7:00,7622208.102,0.504672559,0.504672559 +17-11-2019 8:00,7621377.172,0.605334719,0.605334719 +17-11-2019 9:00,7620546.859,0.463219428,0.463219428 +17-11-2019 10:00,7619717.163,0.41215426,0.41215426 +17-11-2019 11:00,7618888.084,0.570916676,0.570916676 +17-11-2019 12:00,7618059.623,0.493106574,0.493106574 +17-11-2019 13:00,7617231.781,0.363704247,0.363704247 +17-11-2019 14:00,7616404.557,0.441247597,0.441247597 +17-11-2019 15:00,7615577.953,0.460704658,0.460704658 +17-11-2019 16:00,7614751.968,0.447322285,0.447322285 +17-11-2019 17:00,7613926.603,0.473450184,0.473450184 +17-11-2019 18:00,7613101.858,0.456330191,0.456330191 +17-11-2019 19:00,7612277.735,0.414860832,0.414860832 +17-11-2019 20:00,7611454.233,0.339849335,0.339849335 +17-11-2019 21:00,7610631.353,0.219052345,0.219052345 +17-11-2019 22:00,7609809.094,0.103556407,0.103556407 +17-11-2019 23:00,7608987.459,0.045516666,0.045516666 +18-11-2019 0:00,7608166.446,0.019134011,0.019134011 +18-11-2019 1:00,7607346.057,0.006795238,0.006795238 +18-11-2019 2:00,7606526.292,0.004747764,0.004747764 +18-11-2019 3:00,7605707.151,0.008475553,0.008475553 +18-11-2019 4:00,7604888.634,0.040387105,0.040387105 +18-11-2019 5:00,7604070.743,0.179241851,0.179241851 +18-11-2019 6:00,7603253.478,0.375298265,0.375298265 +18-11-2019 7:00,7602436.838,0.486394627,0.486394627 +18-11-2019 8:00,7601620.825,0.578199337,0.578199337 +18-11-2019 9:00,7600805.438,0.443765553,0.443765553 +18-11-2019 10:00,7599990.679,0.43508485,0.43508485 +18-11-2019 11:00,7599176.547,0.568050242,0.568050242 +18-11-2019 12:00,7598363.044,0.49159156,0.49159156 +18-11-2019 13:00,7597550.169,0.360013671,0.360013671 +18-11-2019 14:00,7596737.923,0.429763347,0.429763347 +18-11-2019 15:00,7595926.306,0.444306799,0.444306799 +18-11-2019 16:00,7595115.319,0.423936386,0.423936386 +18-11-2019 17:00,7594304.962,0.445142361,0.445142361 +18-11-2019 18:00,7593495.235,0.423350664,0.423350664 +18-11-2019 19:00,7592686.14,0.384062405,0.384062405 +18-11-2019 20:00,7591877.676,0.319601709,0.319601709 +18-11-2019 21:00,7591069.844,0.207855173,0.207855173 +18-11-2019 22:00,7590262.644,0.099709355,0.099709355 +18-11-2019 23:00,7589456.077,0.042860995,0.042860995 +19-11-2019 0:00,7588650.142,0.018092748,0.018092748 +19-11-2019 1:00,7587844.842,0.006234745,0.006234745 +19-11-2019 2:00,7587040.175,0.00372943,0.00372943 +19-11-2019 3:00,7586236.142,0.006495105,0.006495105 +19-11-2019 4:00,7585432.745,0.034438761,0.034438761 +19-11-2019 5:00,7584629.982,0.160959146,0.160959146 +19-11-2019 6:00,7583827.855,0.345219395,0.345219395 +19-11-2019 7:00,7583026.364,0.453266768,0.453266768 +19-11-2019 8:00,7582225.509,0.542349891,0.542349891 +19-11-2019 9:00,7581425.291,0.380208724,0.380208724 +19-11-2019 10:00,7580625.71,0.324285733,0.324285733 +19-11-2019 11:00,7579826.767,0.497571266,0.497571266 +19-11-2019 12:00,7579028.462,0.47936267,0.47936267 +19-11-2019 13:00,7578230.795,0.350963215,0.350963215 +19-11-2019 14:00,7577433.767,0.433229979,0.433229979 +19-11-2019 15:00,7576637.378,0.449228374,0.449228374 +19-11-2019 16:00,7575841.629,0.434120091,0.434120091 +19-11-2019 17:00,7575046.521,0.461105091,0.461105091 +19-11-2019 18:00,7574252.052,0.458223607,0.458223607 +19-11-2019 19:00,7573458.225,0.416642317,0.416642317 +19-11-2019 20:00,7572665.038,0.352473919,0.352473919 +19-11-2019 21:00,7571872.494,0.232086592,0.232086592 +19-11-2019 22:00,7571080.591,0.110900607,0.110900607 +19-11-2019 23:00,7570289.331,0.049615475,0.049615475 +20-11-2019 0:00,7569498.714,0.02103137,0.02103137 +20-11-2019 1:00,7568708.741,0.007975415,0.007975415 +20-11-2019 2:00,7567919.411,0.006339993,0.006339993 +20-11-2019 3:00,7567130.725,0.013717339,0.013717339 +20-11-2019 4:00,7566342.684,0.054020712,0.054020712 +20-11-2019 5:00,7565555.287,0.226618271,0.226618271 +20-11-2019 6:00,7564768.537,0.464187216,0.464187216 +20-11-2019 7:00,7563982.431,0.593882288,0.593882288 +20-11-2019 8:00,7563196.972,0.658200401,0.658200401 +20-11-2019 9:00,7562412.16,0.408220827,0.408220827 +20-11-2019 10:00,7561627.995,0.352355474,0.352355474 +20-11-2019 11:00,7560844.477,0.540051601,0.540051601 +20-11-2019 12:00,7560061.606,0.379253755,0.379253755 +20-11-2019 13:00,7559279.384,0.289177302,0.289177302 +20-11-2019 14:00,7558497.811,0.451407005,0.451407005 +20-11-2019 15:00,7557716.886,0.493618315,0.493618315 +20-11-2019 16:00,7556936.611,0.482630274,0.482630274 +20-11-2019 17:00,7556156.986,0.507138801,0.507138801 +20-11-2019 18:00,7555378.011,0.483208511,0.483208511 +20-11-2019 19:00,7554599.686,0.44183549,0.44183549 +20-11-2019 20:00,7553822.013,0.364935034,0.364935034 +20-11-2019 21:00,7553044.991,0.236564262,0.236564262 +20-11-2019 22:00,7552268.62,0.113007791,0.113007791 +20-11-2019 23:00,7551492.902,0.050017519,0.050017519 +21-11-2019 0:00,7550717.837,0.021299232,0.021299232 +21-11-2019 1:00,7549943.424,0.008528159,0.008528159 +21-11-2019 2:00,7549169.665,0.006932326,0.006932326 +21-11-2019 3:00,7548396.56,0.014024712,0.014024712 +21-11-2019 4:00,7547624.109,0.053881279,0.053881279 +21-11-2019 5:00,7546852.312,0.221552612,0.221552612 +21-11-2019 6:00,7546081.17,0.451657019,0.451657019 +21-11-2019 7:00,7545310.684,0.582525405,0.582525405 +21-11-2019 8:00,7544540.854,0.683539447,0.683539447 +21-11-2019 9:00,7543771.68,0.5293859,0.5293859 +21-11-2019 10:00,7543003.162,0.503058863,0.503058863 +21-11-2019 11:00,7542235.301,0.626000025,0.626000025 +21-11-2019 12:00,7541468.098,0.542943144,0.542943144 +21-11-2019 13:00,7540701.552,0.420841715,0.420841715 +21-11-2019 14:00,7539935.665,0.486648458,0.486648458 +21-11-2019 15:00,7539170.436,0.5043486,0.5043486 +21-11-2019 16:00,7538405.866,0.486025699,0.486025699 +21-11-2019 17:00,7537641.955,0.509333849,0.509333849 +21-11-2019 18:00,7536878.704,0.493781565,0.493781565 +21-11-2019 19:00,7536116.113,0.447050856,0.447050856 +21-11-2019 20:00,7535354.183,0.36590082,0.36590082 +21-11-2019 21:00,7534592.914,0.238255988,0.238255988 +21-11-2019 22:00,7533832.306,0.112999197,0.112999197 +21-11-2019 23:00,7533072.359,0.049422708,0.049422708 +22-11-2019 0:00,7532313.075,0.020880646,0.020880646 +22-11-2019 1:00,7531554.453,0.008279986,0.008279986 +22-11-2019 2:00,7530796.494,0.006534524,0.006534524 +22-11-2019 3:00,7530039.198,0.012510367,0.012510367 +22-11-2019 4:00,7529282.566,0.050268122,0.050268122 +22-11-2019 5:00,7528526.598,0.207323216,0.207323216 +22-11-2019 6:00,7527771.294,0.422300832,0.422300832 +22-11-2019 7:00,7527016.655,0.542664655,0.542664655 +22-11-2019 8:00,7526262.681,0.636100905,0.636100905 +22-11-2019 9:00,7525509.373,0.486624198,0.486624198 +22-11-2019 10:00,7524756.731,0.361564175,0.361564175 +22-11-2019 11:00,7524004.755,0.51337795,0.51337795 +22-11-2019 12:00,7523253.446,0.499538717,0.499538717 +22-11-2019 13:00,7522502.804,0.308841055,0.308841055 +22-11-2019 14:00,7521752.829,0.433639175,0.433639175 +22-11-2019 15:00,7521003.523,0.459578322,0.459578322 +22-11-2019 16:00,7520254.885,0.442858135,0.442858135 +22-11-2019 17:00,7519506.915,0.474448782,0.474448782 +22-11-2019 18:00,7518759.614,0.457324505,0.457324505 +22-11-2019 19:00,7518012.983,0.419609805,0.419609805 +22-11-2019 20:00,7517267.022,0.345656268,0.345656268 +22-11-2019 21:00,7516521.731,0.223137301,0.223137301 +22-11-2019 22:00,7515777.11,0.104941762,0.104941762 +22-11-2019 23:00,7515033.161,0.045268275,0.045268275 +23-11-2019 0:00,7514289.882,0.019054401,0.019054401 +23-11-2019 1:00,7513547.276,0.006770837,0.006770837 +23-11-2019 2:00,7512805.341,0.004799866,0.004799866 +23-11-2019 3:00,7512064.08,0.008729727,0.008729727 +23-11-2019 4:00,7511323.491,0.042006695,0.042006695 +23-11-2019 5:00,7510583.575,0.184927295,0.184927295 +23-11-2019 6:00,7509844.333,0.389850449,0.389850449 +23-11-2019 7:00,7509105.765,0.512917828,0.512917828 +23-11-2019 8:00,7508367.871,0.609546568,0.609546568 +23-11-2019 9:00,7507630.652,0.479551021,0.479551021 +23-11-2019 10:00,7506894.108,0.462370676,0.462370676 +23-11-2019 11:00,7506158.24,0.586871068,0.586871068 +23-11-2019 12:00,7505423.048,0.510867378,0.510867378 +23-11-2019 13:00,7504688.532,0.384289971,0.384289971 +23-11-2019 14:00,7503954.693,0.442645172,0.442645172 +23-11-2019 15:00,7503221.531,0.455864211,0.455864211 +23-11-2019 16:00,7502489.046,0.429231602,0.429231602 +23-11-2019 17:00,7501757.239,0.45726198,0.45726198 +23-11-2019 18:00,7501026.11,0.440536186,0.440536186 +23-11-2019 19:00,7500295.66,0.404576536,0.404576536 +23-11-2019 20:00,7499565.888,0.337690887,0.337690887 +23-11-2019 21:00,7498836.796,0.219751306,0.219751306 +23-11-2019 22:00,7498108.384,0.104080962,0.104080962 +23-11-2019 23:00,7497380.652,0.045115335,0.045115335 +24-11-2019 0:00,7496653.6,0.019243943,0.019243943 +24-11-2019 1:00,7495927.229,0.006932733,0.006932733 +24-11-2019 2:00,7495201.539,0.004814575,0.004814575 +24-11-2019 3:00,7494476.531,0.009384621,0.009384621 +24-11-2019 4:00,7493752.204,0.044218024,0.044218024 +24-11-2019 5:00,7493028.56,0.195456801,0.195456801 +24-11-2019 6:00,7492305.599,0.408958032,0.408958032 +24-11-2019 7:00,7491583.321,0.533157641,0.533157641 +24-11-2019 8:00,7490861.726,0.626668164,0.626668164 +24-11-2019 9:00,7490140.815,0.486215794,0.486215794 +24-11-2019 10:00,7489420.588,0.46110976,0.46110976 +24-11-2019 11:00,7488701.045,0.578053773,0.578053773 +24-11-2019 12:00,7487982.188,0.496249573,0.496249573 +24-11-2019 13:00,7487264.015,0.377769019,0.377769019 +24-11-2019 14:00,7486546.529,0.437594863,0.437594863 +24-11-2019 15:00,7485829.728,0.46181635,0.46181635 +24-11-2019 16:00,7485113.614,0.452981243,0.452981243 +24-11-2019 17:00,7484398.186,0.482041179,0.482041179 +24-11-2019 18:00,7483683.446,0.46205786,0.46205786 +24-11-2019 19:00,7482969.393,0.417713428,0.417713428 +24-11-2019 20:00,7482256.028,0.348097101,0.348097101 +24-11-2019 21:00,7481543.351,0.218132723,0.218132723 +24-11-2019 22:00,7480831.363,0.102903386,0.102903386 +24-11-2019 23:00,7480120.064,0.04426997,0.04426997 +25-11-2019 0:00,7479409.454,0.018665394,0.018665394 +25-11-2019 1:00,7478699.533,0.006521623,0.006521623 +25-11-2019 2:00,7477990.303,0.004338981,0.004338981 +25-11-2019 3:00,7477281.763,0.007472525,0.007472525 +25-11-2019 4:00,7476573.914,0.037638141,0.037638141 +25-11-2019 5:00,7475866.756,0.170009803,0.170009803 +25-11-2019 6:00,7475160.29,0.358499033,0.358499033 +25-11-2019 7:00,7474454.515,0.47513859,0.47513859 +25-11-2019 8:00,7473749.433,0.572505335,0.572505335 +25-11-2019 9:00,7473045.043,0.459589078,0.459589078 +25-11-2019 10:00,7472341.346,0.445639981,0.445639981 +25-11-2019 11:00,7471638.343,0.563141275,0.563141275 +25-11-2019 12:00,7470936.033,0.448301783,0.448301783 +25-11-2019 13:00,7470234.417,0.240971346,0.240971346 +25-11-2019 14:00,7469533.496,0.336780519,0.336780519 +25-11-2019 15:00,7468833.269,0.436517681,0.436517681 +25-11-2019 16:00,7468133.738,0.426666377,0.426666377 +25-11-2019 17:00,7467434.902,0.447451703,0.447451703 +25-11-2019 18:00,7466736.761,0.426482099,0.426482099 +25-11-2019 19:00,7466039.318,0.390386538,0.390386538 +25-11-2019 20:00,7465342.57,0.321530429,0.321530429 +25-11-2019 21:00,7464646.52,0.208047811,0.208047811 +25-11-2019 22:00,7463951.166,0.097887299,0.097887299 +25-11-2019 23:00,7463256.511,0.041725398,0.041725398 +26-11-2019 0:00,7462562.553,0.017367104,0.017367104 +26-11-2019 1:00,7461869.294,0.005895227,0.005895227 +26-11-2019 2:00,7461176.733,0.003373126,0.003373126 +26-11-2019 3:00,7460484.872,0.00564409,0.00564409 +26-11-2019 4:00,7459793.71,0.030191487,0.030191487 +26-11-2019 5:00,7459103.248,0.145287604,0.145287604 +26-11-2019 6:00,7458413.485,0.309191777,0.309191777 +26-11-2019 7:00,7457724.424,0.411902941,0.411902941 +26-11-2019 8:00,7457036.063,0.500841613,0.500841613 +26-11-2019 9:00,7456348.403,0.406858458,0.406858458 +26-11-2019 10:00,7455661.445,0.399763152,0.399763152 +26-11-2019 11:00,7454975.189,0.526949166,0.526949166 +26-11-2019 12:00,7454289.635,0.459082528,0.459082528 +26-11-2019 13:00,7453604.784,0.337407953,0.337407953 +26-11-2019 14:00,7452920.635,0.389835063,0.389835063 +26-11-2019 15:00,7452237.19,0.408050689,0.408050689 +26-11-2019 16:00,7451554.449,0.381553925,0.381553925 +26-11-2019 17:00,7450872.411,0.403890727,0.403890727 +26-11-2019 18:00,7450191.078,0.384484601,0.384484601 +26-11-2019 19:00,7449510.45,0.346650247,0.346650247 +26-11-2019 20:00,7448830.526,0.283162723,0.283162723 +26-11-2019 21:00,7448151.309,0.183290527,0.183290527 +26-11-2019 22:00,7447472.796,0.08633041,0.08633041 +26-11-2019 23:00,7446794.99,0.036703686,0.036703686 +27-11-2019 0:00,7446117.891,0.014597955,0.014597955 +27-11-2019 1:00,7445441.498,0.004678352,0.004678352 +27-11-2019 2:00,7444765.813,0.002480742,0.002480742 +27-11-2019 3:00,7444090.834,0.003622753,0.003622753 +27-11-2019 4:00,7443416.564,0.018655552,0.018655552 +27-11-2019 5:00,7442743.002,0.102433387,0.102433387 +27-11-2019 6:00,7442070.149,0.233134481,0.233134481 +27-11-2019 7:00,7441398.004,0.320540446,0.320540446 +27-11-2019 8:00,7440726.569,0.403627281,0.403627281 +27-11-2019 9:00,7440055.843,0.350421175,0.350421175 +27-11-2019 10:00,7439385.827,0.35684165,0.35684165 +27-11-2019 11:00,7438716.521,0.481423891,0.481423891 +27-11-2019 12:00,7438047.926,0.432629375,0.432629375 +27-11-2019 13:00,7437380.042,0.306702013,0.306702013 +27-11-2019 14:00,7436712.87,0.360423292,0.360423292 +27-11-2019 15:00,7436046.409,0.380305916,0.380305916 +27-11-2019 16:00,7435380.659,0.353395171,0.353395171 +27-11-2019 17:00,7434715.623,0.379739068,0.379739068 +27-11-2019 18:00,7434051.299,0.360919674,0.360919674 +27-11-2019 19:00,7433387.688,0.326620199,0.326620199 +27-11-2019 20:00,7432724.79,0.266212927,0.266212927 +27-11-2019 21:00,7432062.606,0.171192145,0.171192145 +27-11-2019 22:00,7431401.136,0.080689679,0.080689679 +27-11-2019 23:00,7430740.38,0.03426153,0.03426153 +28-11-2019 0:00,7430080.339,0.013797836,0.013797836 +28-11-2019 1:00,7429421.014,0.003933998,0.003933998 +28-11-2019 2:00,7428762.403,0.002098989,0.002098989 +28-11-2019 3:00,7428104.508,0.003087696,0.003087696 +28-11-2019 4:00,7427447.33,0.014142568,0.014142568 +28-11-2019 5:00,7426790.868,0.085829049,0.085829049 +28-11-2019 6:00,7426135.122,0.198018527,0.198018527 +28-11-2019 7:00,7425480.094,0.282849601,0.282849601 +28-11-2019 8:00,7424825.783,0.368731147,0.368731147 +28-11-2019 9:00,7424172.19,0.330646837,0.330646837 +28-11-2019 10:00,7423519.315,0.347460091,0.347460091 +28-11-2019 11:00,7422867.158,0.469308444,0.469308444 +28-11-2019 12:00,7422215.72,0.420902368,0.420902368 +28-11-2019 13:00,7421565.001,0.2933919,0.2933919 +28-11-2019 14:00,7420915.002,0.347656466,0.347656466 +28-11-2019 15:00,7420265.722,0.362687829,0.362687829 +28-11-2019 16:00,7419617.163,0.340386639,0.340386639 +28-11-2019 17:00,7418969.324,0.369289036,0.369289036 +28-11-2019 18:00,7418322.206,0.354692498,0.354692498 +28-11-2019 19:00,7417675.809,0.323360626,0.323360626 +28-11-2019 20:00,7417030.133,0.266136933,0.266136933 +28-11-2019 21:00,7416385.179,0.174083749,0.174083749 +28-11-2019 22:00,7415740.947,0.081902475,0.081902475 +28-11-2019 23:00,7415097.438,0.035653244,0.035653244 +29-11-2019 0:00,7414454.651,0.014635789,0.014635789 +29-11-2019 1:00,7413812.588,0.004536975,0.004536975 +29-11-2019 2:00,7413171.248,0.002464863,0.002464863 +29-11-2019 3:00,7412530.631,0.003800969,0.003800969 +29-11-2019 4:00,7411890.739,0.018775021,0.018775021 +29-11-2019 5:00,7411251.571,0.111705331,0.111705331 +29-11-2019 6:00,7410613.128,0.250372801,0.250372801 +29-11-2019 7:00,7409975.41,0.345014758,0.345014758 +29-11-2019 8:00,7409338.417,0.414870903,0.414870903 +29-11-2019 9:00,7408702.15,0.361890802,0.361890802 +29-11-2019 10:00,7408066.61,0.347781982,0.347781982 +29-11-2019 11:00,7407431.795,0.479578952,0.479578952 +29-11-2019 12:00,7406797.707,0.448420071,0.448420071 +29-11-2019 13:00,7406164.347,0.225850239,0.225850239 +29-11-2019 14:00,7405531.713,0.323360965,0.323360965 +29-11-2019 15:00,7404899.808,0.407322315,0.407322315 +29-11-2019 16:00,7404268.63,0.383200094,0.383200094 +29-11-2019 17:00,7403638.181,0.410351903,0.410351903 +29-11-2019 18:00,7403008.46,0.411877345,0.411877345 +29-11-2019 19:00,7402379.468,0.38541413,0.38541413 +29-11-2019 20:00,7401751.206,0.321445036,0.321445036 +29-11-2019 21:00,7401123.673,0.208603473,0.208603473 +29-11-2019 22:00,7400496.871,0.101043979,0.101043979 +29-11-2019 23:00,7399870.798,0.044450607,0.044450607 +30-11-2019 0:00,7399245.456,0.018656163,0.018656163 +30-11-2019 1:00,7398620.845,0.006389188,0.006389188 +30-11-2019 2:00,7397996.966,0.00373474,0.00373474 +30-11-2019 3:00,7397373.817,0.007743657,0.007743657 +30-11-2019 4:00,7396751.401,0.037984693,0.037984693 +30-11-2019 5:00,7396129.717,0.179875248,0.179875248 +30-11-2019 6:00,7395508.766,0.372827204,0.372827204 +30-11-2019 7:00,7394888.547,0.494168365,0.494168365 +30-11-2019 8:00,7394269.061,0.565788433,0.565788433 +30-11-2019 9:00,7393650.309,0.377059866,0.377059866 +30-11-2019 10:00,7393032.291,0.319901858,0.319901858 +30-11-2019 11:00,7392415.007,0.42337734,0.42337734 +30-11-2019 12:00,7391798.457,0.380911566,0.380911566 +30-11-2019 13:00,7391182.642,0.226023951,0.226023951 +30-11-2019 14:00,7390567.562,0.365452167,0.365452167 +30-11-2019 15:00,7389953.218,0.454322069,0.454322069 +30-11-2019 16:00,7389339.609,0.452321179,0.452321179 +30-11-2019 17:00,7388726.736,0.487946963,0.487946963 +30-11-2019 18:00,7388114.6,0.47149935,0.47149935 +30-11-2019 19:00,7387503.2,0.435165624,0.435165624 +30-11-2019 20:00,7386892.537,0.360208718,0.360208718 +30-11-2019 21:00,7386282.612,0.236938684,0.236938684 +30-11-2019 22:00,7385673.424,0.113468439,0.113468439 +30-11-2019 23:00,7385064.974,0.050062116,0.050062116 +01-12-2019 0:00,7384457.262,0.021018337,0.021018337 +01-12-2019 1:00,7383850.288,0.008241001,0.008241001 +01-12-2019 2:00,7383244.054,0.00649728,0.00649728 +01-12-2019 3:00,7382638.559,0.013482556,0.013482556 +01-12-2019 4:00,7382033.803,0.053037563,0.053037563 +01-12-2019 5:00,7381429.787,0.222555673,0.222555673 +01-12-2019 6:00,7380826.511,0.453108358,0.453108358 +01-12-2019 7:00,7380223.975,0.588908891,0.588908891 +01-12-2019 8:00,7379622.18,0.69030671,0.69030671 +01-12-2019 9:00,7379021.126,0.543068021,0.543068021 +01-12-2019 10:00,7378420.814,0.509964492,0.509964492 +01-12-2019 11:00,7377821.243,0.622464156,0.622464156 +01-12-2019 12:00,7377222.414,0.55327786,0.55327786 +01-12-2019 13:00,7376624.327,0.440876589,0.440876589 +01-12-2019 14:00,7376026.983,0.489263395,0.489263395 +01-12-2019 15:00,7375430.382,0.505356212,0.505356212 +01-12-2019 16:00,7374834.523,0.493945018,0.493945018 +01-12-2019 17:00,7374239.409,0.526836112,0.526836112 +01-12-2019 18:00,7373645.038,0.498304558,0.498304558 +01-12-2019 19:00,7373051.411,0.453295679,0.453295679 +01-12-2019 20:00,7372458.529,0.374539294,0.374539294 +01-12-2019 21:00,7371866.391,0.249675606,0.249675606 +01-12-2019 22:00,7371274.998,0.119926627,0.119926627 +01-12-2019 23:00,7370684.351,0.053949384,0.053949384 +02-12-2019 0:00,7370094.449,0.022996336,0.022996336 +02-12-2019 1:00,7369505.294,0.010378086,0.010378086 +02-12-2019 2:00,7368916.884,0.009269002,0.009269002 +02-12-2019 3:00,7368329.221,0.019349503,0.019349503 +02-12-2019 4:00,7367742.305,0.066206469,0.066206469 +02-12-2019 5:00,7367156.135,0.259238008,0.259238008 +02-12-2019 6:00,7366570.714,0.506187616,0.506187616 +02-12-2019 7:00,7365986.04,0.634539838,0.634539838 +02-12-2019 8:00,7365402.114,0.723796295,0.723796295 +02-12-2019 9:00,7364818.936,0.468753028,0.468753028 +02-12-2019 10:00,7364236.507,0.387325842,0.387325842 +02-12-2019 11:00,7363654.827,0.578021796,0.578021796 +02-12-2019 12:00,7363073.897,0.519231872,0.519231872 +02-12-2019 13:00,7362493.715,0.394203696,0.394203696 +02-12-2019 14:00,7361914.284,0.470495757,0.470495757 +02-12-2019 15:00,7361335.602,0.484236626,0.484236626 +02-12-2019 16:00,7360757.672,0.460178111,0.460178111 +02-12-2019 17:00,7360180.491,0.483882586,0.483882586 +02-12-2019 18:00,7359604.062,0.465516361,0.465516361 +02-12-2019 19:00,7359028.384,0.421218644,0.421218644 +02-12-2019 20:00,7358453.458,0.346149055,0.346149055 +02-12-2019 21:00,7357879.284,0.223787351,0.223787351 +02-12-2019 22:00,7357305.862,0.105744159,0.105744159 +02-12-2019 23:00,7356733.192,0.04540366,0.04540366 +03-12-2019 0:00,7356161.275,0.019013437,0.019013437 +03-12-2019 1:00,7355590.112,0.006816568,0.006816568 +03-12-2019 2:00,7355019.701,0.004962245,0.004962245 +03-12-2019 3:00,7354450.045,0.008794033,0.008794033 +03-12-2019 4:00,7353881.142,0.043767738,0.043767738 +03-12-2019 5:00,7353312.993,0.191862816,0.191862816 +03-12-2019 6:00,7352745.599,0.414007038,0.414007038 +03-12-2019 7:00,7352178.96,0.540376659,0.540376659 +03-12-2019 8:00,7351613.076,0.616233542,0.616233542 +03-12-2019 9:00,7351047.948,0.469421011,0.469421011 +03-12-2019 10:00,7350483.575,0.367150277,0.367150277 +03-12-2019 11:00,7349919.958,0.507242306,0.507242306 +03-12-2019 12:00,7349357.098,0.427950163,0.427950163 +03-12-2019 13:00,7348794.994,0.29199804,0.29199804 +03-12-2019 14:00,7348233.647,0.446819126,0.446819126 +03-12-2019 15:00,7347673.057,0.481488493,0.481488493 +03-12-2019 16:00,7347113.225,0.460667124,0.460667124 +03-12-2019 17:00,7346554.15,0.488656259,0.488656259 +03-12-2019 18:00,7345995.833,0.470210572,0.470210572 +03-12-2019 19:00,7345438.275,0.432621697,0.432621697 +03-12-2019 20:00,7344881.475,0.358619964,0.358619964 +03-12-2019 21:00,7344325.435,0.232957635,0.232957635 +03-12-2019 22:00,7343770.153,0.113037552,0.113037552 +03-12-2019 23:00,7343215.631,0.049166931,0.049166931 +04-12-2019 0:00,7342661.868,0.021630806,0.021630806 +04-12-2019 1:00,7342108.866,0.008555163,0.008555163 +04-12-2019 2:00,7341556.624,0.006959087,0.006959087 +04-12-2019 3:00,7341005.142,0.014433576,0.014433576 +04-12-2019 4:00,7340454.422,0.055951958,0.055951958 +04-12-2019 5:00,7339904.462,0.231131214,0.231131214 +04-12-2019 6:00,7339355.264,0.468949733,0.468949733 +04-12-2019 7:00,7338806.828,0.60974841,0.60974841 +04-12-2019 8:00,7338259.154,0.689067957,0.689067957 +04-12-2019 9:00,7337712.242,0.439434777,0.439434777 +04-12-2019 10:00,7337166.092,0.381612335,0.381612335 +04-12-2019 11:00,7336620.706,0.529114364,0.529114364 +04-12-2019 12:00,7336076.083,0.416868617,0.416868617 +04-12-2019 13:00,7335532.223,0.26935936,0.26935936 +04-12-2019 14:00,7334989.126,0.441881194,0.441881194 +04-12-2019 15:00,7334446.794,0.51327707,0.51327707 +04-12-2019 16:00,7333905.226,0.49279605,0.49279605 +04-12-2019 17:00,7333364.423,0.530574798,0.530574798 +04-12-2019 18:00,7332824.384,0.515066208,0.515066208 +04-12-2019 19:00,7332285.11,0.47506113,0.47506113 +04-12-2019 20:00,7331746.602,0.394010712,0.394010712 +04-12-2019 21:00,7331208.86,0.256595995,0.256595995 +04-12-2019 22:00,7330671.883,0.122618873,0.122618873 +04-12-2019 23:00,7330135.672,0.054890029,0.054890029 +05-12-2019 0:00,7329600.229,0.023612378,0.023612378 +05-12-2019 1:00,7329065.551,0.0111336,0.0111336 +05-12-2019 2:00,7328531.641,0.010351122,0.010351122 +05-12-2019 3:00,7327998.498,0.021364053,0.021364053 +05-12-2019 4:00,7327466.123,0.070485215,0.070485215 +05-12-2019 5:00,7326934.515,0.267840239,0.267840239 +05-12-2019 6:00,7326403.676,0.52142113,0.52142113 +05-12-2019 7:00,7325873.605,0.669654659,0.669654659 +05-12-2019 8:00,7325344.303,0.78136912,0.78136912 +05-12-2019 9:00,7324815.77,0.622518084,0.622518084 +05-12-2019 10:00,7324288.005,0.592613633,0.592613633 +05-12-2019 11:00,7323761.011,0.701134111,0.701134111 +05-12-2019 12:00,7323234.786,0.624897684,0.624897684 +05-12-2019 13:00,7322709.331,0.491166545,0.491166545 +05-12-2019 14:00,7322184.646,0.529664316,0.529664316 +05-12-2019 15:00,7321660.732,0.535292127,0.535292127 +05-12-2019 16:00,7321137.589,0.501516057,0.501516057 +05-12-2019 17:00,7320615.217,0.528320267,0.528320267 +05-12-2019 18:00,7320093.617,0.507515417,0.507515417 +05-12-2019 19:00,7319572.788,0.464142213,0.464142213 +05-12-2019 20:00,7319052.73,0.385231647,0.385231647 +05-12-2019 21:00,7318533.445,0.24822238,0.24822238 +05-12-2019 22:00,7318014.933,0.116388228,0.116388228 +05-12-2019 23:00,7317497.193,0.051270231,0.051270231 +06-12-2019 0:00,7316980.226,0.021750029,0.021750029 +06-12-2019 1:00,7316464.033,0.009347827,0.009347827 +06-12-2019 2:00,7315948.613,0.008269546,0.008269546 +06-12-2019 3:00,7315433.966,0.016221446,0.016221446 +06-12-2019 4:00,7314920.094,0.057947041,0.057947041 +06-12-2019 5:00,7314406.996,0.23088157,0.23088157 +06-12-2019 6:00,7313894.673,0.462547677,0.462547677 +06-12-2019 7:00,7313383.124,0.596086922,0.596086922 +06-12-2019 8:00,7312872.351,0.702963583,0.702963583 +06-12-2019 9:00,7312362.353,0.564871487,0.564871487 +06-12-2019 10:00,7311853.13,0.528052184,0.528052184 +06-12-2019 11:00,7311344.684,0.644394443,0.644394443 +06-12-2019 12:00,7310837.013,0.564658514,0.564658514 +06-12-2019 13:00,7310330.119,0.454242347,0.454242347 +06-12-2019 14:00,7309824.002,0.491320777,0.491320777 +06-12-2019 15:00,7309318.661,0.497048172,0.497048172 +06-12-2019 16:00,7308814.098,0.463757221,0.463757221 +06-12-2019 17:00,7308310.312,0.484148837,0.484148837 +06-12-2019 18:00,7307807.304,0.46177506,0.46177506 +06-12-2019 19:00,7307305.074,0.42022985,0.42022985 +06-12-2019 20:00,7306803.622,0.337394559,0.337394559 +06-12-2019 21:00,7306302.948,0.219910656,0.219910656 +06-12-2019 22:00,7305803.054,0.1036087,0.1036087 +06-12-2019 23:00,7305303.938,0.043999539,0.043999539 +07-12-2019 0:00,7304805.601,0.018452361,0.018452361 +07-12-2019 1:00,7304308.044,0.006475814,0.006475814 +07-12-2019 2:00,7303811.267,0.004378849,0.004378849 +07-12-2019 3:00,7303315.27,0.007055687,0.007055687 +07-12-2019 4:00,7302820.053,0.037341225,0.037341225 +07-12-2019 5:00,7302325.617,0.164632726,0.164632726 +07-12-2019 6:00,7301831.961,0.350713021,0.350713021 +07-12-2019 7:00,7301339.086,0.46484216,0.46484216 +07-12-2019 8:00,7300846.993,0.563629293,0.563629293 +07-12-2019 9:00,7300355.681,0.469201087,0.469201087 +07-12-2019 10:00,7299865.151,0.453667891,0.453667891 +07-12-2019 11:00,7299375.403,0.577139501,0.577139501 +07-12-2019 12:00,7298886.438,0.510599242,0.510599242 +07-12-2019 13:00,7298398.255,0.398367175,0.398367175 +07-12-2019 14:00,7297910.854,0.438839962,0.438839962 +07-12-2019 15:00,7297424.237,0.447793076,0.447793076 +07-12-2019 16:00,7296938.403,0.418744392,0.418744392 +07-12-2019 17:00,7296453.353,0.442287217,0.442287217 +07-12-2019 18:00,7295969.086,0.422229869,0.422229869 +07-12-2019 19:00,7295485.604,0.383997203,0.383997203 +07-12-2019 20:00,7295002.906,0.316171563,0.316171563 +07-12-2019 21:00,7294520.992,0.202403234,0.202403234 +07-12-2019 22:00,7294039.863,0.094726137,0.094726137 +07-12-2019 23:00,7293559.52,0.040261638,0.040261638 +08-12-2019 0:00,7293079.961,0.016550575,0.016550575 +08-12-2019 1:00,7292601.188,0.005598841,0.005598841 +08-12-2019 2:00,7292123.201,0.003167975,0.003167975 +08-12-2019 3:00,7291646,0.004845921,0.004845921 +08-12-2019 4:00,7291169.585,0.026866534,0.026866534 +08-12-2019 5:00,7290693.957,0.133905056,0.133905056 +08-12-2019 6:00,7290219.115,0.291899454,0.291899454 +08-12-2019 7:00,7289745.06,0.394735436,0.394735436 +08-12-2019 8:00,7289271.793,0.491759502,0.491759502 +08-12-2019 9:00,7288799.313,0.416033,0.416033 +08-12-2019 10:00,7288327.621,0.396177129,0.396177129 +08-12-2019 11:00,7287856.717,0.537201356,0.537201356 +08-12-2019 12:00,7287386.601,0.462864285,0.462864285 +08-12-2019 13:00,7286917.274,0.310237787,0.310237787 +08-12-2019 14:00,7286448.735,0.391411386,0.391411386 +08-12-2019 15:00,7285980.985,0.414240114,0.414240114 +08-12-2019 16:00,7285514.025,0.388056291,0.388056291 +08-12-2019 17:00,7285047.854,0.411298597,0.411298597 +08-12-2019 18:00,7284582.472,0.394591444,0.394591444 +08-12-2019 19:00,7284117.881,0.360732491,0.360732491 +08-12-2019 20:00,7283654.079,0.299619806,0.299619806 +08-12-2019 21:00,7283191.068,0.193394657,0.193394657 +08-12-2019 22:00,7282728.848,0.092186871,0.092186871 +08-12-2019 23:00,7282267.419,0.039993871,0.039993871 +09-12-2019 0:00,7281806.78,0.016219979,0.016219979 +09-12-2019 1:00,7281346.933,0.005365636,0.005365636 +09-12-2019 2:00,7280887.878,0.002995424,0.002995424 +09-12-2019 3:00,7280429.614,0.004530346,0.004530346 +09-12-2019 4:00,7279972.142,0.025100002,0.025100002 +09-12-2019 5:00,7279515.463,0.132026831,0.132026831 +09-12-2019 6:00,7279059.576,0.290559533,0.290559533 +09-12-2019 7:00,7278604.482,0.400261996,0.400261996 +09-12-2019 8:00,7278150.181,0.480749613,0.480749613 +09-12-2019 9:00,7277696.673,0.401650534,0.401650534 +09-12-2019 10:00,7277243.959,0.402632726,0.402632726 +09-12-2019 11:00,7276792.038,0.546914409,0.546914409 +09-12-2019 12:00,7276340.911,0.487019918,0.487019918 +09-12-2019 13:00,7275890.579,0.380190423,0.380190423 +09-12-2019 14:00,7275441.04,0.421887063,0.421887063 +09-12-2019 15:00,7274992.297,0.423779896,0.423779896 +09-12-2019 16:00,7274544.348,0.397596544,0.397596544 +09-12-2019 17:00,7274097.194,0.423709599,0.423709599 +09-12-2019 18:00,7273650.836,0.407377238,0.407377238 +09-12-2019 19:00,7273205.273,0.376491511,0.376491511 +09-12-2019 20:00,7272760.506,0.314665371,0.314665371 +09-12-2019 21:00,7272316.534,0.201033687,0.201033687 +09-12-2019 22:00,7271873.359,0.096106426,0.096106426 +09-12-2019 23:00,7271430.981,0.041215236,0.041215236 +10-12-2019 0:00,7270989.399,0.017150613,0.017150613 +10-12-2019 1:00,7270548.614,0.005918449,0.005918449 +10-12-2019 2:00,7270108.627,0.003340378,0.003340378 +10-12-2019 3:00,7269669.436,0.005582779,0.005582779 +10-12-2019 4:00,7269231.043,0.030891016,0.030891016 +10-12-2019 5:00,7268793.448,0.153980692,0.153980692 +10-12-2019 6:00,7268356.651,0.33106977,0.33106977 +10-12-2019 7:00,7267920.653,0.446321824,0.446321824 +10-12-2019 8:00,7267485.452,0.550297561,0.550297561 +10-12-2019 9:00,7267051.051,0.444359679,0.444359679 +10-12-2019 10:00,7266617.448,0.449879869,0.449879869 +10-12-2019 11:00,7266184.645,0.571076085,0.571076085 +10-12-2019 12:00,7265752.641,0.510692188,0.510692188 +10-12-2019 13:00,7265321.436,0.398810293,0.398810293 +10-12-2019 14:00,7264891.031,0.436935151,0.436935151 +10-12-2019 15:00,7264461.427,0.441981113,0.441981113 +10-12-2019 16:00,7264032.623,0.4144567,0.4144567 +10-12-2019 17:00,7263604.619,0.440673833,0.440673833 +10-12-2019 18:00,7263177.415,0.420508431,0.420508431 +10-12-2019 19:00,7262751.013,0.379775411,0.379775411 +10-12-2019 20:00,7262325.412,0.310810199,0.310810199 +10-12-2019 21:00,7261900.612,0.199496761,0.199496761 +10-12-2019 22:00,7261476.614,0.094014025,0.094014025 +10-12-2019 23:00,7261053.418,0.040079195,0.040079195 +11-12-2019 0:00,7260631.023,0.01635365,0.01635365 +11-12-2019 1:00,7260209.431,0.005636454,0.005636454 +11-12-2019 2:00,7259788.642,0.003170718,0.003170718 +11-12-2019 3:00,7259368.655,0.004941422,0.004941422 +11-12-2019 4:00,7258949.471,0.027106067,0.027106067 +11-12-2019 5:00,7258531.09,0.136710206,0.136710206 +11-12-2019 6:00,7258113.512,0.296290511,0.296290511 +11-12-2019 7:00,7257696.738,0.402312523,0.402312523 +11-12-2019 8:00,7257280.767,0.502591327,0.502591327 +11-12-2019 9:00,7256865.601,0.431850775,0.431850775 +11-12-2019 10:00,7256451.238,0.430258889,0.430258889 +11-12-2019 11:00,7256037.68,0.556559607,0.556559607 +11-12-2019 12:00,7255624.927,0.498050453,0.498050453 +11-12-2019 13:00,7255212.979,0.387323077,0.387323077 +11-12-2019 14:00,7254801.835,0.430183634,0.430183634 +11-12-2019 15:00,7254391.497,0.438396158,0.438396158 +11-12-2019 16:00,7253981.964,0.411801631,0.411801631 +11-12-2019 17:00,7253573.237,0.438182653,0.438182653 +11-12-2019 18:00,7253165.315,0.423732533,0.423732533 +11-12-2019 19:00,7252758.2,0.386277393,0.386277393 +11-12-2019 20:00,7252351.891,0.315080471,0.315080471 +11-12-2019 21:00,7251946.389,0.204627131,0.204627131 +11-12-2019 22:00,7251541.693,0.096332545,0.096332545 +11-12-2019 23:00,7251137.804,0.041801607,0.041801607 +12-12-2019 0:00,7250734.722,0.017498644,0.017498644 +12-12-2019 1:00,7250332.448,0.005980573,0.005980573 +12-12-2019 2:00,7249930.981,0.003403663,0.003403663 +12-12-2019 3:00,7249530.322,0.005833291,0.005833291 +12-12-2019 4:00,7249130.471,0.031521946,0.031521946 +12-12-2019 5:00,7248731.428,0.154288835,0.154288835 +12-12-2019 6:00,7248333.193,0.331678949,0.331678949 +12-12-2019 7:00,7247935.767,0.449025207,0.449025207 +12-12-2019 8:00,7247539.149,0.541686198,0.541686198 +12-12-2019 9:00,7247143.341,0.375376322,0.375376322 +12-12-2019 10:00,7246748.342,0.348652204,0.348652204 +12-12-2019 11:00,7246354.152,0.495897992,0.495897992 +12-12-2019 12:00,7245960.772,0.404100917,0.404100917 +12-12-2019 13:00,7245568.201,0.268895147,0.268895147 +12-12-2019 14:00,7245176.441,0.429397855,0.429397855 +12-12-2019 15:00,7244785.49,0.450066929,0.450066929 +12-12-2019 16:00,7244395.35,0.429278612,0.429278612 +12-12-2019 17:00,7244006.021,0.455077351,0.455077351 +12-12-2019 18:00,7243617.502,0.43678383,0.43678383 +12-12-2019 19:00,7243229.795,0.396436857,0.396436857 +12-12-2019 20:00,7242842.898,0.325694351,0.325694351 +12-12-2019 21:00,7242456.813,0.210868093,0.210868093 +12-12-2019 22:00,7242071.54,0.100824016,0.100824016 +12-12-2019 23:00,7241687.078,0.043718695,0.043718695 +13-12-2019 0:00,7241303.429,0.018400109,0.018400109 +13-12-2019 1:00,7240920.591,0.006325755,0.006325755 +13-12-2019 2:00,7240538.566,0.003856543,0.003856543 +13-12-2019 3:00,7240157.353,0.007031295,0.007031295 +13-12-2019 4:00,7239776.953,0.036274485,0.036274485 +13-12-2019 5:00,7239397.367,0.169564763,0.169564763 +13-12-2019 6:00,7239018.593,0.359048103,0.359048103 +13-12-2019 7:00,7238640.633,0.479836829,0.479836829 +13-12-2019 8:00,7238263.486,0.590078668,0.590078668 +13-12-2019 9:00,7237887.153,0.499174287,0.499174287 +13-12-2019 10:00,7237511.634,0.481533161,0.481533161 +13-12-2019 11:00,7237136.929,0.602224088,0.602224088 +13-12-2019 12:00,7236763.038,0.540504801,0.540504801 +13-12-2019 13:00,7236389.962,0.43190607,0.43190607 +13-12-2019 14:00,7236017.7,0.463891333,0.463891333 +13-12-2019 15:00,7235646.254,0.46105953,0.46105953 +13-12-2019 16:00,7235275.622,0.426732641,0.426732641 +13-12-2019 17:00,7234905.806,0.448278951,0.448278951 +13-12-2019 18:00,7234536.805,0.428771166,0.428771166 +13-12-2019 19:00,7234168.62,0.392686742,0.392686742 +13-12-2019 20:00,7233801.251,0.320496046,0.320496046 +13-12-2019 21:00,7233434.698,0.208794087,0.208794087 +13-12-2019 22:00,7233068.961,0.099315981,0.099315981 +13-12-2019 23:00,7232704.04,0.042967703,0.042967703 +14-12-2019 0:00,7232339.936,0.018057672,0.018057672 +14-12-2019 1:00,7231976.649,0.006195464,0.006195464 +14-12-2019 2:00,7231614.179,0.003712556,0.003712556 +14-12-2019 3:00,7231252.526,0.00652807,0.00652807 +14-12-2019 4:00,7230891.69,0.034517533,0.034517533 +14-12-2019 5:00,7230531.672,0.161790272,0.161790272 +14-12-2019 6:00,7230172.472,0.342027206,0.342027206 +14-12-2019 7:00,7229814.089,0.451634974,0.451634974 +14-12-2019 8:00,7229456.525,0.553512216,0.553512216 +14-12-2019 9:00,7229099.779,0.447584548,0.447584548 +14-12-2019 10:00,7228743.851,0.404055499,0.404055499 +14-12-2019 11:00,7228388.742,0.568042206,0.568042206 +14-12-2019 12:00,7228034.452,0.510925245,0.510925245 +14-12-2019 13:00,7227680.98,0.414879539,0.414879539 +14-12-2019 14:00,7227328.328,0.441338769,0.441338769 +14-12-2019 15:00,7226976.496,0.456884784,0.456884784 +14-12-2019 16:00,7226625.482,0.42367515,0.42367515 +14-12-2019 17:00,7226275.289,0.446140554,0.446140554 +14-12-2019 18:00,7225925.915,0.431019159,0.431019159 +14-12-2019 19:00,7225577.362,0.393855934,0.393855934 +14-12-2019 20:00,7225229.629,0.327546638,0.327546638 +14-12-2019 21:00,7224882.716,0.211674225,0.211674225 +14-12-2019 22:00,7224536.624,0.100165065,0.100165065 +14-12-2019 23:00,7224191.353,0.043430379,0.043430379 +15-12-2019 0:00,7223846.902,0.017960845,0.017960845 +15-12-2019 1:00,7223503.273,0.006028152,0.006028152 +15-12-2019 2:00,7223160.465,0.003513882,0.003513882 +15-12-2019 3:00,7222818.479,0.005991145,0.005991145 +15-12-2019 4:00,7222477.314,0.031201344,0.031201344 +15-12-2019 5:00,7222136.972,0.147969529,0.147969529 +15-12-2019 6:00,7221797.451,0.313603994,0.313603994 +15-12-2019 7:00,7221458.752,0.422049241,0.422049241 +15-12-2019 8:00,7221120.876,0.507923638,0.507923638 +15-12-2019 9:00,7220783.823,0.361907626,0.361907626 +15-12-2019 10:00,7220447.592,0.391075977,0.391075977 +15-12-2019 11:00,7220112.184,0.545194295,0.545194295 +15-12-2019 12:00,7219777.599,0.497625212,0.497625212 +15-12-2019 13:00,7219443.837,0.386942741,0.386942741 +15-12-2019 14:00,7219110.899,0.428415874,0.428415874 +15-12-2019 15:00,7218778.785,0.433199674,0.433199674 +15-12-2019 16:00,7218447.494,0.408537813,0.408537813 +15-12-2019 17:00,7218117.027,0.436608213,0.436608213 +15-12-2019 18:00,7217787.384,0.419140083,0.419140083 +15-12-2019 19:00,7217458.566,0.381594288,0.381594288 +15-12-2019 20:00,7217130.571,0.315579543,0.315579543 +15-12-2019 21:00,7216803.402,0.203779583,0.203779583 +15-12-2019 22:00,7216477.057,0.097006961,0.097006961 +15-12-2019 23:00,7216151.538,0.041844616,0.041844616 +16-12-2019 0:00,7215826.843,0.017740222,0.017740222 +16-12-2019 1:00,7215502.974,0.006056287,0.006056287 +16-12-2019 2:00,7215179.93,0.003454752,0.003454752 +16-12-2019 3:00,7214857.711,0.005956416,0.005956416 +16-12-2019 4:00,7214536.319,0.03162706,0.03162706 +16-12-2019 5:00,7214215.752,0.151457945,0.151457945 +16-12-2019 6:00,7213896.012,0.319422748,0.319422748 +16-12-2019 7:00,7213577.098,0.423146737,0.423146737 +16-12-2019 8:00,7213259.01,0.520027443,0.520027443 +16-12-2019 9:00,7212941.749,0.441292741,0.441292741 +16-12-2019 10:00,7212625.315,0.432098688,0.432098688 +16-12-2019 11:00,7212309.707,0.555028046,0.555028046 +16-12-2019 12:00,7211994.927,0.497496788,0.497496788 +16-12-2019 13:00,7211680.974,0.389425398,0.389425398 +16-12-2019 14:00,7211367.848,0.423154681,0.423154681 +16-12-2019 15:00,7211055.55,0.430953756,0.430953756 +16-12-2019 16:00,7210744.08,0.400115439,0.400115439 +16-12-2019 17:00,7210433.437,0.424538267,0.424538267 +16-12-2019 18:00,7210123.623,0.407241672,0.407241672 +16-12-2019 19:00,7209814.637,0.371015887,0.371015887 +16-12-2019 20:00,7209506.479,0.304417159,0.304417159 +16-12-2019 21:00,7209199.15,0.196321703,0.196321703 +16-12-2019 22:00,7208892.649,0.092839828,0.092839828 +16-12-2019 23:00,7208586.977,0.040432696,0.040432696 +17-12-2019 0:00,7208282.135,0.016675144,0.016675144 +17-12-2019 1:00,7207978.121,0.005760079,0.005760079 +17-12-2019 2:00,7207674.937,0.003167476,0.003167476 +17-12-2019 3:00,7207372.582,0.004834923,0.004834923 +17-12-2019 4:00,7207071.057,0.026185081,0.026185081 +17-12-2019 5:00,7206770.362,0.132116692,0.132116692 +17-12-2019 6:00,7206470.496,0.282944221,0.282944221 +17-12-2019 7:00,7206171.461,0.372861306,0.372861306 +17-12-2019 8:00,7205873.256,0.458137207,0.458137207 +17-12-2019 9:00,7205575.881,0.390776365,0.390776365 +17-12-2019 10:00,7205279.337,0.385254885,0.385254885 +17-12-2019 11:00,7204983.624,0.502746521,0.502746521 +17-12-2019 12:00,7204688.741,0.412387564,0.412387564 +17-12-2019 13:00,7204394.69,0.324947901,0.324947901 +17-12-2019 14:00,7204101.469,0.357004662,0.357004662 +17-12-2019 15:00,7203809.08,0.365877028,0.365877028 +17-12-2019 16:00,7203517.523,0.337310454,0.337310454 +17-12-2019 17:00,7203226.797,0.375510114,0.375510114 +17-12-2019 18:00,7202936.903,0.36601843,0.36601843 +17-12-2019 19:00,7202647.84,0.336349632,0.336349632 +17-12-2019 20:00,7202359.61,0.286225794,0.286225794 +17-12-2019 21:00,7202072.212,0.186079988,0.186079988 +17-12-2019 22:00,7201785.647,0.088435032,0.088435032 +17-12-2019 23:00,7201499.914,0.03794842,0.03794842 +18-12-2019 0:00,7201215.013,0.015254182,0.015254182 +18-12-2019 1:00,7200930.945,0.004917561,0.004917561 +18-12-2019 2:00,7200647.711,0.002686304,0.002686304 +18-12-2019 3:00,7200365.309,0.003936895,0.003936895 +18-12-2019 4:00,7200083.741,0.020614895,0.020614895 +18-12-2019 5:00,7199803.006,0.115199469,0.115199469 +18-12-2019 6:00,7199523.104,0.256276829,0.256276829 +18-12-2019 7:00,7199244.036,0.352126465,0.352126465 +18-12-2019 8:00,7198965.802,0.438929469,0.438929469 +18-12-2019 9:00,7198688.402,0.396724519,0.396724519 +18-12-2019 10:00,7198411.836,0.385887243,0.385887243 +18-12-2019 11:00,7198136.105,0.51138121,0.51138121 +18-12-2019 12:00,7197861.207,0.453469561,0.453469561 +18-12-2019 13:00,7197587.144,0.354615228,0.354615228 +18-12-2019 14:00,7197313.916,0.400223148,0.400223148 +18-12-2019 15:00,7197041.523,0.410013252,0.410013252 +18-12-2019 16:00,7196769.965,0.389389735,0.389389735 +18-12-2019 17:00,7196499.241,0.414064891,0.414064891 +18-12-2019 18:00,7196229.353,0.392458074,0.392458074 +18-12-2019 19:00,7195960.301,0.3548289,0.3548289 +18-12-2019 20:00,7195692.083,0.29120409,0.29120409 +18-12-2019 21:00,7195424.702,0.188390534,0.188390534 +18-12-2019 22:00,7195158.156,0.08940683,0.08940683 +18-12-2019 23:00,7194892.446,0.038467253,0.038467253 +19-12-2019 0:00,7194627.572,0.015193093,0.015193093 +19-12-2019 1:00,7194363.535,0.004863458,0.004863458 +19-12-2019 2:00,7194100.334,0.002668451,0.002668451 +19-12-2019 3:00,7193837.969,0.003886763,0.003886763 +19-12-2019 4:00,7193576.44,0.020057057,0.020057057 +19-12-2019 5:00,7193315.749,0.109833579,0.109833579 +19-12-2019 6:00,7193055.894,0.243006438,0.243006438 +19-12-2019 7:00,7192796.877,0.331930992,0.331930992 +19-12-2019 8:00,7192538.696,0.419331421,0.419331421 +19-12-2019 9:00,7192281.353,0.366575985,0.366575985 +19-12-2019 10:00,7192024.847,0.366527909,0.366527909 +19-12-2019 11:00,7191769.179,0.483211778,0.483211778 +19-12-2019 12:00,7191514.348,0.431687614,0.431687614 +19-12-2019 13:00,7191260.355,0.31605282,0.31605282 +19-12-2019 14:00,7191007.2,0.351133522,0.351133522 +19-12-2019 15:00,7190754.883,0.355103716,0.355103716 +19-12-2019 16:00,7190503.405,0.332391603,0.332391603 +19-12-2019 17:00,7190252.764,0.357735728,0.357735728 +19-12-2019 18:00,7190002.962,0.339351322,0.339351322 +19-12-2019 19:00,7189753.999,0.305156175,0.305156175 +19-12-2019 20:00,7189505.874,0.249553902,0.249553902 +19-12-2019 21:00,7189258.588,0.163322296,0.163322296 +19-12-2019 22:00,7189012.141,0.077782832,0.077782832 +19-12-2019 23:00,7188766.533,0.033120808,0.033120808 +20-12-2019 0:00,7188521.765,0.013299217,0.013299217 +20-12-2019 1:00,7188277.835,0.003547624,0.003547624 +20-12-2019 2:00,7188034.746,0.001842969,0.001842969 +20-12-2019 3:00,7187792.495,0.002906791,0.002906791 +20-12-2019 4:00,7187551.085,0.012103534,0.012103534 +20-12-2019 5:00,7187310.514,0.076004411,0.076004411 +20-12-2019 6:00,7187070.783,0.173015698,0.173015698 +20-12-2019 7:00,7186831.892,0.247118007,0.247118007 +20-12-2019 8:00,7186593.842,0.334365405,0.334365405 +20-12-2019 9:00,7186356.632,0.316922351,0.316922351 +20-12-2019 10:00,7186120.262,0.337991643,0.337991643 +20-12-2019 11:00,7185884.733,0.452784359,0.452784359 +20-12-2019 12:00,7185650.044,0.414571964,0.414571964 +20-12-2019 13:00,7185416.197,0.289472449,0.289472449 +20-12-2019 14:00,7185183.19,0.333261316,0.333261316 +20-12-2019 15:00,7184951.024,0.343549188,0.343549188 +20-12-2019 16:00,7184719.699,0.32133405,0.32133405 +20-12-2019 17:00,7184489.216,0.346741702,0.346741702 +20-12-2019 18:00,7184259.574,0.335552856,0.335552856 +20-12-2019 19:00,7184030.774,0.307621069,0.307621069 +20-12-2019 20:00,7183802.815,0.254094674,0.254094674 +20-12-2019 21:00,7183575.698,0.164611164,0.164611164 +20-12-2019 22:00,7183349.423,0.077729425,0.077729425 +20-12-2019 23:00,7183123.99,0.033776544,0.033776544 +21-12-2019 0:00,7182899.399,0.013659065,0.013659065 +21-12-2019 1:00,7182675.651,0.003755589,0.003755589 +21-12-2019 2:00,7182452.744,0.001898733,0.001898733 +21-12-2019 3:00,7182230.68,0.00302565,0.00302565 +21-12-2019 4:00,7182009.459,0.012999278,0.012999278 +21-12-2019 5:00,7181789.08,0.085432143,0.085432143 +21-12-2019 6:00,7181569.544,0.200373983,0.200373983 +21-12-2019 7:00,7181350.851,0.288232582,0.288232582 +21-12-2019 8:00,7181133.001,0.378392308,0.378392308 +21-12-2019 9:00,7180915.994,0.344821789,0.344821789 +21-12-2019 10:00,7180699.831,0.362629536,0.362629536 +21-12-2019 11:00,7180484.51,0.489147437,0.489147437 +21-12-2019 12:00,7180270.034,0.440493627,0.440493627 +21-12-2019 13:00,7180056.4,0.321189475,0.321189475 +21-12-2019 14:00,7179843.611,0.365341631,0.365341631 +21-12-2019 15:00,7179631.665,0.366793338,0.366793338 +21-12-2019 16:00,7179420.563,0.344074269,0.344074269 +21-12-2019 17:00,7179210.305,0.370780499,0.370780499 +21-12-2019 18:00,7179000.892,0.353950305,0.353950305 +21-12-2019 19:00,7178792.322,0.325670368,0.325670368 +21-12-2019 20:00,7178584.597,0.26698927,0.26698927 +21-12-2019 21:00,7178377.716,0.173916316,0.173916316 +21-12-2019 22:00,7178171.68,0.082143255,0.082143255 +21-12-2019 23:00,7177966.489,0.035119865,0.035119865 +22-12-2019 0:00,7177762.142,0.014273874,0.014273874 +22-12-2019 1:00,7177558.64,0.004120409,0.004120409 +22-12-2019 2:00,7177355.983,0.002213344,0.002213344 +22-12-2019 3:00,7177154.171,0.003319951,0.003319951 +22-12-2019 4:00,7176953.205,0.015032137,0.015032137 +22-12-2019 5:00,7176753.083,0.092059292,0.092059292 +22-12-2019 6:00,7176553.807,0.209467954,0.209467954 +22-12-2019 7:00,7176355.377,0.293439582,0.293439582 +22-12-2019 8:00,7176157.792,0.383686052,0.383686052 +22-12-2019 9:00,7175961.053,0.347894887,0.347894887 +22-12-2019 10:00,7175765.159,0.364397243,0.364397243 +22-12-2019 11:00,7175570.112,0.491959606,0.491959606 +22-12-2019 12:00,7175375.91,0.441408262,0.441408262 +22-12-2019 13:00,7175182.555,0.322236979,0.322236979 +22-12-2019 14:00,7174990.046,0.363553661,0.363553661 +22-12-2019 15:00,7174798.383,0.368446968,0.368446968 +22-12-2019 16:00,7174607.566,0.347324589,0.347324589 +22-12-2019 17:00,7174417.596,0.370379492,0.370379492 +22-12-2019 18:00,7174228.473,0.354742631,0.354742631 +22-12-2019 19:00,7174040.196,0.323097539,0.323097539 +22-12-2019 20:00,7173852.766,0.266217307,0.266217307 +22-12-2019 21:00,7173666.183,0.173992983,0.173992983 +22-12-2019 22:00,7173480.446,0.082137336,0.082137336 +22-12-2019 23:00,7173295.557,0.0353174,0.0353174 +23-12-2019 0:00,7173111.515,0.013996838,0.013996838 +23-12-2019 1:00,7172928.321,0.00405091,0.00405091 +23-12-2019 2:00,7172745.973,0.002184249,0.002184249 +23-12-2019 3:00,7172564.473,0.003275457,0.003275457 +23-12-2019 4:00,7172383.821,0.014710041,0.014710041 +23-12-2019 5:00,7172204.016,0.089943353,0.089943353 +23-12-2019 6:00,7172025.059,0.205575737,0.205575737 +23-12-2019 7:00,7171846.95,0.292735668,0.292735668 +23-12-2019 8:00,7171669.689,0.383127515,0.383127515 +23-12-2019 9:00,7171493.276,0.348410564,0.348410564 +23-12-2019 10:00,7171317.71,0.366643217,0.366643217 +23-12-2019 11:00,7171142.993,0.491971107,0.491971107 +23-12-2019 12:00,7170969.125,0.443821728,0.443821728 +23-12-2019 13:00,7170796.104,0.306976468,0.306976468 +23-12-2019 14:00,7170623.932,0.353154686,0.353154686 +23-12-2019 15:00,7170452.609,0.370801841,0.370801841 +23-12-2019 16:00,7170282.134,0.343602891,0.343602891 +23-12-2019 17:00,7170112.508,0.372859954,0.372859954 +23-12-2019 18:00,7169943.731,0.361304371,0.361304371 +23-12-2019 19:00,7169775.803,0.32683169,0.32683169 +23-12-2019 20:00,7169608.723,0.268910006,0.268910006 +23-12-2019 21:00,7169442.493,0.173707094,0.173707094 +23-12-2019 22:00,7169277.112,0.083318302,0.083318302 +23-12-2019 23:00,7169112.58,0.036114679,0.036114679 +24-12-2019 0:00,7168948.897,0.014558416,0.014558416 +24-12-2019 1:00,7168786.064,0.004345287,0.004345287 +24-12-2019 2:00,7168624.08,0.002324689,0.002324689 +24-12-2019 3:00,7168462.946,0.003479072,0.003479072 +24-12-2019 4:00,7168302.661,0.016301515,0.016301515 +24-12-2019 5:00,7168143.227,0.097230617,0.097230617 +24-12-2019 6:00,7167984.642,0.221683079,0.221683079 +24-12-2019 7:00,7167826.907,0.312229781,0.312229781 +24-12-2019 8:00,7167670.021,0.408020925,0.408020925 +24-12-2019 9:00,7167513.986,0.363444015,0.363444015 +24-12-2019 10:00,7167358.802,0.371108633,0.371108633 +24-12-2019 11:00,7167204.467,0.493039137,0.493039137 +24-12-2019 12:00,7167050.982,0.438107758,0.438107758 +24-12-2019 13:00,7166898.348,0.323826819,0.323826819 +24-12-2019 14:00,7166746.565,0.362496584,0.362496584 +24-12-2019 15:00,7166595.632,0.366634383,0.366634383 +24-12-2019 16:00,7166445.549,0.339758959,0.339758959 +24-12-2019 17:00,7166296.318,0.362326382,0.362326382 +24-12-2019 18:00,7166147.937,0.34719899,0.34719899 +24-12-2019 19:00,7166000.407,0.314451118,0.314451118 +24-12-2019 20:00,7165853.727,0.25913007,0.25913007 +24-12-2019 21:00,7165707.899,0.168065659,0.168065659 +24-12-2019 22:00,7165562.922,0.079133215,0.079133215 +24-12-2019 23:00,7165418.796,0.033755076,0.033755076 +25-12-2019 0:00,7165275.521,0.013695689,0.013695689 +25-12-2019 1:00,7165133.098,0.003830879,0.003830879 +25-12-2019 2:00,7164991.525,0.002007032,0.002007032 +25-12-2019 3:00,7164850.805,0.003121968,0.003121968 +25-12-2019 4:00,7164710.936,0.01362886,0.01362886 +25-12-2019 5:00,7164571.918,0.085134592,0.085134592 +25-12-2019 6:00,7164433.752,0.197536224,0.197536224 +25-12-2019 7:00,7164296.438,0.283164228,0.283164228 +25-12-2019 8:00,7164159.975,0.373826193,0.373826193 +25-12-2019 9:00,7164024.365,0.302173552,0.302173552 +25-12-2019 10:00,7163889.606,0.295202402,0.295202402 +25-12-2019 11:00,7163755.699,0.399518171,0.399518171 +25-12-2019 12:00,7163622.645,0.403783615,0.403783615 +25-12-2019 13:00,7163490.442,0.308496007,0.308496007 +25-12-2019 14:00,7163359.092,0.358705931,0.358705931 +25-12-2019 15:00,7163228.594,0.369012741,0.369012741 +25-12-2019 16:00,7163098.948,0.349591566,0.349591566 +25-12-2019 17:00,7162970.155,0.375577193,0.375577193 +25-12-2019 18:00,7162842.214,0.36065926,0.36065926 +25-12-2019 19:00,7162715.126,0.327527544,0.327527544 +25-12-2019 20:00,7162588.891,0.269564441,0.269564441 +25-12-2019 21:00,7162463.508,0.175237714,0.175237714 +25-12-2019 22:00,7162338.978,0.084106028,0.084106028 +25-12-2019 23:00,7162215.3,0.035795801,0.035795801 +26-12-2019 0:00,7162092.476,0.014320515,0.014320515 +26-12-2019 1:00,7161970.504,0.004311432,0.004311432 +26-12-2019 2:00,7161849.385,0.002332765,0.002332765 +26-12-2019 3:00,7161729.12,0.003518724,0.003518724 +26-12-2019 4:00,7161609.707,0.016658364,0.016658364 +26-12-2019 5:00,7161491.148,0.100791206,0.100791206 +26-12-2019 6:00,7161373.442,0.229135037,0.229135037 +26-12-2019 7:00,7161256.589,0.322609961,0.322609961 +26-12-2019 8:00,7161140.59,0.41946668,0.41946668 +26-12-2019 9:00,7161025.444,0.374933617,0.374933617 +26-12-2019 10:00,7160911.152,0.393222869,0.393222869 +26-12-2019 11:00,7160797.713,0.52200598,0.52200598 +26-12-2019 12:00,7160685.127,0.469428136,0.469428136 +26-12-2019 13:00,7160573.396,0.353335222,0.353335222 +26-12-2019 14:00,7160462.518,0.396171003,0.396171003 +26-12-2019 15:00,7160352.493,0.400399673,0.400399673 +26-12-2019 16:00,7160243.323,0.374707794,0.374707794 +26-12-2019 17:00,7160135.006,0.400290169,0.400290169 +26-12-2019 18:00,7160027.544,0.386250799,0.386250799 +26-12-2019 19:00,7159920.935,0.350898047,0.350898047 +26-12-2019 20:00,7159815.181,0.288425989,0.288425989 +26-12-2019 21:00,7159710.28,0.188045741,0.188045741 +26-12-2019 22:00,7159606.234,0.089157297,0.089157297 +26-12-2019 23:00,7159503.042,0.038324486,0.038324486 +27-12-2019 0:00,7159400.704,0.015428298,0.015428298 +27-12-2019 1:00,7159299.22,0.004955978,0.004955978 +27-12-2019 2:00,7159198.591,0.002780288,0.002780288 +27-12-2019 3:00,7159098.816,0.004110914,0.004110914 +27-12-2019 4:00,7158999.896,0.021449374,0.021449374 +27-12-2019 5:00,7158901.83,0.120585963,0.120585963 +27-12-2019 6:00,7158804.619,0.27216288,0.27216288 +27-12-2019 7:00,7158708.263,0.382143288,0.382143288 +27-12-2019 8:00,7158612.761,0.476235609,0.476235609 +27-12-2019 9:00,7158518.114,0.344244598,0.344244598 +27-12-2019 10:00,7158424.321,0.317842074,0.317842074 +27-12-2019 11:00,7158331.383,0.434492643,0.434492643 +27-12-2019 12:00,7158239.301,0.359261157,0.359261157 +27-12-2019 13:00,7158148.073,0.222904644,0.222904644 +27-12-2019 14:00,7158057.7,0.378500988,0.378500988 +27-12-2019 15:00,7157968.182,0.422323517,0.422323517 +27-12-2019 16:00,7157879.519,0.412015925,0.412015925 +27-12-2019 17:00,7157791.711,0.450822048,0.450822048 +27-12-2019 18:00,7157704.759,0.436726153,0.436726153 +27-12-2019 19:00,7157618.661,0.400981875,0.400981875 +27-12-2019 20:00,7157533.419,0.330808118,0.330808118 +27-12-2019 21:00,7157449.032,0.216615725,0.216615725 +27-12-2019 22:00,7157365.501,0.106020611,0.106020611 +27-12-2019 23:00,7157282.824,0.045366487,0.045366487 +28-12-2019 0:00,7157201.004,0.019210682,0.019210682 +28-12-2019 1:00,7157120.038,0.006894797,0.006894797 +28-12-2019 2:00,7157039.928,0.004676425,0.004676425 +28-12-2019 3:00,7156960.674,0.009769604,0.009769604 +28-12-2019 4:00,7156882.275,0.043900242,0.043900242 +28-12-2019 5:00,7156804.732,0.198635211,0.198635211 +28-12-2019 6:00,7156728.044,0.41303445,0.41303445 +28-12-2019 7:00,7156652.212,0.551363446,0.551363446 +28-12-2019 8:00,7156577.236,0.663753547,0.663753547 +28-12-2019 9:00,7156503.116,0.545383288,0.545383288 +28-12-2019 10:00,7156429.851,0.512666436,0.512666436 +28-12-2019 11:00,7156357.443,0.623108956,0.623108956 +28-12-2019 12:00,7156285.89,0.556345954,0.556345954 +28-12-2019 13:00,7156215.193,0.452171243,0.452171243 +28-12-2019 14:00,7156145.352,0.485649072,0.485649072 +28-12-2019 15:00,7156076.367,0.497762908,0.497762908 +28-12-2019 16:00,7156008.238,0.46971978,0.46971978 +28-12-2019 17:00,7155940.965,0.498266189,0.498266189 +28-12-2019 18:00,7155874.548,0.479376032,0.479376032 +28-12-2019 19:00,7155808.987,0.439123691,0.439123691 +28-12-2019 20:00,7155744.283,0.36555627,0.36555627 +28-12-2019 21:00,7155680.434,0.237518151,0.237518151 +28-12-2019 22:00,7155617.442,0.113775473,0.113775473 +28-12-2019 23:00,7155555.306,0.050457323,0.050457323 +29-12-2019 0:00,7155494.027,0.021548196,0.021548196 +29-12-2019 1:00,7155433.603,0.008707307,0.008707307 +29-12-2019 2:00,7155374.036,0.007320099,0.007320099 +29-12-2019 3:00,7155315.326,0.015277189,0.015277189 +29-12-2019 4:00,7155257.472,0.057103705,0.057103705 +29-12-2019 5:00,7155200.474,0.233764623,0.233764623 +29-12-2019 6:00,7155144.333,0.473169251,0.473169251 +29-12-2019 7:00,7155089.048,0.613277739,0.613277739 +29-12-2019 8:00,7155034.62,0.725765378,0.725765378 +29-12-2019 9:00,7154981.048,0.594168931,0.594168931 +29-12-2019 10:00,7154928.333,0.550342319,0.550342319 +29-12-2019 11:00,7154876.475,0.659336185,0.659336185 +29-12-2019 12:00,7154825.473,0.585044095,0.585044095 +29-12-2019 13:00,7154775.328,0.481229758,0.481229758 +29-12-2019 14:00,7154726.039,0.51084289,0.51084289 +29-12-2019 15:00,7154677.608,0.518298553,0.518298553 +29-12-2019 16:00,7154630.033,0.488714389,0.488714389 +29-12-2019 17:00,7154583.315,0.516346677,0.516346677 +29-12-2019 18:00,7154537.453,0.494007049,0.494007049 +29-12-2019 19:00,7154492.449,0.447952333,0.447952333 +29-12-2019 20:00,7154448.301,0.369490648,0.369490648 +29-12-2019 21:00,7154405.01,0.240007141,0.240007141 +29-12-2019 22:00,7154362.576,0.114226706,0.114226706 +29-12-2019 23:00,7154320.999,0.050950165,0.050950165 +30-12-2019 0:00,7154280.279,0.021632943,0.021632943 +30-12-2019 1:00,7154240.415,0.009022134,0.009022134 +30-12-2019 2:00,7154201.409,0.007565375,0.007565375 +30-12-2019 3:00,7154163.26,0.015102117,0.015102117 +30-12-2019 4:00,7154125.967,0.055753807,0.055753807 +30-12-2019 5:00,7154089.532,0.225396793,0.225396793 +30-12-2019 6:00,7154053.954,0.45644119,0.45644119 +30-12-2019 7:00,7154019.233,0.590714244,0.590714244 +30-12-2019 8:00,7153985.369,0.695522047,0.695522047 +30-12-2019 9:00,7153952.362,0.484561511,0.484561511 +30-12-2019 10:00,7153920.212,0.398524808,0.398524808 +30-12-2019 11:00,7153888.919,0.553608641,0.553608641 +30-12-2019 12:00,7153858.484,0.427741585,0.427741585 +30-12-2019 13:00,7153828.905,0.293941674,0.293941674 +30-12-2019 14:00,7153800.184,0.444276709,0.444276709 +30-12-2019 15:00,7153772.32,0.488699362,0.488699362 +30-12-2019 16:00,7153745.313,0.466333191,0.466333191 +30-12-2019 17:00,7153719.163,0.490288817,0.490288817 +30-12-2019 18:00,7153693.871,0.473353498,0.473353498 +30-12-2019 19:00,7153669.436,0.433846364,0.433846364 +30-12-2019 20:00,7153645.858,0.359864363,0.359864363 +30-12-2019 21:00,7153623.137,0.233503595,0.233503595 +30-12-2019 22:00,7153601.274,0.111144296,0.111144296 +30-12-2019 23:00,7153580.268,0.048836507,0.048836507 +31-12-2019 0:00,7153560.119,0.020874907,0.020874907 +31-12-2019 1:00,7153540.828,0.008064308,0.008064308 +31-12-2019 2:00,7153522.394,0.006158415,0.006158415 +31-12-2019 3:00,7153504.817,0.011881561,0.011881561 +31-12-2019 4:00,7153488.098,0.049240688,0.049240688 +31-12-2019 5:00,7153472.236,0.204513764,0.204513764 +31-12-2019 6:00,7153457.231,0.428980208,0.428980208 +31-12-2019 7:00,7153443.084,0.57077863,0.57077863 +31-12-2019 8:00,7153429.794,0.689960507,0.689960507 +31-12-2019 9:00,7153417.361,0.556279556,0.556279556 +31-12-2019 10:00,7153405.786,0.50881851,0.50881851 +31-12-2019 11:00,7153395.068,0.615059566,0.615059566 +31-12-2019 12:00,7153385.208,0.543006493,0.543006493 +31-12-2019 13:00,7153376.205,0.439104044,0.439104044 +31-12-2019 14:00,7153368.059,0.46955531,0.46955531 +31-12-2019 15:00,7153360.771,0.509024189,0.509024189 +31-12-2019 16:00,7153354.34,0.495105355,0.495105355 +31-12-2019 17:00,7153348.767,0.509744904,0.509744904 +31-12-2019 18:00,7153344.051,0.484135954,0.484135954 +31-12-2019 19:00,7153340.193,0.437378359,0.437378359 +31-12-2019 20:00,7153337.192,0.360347986,0.360347986 +31-12-2019 21:00,7153335.048,0.234917204,0.234917204 +31-12-2019 22:00,7153333.762,0.114569593,0.114569593 \ No newline at end of file diff --git a/examples/heating_and_cooling/model/Heating and cooling network with return network.esdl b/examples/heating_and_cooling/model/Heating and cooling network with return network.esdl new file mode 100644 index 000000000..06fdedb28 --- /dev/null +++ b/examples/heating_and_cooling/model/Heating and cooling network with return network.esdl @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/heating_and_cooling/src/run_case.py b/examples/heating_and_cooling/src/run_case.py new file mode 100644 index 000000000..8b7be830b --- /dev/null +++ b/examples/heating_and_cooling/src/run_case.py @@ -0,0 +1,148 @@ +import logging +from pathlib import Path +from unittest import TestCase + +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.util import run_esdl_mesido_optimization +from mesido.workflows.utils.adapt_profiles import ( + adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day, +) + +logger = logging.getLogger("WarmingUP-MPC") +logger.setLevel(logging.INFO) + + +class HeatColdDemand(TestCase): + + def heating_cooling_case(self): + """ + In this case we have a network with an air-water hp, a WKO (warm and cold well) and both + hot and cold demand. The heat and cold demand was balanced such that the seasonal storage + gets utilized as intended. + """ + import os + import sys + + root_folder = os.path.join(Path(__file__).resolve().parent.parent.parent.parent, "tests") + sys.path.insert(1, root_folder) + + from models.wko.src.example import HeatProblem + from utils_tests import demand_matching_test, energy_conservation_test + + base_folder = Path(__file__).resolve().parent.parent + + # ------------------------------------------------------------------------------------------ + class HeatingCoolingProblem(HeatProblem): + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self._number_of_years = 30.0 + + self.__indx_max_peak = None + self.__day_steps = 5 + + def energy_system_options(self): + options = super().energy_system_options() + options["neglect_pipe_heat_losses"] = False + return options + + def parameters(self, ensemble_member): + parameters = super().parameters(ensemble_member) + parameters["peak_day_index"] = self.__indx_max_peak + parameters["time_step_days"] = self.__day_steps + parameters["number_of_years"] = self._number_of_years + return parameters + + def read(self): + super().read() + + # Set the peak of the heating demand since the specified proifle is normalized to 1 + for d in self.energy_system_components["heat_demand"]: + target = self.get_timeseries(f"{d}.target_heat_demand") + for ii in range(len(target.values)): + target.values[ii] = target.values[ii] * 7.0e6 + + self.io.set_timeseries( + f"{d}.target_heat_demand", + self.io._DataStore__timeseries_datetimes, + target.values, + 0, + ) + # Cold demand specified profile is not normalized + # Cold demand value is reduced to get the correct balance between the heat and cold + # demand such that the seasonal storage is utilized + for d in self.energy_system_components["cold_demand"]: + target = self.get_timeseries(f"{d}.target_cold_demand") + for ii in range(len(target.values)): + target.values[ii] = target.values[ii] * 0.25 + + self.io.set_timeseries( + f"{d}.target_cold_demand", + self.io._DataStore__timeseries_datetimes, + target.values, + 0, + ) + + ( + self.__indx_max_peak, + self.__heat_demand_nominal, + self.__cold_demand_nominal, + ) = adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day( + self, + self.__day_steps, + ) + + def constraints(self, ensemble_member): + constraints = super().constraints(ensemble_member) + + # TODO: confirm if volume or heat balance is required over year. This will + # determine if cyclic contraint below is for stored_heat or stored_volume + # Add stored_heat cyclic constraint, this will also ensure that the total heat + # change in the wko is 0 over the timeline + # Note: + # - WKO in cooling mode: Hot well is being charged with heat and the cold well is + # being discharged + # - WKO in heating mode: Cold well is being charged and the hot well is being + # discharged. + # for a in self.energy_system_components.get("low_temperature_ates", []): + # stored_heat = self.state_vector(f"{a}.Stored_heat") + # constraints.append(((stored_heat[-1] - stored_heat[0]), 0.0, 0.0)) + # This code below might be needed + # Add stored_heat cyclic constraint, this will also ensure that the volume + # into the lower temp & out of the higher temp is the same as the volume + # out of the lower temp & into the higher temp over the timeline. + # Note: + # - Volume increase: Hot well is being charged and the cold well is being + # discharged. -> WKO in cooling mode + # - Volume decrease: Cold well is being charged and the hot well is being + # discharged. -> WKO in heating mode + for ates_id in self.energy_system_components.get("low_temperature_ates", []): + stored_volume = self.state_vector(f"{ates_id}.Stored_volume") + volume_usage = 0.0 + volume_usage = stored_volume[0] - stored_volume[-1] + constraints.append((volume_usage, 0.0, 0.0)) + + return constraints + + heat_problem = run_esdl_mesido_optimization( + HeatingCoolingProblem, + base_folder=base_folder, + esdl_file_name="Heating and cooling network with return network.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_4.csv", + ) + results = heat_problem.extract_results() + + # checks to make sure the run was valid + demand_matching_test(heat_problem, results) + energy_conservation_test(heat_problem, results) + # TODO: check below can be added, once the heat_to_discharge_test have been updated such + # that a pipe can absorb heat + # heat_to_discharge_test(heat_problem, results) + + +if __name__ == "__main__": + test_cold_demand = HeatColdDemand() + test_cold_demand.heating_cooling_case() diff --git a/manual_run/testing_bugs/model/Demo_areas with return network.esdl b/manual_run/testing_bugs/model/Demo_areas with return network.esdl new file mode 100644 index 000000000..7bf80977f --- /dev/null +++ b/manual_run/testing_bugs/model/Demo_areas with return network.esdl @@ -0,0 +1,598 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 9079ac8ee..b35ce592d 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -231,6 +231,7 @@ def read(self): ( self.__indx_max_peak, self.__heat_demand_nominal, + _, ) = adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day(self, self.__day_steps) logger.info("HeatProblem read") diff --git a/src/mesido/workflows/simulator_workflow.py b/src/mesido/workflows/simulator_workflow.py index cce803efe..684521b93 100644 --- a/src/mesido/workflows/simulator_workflow.py +++ b/src/mesido/workflows/simulator_workflow.py @@ -356,7 +356,7 @@ def read(self): """ super().read() - self.__indx_max_peak, _ = adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day( + self.__indx_max_peak, _, _ = adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day( self, self.__day_steps ) logger.info("HeatProblem read") diff --git a/src/mesido/workflows/utils/adapt_profiles.py b/src/mesido/workflows/utils/adapt_profiles.py index c9055c9a7..5ac1efb12 100644 --- a/src/mesido/workflows/utils/adapt_profiles.py +++ b/src/mesido/workflows/utils/adapt_profiles.py @@ -73,12 +73,15 @@ def adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day(problem, prob Return the following: - problem_indx_max_peak: index of the maximum of the peak values - heat_demand_nominal: max demand value found for a specific heating demand + - cold_demand_nominal: max cold demand value found for a specific cold demand """ demands = problem.energy_system_components.get("heat_demand", []) new_datastore = DataStore(problem) new_datastore.reference_datetime = problem.io.datetimes[0] + cold_demands = problem.energy_system_components.get("cold_demand", []) + for ensemble_member in range(problem.ensemble_size): parameters = problem.parameters(ensemble_member) total_demand = None @@ -134,6 +137,38 @@ def adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day(problem, prob new_date_times=new_date_times, problem=problem, ) + # ------------------------------------------------------------------------------------------ + # cooling demands + total_cold_demand = None + cold_demand_nominal = dict() + + for demand in cold_demands: + try: + cold_demand_values = problem.get_timeseries( + f"{demand}.target_cold_demand", ensemble_member + ).values + except KeyError: + continue + if total_cold_demand is None: + total_cold_demand = cold_demand_values + else: + total_cold_demand += cold_demand_values + cold_demand_nominal[f"{demand}.Cold_demand"] = max(cold_demand_values) + cold_demand_nominal[f"{demand}.Heat_flow"] = max(cold_demand_values) + + # TODO: find the peak cooling day and adapt to hourly + + for demand in cold_demands: + var_name = f"{demand}.target_cold_demand" + set_data_with_averages_and_peak_day( + datastore=new_datastore, + variable_name=var_name, + ensemble_member=ensemble_member, + new_date_times=new_date_times, + problem=problem, + ) + # end cooling demands + # ------------------------------------------------------------------------------------------ # TODO: this has not been tested but is required if a production profile is included # in the data @@ -178,4 +213,4 @@ def adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day(problem, prob logger.info("Profile data has been adapted to a common format") - return problem_indx_max_peak, heat_demand_nominal + return problem_indx_max_peak, heat_demand_nominal, cold_demand_nominal diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 6fa393883..646dec184 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -1,3 +1,4 @@ +import logging from pathlib import Path from unittest import TestCase @@ -11,6 +12,9 @@ from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test +logger = logging.getLogger("WarmingUP-MPC") +logger.setLevel(logging.INFO) + class TestColdDemand(TestCase): @@ -255,3 +259,4 @@ def energy_system_options(self): test_cold_demand.test_insufficient_capacity() test_cold_demand.test_cold_demand() test_cold_demand.test_wko() + test_cold_demand.test_airco() From 3a882337bd809e54d3fa5dece734e01bc53615cd Mon Sep 17 00:00:00 2001 From: JimRojer-TNO <137045207+jimrojerTNO@users.noreply.github.com> Date: Tue, 15 Oct 2024 10:05:07 +0200 Subject: [PATCH 225/275] 152 limit connected pipe pipe classes (#155) - Limit the available pipe classes connected to heat/gas demand/producers - Add demands and sources to the topology object to have easy access to the connected pipes/cables later on - Bug fix: machine error/rounding with updating lower bound values in the grow_workflow after stage 1 --- CHANGELOG.md | 3 + examples/PoCTutorial/model/PoC Tutorial.esdl | 10 +- src/mesido/component_type_mixin.py | 127 ++++++++++++++- src/mesido/esdl/esdl_additional_vars_mixin.py | 153 ++++++++++++++++++ src/mesido/topology.py | 42 ++++- src/mesido/workflows/grow_workflow.py | 11 +- tests/test_end_scenario_sizing.py | 5 + tests/test_updated_esdl_post_process.py | 8 +- tests/test_updated_esdl_pre_process.py | 24 ++- 9 files changed, 362 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f19a4e160..d76bdef2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # [Unreleased] - 2024-10-07 ## Added +- Limit the available pipe classes connetced to heat/gas demand/producers +- Add demands and sources to the topology object to have easy access to the connected pipes/cables later on - Heating and cooling example case added (2 heating demands, 1 cold demand, hot and cold producer, WKO as seasonal storage) - Gas physics documentation - Gas & electricity 1st version of physics documentation @@ -17,6 +19,7 @@ - Bugfix: Fix on nominals in electricity cables and gas pipes. Fix on nominals for nodes with logical links. ## Fixed +- Bug fix: machine error/rounding with updating lower bound values in the grow_workflow after stage 1 - documentation: heat physics tank storage - bug fix in grow_workflow (heat networks), changed minimum velocity from 0 to default value - addition to tests checking the minimum velocity setting in a workflow diff --git a/examples/PoCTutorial/model/PoC Tutorial.esdl b/examples/PoCTutorial/model/PoC Tutorial.esdl index 29d91d66f..0b6215465 100644 --- a/examples/PoCTutorial/model/PoC Tutorial.esdl +++ b/examples/PoCTutorial/model/PoC Tutorial.esdl @@ -33,7 +33,7 @@ - + @@ -120,7 +120,7 @@ - + @@ -180,7 +180,7 @@ - + @@ -206,7 +206,7 @@ - + @@ -287,7 +287,7 @@ - + diff --git a/src/mesido/component_type_mixin.py b/src/mesido/component_type_mixin.py index 8c0d2a3ec..74ef5bda8 100644 --- a/src/mesido/component_type_mixin.py +++ b/src/mesido/component_type_mixin.py @@ -3,6 +3,7 @@ from mesido.base_component_type_mixin import BaseComponentTypeMixin from mesido.heat_network_common import NodeConnectionDirection +from mesido.network_common import NetworkSettings from mesido.topology import Topology import numpy as np @@ -36,6 +37,16 @@ def pre(self): gas_nodes = components.get("gas_node", []) buffers = components.get("heat_buffer", []) atess = [*components.get("ates", []), *components.get("low_temperature_ates", [])] + demands = [ + *components.get("heat_demand", []), + *components.get("electricity_demand", []), + *components.get("gas_demand", []), + ] + sources = [ + *components.get("heat_source", []), + *components.get("electricity_source", []), + *components.get("gas_source", []), + ] pipes = components.get("heat_pipe", []) # An energy system should have at least one asset. @@ -50,7 +61,7 @@ def pre(self): bus_connections = {} gas_node_connections = {} - heat_network_model_type = "Heat" + heat_network_model_type = NetworkSettings.NETWORK_TYPE_HEAT # Note that a pipe series can include both hot and cold pipes for # QTH models. It is only about figuring out which pipes are @@ -59,7 +70,7 @@ def pre(self): # series, as the cold part is zero milp by construction. if heat_network_model_type == "QTH": alias_relation = self.alias_relation - elif heat_network_model_type == "Heat": + elif heat_network_model_type == NetworkSettings.NETWORK_TYPE_HEAT: # There is no proper AliasRelation yet (because there is milp loss in pipes). # So we build one, as that is the easiest way to figure out which pipes are # connected to each other in series. We do this by making a temporary/shadow @@ -116,7 +127,11 @@ def pre(self): for i in range(n_connections): if n in nodes: cur_port = f"{n}.{heat_network_model_type}Conn[{i + 1}]" - prop = "T" if heat_network_model_type == "QTH" else "Heat" + prop = ( + "T" + if heat_network_model_type == "QTH" + else NetworkSettings.NETWORK_TYPE_HEAT + ) prop_h = "H" in_suffix = ".QTHIn.T" if heat_network_model_type == "QTH" else ".HeatIn.Heat" out_suffix = ( @@ -242,7 +257,9 @@ def pre(self): for k in ["In", "Out"]: b_conn = f"{b}.{heat_network_model_type}{k}" - prop = "T" if heat_network_model_type == "QTH" else "Heat" + prop = ( + "T" if heat_network_model_type == "QTH" else NetworkSettings.NETWORK_TYPE_HEAT + ) aliases = [ x for x in self.alias_relation.aliases(f"{b_conn}.{prop}") @@ -287,7 +304,9 @@ def pre(self): for k in ["In", "Out"]: a_conn = f"{a}.{heat_network_model_type}{k}" - prop = "T" if heat_network_model_type == "QTH" else "Heat" + prop = ( + "T" if heat_network_model_type == "QTH" else NetworkSettings.NETWORK_TYPE_HEAT + ) aliases = [ x for x in self.alias_relation.aliases(f"{a_conn}.{prop}") @@ -325,6 +344,102 @@ def pre(self): ates_connections[a] = tuple(ates_connections[a]) + demand_connections = {} + + for a in demands: + if a in components.get("heat_demand", []): + network_type = NetworkSettings.NETWORK_TYPE_HEAT + prop = NetworkSettings.NETWORK_TYPE_HEAT + elif a in components.get("electricity_demand", []): + network_type = "Electricity" + prop = "Power" + elif a in components.get("gas_demand", []): + network_type = NetworkSettings.NETWORK_TYPE_GAS + prop = "H" + else: + logger.error(f"{a} cannot be modelled with heat, gas or electricity") + a_conn = f"{a}.{network_type}In" + aliases = [ + x + for x in self.alias_relation.aliases(f"{a_conn}.{prop}") + if not x.startswith(a) and x.endswith(f".{prop}") + ] + + if len(aliases) > 1: + raise Exception(f"More than one connection to {a_conn}") + elif len(aliases) == 0: + # the connection was a logical link to a node + continue + + in_suffix = f".{network_type}In.{prop}" + out_suffix = f".{network_type}Out.{prop}" + + if aliases[0].endswith(out_suffix): + asset_w_orientation = ( + aliases[0][: -len(out_suffix)], + NodeConnectionDirection.IN, + ) + else: + asset_w_orientation = ( + aliases[0][: -len(in_suffix)], + NodeConnectionDirection.OUT, + ) + + if asset_w_orientation[0] in [ + *components.get("heat_pipe", []), + *components.get("gas_pipe", []), + *components.get("electricity_cable", []), + ]: + demand_connections[a] = asset_w_orientation + + source_connections = {} + + for a in sources: + if a in components.get("heat_source", []): + network_type = NetworkSettings.NETWORK_TYPE_HEAT + prop = NetworkSettings.NETWORK_TYPE_HEAT + elif a in components.get("electricity_source", []): + network_type = "Electricity" + prop = "Power" + elif a in components.get("gas_source", []): + network_type = NetworkSettings.NETWORK_TYPE_GAS + prop = "H" + else: + logger.error(f"{a} cannot be modelled with heat, gas or electricity") + a_conn = f"{a}.{network_type}Out" + aliases = [ + x + for x in self.alias_relation.aliases(f"{a_conn}.{prop}") + if not x.startswith(a) and x.endswith(f".{prop}") + ] + + if len(aliases) > 1: + raise Exception(f"More than one connection to {a_conn}") + elif len(aliases) == 0: + # the connection was a logical link to a node + continue + + in_suffix = f".{network_type}In.{prop}" + out_suffix = f".{network_type}Out.{prop}" + + if aliases[0].endswith(out_suffix): + asset_w_orientation = ( + aliases[0][: -len(out_suffix)], + NodeConnectionDirection.IN, + ) + else: + asset_w_orientation = ( + aliases[0][: -len(in_suffix)], + NodeConnectionDirection.OUT, + ) + + if asset_w_orientation[0] in [ + *components.get("heat_pipe", []), + *components.get("gas_pipe", []), + *components.get("electricity_cable", []), + ]: + source_connections[a] = asset_w_orientation + self.__topology = Topology( node_connections, gas_node_connections, @@ -332,6 +447,8 @@ def pre(self): buffer_connections, ates_connections, bus_connections, + demand_connections, + source_connections, ) super().pre() diff --git a/src/mesido/esdl/esdl_additional_vars_mixin.py b/src/mesido/esdl/esdl_additional_vars_mixin.py index 293b775e4..80993c253 100644 --- a/src/mesido/esdl/esdl_additional_vars_mixin.py +++ b/src/mesido/esdl/esdl_additional_vars_mixin.py @@ -1,8 +1,10 @@ import logging +from typing import List import esdl from mesido.network_common import NetworkSettings +from mesido.pipe_class import PipeClass import numpy as np @@ -16,8 +18,148 @@ class ESDLAdditionalVarsMixin(CollocatedIntegratedOptimizationProblem): __temperature_options = {} + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + def read(self): super().read() + parameters = self.parameters(0) + bounds = self.bounds() + + # ------------------------------------------------------------------------------------------ + # Limit available pipe classes + # TODO: cater for varying temperature when limiting pipe classes below + # Here we do a check between the available pipe classes and the demand profiles. This is to + # ensure that we don't have unneeded large amount of available pipe classes for pipes + # connected to smaller demands. + # TODO: add the same for electricity ones we have proper support for that in the ESDLMixin + if len(self.temperature_carriers().items()) == 0: + for asset, ( + connected_asset, + _orientation, + ) in self.energy_system_topology.demands.items(): + # TODO: add test case for gas once optional gas pipes are used + if asset in self.energy_system_components.get("gas_demand", []): + try: + max_demand_g_s = min( + max(self.get_timeseries(f"{asset}.target_gas_demand").values), + bounds[f"{asset}.Gas_demand_mass_flow"][1], + ) + except KeyError: + max_demand_g_s = bounds[f"{asset}.Gas_demand_mass_flow"][1] + is_there_always_mass_flow = False + try: + if min(self.get_timeseries(f"{asset}.target_gas_demand").values) > 0.0: + is_there_always_mass_flow = True + except KeyError: + is_there_always_mass_flow = False + + new_pcs = [] + found_pc_large_enough = False + for pc in self.gas_pipe_classes(connected_asset): + if not found_pc_large_enough: + new_pcs.append(pc) + if ( + new_pcs[-1].maximum_discharge + * self.parameters(0)[f"{connected_asset}.rho"] + >= max_demand_g_s + ): # m3/s * g/m3 = g/s + found_pc_large_enough = True + + self.remove_dn0(new_pcs, is_there_always_mass_flow) + self._override_gas_pipe_classes[connected_asset] = new_pcs + + if asset in self.energy_system_components.get("heat_demand", []): + try: + max_demand = min( + max(self.get_timeseries(f"{asset}.target_heat_demand").values), + bounds[f"{asset}.Heat_demand"][1], + ) + except KeyError: + max_demand = bounds[f"{asset}.Heat_demand"][1] + is_there_always_mass_flow = False + try: + if min(self.get_timeseries(f"{asset}.target_heat_demand").values) > 0.0: + is_there_always_mass_flow = True + except KeyError: + is_there_always_mass_flow = False + + max_demand *= 1.3 # 30% added for expected worst case heat losses + + new_pcs = [] + found_pc_large_enough = False + for pc in self.pipe_classes(connected_asset): + if not found_pc_large_enough: + new_pcs.append(pc) + if ( + new_pcs[-1].maximum_discharge + * parameters[f"{asset}.cp"] + * parameters[f"{asset}.rho"] + * (parameters[f"{asset}.T_supply"] - parameters[f"{asset}.T_return"]) + ) >= max_demand: + found_pc_large_enough = True + + self.remove_dn0(new_pcs, is_there_always_mass_flow) + self._override_pipe_classes[connected_asset] = new_pcs + + if not self.is_hot_pipe(self.hot_to_cold_pipe(connected_asset)): + self._override_pipe_classes[self.hot_to_cold_pipe(connected_asset)] = ( + new_pcs + ) + + # Here we do the same for sources as for the sources. + for asset, ( + connected_asset, + _orientation, + ) in self.energy_system_topology.sources.items(): + if asset in self.energy_system_components.get("gas_source", []): + try: + max_prod_g_s = min( + max(self.get_timeseries(f"{asset}.maximum_gas_source").values), + bounds[f"{asset}.Gas_source_mass_flow"][1], + ) + except KeyError: + max_prod_g_s = bounds[f"{asset}.Gas_source_mass_flow"][1] + new_pcs = [] + found_pc_large_enough = False + for pc in self.gas_pipe_classes(connected_asset): + if not found_pc_large_enough: + new_pcs.append(pc) + if ( + new_pcs[-1].maximum_discharge + * self.parameters(0)[f"{connected_asset}.rho"] + >= max_prod_g_s + ): + found_pc_large_enough = True + self._override_gas_pipe_classes[connected_asset] = new_pcs + if asset in self.energy_system_components.get("heat_source", []): + try: + max_prod = min( + max(self.get_timeseries(f"{asset}.maximum_heat_source").values), + bounds[f"{asset}.Heat_source"][1], + ) + except KeyError: + max_prod = bounds[f"{asset}.Heat_source"][1] + new_pcs = [] + found_pc_large_enough = False + for pc in self.pipe_classes(connected_asset): + if not found_pc_large_enough: + new_pcs.append(pc) + if ( + new_pcs[-1].maximum_discharge + * parameters[f"{asset}.cp"] + * parameters[f"{asset}.rho"] + * (parameters[f"{asset}.T_supply"] - parameters[f"{asset}.T_return"]) + ) >= max_prod: + found_pc_large_enough = True + self._override_pipe_classes[connected_asset] = new_pcs + if not self.is_hot_pipe(self.hot_to_cold_pipe(connected_asset)): + self._override_pipe_classes[self.hot_to_cold_pipe(connected_asset)] = ( + new_pcs + ) + else: + logger.warning("Limiting pipe classes do not cater for varying temperature yet") + # ------------------------------------------------------------------------------------------ for asset in [ *self.energy_system_components.get("heat_source", []), @@ -49,9 +191,20 @@ def read(self): self._timed_setpoints.update(asset_setpoints) + def remove_dn0(self, new_pcs: List[PipeClass], is_there_always_mass_flow: bool) -> None: + """Remove pipe DN0 from the available pipe list, if there is always flow required""" + # TODO: Bug to be resolved. Currently the solution is infeasible when only + # 1 pipe class is available, but it should be able to working. + # Then remove the need for having 2 pipes classes available in new_pcs. + if is_there_always_mass_flow and len(new_pcs) > 2 and new_pcs[0].maximum_discharge == 0.0: + new_pcs.remove(new_pcs[0]) + def pipe_classes(self, p): return self._override_pipe_classes.get(p, []) + def gas_pipe_classes(self, p): + return self._override_gas_pipe_classes.get(p, []) + def esdl_heat_model_options(self): """Overwrites the fraction of the minimum tank volume""" options = super().esdl_heat_model_options() diff --git a/src/mesido/topology.py b/src/mesido/topology.py index 73584d07a..2b6fecb3a 100644 --- a/src/mesido/topology.py +++ b/src/mesido/topology.py @@ -5,7 +5,15 @@ class Topology: def __init__( - self, nodes=None, gas_nodes=None, pipe_series=None, buffers=None, atess=None, busses=None + self, + nodes=None, + gas_nodes=None, + pipe_series=None, + buffers=None, + atess=None, + busses=None, + demands=None, + sources=None, ): if nodes is not None: self._nodes = nodes @@ -19,6 +27,10 @@ def __init__( self._busses = busses if atess is not None: self._atess = atess + if demands is not None: + self._demands = demands + if sources is not None: + self._sources = sources @property def nodes(self) -> Dict[str, Dict[int, Tuple[str, NodeConnectionDirection]]]: @@ -97,3 +109,31 @@ def ates( return self._atess except AttributeError: raise NotImplementedError + + @property + def demands( + self, + ) -> Dict[str, Tuple[str, NodeConnectionDirection]]: + """ + Maps an demand name to a dictionary of its in/out connections. Written out using + descriptive variable names the return type would be: + Dict[demand_name, Tuple[pipe/cable, orientation] + """ + try: + return self._demands + except AttributeError: + raise NotImplementedError + + @property + def sources( + self, + ) -> Dict[str, Tuple[str, NodeConnectionDirection]]: + """ + Maps a source name to a dictionary of its in/out connections. Written out using + descriptive variable names the return type would be: + Dict[source_name, Tuple[pipe/cable, orientation] + """ + try: + return self._sources + except AttributeError: + raise NotImplementedError diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index b35ce592d..fd3eee9b9 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -681,10 +681,15 @@ def run_end_scenario_sizing( *solution.energy_system_components.get("heat_buffer", []), ]: var_name = f"{asset}_aggregation_count" - lb = results[var_name][0] + round_lb = round(results[var_name][0]) ub = solution.bounds()[var_name][1] - if round(lb) >= 1: - boolean_bounds[var_name] = (lb, ub) + if round_lb >= 1 and (round_lb <= ub): + boolean_bounds[var_name] = (round_lb, ub) + elif round_lb > ub: + logger.error( + f"{var_name}: The lower bound value {round_lb} > the upper bound {ub} value" + ) + exit(1) t = solution.times() from rtctools.optimization.timeseries import Timeseries diff --git a/tests/test_end_scenario_sizing.py b/tests/test_end_scenario_sizing.py index 2a7447eba..2d4c24178 100644 --- a/tests/test_end_scenario_sizing.py +++ b/tests/test_end_scenario_sizing.py @@ -46,6 +46,7 @@ def test_end_scenario_sizing(self): Checks: - demand matching + - that the available pipe classes were adapted - minimum velocity setting - Cyclic behaviour for ATES - That buffer tank is only used on peak day @@ -67,6 +68,10 @@ def test_end_scenario_sizing(self): # Check whehter the heat demand is matched demand_matching_test(self.solution, self.results) + # Check that indeed the available pipe classes were adapted based on expected flow + # Pipe connected to a demand + assert self.solution.pipe_classes("Pipe2")[0].name == "DN150" # initially DN->None + assert self.solution.pipe_classes("Pipe2")[-1].name == "DN250" # initially DN450 # Check the minimum velocity setting==default value. Keep the default value hard-coded to # prevent future coding bugs np.testing.assert_equal(1.0e-4, self.solution.heat_network_settings["minimum_velocity"]) diff --git a/tests/test_updated_esdl_post_process.py b/tests/test_updated_esdl_post_process.py index 80562681a..31f3f0ace 100644 --- a/tests/test_updated_esdl_post_process.py +++ b/tests/test_updated_esdl_post_process.py @@ -258,10 +258,14 @@ def test_updated_esdl(self): # Check pipe diameter if len(fnmatch.filter([energy_system.instance[0].area.asset[ii].id], "Pipe*")) == 1: - if asset_name in ["Pipe1", "Pipe1_cold_pipe", "Pipe4", "Pipe4_ret"]: + if asset_name in ["Pipe1", "Pipe1_ret"]: np.testing.assert_array_equal( - energy_system.instance[0].area.asset[ii].diameter.name, "DN150" + energy_system.instance[0].area.asset[ii].diameter.name, "DN250" ) # original pipe DN400 being sized + elif asset_name in ["Pipe4", "Pipe4_ret"]: + np.testing.assert_array_equal( + energy_system.instance[0].area.asset[ii].diameter.name, "DN200" + ) # original pipe DN900 being sized elif asset_name not in ["Pipe5", "Pipe5_ret"]: np.testing.assert_array_equal( energy_system.instance[0].area.asset[ii].diameter.name, "DN400" diff --git a/tests/test_updated_esdl_pre_process.py b/tests/test_updated_esdl_pre_process.py index 60693aa61..23e619029 100644 --- a/tests/test_updated_esdl_pre_process.py +++ b/tests/test_updated_esdl_pre_process.py @@ -24,6 +24,7 @@ def test_updated_esdl(self): - Check that the unique profile identification in profile_parser assigns the correct profile - Check that the correct mulitpler value has been used + - Test limiting the pipe classes for a pipe connected to a heat demand """ @@ -68,7 +69,7 @@ def test_updated_esdl(self): # demand profiles are the adapted profiles (peak-hourly, rest-5daily). Therefore the # expected max and average hard-coded values are compared to the problem values. np.testing.assert_allclose( - 1207800, + 8857200.0, max(problem.get_timeseries("HeatingDemand_b0ff.target_heat_demand").values), # demand4_MW, multiplier 0.75, same demand profile as demand HeatingDemand_08fd, but # with a different multiplier. So one would expect that this value differs from @@ -83,7 +84,7 @@ def test_updated_esdl(self): max(problem.get_timeseries("HeatingDemand_08fd.target_heat_demand").values), ) np.testing.assert_allclose( - 475130.185, # demand4_MW, multiplier 0.75 + 3484288.0247, # demand4_MW, multiplier 5.5 np.average(problem.get_timeseries("HeatingDemand_b0ff.target_heat_demand").values), ) np.testing.assert_allclose( @@ -98,16 +99,29 @@ def test_updated_esdl(self): # Check that the correct multiplier value was used # Compare 2 max values where the same profile was used but with different multiplier values # HeatingDemand_08fd: multiplier 0.5 - # HeatingDemand_b0ff: multplier 0.75 + # HeatingDemand_b0ff: multplier 5.5 np.testing.assert_allclose( max(problem.get_timeseries("HeatingDemand_08fd.target_heat_demand").values) / 0.5, - max(problem.get_timeseries("HeatingDemand_b0ff.target_heat_demand").values) / 0.75, + max(problem.get_timeseries("HeatingDemand_b0ff.target_heat_demand").values) / 5.5, ) np.testing.assert_allclose( np.average(problem.get_timeseries("HeatingDemand_08fd.target_heat_demand").values) / 0.5, np.average(problem.get_timeseries("HeatingDemand_b0ff.target_heat_demand").values) - / 0.75, + / 5.5, + ) + + # Test limiting the pipe classes for a pipe connected to a heat demand/producer + # Pipe connected to a demand + # Check that Pipe4 has 2 of pipe classes available, and that DN0 has not been + # included in the list of avialbel pipe classes. Pipe4 started as an optional pipe with + # DN900 as the starting point for the upper limit. + for key in problem._heat_pipe_topo_pipe_class_map["Pipe4"].keys(): + np.testing.assert_equal(key.name in ["DN150", "DN200"], True) + # Pipe connected to a producer + # initially DN900 + np.testing.assert_equal( + [*problem._heat_pipe_topo_pipe_class_map["Pipe1"].keys()][-1].name == "DN400", True ) From 65a30a39a167cf8b9e8f78f6e132e4368d2f5c32 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 4 Nov 2024 09:04:43 +0100 Subject: [PATCH 226/275] Reduce frequency of pipeline runs (#190) Pipeline will only run if a pull request is opened, reopened, marked "ready for review" and if synchronized(pushed) when not marked as draft. --- .github/workflows/ci.yml | 13 ++++++++++++- CHANGELOG.md | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a157f81aa..3a409b298 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,14 +1,20 @@ name: PyPi release run-name: CI pipeline on: - push: + pull_request: branches: - '*' + types: + - opened + - reopened + - synchronize + - ready_for_review jobs: style: name: Check style runs-on: ubuntu-latest + if: ${{ !github.event.pull_request.draft }} env: TOXENV: flake8,black steps: @@ -27,6 +33,7 @@ jobs: build: name: Check build runs-on: ubuntu-latest + if: ${{ !github.event.pull_request.draft }} steps: - uses: actions/checkout@v3 @@ -44,6 +51,7 @@ jobs: test_main: name: Test main runs-on: ubuntu-latest + if: ${{ !github.event.pull_request.draft }} env: TOXENV: py38 steps: @@ -63,6 +71,7 @@ jobs: test_pre_processing: name: Test pre-processing runs-on: ubuntu-latest + if: ${{ !github.event.pull_request.draft }} env: TOXENV: py38 steps: @@ -98,6 +107,7 @@ jobs: name: Test post-processing needs: test_pre_processing runs-on: ubuntu-latest + if: ${{ !github.event.pull_request.draft }} env: TOXENV: py38 steps: @@ -127,6 +137,7 @@ jobs: documentation: name: Generate documentation runs-on: ubuntu-latest + if: ${{ !github.event.pull_request.draft }} steps: - uses: actions/checkout@v3 diff --git a/CHANGELOG.md b/CHANGELOG.md index d76bdef2e..65bb60336 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ - Bugfix: No longer required to provide a power at the heating demands when a profile has been added. - Bugfix: Scaling fix on ATES temperature variable when temperature modelling not used. - Bugfix: Fix on nominals in electricity cables and gas pipes. Fix on nominals for nodes with logical links. +- Pipeline is only run when pull request is ready for review and synchronized or when opened. ## Fixed - Bug fix: machine error/rounding with updating lower bound values in the grow_workflow after stage 1 From da0ed5dcc4cd5b7460d292b3d226ecaceb8200be Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Mon, 4 Nov 2024 10:36:22 +0100 Subject: [PATCH 227/275] bug fix when setting nominals (#192) Bug fix: setting nominals while using logical links when all values are 1.0 --- CHANGELOG.md | 1 + src/mesido/electricity_physics_mixin.py | 6 +++++- src/mesido/gas_physics_mixin.py | 2 ++ src/mesido/heat_physics_mixin.py | 2 ++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65bb60336..cab96e262 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - Pipeline is only run when pull request is ready for review and synchronized or when opened. ## Fixed +- Bug fix: setting nominals while using logical links when all values are 1.0 - Bug fix: machine error/rounding with updating lower bound values in the grow_workflow after stage 1 - documentation: heat physics tank storage - bug fix in grow_workflow (heat networks), changed minimum velocity from 0 to default value diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index 308c8a30f..14c16347b 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -198,7 +198,11 @@ def pre(self): # asset connected to it. self.__bus_variable_nominal[ f"{node}.ElectricityConn[{i + 1}].{var}" - ] = np.median([x for x in nominals[var] if x != 1]) + ] = ( + np.median([x for x in nominals[var] if x != 1]) + if np.sum(nominals[var]) != len(nominals[var]) + else 1.0 + ) @property def extra_variables(self): diff --git a/src/mesido/gas_physics_mixin.py b/src/mesido/gas_physics_mixin.py index 0808975cf..e8748aec4 100644 --- a/src/mesido/gas_physics_mixin.py +++ b/src/mesido/gas_physics_mixin.py @@ -304,6 +304,8 @@ def _get_min_bound(bound): # asset connected to it. self.__gas_node_variable_nominal[f"{node}.GasConn[{i + 1}].{var}"] = ( np.median([x for x in nominals[var] if x != 1]) + if np.sum(nominals[var]) != len(nominals[var]) + else 1.0 ) def energy_system_options(self): diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 72ae814e3..5c66d3e4e 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -577,6 +577,8 @@ def _get_min_bound(bound): # asset connected to it. self.__heat_node_variable_nominal[f"{node}.HeatConn[{i + 1}].{var}"] = ( np.median([x for x in nominals[var] if x != 1]) + if np.sum(nominals[var]) != len(nominals[var]) + else 1.0 ) def energy_system_options(self): From 29c85f51dca807f73d1e62294b162b3adeb15ffd Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Mon, 4 Nov 2024 12:47:18 +0100 Subject: [PATCH 228/275] 186 order of ports e boiler (#193) The existing code expected the inports to be in a specific order which is not always the case as learned in the KIP gas work --- CHANGELOG.md | 1 + src/mesido/esdl/asset_to_component_base.py | 13 +++++++------ tests/test_elec_boiler.py | 6 ++++++ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cab96e262..65665919d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - Pipeline is only run when pull request is ready for review and synchronized or when opened. ## Fixed +- Bug fix: e-boiler expected order of inports while setting nominal values - Bug fix: setting nominals while using logical links when all values are 1.0 - Bug fix: machine error/rounding with updating lower bound values in the grow_workflow after stage 1 - documentation: heat physics tank storage diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index 183e9b740..8c29cb431 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -743,18 +743,19 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: q_nominals = {} try: for port in asset.in_ports: - connected_port = asset.in_ports[0].connectedTo[0] + connected_port = port.connectedTo[0] if isinstance(port.carrier, esdl.GasCommodity): q_nominals["Q_nominal_gas"] = self._port_to_q_nominal[connected_port] self._port_to_q_nominal[port] = q_nominals["Q_nominal_gas"] elif isinstance(port.carrier, esdl.HeatCommodity): q_nominals["Q_nominal"] = self._port_to_q_nominal[connected_port] self._port_to_q_nominal[port] = q_nominals["Q_nominal"] - else: - logger.error( - f"{asset.name} should have at least gas or heat specified on" - f"one of the in ports" - ) + if not q_nominals: + logger.error( + f"{asset.name} should have at least gas or heat specified on" + f"one of the in ports" + ) + exit(1) except KeyError: if isinstance(asset.out_ports[0].carrier, esdl.GasCommodity): connected_port = asset.out_ports[0].connectedTo[0] diff --git a/tests/test_elec_boiler.py b/tests/test_elec_boiler.py index 9db8d6f2e..8ca0005bd 100644 --- a/tests/test_elec_boiler.py +++ b/tests/test_elec_boiler.py @@ -94,3 +94,9 @@ def test_air_water_hp_elec(self): parameters["HeatPump_d8fd.cop"] * results["HeatPump_d8fd.Power_consumed"], results["HeatPump_d8fd.Heat_source"] + 1.0e-6, ) + + +if __name__ == "__main__": + TestElecBoiler = TestElecBoiler() + TestElecBoiler.test_elec_boiler() + TestElecBoiler.test_air_water_hp_elec() From c9acb8d19915a71248bbd9aff9afb92408ec8c03 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Tue, 5 Nov 2024 11:27:55 +0100 Subject: [PATCH 229/275] Run pipeline when merged to main (#196) Also run pipeline when merged to main --- .github/workflows/ci.yml | 3 +++ CHANGELOG.md | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3a409b298..b90f3aa1f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,6 +9,9 @@ on: - reopened - synchronize - ready_for_review + push: + branches: + - main jobs: style: diff --git a/CHANGELOG.md b/CHANGELOG.md index 65665919d..1ab9e4532 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,7 @@ - Bugfix: No longer required to provide a power at the heating demands when a profile has been added. - Bugfix: Scaling fix on ATES temperature variable when temperature modelling not used. - Bugfix: Fix on nominals in electricity cables and gas pipes. Fix on nominals for nodes with logical links. -- Pipeline is only run when pull request is ready for review and synchronized or when opened. +- Pipeline is only run when pull request is ready for review and synchronized or when opened, as well as when a pull request is merged to main. ## Fixed - Bug fix: e-boiler expected order of inports while setting nominal values From c3f497f1724c136d8c3407aa7a5f5fdc540447cd Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Wed, 6 Nov 2024 09:17:17 +0100 Subject: [PATCH 230/275] 175 error feedback to mapeditor (#188) - Added MESIDO error exception class to raise applicable potential errors in a workflow & include required info for feedback in the mapeditor - Different error types can be check for different workflows via the utils functionality --- CHANGELOG.md | 1 + src/mesido/esdl/esdl_mixin.py | 2 +- src/mesido/esdl/profile_parser.py | 43 ++--- src/mesido/exceptions.py | 42 +++++ src/mesido/potential_errors.py | 68 +++++++ src/mesido/workflows/grow_workflow.py | 30 +-- src/mesido/workflows/utils/error_types.py | 66 +++++++ ...a_with_influx_profiles_error_check_1.esdl} | 0 ...1a_with_influx_profiles_error_check_2.esdl | 172 +++++++++++++++++ ...1a_with_influx_profiles_error_check_3.esdl | 177 ++++++++++++++++++ .../models/wko/model/LT_wko_error_check.esdl | 2 +- tests/models/wko/src/example.py | 23 +-- tests/test_cold_demand.py | 38 ++-- tests/test_profile_parsing.py | 103 +++++++--- 14 files changed, 657 insertions(+), 110 deletions(-) create mode 100644 src/mesido/exceptions.py create mode 100644 src/mesido/potential_errors.py create mode 100644 src/mesido/workflows/utils/error_types.py rename tests/models/unit_cases/case_1a/model/{1a_with_influx_profiles_error_check.esdl => 1a_with_influx_profiles_error_check_1.esdl} (100%) create mode 100644 tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check_2.esdl create mode 100644 tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check_3.esdl diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ab9e4532..10d9393aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # [Unreleased] - 2024-10-07 ## Added +- Added MESIDO error exception class to raise applicable potential errors in a workflow & include required info for feedback in the mapeditor - Limit the available pipe classes connetced to heat/gas demand/producers - Add demands and sources to the topology object to have easy access to the connected pipes/cables later on - Heating and cooling example case added (2 heating demands, 1 cold demand, hot and cold producer, WKO as seasonal storage) diff --git a/src/mesido/esdl/esdl_mixin.py b/src/mesido/esdl/esdl_mixin.py index f6caf85c0..3ca7f721f 100644 --- a/src/mesido/esdl/esdl_mixin.py +++ b/src/mesido/esdl/esdl_mixin.py @@ -536,7 +536,7 @@ def read(self) -> None: energy_system_components = self.energy_system_components esdl_carriers = self.esdl_carriers io = self.io - self._asset_potential_errors = self.__profile_reader.read_profiles( + self.__profile_reader.read_profiles( energy_system_components=energy_system_components, io=io, esdl_asset_id_to_name_map=self.esdl_asset_id_to_name_map, diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index 038818746..3685bcd5d 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -10,6 +10,7 @@ from esdl.units.conversion import ENERGY_IN_J, POWER_IN_W, convert_to_unit from mesido.esdl.common import Asset +from mesido.potential_errors import MesidoAssetIssueType, get_potential_errors import numpy as np @@ -46,11 +47,6 @@ def __init__(self, energy_system: esdl.EnergySystem, file_path: Optional[Path]): self._energy_system: esdl.EnergySystem = energy_system self._file_path: Optional[Path] = file_path self._reference_datetimes: Optional[pd.DatetimeIndex] = None - self._asset_potential_errors_identified: Dict[str, Dict] = { - "heat_demand.power": {}, # error type, heat demand name, error message - "cold_demand.power": {}, # error type, cold demand name, error message - "heat_demand.type": {}, # error type, heat demand name, error message - } def read_profiles( self, @@ -60,7 +56,7 @@ def read_profiles( esdl_assets: Dict[str, Asset], carrier_properties: Dict[str, Dict], ensemble_size: int, - ) -> Dict[str, Dict]: + ) -> None: """ This function takes a datastore and a dictionary of milp network components and loads a profile for each demand and source in the provided milp network components into the @@ -135,13 +131,18 @@ def read_profiles( if component_type in ["heat_demand", "cold_demand"]: max_profile_value = max(values) if asset_power < max_profile_value and asset_power != 0.0: - self._asset_potential_errors_identified[f"{component_type}.power"][ - component - ] = ( - f"{component}: The installed capacity of" + asset_id = esdl_asset_names_to_ids[component] + get_potential_errors().add_potential_issue( + ( + MesidoAssetIssueType.HEAT_DEMAND_POWER + if component_type == "heat_demand" + else MesidoAssetIssueType.COLD_DEMAND_POWER + ), + asset_id, + f"Asset named {component}: The installed capacity of" f" {round(asset_power / 1.0e6, 3)}MW should be larger than the" " maximum of the heat demand profile " - f"{round(max_profile_value / 1.0e6, 3)}MW" + f"{round(max_profile_value / 1.0e6, 3)}MW", ) for properties in carrier_properties.values(): @@ -159,7 +160,6 @@ def read_profiles( values=profile, ensemble_member=ensemble_member, ) - return self._asset_potential_errors_identified def _load_profiles_from_source( self, @@ -301,18 +301,19 @@ def _load_profiles_from_source( # For multicommidity work profiles need to be assigned to GenericConsumer, but # not for heat network (this asset_potential_errors is used in grow_workflow) if type(asset) is esdl.GenericConsumer: - # asset_potential_errors - self._asset_potential_errors_identified["heat_demand.type"][asset.name] = ( - f"Asset {asset.name}: This asset is currently a GenericConsumer please" - " change it to a HeatingDemand" + get_potential_errors().add_potential_issue( + MesidoAssetIssueType.HEAT_DEMAND_TYPE, + asset.id, + f"Asset named {asset.name}: This asset is currently a GenericConsumer" + " please change it to a HeatingDemand", ) except KeyError: - raise RuntimeError( - f"The asset {profile.field} is of type {type(asset)} which is " - f"currently not supported to have a profile to be loaded " - f"from the database." + get_potential_errors().add_potential_issue( + MesidoAssetIssueType.ASSET_PROFILE_CAPABILITY, + asset.id, + f"Asset named {asset.name}: The assigment of profile field {profile.field}" + f" is not possible for this asset type {type(asset)}", ) - exit(1) else: raise RuntimeError( f"Got a profile for a {container}. Currently only profiles " diff --git a/src/mesido/exceptions.py b/src/mesido/exceptions.py new file mode 100644 index 000000000..08b51a970 --- /dev/null +++ b/src/mesido/exceptions.py @@ -0,0 +1,42 @@ +from typing import Dict, TYPE_CHECKING + +if TYPE_CHECKING: # This prevents circular referencing between this file and potential_errors.py + from mesido.potential_errors import ErrorMessage, MesidoAssetIssueType + + +class MesidoAssetIssueError(Exception): + """ + This class is used as a MESIDO defined exception class. + """ + + error_type: "MesidoAssetIssueType" + general_issue: str + message_per_asset_id: Dict[str, "ErrorMessage"] + + def __init__( + self, + general_issue: str, + error_type: "MesidoAssetIssueType", + message_per_asset_id: Dict[str, "ErrorMessage"], + ): + + self.error_type = error_type + self.general_issue = general_issue + self.message_per_asset_id = message_per_asset_id + + def __str__(self) -> str: + """ + Returns + ------- + A string containing the following: + - Error type (e.g.HEAT_DEMAND_POWER) + - General meassage about the group of error messages per asset id + - Asset id + - Error message for the applicable asset + """ + return_string = f"{self.error_type}: {self.general_issue}" + for keys, values in self.message_per_asset_id.items(): + return_string += f"\nAsset id: {keys}" + return_string += f" {values}" + + return return_string diff --git a/src/mesido/potential_errors.py b/src/mesido/potential_errors.py new file mode 100644 index 000000000..399506fab --- /dev/null +++ b/src/mesido/potential_errors.py @@ -0,0 +1,68 @@ +from enum import Enum +from typing import Dict, List, NoReturn + +from mesido.exceptions import MesidoAssetIssueError + +AssetId = str +ErrorMessage = str + + +# Asset error type that can occur +class MesidoAssetIssueType(Enum): + HEAT_DEMAND_POWER = "heat_demand.power" + COLD_DEMAND_POWER = "cold_demand.power" + HEAT_DEMAND_TYPE = "heat_demand.type" + ASSET_PROFILE_CAPABILITY = "asset_profile.capability" + + +class PotentialErrors: + """Singleton, do not instantiate. Use POTENTIAL_ERRORS.""" + + _gathered_potential_issues: Dict[MesidoAssetIssueType, Dict[AssetId, List[ErrorMessage]]] + + def __init__(self): + self._gathered_potential_issues = {} + + def add_potential_issue( + self, issue_type: MesidoAssetIssueType, asset_id: AssetId, error_message: ErrorMessage + ) -> None: + """ + Add potential issues to _gathered_potential_issues. + + """ + self._gathered_potential_issues.setdefault(issue_type, {}) + self._gathered_potential_issues[issue_type][asset_id] = error_message + + def have_issues_for(self, issue_type: MesidoAssetIssueType) -> bool: + """ + Check if the potential issue exists. + + """ + result = False + if issue_type in self._gathered_potential_issues: + result = True + + return result + + def convert_to_exception( + self, issue_type: MesidoAssetIssueType, general_issue: str + ) -> NoReturn: + """ + Raise a MESIDO exception if the issue exists. + + """ + if issue_type not in self._gathered_potential_issues: + raise RuntimeError("Something very wrong. Issue type not in potential errors") + + raise MesidoAssetIssueError( + general_issue=general_issue, + error_type=issue_type, + message_per_asset_id=self._gathered_potential_issues[issue_type], + ) + + +POTENTIAL_ERRORS = PotentialErrors() + + +def get_potential_errors() -> PotentialErrors: + return POTENTIAL_ERRORS diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index fd3eee9b9..57fcc2027 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -3,7 +3,6 @@ import os import sys import time -from typing import Dict from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin from mesido.esdl.esdl_mixin import ESDLMixin @@ -14,6 +13,7 @@ from mesido.workflows.utils.adapt_profiles import ( adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day, ) +from mesido.workflows.utils.error_types import HEAT_NETWORK_ERRORS, potential_error_to_error from mesido.workflows.utils.helpers import main_decorator, run_optimization_problem_solver import numpy as np @@ -181,8 +181,6 @@ def __init__(self, *args, **kwargs): self._save_json = False - self._asset_potential_errors = Dict[str, Dict] - def parameters(self, ensemble_member): parameters = super().parameters(ensemble_member) parameters["peak_day_index"] = self.__indx_max_peak @@ -202,31 +200,7 @@ def read(self): """ super().read() - # Error checking: - # - installed capacity/power of a heating/cooling demand is sufficient for the specified - # demand profile - is_error = False - for error_type, errors in self._asset_potential_errors.items(): - if error_type in ["heat_demand.power", "cold_demand.power"]: - if len(errors) > 0: - for asset_name in errors: - logger.error(self._asset_potential_errors[error_type][asset_name]) - logger.error( - "Asset insufficient installed capacity: please increase the" - " installed power or reduce the demand profile peak value of the demand(s)" - " listed." - ) - is_error = True - elif error_type in ["heat_demand.type"]: - if len(errors) > 0: - for asset_name in errors: - logger.error(self._asset_potential_errors[error_type][asset_name]) - logger.error("Incorrect asset type: please update.") - is_error = True - - if is_error: - exit(1) - # end error checking + potential_error_to_error(HEAT_NETWORK_ERRORS) ( self.__indx_max_peak, diff --git a/src/mesido/workflows/utils/error_types.py b/src/mesido/workflows/utils/error_types.py new file mode 100644 index 000000000..46557ccbc --- /dev/null +++ b/src/mesido/workflows/utils/error_types.py @@ -0,0 +1,66 @@ +from enum import Enum + +from mesido.potential_errors import MesidoAssetIssueType, get_potential_errors + +# Convert potentials errors to errors for the following networks/definitions +HEAT_NETWORK_ERRORS = "heat_network" +HEAT_AND_COOL_NETWORK_ERRORS = "heat_and_cool_network" +CUSTOM_ERRORS = "custom_errors" # an example of custom stuff that can be added in the future + + +def mesido_issue_type_gen_message(issue_type: MesidoAssetIssueType) -> str: + """ + Get general message per issue type. + + Returns + ------- + String message + """ + type_and_general_meassage = { + MesidoAssetIssueType.HEAT_DEMAND_POWER: "Asset insufficient installed capacity: please" + " increase the installed power or reduce the demand profile peak value of the demand(s)" + " listed.", + MesidoAssetIssueType.COLD_DEMAND_POWER: "Asset insufficient installed capacity: please" + " increase the installed power or reduce the demand profile peak value of the demand(s)" + " listed.", + MesidoAssetIssueType.HEAT_DEMAND_TYPE: "Incorrect asset type: please update.", + MesidoAssetIssueType.ASSET_PROFILE_CAPABILITY: "Profile assigment not allowed.", + } + + return type_and_general_meassage[issue_type] + + +def potential_error_to_error(network_check_type: Enum) -> None: + """ + Convert potential errors to errors for the define error types + + """ + + errors_on_types = { + HEAT_NETWORK_ERRORS: [ + MesidoAssetIssueType.HEAT_DEMAND_POWER, + MesidoAssetIssueType.COLD_DEMAND_POWER, + MesidoAssetIssueType.HEAT_DEMAND_TYPE, + MesidoAssetIssueType.ASSET_PROFILE_CAPABILITY, + ], + HEAT_AND_COOL_NETWORK_ERRORS: [ + MesidoAssetIssueType.HEAT_DEMAND_POWER, + MesidoAssetIssueType.COLD_DEMAND_POWER, + MesidoAssetIssueType.HEAT_DEMAND_TYPE, + MesidoAssetIssueType.ASSET_PROFILE_CAPABILITY, + ], + # Example of extra error types / groups that can be added. This one is not used yet. + CUSTOM_ERRORS: [MesidoAssetIssueType.ASSET_PROFILE_CAPABILITY], + } + + # Error checking: + # - installed capacity/power of a heating/cooling demand is sufficient for the specified + # demand profile + # - asset used for a heating demand + # - profile assigment capability + # TODO: Once pyhton 3.11 is used, use the following: Group multiple exceptions (as it is + # possible multiple exceptions at once are true here): + # https://www.geeksforgeeks.org/exception-groups-in-python/ + for etype in errors_on_types[network_check_type]: + if get_potential_errors().have_issues_for(etype): + get_potential_errors().convert_to_exception(etype, mesido_issue_type_gen_message(etype)) diff --git a/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check.esdl b/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check_1.esdl similarity index 100% rename from tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check.esdl rename to tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check_1.esdl diff --git a/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check_2.esdl b/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check_2.esdl new file mode 100644 index 000000000..220fb191a --- /dev/null +++ b/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check_2.esdl @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check_3.esdl b/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check_3.esdl new file mode 100644 index 000000000..67050c082 --- /dev/null +++ b/tests/models/unit_cases/case_1a/model/1a_with_influx_profiles_error_check_3.esdl @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/wko/model/LT_wko_error_check.esdl b/tests/models/wko/model/LT_wko_error_check.esdl index 2c2f72be7..977801e08 100644 --- a/tests/models/wko/model/LT_wko_error_check.esdl +++ b/tests/models/wko/model/LT_wko_error_check.esdl @@ -11,7 +11,7 @@ - + diff --git a/tests/models/wko/src/example.py b/tests/models/wko/src/example.py index 6965b34fd..0540db248 100644 --- a/tests/models/wko/src/example.py +++ b/tests/models/wko/src/example.py @@ -7,6 +7,10 @@ from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.head_loss_class import HeadLossOption from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.utils.error_types import ( + HEAT_AND_COOL_NETWORK_ERRORS, + potential_error_to_error, +) import numpy as np @@ -169,24 +173,7 @@ def read(self): """ super().read() - # Error checking: - # - installed capacity/power of a heating/cooling demand is sufficient for the specified - # demand profile - is_error = False - for error_type, errors in self._asset_potential_errors.items(): - if error_type in ["heat_demand.power", "cold_demand.power"]: - if len(errors) > 0: - for asset_name in errors: - logger.error(self._asset_potential_errors[error_type][asset_name]) - logger.error( - "Asset insufficient installed capacity: please increase the" - " installed power or reduce the demand profile peak value of the demand(s)" - " listed." - ) - is_error = True - if is_error: - exit(1) - # end error checking + potential_error_to_error(HEAT_AND_COOL_NETWORK_ERRORS) def path_goals(self): """ diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 646dec184..bf610665e 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -1,10 +1,14 @@ import logging +import unittest.mock from pathlib import Path from unittest import TestCase from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.exceptions import MesidoAssetIssueError +from mesido.potential_errors import MesidoAssetIssueType, PotentialErrors from mesido.util import run_esdl_mesido_optimization +from mesido.workflows.utils.error_types import mesido_issue_type_gen_message import numpy as np @@ -20,12 +24,12 @@ class TestColdDemand(TestCase): def test_insufficient_capacity(self): """ - This test checks that the error checks in the code for sufficient installed cool/heatig - capacity of a cold/heat demand is sufficient (grow_workflow not used) + This test checks that the error checks in the code for sufficient installed cooling + capacity of a cold demand is sufficient (grow_workflow not used) Checks: - 1. SystemExit is raised - 2. That the error is due to insufficient heat/cold specified capacities + 1. Correct error is raised + 2. That the error is due to insufficient cold specified capacities """ import models.wko.src.example as example @@ -35,7 +39,9 @@ def test_insufficient_capacity(self): base_folder = Path(example.__file__).resolve().parent.parent - with self.assertRaises(SystemExit) as cm: + with self.assertRaises(MesidoAssetIssueError) as cm, unittest.mock.patch( + "mesido.potential_errors.POTENTIAL_ERRORS", PotentialErrors() + ): _ = run_esdl_mesido_optimization( HeatProblem, base_folder=base_folder, @@ -44,19 +50,17 @@ def test_insufficient_capacity(self): profile_reader=ProfileReaderFromFile, input_timeseries_file="timeseries.csv", ) - # Is SystemExit is raised - np.testing.assert_array_equal(cm.exception.code, 1) - # Check that the heat & cold demand had an error + # Check that the cold demand had an error + np.testing.assert_equal(cm.exception.error_type, MesidoAssetIssueType.COLD_DEMAND_POWER) np.testing.assert_equal( - logs_list[0].msg == "HeatingDemand_9b90: The installed capacity of 0.05MW should be" - " larger than the maximum of the heat demand profile 0.15MW", - True, + cm.exception.general_issue, + mesido_issue_type_gen_message(MesidoAssetIssueType.COLD_DEMAND_POWER), ) np.testing.assert_equal( - logs_list[2].msg == "CoolingDemand_15e8: The installed capacity of 0.05MW should be" - " larger than the maximum of the heat demand profile 0.15MW", - True, + cm.exception.message_per_asset_id["15e803b4-1224-4cac-979f-87747a656741"], + "Asset named CoolingDemand_15e8: The installed capacity of 0.05MW should be larger" + " than the maximum of the heat demand profile 0.15MW", ) def test_cold_demand(self): @@ -257,6 +261,6 @@ def energy_system_options(self): if __name__ == "__main__": test_cold_demand = TestColdDemand() test_cold_demand.test_insufficient_capacity() - test_cold_demand.test_cold_demand() - test_cold_demand.test_wko() - test_cold_demand.test_airco() + # test_cold_demand.test_cold_demand() + # test_cold_demand.test_wko() + # test_cold_demand.test_airco() diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index 741074ee7..5c3864b97 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -1,5 +1,6 @@ import datetime import unittest +import unittest.mock from pathlib import Path from typing import Optional @@ -7,7 +8,10 @@ from mesido.esdl.esdl_parser import ESDLFileParser from mesido.esdl.profile_parser import InfluxDBProfileReader, ProfileReaderFromFile +from mesido.exceptions import MesidoAssetIssueError +from mesido.potential_errors import MesidoAssetIssueType, PotentialErrors from mesido.workflows import EndScenarioSizingStaged +from mesido.workflows.utils.error_types import mesido_issue_type_gen_message import numpy as np @@ -36,8 +40,11 @@ def test_asset_potential_errors(self): capacity of a cold/heat demand is sufficient (grow_workflow) Checks: - 1. SystemExit is raised - 2. That the error is due to insufficient heat specified capacities + 1. Correct error is raised + 2. That the error is due to: + - insufficient heat specified capacities for 3 heating demands + - incorrect heating demand type being used for 1 heating demand + - profile cannot be assigned to a specific asset """ import models.unit_cases.case_1a.src.run_1a as run_1a @@ -47,51 +54,99 @@ def test_asset_potential_errors(self): logger, logs_list = create_log_list_scaling("WarmingUP-MPC") - with self.assertRaises(SystemExit) as cm: + with self.assertRaises(MesidoAssetIssueError) as cm, unittest.mock.patch( + "mesido.potential_errors.POTENTIAL_ERRORS", PotentialErrors() + ): problem = EndScenarioSizingStaged( esdl_parser=ESDLFileParser, base_folder=base_folder, model_folder=model_folder, input_folder=input_folder, - esdl_file_name="1a_with_influx_profiles_error_check.esdl", + esdl_file_name="1a_with_influx_profiles_error_check_1.esdl", profile_reader=MockInfluxDBProfileReader, input_timeseries_file="influx_mock.csv", ) problem.pre() - # Is SystemExit is raised - np.testing.assert_array_equal(cm.exception.code, 1) # Check that the heat demand had an error + np.testing.assert_equal(cm.exception.error_type, MesidoAssetIssueType.HEAT_DEMAND_POWER) np.testing.assert_equal( - logs_list[0].msg == "HeatingDemand_2ab9: The installed capacity of 6.0MW should be" - " larger than the maximum of the heat demand profile 5175.717MW", - True, + cm.exception.general_issue, + mesido_issue_type_gen_message(MesidoAssetIssueType.HEAT_DEMAND_POWER), ) np.testing.assert_equal( - logs_list[1].msg == "HeatingDemand_506c: The installed capacity of 2.0MW should be" - " larger than the maximum of the heat demand profile 1957.931MW", - True, + cm.exception.message_per_asset_id["2ab92324-f86e-4976-9a6e-f7454b77ba3c"], + "Asset named HeatingDemand_2ab9: The installed capacity of 6.0MW should be larger than" + " the maximum of the heat demand profile 5175.717MW", ) np.testing.assert_equal( - logs_list[2].msg == "HeatingDemand_6662: The installed capacity of 2.0MW should be" - " larger than the maximum of the heat demand profile 1957.931MW", - True, + cm.exception.message_per_asset_id["506c41ac-d415-4482-bf10-bf12f17aeac6"], + "Asset named HeatingDemand_506c: The installed capacity of 2.0MW should be larger than" + " the maximum of the heat demand profile 1957.931MW", ) np.testing.assert_equal( - logs_list[3].msg == "Asset insufficient installed capacity: please increase the" - " installed power or reduce the demand profile peak value of the demand(s) listed.", - True, + cm.exception.message_per_asset_id["6662aebb-f85e-4df3-9f7e-c58993586fba"], + "Asset named HeatingDemand_6662: The installed capacity of 2.0MW should be larger than" + " the maximum of the heat demand profile 1957.931MW", + ) + np.testing.assert_equal(len(cm.exception.message_per_asset_id), 3.0) + + # Check heating demand type error + with self.assertRaises(MesidoAssetIssueError) as cm, unittest.mock.patch( + "mesido.potential_errors.POTENTIAL_ERRORS", PotentialErrors() + ): + problem = EndScenarioSizingStaged( + esdl_parser=ESDLFileParser, + base_folder=base_folder, + model_folder=model_folder, + input_folder=input_folder, + esdl_file_name="1a_with_influx_profiles_error_check_2.esdl", + profile_reader=MockInfluxDBProfileReader, + input_timeseries_file="influx_mock.csv", + ) + problem.pre() + # Check that the heat demand had an error + np.testing.assert_equal(cm.exception.error_type, MesidoAssetIssueType.HEAT_DEMAND_TYPE) + np.testing.assert_equal( + cm.exception.general_issue, + mesido_issue_type_gen_message(MesidoAssetIssueType.HEAT_DEMAND_TYPE), + ) + np.testing.assert_equal( + cm.exception.message_per_asset_id["2ab92324-f86e-4976-9a6e-f7454b77ba3c"], + "Asset named HeatingDemand_2ab9: This asset is currently a GenericConsumer please" + " change it to a HeatingDemand", + ) + np.testing.assert_equal(len(cm.exception.message_per_asset_id), 1.0) + + # Check asset profile capability + with self.assertRaises(MesidoAssetIssueError) as cm, unittest.mock.patch( + "mesido.potential_errors.POTENTIAL_ERRORS", PotentialErrors() + ): + problem = EndScenarioSizingStaged( + esdl_parser=ESDLFileParser, + base_folder=base_folder, + model_folder=model_folder, + input_folder=input_folder, + esdl_file_name="1a_with_influx_profiles_error_check_3.esdl", + profile_reader=MockInfluxDBProfileReader, + input_timeseries_file="influx_mock.csv", + ) + problem.pre() + # Check that the joint has an error + np.testing.assert_equal( + cm.exception.error_type, + MesidoAssetIssueType.ASSET_PROFILE_CAPABILITY, ) - # d np.testing.assert_equal( - logs_list[4].msg == "Asset HeatingDemand_2ab9: This asset is currently a" - " GenericConsumer please change it to a HeatingDemand", - True, + cm.exception.general_issue, + mesido_issue_type_gen_message(MesidoAssetIssueType.ASSET_PROFILE_CAPABILITY), ) np.testing.assert_equal( - logs_list[5].msg == "Incorrect asset type: please update.", - True, + cm.exception.message_per_asset_id["95802cf8-61d6-4773-bb99-e275c3bf26cc"], + "Asset named Joint_9580: The assigment of profile field demand3_MW is not possible for" + " this asset type ", ) + np.testing.assert_equal(len(cm.exception.message_per_asset_id), 1.0) class TestProfileLoading(unittest.TestCase): From bfbe4bd81c74cb8ea83341d2a809130cffa6fe87 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Wed, 6 Nov 2024 09:45:59 +0100 Subject: [PATCH 231/275] Update calc for q max and nominal (#199) - When using the energy method to calculate Q, then "/1e3" was incorrectly used at some places and the cp value of water is used in the calculation when energy values are needed - Add energy calc usage for e_boiler and gas boiler (coming from kip gas work) --- CHANGELOG.md | 2 + src/mesido/esdl/asset_to_component_base.py | 128 +++++++++++++++++---- 2 files changed, 106 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10d9393aa..5f26ffb5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ - Pipeline is only run when pull request is ready for review and synchronized or when opened, as well as when a pull request is merged to main. ## Fixed +- Bug fix: Logical links: e_boiler & gas boiler update to use energy values +- Bug fix: Q max and nominal calculation update when reference energy value - Bug fix: e-boiler expected order of inports while setting nominal values - Bug fix: setting nominals while using logical links when all values are 1.0 - Bug fix: machine error/rounding with updating lower bound values in the grow_workflow after stage 1 diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index 8c29cb431..8afcffdb3 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -72,8 +72,9 @@ def get_internal_energy(asset_name, carrier): logger.warning( f"Neither gas or hydrogen was used in the carrier " f"name of pipe {asset_name}" ) - internal_energy = 46.0e6 # natural gas at about 8 bar - return internal_energy # we use gram per second and coolprop gives results in kJ per kg + # TODO: resolve heating value (default value below) vs internal energy values (above) + internal_energy = 46.0e6 # natural gas at about 1 bar [J/kg] heating value + return internal_energy # [J/kg] def get_density(asset_name, carrier): @@ -109,10 +110,10 @@ def get_density(asset_name, carrier): 16.0e5, "INCOMP::Water", ) - return density # to convert from kg/m3 + return density # kg/m3 else: logger.warning( - f"Neither water, gas or hydrogen was used in the carrier " f"name of pipe {asset_name}" + f"Neither gas/hydrogen/heat was used in the carrier " f"name of pipe {asset_name}" ) density = 6.2 # natural gas at about 8 bar return density * 1.0e3 # to convert from kg/m3 to g/m3 @@ -457,15 +458,25 @@ def _set_electricity_current_nominal_and_max( def _get_connected_q_max(self, asset: Asset) -> float: if asset.in_ports is not None and asset.asset_type != "Electrolyzer": for port in asset.in_ports: + convert_density_units = 1.0 + energy_reference_j_kg = 1.0 + if not isinstance(port.carrier, esdl.HeatCommodity): + convert_density_units = 1.0e3 # convert g/m3 to kg/m3 if needed + energy_reference_j_kg = get_internal_energy(asset.name, port.carrier) + else: + # heat_value / rho * minimum_dT => [J/m3K] / [kg/m3] * 1.0 [K] => [J/kg] + energy_reference_j_kg = HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0 + connected_port = port.connectedTo[0] q_max = ( self._port_to_q_max.get(connected_port, None) if self._port_to_q_max.get(connected_port, False) else max([asset.attributes.get(key, -1) for key in self.__power_keys]) / ( + # note rho -> gas/hydrogen g/m3, heat kg/m3 get_density(asset.name, port.carrier) - * get_internal_energy(asset.name, port.carrier) - / 1.0e3 + * energy_reference_j_kg + / convert_density_units ) ) if q_max is not None: @@ -478,15 +489,25 @@ def _get_connected_q_max(self, asset: Asset) -> float: ) elif asset.out_ports is not None: for port in asset.out_ports: + convert_density_units = 1.0 + energy_reference_j_kg = 1.0 + if not isinstance(port.carrier, esdl.HeatCommodity): + convert_density_units = 1.0e3 # convert g/m3 to kg/m3 if needed + energy_reference_j_kg = get_internal_energy(asset.name, port.carrier) + else: + # heat_value / rho * minimum_dT => [J/m3K] / [kg/m3] * 1.0 [K] => [J/kg] + energy_reference_j_kg = HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0 + connected_port = port.connectedTo[0] q_max = ( self._port_to_q_max.get(connected_port, None) if self._port_to_q_max.get(connected_port, False) else max([asset.attributes.get(key, -1) for key in self.__power_keys]) / ( + # note rho -> gas/hydrogen g/m3, heat kg/m3 get_density(asset.name, port.carrier) - * get_internal_energy(asset.name, port.carrier) - / 1.0e3 + * energy_reference_j_kg + / convert_density_units ) ) if q_max is not None: @@ -687,15 +708,25 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: if isinstance(port.carrier, esdl.GasCommodity) or isinstance( port.carrier, esdl.HeatCommodity ): + convert_density_units = 1.0 + energy_reference_j_kg = 1.0 + if not isinstance(port.carrier, esdl.HeatCommodity): + convert_density_units = 1.0e3 # convert g/m3 to kg/m3 if needed + energy_reference_j_kg = get_internal_energy(asset.name, port.carrier) + else: + # heat_value / rho * minimum_dT => [J/m3K] / [kg/m3] * 1.0 [K] => [J/kg] + energy_reference_j_kg = HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0 + connected_port = port.connectedTo[0] q_nominal = ( self._port_to_q_nominal.get(connected_port, None) if self._port_to_q_nominal.get(connected_port, False) else max([asset.attributes.get(key, -1) for key in self.__power_keys]) / ( + # note rho -> gas/hydrogen g/m3, heat kg/m3 get_density(asset.name, port.carrier) - * get_internal_energy(asset.name, port.carrier) - / 1.0e3 + * energy_reference_j_kg + / convert_density_units ) ) if q_nominal is not None: @@ -706,15 +737,25 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: if isinstance(port.carrier, esdl.GasCommodity) or isinstance( port.carrier, esdl.HeatCommodity ): + convert_density_units = 1.0 + energy_reference_j_kg = 1.0 + if not isinstance(port.carrier, esdl.HeatCommodity): + convert_density_units = 1.0e3 # convert g/m3 to kg/m3 if needed + energy_reference_j_kg = get_internal_energy(asset.name, port.carrier) + else: + # heat_value / rho * minimum_dT => [J/m3K] / [kg/m3] * 1.0 [K] => [J/kg] + energy_reference_j_kg = HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0 + connected_port = port.connectedTo[0] q_nominal = ( self._port_to_q_nominal.get(connected_port, None) if self._port_to_q_nominal.get(connected_port, False) else max([asset.attributes.get(key, -1) for key in self.__power_keys]) / ( + # note rho -> gas/hydrogen g/m3, heat kg/m3 get_density(asset.name, port.carrier) - * get_internal_energy(asset.name, port.carrier) - / 1.0e3 + * energy_reference_j_kg + / convert_density_units ) ) if q_nominal is not None: @@ -725,15 +766,25 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: if isinstance(port.carrier, esdl.GasCommodity) or isinstance( port.carrier, esdl.HeatCommodity ): + convert_density_units = 1.0 + energy_reference_j_kg = 1.0 + if not isinstance(port.carrier, esdl.HeatCommodity): + convert_density_units = 1.0e3 # convert g/m3 to kg/m3 if needed + energy_reference_j_kg = get_internal_energy(asset.name, port.carrier) + else: + # heat_value / rho * minimum_dT => [J/m3K] / [kg/m3] * 1.0 [K] => [J/kg] + energy_reference_j_kg = HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0 + connected_port = port.connectedTo[0] q_nominal = ( self._port_to_q_nominal.get(connected_port, None) if self._port_to_q_nominal.get(connected_port, False) else max([asset.attributes.get(key, -1) for key in self.__power_keys]) / ( + # note rho -> gas/hydrogen g/m3, heat kg/m3 get_density(asset.name, port.carrier) - * get_internal_energy(asset.name, port.carrier) - / 1.0e3 + * energy_reference_j_kg + / convert_density_units ) ) if q_nominal is not None: @@ -744,15 +795,43 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: try: for port in asset.in_ports: connected_port = port.connectedTo[0] - if isinstance(port.carrier, esdl.GasCommodity): - q_nominals["Q_nominal_gas"] = self._port_to_q_nominal[connected_port] - self._port_to_q_nominal[port] = q_nominals["Q_nominal_gas"] - elif isinstance(port.carrier, esdl.HeatCommodity): - q_nominals["Q_nominal"] = self._port_to_q_nominal[connected_port] - self._port_to_q_nominal[port] = q_nominals["Q_nominal"] - if not q_nominals: + if isinstance(port.carrier, esdl.GasCommodity) or isinstance( + port.carrier, esdl.HeatCommodity + ): + nominal_string = "Q_nominal" + convert_density_units = 1.0 + energy_reference_j_kg = 1.0 + if isinstance(port.carrier, esdl.GasCommodity): + nominal_string += "_gas" + convert_density_units = 1.0e3 # convert g/m3 to kg/m3 if needed + energy_reference_j_kg = get_internal_energy(asset.name, port.carrier) + elif isinstance(port.carrier, esdl.HeatCommodity): + # heat_value / rho * minimum_dT => [J/m3K] / [kg/m3] * 1.0 [K] => [J/kg] + energy_reference_j_kg = HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0 + + if isinstance(connected_port.energyasset, esdl.Joint): + q_nominal = ( + self._port_to_q_nominal.get(connected_port, None) + if self._port_to_q_nominal.get(connected_port, False) + else max( + [asset.attributes.get(key, -1) for key in self.__power_keys] + ) + / ( + # note rho -> gas/hydrogen g/m3, heat kg/m3 + get_density(asset.name, port.carrier) + * energy_reference_j_kg + / convert_density_units + ) + ) + if q_nominal is not None: + q_nominals[nominal_string] = q_nominal + self._port_to_q_nominal[port] = q_nominals[nominal_string] + else: + q_nominals[nominal_string] = self._port_to_q_nominal[connected_port] + self._port_to_q_nominal[port] = q_nominals[nominal_string] + if q_nominals is None: logger.error( - f"{asset.name} should have at least gas or heat specified on" + f"{asset.name} should have at least gas or heat specified on " f"one of the in ports" ) exit(1) @@ -764,6 +843,7 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: if self._port_to_q_max.get(connected_port, False) else max([asset.attributes.get(key, -1) for key in self.__power_keys]) / ( + # note rho -> gas/hydrogen g/m3, heat kg/m3 get_density(asset.name, port.carrier) * get_internal_energy(asset.name, port.carrier) / 1.0e3 @@ -795,9 +875,9 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: if self._port_to_q_max.get(connected_port, False) else max([asset.attributes.get(key, -1) for key in self.__power_keys]) / ( + # note rho -> gas/hydrogen g/m3, heat kg/m3 get_density(asset.name, p.carrier) - * get_internal_energy(asset.name, p.carrier) - / 1.0e3 + * (HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0) ) ) if q_nominal is not None: From 1ad0d2bc13a5a5aeb573308811bb510056c373ee Mon Sep 17 00:00:00 2001 From: Sebastiaan la Fleur Date: Wed, 6 Nov 2024 15:39:27 +0100 Subject: [PATCH 232/275] Speed up adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day by a factor of 6. (#187) Speedup: Changed the way daily average profiles are created from hourly profiles to speed up the conversion. --- CHANGELOG.md | 3 ++- src/mesido/workflows/utils/adapt_profiles.py | 12 +++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f26ffb5b..3a13c81f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,8 @@ - Bugfix: No longer required to provide a power at the heating demands when a profile has been added. - Bugfix: Scaling fix on ATES temperature variable when temperature modelling not used. - Bugfix: Fix on nominals in electricity cables and gas pipes. Fix on nominals for nodes with logical links. -- Pipeline is only run when pull request is ready for review and synchronized or when opened, as well as when a pull request is merged to main. +- Pipeline is only run when pull request is ready for review and synchronized or when opened, as well as when a pull request is merged to main. +- Speedup: Changed the way daily average profiles are created from hourly profiles to speed up the conversion. ## Fixed - Bug fix: Logical links: e_boiler & gas boiler update to use energy values diff --git a/src/mesido/workflows/utils/adapt_profiles.py b/src/mesido/workflows/utils/adapt_profiles.py index 5ac1efb12..f184d72da 100644 --- a/src/mesido/workflows/utils/adapt_profiles.py +++ b/src/mesido/workflows/utils/adapt_profiles.py @@ -31,17 +31,15 @@ def set_data_with_averages_and_peak_day( ) return - new_data = list() + new_data = [] data_timestamps = data.times - data_datetimes = [ - problem.io.datetimes[0] + datetime.timedelta(seconds=s) for s in data_timestamps + new_date_timestamps = [ + (new_dt - problem.io.datetimes[0]).total_seconds() for new_dt in new_date_times ] - assert new_date_times[0] == data_datetimes[0] - data_values = data.values values_for_mean = [0.0] - for dt, val in zip(data_datetimes, data_values): - if dt in new_date_times: + for dt, val in zip(data_timestamps, data.values): + if dt in new_date_timestamps: new_data.append(np.mean(values_for_mean)) values_for_mean = [val] else: From 0c0357dc07441c7e09e37ade6306ba076da05c45 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Thu, 7 Nov 2024 09:22:14 +0100 Subject: [PATCH 233/275] Updated file for MESIDO release (#203) Update changelog for new MESIDO release --- CHANGELOG.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a13c81f5..ba6b3db07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,16 @@ -# [Unreleased] - 2024-10-07 +# [Unreleased] - 2024-11-07 + +## Added +- xx + +## Changed +- xx + +## Fixed +- xx + + +# [0.1.8] - 2024-11-07 ## Added - Added MESIDO error exception class to raise applicable potential errors in a workflow & include required info for feedback in the mapeditor From 67575d5cc60d13e6991e0cdaa366ceb41d773fcd Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Thu, 7 Nov 2024 14:13:18 +0100 Subject: [PATCH 234/275] Same mip gap setting in grow workflow for all solvers (#205) Same mip gap setting in grow workflow for all solvers --- CHANGELOG.md | 2 +- src/mesido/workflows/grow_workflow.py | 38 +++++++++++++-------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ba6b3db07..fa951961e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ - xx ## Fixed -- xx +- Bugfix: same mip gap settings for all solvers in grow_workflow. # [0.1.8] - 2024-11-07 diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 57fcc2027..46afcec45 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -3,6 +3,7 @@ import os import sys import time +from typing import Dict from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin from mesido.esdl.esdl_mixin import ESDLMixin @@ -70,19 +71,28 @@ def function(self, optimization_problem, ensemble_member): return optimization_problem.state(self.state) +def _mip_gap_settings(mip_gap_name: str, problem) -> Dict[str, float]: + """Creating the same MIP gap settings for all solvers.""" + + options = {} + if hasattr(problem, "_stage"): + if problem._stage == 1: + options[mip_gap_name] = 0.005 + else: + options[mip_gap_name] = 0.02 + else: + options[mip_gap_name] = 0.02 + + return options + + class SolverHIGHS: def solver_options(self): options = super().solver_options() options["casadi_solver"] = self._qpsol options["solver"] = "highs" highs_options = options["highs"] = {} - if hasattr(self, "_stage"): - if self._stage == 1: - highs_options["mip_rel_gap"] = 0.005 - else: - highs_options["mip_rel_gap"] = 0.02 - else: - highs_options["mip_rel_gap"] = 0.02 + highs_options.update(_mip_gap_settings("mip_rel_gap", self)) options["gurobi"] = None options["cplex"] = None @@ -96,12 +106,7 @@ def solver_options(self): options["casadi_solver"] = self._qpsol options["solver"] = "gurobi" gurobi_options = options["gurobi"] = {} - if hasattr(self, "_stage"): - if self._stage == 1: - gurobi_options["MIPgap"] = 0.005 - else: - gurobi_options["MIPgap"] = 0.02 - gurobi_options["MIPgap"] = 0.02 + gurobi_options.update(_mip_gap_settings("MIPgap", self)) gurobi_options["threads"] = 4 gurobi_options["LPWarmStart"] = 2 @@ -116,12 +121,7 @@ def solver_options(self): options["casadi_solver"] = self._qpsol options["solver"] = "cplex" cplex_options = options["cplex"] = {} - if hasattr(self, "_stage"): - if self._stage == 1: - cplex_options["CPX_PARAM_EPGAP"] = 0.005 - else: - cplex_options["CPX_PARAM_EPGAP"] = 0.02 - cplex_options["CPX_PARAM_EPGAP"] = 0.02 + cplex_options.update(_mip_gap_settings("CPX_PARAM_EPGAP", self)) options["highs"] = None From a0cc31a07d74164520f1f3d80a7fd96186d02ee9 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Mon, 11 Nov 2024 13:34:08 +0100 Subject: [PATCH 235/275] 208 bug fix head loss test case 1 (#210) Neglect heat losses when min velo = 0.0 m/s --- CHANGELOG.md | 3 +- .../input/timeseries_import.csv | 90 +++++++++---------- .../src/double_pipe_heat.py | 2 +- tests/test_head_loss.py | 2 + 4 files changed, 50 insertions(+), 47 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa951961e..403d2aba6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# [Unreleased] - 2024-11-07 +# [Unreleased] - 2024-11-11 ## Added - xx @@ -8,6 +8,7 @@ ## Fixed - Bugfix: same mip gap settings for all solvers in grow_workflow. +- Bugfix: head loss test case when minimum_velocity = 0.0 # [0.1.8] - 2024-11-07 diff --git a/tests/models/source_pipe_split_sink/input/timeseries_import.csv b/tests/models/source_pipe_split_sink/input/timeseries_import.csv index bc4127ae1..0791e72b2 100644 --- a/tests/models/source_pipe_split_sink/input/timeseries_import.csv +++ b/tests/models/source_pipe_split_sink/input/timeseries_import.csv @@ -1,46 +1,46 @@ DateTime,demand,elec -2013-05-19 22:00:00,150000.0,10.0 -2013-05-19 23:00:00,150000.0,10.0 -2013-05-20 00:00:00,150000.0,10.0 -2013-05-20 01:00:00,150000.0,10.0 -2013-05-20 02:00:00,150000.0,10.0 -2013-05-20 03:00:00,150000.0,10.0 -2013-05-20 04:00:00,150000.0,10.0 -2013-05-20 05:00:00,150000.0,10.0 -2013-05-20 06:00:00,150000.0,10.0 -2013-05-20 07:00:00,150000.0,10.0 -2013-05-20 08:00:00,150000.0,10.0 -2013-05-20 09:00:00,150000.0,10.0 -2013-05-20 10:00:00,150000.0,10.0 -2013-05-20 11:00:00,150000.0,10.0 -2013-05-20 12:00:00,150000.0,10.0 -2013-05-20 13:00:00,150000.0,10.0 -2013-05-20 14:00:00,100000.0,10.0 -2013-05-20 15:00:00,100000.0,10.0 -2013-05-20 16:00:00,100000.0,10.0 -2013-05-20 17:00:00,100000.0,10.0 -2013-05-20 18:00:00,100000.0,10.0 -2013-05-20 19:00:00,100000.0,10.0 -2013-05-20 20:00:00,100000.0,10.0 -2013-05-20 21:00:00,100000.0,10.0 -2013-05-20 22:00:00,100000.0,10.0 -2013-05-20 23:00:00,100000.0,10.0 -2013-05-21 00:00:00,100000.0,10.0 -2013-05-21 01:00:00,100000.0,10.0 -2013-05-21 02:00:00,100000.0,10.0 -2013-05-21 03:00:00,50000.0,10.0 -2013-05-21 04:00:00,50000.0,10.0 -2013-05-21 05:00:00,50000.0,10.0 -2013-05-21 06:00:00,50000.0,10.0 -2013-05-21 07:00:00,50000.0,10.0 -2013-05-21 08:00:00,50000.0,10.0 -2013-05-21 09:00:00,50000.0,10.0 -2013-05-21 10:00:00,50000.0,10.0 -2013-05-21 11:00:00,50000.0,10.0 -2013-05-21 12:00:00,50000.0,10.0 -2013-05-21 13:00:00,50000.0,10.0 -2013-05-21 14:00:00,50000.0,10.0 -2013-05-21 15:00:00,50000.0,10.0 -2013-05-21 16:00:00,50000.0,10.0 -2013-05-21 17:00:00,50000.0,10.0 -2013-05-21 18:00:00,50000.0,10.0 +2013-05-19 22:00:00,1500000.0,10.0 +2013-05-19 23:00:00,1500000.0,10.0 +2013-05-20 00:00:00,1500000.0,10.0 +2013-05-20 01:00:00,1500000.0,10.0 +2013-05-20 02:00:00,1500000.0,10.0 +2013-05-20 03:00:00,1500000.0,10.0 +2013-05-20 04:00:00,1500000.0,10.0 +2013-05-20 05:00:00,1500000.0,10.0 +2013-05-20 06:00:00,1500000.0,10.0 +2013-05-20 07:00:00,1500000.0,10.0 +2013-05-20 08:00:00,1500000.0,10.0 +2013-05-20 09:00:00,1500000.0,10.0 +2013-05-20 10:00:00,1500000.0,10.0 +2013-05-20 11:00:00,1500000.0,10.0 +2013-05-20 12:00:00,1500000.0,10.0 +2013-05-20 13:00:00,1500000.0,10.0 +2013-05-20 14:00:00,1000000.0,10.0 +2013-05-20 15:00:00,1000000.0,10.0 +2013-05-20 16:00:00,1000000.0,10.0 +2013-05-20 17:00:00,1000000.0,10.0 +2013-05-20 18:00:00,1000000.0,10.0 +2013-05-20 19:00:00,1000000.0,10.0 +2013-05-20 20:00:00,1000000.0,10.0 +2013-05-20 21:00:00,1000000.0,10.0 +2013-05-20 22:00:00,1000000.0,10.0 +2013-05-20 23:00:00,1000000.0,10.0 +2013-05-21 00:00:00,1000000.0,10.0 +2013-05-21 01:00:00,1000000.0,10.0 +2013-05-21 02:00:00,1000000.0,10.0 +2013-05-21 03:00:00,500000.0,10.0 +2013-05-21 04:00:00,500000.0,10.0 +2013-05-21 05:00:00,500000.0,10.0 +2013-05-21 06:00:00,500000.0,10.0 +2013-05-21 07:00:00,500000.0,10.0 +2013-05-21 08:00:00,500000.0,10.0 +2013-05-21 09:00:00,500000.0,10.0 +2013-05-21 10:00:00,500000.0,10.0 +2013-05-21 11:00:00,500000.0,10.0 +2013-05-21 12:00:00,500000.0,10.0 +2013-05-21 13:00:00,500000.0,10.0 +2013-05-21 14:00:00,500000.0,10.0 +2013-05-21 15:00:00,500000.0,10.0 +2013-05-21 16:00:00,500000.0,10.0 +2013-05-21 17:00:00,500000.0,10.0 +2013-05-21 18:00:00,500000.0,10.0 diff --git a/tests/models/source_pipe_split_sink/src/double_pipe_heat.py b/tests/models/source_pipe_split_sink/src/double_pipe_heat.py index cc39c8984..3a331fb16 100644 --- a/tests/models/source_pipe_split_sink/src/double_pipe_heat.py +++ b/tests/models/source_pipe_split_sink/src/double_pipe_heat.py @@ -20,7 +20,7 @@ class TargetDemandGoal(Goal): def __init__(self, optimization_problem): self.target_min = optimization_problem.get_timeseries("demand.target_heat_demand") self.target_max = optimization_problem.get_timeseries("demand.target_heat_demand") - self.function_range = (0.0, 2e5) + self.function_range = (0.0, 2e6) self.function_nominal = 1e5 def function(self, optimization_problem, ensemble_member): diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index 032fdaa66..e6819e1b7 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -286,6 +286,7 @@ def energy_system_options(self): if head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_EQUALITY: self.heat_network_settings["minimize_head_losses"] = False self.heat_network_settings["minimum_velocity"] = 0.0 + options["neglect_pipe_heat_losses"] = True elif ( head_loss_option_setting == HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY @@ -293,6 +294,7 @@ def energy_system_options(self): self.heat_network_settings["minimize_head_losses"] = True if counter_linearized_n_lines_weak_ineq_runs == 1: self.heat_network_settings["minimum_velocity"] = 0.0 + options["neglect_pipe_heat_losses"] = True elif counter_linearized_n_lines_weak_ineq_runs == 2: ... # Do not delete. This reminds the dev that different min velo value From 95fa513f6311c1cbbf07088acf7be38fbad5f076 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Thu, 14 Nov 2024 09:23:44 +0100 Subject: [PATCH 236/275] Generalising writejson method and adding solver stats (#211) Update the method to write the output in json format, to allow also for optimization problems with sequential runs and write the output results all at once. Also the solver statistics will be saved. --- src/mesido/workflows/emerge.py | 10 +++++-- src/mesido/workflows/grow_workflow.py | 5 +++- src/mesido/workflows/io/write_output.py | 37 +++++++++++++++++++------ 3 files changed, 40 insertions(+), 12 deletions(-) diff --git a/src/mesido/workflows/emerge.py b/src/mesido/workflows/emerge.py index 5eb42762e..84862b9a2 100644 --- a/src/mesido/workflows/emerge.py +++ b/src/mesido/workflows/emerge.py @@ -205,11 +205,15 @@ def post(self): self._save_json = False - if os.path.exists(self.output_folder) and self._save_json: - self._write_json_output() - results = self.extract_results() + if os.path.exists(self.output_folder) and self._save_json: + parameters = self.parameters(0) + bounds = self.bounds() + aliases = self.alias_relation._canonical_variables_map + solver_stats = self.solver_stats + self._write_json_output(results, parameters, bounds, aliases, solver_stats) + for _type, assets in self.energy_system_components.items(): for asset in assets: print("----------------------------------") diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 46afcec45..5467b8493 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -406,7 +406,10 @@ def post(self): logger.warning(f"For demand {d} the target is not matched by {delta_energy} GJ") if os.path.exists(self.output_folder) and self._save_json: - self._write_json_output() + bounds = self.bounds() + aliases = self.alias_relation._canonical_variables_map + solver_stats = self.solver_stats + self._write_json_output(results, parameters, bounds, aliases, solver_stats) class EndScenarioSizingHIGHS(EndScenarioSizing): diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 44b907aa2..df9053530 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -7,7 +7,9 @@ import sys import traceback import uuid +from collections import OrderedDict from pathlib import Path +from typing import Dict, Union import esdl from esdl.profiles.influxdbprofilemanager import ConnectionSettings @@ -23,7 +25,7 @@ import pandas as pd - +from rtctools._internal.alias_tools import AliasDict from rtctools.optimization.timeseries import Timeseries @@ -1491,12 +1493,28 @@ def _name_to_asset(name): # ) # esh.save(str(filename)) - def _write_json_output(self): - # TODO: still add solver stats as json output - results = self.extract_results() + def _write_json_output( + self, + results: Union[AliasDict, Dict], + parameters: Union[AliasDict, Dict], + bounds: Union[AliasDict, Dict], + aliases: OrderedDict, + solver_stats: Dict, + ): + """ + The results, parameters, bounds are saved as json files which can be used for further + processing. Aliases are also saved as this allows us to only save the necessary variables. + :param results: dictionary or Alias dictionary with the results of the optimization problem + :param parameters: dictionary or Alias dictionary with the parameters of the optimization + problem + :param bounds: dictionary or Alias dictionary with the bounds of the optimization problem + :param aliases: Alias dictionary describing all the aliases for the variables used + :param solver_stats: solver statistics provided by the solver + :return: + """ + workdir = self.output_folder - parameters = self.parameters(0) parameters_dict = dict() parameter_path = os.path.join(workdir, "parameters.json") for key, value in parameters.items(): @@ -1505,7 +1523,6 @@ def _write_json_output(self): with open(parameter_path, "w") as file: json.dump(parameters_dict, fp=file) - bounds = self.bounds() bounds_dict = dict() bounds_path = os.path.join(workdir, "bounds.json") for key, value in bounds.items(): @@ -1518,7 +1535,6 @@ def _write_json_output(self): json.dump(bounds_dict, fp=file) results_dict = dict() - for key, values in results.items(): new_value = values.tolist() if len(new_value) == 1: @@ -1531,7 +1547,6 @@ def _write_json_output(self): # save aliases alias_dict = {} - aliases = self.alias_relation._canonical_variables_map for key, values in aliases.items(): new_value = values alias_dict[key] = new_value @@ -1539,3 +1554,9 @@ def _write_json_output(self): aliases_path = os.path.join(workdir, "aliases.json") with open(aliases_path, "w") as file: json.dump(alias_dict, fp=file) + + # save solver_stats + solver_stats_dict = solver_stats + solver_stats_path = os.path.join(workdir, "solver_stats.json") + with open(solver_stats_path, "w") as file: + json.dump(solver_stats_dict, fp=file) From cd21ec0b742b35a1e88bd126eff0756098b84bff Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Thu, 14 Nov 2024 09:54:41 +0100 Subject: [PATCH 237/275] Gas pipe database (#197) This commit includes the parsing of gas pipe data for diameter and wall_roughness. A default gas pipe database, based on the ASA pipe schedule with thicknesses in the standard class was added, from which dimensions can be extracted. --------- Co-authored-by: kobus.vanrooyen@tno.nl --- CHANGELOG.md | 2 +- MANIFEST.in | 1 + src/mesido/esdl/_gas_pipe_database.json | 205 ++++++++++++++++++ src/mesido/esdl/asset_to_component_base.py | 86 ++++++++ src/mesido/esdl/esdl_heat_model.py | 1 + .../multicommodity_simulator_workflow.py | 6 +- .../source_sink/input/timeseries.csv | 6 +- tests/test_electrolyzer.py | 4 +- tests/test_head_loss.py | 2 +- 9 files changed, 304 insertions(+), 9 deletions(-) create mode 100644 src/mesido/esdl/_gas_pipe_database.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 403d2aba6..dcdc0887e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # [Unreleased] - 2024-11-11 ## Added -- xx +- Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class ## Changed - xx diff --git a/MANIFEST.in b/MANIFEST.in index ec23f3108..e19c5fb42 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,4 +2,5 @@ recursive-include src/mesido/modelica/WarmingUp * include versioneer.py include src/mesido/_version.py include src/mesido/esdl/_edr_pipes.json +include src/mesido/esdl/_gas_pipe_database.json include additional_info_for_license.txt diff --git a/src/mesido/esdl/_gas_pipe_database.json b/src/mesido/esdl/_gas_pipe_database.json new file mode 100644 index 000000000..d7fc0e303 --- /dev/null +++ b/src/mesido/esdl/_gas_pipe_database.json @@ -0,0 +1,205 @@ +{ + "DN6": { + "name": "DN6", + "inner_diameter": "0.00684", + "wall_thickness": "0.00173", + "outer_diameter": "0.0103", + "roughness": "1.50E-05" + }, + "DN8": { + "name": "DN8", + "inner_diameter": "0.00922", + "wall_thickness": "0.00224", + "outer_diameter": "0.0137", + "roughness": "1.50E-05" + }, + "DN10": { + "name": "DN10", + "inner_diameter": "0.01248", + "wall_thickness": "0.00231", + "outer_diameter": "0.0171", + "roughness": "1.50E-05" + }, + "DN15": { + "name": "DN15", + "inner_diameter": "0.01576", + "wall_thickness": "0.00277", + "outer_diameter": "0.0213", + "roughness": "1.50E-05" + }, + "DN20": { + "name": "DN20", + "inner_diameter": "0.02096", + "wall_thickness": "0.00287", + "outer_diameter": "0.0267", + "roughness": "1.50E-05" + }, + "DN25": { + "name": "DN25", + "inner_diameter": "0.02664", + "wall_thickness": "0.00338", + "outer_diameter": "0.0334", + "roughness": "1.50E-05" + }, + "DN32": { + "name": "DN32", + "inner_diameter": "0.03508", + "wall_thickness": "0.00356", + "outer_diameter": "0.0422", + "roughness": "1.50E-05" + }, + "DN40": { + "name": "DN40", + "inner_diameter": "0.04094", + "wall_thickness": "0.00368", + "outer_diameter": "0.0483", + "roughness": "1.50E-05" + }, + "DN50": { + "name": "DN50", + "inner_diameter": "0.05248", + "wall_thickness": "0.00391", + "outer_diameter": "0.0603", + "roughness": "1.50E-05" + }, + "DN65": { + "name": "DN65", + "inner_diameter": "0.06268", + "wall_thickness": "0.00516", + "outer_diameter": "0.073", + "roughness": "1.50E-05" + }, + "DN80": { + "name": "DN80", + "inner_diameter": "0.07792", + "wall_thickness": "0.00549", + "outer_diameter": "0.0889", + "roughness": "1.50E-05" + }, + "DN90": { + "name": "DN90", + "inner_diameter": "0.09012", + "wall_thickness": "0.00574", + "outer_diameter": "0.1016", + "roughness": "1.50E-05" + }, + "DN100": { + "name": "DN100", + "inner_diameter": "0.10226", + "wall_thickness": "0.00602", + "outer_diameter": "0.1143", + "roughness": "1.50E-05" + }, + "DN125": { + "name": "DN125", + "inner_diameter": "0.1282", + "wall_thickness": "0.00655", + "outer_diameter": "0.1413", + "roughness": "1.50E-05" + }, + "DN150": { + "name": "DN150", + "inner_diameter": "0.15408", + "wall_thickness": "0.00711", + "outer_diameter": "0.1683", + "roughness": "1.50E-05" + }, + "DN200": { + "name": "DN200", + "inner_diameter": "0.20274", + "wall_thickness": "0.00818", + "outer_diameter": "0.2191", + "roughness": "1.50E-05" + }, + "DN250": { + "name": "DN250", + "inner_diameter": "0.25456", + "wall_thickness": "0.00927", + "outer_diameter": "0.2731", + "roughness": "1.50E-05" + }, + "DN300": { + "name": "DN300", + "inner_diameter": "0.30484", + "wall_thickness": "0.00953", + "outer_diameter": "0.3239", + "roughness": "1.50E-05" + }, + "DN350": { + "name": "DN350", + "inner_diameter": "0.33654", + "wall_thickness": "0.00953", + "outer_diameter": "0.3556", + "roughness": "1.50E-05" + }, + "DN400": { + "name": "DN400", + "inner_diameter": "0.38734", + "wall_thickness": "0.00953", + "outer_diameter": "0.4064", + "roughness": "1.50E-05" + }, + "DN450": { + "name": "DN450", + "inner_diameter": "0.43814", + "wall_thickness": "0.00953", + "outer_diameter": "0.4572", + "roughness": "1.50E-05" + }, + "DN500": { + "name": "DN500", + "inner_diameter": "0.48894", + "wall_thickness": "0.00953", + "outer_diameter": "0.508", + "roughness": "1.50E-05" + }, + "DN600": { + "name": "DN600", + "inner_diameter": "0.59094", + "wall_thickness": "0.00953", + "outer_diameter": "0.61", + "roughness": "1.50E-05" + }, + "DN700": { + "name": "DN700", + "inner_diameter": "0.69194", + "wall_thickness": "0.00953", + "outer_diameter": "0.711", + "roughness": "1.50E-05" + }, + "DN800": { + "name": "DN800", + "inner_diameter": "0.79394", + "wall_thickness": "0.00953", + "outer_diameter": "0.813", + "roughness": "1.50E-05" + }, + "DN900": { + "name": "DN900", + "inner_diameter": "0.89494", + "wall_thickness": "0.00953", + "outer_diameter": "0.914", + "roughness": "1.50E-05" + }, + "DN1000": { + "name": "DN1000", + "inner_diameter": "0.99694", + "wall_thickness": "0.00953", + "outer_diameter": "1.016", + "roughness": "1.50E-05" + }, + "DN1100": { + "name": "DN1100", + "inner_diameter": "1.09894", + "wall_thickness": "0.00953", + "outer_diameter": "1.118", + "roughness": "1.50E-05" + }, + "DN1200": { + "name": "DN1200", + "inner_diameter": "1.1936", + "wall_thickness": "0.0127", + "outer_diameter": "1.219", + "roughness": "1.50E-05" + } +} \ No newline at end of file diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index 8afcffdb3..ad2c2f814 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -207,6 +207,10 @@ def __init__(self, **kwargs): self._edr_pipes = json.load( open(os.path.join(Path(__file__).parent, "_edr_pipes.json"), "r") ) + # The default gas pipe database is based on the ASA pipe catalogue schedule standard (std). + self._gas_pipes = json.load( + open(os.path.join(Path(__file__).parent, "_gas_pipe_database.json"), "r") + ) def convert(self, asset: Asset) -> Tuple[Type[_Model], MODIFIERS]: """ @@ -324,6 +328,88 @@ def _pipe_get_diameter_and_insulation(self, asset: Asset) -> Tuple[float, list, return inner_diameter, insulation_thicknesses, conductivies_insulation + def _gas_pipe_get_diameter_and_roughness(self, asset: Asset) -> Tuple[float, float]: + """ + There are multiple ways to specify pipe properties like inner-diameter and + pipe material and thickness. The user specified nominal diameter (DN size) + takes precedence over potential user specified innerDiameter (while logging + warnings when either of these are specified in combination with the pipe DN). + Similarly, for the wall roughness, the order of preference is; based on the + DN size from the default database in this repo, the wall_roughness attribute + from the ESDL asset or the default value. + Parameters + ---------- + asset : Asset pipe object with itss properties from ESDL + + Returns + ------- + pipe inner diameter [m], wall roughness [m] + """ + + full_name = f"{asset.asset_type} '{asset.name}'" + if asset.attributes["innerDiameter"] and asset.attributes["diameter"].value > 0: + logger.warning( + f"{full_name}' has both 'innerDiameter' and 'diameter' specified. " + f"Diameter of {asset.attributes['diameter'].name} will be used." + ) + + edr_dn_size = None + if asset.attributes["diameter"].value > 0: + edr_dn_size = str(asset.attributes["diameter"].name) + elif not asset.attributes["innerDiameter"]: + logger.error( + f"{full_name}' has no DN size or innerDiameter specified, default is set to DN200. " + ) + edr_dn_size = "DN200" + # TODO: ideally no default diameter size is set, test cases have to be updated for this + # to be removed. + + # NaN means the default values will be used + wall_roughness = math.nan + + if edr_dn_size: + # Get insulation and diameter properties from EDR asset with this size. + edr_asset = self._gas_pipes[edr_dn_size] + inner_diameter = float(edr_asset["inner_diameter"]) + wall_roughness = float(edr_asset["roughness"]) + else: + assert asset.attributes["innerDiameter"] + inner_diameter = asset.attributes["innerDiameter"] + if asset.attributes["roughness"] > 0.0: + wall_roughness = float(asset.attributes["roughness"]) + else: + wall_roughness = 1.0e-4 + + return inner_diameter, wall_roughness + + def _cable_get_resistance(self, asset: Asset) -> Tuple: + """ + Determines the resistance in ohm/m defined by the inverse of the electrical conductivity + in the cable's material properties. If no material is defined a default resistance of + 1e-6 ohm/m is used. + + Parameters + ---------- + asset : Asset cable object with it's properties from ESDL + + Returns + ------- + resistance + """ + default_res = 1e-6 + material = asset.attributes["material"] + el_conductivity = None + if material: + el_conductivity = material.electricalConductivity + if not el_conductivity: + logger.warning( + f"Cable {asset.name} does not have a material with conductivity assigned," + f" using default resistance of {default_res} ohm/m" + ) + res_ohm_per_m = 1 / el_conductivity if el_conductivity else default_res + + return res_ohm_per_m + def _is_disconnectable_pipe(self, asset: Asset) -> bool: """ This function checks if the pipe is connected to specific assets (e.g. source) and if so diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 588af47fb..5bace04f5 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -589,6 +589,7 @@ def convert_heat_pipe( ] if isinstance(asset.in_ports[0].carrier, esdl.esdl.GasCommodity): + (diameter, wall_roughness) = self._gas_pipe_get_diameter_and_roughness(asset) q_nominal = math.pi * diameter**2 / 4.0 * self.v_max_gas / 2.0 self._set_q_nominal(asset, q_nominal) q_max = math.pi * diameter**2 / 4.0 * self.v_max_gas diff --git a/src/mesido/workflows/multicommodity_simulator_workflow.py b/src/mesido/workflows/multicommodity_simulator_workflow.py index b51ba8f5e..a713bd937 100644 --- a/src/mesido/workflows/multicommodity_simulator_workflow.py +++ b/src/mesido/workflows/multicommodity_simulator_workflow.py @@ -607,7 +607,7 @@ def solver_options(self): options["solver"] = "highs" highs_options = options["highs"] = {} - highs_options["presolve"] = "off" + highs_options["presolve"] = "on" return options @@ -639,7 +639,9 @@ def priority_completed(self, priority): ) logger.info(f"Goal with priority {priority} has been completed") if priority == 1 and self.objective_value > 1e-6: - raise RuntimeError("The heating demand is not matched") + raise RuntimeError( + f"The heating demand is not matched, objective value is {self.objective_value}" + ) def __state_vector_scaled(self, variable, ensemble_member): canonical, sign = self.alias_relation.canonical_signed(variable) diff --git a/tests/models/unit_cases_gas/source_sink/input/timeseries.csv b/tests/models/unit_cases_gas/source_sink/input/timeseries.csv index dc34acc97..cb19c43e7 100644 --- a/tests/models/unit_cases_gas/source_sink/input/timeseries.csv +++ b/tests/models/unit_cases_gas/source_sink/input/timeseries.csv @@ -1,4 +1,4 @@ DateTime,GasDemand_a2d8 -01-01-2019 00:00, 0.05 -01-01-2019 01:00, 0.1 -01-01-2019 02:00, 0.15 +01-01-2019 00:00, 0.045 +01-01-2019 01:00, 0.095 +01-01-2019 02:00, 0.14 diff --git a/tests/test_electrolyzer.py b/tests/test_electrolyzer.py index 4eb173233..65daf16ad 100644 --- a/tests/test_electrolyzer.py +++ b/tests/test_electrolyzer.py @@ -72,9 +72,9 @@ def solver_options(self): for iv in range(len(v_inspect)): np.testing.assert_allclose( v_inspect[iv] / solution.gas_network_settings["maximum_velocity"] * head_loss_max, - 2.173724632, + 2.1760566566624733, ) - np.testing.assert_allclose(-results["Pipe_6ba6.dH"][iv], 2.173724632) + np.testing.assert_allclose(-results["Pipe_6ba6.dH"][iv], 2.1760566566624733) gas_price_profile = "Hydrogen.price_profile" state = "GasDemand_0cf3.Gas_demand_mass_flow" diff --git a/tests/test_head_loss.py b/tests/test_head_loss.py index e6819e1b7..67ba3b39d 100644 --- a/tests/test_head_loss.py +++ b/tests/test_head_loss.py @@ -569,7 +569,7 @@ def energy_system_options(self): # Compare the hydraulic power to hard-coded values. Difference expected if an error # occours in the calculation of the gas kinematic viscosity. if head_loss_option_setting == HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY: - np.testing.assert_allclose(head_loss_v_point_1, 1298.1537098750562) + np.testing.assert_allclose(head_loss_v_point_1, 1339.4824830351974) delta_volumetric_flow = (v_points[1] * np.pi * pipe_diameter**2 / 4.0) - ( v_points[0] * np.pi * pipe_diameter**2 / 4.0 From fc35be47741a4d26308bf3ae786e0f3cd4b9c05c Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Fri, 15 Nov 2024 09:36:06 +0100 Subject: [PATCH 238/275] Update changelog main due to DTK new release (#214) Update changelog due to DTK new release --- CHANGELOG.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dcdc0887e..79a63af41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# [Unreleased] - 2024-11-11 +# [Unreleased-main] - 2024-11-15 ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class @@ -10,8 +10,20 @@ - Bugfix: same mip gap settings for all solvers in grow_workflow. - Bugfix: head loss test case when minimum_velocity = 0.0 +# [0.1.8.2] - 2024-11-15 -# [0.1.8] - 2024-11-07 +## Added +- xx + +## Changed +- xx + +## Fixed +- Bugfix: same mip gap settings for all solvers in grow_workflow. +- Bugfix: head loss test case when minimum_velocity = 0.0 + + +# [0.1.8 & 0.1.8.1] - 2024-11-07 ## Added - Added MESIDO error exception class to raise applicable potential errors in a workflow & include required info for feedback in the mapeditor From f93f939a97a440775aacc368f2d24da7f71931bd Mon Sep 17 00:00:00 2001 From: Jaimepatt Date: Tue, 19 Nov 2024 10:02:27 +0100 Subject: [PATCH 239/275] 166 adapt profiles for heating and cooling peak day seperately (#181) The goal of the PR was to allow mesido (in the presence of cold demands) to discretize hourly the peak days for both maximum heat and cold demands. This was done mainly by developing the adapt_profiles.py script, where the time series are modified. A few tests were added to account for this new functionality. These were placed in the test_cold_demand.py test file. --------- Co-authored-by: kobus.vanrooyen@tno.nl --- .gitignore | 9 +- .../input/timeseries_4.csv | 2 +- examples/heating_and_cooling/src/run_case.py | 4 +- src/mesido/workflows/utils/adapt_profiles.py | 110 +++++---- .../wko/input/timeseries_cold_peak_before.csv | 73 ++++++ .../input/timeseries_peak_back_to_back.csv | 73 ++++++ .../wko/input/timeseries_peak_overlap.csv | 146 +++++++++++ .../model/heatpump_airco_time_parsing.esdl | 222 +++++++++++++++++ tests/test_cold_demand.py | 232 +++++++++++++++++- tests/test_esdl_parsing.py | 1 + 10 files changed, 823 insertions(+), 49 deletions(-) create mode 100644 tests/models/wko/input/timeseries_cold_peak_before.csv create mode 100644 tests/models/wko/input/timeseries_peak_back_to_back.csv create mode 100644 tests/models/wko/input/timeseries_peak_overlap.csv create mode 100644 tests/models/wko/model/heatpump_airco_time_parsing.esdl diff --git a/.gitignore b/.gitignore index 6016fb631..5e9fbb449 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,11 @@ src/*.egg-info # Ignore ESDL files created by workflows *_GrowOptimized.esdl *_GrowOptimized_esdl_string.esdl -*_Simulation.esdl \ No newline at end of file +*_Simulation.esdl + +# Virtual environment files +.venv/* + +# Docs build folder +docs/_build/* +docs/_build_kvr_ \ No newline at end of file diff --git a/examples/heating_and_cooling/input/timeseries_4.csv b/examples/heating_and_cooling/input/timeseries_4.csv index e6e6492d1..5452b3923 100644 --- a/examples/heating_and_cooling/input/timeseries_4.csv +++ b/examples/heating_and_cooling/input/timeseries_4.csv @@ -8758,4 +8758,4 @@ 31-12-2019 19:00,7153340.193,0.437378359,0.437378359 31-12-2019 20:00,7153337.192,0.360347986,0.360347986 31-12-2019 21:00,7153335.048,0.234917204,0.234917204 -31-12-2019 22:00,7153333.762,0.114569593,0.114569593 \ No newline at end of file +31-12-2019 22:00,7153333.762,0.114569593,0.114569593 diff --git a/examples/heating_and_cooling/src/run_case.py b/examples/heating_and_cooling/src/run_case.py index 8b7be830b..b6881a689 100644 --- a/examples/heating_and_cooling/src/run_case.py +++ b/examples/heating_and_cooling/src/run_case.py @@ -57,7 +57,8 @@ def parameters(self, ensemble_member): def read(self): super().read() - # Set the peak of the heating demand since the specified proifle is normalized to 1 + # Set the peak of the heating demand since the specified profile is normalized to 1 + for d in self.energy_system_components["heat_demand"]: target = self.get_timeseries(f"{d}.target_heat_demand") for ii in range(len(target.values)): @@ -117,6 +118,7 @@ def constraints(self, ensemble_member): # discharged. -> WKO in cooling mode # - Volume decrease: Cold well is being charged and the hot well is being # discharged. -> WKO in heating mode + for ates_id in self.energy_system_components.get("low_temperature_ates", []): stored_volume = self.state_vector(f"{ates_id}.Stored_volume") volume_usage = 0.0 diff --git a/src/mesido/workflows/utils/adapt_profiles.py b/src/mesido/workflows/utils/adapt_profiles.py index f184d72da..6cb579499 100644 --- a/src/mesido/workflows/utils/adapt_profiles.py +++ b/src/mesido/workflows/utils/adapt_profiles.py @@ -74,7 +74,9 @@ def adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day(problem, prob - cold_demand_nominal: max cold demand value found for a specific cold demand """ - demands = problem.energy_system_components.get("heat_demand", []) + # Extract heat and cold demand assets + heat_demands = problem.energy_system_components.get("heat_demand", []) + cold_demands = problem.energy_system_components.get("cold_demand", []) new_datastore = DataStore(problem) new_datastore.reference_datetime = problem.io.datetimes[0] @@ -82,51 +84,95 @@ def adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day(problem, prob for ensemble_member in range(problem.ensemble_size): parameters = problem.parameters(ensemble_member) - total_demand = None - heat_demand_nominal = dict() - for demand in demands: + total_heat_demand = None + heat_demand_nominal = dict() + # Assemble all demands together to get the peaks. + for demand in heat_demands: try: demand_values = problem.get_timeseries( f"{demand}.target_heat_demand", ensemble_member ).values except KeyError: continue - if total_demand is None: - total_demand = demand_values + if total_heat_demand is None: + total_heat_demand = demand_values else: - total_demand += demand_values + total_heat_demand += demand_values heat_demand_nominal[f"{demand}.Heat_demand"] = max(demand_values) heat_demand_nominal[f"{demand}.Heat_flow"] = max(demand_values) + total_cold_demand = None + cold_demand_nominal = dict() + for demand in cold_demands: + try: + cold_demand_values = problem.get_timeseries( + f"{demand}.target_cold_demand", ensemble_member + ).values + except KeyError: + continue + if total_cold_demand is None: + total_cold_demand = cold_demand_values + else: + total_cold_demand += cold_demand_values + cold_demand_nominal[f"{demand}.Cold_demand"] = max(cold_demand_values) + cold_demand_nominal[f"{demand}.Heat_flow"] = max(cold_demand_values) + + new_date_times = list() + nr_of_days = len(total_heat_demand) // 24 + day_steps = problem_day_steps + + peak_days = [] + if total_heat_demand is not None: + idx_max_hot = int(np.argmax(total_heat_demand)) + max_day_hot = idx_max_hot // 24 + + problem_indx_max_peak = max_day_hot // day_steps + if max_day_hot % day_steps > 0: + problem_indx_max_peak += 1.0 + + peak_days.append(max_day_hot) + else: + max_day_hot = None + + if total_cold_demand is not None: + idx_max_cold = int(np.argmax(total_cold_demand)) + max_day_cold = idx_max_cold // 24 + + problem_indx_max_peak_cold = max_day_cold // day_steps + if max_day_cold % day_steps > 0: + problem_indx_max_peak_cold += 1.0 + + peak_days.append(max_day_cold) + else: + max_day_cold = None + # TODO: the approach of picking one peak day was introduced for a network with a tree # layout and all big sources situated at the root of the tree. It is not guaranteed # that an optimal solution is reached in different network topologies. - idx_max = int(np.argmax(total_demand)) - max_day = idx_max // 24 - nr_of_days = len(total_demand) // 24 - new_date_times = list() - day_steps = problem_day_steps - problem_indx_max_peak = max_day // day_steps - if max_day % day_steps > 0: - problem_indx_max_peak += 1.0 + peak_days = sorted(peak_days) + peak_check_days = np.array(peak_days) // day_steps * day_steps + current_peak_idx = 0 for day in range(0, nr_of_days, day_steps): - if day == max_day // day_steps * day_steps: - if max_day > day: + if day in peak_check_days: + peak_day = peak_days[current_peak_idx] + if peak_day > day: new_date_times.append(problem.io.datetimes[day * 24]) - new_date_times.extend(problem.io.datetimes[max_day * 24 : max_day * 24 + 24]) - if (day + day_steps - 1) > max_day: - new_date_times.append(problem.io.datetimes[max_day * 24 + 24]) + new_date_times.extend(problem.io.datetimes[peak_day * 24 : peak_day * 24 + 24]) + if (day + day_steps - 1) > peak_day: + new_date_times.append(problem.io.datetimes[peak_day * 24 + 24]) + current_peak_idx += 1 else: new_date_times.append(problem.io.datetimes[day * 24]) + new_date_times.append(problem.io.datetimes[-1] + datetime.timedelta(hours=1)) new_date_times = np.asarray(new_date_times) parameters["times"] = [x.timestamp() for x in new_date_times] - for demand in demands: + for demand in heat_demands: var_name = f"{demand}.target_heat_demand" set_data_with_averages_and_peak_day( datastore=new_datastore, @@ -135,26 +181,6 @@ def adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day(problem, prob new_date_times=new_date_times, problem=problem, ) - # ------------------------------------------------------------------------------------------ - # cooling demands - total_cold_demand = None - cold_demand_nominal = dict() - - for demand in cold_demands: - try: - cold_demand_values = problem.get_timeseries( - f"{demand}.target_cold_demand", ensemble_member - ).values - except KeyError: - continue - if total_cold_demand is None: - total_cold_demand = cold_demand_values - else: - total_cold_demand += cold_demand_values - cold_demand_nominal[f"{demand}.Cold_demand"] = max(cold_demand_values) - cold_demand_nominal[f"{demand}.Heat_flow"] = max(cold_demand_values) - - # TODO: find the peak cooling day and adapt to hourly for demand in cold_demands: var_name = f"{demand}.target_cold_demand" @@ -165,8 +191,6 @@ def adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day(problem, prob new_date_times=new_date_times, problem=problem, ) - # end cooling demands - # ------------------------------------------------------------------------------------------ # TODO: this has not been tested but is required if a production profile is included # in the data diff --git a/tests/models/wko/input/timeseries_cold_peak_before.csv b/tests/models/wko/input/timeseries_cold_peak_before.csv new file mode 100644 index 000000000..b7401bdd6 --- /dev/null +++ b/tests/models/wko/input/timeseries_cold_peak_before.csv @@ -0,0 +1,73 @@ +DateTime,HeatingDemand_9b90,CoolingDemand_15e8 +01-01-2019 00:00, 53443. , 50107. +01-01-2019 01:00, 52838. , 45983. +01-01-2019 02:00, 52057. , 52349. +01-01-2019 03:00, 45874. , 51427. +01-01-2019 04:00, 49568. , 48338. +01-01-2019 05:00, 47559. , 51436. +01-01-2019 06:00, 54812. , 54657. +01-01-2019 07:00, 47576. , 54822. +01-01-2019 08:00, 53625. , 49199. +01-01-2019 09:00, 52464. , 52204. +01-01-2019 10:00, 52392. , 53479. +01-01-2019 11:00, 53502. , 53136. +01-01-2019 12:00, 50676. , 51021. +01-01-2019 13:00, 47906. , 51038. +01-01-2019 14:00, 50858. , 47504. +01-01-2019 15:00, 53141. , 48440. +01-01-2019 16:00, 45792. , 45363. +01-01-2019 17:00, 52436. , 45404. +01-01-2019 18:00, 48184. , 51854. +01-01-2019 19:00, 54302. , 48753. +01-01-2019 20:00, 54812. , 45921. +01-01-2019 21:00, 52438. , 45172. +01-01-2019 22:00, 53969. , 51356. +01-01-2019 23:00, 51430. , 49830. +02-01-2019 00:00, 50481. , 153460. +02-01-2019 01:00, 54842. , 159155. +02-01-2019 02:00, 48286. , 144197. +02-01-2019 03:00, 50899. , 162283. +02-01-2019 04:00, 51661. , 156897. +02-01-2019 05:00, 48576. , 147894. +02-01-2019 06:00, 54326. , 143438. +02-01-2019 07:00, 52148. , 148501. +02-01-2019 08:00, 50828. , 151202. +02-01-2019 09:00, 51165. , 160992. +02-01-2019 10:00, 50505. , 135468. +02-01-2019 11:00, 47842. , 151263. +02-01-2019 12:00, 45281. , 135936. +02-01-2019 13:00, 52086. , 160194. +02-01-2019 14:00, 48396. , 142512. +02-01-2019 15:00, 53006. , 164212. +02-01-2019 16:00, 49557. , 142815. +02-01-2019 17:00, 49215. , 156393. +02-01-2019 18:00, 51909. , 156898. +02-01-2019 19:00, 45777. , 154097. +02-01-2019 20:00, 45112. , 139101. +02-01-2019 21:00, 45377. , 142508. +02-01-2019 22:00, 50585. , 138014. +02-01-2019 23:00, 52719. , 152271. +03-01-2019 00:00, 105932., 48049. +03-01-2019 01:00, 105250., 52577. +03-01-2019 02:00, 94298. , 52635. +03-01-2019 03:00, 94678. , 45261. +03-01-2019 04:00, 92126. , 50465. +03-01-2019 05:00, 107091., 49095. +03-01-2019 06:00, 90454. , 52078. +03-01-2019 07:00, 101801., 49649. +03-01-2019 08:00, 105812., 49353. +03-01-2019 09:00, 107787., 54142. +03-01-2019 10:00, 105414., 45581. +03-01-2019 11:00, 103343., 46460. +03-01-2019 12:00, 109949., 45319. +03-01-2019 13:00, 99340. , 54311. +03-01-2019 14:00, 95641. , 48355. +03-01-2019 15:00, 96303. , 54496. +03-01-2019 16:00, 100944., 54984. +03-01-2019 17:00, 109763., 49444. +03-01-2019 18:00, 93902. , 54970. +03-01-2019 19:00, 103711., 50130. +03-01-2019 20:00, 107416., 46953. +03-01-2019 21:00, 107923., 46687. +03-01-2019 22:00, 96886. , 47852. +03-01-2019 23:00, 100891., 49318. \ No newline at end of file diff --git a/tests/models/wko/input/timeseries_peak_back_to_back.csv b/tests/models/wko/input/timeseries_peak_back_to_back.csv new file mode 100644 index 000000000..63c614564 --- /dev/null +++ b/tests/models/wko/input/timeseries_peak_back_to_back.csv @@ -0,0 +1,73 @@ +DateTime,HeatingDemand_9b90,CoolingDemand_15e8 +01-01-2019 00:00, 48163. , 50125. +01-01-2019 01:00, 48123. , 45698. +01-01-2019 02:00, 50446. , 51155. +01-01-2019 03:00, 53201. , 54720. +01-01-2019 04:00, 49510. , 51957. +01-01-2019 05:00, 47682. , 53781. +01-01-2019 06:00, 53991. , 50784. +01-01-2019 07:00, 53992. , 49877. +01-01-2019 08:00, 47998. , 51592. +01-01-2019 09:00, 47787. , 49431. +01-01-2019 10:00, 50598. , 51766. +01-01-2019 11:00, 49638. , 50559. +01-01-2019 12:00, 53435. , 47024. +01-01-2019 13:00, 46920. , 51621. +01-01-2019 14:00, 49264. , 46323. +01-01-2019 15:00, 54019. , 51211. +01-01-2019 16:00, 50862. , 46283. +01-01-2019 17:00, 53490. , 46747. +01-01-2019 18:00, 49737. , 48574. +01-01-2019 19:00, 46836. , 48264. +01-01-2019 20:00, 46667. , 46183. +01-01-2019 21:00, 50328. , 54241. +01-01-2019 22:00, 52847. , 52425. +01-01-2019 23:00, 50058. , 48466. +02-01-2019 00:00, 96053. , 52805. +02-01-2019 01:00, 108810., 48834. +02-01-2019 02:00, 94913. , 48822. +02-01-2019 03:00, 106139., 51767. +02-01-2019 04:00, 91062. , 46944. +02-01-2019 05:00, 90406. , 51886. +02-01-2019 06:00, 108616., 51436. +02-01-2019 07:00, 104235., 46217. +02-01-2019 08:00, 108261., 50615. +02-01-2019 09:00, 109924., 45697. +02-01-2019 10:00, 101306., 47033. +02-01-2019 11:00, 106166., 47102. +02-01-2019 12:00, 92342. , 49779. +02-01-2019 13:00, 91949. , 48933. +02-01-2019 14:00, 95640. , 50428. +02-01-2019 15:00, 107007., 47994. +02-01-2019 16:00, 96450. , 50370. +02-01-2019 17:00, 102807., 51620. +02-01-2019 18:00, 106326., 53273. +02-01-2019 19:00, 98016. , 53819. +02-01-2019 20:00, 101713., 48166. +02-01-2019 21:00, 108212., 48868. +02-01-2019 22:00, 95228. , 49287. +02-01-2019 23:00, 105606., 45722. +03-01-2019 00:00, 48924. , 153285. +03-01-2019 01:00, 49292. , 138767. +03-01-2019 02:00, 52958. , 156390. +03-01-2019 03:00, 53518. , 144570. +03-01-2019 04:00, 52088. , 149922. +03-01-2019 05:00, 51023. , 162992. +03-01-2019 06:00, 50081. , 146542. +03-01-2019 07:00, 47060. , 143825. +03-01-2019 08:00, 49705. , 153988. +03-01-2019 09:00, 54909. , 161754. +03-01-2019 10:00, 49875. , 160633. +03-01-2019 11:00, 47890. , 140198. +03-01-2019 12:00, 48081. , 143418. +03-01-2019 13:00, 46185. , 159537. +03-01-2019 14:00, 45522. , 159834. +03-01-2019 15:00, 48496. , 163719. +03-01-2019 16:00, 46757. , 146812. +03-01-2019 17:00, 51280. , 143791. +03-01-2019 18:00, 51671. , 163792. +03-01-2019 19:00, 50333. , 152620. +03-01-2019 20:00, 52582. , 150023. +03-01-2019 21:00, 45266. , 148353. +03-01-2019 22:00, 52358. , 140326. +03-01-2019 23:00, 50046. , 145990. \ No newline at end of file diff --git a/tests/models/wko/input/timeseries_peak_overlap.csv b/tests/models/wko/input/timeseries_peak_overlap.csv new file mode 100644 index 000000000..9a7cb4891 --- /dev/null +++ b/tests/models/wko/input/timeseries_peak_overlap.csv @@ -0,0 +1,146 @@ +DateTime,HeatingDemand_9b90,CoolingDemand_15e8 +01-01-2019 00:00, 50991. , 47239. +01-01-2019 01:00, 52854. , 51847. +01-01-2019 02:00, 54174. , 51806. +01-01-2019 03:00, 54647. , 48892. +01-01-2019 04:00, 50854. , 46900. +01-01-2019 05:00, 48177. , 47169. +01-01-2019 06:00, 52416. , 54583. +01-01-2019 07:00, 45638. , 50171. +01-01-2019 08:00, 47173. , 54423. +01-01-2019 09:00, 50417. , 52437. +01-01-2019 10:00, 48069. , 51288. +01-01-2019 11:00, 52018. , 50804. +01-01-2019 12:00, 50481. , 52572. +01-01-2019 13:00, 47398. , 51165. +01-01-2019 14:00, 46092. , 46955. +01-01-2019 15:00, 47736. , 51857. +01-01-2019 16:00, 48665. , 46034. +01-01-2019 17:00, 47604. , 54948. +01-01-2019 18:00, 52416. , 47725. +01-01-2019 19:00, 53361. , 52538. +01-01-2019 20:00, 45802. , 53722. +01-01-2019 21:00, 52031. , 49848. +01-01-2019 22:00, 45887. , 53855. +01-01-2019 23:00, 52213. , 49858. +02-01-2019 00:00, 103737. , 142059. +02-01-2019 01:00, 93148. , 144229. +02-01-2019 02:00, 105489. , 163870. +02-01-2019 03:00, 105546. , 145441. +02-01-2019 04:00, 102155. , 149894. +02-01-2019 05:00, 92281. , 151198. +02-01-2019 06:00, 97063. , 144699. +02-01-2019 07:00, 108611. , 157305. +02-01-2019 08:00, 108339. , 149188. +02-01-2019 09:00, 105915. , 152256. +02-01-2019 10:00, 103181. , 154173. +02-01-2019 11:00, 99113. , 142099. +02-01-2019 12:00, 107989. , 147518. +02-01-2019 13:00, 98889. , 149804. +02-01-2019 14:00, 97354. , 151552. +02-01-2019 15:00, 104733. , 156566. +02-01-2019 16:00, 93137. , 142764. +02-01-2019 17:00, 91709. , 158885. +02-01-2019 18:00, 101616. , 147229. +02-01-2019 19:00, 95581. , 142932. +02-01-2019 20:00, 94540. , 142302. +02-01-2019 21:00, 106439. , 159477. +02-01-2019 22:00, 93048. , 144135. +02-01-2019 23:00, 104730. , 164029. +03-01-2019 00:00, 49784. , 48657. +03-01-2019 01:00, 51424. , 46441. +03-01-2019 02:00, 52557. , 48876. +03-01-2019 03:00, 49910. , 46944. +03-01-2019 04:00, 51663. , 46212. +03-01-2019 05:00, 47242. , 47255. +03-01-2019 06:00, 47822. , 51569. +03-01-2019 07:00, 47054. , 50903. +03-01-2019 08:00, 45416. , 45633. +03-01-2019 09:00, 45136. , 54069. +03-01-2019 10:00, 54952. , 54883. +03-01-2019 11:00, 46442. , 49053. +03-01-2019 12:00, 50426. , 49120. +03-01-2019 13:00, 46090. , 52167. +03-01-2019 14:00, 46058. , 46794. +03-01-2019 15:00, 45596. , 51173. +03-01-2019 16:00, 52784. , 49191. +03-01-2019 17:00, 50426. , 52196. +03-01-2019 18:00, 45874. , 46466. +03-01-2019 19:00, 49908. , 48105. +03-01-2019 20:00, 50521. , 48673. +03-01-2019 21:00, 48145. , 45985. +03-01-2019 22:00, 45468. , 51786. +03-01-2019 23:00, 53179. , 49870. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/wko/model/heatpump_airco_time_parsing.esdl b/tests/models/wko/model/heatpump_airco_time_parsing.esdl new file mode 100644 index 000000000..a03e7874e --- /dev/null +++ b/tests/models/wko/model/heatpump_airco_time_parsing.esdl @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index bf610665e..2ae2bb679 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -8,14 +8,21 @@ from mesido.exceptions import MesidoAssetIssueError from mesido.potential_errors import MesidoAssetIssueType, PotentialErrors from mesido.util import run_esdl_mesido_optimization +from mesido.workflows.utils.adapt_profiles import ( + adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day, +) from mesido.workflows.utils.error_types import mesido_issue_type_gen_message + import numpy as np +import pandas as pd + from utils_test_scaling import create_log_list_scaling from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test + logger = logging.getLogger("WarmingUP-MPC") logger.setLevel(logging.INFO) @@ -257,10 +264,229 @@ def energy_system_options(self): ) # ------------------------------------------------------------------------------------------ + def test_heat_cold_demand_peak_overlap(self): + """ + This is a demand parsing and time series discretization test. + It checks whether the timeseries are discretized correctly in presence of + a cold and heat demand. This case runs a heat and cold demand case where + both peaks are on the same day. + """ + import models.wko.src.example as example + from models.wko.src.example import HeatProblem + + base_folder = Path(example.__file__).resolve().parent.parent + + class DiscretizationProblem(HeatProblem): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.day_steps = 1 + + def read(self): + super().read() + + ( + self.__indx_max_peak, + self.__heat_demand_nominal, + self.__cold_demand_nominal, + ) = adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day( + self, + self.day_steps, + ) + + heat_problem = run_esdl_mesido_optimization( + DiscretizationProblem, + base_folder=base_folder, + esdl_file_name="heatpump_airco_time_parsing.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_peak_overlap.csv", + ) + results = heat_problem.extract_results() + + cold_demand_timeseries = heat_problem.get_timeseries( + "CoolingDemand_15e8.target_cold_demand" + ) + heat_demand_timeseries = heat_problem.get_timeseries( + "HeatingDemand_9b90.target_heat_demand" + ) + max_cold_idx = np.argmax(cold_demand_timeseries.values) + max_heat_idx = np.argmax(heat_demand_timeseries.values) + + # Check that the resulting discretized series are the correct size. + np.testing.assert_equal(len(cold_demand_timeseries.times), 27) + np.testing.assert_equal(len(heat_demand_timeseries.times), 27) + + # Check that the peak hour is at the correct location after discretization. + np.testing.assert_equal(max_cold_idx, 25) + np.testing.assert_equal(max_heat_idx, 9) + + # Check that the peak day array is the same as the raw input after discretization. + csv_path = base_folder / "input/timeseries_peak_overlap.csv" + raw_demand_data = pd.read_csv(csv_path) + cold_demand_raw_list = np.array(raw_demand_data["CoolingDemand_15e8"]) + heat_demand_raw_list = np.array(raw_demand_data["HeatingDemand_9b90"]) + np.testing.assert_array_equal( + cold_demand_raw_list[24:47], cold_demand_timeseries.values[2:25] + ) + np.testing.assert_array_equal( + heat_demand_raw_list[24:47], heat_demand_timeseries.values[2:25] + ) + + demand_matching_test(heat_problem, results) + energy_conservation_test(heat_problem, results) + heat_to_discharge_test(heat_problem, results) + + def test_heat_cold_demand_peak_back_to_back(self): + """ + This is a demand parsing and time series discretization test. + It checks whether the timeseries are discretized correctly in presence of + a cold and heat demand. This case runs a heat and cold demand case where + both peaks are on consecutive days. + """ + import models.wko.src.example as example + from models.wko.src.example import HeatProblem + + base_folder = Path(example.__file__).resolve().parent.parent + + class DiscretizationProblem(HeatProblem): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.day_steps = 1 + + def read(self): + super().read() + + ( + self.__indx_max_peak, + self.__heat_demand_nominal, + self.__cold_demand_nominal, + ) = adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day( + self, + self.day_steps, + ) + + heat_problem = run_esdl_mesido_optimization( + DiscretizationProblem, + base_folder=base_folder, + esdl_file_name="heatpump_airco_time_parsing.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_peak_back_to_back.csv", + ) + results = heat_problem.extract_results() + + cold_demand_timeseries = heat_problem.get_timeseries( + "CoolingDemand_15e8.target_cold_demand" + ) + heat_demand_timeseries = heat_problem.get_timeseries( + "HeatingDemand_9b90.target_heat_demand" + ) + max_cold_idx = np.argmax(cold_demand_timeseries.values) + max_heat_idx = np.argmax(heat_demand_timeseries.values) + + # Check that the resulting discretized series are the correct size. + np.testing.assert_equal(len(cold_demand_timeseries.times), 50) + np.testing.assert_equal(len(heat_demand_timeseries.times), 50) + + # Check that the peak hour is at the correct location after discretization. + np.testing.assert_equal(max_cold_idx, 44) + np.testing.assert_equal(max_heat_idx, 11) + + # Check that the peak day array is the same as the raw input after discretization. + csv_path = base_folder / "input/timeseries_peak_back_to_back.csv" + raw_demand_data = pd.read_csv(csv_path) + cold_demand_raw_list = np.array(raw_demand_data["CoolingDemand_15e8"]) + heat_demand_raw_list = np.array(raw_demand_data["HeatingDemand_9b90"]) + np.testing.assert_array_equal( + cold_demand_raw_list[48:72], cold_demand_timeseries.values[26:50] + ) + np.testing.assert_array_equal( + heat_demand_raw_list[24:47], heat_demand_timeseries.values[2:25] + ) + + demand_matching_test(heat_problem, results) + energy_conservation_test(heat_problem, results) + heat_to_discharge_test(heat_problem, results) + + def test_heat_cold_peak_before(self): + """ + This is a demand parsing and time series discretization test. + It checks whether the timeseries are discretized correctly in presence of + a cold and heat demand. This case runs a heat and cold demand case where + the cold peak happens before the heat one. + """ + import models.wko.src.example as example + from models.wko.src.example import HeatProblem + + base_folder = Path(example.__file__).resolve().parent.parent + + class DiscretizationProblem(HeatProblem): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.day_steps = 1 + + def read(self): + super().read() + + ( + _, + _, + _, + ) = adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day( + self, + self.day_steps, + ) + + heat_problem = run_esdl_mesido_optimization( + DiscretizationProblem, + base_folder=base_folder, + esdl_file_name="heatpump_airco_time_parsing.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_cold_peak_before.csv", + ) + results = heat_problem.extract_results() + + cold_demand_timeseries = heat_problem.get_timeseries( + "CoolingDemand_15e8.target_cold_demand" + ) + heat_demand_timeseries = heat_problem.get_timeseries( + "HeatingDemand_9b90.target_heat_demand" + ) + max_cold_idx = np.argmax(cold_demand_timeseries.values) + max_heat_idx = np.argmax(heat_demand_timeseries.values) + + # Check that the resulting discretized series are the correct size. + np.testing.assert_equal(len(cold_demand_timeseries.times), 50) + np.testing.assert_equal(len(heat_demand_timeseries.times), 50) + + # Check that the peak hour is at the correct location after discretization. + np.testing.assert_equal(max_cold_idx, 17) + np.testing.assert_equal(max_heat_idx, 38) + + # Check that the peak day array is the same as the raw input after discretization. + csv_path = base_folder / "input/timeseries_cold_peak_before.csv" + raw_demand_data = pd.read_csv(csv_path) + cold_demand_raw_list = np.array(raw_demand_data["CoolingDemand_15e8"]) + heat_demand_raw_list = np.array(raw_demand_data["HeatingDemand_9b90"]) + np.testing.assert_array_equal( + cold_demand_raw_list[24:48], cold_demand_timeseries.values[2:26] + ) + np.testing.assert_array_equal( + heat_demand_raw_list[48:75], heat_demand_timeseries.values[26:50] + ) + + demand_matching_test(heat_problem, results) + energy_conservation_test(heat_problem, results) + heat_to_discharge_test(heat_problem, results) + if __name__ == "__main__": test_cold_demand = TestColdDemand() test_cold_demand.test_insufficient_capacity() - # test_cold_demand.test_cold_demand() - # test_cold_demand.test_wko() - # test_cold_demand.test_airco() + test_cold_demand.test_cold_demand() + test_cold_demand.test_wko() + test_cold_demand.test_airco() + test_cold_demand.test_heat_cold_demand_peak_overlap() + test_cold_demand.test_heat_cold_demand_peak_back_to_back() + test_cold_demand.test_heat_cold_peak_before() diff --git a/tests/test_esdl_parsing.py b/tests/test_esdl_parsing.py index f67a24e6b..e3df28f76 100644 --- a/tests/test_esdl_parsing.py +++ b/tests/test_esdl_parsing.py @@ -10,6 +10,7 @@ class TestESDLParsing(unittest.TestCase): + def test_from_string_and_from_file_are_equal(self): """ This test checks if we load the model for the electrolyzer test case From c074cb87682cb869e748f95f4b16a5f63a0ab182 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:31:03 +0100 Subject: [PATCH 240/275] update after profile peak day update (#217) Updated changelog for the profile update work that has been committed recently --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79a63af41..cf923ff62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,10 @@ -# [Unreleased-main] - 2024-11-15 +# [Unreleased-main] - 2024-11-21 ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class ## Changed -- xx +- Adapt profiles for heating and cooling peak day seperately & add test case ## Fixed - Bugfix: same mip gap settings for all solvers in grow_workflow. From a1eddef6d0d5203395bffe74bd4a0de5d144d484 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Tue, 26 Nov 2024 11:49:39 +0100 Subject: [PATCH 241/275] Cleanup assets esdlconversion (#212) Clean up on conversion to pycml assets from esdl. Separated the gas and heatpipe convert functions as well as a the genericconversion function. --- CHANGELOG.md | 2 + src/mesido/esdl/asset_to_component_base.py | 8 +- src/mesido/esdl/esdl_heat_model.py | 210 ++++++++++++++---- src/mesido/esdl/esdl_mixin.py | 5 +- .../milp/electricity/electricity_cable.py | 2 +- .../source_pipe_sink/src/double_pipe_heat.py | 5 + tests/test_gas_boiler.py | 11 + tests/test_multicommodity_simulator.py | 2 +- 8 files changed, 198 insertions(+), 47 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf923ff62..1a1e8660b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class ## Changed +- Write output to json also saves the solver statistics. +- Updates in asset conversion from ESDL to pycml; gas and heat pipe split, generic conversion better specified. - Adapt profiles for heating and cooling peak day seperately & add test case ## Fixed diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index ad2c2f814..28ebcc750 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -176,9 +176,9 @@ class _AssetToComponentBase: "HeatProducer": "heat_source", "Import": "import", "ResidualHeatSource": "heat_source", - "GenericConversion": "heat_exchanger", + "GenericConversion": "generic_conversion", "Joint": "node", - "Pipe": "heat_pipe", + "Pipe": "pipe", "Pump": "pump", "PressureReducingValve": "gas_substation", "PVInstallation": "electricity_source", @@ -186,6 +186,7 @@ class _AssetToComponentBase: "Sensor": "skip", "Valve": "control_valve", "WindPark": "electricity_source", + "WindTurbine": "electricity_source", "Transformer": "transformer", "CheckValve": "check_valve", } @@ -394,8 +395,9 @@ def _cable_get_resistance(self, asset: Asset) -> Tuple: Returns ------- - resistance + resistance [ohm/m] """ + default_res = 1e-6 material = asset.attributes["material"] el_conductivity = None diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 5bace04f5..1d3b0f6b8 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -522,6 +522,114 @@ def convert_node(self, asset: Asset) -> Tuple[Type[Node], MODIFIERS]: return Node, modifiers + def convert_pipe(self, asset: Asset) -> Tuple[Union[Type[HeatPipe], Type[GasPipe]], MODIFIERS]: + """ + This function converts the pipe object in esdl to a set of modifiers that can be used in + a pycml object. Most important, it checks whether it should be converted to a gas or heat + pipe based on the connected commodity. + :param asset: The asset object with its properties. + :return: + """ + + assert asset.asset_type == "Pipe" + + if isinstance(asset.in_ports[0].carrier, esdl.esdl.GasCommodity): + return self.convert_gas_pipe(asset) + elif isinstance(asset.in_ports[0].carrier, esdl.esdl.HeatCommodity): + return self.convert_heat_pipe(asset) + else: + logger.error( + f"{asset.name} is of type {asset.asset_type} but is connected with a commodity of " + f"type {str(type(asset.in_ports[0].carrier))}, while only the commodities Heat and " + f"Gas are allowed" + ) + + def convert_gas_pipe( + self, asset: Asset + ) -> Tuple[Union[Type[HeatPipe], Type[GasPipe]], MODIFIERS]: + """ + This function converts the pipe object in esdl to a set of modifiers that can be used in + a pycml object. Most important: + + - Setting the dimensions of the pipe needed for head loss computation. + - setting if a pipe is disconnecteable for the optimization. + - Setting the state (enabled, disabled, optional) + - Setting the relevant pressure. + - Setting the relevant cost figures. + + Required ESDL fields: + --------------------- + - Diameter/inner_diameter [m] + - length [m] + - id (this id must be unique) + - name (this name must be unique) + - xsi:type + - State + - InPort and OutPort with (note only one inport and one outport): + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified + + Optional ESDL fields: + --------------------- + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters + ---------- + asset : The asset object with its properties. + + Returns + ------- + Pipe class with modifiers + """ + + length = asset.attributes["length"] + if length < 25.0: + length = 25.0 + logger.warning( + f"{asset.name} was shorter then the minimum length, thus is set to " + f"{length} meter" + ) + + id_mapping = asset.global_properties["carriers"][asset.in_ports[0].carrier.id][ + "id_number_mapping" + ] + (diameter, wall_roughness) = self._gas_pipe_get_diameter_and_roughness(asset) + q_nominal = math.pi * diameter**2 / 4.0 * self.v_max_gas / 2.0 + self._set_q_nominal(asset, q_nominal) + q_max = math.pi * diameter**2 / 4.0 * self.v_max_gas + self._set_q_max(asset, q_max) + pressure = asset.in_ports[0].carrier.pressure * 1.0e5 + density = get_density(asset.name, asset.in_ports[0].carrier) + bounds_nominals = dict( + Q=dict(min=-q_max, max=q_max, nominal=q_nominal), + mass_flow=dict(min=-q_max * density, max=q_max * density, nominal=q_nominal * density), + Hydraulic_power=dict(nominal=q_nominal * pressure), + ) + modifiers = dict( + id_mapping_carrier=id_mapping, + length=length, + density=density, + diameter=diameter, + pressure=pressure, + # disconnectable=self._is_disconnectable_pipe(asset), + # TODO: disconnectable option for gaspipes needs to be added. + GasIn=bounds_nominals, + GasOut=bounds_nominals, + state=self.get_state(asset), + **self._get_cost_figure_modifiers(asset), + ) + + return GasPipe, modifiers + def convert_heat_pipe( self, asset: Asset ) -> Tuple[Union[Type[HeatPipe], Type[GasPipe]], MODIFIERS]: @@ -540,8 +648,8 @@ def convert_heat_pipe( Required ESDL fields: --------------------- - - Diameter/inner_diameter - - length + - Diameter/inner_diameter [m] + - length [m] - id (this id must be unique) - name (this name must be unique) - xsi:type @@ -577,6 +685,10 @@ def convert_heat_pipe( length = asset.attributes["length"] if length < 25.0: length = 25.0 + logger.warning( + f"{asset.name} was shorter then the minimum length, thus is set to " + f"{length} meter" + ) ( diameter, @@ -584,40 +696,6 @@ def convert_heat_pipe( conductivies_insulation, ) = self._pipe_get_diameter_and_insulation(asset) - id_mapping = asset.global_properties["carriers"][asset.in_ports[0].carrier.id][ - "id_number_mapping" - ] - - if isinstance(asset.in_ports[0].carrier, esdl.esdl.GasCommodity): - (diameter, wall_roughness) = self._gas_pipe_get_diameter_and_roughness(asset) - q_nominal = math.pi * diameter**2 / 4.0 * self.v_max_gas / 2.0 - self._set_q_nominal(asset, q_nominal) - q_max = math.pi * diameter**2 / 4.0 * self.v_max_gas - self._set_q_max(asset, q_max) - pressure = asset.in_ports[0].carrier.pressure * 1.0e5 - density = get_density(asset.name, asset.in_ports[0].carrier) - bounds_nominals = dict( - Q=dict(min=-q_max, max=q_max, nominal=q_nominal), - mass_flow=dict( - min=-q_max * density, max=q_max * density, nominal=q_nominal * density - ), - Hydraulic_power=dict(nominal=q_nominal * pressure), - ) - modifiers = dict( - id_mapping_carrier=id_mapping, - length=length, - density=density, - diameter=diameter, - pressure=pressure, - # disconnectable=self._is_disconnectable_pipe(asset), # still to be added - GasIn=bounds_nominals, - GasOut=bounds_nominals, - state=self.get_state(asset), - **self._get_cost_figure_modifiers(asset), - ) - - return GasPipe, modifiers - temperature_modifiers = self._supply_return_temperature_modifiers(asset) temperature = temperature_modifiers["temperature"] @@ -741,6 +819,44 @@ def convert_pump(self, asset: Asset) -> Tuple[Type[Pump], MODIFIERS]: return Pump, modifiers + def convert_generic_conversion( + self, asset: Asset + ) -> Tuple[Union[Type[Transformer], Type[HeatExchanger]], MODIFIERS]: + """ + This function determines the type to which the generic conversion should be changed, based + on the connected commodities and calls the required conversion function. + + Parameters + ---------- + asset: The asset object with its properties. + + Returns + ------- + Transformer class or HeatExchanger class with modifiers + """ + + assert asset.asset_type in { + "GenericConversion", + } + + if isinstance(asset.in_ports[0].carrier, esdl.ElectricityCommodity) and isinstance( + asset.out_ports[0].carrier, esdl.ElectricityCommodity + ): + return self.convert_transformer(asset) + elif isinstance(asset.in_ports[0].carrier, esdl.HeatCommodity) and isinstance( + asset.out_ports[0].carrier, esdl.HeatCommodity + ): + return self.convert_heat_exchanger(asset) + else: + logger.error( + f"{asset.name} is of type {asset.asset_type} which is currently only " + f"supported as a heat exchanger or an electric transformer, thus either " + f"heat commodities or electricity commodities need to be connected to the " + f"ports. Currently the connected commodities are of type, " + f"{str(type(asset.in_ports[0].carrier))} and " + f"{str(type(asset.out_ports[0].carrier))}" + ) + def convert_heat_exchanger(self, asset: Asset) -> Tuple[Type[HeatExchanger], MODIFIERS]: """ This function converts the Heat Exchanger object in esdl to a set of modifiers that can be @@ -1536,7 +1652,13 @@ def convert_electricity_source(self, asset: Asset) -> Tuple[Type[ElectricitySour ------- ElectricitySource class with modifiers """ - assert asset.asset_type in {"ElectricityProducer", "WindPark", "PVInstallation", "Import"} + assert asset.asset_type in { + "ElectricityProducer", + "WindPark", + "WindTurbine", + "PVInstallation", + "Import", + } max_supply = asset.attributes.get( "power", math.inf @@ -1557,7 +1679,7 @@ def convert_electricity_source(self, asset: Asset) -> Tuple[Type[ElectricitySour if asset.asset_type in ["ElectricityProducer", "Import"]: return ElectricitySource, modifiers - if asset.asset_type == "WindPark": + if asset.asset_type in ["WindPark", "WindTurbine"]: return WindPark, modifiers if asset.asset_type == "PVInstallation": return SolarPV, modifiers @@ -1718,12 +1840,20 @@ def convert_electricity_cable(self, asset: Asset) -> Tuple[Type[ElectricityCable max_current = max_power / min_voltage self._set_electricity_current_nominal_and_max(asset, max_current / 2.0, max_current) + length = asset.attributes["length"] + if length == 0.0: + length = 10.0 + logger.warning(f"{asset.name} had a length of 0.0m, thus is set to " f"{length} meter") + res_ohm_per_m = self._cable_get_resistance(asset) + res_ohm = res_ohm_per_m * length + modifiers = dict( max_current=max_current, min_voltage=min_voltage, nominal_current=max_current / 2.0, nominal_voltage=min_voltage, - length=asset.attributes["length"], + length=length, + r=res_ohm, ElectricityOut=dict( V=dict(min=min_voltage, nominal=min_voltage), I=dict(min=-max_current, max=max_current, nominal=max_current / 2.0), @@ -1754,7 +1884,7 @@ def convert_transformer(self, asset: Asset) -> Tuple[Type[Transformer], MODIFIER ------- ElectricityCable class with modifiers """ - assert asset.asset_type in {"Transformer"} + assert asset.asset_type in {"Transformer", "GenericConversion"} self._get_connected_i_nominal_and_max(asset) i_max_in, i_nom_in, i_max_out, i_nom_out = self._get_connected_i_nominal_and_max(asset) min_voltage_in = asset.in_ports[0].carrier.voltage diff --git a/src/mesido/esdl/esdl_mixin.py b/src/mesido/esdl/esdl_mixin.py index 3ca7f721f..10a21743e 100644 --- a/src/mesido/esdl/esdl_mixin.py +++ b/src/mesido/esdl/esdl_mixin.py @@ -421,7 +421,7 @@ def get_asset_from_asset_name(self, asset_name: str) -> esdl.Asset: def esdl_heat_model_options(self) -> Dict: """ - function to spedifically return the needed HeatMixin options needed for the conversion + function to spedifically return the needed PhysicsMixin options needed for the conversion from ESDL to pycml. This case velocities used to set nominals and caps on the milp. Returns @@ -431,7 +431,8 @@ def esdl_heat_model_options(self) -> Dict: energy_system_options = self.energy_system_options() v_nominal = energy_system_options["estimated_velocity"] v_max = self.heat_network_settings["maximum_velocity"] - return dict(v_nominal=v_nominal, v_max=v_max) + v_max_gas = self.gas_network_settings["maximum_velocity"] + return dict(v_nominal=v_nominal, v_max=v_max, v_max_gas=v_max_gas) def esdl_qth_model_options(self) -> Dict: """ diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py b/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py index 673d16c0a..9125341c3 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py @@ -30,7 +30,7 @@ def __init__(self, name, **modifiers): self.max_voltage = self.min_voltage * 2.0 self.nominal_current = nan self.nominal_voltage = nan - self.r = 1.0e-6 * self.length # TODO: temporary value + self.r = nan self.nominal_voltage_loss = (self.nominal_current * self.r * self.nominal_voltage) ** 0.5 self.power_loss_nominal = self.r * self.max_current * self.nominal_current # We accept lower accuracy in the loss computation to improve scaling in case the nominals diff --git a/tests/models/source_pipe_sink/src/double_pipe_heat.py b/tests/models/source_pipe_sink/src/double_pipe_heat.py index 4cc2b123b..18701f33f 100644 --- a/tests/models/source_pipe_sink/src/double_pipe_heat.py +++ b/tests/models/source_pipe_sink/src/double_pipe_heat.py @@ -59,6 +59,11 @@ class SourcePipeSink( def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + def energy_system_options(self): + options = super().energy_system_options() + self.gas_network_settings["maximum_velocity"] = 20.0 + return options + def path_goals(self): g = super().path_goals().copy() g.append(TargetDemandGoal(self)) diff --git a/tests/test_gas_boiler.py b/tests/test_gas_boiler.py index 6c9cb7c7c..064505500 100644 --- a/tests/test_gas_boiler.py +++ b/tests/test_gas_boiler.py @@ -1,3 +1,4 @@ +import math from pathlib import Path from unittest import TestCase @@ -38,6 +39,7 @@ def test_gas_boiler(self): ) results = heat_problem.extract_results() parameters = heat_problem.parameters(0) + bounds = heat_problem.bounds() demand_matching_test(heat_problem, results) energy_conservation_test(heat_problem, results) @@ -50,3 +52,12 @@ def test_gas_boiler(self): * results["GasHeater_f713.GasIn.mass_flow"], results["GasHeater_f713.Heat_source"] + 1.0e-6, ) + + # check if the maximum gas velocity set in problem is used to determine bounds on pipes + v_max_gas = heat_problem.gas_network_settings[ + "maximum_velocity" + ] # m/s maximum velocity set in problem. + np.testing.assert_allclose( + bounds["Pipe_a7b5.GasIn.Q"][1], + parameters["Pipe_a7b5.diameter"] ** 2 / 4 * math.pi * v_max_gas, + ) diff --git a/tests/test_multicommodity_simulator.py b/tests/test_multicommodity_simulator.py index 18d630c29..6e2e85a14 100644 --- a/tests/test_multicommodity_simulator.py +++ b/tests/test_multicommodity_simulator.py @@ -275,7 +275,7 @@ def test_multi_commodity_simulator_emerge(self): # enough windfarm power demand_el_calc = windfarm_power - electrolyzer_power demand_el_calc[demand_el_calc < 0] = 0 - np.testing.assert_allclose(demand_el_calc, demand_el, atol=1.0e-6) + np.testing.assert_allclose(demand_el_calc, demand_el, atol=1.0e-3) def test_multi_commodity_simulator_emerge_lowprod(self): import models.emerge.src.example as example From c927023dcc4a1823c5a1aa748f1f5ee5b4751af8 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Mon, 2 Dec 2024 09:08:11 +0100 Subject: [PATCH 242/275] 34 create kip gas workflow (#184) - created a gas and electricity workflow if an example - eboiler port bug fix - change need for elec profile for variable operational cost (heat source) - add variable operational cost for elect & gas source - update fluid/gas property functions - fix test cases --- CHANGELOG.md | 5 + .../input/Example_gas_demand_nom_m3_s.csv | 5 + .../model/Example_gas_elec.esdl | 3061 +++++++++++++++++ .../src/run_example.py | 140 + src/mesido/esdl/asset_to_component_base.py | 79 +- src/mesido/esdl/esdl_heat_model.py | 13 +- src/mesido/financial_mixin.py | 60 +- src/mesido/head_loss_class.py | 1 - .../milp/multicommodity/gas_boiler.py | 7 +- src/mesido/workflows/gas_elect_workflow.py | 208 ++ .../workflows/goals/minimize_tco_goal.py | 2 + .../model/emerge_battery_priorities.esdl | 2 +- ...e_battery_priorities_limited_capacity.esdl | 2 +- .../emerge_priorities_withoutstorage.esdl | 2 +- ...merge_priorities_withoutstorage_2prod.esdl | 2 +- .../electrolyzer/model/h2.esdl | 2 +- .../multi_demand_source_node/model/test.esdl | 10 +- .../model/test_logical_links.esdl | 4 +- .../model/source_sink.esdl | 4 +- .../model/split_with_logical_link.esdl | 4 +- .../source_sink/model/source_sink.esdl | 4 +- tests/test_electrolyzer.py | 10 + tests/test_gas_boiler.py | 11 +- tests/test_hydraulic_power.py | 94 +- tests/test_logical_links.py | 13 + tests/test_multicommodity_simulator.py | 21 +- 26 files changed, 3688 insertions(+), 78 deletions(-) create mode 100644 examples/gas_electricity_network/input/Example_gas_demand_nom_m3_s.csv create mode 100644 examples/gas_electricity_network/model/Example_gas_elec.esdl create mode 100644 examples/gas_electricity_network/src/run_example.py create mode 100644 src/mesido/workflows/gas_elect_workflow.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a1e8660b..da9311df2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,13 +2,18 @@ ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class +- Gas and electricity workflow has been added. Still a work in progress +- Internal energy content function added for natural gas and hydrogen +- OPEX added for gas and electricity source ## Changed - Write output to json also saves the solver statistics. - Updates in asset conversion from ESDL to pycml; gas and heat pipe split, generic conversion better specified. - Adapt profiles for heating and cooling peak day seperately & add test case +- For gas: Use energy content (heating value) instead of internal energy ## Fixed +- Bugfix: gas boiler mass flow contraint units - Bugfix: same mip gap settings for all solvers in grow_workflow. - Bugfix: head loss test case when minimum_velocity = 0.0 diff --git a/examples/gas_electricity_network/input/Example_gas_demand_nom_m3_s.csv b/examples/gas_electricity_network/input/Example_gas_demand_nom_m3_s.csv new file mode 100644 index 000000000..af726e0fd --- /dev/null +++ b/examples/gas_electricity_network/input/Example_gas_demand_nom_m3_s.csv @@ -0,0 +1,5 @@ +DateTime,Demand_3857,Demand_3897,Demand_3923,Demand_3945,Demand_3961,Demand_3973,Demand_3987,Demand_4005,Demand_4015,Demand_4064,Demand_4077,Demand_4090,Demand_4103,Demand_4142,Demand_4164,Demand_4192,Demand_4215,Demand_4236,Demand_4265,Demand_4292,Demand_4303,Demand_4317,Demand_4331,Demand_4343,Demand_4357,Demand_4374,Demand_4391,Demand_4403,Demand_4424,Demand_4436,Demand_4448,Demand_4468,Demand_4482,Demand_4492,Demand_4504,Demand_4521,Demand_4543,Demand_4556,Demand_4577,Demand_4599,Demand_4618,Demand_4635,Demand_4659,Demand_4678,Demand_4706,Demand_4717,Demand_4738,Demand_4767,Demand_4794,Demand_4808,Demand_4820,Demand_4833,Demand_4866,Demand_4888,Demand_4911,Demand_4928,Demand_4961,Demand_5013,Demand_5028,Demand_5038,Demand_5083,Demand_5103,Demand_5116,Demand_5155,Demand_5236,Demand_5249,Demand_5261,Demand_5288,Demand_5303,Demand_5449,Demand_5464,Demand_5800 +2018-02-13 03:00:00,0.011774934191266094,0.005039007598625379,0.005929380551725438,0.004976270332423666,0.0026211417150377864,0.0029149789674740704,0.006551968168015348,0.0031242804120622807,0.014000689350100414,0.00404265474386254,0.003719929993146934,0.0043083133936827975,0.014460053739916368,0.005681975965235055,0.011874534031959214,0.007938568085422761,0.0061868869014177885,0.007435783836229909,0.009146880743511174,0.0033670771767412375,0.003199423352371681,0.002860748449231911,0.002150789442440742,0.0034461190431987654,0.007051030714975885,0.00470387717380209,0.003332695737071371,0.0064879903344028595,0.003297959849569855,0.004110531503623151,0.003915053524469219,0.0036905108231201386,0.002376749935116413,0.0020767098456262864,0.005116986121587966,0.005996371191906931,0.0032059806372571713,0.005315654131226733,0.007048726804070178,0.00692006224118191,0.0038882927131797863,0.00717703691912679,0.00478167847284885,0.009008114417420932,0.002577190183913421,0.006297829072723647,0.007753014645554976,0.008857296865054662,0.004796388057862248,0.01132070929500904,0.0029871091012144617,0.009681388073636523,0.005604174666188295,0.00793715029409617,0.0042664885495483215,0.005538070145585921,0.011393016652665258,0.0037300317563489045,0.0024552601298264707,0.009596143370125149,0.0034556891346532656,0.0031831187521158683,0.0055051064972426456,0.009034698004794544,0.002921181804527913,0.009628220898889307,0.010681108182800018,0.0049993094414807916,0.023330110726910363,0.004743398107030855,0.004458599274301595,0.0021912284726142255 +2018-02-13 04:00:00,0.01144475132404246,0.004897707957383234,0.005763113815994474,0.004836729917186502,0.002547641848897339,0.0028332395625871145,0.006368243350489154,0.0030366719509270575,0.013608093716219728,0.0039292939969707355,0.0036156188240943285,0.004187503268877234,0.01405457699359241,0.005522646742224311,0.01154155826921354,0.007715961391447419,0.006013399387762415,0.007227275798119374,0.008890391555462441,0.0032726604115754245,0.0031097077956824632,0.0027805297312306176,0.0020904788017726906,0.003349485852049273,0.006853311602449595,0.004571974979948152,0.003239243067512809,0.006306059529836556,0.0032054812147485176,0.003995267413341776,0.0038052708643672157,0.0035870246018551836,0.002310103099091427,0.002018476483122313,0.004973499871752052,0.005828225960611322,0.0031160812066634786,0.005166596999041701,0.006851072295888701,0.006726015637180146,0.003779260457390643,0.006975784445895568,0.004647594639966132,0.008755516398756102,0.0025049227698894583,0.006121230611387139,0.007535611086119801,0.008608927946192781,0.004661891751085705,0.011003263422844098,0.0029033470833782727,0.009409910677590517,0.00544702708220633,0.007714583356640713,0.004146851242079414,0.005382776209343677,0.011073543197986079,0.0036254373220921086,0.00238641177651276,0.00932705633483733,0.0033587875869945383,0.0030938603954053464,0.0053507369000877665,0.008781354551381848,0.002839268464866452,0.009358234372339054,0.010381597470668944,0.004859122982795471,0.022675907253045555,0.0046103877001850745,0.004333574958388051,0.0019345285041422837 +2018-02-13 05:00:00,0.010369106210039197,0.004437392526753729,0.005221462447423752,0.0043821455618020585,0.0023081994678960235,0.00256695502690695,0.005769718345376333,0.0027512676416185937,0.012329124946841491,0.003559995812182299,0.003275801678913964,0.0037939370564267975,0.012733645096996102,0.005003595885071968,0.010456814668521788,0.006990769909731876,0.005448224707521986,0.006548013865754799,0.008054820212106125,0.00296507651727901,0.0028174391476624007,0.0025191991758470316,0.0018940032956312463,0.003034681450523203,0.006209197027025772,0.004142273852393256,0.0029347999319665123,0.0057133789263154496,0.002904211216908526,0.0036197686584435672,0.00344762910380602,0.0032498949100383217,0.0020929860083809043,0.001828768178823908,0.004506061070761452,0.005280454969321296,0.00282321354795396,0.004681009793108408,0.006207168183680091,0.006093865086067344,0.0034240633080215525,0.006320159151547351,0.004210786331528236,0.007932621416746923,0.0022694953794553056,0.005545921317860247,0.006827369987968044,0.007799810210041076,0.004223739715966056,0.009969111941194198,0.002630473430114095,0.008525511868304532,0.004935083405936989,0.006989521390749922,0.0037571057464590163,0.004876871208403167,0.01003278640927409,0.0032846973766604186,0.002162122747006863,0.00845044466451427,0.003043108953651423,0.0028030811793698764,0.0048478431420726316,0.007956031147658653,0.0025724172974530193,0.008478692406481081,0.009405873815458115,0.004402433995258886,0.020544691977874757,0.004177076319015352,0.003926280068514414,0.001862558536628986 + diff --git a/examples/gas_electricity_network/model/Example_gas_elec.esdl b/examples/gas_electricity_network/model/Example_gas_elec.esdl new file mode 100644 index 000000000..2392c184a --- /dev/null +++ b/examples/gas_electricity_network/model/Example_gas_elec.esdl @@ -0,0 +1,3061 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/gas_electricity_network/src/run_example.py b/examples/gas_electricity_network/src/run_example.py new file mode 100644 index 000000000..d86905892 --- /dev/null +++ b/examples/gas_electricity_network/src/run_example.py @@ -0,0 +1,140 @@ +# Note: The commented out items are requried for the manual checks/print outs below in this file +# import os +# import sys +# from pathlib import Path + +from mesido.esdl.esdl_parser import ESDLFileParser +from mesido.esdl.profile_parser import ProfileReaderFromFile +from mesido.workflows.gas_elect_workflow import GasElectProblem +from mesido.workflows.utils.helpers import run_optimization_problem_solver + +# root_folder = os.path.join(str(Path(__file__).resolve().parent.parent.parent.parent), "tests") +# sys.path.insert(1, root_folder) + +# from utils_tests import ( +# demand_matching_test, +# electric_power_conservation_test, +# energy_conservation_test, +# heat_to_discharge_test, +# ) + +if __name__ == "__main__": + import time + + start_time = time.time() + + solution = run_optimization_problem_solver( + GasElectProblem, + esdl_parser=ESDLFileParser, + esdl_file_name="Example_gas_elec.esdl", + profile_reader=ProfileReaderFromFile, + input_timeseries_file="Example_gas_demand_nom_m3_s.csv", + ) + + results = solution.extract_results() + + # ---------------------------------------------------------------------------------------------- + # Do not delete the code below: manual checking and testing of values + usefull prints to + # terminal + + # demand_matching_test(solution, results) + # energy_conservation_test(solution, results) + # heat_to_discharge_test(solution, results) + + # for asset_name in [*solution.energy_system_components.get("air_water_heat_pump_elec", [])]: + # power_cons = results[f"{asset_name}.Power_consumed"] + # print(f"{asset_name} power consumed: {power_cons}") + + # for asset_name in [*solution.energy_system_components.get("gas_boiler", [])]: + # power_cons = results[f"{asset_name}.Gas_demand_mass_flow"] + # print(f"{asset_name} gas consumed: {power_cons}") + + # # Check gas consumption vs production balance + # total_gas_demand_g = [0] * len(np.diff(solution.times())) + # total_gas_source_g = [0] * len(np.diff(solution.times())) + # for asset_name in [*solution.energy_system_components.get("gas_boiler", [])]: + # for ii in range(1, len(results[f"{asset_name}.Gas_demand_mass_flow"])): + # total_gas_demand_g[ii - 1] += ( + # results[f"{asset_name}.Gas_demand_mass_flow"][ii] + # * np.diff(solution.times())[ii - 1] + # ) + + # for asset_name in [*solution.energy_system_components.get("gas_source", [])]: + # for ii in range(1, len(results[f"{asset_name}.Gas_source_mass_flow"])): + # total_gas_source_g[ii - 1] += ( + # results[f"{asset_name}.Gas_source_mass_flow"][ii] + # * np.diff(solution.times())[ii - 1] + # ) + # np.testing.assert_allclose(total_gas_source_g, total_gas_demand_g) + + # # Check elect power demand vs production balance + # electric_power_conservation_test(solution, results) + + # Check OPEX costs + # np.testing.assert_allclose( + # sum( + # results["STATION_5.Gas_source_mass_flow"][1:] * 0.0037926 * np.diff(solution.times()) + # ), + # results["STATION_5__variable_operational_cost"][0], + # ) + # np.testing.assert_allclose( + # sum( + # results["Elec_prod_5.Electricity_source"][1:] + # * (np.diff(solution.times())) + # / 3600.0 + # * 0.00027 + # ), + # results["Elec_prod_5__variable_operational_cost"][0], + # atol=1e-10, + # ) + # np.testing.assert_allclose( + # sum( + # results["STATION_10.Gas_source_mass_flow"][1:] * 0.0037926 * np.diff(solution.times()) + # ), + # results["STATION_10__variable_operational_cost"][0], + # ) + # np.testing.assert_allclose( + # sum( + # results["Elec_prod_10.Electricity_source"][1:] + # * (np.diff(solution.times())) + # / 3600.0 + # * 0.00027 + # ), + # results["Elec_prod_10__variable_operational_cost"][0], + # atol=1e-10, + # ) + + # # Check that heat energy balance + # for asset_name in [*solution.energy_system_components.get("heat_demand", [])]: + # dmnd_num = asset_name.strip("Demand_") + # dmnd_val = results[f"Demand_{dmnd_num}.Heat_flow"] + # prod_perc_hp = results[f"Heatpump_{dmnd_num}.Heat_flow"] / dmnd_val + # prod_perc_gb = results[f"Gasboiler_{dmnd_num}.Heat_flow"] / dmnd_val + # # Do not delete: use for manual checks + # print( + # f"dmnd_num: {dmnd_num} demand {dmnd_val/1.0e3}kW, source % split " + # f"HP: {[round(elem*100.0, 1) for elem in prod_perc_hp]} & " + # f"GasBoiler{[round(elem*100.0, 1) for elem in prod_perc_gb]}" + # ) + # np.testing.assert_allclose(prod_perc_hp + prod_perc_gb, 1.0) + + # # Costs + # opex_gas = ( + # results["STATION_5__variable_operational_cost"][0] + # + results["STATION_10__variable_operational_cost"][0] + # ) + # opex_elect = ( + # results["Elec_prod_10__variable_operational_cost"][0] + # + results["Elec_prod_5__variable_operational_cost"][0] + # ) + # opex_tot = opex_gas + opex_elect + # print(f"OPEX for gas:{opex_gas} + elect:{opex_elect} = total OPEX {opex_tot}") + + # # Check that the gas energy content + # np.testing.assert_allclose( + # # g/s /1000 * energy_content J/kg + # results["Gasboiler_4391.Gas_demand_mass_flow"] / 1000 * 41373333.404736854, + # results["Gasboiler_4391.Heat_flow"], + # ) + # ---------------------------------------------------------------------------------------------- + print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index 28ebcc750..42edf3589 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -68,46 +68,84 @@ def get_internal_energy(asset_name, carrier): carrier.pressure * 1.0e5, str(NetworkSettings.NETWORK_TYPE_HYDROGEN).upper(), ) + elif NetworkSettings.NETWORK_TYPE_HEAT in carrier.name: + internal_energy = cP.CoolProp.PropsSI( + "U", + "T", + 273.15 + temperature, + "P", + 1.0 * 1.0e5, # TODO: defualt 1 bar pressure should be set for the carrier + "WATER", + ) else: logger.warning( - f"Neither gas or hydrogen was used in the carrier " f"name of pipe {asset_name}" + f"Neither gas/hydrogen/heat was used in the carrier " f"name of pipe {asset_name}." ) # TODO: resolve heating value (default value below) vs internal energy values (above) internal_energy = 46.0e6 # natural gas at about 1 bar [J/kg] heating value return internal_energy # [J/kg] -def get_density(asset_name, carrier): +def get_energy_content(asset_name, carrier) -> float: + # Return the heating value + energy_content_j_kg = 0.0 # [J/kg] + density_kg_m3 = ( + get_density(asset_name, carrier, temperature_degrees_celsius=20.0, pressure_pa=1.0e5) + / 1000.0 + ) + if str(NetworkSettings.NETWORK_TYPE_GAS).upper() in str(carrier.name).upper(): + # Groningen gas: 31,68 MJ/m3 LCV + energy_content_j_kg = 31.68 * 10.0**6 / density_kg_m3 # LCV / lower heating value + elif str(NetworkSettings.NETWORK_TYPE_HYDROGEN).upper() in str(carrier.name).upper(): + # This value can be lower / higher heating value depending on the case + # Currently the lower heating value is used below (120.0 MJ/kg) + energy_content_j_kg = 120.0 * 10.0**6 / density_kg_m3 + else: + raise logger.error( + f"Neither gas/hydrogen was used in the carrier " f"name of pipe {asset_name}." + ) + return energy_content_j_kg + + +def get_density(asset_name, carrier, temperature_degrees_celsius=20.0, pressure_pa=None): # TODO: gas carrier temperature still needs to be resolved. - # The default of 20°C is also used in the head_loss_class. Thus, when updating ensure it - # is also updated in the head_loss_class. - temperature = 20.0 + # The default for temperature_degrees_celsius=20.0, this should be the same as the value (20°C) + # used in the head_loss_class for the calculation of the friction factor + # (linked to _kinematic_viscosity). Thus, when updating the default value of + # temperature_degrees_celsius ensure it is also updated in the head_loss_class. + if pressure_pa is None: + if str(NetworkSettings.NETWORK_TYPE_HEAT).upper() in str(carrier.name).upper(): + pressure_pa = 16.0e5 # 16bar is expected to be the upper limit in networks + else: + pressure_pa = carrier.pressure * 1.0e5 # convert bar to Pa + elif pressure_pa < 0.0: + raise logger.error("The pressure should be > 0.0 to calculate density") if NetworkSettings.NETWORK_TYPE_GAS in carrier.name: density = cP.CoolProp.PropsSI( "D", "T", - 273.15 + temperature, + 273.15 + temperature_degrees_celsius, "P", - carrier.pressure * 1.0e5, + pressure_pa, NetworkSettings.NETWORK_COMPOSITION_GAS, ) elif NetworkSettings.NETWORK_TYPE_HYDROGEN in carrier.name: density = cP.CoolProp.PropsSI( "D", "T", - 273.15 + temperature, + 273.15 + temperature_degrees_celsius, "P", - carrier.pressure * 1.0e5, + pressure_pa, str(NetworkSettings.NETWORK_TYPE_HYDROGEN).upper(), ) elif NetworkSettings.NETWORK_TYPE_HEAT in carrier.name: density = cP.CoolProp.PropsSI( "D", "T", - 273.15 + temperature, + 273.15 + temperature_degrees_celsius, "P", - 16.0e5, + pressure_pa, "INCOMP::Water", ) return density # kg/m3 @@ -550,7 +588,7 @@ def _get_connected_q_max(self, asset: Asset) -> float: energy_reference_j_kg = 1.0 if not isinstance(port.carrier, esdl.HeatCommodity): convert_density_units = 1.0e3 # convert g/m3 to kg/m3 if needed - energy_reference_j_kg = get_internal_energy(asset.name, port.carrier) + energy_reference_j_kg = get_energy_content(asset.name, port.carrier) else: # heat_value / rho * minimum_dT => [J/m3K] / [kg/m3] * 1.0 [K] => [J/kg] energy_reference_j_kg = HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0 @@ -581,7 +619,7 @@ def _get_connected_q_max(self, asset: Asset) -> float: energy_reference_j_kg = 1.0 if not isinstance(port.carrier, esdl.HeatCommodity): convert_density_units = 1.0e3 # convert g/m3 to kg/m3 if needed - energy_reference_j_kg = get_internal_energy(asset.name, port.carrier) + energy_reference_j_kg = get_energy_content(asset.name, port.carrier) else: # heat_value / rho * minimum_dT => [J/m3K] / [kg/m3] * 1.0 [K] => [J/kg] energy_reference_j_kg = HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0 @@ -800,7 +838,7 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: energy_reference_j_kg = 1.0 if not isinstance(port.carrier, esdl.HeatCommodity): convert_density_units = 1.0e3 # convert g/m3 to kg/m3 if needed - energy_reference_j_kg = get_internal_energy(asset.name, port.carrier) + energy_reference_j_kg = get_energy_content(asset.name, port.carrier) else: # heat_value / rho * minimum_dT => [J/m3K] / [kg/m3] * 1.0 [K] => [J/kg] energy_reference_j_kg = HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0 @@ -829,7 +867,7 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: energy_reference_j_kg = 1.0 if not isinstance(port.carrier, esdl.HeatCommodity): convert_density_units = 1.0e3 # convert g/m3 to kg/m3 if needed - energy_reference_j_kg = get_internal_energy(asset.name, port.carrier) + energy_reference_j_kg = get_energy_content(asset.name, port.carrier) else: # heat_value / rho * minimum_dT => [J/m3K] / [kg/m3] * 1.0 [K] => [J/kg] energy_reference_j_kg = HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0 @@ -858,7 +896,7 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: energy_reference_j_kg = 1.0 if not isinstance(port.carrier, esdl.HeatCommodity): convert_density_units = 1.0e3 # convert g/m3 to kg/m3 if needed - energy_reference_j_kg = get_internal_energy(asset.name, port.carrier) + energy_reference_j_kg = get_energy_content(asset.name, port.carrier) else: # heat_value / rho * minimum_dT => [J/m3K] / [kg/m3] * 1.0 [K] => [J/kg] energy_reference_j_kg = HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0 @@ -892,7 +930,7 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: if isinstance(port.carrier, esdl.GasCommodity): nominal_string += "_gas" convert_density_units = 1.0e3 # convert g/m3 to kg/m3 if needed - energy_reference_j_kg = get_internal_energy(asset.name, port.carrier) + energy_reference_j_kg = get_energy_content(asset.name, port.carrier) elif isinstance(port.carrier, esdl.HeatCommodity): # heat_value / rho * minimum_dT => [J/m3K] / [kg/m3] * 1.0 [K] => [J/kg] energy_reference_j_kg = HEAT_STORAGE_M3_WATER_PER_DEGREE_CELCIUS / 988.0 @@ -933,7 +971,7 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: / ( # note rho -> gas/hydrogen g/m3, heat kg/m3 get_density(asset.name, port.carrier) - * get_internal_energy(asset.name, port.carrier) + * get_energy_content(asset.name, port.carrier) / 1.0e3 ) ) @@ -1022,6 +1060,8 @@ def _get_cost_figure_modifiers(self, asset: Asset) -> Dict: modifiers["installation_cost"] = self.get_installation_costs(asset) elif asset.asset_type == "GasDemand": modifiers["variable_operational_cost_coefficient"] = self.get_variable_opex_costs(asset) + elif asset.asset_type == "GasProducer": + modifiers["variable_operational_cost_coefficient"] = self.get_variable_opex_costs(asset) elif asset.asset_type == "Electrolyzer": modifiers["variable_operational_cost_coefficient"] = self.get_variable_opex_costs(asset) modifiers["fixed_operational_cost_coefficient"] = self.get_fixed_opex_costs(asset) @@ -1232,6 +1272,7 @@ def get_variable_opex_costs(self, asset: Asset) -> float: continue if per_unit != UnitEnum.WATTHOUR and asset.asset_type not in [ "GasDemand", + "GasProducer", "GasStorage", "Electrolyzer", ]: @@ -1242,7 +1283,7 @@ def get_variable_opex_costs(self, asset: Asset) -> float: ) continue if ( - asset.asset_type in ["GasDemand", "GasStorage", "Electrolyzer"] + asset.asset_type in ["GasDemand", "GasProducer", "GasStorage", "Electrolyzer"] and per_unit != UnitEnum.GRAM ): logger.warning( diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 1d3b0f6b8..3fba48c74 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -8,7 +8,7 @@ MODIFIERS, _AssetToComponentBase, get_density, - get_internal_energy, + get_energy_content, ) from mesido.esdl.common import Asset from mesido.esdl.esdl_model_base import _ESDLModelBase @@ -1953,7 +1953,7 @@ def convert_gas_demand(self, asset: Asset) -> Tuple[Type[GasDemand], MODIFIERS]: ] # DO not remove due usage in future # hydrogen_specfic_energy = 20.0 / 1.0e6 - specific_energy = get_internal_energy(asset.name, asset.in_ports[0].carrier) / 10 # J/g + specific_energy = get_energy_content(asset.name, asset.in_ports[0].carrier) # J/kg # TODO: the value being used is the internal energy and not the HHV (higher # heating value) for hydrogen, therefore it does not represent the energy per weight. # This still needs to be updated @@ -2026,9 +2026,8 @@ def convert_gas_source(self, asset: Asset) -> Tuple[Type[GasSource], MODIFIERS]: q_nominal = self._get_connected_q_nominal(asset) density_value = get_density(asset.name, asset.out_ports[0].carrier) pressure = asset.out_ports[0].carrier.pressure * 1.0e5 - specific_energy = ( - get_internal_energy(asset.name, asset.out_ports[0].carrier) / 10 - ) # J/g #TODO: is not the HHV for hydrogen, so is off + # J/kg #TODO: is not the HHV for hydrogen, so is off + specific_energy = get_energy_content(asset.name, asset.out_ports[0].carrier) # [g/s] = [J/s] * [J/kg]^-1 *1000 max_mass_flow_g_per_s = asset.attributes["power"] / specific_energy * 1000.0 @@ -2420,7 +2419,7 @@ def convert_gas_boiler(self, asset: Asset) -> Tuple[GasBoiler, MODIFIERS]: for port in asset.in_ports: if isinstance(port.carrier, esdl.GasCommodity): density = get_density(asset.name, port.carrier) - internal_energy = get_internal_energy(asset.name, port.carrier) + energy_content = get_energy_content(asset.name, port.carrier) # TODO: CO2 coefficient @@ -2444,7 +2443,7 @@ def convert_gas_boiler(self, asset: Asset) -> Tuple[GasBoiler, MODIFIERS]: HeatOut=dict(Hydraulic_power=dict(nominal=q_nominals["Q_nominal"] * 16.0e5)), id_mapping_carrier=id_mapping, density=density, - internal_energy=internal_energy, + energy_content=energy_content, GasIn=dict(Q=dict(min=0.0, nominal=q_nominals["Q_nominal_gas"])), **q_nominals, **self._supply_return_temperature_modifiers(asset), diff --git a/src/mesido/financial_mixin.py b/src/mesido/financial_mixin.py index 81a4cc155..d1b92dff6 100644 --- a/src/mesido/financial_mixin.py +++ b/src/mesido/financial_mixin.py @@ -242,8 +242,15 @@ def pre(self): ) nominal_variable_operational = nominal_fixed_operational nominal_investment = nominal_fixed_operational - elif asset_name in [*self.energy_system_components.get("gas_demand", [])]: - nominal_fixed_operational = bounds[f"{asset_name}.Gas_demand_mass_flow"][1] + elif asset_name in [ + *self.energy_system_components.get("gas_demand", []), + *self.energy_system_components.get("gas_source", []), + ]: + if asset_name in [*self.energy_system_components.get("gas_demand", [])]: + nominal_fixed_operational = bounds[f"{asset_name}.Gas_demand_mass_flow"][1] + elif asset_name in [*self.energy_system_components.get("gas_source", [])]: + nominal_fixed_operational = bounds[f"{asset_name}.Gas_source_mass_flow"][1] + nominal_fixed_operational = ( nominal_fixed_operational if isinstance(nominal_fixed_operational, float) @@ -925,9 +932,12 @@ def __variable_operational_cost_constraints(self, ensemble_member): assert len(self.get_electricity_carriers().keys()) <= 1 if len(self.get_electricity_carriers().keys()) == 1: - price_profile = self.get_timeseries( - f"{list(self.get_electricity_carriers().values())[0]['name']}.price_profile" - ) + try: + price_profile = self.get_timeseries( + f"{list(self.get_electricity_carriers().values())[0]['name']}.price_profile" + ) + except KeyError: + price_profile = Timeseries(self.times(), np.zeros(len(self.times()))) else: price_profile = Timeseries(self.times(), np.zeros(len(self.times()))) @@ -1003,6 +1013,46 @@ def __variable_operational_cost_constraints(self, ensemble_member): constraints.append(((variable_operational_cost - sum) / nominal, 0.0, 0.0)) + for gs in self.energy_system_components.get("gas_source", []): + gas_produced_g_s = self.__state_vector_scaled( + f"{gs}.Gas_source_mass_flow", ensemble_member + ) + variable_operational_cost_var = self._asset_variable_operational_cost_map[gs] + variable_operational_cost = self.extra_variable( + variable_operational_cost_var, ensemble_member + ) + nominal = self.variable_nominal(variable_operational_cost_var) + variable_operational_cost_coefficient = parameters[ # euro / g + f"{gs}.variable_operational_cost_coefficient" + ] + timesteps = np.diff(self.times()) + sum = 0.0 + for i in range(1, len(self.times())): + sum += ( + variable_operational_cost_coefficient * gas_produced_g_s[i] * timesteps[i - 1] + ) # [euro/g] * [g/s] * [s] + constraints.append(((variable_operational_cost - sum) / nominal, 0.0, 0.0)) + + for es in self.energy_system_components.get("electricity_source", []): + elec_produced_w = self.__state_vector_scaled( + f"{es}.Electricity_source", ensemble_member + ) + variable_operational_cost_var = self._asset_variable_operational_cost_map[es] + variable_operational_cost = self.extra_variable( + variable_operational_cost_var, ensemble_member + ) + nominal = self.variable_nominal(variable_operational_cost_var) + variable_operational_cost_coefficient = parameters[ # euro / Wh + f"{es}.variable_operational_cost_coefficient" + ] + timesteps = np.diff(self.times()) / 3600.0 # convert dt from [s] to [hr] + sum = 0.0 + for i in range(1, len(self.times())): + sum += ( + variable_operational_cost_coefficient * elec_produced_w[i] * timesteps[i - 1] + ) # [euro/Wh] * [W] * [hr] + constraints.append(((variable_operational_cost - sum) / nominal, 0.0, 0.0)) + # for a in self.heat_network_components.get("ates", []): # TODO: needs to be replaced with the positive or abs value of this, see varOPEX, # then ates varopex also needs to be added to the mnimize_tco_goal diff --git a/src/mesido/head_loss_class.py b/src/mesido/head_loss_class.py index a0c7f75d6..c6c7abc13 100644 --- a/src/mesido/head_loss_class.py +++ b/src/mesido/head_loss_class.py @@ -222,7 +222,6 @@ def __init__(self, input_network_settings, *args, **kwargs): self.__pipe_head_loss_zero_bounds = {} self._hn_pipe_to_head_loss_map = {} - # Kvr # Boolean variables for the linear line segment options per pipe. self.__pipe_linear_line_segment_var = {} # value 0/1: line segment - not active/active self.__pipe_linear_line_segment_var_bounds = {} diff --git a/src/mesido/pycml/component_library/milp/multicommodity/gas_boiler.py b/src/mesido/pycml/component_library/milp/multicommodity/gas_boiler.py index 9c24ef8f4..c4d631feb 100644 --- a/src/mesido/pycml/component_library/milp/multicommodity/gas_boiler.py +++ b/src/mesido/pycml/component_library/milp/multicommodity/gas_boiler.py @@ -27,7 +27,7 @@ def __init__(self, name, **modifiers): self.component_subtype = "gas_boiler" - self.internal_energy = nan + self.energy_content = nan self.density = 2.5e3 # H2 density [g/m3] at 30bar self.id_mapping_carrier = -1 @@ -47,5 +47,8 @@ def __init__(self, name, **modifiers): ) self.add_equation( - ((self.GasIn.mass_flow * self.internal_energy - self.Heat_source) / self.Heat_nominal) + ( + (self.GasIn.mass_flow / 1000.0 * self.energy_content - self.Heat_source) + / self.Heat_nominal + ) ) diff --git a/src/mesido/workflows/gas_elect_workflow.py b/src/mesido/workflows/gas_elect_workflow.py new file mode 100644 index 000000000..6d204b201 --- /dev/null +++ b/src/mesido/workflows/gas_elect_workflow.py @@ -0,0 +1,208 @@ +import logging +import os + +from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin +from mesido.esdl.esdl_mixin import ESDLMixin +from mesido.head_loss_class import HeadLossOption +from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.goals.minimize_tco_goal import MinimizeTCO +from mesido.workflows.io.write_output import ScenarioOutput +from mesido.workflows.utils.helpers import main_decorator + +import numpy as np + +from rtctools.optimization.collocated_integrated_optimization_problem import ( + CollocatedIntegratedOptimizationProblem, +) +from rtctools.optimization.goal_programming_mixin import Goal +from rtctools.optimization.linearized_order_goal_programming_mixin import ( + LinearizedOrderGoalProgrammingMixin, +) +from rtctools.optimization.single_pass_goal_programming_mixin import ( + CachingQPSol, + SinglePassGoalProgrammingMixin, +) +from rtctools.util import run_optimization_problem + +logger = logging.getLogger("WarmingUP-MPC") +logger.setLevel(logging.INFO) + + +class TargetHeatGoal(Goal): + priority = 1 + + order = 2 + + def __init__(self, state, target): + self.state = state + + self.target_min = target + self.target_max = target + try: + self.function_range = (-1.0e6, max(2.0 * max(target.values), 1.0e6)) + self.function_nominal = max(np.median(target.values), 1.0e6) + except Exception: + self.function_range = (-1.0e6, max(2.0 * target, 1.0e6)) + self.function_nominal = max(target, 1.0e6) + + def function(self, optimization_problem, ensemble_member): + return optimization_problem.state(self.state) + + +class SolverCPLEX: + def solver_options(self): + options = super().solver_options() + options["casadi_solver"] = self._qpsol + options["solver"] = "cplex" + cplex_options = options["cplex"] = {} + cplex_options["CPX_PARAM_EPGAP"] = 0.00001 + + options["highs"] = None + + return options + + +class GasElectProblem( + ScenarioOutput, + ESDLAdditionalVarsMixin, + TechnoEconomicMixin, + LinearizedOrderGoalProgrammingMixin, + SinglePassGoalProgrammingMixin, + ESDLMixin, + CollocatedIntegratedOptimizationProblem, +): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self._number_of_years = 1.0 + + self._save_json = True + + def energy_system_options(self): + options = super().energy_system_options() + options["neglect_pipe_heat_losses"] = True + options["include_electric_cable_power_loss"] = False + # TODO: determine why no heat pump (case with heat pumps & boilers) is used when pwer + # losses are included + # options["include_electric_cable_power_loss"] = True + + # Setting when started with head loss inclusions + self.gas_network_settings["minimum_velocity"] = 0.0 + self.gas_network_settings["maximum_velocity"] = 15.0 + + # TODO: resolve scaling and potential other issues preventing HIGHS to optimize the system + # when LINEARIZED_N_LINES_EQUALITY head loss setting is used + # self.gas_network_settings["n_linearization_lines"] = 3 + # self.gas_network_settings["minimize_head_losses"] = False + # self.gas_network_settings["head_loss_option"] = HeadLossOption.LINEARIZED_N_LINES_EQUALITY + + self.gas_network_settings["minimize_head_losses"] = True + self.gas_network_settings["head_loss_option"] = HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY + + return options + + def solver_options(self): + options = super().solver_options() + options["casadi_solver"] = self._qpsol + options["solver"] = "highs" + highs_options = options["highs"] = {} + highs_options["mip_abs_gap"] = 1.0e-6 + + return options + + def read(self): + super().read() + + # Convert gas demand Nm3/h (data in timeseries source file) to heat demand in watts + # Assumumption: + # - gas heating value (LCV value) = 31.68 * 10^6 (J/m3) at 1bar, 273.15K + # - gas boiler efficiency 80% + # TODO: setup a standard way for gas usage and automate the link to heating value & boiler + # efficiency (if needed) + for demand in self.energy_system_components["heat_demand"]: + target = self.get_timeseries(f"{demand}.target_heat_demand") + + # Manually set heating demand values + boiler_efficiency = 0.8 + gas_heating_value_joule_m3 = 31.68 * 10**6 + for ii in range(len(target.values)): + target.values[ii] *= gas_heating_value_joule_m3 * boiler_efficiency + + self.io.set_timeseries( + f"{demand}.target_heat_demand", + self.io._DataStore__timeseries_datetimes, + target.values, + 0, + ) + + def pre(self): + super().pre() + + # variables for solver settings + self._qpsol = CachingQPSol() + + def parameters(self, ensemble_member): + parameters = super().parameters(ensemble_member) + parameters["number_of_years"] = self._number_of_years + return parameters + + def path_goals(self): + goals = super().path_goals().copy() + bounds = self.bounds() + + for demand in self.energy_system_components["heat_demand"]: + target = self.get_timeseries(f"{demand}.target_heat_demand") + if bounds[f"{demand}.HeatIn.Heat"][1] < max(target.values): + logger.warning( + f"{demand} has a flow limit, {bounds[f'{demand}.HeatIn.Heat'][1]}, " + f"lower that wat is required for the maximum demand {max(target.values)}" + ) + # TODO: update this caclulation to bounds[f"{demand}.HeatIn.Heat"][1]/ dT * Tsup & move + # to potential_errors variable + state = f"{demand}.Heat_demand" + + goals.append(TargetHeatGoal(state, target)) + + return goals + + def goals(self): + goals = super().goals().copy() + goals.append(MinimizeTCO(priority=2, number_of_years=self._number_of_years)) + + return goals + + # Do not delete. Temporary code to deactivate the heat pumps. Use for manual test/checking + # def path_constraints(self, ensemble_member): + # constraints = super().path_constraints(ensemble_member) + + # for eb in self.energy_system_components.get("air_water_heat_pump_elec", []): + # power_consumed = self.state(f"{eb}.Power_consumed") + # constraints.append((power_consumed, 0.0, 0.0)) + + # return constraints + + def post(self): + if os.path.exists(self.output_folder) and self._save_json: + self._write_json_output() + + +@main_decorator +def main(runinfo_path, log_level): + logger.info("Gas and electricity workflow") + + kwargs = { + "write_result_db_profiles": False, + "influxdb_host": "localhost", + "influxdb_port": 8086, + "influxdb_username": None, + "influxdb_password": None, + "influxdb_ssl": False, + "influxdb_verify_ssl": False, + } + + _ = run_optimization_problem( + GasElectProblem, + esdl_run_info_path=runinfo_path, + log_level=log_level, + **kwargs, + ) diff --git a/src/mesido/workflows/goals/minimize_tco_goal.py b/src/mesido/workflows/goals/minimize_tco_goal.py index ea6d75b2c..53eff5123 100644 --- a/src/mesido/workflows/goals/minimize_tco_goal.py +++ b/src/mesido/workflows/goals/minimize_tco_goal.py @@ -43,6 +43,8 @@ def __init__( "pump", "heat_exchanger", "heat_buffer", + "gas_source", # TODO still to add other costs for this asset_type + "electricity_source", # TODO still to add other costs for this asset_type }, "fixed_operational": { "heat_source", diff --git a/tests/models/emerge/model/emerge_battery_priorities.esdl b/tests/models/emerge/model/emerge_battery_priorities.esdl index ca30b865b..19f76ae25 100644 --- a/tests/models/emerge/model/emerge_battery_priorities.esdl +++ b/tests/models/emerge/model/emerge_battery_priorities.esdl @@ -36,7 +36,7 @@ - + diff --git a/tests/models/emerge/model/emerge_battery_priorities_limited_capacity.esdl b/tests/models/emerge/model/emerge_battery_priorities_limited_capacity.esdl index 002d0ff68..99b410ab5 100644 --- a/tests/models/emerge/model/emerge_battery_priorities_limited_capacity.esdl +++ b/tests/models/emerge/model/emerge_battery_priorities_limited_capacity.esdl @@ -36,7 +36,7 @@ - + diff --git a/tests/models/emerge/model/emerge_priorities_withoutstorage.esdl b/tests/models/emerge/model/emerge_priorities_withoutstorage.esdl index 3b848e437..028c04d3e 100644 --- a/tests/models/emerge/model/emerge_priorities_withoutstorage.esdl +++ b/tests/models/emerge/model/emerge_priorities_withoutstorage.esdl @@ -43,7 +43,7 @@ - + diff --git a/tests/models/emerge/model/emerge_priorities_withoutstorage_2prod.esdl b/tests/models/emerge/model/emerge_priorities_withoutstorage_2prod.esdl index a6bbbd861..9b1f0a990 100644 --- a/tests/models/emerge/model/emerge_priorities_withoutstorage_2prod.esdl +++ b/tests/models/emerge/model/emerge_priorities_withoutstorage_2prod.esdl @@ -43,7 +43,7 @@ - + diff --git a/tests/models/unit_cases_electricity/electrolyzer/model/h2.esdl b/tests/models/unit_cases_electricity/electrolyzer/model/h2.esdl index 13425926f..25a913339 100644 --- a/tests/models/unit_cases_electricity/electrolyzer/model/h2.esdl +++ b/tests/models/unit_cases_electricity/electrolyzer/model/h2.esdl @@ -37,7 +37,7 @@ - + diff --git a/tests/models/unit_cases_gas/multi_demand_source_node/model/test.esdl b/tests/models/unit_cases_gas/multi_demand_source_node/model/test.esdl index 192b1e901..c2a534bd1 100644 --- a/tests/models/unit_cases_gas/multi_demand_source_node/model/test.esdl +++ b/tests/models/unit_cases_gas/multi_demand_source_node/model/test.esdl @@ -10,20 +10,20 @@ - + - + - + - + @@ -41,7 +41,7 @@ - + diff --git a/tests/models/unit_cases_gas/multi_demand_source_node/model/test_logical_links.esdl b/tests/models/unit_cases_gas/multi_demand_source_node/model/test_logical_links.esdl index 79e085966..bb7ba8e20 100644 --- a/tests/models/unit_cases_gas/multi_demand_source_node/model/test_logical_links.esdl +++ b/tests/models/unit_cases_gas/multi_demand_source_node/model/test_logical_links.esdl @@ -18,11 +18,11 @@ - + - + diff --git a/tests/models/unit_cases_gas/source_pipe_split_sink/model/source_sink.esdl b/tests/models/unit_cases_gas/source_pipe_split_sink/model/source_sink.esdl index 3a56abd9f..2795c0e60 100644 --- a/tests/models/unit_cases_gas/source_pipe_split_sink/model/source_sink.esdl +++ b/tests/models/unit_cases_gas/source_pipe_split_sink/model/source_sink.esdl @@ -10,11 +10,11 @@ - + - + diff --git a/tests/models/unit_cases_gas/source_pipe_split_sink/model/split_with_logical_link.esdl b/tests/models/unit_cases_gas/source_pipe_split_sink/model/split_with_logical_link.esdl index 0659f7c02..7908b6e6c 100644 --- a/tests/models/unit_cases_gas/source_pipe_split_sink/model/split_with_logical_link.esdl +++ b/tests/models/unit_cases_gas/source_pipe_split_sink/model/split_with_logical_link.esdl @@ -10,11 +10,11 @@ - + - + diff --git a/tests/models/unit_cases_gas/source_sink/model/source_sink.esdl b/tests/models/unit_cases_gas/source_sink/model/source_sink.esdl index ca79d6f70..6d407ac7e 100644 --- a/tests/models/unit_cases_gas/source_sink/model/source_sink.esdl +++ b/tests/models/unit_cases_gas/source_sink/model/source_sink.esdl @@ -10,11 +10,11 @@ - + - + diff --git a/tests/test_electrolyzer.py b/tests/test_electrolyzer.py index 65daf16ad..eedc3019c 100644 --- a/tests/test_electrolyzer.py +++ b/tests/test_electrolyzer.py @@ -496,3 +496,13 @@ def test_electrolyzer_equality_constraint_inactive_line(self): 0.0, atol=1e-4, ) + + +if __name__ == "__main__": + + a = TestElectrolyzer() + a.test_electrolyzer_inequality() + a.test_electrolyzer_minimum_power() + a.test_electrolyzer_constant_efficiency() + a.test_electrolyzer_equality_constraint() + a.test_electrolyzer_equality_constraint_inactive_line() diff --git a/tests/test_gas_boiler.py b/tests/test_gas_boiler.py index 064505500..c54b09916 100644 --- a/tests/test_gas_boiler.py +++ b/tests/test_gas_boiler.py @@ -48,8 +48,9 @@ def test_gas_boiler(self): np.testing.assert_array_less(0.0, results["GasHeater_f713.Heat_source"]) np.testing.assert_array_less(0.0, results["GasProducer_82ec.Gas_source_mass_flow"]) np.testing.assert_array_less( - parameters["GasHeater_f713.internal_energy"] - * results["GasHeater_f713.GasIn.mass_flow"], + parameters["GasHeater_f713.energy_content"] + * results["GasHeater_f713.GasIn.mass_flow"] + / 1000.0, # [J/kg] * [g/s] / 1000.0 = [J/s] results["GasHeater_f713.Heat_source"] + 1.0e-6, ) @@ -61,3 +62,9 @@ def test_gas_boiler(self): bounds["Pipe_a7b5.GasIn.Q"][1], parameters["Pipe_a7b5.diameter"] ** 2 / 4 * math.pi * v_max_gas, ) + + +if __name__ == "__main__": + + a = TestGasBoiler() + a.test_gas_boiler() diff --git a/tests/test_hydraulic_power.py b/tests/test_hydraulic_power.py index 679ac8654..9239039b0 100644 --- a/tests/test_hydraulic_power.py +++ b/tests/test_hydraulic_power.py @@ -291,6 +291,8 @@ def energy_system_options(self): results = solution.extract_results() parameters = solution.parameters(0) + demand_matching_test(solution, results) + pipe = "Pipe_4abc" pipe_hp_in = results[f"{pipe}.GasIn.Hydraulic_power"] pipe_hp_out = results[f"{pipe}.GasOut.Hydraulic_power"] @@ -370,8 +372,6 @@ def energy_system_options(self): np.testing.assert_allclose(pipe_hp[1], a[1] * results[f"{pipe}.GasOut.Q"][1] + b[1]) np.testing.assert_allclose(pipe_hp[2], a[2] * results[f"{pipe}.GasOut.Q"][2] + b[2]) - demand_matching_test(solution, results) - def test_hydraulic_power_gas_multi_demand(self): """ Checks the logic for the hydraulic power of gas pipes. @@ -394,7 +394,7 @@ def read(self): super().read() for d in self.energy_system_components["gas_demand"]: - new_timeseries = self.get_timeseries(f"{d}.target_gas_demand").values * 3 + new_timeseries = self.get_timeseries(f"{d}.target_gas_demand").values * 1.39 self.set_timeseries(f"{d}.target_gas_demand", new_timeseries) def energy_system_options(self): @@ -429,7 +429,7 @@ def energy_system_options(self): pipe_mass = results[f"{pipe}.GasIn.mass_flow"] - np.testing.assert_allclose(pipe_hp, pipe_hp_in - pipe_hp_out) + np.testing.assert_allclose(pipe_hp, pipe_hp_in - pipe_hp_out, atol=1e-8) if pipe in ["Pipe_7c53", "Pipe_c50f"]: # connected to demand, thus hydraulic_power should be 0 np.testing.assert_allclose(0, pipe_hp_out) @@ -442,23 +442,81 @@ def energy_system_options(self): for i in range(solution.gas_network_settings["n_linearization_lines"] + 1) ] - # due to non linearity, every timestep on new linearized line, a doubled mass flow - # should result in more than doubled hydraulic power + # Check hydraulic power for: + # - On the first linear line (line_index = 0), the line intercepts the y-axis at 0. So a + # simple ratio calc is used + # - On any other linear line (line_index > 0), the line does not intercept the y-axis + # at 0 anymore. But it is known that the gradient of these lines are higher than the + # gradient of the line at line_index=0, due these lines representing a non-linear + # curve. This implies that the hydraulic power on these lines will be higher than the + # hydraulic power that is exrapolated from line_index=0. Also if on line index > 0 then + # the extrapolated value will on a line will be larger. + # Notes: + # - It is ensured that for each pipe more than one line out of the linearized lines is + # used + # - Checks have been added to cater for the scenario where the a pipe has no flow at a + # specific time step v_inspect_line_ind = [] + v_points = np.array(v_points) for k in range(len(v_inspect)): - for i in range(len(v_points)): - if v_points[i] + 1e-6 < v_inspect[k] <= v_points[i + 1] + 1e-6: - v_inspect_line_ind.append(i) + idx = v_points < v_inspect[k] + 1e-6 + v_inspect_line_ind.append(np.where(idx)[0][-1]) + ind_check = 0 for k in range(len(v_inspect) - 1): - if v_inspect_line_ind[k] == v_inspect_line_ind[k + 1]: - np.testing.assert_allclose( - pipe_hp[k] * pipe_mass[k + 1] / pipe_mass[k], pipe_hp[k + 1] - ) + if ( + v_inspect_line_ind[k] == v_inspect_line_ind[k + 1] + and v_inspect_line_ind[k] == 0 + ): # use simple ratio calc + if pipe_mass[k] > 0: + np.testing.assert_allclose( + pipe_hp[k] * pipe_mass[k + 1] / pipe_mass[k], pipe_hp[k + 1] + ) + elif pipe_mass[k] == 0: + np.testing.assert_array_less(0.0, pipe_hp[k + 1]) + elif pipe_mass[k] < 0: + raise RuntimeWarning("The mass flow cannot be negative for this test case") + elif ( + v_inspect_line_ind[k] == v_inspect_line_ind[k + 1] + and v_inspect_line_ind[k] > 0 + and k > 0 + ): + # use fact that the extrapolated value will be smaller than the value on the + # next line + if pipe_mass[k - 1] > 0: + np.testing.assert_array_less( + pipe_hp[k - 1] * pipe_mass[k + 1] / pipe_mass[k - 1], pipe_hp[k + 1] + ) + np.testing.assert_array_less( + pipe_hp[k - 1] * pipe_mass[k] / pipe_mass[k - 1], pipe_hp[k] + ) + elif pipe_mass[k - 1] == 0: + np.testing.assert_array_less(0.0, pipe_hp[k + 1]) + elif pipe_mass[k] < 0: + raise RuntimeWarning("The mass flow cannot be negative for this test case") + elif ( + v_inspect_line_ind[k] == v_inspect_line_ind[k + 1] + and v_inspect_line_ind[k] > 0 + and k == 0 + ): + # use fact that the extrapolated value will be larger on the same line + if pipe_mass[k] > 0: + np.testing.assert_array_less( + pipe_hp[k] * pipe_mass[k + 1] / pipe_mass[k], pipe_hp[k + 1] + ) + elif pipe_mass[k] == 0: + np.testing.assert_array_less(0.0, pipe_hp[k + 1]) + elif pipe_mass[k] < 0: + raise RuntimeWarning("The mass flow cannot be negative for this test case") elif v_inspect_line_ind[k] < v_inspect_line_ind[k + 1]: - np.testing.assert_array_less( - (pipe_hp[k] + 1e-6) * pipe_mass[k + 1] / pipe_mass[k], pipe_hp[k + 1] - ) + if pipe_mass[k] > 0: + np.testing.assert_array_less( + (pipe_hp[k]) * pipe_mass[k + 1] / pipe_mass[k], pipe_hp[k + 1] + ) + elif pipe_mass[k] == 0: + np.testing.assert_array_less(0.0, pipe_hp[k + 1]) + elif pipe_mass[k] < 0: + raise RuntimeWarning("The mass flow cannot be negative for this test case") ind_check += 1 else: raise RuntimeWarning( @@ -497,8 +555,8 @@ def energy_system_options(self): start_time = time.time() a = TestHydraulicPower() - a.test_hydraulic_power_heat() - a.test_hydraulic_power_gas() + # a.test_hydraulic_power_heat() + # a.test_hydraulic_power_gas() a.test_hydraulic_power_gas_multi_demand() print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) diff --git a/tests/test_logical_links.py b/tests/test_logical_links.py index 5df0793b8..ffd043427 100644 --- a/tests/test_logical_links.py +++ b/tests/test_logical_links.py @@ -195,3 +195,16 @@ def test_logical_links_network_hybrid(self): ) != 0.0 ) + + +if __name__ == "__main__": + import time + + start_time = time.time() + a = TestLogicalLinks() + a.test_logical_links_electricity() + a.test_logical_links_gas() + a.test_logical_links_nodes() + a.test_logical_links_nodes_heat() + a.test_logical_links_network_hybrid() + print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) diff --git a/tests/test_multicommodity_simulator.py b/tests/test_multicommodity_simulator.py index 6e2e85a14..f9b5437cc 100644 --- a/tests/test_multicommodity_simulator.py +++ b/tests/test_multicommodity_simulator.py @@ -622,7 +622,14 @@ def test_multi_commodity_simulator_sequential_staged(self): # Checking that the results are the same. for key, value in results_unstaged.items(): value_staged = results_staged[key] - np.testing.assert_allclose(value, value_staged) + if len(key.split("__")) > 1 and key.split("__")[1] == "gas_flow_direct_var": + # For the scenario when Q is -0 and 0 then gas_flow_direct_var 0 or 1 for the same + # volumetric flow rate of zero. So only check gas_flow_direct_var when Q != zero + zero_staged = results_staged[f"{key.split('__')[0]}.GasIn.Q"] != 0 + zero_unstaged = results_unstaged[f"{key.split('__')[0]}.GasIn.Q"] != 0 + np.testing.assert_allclose(value[zero_staged], value_staged[zero_unstaged]) + else: + np.testing.assert_allclose(value, value_staged) solution_staged_bounded = run_sequatially_staged_simulation( multi_commodity_simulator_class=MultiCommoditySimulatorNoLosses, @@ -672,7 +679,7 @@ def times(self, variable=None) -> np.ndarray: results_unstaged_bounded_win = solution_unstaged_bounded_win.extract_results() np.testing.assert_allclose( - results_staged_bounded["Battery_4688.Stored_electricity"][20], + results_staged_bounded["Battery_4688.Stored_electricity"][19], results_unstaged_bounded_win["Battery_4688.Stored_electricity"][-1], ) @@ -682,9 +689,11 @@ def times(self, variable=None) -> np.ndarray: start_time = time.time() a = TestMultiCommoditySimulator() - a.test_multi_commodity_simulator_priorities_el() - a.test_multi_commodity_simulator_prod_profile() - a.test_multi_commodity_simulator_emerge() - a.test_multi_commodity_simulator_emerge_lowprod() + # a.test_multi_commodity_simulator_priorities_el() + # a.test_multi_commodity_simulator_prod_profile() + # a.test_multi_commodity_simulator_emerge() + # a.test_multi_commodity_simulator_emerge_lowprod() + # a.test_multi_commodity_simulator_emerge_head_losses() + a.test_multi_commodity_simulator_sequential_staged() print("Execution time: " + time.strftime("%M:%S", time.gmtime(time.time() - start_time))) From 3b2e281525a8b091996d506c6ec2a0d3a90eb4d0 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:27:19 +0100 Subject: [PATCH 243/275] Heat exchanger bypass (#218) Heat exchanger bypass is added as an option, which allows for timesteps with a flowrate passing the heat exchanger on the primary or secondary side, but without any heat heat transfer, in case the temperature on the return and supply of one side are the same. The temperature on the primary side should then also be equal or smaller than the temperature on the secondary side. --- CHANGELOG.md | 1 + src/mesido/esdl/asset_to_component_base.py | 24 +- src/mesido/esdl/esdl_heat_model.py | 66 ++-- src/mesido/heat_physics_mixin.py | 92 +++-- src/mesido/potential_errors.py | 1 + src/mesido/workflows/utils/error_types.py | 4 + .../heat_exchange/model/test_hex_bypass.esdl | 342 ++++++++++++++++++ ...est_multiple_in_and_out_port_components.py | 68 ++++ 8 files changed, 528 insertions(+), 70 deletions(-) create mode 100644 tests/models/heat_exchange/model/test_hex_bypass.esdl diff --git a/CHANGELOG.md b/CHANGELOG.md index da9311df2..2c6c3a0b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - Updates in asset conversion from ESDL to pycml; gas and heat pipe split, generic conversion better specified. - Adapt profiles for heating and cooling peak day seperately & add test case - For gas: Use energy content (heating value) instead of internal energy +- Option was added to allow a bypass of the heat exchanger ## Fixed - Bugfix: gas boiler mass flow contraint units diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index 42edf3589..0cdeaf8cf 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -13,6 +13,7 @@ from mesido.esdl._exceptions import _RetryLaterException from mesido.esdl.common import Asset from mesido.network_common import NetworkSettings +from mesido.potential_errors import MesidoAssetIssueType, get_potential_errors from mesido.pycml import Model as _Model @@ -1009,7 +1010,7 @@ def _get_connected_q_nominal(self, asset: Asset) -> Union[float, Dict]: if q_nominal is not None: self._port_to_q_nominal[p] = q_nominal self._port_to_q_nominal[out_port] = q_nominal - if "_ret" in p.carrier.name: + if "sec" in p.name.lower(): q_nominals["Secondary"] = {"Q_nominal": q_nominal} else: q_nominals["Primary"] = {"Q_nominal": q_nominal} @@ -1183,10 +1184,27 @@ def _supply_return_temperature_modifiers(self, asset: Asset) -> MODIFIERS: f"primary and secondary ports ('prim' and 'sec') for the hydraulically " f"decoupled networks" ) - assert sec_supply_temperature > sec_return_temperature + assert sec_supply_temperature >= sec_return_temperature assert sec_return_temperature > 0.0 - assert prim_supply_temperature > prim_return_temperature + assert prim_supply_temperature >= prim_return_temperature assert prim_return_temperature > 0.0 + + if ( + sec_supply_temperature == sec_return_temperature + or prim_return_temperature == prim_supply_temperature + ): + asset_id = asset.id + get_potential_errors().add_potential_issue( + MesidoAssetIssueType.HEAT_EXCHANGER_TEMPERATURES, + asset_id, + f"Asset named {asset.name}: The temperature on the primary side " + f"supply side is {prim_supply_temperature} and on the return side is " + f"{prim_return_temperature} and on the secondary side the supply temperature " + f"is {sec_supply_temperature} and return temperature is " + f"{sec_return_temperature}. This would result in a bypass of the " + f"heatexchanger.", + ) + temperatures = { "Primary": { "T_supply": prim_supply_temperature, diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 3fba48c74..8e3248ab7 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -12,6 +12,7 @@ ) from mesido.esdl.common import Asset from mesido.esdl.esdl_model_base import _ESDLModelBase +from mesido.potential_errors import MesidoAssetIssueType, get_potential_errors from mesido.pycml.component_library.milp import ( ATES, AirWaterHeatPump, @@ -911,20 +912,25 @@ def convert_heat_exchanger(self, asset: Asset) -> Tuple[Type[HeatExchanger], MOD params = {} if params_t["Primary"]["T_supply"] < params_t["Secondary"]["T_supply"]: - logger.error( - f"{asset.name} has a primary side supply temperature, " - f"{params_t['Primary']['T_supply']}, that is higher than the secondary supply , " - f"{params_t['Secondary']['T_supply']}. This is not possible as the HEX can only " - "transfer milp from primary to secondary." + get_potential_errors().add_potential_issue( + MesidoAssetIssueType.HEAT_EXCHANGER_TEMPERATURES, + asset.id, + f"Asset named {asset.name}: The supply temperature on the primary side " + f"of the heat exchanger ({params_t['Primary']['T_supply']}°C) should be larger " + f"than the supply temperature on the secondary side " + f"({params_t['Secondary']['T_supply']}°C), as the heat exchanger can only " + f"transfer heat from primary to secondary.", ) - assert params_t["Primary"]["T_supply"] >= params_t["Secondary"]["T_supply"] if params_t["Primary"]["T_return"] < params_t["Secondary"]["T_return"]: - logger.error( - f"{asset.name} has a primary side return temperature that is lower than the " - f"secondary return temperature. This is not possible as the HEX can only transfer " - f"milp from primary to secondary." + get_potential_errors().add_potential_issue( + MesidoAssetIssueType.HEAT_EXCHANGER_TEMPERATURES, + asset.id, + f"Asset named {asset.name}: The return temperature on the primary side " + f"of the heat exchanger ({params_t['Primary']['T_return']}°C) should be larger " + f"than the return temperature on the secondary side " + f"({params_t['Secondary']['T_return']}°C), as the heat exchanger can only " + f"transfer heat from primary to secondary.", ) - assert params_t["Primary"]["T_return"] >= params_t["Secondary"]["T_return"] if asset.asset_type == "GenericConversion": max_power = asset.attributes["power"] if asset.attributes["power"] else math.inf @@ -936,12 +942,18 @@ def convert_heat_exchanger(self, asset: Asset) -> Tuple[Type[HeatExchanger], MOD * (params_t["Primary"]["T_supply"] - params_t["Secondary"]["T_return"]) / 2.0 ) - - max_heat_transport = ( - params_t["Primary"]["T_supply"] - * max_power - / (params_t["Primary"]["T_supply"] - params_t["Primary"]["T_return"]) - ) + if max_power == 0.0: + max_power = ( + asset.attributes["capacity"] if asset.attributes["capacity"] else math.inf + ) + # This default delta temperature is used when on the primary or secondary side the + # temperature difference is 0.0. It is set to 10.0 to ensure that maximum/nominal + # flowrates and heat transport are set at realistic values. + default_dt = 10.0 + dt_prim = params_t["Primary"]["T_supply"] - params_t["Primary"]["T_return"] + dt_prim = dt_prim if dt_prim > 0.0 else default_dt + params_t["Primary"]["dT"] = dt_prim + max_heat_transport = params_t["Primary"]["T_supply"] * max_power / (dt_prim) prim_heat = dict( HeatIn=dict( @@ -952,14 +964,12 @@ def convert_heat_exchanger(self, asset: Asset) -> Tuple[Type[HeatExchanger], MOD Heat=dict(min=-max_heat_transport, max=max_heat_transport, nominal=max_power / 2.0), Hydraulic_power=dict(nominal=params_q["Primary"]["Q_nominal"] * 16.0e5), ), - Q_nominal=max_power - / ( - 2 - * self.rho - * self.cp - * (params_t["Primary"]["T_supply"] - params_t["Primary"]["T_return"]) - ), + Q_nominal=max_power / (2 * self.rho * self.cp * (dt_prim)), ) + + dt_sec = params_t["Secondary"]["T_supply"] - params_t["Secondary"]["T_return"] + dt_sec = dt_sec if dt_sec > 0.0 else default_dt + params_t["Secondary"]["dT"] = dt_sec sec_heat = dict( HeatIn=dict( Heat=dict(min=-max_heat_transport, max=max_heat_transport, nominal=max_power / 2.0), @@ -969,13 +979,7 @@ def convert_heat_exchanger(self, asset: Asset) -> Tuple[Type[HeatExchanger], MOD Heat=dict(min=-max_heat_transport, max=max_heat_transport, nominal=max_power / 2.0), Hydraulic_power=dict(nominal=params_q["Secondary"]["Q_nominal"] * 16.0e5), ), - Q_nominal=max_power - / ( - 2 - * self.cp - * self.rho - * (params_t["Secondary"]["T_supply"] - params_t["Secondary"]["T_return"]) - ), + Q_nominal=max_power / (2 * self.cp * self.rho * (dt_sec)), ) params["Primary"] = {**params_t["Primary"], **params_q["Primary"], **prim_heat} params["Secondary"] = { diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 5c66d3e4e..772d7c984 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -106,6 +106,7 @@ def __init__(self, *args, **kwargs): "n_linearization_lines": 5, "pipe_minimum_pressure": -np.inf, "pipe_maximum_pressure": np.inf, + "heat_exchanger_bypass": False, } self._hn_head_loss_class = HeadLossClass(self.heat_network_settings) self.__pipe_head_bounds = {} @@ -2528,6 +2529,8 @@ def __heat_exchanger_heat_to_discharge_path_constraints(self, ensemble_member): constraints = [] parameters = self.parameters(ensemble_member) + hn_settings = self.heat_network_settings + # The primary side of the heat exchanger acts like a heat consumer, and the secondary side # acts as a heat producer. Essentially using equality constraints to set the heat leaving # the secondary side based on the secondary Supply temperature and the heat leaving the @@ -2547,7 +2550,9 @@ def __heat_exchanger_heat_to_discharge_path_constraints(self, ensemble_member): discharge_secondary = self.state(f"{heat_exchanger}.Secondary.HeatOut.Q") heat_primary = self.state(f"{heat_exchanger}.Primary_heat") heat_out_prim = self.state(f"{heat_exchanger}.Primary.HeatOut.Heat") + heat_in_prim = self.state(f"{heat_exchanger}.Primary.HeatIn.Heat") heat_out_sec = self.state(f"{heat_exchanger}.Secondary.HeatOut.Heat") + heat_in_sec = self.state(f"{heat_exchanger}.Secondary.HeatIn.Heat") constraint_nominal = ( cp_prim @@ -2566,16 +2571,27 @@ def __heat_exchanger_heat_to_discharge_path_constraints(self, ensemble_member): # primary side if len(return_temperatures_prim) == 0: + # TODO: for bypass only works if heatloss is turned off, else a check should be + # made here if the return temperature is below supply temperature + if ( + hn_settings["heat_exchanger_bypass"] + and parameters[f"{heat_exchanger}.Primary.T_return"] + >= parameters[f"{heat_exchanger}.Primary.T_supply"] + ): + # Only when bypass is allowed Tret can be equal to Tsup. The below equation + # will not hold as due to heatlosses Heatinprim might somewhat smaller than + # the original temperature + expr = heat_in_prim + else: + expr = ( + discharge_primary + * cp_prim + * rho_prim + * parameters[f"{heat_exchanger}.Primary.T_return"] + ) constraints.append( ( - ( - heat_out_prim - - discharge_primary - * cp_prim - * rho_prim - * parameters[f"{heat_exchanger}.Primary.T_return"] - ) - / constraint_nominal, + (heat_out_prim - expr) / constraint_nominal, 0.0, 0.0, ) @@ -2585,13 +2601,16 @@ def __heat_exchanger_heat_to_discharge_path_constraints(self, ensemble_member): ret_temperature_is_selected = self.state( f"{ret_carrier_prim}_{return_temperature}" ) + if ( + hn_settings["heat_exchanger_bypass"] + and return_temperature >= parameters[f"{heat_exchanger}.Primary.T_supply"] + ): + expr = heat_in_prim + else: + expr = discharge_primary * cp_prim * rho_prim * return_temperature constraints.append( ( - ( - heat_out_prim - - discharge_primary * cp_prim * rho_prim * return_temperature - + (1.0 - ret_temperature_is_selected) * big_m - ) + (heat_out_prim - expr + (1.0 - ret_temperature_is_selected) * big_m) / constraint_nominal, 0.0, np.inf, @@ -2599,11 +2618,7 @@ def __heat_exchanger_heat_to_discharge_path_constraints(self, ensemble_member): ) constraints.append( ( - ( - heat_out_prim - - discharge_primary * cp_prim * rho_prim * return_temperature - - (1.0 - ret_temperature_is_selected) * big_m - ) + (heat_out_prim - expr - (1.0 - ret_temperature_is_selected) * big_m) / constraint_nominal, -np.inf, 0.0, @@ -2622,16 +2637,22 @@ def __heat_exchanger_heat_to_discharge_path_constraints(self, ensemble_member): ) if len(supply_temperatures_sec) == 0: + if ( + hn_settings["heat_exchanger_bypass"] + and parameters[f"{heat_exchanger}.Secondary.T_return"] + >= parameters[f"{heat_exchanger}.Secondary.T_supply"] + ): + expr = heat_in_sec + else: + expr = ( + discharge_secondary + * cp_sec + * rho_sec + * parameters[f"{heat_exchanger}.Secondary.T_supply"] + ) constraints.append( ( - ( - heat_out_sec - - discharge_secondary - * cp_sec - * rho_sec - * parameters[f"{heat_exchanger}.Secondary.T_supply"] - ) - / constraint_nominal, + (heat_out_sec - expr) / constraint_nominal, 0.0, 0.0, ) @@ -2641,13 +2662,16 @@ def __heat_exchanger_heat_to_discharge_path_constraints(self, ensemble_member): sup_temperature_is_selected = self.state( f"{sup_carrier_sec}_{supply_temperature}" ) + if ( + hn_settings["heat_exchanger_bypass"] + and supply_temperature <= parameters[f"{heat_exchanger}.Secondary.T_return"] + ): + expr = heat_in_sec + else: + expr = discharge_secondary * cp_sec * rho_sec * supply_temperature constraints.append( ( - ( - heat_out_sec - - discharge_secondary * cp_sec * rho_sec * supply_temperature - - (1.0 - sup_temperature_is_selected) * big_m - ) + (heat_out_sec - expr - (1.0 - sup_temperature_is_selected) * big_m) / constraint_nominal, -np.inf, 0.0, @@ -2655,11 +2679,7 @@ def __heat_exchanger_heat_to_discharge_path_constraints(self, ensemble_member): ) constraints.append( ( - ( - heat_out_sec - - discharge_secondary * cp_sec * rho_sec * supply_temperature - + (1.0 - sup_temperature_is_selected) * big_m - ) + (heat_out_sec - expr + (1.0 - sup_temperature_is_selected) * big_m) / constraint_nominal, 0.0, np.inf, diff --git a/src/mesido/potential_errors.py b/src/mesido/potential_errors.py index 399506fab..e8ec50791 100644 --- a/src/mesido/potential_errors.py +++ b/src/mesido/potential_errors.py @@ -13,6 +13,7 @@ class MesidoAssetIssueType(Enum): COLD_DEMAND_POWER = "cold_demand.power" HEAT_DEMAND_TYPE = "heat_demand.type" ASSET_PROFILE_CAPABILITY = "asset_profile.capability" + HEAT_EXCHANGER_TEMPERATURES = "heat_exchanger.temperature" class PotentialErrors: diff --git a/src/mesido/workflows/utils/error_types.py b/src/mesido/workflows/utils/error_types.py index 46557ccbc..020f2b673 100644 --- a/src/mesido/workflows/utils/error_types.py +++ b/src/mesido/workflows/utils/error_types.py @@ -25,6 +25,8 @@ def mesido_issue_type_gen_message(issue_type: MesidoAssetIssueType) -> str: " listed.", MesidoAssetIssueType.HEAT_DEMAND_TYPE: "Incorrect asset type: please update.", MesidoAssetIssueType.ASSET_PROFILE_CAPABILITY: "Profile assigment not allowed.", + MesidoAssetIssueType.HEAT_EXCHANGER_TEMPERATURES: "Temperatures at heat exchanger set " + "incorrectly.", } return type_and_general_meassage[issue_type] @@ -42,12 +44,14 @@ def potential_error_to_error(network_check_type: Enum) -> None: MesidoAssetIssueType.COLD_DEMAND_POWER, MesidoAssetIssueType.HEAT_DEMAND_TYPE, MesidoAssetIssueType.ASSET_PROFILE_CAPABILITY, + MesidoAssetIssueType.HEAT_EXCHANGER_TEMPERATURES, ], HEAT_AND_COOL_NETWORK_ERRORS: [ MesidoAssetIssueType.HEAT_DEMAND_POWER, MesidoAssetIssueType.COLD_DEMAND_POWER, MesidoAssetIssueType.HEAT_DEMAND_TYPE, MesidoAssetIssueType.ASSET_PROFILE_CAPABILITY, + MesidoAssetIssueType.HEAT_EXCHANGER_TEMPERATURES, ], # Example of extra error types / groups that can be added. This one is not used yet. CUSTOM_ERRORS: [MesidoAssetIssueType.ASSET_PROFILE_CAPABILITY], diff --git a/tests/models/heat_exchange/model/test_hex_bypass.esdl b/tests/models/heat_exchange/model/test_hex_bypass.esdl new file mode 100644 index 000000000..ae85e8bf4 --- /dev/null +++ b/tests/models/heat_exchange/model/test_hex_bypass.esdl @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index aec152098..852ed3c3f 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -104,6 +104,74 @@ def energy_system_options(self): parameters["HeatExchange_39ed.Primary.T_return"], ) + def test_heat_exchanger_bypass(self): + """ + Check the modelling of the heat exchanger component which allows two hydraulically + decoupled networks to exchange heat with each other. It is enforced that heat can only flow + from the primary side to the secondary side, and heat exchangers are allowed to be disabled + for timesteps in which they are not used. This is to allow for the temperature constraints + (T_primary > T_secondary) to become deactivated. + An option to allow for bypassing of the heat exchanger has been added, such that when the + heat exchanger is disabled, flow through the heat exchanger is allowed, however no heat + exchange is allowed, in the case the carriers of both the supply and return on one side + of the heat exchanger are the same. + + Checks: + - Standard checks for demand matching and energy conservation. + - Heat to discharge test is not applied as at one heat exchanger (the bypassed one), the + heat going out on the primary side will not coincide exactly with the temperature due to + heatlosses in the network before the heat exchanger. + - Check that the is_disabled is set correctly. + - Check if the temperatures provided are physically feasible. + - Checks that heat exchanger is bypassed, e.g. not exchanging heat, but allowing flow when + both supply and return on one side have the same temperature. + """ + import models.heat_exchange.src.run_heat_exchanger as run_heat_exchanger + from models.heat_exchange.src.run_heat_exchanger import ( + HeatProblem, + ) + + base_folder = Path(run_heat_exchanger.__file__).resolve().parent.parent + + class HeatProblemByPass(HeatProblem): + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.heat_network_settings["heat_exchanger_bypass"] = True + + def energy_system_options(self): + options = super().energy_system_options() + options["neglect_pipe_heat_losses"] = False + + return options + + solution = run_esdl_mesido_optimization( + HeatProblemByPass, + base_folder=base_folder, + esdl_file_name="test_hex_bypass.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_import.xml", + ) + + results = solution.extract_results() + + demand_matching_test(solution, results) + energy_conservation_test(solution, results) + + hex_active = "HeatExchange_e410_copy" + hex_bypass = "HeatExchange_e410" + + np.testing.assert_allclose(results[f"{hex_active}__disabled"][:-1], 0) + np.testing.assert_allclose(results[f"{hex_bypass}__disabled"][:-1], 1) + + np.testing.assert_array_less(0.001, results[f"{hex_active}.Primary.Q"][:-1]) + np.testing.assert_array_less(0.001, results[f"{hex_bypass}.Primary.Q"][:-1]) + + np.testing.assert_allclose(results[f"{hex_bypass}.Heat_flow"][:-1], 0) + np.testing.assert_array_less(1e5, results[f"{hex_active}.Heat_flow"][:-1]) + class TestHP(TestCase): def test_heat_pump(self): From df8c52dfe5a85a6b4be14602d27328c90f263428 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Wed, 4 Dec 2024 10:00:34 +0100 Subject: [PATCH 244/275] Pickle for back end dtk (#224) new function added to use pickle in the back end --- CHANGELOG.md | 16 +++++++++++++++- src/mesido/exceptions.py | 23 ++++++++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c6c3a0b8..b2238513e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,11 @@ -# [Unreleased-main] - 2024-11-21 +# [Unreleased-main] - 2024-12-04 ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class - Gas and electricity workflow has been added. Still a work in progress - Internal energy content function added for natural gas and hydrogen - OPEX added for gas and electricity source +- Added function to make pickle usable (exceptions) in the OMOTES back end ## Changed - Write output to json also saves the solver statistics. @@ -18,6 +19,19 @@ - Bugfix: same mip gap settings for all solvers in grow_workflow. - Bugfix: head loss test case when minimum_velocity = 0.0 + +# [0.1.8.3] - 2024-12-02 + +## Added +- Added function to make pickle usable (exceptions) in the OMOTES back end + +## Changed +- xx + +## Fixed +- xx + + # [0.1.8.2] - 2024-11-15 ## Added diff --git a/src/mesido/exceptions.py b/src/mesido/exceptions.py index 08b51a970..853706b20 100644 --- a/src/mesido/exceptions.py +++ b/src/mesido/exceptions.py @@ -1,4 +1,4 @@ -from typing import Dict, TYPE_CHECKING +from typing import Dict, TYPE_CHECKING, Tuple, Type if TYPE_CHECKING: # This prevents circular referencing between this file and potential_errors.py from mesido.potential_errors import ErrorMessage, MesidoAssetIssueType @@ -40,3 +40,24 @@ def __str__(self) -> str: return_string += f" {values}" return return_string + + # Currently this function has been added for Design Toolkit back end purposes + def __reduce__( + self, + ) -> Tuple[ + Type["MesidoAssetIssueError"], Tuple[str, "MesidoAssetIssueType", Dict[str, "ErrorMessage"]] + ]: + """Reduce an instance of this class to pickable components. + + This is required so the class can be serialized and deserialized in the pickle format. + + Returns + ------- + A tuple containing: + - The class + - Separate arguments of this instance + """ + return ( + MesidoAssetIssueError, + (self.general_issue, self.error_type, self.message_per_asset_id), + ) From 7b6c891a799857a460b567fdc916339ea34ef372 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:58:53 +0100 Subject: [PATCH 245/275] Updating assets in esdl (#230) Use updates coming from DTK branch - bug fixes in webinar demo --- CHANGELOG.md | 16 +++++++++++++++- src/mesido/workflows/__init__.py | 6 ++++++ src/mesido/workflows/io/write_output.py | 11 ++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2238513e..0fb18f8b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# [Unreleased-main] - 2024-12-04 +# [Unreleased-main] - 2024-12-12 ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class @@ -6,6 +6,7 @@ - Internal energy content function added for natural gas and hydrogen - OPEX added for gas and electricity source - Added function to make pickle usable (exceptions) in the OMOTES back end +- More of the existing classes added to __init_ for local runs using the grow_workflow ## Changed - Write output to json also saves the solver statistics. @@ -18,6 +19,19 @@ - Bugfix: gas boiler mass flow contraint units - Bugfix: same mip gap settings for all solvers in grow_workflow. - Bugfix: head loss test case when minimum_velocity = 0.0 +- Bugs: state update of heat pump, heat buffer volume & ates charge rates update in ESDL, heat storage asset data output to influxDB + + +# [0.1.8.4] - 2024-12-11 + +## Added +- More of the existing classes added to __init_ for local runs using the grow_workflow + +## Changed +- xxx + +## Fixed +- Bugs: state update of heat pump, heat buffer volume & ates charge rates update in ESDL, heat storage asset data output to influxDB # [0.1.8.3] - 2024-12-02 diff --git a/src/mesido/workflows/__init__.py b/src/mesido/workflows/__init__.py index 04ae90d66..755a00463 100644 --- a/src/mesido/workflows/__init__.py +++ b/src/mesido/workflows/__init__.py @@ -1,7 +1,10 @@ from .grow_workflow import ( EndScenarioSizing, EndScenarioSizingDiscounted, + EndScenarioSizingDiscountedStaged, EndScenarioSizingHIGHS, + EndScenarioSizingHeadLossDiscounted, + EndScenarioSizingHeadLossDiscountedStaged, EndScenarioSizingStaged, SolverGurobi, SolverHIGHS, @@ -19,7 +22,10 @@ __all__ = [ "EndScenarioSizing", "EndScenarioSizingDiscounted", + "EndScenarioSizingDiscountedStaged", "EndScenarioSizingHIGHS", + "EndScenarioSizingHeadLossDiscounted", + "EndScenarioSizingHeadLossDiscountedStaged", "EndScenarioSizingStaged", "SolverGurobi", "SolverHIGHS", diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index df9053530..b0f2dc099 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -956,19 +956,27 @@ def _name_to_asset(name): *self.energy_system_components.get("heat_source", []), *self.energy_system_components.get("ates", []), *self.energy_system_components.get("heat_buffer", []), + *self.energy_system_components.get("heat_pump", []), ]: asset = _name_to_asset(name) asset_placement_var = self._asset_aggregation_count_var_map[name] placed = np.round(results[asset_placement_var][0]) >= 1.0 max_size = results[self._asset_max_size_map[name]][0] - if asset in self.energy_system_components.get("heat_buffer", []): + if asset.name in self.energy_system_components.get("ates", []): + asset.maxChargeRate = results[f"{name}__max_size"][0] + asset.maxDischargeRate = results[f"{name}__max_size"][0] + elif asset.name in self.energy_system_components.get("heat_buffer", []): asset.capacity = max_size asset.volume = max_size / ( parameters[f"{name}.cp"] * parameters[f"{name}.rho"] * parameters[f"{name}.dT"] ) + elif asset.name in self.energy_system_components.get("heat_pump", []): + # Note: Electrical capacity and not the heat capacity + # TODO: in the future we need to cater for varying COP as well + asset.power = results[f"{name}__max_size"][0] / parameters[f"{name}.COP"] else: asset.power = max_size if not placed: @@ -1063,6 +1071,7 @@ def _name_to_asset(name): esdl.Conversion, esdl.Consumer, esdl.Producer, + esdl.Storage, ] for asset_name in [ From df92d9f897107bce8c5608e71259ef131a68adeb Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Thu, 16 Jan 2025 09:45:09 +0100 Subject: [PATCH 246/275] Bugfix: Get density carriertype (#232) Bugfix to check for carrier type instead of the carrier name for get_density when carriertype is heat --- CHANGELOG.md | 1 + src/mesido/esdl/asset_to_component_base.py | 32 +++++++++++----------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fb18f8b6..dd63290cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - Bugfix: same mip gap settings for all solvers in grow_workflow. - Bugfix: head loss test case when minimum_velocity = 0.0 - Bugs: state update of heat pump, heat buffer volume & ates charge rates update in ESDL, heat storage asset data output to influxDB +- Bugfix: get_density + get_internal_energy updated to ensure it checks commodity type for heat instead of the carrier name # [0.1.8.4] - 2024-12-11 diff --git a/src/mesido/esdl/asset_to_component_base.py b/src/mesido/esdl/asset_to_component_base.py index 0cdeaf8cf..5c15fd93f 100644 --- a/src/mesido/esdl/asset_to_component_base.py +++ b/src/mesido/esdl/asset_to_component_base.py @@ -51,32 +51,32 @@ def get_internal_energy(asset_name, carrier): # is also updated in the head_loss_class. temperature = 20.0 - if NetworkSettings.NETWORK_TYPE_GAS in carrier.name: + if isinstance(carrier, esdl.HeatCommodity): internal_energy = cP.CoolProp.PropsSI( "U", "T", 273.15 + temperature, "P", - carrier.pressure * 1.0e5, - NetworkSettings.NETWORK_COMPOSITION_GAS, + 1.0 * 1.0e5, # TODO: defualt 1 bar pressure should be set for the carrier + "WATER", ) - elif NetworkSettings.NETWORK_TYPE_HYDROGEN in carrier.name: + elif NetworkSettings.NETWORK_TYPE_GAS in carrier.name: internal_energy = cP.CoolProp.PropsSI( "U", "T", 273.15 + temperature, "P", carrier.pressure * 1.0e5, - str(NetworkSettings.NETWORK_TYPE_HYDROGEN).upper(), + NetworkSettings.NETWORK_COMPOSITION_GAS, ) - elif NetworkSettings.NETWORK_TYPE_HEAT in carrier.name: + elif NetworkSettings.NETWORK_TYPE_HYDROGEN in carrier.name: internal_energy = cP.CoolProp.PropsSI( "U", "T", 273.15 + temperature, "P", - 1.0 * 1.0e5, # TODO: defualt 1 bar pressure should be set for the carrier - "WATER", + carrier.pressure * 1.0e5, + str(NetworkSettings.NETWORK_TYPE_HYDROGEN).upper(), ) else: logger.warning( @@ -115,41 +115,41 @@ def get_density(asset_name, carrier, temperature_degrees_celsius=20.0, pressure_ # (linked to _kinematic_viscosity). Thus, when updating the default value of # temperature_degrees_celsius ensure it is also updated in the head_loss_class. if pressure_pa is None: - if str(NetworkSettings.NETWORK_TYPE_HEAT).upper() in str(carrier.name).upper(): + if isinstance(carrier, esdl.HeatCommodity): pressure_pa = 16.0e5 # 16bar is expected to be the upper limit in networks else: pressure_pa = carrier.pressure * 1.0e5 # convert bar to Pa elif pressure_pa < 0.0: raise logger.error("The pressure should be > 0.0 to calculate density") - if NetworkSettings.NETWORK_TYPE_GAS in carrier.name: + if isinstance(carrier, esdl.HeatCommodity): density = cP.CoolProp.PropsSI( "D", "T", 273.15 + temperature_degrees_celsius, "P", pressure_pa, - NetworkSettings.NETWORK_COMPOSITION_GAS, + "INCOMP::Water", ) - elif NetworkSettings.NETWORK_TYPE_HYDROGEN in carrier.name: + return density # kg/m3 + elif NetworkSettings.NETWORK_TYPE_GAS in carrier.name: density = cP.CoolProp.PropsSI( "D", "T", 273.15 + temperature_degrees_celsius, "P", pressure_pa, - str(NetworkSettings.NETWORK_TYPE_HYDROGEN).upper(), + NetworkSettings.NETWORK_COMPOSITION_GAS, ) - elif NetworkSettings.NETWORK_TYPE_HEAT in carrier.name: + elif NetworkSettings.NETWORK_TYPE_HYDROGEN in carrier.name: density = cP.CoolProp.PropsSI( "D", "T", 273.15 + temperature_degrees_celsius, "P", pressure_pa, - "INCOMP::Water", + str(NetworkSettings.NETWORK_TYPE_HYDROGEN).upper(), ) - return density # kg/m3 else: logger.warning( f"Neither gas/hydrogen/heat was used in the carrier " f"name of pipe {asset_name}" From 73d55befc8309e0ff7bad4115d75fa1b3994362d Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:16:09 +0100 Subject: [PATCH 247/275] Update average profiles (#236) Added generic function to create average profiles with user-defined timestep size and added a testcase for this. --- CHANGELOG.md | 1 + src/mesido/workflows/utils/adapt_profiles.py | 193 +++++++++++++------ tests/test_profile_parsing.py | 54 +++++- 3 files changed, 188 insertions(+), 60 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd63290cc..e96db7ee0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - OPEX added for gas and electricity source - Added function to make pickle usable (exceptions) in the OMOTES back end - More of the existing classes added to __init_ for local runs using the grow_workflow +- Generic function to adapt timeseries from hourly timesteps to user-defined timesteps by averaging. ## Changed - Write output to json also saves the solver statistics. diff --git a/src/mesido/workflows/utils/adapt_profiles.py b/src/mesido/workflows/utils/adapt_profiles.py index 6cb579499..e8145b7a8 100644 --- a/src/mesido/workflows/utils/adapt_profiles.py +++ b/src/mesido/workflows/utils/adapt_profiles.py @@ -2,6 +2,7 @@ import datetime import logging +import operator import numpy as np @@ -12,7 +13,7 @@ logger.setLevel(logging.INFO) -def set_data_with_averages_and_peak_day( +def set_data_with_averages( datastore: DataStore, variable_name: str, ensemble_member: int, @@ -80,8 +81,6 @@ def adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day(problem, prob new_datastore = DataStore(problem) new_datastore.reference_datetime = problem.io.datetimes[0] - cold_demands = problem.energy_system_components.get("cold_demand", []) - for ensemble_member in range(problem.ensemble_size): parameters = problem.parameters(ensemble_member) @@ -172,67 +171,145 @@ def adapt_hourly_year_profile_to_day_averaged_with_hourly_peak_day(problem, prob new_date_times = np.asarray(new_date_times) parameters["times"] = [x.timestamp() for x in new_date_times] - for demand in heat_demands: - var_name = f"{demand}.target_heat_demand" - set_data_with_averages_and_peak_day( - datastore=new_datastore, - variable_name=var_name, - ensemble_member=ensemble_member, - new_date_times=new_date_times, - problem=problem, - ) + select_profiles_for_update(problem, new_datastore, new_date_times, ensemble_member) - for demand in cold_demands: - var_name = f"{demand}.target_cold_demand" - set_data_with_averages_and_peak_day( - datastore=new_datastore, - variable_name=var_name, - ensemble_member=ensemble_member, - new_date_times=new_date_times, - problem=problem, - ) + problem.io = new_datastore - # TODO: this has not been tested but is required if a production profile is included - # in the data - for source in problem.energy_system_components.get("heat_source", []): - var_name = f"{source}.maximum_heat_source" - try: - problem.get_timeseries(variable=var_name, ensemble_member=ensemble_member) - except KeyError: - logger.debug( - f"Source {source} has no production profile, thus it also will " - f"not be adapted to a different time scales." - ) - continue + logger.info("Profile data has been adapted to a common format") - set_data_with_averages_and_peak_day( - datastore=new_datastore, - variable_name=var_name, - ensemble_member=ensemble_member, - new_date_times=new_date_times, - problem=problem, - ) + return problem_indx_max_peak, heat_demand_nominal, cold_demand_nominal - for carrier_properties in problem.esdl_carriers.values(): - carrier_name = carrier_properties["name"] - var_name = f"{carrier_name}.price_profile" - try: - problem.get_timeseries(variable=var_name, ensemble_member=ensemble_member) - except KeyError: - logger.debug( - f"Carrier {carrier_name} has no price profile, thus it also will " - f"not be adapted to different time scales." - ) - set_data_with_averages_and_peak_day( - datastore=new_datastore, - variable_name=var_name, - ensemble_member=ensemble_member, - new_date_times=new_date_times, - problem=problem, - ) + +def adapt_hourly_profile_averages_timestep_size(problem, problem_step_size_hours: int): + """ + Adapt yearly porifle with hourly time steps to a common profile with average over a given + stepsize in hours. + + Return the following: + + """ + + new_datastore = DataStore(problem) + new_datastore.reference_datetime = problem.io.datetimes[0] + + org_timeseries = problem.io.datetimes + org_dt = list(map(operator.sub, org_timeseries[1:], org_timeseries[0:-1])) + assert all(dt.seconds == 3600 for dt in org_dt) # checks that the orginal timeseries has + # homogenous horizon with equispaced timesteps of 3600s (1hr). + + for ensemble_member in range(problem.ensemble_size): + parameters = problem.parameters(ensemble_member) + + new_date_times = list() + + for hour in range(0, len(org_timeseries), problem_step_size_hours): + new_date_times.append(problem.io.datetimes[hour]) + + new_date_times.append(problem.io.datetimes[-1] + datetime.timedelta(hours=1)) + + new_date_times = np.asarray(new_date_times) + parameters["times"] = [x.timestamp() for x in new_date_times] + + select_profiles_for_update(problem, new_datastore, new_date_times, ensemble_member) problem.io = new_datastore logger.info("Profile data has been adapted to a common format") - return problem_indx_max_peak, heat_demand_nominal, cold_demand_nominal + +def select_profiles_for_update( + problem, new_datastore: DataStore, new_date_times: np.array, ensemble_member: int +): + """ + Selects all the profiles that are relevant for the problem and runs the method to set the new + updated timeseries. + + Args: + problem: optimization problem class + new_datastore: the new datastore object that should be filled + new_date_times: the new date time entries that are required + ensemble_member: + + Returns: + + """ + heat_demands = problem.energy_system_components.get("heat_demand", []) + cold_demands = problem.energy_system_components.get("cold_demand", []) + + for demand in heat_demands: + var_name = f"{demand}.target_heat_demand" + set_data_with_averages( + datastore=new_datastore, + variable_name=var_name, + ensemble_member=ensemble_member, + new_date_times=new_date_times, + problem=problem, + ) + + for demand in cold_demands: + var_name = f"{demand}.target_cold_demand" + set_data_with_averages( + datastore=new_datastore, + variable_name=var_name, + ensemble_member=ensemble_member, + new_date_times=new_date_times, + problem=problem, + ) + + # TODO: this has not been tested but is required if a production profile is included + # in the data + for source in problem.energy_system_components.get("heat_source", []): + var_name = f"{source}.maximum_heat_source" + try: + problem.get_timeseries(variable=var_name, ensemble_member=ensemble_member) + except KeyError: + logger.debug( + f"Source {source} has no production profile, thus it also will " + f"not be adapted to a different time scales." + ) + continue + + set_data_with_averages( + datastore=new_datastore, + variable_name=var_name, + ensemble_member=ensemble_member, + new_date_times=new_date_times, + problem=problem, + ) + + for source in problem.energy_system_components.get("electricity_source", []): + var_name = f"{source}.maximum_electricity_source" + try: + problem.get_timeseries(variable=var_name, ensemble_member=ensemble_member) + except KeyError: + logger.debug( + f"Source {source} has no production profile, thus it also will " + f"not be adapted to a different time scales." + ) + continue + + set_data_with_averages( + datastore=new_datastore, + variable_name=var_name, + ensemble_member=ensemble_member, + new_date_times=new_date_times, + problem=problem, + ) + + for carrier_properties in problem.esdl_carriers.values(): + carrier_name = carrier_properties["name"] + var_name = f"{carrier_name}.price_profile" + try: + problem.get_timeseries(variable=var_name, ensemble_member=ensemble_member) + except KeyError: + logger.debug( + f"Carrier {carrier_name} has no price profile, thus it also will " + f"not be adapted to different time scales." + ) + set_data_with_averages( + datastore=new_datastore, + variable_name=var_name, + ensemble_member=ensemble_member, + new_date_times=new_date_times, + problem=problem, + ) diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index 5c3864b97..8a42ade5b 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -1,4 +1,5 @@ import datetime +import operator import unittest import unittest.mock from pathlib import Path @@ -11,6 +12,7 @@ from mesido.exceptions import MesidoAssetIssueError from mesido.potential_errors import MesidoAssetIssueType, PotentialErrors from mesido.workflows import EndScenarioSizingStaged +from mesido.workflows.utils.adapt_profiles import adapt_hourly_profile_averages_timestep_size from mesido.workflows.utils.error_types import mesido_issue_type_gen_message import numpy as np @@ -33,7 +35,55 @@ def _load_profile_timeseries_from_database(self, profile: esdl.InfluxDBProfile) return self._loaded_profiles[profile.id] -class TestPotentialErros(unittest.TestCase): +class TestProfileUpdating(unittest.TestCase): + def test_profile_updating(self): + """ + Tests the updating of the profiles. + The peak day hourly with averaged 5 days is currently tested in test_cold_demand.py. + This test covers the profile updating with varies timescales. Of amongst others the + adapt_hourly_profile_averages_timestep_size method in adapt_profiles.py + Returns: + + """ + import models.unit_cases.case_3a.src.run_3a as run_3a + from models.unit_cases.case_3a.src.run_3a import HeatProblem + + base_folder = Path(run_3a.__file__).resolve().parent.parent + model_folder = base_folder / "model" + input_folder = base_folder / "input" + + problem_step_size = 8 + + class ProfileUpdateHourly(HeatProblem): + def read(self): + """ + Reads the yearly profile with hourly time steps and adapt to a daily averaged + profile except for the day with the peak demand. + """ + super().read() + + adapt_hourly_profile_averages_timestep_size(self, problem_step_size) + + problem = ProfileUpdateHourly( + esdl_parser=ESDLFileParser, + base_folder=base_folder, + model_folder=model_folder, + input_folder=input_folder, + esdl_file_name="3a.esdl", + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_import.xml", + ) + problem.pre() + + timeseries_updated = problem.io.datetimes + dts = list(map(operator.sub, timeseries_updated[1:], timeseries_updated[0:-1])) + assert all(dt.seconds == 3600 * problem_step_size for dt in dts[:-1]) + assert dts[-1].seconds <= 3600 * problem_step_size + + # TODO: also check the values of the averages + + +class TestPotentialErrors(unittest.TestCase): def test_asset_potential_errors(self): """ This test checks that the error checks in the code for sufficient installed cool/heatig @@ -306,7 +356,7 @@ def test_loading_from_csv_with_influx_profiles_given(self): if __name__ == "__main__": # unittest.main() a = TestProfileLoading() - b = TestPotentialErros() + b = TestPotentialErrors() b.test_asset_potential_errors() a.test_loading_from_influx() a.test_loading_from_csv() From 53f0548cfd3386cd41f26e43e8a46cc14d549d9c Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 27 Jan 2025 12:51:17 +0100 Subject: [PATCH 248/275] Update commodity type for post (#223) Added a commodity type for each asset, to allow for easier extraction of results and variable selection based on commodity. --- CHANGELOG.md | 3 +- src/mesido/base_component_type_mixin.py | 8 +++ src/mesido/component_type_mixin.py | 24 ++++++- src/mesido/gas_physics_mixin.py | 11 ++- src/mesido/heat_physics_mixin.py | 11 ++- .../milp/_internal/base_component.py | 22 ++++++ .../milp/_internal/electricity_component.py | 7 +- .../milp/_internal/gas_component.py | 7 +- .../milp/_internal/heat_component.py | 27 ++------ src/mesido/workflows/io/write_output.py | 67 +++++++++++++------ 10 files changed, 122 insertions(+), 65 deletions(-) create mode 100644 src/mesido/pycml/component_library/milp/_internal/base_component.py diff --git a/CHANGELOG.md b/CHANGELOG.md index e96db7ee0..8f2721e85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Gas and electricity workflow has been added. Still a work in progress - Internal energy content function added for natural gas and hydrogen - OPEX added for gas and electricity source +- Commodity annotation for assets, to allow for easier postprocessing - Added function to make pickle usable (exceptions) in the OMOTES back end - More of the existing classes added to __init_ for local runs using the grow_workflow - Generic function to adapt timeseries from hourly timesteps to user-defined timesteps by averaging. @@ -17,7 +18,7 @@ - Option was added to allow a bypass of the heat exchanger ## Fixed -- Bugfix: gas boiler mass flow contraint units +- Bugfix: gas boiler mass flow constraint units - Bugfix: same mip gap settings for all solvers in grow_workflow. - Bugfix: head loss test case when minimum_velocity = 0.0 - Bugs: state update of heat pump, heat buffer volume & ates charge rates update in ESDL, heat storage asset data output to influxDB diff --git a/src/mesido/base_component_type_mixin.py b/src/mesido/base_component_type_mixin.py index c5d2f7c30..42938274e 100644 --- a/src/mesido/base_component_type_mixin.py +++ b/src/mesido/base_component_type_mixin.py @@ -20,6 +20,14 @@ def energy_system_components(self) -> Dict[str, str]: """ raise NotImplementedError + @property + @abstractmethod + def energy_system_components_commodity(self) -> Dict[str, List[str]]: + """ + This method return a dict with the components ad their network types. + """ + raise NotImplementedError + def energy_system_components_get(self, list_types: list) -> list: components = [] for component_type in list_types: diff --git a/src/mesido/component_type_mixin.py b/src/mesido/component_type_mixin.py index 74ef5bda8..e48936491 100644 --- a/src/mesido/component_type_mixin.py +++ b/src/mesido/component_type_mixin.py @@ -24,6 +24,7 @@ class ModelicaComponentTypeMixin(BaseComponentTypeMixin): def __init__(self, *args, **kwargs): super().__init__(**kwargs) self.__hn_component_types = None + self.__commodity_types = None def pre(self): """ @@ -464,7 +465,9 @@ def energy_system_components(self) -> Dict[str, Set[str]]: # Find the components in model, detection by string # (name.component_type: type) - component_types = sorted({v for k, v in string_parameters.items()}) + component_types = sorted( + {v for k, v in string_parameters.items() if "network_type" not in k} + ) components = {} for c in component_types: @@ -476,6 +479,25 @@ def energy_system_components(self) -> Dict[str, Set[str]]: return self.__hn_component_types + @property + def energy_system_components_commodity(self) -> Dict[str, Set[str]]: + """ + This method returns a dict with the milp network assets and their commodity type. + """ + if self.__commodity_types is None: + # Create the dictionary once after that it will be available + string_parameters = self.string_parameters(0) + + # Find the components in model, detection by string + # (name.component_type: type) + commodity_types = { + k.split(".")[0]: v for k, v in string_parameters.items() if "network_type" in k + } + + self.__commodity_types = commodity_types + + return self.__commodity_types + @property def energy_system_topology(self) -> Topology: """ diff --git a/src/mesido/gas_physics_mixin.py b/src/mesido/gas_physics_mixin.py index e8748aec4..b9efb5f51 100644 --- a/src/mesido/gas_physics_mixin.py +++ b/src/mesido/gas_physics_mixin.py @@ -183,22 +183,19 @@ def _get_min_bound(bound): for pipe_name in self.energy_system_components.get("gas_pipe", []): head_loss_var = f"{pipe_name}.__head_loss" + commodity = self.energy_system_components_commodity.get(pipe_name) # Note we always use the gas network type for the naming of variables, independent of # the gas mixture used. initialized_vars = self._gn_head_loss_class.initialize_variables_nominals_and_bounds( self, - self.gas_network_settings["network_type"], + commodity, pipe_name, self.gas_network_settings, ) if initialized_vars[0] != {}: - self.__gas_pipe_head_bounds[ - f"{pipe_name}.{NetworkSettings.NETWORK_TYPE_GAS}In.H" - ] = initialized_vars[0] + self.__gas_pipe_head_bounds[f"{pipe_name}.{commodity}In.H"] = initialized_vars[0] if initialized_vars[1] != {}: - self.__gas_pipe_head_bounds[ - f"{pipe_name}.{NetworkSettings.NETWORK_TYPE_GAS}Out.H" - ] = initialized_vars[1] + self.__gas_pipe_head_bounds[f"{pipe_name}.{commodity}Out.H"] = initialized_vars[1] if initialized_vars[2] != {}: self.__gas_pipe_head_loss_zero_bounds[f"{pipe_name}.dH"] = initialized_vars[2] if initialized_vars[3] != {}: diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 772d7c984..00bd75832 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -254,18 +254,15 @@ def _get_min_bound(bound): set_self_hot_pipes = set(self.hot_pipes) for pipe_name in self.energy_system_components.get("heat_pipe", []): + commodity = self.energy_system_components_commodity.get(pipe_name) head_loss_var = f"{pipe_name}.__head_loss" initialized_vars = self._hn_head_loss_class.initialize_variables_nominals_and_bounds( - self, NetworkSettings.NETWORK_TYPE_HEAT, pipe_name, self.heat_network_settings + self, commodity, pipe_name, self.heat_network_settings ) if initialized_vars[0] != {}: - self.__pipe_head_bounds[f"{pipe_name}.{NetworkSettings.NETWORK_TYPE_HEAT}In.H"] = ( - initialized_vars[0] - ) + self.__pipe_head_bounds[f"{pipe_name}.{commodity}In.H"] = initialized_vars[0] if initialized_vars[1] != {}: - self.__pipe_head_bounds[f"{pipe_name}.{NetworkSettings.NETWORK_TYPE_HEAT}Out.H"] = ( - initialized_vars[1] - ) + self.__pipe_head_bounds[f"{pipe_name}.{commodity}Out.H"] = initialized_vars[1] if initialized_vars[2] != {}: self.__pipe_head_loss_zero_bounds[f"{pipe_name}.dH"] = initialized_vars[2] if initialized_vars[3] != {}: diff --git a/src/mesido/pycml/component_library/milp/_internal/base_component.py b/src/mesido/pycml/component_library/milp/_internal/base_component.py new file mode 100644 index 000000000..63f7af606 --- /dev/null +++ b/src/mesido/pycml/component_library/milp/_internal/base_component.py @@ -0,0 +1,22 @@ +from mesido.pycml import Component + +from numpy import nan + + +class BaseAsset(Component): + """ + A base asset that carries properties used throughout the different commodities. In this case + only the financial structure is used in all commodities. + """ + + def __init__(self, name, **modifiers): + super().__init__(name, **modifiers) + self.state = 1 + + self.variable_operational_cost_coefficient = 0.0 + self.fixed_operational_cost_coefficient = 0.0 + self.investment_cost_coefficient = 0.0 + self.installation_cost = 0.0 + + self.technical_life = nan + self.discount_rate = nan diff --git a/src/mesido/pycml/component_library/milp/_internal/electricity_component.py b/src/mesido/pycml/component_library/milp/_internal/electricity_component.py index 200cdd1f1..f01767bb5 100644 --- a/src/mesido/pycml/component_library/milp/_internal/electricity_component.py +++ b/src/mesido/pycml/component_library/milp/_internal/electricity_component.py @@ -1,4 +1,5 @@ -from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.network_common import NetworkSettings +from mesido.pycml.component_library.milp._internal.base_component import BaseAsset class ElectricityComponent(BaseAsset): @@ -6,4 +7,6 @@ class ElectricityComponent(BaseAsset): Base electricity component nothing to add here yet. """ - pass + def __init__(self, name, **modifiers): + super().__init__(name, **modifiers) + self.network_type = NetworkSettings.NETWORK_TYPE_ELECTRICITY diff --git a/src/mesido/pycml/component_library/milp/_internal/gas_component.py b/src/mesido/pycml/component_library/milp/_internal/gas_component.py index dfab713ef..b002dbd73 100644 --- a/src/mesido/pycml/component_library/milp/_internal/gas_component.py +++ b/src/mesido/pycml/component_library/milp/_internal/gas_component.py @@ -1,4 +1,5 @@ -from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.network_common import NetworkSettings +from mesido.pycml.component_library.milp._internal.base_component import BaseAsset class GasComponent(BaseAsset): @@ -6,4 +7,6 @@ class GasComponent(BaseAsset): Base gas component nothing to add here yet. """ - pass + def __init__(self, name, **modifiers): + super().__init__(name, **modifiers) + self.network_type = NetworkSettings.NETWORK_TYPE_GAS diff --git a/src/mesido/pycml/component_library/milp/_internal/heat_component.py b/src/mesido/pycml/component_library/milp/_internal/heat_component.py index ed8ef61b3..6e1a4d064 100644 --- a/src/mesido/pycml/component_library/milp/_internal/heat_component.py +++ b/src/mesido/pycml/component_library/milp/_internal/heat_component.py @@ -1,31 +1,12 @@ -from mesido.pycml import Component +from mesido.network_common import NetworkSettings +from mesido.pycml.component_library.milp._internal.base_component import BaseAsset -from numpy import nan - -class HeatComponent(Component): +class HeatComponent(BaseAsset): """ Base milp component nothing to add here yet. """ def __init__(self, name, **modifiers): super().__init__(name, **modifiers) - - -class BaseAsset(Component): - """ - A base asset that carries properties used throughout the different commodities. In this case - only the financial structure is used in all commodities. - """ - - def __init__(self, name, **modifiers): - super().__init__(name, **modifiers) - self.state = 1 - - self.variable_operational_cost_coefficient = 0.0 - self.fixed_operational_cost_coefficient = 0.0 - self.investment_cost_coefficient = 0.0 - self.installation_cost = 0.0 - - self.technical_life = nan - self.discount_rate = nan + self.network_type = NetworkSettings.NETWORK_TYPE_HEAT diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index b0f2dc099..373a21c62 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -19,6 +19,7 @@ import mesido.esdl.esdl_parser from mesido.constants import GRAVITATIONAL_CONSTANT from mesido.esdl.edr_pipe_class import EDRPipeClass +from mesido.network_common import NetworkSettings from mesido.workflows.utils.helpers import _sort_numbered import numpy as np @@ -1127,21 +1128,30 @@ def _name_to_asset(name): # These variables exist for all the assets. Variables that only exist for # specific # assets are only added later, like Pump_power - variables_one_hydraulic_system = ["HeatIn.Q", "Heat_flow"] + commodity = self.energy_system_components_commodity.get(asset_name) + + variables_one_hydraulic_system = [f"{commodity}In.Q"] variables_two_hydraulic_system = [ - "Primary.HeatIn.Q", - "Secondary.HeatIn.Q", - "Heat_flow", + f"Primary.{commodity}In.Q", + f"Secondary.{commodity}In.Q", ] + if commodity == NetworkSettings.NETWORK_TYPE_HEAT: + variables_one_hydraulic_system.append("Heat_flow") + variables_two_hydraulic_system.append("Heat_flow") + elif commodity == NetworkSettings.NETWORK_TYPE_GAS: + variables_one_hydraulic_system.append(f"{commodity}In.mass_flow") + variables_two_hydraulic_system.append(f"{commodity}In.mass_flow") + + post_processed = {} # Update/overwrite each asset variable list due to: # - the addition of head loss minimization: head variable and pump power # - only a specific variable required for a specific asset: pump power # - addition of post processed variables: pipe velocity if self.heat_network_settings["minimize_head_losses"]: - variables_one_hydraulic_system.append("HeatIn.H") - variables_two_hydraulic_system.append("Primary.HeatIn.H") - variables_two_hydraulic_system.append("Secondary.HeatIn.H") + variables_one_hydraulic_system.append(f"{commodity}In.H") + variables_two_hydraulic_system.append(f"Primary.{commodity}In.H") + variables_two_hydraulic_system.append(f"Secondary.{commodity}In.H") if asset_name in [ *self.energy_system_components.get("heat_source", []), *self.energy_system_components.get("heat_buffer", []), @@ -1154,13 +1164,26 @@ def _name_to_asset(name): elif asset_name in [*self.energy_system_components.get("pump", [])]: variables_one_hydraulic_system = ["Pump_power"] variables_two_hydraulic_system = ["Pump_power"] - if asset_name in [*self.energy_system_components.get("heat_pipe", [])]: + if asset_name in [ + *self.energy_system_components.get("heat_pipe", []), + *self.energy_system_components.get("gas_pipe", []), + ]: variables_one_hydraulic_system.append("PostProc.Velocity") variables_two_hydraulic_system.append("PostProc.Velocity") # Velocity at the pipe outlet [m/s] - post_processed_velocity = ( - results[f"{asset_name}.HeatOut.Q"] / parameters[f"{asset_name}.area"] + post_processed["PostProc.Velocity"] = ( + results[f"{asset_name}.{commodity}Out.Q"] + / parameters[f"{asset_name}.area"] ) + variables_one_hydraulic_system.append("PostProc.Pressure") + # TODO: seems unnecessary, pipes always only have 1 hydraulic system + variables_two_hydraulic_system.append("PostProc.Pressure") + post_processed["PostProc.Pressure"] = ( + results[f"{asset_name}.{commodity}In.H"] # m + * GRAVITATIONAL_CONSTANT # m/s2 + * parameters[f"{asset_name}.density"] # g/m3 + / 1e3 + ) # Pa # Depending on the port set, different carriers are assigned if port: @@ -1294,9 +1317,9 @@ def _name_to_asset(name): ) ) elif variable in [ - "HeatIn.H", - "Primary.HeatIn.H", - "Secondary.HeatIn.H", + f"{commodity}In.H", + f"Primary.{commodity}In.H", + f"Secondary.{commodity}In.H", ]: profile_attributes.profileQuantityAndUnit = ( esdl.esdl.QuantityAndUnitType( @@ -1306,9 +1329,9 @@ def _name_to_asset(name): ) ) elif variable in [ - "HeatIn.Q", - "Primary.HeatIn.Q", - "Secondary.HeatIn.Q", + f"{commodity}In.Q", + f"Primary.{commodity}In.Q", + f"Secondary.{commodity}In.Q", ]: profile_attributes.profileQuantityAndUnit = ( esdl.esdl.QuantityAndUnitType( @@ -1338,21 +1361,21 @@ def _name_to_asset(name): # Add variable values in new column conversion_factor = 0.0 if variable in [ - "HeatIn.H", - "Primary.HeatIn.H", - "Secondary.HeatIn.H", + f"{commodity}In.H", + f"Primary.{commodity}In.H", + f"Secondary.{commodity}In.H", ]: conversion_factor = GRAVITATIONAL_CONSTANT * 988.0 else: conversion_factor = 1.0 - if variable not in ["PostProc.Velocity"]: + if variable not in ["PostProc.Velocity", "PostProc.Pressure"]: data_row.append( results[f"{asset_name}." + variable][ii] * conversion_factor ) # The variable evaluation below seems unnecessary, but it would be # used we expand the list of post process type variables - elif variable in ["PostProc.Velocity"]: - data_row.append(post_processed_velocity[ii]) + elif variable in ["PostProc.Velocity", "PostProc.Pressure"]: + data_row.append(post_processed[variable][ii]) profiles.profile_data_list.append(data_row) # end time steps From a40afda94ef5ddcd90df7965e4b4bdd0b8d64c2c Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 27 Jan 2025 12:56:59 +0100 Subject: [PATCH 249/275] Electricity cables unidirectional (#234) Allowing electricity cables to be unidirectional also added a testcase for unidirectional cable. --- CHANGELOG.md | 1 + src/mesido/esdl/esdl_heat_model.py | 13 +++- .../bus_networks/input/timeseries_uni.csv | 4 + .../bus_networks/model/Electric_bus4.esdl | 78 +++++++++++++++++++ tests/test_electric_bus.py | 57 ++++++++++++++ 5 files changed, 149 insertions(+), 4 deletions(-) create mode 100644 tests/models/unit_cases_electricity/bus_networks/input/timeseries_uni.csv create mode 100644 tests/models/unit_cases_electricity/bus_networks/model/Electric_bus4.esdl diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f2721e85..3c08a854f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ - Adapt profiles for heating and cooling peak day seperately & add test case - For gas: Use energy content (heating value) instead of internal energy - Option was added to allow a bypass of the heat exchanger +- Option for electricity cables to be unidirectional ## Fixed - Bugfix: gas boiler mass flow constraint units diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 8e3248ab7..bd60d9dc7 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1844,6 +1844,8 @@ def convert_electricity_cable(self, asset: Asset) -> Tuple[Type[ElectricityCable max_current = max_power / min_voltage self._set_electricity_current_nominal_and_max(asset, max_current / 2.0, max_current) + bi_direct = True if asset.attributes["assetType"] != "unidirectional" else False + length = asset.attributes["length"] if length == 0.0: length = 10.0 @@ -1851,6 +1853,9 @@ def convert_electricity_cable(self, asset: Asset) -> Tuple[Type[ElectricityCable res_ohm_per_m = self._cable_get_resistance(asset) res_ohm = res_ohm_per_m * length + min_current = -max_current if bi_direct else 0.0 + min_power = -max_power if bi_direct else 0.0 + modifiers = dict( max_current=max_current, min_voltage=min_voltage, @@ -1860,13 +1865,13 @@ def convert_electricity_cable(self, asset: Asset) -> Tuple[Type[ElectricityCable r=res_ohm, ElectricityOut=dict( V=dict(min=min_voltage, nominal=min_voltage), - I=dict(min=-max_current, max=max_current, nominal=max_current / 2.0), - Power=dict(min=-max_power, max=max_power, nominal=max_power / 2.0), + I=dict(min=min_current, max=max_current, nominal=max_current / 2.0), + Power=dict(min=min_power, max=max_power, nominal=max_power / 2.0), ), ElectricityIn=dict( V=dict(min=min_voltage, nominal=min_voltage), - I=dict(min=-max_current, max=max_current, nominal=max_current / 2.0), - Power=dict(min=-max_power, max=max_power, nominal=max_power / 2.0), + I=dict(min=min_current, max=max_current, nominal=max_current / 2.0), + Power=dict(min=min_power, max=max_power, nominal=max_power / 2.0), ), **self._get_cost_figure_modifiers(asset), ) diff --git a/tests/models/unit_cases_electricity/bus_networks/input/timeseries_uni.csv b/tests/models/unit_cases_electricity/bus_networks/input/timeseries_uni.csv new file mode 100644 index 000000000..3d249c41c --- /dev/null +++ b/tests/models/unit_cases_electricity/bus_networks/input/timeseries_uni.csv @@ -0,0 +1,4 @@ +DateTime,ElectricityDemand_e527,ElectricityDemand_281a +01-01-2019 00:00, 500., 500. +01-01-2019 01:00, 1000., 500. +01-01-2019 02:00, 500., 1000. diff --git a/tests/models/unit_cases_electricity/bus_networks/model/Electric_bus4.esdl b/tests/models/unit_cases_electricity/bus_networks/model/Electric_bus4.esdl new file mode 100644 index 000000000..a1c72a6f7 --- /dev/null +++ b/tests/models/unit_cases_electricity/bus_networks/model/Electric_bus4.esdl @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_electric_bus.py b/tests/test_electric_bus.py index 77a87059b..ce8178856 100644 --- a/tests/test_electric_bus.py +++ b/tests/test_electric_bus.py @@ -73,3 +73,60 @@ def test_voltages_and_power_network1(self): ) # Check that current is high enough to carry the power np.testing.assert_array_less(p_demand - 1e-12, v_demand * i_demand) + + def test_unidirectional_cable(self): + """ + Checks the behaviour of electricity networks with a two bus assets connected with a cable + that is only allowed to be unidirectional. + + Electricity from producer 1 can go to demand 1 and demand 2, but electricity from producer 2 + can only go to demand 2 due to unidirectional cable between the two busses + + Checks: + - electric power conservation + - bounds on unidirectional cable set to a minimum power flow of 0.0 + - demand 1 is limited by production of producer 1 + + """ + import models.unit_cases_electricity.bus_networks.src.example as example + from models.unit_cases_electricity.bus_networks.src.example import ElectricityProblem + + base_folder = Path(example.__file__).resolve().parent.parent + + # Run the problem + solution = run_esdl_mesido_optimization( + ElectricityProblem, + base_folder=base_folder, + esdl_file_name="Electric_bus4.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_uni.csv", + ) + results = solution.extract_results() + + # electric power conservation system and no dissipation of power and current in bus + electric_power_conservation_test(solution, results) + + demand_1 = "ElectricityDemand_e527" + demand_2 = "ElectricityDemand_281a" + prod_1 = "ElectricityProducer_a215" + prod_2 = "ElectricityProducer_17a1" + unidirectional_cable = "ElectricityCable_d16c" + + p_demand_1 = results[f"{demand_1}.ElectricityIn.Power"] + p_demand_2 = results[f"{demand_2}.ElectricityIn.Power"] + cable_power_bound = solution.bounds()[f"{unidirectional_cable}.ElectricityIn.Power"][0] + + bound_prod_1 = solution.bounds()[f"{prod_1}.Electricity_source"][1] + bound_prod_2 = solution.bounds()[f"{prod_2}.Electricity_source"][1] + target_demand_1 = solution.get_timeseries(f"{demand_1}.target_electricity_demand").values + target_demand_1[target_demand_1 > bound_prod_1] = bound_prod_1 + target_demand_2 = solution.get_timeseries(f"{demand_2}.target_electricity_demand").values + target_demand_2[target_demand_2 > (bound_prod_1 + bound_prod_2)] = ( + bound_prod_1 + bound_prod_2 + ) + + np.testing.assert_allclose(p_demand_1, target_demand_1) + np.testing.assert_allclose(p_demand_2, target_demand_2) + + np.testing.assert_allclose(0.0, cable_power_bound) From b8453ed5fe1e1087ca123be0fd2376d649d95300 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 27 Jan 2025 13:26:40 +0100 Subject: [PATCH 250/275] Post processing utils (#226) Providing with standard class that can help the post processing when loading data from the resulting jsons. Also some of the functions that create other variables by postprocessing might be placed here, for example velocity and pressure. --- CHANGELOG.md | 3 +- src/mesido/post_processing/__init__.py | 0 .../post_processing/post_processing_utils.py | 123 ++++++++++++++++++ src/mesido/workflows/io/write_output.py | 14 +- 4 files changed, 130 insertions(+), 10 deletions(-) create mode 100644 src/mesido/post_processing/__init__.py create mode 100644 src/mesido/post_processing/post_processing_utils.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c08a854f..5021b5425 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,12 +8,13 @@ - Commodity annotation for assets, to allow for easier postprocessing - Added function to make pickle usable (exceptions) in the OMOTES back end - More of the existing classes added to __init_ for local runs using the grow_workflow +- Generic functions for postprocessing are added. - Generic function to adapt timeseries from hourly timesteps to user-defined timesteps by averaging. ## Changed - Write output to json also saves the solver statistics. - Updates in asset conversion from ESDL to pycml; gas and heat pipe split, generic conversion better specified. -- Adapt profiles for heating and cooling peak day seperately & add test case +- Adapt profiles for heating and cooling peak day separately & add test case - For gas: Use energy content (heating value) instead of internal energy - Option was added to allow a bypass of the heat exchanger - Option for electricity cables to be unidirectional diff --git a/src/mesido/post_processing/__init__.py b/src/mesido/post_processing/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/mesido/post_processing/post_processing_utils.py b/src/mesido/post_processing/post_processing_utils.py new file mode 100644 index 000000000..2c6c50983 --- /dev/null +++ b/src/mesido/post_processing/post_processing_utils.py @@ -0,0 +1,123 @@ +import json +import os +from typing import Dict, Union + +from mesido.constants import GRAVITATIONAL_CONSTANT + +import numpy as np + +from rtctools._internal.alias_tools import AliasDict + + +class AliasDictResults: + """ + This class allows for the handling of the result data created by MESIDO. + In MESIDO aliasing of variables is used to reduce computational effort. This results in fewer + variables being saved with their own names. + This class takes the loaded jsons of the results and aliases to be converted to an alias + dictionary. + Using the get_results method the result of each original variable name can be accessed. + """ + + def __init__(self, results: Dict, aliases: Dict): + self.results = results + self._aliases = aliases + + def __getitem__(self, name: str) -> list: + if name in self.results.keys(): + return self.results[name] + else: + alias = self._aliases[name] + return alias[1] * self.results[alias[0]] + + def get_results_as_array(self, name: str) -> np.array: + return np.array(self.results[name]) + + +def extract_data_results_alias(data_path: str) -> [AliasDictResults, Dict]: + """ + Extracts the data in the provided path to create an alias dictionary of the results + Args: + data_path: path to the folder with the jsons saved after a MESIDO run + + Returns: an alias dictionary of the results, and the raw data extracted in the path. + + """ + raw_data = extract_data_results(data_path) + results_alias_dict = create_alias_dict(raw_data) + return results_alias_dict, raw_data + + +def create_alias_dict(data: Dict) -> AliasDictResults: + """ + Creates the alias dict from the dictionary which contains the aliases and results. + :param data: + :return: + """ + return AliasDictResults(data["results"], data["aliases"]) + + +def extract_data_results(data_path: str) -> Dict: + """ + Extracts the data from the json files created after a run with MESIDO + :param data_path: String containing the absolute path to the folder with the json files created + by MESIDO. + :return: dictionary with the data from the json files + """ + file_names = ["results", "parameters", "bounds", "aliases", "solver_stats"] + data = {} + for f in file_names: + input_path = os.path.join(data_path, f"{f}.json") + try: + with open(input_path) as file: + data_file = json.load(file) + data[f] = data_file + except IOError: + pass + + return data + + +def pipe_velocity( + asset_name: str, commodity: str, results: Union[AliasDictResults, AliasDict], parameters: Dict +) -> np.array: + """ + Post-processing to determine the pipe_velocity. + To be used in code and as post-processing from jsons. + Args: + asset_name: asset_name of gas or heat pipe + commodity: commodity type to select the correct port name "Heat" or "Gas" + results: AliasDict with results + parameters: Dict with results + + Returns: + + """ + post_processed_velocity = ( + results[f"{asset_name}.{commodity}Out.Q"] / parameters[f"{asset_name}.area"] + ) + return post_processed_velocity + + +def pipe_pressure( + asset_name: str, commodity: str, results: Union[AliasDictResults, AliasDict], parameters: Dict +) -> np.array: + """ + Post-processing to determine the pipe_velocity. + To be used in code and as post-processing from jsons. + Args: + asset_name: asset_name of gas or heat pipe + commodity: commodity type to select the correct port name "Heat" or "Gas" + results: AliasDict with results + parameters: Dict with results + + Returns: + + """ + post_processed_pressure = ( + results[f"{asset_name}.{commodity}In.H"] # m + * GRAVITATIONAL_CONSTANT # m/s2 + * parameters[f"{asset_name}.density"] # g/m3 + / 1e3 + ) # Pa + return post_processed_pressure diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index 373a21c62..c865b9449 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -20,6 +20,7 @@ from mesido.constants import GRAVITATIONAL_CONSTANT from mesido.esdl.edr_pipe_class import EDRPipeClass from mesido.network_common import NetworkSettings +from mesido.post_processing.post_processing_utils import pipe_pressure, pipe_velocity from mesido.workflows.utils.helpers import _sort_numbered import numpy as np @@ -29,7 +30,6 @@ from rtctools._internal.alias_tools import AliasDict from rtctools.optimization.timeseries import Timeseries - logger = logging.getLogger("mesido") @@ -1171,18 +1171,14 @@ def _name_to_asset(name): variables_one_hydraulic_system.append("PostProc.Velocity") variables_two_hydraulic_system.append("PostProc.Velocity") # Velocity at the pipe outlet [m/s] - post_processed["PostProc.Velocity"] = ( - results[f"{asset_name}.{commodity}Out.Q"] - / parameters[f"{asset_name}.area"] + post_processed["PostProc.Velocity"] = pipe_velocity( + asset_name, commodity, results, parameters ) variables_one_hydraulic_system.append("PostProc.Pressure") # TODO: seems unnecessary, pipes always only have 1 hydraulic system variables_two_hydraulic_system.append("PostProc.Pressure") - post_processed["PostProc.Pressure"] = ( - results[f"{asset_name}.{commodity}In.H"] # m - * GRAVITATIONAL_CONSTANT # m/s2 - * parameters[f"{asset_name}.density"] # g/m3 - / 1e3 + post_processed["PostProc.Pressure"] = pipe_pressure( + asset_name, commodity, results, parameters ) # Pa # Depending on the port set, different carriers are assigned From a38480c39723bcaa2520e5053504ebe94ead6ea3 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Fri, 7 Feb 2025 11:16:34 +0100 Subject: [PATCH 251/275] bug fix post processing pipe pressure (#244) bug fix post processing pipe pressure --- CHANGELOG.md | 1 - src/mesido/post_processing/post_processing_utils.py | 11 +++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5021b5425..bcde5d5ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,7 +26,6 @@ - Bugs: state update of heat pump, heat buffer volume & ates charge rates update in ESDL, heat storage asset data output to influxDB - Bugfix: get_density + get_internal_energy updated to ensure it checks commodity type for heat instead of the carrier name - # [0.1.8.4] - 2024-12-11 ## Added diff --git a/src/mesido/post_processing/post_processing_utils.py b/src/mesido/post_processing/post_processing_utils.py index 2c6c50983..d18f2b3bf 100644 --- a/src/mesido/post_processing/post_processing_utils.py +++ b/src/mesido/post_processing/post_processing_utils.py @@ -3,6 +3,7 @@ from typing import Dict, Union from mesido.constants import GRAVITATIONAL_CONSTANT +from mesido.network_common import NetworkSettings import numpy as np @@ -114,10 +115,16 @@ def pipe_pressure( Returns: """ + if commodity == NetworkSettings.NETWORK_TYPE_HEAT: + scale_factor = 1.0 + elif commodity in [NetworkSettings.NETWORK_TYPE_GAS, NetworkSettings.NETWORK_TYPE_HYDROGEN]: + scale_factor = 1.0e3 + else: + exit("Unkown commodity type used for pipe pressure") post_processed_pressure = ( results[f"{asset_name}.{commodity}In.H"] # m * GRAVITATIONAL_CONSTANT # m/s2 - * parameters[f"{asset_name}.density"] # g/m3 - / 1e3 + * parameters[f"{asset_name}.rho"] # Heat kg/m3, non-heat related g/m3 + / scale_factor ) # Pa return post_processed_pressure From b0ae05e02fc2ca4fbc6b98e0eb2a2fb7b9a81afd Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 10 Feb 2025 14:16:24 +0100 Subject: [PATCH 252/275] Heat exchanger bypass allowed for variable temperatures (#239) Updated the heatexchanger heat_to_discharge constraints such that is also working for the bypass when variable temperature are picked on either side of the heat exchanger. This includes a temporary fix for a big_m which is set to infinite when temperature options are available and source is connected with logical link. --- CHANGELOG.md | 2 +- src/mesido/heat_physics_mixin.py | 370 ++++++++++++++---- src/mesido/util.py | 2 +- .../model/test_hex_bypass_2.esdl | 343 ++++++++++++++++ tests/models/heatpump/src/run_heat_pump.py | 6 + ...est_multiple_in_and_out_port_components.py | 131 ++++++- 6 files changed, 768 insertions(+), 86 deletions(-) create mode 100644 tests/models/heat_exchange/model/test_hex_bypass_2.esdl diff --git a/CHANGELOG.md b/CHANGELOG.md index bcde5d5ec..fc98275ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ - Updates in asset conversion from ESDL to pycml; gas and heat pipe split, generic conversion better specified. - Adapt profiles for heating and cooling peak day separately & add test case - For gas: Use energy content (heating value) instead of internal energy -- Option was added to allow a bypass of the heat exchanger +- Option was added to allow a bypass of the heat exchanger, possible on both sides of the heat exchanger - Option for electricity cables to be unidirectional ## Fixed diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 00bd75832..3cd7dd462 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -1491,6 +1491,11 @@ def __source_heat_to_discharge_path_constraints(self, ensemble_member): sup_carrier = parameters[f"{s}.T_supply_id"] supply_temperatures = self.temperature_regimes(sup_carrier) big_m = 2.0 * self.bounds()[f"{s}.HeatOut.Heat"][1] + big_m = ( + big_m + if big_m != np.inf + else 2.0 * self.bounds()[f"{s}.Heat_source"][1] * parameters[f"{s}.T_supply"] / dt + ) if len(supply_temperatures) == 0: constraints.append( @@ -2566,61 +2571,227 @@ def __heat_exchanger_heat_to_discharge_path_constraints(self, ensemble_member): big_m = 2.0 * self.bounds()[f"{heat_exchanger}.Primary.HeatOut.Heat"][1] - # primary side - if len(return_temperatures_prim) == 0: - # TODO: for bypass only works if heatloss is turned off, else a check should be - # made here if the return temperature is below supply temperature - if ( - hn_settings["heat_exchanger_bypass"] - and parameters[f"{heat_exchanger}.Primary.T_return"] - >= parameters[f"{heat_exchanger}.Primary.T_supply"] - ): - # Only when bypass is allowed Tret can be equal to Tsup. The below equation - # will not hold as due to heatlosses Heatinprim might somewhat smaller than - # the original temperature - expr = heat_in_prim - else: - expr = ( - discharge_primary - * cp_prim - * rho_prim - * parameters[f"{heat_exchanger}.Primary.T_return"] - ) + def __constraints_temperature_heat_to_discharge_bypass( + heat_out, expr, sum_temp_selec, big_m: float, constraint_nominal: float + ): + """ + Generic setup of the constraints for the heat to discharge of a heat exchanger. + Ensuring that + - when bypass is allowed, heatout = heatin + - otherwise heatout = Q*cp*rho*Tout + - based on the selected temperatures the approriate expression is added. + + Args: + heat_out: HeatOut variable + exp: expression for heatout + sum_temp_selec: sum of two binary variables and or floats (1.0 or 2.0) to + identify if the temperature for this constraint is selected + big_m: float to activate/deactive this constraint + constraint_nominal: nominal to scale the constraint + + Returns: + + """ + constraints = [] constraints.append( ( - (heat_out_prim - expr) / constraint_nominal, + (heat_out - expr + (2.0 - sum_temp_selec) * big_m) / constraint_nominal, 0.0, + np.inf, + ) + ) + constraints.append( + ( + (heat_out - expr - (2.0 - sum_temp_selec) * big_m) / constraint_nominal, + -np.inf, 0.0, ) ) + return constraints + + def __constraints_temperature_heat_to_discharge_bypass_primary( + temp_prim_in: float, + temp_prim_out: float, + discharge, + cp: float, + rho: float, + heat_in, + heat_out, + temp_high_selec, + temp_low_selec, + big_m: float, + constraint_nominal: float, + ): + """ + Generic setup of the constraints for the primary side of the heat exchanger for + heat to discharge. + Ensuring that + - when bypass is allowed, heatout = heatin + - otherwise heatout = Q*cp*rho*Tout + - based on the selected temperatures + + Args: + temp_prim_in: Primary temperature in + temp_prim_out: Primary temperature out + discharge: Casadi variable for primary volumetric flow + cp: specific heat capacity + rho: density + heat_in: Casadi variable for primary heat in + heat_out: Casadi variable for primary heat out + temp_high_selec: is_selected variable for the primary in temperature or 1.0 + if temperature is fixed + temp_low_selec: is_selected variable for the primary out temperature or 1.0 + if temperature is fixed + big_m: float to activate/deactive this constraint + constraint_nominal: nominal to scale the constraint + + Returns: + + """ + + if temp_prim_out >= temp_prim_in: + expr = heat_in + else: + expr = discharge * cp * rho * temp_prim_out + + return __constraints_temperature_heat_to_discharge_bypass( + heat_out, expr, temp_high_selec + temp_low_selec, big_m, constraint_nominal + ) + + def __constraints_temperature_heat_to_discharge_bypass_secondary( + temp_sec_in: float, + temp_sec_out: float, + discharge, + cp: float, + rho: float, + heat_in, + heat_out, + temp_high_selec, + temp_low_selec, + big_m: float, + constraint_nominal: float, + ): + """ + Generic setup of the constraints for the primary side of the heat exchanger for + heat to discharge. + Ensuring that + - when bypass is allowed, heatout = heatin + - otherwise heatout = Q*cp*rho*Tout + - based on the selected temperatures + + Args: + temp_sec_in: Secondary temperature in + temp_sec_out: Secondary temperature out + discharge: Casadi variable for secondary volumetric flow + cp: specific heat capacity + rho: density + heat_in: Casadi variable for secondary heat in + heat_out: Casadi variable for secondary heat out + temp_high_selec: is_selected variable for the secondary out temperature or 1.0 + if temperature is fixed + temp_low_selec: is_selected variable for the secondary in temperature or + 1.0 if temperature is fixed + big_m: float to activate/deactive this constraint + constraint_nominal: nominal to scale the constraint + + Returns: + + """ + + if temp_sec_in >= temp_sec_out: + expr = heat_in + else: + expr = discharge * cp * rho * temp_sec_out + + return __constraints_temperature_heat_to_discharge_bypass( + heat_out, expr, temp_high_selec + temp_low_selec, big_m, constraint_nominal + ) + + # primary side + if len(return_temperatures_prim) == 0: + return_temperature = parameters[f"{heat_exchanger}.Primary.T_return"] + if len(supply_temperatures_prim) != 0 and hn_settings["heat_exchanger_bypass"]: + for sup_temp in supply_temperatures_prim: + sup_temperature_is_selected = self.state(f"{sup_carrier_prim}_{sup_temp}") + constraints.extend( + __constraints_temperature_heat_to_discharge_bypass_primary( + sup_temp, + return_temperature, + discharge_primary, + cp_prim, + rho_prim, + heat_in_prim, + heat_out_prim, + sup_temperature_is_selected, + 1.0, + big_m, + constraint_nominal, + ) + ) + else: + sup_temp = parameters[f"{heat_exchanger}.Primary.T_supply"] + assert sup_temp >= return_temperature + constraints.extend( + __constraints_temperature_heat_to_discharge_bypass_primary( + sup_temp, + return_temperature, + discharge_primary, + cp_prim, + rho_prim, + heat_in_prim, + heat_out_prim, + 1.0, + 1.0, + big_m, + constraint_nominal, + ) + ) + else: for return_temperature in return_temperatures_prim: ret_temperature_is_selected = self.state( f"{ret_carrier_prim}_{return_temperature}" ) - if ( - hn_settings["heat_exchanger_bypass"] - and return_temperature >= parameters[f"{heat_exchanger}.Primary.T_supply"] - ): - expr = heat_in_prim + if hn_settings["heat_exchanger_bypass"] and len(supply_temperatures_prim) != 0: + # if bypass of heat exchanger is allowed and the primary in temperature + # is also a variable + for sup_temp in supply_temperatures_prim: + sup_temperature_is_selected = self.state( + f"{sup_carrier_prim}_{sup_temp}" + ) + constraints.extend( + __constraints_temperature_heat_to_discharge_bypass_primary( + sup_temp, + return_temperature, + discharge_primary, + cp_prim, + rho_prim, + heat_in_prim, + heat_out_prim, + sup_temperature_is_selected, + ret_temperature_is_selected, + big_m, + constraint_nominal, + ) + ) + else: - expr = discharge_primary * cp_prim * rho_prim * return_temperature - constraints.append( - ( - (heat_out_prim - expr + (1.0 - ret_temperature_is_selected) * big_m) - / constraint_nominal, - 0.0, - np.inf, - ) - ) - constraints.append( - ( - (heat_out_prim - expr - (1.0 - ret_temperature_is_selected) * big_m) - / constraint_nominal, - -np.inf, - 0.0, + sup_temp = parameters[(f"{heat_exchanger}.Primary.T_supply")] + constraints.extend( + __constraints_temperature_heat_to_discharge_bypass_primary( + sup_temp, + return_temperature, + discharge_primary, + cp_prim, + rho_prim, + heat_in_prim, + heat_out_prim, + 1.0, + ret_temperature_is_selected, + big_m, + constraint_nominal, + ) ) - ) # Secondary side sup_carrier_sec = parameters[f"{heat_exchanger}.Secondary.T_supply_id"] @@ -2634,54 +2805,87 @@ def __heat_exchanger_heat_to_discharge_path_constraints(self, ensemble_member): ) if len(supply_temperatures_sec) == 0: - if ( - hn_settings["heat_exchanger_bypass"] - and parameters[f"{heat_exchanger}.Secondary.T_return"] - >= parameters[f"{heat_exchanger}.Secondary.T_supply"] - ): - expr = heat_in_sec + supply_temperature = parameters[f"{heat_exchanger}.Secondary.T_supply"] + if len(return_temperatures_sec) != 0 and hn_settings["heat_exchanger_bypass"]: + for ret_temperature in return_temperatures_sec: + ret_temperature_is_selected = self.state( + f"{ret_carrier_sec}_{ret_temperature}" + ) + constraints.extend( + __constraints_temperature_heat_to_discharge_bypass_secondary( + ret_temperature, + supply_temperature, + discharge_secondary, + cp_sec, + rho_sec, + heat_in_sec, + heat_out_sec, + ret_temperature_is_selected, + 1.0, + big_m, + constraint_nominal, + ) + ) else: - expr = ( - discharge_secondary - * cp_sec - * rho_sec - * parameters[f"{heat_exchanger}.Secondary.T_supply"] - ) - constraints.append( - ( - (heat_out_sec - expr) / constraint_nominal, - 0.0, - 0.0, + ret_temperature = parameters[f"{heat_exchanger}.Secondary.T_return"] + assert supply_temperature >= ret_temperature + constraints.extend( + __constraints_temperature_heat_to_discharge_bypass_secondary( + ret_temperature, + supply_temperature, + discharge_secondary, + cp_sec, + rho_sec, + heat_in_sec, + heat_out_sec, + 1.0, + 1.0, + big_m, + constraint_nominal, + ) ) - ) else: for supply_temperature in supply_temperatures_sec: sup_temperature_is_selected = self.state( f"{sup_carrier_sec}_{supply_temperature}" ) - if ( - hn_settings["heat_exchanger_bypass"] - and supply_temperature <= parameters[f"{heat_exchanger}.Secondary.T_return"] - ): - expr = heat_in_sec + if len(return_temperatures_sec) != 0 and hn_settings["heat_exchanger_bypass"]: + for ret_temperature in return_temperatures_sec: + ret_temperature_is_selected = self.state( + f"{ret_carrier_sec}_{ret_temperature}" + ) + constraints.extend( + __constraints_temperature_heat_to_discharge_bypass_secondary( + ret_temperature, + supply_temperature, + discharge_secondary, + cp_sec, + rho_sec, + heat_in_sec, + heat_out_sec, + ret_temperature_is_selected, + sup_temperature_is_selected, + big_m, + constraint_nominal, + ) + ) else: - expr = discharge_secondary * cp_sec * rho_sec * supply_temperature - constraints.append( - ( - (heat_out_sec - expr - (1.0 - sup_temperature_is_selected) * big_m) - / constraint_nominal, - -np.inf, - 0.0, - ) - ) - constraints.append( - ( - (heat_out_sec - expr + (1.0 - sup_temperature_is_selected) * big_m) - / constraint_nominal, - 0.0, - np.inf, + ret_temperature = parameters[f"{heat_exchanger}.Secondary.T_return"] + constraints.extend( + __constraints_temperature_heat_to_discharge_bypass_secondary( + ret_temperature, + supply_temperature, + discharge_secondary, + cp_sec, + rho_sec, + heat_in_sec, + heat_out_sec, + 1.0, + sup_temperature_is_selected, + big_m, + constraint_nominal, + ) ) - ) # disconnect HEX # Getting var for disabled constraints @@ -2731,8 +2935,8 @@ def __heat_exchanger_heat_to_discharge_path_constraints(self, ensemble_member): constraints.append( ( ( - t_sup_prim * sup_prim_t_is_selected - - t_sup_sec * sup_sec_t_is_selected + t_sup_prim + - t_sup_sec + ( is_disabled + (1.0 - sup_prim_t_is_selected) diff --git a/src/mesido/util.py b/src/mesido/util.py index 7b52ed47d..c88d3ef43 100644 --- a/src/mesido/util.py +++ b/src/mesido/util.py @@ -52,6 +52,6 @@ def run_esdl_mesido_optimization( feasibility = solution.solver_stats["return_status"] - assert feasibility.lower() == "optimal" or feasibility.lower() == "finished" + assert feasibility.lower() in ["optimal", "finished", "integer optimal solution"] return solution diff --git a/tests/models/heat_exchange/model/test_hex_bypass_2.esdl b/tests/models/heat_exchange/model/test_hex_bypass_2.esdl new file mode 100644 index 000000000..66021389b --- /dev/null +++ b/tests/models/heat_exchange/model/test_hex_bypass_2.esdl @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/heatpump/src/run_heat_pump.py b/tests/models/heatpump/src/run_heat_pump.py index bb5f23e58..f32243ce5 100644 --- a/tests/models/heatpump/src/run_heat_pump.py +++ b/tests/models/heatpump/src/run_heat_pump.py @@ -138,6 +138,12 @@ def temperature_regimes(self, carrier): return temperatures + def times(self, variable=None) -> np.ndarray: + """ + Shorten the timeseries to speed up the test, when highs is used as a solver. + """ + return super().times(variable)[:10] + if __name__ == "__main__": solution = run_optimization_problem( diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index 852ed3c3f..f59a3e700 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -169,9 +169,138 @@ def energy_system_options(self): np.testing.assert_array_less(0.001, results[f"{hex_active}.Primary.Q"][:-1]) np.testing.assert_array_less(0.001, results[f"{hex_bypass}.Primary.Q"][:-1]) - np.testing.assert_allclose(results[f"{hex_bypass}.Heat_flow"][:-1], 0) + np.testing.assert_allclose(results[f"{hex_bypass}.Heat_flow"][:-1], 0, atol=1e-9) np.testing.assert_array_less(1e5, results[f"{hex_active}.Heat_flow"][:-1]) + def test_heat_exchanger_bypass_varying_temperature(self): + """ + Check the modelling of the heat exchanger component which allows two hydraulically + decoupled networks to exchange heat with each other. It is enforced that heat can only flow + from the primary side to the secondary side, and heat exchangers are allowed to be disabled + for timesteps in which they are not used. This is to allow for the temperature constraints + (T_primary > T_secondary) to become deactivated. + An option to allow for bypassing of the heat exchanger has been added, such that when the + heat exchanger is disabled, flow through the heat exchanger is allowed, however no heat + exchange is allowed, in the case the carriers of both the supply and return on one side + of the heat exchanger are the same. + + Checks: + - Standard checks for demand matching and energy conservation. + - Heat to discharge test is not applied as at one heat exchanger (the bypassed one), the + heat going out on the primary side will not coincide exactly with the temperature due to + heatlosses in the network before the heat exchanger. + - Check that the is_disabled is set correctly. + - Check if the temperatures provided are physically feasible. + - Checks that heat exchanger is bypassed, e.g. not exchanging heat, but allowing flow when + both supply and return on one side have the same temperature. + - Check that temperatures are selected correctly at the heat exchanger + """ + + import models.heat_exchange.src.run_heat_exchanger as run_heat_exchanger + from models.heat_exchange.src.run_heat_exchanger import ( + HeatProblem, + ) + + base_folder = Path(run_heat_exchanger.__file__).resolve().parent.parent + + class HeatProblemByPassMultiTemp(HeatProblem): + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.heat_network_settings["heat_exchanger_bypass"] = True + + def energy_system_options(self): + options = super().energy_system_options() + options["neglect_pipe_heat_losses"] = False + + return options + + def temperature_carriers(self): + return self.esdl_carriers + + def temperature_regimes(self, carrier): + temperatures = [] + if carrier == 829940433102452838: + temperatures = [70.0, 65.0, 60.0] # producer out + + if carrier == 8725433194681736500139: + temperatures = [65.0, 60.0] # first hex out + + return temperatures + + def constraints(self, ensemble_member): + constraints = super().constraints(ensemble_member) + + carriers = self.temperature_carriers() + for carrier in carriers.values(): + carrier_map = carrier["id_number_mapping"] + temperature_regimes = self.temperature_regimes(int(carrier_map)) + if len(temperature_regimes) > 1: + carrier_var_name = str(carrier_map) + "_temperature" + var_carrier = self.extra_variable(carrier_var_name) + for i in range(var_carrier.shape[0] - 1): + constraints.append((var_carrier[i] - var_carrier[i + 1], 0.0, 0.0)) + + for temperature in temperature_regimes: + selected_temp_vec = self.state_vector( + f"{int(carrier_map)}_{temperature}" + ) + for i in range(var_carrier.shape[0] - 1): + constraints.append( + (selected_temp_vec[i] - selected_temp_vec[i + 1], 0.0, 0.0) + ) + + return constraints + + # def solver_options(self): + # options = super().solver_options() + # options["solver"] = "cplex" + # return options + + def times(self, variable=None) -> np.ndarray: + """ + Shorten the timeseries to speed up the test, when highs is used as a solver. + """ + return super().times(variable)[:5] + + solution = run_esdl_mesido_optimization( + HeatProblemByPassMultiTemp, + base_folder=base_folder, + esdl_file_name="test_hex_bypass_2.esdl", + esdl_parser=ESDLFileParser, + profile_reader=ProfileReaderFromFile, + input_timeseries_file="timeseries_import.xml", + ) + + results = solution.extract_results() + + demand_matching_test(solution, results) + energy_conservation_test(solution, results) + + temp_prod = results["829940433102452838_temperature"] + temp_hex = results["8725433194681736500139_temperature"] + + # check heat exchanger 1 is bypassed + hex_active = "HeatExchange_e410_copy" + hex_bypass = "HeatExchange_e410" + + np.testing.assert_allclose(results[f"{hex_active}__disabled"][:-1], 0) + np.testing.assert_allclose(results[f"{hex_bypass}__disabled"][:-1], 1) + + np.testing.assert_array_less(0.001, results[f"{hex_active}.Primary.Q"][:-1]) + np.testing.assert_array_less(0.001, results[f"{hex_bypass}.Primary.Q"][:-1]) + + np.testing.assert_allclose(results[f"{hex_bypass}.Heat_flow"][:-1], 0, atol=1e-6) + np.testing.assert_array_less(1e5, results[f"{hex_active}.Heat_flow"][:-1]) + + # check lowest temperatures are picked (due to minimum heatloss). + # check temperatures on bypass side are the same. + + np.testing.assert_allclose(temp_prod, 60.0) + np.testing.assert_allclose(temp_hex, 60.0) + np.testing.assert_allclose(temp_hex, temp_prod) + class TestHP(TestCase): def test_heat_pump(self): From 1413a3adbe9b3d58d15364436d2a87de550be7d4 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Tue, 11 Feb 2025 14:30:19 +0100 Subject: [PATCH 253/275] 242 read profiles from csv files (#245) * Add exception for NaNs in profile source files * Add NaN check for influxDB profiles --- CHANGELOG.md | 3 ++- src/mesido/esdl/profile_parser.py | 25 ++++++++++++++++++- .../ates_temperature/input/Warmte_test_3.csv | 2 +- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc98275ac..625230899 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# [Unreleased-main] - 2024-12-12 +# [Unreleased-main] - 2025-02-05 ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class @@ -10,6 +10,7 @@ - More of the existing classes added to __init_ for local runs using the grow_workflow - Generic functions for postprocessing are added. - Generic function to adapt timeseries from hourly timesteps to user-defined timesteps by averaging. +- Error check for NaN values in profile data (csv & influxDB) ## Changed - Write output to json also saves the solver statistics. diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index 3685bcd5d..a301aa564 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -437,6 +437,11 @@ def _check_profile_time_series( f"The timestep for variable {profile.field} between {d1} and {d2} isn't " f"exactly 1 hour" ) + # Check if any NaN values exist + if profile_time_series.isnull().any().any(): + raise Exception( + f"Nan value was encountered in the profile data for variable {profile.field}" + ) def _convert_profile_to_correct_unit( self, profile_time_series: pd.Series, profile: esdl.InfluxDBProfile @@ -528,6 +533,12 @@ def _load_csv( ensemble_size: int, ) -> None: data = pd.read_csv(self._file_path) + + if len(data.filter(like="Unnamed").columns) > 0: + raise Exception( + f"An unnamed column has been found in profile source file: {self._file_path}" + ) + try: timeseries_import_times = [ datetime.datetime.strptime(entry.replace("Z", ""), "%Y-%m-%d %H:%M:%S").replace( @@ -562,7 +573,14 @@ def _load_csv( for component_type, var_name in self.component_type_to_var_name_map.items(): for component_name in energy_system_components.get(component_type, []): try: - values = data[f"{component_name.replace(' ', '')}"].to_numpy() + column_name = f"{component_name.replace(' ', '')}" + values = data[column_name].to_numpy() + if np.isnan(values).any(): + raise Exception( + f"Column name: {column_name}, NaN exists in the profile source" + f" file {self._file_path}." + f" Detials: {data[data[column_name].isnull()]}" + ) except KeyError: pass else: @@ -571,6 +589,11 @@ def _load_csv( carrier_name = properties.get("name") try: values = data[carrier_name].to_numpy() + if np.isnan(values).any(): + raise Exception( + f"Carrier name: {carrier_name}, NaN exists in the profile source file" + f" {self._file_path}. Details: {data[data[carrier_name].isnull()]}" + ) except KeyError: pass else: diff --git a/tests/models/ates_temperature/input/Warmte_test_3.csv b/tests/models/ates_temperature/input/Warmte_test_3.csv index 710b1c657..fb5a4da11 100644 --- a/tests/models/ates_temperature/input/Warmte_test_3.csv +++ b/tests/models/ates_temperature/input/Warmte_test_3.csv @@ -1,4 +1,4 @@ -,DateTime,HeatingDemand_1,HeatingDemand_2,HeatingDemand_3 +DateTime,HeatingDemand_1,HeatingDemand_2,HeatingDemand_3 0,1-1-2019 00:00,885996.6024,226606.7,226606.7 1,1-1-2019 01:00,885788.1031999999,226553.36,226553.36 2,1-1-2019 02:00,929386.5671999999,237704.34,237704.34 From 7350f0dd29699aa9616bbaf18bf9e088cbf23c47 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Tue, 11 Feb 2025 16:02:17 +0100 Subject: [PATCH 254/275] Update casadi (#247) Update casadi to 3.6.7 gil release with highs 1.4.1 --- CHANGELOG.md | 4 +++- setup.py | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 625230899..45c4f4e91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ -# [Unreleased-main] - 2025-02-05 + +# [Unreleased-main] - 2025-02-07 ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class @@ -19,6 +20,7 @@ - For gas: Use energy content (heating value) instead of internal energy - Option was added to allow a bypass of the heat exchanger, possible on both sides of the heat exchanger - Option for electricity cables to be unidirectional +- Updated Casadi to 3.6.7 with gil fixes (see https://github.com/casadi/casadi/releases/tag/nightly-gil_release) ## Fixed - Bugfix: gas boiler mass flow constraint units diff --git a/setup.py b/setup.py index f10e6be60..194bfe28b 100644 --- a/setup.py +++ b/setup.py @@ -61,7 +61,20 @@ "rtc-tools == 2.6.0a3", "pyesdl == 24.2", "pandas >= 1.3.1, < 2.0", - "casadi == 3.6.3", + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp37-none-win_amd64.whl ; python_version == '3.7' and sys_platform == 'win32'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp38-none-win_amd64.whl ; python_version == '3.8' and sys_platform == 'win32'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp39-none-win_amd64.whl ; python_version == '3.9' and sys_platform == 'win32'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp310-none-win_amd64.whl ; python_version == '3.10' and sys_platform == 'win32'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp311-none-win_amd64.whl ; python_version == '3.11' and sys_platform == 'win32'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp312-none-win_amd64.whl ; python_version == '3.12' and sys_platform == 'win32'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp313-none-win_amd64.whl ; python_version == '3.13' and sys_platform == 'win32'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp37-none-manylinux2014_x86_64.whl ; python_version == '3.7' and sys_platform == 'linux'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp38-none-manylinux2014_x86_64.whl ; python_version == '3.8' and sys_platform == 'linux'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp39-none-manylinux2014_x86_64.whl ; python_version == '3.9' and sys_platform == 'linux'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp310-none-manylinux2014_x86_64.whl ; python_version == '3.10' and sys_platform == 'linux'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp311-none-manylinux2014_x86_64.whl ; python_version == '3.11' and sys_platform == 'linux'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp312-none-manylinux2014_x86_64.whl ; python_version == '3.12' and sys_platform == 'linux'", # noqa: E501 + "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp313-none-manylinux2014_x86_64.whl ; python_version == '3.13' and sys_platform == 'linux'", # noqa: E501 "StrEnum == 0.4.15", "CoolProp==6.6.0", ], From 9e88077e543f53c2db52a5e91a7d8c084e4a83b0 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Wed, 12 Feb 2025 09:06:21 +0100 Subject: [PATCH 255/275] Bug fix on boolean bounds - dtk webinar case (#248) * Pipe DN none bug fix in grow_workflow --- CHANGELOG.md | 5 ++++- src/mesido/workflows/__init__.py | 2 ++ src/mesido/workflows/grow_workflow.py | 24 +++++++++++++++--------- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 45c4f4e91..2870b8118 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,8 @@ - Bugfix: head loss test case when minimum_velocity = 0.0 - Bugs: state update of heat pump, heat buffer volume & ates charge rates update in ESDL, heat storage asset data output to influxDB - Bugfix: get_density + get_internal_energy updated to ensure it checks commodity type for heat instead of the carrier name +- Bug: pipe class bounds when pipe DN none results from stage 1 in the grow_workflow + # [0.1.8.4] - 2024-12-11 @@ -50,7 +52,8 @@ - xx ## Fixed -- xx +- Bugfix: same mip gap settings for all solvers in grow_workflow. +- Bugfix: head loss test case when minimum_velocity = 0.0 # [0.1.8.2] - 2024-11-15 diff --git a/src/mesido/workflows/__init__.py b/src/mesido/workflows/__init__.py index 755a00463..1126a6ac1 100644 --- a/src/mesido/workflows/__init__.py +++ b/src/mesido/workflows/__init__.py @@ -5,6 +5,7 @@ EndScenarioSizingHIGHS, EndScenarioSizingHeadLossDiscounted, EndScenarioSizingHeadLossDiscountedStaged, + EndScenarioSizingHeadLossStaged, EndScenarioSizingStaged, SolverGurobi, SolverHIGHS, @@ -26,6 +27,7 @@ "EndScenarioSizingHIGHS", "EndScenarioSizingHeadLossDiscounted", "EndScenarioSizingHeadLossDiscountedStaged", + "EndScenarioSizingHeadLossStaged", "EndScenarioSizingStaged", "SolverGurobi", "SolverHIGHS", diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 5467b8493..2044bf01a 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -635,21 +635,26 @@ def run_end_scenario_sizing( bounds = solution.bounds() # We give bounds for stage 2 by allowing one DN sizes larger than what was found in the - # stage 1 optimization. - pc_map = solution.get_pipe_class_map() + # stage 1 optimization. But if the pipe is not to be used class DN none should be used and + # all the following pipe clasess should have bounds (0, 0) + # Assumptions: + # - The fist pipe class in the list of pipe_classes is pipe DN none + pc_map = solution.get_pipe_class_map() # if disconnectable and not connected to source for pipe_classes in pc_map.values(): v_prev = 0.0 first_pipe_class = True + use_pipe_dn_none = False for var_name in pipe_classes.values(): - v = results[var_name][0] - if first_pipe_class and abs(v) == 1.0: - boolean_bounds[var_name] = (abs(v), abs(v)) - elif abs(v) == 1.0: - boolean_bounds[var_name] = (0.0, abs(v)) - elif v_prev == 1.0: + v = round(abs(results[var_name][0])) + if first_pipe_class and v == 1.0: + boolean_bounds[var_name] = (v, v) + use_pipe_dn_none = True + elif v == 1.0: + boolean_bounds[var_name] = (0.0, v) + elif not use_pipe_dn_none and v_prev == 1.0: # This allows one DN larger boolean_bounds[var_name] = (0.0, 1.0) else: - boolean_bounds[var_name] = (abs(v), abs(v)) + boolean_bounds[var_name] = (v, v) v_prev = v first_pipe_class = False @@ -696,6 +701,7 @@ def run_end_scenario_sizing( boolean_bounds[f"{p}__is_disconnected"] = (Timeseries(t, r), Timeseries(t, r)) except KeyError: pass + priorities_output = solution._priorities_output solution = run_optimization_problem_solver( From 3e63ef1a394a8a94ccb310c23713cfd5be5c11c0 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Wed, 12 Feb 2025 10:04:35 +0100 Subject: [PATCH 256/275] upgrade trctools version (#250) * upgrade trctools version --- CHANGELOG.md | 1 + setup.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2870b8118..9c5d909d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - For gas: Use energy content (heating value) instead of internal energy - Option was added to allow a bypass of the heat exchanger, possible on both sides of the heat exchanger - Option for electricity cables to be unidirectional +- Upgraded rtctools to v 2.6.1 - Updated Casadi to 3.6.7 with gil fixes (see https://github.com/casadi/casadi/releases/tag/nightly-gil_release) ## Fixed diff --git a/setup.py b/setup.py index 194bfe28b..b11637747 100644 --- a/setup.py +++ b/setup.py @@ -58,7 +58,7 @@ "influxdb >= 5.3.1", "pyecore == 0.12.1", "pymoca >= 0.9.0", - "rtc-tools == 2.6.0a3", + "rtc-tools == 2.6.1", "pyesdl == 24.2", "pandas >= 1.3.1, < 2.0", "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp37-none-win_amd64.whl ; python_version == '3.7' and sys_platform == 'win32'", # noqa: E501 From 50b195f5d0b2a177a4d68896967f7074132fa76b Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Tue, 18 Feb 2025 16:58:41 +0100 Subject: [PATCH 257/275] Temporary fix for dependencies in main (#257) * temporary fix for dependencies --- CHANGELOG.md | 13 +++++++++++++ setup.py | 17 ++--------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c5d909d3..5d2711c78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,19 @@ - Bug: pipe class bounds when pipe DN none results from stage 1 in the grow_workflow +# [0.1.8.5] - 2025-02-12 + +## Added +- xx + +## Changed +- Updated Casadi to 3.6.7 with gil fixes (see https://github.com/casadi/casadi/releases/tag/nightly-gil_release) +- Upgraded rtctools to version 2.6.1 + +## Fixed +- Bug: pipe class bounds when pipe DN none results from stage 1 in the grow_workflow + + # [0.1.8.4] - 2024-12-11 ## Added diff --git a/setup.py b/setup.py index b11637747..703be5dee 100644 --- a/setup.py +++ b/setup.py @@ -58,23 +58,10 @@ "influxdb >= 5.3.1", "pyecore == 0.12.1", "pymoca >= 0.9.0", - "rtc-tools == 2.6.1", + "rtc-tools-gil-comp == 2.6.1", "pyesdl == 24.2", "pandas >= 1.3.1, < 2.0", - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp37-none-win_amd64.whl ; python_version == '3.7' and sys_platform == 'win32'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp38-none-win_amd64.whl ; python_version == '3.8' and sys_platform == 'win32'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp39-none-win_amd64.whl ; python_version == '3.9' and sys_platform == 'win32'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp310-none-win_amd64.whl ; python_version == '3.10' and sys_platform == 'win32'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp311-none-win_amd64.whl ; python_version == '3.11' and sys_platform == 'win32'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp312-none-win_amd64.whl ; python_version == '3.12' and sys_platform == 'win32'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp313-none-win_amd64.whl ; python_version == '3.13' and sys_platform == 'win32'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp37-none-manylinux2014_x86_64.whl ; python_version == '3.7' and sys_platform == 'linux'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp38-none-manylinux2014_x86_64.whl ; python_version == '3.8' and sys_platform == 'linux'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp39-none-manylinux2014_x86_64.whl ; python_version == '3.9' and sys_platform == 'linux'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp310-none-manylinux2014_x86_64.whl ; python_version == '3.10' and sys_platform == 'linux'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp311-none-manylinux2014_x86_64.whl ; python_version == '3.11' and sys_platform == 'linux'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp312-none-manylinux2014_x86_64.whl ; python_version == '3.12' and sys_platform == 'linux'", # noqa: E501 - "casadi @ https://github.com/casadi/casadi/releases/download/nightly-gil_release/casadi-3.6.7.dev+gil.release-cp313-none-manylinux2014_x86_64.whl ; python_version == '3.13' and sys_platform == 'linux'", # noqa: E501 + "casadi-gil-comp == 3.6.7", "StrEnum == 0.4.15", "CoolProp==6.6.0", ], From 7959d66c4c67dabf5051e127a836386bfd82b254 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Wed, 19 Feb 2025 15:35:17 +0100 Subject: [PATCH 258/275] Dev documentation assets (#240) Automatically creates documentation for the pycml assets on the variables that are created for them using a decorator that checks for the add_variable method in the assets and its parents. --------- Co-authored-by: Sebastiaan la Fleur --- docs/conf.py | 8 ++ docs/dev_docs/component_library_milp.rst | 22 +++ docs/dev_docs/index.rst | 11 ++ docs/dev_docs/physics_mixins.rst | 17 +++ docs/dev_docs/workflows.rst | 17 +++ docs/index.rst | 1 + src/mesido/heat_physics_mixin.py | 19 ++- .../milp/electricity/electricity_base.py | 17 +++ .../milp/electricity/electricity_cable.py | 9 ++ .../milp/electricity/electricity_demand.py | 9 ++ .../milp/electricity/electricity_node.py | 9 ++ .../milp/electricity/electricity_source.py | 9 ++ .../milp/electricity/electricity_storage.py | 11 +- .../milp/electricity/heat_pump_elec.py | 9 ++ .../milp/electricity/solarpv.py | 15 +++ .../milp/electricity/transformer.py | 10 ++ .../milp/electricity/windpark.py | 15 +++ .../component_library/milp/gas/compressor.py | 10 ++ .../component_library/milp/gas/gas_base.py | 9 ++ .../component_library/milp/gas/gas_demand.py | 9 ++ .../component_library/milp/gas/gas_node.py | 9 ++ .../component_library/milp/gas/gas_pipe.py | 9 ++ .../component_library/milp/gas/gas_source.py | 9 ++ .../milp/gas/gas_substation.py | 12 ++ .../milp/gas/gas_tank_storage.py | 12 +- .../milp/heat/_non_storage_component.py | 9 ++ .../milp/heat/air_water_heat_pump.py | 10 ++ .../component_library/milp/heat/airco.py | 9 ++ .../pycml/component_library/milp/heat/ates.py | 9 ++ .../milp/heat/check_valve.py | 10 ++ .../milp/heat/cold_demand.py | 10 ++ .../milp/heat/control_valve.py | 9 ++ .../milp/heat/geothermal_source.py | 11 ++ .../milp/heat/heat_buffer.py | 10 ++ .../milp/heat/heat_demand.py | 9 ++ .../milp/heat/heat_exchanger.py | 9 ++ .../milp/heat/heat_four_port.py | 9 ++ .../component_library/milp/heat/heat_pipe.py | 10 ++ .../component_library/milp/heat/heat_port.py | 9 ++ .../component_library/milp/heat/heat_pump.py | 10 ++ .../milp/heat/heat_source.py | 10 ++ .../milp/heat/heat_two_port.py | 9 ++ .../milp/heat/low_temperature_ates.py | 9 ++ .../pycml/component_library/milp/heat/node.py | 12 ++ .../pycml/component_library/milp/heat/pump.py | 9 ++ .../multicommodity/airwater_heat_pump_elec.py | 9 ++ .../milp/multicommodity/electro_boiler.py | 9 ++ .../milp/multicommodity/electrolyzer.py | 11 +- .../milp/multicommodity/gas_boiler.py | 9 ++ src/mesido/pycml/pycml_mixin.py | 127 +++++++++++++++++- 50 files changed, 630 insertions(+), 14 deletions(-) create mode 100644 docs/dev_docs/component_library_milp.rst create mode 100644 docs/dev_docs/index.rst create mode 100644 docs/dev_docs/physics_mixins.rst create mode 100644 docs/dev_docs/workflows.rst diff --git a/docs/conf.py b/docs/conf.py index 5a95414ee..66116b525 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -33,6 +33,7 @@ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = ['sphinx.ext.autodoc', + 'sphinx.ext.autosummary', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', @@ -47,6 +48,13 @@ bibtex_bibfiles = ['references.bib'] +autodoc_default_options = { + 'members': True, + 'member-order': 'bysource', + 'special-members': '__init__', + 'show-inheritance': True, +} + # -- GraphViz configuration ---------------------------------- graphviz_output_format = 'svg' diff --git a/docs/dev_docs/component_library_milp.rst b/docs/dev_docs/component_library_milp.rst new file mode 100644 index 000000000..52e81c0f5 --- /dev/null +++ b/docs/dev_docs/component_library_milp.rst @@ -0,0 +1,22 @@ + +Component Library +================= + +internal: + + + +.. .. automodule:: mesido.pycml.component_library.milp._internal.electricity_component + :private-members: +.. automodule:: mesido.pycml.component_library.milp.__init__ + :private-members: add_variable + :exclude-members: __init__ + +.. automodule:: mesido.pycml.component_library.milp.heat._non_storage_component +.. automodule:: mesido.pycml.component_library.milp._internal.electricity_component +.. automodule:: mesido.pycml.component_library.milp._internal.gas_component + :exclude-members: __init__ +.. automodule:: mesido.pycml.component_library.milp._internal.heat_component + :exclude-members: __init__ + + diff --git a/docs/dev_docs/index.rst b/docs/dev_docs/index.rst new file mode 100644 index 000000000..aa45b1617 --- /dev/null +++ b/docs/dev_docs/index.rst @@ -0,0 +1,11 @@ +Developers documentation +======================== + +.. toctree:: + :maxdepth: 4 + :numbered: + :caption: Contents: + + component_library_milp + physics_mixins + workflows \ No newline at end of file diff --git a/docs/dev_docs/physics_mixins.rst b/docs/dev_docs/physics_mixins.rst new file mode 100644 index 000000000..36c666da6 --- /dev/null +++ b/docs/dev_docs/physics_mixins.rst @@ -0,0 +1,17 @@ + +Physcis Modelling +================= + +.. autoclass:: mesido.physics_mixin.PhysicsMixin + + +.. autoclass:: mesido.heat_physics_mixin.HeatPhysicsMixin + :private-members: + +.. autoclass:: mesido.electricity_physics_mixin.ElectricityPhysicsMixin + :private-members: + +.. autoclass:: mesido.gas_physics_mixin.GasPhysicsMixin + :private-members: + + diff --git a/docs/dev_docs/workflows.rst b/docs/dev_docs/workflows.rst new file mode 100644 index 000000000..692092534 --- /dev/null +++ b/docs/dev_docs/workflows.rst @@ -0,0 +1,17 @@ + +Workflows +========= + +GROW workflow +------------- + +.. automodule:: mesido.workflows.grow_workflow + +Utils +----- + +.. automodule:: mesido.workflows.utils.adapt_profiles +.. automodule:: mesido.workflows.utils.error_types +.. automodule:: mesido.workflows.utils.helpers + + diff --git a/docs/index.rst b/docs/index.rst index 56010bbee..e48d971ff 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -10,6 +10,7 @@ This is the documentation for MESIDO. :caption: MESIDO theory/index + dev_docs/index support bibliography diff --git a/src/mesido/heat_physics_mixin.py b/src/mesido/heat_physics_mixin.py index 3cd7dd462..eb4c7cfba 100644 --- a/src/mesido/heat_physics_mixin.py +++ b/src/mesido/heat_physics_mixin.py @@ -21,15 +21,16 @@ class HeatPhysicsMixin(BaseComponentTypeMixin, CollocatedIntegratedOptimizationProblem): + """ + This class is used to model the physics of a heat district network with its assets. We model + the different components with a variety of linearization strategies. + """ + __allowed_head_loss_options = { HeadLossOption.NO_HEADLOSS, HeadLossOption.LINEARIZED_ONE_LINE_EQUALITY, HeadLossOption.LINEARIZED_N_LINES_WEAK_INEQUALITY, } - """ - This class is used to model the physics of a heat district network with its assets. We model - the different components with variety of linearization strategies. - """ def __init__(self, *args, **kwargs): r""" @@ -3166,13 +3167,11 @@ def __heat_loss_variable_constraints(self, ensemble_member): Furthermore, the __hn_heat_loss symbol is set, as the heat loss depends on the chosen pipe class and the selected temperature in the network. - Parameters - ---------- - ensemble_member : The ensemble of the optimizaton + Parameters: + ensemble_member : The ensemble of the optimizaton - Returns - ------- - list of the added constraints + Returns: + list of the added constraints """ constraints = [] diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_base.py b/src/mesido/pycml/component_library/milp/electricity/electricity_base.py index 28c7a6a5f..26f60828d 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_base.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_base.py @@ -1,12 +1,21 @@ from mesido.pycml import Connector, Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from .._internal.electricity_component import ElectricityComponent +@add_variables_documentation_automatically class ElectricityPort(ElectricityComponent, Connector): """ The electricity port is used to model the variables at a port where two assets are connected. For electricity networks we model the electrical power (P), the voltage (V) and the current (I). + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): @@ -17,10 +26,18 @@ def __init__(self, name, **modifiers): self.add_variable(Variable, "V", min=0.0) +@add_variables_documentation_automatically class ElectricityTwoPort(ElectricityComponent): """ For electricity components that transport power we have a two port component to allow for electricity flow in and out of the component. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py b/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py index 9125341c3..07006cc47 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_cable.py @@ -1,4 +1,5 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan @@ -6,12 +7,20 @@ from .._internal import BaseAsset +@add_variables_documentation_automatically class ElectricityCable(ElectricityTwoPort, BaseAsset): """ The electricity cable component is used to model voltage and power drops in the electricity lines. We model the power losses by over estimating them with the maximum current. We ensure that the power is always less than what the current is able to carry by an equality constraint at the demand where we enforce the minimum voltage. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_demand.py b/src/mesido/pycml/component_library/milp/electricity/electricity_demand.py index f0b578c19..bd379dcc9 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_demand.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_demand.py @@ -1,4 +1,5 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan @@ -7,11 +8,19 @@ from .._internal.electricity_component import ElectricityComponent +@add_variables_documentation_automatically class ElectricityDemand(ElectricityComponent, BaseAsset): """ The electricity demand models consumption of electrical power. We set an equality constriant in to enforce the minimum voltage and the associated power at the demand. This allows us to overestimate the power losses in the rest of the network. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_node.py b/src/mesido/pycml/component_library/milp/electricity/electricity_node.py index 2aeabf80c..bfa371533 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_node.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_node.py @@ -1,4 +1,5 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan @@ -7,12 +8,20 @@ from .._internal.electricity_component import ElectricityComponent +@add_variables_documentation_automatically class ElectricityNode(ElectricityComponent, BaseAsset): """ The electricity node or bus is a component where we model multiple currents coming together, this is the only component where it is allowed that 3 or more currents come together. This means that a node is always connected to cables. We set constraints for equal voltage at all ports. Furthermore, we set constraints for conservation of power and current. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_source.py b/src/mesido/pycml/component_library/milp/electricity/electricity_source.py index 5ee80a06f..8772939ff 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_source.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_source.py @@ -1,4 +1,5 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan @@ -7,11 +8,19 @@ from .._internal.electricity_component import ElectricityComponent +@add_variables_documentation_automatically class ElectricitySource(ElectricityComponent, BaseAsset): """ The electricity source component is used to generate electrical power and provide that to the network. As we set the equality constraint on the demand side we do not have to set any constraint at the source side. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/electricity/electricity_storage.py b/src/mesido/pycml/component_library/milp/electricity/electricity_storage.py index 442a17e83..5f3a22fa7 100644 --- a/src/mesido/pycml/component_library/milp/electricity/electricity_storage.py +++ b/src/mesido/pycml/component_library/milp/electricity/electricity_storage.py @@ -1,4 +1,5 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan @@ -7,11 +8,19 @@ from .._internal.electricity_component import ElectricityComponent +@add_variables_documentation_automatically class ElectricityStorage(ElectricityComponent, BaseAsset): """ The electricity storage component is used to store electrical power of a network. The change in stored electrical power should be equal to the electricity entering and leaving - the component multiplied with its efficiency + the component multiplied with its efficiency. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/electricity/heat_pump_elec.py b/src/mesido/pycml/component_library/milp/electricity/heat_pump_elec.py index 844991655..b183d2ff5 100644 --- a/src/mesido/pycml/component_library/milp/electricity/heat_pump_elec.py +++ b/src/mesido/pycml/component_library/milp/electricity/heat_pump_elec.py @@ -2,15 +2,24 @@ ElectricityPort, ) from mesido.pycml.component_library.milp.heat.heat_pump import HeatPump +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically # TODO: for now in the electricity folder, but maybe we can make a multicommodity folder, # where this is then placed. +@add_variables_documentation_automatically class HeatPumpElec(HeatPump): """ The heat pump elec is to model a water-water heatpump where we explicitly model its connection to the electricity grid. This allows to potentially optimize for electricity network constraints in the optimization of the heat network and vice-versa. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/electricity/solarpv.py b/src/mesido/pycml/component_library/milp/electricity/solarpv.py index 9e889207f..362684237 100644 --- a/src/mesido/pycml/component_library/milp/electricity/solarpv.py +++ b/src/mesido/pycml/component_library/milp/electricity/solarpv.py @@ -1,7 +1,22 @@ +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically + from .. import ElectricitySource +@add_variables_documentation_automatically class SolarPV(ElectricitySource): + """ + The solar pv asset is an electricity source component used to generate electrical power and + provide that to the network, which can handle production profiles. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. + """ + def __init__(self, name, **modifiers): super().__init__(name, **modifiers) diff --git a/src/mesido/pycml/component_library/milp/electricity/transformer.py b/src/mesido/pycml/component_library/milp/electricity/transformer.py index ace4e31db..a1b6ff71f 100644 --- a/src/mesido/pycml/component_library/milp/electricity/transformer.py +++ b/src/mesido/pycml/component_library/milp/electricity/transformer.py @@ -1,13 +1,23 @@ +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically + from numpy import nan from .electricity_base import ElectricityTwoPort from .._internal import BaseAsset +@add_variables_documentation_automatically class Transformer(ElectricityTwoPort, BaseAsset): """ The transformer component is used to change the voltage level of the network whilst conserving the power. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/electricity/windpark.py b/src/mesido/pycml/component_library/milp/electricity/windpark.py index 1aab2f9d4..13b7503ea 100644 --- a/src/mesido/pycml/component_library/milp/electricity/windpark.py +++ b/src/mesido/pycml/component_library/milp/electricity/windpark.py @@ -1,7 +1,22 @@ +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically + from .. import ElectricitySource +@add_variables_documentation_automatically class WindPark(ElectricitySource): + """ + The windpark is an electricity source component used to generate electrical power and + provide that to the network, which can handle production profiles. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. + """ + def __init__(self, name, **modifiers): super().__init__(name, **modifiers) diff --git a/src/mesido/pycml/component_library/milp/gas/compressor.py b/src/mesido/pycml/component_library/milp/gas/compressor.py index 41d7c62aa..88dc04d83 100644 --- a/src/mesido/pycml/component_library/milp/gas/compressor.py +++ b/src/mesido/pycml/component_library/milp/gas/compressor.py @@ -1,12 +1,22 @@ +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically + from numpy import nan from .gas_base import GasTwoPort from .._internal import BaseAsset +@add_variables_documentation_automatically class Compressor(GasTwoPort, BaseAsset): """ A gas compressor increases the pressure level of the flow. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/gas/gas_base.py b/src/mesido/pycml/component_library/milp/gas/gas_base.py index 3583be82b..aea786d36 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_base.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_base.py @@ -1,13 +1,22 @@ from mesido.pycml import Connector, Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from .._internal.gas_component import GasComponent +@add_variables_documentation_automatically class GasPort(GasComponent, Connector): """ The gas port is used to model the variables at a port where two assets are connected. For the gas network we model flow (Q [m3/s]) and head (H [m]). The Q_shadow variable is only used for correctly connecting ports of assets later on. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/gas/gas_demand.py b/src/mesido/pycml/component_library/milp/gas/gas_demand.py index c697116ae..11d17069a 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_demand.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_demand.py @@ -1,4 +1,5 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan @@ -7,9 +8,17 @@ from .._internal.gas_component import GasComponent +@add_variables_documentation_automatically class GasDemand(GasComponent, BaseAsset): """ A gas demand consumes flow from the network. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/gas/gas_node.py b/src/mesido/pycml/component_library/milp/gas/gas_node.py index b68246301..e7142defa 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_node.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_node.py @@ -1,16 +1,25 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from .gas_base import GasPort from .._internal import BaseAsset from .._internal.gas_component import GasComponent +@add_variables_documentation_automatically class GasNode(GasComponent, BaseAsset): """ The gas node is a component where we model multiple flows coming together, this is the only component where it is allowed that 3 or more flows come together. This means that a node is always connected to gas pipes. We set constraints for equal head at all ports. Furthermore, we set constraints for conservation of flow. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py index e7f2ad984..c9f4ddece 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_pipe.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_pipe.py @@ -1,4 +1,5 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan, pi @@ -6,10 +7,18 @@ from .._internal import BaseAsset +@add_variables_documentation_automatically class GasPipe(GasTwoPort, BaseAsset): """ The gas_pipe component is used to model head loss through the pipe. At the moment we only have a placeholder linear head loss formulation in place. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/gas/gas_source.py b/src/mesido/pycml/component_library/milp/gas/gas_source.py index 21d1beb09..a4f6e5a36 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_source.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_source.py @@ -1,4 +1,5 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan @@ -7,9 +8,17 @@ from .._internal.gas_component import GasComponent +@add_variables_documentation_automatically class GasSource(GasComponent, BaseAsset): """ A gas source generates gas flow for the network. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/gas/gas_substation.py b/src/mesido/pycml/component_library/milp/gas/gas_substation.py index 20722a596..f7ff6378e 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_substation.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_substation.py @@ -1,13 +1,25 @@ +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically + from numpy import nan from .gas_base import GasTwoPort from .._internal import BaseAsset +@add_variables_documentation_automatically class GasSubstation(GasTwoPort, BaseAsset): """ A gas substation that reduces the pressure level of the flow (basically pressure reducinng valve). + + .__disabled + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py b/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py index c2bd96295..7e791bef4 100644 --- a/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py +++ b/src/mesido/pycml/component_library/milp/gas/gas_tank_storage.py @@ -1,5 +1,6 @@ from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal import BaseAsset +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan @@ -7,9 +8,18 @@ from .._internal.gas_component import GasComponent +@add_variables_documentation_automatically class GasTankStorage(GasComponent, BaseAsset): """ - ... + A gas tank storages can storage gas from the network, thereby allowing both charging and + discharging, thus both flow directions. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py b/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py index f814979dc..2c83481b5 100644 --- a/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py +++ b/src/mesido/pycml/component_library/milp/heat/_non_storage_component.py @@ -1,16 +1,25 @@ from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan from .heat_two_port import HeatTwoPort +@add_variables_documentation_automatically class _NonStorageComponent(HeatTwoPort, BaseAsset): """ A non storage component is an asset type that does not have states that have interdependent time-steps, it does have time-varying states like Heat_flow. In the NonStorageComponent we define most of the properties being utilized by all components, like rho and cp. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/air_water_heat_pump.py b/src/mesido/pycml/component_library/milp/heat/air_water_heat_pump.py index e245a409a..f86e3993c 100644 --- a/src/mesido/pycml/component_library/milp/heat/air_water_heat_pump.py +++ b/src/mesido/pycml/component_library/milp/heat/air_water_heat_pump.py @@ -1,10 +1,20 @@ +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically + from .heat_source import HeatSource +@add_variables_documentation_automatically class AirWaterHeatPump(HeatSource): """ The air water heat pump component is used to model the source behaviour of air water heat pumps. For now, it is just a source, but in the future this can be expanded. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/airco.py b/src/mesido/pycml/component_library/milp/heat/airco.py index 612df54fb..6f8c24502 100644 --- a/src/mesido/pycml/component_library/milp/heat/airco.py +++ b/src/mesido/pycml/component_library/milp/heat/airco.py @@ -1,8 +1,10 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from ._non_storage_component import _NonStorageComponent +@add_variables_documentation_automatically class Airco(_NonStorageComponent): """ The airco component is there to extract thermal power (Heat) out of the network. This component @@ -15,6 +17,13 @@ class Airco(_NonStorageComponent): downstream in the network are over-estimated with T_ret where in reality this temperature drops. It also implicitly assumes that the temperature drops in the network are small and thus satisfy minimum temperature requirements. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/ates.py b/src/mesido/pycml/component_library/milp/heat/ates.py index 7735c9337..e1a2dfa26 100644 --- a/src/mesido/pycml/component_library/milp/heat/ates.py +++ b/src/mesido/pycml/component_library/milp/heat/ates.py @@ -1,11 +1,13 @@ from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan from .heat_two_port import HeatTwoPort +@add_variables_documentation_automatically class ATES(HeatTwoPort, BaseAsset): """ An Ates is a storage component that is used to model heat storage underground. Typically, this @@ -20,6 +22,13 @@ class ATES(HeatTwoPort, BaseAsset): The user is responsible to implement the cyclic behaviour in their workflow constraints. Meaning that the heat stored at the 1st and last time step should be equal. Furthermore, due to the implicit solving note that the energy out of the ATES should be 0 for the 1st time step. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/check_valve.py b/src/mesido/pycml/component_library/milp/heat/check_valve.py index 7134a2a27..e34acef6d 100644 --- a/src/mesido/pycml/component_library/milp/heat/check_valve.py +++ b/src/mesido/pycml/component_library/milp/heat/check_valve.py @@ -1,12 +1,22 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from ._non_storage_component import _NonStorageComponent +@add_variables_documentation_automatically class CheckValve(_NonStorageComponent): """ The check valve allows the fluid to flow in only one direction. This is done with constraints in the HeatMixin. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. + """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/cold_demand.py b/src/mesido/pycml/component_library/milp/heat/cold_demand.py index 85ac1511f..3e1a5fd0c 100644 --- a/src/mesido/pycml/component_library/milp/heat/cold_demand.py +++ b/src/mesido/pycml/component_library/milp/heat/cold_demand.py @@ -1,8 +1,10 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from ._non_storage_component import _NonStorageComponent +@add_variables_documentation_automatically class ColdDemand(_NonStorageComponent): """ The cold demand component is there to add thermal power (Heat) out of the network. Typically, @@ -15,6 +17,14 @@ class ColdDemand(_NonStorageComponent): downstream in the network are over-estimated with T_ret where in reality this temperature drops. It also implicitly assumes that the temperature drops in the network are small and thus satisfy minimum temperature requirements. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. + """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/control_valve.py b/src/mesido/pycml/component_library/milp/heat/control_valve.py index c2f0bda78..324d86a4a 100644 --- a/src/mesido/pycml/component_library/milp/heat/control_valve.py +++ b/src/mesido/pycml/component_library/milp/heat/control_valve.py @@ -1,13 +1,22 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from ._non_storage_component import _NonStorageComponent +@add_variables_documentation_automatically class ControlValve(_NonStorageComponent): """ The control valve is a component to create pressure drop. We allow the control valve to create pressure drop for flow in both directions. Note that we set the absolute head loss symbol in the HeatMixin. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/geothermal_source.py b/src/mesido/pycml/component_library/milp/heat/geothermal_source.py index f2c93a13c..a91a4099e 100644 --- a/src/mesido/pycml/component_library/milp/heat/geothermal_source.py +++ b/src/mesido/pycml/component_library/milp/heat/geothermal_source.py @@ -1,8 +1,11 @@ +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically + from numpy import nan from .heat_source import HeatSource +@add_variables_documentation_automatically class GeothermalSource(HeatSource): """ The geothermal source component is used to model geothermal doublets. It is equivilent to a @@ -11,6 +14,14 @@ class GeothermalSource(HeatSource): increasing the amount of doublets. In the HeatMixin an integer is created _aggregation_count to model the amount of doublets and the maximum power will scale with this integer instead of continuous. This will also ensure that the cost will scale with this integer. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. + """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/heat_buffer.py b/src/mesido/pycml/component_library/milp/heat/heat_buffer.py index 4ba9f47fc..ee674b441 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_buffer.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_buffer.py @@ -2,12 +2,14 @@ from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan from .heat_two_port import HeatTwoPort +@add_variables_documentation_automatically class HeatBuffer(HeatTwoPort, BaseAsset): """ The buffer component is to model milp storage in a tank. This means that we model a tank of hot @@ -17,6 +19,14 @@ class HeatBuffer(HeatTwoPort, BaseAsset): Like all storage assets we enforce that they must be connected as a demand. The heat to discharge constraints are set in the HeatPhysicsMixin, where we use a big_m formulation to enforce the correct constraints depending on whether the buffer is charging or discharging. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. + """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/heat_demand.py b/src/mesido/pycml/component_library/milp/heat/heat_demand.py index a02258c43..ffeae480d 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_demand.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_demand.py @@ -1,8 +1,10 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from ._non_storage_component import _NonStorageComponent +@add_variables_documentation_automatically class HeatDemand(_NonStorageComponent): """ The demand component is there to extract thermal power (Heat) out of the network. Typically, @@ -15,6 +17,13 @@ class HeatDemand(_NonStorageComponent): downstream in the network are over-estimated with T_ret where in reality this temperature drops. It also implicitly assumes that the temperature drops in the network are small and thus satisfy minimum temperature requirements. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py b/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py index 4d7db5e1a..a8c45231e 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_exchanger.py @@ -1,10 +1,12 @@ from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal import BaseAsset from mesido.pycml.component_library.milp.heat.heat_four_port import HeatFourPort +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan +@add_variables_documentation_automatically class HeatExchanger(HeatFourPort, BaseAsset): """ The heat exchanger component is used to model the exchange of thermal power between two @@ -20,6 +22,13 @@ class HeatExchanger(HeatFourPort, BaseAsset): To avoid unphysical heat transfer the HeatPhysicsMixin sets constraints on the temperatures on both sides in the case of varying temperature. We also allow a heat_exchanger to be disabled on certain time-steps to then allow these temperature constraints to be also disabled. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/heat_four_port.py b/src/mesido/pycml/component_library/milp/heat/heat_four_port.py index ce259f051..36cf03339 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_four_port.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_four_port.py @@ -1,13 +1,22 @@ from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal import HeatComponent +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from ._non_storage_component import _NonStorageComponent +@add_variables_documentation_automatically class HeatFourPort(HeatComponent): """ The HeatFourPort is used as a base component to model assets that interact with two hydraulically decoupled systems. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/heat_pipe.py b/src/mesido/pycml/component_library/milp/heat/heat_pipe.py index cc0b2fb82..b1d345e25 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_pipe.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_pipe.py @@ -1,10 +1,12 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan, pi from ._non_storage_component import _NonStorageComponent +@add_variables_documentation_automatically class HeatPipe(_NonStorageComponent): """ The pipe component is to model the pressure drop (and optionally hydraulic power) and @@ -19,6 +21,14 @@ class HeatPipe(_NonStorageComponent): throughout the network. Meaning that the flow does lose energy but not temperature. In this manner the energy losses will always be overestimated as in reality the flow will also have a temperature drop. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. + """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/heat_port.py b/src/mesido/pycml/component_library/milp/heat/heat_port.py index 9ba7ef285..c6f795650 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_port.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_port.py @@ -1,12 +1,21 @@ from mesido.pycml import Connector, Variable from mesido.pycml.component_library.milp._internal import HeatComponent +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically +@add_variables_documentation_automatically class HeatPort(HeatComponent, Connector): """ The HeatPort is used to model the variables at an in or outgoing port of a component. For the HeatMixin we model thermal Power (Heat [W]), flow (Q [m3/s]) and head (H [m]) at every port in the network. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/heat_pump.py b/src/mesido/pycml/component_library/milp/heat/heat_pump.py index 5ecdc6786..23d4e7ed2 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_pump.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_pump.py @@ -1,10 +1,12 @@ from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal import BaseAsset from mesido.pycml.component_library.milp.heat.heat_four_port import HeatFourPort +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan +@add_variables_documentation_automatically class HeatPump(HeatFourPort, BaseAsset): """ The heatpump component is used to model a water-water heatpump. @@ -15,6 +17,14 @@ class HeatPump(HeatFourPort, BaseAsset): as a demand, meaning it consumes energy from the primary network and gives it to the secondary side, where the secondary side acts like a source to the secondary network. This also means that heat can only flow from primary to secondary. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. + """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/heat_source.py b/src/mesido/pycml/component_library/milp/heat/heat_source.py index 9a776d5eb..f2d16eb33 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_source.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_source.py @@ -1,10 +1,12 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan from ._non_storage_component import _NonStorageComponent +@add_variables_documentation_automatically class HeatSource(_NonStorageComponent): """ The source component is there to insert thermal power (Heat) into the network. @@ -15,6 +17,14 @@ class HeatSource(_NonStorageComponent): the heat losses further downstream in the network are over-estimated with T_ret where in reality this temperature drops. It also implicitly assumes that the temperature drops in the network are small and thus satisfy minimum temperature requirements. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. + """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/heat_two_port.py b/src/mesido/pycml/component_library/milp/heat/heat_two_port.py index 122116c2c..c4061e6fe 100644 --- a/src/mesido/pycml/component_library/milp/heat/heat_two_port.py +++ b/src/mesido/pycml/component_library/milp/heat/heat_two_port.py @@ -1,13 +1,22 @@ from mesido.pycml.component_library.milp._internal import HeatComponent +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from .heat_port import HeatPort +@add_variables_documentation_automatically class HeatTwoPort(HeatComponent): """ The HeatTwoPort component is used as a base for interaction with one hydraulically coupled system. As heat networks are closed systems we always need two ports to model both the in and out going flow in the system. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/low_temperature_ates.py b/src/mesido/pycml/component_library/milp/heat/low_temperature_ates.py index 161211a5e..6e4255f71 100644 --- a/src/mesido/pycml/component_library/milp/heat/low_temperature_ates.py +++ b/src/mesido/pycml/component_library/milp/heat/low_temperature_ates.py @@ -1,11 +1,13 @@ from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal.heat_component import BaseAsset +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan from .heat_two_port import HeatTwoPort +@add_variables_documentation_automatically class LowTemperatureATES(HeatTwoPort, BaseAsset): """ TODO: This model is still under developement. @@ -19,6 +21,13 @@ class LowTemperatureATES(HeatTwoPort, BaseAsset): The user is responsible to implement the cyclic behaviour in their workflow constraints. Meaning that the milp stored at the 1st and last time step should be equal. Furthermore, due to the implicit solving note that the energy out of the ATES should be 0 for the 1st time step. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information.. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/node.py b/src/mesido/pycml/component_library/milp/heat/node.py index 1c767077f..6f9c765d2 100644 --- a/src/mesido/pycml/component_library/milp/heat/node.py +++ b/src/mesido/pycml/component_library/milp/heat/node.py @@ -1,9 +1,11 @@ from mesido.pycml import Variable from mesido.pycml.component_library.milp._internal import BaseAsset, HeatComponent +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from .heat_port import HeatPort +@add_variables_documentation_automatically class Node(HeatComponent, BaseAsset): """ A node is the only component in the network that allows to model 3 or more flows to come @@ -11,6 +13,16 @@ class Node(HeatComponent, BaseAsset): junctions where multiple pipes come together. The node ensures that the heat on all ports is equal. Furthermore, it ensures that discharge and heat are conserved for which constraints in the HeatMixin are set. + + port = HeatConn[i] (i is the index of the port) + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. + """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/heat/pump.py b/src/mesido/pycml/component_library/milp/heat/pump.py index f6af9fa80..6cd7f301b 100644 --- a/src/mesido/pycml/component_library/milp/heat/pump.py +++ b/src/mesido/pycml/component_library/milp/heat/pump.py @@ -1,14 +1,23 @@ from mesido.pycml import Variable +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan from ._non_storage_component import _NonStorageComponent +@add_variables_documentation_automatically class Pump(_NonStorageComponent): """ The pump component is there to add head to the flow. We assume head can only be added for positive flow. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/multicommodity/airwater_heat_pump_elec.py b/src/mesido/pycml/component_library/milp/multicommodity/airwater_heat_pump_elec.py index 2e4b1044e..6a2ec7c56 100644 --- a/src/mesido/pycml/component_library/milp/multicommodity/airwater_heat_pump_elec.py +++ b/src/mesido/pycml/component_library/milp/multicommodity/airwater_heat_pump_elec.py @@ -1,10 +1,12 @@ from mesido.pycml import Variable from mesido.pycml.component_library.milp.electricity.electricity_base import ElectricityPort from mesido.pycml.component_library.milp.heat.air_water_heat_pump import AirWaterHeatPump +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan +@add_variables_documentation_automatically class AirWaterHeatPumpElec(AirWaterHeatPump): """ The air-water heat pump component is there to insert thermal power (Heat) into the network. @@ -15,6 +17,13 @@ class AirWaterHeatPumpElec(AirWaterHeatPump): the heat losses further downstream in the network are over-estimated with T_ret where in reality this temperature drops. It also implicitly assumes that the temperature drops in the network are small and thus satisfy minimum temperature requirements. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/multicommodity/electro_boiler.py b/src/mesido/pycml/component_library/milp/multicommodity/electro_boiler.py index efc76a351..b24c5b799 100644 --- a/src/mesido/pycml/component_library/milp/multicommodity/electro_boiler.py +++ b/src/mesido/pycml/component_library/milp/multicommodity/electro_boiler.py @@ -1,10 +1,12 @@ from mesido.pycml import Variable from mesido.pycml.component_library.milp.electricity.electricity_base import ElectricityPort from mesido.pycml.component_library.milp.heat.heat_source import HeatSource +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan +@add_variables_documentation_automatically class ElecBoiler(HeatSource): """ The e-boiler component is there to insert thermal power (Heat) into the network. @@ -15,6 +17,13 @@ class ElecBoiler(HeatSource): the heat losses further downstream in the network are over-estimated with T_ret where in reality this temperature drops. It also implicitly assumes that the temperature drops in the network are small and thus satisfy minimum temperature requirements. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py b/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py index 62124ebe5..08eade878 100644 --- a/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py +++ b/src/mesido/pycml/component_library/milp/multicommodity/electrolyzer.py @@ -9,13 +9,22 @@ from mesido.pycml.component_library.milp.gas.gas_base import ( GasPort, ) +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan +@add_variables_documentation_automatically class Electrolyzer(ElectricityComponent, BaseAsset): """ - An electrolyzer consumes electricity and produces hydrogen + An electrolyzer consumes electricity and produces hydrogen. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/component_library/milp/multicommodity/gas_boiler.py b/src/mesido/pycml/component_library/milp/multicommodity/gas_boiler.py index c4d631feb..d3701eb82 100644 --- a/src/mesido/pycml/component_library/milp/multicommodity/gas_boiler.py +++ b/src/mesido/pycml/component_library/milp/multicommodity/gas_boiler.py @@ -1,10 +1,12 @@ from mesido.pycml import Variable from mesido.pycml.component_library.milp.gas.gas_base import GasPort from mesido.pycml.component_library.milp.heat.heat_source import HeatSource +from mesido.pycml.pycml_mixin import add_variables_documentation_automatically from numpy import nan +@add_variables_documentation_automatically class GasBoiler(HeatSource): """ The source component is there to insert thermal power (Heat) into the network. @@ -15,6 +17,13 @@ class GasBoiler(HeatSource): the heat losses further downstream in the network are over-estimated with T_ret where in reality this temperature drops. It also implicitly assumes that the temperature drops in the network are small and thus satisfy minimum temperature requirements. + + Variables created: + {add_variable_names_for_documentation_here} + + Parameters: + name : The name of the asset. \n + modifiers : Dictionary with asset information. """ def __init__(self, name, **modifiers): diff --git a/src/mesido/pycml/pycml_mixin.py b/src/mesido/pycml/pycml_mixin.py index 92101d808..1579dbe9f 100644 --- a/src/mesido/pycml/pycml_mixin.py +++ b/src/mesido/pycml/pycml_mixin.py @@ -1,7 +1,9 @@ +import ast +import inspect import itertools import logging from abc import abstractmethod -from typing import Dict, Union +from typing import Dict, List, Type, Union import casadi as ca @@ -18,6 +20,129 @@ logger = logging.getLogger("mesido") +DYNAMIC_NAME_CACHE = {} + + +def add_variables_documentation_automatically(class_: Type): + """ + This function can be added as a decorator to asset classes. It will update the documentation + of that class with the variables that are created in it and the classes from which it inherits, + based on the self.add_variable() function. The string + "{add_variable_names_for_documentation_here}" in the asset documentation is then replaced by + a list of the variable names. + + Note: This decorator must be added to any class which may be referenced by `class_`. + + Note: This function will not work properly if 2 two port classes have the same name due to + the use of `DYNAMIC_NAME_CACHE`. + + Args: + class_: The asset class it is documenting + + Returns: updated documentation of the class. + + """ + + def get_names_for_class(current_class_: Type) -> List[str]: + """ + This function checks for the variables that are added using the add_variable function. + Using the cache the variable names that are created by inheritance and port names, + are tracked to recreate the full variable name. + + It will follow any classes up the inheritance tree and it will follow any Port classes + recursively. The variable name of port classes are added to the variable path while classes + up the inheritance tree only add their variable paths to the set of this class. + + Args: + current_class_: The class which is currently checked + + Returns: List of variable names + + """ + dynamic_names = [] + for class__ in inspect.getmro(current_class_): + if inspect.getmodule(class__).__name__ == "builtins": + break + ast_of_init: ast.Module = ast.parse(inspect.getsource(class__)) + for node in ast.walk(ast_of_init): + # Look for any function calls that fit self.add_variable + if ( + isinstance(node, ast.Call) + and isinstance(node.func, ast.Attribute) + and isinstance(node.func.value, ast.Name) + and node.func.value.id == "self" + and node.func.attr == "add_variable" + ): + # Now extract the first and second argument + # First argument decides if it is a port or variable name + # Second argument is the string name + if isinstance(node.args[0], ast.Name): + port_class_name = node.args[0].id + if port_class_name in [ + "HeatPort", + "ElectricityPort", + "GasPort", + "Primary", + "Secondary", + "_NonStorageComponent", + ]: + # Follow the port and retrieve all variable names for that port + port_name = node.args[1].value + + # We leverage Python's import structure here. If there is a reference + # to a class in another file, that file will already have imported + # the necessary class as well as run this function. + dynamic_names_of_port = DYNAMIC_NAME_CACHE[port_class_name] + for dynamic_name_of_port in dynamic_names_of_port: + dynamic_names.append(f"{port_name}.{dynamic_name_of_port}") + elif node.args[0].id == "Variable": + # This is a variable for this component, save its name. + dynamic_names.append(node.args[1].value) + else: + raise RuntimeError(f"Unknown case:\n{ast.dump(node)}") + else: + raise RuntimeError(f"Unknown case:\n{ast.dump(node)}") + + dynamic_names = sorted(dynamic_names) + if current_class_.__name__ in DYNAMIC_NAME_CACHE: + raise RuntimeError( + f"Unsupported situation. Already generated documentation for " + f"{current_class_.__name__} before. Possibly that 2 classes " + f"(in different modules) have the same class name? This is not " + f"supported by this function." + ) + DYNAMIC_NAME_CACHE[current_class_.__name__] = dynamic_names + return dynamic_names + + all_dynamic_names = get_names_for_class(class_) + + # Format the dynamic names properly + formatted_dynamic_names = [ + f"* {{name}}.{dynamic_name}" for dynamic_name in sorted(all_dynamic_names) + ] + + # Find the indent that should be used + line_with_hook = next( + ( + line + for line in class_.__doc__.splitlines() + if "{" "add_variable_names_for_documentation_here}" in line + ), + None, + ) + if line_with_hook is None: + indent = "" + else: + (indent, _) = line_with_hook.split("{add_variable_names_for_documentation_here}") + + # Insert the dynamic names into the documentation + class_.__doc__ = class_.__doc__.replace( + "{add_variable_names_for_documentation_here}", + f"\n{indent}".join(formatted_dynamic_names), + ) + return class_ + + class PyCMLMixin(OptimizationProblem): def __init__(self, *args, **kwargs): logger.debug("Using pymoca {}.".format(pymoca.__version__)) From b0b893f7d70b244902b6b8c8a7ac1766eb0b0856 Mon Sep 17 00:00:00 2001 From: jarsarasty <133882881+jarsarasty@users.noreply.github.com> Date: Thu, 20 Mar 2025 15:51:46 +0100 Subject: [PATCH 259/275] Discounted cost documentation (#261) (#262) Include discounted cost documentation, correct documentation typos, and edit some parts of the financial documentation to improve clarity. --- CHANGELOG.md | 3 +- docs/images/Discount_factor.png | Bin 0 -> 52294 bytes docs/theory/Workflows.rst | 10 +-- docs/theory/asset_sizing.rst | 2 +- docs/theory/financial.rst | 94 +++++++++++++++++++++++--- docs/theory/philosophy.rst | 2 +- src/mesido/workflows/grow_workflow.py | 8 +-- 7 files changed, 98 insertions(+), 21 deletions(-) create mode 100644 docs/images/Discount_factor.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d2711c78..8f9f13ff8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ -# [Unreleased-main] - 2025-02-07 +# [Unreleased-main] - 2025-02-24 ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class @@ -14,6 +14,7 @@ - Error check for NaN values in profile data (csv & influxDB) ## Changed +- Updated the Financial section of the documentation to explain the annualized discounted costs calculation. - Write output to json also saves the solver statistics. - Updates in asset conversion from ESDL to pycml; gas and heat pipe split, generic conversion better specified. - Adapt profiles for heating and cooling peak day separately & add test case diff --git a/docs/images/Discount_factor.png b/docs/images/Discount_factor.png new file mode 100644 index 0000000000000000000000000000000000000000..a0ffccac9f97b93dc094a77199dc48612bb91a84 GIT binary patch literal 52294 zcma&O2{=^m|2N*IA`y`#OV&b`M0T?8gqgu)Nysu~U$R$->}z(iGiK~lvM>mnv(vp zV<%C^jvYTZdm8*Eh<0ig{CC_{Usd5)X%Evp_~Dd|yte$YV-?Zo_AN-j&!kRj#;(VX zQM5t-j(0c~Ssgp};fuPGJnXUA(%2ba1NiULtA*;d+pqG&D?=V$uqq)R7B&ezNlQC4 zar{T*U2|HoAN=eT&Bxh&I4ZYU^4zS_g;0pWEE2RHQYiggZ(!+<>>l+#-r>637)KuW5r^xa1>dl)MEi5cP&ATB>EbT8? z@N;vYj*X2Sxq0+S`#GI-@u#7oXO~ls{wO2E?CtbzIidUS&K`C|qJ#XNKYahMk24kbitFDhim=q}=lpXrujq-PM=z!eZH&+bP{p47 zmWo5RON?9bZ822R?vW3Nfup!L`W4jF82M4yi%)Gg*b{ik>4jdk|CZv&GA|oK_4dG% zh?pA~g76_L`_cRV^R4hVz4$LZzkWT22S+nr+8LXjnQ0vxYd~ztywq5YyeuZLj=F)7 zpnook{s3Lu(#@l9g}d)*nV6)L*|)T`tgfyWC5kOi(MPCoR904got}p0Ue?pB?(FQ8 zzkff6>|u6x_DJGQdLk2f8zaH`?-8K$Moaps6v(oOJKZM1H80oK zjH)zrbP!Lm?u*1(trr+gi%1d`XdH^#)tfI0=cvF2Fb5w;Ru*`li$Vj17ERw(!(}&a z-2C%%&ia*>d*k(9BRB6&H2TdEO6W#MM?d9j(qR+v9^@z`=tWyI{qnAm$CA=aj-oR{bQ`IjX+4uu86vC!~uPuB&9yP*@;-f zWLrpInYo;jvhr|4a@V6bW6u{$>vVi(lF7)(s&Dc}T0}x8Jtv)zewt@CP0X?VoM8Q{ zo~(dFFM|KKccdmh%Q$qp@9o>i+9MbOEjyx$QKHig+v9EEU-(RS8j7Db{+^iq;I-wH zV4ArYvP^T|pTXV&aAtGAO}Ge(sI{CzeCuknzxF|JAvFe_6@OJ%)~`W3?bhS%F;85{ zC1Pw>lDR(vnCuHIKl@Z!v*9HO`(0Z#wX>y-yY__fm|+=Ace=#I3`uu=>zmVaV|8Me z1WbxdN!HfZU{~XtH1Lh&hNkYc)YR0~B}ao6rC6Z!+Hrzqpg`MTmQrrNoJ?9Vgd+IO z8!<$gStJfMgxOw?!tQ)sRPz!<=)-)N#onGx~ z2JWu~yFHOR{H1u%nt$~&0{I6}GB3lVy9Uaiiz(uW%Z zy1egv!9t(=T){DdLxq$z?vnNO^%+&%58jHM9eMreZg9w{v~$I}S+e#Ci*+lF1ISm6 zy{OW+Dh*Nl`@Z#SU3|a5U4j2fpps(XiZ9;+7f`fkJ<%{fQ26~@xF8}IB{u4G(xG7! zv1!)GX*_UMj*|4X3%*xj#L7yyAlhSj1Rnh6c@LY|` ze@c?{-rKit7i#ylpgnWb%%tFMrnHxSB-+^e!Gj#fiAH;vt_ssMy_kauZhM-qq{*0& zuU)~+i|J%CR3D4y)@~(Y?^3a{M#~4DW)l^Kcdy{$st>*fQlj3AUor7y6|d4`#b9u)*mim^L@d#S9mg&JW9joxQ#9dn-*H_*f2tD?@PHdIxKOiOlbr zG{?ccf#ol6zR*xaF-hcPBx*m44r=Ja$K^I1?rLI_O2|kJ*8DV@S2Y=5nLaqBhhNSk8AEXRG}Wy8JWQrKIkX_%LK&mhrA8BHe{=vj;H6 zw6Kys;arfz-n%_g8int4qp+7r_vbkyIgl-Oi?srbnn zS8{&2h~L`=#j5!0wW{yq0l)p=FeR1GR%AIrMt1S*VJgHte5lslgjal%h6Tf2siK`H zD+{_2o7Ps^hdGl@r_VE5)votQX@i=Rc*RabTbod7Bx2Y9Ze#0J@PifxOa&RcM>&=u|s3^S=a$(b~a^r^A znw7h0Pj`!AMmU&1X&>daeI8KJ(b?4Q%%o}0#N2ancNZ0P93OS-VD=oG+Z)gnY}iO& zF{W_6*8k<A!_mva)iDN(6m2E}d-%x{C&Bw;pNDymGJ~EQ+<8`;=Xf$Y+RNoQbij z1w~b>v9Xa`PEKwB>>ZE1_kVT}dX>fp(oVkG^-68S)K1uME)W*>M9+xE*VWY(gXvL_ z<-e<5XI~e#o5o=s*d=cDl&biw9fg&>?rDaR#HJH!o&IcX=to~(W2;D1^baK?(g_t# zD+KzdmUr#2O4IR8W-gO*!_WSrDYQ;jY;4pTnQV+@Y@av-NrFZU9h$5T)|Rk6wPt2Q z%pp|&{i4qeZoe<;N;pq=aC2NPmkC>QxCPIeC)3t0Wlf%R~lMc@4^Kei^9C|FttiSP<`evh)wubjSR^1${lV`1Q=D@ z#-^U+&+{!>dUJ&XRe2-xx>n+XkbC0zkpA(?WmwZ*T$FUFA-wm;&RZfYIowB5r*>z)#WeE4jnd+Dl<+ytO-xX z!*hxw@S0VC2PNu!WRD>qJnil&OIgkBi_jVC4bv0tQ+m3eus2xC#eS;>^XBNIFvhl2 zW||sg8{-fbdf(9-mzo)gVSmwQ5feGer!Pe?OCfwb zN^5Gw$ysGhd`?SmkGigIY`i->*sE}x*T>?v)I+cPeaw`(Tc_cE{OBBwwhZGVE3{SO zC9fWRTe0)^b|-gtLgw)hN>-I7|APy(w80RVB*-@IF7VNEV^x*22h9Eh$GR!VOg|pi zo;{Tuh;-(bg6^Z9DK`g#Xcyzs=(YZ!ezo=7!v4-|mf`YMo%Ckhkl8sfk58RCb?;;H z4RMd9 z_60&og~u}Tv6q*{=W+|$DBeyPT4v8N_aqOSogWR`X0)N+TT3qloA&jCbJj*dp#gZ} zC7BgsBH(uenHlv|P!MKwaj0ZILCRyPS#-!G*Q}!@@C;$IzFyjGWtf~8jK zFN%%1UA*NmT2y-1Z@pWL_f%K!x9`z%?PX1eVGK7Pe2v$Y)yvXsEj!ilJj$Y5XTzUZ z-ps~#1TM1TSZ)+iXSaO`J*ZzEA);$r%pJ41uj`f$CN{Pzckd)lT z=oRgEq>`5sI>k-7X9_>z2%-tne~r1=f1oVto2w9>tOLAkCxrN zcDUX2+s?3;%Yf6GMoZ=EyO;cT2j`N5L@Qipb!h15azPy_G!J0{P+0mva%vaaU=)h$ zRo*t*_Oa8pYsB@viL(k45EC;bktVfso$XQ9(~I@MP2M-Ey4X-=ZH2v-c(kt+$$kJe zY%*^H|M}_3GeXYal$J|f6UmjVnc*p?jpHza;V)iDpi(XEglY9vzD>z8@W;t9pG zFMe9wwAVK49IEhKF{|JEQMbTC8t5W0>9n&py-=%loL^?lfLNDE!@y9Cw(;NSQ+4w6 zG|YW+@-+D!1GUS-&~WWI{~0TB8_KVpMn_|%{>EW!Q1UthDW8nw%;I9nn0sm5(;`f6 zrCm&ZXUDI-y)5|KN)ZOCx?kVIe-7JZ6>p;6jCrJakk|+5sPs@@yx8l-EF7$dXB6Sd zbom}BmIJQbK2J-*4z8vKAcM%b&x(ww42;;`X=|p~UjE>!_YoJgpG!|aMyCs%!lRhX zOn)7tII?KCbK7~bB6e2l`+3dyzFbu}eXM7asB53iL?11Qw)*mO`}7D7YewMj69%TuwT`mC%R z#%kT|-#zL|;89akyEDYgj{4sC>)W}_0~QGvCE8oDs}Gn7s3Lme($t2C+8^2)a&=Ne z<)sG8K%wqXDMCx*a~Tq+LE96<&Z2+MYHh01zB@HKI@)6>czS6m0WeE`8Yo>$`Y}JJWyHPBiYC0c*ZeQ$!8i z+EHxy{%w_Yt4PyAos4p;PHI~5535*!?g=Wl#4SF&GVRf2cce<3+{ z>E7p8+2Wi10cifEo$*g^83rZv?1-{Afu6C+YL?Sg{#OGb%-^Kevf?Z-u6jWGV^ewS z>Ryw2zAC8&b-lo;;^#aoozo39I)>}tm1#G{RJ%?mPU2HD=1ev}c^RExEL4D$n%D;Q zv*20{b1fUZH*4?7N1~%Gx}z}DdlIy95T{0_^V7`76Q3K_Kot>8w zRGAx?qr#@=1?~<0Ya!P713sjEkq|+#{PM0t%jXJ9oXu=l zczD}?6C!Zt!~OZ1IO2%s?}P1JpY0!@*zt>r{PD_YN67bU*RFl)VY~!JN6LUI?y@BWAqdJ`h4Ni*Pi4`WJ(kbV z{6+PDtC9xLY8>@hX|Nrye@k?E&FcS4KKKsC<2Wg`B?LemK!+YI>3S!SrTGP*C%S59egO zH=5(PG^JB?G{x7_^>tj z9NcM{h`s!roWW(+^?|ju#k)`{`>;8{Z3(>=8*_c3QBjB?EGLb}k5S_>P%nCmR(C*U zv+PNiSnx?G=gBUWwKS@_+0bm@49ja zr*iv3d*yyJF-v(U)p;z#nq!?R0Rma(=;h)-&@u~qd&&YOlQ4%+C(gQHuUGo(KI?Cf zyi9N<&8d3Ot6{W11XQj^Ts~kdFm(3+;aHK0)9s$0N z@9u_k1nD=wYim<9jUVDgb!jvqNG++$gHGYzy3T$}G&Iv2P?)Zb5Pz9T%}Xn)88@Fm z{mY6|r|~uBc>V4|39e)_q4>C(u5J<=-=?kOjE-%pm}91Qwd78#pn~#pA+CVVSi$Wnse<qEom1Q7cW!* zk*5G!`gQk(fr66?D4F1`@#@GeDEl-{t2T8cN%L?K2lKK9z;_9F_Lh1!S(b?4a5_^X!NKgR4IjR7ex98gO1;`EJ> z8=_o&OiQ3{k2maeM3oEpy0&*9<QNk=K=i;(}L`xJCr%RdH18-czFyLmX?M`EEI!4rkPcUkNh-XXg)@%c;H1E7vusJ-l?6_cns7NN*DwtN|2J z|Lub#{hKKX!w@gi)8F4en4p9?f4%zr|lj1L*BdMr#^p)D=9d5 zt0Zk@=$~5^ijT19mY?%8{(}udd+r&zUN{}_2W_!KC0qUvkJTIF+&lvm_d=PI0Mdt; zHF&plcc1@^|X<|4-&R2B_QIc!QLQsp$vu$c`vx1No|r3X8VW z%M_Jj&qdE<%bA`RX624o&w%P`?03{?O$C_};(ueY4t2}7OaOx$sjB2Ru2dq?S!6rj z+ebqq@^KjpJe44MKB4=(LahmR^LijSga6rSo8Zovm+m-T&mdU8`b;taNU!j{7ZTvbY1 zdQJP0Y92G+pUR`Y>)i{kqh7NayyZX-@;iI}JlsHwi@XW!j3cUppioe>b{g9ZGkw8a zOFX)3MThZXzuVK9fGRHp0&tMJ~m$C%b3f)gy- zp2NlOb8f@jM%{-@M>1w-yZFkKoSe!T&+h~K21j&NzY-r?3p9KUR7K1z#8dvy<@wp* zAk1BckMA6ZO2i!lB|uov{uH^Y(JF3k)wK>>+2w$8EM!8WU$E}ZA>akM1<8l2ZIrx& z1RI^1DCElQsI`?<^Ux68{QNv`%9r?kOH;6(7hdK6wvSzHLC~~Yv8@(_e;prhRGgU- z=LH+S^}jZJ;JP?%%;`bKPGs0wQtiFEVVf?~H2$>g_0>--JQ;Ybs zM(W`83+Re{Zye2m%)Ad6^J74#1{%3<;xz&#hZIG` zv;YklZp0@c3VW6w5!NXwxr5AipZg>qtov3~?d;+Ru4MNuva{pIc*EVuR^x!EX&xZx zO8`HUT$RWa+A`4}8>asUq!%^D@I0Zex3cP%;D59q#%u5Xzo0VXM%u%B?Nu$ zB`#81X+~pAeSf|mNeK>mK$;Fw{FY@P3-px^nuD45?!r_lOL&|sfdkrR{AQ+pl&aJ$ zIpc>)`KfjCY(q{(#&!IgI|GzJXU}M*PCd$dxi5axw#ueg1*om5CwNG-q^tEbys(u8 zm!HX2Z4H@di>h`=+H=-Bf9TuWi*GU@!2y7P)*$tJdIUR)31 zN(D_CF{u)++=qvIj<~394KtLluQd7THi`q9aS++lDE1$VdEfSv@;La- zz(iSu1~3nMdFMJ|UAtix-A|1Q@2F9eBM_umY`sbh&^=Mr`dS@h+}p zIvx~d^LZcZclu$yYVK-piM8%1U|k&Vh-Nj+-wzHF2nYxOOBL z9V`AcOhx>aYvv`GXIz^kCGy0|F!a^VGIoz$@8q>GsVPV~E|QM*+60j447 zHTdqChEM#EdoBL#U*;Sb+Z8SBZt(hK3|S1E)E?#s#9+u)l`3)kTz)*9P7o1L9NWNM zSyhFTy8ff)I|Z)d)n*Lar`uDq@1 z;hn_X1som}uH)H~hgsam%|wzQVq0Ix^^$OoBRV@(H09^x>|Ehp#=^oXyfAIQqAWc-8tG4*?u2z(R5rn0)IqZl?Go)z@AbWKZaBn zv;_fJp0?O#fY#8@?^<_kfTi@cqJu>dI2`cK-b%a)QUYT|WnpE-85b9~B+D)~yVF4x z@atG<#^Gs3F~?$DrXGEKaDuLf{Oods3Q$jw#cc7#EyBu=@iA;BzjWcPe-jw+!d|tO zGdwDN)piD#=!AUfR?1yFU&4b4~VyqjXU1OE5sgn+daEER52I_pyuUsbOJDW zes*>Rl*|xN{a~96!%{iQ;g^t$43%FiF#2dfsw5lgY8&2NKV+)DkMhr6_ zp8jcCF2KDJXG0d@?XCe)_QFo?&dLPkBU8>6t0b!Unl?s`0?*BU+`NX=;M)G{%gpGXbm2DnR)a>)yc)Zc@gB!c~@I{%! zGoHe;$G6>rT(5oD7IXWzHTDh9I2^`-B3N#hbDNuasAoxemX18U;~`S^5fI=$5N^PI z_X6@zHE~U%-;C_{!OzPGzu#O)6JOGH*|i9w_v?4jud}a6UOayBOKWbt_4;l5nyKFx z-u|Zgw;xk%JHdzkUDJ!){M^tSny~!)aBqb`qpUt64C7ICD9vwf2T2M-&w{?QO8?K5 zrr%Kzk6#WmOMEqBdxAZ+sADSm;zGssLOuoVD*V|aOsHtRU4F}TMk~?Y`upOiPoD-l zzy^|6`XPOWOY>z>!w~T3!vSiTM3?{R;?4bc*0BDTdqR@zMsv;!+Y4#^-HVq#xgT)I2+<_;UK^ z#(GH4@cVtnNVUkwK4h=Q1FOhCTFG!)y&#yYn5`ufXJ==6S>Kv1^2a~k&VHSre*v@` z%lZC%Bx*TsT4BgMput;k`Nxkapsh~=j6^8SWcv^Uh}daEL&NHa!}`l!T2XD2TgD|T zQ-Xp5GtJy__j3rAcF%7+L})`3$51U%lT->(8KJtshbJ05efktSGM5sF=h(mP1L>8Y zg9f_A4PkP>zMfpBC=xa0P>p&won#&bEVap&Gpz3*NC#%Eou@d3@zvoAKp}e?9?gZx zPoN_{yB>ZeayVFMCezeD0pib0nw`Kc5s;q`rZc-UTbZ8_qmevh=EJ|gzklJvg(o*G z+l#!(MWNJNpUjC z)2>ax^j6c>et%wU^a((v#eE7qTED6oOjD zSyEjDBn5qK3B=i40wvJLm{UYMS!go-31=_YROce!3QlAC&LS%Dj+k9PC+^MK^YfQs zbAUpY+i=Nyj@CGTe(PFDmeni0P7Xwd+%4I%g5y>#ZAn|y!r z+)ok=3NSk5koL2}WBTEXtcR*CedMRKY)?iDv>^FJl?Xi1TIVnSSG>Uh!Q)P7S{<+r<`musU>BXr{i)#T(P`pPTc!!WZFllUyn`ThfaqIs#N`!5h;DZaI1l=9Np zB|%qZm^0mPXF3U~xnoqDh3=NDe0hoWuD`Nc>D?onkS_0Y$SFaFN0m`wooACykr_`Q zSa^Qv_305_y+#cQh|=njWhKy&m!LuV!G3BL>>7H#Tu(Yjq=yljuni=a^oyXNQ=`ru z%=Sv!3h}23FqrE~s#!9NOTb+v_FVtbxaR=bi@}qstbQ<(Pu{vJ#04o=`eXDBL~ukqC~h@q;gCp?(VMH9?3Rw0iz|jJBnO>4?xmvA-0J3znFB&=%~p6 z$Sw`$CIa)Ec8Yd*I;PAN4kQBMl(s0aBdp09j87Q5{}>&%qEH#R89xscS>Y7LsCh7- zW|{2l>_$vy*ETjVtI5LFVZgleSQ&pL93nXYY_(!sdS6pOz`#jL=~psUP|8SqW;GA! zEl_{rmR?K;BIKDF1N-Y&j_(<@HS| z$;gDelW!>QU7tPF!UB&)8^m64^Up6k2!Y^E3J6#gfD1N0=gBo+> zf1A$E(SzJMREUDKay=QYl^0gLIWiQBGz}wH@_%+eRf-HsWMPhv&0kXsZV#j2xvx)E ze1a#D#o8~KX6_o+b7g$?A%FSfpZ5u7R6Gcm{a?<>ifKqi?yLzkZyB6e0nulBMr=gC zI#+jI9;Z82Sl>jcF*9PW0mLMJfp`{B#O7hi`BllA-?t&#hPv!Y?gWV!q#yl;*gjd`HETFuFfe55~ zx}>{C-AVNA&R7oB!32e2{9bOfY%7SJt$tFZwDU~po|s_$-Vxow5iOk~8=#~VFi(}1xi2xIVP2(FtiNQ2p8yLP4M=;+|&`5=N}ADM1eW{CQ{a1#-Tu_i94 zGqbk|t!&QIB7!1(9&v;Xto6 z8H#^hgB+g6^Y$^K**S;p;P1sxLb(?zfcjThsNgbol)W3yO4vvuds)`7#Rz0&{rp!d z1P~Con(2S&w7DA8X{%(PZhh!rM=Xx{6WE+OJO23l`RYesE`eOCEGpm@ngNK+?6jdL zaDBL`iyfdK7OE2C82)Hi=U=psCbSu_!|K|e;(L9 zB+u`v5_x$hveG}S9e~oHq;#Gf{Mr~CtLqD@d*Zy)2`v&8`kNmF6cmpB3{5;{68p=R zNrqJYov#ATPNXq}M;s|tqSwJUO--{Jc`2*?Mbh>$;C>hJ(z0bh0QX4#1m6H;t_H@E1z5W9v9czb1Rh_}^I2(>c$uESdr z5E><9X7C9JPynN6DD!x)%r=v>j7$Ys^*GiP8Bo`l!D5$T=ir$9H^4w*j4BjJy8Bgq zed|5W3}1%4qj40rJ}ib9i<^>8j<`Od3odrbmQl=s9H5Y82B%-E78{F0lzMu4XUWM2 zk*Facmr*e>MF6bv^Xql1B(m&*xBxg)O1aoJf+2@K1FjMFJd z9c8tKED6kf#z(vE&~FjGM`<+R*+r-r9~n#eN5&GEzw77&5c#SBNzTdH*^nnsjzuus zJPpZcL-ws8XIr4sFVL`|4}>cwVBK>-Im&&YX^b%2sENln+sU}qR&pqKc-#Wc(dq}m zCR_eXYa`a2H*VfEkSSZjLCG9?VXL#xo;~{toan|5{=2Vj4f&^R!~mc)0RgXt{~cDe zBCyEGlCs8r*&Ki1DpYmxDoCaTrm{Wxt6AMh(Yp5WL)9Nk1`h+_mm7~pMBE{Hs6;RO zzxzs))6>B~w90<<>h>Pq^}jM2guKGSl2uqLrsNz@$&PC@zFAYVO%<|el{l`R2{ONg zh0Vlmq-q4c^Da)KC{4tUnuswDJb(FC(I>7UtVOTJvmb!$1C>gLRyNCPhGA*A>I`5g z?*QM1C&xD%W=W(-**9d}O^S`p)~|EBvx9mfqkaaGoEKtxdV0{0h&L%Yel*KQ_&|zr~uGjrU}Efy)Dg-yU9e{kVt|-5FBb8@0Dcf~oWsp-u{a#mBmx9~I@JcY3 z(n~jBWLg4@$V)D_JD1D*gy_j+Tw-l~z-7N~zFzU|OYf(JIN2JPg?KbJ4|CpGEzR?+ z!=sZI+%$clNd4jaw0~{Yv7%m=kqM4jqC2MzhXy$05+x>LMM)Vdxfg-BdZ$-2Zqsm0 z7I&T6jhB7#lkDLy%VpzXtC6n|R{(acDRvM25vqO#S4+*C%uo_Tz^04_L4-Sx^q^Fe zsHi?!a_E{_NkpbP)umz`o&#MUHYB3pMZcUu38*;5jc-8xhvdha z?Qx%umWDs1az@sq=5Ol&d=c?(<;7C$#>fh)t7- zRsa%17JcMORXx-v(SMeTp)Aq3b8*ef+S^i@laocxp9u)vnPh=$J6QA@D1={tC|stH z2Ec`priO<85HH6h;(x~$C(B>12$r$uv8jDQX?JbYRr$(6Sm#l^UUI*MI`I)a7$%f} zLkQFAg*o6uqcODc%>Y2=wxMIjU-QA^pqCa+x}qmv;CU(VnTiO@1u|C|CurqtKh zwm%dRfnG3Z3s(ka9VAhSl3mS`142Tb{vpcm>(et%YkB#}nOXq}IOobzZDL1fhnjmw zm-OCJRbi7kX%3L}3rFN2W7zc=7oS2wq8^q0%J=&^4`<91`+~lS`~}dDsKr6@$eYME z@C)7A)^_r*Q3b=tK7m4^qVTeUf=P8RKhg)nC%8DQi9qaT8DW0e%BqjkFA&ynzF_Rg z9jpNIsd;01vO9;<-}5yr)oB|L#vR;Hm<9gaTxHUscAlFSSyFk}^Zvc^GVM^Y!Bw1! zPT5e2=)+BhAq=5%ZRW8df=bxG{Q(Wv)Rj5nmJ`a=p%ad7s(Bgouem9Tf?&jFs1xAx zXCvAiXzQ4gd0S5>=*ar!+zS+O?wO%=LZ#KU!oc zlpLK9PqjIjWH2n6{a$sqXDyC>l)%QM{mFrZ{r|uoAoFMmsPox#=K@Pg_y7WN2Er8^ z2o=?}-G3iO3-S+XwS}O80Ltv)_@>SR6| z!BSrRN9T}89^gQ!QYM*Ny<;R&AH{Zy9OAbn+n)i6!@8lj_JWm$)&CKb+zrkLZ9AJN;tJ z)Y~9wFTd#qA{B>9x<8hB0hmWYK(DIVu=-Z1>@F?^DhDy3O zU}xA}UAb_D00K3g{v7Z26~xVoDCU844HR6f#>2zB5{v5s?aZvcq**F0BedbqE~cpM zJ6#68@L8YQB%;Qqv9;gxB9XscaiF`5TToC}yDmPKiKm{8Q{=sDoemI0%IS7*&*lsr z*=hOt`5ADfJWd9Z)IWZjK1}J~ej2UNlo?x#vP$NZs~KqcLu0EIL%K5UthrWDfq}jL zWkw^LL*~&t>$4nUVsv2ZYzJIX=lA~IHx7|N-l7F|N07I`)HbgHhpUUr;2hlUvY3NX zmaO04oUyI#HBc?6fJ9zkq;UZ=hwBpEd5fp%j*C#qt(8R)uSYP7YT!CMx~f0M<@ySD zaZfG*96N~YGDHMax#T^(!w?1f@&b3{9zTsm#>NU4C@?BWe{2{UEv_QdONSqt--on1 z{0%5GMe)?dxd$*p|F&AEi9Q6vRU6tLUSrp1{+ut3MQIX3R7$Rr)( z9=Lvnoc>j&;r~rWQ7u_S2nSbjrVu53wjRQzKtjY2sdW=>3x_q#e8BetmX@p7i zN5=iOO=)YUOvow{Kp1C0Kr=2Z4OliEps3^(xOYiPr#wJrf&KK=%|*cZgsFRvC?BXh zmwk5>t7RxqHAUz38Gi#6#-0~#ez^RHw zBmmBkUc+3a0|+>Sj1moIWyErV4d%4*2Q*S<{)_65w&FR4Xzxg$WzSkt9edQY3%X}Y&cV;eEeJ3$RFyKv0~I6X z*-=jQUn+*%_%ob4>IInAYP%D~*!i#d&5{)iY9XseyW$_MDo(zBgM8F?j`=0Ebq z-m#;^3|h}XGd4DTL&Ped8-=wgKLVp58Pi@q^D5ocgo>V}xaVS2dY#1UDjYj!q5Ki( zAZP+ifyn{%B^LKBL7IL&oFD-ZOKdLcSTMfx_+XMh_;~ZtMXC0lM|tbo%+>P~JZmN( zfkr|S^&+5{TMcTp#gsa#wt~0vG8$h@CsPN-***B-y(PfR-@Q`;bsp@0hReb4b0?W9 zUw9ZV)2+q$a~){zrfi7Kd%CBLiM{s+mGCEE5Eh^v*S>I5)^GPK*g91~7g4p;^|TQ% zX|*B`TZ`-v7a+*16|*_3BkDZU)%$%OqX9 zNOwDfhjk%1K*KFsgGhmjb|x$=Y;`JL_dZxspQ~&rrDgazQ~|*hJKS9q^aZiTg)=^o z^On&I-cV9%SWx<0^yg-^PYlz=$ckv$@JnMp_Sj3qcd26}XOEer?yx`BxQb0&xZL=H z{U4)u_KOY3(h+7~Jy-Of00q1iBuVY}n{KY{@G| z)YfDmAl()Yd`*UK<~@9`dC7XgcZVk}2TLnW!^d?`an`XHs8dk4t^*qodhv!QY-Wi& zv$v)4=h@<+JZx(lxHWdzX29cw01(V8C_tkH5I`S$yxMZ+CnOp3+lVjVQ;p=dg**hp zl|QgV3a!q(Mxx#~`fSMNwP(Idq?C&+Fs(&_X~U<>j_M?>aVLAWB8oX{%=)t|>AyAj zzmLT&KrX!CZzxcaEafQx(il&HCS_-MeJbP{iHiUJPgN6l0vrwG=L7pOr0I1b7b{iv zOa9g8%#N2PZ)lifare)S2VC?S!rab6Io@6=DIG%cyKHlF?4-#!IV?SmInztw0+YiB zjMjvvJ#6_uJeOeXTm+Qq{`JSbb#!#ZZ9iwKqzsHHH5Xj^$eXFr1RkT(c-_I1A0fcd;L{ z9~R>+XDFT`cQs7=8v6dPqb_~+4jbTV4_x^m33Zz-Q#6A}9|)qe>FevqWMp8UrJj0S z+a>x*-)L&;DLNSU^+7km65&Ga(%(D&(|ilzNhavgVNv;FWd)VNxXL94&$Z@Z)TgeC z<6G>T^gj0lBUCFgpyZ} zG!B4U@U8u_BMeoR>Ak=c6dXJWwrm^Q5+x&)`6ftj!;Rk%uc3KNM#uDG(!%rRzJrWH z{5WY3mDz%c$`AxULyLZtxERG(?f}=s(B~DuX)O&1;h{%9?gFj01DGpepmF9BkR0BF zNY)GN-8bJr47Oi3u8Vqf@QimLg#-hMnr4x&h*lx!9yOD4_jj3a*ffgMy!hd{KS|$T z5r0!Yv26r|w48wS-Q3$N>{ljTX}k%f&!2dXXj^{RrNAnR$h$@-5bz;v@S6&);E3Tj zsxmL9koW)i5L5&|I0XvGp9>Y`g9D?h5r?*_9U_GwMyV`4Pq;YIkE2H`n zLu>;vg2blG?#~UW?U*^iLEY-H^f_B5ciovA1AjDz{QeS~J#aZDG4)x50Vx=g@gZ7o zR=VbWJ2Ff0T8P&w!G?yJh(R_|cCFc`yq_l#QWSkceY;kLA`& zoI|9+5h@H_2)7T$fvEOJzzFHgeQ!WPd=PWabiYHGBh-qb;CQr7@WV0|-5+wEW2u^) zfBgso9f1r5vTzC@%J_A88A}$ewyC-Z6ti2)0_d>STQ&s>h+rHZ-zgjxkub`Xc68Gg zUW4xfy{}0=*YCd8stZT6=O`K7WZ*M@bBWll-zYadMLK1bSK`Wt8%o^~L#FFJ$#MJP zdej^POM>%Z5@~=8MuE;$(Hj@4S%}Rt4VwCV9gFj2k!?JCHX1ftvA2y@<;w_X>0!%U zNdM0Tf-e;Xy$e9cI}X~1LA#26$Wqf57$GzY=I-4B?-< z$bwu$J%CZqpaB;0}LRrg^jfXuWOG?F%GL-T_hrR zir1455_N;!TwD}B&lktol-+ghmuTU7_BZ9cPz&xD)WQg|6I=qdbL?7~(#Fg#0tQ!p zL#>9MvHTCs-yq~;sTONR5kW`SkFG+~5+Mr($FK!FgP4~u3!*>=yd@|ea}!NX9(2R4 zwG*kxHwY6i_4glbcJ$$QTAaX9SRt5=khB z3igU(lvQ2xS-~1_`a8*n5e8Rz!R#62Bop|-at+`8zW94bHR9YN9@$rHLcbn12%%CS zf$@X;34lZ!nAz1fHUL+apsb`adgeE3aTk4f1^aUb=BbDU8Ipnx4%#czC;XmVzW1&6 zsQoIZ7LBy%wh}I8r^~mtwg%yCCh8(&j^rtH$M?FpK}+k_FHV1!yPlu5fl->IJ6e*n zsB>lrG~9{!LF z1t>l|uAe+-+xB5 zcP_xI%}B^c9o=fCENzQNP)B7l@NvLnS03-aWde<=tyi;rpFwrq)4*NHeXu~`2ga8- zuPU5R0a*>36|P0ZX%V}O1zl&R+~YR7tZ zxLsh!>XvZH9j14+4*U;R1U7B+Dcu5l+K$nr-Jwsy{(btB=^bqOR==j;BxD`|>@DQC z>*kK%0h9Lyl+*=#-G}Z0hRC!%^!oQY-YhbPzQ$bdi1D}DGRRK<$Iu*@q=RODPHi62 z0t+5sV$|dhd8=@}SSXGR>gc;DW~omgp0O+-$@)5BHG1K*avXz>GOHqDVR)~~xD6@$ zx5u8q115V8Xa@wHXRPHu+YS#$s?{UW&e6DYSJ8?w-Vwt|VL8w4yPL64vYG>#cj=9X zZwF%2cA7dL9wZ&t(_L{iE(tv8a2K^533M!zi zT)Ole6n8{jc#ok0KZf~BqRBi>`zOSs$!|ZR>OYcmvPfWX$eP!y2GKhqz2hNAjUu5; zhPc*LP#6IPbOJrzE%$_qa@e6@F!~hF;^(>6P}|GL8stMhPD$srPupUx2hsv4wI$sU zvmLJ;L7!A9Kh}c(JU7RGhL{8lF%J(9)PpFw{qv_@uQGT-Ksk6imb=bu?=U=imH6_N zJBIACmDuvb;qN~_M^&|@Y6j7zn`{Wp&}0i`?)~X1Awb8W9*kms3MLYK3|dR?B>wL{YJ^pHJ?^WVv!DNX)xCJu1N7m3sH5zf;Lw9;`9|Y{Ee6V+r*9 z6eb9Sf(KGTv6AA=hi;Qbn!h@jb;Qn;D}dYmzsP#axG2Bx3sgk}X%wUz>6C7z4M4iP z8>CxGkVX`g4y9X$?nWA6kf9}p?#_D#{Qf_`d#^8iIS=0wbxpEb`A$*m2D>6 z)Sd}T$HuDfm~M?01RB8&`Op-!uA2lYgxxt1Iu(F68v=_OchE0V5z-}WjGUUE{UcGt zBUHwxYR#JF;=K8%QVHB$Qqoao%_=sx$iL)bbv`Nd-o1M7mNSSGBCUe?`l@pbNEJk*H&{q&-D!oG-7 z5D7rxF7h|QGAi$vAuBEIeFXKy_v+LfIIY|Vl|9+=K#KPA3j)3U;>gj3dDff(t#Gv` z>xjF@H8XeT4f0EgbdrNcw&!IJk-J!xwQl1Qr>a2V7h11E(nG3s#TdzCpW)J@jmmyJ9(-~+d7ySSLEmaWp$*QkXGU`Q3AfU)%+L~zNh(Jd$J7H zu)G36_VyGPcb%ZUVy%y^ZkHhp{I;Spm5^4p zI5{jioxFEpejz-@jCJg^j7)nh>x+wX}}{ zlgUrEr8mJg^9AJl{|rM&)gY}}04CW5?1wC1(NPVY6iN}|C$uqcB2BL9m6&hI>Z=bX zpf1*3Zgzpg?q>Qt_0mYC8-|5zGU< zu%x(n$M5}>3;wzlRU$vCU}>gDuyRbDDUq0jZ~j3vAr)%Rw^uR#_ri-E5zqh`l7n!<&oH__CM|`cnDT|Iwu)yiR-K#xN z*W3*xv%8@4GY^h60;rREz%oGssw@^prAQGGbB(Bwr42-_|ppRwNSw6F$4s#6QFk31zO%Ypr?R} z2C&fvVk%Q+q54UK8qK_A7Q4%F)W(Q+Ycle&y&e; z8f$wxqMhP&n=-{N;kk(K~E*o+dw* zX&OJ}MHI2G7La3KdC?Vq1m~~D?k2c*&x6~hhZs^(;WRsEZen6E*X$4bnXd@|V(Dn| zNMLuu^NbIe8EuAjuvSfF!d{a<3mYFIN!!U zUu2o$Rgr`9Z9ZkC4>rrMFU*Q>9k#A?JUl!QUAdz|E1+{21}1sl;GWg$t)Wc@JjfJL z6CctqxoDa_Dza(m2HbWN#2nuoR+Tu_{Dgu?q zId=2joDr6`z$$X6kPbMRY9i;kT}UL*e3|+0<1G!g?*#{^;|j_Dg%kd7f$Cr2O{>m= zJeZ1~4-L1rwh;A*eFAG!g~H;fGaYj99K z8)BU;81NFijX~an{5)|LIde z5U5mU)*o$(A14no6Agq*9Z2jD%K-~@FlX2j>;krz<6o}?hm6>H)&Q@R@NBLgu54rTL{}F zScDfaU_vNTKVXsNZNXXwG-ELBkhPS(dElk zn>ud-m{UqN)D)(#yX^Hla*fk=OBgRlyPGOe;`Xqw}^3L zbOZ=!sPa8f37m zD=m?f?bt>T5{n|y?K^zj!}k*KNEoB>9LwZ`g-^Bx4;hk4JeqMfun6V4C(|-->!#QS z5V~!rYXLDCTI)*UJ1@9c5z2}_%zxKvi>-m{J1DOugeI|DD) zx7YDjMPuWIPB>Hb$+2;I?^mXmqN9-ctna2tQ!)G+>?*U>29y?Ms{Ny!#5Uto!|0o% zZ8d|;%0cag-~B>0%gH79`tb3n$FC~5ey6_uP)7gL$g$H@NEwh3#plKNjC%Cs$FSkf z40+Twf7Xwy^gC*Vu~7|Fi{L(c0Rg{pYZDq*zqS3z#53u^!qm zs}(kbi+Kn50w4e?eiW28^AipiUn<@nER20|SuP5~NV<(#oDxVXbA_q3JM#TZO1^Q@ zjY_Mcr>{?PnoX`qZ_+mt3Q(1lJG%5N0LK`sg*8yXBG1gsz;snq@A4@qMH8W4OB)(> zBx$J!y9`1a){Vw^QB563R^=6fSv2uSAi)&LI)@x)PttclqI!!WKsE!4HM7OGsu6@V&t*zjd1L*JHnAvzmxH}h?KlmRR`~~HQ?QeQ{i*4~o3@~& z2|M_!CMG8G*Ng$tVW`~nHQ?x86b9N5H~<|u=V8|b$1=QNf9;(kU%F|PflFgmfH=*( zEn9%SLuewJhr@zr5oA&2pC1yn7f3wnE{`S=o!@l7>#OSR#&dwyU?;o8Y}TV-2T-x# zb>!vArt#^6ztYu*)vK6nDmgTuzWmq$xN&W=lNAoQvFaC+2WuzYaT;_GS2V&xQvikI z%>t?<0r(04FQEW@CPJJP1X<_<1iiV(;Q1VFFATCcC>oeo`Zh&f-Qu(^|_Z6#|Z4~}6|li0m`EKg@vTX*Y@ zv{w4X##_GT3^t0BNW(FrMSF3Jk=M&_0-qL zBNh4((R2;fD(Lz>j;~0@l2MQ;PQ&VT5Ks_8|4jZVwdXO`m>Gv(p|z8K^Zi8|k?YO- zx4hsA>DqNz4-o9i|qD!n;b*r#`j4%Et! zo0?T|6GY^nObiUq-@L&9$mO8m%EgM0_naRHyTUJ}#|Mm6UgtQ8=lI92d7qaPevL5o zD~@?mgo8&EoY{JBL%-@3WK{>#VH@ZBfK#Qz?T1pd1)!FY!`yqAasTu*8R-96KnuSK zCi2?mldoR%&`k(pV=rz`gcss7gNrH_L>)WN?@t%!PPWPmgkBwXAHh~&#rWpZ`@$9d z5U0wtfV`E9Y?E8k;278g)1K=^z^nWOKvreIqR?idT#5_Zm)+rjV_7{L-yOJ3m^ZE04k*q``RE(fm$awDl z_itQd#xAG#YqM&e)K;=H`#Ja5!eKLGy^1<2-vo*1}_{a|6eK;wNE zz(EMcpsc*Sw6t`mCWV&je9T5-*L{f^-qYvlgQgk656TlU#tvG^E%}mraev zMqt&Fzt$zr$_Z;X$SH`xfIAOzBT<%A*$2Do0XBIApw1f%rN2PM!urruSn`Yl;q)HM zMhcI?Innd^A}BUH42dxlMYUT)GLC&%r4nsCaKY>wZ>SX>E!ThSobnTi0d^ zE+d)Bi;#^96_>4<8r*a@@%bJWJUWvC-rLec0GunJqO`1$0rp+41iB0Z^Yc3-d}=9a ziJS}dOcK1?P*lCE;_iNy_Ll2kY=n;paX$i>&EOgF7>p<5*!cqpeJ-i}w=QLw#Og(* zYFcJybfUn;`CwxrZj91ec4*qIt)~N7;QBJ8@C!3UZF2Qc(7B#PJmodf^(692*e3ox*+k9Y{KwTj+0sEEJ3kD z=p+Yzf=F-~lgS`YU^rF}{ZHJVv(Ng=DtLX)+9t*@8R-=$J>jln%TV4sg4jqAM9AG@ zpR-{%K_%Dh4=EJbRqX=TJ%o38^>U*19H=^h!**X1p917~#c(1goUJ}xXgg?NoZu7% zo7!i_yJ*bSE_J|STu3D)q3UHN2wX6IUX2ucJq`sCK_cgPh_%^-_J4;!uAH$jl3aus zI774m=yqp7Xq%Fk_X$YN8(qIxCC-qJ24ufcgy+n7VRugHxag6kJdjTOP2k{d{!D41 zmyK}5w*8CJ7s)R>3Zj+|U7-0f9(8eseLpwaZaRIE1gQYzpKlHRD(vwL_!2|`WtliI zz>qke!hfa zL{1qpaZ|g|^GV;LXpEpH1ysviBLt7G>uG{c0JiAKotH1Y+w_v0i;Gcx=kB_s0$WXn zSFB$BnyMPTC)>INV4r!r=xH6t8jmh)ed&!!`j+wQ+RGyA|2DA`Xl?+N zvJMN?4t7rp`SefOqW#$NFpq{@1`B^;RI9Q;{_PFP#*%~{feOs_r(7p(t-jlW(DM~o zu`#hd0-_@3l6s}OaI3I5`H;B~3N<+6PhZIwZzg^dGSg(4h)DA&!|T+$sF@F^hIwkb z1Zyi@hSQb})KLS|)>nZLAKH;Gb8~uXOTn3Z^(lY`c;r1W>hqrm=@ya2B4B`!>fME5*r0|c~%Z2;MAjN)zRH%UW04l$LZ1(F^c^qFQLEN-bY z(KqYc62IV)5DB@m_+C#dg$7vZWm*0nHSSFFqjnp&bFnMyMAe zJX#A%T2$Vq57^?*bW#`=T^O)DGwhu;jV^W}F=XU^=f2-08yU?LA}J#5^&!8q55mHI z)5373ny4@<0tln~T3(I{vh0MuEkN)z>RgM^9D!rm2@tMu*!e{?%>7BA14RfeX>35lN5%fANA#ev5!JU{>6e)0@*BKPHT%!6p~WfWy3FRA zT2-;eV++Mg;jsxR$bluyQ$oB-wwk26H{Fw318~|9<~?9n4dp0M)B~#7A0PvF4c_Q? z>m#hzpCZei(xI(C%ZFMC0fQZprHEoFmyLk*ZU($%xFLK*Du2_N=-T!p!$AHF_nVt7 zFPH=(4rs=JDyCX1f&98%Aj`E*|cOR|xE8}-(anO};E+VE*Pz||Ll%OYBstV=gQY3D#pmIkK% zs!QE~l&%e;gYuBiaf<;~fAH|I?A3--(HQT1(IxIoCw8aNW8MVLS~HI88Ly}s=@k2u zLwY>?C#?;}IL@MMpyr`A&oR}#k#pgy&UyqxMi8Phg!%KIMjs(^zY9m;L>4#G`!s-2D1Q!OIgRsms-i;- zBHcQZDVMd2*&3&}8Zp>|sgeBz&I}Pf;w`%v|KdeHJm3Qa`1Sy2uEV3#OmvyB_d&v! zKu%y%q7z&Qyh52PSG`nUuQ7-S^*Cb$7hXp~_jHYN%492Oheg_4 zETHZIc%3!y+&cDu3Wf^0k%l3?}?FU_QP38`! z_fZ{QbI(sANFO>SN^dMEs90}9j*wbGlMSinTkxOyxvx-9={ny80LqYhd?Wf(KIc{~ zecD_U*<|W$%P4b8g350Lkpr|y(}95>?57jNW&*fCkj6w5uaY2V%w z;!|SxW1xy%$iJff=XlfVf#*RZ3@q|$Nlka}fFM_GB@b?Jj*UM14cBILXaWyH6zi?_SPd(nL1gww-L=ZvIBX(=Y7JWa&Jnvu zlSnBhM3Qu!h@Bv7UkyRO^X7Tyqp0GWMV|PTT`KL8@FwJdj7wTBBqDA#rlzvw>AI84 zYyQ<_2a`$0_6>zGEmmhikux1G#T0u@4(yt5L^(3!@7$8b4aF;O`%;@@i@D zq5N<8{0)ol4xgV$? zv)a(0pb+xravsIR{zN@R{mV>x+Y(=;DjXn-Datmqg)Z6^P0lfb`bT439QSKlvR;>Z zrk0&l|D!O4aTfBt)$=)T-L72+w28+G>HMs6DeAzZP0X1Pr+7f!y9rwg8E|&;uiLff zK;QkO4W-O_>5)6ORi>wQs=%Km8FLG_n=h{Du|W<6tdn4%pQ2%5c_WtrrWK{ScC?y2 zn+IOpQb4XU)o*`=0%|6py|hwa^}a8*hnk#~n9jf^U!)(G24VG#w!W(%rv5$cS4XE< zG+-hFCI5=g7t<^o%{sLWJ&fpLsx^Usi^v3sneizpk-)fg0SuWL)fzYgx5*r0^byF= zB7me<-L_uDdFAcm(vqdyTbI=aVO&n*2g%7Pu@D;~B?PZPiHB|LfsSBVq~L7j;(d9k zvdd)V1j+oiTN9yj?BX5@4m3;<@kfCXX*Tv&id z>9Y~Qo7tWNj%WzLVhG3=y{)nE%F4>%5zUH+)w<5O0Th03Qt0bXpS*M1Qh}?E6)NLs z>5*c@4F{RdZb~_pDb`V2PbPEjJb7IfTjY2B@nA}MXJbM`MB#dY<4s3pqx>d>y5U;FX&%WDL27z6Ic`97_XX}_a*Y61BnTY z>-Jb(X%U7$nF7Tm7nU@E4VXDw{Ci>80=E< zjRn_>6rq5M?M8_al53>o6x`iQH!C@9RZ}|nJY1bOE4MlH>akX)?kv~cIu3U1SrJc) za-~m>J*tm~Ad{%yeH*oP(Z7z|MR04A2RfScKK-X!`N!u6YA{vcdO|mw`1t_gWsUG2 z7^4%L0z(K8(uJ=a8CFy>qSDY>fmSdmX${Pv!y&_sRB-djhv{t{KP$Fz{2^Gyclxbs z${I_xH$JcYs^9k#-?JniC2#Y!f#lF7xt_1!g=pla+F0;=qQ; z12}A=*@FT$J^#s#_cf>ntHE#@)%QOi)Ye+P>SC-en~q$&n1Bo#Ssp04*xB!KVS6o^ z61Ivfx(gHU4vJbUbAFCWkfHqk4I6DQtZcDBgoAj{+a_t|64ygf24sJ8X$muegF_7b zHERe%xa9taFrb10|7bzz1E$eIKuMJ^@dk*sQ+lQU`~}rZ$Mxmx^*o3TlF{TMD%IzJ zax%Z{YSy03_UY|`Y_tqVb_XF|QrK?yFPTy*yFk~m#sgnpRKImrfcbO=1j}AsIBmXK zau%e=sM)0EuUp0S;=oKIApc#gp|>Byc#Q(;xJm(^IX**YvZqu6$zctZX`ND ze)C+T4p{t+cFV0wWDB5q1YWnIv*$j#D#twnmghsjj?ks3__x67j&~ZIv%1Fsj~LzY zy8OIsVH9gK-^b%Cl2dn_Lhin@{owQE@};$UCT|jtxsi3&B-86-xMDk*;Lp32ehVB2 zY3|{I`iE`m3|1K-RDZ}iH>kg}ix$IfyU}-BwIs}kh<482j}Hq~@VyIv=Xm_7u1w6d z3B2q*I{Bd4pmmkJu0LSl$yG}rIAD;P?`4906k&diQ;`>svdnZtq9og;$liWU3-J^6 zB52G?EI8W0bYuwaRl89kOJb4%!(WHty1A6z*%xr>lvu?W|DNkNoimFKFx7Lbi&5pB zm5Il|4K}$Nu7~#{+e)2@Z|)4bW4Rbr_}QD~+P8_A6JK7C?8D3c7-LlM(hdZVDf^>V+ zUYP5TcYyir&_meE-8Cjg_T1{?n`KlA3bsTXR*IrZOtfF)HI5zsLH{|c2|0`H0Z%WA-)F6Ep39L6qt?#Qd;ccECPR8uUG zNSRsG1YihZf%vjSO&{=#LvaO`Mn&cl%b7i1p2n0dwLy^&2ljLnb*o#8D`~pxJgb zoE|-t<%n%UU{=sv`P4AnbGm_aFp{nQitlY&{E(`mB$ zn;HthT?V-vMcsm08{`MYn_%hhSKfEBjpRcR4b99CA>gyrkWB4fr5`J7x6%3A_Ut|d z-+id2hH7sidVZvkDD3awKL1TuyquJYlUnMAuBzwmBz}0y1ja3WWZk{xD)9#ot%6=u zP5&4ezZ66l*hHUS%$IrLO!rK^BiHrzs{{ecR_TMv7jh3WhBQJgnRDjhNMhFNn-WZt zyr&mjgaLty4l5k;Q$E-cH8rrYJ%Hq5)MW(UFk**`&LSI^{g~^PLVA$7ke*@n zc&n+={jnWVpsH8rrv-*kNJQ&xs)C1M?GjWlgKw{U_N3U#1wVq0Mo;7Vp6JBYM_s-c zS1fFq?*gT(-rg~FF3j?x-1ym<)SFhP--o(G>x5e7@@4uORSM4!`)aHFtKPiG%I=R% z`sVNV#P8m?>lMHf@|=#6#HyZ--ahL-cvh%hPM1?dS{oVJ_S-?RKSy`O=dO9tqFKO9wky+1II}`7qUzti5ZEGj>D3KLi1SL<1&aj(Bm!*(-AM zh(j{)2p5Suk{zw@v0pmzxXICB% zUrT!AOs<+}-j-ebg&kJ>*42|UX*&)xyxeB9k+4rU&Q)XT;4A1f?f9Ntgbm`(J$c{2 z=*78P^6^hfy>^|}`MvFGMC&nsU?I&5E6<4u+lI~VK}2;OjgAP0tZ=;lQ~fRfVT*tn zgXUZm^1zT1ioekm?V@nj_;*(_zhfJBz8($VF4p5VEs>!-MfwYlzbF+uw*Ku?l2d2L zMH-&od9D!Gp2XTY8HyL6KfdO1@lzGurZG~O!{(LD3Whv?{UM%Ozi2wz7tj$mYQGk- zxvCem(L6_a1~V%-{|QZ&95|A^J@qOSVASnn+!@>xyLPt~5~#Xu>g8M*%5KL1`-T!s zAGxxN;-^5VRK;#rjP_)b*xgdEv6mO%QXC^6D?>libITIc2jhr1DxK8eASOy0)<3Pk z*{NfE7}kfORpET1ga>!&D!!$sHvL>86Rz9RtWyaqv@@`t5Ftb=wk{gDK3^wvEs9Wt zi*)G)x?Zw}^jNfCEZMg)w&G`t(|l^0L^8Hp@~XT2Q6BK45iiV}l^ar(eq6f93-$?d zW4p06KDP9*gpomVYW<5qaapawyxR2c=q@QNIahQXUwKOgT&pTAu~J@5@8hDm!anWC zP=n*JStY=a_*q3c1C4^5?-kc5NMi4Ee$w+kwP_7%qBGF{B?`7oo}IzEKt2)d7+ZPi zjKB{bQb#>7%q#LB3FL4Z&HOX#YPi3_>ferz+^XD=$>9GNSU|x_o6SP zx$CKh3cs^KkE+&S(l=ufh|+ONzrjHfdbzb4wX33?-??c+V)bHs;rqLzi8(tX9}=v5 z$R<~tv%efFxG$;FHi~4m-eVA)2;8g;$C-g)2YYm!EL_^kzV7q4cQB6dIUpj`(b=6% z6^mJmE0ms7GTW4T@h1D<=5rxw(?XhCUn@Y1o|-lU)>DgP2T zAIz+t+-XIji;|iLxZ4fr^aKPZth!+(jQz8b;w282+!ZD-w*Pjrf+B_{ZmQ( zl#OIsTIXYNn{-yU%KIkQ!Jy&C2$t!{c%5ON`OBLuA-|3gN}Mj6ChINs*DJzG6s;rM zs2+04I`#8_oOX%M(rpxLyCraVF?=v%|44c(yPx0pcR$0MH>1U=uaPVBba4r{f~O+x zfn^Oxvq_MvCEGmH{V>(~hDGoM`AzY2&5E)B8BEgRSU@3tE=&D{?xd7(Wh7aMI_2VLc*l*7x+g4F#~<~0 z^n5LMN1K_s;6;mssI!g~*=lpA@SqPU%Dr{pqm9z#yQ^sp1qN12%S#cQ*sfApbTi;e zzhC*eniQkSK2fVH{jmGyo`>BNu4t=%6l0<{gRFA53^Zse4(vZt$Xtc4!*p^| z{UGbiZ?yOy(m%7d&$3MDmc{=wRp%1O$@Q3itNtFA&PkmDs1NtDq4c8uDM zZnK@oPbW|;`a*MF&w}6+6$g%7;}u$?ao0U*nn!?7v^yw*t!y}v0uXSTC}udP_<}$#r(qi7j6bDvWRCYt8`6wA=}?RsmsB(4Sx`HD%K-))h$t z2w#jgyZAVBVlMo8KrFzeNy@mdZ7}_17u%mN^~6F->Uq{guQOFGj16u=qfBS1G`Xo(qP=2u|?pD znfptSXDvt|3qIHB%GcU+(KL&7^?`H0b8b7!Z`^&(@txy~g`8B$6Ctkj{R2rv^bqtF zE*~!$-{RK}FKz+*kW)xSe)|uf2&Gh`^#SanRg`Es0Bbw)tw}iUg-Y-qLJMr3|!}<6cK7RC* zYv1}l4b$b3fG>Y2P0$lxDJW^}@lI_p!;I1qc%aFw4vyda@@jo92$stE4b-^t(J*pA+i7vhli>MN=5OFt~##xR;3jfb5F6dWuk?sdF;$Y6&@Zu6(OS?Zr0_#Kv~vdJ}M9wF98=X8jAC?BJZSQkeL z>gQdsd*ZXPO*msyt%c4DZzhdM7JBsaxW9NfFIH)$X`-Zw+F+!A%>%ZP=HNW#zPR-# zBQ=4R#9aSS!_6H<3tGl{C5Y8f>`NLcSlRyRkG&%k`-ALyBU+yt^ogX$714-?QRn+$ zSUbN!u0ffPylbBuTM6=&7=TtJT>B7>UwV-7cG!<>)$Smu7ao5fa-XifCKMNc>u|vz zr7MP;BYJ|9-73Dx7M_l3uX8SmEm?6Wqv*>S@8^f-J3pSe5E`q2D@HP`>E&g#UBO)PXicJqjNkbl9H1=IsVD{XTmucRfP==&J<8_`&ruZ!bridx?doNnZvPx9F;l zbw^kEMZ`8mwkKaYS=oprZRf^XeeVBhum2Sd&B3Y@gS6p{cyVhgZ`u%dnD@@()YXsK zWJrd9MQ~nzkK4`%1+6tg&(rk@5h&2d@b8E{iCt(Q2O z9DM24YLKq$eW#z(OXG03Fn!aGB$DDUZxBd4s>RnvS2yzdh31sbO>ORUPriRDD)YO} zCe6*g#U}iLrySk9fy>Uq4e5&bn!s+`T}bD!_|K!x-XyAPhrJRy1RZ-<>rO>3+bp$Ht3(=?(AuB(Z$OS}nX zMxrdhL-mjzq<2vGHG={3Cj6L0z!id~ErjNDe{c-OJHL_HW%_v1pf6B&4us)kXOT~j z*@9n(+i85-L6ToedCxeT`|F$@WQ-k}@zJ*gi?<-`Q*j^JL?oOw1bG-Q8(RF%$hRFX zlOjAm=NGOydnsuySx|{C1z-KxsUZ3>+iAHOz(EjS*4_Rphs9rBvYjeEv zS7U*Qk+y?3gvx=17r(GM>hl){UVIvRw`YINZKStmOg6J_qTv8V8?nIWW#9hYjCU-@hHHdv-pZvDZmf!iYdjHc;?iT1S4$a3mfmYpA2*%kLw(?sB?K6dL@eXcRq zo6Tits6i7lN|%l~LvliH7M&dFJAXNf3bjY^Ys;<48kL<4P9|Ud{=3Egg1_R#i|QV* zkmewa0Zp~22;#_gqV05k=GW5%&=Ks%saqe}Bod$JI7yp%y5YHFcEXaS{v;fgXw}7E z>I?s!oe8?gT3s`~d1FL6M5=Y3e)LtqovxAOitH@tP%%SJ8rC^L5uV4KZKSYAzB#a; zb9^M-y%3#odf~CN@msq{|Mk`4V^Z>W$V!cu@*;fIE5pb6@zrZ(;kcwrkw(TGXm8Z# zLo*1OADPkAagcQ$h|~I(ljS*q_w7}@p-1MEgRAaw?R~cvdI`~%Xd1uvbh<- zyB*bAgX<3CpXy2xcq07N$#(c&tiHE@DE3Uq>z`%}@^VtG%q4R>-HP2BrFZDEZ~+#p zVo>L7L{jZhlTn(BGJ=6rN^MLPWn!lutWM4C%`A-odt>{-)h@q^GkSMh z=L&0CPk?|XDLQE2We9|R+-PJr&f#}JQt82o5+2E*Uz^p0Q@_`a0r&NS8@KP32PjT5 zcG@2%CktYB6*pi3{4`h|9)yL|>ezOmSDmX*=seKEFdEqrRnJl=`!z5kz=U!<^z+1d z?8yYyR_{%w#%rjNC7Aca?{z)&n&(2`NI_?8jfv3tfsGIZ6T8?QCkr0g8GY_6DQ_6% z>UJnVgt3$6K&Hi}6_kE{jg25AgDKuC+IBAv$lR#iy0EIfYUcJxCjYLE=|GwVoF}}|3I=;JouNVIpr&o1#XSCmWYT@J+8W-3X_SG-&se1Gpv?9w> zzP=*>ZBLQIFl~D8fthBIwyY9^vZY$_^@YnG1=v4e5vc&ErupR3Bm6+*;$h{~&Xh zOChTRgi;|p()4i}>!nwub<0}G)$4YP+cS|zmu-#<;SG+v-PsO@HvT#Z%w@cnw7kh$ z@9Y2CP!^%S)Zdi8=+b^mXzzO?B35|-cAmO$vdDk;Bj-Xn(aK0JI$C7#$>q*=^;O9_ z0zW%h*rDiV9~c+S^wde@e(|TEL_>V?Pua5HOF@$&4MQy3@!TObZwCrCqG_Gr$|I!2 z=7|RSzlRN_42H-@Irb{5tl?3nG*>D8{D;5E@ywrCql}KIs7Tyoqy_vF?ka9{$rc z&+n|FXv*`a1TqK*O2tKwstcAEQ) z9*ig6a5&-7B*#?KhHqh*ri-2`tuD~k{aG)u%-DRzBl65^S`hzFl&%jZ#-zGo`{yG< zAqaEpWTk}vq{BtRW{~MaKS}}iCxTf5i>#3?9}~u@og`S^bgQ}({NrdD$XxOBE?{Tl=_K4RQtTMXN$5}7SHh$V(D{xykxP+Stpp6hmJPe}IPogLhrKjo;#TMekj6l-Cj;kDFlOK63%3higg*OYY( zWVOQd-v@;v9Z|M1F47t-AAMu0m~L3KgP123x)oq0ggS8h zo-tPFG-A9sosn`IZ){57POYA;h%mgAsJ?4?&JkLeF4 z@yuQqaac(R&gCAHiG38`F~KHq8wI#v;JnGR-veY&FqJs=%a>rpuw2F%;LzO#%o)qT zNELT4FKf4ySm4BmRS*$@At^0Q&B*vrR8&-}z-OhA=%G(v6UP}(aNgM4eMjUsa-K+@ z1Yn{i3K%{?W79--g_-n-*RtsOd+j^Y++_ZW{n8l_KWo6R1r0otzLf9^`$nnQ8f@kV zNcA7Eg16h(WB(F=ltb?`+;VvIw)C-F3i>d#N@(hUd<|;jgB2iM>F;*T0Vqc*B#Itr z=;&p@FdT#E*?nNvq{Xaw`kx2ft@1Qp&(pJZ`sWMNHAxL-R#sL_gcIBOW);Hc8c^#P zWvTs(D}Z4_OIzFC@;KWY=>x$%-hgMv&+VB;i2GC2;UAPm$#A!SBYzZ4iP_#L(53Q{ zWs+}Q4(R`*REj*2&Gq9@;xJ=nZ3I6hMW{^~o(F;DRuk&gxwiRDYgJPS74zJyiH()r z{7ujks~h7nMOO21*)JZsZm91Es;y6LtLk>~R`2iB=AAvKl@xlNHgwRIxK`Y)2 z*$`0$vr3W)+G6b=my?AR3JsTc_+b(8?`<8PrQ2)hBVf79*0XPcp9`$2RA;tCWYc)i zzo8Sn>UwK?mQHyRK@t7;il)rm{4Ul70W)7_jX(wDXw_S=0)I7p&i5t91)DWiiqJVq zN~GT|-T$drfdhT2AQ2Rp3WJ$8qo^=IAS{8zEBvQdjg6``Xt@_b$k{rg7%5F@N8(@* zdwMeYPVZ9^`_RR^^f8?D4$5YFmAdB;MpkxAL{YIF;@efc$dzR6CE#WFHtq%Cuy+uX z2KD;9jq2ymL8AgrF-HqFcqxLWmd@`2%$s~2huv%Jesm zJqQyMgg=r46ijHV2P3e6f;re#rejS-gZbsrrC?15>C_YL)}-VF7IX%wm(=W>AyvIB z^Q;x<>A$TB^0Hq}To--RF56iVXA!JKwLG-8PZI-*|rK9&RLW>O87rborFA+MME@+1E+b=?cpH z0zbvLCA}X@RT}*pW=#mq&lxDz{3(@!Y5l`AX|{qw_aUh!7OCFd?+LKR=h<&~H?g@% z3``%=%Trx)f@fzi8;>E>ua}JvhW>B^)?-zbgCk{rhDMdkAF} z0|7v9TK*b`mr@%yV9>cPJY*mvq-(7ZSLuuQmU8iQcOssCb2Jx)-4H`%>Sxt zUgYRBT$ApmVXs5(App7+&uOB$f}OxDT%fNpVbcsdINgtJ@NIx~$>FUh$3mS*jfh=j zT&*w?`ICl5e+o=t>aEpwy9@>&KQ%;ctY>vDX1Uf++xh=59I**lIF9j0Gf_pH6xOWp ziSL=b?x2<&nT902%z}DYldwknAWS(_Vv^UQ~G#AkArvZCLI>)EHLB>Hzh#FKh-67Qg=r4i!k`12z|P~i5QPh z`Lke0$8HXkdJHGP!fMcl^oSi`%r48?h+*U$Y@v?9v+`v4y>;%5xhRI-!wW%bL7Hr- z(`86@PNvf)_}{H&q)|Zr0iv~BdhHm;WB*Xde_?r!ZeA|R#x`*I(?wFsL%Vm}R_0hP z$>MHQPnYQO?mc~`s+28fhHqx6o-W;H!u-C`&}U4LPoShw_M;6_3~(*!zA)$9b4~Q? zGLxnk`Gf?cX;k%F6e7V{&Xjn3-2F5AV~f7+b=NAAS6 zzbe!vyd(C228NGrPhfw5w)vw~yQEal%C9O6ud|cdY1hc)YxGpV_ULwv>~?;DwoaVg z`y3Q%9Ua{H;rj!E>YG`#)l1Ez?L<@wRl#l~QPl#1|DPBP+;)2ZpVr98`_D%B`Wg8zo7oHrhW6UK0r^uln2W&5w};#B74W9N zmRm8w_ij5yeQ?g{{)YhhiVznNIRMOj7SSOya!sXzv`E<7P2gkg4PMF`>Qa>R>O14i zM+>skRj-sDBurX|^-BjB&41Zm7Jsnd$+9I^(W6Z~QVbxsJ%8QG1lXrr0Yr?=nd z0FK-e<;LByZT@tRZstzG$D4wlyK;pl4^8*2{Vfz=nke_4Kwk;z_r#kwk(~(?ve~Jv zB3l2U-0h7y0Yt#wy#$1wO662+I4Kw0VynZMMc4bU0cWBbJ#eYg?(Tmlak2mId{Tn8 zj)lejwm1vmXjBT3NOVwUOGiCY;BhNy_Zj9zu(cSezQK0l4{@KRyq;U@EG}jPr;}$ zYk*<@%Dx!xq~DiY>9>->dftcg)5y8W^^63gl$VrX>M5|?waCX=JxkX!y6(}b3C4i# zG5eD~A|sQMr=`6gK}gaK=oFLe>%4z_)5+l*imi{Am*{qt*WsS_?6}#+`P|_Qti(xg z618XRlZqa{wAlYqdZ_R5d*IW_e%;}WB*-x>^uW~(YgeK{*dMNpo#?>|ugT?nsH17B zS~4yw3QNh*y({UpAm-zA3EOMHYspQ2C*h%S%P31OuRjL4L>0|B7p?Xg>rHjuMrSzV zug0h$C7;XFC_@<#?~`Vr9Wd#pEa){tlejU_4X@l`ZF;CL*AeFw;wKyf^ z^KCEXndMaE-oYcm@1H~Ncw#TZ4}!*MoWb53S+737ew#8Z8>ao6uUI-ey?(AH%rafA z{)Q^P=m3t+J%O)e?YDV5RQT|Wc7Zkxm^dh+{K`j-18PZK3wK5A=J z)k>a6#MTb`HH}R+MiA6TA#7AcYUI-jC8w3HSsb&+v;{p@o?I*X9nXys_hOb$Rgt}k zYIP+@4ov>rcjjS~-Kkw~O2;1>k%wd$gxvXD8`@ZOhM!Y$O)?8N<(8dA>*ALY^Rc|8 zS0;;?h9iqNhZ-He4VDVqzYj3k2DY$4=!xIpPD0}r3X|+D@$CKU9`Bq0Z%Ztt zV+6Z4Gb9DSjU@W$k5mbc#pPstc@V#CtPpzQnTUki-9aX#^RqMUzEhsV=-22R)|IeH z-4JkQSrEljeTw?qe>@$x!TnY;6VPj9slCS^bwth>j zSk5!F(ae|cMbFp#X7smom7hWvmz!OpzA72Tg4{`yFD|Xkqf$&CKbIiz8VYaXDL!pf zx-h=9U)nxosl``!di=Q(!dzpWD|m7`Kg!mJzS)P)o;=X97`5#6oW@R&+FE*3OYbIf zM`(>?GFkY(H`XwbNw?-kXg0cEBB$;|{XN6*`S4VKYolZ)o)CbEBN&sQFVO|~+YfvR z)MG;)5h>~|&$)1g*EDif?M~!-h9Q4G)frR`r%bU$``BO7u>U zyid#h<$aIzn)pU_gRPRfFkm45rOmZ*ti4|=l=Y`VVQ=`~vF5G4&6iY;Kq(7MFxlZo53mhoX* z&Zvl6J_j9aQRRV0EwM;cu216fgkoRqI7^Vj<7dw%=vS!D;|-@3W_L^#_K76MYTRr7 z)n|nCEz|? zW&vir_7L5KNuuJ~bM~HSQ#_&>OY+*PB&{|EU%q%_+%C!&gqD9V&sXeFdV5;DN`ff% z^_RZF>dT+J()@h#nZ)wl95nA16A%T0pd)T@E@$;QR9%SaSk(9wF!{xoGL~tX9m@|| zisjU?vu)!$NLD0ivW0YJ;v`Q&+=n#Vo@;b9En=!x5(+}#AqR#wZ0T;hgSd89&^!6PmnI9o=RQIFl zB3QcIvUZct!pn~x>Qrk}0xoW&&LpBedd4!kldYHa_LtM8&BM((wLJ_h=o?>3PBd3} z8BjZ?m8R6`sSf#&CK9_TI!24)gi=i+dD2h1bQRVM-!3qmDp4ysf~JbvEOuIjB^jyu z?pl+S;q23b7pZl~`~T%KT%$Cak2SUgH$-?JcNz*4%xN+t?V!~g{4Y6;4K3&|7r31Q z;tD^GTEQ2-x=+fr6+MJ~ zi$4})B+C~dA#b=y8beTgS4jKGtD{3(khE;u@yp)pRm=9FT8p)w7{jKI#)%$uqiDi^ zO95Y1J4K<(2Y3t)3{J6ftMT2gu_<-gO`zAobxH6vn>a3K2B%24F897u1IQM)#Ax6; z7WCEk`2mOP{S;rnZuN!_p2HV0=iuLMY9Pm9)5O}kCVyk$&mpU8Nm^!Eah5+=!Zc(S z-9R50>zE?3j1)C&-?cO%`|525B%*Tb%T|$%;>`aRa8clbCs25b7_+nbbblzm#tMAo zxpBux5GYVPUSwb+A5^50BxdcM(la^O!$si9>ctu3D{x#OdB2O4waPVtfuh@FOzbP^ zd zwfT;hn$Go>R46asA>rD#&0%g+DasvEBfbz8x=(SpC&Khm2j2d3Nl7NmH(eYitm+yn*YpBU$dn0Q{=(I0=aQZ{ZvnP3L7vw;-DRJfHZlJ^OC4eZ;Nu zi+S92ARp3R;$7~7vQ1OFgBopy?}`;KB>PO$Q)7sZ+k6JcW1cmEUd8qz z*c>CZxDDw8%t9DoR7JMOrgjo9rCJ=-oR59Pcm-Om@AF>e_qU~LceS9RpT~m*k~^ z_0coUF@DN(2gEx%xU5Rkck=EGJ>J&%Wim3ghFA%%U$2e9A4}ZHBCrT26*XFx19Our zY7PbLeeWS3iSLaZGJF|P*?jxKt2miw?{mx;+;B?C>~mbcrb$LdqO6GC zO&TJz4|G9U^3AW_FnsdRMHa>x>vLzVE{U_Ei<)9Y5xj z``$VXUEUQSKU4L6^-X;O$dTdq)U6Z=0Lg|!%nSn8l(R*hg(VRW>#bOJ`btK*4iN{V ztz)g0q;+wPN%P^T)^~#C$f!i(0mOEN*qF9Wwzx%ZYD_r(5*cy3n1<$e>58eYzyt&z zd40u`zMO;t&`ROG%I?gY6=TeWPX0H9!pFF_v*<0S@Bb6}05JPeDEgWao&aS#imy|Q z81_EDKc>!dQ8-3y9B~S9=f4y_|!1~@pLjZV@1%ErNu9#bVj_seLL@lgE#e- zp7)@QM#Ws4Wg0ZQ1f7mpBB(d~DPF`pkCL5~;cGz+bU0)$F&)d5`^M==j)L5+@DuBC zRnimkWwT_+e(QXeQjLjHurnNc%Ed{cJqu?cynZL35AWB+KiKX+CH0 zM<^V%P{hC1QOT4jKHjN#MF8SlKa_lg1oQZV0}*tAztsNgQ<$R(6W(13d%X>$ zw$jDcZsM~lZ5Z&cDW=EWW%0Fjn18C=Xse~;9D#X$ALK!-Yn_nCO&a1xn;#;r@Nz&+ zscH;D2=atme~L(K!0k)V#Ql9Qh}w!QZB%Z*%R{RVTSw-cF-wH_XTbj}3Oz-kWS2j~ z)e@G~)SGl61A2ZkN$H*j)G8w;vg(r{LYlrbM%UOd$8plb9>)hP6~Dp+tXTP316kLH zzCTVN2=-yCDhal9CTE+Y%aP+y4mE|7o`sxLe?KH2okJznp zt5GIO#Pm1vJWrfwuxQt~ct~W9M`Z5HIL>8*SY6p=8(1+G6T1HgGW-vgxdN-I54pUj zz<1A~ZI`*b>e6omK~Du)7`l3Tb|WGE&}G&Wav4aE}Y(XaKYG@ z_}YQFswd~WQmp;g z)N8T&1BnuKb7fxxS!25#@hvh+aa7DjWm;c_$P&AT)r@PIc}WO?GM??j&`*%YEdRFT zZ}UR5`E=O6BNYncMaMfC)^4UNZ%fT)J{p$rDLFEn#yGm_h_N!eZ40MUplAKWgGeDG zNj%H!DM}ngFhuJGZExe;^X8^pvY&lAU?!Ou)no?mM6odKc2+kE{Xhz6t4>Z=EX6Mk z^Dp3+59$!&uFBxK#N;09np)c;7?Z|yal)fv7}30mWKh-Z=O>~?Q&LLmbvcry8^xw` znZ)mHKN1SYQ)joL=!pw%6a^GUYdh0soozE6-zi`h1#7WA%F`5<`+*xyD=izf;A+nC zoW&i6&CQ1XHdT_-=>Mr@K3n{>tbaG?HCf1eHeI@WLmf$ZlMQx0gwd>Uc3FwX42t&O zjf8?x-Osh0B38JJVnq{XJh&-f>0y3ta+GFBtPes*k+&0@$kt<4f$~nMe-Jim!>g*) zlKJ5~b(~cA2P`Gk6H(a|Kla|kyikH&GMXP|*0^N7Rfb0Jkd=Y1%kkJXCKAaW1n%*7 z0|DQY=_hsO8n-O6O^-_7fD|zZnRxm5e4gHsBpb&pL+kL=mGG)F{CBm-#}4?JYG28^ zr`B{-i?j5lSJj{|E(QtT2*6q^!fz9xywq_4)k{^RtEKIE@BQCf{x@Tjz z_^}0@+k0&mHzL6D0mpl+%a#SPRaVR+PenjR} z+}5-Qy?5k*Tku~X{O|5e!AH~74o7g~P!ZEsS>LH-e$lwr{aot9@lIm>+&?JLaq?3>}5nnanXU-;e@U-p!YkeurR z7OuNCWFY-U{`EM1qRe;*@SqT6RfB6`5jlpUYf;1o3sZ4ik5>e>5iN$RfvIOgc61`6k-E?3_i7Zo;5IkBa5mc6CNuHdPy~HM2Jq+B~(DHrgjwl)d~2&y-bkIpPd}@Ksw>4 z66x^$n9)Up6p2^_X1j8f6_O4v7+#O7IIi}Wg*n^;UqhXWj*q&OC1_8v^ty?4;TnEk z1hd~FI}UfNWY!GL%GlRY3ePmV8$Uk2Nk568CVA>BJS4 zf4N#q>1m6xr~;H2Z}?u&B8dl~ZLPZcW5=vlD)*UMUxkE!8g*Y)2>`Tu z6}O%|5Wwhaak(omS8qN*7cUos>S!%c=~9$kq-i0w+CpqhA}5Qqt^K-CX@9 z2zSi-AuAB+n!z3O{R5IPywDtF(VR z$Poy=E>BHLW?z~sr$W?WLd|AK(G`{}bp4OZUx(uU(_8K>jZTrBOB6+ZeGoLj?A_s6 zRJHKn)NCow0(wJlc9yk{JDjE-ZR9@F-OoBAMMu0M8{aFU8LK01pkd1#6g?Z zfgbY9w|n2$3k7cdiF!w*`2T68wxiIhQe7hj_?n>^A*Mk??5(gQGb^}MjUyzjK?A|z zhd;-yqo~7AouykA^MQys{v{tx|D;ygJ!_>1c0N=bS14Es9zs+3u(&;^s|Qg=QJw#p zEvy*C-)+g{p_d5v4f8M|%io4LJSF1;8@b=g8!aQ#n&eU+$+@mQt(#&$!ir_%g6|@K z$0{mwSAE1(>z$@51n_WvAz7tJ(hs8I*t=u3n_)B;$^SFX{@MSiY~;2-mxdXazwtt0;8TnmlNyBv-U)tDgs z$-H(b(7og3IuUz6ydWCi&1?SJ$&gUy`%+3AqcrH87rOjs!nu-}#FIt4r-{gW6uM>k z>OF8pGouDG?k`0%;{}i*k~Xa4mS5t|v&nEjPwpkWN*+n!uXVGlwDyxLLd9@2Uj6L) z?lFB1%Yq8oU!~+9P!Th#7ap55p2Nyt*tdOPIki5yRaso5L$0LjVO`n)e;ht);}fB6 zg-@mSz>w)Y{zv@42|Fu09XNE4(-lO9`$Vd{vTY}*lEPcV!8@J_a#7F@F`<$t&@&>k zRHDzfP*(T#&eTbAOs|}@W}LkZKCuB9HE_WFI6xI!wT;#o33sMt2;gnM?B?oyKp4OB zT3CzSJ-Eccp0js}1aoi{wxv6N^aTf*Fs>(c;ZfV?X%_usZMW(*IdXiEPSf#;LQ}Ig z8Vpta%}n^84ULeLTzZRgdG2ujLTgZXWw-4&2-in9o(@auBr&9+Xcxb2V$bb-Z87EO zRUvX)Y01-ZZBQ@X;BPonkc*u%V?vuj&}WmJnVu@nMZqM)!!NeprzOlICL9C%NDCCLx%IiiCH>q?@y0;Gh@kp{E+`^SY}>7q2w7Af3+_|89zaWQn>pjw(HKrrK7vuJ$# zf9wdpsCNx7X7uu`WAfWxj&OA|!QFEEV70n#9q@cdbYBqr8|i*{0cUco?5`DOO**f` zBv`>Gi(})>NI8p+d_=u=s%j&dW(}GpTPWZX0-v^BEAK84%T3GScAz^GYKEq8ZHbB) z!|WpLcp|;tYjukIIn}u{O-PpMe%UzK?R(WQXvWQadfXW~>IXR;UD9n>E*_l9v~SVN zXq#&>OBB8s_GkdrjXFyQpHso5p4aweSRg6-IviCTrJB+?D9~G`7=C|_e`^6HT6J=T zMV(a)77LS@AU3MMt`vP+#ciX zoI;DC<1qu@wbPn-5attQvGx+yGzRc`$$^3Nt-FV*99=5@rLBhmfc!s^PS|~coq)?z z_ItMz-mCYdlPi#j>m|7se1HRx^Ec zB2wZsLHrVj7xJBS?PiV{J7I=X5|pG}+YDLPnJ{fCh9qJqKRY=QCx31I_SUI)iBq44 zHC=~rI?;B0bp$$-1MN57IqkvS_Y4~*>}#Q(R_!tn8EZhzNxXti1SUz(v%{$+709~F z!DFkLmBk}F$NDnhG`BCjy4RkYu6&xwU|-u}U9$2}%K;Wi!GZKJj~j!p>D4`PpRZl3 z2}XOcyKOsIA<>Rv7Y;t|Z3Ok3q}{2vu67gtOm;#`D3pP&3mXbr)MrmoRt(>dT_~zB z{ecpi+fF)vq(raR;?Osk-oN^@$T}liU_dnP?Cl##g`G)Bb2n?cZK(#Qq;$XHdTy15 z)8jBS%!qjyx8at`kJg6OD8&R!?F1K591e-kF7u$)OHmEsw8@PLTT7-d1 zc+}7#oJ|{==ms|HH|Hta9JdeqZIc{v3YqJd$j`Btrnij*aIU(m|CN323C!iQg)z9A zdR^CyjeiuAplspc{ zzH}+KdP^ai_I%@!Vjd0Um9taPquXO!rfiNIc1r~8Vtym*V-Q6nqcuA^?2x1S>=aVK z$u!O0BL6&Ta@?NHiM8qE*uAB?cHSAG<~9{fRpR;h)5@vGPTRn&V}3=4e*)ZZ+EF_( zwW?*&f4sT3&o1D=<$_ZBzy<{|^2M!$0x&VP^#;R#a_Qgu{DmJ#MVQ@|jbN$aJ$H)a_ zC$1#8PfA)&I8S~)msSP{Uvr%OHcZH(yVe`#&&z19{rPN7&>F?V9x%T$iuTpQwR(VR z%AIpK!N6Pz4-ao|iSE)68Lx;K)7nB_U{2&2Rhc)i2w0xN5n^=AH^kQIe;MRGcFp2@GyXCPvP*-56W!uS%HcF`~kiH zQRvU*FZ%y4mr~)wE2$6{myfBbsXqZ?<-89c2xdgU#v`2{5LjQ5& zlbh=A{#gQdagFf){L}x}O9_G*|I@8%K!PVsA-5XZPvrwhYWu5Oye7P%DH7YY?*JOOCw5Lw`s+NbMJCXc-t#$TN@_H@_B>%7juD@WB89ui>x`e%EE%Ao z%Pgx~r7{MzM;&KsWAw|-)vh$5A3b@c8O^o^=*r{)vaE2agNo?k0=2X;3N|G`sVs-~ zn%$$(Q;B|jq54iVg z$^=4cpWUpg^tF_;hnJU$$gF#u6Z={l-NomQ)?#~M`-##Dso$X*KdG*4Er>PcwjQ6H zGyxt|i*~wJGXS6;=9lfpUGbrK~J?*N@K=i7d0s$g-Kgl)wRE43< zd-*(C&z}dUcHF1}K7i8j$KDs;D6JZ^1tjRx-4{byM+};=4;Fbgfgymf+!p|d_rFYc zis`ul%AXj8AY19C6%v-^B7C0W|5?DLuU7sxB6jjvOsz{3#f~m*W;l%-8N^%U(wA)Fp1FJ=?^yTs3=w!=< zM?Jvf4UA`>Dhu=~?Ct~Ne}j@qvf1~zj4Izxl$nK((m&N>iYo4y1Oi87R1}7sUS5IMtqA2`evW9nk_ZGlUIjZK#cb&RH6IVQ(BljwmC6RZ4|UhC95HU| zq@C!miB??|W#p9U#Y9)8w*d-);}&fzWMaVEEKu-)-UTmHxLkMd1l`%fjfBQo_fa+F zi)${7uDV>!R8&-Bb~#x1BotoO)x6>UMl;{^|#Q&2(bi#j?glUM+4?DGQ-pS`Ur&)y$jz z;%G9Jv}s`Br>6wpygMcw2khAU8<*L`mb#nsC*U|)@7rS}ny zk;!t_?{IbkSm+Mt`xciq<6~pst@##<{eWdgx(cb&slnpPU+DRZ2||K*6M(ZU0Z#Z1 zAYwEon5Yf{!^)NfLKVyns*Vmi{}qAF#*) zR?IPuDg!f*gc^?x{SAcldC~ar@XOg(OObyE4Ta_wMbzsZ-}x%f&F?QAzkhBut^|h~ z?^BIQVIP43!gh{O^BF+HruYn?_$~AgeGp1{BQ)mK6DPk_flRIW06-8BtdYt(Q;8z0~{dQ4>C?{_B&Zectk_e11^p+;jw8~g~0@NrEmO|QRkku^l8fW zwJQ9$WTRS_Z1H>gEXP^bt8R=gMNoH7Z?+3UGhSnrJUA(jzj5~+1swNT=p*0YRNaV6 z?txZK0I{z8Iu})>F@SH77YELl6PTTyNg#IZ9xX*1oI5SHhb)r{IDyl2)WzgGl4z^| zjc{%t1|Ka;pF#fs1Ds#?{yPu-C$m4f`Tx)5SH9M@T_7RsF`D7U98=l-QN> zn)eeC5)xXU9@{97FW>Hg9r!b%@ppH@oz|gF+GhB34MKb zwkD16YB`EruW_Ska7V5^!;q{B7S%yB(GM=F+b>CV~C4+Abm9*Mgv zB7roVObo;d9Gr)baakCI0X!(aKc=$|%RHqyKkAa!Uu3D$xwAb=FK<&;kKw>zFgZ4Y z%0v|0d1-)R!2Yc(AR4OiTDE^o=`xfxLs9yCUBiQC`0{MXMktK4|gWGS;I2TW}hb z>7I&T94)P<&7T!)SH#RWH8iAM$%f4W^WlXs&K36fl~}hBNECk-a$9eSdj5#ue3?}` z`)bx!1M5dfg=vJjdp*vre%U$T)a0c6@`T6dcqM6lHO;v|hCb^A&?56b0q#IG;9@O6 zou~0vU~K+iz{M`aQdFy~VO#uU4z#LOHCe#-joqUxL5-zuQE(R>Ks|-zbXZwLt$g<+QA;`5pAI@1;`>h_( zS@7rw7XNWX4RDOjj5B~cxU*9M$PU}uD}b&>F&{84h+-n1roC7@tEbu?l$>aq$o-8; zlWfgy@mIgHoQl*nG@_@ai3*A(%3lHzrg-}^xQBFO&Ua^AD2>{ww)HB*y7#XF80!m= z!bA zD5#1#u`h2@IDT!8RE>z!kTObAOpj&%>|Qi;T`aPysmW~8VR^q>brt{?KD_uYcRuw1%tftuGWkKY*x*Yj`oAMXd*9lZifSKttyE&o(9`yAO z)J|E$!&)B3OPS|WnMG1DACX~-Io&yF4#FiW%wT+#8_z+U1{Ls|p>ncG%BF5T%y!p4 zULn&A?^Vi#_l#UJ{7;^gx=ktMjbGtC2Fdfi(c;0U2WIRc!0p>ncVCSj62;^Ho5(|Q zD)VAJ6O;J6+hMfcV=EbuBFxhtu5`_=m9WK#oe6Za`4U zW_=_dQl$M_egW)C3fNI~j4%hA(Eyzs+$D8xWkB)#9Xe1miOtM@ppRyji7E7&_)@=@hRT*EyO3WWe z8NZfW)+48OWfb|6Xe4*sbcaSXOFx6G`KW`ZIDrpBLVkQM=L2x;bMI$}b=$`T>2ufr zWcaTY|Kff32h$y9H^xI#UqIq6!KNE~KA>vAyuZJ{2S9=Zb?I|=@udiXG3}GP0K=d$ zpVmhsVcR78W`J;C9;k~QT?v%cv*Y!cb{cl1YVul2;YayAeoAIH*63A^2Z37cs`jW~ z4C9RN?!lh1bccOp@a8{d74X3Nu!fz{Vo&4>mxX{+!{d83<$h|1)7RfU-Iww^MbGP3 z*)r6A>yo~3t#NO;IjzK+p0}*0U++Fx+T+`Bm0wSRsykWo2%JD-24oVPH#fZ3B<73A zp(G^0BIot}in_S_1f1>T!E`eeDzv*%3F2yy{lKoyPubMjWgJ1 Uq- 0 + \end{cases} + + +See this `link `_ for more details. + +This EAC factor, :math:`F_{a}`, is then applied to the asset's CAPEX to calculate the EAC of the initial investment or installation cost, as follows: + +.. math:: + :label: eq:capex_eac + + Cost^{a}_{CAPEX_{EAC}} = (Cost^{a}_{investment} + Cost^{a}_{installation}) * F_{a} + +Therefore, the discounted total cost becomes: + +.. math:: + :label: eq:total_eac + + Cost_{total_{EAC}} = \sum_{a} (Cost^{a}_{CAPEX_{EAC}} + Cost^{a}_{OPEX}) + +Note that the annual discount rate is a real number between 0 and 1. For instance, a discount rate of 5% should be specified as 0.05. +The technical life is a real number greater than 0. Both the discount rate and the technical life of assets can significantly affect the EAC of an asset, as shown below, where the inverse :math:`F_{a}` factor is plotted. + +.. figure:: ../images/Discount_factor.png + :figwidth: 6.94792in + :align: center + + Inverse Equivalent Annual Cost factor ( :math:`F_a^{-1}` ) versus discount rate ( `r` ) for different technical life values. diff --git a/docs/theory/philosophy.rst b/docs/theory/philosophy.rst index 384f77a8a..f3515390f 100644 --- a/docs/theory/philosophy.rst +++ b/docs/theory/philosophy.rst @@ -11,7 +11,7 @@ Nevertheless, in practice it is seen that the decisions made in these early phas Later design phases can therefore be limited by decisions made during the initial feasibility phases. Good trade-offs take into account the interaction between assets, but also trade-offs between design and operational strategy are key in reducing the overall system cost. -MESIDO applies a Mixed Integer Linear Problem (MILP) formulation to adress these challenges. The main reasons are: +MESIDO applies a Mixed Integer Linear Problem (MILP) formulation to address these challenges. The main reasons are: * In the early phases of designing an energy system, decision makers are typically not looking for high accuracy physical insight, but rather for directions in investment choices. Hence MILP approximation methods that are conservative and feasible, whilst staying within accuracy bounds of the available input data, will suffice. This allows the decision makers to make plans in this early phase with lower financial risk, as these plans will become more detailed over time. * Part of the decisions for designing an energy system have an integer nature, e.g. placing a source or options for a pipe size. These design choices cannot be modelled with continuous formulation in a representative manner. diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 2044bf01a..7f44c8071 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -424,14 +424,14 @@ class EndScenarioSizingHIGHS(EndScenarioSizing): class EndScenarioSizingDiscounted(EndScenarioSizing): """ - The discounted annualized is utilised as the objective function. - The change of the objective function is done by changing the option 'discounted_annulized_cost' + The Discounted Annualized Cost is used as the objective function. + Changing the objective function is done by setting the 'discounted_annualized_cost' option to True Goal priorities are: 1. Match heat demand with target - 2. minimize TCO = Anualized capex (function of technical lifetime of individual assets) + - Opex*timehorizon + 2. Minimize annualized TCO = discounted annualized CAPEX (function of technical lifetime + of each asset) + annual OPEX. """ def energy_system_options(self): From ff73a169036e0a1a6323373f4e067250fffc1803 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Mon, 24 Mar 2025 08:55:33 +0100 Subject: [PATCH 260/275] State info assets (#256) Added states to all asset parameters and started automatic documentation on the modifiers created by esdl_heat_model. --- docs/conf.py | 2 +- docs/dev_docs/esdl_conversion.rst | 13 + docs/dev_docs/index.rst | 1 + docs/dev_docs/physics_mixins.rst | 1 - docs/support.rst | 1 + src/mesido/asset_sizing_mixin.py | 34 +- src/mesido/esdl/esdl_heat_model.py | 1606 ++++++++++++++-------------- src/mesido/esdl/esdl_model_base.py | 12 +- 8 files changed, 857 insertions(+), 813 deletions(-) create mode 100644 docs/dev_docs/esdl_conversion.rst diff --git a/docs/conf.py b/docs/conf.py index 66116b525..8f76bc2a8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -104,7 +104,7 @@ # Toc options 'collapse_navigation': False, 'sticky_navigation': False, - 'navigation_depth': 3, + 'navigation_depth': 4, 'includehidden': False, 'titles_only': False } diff --git a/docs/dev_docs/esdl_conversion.rst b/docs/dev_docs/esdl_conversion.rst new file mode 100644 index 000000000..dc3810d52 --- /dev/null +++ b/docs/dev_docs/esdl_conversion.rst @@ -0,0 +1,13 @@ +ESDL to MESDIO conversion +========================= + +This section shows all the convert functions available to translate an ESDL asset to an asset in MESIDO. These convert +functions take the attributes from the ESDL asset, optionally do some calculations with them, after which they are +provided as modifiers to the MESIDO asset in the component library. + +.. automodule:: mesido.esdl.esdl_model_base + :members: + :private-members: + +.. automodule:: mesido.esdl.esdl_heat_model + :members: \ No newline at end of file diff --git a/docs/dev_docs/index.rst b/docs/dev_docs/index.rst index aa45b1617..9822616a5 100644 --- a/docs/dev_docs/index.rst +++ b/docs/dev_docs/index.rst @@ -7,5 +7,6 @@ Developers documentation :caption: Contents: component_library_milp + esdl_conversion physics_mixins workflows \ No newline at end of file diff --git a/docs/dev_docs/physics_mixins.rst b/docs/dev_docs/physics_mixins.rst index 36c666da6..3e21e3f55 100644 --- a/docs/dev_docs/physics_mixins.rst +++ b/docs/dev_docs/physics_mixins.rst @@ -1,4 +1,3 @@ - Physcis Modelling ================= diff --git a/docs/support.rst b/docs/support.rst index 476fc3639..e0e041e57 100644 --- a/docs/support.rst +++ b/docs/support.rst @@ -3,3 +3,4 @@ Support ####### Raise any issue on `Github `_ such that we can address your problem. + diff --git a/src/mesido/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py index 8b9a0b60a..14abd9c0d 100644 --- a/src/mesido/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -7,6 +7,7 @@ from mesido.base_component_type_mixin import BaseComponentTypeMixin from mesido.demand_insulation_class import DemandInsulationClass from mesido.head_loss_class import HeadLossOption +from mesido.network_common import NetworkSettings from mesido.pipe_class import CableClass, GasPipeClass, PipeClass import numpy as np @@ -1841,7 +1842,11 @@ def __max_size_constraints(self, ensemble_member): constraints = [] bounds = self.bounds() + energy_system_component_types = list(self.energy_system_components.keys()) + + max_var_types = set() for b in self.energy_system_components.get("heat_buffer", []): + max_var_types.add("heat_buffer") max_var = self._asset_max_size_map[b] max_heat = self.extra_variable(max_var, ensemble_member) stored_heat = self.__state_vector_scaled(f"{b}.Stored_heat", ensemble_member) @@ -1857,6 +1862,7 @@ def __max_size_constraints(self, ensemble_member): # Same as for the buffer but now for the source for s in self.energy_system_components.get("heat_source", []): + max_var_types.add("heat_source") max_var = self._asset_max_size_map[s] max_heat = self.extra_variable(max_var, ensemble_member) heat_source = self.__state_vector_scaled(f"{s}.Heat_source", ensemble_member) @@ -1886,6 +1892,7 @@ def __max_size_constraints(self, ensemble_member): *self.energy_system_components.get("heat_exchanger", []), *self.energy_system_components.get("heat_pump", []), ]: + max_var_types.update(["heat_pump", "heat_exchanger"]) max_var = self._asset_max_size_map[hx] max_heat = self.extra_variable(max_var, ensemble_member) heat_secondary = self.__state_vector_scaled(f"{hx}.Secondary_heat", ensemble_member) @@ -1900,6 +1907,7 @@ def __max_size_constraints(self, ensemble_member): ) for d in self.energy_system_components.get("heat_demand", []): + max_var_types.add("heat_demand") max_var = self._asset_max_size_map[d] max_heat = self.extra_variable(max_var, ensemble_member) heat_demand = self.__state_vector_scaled(f"{d}.Heat_demand", ensemble_member) @@ -1918,6 +1926,7 @@ def __max_size_constraints(self, ensemble_member): *self.energy_system_components.get("ates", []), *self.energy_system_components.get("low_temperature_ates", []), ]: + max_var_types.update(["ates", "low_temperature_ates"]) max_var = self._asset_max_size_map[a] max_heat = self.extra_variable(max_var, ensemble_member) if a in self.energy_system_components.get("ates", []): @@ -1945,6 +1954,7 @@ def __max_size_constraints(self, ensemble_member): ) for d in self.energy_system_components.get("electricity_demand", []): + max_var_types.add("electricity_demand") max_var = self._asset_max_size_map[d] max_power = self.extra_variable(max_var, ensemble_member) electricity_demand = self.__state_vector_scaled( @@ -1962,6 +1972,7 @@ def __max_size_constraints(self, ensemble_member): ) for d in self.energy_system_components.get("electricity_source", []): + max_var_types.add("electricity_source") max_var = self._asset_max_size_map[d] max_power = self.extra_variable(max_var, ensemble_member) electricity_source = self.__state_vector_scaled( @@ -1979,6 +1990,7 @@ def __max_size_constraints(self, ensemble_member): ) for d in self.energy_system_components.get("electricity_storage", []): + max_var_types.add("electricity_storage") max_var = self._asset_max_size_map[d] max_stored_energy = self.extra_variable(max_var, ensemble_member) electricity_stored = self.__state_vector_scaled( @@ -1996,6 +2008,7 @@ def __max_size_constraints(self, ensemble_member): ) for d in self.energy_system_components.get("electrolyzer", []): + max_var_types.add("electrolyzer") max_var = self._asset_max_size_map[d] max_power = self.extra_variable(max_var, ensemble_member) electricity_electrolyzer = self.__state_vector_scaled( @@ -2013,6 +2026,7 @@ def __max_size_constraints(self, ensemble_member): ) for d in self.energy_system_components.get("gas_tank_storage", []): + max_var_types.add("gas_tank_storage") max_var = self._asset_max_size_map[d] max_size = self.extra_variable(max_var, ensemble_member) gas_mass = self.__state_vector_scaled(f"{d}.Stored_gas_mass", ensemble_member) @@ -2026,6 +2040,15 @@ def __max_size_constraints(self, ensemble_member): ) ) + max_var_assets_not_included = [ + a for a in energy_system_component_types if a not in max_var_types + ] + if len(max_var_assets_not_included) >= 0: + logger.warning( + f"The following asset types are not included in the maximum sizing " + f"constraints {max_var_assets_not_included}" + ) + return constraints def __add_optional_asset_path_constraints( @@ -2105,11 +2128,20 @@ def __optional_asset_path_constraints(self, ensemble_member): # TODO: can we generalize to all possible components to avoid having to skip # joints and other components in the future? continue - else: + elif ( + self.energy_system_components_commodity.get(asset_name) + == NetworkSettings.NETWORK_TYPE_HEAT + ): state_var = self.state(f"{asset_name}.Heat_flow") single_power = bounds[f"{asset_name}.Heat_flow"][1] nominal_value = single_power nominal_var = self.variable_nominal(f"{asset_name}.Heat_flow") + else: + logger.warning( + f"{asset_name} is not yet included in the optional asset path " + f"constraints" + ) + continue constraints = self.__add_optional_asset_path_constraints( constraints, asset_name, nominal_value, nominal_var, single_power, state_var diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index bd60d9dc7..b7f65b3b5 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1,3 +1,5 @@ +import ast +import inspect import logging import math from typing import Dict, Tuple, Type, Union @@ -61,10 +63,72 @@ class _ESDLInputException(Exception): pass +def docs_esdl_modifiers(class__): + modifiers_dict = {} + input_dict = {} + + def extract_asset_info(bod): + if isinstance(bod.value, ast.Subscript): + if isinstance(bod.value.value, ast.Attribute): + if ( + bod.value.value.attr == "attributes" + and bod.value.value.value.id == "asset" + and isinstance(bod.targets[0], ast.Name) + ): + input_dict[node.name][ + bod.targets[0].id + ] = f"{bod.targets[0].id}: asset.attributes[{bod.value.slice.value}]" + + ast_of_init: ast.Module = ast.parse(inspect.getsource(class__)) + for node in ast.walk(ast_of_init): + if isinstance(node, ast.FunctionDef) and "convert_" in node.name: + modifiers_dict[node.name] = [] + input_dict[node.name] = {} + for bod in node.body: + if isinstance(bod, ast.Assign): + if isinstance(bod.targets[0], ast.Name) and bod.targets[0].id == "modifiers": + for key in bod.value.keywords: + if isinstance(key.arg, str): + modifiers_dict[node.name].append(key.arg) + elif ( + key.arg is None + and isinstance(key.value, ast.Call) + and isinstance(key.value.func, ast.Attribute) + ): + modifiers_dict[node.name].append(key.value.func.attr) + else: + extract_asset_info(bod) + + func = getattr(class__, node.name) + if len(modifiers_dict[node.name]) > 0: + line_with_hook = next( + ( + line + for line in func.__doc__.splitlines() + if "{" "automatically_add_modifiers_here}" in line + ), + None, + ) + if line_with_hook is None: + indent = "" + else: + format_modifiers_dict = [f"* {mod}" for mod in modifiers_dict[node.name]] + (indent, _) = line_with_hook.split("{automatically_add_modifiers_here}") + func.__doc__ = func.__doc__.replace( + "{automatically_add_modifiers_here}", + f"\n{indent}".join(format_modifiers_dict), + ) + + # TODO: the input dictionary is still needed in the documentation + return class__ + + +@docs_esdl_modifiers class AssetToHeatComponent(_AssetToComponentBase): """ This class is used for the converting logic from the esdl assets with their properties to pycml objects and set their respective properties. + """ def __init__( @@ -96,9 +160,8 @@ def _rho_cp_modifiers(self) -> Dict: """ For giving the density, rho, in kg/m3 and specic milp, cp, in J/(K*kg) - Returns - ------- - rho and cp + Returns: + rho and cp """ return dict(rho=self.rho, cp=self.cp) @@ -112,6 +175,7 @@ def get_asset_attribute_value( ) -> float: """ Get the value of the specified attribute for the given asset. + Args: asset: The asset to retrieve the attribute value for. attribute_name: The name of the attribute to retrieve. @@ -180,47 +244,45 @@ def convert_heat_buffer(self, asset: Asset) -> Tuple[Type[HeatBuffer], MODIFIERS This function converts the buffer object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the dimensions of the buffer needed for milp loss computation. Currently, assume - cylinder with height equal to radius. - - setting a minimum fill level and minimum asscociated milp - - Setting a maximum stored energy based on the size. - - Setting a cap on the thermal power. - - Setting the state (enabled, disabled, optional) - - Setting the relevant temperatures. - - Setting the relevant cost figures. + - Setting the dimensions of the buffer needed for heat loss computation. Currently, + assume cylinder with height equal to radius. + - setting a minimum fill level and minimum asscociated milp + - Setting a maximum stored energy based on the size. + - Setting a cap on the thermal power. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. Required ESDL fields: - --------------------- - - volume/capacity - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - volume/capacity + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with temperature specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified Optional ESDL fields: - --------------------- - - max(Dis)ChargeRate - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - Buffer class with modifiers + - max(Dis)ChargeRate + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + + Parameters: + asset : The asset object with its properties. + + Returns: + Buffer class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type == "HeatStorage" @@ -319,42 +381,39 @@ def convert_heat_demand(self, asset: Asset) -> Tuple[Type[HeatDemand], MODIFIERS This function converts the demand object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting a cap on the thermal power. - - Setting the state (enabled, disabled, optional) - - Setting the relevant temperatures. - - Setting the relevant cost figures. + - Setting a cap on the thermal power. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. Required ESDL fields: - --------------------- - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with temperature specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified Optional ESDL fields: - --------------------- - - power - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - Demand class with modifiers + - power + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + Demand class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"GenericConsumer", "HeatingDemand", "Losses"} @@ -381,18 +440,17 @@ def convert_airco(self, asset: Asset) -> Tuple[Type[Airco], MODIFIERS]: This function converts the airco object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting a cap on the thermal power. - - Setting the state (enabled, disabled, optional) - - Setting the relevant temperatures. - - Setting the relevant cost figures. + - Setting a cap on the thermal power. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. - Parameters - ---------- - asset : The asset object with its properties. + Parameters: + asset : The asset object with its properties. - Returns - ------- - Demand class with modifiers + Returns: + Demand class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"Airco"} @@ -418,16 +476,16 @@ def convert_cold_demand(self, asset: Asset) -> Tuple[Type[ColdDemand], MODIFIERS """ This function converts the demand object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting a cap on the thermal power. - - Setting the state (enabled, disabled, optional) - - Setting the relevant temperatures. - - Setting the relevant cost figures. - Parameters - ---------- - asset : The asset object with its properties. - Returns - ------- - Demand class with modifiers + - Setting a cap on the thermal power. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. + + Parameters: + asset : The asset object with its properties. + Returns: + Demand class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"CoolingDemand"} @@ -457,35 +515,32 @@ def convert_node(self, asset: Asset) -> Tuple[Type[Node], MODIFIERS]: - Setting the amount of connections Required ESDL fields: - --------------------- - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with (note only one inport and one outport): + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo (allowed to have multiple connections) - - carrier with temperature specified + - State + - InPort and OutPort with (note only one inport and one outport): + - xsi:type + - id + - name + - connectedTo (allowed to have multiple connections) + - carrier with temperature specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - Node class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + Node class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type == "Joint" @@ -516,9 +571,6 @@ def convert_node(self, asset: Asset) -> Tuple[Type[Node], MODIFIERS]: if isinstance(asset.in_ports[0].carrier, esdl.esdl.GasCommodity) or isinstance( asset.out_ports[0].carrier, esdl.esdl.GasCommodity ): - modifiers = dict( - n=sum_in + sum_out, - ) return GasNode, modifiers return Node, modifiers @@ -552,44 +604,41 @@ def convert_gas_pipe( This function converts the pipe object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the dimensions of the pipe needed for head loss computation. - - setting if a pipe is disconnecteable for the optimization. - - Setting the state (enabled, disabled, optional) - - Setting the relevant pressure. - - Setting the relevant cost figures. + - Setting the dimensions of the pipe needed for head loss computation. + - setting if a pipe is disconnecteable for the optimization. + - Setting the state (enabled, disabled, optional) + - Setting the relevant pressure. + - Setting the relevant cost figures. Required ESDL fields: - --------------------- - - Diameter/inner_diameter [m] - - length [m] - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with (note only one inport and one outport): + - Diameter/inner_diameter [m] + - length [m] + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with temperature specified + - State + - InPort and OutPort with (note only one inport and one outport): + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost - Parameters - ---------- - asset : The asset object with its properties. + Parameters: + asset : The asset object with its properties. - Returns - ------- - Pipe class with modifiers + Returns: + Pipe class with modifiers: + {automatically_add_modifiers_here} """ length = asset.attributes["length"] @@ -638,48 +687,45 @@ def convert_heat_pipe( This function converts the pipe object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the dimensions of the pipe needed for milp loss computation. Currently, assume - cylinder with height equal to radius. - - setting if a pipe is disconnecteable for the optimization. - - Setting the isolative properties of the pipe. - - Setting a cap on the thermal power. - - Setting the state (enabled, disabled, optional) - - Setting the relevant temperatures. - - Setting the relevant cost figures. + - Setting the dimensions of the pipe needed for milp loss computation. Currently, + assume cylinder with height equal to radius. + - setting if a pipe is disconnecteable for the optimization. + - Setting the isolative properties of the pipe. + - Setting a cap on the thermal power. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. Required ESDL fields: - --------------------- - - Diameter/inner_diameter [m] - - length [m] - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with (note only one inport and one outport): + - Diameter/inner_diameter [m] + - length [m] + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with temperature specified + - State + - InPort and OutPort with (note only one inport and one outport): + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified Optional ESDL fields: - --------------------- - - Material (for insulation) - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - Pipe class with modifiers + - Material (for insulation) + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + Pipe class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type == "Pipe" @@ -760,40 +806,37 @@ def convert_pump(self, asset: Asset) -> Tuple[Type[Pump], MODIFIERS]: This function converts the pump object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the state (enabled, disabled, optional) - - Setting the relevant temperatures. - - Setting the relevant cost figures. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. Required ESDL fields: - --------------------- - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with (note only one inport and one outport): + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with temperature specified + - State + - InPort and OutPort with (note only one inport and one outport): + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - Pump class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + Pump class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type == "Pump" @@ -827,13 +870,11 @@ def convert_generic_conversion( This function determines the type to which the generic conversion should be changed, based on the connected commodities and calls the required conversion function. - Parameters - ---------- - asset: The asset object with its properties. + Parameters: + asset: The asset object with its properties. - Returns - ------- - Transformer class or HeatExchanger class with modifiers + Returns: + Transformer class or HeatExchanger class """ assert asset.asset_type in { @@ -863,44 +904,41 @@ def convert_heat_exchanger(self, asset: Asset) -> Tuple[Type[HeatExchanger], MOD This function converts the Heat Exchanger object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the thermal power transfer efficiency. - - Setting a caps on the thermal power on both the primary and secondary side. - - Setting the state (enabled, disabled, optional) - - Setting the relevant temperatures (also checked for making sense physically). - - Setting the relevant cost figures. + - Setting the thermal power transfer efficiency. + - Setting a caps on the thermal power on both the primary and secondary side. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures (also checked for making sense physically). + - Setting the relevant cost figures. Required ESDL fields: - --------------------- - - heatTransferCoefficient/power - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - 2 InPorts and 2 OutPorts with: + - heatTransferCoefficient/power + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with temperature specified + - State + - 2 InPorts and 2 OutPorts with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified Optional ESDL fields: - --------------------- - - efficiency - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - HeatExchanger class with modifiers + - efficiency + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + HeatExchanger class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in { "GenericConversion", @@ -1022,46 +1060,43 @@ def convert_heat_pump( This function converts the HeatPump object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the COP of the heatpump - - Setting the cap on the electrical power. - - Setting a caps on the thermal power on both the primary and secondary side. - - Setting the state (enabled, disabled, optional) - - Setting the relevant temperatures. - - Setting the relevant cost figures. + - Setting the COP of the heatpump + - Setting the cap on the electrical power. + - Setting a caps on the thermal power on both the primary and secondary side. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. Required ESDL fields: - --------------------- - - power - - COP - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - 2 InPorts and 2 OutPorts with: + - power + - COP + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with temperature specified + - State + - 2 InPorts and 2 OutPorts with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified Optional ESDL fields: - --------------------- - - efficiency - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - HeatPump class with modifiers + - efficiency + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + HeatPump class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in { "HeatPump", @@ -1137,47 +1172,44 @@ def convert_heat_source(self, asset: Asset) -> Tuple[Type[HeatSource], MODIFIERS This function converts the Source object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the CO2 emission coefficient in case this is specified as an KPI - - Setting a caps on the thermal power. - - In case of a GeothermalSource object we read the _aggregation count to model the number - of doublets, we then assume that the power specified was also for one doublet and thus - increase the thermal power caps. - - Setting the state (enabled, disabled, optional) - - Setting the relevant temperatures. - - Setting the relevant cost figures. + - Setting the CO2 emission coefficient in case this is specified as an KPI + - Setting a caps on the thermal power. + - In case of a GeothermalSource object we read the _aggregation count to model the + number of doublets, we then assume that the power specified was also for one doublet + and thus increase the thermal power caps. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. Required ESDL fields: - --------------------- - - power - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - power + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with temperature specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified Optional ESDL fields: - --------------------- - - aggregationCount - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - Source class with modifiers + - aggregationCount + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + Source class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in { "GasHeater", @@ -1256,50 +1288,47 @@ def convert_ates(self, asset: Asset) -> Tuple[Type[ATES], MODIFIERS]: This function converts the ATES object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the milp loss coefficient based upon the efficiency. Here we assume that this - efficiency is realized in 100 days. - - Setting a caps on the thermal power. - - Similar as for the geothermal source we use the aggregation count to model the amount - of doublets. - - Setting caps on the maximum stored energy where we assume that at maximum you can charge - for 180 days at full power. - - Setting the state (enabled, disabled, optional) - - Setting the relevant temperatures. - - Setting the relevant cost figures. + - Setting the milp loss coefficient based upon the efficiency. Here we assume that this + efficiency is realized in 100 days. + - Setting a caps on the thermal power. + - Similar as for the geothermal source we use the aggregation count to model the amount + of doublets. + - Setting caps on the maximum stored energy where we assume that at maximum you can + charge for 180 days at full power. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. Required ESDL fields: - --------------------- - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with temperature specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified Optional ESDL fields: - --------------------- - - max(Dis)ChargeRate - - aquiferMidTemperature - - aggregationCount - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - ATES class with modifiers + - max(Dis)ChargeRate + - aquiferMidTemperature + - aggregationCount + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + ATES class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in { "ATES", @@ -1404,40 +1433,37 @@ def convert_control_valve(self, asset: Asset) -> Tuple[Type[ControlValve], MODIF This function converts the ControlValve object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the state (enabled, disabled, optional) - - Setting the relevant temperatures. - - Setting the relevant cost figures. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. Required ESDL fields: - --------------------- - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with temperature specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - ControlValve class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + ControlValve class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type == "Valve" @@ -1469,40 +1495,37 @@ def convert_check_valve(self, asset: Asset) -> Tuple[Type[CheckValve], MODIFIERS This function converts the CheckValve object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the state (enabled, disabled, optional) - - Setting the relevant temperatures. - - Setting the relevant cost figures. + - Setting the state (enabled, disabled, optional) + - Setting the relevant temperatures. + - Setting the relevant cost figures. Required ESDL fields: - --------------------- - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with temperature specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with temperature specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - CheckValve class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + CheckValve class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type == "CheckValve" @@ -1524,39 +1547,36 @@ def convert_electricity_demand(self, asset: Asset) -> Tuple[Type[ElectricityDema This function converts the ElectricityDemand object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the electrical power caps + - Setting the electrical power caps Required ESDL fields: - --------------------- - - power - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - power + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with voltage specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with voltage specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - ElectricityDemand class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + ElectricityDemand class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"ElectricityDemand", "Export"} @@ -1578,6 +1598,7 @@ def convert_electricity_demand(self, asset: Asset) -> Tuple[Type[ElectricityDema I=dict(min=0.0, max=i_max, nominal=i_nom), V=dict(min=min_voltage, nominal=min_voltage), ), + state=self.get_state(asset), **self._get_cost_figure_modifiers(asset), ) @@ -1622,39 +1643,36 @@ def convert_electricity_source(self, asset: Asset) -> Tuple[Type[ElectricitySour This function converts the ElectricitySource object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the electrical power caps + - Setting the electrical power caps Required ESDL fields: - --------------------- - - power - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - power + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with voltage specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with voltage specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - ElectricitySource class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + ElectricitySource class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in { "ElectricityProducer", @@ -1678,6 +1696,7 @@ def convert_electricity_source(self, asset: Asset) -> Tuple[Type[ElectricitySour I=dict(min=0.0, max=i_max, nominal=i_nom), Power=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), ), + state=self.get_state(asset), **self._get_cost_figure_modifiers(asset), ) @@ -1697,13 +1716,12 @@ def convert_electricity_storage( - Setting the electrical power caps - Parameters - ---------- - asset : The asset object with its properties. + Parameters: + asset : The asset object with its properties. - Returns - ------- - ElectricityStorage class with modifiers + Returns: + ElectricityStorage class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"Battery"} @@ -1729,6 +1747,7 @@ def convert_electricity_storage( Effective_power_charging=dict( min=-max_discharge, max=max_charge, nominal=max_charge / 2.0 ), + state=self.get_state(asset), **self._get_cost_figure_modifiers(asset), ) @@ -1739,38 +1758,35 @@ def convert_electricity_node(self, asset: Asset) -> Tuple[Type[ElectricityNode], This function converts the ElectricityNode object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the number of connections + - Setting the number of connections Required ESDL fields: - --------------------- - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo (allowed to have multiple connections) - - carrier with voltage specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo (allowed to have multiple connections) + - carrier with voltage specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - ElectricityNode class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + ElectricityNode class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"Bus"} @@ -1792,7 +1808,11 @@ def convert_electricity_node(self, asset: Asset) -> Tuple[Type[ElectricityNode], if isinstance(x, esdl.esdl.OutPort): sum_out += len(x.connectedTo) - modifiers = dict(voltage_nominal=nominal_voltage, n=sum_in + sum_out) + modifiers = dict( + voltage_nominal=nominal_voltage, + n=sum_in + sum_out, + state=self.get_state(asset), + ) return ElectricityNode, modifiers @@ -1801,41 +1821,38 @@ def convert_electricity_cable(self, asset: Asset) -> Tuple[Type[ElectricityCable This function converts the ElectricityCable object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the length of the cable used for power loss computation. - - setting the min and max current. + - Setting the length of the cable used for power loss computation. + - setting the min and max current. Required ESDL fields: - --------------------- - - length - - capacity - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - length + - capacity + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with voltage specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with voltage specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - ElectricityCable class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + ElectricityCable class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"ElectricityCable"} @@ -1873,6 +1890,7 @@ def convert_electricity_cable(self, asset: Asset) -> Tuple[Type[ElectricityCable I=dict(min=min_current, max=max_current, nominal=max_current / 2.0), Power=dict(min=min_power, max=max_power, nominal=max_power / 2.0), ), + state=self.get_state(asset), **self._get_cost_figure_modifiers(asset), ) return ElectricityCable, modifiers @@ -1882,16 +1900,15 @@ def convert_transformer(self, asset: Asset) -> Tuple[Type[Transformer], MODIFIER This function converts the Transformer object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - Setting the length of the cable used for power loss computation. - - setting the min and max current. + - Setting the length of the cable used for power loss computation. + - setting the min and max current. - Parameters - ---------- - asset : The asset object with its properties. + Parameters: + asset : The asset object with its properties. - Returns - ------- - ElectricityCable class with modifiers + Returns: + ElectricityCable class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"Transformer", "GenericConversion"} self._get_connected_i_nominal_and_max(asset) @@ -1913,6 +1930,7 @@ def convert_transformer(self, asset: Asset) -> Tuple[Type[Transformer], MODIFIER I=dict(min=0.0, max=i_max_out, nominal=i_nom_out), Power=dict(min=0.0, max=max_power, nominal=max_power / 2.0), ), + state=self.get_state(asset), **self._get_cost_figure_modifiers(asset), ) return Transformer, modifiers @@ -1922,38 +1940,38 @@ def convert_gas_demand(self, asset: Asset) -> Tuple[Type[GasDemand], MODIFIERS]: This function converts the GasDemand object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - ... + - Setting a cap on the mass flow produced. + - Setting the state (enabled, disabled, optional) + - Setting the relevant cost figures. + Required ESDL fields: - --------------------- - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with pressure specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with pressure specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - GasDemand class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + GasDemand class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"GasDemand", "Export"} @@ -1987,6 +2005,7 @@ def convert_gas_demand(self, asset: Asset) -> Tuple[Type[GasDemand], MODIFIERS]: mass_flow=dict(nominal=mass_flow_nominal_g_per_s, max=max_mass_flow_g_per_s), Hydraulic_power=dict(min=0.0, max=0.0, nominal=q_nominal * pressure), ), + state=self.get_state(asset), **self._get_cost_figure_modifiers(asset), ) @@ -1997,38 +2016,37 @@ def convert_gas_source(self, asset: Asset) -> Tuple[Type[GasSource], MODIFIERS]: This function converts the GasDemand object in esdl to a set of modifiers that can be used in a pycml object. Most important: - - ... + - Setting a cap on the mass flow produced. + - Setting the state (enabled, disabled, optional) + - Setting the relevant cost figures. Required ESDL fields: - --------------------- - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with pressure specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with pressure specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - GasDemand class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + GasDemand class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"GasProducer", "Import"} @@ -2055,6 +2073,7 @@ def convert_gas_source(self, asset: Asset) -> Tuple[Type[GasSource], MODIFIERS]: mass_flow=bounds_nominals_mass_flow_g_per_s, Hydraulic_power=dict(nominal=q_nominal * pressure), ), + state=self.get_state(asset), **self._get_cost_figure_modifiers(asset), ) @@ -2066,42 +2085,39 @@ def convert_electrolyzer(self, asset: Asset) -> Tuple[Type[Electrolyzer], MODIFI used in a pycml object. Required ESDL fields: - --------------------- - - power - - minLoad - - maxLoad - - effMinLoad - - effMaxLoad - - efficiency - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - power + - minLoad + - maxLoad + - effMinLoad + - effMaxLoad + - efficiency + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with voltage/pressure specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with voltage/pressure specified Optional ESDL fields: - --------------------- - - technicalLifetime - - powerFactor - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - Electrolyzer class with modifiers + - technicalLifetime + - powerFactor + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + Electrolyzer class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"Electrolyzer"} @@ -2168,6 +2184,7 @@ def equations(x): I=dict(min=0.0, max=i_max, nominal=i_nom), V=dict(min=v_min, nominal=v_min), ), + state=self.get_state(asset), **self._get_cost_figure_modifiers(asset), ) @@ -2179,36 +2196,33 @@ def convert_gas_tank_storage(self, asset: Asset) -> Tuple[Type[GasTankStorage], used in a pycml object. Required ESDL fields: - --------------------- - - workingVolume - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - workingVolume + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with pressure specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with pressure specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - GasTankStorage class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + GasTankStorage class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"GasStorage"} @@ -2235,6 +2249,7 @@ def convert_gas_tank_storage(self, asset: Asset) -> Tuple[Type[GasTankStorage], mass_flow=dict(nominal=q_nominal * density), Hydraulic_power=dict(nominal=q_nominal * pressure), ), + state=self.get_state(asset), **self._get_cost_figure_modifiers(asset), ) @@ -2246,35 +2261,32 @@ def convert_gas_substation(self, asset: Asset) -> Tuple[Type[GasSubstation], MOD can be used in a pycml object. Required ESDL fields: - --------------------- - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with pressure specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with pressure specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - GasSubstation class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + GasSubstation class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"GasConversion", "PressureReducingValve"} @@ -2301,6 +2313,7 @@ def convert_gas_substation(self, asset: Asset) -> Tuple[Type[GasSubstation], MOD mass_flow=dict(nominal=q_nom_out * density_out), Hydraulic_power=dict(nominal=q_nom_out * pressure_out), ), + state=self.get_state(asset), **self._get_cost_figure_modifiers(asset), ) @@ -2312,35 +2325,32 @@ def convert_compressor(self, asset: Asset) -> Tuple[Type[Compressor], MODIFIERS] used in a pycml object. Required ESDL fields: - --------------------- - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with pressure specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with pressure specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - Compressor class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + Compressor class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"Compressor"} @@ -2367,6 +2377,7 @@ def convert_compressor(self, asset: Asset) -> Tuple[Type[Compressor], MODIFIERS] mass_flow=dict(nominal=q_nom_out * density_out), Hydraulic_power=dict(nominal=q_nom_out * pressure_out), ), + state=self.get_state(asset), **self._get_cost_figure_modifiers(asset), ) @@ -2378,36 +2389,33 @@ def convert_gas_boiler(self, asset: Asset) -> Tuple[GasBoiler, MODIFIERS]: used in a pycml object. Required ESDL fields: - --------------------- - - power - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - power + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with pressure/temperature specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with pressure/temperature specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - GasBoiler class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + GasBoiler class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"GasHeater"} @@ -2445,7 +2453,6 @@ def convert_gas_boiler(self, asset: Asset) -> Tuple[GasBoiler, MODIFIERS]: discount_rate=self.get_asset_attribute_value( asset, "discountRate", default_value=0.0, min_value=0.0, max_value=100.0 ), - state=self.get_state(asset), Heat_source=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), Heat_flow=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), HeatIn=dict(Hydraulic_power=dict(nominal=q_nominals["Q_nominal"] * 16.0e5)), @@ -2454,6 +2461,7 @@ def convert_gas_boiler(self, asset: Asset) -> Tuple[GasBoiler, MODIFIERS]: density=density, energy_content=energy_content, GasIn=dict(Q=dict(min=0.0, nominal=q_nominals["Q_nominal_gas"])), + state=self.get_state(asset), **q_nominals, **self._supply_return_temperature_modifiers(asset), **self._rho_cp_modifiers, @@ -2468,36 +2476,33 @@ def convert_elec_boiler(self, asset: Asset) -> Tuple[ElecBoiler, MODIFIERS]: used in a pycml object. Required ESDL fields: - --------------------- - - power - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - power + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with voltage/temperature specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with voltage/temperature specified Optional ESDL fields: - --------------------- - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - GasBoiler class with modifiers + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + GasBoiler class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"ElectricBoiler"} @@ -2535,7 +2540,6 @@ def convert_elec_boiler(self, asset: Asset) -> Tuple[ElecBoiler, MODIFIERS]: discount_rate=self.get_asset_attribute_value( asset, "discountRate", default_value=0.0, min_value=0.0, max_value=100.0 ), - state=self.get_state(asset), Heat_source=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), Heat_flow=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), HeatIn=dict(Hydraulic_power=dict(nominal=q_nominal["Q_nominal"] * 16.0e5)), @@ -2549,6 +2553,7 @@ def convert_elec_boiler(self, asset: Asset) -> Tuple[ElecBoiler, MODIFIERS]: min_voltage=min_voltage, elec_power_nominal=max_supply, efficiency=eff, + state=self.get_state(asset), **q_nominal, **self._supply_return_temperature_modifiers(asset), **self._rho_cp_modifiers, @@ -2565,37 +2570,34 @@ def convert_air_water_heat_pump_elec( used in a pycml object. Required ESDL fields: - --------------------- - - power - - id (this id must be unique) - - name (this name must be unique) - - xsi:type - - State - - InPort and OutPort with: + - power + - id (this id must be unique) + - name (this name must be unique) - xsi:type - - id - - name - - connectedTo - - carrier with voltage/temperature specified + - State + - InPort and OutPort with: + - xsi:type + - id + - name + - connectedTo + - carrier with voltage/temperature specified Optional ESDL fields: - --------------------- - - COP - - technicalLifetime - - CostInformation: discountRate - - CostInformation: marginalCost - - CostInformation: installationCost - - CostInformation: investmentCost - - CostInformation: fixedOperationalCost - - CostInformation: variableOperationalCost - - Parameters - ---------- - asset : The asset object with its properties. - - Returns - ------- - AirWaterHeatPumpElec class with modifiers + - COP + - technicalLifetime + - CostInformation: discountRate + - CostInformation: marginalCost + - CostInformation: installationCost + - CostInformation: investmentCost + - CostInformation: fixedOperationalCost + - CostInformation: variableOperationalCost + + Parameters: + asset : The asset object with its properties. + + Returns: + AirWaterHeatPumpElec class with modifiers: + {automatically_add_modifiers_here} """ assert asset.asset_type in {"HeatPump"} @@ -2629,7 +2631,6 @@ def convert_air_water_heat_pump_elec( discount_rate=self.get_asset_attribute_value( asset, "discountRate", default_value=0.0, min_value=0.0, max_value=100.0 ), - state=self.get_state(asset), Heat_source=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), Heat_flow=dict(min=0.0, max=max_supply, nominal=max_supply / 2.0), HeatIn=dict(Hydraulic_power=dict(nominal=q_nominal["Q_nominal"] * 16.0e5)), @@ -2643,6 +2644,7 @@ def convert_air_water_heat_pump_elec( min_voltage=min_voltage, elec_power_nominal=max_supply, cop=cop, + state=self.get_state(asset), **q_nominal, **self._supply_return_temperature_modifiers(asset), **self._rho_cp_modifiers, diff --git a/src/mesido/esdl/esdl_model_base.py b/src/mesido/esdl/esdl_model_base.py index 3b6e655bc..73fa09b3b 100644 --- a/src/mesido/esdl/esdl_model_base.py +++ b/src/mesido/esdl/esdl_model_base.py @@ -34,15 +34,11 @@ def _esdl_convert( at the connections specified in the esdl and create the relevant maps between ports to then also connect the pycml ports of the assets. - Parameters - ---------- - converter : class with the different converter functions for all asset types. - assets : a dict with all the parsed esdl assets and their attributes - prefix : prefix for the name of the model type Heat or QTH at the moment + Parameters: + converter : class with the different converter functions for all asset types. + assets : a dict with all the parsed esdl assets and their attributes + prefix : prefix for the name of the model type Heat or QTH at the moment - Returns - ------- - None """ # Sometimes we need information of one component in order to convert # another. For example, the nominal discharge of a pipe is used to set From f1ee61aa876ed148c20d23b16caeb77a0a8f8546 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Tue, 15 Apr 2025 13:29:59 +0200 Subject: [PATCH 261/275] 271 potential errors being persistent in backend (#274) reset POTENTIAL_ERRORS in the grow_workflow --- CHANGELOG.md | 3 ++- src/mesido/potential_errors.py | 6 ++++++ src/mesido/workflows/grow_workflow.py | 3 +++ tests/test_temperature_ates_hp.py | 8 +++++++- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f9f13ff8..12dae1899 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ -# [Unreleased-main] - 2025-02-24 +# [Unreleased-main] - 2025-04-14 ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class @@ -23,6 +23,7 @@ - Option for electricity cables to be unidirectional - Upgraded rtctools to v 2.6.1 - Updated Casadi to 3.6.7 with gil fixes (see https://github.com/casadi/casadi/releases/tag/nightly-gil_release) +- Reset POTENTIAL_ERRORS class instance (Singleton) in grow_workflow due to it being persistent ## Fixed - Bugfix: gas boiler mass flow constraint units diff --git a/src/mesido/potential_errors.py b/src/mesido/potential_errors.py index e8ec50791..1bb0aa087 100644 --- a/src/mesido/potential_errors.py +++ b/src/mesido/potential_errors.py @@ -62,8 +62,14 @@ def convert_to_exception( ) +# When adding POTENTIAL_ERRORS to a workflow a reset thereof is required due to it being a +# persistent object POTENTIAL_ERRORS = PotentialErrors() def get_potential_errors() -> PotentialErrors: return POTENTIAL_ERRORS + + +def reset_potential_errors() -> None: + POTENTIAL_ERRORS._gathered_potential_issues = {} diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 7f44c8071..91fb76f6a 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -8,6 +8,7 @@ from mesido.esdl.esdl_additional_vars_mixin import ESDLAdditionalVarsMixin from mesido.esdl.esdl_mixin import ESDLMixin from mesido.head_loss_class import HeadLossOption +from mesido.potential_errors import reset_potential_errors from mesido.techno_economic_mixin import TechnoEconomicMixin from mesido.workflows.goals.minimize_tco_goal import MinimizeTCO from mesido.workflows.io.write_output import ScenarioOutput @@ -151,6 +152,8 @@ class EndScenarioSizing( def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + reset_potential_errors() # This needed to clear the Singleton which is persistent + # default setting to cater for ~ 10kW heat, DN800 pipe at dT = 40 degrees Celcuis self.heat_network_settings["minimum_velocity"] = 1.0e-4 diff --git a/tests/test_temperature_ates_hp.py b/tests/test_temperature_ates_hp.py index ef323f449..d8f61ccb2 100644 --- a/tests/test_temperature_ates_hp.py +++ b/tests/test_temperature_ates_hp.py @@ -127,7 +127,7 @@ def test_ates_temperature(self): # TODO: potentially update example such that the commented checks will also hold. # np.testing.assert_array_less(heat_pump_sec, geo_source) - charging = np.array([int(val > 0) for val in heat_ates]) + charging = np.array([int(val > tol) for val in heat_ates]) # array less then because ates charging boolean can be either 0 or 1 when there is no flow, # or just flow to compensate the heatloss np.testing.assert_array_less(np.ones(len(hex_disabled)) - tol, hex_disabled + hp_disabled) @@ -198,3 +198,9 @@ def test_ates_max_flow(self): * (ates_temperature[demand_not_matched] - ates_temp_ret) ), ) + + +if __name__ == "__main__": + a = TestAtesTemperature() + a.test_ates_temperature() + a.test_ates_max_flow() From c718f08f01b027d9504b20fab555d1d508f2ea13 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Thu, 17 Apr 2025 09:22:08 +0200 Subject: [PATCH 262/275] Revert "271 potential errors being persistent in backend" (#276) * only fix pandapower dependency issue in test environment --- CHANGELOG.md | 5 +++-- tests/test_temperature_ates_hp.py | 6 ------ tox.ini | 1 + 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 12dae1899..2b1a92629 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ -# [Unreleased-main] - 2025-04-14 +# [Unreleased-main] - 2025-04-15 ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class @@ -12,6 +12,8 @@ - Generic functions for postprocessing are added. - Generic function to adapt timeseries from hourly timesteps to user-defined timesteps by averaging. - Error check for NaN values in profile data (csv & influxDB) +- Specify package (deepdiff used in pandapipes validation test) version number in test environment +- Reset POTENTIAL_ERRORS class instance (Singleton) in grow_workflow due to it being persistent ## Changed - Updated the Financial section of the documentation to explain the annualized discounted costs calculation. @@ -23,7 +25,6 @@ - Option for electricity cables to be unidirectional - Upgraded rtctools to v 2.6.1 - Updated Casadi to 3.6.7 with gil fixes (see https://github.com/casadi/casadi/releases/tag/nightly-gil_release) -- Reset POTENTIAL_ERRORS class instance (Singleton) in grow_workflow due to it being persistent ## Fixed - Bugfix: gas boiler mass flow constraint units diff --git a/tests/test_temperature_ates_hp.py b/tests/test_temperature_ates_hp.py index d8f61ccb2..e6623a4af 100644 --- a/tests/test_temperature_ates_hp.py +++ b/tests/test_temperature_ates_hp.py @@ -198,9 +198,3 @@ def test_ates_max_flow(self): * (ates_temperature[demand_not_matched] - ates_temp_ret) ), ) - - -if __name__ == "__main__": - a = TestAtesTemperature() - a.test_ates_temperature() - a.test_ates_max_flow() diff --git a/tox.ini b/tox.ini index 1cdcd134d..692fb3723 100644 --- a/tox.ini +++ b/tox.ini @@ -16,6 +16,7 @@ deps = numpy pandapipes==0.10.0 pandapower==2.14.6 + deepdiff==7.0.1 extras = all # Main tests (typical normal test) From 196920455c9529fb9aea234b135952c88465f529 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Tue, 29 Apr 2025 16:00:17 +0200 Subject: [PATCH 263/275] Profile adaptation to copying a year (#278) Added a profile adaptation function to allow for copying the profile for the given number of years, relevant for multi-year optimization, independent on the timestep size of the year. --- src/mesido/workflows/utils/adapt_profiles.py | 68 ++++++++++++++++++++ tests/test_profile_parsing.py | 56 ++++++++++++++-- 2 files changed, 119 insertions(+), 5 deletions(-) diff --git a/src/mesido/workflows/utils/adapt_profiles.py b/src/mesido/workflows/utils/adapt_profiles.py index e8145b7a8..7a6759ac4 100644 --- a/src/mesido/workflows/utils/adapt_profiles.py +++ b/src/mesido/workflows/utils/adapt_profiles.py @@ -3,6 +3,7 @@ import datetime import logging import operator +import sys import numpy as np @@ -217,6 +218,73 @@ def adapt_hourly_profile_averages_timestep_size(problem, problem_step_size_hours logger.info("Profile data has been adapted to a common format") +def adapt_profile_to_copy_for_number_of_years(problem, number_of_years: int): + """ + Adapt yearly profile to a multi-year profile. + Copying the profile for the given number of years, where the timeline is updated with the + sequential years. + + """ + + new_datastore = DataStore(problem) + new_datastore.reference_datetime = problem.io.datetimes[0] + + org_timeseries = problem.io.datetimes + + # If a problem has already been modified, the last timestamp should be exactly 1 year after + # the first timestamp. + + skip_last_day = False + if org_timeseries[-1] == org_timeseries[0] + datetime.timedelta(days=365): + skip_last_day = True + elif org_timeseries[0] + datetime.timedelta(days=365) - org_timeseries[ + -1 + ] <= datetime.timedelta(hours=1): + skip_last_day = False + else: + sys.exit("The profile should be a year profile.") + + for ensemble_member in range(problem.ensemble_size): + parameters = problem.parameters(ensemble_member) + + new_date_times = list() + if skip_last_day is False: + new_date_times = org_timeseries.copy() + else: + new_date_times = org_timeseries[:-1].copy() + + for year in range(1, number_of_years): + if year == number_of_years - 1 or skip_last_day is False: + new_date_times.extend( + [i + year * datetime.timedelta(days=365) for i in org_timeseries] + ) + else: + new_date_times.extend( + [i + year * datetime.timedelta(days=365) for i in org_timeseries[:-1]] + ) + + new_date_times = np.asarray(new_date_times) + parameters["times"] = [x.timestamp() for x in new_date_times] + + for var_name in problem.io.get_timeseries_names(): + old_data = problem.io.get_timeseries(var_name)[1] + if skip_last_day: + new_data = np.append(np.tile(old_data[:-1], number_of_years), old_data[-1]) + else: + new_data = np.tile(old_data, number_of_years) + new_datastore.set_timeseries( + variable=var_name, + datetimes=new_date_times, + values=np.asarray(new_data), + ensemble_member=ensemble_member, + check_duplicates=True, + ) + + problem.io = new_datastore + + logger.info("Profile data has been adapted to a common format") + + def select_profiles_for_update( problem, new_datastore: DataStore, new_date_times: np.array, ensemble_member: int ): diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index 8a42ade5b..b4b083361 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -12,7 +12,10 @@ from mesido.exceptions import MesidoAssetIssueError from mesido.potential_errors import MesidoAssetIssueType, PotentialErrors from mesido.workflows import EndScenarioSizingStaged -from mesido.workflows.utils.adapt_profiles import adapt_hourly_profile_averages_timestep_size +from mesido.workflows.utils.adapt_profiles import ( + adapt_hourly_profile_averages_timestep_size, + adapt_profile_to_copy_for_number_of_years, +) from mesido.workflows.utils.error_types import mesido_issue_type_gen_message import numpy as np @@ -40,8 +43,10 @@ def test_profile_updating(self): """ Tests the updating of the profiles. The peak day hourly with averaged 5 days is currently tested in test_cold_demand.py. - This test covers the profile updating with varies timescales. Of amongst others the - adapt_hourly_profile_averages_timestep_size method in adapt_profiles.py + This test covers the profile updating with varying timescales. Of amongst others the + adapt_hourly_profile_averages_timestep_size method and the + adapt_profile_to_copy_for_number_of_years method in adapt_profiles.py + Returns: """ @@ -57,8 +62,8 @@ def test_profile_updating(self): class ProfileUpdateHourly(HeatProblem): def read(self): """ - Reads the yearly profile with hourly time steps and adapt to a daily averaged - profile except for the day with the peak demand. + Reads a profile with hourly time steps and adapts and adapts to averages over the + specified number of hours. """ super().read() @@ -82,6 +87,47 @@ def read(self): # TODO: also check the values of the averages + import models.test_case_small_network_ates_buffer_optional_assets.src.run_ates as run_ates + + base_folder = Path(run_ates.__file__).resolve().parent.parent + model_folder = base_folder / "model" + input_folder = base_folder / "input" + problem_years = 3 + + class ProfileUpdateMultiYear(HeatProblem): + def read(self): + """ + Reads the yearly profile with unspecified time steps and copies the profile for + multiple years. + """ + super().read() + + adapt_profile_to_copy_for_number_of_years(self, problem_years) + + problem = ProfileUpdateMultiYear( + esdl_parser=ESDLFileParser, + base_folder=base_folder, + model_folder=model_folder, + input_folder=input_folder, + esdl_file_name="test_case_small_network_with_ates_with_buffer_all_optional.esdl", + profile_reader=ProfileReaderFromFile, + input_timeseries_file="Warmte_test.csv", + ) + problem.pre() + + # TODO: update checks + len_org_time_serie = 8760 # the last timestep is not copied + timeseries_updated = problem.io.datetimes + dts = list( + map( + operator.sub, + timeseries_updated[len_org_time_serie:-1], + timeseries_updated[0:-len_org_time_serie], + ) + ) + assert len(timeseries_updated) == len_org_time_serie * problem_years + assert all(dt.days == 365 for dt in dts) + class TestPotentialErrors(unittest.TestCase): def test_asset_potential_errors(self): From dbc6466b5f7f75d49f1b04a4d80423591a03592c Mon Sep 17 00:00:00 2001 From: tolga-akan Date: Thu, 8 May 2025 11:49:26 +0200 Subject: [PATCH 264/275] change definition of power value of heat pump (#279) * change definition of power value of heat pump --- CHANGELOG.md | 3 ++- src/mesido/esdl/esdl_heat_model.py | 13 +++++++------ src/mesido/workflows/io/write_output.py | 4 ++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b1a92629..8eee85ade 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ -# [Unreleased-main] - 2025-04-15 +# [Unreleased-main] - 2025-05-07 ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class @@ -25,6 +25,7 @@ - Option for electricity cables to be unidirectional - Upgraded rtctools to v 2.6.1 - Updated Casadi to 3.6.7 with gil fixes (see https://github.com/casadi/casadi/releases/tag/nightly-gil_release) +- Definition of power attribute of water-to-water heat pump is changed from electrical power to secondary heat power ## Fixed - Bugfix: gas boiler mass flow constraint units diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index b7f65b3b5..86d34499a 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1113,18 +1113,19 @@ def convert_heat_pump( _, modifiers = self.convert_air_water_heat_pump_elec(asset) return AirWaterHeatPumpElec, modifiers - if not asset.attributes["power"]: - raise _ESDLInputException(f"{asset.name} has no power specified") - else: - power_electrical = asset.attributes["power"] - if not asset.attributes["COP"]: raise _ESDLInputException( - f"{asset.name} has not COP specified, this is required for the model" + f"{asset.name} has no COP specified, this is required for the model" ) else: cop = asset.attributes["COP"] + if not asset.attributes["power"]: + raise _ESDLInputException(f"{asset.name} has no power specified") + else: + power_secondary = asset.attributes["power"] + power_electrical = power_secondary / cop + params_t = self._supply_return_temperature_modifiers(asset) params_q = self._get_connected_q_nominal(asset) prim_heat = dict( diff --git a/src/mesido/workflows/io/write_output.py b/src/mesido/workflows/io/write_output.py index c865b9449..73bc11665 100644 --- a/src/mesido/workflows/io/write_output.py +++ b/src/mesido/workflows/io/write_output.py @@ -975,9 +975,9 @@ def _name_to_asset(name): * parameters[f"{name}.dT"] ) elif asset.name in self.energy_system_components.get("heat_pump", []): - # Note: Electrical capacity and not the heat capacity + # Note: The heat capacity and not the electrical capacity # TODO: in the future we need to cater for varying COP as well - asset.power = results[f"{name}__max_size"][0] / parameters[f"{name}.COP"] + asset.power = results[f"{name}__max_size"][0] else: asset.power = max_size if not placed: From 671c010b299f96c7d164f37b6bc3617617ad9f37 Mon Sep 17 00:00:00 2001 From: Femke Janssen <137757789+FJanssen-TNO@users.noreply.github.com> Date: Tue, 13 May 2025 09:03:31 +0200 Subject: [PATCH 265/275] Generalizing setting profiles (#282) Generalized select profiles for updates, such that all profiles are set to the new timeseries. --- src/mesido/workflows/utils/adapt_profiles.py | 74 +------------------- 1 file changed, 2 insertions(+), 72 deletions(-) diff --git a/src/mesido/workflows/utils/adapt_profiles.py b/src/mesido/workflows/utils/adapt_profiles.py index 7a6759ac4..013dc6b6a 100644 --- a/src/mesido/workflows/utils/adapt_profiles.py +++ b/src/mesido/workflows/utils/adapt_profiles.py @@ -301,79 +301,9 @@ def select_profiles_for_update( Returns: """ - heat_demands = problem.energy_system_components.get("heat_demand", []) - cold_demands = problem.energy_system_components.get("cold_demand", []) - - for demand in heat_demands: - var_name = f"{demand}.target_heat_demand" - set_data_with_averages( - datastore=new_datastore, - variable_name=var_name, - ensemble_member=ensemble_member, - new_date_times=new_date_times, - problem=problem, - ) - - for demand in cold_demands: - var_name = f"{demand}.target_cold_demand" - set_data_with_averages( - datastore=new_datastore, - variable_name=var_name, - ensemble_member=ensemble_member, - new_date_times=new_date_times, - problem=problem, - ) - - # TODO: this has not been tested but is required if a production profile is included - # in the data - for source in problem.energy_system_components.get("heat_source", []): - var_name = f"{source}.maximum_heat_source" - try: - problem.get_timeseries(variable=var_name, ensemble_member=ensemble_member) - except KeyError: - logger.debug( - f"Source {source} has no production profile, thus it also will " - f"not be adapted to a different time scales." - ) - continue - set_data_with_averages( - datastore=new_datastore, - variable_name=var_name, - ensemble_member=ensemble_member, - new_date_times=new_date_times, - problem=problem, - ) - - for source in problem.energy_system_components.get("electricity_source", []): - var_name = f"{source}.maximum_electricity_source" - try: - problem.get_timeseries(variable=var_name, ensemble_member=ensemble_member) - except KeyError: - logger.debug( - f"Source {source} has no production profile, thus it also will " - f"not be adapted to a different time scales." - ) - continue - - set_data_with_averages( - datastore=new_datastore, - variable_name=var_name, - ensemble_member=ensemble_member, - new_date_times=new_date_times, - problem=problem, - ) - - for carrier_properties in problem.esdl_carriers.values(): - carrier_name = carrier_properties["name"] - var_name = f"{carrier_name}.price_profile" - try: - problem.get_timeseries(variable=var_name, ensemble_member=ensemble_member) - except KeyError: - logger.debug( - f"Carrier {carrier_name} has no price profile, thus it also will " - f"not be adapted to different time scales." - ) + timeseries_names = problem.io.get_timeseries_names() + for var_name in timeseries_names: set_data_with_averages( datastore=new_datastore, variable_name=var_name, From 8db3bf4abeca070393c4b54cf90e949ba371440e Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Thu, 15 May 2025 10:34:56 +0200 Subject: [PATCH 266/275] moved location of potential error reset (#284) to prevent deletion of potential errors created in asset_to_component_base.py --- src/mesido/workflows/grow_workflow.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 91fb76f6a..37c5a7df0 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -150,10 +150,10 @@ class EndScenarioSizing( """ def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - reset_potential_errors() # This needed to clear the Singleton which is persistent + super().__init__(*args, **kwargs) + # default setting to cater for ~ 10kW heat, DN800 pipe at dT = 40 degrees Celcuis self.heat_network_settings["minimum_velocity"] = 1.0e-4 From f979d7576166de0d0b34848971f3c0897be0c47c Mon Sep 17 00:00:00 2001 From: tolga-akan Date: Tue, 20 May 2025 08:32:28 +0200 Subject: [PATCH 267/275] =?UTF-8?q?Heat=20pump=20power=20upper=20bound=20i?= =?UTF-8?q?s=20defined=20as=20the=20upper=20bound=20of=20heat=20pum?= =?UTF-8?q?=E2=80=A6=20(#288)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit removed (cop +1) for upper bounds --- CHANGELOG.md | 3 ++- src/mesido/esdl/esdl_heat_model.py | 8 ++++---- tests/test_multiple_in_and_out_port_components.py | 10 ++++++++++ 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8eee85ade..5c94c1202 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ -# [Unreleased-main] - 2025-05-07 +# [Unreleased-main] - 2025-05-16 ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class @@ -26,6 +26,7 @@ - Upgraded rtctools to v 2.6.1 - Updated Casadi to 3.6.7 with gil fixes (see https://github.com/casadi/casadi/releases/tag/nightly-gil_release) - Definition of power attribute of water-to-water heat pump is changed from electrical power to secondary heat power +- Enforce water-to-water heat pump upper bound heat capacity to conform to elect_power*cop ## Fixed - Bugfix: gas boiler mass flow constraint units diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 86d34499a..93bc74a8b 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1140,7 +1140,7 @@ def convert_heat_pump( params["Primary"] = {**params_t["Primary"], **params_q["Primary"], **prim_heat} params["Secondary"] = {**params_t["Secondary"], **params_q["Secondary"], **sec_heat} - max_power = power_electrical * (1.0 + cop) # TODO: dit kan zijn power_electrical*cop + max_power_heat = power_secondary modifiers = dict( COP=cop, @@ -1156,9 +1156,9 @@ def convert_heat_pump( asset, "discountRate", default_value=0.0, min_value=0.0, max_value=100.0 ), Power_elec=dict(min=0.0, max=power_electrical, nominal=power_electrical / 2.0), - Primary_heat=dict(min=0.0, max=max_power, nominal=max_power / 2.0), - Secondary_heat=dict(min=0.0, max=max_power, nominal=max_power / 2.0), - Heat_flow=dict(min=0.0, max=max_power, nominal=max_power / 2.0), + Primary_heat=dict(min=0.0, max=max_power_heat, nominal=max_power_heat / 2.0), + Secondary_heat=dict(min=0.0, max=max_power_heat, nominal=max_power_heat / 2.0), + Heat_flow=dict(min=0.0, max=max_power_heat, nominal=max_power_heat / 2.0), state=self.get_state(asset), **self._get_cost_figure_modifiers(asset), **params, diff --git a/tests/test_multiple_in_and_out_port_components.py b/tests/test_multiple_in_and_out_port_components.py index f59a3e700..d284f46ff 100644 --- a/tests/test_multiple_in_and_out_port_components.py +++ b/tests/test_multiple_in_and_out_port_components.py @@ -313,6 +313,8 @@ def test_heat_pump(self): - Standard checks for demand matching, heat to discharge and energy conservation - Check that the heat pump is producing according to its COP - Check that Secondary source use in minimized + - Check that the upper bound value for heat producing capacity is the same as specified in + the esdl """ @@ -384,6 +386,14 @@ def energy_system_options(self): np.testing.assert_allclose(power_elec * parameters["GenericConversion_3d3f.COP"], sec_heat) np.testing.assert_allclose(power_elec + prim_heat, sec_heat) + # Check that the heat pump upper bound + for key in solution.esdl_assets.keys(): + if solution.esdl_assets[key].asset_type == "HeatPump": + np.testing.assert_equal( + solution.bounds()["GenericConversion_3d3f.Heat_flow"][1], + solution.esdl_assets[key].attributes["power"], + ) + if __name__ == "__main__": import time From f6367396948816ac0433765dedb4a52cdb848400 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Tue, 20 May 2025 08:34:32 +0200 Subject: [PATCH 268/275] Add progress info for OMOTES backend & DTK front end (#286) Added estimate of grow workflow taks completion to be used in the OMOTES backend --- CHANGELOG.md | 1 + src/mesido/workflows/grow_workflow.py | 59 ++++++++ tests/test_progress_update.py | 207 ++++++++++++++++++++++++++ 3 files changed, 267 insertions(+) create mode 100644 tests/test_progress_update.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c94c1202..5bc24017b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ - Error check for NaN values in profile data (csv & influxDB) - Specify package (deepdiff used in pandapipes validation test) version number in test environment - Reset POTENTIAL_ERRORS class instance (Singleton) in grow_workflow due to it being persistent +- Estimate grow worlfow progress status and update OMOTES progress status ## Changed - Updated the Financial section of the documentation to explain the annualized discounted costs calculation. diff --git a/src/mesido/workflows/grow_workflow.py b/src/mesido/workflows/grow_workflow.py index 37c5a7df0..f376c4d61 100644 --- a/src/mesido/workflows/grow_workflow.py +++ b/src/mesido/workflows/grow_workflow.py @@ -87,6 +87,60 @@ def _mip_gap_settings(mip_gap_name: str, problem) -> Dict[str, float]: return options +def estimate_and_update_progress_status(self, priority): + """Estimate the progress of the optimization workflow. Currently the tasks completed in this + workflow is used to estimate the progress (ratio between 0 and 1). The task completed ratio is + the number of tasks completed divided by the total number of tasks. The total number of tasks + is estimated based on the stage number and the priority of the task. The progress is then + passed to the workflow progress status function (OMOTES back end).""" + # TODO: the estimates below needs to be improved in the future instead of using task numbers + + if self._workflow_progress_status is None: + logger.error("The workflow progress status function is not set. Cannot estimate progress.") + exit(1) + + if self._total_stages == 1: + denominator = 2.0 + if priority == 1: # match heat demand + numerator = 1.0 + elif priority == 2: # minimize TCO + numerator = 2.0 + else: + sys.exit( + f"The function does not cater for stage number:{self._stage} & priority:{priority}" + ) + elif self._total_stages == 2: + denominator = 4.0 + 2.0 * self.heat_network_settings["minimize_head_losses"] + if priority == 1 and self._stage == 1: # match heat demand + numerator = 1.0 + elif priority == 2 and self._stage == 1: # minimize TCO + numerator = 2.0 + elif priority == 1 and self._stage == 2: # match heat demand + numerator = 3.0 + elif priority == 2 and self._stage == 2: # minimize TCO + numerator = 4.0 + elif priority == (2**31 - 2) and self._stage == 2: # head loss optimization + numerator = 5.0 + elif priority == (2**31 - 1) and self._stage == 2: # hydraulic power optimization + numerator = 6.0 + else: + sys.exit( + f"The function does not cater for stage number:{self._stage} & priority:{priority}" + ) + else: + sys.exit( + f"The stage number: {self._stage} is higher then the total stages" + f" expected: {self._total_stages}. Assuming the stage numbering starts at 1." + ) + + # This kwarg only exists when the code is used in OMOTES backend + task_quantity_perc_completed = numerator / denominator + self._workflow_progress_status( + task_quantity_perc_completed, + f"Optimization task {numerator} out of {denominator} has completed", + ) # In the future this ratio might differ from the step being completed + + class SolverHIGHS: def solver_options(self): options = super().solver_options() @@ -184,6 +238,8 @@ def __init__(self, *args, **kwargs): self._save_json = False + self._workflow_progress_status = kwargs.get("update_progress_function", None) + def parameters(self, ensemble_member): parameters = super().parameters(ensemble_member) parameters["peak_day_index"] = self.__indx_max_peak @@ -350,6 +406,9 @@ def priority_completed(self, priority): if priority == 1 and self.objective_value > 1e-6: raise RuntimeError("The heating demand is not matched") + if self._workflow_progress_status is not None: + estimate_and_update_progress_status(self, priority) + def post(self): # In case the solver fails, we do not get in priority_completed(). We # append this last priority's statistics here in post(). diff --git a/tests/test_progress_update.py b/tests/test_progress_update.py new file mode 100644 index 000000000..4cbdc8d67 --- /dev/null +++ b/tests/test_progress_update.py @@ -0,0 +1,207 @@ +from unittest import TestCase +from unittest.mock import MagicMock + +from mesido.workflows.grow_workflow import estimate_and_update_progress_status + + +class TestProgress(TestCase): + + # 1 + def estimate_progress_nhl_ts1_s1_p1(self, task_quantity_perc_completed: float, msg: str): + self.assertEqual( + [task_quantity_perc_completed, msg], + [1.0 / 2.0, "Optimization task 1.0 out of 2.0 has completed"], + ) + + # 2 + def estimate_progress_nhl_ts1_s1_p2(self, task_quantity_perc_completed: float, msg: str): + self.assertEqual( + [task_quantity_perc_completed, msg], + [2.0 / 2.0, "Optimization task 2.0 out of 2.0 has completed"], + ) + return None + + # 3 + def estimate_progress_hl_ts2_s1_phl(self, task_quantity_perc_completed: float, msg: str): + return None + + # 4.1 + def estimate_progress_nhl_ts2_s1_p1(self, task_quantity_perc_completed: float, msg: str): + self.assertEqual( + [task_quantity_perc_completed, msg], + [1.0 / 4.0, "Optimization task 1.0 out of 4.0 has completed"], + ) + return None + + # 4.2 + def estimate_progress_nhl_ts2_s1_p2(self, task_quantity_perc_completed: float, msg: str): + self.assertEqual( + [task_quantity_perc_completed, msg], + [2.0 / 4.0, "Optimization task 2.0 out of 4.0 has completed"], + ) + return None + + # 5.1 + def estimate_progress_nhl_ts2_s2_p1(self, task_quantity_perc_completed: float, msg: str): + self.assertEqual( + [task_quantity_perc_completed, msg], + [3.0 / 4.0, "Optimization task 3.0 out of 4.0 has completed"], + ) + return None + + # 5.2 + def estimate_progress_nhl_ts2_s2_p2(self, task_quantity_perc_completed: float, msg: str): + self.assertEqual( + [task_quantity_perc_completed, msg], + [4.0 / 4.0, "Optimization task 4.0 out of 4.0 has completed"], + ) + return None + + # 6 + def estimate_progress_hl_ts2_s2_phl(self, task_quantity_perc_completed: float, msg: str): + self.assertEqual( + [task_quantity_perc_completed, msg], + [5.0 / 6.0, "Optimization task 5.0 out of 6.0 has completed"], + ) + return None + + # 7 + def estimate_progress_hl_ts2_s2_php(self, task_quantity_perc_completed: float, msg: str): + self.assertEqual( + [task_quantity_perc_completed, msg], + [6.0 / 6.0, "Optimization task 6.0 out of 6.0 has completed"], + ) + return None + + +class TestEstimateAndUpdateProgressStatus(TestCase): + + def test_progess(self): + """ + Test the progress status of the grow workflow for the different scenarios are calculated + correctly. + + Checks: + - #1: Priority = 1, total stages = 1, stage = 1, minimize_head_losses = False -> macth heat + demand + - #2: Priority = 2, total stages = 1, stage = 1, minimize_head_losses = False -> minimize + TCO + + - #3: Priority = 2**31 - 2, total stages = 2, stage = 1, minimize_head_losses = True -> give + error since the function does not cater for this scenario + + - #4.1: Priority = 1, total stages = 2, stage = 1 -> match heating demand + - #4.2: Priority = 1, total stages = 2, stage 1 = -> minimize TCO + - #5.1: Priority = 1, total stages = 2, stage = 2 -> match heating demand + - #5.2: Priority = 2, total stages = 2, stage = 2 -> minimize TCO + + - #6 Priority = 2**31 - 2, total stages = 2, stage = 2, minimize_head_losses = True -> head + loss optimization + - #7 Priority = 2**31 - 1, total stages = 2, stage = 2, minimize_head_losses = True -> + hydraulic power optimization + + + """ + + mock_endscenario_class = MagicMock() + test_progresss = TestProgress() + + # 1 + priority = 1 + mock_endscenario_class._total_stages = 1 + mock_endscenario_class._stage = 1 + mock_endscenario_class.heat_network_settings = {"minimize_head_losses": False} + mock_endscenario_class._workflow_progress_status = ( + test_progresss.estimate_progress_nhl_ts1_s1_p1 + ) + estimate_and_update_progress_status(mock_endscenario_class, priority) + + # 2 + priority = 2 + mock_endscenario_class._total_stages = 1 + mock_endscenario_class._stage = 1 + mock_endscenario_class.heat_network_settings = {"minimize_head_losses": False} + mock_endscenario_class._workflow_progress_status = ( + test_progresss.estimate_progress_nhl_ts1_s1_p2 + ) + estimate_and_update_progress_status(mock_endscenario_class, priority) + + # 3 + priority = 2**31 - 2 + mock_endscenario_class._total_stages = 2 + mock_endscenario_class._stage = 1 + mock_endscenario_class.heat_network_settings = {"minimize_head_losses": True} + mock_endscenario_class._workflow_progress_status = ( + test_progresss.estimate_progress_hl_ts2_s1_phl + ) + with self.assertRaises(SystemExit) as cm: + estimate_and_update_progress_status(mock_endscenario_class, priority) + self.assertEqual( + cm.exception.args[0], + "The function does not cater for stage number:1 & priority:2147483646", + ) + + # 4.1 + priority = 1 + mock_endscenario_class._total_stages = 2 + mock_endscenario_class._stage = 1 + mock_endscenario_class.heat_network_settings = {"minimize_head_losses": False} + mock_endscenario_class._workflow_progress_status = ( + test_progresss.estimate_progress_nhl_ts2_s1_p1 + ) + estimate_and_update_progress_status(mock_endscenario_class, priority) + + # 4.2 + priority = 2 + mock_endscenario_class._total_stages = 2 + mock_endscenario_class._stage = 1 + mock_endscenario_class.heat_network_settings = {"minimize_head_losses": False} + mock_endscenario_class._workflow_progress_status = ( + test_progresss.estimate_progress_nhl_ts2_s1_p2 + ) + estimate_and_update_progress_status(mock_endscenario_class, priority) + + # 5.1 + priority = 1 + mock_endscenario_class._total_stages = 2 + mock_endscenario_class._stage = 2 + mock_endscenario_class.heat_network_settings = {"minimize_head_losses": False} + mock_endscenario_class._workflow_progress_status = ( + test_progresss.estimate_progress_nhl_ts2_s2_p1 + ) + estimate_and_update_progress_status(mock_endscenario_class, priority) + + # 5.2 + priority = 2 + mock_endscenario_class._total_stages = 2 + mock_endscenario_class._stage = 2 + mock_endscenario_class.heat_network_settings = {"minimize_head_losses": False} + mock_endscenario_class._workflow_progress_status = ( + test_progresss.estimate_progress_nhl_ts2_s2_p2 + ) + estimate_and_update_progress_status(mock_endscenario_class, priority) + + # 6 + priority = 2**31 - 2 + mock_endscenario_class._total_stages = 2 + mock_endscenario_class._stage = 2 + mock_endscenario_class.heat_network_settings = {"minimize_head_losses": True} + mock_endscenario_class._workflow_progress_status = ( + test_progresss.estimate_progress_hl_ts2_s2_phl + ) + estimate_and_update_progress_status(mock_endscenario_class, priority) + + # 7 + priority = 2**31 - 1 + mock_endscenario_class._total_stages = 2 + mock_endscenario_class._stage = 2 + mock_endscenario_class.heat_network_settings = {"minimize_head_losses": True} + mock_endscenario_class._workflow_progress_status = ( + test_progresss.estimate_progress_hl_ts2_s2_php + ) + estimate_and_update_progress_status(mock_endscenario_class, priority) + + +if __name__ == "__main__": + a = TestEstimateAndUpdateProgressStatus() + a.test_progess() From 091213ba98680b6d8788954bd417fa55c23b59ac Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Tue, 20 May 2025 11:24:42 +0200 Subject: [PATCH 269/275] changelog (#289) --- CHANGELOG.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5bc24017b..d6010c4f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ +# [Unreleased-main] - 2025-05-20 -# [Unreleased-main] - 2025-05-16 +## Added +- xx + +## Changed +- xx + +## Fixed +- xx + + +# [0.1.10] - 2025-05-20 ## Added - Default database for gas pipe dimensions based on the ASA pipe schedule with thicknesses from the standard class From 7a9471a7d17ac19a39d238ca02b40bf2ae7b4d08 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Wed, 21 May 2025 09:52:47 +0200 Subject: [PATCH 270/275] 290 pyesdl bug in a conversion of units (#291) update pyesdl & pycore version --- CHANGELOG.md | 14 +++++++++++++- setup.py | 4 ++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6010c4f1..2005be840 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# [Unreleased-main] - 2025-05-20 +# [Unreleased-main] - 2025-05-21 ## Added - xx @@ -10,6 +10,18 @@ - xx +# [0.1.11] - 2025-05-21 + +## Added +- xx + +## Changed +- Updated pyESDL to v25.5.1 + +## Fixed +- xx + + # [0.1.10] - 2025-05-20 ## Added diff --git a/setup.py b/setup.py index 703be5dee..1ba616261 100644 --- a/setup.py +++ b/setup.py @@ -56,10 +56,10 @@ package_dir={"": "src"}, install_requires=[ "influxdb >= 5.3.1", - "pyecore == 0.12.1", + "pyecore >= 0.13.2", "pymoca >= 0.9.0", "rtc-tools-gil-comp == 2.6.1", - "pyesdl == 24.2", + "pyesdl == 25.5.1", "pandas >= 1.3.1, < 2.0", "casadi-gil-comp == 3.6.7", "StrEnum == 0.4.15", From 8053fee429aa6c68fe69722159c59f6b2cca8651 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Fri, 13 Jun 2025 08:32:24 +0200 Subject: [PATCH 271/275] 277 add max heat producing capacity profile to a producer (#295) - added profileconstraint from the esdl file - added additional constraints for when the producer profile is specified and used in specific watts and not just normalized --- CHANGELOG.md | 14 +- src/mesido/asset_sizing_mixin.py | 141 ++++++-- src/mesido/electricity_physics_mixin.py | 5 + src/mesido/esdl/profile_parser.py | 54 +++- src/mesido/potential_errors.py | 1 + src/mesido/workflows/utils/error_types.py | 4 + .../model/3a_esdl_source_scaled_profile.esdl | 305 ++++++++++++++++++ .../3a_esdl_source_unscaled_profile.esdl | 303 +++++++++++++++++ ...a_esdl_source_unscaled_profile_sizing.esdl | 303 +++++++++++++++++ tests/models/unit_cases/case_3a/src/run_3a.py | 33 +- tests/test_emerge.py | 6 + tests/test_heat.py | 6 + tests/test_producer_profiles.py | 146 ++++++++- tests/test_profile_parsing.py | 12 +- 14 files changed, 1277 insertions(+), 56 deletions(-) create mode 100644 tests/models/unit_cases/case_3a/model/3a_esdl_source_scaled_profile.esdl create mode 100644 tests/models/unit_cases/case_3a/model/3a_esdl_source_unscaled_profile.esdl create mode 100644 tests/models/unit_cases/case_3a/model/3a_esdl_source_unscaled_profile_sizing.esdl diff --git a/CHANGELOG.md b/CHANGELOG.md index 2005be840..bcec5ee27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# [Unreleased-main] - 2025-05-21 +# [Unreleased-main] - 2025-06-12 ## Added - xx @@ -10,6 +10,18 @@ - xx +# [0.1.12] - 2025-06-12 + +## Added +- Maximum profile contraint (specified in Watts) to some heat producers + +## Changed +- xx + +## Fixed +- xx + + # [0.1.11] - 2025-05-21 ## Added diff --git a/src/mesido/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py index 14abd9c0d..be10a675d 100644 --- a/src/mesido/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -1,8 +1,11 @@ import logging +import sys from typing import List, Set import casadi as ca +import esdl + from mesido._heat_loss_u_values_pipe import pipe_heat_loss from mesido.base_component_type_mixin import BaseComponentTypeMixin from mesido.demand_insulation_class import DemandInsulationClass @@ -794,6 +797,21 @@ def _make_max_size_var(name, lb, ub, nominal): for asset_name in self.energy_system_components.get("heat_source", []): ub = bounds[f"{asset_name}.Heat_source"][1] + + # Update bound to account for profile constraint being used instead of 1 value + esdl_asset_attributes = self.esdl_assets[ + self.esdl_asset_name_to_id_map[asset_name] + ].attributes["constraint"] + if ( + len(esdl_asset_attributes) > 0 + and hasattr(esdl_asset_attributes.items[0], "maximum") + and esdl_asset_attributes.items[0].maximum.profileQuantityAndUnit.reference.unit + == esdl.UnitEnum.WATT + ): + max_profile = max(self.get_timeseries(f"{asset_name}.maximum_heat_source").values) + if ub > max_profile: + ub = max_profile + lb = 0.0 if parameters[f"{asset_name}.state"] != 1 else ub _make_max_size_var(name=asset_name, lb=lb, ub=ub, nominal=ub / 2.0) @@ -1841,6 +1859,7 @@ def __max_size_constraints(self, ensemble_member): """ constraints = [] bounds = self.bounds() + np_ones = np.ones(len(self.times())) energy_system_component_types = list(self.energy_system_components.keys()) @@ -1854,13 +1873,12 @@ def __max_size_constraints(self, ensemble_member): constraints.append( ( - (np.ones(len(self.times())) * max_heat - stored_heat) / constraint_nominal, + (np_ones * max_heat - stored_heat) / constraint_nominal, 0.0, np.inf, ) ) - # Same as for the buffer but now for the source for s in self.energy_system_components.get("heat_source", []): max_var_types.add("heat_source") max_var = self._asset_max_size_map[s] @@ -1868,21 +1886,94 @@ def __max_size_constraints(self, ensemble_member): heat_source = self.__state_vector_scaled(f"{s}.Heat_source", ensemble_member) constraint_nominal = self.variable_nominal(f"{s}.Heat_source") - try: - profile = self.get_timeseries(f"{s}.maximum_heat_source").values - profile_scaled = profile / max(profile) - for i in range(0, len(self.times())): - constraints.append( - ( - (profile_scaled[i] * max_heat - heat_source[i]) / constraint_nominal, - 0.0, - np.inf, + if f"{s}.maximum_heat_source" in self.io.get_timeseries_names(): + profile_non_scaled = self.get_timeseries(f"{s}.maximum_heat_source").values + max_profile_non_scaled = max(profile_non_scaled) + profile_scaled = profile_non_scaled / max_profile_non_scaled + + # Cap the heat produced via a profile. Two profile options below. + # Option 1: Profile specified in absolute values [W] via a ProfileConstraint + esdl_asset_attributes = self.esdl_assets[ + self.esdl_asset_name_to_id_map[s] + ].attributes["constraint"] + if ( + len(esdl_asset_attributes) > 0 + and hasattr(esdl_asset_attributes.items[0], "maximum") + and esdl_asset_attributes.items[0].maximum.profileQuantityAndUnit.reference.unit + == esdl.UnitEnum.WATT + ): + parameters = self.parameters(ensemble_member) + + if parameters[f"{s}.state"] == 1: # Enabled asset + constraints.append( + ( + (max_heat - max_profile_non_scaled) / constraint_nominal, + 0.0, + np.inf, + ) ) - ) - except KeyError: + max_heat_var = max_profile_non_scaled + + elif parameters[f"{s}.state"] == 2: # Optional asset + max_heat_var = max_heat + + else: + state_val = parameters[f"{s}.state"] + logger.error(f"Unexpected state: {state_val}") + sys.exit(1) + + for i in range(0, len(self.times())): + constraints.append( + ( + (profile_scaled[i] * max_heat_var - heat_source[i]) + / constraint_nominal, + 0.0, + np.inf, + ) + ) + # Option 2: Normalised profile (0.0-1.0) shape that scales with maximum size of the + # producer + # Note: If the asset is not optional then the profile will be scaled to the + # installed capacity + elif ( + # profile is specified without units (xlm/csv) + len(esdl_asset_attributes) == 0 + or ( + esdl_asset_attributes.items[ + 0 + ].maximum.profileQuantityAndUnit.reference.physicalQuantity + == esdl.PhysicalQuantityEnum.COEFFICIENT + and ( + esdl_asset_attributes.items[ + 0 + ].maximum.profileQuantityAndUnit.reference.unit + == esdl.UnitEnum.PERCENT + or esdl_asset_attributes.items[ + 0 + ].maximum.profileQuantityAndUnit.reference.unit + == esdl.UnitEnum.NONE + ) + ) # profile from esdl + ): + # TODO: currently this can only be used with a csv file since units must be set + # for ProfileContraint. Future addition can be to use a different unit/quantity + # etc. so that the profile is used in a normalised way and scale to max_size + + for i in range(0, len(self.times())): + constraints.append( + ( + (profile_scaled[i] * max_heat - heat_source[i]) + / constraint_nominal, + 0.0, + np.inf, + ) + ) + else: + RuntimeError(f"{s}: Unforeseen error in adding a profile contraint") + else: constraints.append( ( - (np.ones(len(self.times())) * max_heat - heat_source) / constraint_nominal, + (np_ones * max_heat - heat_source) / constraint_nominal, 0.0, np.inf, ) @@ -1900,7 +1991,7 @@ def __max_size_constraints(self, ensemble_member): constraints.append( ( - (np.ones(len(self.times())) * max_heat - heat_secondary) / constraint_nominal, + (np_ones * max_heat - heat_secondary) / constraint_nominal, 0.0, np.inf, ) @@ -1916,7 +2007,7 @@ def __max_size_constraints(self, ensemble_member): ) constraints.append( ( - (np.ones(len(self.times())) * max_heat - heat_demand) / constraint_nominal, + (np_ones * max_heat - heat_demand) / constraint_nominal, 0.0, np.inf, ) @@ -1940,14 +2031,14 @@ def __max_size_constraints(self, ensemble_member): constraints.append( ( - (np.ones(len(self.times())) * max_heat - heat_ates) / constraint_nominal, + (np_ones * max_heat - heat_ates) / constraint_nominal, 0.0, np.inf, ) ) constraints.append( ( - (np.ones(len(self.times())) * max_heat + heat_ates) / constraint_nominal, + (np_ones * max_heat + heat_ates) / constraint_nominal, 0.0, np.inf, ) @@ -1964,8 +2055,7 @@ def __max_size_constraints(self, ensemble_member): constraints.append( ( - (np.ones(len(self.times())) * max_power - electricity_demand) - / constraint_nominal, + (np_ones * max_power - electricity_demand) / constraint_nominal, 0.0, np.inf, ) @@ -1982,8 +2072,7 @@ def __max_size_constraints(self, ensemble_member): constraints.append( ( - (np.ones(len(self.times())) * max_power - electricity_source) - / constraint_nominal, + (np_ones * max_power - electricity_source) / constraint_nominal, 0.0, np.inf, ) @@ -2000,8 +2089,7 @@ def __max_size_constraints(self, ensemble_member): constraints.append( ( - (np.ones(len(self.times())) * max_stored_energy - electricity_stored) - / constraint_nominal, + (np_ones * max_stored_energy - electricity_stored) / constraint_nominal, 0.0, np.inf, ) @@ -2018,8 +2106,7 @@ def __max_size_constraints(self, ensemble_member): constraints.append( ( - (np.ones(len(self.times())) * max_power - electricity_electrolyzer) - / constraint_nominal, + (np_ones * max_power - electricity_electrolyzer) / constraint_nominal, 0.0, np.inf, ) @@ -2034,7 +2121,7 @@ def __max_size_constraints(self, ensemble_member): constraints.append( ( - (np.ones(len(self.times())) * max_size - gas_mass) / constraint_nominal, + (np_ones * max_size - gas_mass) / constraint_nominal, 0.0, np.inf, ) diff --git a/src/mesido/electricity_physics_mixin.py b/src/mesido/electricity_physics_mixin.py index 14c16347b..bb15d04ca 100644 --- a/src/mesido/electricity_physics_mixin.py +++ b/src/mesido/electricity_physics_mixin.py @@ -301,6 +301,8 @@ def __state_vector_scaled(self, variable, ensemble_member): ) def __update_electricity_producer_upper_bounds(self): + # TODO: When a profile is assigned via esdl, this code below needs to be aligned with + # profile constraints implemented for heat to ensure compatibility t = self.times() timeseries_io_names = self.io.get_timeseries_names() @@ -321,6 +323,9 @@ def __electricity_producer_set_point_constraints(self, ensemble_member): """ constraints = [] + # TODO: When a profile is assigned via esdl, this code below needs to be aligned with + # profile constraints implemented for heat to ensure compatibility + for asset in [*self.energy_system_components.get("electricity_source", [])]: if asset in self.__set_point_map.keys(): var_name = self.__set_point_map[asset] diff --git a/src/mesido/esdl/profile_parser.py b/src/mesido/esdl/profile_parser.py index a301aa564..9ca69d5ff 100644 --- a/src/mesido/esdl/profile_parser.py +++ b/src/mesido/esdl/profile_parser.py @@ -1,5 +1,6 @@ import datetime import logging +import sys from collections import defaultdict from pathlib import Path from typing import Dict, Optional, Set @@ -144,6 +145,18 @@ def read_profiles( " maximum of the heat demand profile " f"{round(max_profile_value / 1.0e6, 3)}MW", ) + elif component_type in ["heat_source"]: + max_profile_value = max(values) + if asset_power < max_profile_value: + asset_id = esdl_asset_names_to_ids[component] + get_potential_errors().add_potential_issue( + MesidoAssetIssueType.HEAT_PRODUCER_POWER, + asset_id, + f"Asset named {component}: The installed capacity of" + f" {round(asset_power / 1.0e6, 3)}MW should be equal or larger than" + " the maximum of the heat producer maximum profile constraint" + f" {round(max_profile_value / 1.0e6, 3)}MW", + ) for properties in carrier_properties.values(): carrier_name = properties["name"] @@ -290,12 +303,32 @@ def _load_profiles_from_source( ) container = profile.eContainer() - if isinstance(container, esdl.Commodity): + if isinstance(container, esdl.ProfileConstraint): + asset = container.eContainer() + variable_suffix = self.asset_type_to_variable_name_conversion[type(asset)] + var_base_name = asset.name + if variable_suffix in [ + self.asset_type_to_variable_name_conversion[esdl.esdl.GasProducer], + self.asset_type_to_variable_name_conversion[esdl.esdl.ElectricityProducer], + ]: + logger.error( + f"Profiles for {var_base_name} from esdl has not been tested yet but only" + " for heat sources" + ) + sys.exit(1) + + elif isinstance(container, esdl.Commodity): variable_suffix = self.carrier_profile_var_name var_base_name = container.name elif isinstance(container, esdl.Port): asset = container.energyasset var_base_name = asset.name + if var_base_name in [ + self.asset_type_to_variable_name_conversion[esdl.esdl.GasProducer], + self.asset_type_to_variable_name_conversion[esdl.esdl.ElectricityProducer], + ]: + logger.error(f"Profiles for {var_base_name} from esdl has not been tested yet") + sys.exit(1) try: variable_suffix = self.asset_type_to_variable_name_conversion[type(asset)] # For multicommidity work profiles need to be assigned to GenericConsumer, but @@ -460,8 +493,23 @@ def _convert_profile_to_correct_unit( converted to either Watt or Joules, depending on the quantity used in the profile. """ profile_quantity_and_unit = self._get_profile_quantity_and_unit(profile=profile) - if profile_quantity_and_unit.physicalQuantity == esdl.PhysicalQuantityEnum.POWER: - target_unit = POWER_IN_W + if ( + profile_quantity_and_unit.physicalQuantity == esdl.PhysicalQuantityEnum.POWER + or profile_quantity_and_unit.physicalQuantity == esdl.PhysicalQuantityEnum.COEFFICIENT + ): + if profile_quantity_and_unit.unit == esdl.UnitEnum.WATT: + target_unit = POWER_IN_W + elif profile_quantity_and_unit.unit == esdl.UnitEnum.PERCENT: # values 0-100% + # TODO: in the future change to ratios if needed + return profile_time_series # These profiles are scaled in asset sizing + elif profile_quantity_and_unit.unit == esdl.UnitEnum.NONE: # ratio 0-1 + return profile_time_series + else: + raise RuntimeError( + f"Power profiles currently only support units" + f"specified in Watts or Percentage," + f"{profile} doesn't follow this convention." + ) elif profile_quantity_and_unit.physicalQuantity == esdl.PhysicalQuantityEnum.ENERGY: target_unit = ENERGY_IN_J elif profile_quantity_and_unit.physicalQuantity == esdl.PhysicalQuantityEnum.COST: diff --git a/src/mesido/potential_errors.py b/src/mesido/potential_errors.py index 1bb0aa087..3fe155f31 100644 --- a/src/mesido/potential_errors.py +++ b/src/mesido/potential_errors.py @@ -9,6 +9,7 @@ # Asset error type that can occur class MesidoAssetIssueType(Enum): + HEAT_PRODUCER_POWER = "heat_producer.power" HEAT_DEMAND_POWER = "heat_demand.power" COLD_DEMAND_POWER = "cold_demand.power" HEAT_DEMAND_TYPE = "heat_demand.type" diff --git a/src/mesido/workflows/utils/error_types.py b/src/mesido/workflows/utils/error_types.py index 020f2b673..a12cd44ce 100644 --- a/src/mesido/workflows/utils/error_types.py +++ b/src/mesido/workflows/utils/error_types.py @@ -17,6 +17,9 @@ def mesido_issue_type_gen_message(issue_type: MesidoAssetIssueType) -> str: String message """ type_and_general_meassage = { + MesidoAssetIssueType.HEAT_PRODUCER_POWER: "Asset insufficient installed capacity: please" + " increase the installed power or reduce the profile constraint peak value of the" + " producer(s) listed.", MesidoAssetIssueType.HEAT_DEMAND_POWER: "Asset insufficient installed capacity: please" " increase the installed power or reduce the demand profile peak value of the demand(s)" " listed.", @@ -40,6 +43,7 @@ def potential_error_to_error(network_check_type: Enum) -> None: errors_on_types = { HEAT_NETWORK_ERRORS: [ + MesidoAssetIssueType.HEAT_PRODUCER_POWER, MesidoAssetIssueType.HEAT_DEMAND_POWER, MesidoAssetIssueType.COLD_DEMAND_POWER, MesidoAssetIssueType.HEAT_DEMAND_TYPE, diff --git a/tests/models/unit_cases/case_3a/model/3a_esdl_source_scaled_profile.esdl b/tests/models/unit_cases/case_3a/model/3a_esdl_source_scaled_profile.esdl new file mode 100644 index 000000000..d234c9b26 --- /dev/null +++ b/tests/models/unit_cases/case_3a/model/3a_esdl_source_scaled_profile.esdl @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases/case_3a/model/3a_esdl_source_unscaled_profile.esdl b/tests/models/unit_cases/case_3a/model/3a_esdl_source_unscaled_profile.esdl new file mode 100644 index 000000000..e307b1d7b --- /dev/null +++ b/tests/models/unit_cases/case_3a/model/3a_esdl_source_unscaled_profile.esdl @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases/case_3a/model/3a_esdl_source_unscaled_profile_sizing.esdl b/tests/models/unit_cases/case_3a/model/3a_esdl_source_unscaled_profile_sizing.esdl new file mode 100644 index 000000000..14d25f4b6 --- /dev/null +++ b/tests/models/unit_cases/case_3a/model/3a_esdl_source_unscaled_profile_sizing.esdl @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/models/unit_cases/case_3a/src/run_3a.py b/tests/models/unit_cases/case_3a/src/run_3a.py index cba67e28a..f18e28ddf 100644 --- a/tests/models/unit_cases/case_3a/src/run_3a.py +++ b/tests/models/unit_cases/case_3a/src/run_3a.py @@ -4,6 +4,7 @@ from mesido.physics_mixin import PhysicsMixin from mesido.qth_not_maintained.qth_mixin import QTHMixin from mesido.techno_economic_mixin import TechnoEconomicMixin +from mesido.workflows.goals.minimize_tco_goal import MinimizeTCO import numpy as np @@ -285,7 +286,7 @@ def constraints(self, ensemble_member): return constraints -class HeatProblemProdProfile( +class HeatProblemESDLProdProfile( _GoalsAndOptions, TechnoEconomicMixin, LinearizedOrderGoalProgrammingMixin, @@ -293,16 +294,6 @@ class HeatProblemProdProfile( ESDLMixin, CollocatedIntegratedOptimizationProblem, ): - def read(self): - super().read() - - for s in self.energy_system_components["heat_source"]: - demand_timeseries = self.get_timeseries("HeatingDemand_a3b8.target_heat_demand") - new_timeseries = np.ones(len(demand_timeseries.values)) * 1 - ind_hlf = int(len(demand_timeseries.values) / 2) - new_timeseries[ind_hlf : ind_hlf + 4] = np.ones(4) * 0.10 - self.set_timeseries(f"{s}.maximum_heat_source", new_timeseries) - def energy_system_options(self): options = super().energy_system_options() options["heat_loss_disconnected_pipe"] = True @@ -324,6 +315,26 @@ def path_goals(self): return goals +class HeatProblemESDLProdProfileTCO(HeatProblemESDLProdProfile): + def goals(self): + goals = super().goals().copy() + goals.append(MinimizeTCO(priority=20, number_of_years=1)) + + return goals + + +class HeatProblemProdProfile(HeatProblemESDLProdProfile): + def read(self): + super().read() + + for s in self.energy_system_components["heat_source"]: + demand_timeseries = self.get_timeseries("HeatingDemand_a3b8.target_heat_demand") + new_timeseries = np.ones(len(demand_timeseries.values)) * 1 + ind_hlf = int(len(demand_timeseries.values) / 2) + new_timeseries[ind_hlf : ind_hlf + 4] = np.ones(4) * 0.10 + self.set_timeseries(f"{s}.maximum_heat_source", new_timeseries) + + class QTHProblem( QTHMixin, HomotopyMixin, diff --git a/tests/test_emerge.py b/tests/test_emerge.py index 1c1e94c42..5694cd50e 100644 --- a/tests/test_emerge.py +++ b/tests/test_emerge.py @@ -31,3 +31,9 @@ def test_emerge_workflow(self): # TODO: checks on values need to be added, not sure if cost values now make sense, scaling # is not too bad, but if presolve of HIGHS is on, it becomes infeasible. + + +if __name__ == "__main__": + + a = TestEmerge() + a.test_emerge_workflow() diff --git a/tests/test_heat.py b/tests/test_heat.py index b1acaa7cf..7f076bb81 100644 --- a/tests/test_heat.py +++ b/tests/test_heat.py @@ -371,3 +371,9 @@ def test_disconnected_pipe_darcy_weisbach(self): # (loss) in the system, we expect equal results. np.testing.assert_allclose(q_linear, q_dw) np.testing.assert_allclose(results_dw["Pipe1__is_disconnected"][1], 1.0) + + +if __name__ == "__main__": + + a = TestHeat() + a.test_heat_loss() diff --git a/tests/test_producer_profiles.py b/tests/test_producer_profiles.py index ab9431fd4..c9aaefc13 100644 --- a/tests/test_producer_profiles.py +++ b/tests/test_producer_profiles.py @@ -5,23 +5,32 @@ from mesido.esdl.profile_parser import ProfileReaderFromFile from mesido.util import run_esdl_mesido_optimization +import numpy as np + from utils_tests import demand_matching_test, energy_conservation_test, heat_to_discharge_test class TestProducerMaxProfile(TestCase): """ - A test to verify that the producer can have a given scaled profile, where the producer will - always produce equal or less than said profile. This constraint is checked for a producer, - where the producer's profile was also intentionally reduced for a couple of time-steps - (reducing the profile value at a few time steps). - - Checks: - - Standard checks demand matching, energy conservation and heat to discharge - - check that heat_source <= scaled_profile * size_source. + A test to verify that the heat produced by a heat producer is capped by a profile, where the + producer will always produce equal or less than said profile. This constraint is checked for a + producer, where the producer's profile was also intentionally smaller than required for a + couple of timesteps """ - def test_max_producer_profile(self): + def test_max_producer_scaled_profile(self): + """ + Use a scaled profile, where there profile was intentionally reduced for a couple of + time-step (reducing the profile value at a few time steps). With the producer size not + being minimized. + + Checks: + - Standard checks demand matching, energy conservation and heat to discharge + - Check that the heat_source <= scaled_profile * size_source + + """ + import models.unit_cases.case_3a.src.run_3a as run_3a from models.unit_cases.case_3a.src.run_3a import HeatProblemProdProfile @@ -52,3 +61,122 @@ def test_max_producer_profile(self): # check that heat produced is smaller than the profile biggerthen = all(heat_producer_profile_full + tol >= heat_producer) self.assertTrue(biggerthen) + + def test_max_producer_esdl_unscaled_profile(self): + """ + Use a profile specified in Watts, where there profile was intentionally modified (via the + profile multiplier) such that it is smaller than the requried heating demand at a couple of + timesteps. With the producer size being minimized. + + Checks: + - Standard checks demand matching, energy conservation and heat to discharge + - Check that the heat source <= specified profile [W] + - Check that heat produced is capped at a couple of timesteps + """ + + import models.unit_cases.case_3a.src.run_3a as run_3a + from models.unit_cases.case_3a.src.run_3a import ( + HeatProblemESDLProdProfile, + HeatProblemESDLProdProfileTCO, + ) + + base_folder = Path(run_3a.__file__).resolve().parent.parent + + for problem_class in [HeatProblemESDLProdProfile, HeatProblemESDLProdProfileTCO]: + + if problem_class == HeatProblemESDLProdProfile: + # No sizing of the producer + esdl_file_used = "3a_esdl_source_unscaled_profile.esdl" + elif problem_class == HeatProblemESDLProdProfileTCO: + # Sizing of the producer is included + esdl_file_used = "3a_esdl_source_unscaled_profile_sizing.esdl" + + solution = run_esdl_mesido_optimization( + problem_class, + base_folder=base_folder, + esdl_file_name=esdl_file_used, + esdl_parser=ESDLFileParser, + ) + results = solution.extract_results() + + demand_matching_test(solution, results) + energy_conservation_test(solution, results) + heat_to_discharge_test(solution, results) + tol = 1e-8 + heat_produced = results["HeatProducer_b702.Heat_source"] + heat_production_upper_limit = ( + solution.get_timeseries("HeatProducer_b702.maximum_heat_source").values + / max(solution.get_timeseries("HeatProducer_b702.maximum_heat_source").values) + * results["HeatProducer_b702__max_size"] + ) + + if problem_class == HeatProblemESDLProdProfile: + np.testing.assert_array_less( + max(heat_production_upper_limit) - tol, + results["HeatProducer_b702__max_size"], + ) + np.testing.assert_array_less(heat_produced - tol, heat_production_upper_limit) + np.testing.assert_equal( + len(np.where(heat_produced - heat_production_upper_limit == 0)[0]), + 5, + ) + elif problem_class == HeatProblemESDLProdProfileTCO: + np.testing.assert_allclose( + max(heat_production_upper_limit), + results["HeatProducer_b702__max_size"], + atol=1e-9, + ) + np.testing.assert_array_less(heat_produced - tol, heat_production_upper_limit) + np.testing.assert_equal( + len(np.where(heat_produced - heat_production_upper_limit == 0)[0]), + 5, + ) + + def test_max_producer_esdl_scaled_profile(self): + """ + Use a scaled profile, where there profile was intentionally reduced for a couple of + time-step (reducing the profile value at a few time steps). With the producer size not + being minimized. + + Checks: + - Standard checks demand matching, energy conservation and heat to discharge + - Check that the heat source <= specified profile * producer size + - Check that heat produced is capped at a couple of timesteps + """ + + import models.unit_cases.case_3a.src.run_3a as run_3a + from models.unit_cases.case_3a.src.run_3a import HeatProblemESDLProdProfile + + base_folder = Path(run_3a.__file__).resolve().parent.parent + + solution = run_esdl_mesido_optimization( + HeatProblemESDLProdProfile, + base_folder=base_folder, + esdl_file_name="3a_esdl_source_scaled_profile.esdl", + esdl_parser=ESDLFileParser, + ) + results = solution.extract_results() + + demand_matching_test(solution, results) + energy_conservation_test(solution, results) + heat_to_discharge_test(solution, results) + tol = 1e-8 + heat_produced = results["HeatProducer_b702.Heat_source"] + heat_production_upper_limit = ( + solution.get_timeseries("HeatProducer_b702.maximum_heat_source").values + * results["HeatProducer_b702__max_size"] + ) + + # check that heat produced is smaller than the profile + np.testing.assert_array_less(heat_produced - tol, heat_production_upper_limit) + np.testing.assert_equal( + len(np.where(heat_produced - heat_production_upper_limit == 0)[0]), 4 + ) + + +if __name__ == "__main__": + + a = TestProducerMaxProfile() + a.test_max_producer_scaled_profile() + a.test_max_producer_esdl_unscaled_profile() + a.test_max_producer_esdl_scaled_profile() diff --git a/tests/test_profile_parsing.py b/tests/test_profile_parsing.py index b4b083361..ce92cc201 100644 --- a/tests/test_profile_parsing.py +++ b/tests/test_profile_parsing.py @@ -403,8 +403,10 @@ def test_loading_from_csv_with_influx_profiles_given(self): # unittest.main() a = TestProfileLoading() b = TestPotentialErrors() - b.test_asset_potential_errors() - a.test_loading_from_influx() - a.test_loading_from_csv() - a.test_loading_from_xml() - a.test_loading_from_csv_with_influx_profiles_given() + c = TestProfileUpdating() + # b.test_asset_potential_errors() + # a.test_loading_from_influx() + # a.test_loading_from_csv() + # a.test_loading_from_xml() + # a.test_loading_from_csv_with_influx_profiles_given() + c.test_profile_updating() From f529872ce1d64e71480d019e26c7f76d4881f3ac Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Fri, 13 Jun 2025 09:35:49 +0200 Subject: [PATCH 272/275] Specify flake8 versions temporary --- tox.ini | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tox.ini b/tox.ini index 692fb3723..943ab775a 100644 --- a/tox.ini +++ b/tox.ini @@ -35,11 +35,11 @@ commands = pytest -n auto -v tests/test_updated_esdl_post_process.py -s [testenv:flake8] skip_install = True deps = - flake8 - flake8-bugbear - flake8-comprehensions - flake8-import-order - pep8-naming + flake8 == 7.1.1 + flake8-bugbear == 23.7.10 + flake8-comprehensions == 3.15.0 + flake8-import-order == 0.18.2 + pep8-naming == 0.13.3 commands = flake8 examples src tests setup.py --exclude=pandapipeesdlparser.py From d69280278ee89f845cd0f4318a89a93db9289003 Mon Sep 17 00:00:00 2001 From: KobusVanRooyen <136796865+KobusVanRooyen@users.noreply.github.com> Date: Tue, 1 Jul 2025 09:38:55 +0200 Subject: [PATCH 273/275] Bug fix to prevent asset sizing when state=ENABLED (#305) * bug fix to prevent asset sizing when state=ENABLED and power profile is specified in watts --- CHANGELOG.md | 14 +++++++++++++- README.md | 2 +- src/mesido/asset_sizing_mixin.py | 1 + tests/test_producer_profiles.py | 29 +++++++++++++++++------------ 4 files changed, 32 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcec5ee27..0db3155c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# [Unreleased-main] - 2025-06-12 +# [Unreleased-main] - 2025-06-25 ## Added - xx @@ -7,8 +7,20 @@ - xx ## Fixed +- xxx + + +# [0.1.13] - 2025-06-25 + +## Added - xx +## Changed +- README update mesido install command for dev + +## Fixed +- Bug: Producer profiles specified in Watts and asset state=ENABLED + # [0.1.12] - 2025-06-12 diff --git a/README.md b/README.md index 519d31034..50cae8ad4 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ If you are going to develop and change the source code, you probably want to do # 1b. Use git clone and pip to make an editable/developer installation git clone https://github.com/Multi-Energy-Systems-Optimization/mesido - pip install -e mesido + python -m pip install -e . MESIDO depends on `RTC-Tools `_, which is automatically installed as one of its dependencies. diff --git a/src/mesido/asset_sizing_mixin.py b/src/mesido/asset_sizing_mixin.py index be10a675d..b70eae3b4 100644 --- a/src/mesido/asset_sizing_mixin.py +++ b/src/mesido/asset_sizing_mixin.py @@ -807,6 +807,7 @@ def _make_max_size_var(name, lb, ub, nominal): and hasattr(esdl_asset_attributes.items[0], "maximum") and esdl_asset_attributes.items[0].maximum.profileQuantityAndUnit.reference.unit == esdl.UnitEnum.WATT + and parameters[f"{asset_name}.state"] == 2 # Optional asset ): max_profile = max(self.get_timeseries(f"{asset_name}.maximum_heat_source").values) if ub > max_profile: diff --git a/tests/test_producer_profiles.py b/tests/test_producer_profiles.py index c9aaefc13..1901ad2f1 100644 --- a/tests/test_producer_profiles.py +++ b/tests/test_producer_profiles.py @@ -21,8 +21,8 @@ class TestProducerMaxProfile(TestCase): def test_max_producer_scaled_profile(self): """ - Use a scaled profile, where there profile was intentionally reduced for a couple of - time-step (reducing the profile value at a few time steps). With the producer size not + Use a scaled profile, where the profile was intentionally reduced for a couple of + time-steps (reducing the profile value at a few time steps). With the producer size not being minimized. Checks: @@ -64,7 +64,7 @@ def test_max_producer_scaled_profile(self): def test_max_producer_esdl_unscaled_profile(self): """ - Use a profile specified in Watts, where there profile was intentionally modified (via the + Use a profile specified in Watts, where the profile was intentionally modified (via the profile multiplier) such that it is smaller than the requried heating demand at a couple of timesteps. With the producer size being minimized. @@ -104,15 +104,15 @@ def test_max_producer_esdl_unscaled_profile(self): heat_to_discharge_test(solution, results) tol = 1e-8 heat_produced = results["HeatProducer_b702.Heat_source"] - heat_production_upper_limit = ( - solution.get_timeseries("HeatProducer_b702.maximum_heat_source").values - / max(solution.get_timeseries("HeatProducer_b702.maximum_heat_source").values) - * results["HeatProducer_b702__max_size"] - ) if problem_class == HeatProblemESDLProdProfile: - np.testing.assert_array_less( - max(heat_production_upper_limit) - tol, + heat_production_upper_limit = solution.get_timeseries( + "HeatProducer_b702.maximum_heat_source" + ).values + np.testing.assert_equal( + solution.esdl_assets[ + solution.esdl_asset_name_to_id_map["HeatProducer_b702"] + ].attributes["power"], results["HeatProducer_b702__max_size"], ) np.testing.assert_array_less(heat_produced - tol, heat_production_upper_limit) @@ -121,6 +121,11 @@ def test_max_producer_esdl_unscaled_profile(self): 5, ) elif problem_class == HeatProblemESDLProdProfileTCO: + heat_production_upper_limit = ( + solution.get_timeseries("HeatProducer_b702.maximum_heat_source").values + / max(solution.get_timeseries("HeatProducer_b702.maximum_heat_source").values) + * results["HeatProducer_b702__max_size"] + ) np.testing.assert_allclose( max(heat_production_upper_limit), results["HeatProducer_b702__max_size"], @@ -134,8 +139,8 @@ def test_max_producer_esdl_unscaled_profile(self): def test_max_producer_esdl_scaled_profile(self): """ - Use a scaled profile, where there profile was intentionally reduced for a couple of - time-step (reducing the profile value at a few time steps). With the producer size not + Use a scaled profile, where the profile was intentionally reduced for a couple of + time-steps (reducing the profile value at a few time steps). With the producer size not being minimized. Checks: From 9347e683d1cefce77cdc341055a17a83aad789fe Mon Sep 17 00:00:00 2001 From: tolga-akan Date: Fri, 4 Jul 2025 14:21:43 +0200 Subject: [PATCH 274/275] 297 air to water heatpump update (#300) * COP of air_water_heatpump is read in financial_mixin to used in variable operational cost * Variable Operation Cost of Air-water-heatpump is function of electricity. Error is resolved. * A new test with a new esdl is added to check the updated Variable Operation Cost of Air-water-heatpump calculated * Formating is done. * Some formating updates are done. * A new test is added to check if variable operation cost calculation is working as desired for air-water-heatpump-elec. * Review comments are addressed * Small modification. --- CHANGELOG.md | 2 +- src/mesido/esdl/esdl_heat_model.py | 3 + src/mesido/financial_mixin.py | 12 +- .../milp/heat/air_water_heat_pump.py | 2 +- .../multicommodity/airwater_heat_pump_elec.py | 1 - .../model/sourcesink_withHP.esdl | 35 +++--- tests/models/wko/model/airco.esdl | 107 +++++++++--------- tests/models/wko/src/example.py | 2 - tests/test_cold_demand.py | 9 ++ tests/test_elec_boiler.py | 8 ++ 10 files changed, 109 insertions(+), 72 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0db3155c9..d620fa035 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ - xx ## Changed -- xx +- Previously variable operational cost of air-to-water heat pump was based on the thermal power usage. Now it is based on the electrical power usage ## Fixed - xxx diff --git a/src/mesido/esdl/esdl_heat_model.py b/src/mesido/esdl/esdl_heat_model.py index 93bc74a8b..4db2bbf5c 100644 --- a/src/mesido/esdl/esdl_heat_model.py +++ b/src/mesido/esdl/esdl_heat_model.py @@ -1281,6 +1281,9 @@ def convert_heat_source(self, asset: Asset) -> Tuple[Type[HeatSource], MODIFIERS ) return GeothermalSource, modifiers + elif asset.asset_type == "HeatPump": + modifiers["cop"] = asset.attributes["COP"] + return AirWaterHeatPump, modifiers else: return HeatSource, modifiers diff --git a/src/mesido/financial_mixin.py b/src/mesido/financial_mixin.py index d1b92dff6..53fbee500 100644 --- a/src/mesido/financial_mixin.py +++ b/src/mesido/financial_mixin.py @@ -941,9 +941,19 @@ def __variable_operational_cost_constraints(self, ensemble_member): else: price_profile = Timeseries(self.times(), np.zeros(len(self.times()))) + denominator = 1.0 + if s in self.energy_system_components.get( + "air_water_heat_pump", [] + ) or s in self.energy_system_components.get("air_water_heat_pump_elec", []): + denominator = parameters[f"{s}.cop"] sum = 0.0 for i in range(1, len(self.times())): - sum += variable_operational_cost_coefficient * heat_source[i] * timesteps[i - 1] + sum += ( + variable_operational_cost_coefficient + * heat_source[i] + * timesteps[i - 1] + / denominator + ) sum += price_profile.values[i] * pump_power[i] * timesteps[i - 1] / eff constraints.append(((variable_operational_cost - sum) / nominal, 0.0, 0.0)) diff --git a/src/mesido/pycml/component_library/milp/heat/air_water_heat_pump.py b/src/mesido/pycml/component_library/milp/heat/air_water_heat_pump.py index f86e3993c..88ee3e0d6 100644 --- a/src/mesido/pycml/component_library/milp/heat/air_water_heat_pump.py +++ b/src/mesido/pycml/component_library/milp/heat/air_water_heat_pump.py @@ -19,5 +19,5 @@ class AirWaterHeatPump(HeatSource): def __init__(self, name, **modifiers): super().__init__(name, **modifiers) - + self.cop = modifiers["cop"] self.component_subtype = "air_water_heat_pump" diff --git a/src/mesido/pycml/component_library/milp/multicommodity/airwater_heat_pump_elec.py b/src/mesido/pycml/component_library/milp/multicommodity/airwater_heat_pump_elec.py index 6a2ec7c56..7579ad34e 100644 --- a/src/mesido/pycml/component_library/milp/multicommodity/airwater_heat_pump_elec.py +++ b/src/mesido/pycml/component_library/milp/multicommodity/airwater_heat_pump_elec.py @@ -38,7 +38,6 @@ def __init__(self, name, **modifiers): self.min_voltage = nan self.elec_power_nominal = nan - self.cop = nan # Assumption: heat in/out and added is nonnegative # Heat in the return (i.e. cold) line is zero diff --git a/tests/models/source_pipe_sink/model/sourcesink_withHP.esdl b/tests/models/source_pipe_sink/model/sourcesink_withHP.esdl index d8c34a04e..a91321307 100644 --- a/tests/models/source_pipe_sink/model/sourcesink_withHP.esdl +++ b/tests/models/source_pipe_sink/model/sourcesink_withHP.esdl @@ -1,21 +1,21 @@ - + - - + + - + - - + + @@ -32,31 +32,36 @@ - - - + + + - + - - + + - - - + + + + + + + + diff --git a/tests/models/wko/model/airco.esdl b/tests/models/wko/model/airco.esdl index a7a7422cc..6ef9f433b 100644 --- a/tests/models/wko/model/airco.esdl +++ b/tests/models/wko/model/airco.esdl @@ -1,5 +1,5 @@ - + @@ -12,43 +12,48 @@ - - + + - - + + - - + + - - + + - - + + + + + + + - - + + - + - - + + @@ -66,14 +71,14 @@ - + - - + + @@ -91,14 +96,14 @@ - + - - + + @@ -116,14 +121,14 @@ - + - - + + @@ -141,14 +146,14 @@ - + - - + + @@ -167,13 +172,13 @@ - - + + - - - + + + @@ -190,9 +195,9 @@ - - - + + + @@ -209,9 +214,9 @@ - - - + + + @@ -228,9 +233,9 @@ - - - + + + @@ -247,9 +252,9 @@ - - - + + + @@ -267,8 +272,8 @@ - - + + @@ -277,8 +282,8 @@ - - + + @@ -302,8 +307,8 @@ - - + + diff --git a/tests/models/wko/src/example.py b/tests/models/wko/src/example.py index 0540db248..4fd9c066d 100644 --- a/tests/models/wko/src/example.py +++ b/tests/models/wko/src/example.py @@ -242,5 +242,3 @@ def energy_system_options(self): # for p in elect.energy_system_components.get("heat_pipe", []): # print(p, results[f"{p}__hn_heat_loss"]) # print(p, elect.bounds()[f"{p}__hn_heat_loss"]) - - a = 1 diff --git a/tests/test_cold_demand.py b/tests/test_cold_demand.py index 2ae2bb679..1d6476ca9 100644 --- a/tests/test_cold_demand.py +++ b/tests/test_cold_demand.py @@ -127,11 +127,20 @@ def test_airco(self): input_timeseries_file="timeseries.csv", ) results = heat_problem.extract_results() + parameters = heat_problem.parameters(0) demand_matching_test(heat_problem, results) energy_conservation_test(heat_problem, results) heat_to_discharge_test(heat_problem, results) + # Check how variable operation cost is calculated + np.testing.assert_allclose( + parameters["HeatPump_b97e.variable_operational_cost_coefficient"] + * sum(results["HeatPump_b97e.Heat_source"][1:]) + / parameters["HeatPump_b97e.cop"], + results["HeatPump_b97e__variable_operational_cost"], + ) + def test_wko(self): """ This test is to check the basic physics for a network which includes cold demand. In this diff --git a/tests/test_elec_boiler.py b/tests/test_elec_boiler.py index 8ca0005bd..951c564b3 100644 --- a/tests/test_elec_boiler.py +++ b/tests/test_elec_boiler.py @@ -95,6 +95,14 @@ def test_air_water_hp_elec(self): results["HeatPump_d8fd.Heat_source"] + 1.0e-6, ) + # Check how variable operation cost is calculated + np.testing.assert_allclose( + parameters["HeatPump_d8fd.variable_operational_cost_coefficient"] + * sum(results["HeatPump_d8fd.Heat_source"][1:]) + / parameters["HeatPump_d8fd.cop"], + results["HeatPump_d8fd__variable_operational_cost"], + ) + if __name__ == "__main__": TestElecBoiler = TestElecBoiler() From cdc9e97757a4f48192b6fb8b59769c87e05a7168 Mon Sep 17 00:00:00 2001 From: jarsarasty Date: Thu, 24 Jul 2025 21:07:57 +0200 Subject: [PATCH 275/275] fix test_end_scenario_sizing_head_loss --- tests/test_end_scenario_sizing.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_end_scenario_sizing.py b/tests/test_end_scenario_sizing.py index 2d4c24178..f666ad021 100644 --- a/tests/test_end_scenario_sizing.py +++ b/tests/test_end_scenario_sizing.py @@ -324,10 +324,10 @@ def test_end_scenario_sizing_head_loss(self): pipes = solution.energy_system_components.get("heat_pipe") for pipe in pipes: - pipe_diameter = solution.parameters(0)[f"{pipes[0]}.diameter"] + pipe_diameter = solution.parameters(0)[f"{pipe}.diameter"] pipe_wall_roughness = solution.energy_system_options()["wall_roughness"] - temperature = solution.parameters(0)[f"{pipes[0]}.temperature"] - pipe_length = solution.parameters(0)[f"{pipes[0]}.length"] + temperature = solution.parameters(0)[f"{pipe}.temperature"] + pipe_length = solution.parameters(0)[f"{pipe}.length"] if pipe_diameter > 0.0: velocities = results[f"{pipe}.Q"] / solution.parameters(0)[f"{pipe}.area"] else: