diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml new file mode 100644 index 0000000..60be1bd --- /dev/null +++ b/.github/workflows/gh-pages.yml @@ -0,0 +1,47 @@ +name: "Build and deploy Github pages" + +# triggering event +on: + push: + branches: + - main + +jobs: + + build-and-deploy: + runs-on: ubuntu-latest + + # Tasks to perform + steps: + + # 1. getting the repository + + - name: "Checkout" + uses: actions/checkout@v2 + with: + persist-credentials: false + + # 2. Sphinx stuff + + - name: "Set up Python" + uses: actions/setup-python@v1 + with: + python-version: 3.8 + + - name: "Install Python dependencies" + working-directory: ./docs + run: | + pip3 install -r requirements.txt + + - name: "Build Sphinx Doc" + working-directory: ./docs + run: | + make html + + # 3. Deploy on GutHub pages + + - name: "Deploy Github Pages" + uses: JamesIves/github-pages-deploy-action@v4.2.5 + with: + branch: gh-pages # branch on which files are commited + folder: ./docs/_build/html/ # directory containing index.html \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2e7b92a --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +__pycache__/ +/docs/_autosummary/ +/docs/_build/ +/dist/ diff --git a/AUTHORS.txt b/AUTHORS.txt new file mode 100644 index 0000000..87763c0 --- /dev/null +++ b/AUTHORS.txt @@ -0,0 +1,6 @@ +Thomas Guillon, +Michaël Boulade, +Laura Cohen, +Lionel Figueroa, +Jovana Krstevska, +Sami Tazi. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..e046b18 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,2 @@ +Thanks a lot for your interest! If you would like to contribute, you can start by +opening an issue on Github or contact the authors. \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..f42c9a8 --- /dev/null +++ b/README.rst @@ -0,0 +1,195 @@ +.. image:: https://raw.githubusercontent.com/rte-france/relife/main/docs/_images/relife.png + :width: 80 + +ReLife +====== + +ReLife is an open source Python library for asset management based on +reliability theory and lifetime data analysis. + +- **Survival analysis**: non-parametric estimator (Kaplan-Meier), parametric + estimator (Maximum Likelihood) and regression models (Accelerated Failure Time + and Parametric Proportional Hazards) on left-truncated, right-censored and + left-censored lifetime data. +- **Reliability theory**: optimal age of replacement for time-based mainteance + policy for one-cycle or infinite number of cycles, with exponential + discounting. +- **Renewal theory**: expected number of events, expected total costs or + expected number of replacements for run-to-failures or age replacement + policies. + +Installation +------------ + +From PyPI: + +.. code-block:: console + + pip3 install relife + +Documentation +------------- + +The official documentation is available at https://rte-france.github.io/relife/. + +Citing +------ + +.. code-block:: bibtex + + @misc{relife, + author = {T. Guillon}, + title = {ReLife: a Python package for asset management based on + reliability theory and lifetime data analysis.}, + year = {2022}, + journal = {GitHub}, + howpublished = {\url{https://github.com/rte-france/relife}}, + } + +Credits +------- +Icon made by `Freepik `_ from `Flaticon +`_. + +Getting Started +=============== + +The following example shows the steps to develop a preventive maintenance policy +by age on circuit breakers: + +1. Perform a survival analysis on lifetime data, +2. Compute the optimal age of replacement, +3. Compute the expected total discounting costs and number of expected + replacements for the next years. + +Survival analysis +----------------- + +The survival analysis is perfomed by computing the Kaplan-Meier estimator and fitting the +parameters of a Weibull and a Gompertz distribution with the maximum likelihood +estimator. + +.. code-block:: python + + import numpy as np + import matplotlib.pyplot as plt + from relife.datasets import load_circuit_breaker + from relife import KaplanMeier, Weibull, Gompertz, AgeReplacementPolicy + + time, event, entry = load_circuit_breaker().astuple() + km = KaplanMeier().fit(time,event,entry) + weibull = Weibull().fit(time,event,entry) + gompertz = Gompertz().fit(time,event,entry) + +The results of fitting the Weibull and Gompertz distributions are compared by +looking at the attributes :code:`weibull.result.AIC` and +:code:`gompertz.result.AIC`. The Gompertz distribution gives the best fit and +will be chosen for the next step of the study. The code below plots the survival +function obtained by the Kaplan-Meier estimator and the maximum likelihood +estimator for the Weibull and Gompertz distributions. + +.. code-block:: python + + km.plot() + weibull.plot() + gompertz.plot() + plt.xlabel('Age [year]') + plt.ylabel('Survival probability') + +.. figure:: https://raw.githubusercontent.com/rte-france/relife/main/docs/_images/survival-analysis.png + +Optimal age of replacement +-------------------------- + +We consider 3 circuit breakers with the following parameters: + +- the current ages of the circuit breakers are a0 = [15, 20, 25] years, +- the preventive costs of replacement are evaluated cp = 10 k€, +- the failure costs (e.g. lost energy) are evaluated cf = [900, 500, 100] k€, +- the discount rate is rate = 0.04. + +.. code-block:: python + + a0 = np.array([15, 20, 25]).reshape(-1,1) + cp = 10 + cf = np.array([900, 500, 100]).reshape(-1,1) + policy = AgeReplacementPolicy(gompertz, a0=a0, cf=cf, cp=cp, rate=0.04) + policy.fit() + policy.ar1, policy.ar + +Where `ar1` are the time left until the first replacement, whereas `ar` is the +optimal age of replacement for the next replacements: + +.. code-block:: console + + (array([[10.06828465], + [11.5204334 ], + [22.58652687]]), + array([[20.91858994], + [25.54939328], + [41.60855399]])) + +The optimal age of replacement minimizes the asymptotic expected equivalent annual +cost. It represents the best compromise between replacement costs and the cost +of the consequences of failure. + +.. code-block:: python + + a = np.arange(1,100,0.1) + za = policy.asymptotic_expected_equivalent_annual_cost(a) + za_opt = policy.asymptotic_expected_equivalent_annual_cost() + plt.plot(a, za.T) + for i, ar in enumerate(policy.ar): + plt.scatter(ar, za_opt[i], c=f'C{i}', + label=f" cf={cf[i,0]} k€, ar={ar[0]:0.1f} years") + plt.xlabel('Age of preventive replacement [years]') + plt.ylabel('Asymptotic expected equivalent annual cost [k€]') + plt.legend() + +.. figure:: https://raw.githubusercontent.com/rte-france/relife/main/docs/_images/optimal-ages.png + +Budget and operations planning +------------------------------ + +For budgeting, the expected total discounted costs for the 3 circuit breakers +are computed and we can plot the total annual discounted costs for the next 30 +years, including costs of failures and costs of preventive replacements. + +.. code-block:: python + + dt = 0.5 + step = int(1/dt) + t = np.arange(0, 30+dt, dt) + z = policy.expected_total_cost(t).sum(axis=0) + y = t[::step][1:] + q = np.diff(z[::step]) + plt.bar(2020+y, q, align='edge', width=-0.8, alpha=0.8, color='C2') + plt.xlabel('Year') + plt.ylabel('Expected discounted annual cost in k€') + +.. figure:: https://raw.githubusercontent.com/rte-france/relife/main/docs/_images/annual-costs.png + +Then the total number of replacements are projected for the next 30 years. +Failure replacements are counted separately in order to prevent and prepare the +workload of the maintenance teams. + +.. code-block:: + + mt = policy.expected_total_cost(t, cf=1, cp=1, rate=0).sum(axis=0) + mf = policy.expected_total_cost(t, cf=1, cp=0, rate=0).sum(axis=0) + qt = np.diff(mt[::step]) + qf = np.diff(mf[::step]) + plt.bar(y+2020, qt, align='edge', width=-0.8, alpha=0.8, + color='C1', label='all replacements') + plt.bar(y+2020, qf, align='edge', width=-0.8, alpha=0.8, + color='C0', label='failure replacements only') + plt.xlabel('Years') + plt.ylabel('Expected number of annual replacements') + plt.legend() + +The figure shows the expected replacements for the very small sample of 3 +circuit breakers. When the population of assets is large, the expected failure +replacements is a useful information to build up a stock of materials. + +.. figure:: https://raw.githubusercontent.com/rte-france/relife/main/docs/_images/replacements.png + diff --git a/docs/LICENSE.txt b/docs/LICENSE.txt new file mode 100644 index 0000000..da6ab6c --- /dev/null +++ b/docs/LICENSE.txt @@ -0,0 +1,396 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. + diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d4bb2cb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_images/annual-costs.png b/docs/_images/annual-costs.png new file mode 100644 index 0000000..a0e9e1f Binary files /dev/null and b/docs/_images/annual-costs.png differ diff --git a/docs/_images/optimal-ages.png b/docs/_images/optimal-ages.png new file mode 100644 index 0000000..e36bff2 Binary files /dev/null and b/docs/_images/optimal-ages.png differ diff --git a/docs/_images/relife.png b/docs/_images/relife.png new file mode 100644 index 0000000..eea8d66 Binary files /dev/null and b/docs/_images/relife.png differ diff --git a/docs/_images/replacements.png b/docs/_images/replacements.png new file mode 100644 index 0000000..76b31a5 Binary files /dev/null and b/docs/_images/replacements.png differ diff --git a/docs/_images/survival-analysis.png b/docs/_images/survival-analysis.png new file mode 100644 index 0000000..dc61697 Binary files /dev/null and b/docs/_images/survival-analysis.png differ diff --git a/docs/_static/favicon.ico b/docs/_static/favicon.ico new file mode 100644 index 0000000..2119d02 Binary files /dev/null and b/docs/_static/favicon.ico differ diff --git a/docs/_static/logo.png b/docs/_static/logo.png new file mode 100644 index 0000000..fa512dc Binary files /dev/null and b/docs/_static/logo.png differ diff --git a/docs/_templates/custom-class-template.rst b/docs/_templates/custom-class-template.rst new file mode 100644 index 0000000..c3bdb3e --- /dev/null +++ b/docs/_templates/custom-class-template.rst @@ -0,0 +1,35 @@ +{{ fullname | escape | underline}} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :members: + :show-inheritance: + :inherited-members: + :special-members: __call__, __add__, __mul__ + + {% block methods %} + {% if methods %} + .. rubric:: {{ _('Methods') }} + + .. autosummary:: + :nosignatures: + {% for item in methods %} + {%- if not item.startswith('_') %} + ~{{ name }}.{{ item }} + {%- endif -%} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block attributes %} + {% if attributes %} + .. rubric:: {{ _('Attributes') }} + + .. autosummary:: + {% for item in attributes %} + ~{{ name }}.{{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + diff --git a/docs/_templates/custom-module-template.rst b/docs/_templates/custom-module-template.rst new file mode 100644 index 0000000..0ef7378 --- /dev/null +++ b/docs/_templates/custom-module-template.rst @@ -0,0 +1,67 @@ +{{ fullname | escape | underline}} + +.. automodule:: {{ fullname }} + + {% block attributes %} + {% if attributes %} + .. rubric:: Module attributes + + .. autosummary:: + :toctree: + {% for item in attributes %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block functions %} + {% if functions %} + .. rubric:: {{ _('Functions') }} + + .. autosummary:: + :toctree: + :nosignatures: + {% for item in functions %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block classes %} + {% if classes %} + .. rubric:: {{ _('Classes') }} + + .. autosummary:: + :toctree: + :template: custom-class-template.rst + :nosignatures: + {% for item in classes %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block exceptions %} + {% if exceptions %} + .. rubric:: {{ _('Exceptions') }} + + .. autosummary:: + :toctree: + {% for item in exceptions %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + +{% block modules %} +{% if modules %} +.. autosummary:: + :toctree: + :template: custom-module-template.rst + :recursive: +{% for item in modules %} + {{ item }} +{%- endfor %} +{% endif %} +{% endblock %} + diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..bf8d858 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,67 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys +sys.path.insert(0, os.path.abspath('../')) + + +# -- Project information ----------------------------------------------------- + +project = 'ReLife' +copyright = u'2022, RTE (https://www.rte-france.com) except where otherwise noted and licensed under a CC-BY-4.0 license (https://creativecommons.org/licenses/by/4.0/)' +author = 'Thomas Guillon, Michaël Boulade, Laura Cohen, Lionel Figueroa, Jovana Krstevska, Sami Tazi.' + +# The full version, including alpha/beta/rc tags +release = '1.0.0' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.napoleon', + 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', + 'sphinx.ext.viewcode', + 'sphinx.ext.githubpages' +] + +autoclass_content = 'both' +autodoc_member_order = 'bysource' + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = "sphinx_book_theme" + +html_logo = '_static/logo.png' + +html_favicon = '_static/favicon.ico' + +# 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, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..6c47d44 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,19 @@ +.. ReLife documentation master file, created by + sphinx-quickstart on Wed Feb 16 14:44:52 2022. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +.. include:: ../README.rst + +.. toctree:: + :maxdepth: 2 + :caption: API documentation + + relife <_autosummary/relife> + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`search` diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..153be5e --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/modules.rst b/docs/modules.rst new file mode 100644 index 0000000..9d2c562 --- /dev/null +++ b/docs/modules.rst @@ -0,0 +1,13 @@ +relife +====== + +.. toctree:: + :maxdepth: 4 + +.. autosummary:: + :toctree: _autosummary + :template: custom-module-template.rst + :recursive: + + relife + diff --git a/docs/relife.rst b/docs/relife.rst new file mode 100644 index 0000000..cd6beff --- /dev/null +++ b/docs/relife.rst @@ -0,0 +1,122 @@ +relife package +============== + +Submodules +---------- + +relife.data module +------------------ + +.. automodule:: relife.data + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.datasets module +---------------------- + +.. automodule:: relife.datasets + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.discounting module +------------------------- + +.. automodule:: relife.discounting + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.distribution module +-------------------------- + +.. automodule:: relife.distribution + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.model module +------------------- + +.. automodule:: relife.model + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.nonparametric module +--------------------------- + +.. automodule:: relife.nonparametric + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.parametric module +------------------------ + +.. automodule:: relife.parametric + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.regression module +------------------------ + +.. automodule:: relife.regression + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.renewal\_process module +------------------------------ + +.. automodule:: relife.renewal_process + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.replacement\_policy module +--------------------------------- + +.. automodule:: relife.replacement_policy + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.reward module +-------------------- + +.. automodule:: relife.reward + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.utils module +------------------- + +.. automodule:: relife.utils + :members: + :undoc-members: + :show-inheritance: + :noindex: + +Module contents +--------------- + +.. automodule:: relife + :members: + :undoc-members: + :show-inheritance: + :noindex: diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..5ae632e --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,5 @@ +numpy>=1.17.0 +scipy>=1.3.1 +matplotlib>=3.1.1 +sphinx >= 4.4.0 +sphinx-book-theme >= 0.2.0 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..d97b4d2 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,38 @@ +[build-system] +requires = ["flit_core >=3.2,<4"] +build-backend = "flit_core.buildapi" +dependencies = [ + "numpy >=1.17.0", + "scipy >=1.3.1", + "matplotlib >=3.1.1", +] + +[project] +name = "relife" +authors = [ + {name = "Thomas Guillon"}, + {name = "Michael Boulade"}, + {name = "Laura Cohen"}, + {name = "Lionel Figueroa"}, + {name = "Jovana Krstevska "}, + {name = "Sami Tazi"} +] +readme = "README.rst" +classifiers = ["License :: OSI Approved :: Apache Software License"] +requires-python = ">=3.7" +dynamic = ["version", "description"] + +[project.optional-dependencies] +test = [ + "pytest >=2.7.3", + "pytest-cov", +] +doc = [ + "sphinx >= 4.4.0", + "sphinx-book-theme >= 0.2.0", +] + +[project.urls] +Home = "https://github.com/rte-france/relife" +Documentation = "https://rte-france.github.io/relife/" + diff --git a/relife/__init__.py b/relife/__init__.py new file mode 100644 index 0000000..45ce896 --- /dev/null +++ b/relife/__init__.py @@ -0,0 +1,51 @@ +"""The relife package.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from .model import AgeReplacementModel, LeftTruncated, EquilibriumDistribution +from .distribution import ( + Exponential, + Weibull, + Gompertz, + Gamma, + LogLogistic, + MinimumDistribution, +) +from .regression import AFT, ProportionalHazards +from .nonparametric import ECDF, KaplanMeier, NelsonAalen +from .renewal_process import RenewalProcess, RenewalRewardProcess +from .replacement_policy import ( + OneCycleRunToFailure, + RunToFailure, + OneCycleAgeReplacementPolicy, + AgeReplacementPolicy, +) + +__version__ = "1.0.0" + +__all__ = [ + "AgeReplacementModel", + "LeftTruncated", + "EquilibriumDistribution", + "Exponential", + "Weibull", + "Gompertz", + "Gamma", + "LogLogistic", + "MinimumDistribution", + "AFT", + "ProportionalHazards", + "ECDF", + "KaplanMeier", + "NelsonAalen", + "RenewalProcess", + "RenewalRewardProcess", + "OneCycleRunToFailure", + "RunToFailure", + "OneCycleAgeReplacementPolicy", + "AgeReplacementPolicy", +] diff --git a/relife/data.py b/relife/data.py new file mode 100644 index 0000000..6f822c6 --- /dev/null +++ b/relife/data.py @@ -0,0 +1,318 @@ +"""Dataclasses for survival analysis and renewal processes outputs.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from dataclasses import dataclass, astuple +from typing import Tuple, NamedTuple +import numpy as np + +from .utils import args_size, args_take + + +@dataclass +class LifetimeData: + """Lifetime data. + + Dataclass of lifetime data required by the maximum likelihood estimation. + """ + + time: np.ndarray #: Age of the assets. + event: np.ndarray = None #: Type of event, by default None. + entry: np.ndarray = None #: Age of assets at the beginning of the observation period (left truncation), by default None. + args: Tuple[np.ndarray] = () #: Extra arguments required by the lifetime model. + + def __post_init__(self) -> None: + self._parse_data() + self._format_data() + self.size = self.time.size + + def _parse_data(self) -> None: + """Parse lifetime data and check values. + + Notes + ----- + Default value for `event` is 1 (no censoring), default value for `entry` is + 0 (no truncation). + """ + if self.event is None: + self.event = np.ones_like(self.time, int) + if self.entry is None: + self.entry = np.zeros_like(self.time, float) + if np.any(self.time <= 0): + raise ValueError("time values must be strictly positive") + if not np.all(np.isin(self.event, [0, 1, 2])): + raise ValueError("event values must be in [0,1,2]") + if np.any(self.entry < 0): + raise ValueError("entry values must be positive") + if np.any(self.time <= self.entry): + raise ValueError("entry must be strictly lower than the time to event") + s = args_size(*self.args) + if s > 0 and s != np.size(self.time): + raise ValueError( + "dimension mismatch for optional args: expected {} got {}".format( + np.size(self.time), s + ) + ) + + class DataByEvent(NamedTuple): + """Group data by type of event.""" + + D: np.ndarray #: observed event. + D_RC: np.ndarray #: union of observed events and right-censored data. + LC: np.ndarray #: left-censored data. + LT: np.ndarray #: left-truncated data. + + def _format_data(self) -> None: + """Format data according to DataByEvent categories. + + Notes + ----- + Used in negative log-likelihood calculation in parametric.py. + """ + # Event Observed, Event Observed + Right Censoring, Left Censoring, Left Truncation + D, D_RC, LC, LT = map( + np.nonzero, + [ + self.event == 1, + (self.event == 1) + (self.event == 0), + self.event == 2, + self.entry > 0, + ], + ) + self._time = self.DataByEvent( + *[self.time[ind].reshape(-1, 1) for ind in [D, D_RC, LC]], + self.entry[LT].reshape(-1, 1), + ) + self._args = self.DataByEvent( + *[args_take(ind[0], *self.args) for ind in [D, D_RC, LC, LT]] + ) + + def __getitem__(self, key): + return LifetimeData( + self.time[key], self.event[key], self.entry[key], args_take(key, *self.args) + ) + + def astuple(self) -> Tuple[np.ndarray, ...]: + """Converts the dataclass attributes as a tuple. + + Returns + ------- + Tuple[ndarray] + The attributes of the class as the tuple + `(time, event, entry, *args)`. + """ + return self.time, self.event, self.entry, *self.args + + +@dataclass +class CountData: + """Counting process data.""" + + T: float #: Time at the end of the observation. + n_indices: int #: Number of initial assets. + n_samples: int #: Numbers of samples. + indices: np.ndarray #: Indices of assets. + samples: np.ndarray #: Indices of samples. + times: np.ndarray #: Times of observed events. + + @property + def size(self) -> int: + """The number of indices. + + Returns + ------- + int + Size of indices array. + """ + return self.indices.size + + def number_of_events(self, sample: int) -> Tuple[np.ndarray, np.ndarray]: + """Counts the number of events with respect to times. + + Parameters + ---------- + sample : int + Index of the sample. + + Returns + ------- + Tuple[ndarray, ndarray] + The ordered times and total number of events as a tuple `(times, counts)`. + """ + ind = (self.samples == sample) & (self.times <= self.T) + times = np.insert(np.sort(self.times[ind]), 0, 0) + counts = np.arange(times.size) + return times, counts + + def mean_number_of_events(self) -> Tuple[np.ndarray, np.ndarray]: + """Mean number of events with respect to time. + + Returns + ------- + Tuple[ndarray, ndarray] + The ordered times and mean number of events as a tuple `(times, counts)`. + """ + ind = self.times <= self.T + times = np.insert(np.sort(self.times[ind]), 0, 0) + counts = np.arange(times.size) / self.n_samples + return times, counts + + def astuple(self) -> tuple: + """Converts the dataclass attributes as a tuple.""" + return astuple(self) + + +@dataclass +class RenewalData(CountData): + """Renewal process data. + + Notes + ----- + Inherit from CountData and add a `durations` attribute. + """ + + durations: np.ndarray #: Time between events. + + +@dataclass +class RenewalRewardData(RenewalData): + """Renewal reward process data. + + Notes + ----- + Inherit from RenewalData and add a `rewards` attribute. + """ + + rewards: np.ndarray #: Reward associated at each event. + + def total_reward(self, sample: int) -> Tuple[np.ndarray, np.ndarray]: + """Total reward with respect to time. + + Parameters + ---------- + sample : int + Index of the sample. + + Returns + ------- + Tuple[ndarray, ndarray] + The ordered times and total rewards as a tuple `(times, z)`. + """ + ind = (self.samples == sample) & (self.times <= self.T) + s = np.argsort(self.times[ind]) + times = np.insert(self.times[ind][s], 0, 0) + z = np.insert(self.rewards[ind][s].cumsum(), 0, 0) + return times, z + + def mean_total_reward(self) -> Tuple[np.ndarray, np.ndarray]: + """Mean total reward with respect to time. + + Returns + ------- + Tuple[ndarray, ndarray] + The ordered times and mean total rewards as a tuple `(times, z)`. + """ + ind = self.times <= self.T + s = np.argsort(self.times[ind]) + times = np.insert(self.times[ind][s], 0, 0) + z = np.insert(self.rewards[ind][s].cumsum(), 0, 0) / self.n_samples + return times, z + + +@dataclass +class ReplacementPolicyData(RenewalRewardData): + """Replacement policy data.""" + + events: np.ndarray #: Event types. + args: np.ndarray #: Extra arguments required by the lifetime model. + a0: np.ndarray #: Age of the assets at the first replacement. + + def to_lifetime_data( + self, t0: float = 0, tf: float = None, sample: int = None + ) -> LifetimeData: + """Builds a lifetime data sample. + + Parameters + ---------- + t0 : float, optional + Start of the observation period, by default 0. + tf : float, optional + End of the observation period, by default the time at the end of the + observation. + sample : int, optional + Index of the sample, by default all sample are mixed. + + Returns + ------- + LifetimeData + The lifetime data sample built from the observation period `[t0,tf]` + of the renewal process. + + Raises + ------ + ValueError + if `t0` is greater than `tf`. + """ + if tf is None or tf > self.T: + tf = self.T + if t0 >= tf: + raise ValueError("`t0` must be strictly lesser than `tf`") + + # Filtering sample and sorting by times + s = self.samples == sample if sample is not None else Ellipsis + order = np.argsort(self.times[s]) + indices = self.indices[s][order] + samples = self.samples[s][order] + uindices = np.ravel_multi_index( + (indices, samples), (self.n_indices, self.n_samples) + ) + times = self.times[s][order] + durations = self.durations[s][order] + self.a0[s][order] + events = self.events[s][order] + + # Indices of interest + ind0 = (times > t0) & ( + times <= tf + ) # Indices of replacement occuring inside the obervation window + ind1 = ( + times > tf + ) # Indices of replacement occuring after the observation window which include right censoring + + # Replacements occuring inside the observation window + time0 = durations[ind0] + event0 = events[ind0] + entry0 = np.zeros(time0.size) + _, LT = np.unique( + uindices[ind0], return_index=True + ) # get the indices of the first replacements ocurring in the observation window + b0 = ( + times[ind0][LT] - durations[ind0][LT] + ) # time at birth for the firt replacements + entry0[LT] = np.where(b0 >= t0, 0, t0 - b0) + args0 = args_take(indices[ind0], *self.args) + + # Right censoring + _, RC = np.unique(uindices[ind1], return_index=True) + bf = ( + times[ind1][RC] - durations[ind1][RC] + ) # time at birth for the right censored + b1 = bf[ + bf < tf + ] # ensure that time of birth for the right censored is not equal to tf. + time1 = tf - b1 + event1 = np.zeros(b1.size) + entry1 = np.where(b1 >= t0, 0, t0 - b1) + args1 = args_take(indices[ind1][RC][bf < tf], *self.args) + + # Concatenate + time = np.concatenate((time0, time1)) + event = np.concatenate((event0, event1)) + entry = np.concatenate((entry0, entry1)) + args = tuple( + np.concatenate((arg0, arg1), axis=0) for arg0, arg1 in zip(args0, args1) + ) + return LifetimeData(time, event, entry, args) diff --git a/relife/datasets.py b/relife/datasets.py new file mode 100644 index 0000000..e39b574 --- /dev/null +++ b/relife/datasets.py @@ -0,0 +1,107 @@ +"""Lifetime datasets to load.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import numpy as np +from pathlib import Path + +from .data import LifetimeData + + +DATA_PATH = Path(__file__).parent / "datasets" + + +def load_power_transformer() -> LifetimeData: + """Load and return the power transformer lifetime data. + + The data were simulated from a real estimate: + + - `time`: time-to-event or durations in years, + - `event`: if a failure occurs during the observation period, + - `entry`: age of the power transformers in years at the beginning of the + observation period. + + Returns + ------- + LifetimeData + The lifetime data as a dataclass instance. + + Examples + -------- + + .. code-block:: + + from relife.datasets import load_power_transformer + time, event, entry = load_power_transformer().astuple() + """ + data = np.loadtxt( + DATA_PATH / "power_transformer.csv", delimiter=",", skiprows=1, unpack=True + ) + return LifetimeData(*data) + + +def load_circuit_breaker() -> LifetimeData: + """Load and return the circuit breaker lifetime data. + + The data were simulated from a real estimate: + + - `time`: time-to-event or durations in years, + - `event`: if a failure occurs during the observation period, + - `entry`: age of the circuit breakers in years at the beginning of the + observation period. + + Returns + ------- + LifetimeData + The lifetime data as a dataclass instance. + + Examples + -------- + + .. code-block:: + + from relife.datasets import load_circuit_breaker + time, event, entry = load_circuit_breaker().astuple() + """ + data = np.loadtxt( + DATA_PATH / "circuit_breaker.csv", delimiter=",", skiprows=1, unpack=True + ) + return LifetimeData(*data) + + +def load_insulator_string() -> LifetimeData: + """Load and return the insulator string lifetime data for regression. + + The data were simulated from a real estimate: + + - `time`: time-to-event or durations in years, + - `event`: if a failure occurs during the observation period, + - `entry`: age of the circuit breakers in years at the beginning of the + observation period, + - `args`: tuple of covariates related to the atmospheric polluants. + + Returns + ------- + LifetimeData + The lifetime data as a dataclass instance. + + Examples + -------- + + .. code-block:: + + import numpy as np + from scipy.stats import boxcox, zscore + from relife.datasets import load_circuit_breaker + time, event, entry, *args = load_insulator_string().astuple() + covar = zscore(np.column_stack([boxcox(col)[0] for col in args[0].T])) + """ + time, event, entry, *args = np.loadtxt( + DATA_PATH / "insulator_string.csv", delimiter=",", skiprows=1, unpack=True + ) + covar = np.column_stack(args) + return LifetimeData(time, event, entry, (covar,)) diff --git a/relife/datasets/circuit_breaker.csv b/relife/datasets/circuit_breaker.csv new file mode 100644 index 0000000..e388d0e --- /dev/null +++ b/relife/datasets/circuit_breaker.csv @@ -0,0 +1,4205 @@ +time,event,entry +34,1,33 +28,1,27 +12,1,11 +38,1,37 +18,1,17 +32,1,31 +44,1,43 +49,1,48 +27,1,26 +47,1,46 +44,1,43 +70,1,69 +40,1,38 +37,1,35 +26,1,24 +26,1,24 +40,1,38 +33,1,31 +49,1,47 +25,1,23 +43,1,41 +18,1,16 +38,1,36 +16,1,14 +32,1,30 +24,1,22 +20,1,18 +28,1,26 +39,1,37 +45,1,43 +37,1,35 +34,1,32 +47,1,45 +72,1,69 +39,1,36 +39,1,36 +34,1,31 +37,1,34 +31,1,28 +55,1,52 +33,1,30 +53,1,50 +34,1,31 +32,1,29 +28,1,25 +38,1,35 +29,1,26 +52,1,49 +45,1,42 +32,1,29 +35,1,32 +36,1,33 +47,1,44 +39,1,35 +37,1,33 +30,1,26 +23,1,19 +58,1,54 +41,1,37 +25,1,21 +30,1,26 +41,1,37 +44,1,40 +53,1,49 +42,1,38 +36,1,32 +34,1,30 +39,1,35 +47,1,43 +34,1,30 +43,1,38 +32,1,27 +44,1,39 +29,1,24 +34,1,29 +41,1,36 +36,1,31 +24,1,19 +71,1,66 +33,1,28 +48,1,43 +39,1,34 +24,1,19 +42,1,37 +55,1,50 +45,1,40 +42,1,37 +33,1,28 +43,1,38 +41,1,36 +28,1,23 +44,1,38 +39,1,33 +15,1,9 +43,1,37 +48,1,42 +46,1,40 +44,1,38 +21,1,15 +37,1,31 +51,1,45 +38,1,32 +29,1,23 +43,1,37 +42,1,36 +34,1,28 +41,1,34 +56,1,49 +31,1,24 +34,1,27 +28,1,21 +57,1,50 +39,1,32 +36,1,29 +32,1,25 +44,1,37 +44,1,37 +50,1,43 +43,1,36 +22,1,15 +37,1,30 +57,1,49 +45,1,37 +39,1,31 +39,1,31 +43,1,35 +50,1,42 +43,1,35 +43,1,35 +46,1,38 +45,1,37 +36,1,28 +34,1,26 +36,1,28 +49,1,41 +17,1,9 +35,1,27 +41,1,33 +38,1,30 +20,1,12 +44,1,36 +35,1,27 +41,1,33 +51,1,43 +67,1,58 +43,1,34 +47,1,38 +48,1,39 +34,1,25 +44,1,35 +32,1,23 +46,1,37 +30,1,21 +26,1,17 +41,1,32 +46,1,37 +41,1,32 +55,1,46 +75,1,66 +40,1,31 +47,1,38 +32,1,23 +45,1,36 +32,1,23 +39,1,30 +47,1,38 +48,1,39 +35,1,26 +41,1,32 +41,1,32 +58,1,49 +33,1,24 +45,1,36 +56,1,47 +43,1,34 +49,1,40 +37,1,28 +56,1,47 +36,1,27 +42,1,33 +52,1,43 +47,1,38 +37,1,28 +32,1,23 +53,1,43 +59,1,49 +40,1,30 +50,1,40 +42,1,32 +50,1,40 +38,1,28 +43,1,33 +44,1,34 +46,1,36 +48,1,38 +47,1,37 +37,1,27 +53,1,43 +40,1,30 +33,1,23 +45,1,35 +63,1,53 +48,1,38 +48,1,38 +56,0,45 +56,0,45 +21,0,10 +21,0,10 +21,0,10 +40,0,29 +40,0,29 +40,0,29 +54,0,43 +54,0,43 +20,0,9 +20,0,9 +20,0,9 +21,0,10 +21,0,10 +21,0,10 +27,0,16 +27,0,16 +27,0,16 +21,0,10 +21,0,10 +21,0,10 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +41,0,30 +41,0,30 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +39,0,28 +39,0,28 +39,0,28 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +52,0,41 +52,0,41 +52,0,41 +52,0,41 +52,0,41 +19,0,8 +51,0,40 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +29,0,18 +29,0,18 +29,0,18 +33,0,22 +33,0,22 +33,0,22 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +30,0,19 +30,0,19 +30,0,19 +42,0,31 +42,0,31 +42,0,31 +32,0,21 +32,0,21 +32,0,21 +6,0,0 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +33,0,22 +33,0,22 +33,0,22 +20,0,9 +20,0,9 +20,0,9 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +20,0,9 +20,0,9 +20,0,9 +1,0,0 +51,0,40 +51,0,40 +49,0,38 +49,0,38 +20,0,9 +49,0,38 +49,0,38 +20,0,9 +20,0,9 +20,0,9 +42,0,31 +8,0,0 +42,0,31 +20,0,9 +42,0,31 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +40,0,29 +8,0,0 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +34,0,23 +34,0,23 +34,0,23 +41,0,30 +2,0,0 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +29,0,18 +29,0,18 +29,0,18 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +34,0,23 +34,0,23 +34,0,23 +30,0,19 +30,0,19 +30,0,19 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +30,0,19 +30,0,19 +7,0,0 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +46,0,35 +46,0,35 +46,0,35 +5,0,0 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +23,0,12 +23,0,12 +23,0,12 +41,0,30 +41,0,30 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +41,0,30 +41,0,30 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +40,0,29 +6,0,0 +40,0,29 +32,0,21 +32,0,21 +32,0,21 +34,0,23 +34,0,23 +34,0,23 +6,0,0 +30,0,19 +30,0,19 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +42,0,31 +42,0,31 +42,0,31 +50,0,39 +50,0,39 +50,0,39 +9,0,0 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +47,0,36 +47,0,36 +47,0,36 +42,0,31 +3,0,0 +42,0,31 +45,0,34 +45,0,34 +45,0,34 +31,0,20 +31,0,20 +31,0,20 +2,0,0 +10,0,0 +28,0,17 +51,0,40 +51,0,40 +51,0,40 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +21,0,10 +21,0,10 +21,0,10 +20,0,9 +20,0,9 +20,0,9 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +47,0,36 +47,0,36 +47,0,36 +53,0,42 +53,0,42 +53,0,42 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +39,0,28 +39,0,28 +6,0,0 +38,0,27 +38,0,27 +38,0,27 +35,0,24 +35,0,24 +29,0,18 +29,0,18 +29,0,18 +33,0,22 +33,0,22 +33,0,22 +29,0,18 +29,0,18 +29,0,18 +30,0,19 +30,0,19 +30,0,19 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +23,0,12 +3,0,0 +23,0,12 +54,0,43 +28,0,17 +28,0,17 +28,0,17 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +39,0,28 +40,0,29 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +25,0,14 +25,0,14 +25,0,14 +26,0,15 +26,0,15 +26,0,15 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +35,0,24 +35,0,24 +35,0,24 +37,0,26 +37,0,26 +37,0,26 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +43,0,32 +4,0,0 +43,0,32 +42,0,31 +42,0,31 +42,0,31 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +3,0,0 +43,0,32 +43,0,32 +43,0,32 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +43,0,32 +43,0,32 +43,0,32 +33,0,22 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +35,0,24 +35,0,24 +35,0,24 +33,0,22 +35,0,24 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +38,0,27 +38,0,27 +38,0,27 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +6,0,0 +38,0,27 +38,0,27 +38,0,27 +47,0,36 +5,0,0 +4,0,0 +35,0,24 +35,0,24 +35,0,24 +45,0,34 +45,0,34 +45,0,34 +44,0,33 +44,0,33 +44,0,33 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +38,0,27 +38,0,27 +38,0,27 +37,0,26 +37,0,26 +37,0,26 +28,0,17 +28,0,17 +28,0,17 +24,0,13 +45,0,34 +24,0,13 +45,0,34 +45,0,34 +45,0,34 +39,0,28 +39,0,28 +39,0,28 +40,0,29 +40,0,29 +35,0,24 +34,0,23 +2,0,0 +35,0,24 +35,0,24 +35,0,24 +42,0,31 +42,0,31 +42,0,31 +43,0,32 +43,0,32 +43,0,32 +44,0,33 +44,0,33 +44,0,33 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +3,0,0 +20,0,9 +20,0,9 +20,0,9 +5,0,0 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +31,0,20 +31,0,20 +31,0,20 +35,0,24 +35,0,24 +35,0,24 +31,0,20 +31,0,20 +31,0,20 +35,0,24 +35,0,24 +35,0,24 +43,0,32 +43,0,32 +40,0,29 +43,0,32 +35,0,24 +35,0,24 +4,0,0 +35,0,24 +35,0,24 +35,0,24 +48,0,37 +48,0,37 +3,0,0 +48,0,37 +48,0,37 +48,0,37 +43,0,32 +43,0,32 +2,0,0 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +46,0,35 +7,0,0 +46,0,35 +51,0,40 +6,0,0 +51,0,40 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +31,0,20 +31,0,20 +31,0,20 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +49,0,38 +49,0,38 +49,0,38 +1,0,0 +60,0,49 +49,0,38 +49,0,38 +49,0,38 +61,0,50 +4,0,0 +61,0,50 +6,0,0 +52,0,41 +52,0,41 +52,0,41 +61,0,50 +61,0,50 +61,0,50 +47,0,36 +47,0,36 +1,0,0 +47,0,36 +3,0,0 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +49,0,38 +49,0,38 +2,0,0 +49,0,38 +49,0,38 +49,0,38 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +49,0,38 +49,0,38 +49,0,38 +48,0,37 +48,0,37 +7,0,0 +49,0,38 +5,0,0 +49,0,38 +49,0,38 +1,0,0 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +54,0,43 +54,0,43 +54,0,43 +7,0,0 +54,0,43 +54,0,43 +48,0,37 +48,0,37 +48,0,37 +3,0,0 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +43,0,32 +43,0,32 +43,0,32 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +28,0,17 +28,0,17 +28,0,17 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +28,0,17 +28,0,17 +28,0,17 +37,0,26 +37,0,26 +37,0,26 +32,0,21 +32,0,21 +32,0,21 +53,0,42 +53,0,42 +48,0,37 +54,0,43 +54,0,43 +54,0,43 +46,0,35 +46,0,35 +46,0,35 +43,0,32 +43,0,32 +43,0,32 +49,0,38 +6,0,0 +49,0,38 +50,0,39 +50,0,39 +50,0,39 +3,0,0 +52,0,41 +52,0,41 +46,0,35 +46,0,35 +46,0,35 +32,0,21 +32,0,21 +32,0,21 +27,0,16 +27,0,16 +27,0,16 +50,0,39 +50,0,39 +50,0,39 +27,0,16 +27,0,16 +27,0,16 +32,0,21 +32,0,21 +32,0,21 +9,0,0 +56,0,45 +56,0,45 +48,0,37 +48,0,37 +47,0,36 +47,0,36 +47,0,36 +49,0,38 +2,0,0 +49,0,38 +50,0,39 +50,0,39 +50,0,39 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +63,0,52 +63,0,52 +63,0,52 +49,0,38 +49,0,38 +49,0,38 +2,0,0 +38,0,27 +38,0,27 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +46,0,35 +46,0,35 +46,0,35 +41,0,30 +41,0,30 +41,0,30 +32,0,21 +32,0,21 +32,0,21 +38,0,27 +10,0,0 +38,0,27 +47,0,36 +47,0,36 +47,0,36 +46,0,35 +46,0,35 +46,0,35 +56,0,45 +56,0,45 +56,0,45 +56,0,45 +56,0,45 +56,0,45 +56,0,45 +56,0,45 +56,0,45 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +77,0,66 +2,0,0 +6,0,0 +60,0,49 +60,0,49 +60,0,49 +60,0,49 +60,0,49 +7,0,0 +51,0,40 +51,0,40 +51,0,40 +7,0,0 +51,0,40 +51,0,40 +60,0,49 +60,0,49 +60,0,49 +60,0,49 +60,0,49 +60,0,49 +42,0,31 +42,0,31 +42,0,31 +38,0,27 +38,0,27 +38,0,27 +49,0,38 +2,0,0 +49,0,38 +21,0,10 +21,0,10 +21,0,10 +43,0,32 +43,0,32 +5,0,0 +21,0,10 +21,0,10 +21,0,10 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +63,0,52 +8,0,0 +63,0,52 +60,0,49 +3,0,0 +60,0,49 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +21,0,10 +21,0,10 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +26,0,15 +26,0,15 +4,0,0 +26,0,15 +26,0,15 +26,0,15 +27,0,16 +27,0,16 +27,0,16 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +25,0,14 +25,0,14 +25,0,14 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +24,0,13 +24,0,13 +24,0,13 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +47,0,36 +47,0,36 +47,0,36 +19,0,8 +19,0,8 +19,0,8 +26,0,15 +26,0,15 +26,0,15 +25,0,14 +25,0,14 +25,0,14 +51,0,40 +2,0,0 +51,0,40 +50,0,39 +30,0,19 +7,0,0 +32,0,21 +32,0,21 +60,0,49 +60,0,49 +8,0,0 +60,0,49 +60,0,49 +60,0,49 +60,0,49 +4,0,0 +60,0,49 +48,0,37 +47,0,36 +47,0,36 +48,0,37 +48,0,37 +48,0,37 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +5,0,0 +26,0,15 +26,0,15 +10,0,0 +80,0,69 +8,0,0 +26,0,15 +26,0,15 +26,0,15 +25,0,14 +25,0,14 +25,0,14 +33,0,22 +33,0,22 +33,0,22 +20,0,9 +20,0,9 +20,0,9 +64,0,53 +64,0,53 +1,0,0 +59,0,48 +59,0,48 +59,0,48 +65,0,54 +65,0,54 +7,0,0 +58,0,47 +58,0,47 +58,0,47 +47,0,36 +47,0,36 +47,0,36 +28,0,17 +28,0,17 +28,0,17 +37,0,26 +37,0,26 +37,0,26 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +31,0,20 +31,0,20 +31,0,20 +54,0,43 +10,0,0 +54,0,43 +53,0,42 +53,0,42 +8,0,0 +48,0,37 +48,0,37 +48,0,37 +49,0,38 +49,0,38 +49,0,38 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +45,0,34 +45,0,34 +45,0,34 +6,0,0 +45,0,34 +45,0,34 +20,0,9 +20,0,9 +20,0,9 +1,0,0 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +36,0,25 +4,0,0 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +35,0,24 +35,0,24 +35,0,24 +32,0,21 +4,0,0 +32,0,21 +42,0,31 +42,0,31 +42,0,31 +34,0,23 +34,0,23 +34,0,23 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +2,0,0 +43,0,32 +43,0,32 +32,0,21 +32,0,21 +32,0,21 +33,0,22 +33,0,22 +33,0,22 +23,0,12 +23,0,12 +23,0,12 +23,0,12 +23,0,12 +23,0,12 +40,0,29 +40,0,29 +4,0,0 +38,0,27 +38,0,27 +38,0,27 +40,0,29 +40,0,29 +40,0,29 +23,0,12 +23,0,12 +23,0,12 +50,0,39 +50,0,39 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +39,0,28 +39,0,28 +39,0,28 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +37,0,26 +37,0,26 +7,0,0 +38,0,27 +38,0,27 +38,0,27 +36,0,25 +36,0,25 +36,0,25 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +45,0,34 +45,0,34 +1,0,0 +35,0,24 +35,0,24 +35,0,24 +39,0,28 +39,0,28 +39,0,28 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +20,0,9 +20,0,9 +20,0,9 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +31,0,20 +31,0,20 +31,0,20 +34,0,23 +34,0,23 +34,0,23 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +35,0,24 +35,0,24 +35,0,24 +27,0,16 +27,0,16 +27,0,16 +36,0,25 +36,0,25 +36,0,25 +32,0,21 +32,0,21 +32,0,21 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +33,0,22 +33,0,22 +33,0,22 +53,0,42 +5,0,0 +53,0,42 +53,0,42 +53,0,42 +53,0,42 +20,0,9 +37,0,26 +37,0,26 +37,0,26 +33,0,22 +33,0,22 +33,0,22 +28,0,17 +28,0,17 +28,0,17 +26,0,15 +26,0,15 +26,0,15 +31,0,20 +31,0,20 +31,0,20 +19,0,8 +19,0,8 +19,0,8 +42,0,31 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +47,0,36 +47,0,36 +51,0,40 +51,0,40 +51,0,40 +31,0,20 +31,0,20 +31,0,20 +55,0,44 +55,0,44 +55,0,44 +38,0,27 +39,0,28 +39,0,28 +47,0,36 +47,0,36 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +3,0,0 +41,0,30 +43,0,32 +43,0,32 +43,0,32 +38,0,27 +38,0,27 +38,0,27 +37,0,26 +37,0,26 +7,0,0 +50,0,39 +50,0,39 +50,0,39 +35,0,24 +35,0,24 +35,0,24 +40,0,29 +40,0,29 +44,0,33 +44,0,33 +44,0,33 +23,0,12 +23,0,12 +23,0,12 +24,0,13 +24,0,13 +24,0,13 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +19,0,8 +19,0,8 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +24,0,13 +24,0,13 +24,0,13 +45,0,34 +45,0,34 +45,0,34 +35,0,24 +35,0,24 +35,0,24 +37,0,26 +37,0,26 +37,0,26 +41,0,30 +41,0,30 +41,0,30 +59,0,48 +59,0,48 +59,0,48 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +51,0,40 +51,0,40 +51,0,40 +47,0,36 +47,0,36 +47,0,36 +38,0,27 +38,0,27 +4,0,0 +33,0,22 +33,0,22 +33,0,22 +36,0,25 +36,0,25 +36,0,25 +47,0,36 +47,0,36 +33,0,22 +33,0,22 +33,0,22 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +8,0,0 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +2,0,0 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +29,0,18 +29,0,18 +29,0,18 +69,0,58 +69,0,58 +2,0,0 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +9,0,0 +34,0,23 +34,0,23 +31,0,20 +31,0,20 +31,0,20 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +36,0,25 +36,0,25 +36,0,25 +30,0,19 +30,0,19 +30,0,19 +29,0,18 +29,0,18 +29,0,18 +41,0,30 +41,0,30 +41,0,30 +47,0,36 +47,0,36 +47,0,36 +3,0,0 +46,0,35 +46,0,35 +45,0,34 +45,0,34 +2,0,0 +46,0,35 +46,0,35 +46,0,35 +45,0,34 +45,0,34 +45,0,34 +57,0,46 +57,0,46 +57,0,46 +57,0,46 +57,0,46 +57,0,46 +37,0,26 +37,0,26 +37,0,26 +27,0,16 +27,0,16 +27,0,16 +29,0,18 +29,0,18 +29,0,18 +43,0,32 +43,0,32 +43,0,32 +30,0,19 +30,0,19 +6,0,0 +31,0,20 +31,0,20 +51,0,40 +53,0,42 +3,0,0 +53,0,42 +63,0,52 +63,0,52 +63,0,52 +63,0,52 +63,0,52 +56,0,45 +5,0,0 +56,0,45 +58,0,47 +58,0,47 +58,0,47 +57,0,46 +57,0,46 +57,0,46 +34,0,23 +1,0,0 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +42,0,31 +42,0,31 +42,0,31 +26,0,15 +26,0,15 +26,0,15 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +1,0,0 +43,0,32 +43,0,32 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +9,0,0 +47,0,36 +47,0,36 +38,0,27 +38,0,27 +38,0,27 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +40,0,29 +40,0,29 +40,0,29 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +8,0,0 +46,0,35 +46,0,35 +46,0,35 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +30,0,19 +30,0,19 +30,0,19 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +41,0,30 +8,0,0 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +7,0,0 +41,0,30 +41,0,30 +50,0,39 +50,0,39 +50,0,39 +37,0,26 +37,0,26 +37,0,26 +47,0,36 +47,0,36 +47,0,36 +34,0,23 +34,0,23 +34,0,23 +46,0,35 +46,0,35 +46,0,35 +50,0,39 +50,0,39 +50,0,39 +59,0,48 +59,0,48 +59,0,48 +34,0,23 +34,0,23 +34,0,23 +57,0,46 +2,0,0 +57,0,46 +49,0,38 +49,0,38 +49,0,38 +41,0,30 +41,0,30 +41,0,30 +47,0,36 +47,0,36 +1,0,0 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +34,0,23 +34,0,23 +34,0,23 +58,0,47 +58,0,47 +58,0,47 +49,0,38 +1,0,0 +49,0,38 +28,0,17 +28,0,17 +28,0,17 +45,0,34 +45,0,34 +45,0,34 +42,0,31 +42,0,31 +42,0,31 +7,0,0 +48,0,37 +23,0,12 +36,0,25 +36,0,25 +36,0,25 +42,0,31 +42,0,31 +42,0,31 +36,0,25 +36,0,25 +36,0,25 +42,0,31 +42,0,31 +42,0,31 +48,0,37 +48,0,37 +48,0,37 +26,0,15 +26,0,15 +26,0,15 +27,0,16 +27,0,16 +27,0,16 +33,0,22 +33,0,22 +33,0,22 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +9,0,0 +33,0,22 +33,0,22 +47,0,36 +2,0,0 +47,0,36 +49,0,38 +49,0,38 +49,0,38 +25,0,14 +9,0,0 +25,0,14 +41,0,30 +41,0,30 +41,0,30 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +46,0,35 +46,0,35 +49,0,38 +49,0,38 +49,0,38 +46,0,35 +46,0,35 +46,0,35 +42,0,31 +42,0,31 +49,0,38 +49,0,38 +49,0,38 +48,0,37 +49,0,38 +49,0,38 +48,0,37 +48,0,37 +48,0,37 +23,0,12 +23,0,12 +23,0,12 +48,0,37 +48,0,37 +48,0,37 +43,0,32 +43,0,32 +43,0,32 +48,0,37 +48,0,37 +48,0,37 +44,0,33 +10,0,0 +3,0,0 +38,0,27 +38,0,27 +38,0,27 +42,0,31 +42,0,31 +42,0,31 +44,0,33 +44,0,33 +4,0,0 +6,0,0 +48,0,37 +42,0,31 +42,0,31 +42,0,31 +38,0,27 +38,0,27 +38,0,27 +44,0,33 +44,0,33 +44,0,33 +39,0,28 +39,0,28 +39,0,28 +50,0,39 +50,0,39 +50,0,39 +24,0,13 +24,0,13 +24,0,13 +47,0,36 +47,0,36 +47,0,36 +46,0,35 +46,0,35 +46,0,35 +61,0,50 +8,0,0 +61,0,50 +24,0,13 +24,0,13 +24,0,13 +43,0,32 +43,0,32 +43,0,32 +2,0,0 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +7,0,0 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +47,0,36 +47,0,36 +47,0,36 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +46,0,35 +46,0,35 +46,0,35 +47,0,36 +47,0,36 +47,0,36 +45,0,34 +45,0,34 +45,0,34 +46,0,35 +46,0,35 +46,0,35 +47,0,36 +47,0,36 +8,0,0 +46,0,35 +46,0,35 +46,0,35 +38,0,27 +38,0,27 +3,0,0 +46,0,35 +46,0,35 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +50,0,39 +50,0,39 +50,0,39 +50,0,39 +6,0,0 +50,0,39 +50,0,39 +50,0,39 +50,0,39 +46,0,35 +46,0,35 +46,0,35 +44,0,33 +44,0,33 +44,0,33 +2,0,0 +9,0,0 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +45,0,34 +2,0,0 +45,0,34 +46,0,35 +9,0,0 +46,0,35 +33,0,22 +33,0,22 +33,0,22 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +40,0,29 +40,0,29 +40,0,29 +42,0,31 +42,0,31 +42,0,31 +39,0,28 +39,0,28 +39,0,28 +41,0,30 +41,0,30 +41,0,30 +3,0,0 +39,0,28 +2,0,0 +49,0,38 +49,0,38 +6,0,0 +52,0,41 +52,0,41 +52,0,41 +30,0,19 +30,0,19 +30,0,19 +48,0,37 +50,0,39 +50,0,39 +50,0,39 +53,0,42 +55,0,44 +42,0,31 +42,0,31 +2,0,0 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +49,0,38 +49,0,38 +49,0,38 +44,0,33 +44,0,33 +44,0,33 +39,0,28 +6,0,0 +39,0,28 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +23,0,12 +23,0,12 +23,0,12 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +25,0,14 +25,0,14 +25,0,14 +30,0,19 +30,0,19 +30,0,19 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +30,0,19 +30,0,19 +30,0,19 +40,0,29 +40,0,29 +40,0,29 +8,0,0 +40,0,29 +40,0,29 +39,0,28 +5,0,0 +39,0,28 +42,0,31 +42,0,31 +42,0,31 +44,0,33 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +42,0,31 +42,0,31 +42,0,31 +36,0,25 +36,0,25 +36,0,25 +2,0,0 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +9,0,0 +36,0,25 +36,0,25 +36,0,25 +35,0,24 +35,0,24 +35,0,24 +34,0,23 +5,0,0 +34,0,23 +35,0,24 +35,0,24 +35,0,24 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +35,0,24 +35,0,24 +35,0,24 +33,0,22 +33,0,22 +33,0,22 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +9,0,0 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +35,0,24 +35,0,24 +35,0,24 +26,0,15 +26,0,15 +26,0,15 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +35,0,24 +35,0,24 +35,0,24 +48,0,37 +48,0,37 +48,0,37 +33,0,22 +33,0,22 +33,0,22 +36,0,25 +36,0,25 +36,0,25 +42,0,31 +42,0,31 +42,0,31 +43,0,32 +43,0,32 +43,0,32 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +54,0,43 +10,0,0 +54,0,43 +55,0,44 +55,0,44 +55,0,44 +48,0,37 +48,0,37 +48,0,37 +58,0,47 +58,0,47 +58,0,47 +59,0,48 +59,0,48 +59,0,48 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +42,0,31 +42,0,31 +42,0,31 +3,0,0 +42,0,31 +42,0,31 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +39,0,28 +39,0,28 +40,0,29 +40,0,29 +40,0,29 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +41,0,30 +41,0,30 +41,0,30 +40,0,29 +40,0,29 +40,0,29 +38,0,27 +38,0,27 +38,0,27 +41,0,30 +41,0,30 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +2,0,0 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +26,0,15 +26,0,15 +26,0,15 +27,0,16 +27,0,16 +27,0,16 +9,0,0 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +24,0,13 +24,0,13 +24,0,13 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +37,0,26 +37,0,26 +37,0,26 +22,0,11 +22,0,11 +22,0,11 +36,0,25 +36,0,25 +36,0,25 +45,0,34 +45,0,34 +45,0,34 +22,0,11 +22,0,11 +10,0,0 +33,0,22 +33,0,22 +33,0,22 +49,0,38 +49,0,38 +49,0,38 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +49,0,38 +49,0,38 +49,0,38 +5,0,0 +49,0,38 +49,0,38 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +38,0,27 +38,0,27 +38,0,27 +43,0,32 +43,0,32 +43,0,32 +41,0,30 +41,0,30 +41,0,30 +36,0,25 +36,0,25 +36,0,25 +49,0,38 +49,0,38 +49,0,38 +8,0,0 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +41,0,30 +41,0,30 +9,0,0 +51,0,40 +51,0,40 +1,0,0 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +46,0,35 +46,0,35 +46,0,35 +48,0,37 +48,0,37 +48,0,37 +36,0,25 +36,0,25 +36,0,25 +37,0,26 +37,0,26 +37,0,26 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +8,0,0 +36,0,25 +36,0,25 +36,0,25 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +50,0,39 +50,0,39 +50,0,39 +27,0,16 +27,0,16 +27,0,16 +34,0,23 +34,0,23 +34,0,23 +2,0,0 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +7,0,0 +46,0,35 +46,0,35 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +30,0,19 +30,0,19 +30,0,19 +58,0,47 +58,0,47 +2,0,0 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +37,0,26 +37,0,26 +37,0,26 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +42,0,31 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +40,0,29 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +40,0,29 +40,0,29 +40,0,29 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +3,0,0 +46,0,35 +46,0,35 +45,0,34 +45,0,34 +45,0,34 +34,0,23 +34,0,23 +2,0,0 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +3,0,0 +39,0,28 +39,0,28 +10,0,0 +59,0,48 +59,0,48 +49,0,38 +49,0,38 +49,0,38 +37,0,26 +37,0,26 +37,0,26 +27,0,16 +9,0,0 +27,0,16 +41,0,30 +41,0,30 +41,0,30 +35,0,24 +35,0,24 +35,0,24 +20,0,9 +20,0,9 +20,0,9 +48,0,37 +48,0,37 +48,0,37 +35,0,24 +35,0,24 +35,0,24 +2,0,0 +48,0,37 +48,0,37 +54,0,43 +54,0,43 +54,0,43 +21,0,10 +21,0,10 +21,0,10 +23,0,12 +23,0,12 +23,0,12 +34,0,23 +34,0,23 +34,0,23 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +4,0,0 +54,0,43 +54,0,43 +54,0,43 +6,0,0 +1,0,0 +21,0,10 +21,0,10 +21,0,10 +23,0,12 +23,0,12 +23,0,12 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +3,0,0 +39,0,28 +39,0,28 +37,0,26 +39,0,28 +39,0,28 +39,0,28 +20,0,9 +20,0,9 +20,0,9 +39,0,28 +39,0,28 +39,0,28 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +21,0,10 +21,0,10 +21,0,10 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +1,0,0 +39,0,28 +39,0,28 +47,0,36 +8,0,0 +6,0,0 +47,0,36 +47,0,36 +47,0,36 +43,0,32 +43,0,32 +43,0,32 +45,0,34 +4,0,0 +45,0,34 +47,0,36 +47,0,36 +47,0,36 +39,0,28 +39,0,28 +39,0,28 +28,0,17 +28,0,17 +28,0,17 +49,0,38 +49,0,38 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +43,0,32 +43,0,32 +43,0,32 +42,0,31 +42,0,31 +42,0,31 +45,0,34 +45,0,34 +45,0,34 +55,0,44 +55,0,44 +55,0,44 +39,0,28 +39,0,28 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +39,0,28 +2,0,0 +58,0,47 +9,0,0 +41,0,30 +41,0,30 +41,0,30 +43,0,32 +43,0,32 +43,0,32 +38,0,27 +38,0,27 +38,0,27 +37,0,26 +37,0,26 +37,0,26 +56,0,45 +56,0,45 +56,0,45 +36,0,25 +35,0,24 +35,0,24 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +38,0,27 +38,0,27 +38,0,27 +37,0,26 +37,0,26 +37,0,26 +39,0,28 +39,0,28 +39,0,28 +38,0,27 +33,0,22 +33,0,22 +33,0,22 +9,0,0 +43,0,32 +43,0,32 +55,0,44 +55,0,44 +8,0,0 +58,0,47 +58,0,47 +58,0,47 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +51,0,40 +5,0,0 +48,0,37 +47,0,36 +31,0,20 +31,0,20 +31,0,20 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +32,0,21 +32,0,21 +32,0,21 +38,0,27 +38,0,27 +38,0,27 +43,0,32 +43,0,32 +43,0,32 +27,0,16 +27,0,16 +27,0,16 +54,0,43 +54,0,43 +54,0,43 +47,0,36 +47,0,36 +47,0,36 +20,0,9 +20,0,9 +20,0,9 +40,0,29 +40,0,29 +40,0,29 +21,0,10 +21,0,10 +21,0,10 +1,0,0 +54,0,43 +54,0,43 +22,0,11 +22,0,11 +22,0,11 +46,0,35 +46,0,35 +46,0,35 +52,0,41 +52,0,41 +52,0,41 +32,0,21 +32,0,21 +32,0,21 +52,0,41 +52,0,41 +9,0,0 +49,0,38 +49,0,38 +7,0,0 +48,0,37 +9,0,0 +48,0,37 +49,0,38 +49,0,38 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +45,0,34 +45,0,34 +49,0,38 +3,0,0 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +9,0,0 +48,0,37 +48,0,37 +48,0,37 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +3,0,0 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +32,0,21 +32,0,21 +32,0,21 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +40,0,29 +40,0,29 +40,0,29 +43,0,32 +43,0,32 +43,0,32 +40,0,29 +40,0,29 +40,0,29 +32,0,21 +32,0,21 +32,0,21 +49,0,38 +2,0,0 +49,0,38 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +9,0,0 +49,0,38 +40,0,29 +40,0,29 +40,0,29 +43,0,32 +43,0,32 +43,0,32 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +1,0,0 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +8,0,0 +30,0,19 +30,0,19 +30,0,19 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +26,0,15 +26,0,15 +26,0,15 +35,0,24 +35,0,24 +35,0,24 +41,0,30 +41,0,30 +41,0,30 +40,0,29 +40,0,29 +40,0,29 +26,0,15 +26,0,15 +26,0,15 +36,0,25 +36,0,25 +36,0,25 +26,0,15 +26,0,15 +26,0,15 +30,0,19 +30,0,19 +30,0,19 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +42,0,31 +42,0,31 +42,0,31 +43,0,32 +43,0,32 +43,0,32 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +2,0,0 +50,0,39 +50,0,39 +37,0,26 +9,0,0 +37,0,26 +36,0,25 +36,0,25 +36,0,25 +37,0,26 +37,0,26 +37,0,26 +41,0,30 +41,0,30 +41,0,30 +37,0,26 +37,0,26 +37,0,26 +31,0,20 +31,0,20 +31,0,20 +37,0,26 +37,0,26 +37,0,26 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +31,0,20 +31,0,20 +31,0,20 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +39,0,28 +39,0,28 +39,0,28 +10,0,0 +48,0,37 +48,0,37 +45,0,34 +45,0,34 +45,0,34 +4,0,0 +48,0,37 +48,0,37 +38,0,27 +38,0,27 +38,0,27 +39,0,28 +39,0,28 +39,0,28 +25,0,14 +25,0,14 +25,0,14 +35,0,24 +35,0,24 +35,0,24 +52,0,41 +45,0,34 +45,0,34 +45,0,34 +34,0,23 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +36,0,25 +36,0,25 +36,0,25 +2,0,0 +36,0,25 +36,0,25 +31,0,20 +31,0,20 +31,0,20 +32,0,21 +32,0,21 +32,0,21 +36,0,25 +36,0,25 +36,0,25 +49,0,38 +49,0,38 +49,0,38 +48,0,37 +48,0,37 +2,0,0 +48,0,37 +48,0,37 +48,0,37 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +39,0,28 +39,0,28 +39,0,28 +45,0,34 +45,0,34 +45,0,34 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +48,0,37 +5,0,0 +48,0,37 +43,0,32 +43,0,32 +43,0,32 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +34,0,23 +34,0,23 +34,0,23 +41,0,30 +20,0,9 +34,0,23 +34,0,23 +34,0,23 +40,0,29 +40,0,29 +40,0,29 +42,0,31 +42,0,31 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +42,0,31 +42,0,31 +42,0,31 +34,0,23 +34,0,23 +34,0,23 +40,0,29 +40,0,29 +40,0,29 +42,0,31 +42,0,31 +6,0,0 +40,0,29 +40,0,29 +40,0,29 +34,0,23 +34,0,23 +34,0,23 +44,0,33 +44,0,33 +44,0,33 +27,0,16 +27,0,16 +27,0,16 +44,0,33 +44,0,33 +44,0,33 +34,0,23 +34,0,23 +34,0,23 +48,0,37 +48,0,37 +48,0,37 +44,0,33 +44,0,33 +44,0,33 +50,0,39 +50,0,39 +50,0,39 +42,0,31 +41,0,30 +42,0,31 +50,0,39 +50,0,39 +50,0,39 +1,0,0 +41,0,30 +41,0,30 +50,0,39 +50,0,39 +50,0,39 +2,0,0 +50,0,39 +50,0,39 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +1,0,0 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +7,0,0 +25,0,14 +25,0,14 +25,0,14 +41,0,30 +41,0,30 +41,0,30 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +2,0,0 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +37,0,26 +37,0,26 +37,0,26 +34,0,23 +34,0,23 +34,0,23 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +43,0,32 +43,0,32 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +42,0,31 +43,0,32 +43,0,32 +45,0,34 +45,0,34 +45,0,34 +37,0,26 +37,0,26 +37,0,26 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +2,0,0 +43,0,32 +43,0,32 +43,0,32 +54,0,43 +54,0,43 +54,0,43 +60,0,49 +2,0,0 +60,0,49 +51,0,40 +51,0,40 +51,0,40 +44,0,33 +44,0,33 +44,0,33 +60,0,49 +60,0,49 +60,0,49 +43,0,32 +43,0,32 +43,0,32 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +19,0,8 +7,0,0 +44,0,33 +19,0,8 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +6,0,0 +48,0,37 +48,0,37 +46,0,35 +46,0,35 +46,0,35 +40,0,29 +40,0,29 +40,0,29 +30,0,19 +30,0,19 +30,0,19 +40,0,29 +51,0,40 +51,0,40 +51,0,40 +51,0,40 +51,0,40 +51,0,40 +33,0,22 +33,0,22 +33,0,22 +45,0,34 +8,0,0 +45,0,34 +33,0,22 +33,0,22 +33,0,22 +32,0,21 +32,0,21 +32,0,21 +49,0,38 +49,0,38 +49,0,38 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +2,0,0 +34,0,23 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +38,0,27 +38,0,27 +38,0,27 +10,0,0 +57,0,46 +57,0,46 +42,0,31 +42,0,31 +42,0,31 +45,0,34 +45,0,34 +45,0,34 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +21,0,10 +38,0,27 +38,0,27 +38,0,27 +19,0,8 +19,0,8 +38,0,27 +38,0,27 +20,0,9 +21,0,10 +21,0,10 +21,0,10 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +44,0,33 +5,0,0 +44,0,33 +35,0,24 +35,0,24 +35,0,24 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +49,0,38 +49,0,38 +49,0,38 +35,0,24 +35,0,24 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +42,0,31 +42,0,31 +44,0,33 +44,0,33 +44,0,33 +28,0,17 +28,0,17 +28,0,17 +4,0,0 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +33,0,22 +33,0,22 +33,0,22 +30,0,19 +30,0,19 +30,0,19 +33,0,22 +33,0,22 +33,0,22 +42,0,31 +42,0,31 +20,0,9 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +20,0,9 +42,0,31 +8,0,0 +42,0,31 +42,0,31 +42,0,31 +43,0,32 +42,0,31 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +43,0,32 +43,0,32 +43,0,32 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +42,0,31 +5,0,0 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +2,0,0 +44,0,33 +44,0,33 +44,0,33 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +25,0,14 +25,0,14 +25,0,14 +26,0,15 +26,0,15 +26,0,15 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +26,0,15 +26,0,15 +26,0,15 +25,0,14 +25,0,14 +25,0,14 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +31,0,20 +31,0,20 +31,0,20 +25,0,14 +25,0,14 +25,0,14 +39,0,28 +39,0,28 +39,0,28 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +1,0,0 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +25,0,14 +25,0,14 +25,0,14 +37,0,26 +37,0,26 +37,0,26 +39,0,28 +39,0,28 +39,0,28 +37,0,26 +37,0,26 +37,0,26 +38,0,27 +38,0,27 +6,0,0 +37,0,26 +37,0,26 +3,0,0 +24,0,13 +24,0,13 +24,0,13 +54,0,43 +2,0,0 +3,0,0 +53,0,42 +53,0,42 +53,0,42 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +51,0,40 +51,0,40 +51,0,40 +54,0,43 +54,0,43 +9,0,0 +43,0,32 +43,0,32 +43,0,32 +24,0,13 +24,0,13 +24,0,13 +42,0,31 +10,0,0 +42,0,31 +30,0,19 +30,0,19 +30,0,19 +50,0,39 +50,0,39 +50,0,39 +43,0,32 +43,0,32 +43,0,32 +50,0,39 +50,0,39 +50,0,39 +41,0,30 +41,0,30 +41,0,30 +48,0,37 +48,0,37 +48,0,37 +40,0,29 +40,0,29 +40,0,29 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +49,0,38 +49,0,38 +49,0,38 +24,0,13 +24,0,13 +24,0,13 +25,0,14 +25,0,14 +25,0,14 +26,0,15 +26,0,15 +26,0,15 +28,0,17 +28,0,17 +28,0,17 +32,0,21 +32,0,21 +32,0,21 +44,0,33 +44,0,33 +8,0,0 +36,0,25 +36,0,25 +36,0,25 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +36,0,25 +37,0,26 +37,0,26 +36,0,25 +36,0,25 +36,0,25 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +10,0,0 +37,0,26 +37,0,26 +26,0,15 +26,0,15 +26,0,15 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +42,0,31 +42,0,31 +42,0,31 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +20,0,9 +42,0,31 +42,0,31 +40,0,29 +40,0,29 +40,0,29 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +40,0,29 +40,0,29 +40,0,29 +42,0,31 +42,0,31 +42,0,31 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +6,0,0 +35,0,24 +2,0,0 +32,0,21 +32,0,21 +42,0,31 +42,0,31 +42,0,31 +1,0,0 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +53,0,42 +53,0,42 +53,0,42 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +35,0,24 +35,0,24 +35,0,24 +31,0,20 +31,0,20 +31,0,20 +32,0,21 +32,0,21 +32,0,21 +33,0,22 +33,0,22 +33,0,22 +36,0,25 +36,0,25 +36,0,25 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +33,0,22 +33,0,22 +33,0,22 +31,0,20 +31,0,20 +31,0,20 +21,0,10 +39,0,28 +39,0,28 +39,0,28 +37,0,26 +37,0,26 +37,0,26 +40,0,29 +40,0,29 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +39,0,28 +39,0,28 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +29,0,18 +29,0,18 +29,0,18 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +21,0,10 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +37,0,26 diff --git a/relife/datasets/insulator_string.csv b/relife/datasets/insulator_string.csv new file mode 100644 index 0000000..4ade2aa --- /dev/null +++ b/relife/datasets/insulator_string.csv @@ -0,0 +1,12001 @@ +time,event,entry,pHCl,pH2SO4,HNO3 +70.00,0.00,40.00,0.49,1.69,0.24 +30.00,0.00,0.00,0.76,1.79,0.39 +45.00,0.00,15.00,0.43,1.61,0.25 +78.00,0.00,48.00,0.50,1.80,0.28 +106.00,0.00,76.00,0.34,1.55,0.26 +19.70,0.00,0.00,0.38,1.74,0.35 +5.90,0.00,0.00,0.60,1.74,0.24 +97.00,0.00,67.00,0.57,1.53,0.19 +73.00,0.00,43.00,0.45,1.75,0.28 +30.00,0.00,0.00,0.78,1.78,0.42 +30.00,0.00,0.00,0.50,1.60,0.27 +30.00,0.00,0.00,0.61,1.55,0.21 +50.00,1.00,47.00,0.85,1.57,0.21 +85.00,0.00,55.00,0.39,1.55,0.28 +59.50,1.00,37.00,0.95,1.75,0.21 +46.00,0.00,16.00,0.55,1.82,0.28 +98.00,0.00,68.00,0.36,1.63,0.29 +21.60,1.00,0.00,0.80,1.78,0.46 +63.90,1.00,39.00,1.06,1.78,0.29 +101.00,0.00,71.00,0.34,1.49,0.27 +49.00,0.00,19.00,0.35,1.60,0.26 +43.00,0.00,13.00,0.54,1.53,0.17 +79.00,0.00,49.00,0.64,1.51,0.19 +61.00,0.00,31.00,0.47,1.65,0.24 +69.00,0.00,39.00,0.58,1.58,0.26 +71.00,0.00,41.00,0.36,1.59,0.26 +30.00,0.00,0.00,0.33,1.48,0.27 +49.00,0.00,19.00,0.77,1.76,0.25 +53.00,0.00,23.00,0.48,1.55,0.27 +66.00,0.00,36.00,0.44,1.75,0.36 +30.00,0.00,0.00,0.79,1.56,0.16 +14.90,0.00,0.00,0.59,1.58,0.22 +55.00,0.00,25.00,0.36,1.66,0.32 +16.20,0.00,0.00,0.64,1.49,0.16 +72.00,0.00,42.00,0.37,1.66,0.28 +43.00,0.00,13.00,0.47,1.67,0.25 +106.00,0.00,76.00,0.33,1.56,0.26 +20.10,1.00,0.00,0.82,1.56,0.17 +81.00,1.00,51.00,0.32,1.63,0.30 +63.00,0.00,33.00,0.51,1.70,0.24 +47.00,0.00,17.00,0.33,1.54,0.28 +41.00,0.00,11.00,0.48,1.61,0.26 +30.00,0.00,0.00,0.32,1.47,0.27 +72.00,0.00,42.00,0.36,1.61,0.25 +56.00,0.00,26.00,0.56,1.73,0.32 +44.00,0.00,14.00,0.53,1.64,0.22 +79.60,1.00,61.00,0.39,1.69,0.28 +56.00,1.00,26.00,0.78,1.58,0.15 +30.00,0.00,0.00,0.58,1.63,0.25 +15.50,0.00,0.00,0.35,1.60,0.27 +53.00,0.00,23.00,0.68,1.56,0.22 +30.00,0.00,0.00,0.87,1.68,0.19 +44.00,0.00,14.00,0.48,1.70,0.24 +36.50,1.00,14.00,0.64,1.89,0.25 +25.20,1.00,17.00,0.78,1.57,0.16 +18.60,0.00,0.00,1.01,1.77,0.24 +18.90,0.00,0.00,0.34,1.63,0.28 +0.90,0.00,0.00,0.39,1.61,0.25 +45.00,0.00,15.00,0.69,1.59,0.25 +17.50,0.00,0.00,0.63,1.55,0.21 +68.00,0.00,38.00,0.45,1.64,0.25 +44.00,0.00,14.00,0.52,1.61,0.21 +78.00,0.00,48.00,0.50,1.70,0.26 +50.00,0.00,20.00,0.40,1.58,0.27 +48.00,0.00,18.00,0.54,1.53,0.17 +37.00,0.00,7.00,0.78,1.68,0.33 +44.00,0.00,14.00,0.40,1.63,0.25 +20.50,0.00,0.00,0.37,1.80,0.36 +21.70,0.00,0.00,0.47,1.55,0.27 +67.00,0.00,37.00,0.62,1.74,0.32 +39.20,1.00,21.00,0.85,1.57,0.18 +23.50,0.00,0.00,0.56,1.62,0.25 +53.00,0.00,23.00,0.30,1.54,0.29 +70.00,0.00,40.00,0.38,1.58,0.24 +14.50,1.00,0.00,0.96,1.74,0.24 +17.90,1.00,0.00,0.69,1.53,0.20 +57.40,1.00,44.00,0.36,1.65,0.31 +53.00,0.00,23.00,0.39,1.56,0.24 +44.00,0.00,14.00,0.41,1.86,0.40 +25.00,0.00,0.00,0.45,1.62,0.25 +48.00,1.00,20.00,0.68,1.74,0.41 +54.00,0.00,24.00,0.54,1.56,0.18 +69.00,0.00,39.00,0.57,1.68,0.23 +3.50,0.00,0.00,0.62,1.74,0.24 +66.00,0.00,36.00,0.44,1.76,0.36 +17.90,0.00,0.00,0.37,1.64,0.28 +44.00,0.00,14.00,0.60,1.77,0.24 +67.00,0.00,37.00,0.59,1.74,0.31 +1.90,0.00,0.00,0.81,1.55,0.18 +96.00,0.00,66.00,0.53,1.64,0.22 +74.00,0.00,44.00,0.36,1.62,0.29 +45.00,0.00,15.00,0.41,1.67,0.26 +22.20,0.00,0.00,0.51,1.83,0.29 +12.00,0.00,0.00,0.40,1.85,0.41 +6.60,1.00,0.00,0.78,1.78,0.42 +56.00,0.00,26.00,0.55,1.67,0.32 +50.00,0.00,20.00,0.82,1.79,0.47 +87.00,0.00,57.00,0.42,1.67,0.25 +51.00,0.00,21.00,0.67,1.53,0.16 +70.00,1.00,41.00,0.40,1.61,0.26 +41.00,0.00,11.00,0.53,1.65,0.26 +92.80,1.00,67.00,0.59,1.70,0.27 +30.00,0.00,0.00,0.94,1.63,0.18 +50.30,1.00,39.00,0.54,1.54,0.18 +42.00,0.00,12.00,0.35,1.62,0.26 +90.00,0.00,60.00,0.58,1.70,0.27 +86.00,0.00,56.00,0.44,1.71,0.26 +65.00,0.00,35.00,0.34,1.60,0.30 +29.30,0.00,0.00,0.82,1.60,0.16 +32.20,1.00,4.00,0.60,1.68,0.23 +52.00,0.00,22.00,0.51,1.64,0.27 +74.00,0.00,44.00,0.33,1.60,0.28 +72.00,0.00,42.00,0.57,1.79,0.37 +48.00,0.00,18.00,0.55,1.52,0.17 +90.00,0.00,60.00,0.61,1.75,0.33 +76.80,1.00,62.00,0.81,1.55,0.17 +50.00,0.00,20.00,0.57,1.60,0.22 +78.00,0.00,48.00,0.51,1.72,0.27 +69.00,0.00,39.00,0.32,1.75,0.28 +106.00,0.00,76.00,0.47,1.65,0.27 +82.00,0.00,52.00,0.51,1.61,0.28 +54.70,1.00,31.00,0.35,1.60,0.25 +30.00,0.00,0.00,0.96,1.74,0.24 +78.20,1.00,69.00,0.57,1.51,0.17 +75.60,1.00,68.00,0.34,1.62,0.30 +20.10,1.00,0.00,0.79,1.56,0.16 +89.80,1.00,76.00,0.46,1.63,0.26 +30.00,0.00,0.00,0.82,1.62,0.18 +57.60,1.00,35.00,0.54,1.66,0.31 +42.00,0.00,12.00,0.34,1.62,0.26 +78.60,1.00,66.00,0.47,1.63,0.23 +30.00,0.00,0.00,0.74,1.79,0.39 +88.00,0.00,58.00,0.64,1.69,0.23 +91.00,0.00,61.00,0.35,1.69,0.32 +47.00,0.00,17.00,0.81,1.58,0.17 +30.00,0.00,0.00,0.73,1.67,0.36 +68.00,0.00,38.00,0.45,1.63,0.25 +52.00,0.00,22.00,0.51,1.65,0.28 +92.00,0.00,62.00,0.63,1.69,0.24 +79.00,0.00,49.00,0.47,1.67,0.25 +30.80,1.00,17.00,0.58,1.68,0.23 +52.00,0.00,22.00,0.37,1.64,0.27 +18.10,0.00,0.00,0.33,1.59,0.27 +22.30,0.00,0.00,0.50,1.62,0.26 +79.00,0.00,49.00,0.45,1.65,0.26 +71.00,0.00,41.00,0.61,1.49,0.15 +47.00,0.00,17.00,0.40,1.57,0.28 +34.00,0.00,4.00,0.60,1.51,0.16 +51.00,0.00,21.00,0.43,1.73,0.27 +62.00,0.00,32.00,0.47,1.65,0.27 +90.00,0.00,60.00,0.41,1.59,0.24 +30.00,0.00,0.00,0.39,1.57,0.24 +11.60,0.00,0.00,0.32,1.63,0.30 +52.60,1.00,39.00,1.06,1.78,0.28 +73.00,0.00,43.00,0.44,1.73,0.27 +65.00,0.00,35.00,0.35,1.65,0.31 +65.00,0.00,35.00,0.35,1.66,0.32 +31.80,1.00,18.00,0.64,1.49,0.16 +44.90,1.00,17.00,0.81,1.58,0.17 +13.30,0.00,0.00,0.46,1.68,0.30 +92.00,0.00,62.00,0.38,1.67,0.29 +40.00,0.00,10.00,0.73,1.80,0.44 +61.00,0.00,31.00,0.43,1.73,0.26 +48.00,0.00,18.00,0.68,1.69,0.23 +9.10,0.00,0.00,0.52,1.65,0.23 +98.00,0.00,68.00,0.37,1.64,0.28 +49.00,0.00,19.00,0.49,1.89,0.44 +101.00,0.00,71.00,0.35,1.51,0.26 +34.00,0.00,4.00,0.61,1.60,0.25 +46.90,1.00,32.00,0.47,1.56,0.25 +49.00,0.00,19.00,0.70,1.52,0.19 +50.00,0.00,20.00,0.48,1.65,0.23 +30.00,0.00,0.00,0.59,1.63,0.24 +60.90,1.00,56.00,0.56,1.71,0.24 +50.00,0.00,20.00,0.65,1.51,0.18 +30.00,0.00,0.00,0.50,1.56,0.25 +50.20,1.00,44.00,0.56,1.68,0.33 +6.90,0.00,0.00,0.45,1.72,0.26 +62.00,0.00,32.00,0.43,1.55,0.26 +41.00,0.00,11.00,0.68,1.79,0.24 +79.00,0.00,49.00,0.46,1.65,0.25 +18.60,0.00,0.00,0.51,1.83,0.29 +55.00,0.00,25.00,0.45,1.62,0.25 +21.10,0.00,0.00,0.40,1.66,0.26 +83.30,1.00,68.00,0.42,1.57,0.25 +80.00,0.00,50.00,0.59,1.58,0.21 +27.20,0.00,0.00,0.83,1.59,0.16 +23.20,0.00,0.00,0.72,1.82,0.42 +51.00,0.00,21.00,0.43,1.73,0.27 +83.00,0.00,53.00,0.69,1.72,0.25 +101.00,0.00,71.00,0.64,1.58,0.21 +17.40,0.00,0.00,0.91,1.59,0.17 +26.20,1.00,18.00,0.77,1.70,0.23 +74.00,0.00,44.00,0.32,1.59,0.31 +30.00,0.00,0.00,0.58,1.63,0.24 +99.00,0.00,69.00,0.55,1.52,0.18 +30.00,0.00,0.00,0.95,1.74,0.29 +49.00,0.00,19.00,0.44,1.58,0.25 +8.40,0.00,0.00,0.68,1.56,0.22 +73.00,0.00,43.00,0.38,1.67,0.28 +8.80,0.00,0.00,0.90,1.73,0.20 +53.00,0.00,23.00,0.44,1.56,0.27 +30.00,0.00,0.00,0.51,1.83,0.29 +44.00,0.00,14.00,0.34,1.55,0.27 +22.60,0.00,0.00,0.82,1.66,0.25 +59.00,0.00,29.00,0.65,1.60,0.23 +30.00,0.00,0.00,0.51,1.64,0.23 +30.00,0.00,0.00,0.72,1.64,0.26 +58.00,0.00,28.00,0.37,1.55,0.28 +53.00,0.00,23.00,0.38,1.55,0.24 +65.00,0.00,35.00,0.34,1.64,0.28 +44.00,0.00,14.00,0.42,1.70,0.26 +78.70,1.00,62.00,0.82,1.57,0.17 +29.60,1.00,18.00,0.88,1.67,0.24 +55.30,1.00,27.00,0.43,1.66,0.26 +19.20,1.00,0.00,0.85,1.81,0.49 +14.40,0.00,0.00,0.42,1.84,0.40 +66.00,0.00,36.00,0.49,1.67,0.24 +41.00,0.00,11.00,0.48,1.61,0.26 +60.00,0.00,30.00,0.55,1.72,0.25 +76.00,0.00,46.00,0.32,1.56,0.27 +30.00,0.00,0.00,0.60,1.63,0.24 +12.70,0.00,0.00,0.32,1.71,0.28 +58.00,0.00,28.00,0.32,1.69,0.29 +77.80,1.00,62.00,0.82,1.56,0.17 +61.00,0.00,31.00,0.43,1.73,0.26 +33.00,0.00,3.00,0.46,1.63,0.26 +67.00,0.00,37.00,0.59,1.83,0.26 +29.50,0.00,0.00,0.66,1.54,0.18 +50.00,0.00,20.00,0.43,1.61,0.24 +6.20,0.00,0.00,0.94,1.63,0.17 +30.00,0.00,0.00,0.98,1.76,0.21 +53.00,0.00,23.00,0.46,1.69,0.26 +45.00,0.00,15.00,0.62,1.53,0.16 +44.00,0.00,14.00,0.45,1.66,0.26 +60.00,0.00,30.00,0.59,1.58,0.22 +30.00,0.00,0.00,0.57,1.78,0.27 +51.40,1.00,34.00,0.33,1.65,0.29 +30.00,0.00,0.00,0.36,1.54,0.27 +6.70,0.00,0.00,0.30,1.57,0.29 +50.00,0.00,20.00,0.80,1.79,0.46 +23.10,1.00,9.00,0.42,1.88,0.41 +79.00,0.00,49.00,0.60,1.74,0.25 +43.00,0.00,13.00,0.51,1.64,0.22 +45.00,0.00,15.00,0.45,1.67,0.25 +20.40,1.00,0.00,0.71,1.54,0.15 +30.00,0.00,0.00,1.03,1.76,0.21 +5.60,0.00,0.00,0.57,1.53,0.19 +12.70,0.00,0.00,0.56,1.54,0.20 +56.00,0.00,26.00,0.52,1.65,0.22 +69.00,0.00,39.00,0.61,1.55,0.21 +47.00,0.00,17.00,0.56,1.73,0.24 +50.00,0.00,20.00,0.56,1.53,0.19 +85.00,0.00,55.00,0.45,1.55,0.27 +16.20,0.00,0.00,1.11,1.63,0.20 +12.10,0.00,0.00,0.54,1.55,0.18 +44.00,0.00,14.00,0.42,1.70,0.25 +1.10,0.00,0.00,0.58,1.67,0.27 +12.30,0.00,0.00,0.97,1.76,0.23 +51.00,0.00,21.00,0.39,1.66,0.27 +23.10,1.00,0.00,1.03,1.77,0.30 +59.00,0.00,29.00,0.41,1.68,0.26 +86.00,0.00,56.00,0.55,1.71,0.24 +79.00,0.00,49.00,0.47,1.66,0.25 +64.00,0.00,34.00,0.33,1.65,0.29 +9.90,1.00,0.00,0.54,1.54,0.18 +38.00,0.00,8.00,0.37,1.67,0.30 +50.00,0.00,20.00,0.56,1.53,0.19 +30.00,0.00,0.00,1.04,1.63,0.18 +15.60,0.00,0.00,0.32,1.59,0.31 +70.00,0.00,40.00,0.52,1.70,0.23 +46.50,1.00,28.00,0.34,1.57,0.26 +75.00,0.00,45.00,0.34,1.56,0.25 +26.00,1.00,0.00,0.94,1.63,0.30 +30.00,0.00,0.00,0.60,1.75,0.24 +18.60,0.00,0.00,0.52,1.70,0.30 +69.00,0.00,39.00,0.66,1.52,0.19 +14.80,1.00,14.00,0.41,1.51,0.26 +30.00,0.00,0.00,0.60,1.57,0.20 +67.00,0.00,37.00,0.56,1.74,0.25 +47.00,0.00,17.00,0.68,1.51,0.15 +66.00,0.00,36.00,0.47,1.65,0.24 +51.00,0.00,21.00,0.35,1.64,0.31 +21.70,1.00,0.00,0.93,1.69,0.25 +60.00,0.00,30.00,0.33,1.66,0.28 +69.00,0.00,39.00,0.46,1.72,0.27 +79.70,1.00,71.00,0.51,1.63,0.26 +49.00,0.00,19.00,0.78,1.54,0.17 +66.00,0.00,36.00,0.32,1.59,0.28 +60.20,1.00,52.00,0.51,1.64,0.27 +45.70,1.00,33.00,0.62,1.62,0.23 +4.90,0.00,0.00,0.77,1.76,0.37 +51.70,1.00,42.00,0.66,1.80,0.38 +58.00,0.00,28.00,0.34,1.56,0.25 +49.00,0.00,19.00,0.34,1.60,0.27 +75.00,0.00,45.00,0.34,1.56,0.25 +30.00,0.00,0.00,0.66,1.52,0.19 +7.70,0.00,0.00,0.84,1.60,0.16 +91.00,0.00,61.00,0.37,1.66,0.28 +13.30,0.00,0.00,0.82,1.57,0.17 +22.40,1.00,0.00,0.80,1.79,0.42 +44.00,0.00,14.00,0.44,1.72,0.28 +13.60,0.00,0.00,0.88,1.82,0.41 +60.00,0.00,30.00,0.43,1.66,0.24 +63.00,0.00,33.00,0.32,1.73,0.28 +74.00,0.00,44.00,0.41,1.82,0.39 +62.00,0.00,32.00,0.35,1.64,0.31 +61.00,0.00,31.00,0.88,1.70,0.19 +68.00,0.00,38.00,0.60,1.67,0.24 +70.00,0.00,40.00,0.51,1.70,0.24 +70.00,0.00,40.00,0.39,1.58,0.27 +71.00,0.00,41.00,0.35,1.59,0.27 +87.00,0.00,57.00,0.36,1.57,0.25 +8.80,0.00,0.00,0.34,1.55,0.27 +13.50,0.00,0.00,0.51,1.57,0.21 +65.10,1.00,42.00,0.43,1.71,0.27 +61.00,0.00,31.00,0.57,1.54,0.18 +48.00,0.00,18.00,0.85,1.89,0.26 +85.00,0.00,55.00,0.39,1.58,0.26 +0.50,0.00,0.00,0.65,1.53,0.20 +44.00,0.00,14.00,0.44,1.71,0.26 +55.00,0.00,25.00,0.41,1.52,0.27 +64.00,0.00,34.00,0.41,1.70,0.27 +71.00,0.00,41.00,0.61,1.49,0.15 +72.00,0.00,42.00,0.38,1.68,0.28 +43.80,1.00,26.00,0.60,1.74,0.25 +88.00,0.00,58.00,0.62,1.68,0.23 +7.80,0.00,0.00,0.97,1.63,0.30 +30.00,0.00,0.00,0.32,1.59,0.31 +64.00,0.00,34.00,0.41,1.71,0.27 +43.00,0.00,13.00,0.32,1.61,0.28 +80.80,1.00,67.00,0.58,1.67,0.27 +78.70,1.00,71.00,0.50,1.62,0.26 +80.00,0.00,50.00,0.38,1.66,0.28 +30.00,0.00,0.00,0.43,1.72,0.26 +0.70,0.00,0.00,0.49,1.64,0.22 +58.40,1.00,36.00,0.51,1.70,0.24 +43.00,0.00,13.00,0.31,1.60,0.28 +62.00,0.00,32.00,0.55,1.58,0.26 +42.00,0.00,12.00,0.34,1.62,0.26 +89.70,1.00,61.00,0.35,1.64,0.30 +47.00,0.00,17.00,0.53,1.64,0.22 +33.00,0.00,3.00,0.46,1.66,0.26 +50.00,0.00,20.00,0.40,1.58,0.24 +52.00,0.00,22.00,0.43,1.61,0.24 +91.00,0.00,61.00,0.35,1.59,0.27 +51.00,0.00,21.00,0.41,1.68,0.26 +30.00,0.00,0.00,0.83,1.65,0.18 +21.30,0.00,0.00,0.51,1.63,0.26 +18.10,1.00,10.00,1.22,1.77,0.23 +38.00,0.00,8.00,0.53,1.54,0.17 +69.00,0.00,39.00,0.34,1.61,0.27 +43.00,0.00,13.00,0.42,1.70,0.26 +31.00,0.00,1.00,0.62,1.60,0.26 +50.00,0.00,20.00,0.48,1.67,0.24 +73.00,0.00,43.00,0.38,1.67,0.28 +28.30,1.00,15.00,0.40,1.69,0.28 +68.00,0.00,38.00,0.45,1.64,0.25 +61.00,0.00,31.00,0.36,1.66,0.32 +63.00,0.00,33.00,0.46,1.69,0.26 +32.00,0.00,2.00,0.57,1.66,0.24 +59.00,0.00,29.00,0.53,1.62,0.22 +50.00,0.00,20.00,0.54,1.59,0.21 +30.00,0.00,0.00,0.66,1.51,0.17 +51.00,0.00,21.00,0.49,1.63,0.26 +59.00,0.00,29.00,0.38,1.66,0.30 +69.20,1.00,57.00,0.40,1.58,0.24 +21.40,1.00,21.00,0.49,1.63,0.26 +43.00,0.00,13.00,0.43,1.66,0.24 +43.00,0.00,13.00,0.31,1.59,0.28 +17.30,0.00,0.00,0.67,1.52,0.19 +30.00,0.00,0.00,0.70,1.51,0.15 +29.90,1.00,26.00,1.10,1.76,0.24 +44.00,0.00,14.00,0.46,1.67,0.26 +40.00,0.00,10.00,0.93,1.73,0.20 +58.00,0.00,28.00,0.36,1.54,0.28 +79.00,0.00,49.00,0.44,1.73,0.28 +85.00,0.00,55.00,0.39,1.57,0.28 +51.00,0.00,21.00,0.51,1.64,0.27 +36.20,1.00,20.00,0.87,1.68,0.37 +51.00,0.00,21.00,0.49,1.64,0.25 +65.00,0.00,35.00,0.36,1.64,0.30 +80.00,0.00,50.00,0.59,1.58,0.22 +71.00,0.00,41.00,0.59,1.50,0.15 +30.00,0.00,0.00,0.45,1.70,0.26 +54.30,1.00,44.00,0.38,1.74,0.35 +69.00,0.00,39.00,0.37,1.56,0.28 +48.00,0.00,18.00,0.66,1.50,0.16 +68.20,1.00,53.00,0.60,1.67,0.23 +44.00,0.00,14.00,0.54,1.66,0.23 +6.70,0.00,0.00,1.48,1.73,0.27 +19.60,0.00,0.00,0.44,1.73,0.27 +50.20,1.00,31.00,0.43,1.73,0.27 +63.00,0.00,33.00,0.56,1.54,0.20 +49.00,0.00,19.00,0.34,1.60,0.27 +108.00,0.00,78.00,0.56,1.68,0.33 +50.00,0.00,20.00,1.00,1.77,0.21 +55.70,1.00,46.00,0.64,1.69,0.23 +63.00,0.00,33.00,0.32,1.66,0.28 +8.10,1.00,0.00,0.60,1.70,0.36 +23.50,1.00,0.00,0.73,1.55,0.15 +58.00,0.00,28.00,0.33,1.57,0.27 +4.80,0.00,0.00,0.45,1.66,0.24 +30.00,0.00,0.00,0.69,1.55,0.19 +5.30,1.00,0.00,0.82,1.60,0.16 +83.00,0.00,53.00,0.63,1.70,0.24 +18.70,1.00,15.00,0.71,1.65,0.30 +97.80,1.00,77.00,0.39,1.61,0.24 +71.00,0.00,41.00,0.46,1.74,0.27 +94.00,0.00,64.00,0.50,1.80,0.28 +48.00,0.00,18.00,0.87,1.65,0.24 +87.00,0.00,57.00,0.39,1.58,0.24 +34.00,0.00,4.00,0.32,1.79,0.28 +51.00,0.00,21.00,0.49,1.63,0.26 +13.10,1.00,0.00,0.82,1.67,0.25 +59.00,0.00,29.00,0.59,1.70,0.28 +65.00,0.00,35.00,0.32,1.59,0.30 +74.00,0.00,44.00,0.37,1.74,0.35 +30.00,0.00,0.00,0.66,1.52,0.19 +50.00,0.00,20.00,0.73,1.52,0.18 +83.00,0.00,53.00,0.69,1.75,0.25 +101.00,0.00,71.00,0.39,1.60,0.24 +43.00,0.00,13.00,0.79,1.57,0.16 +72.00,0.00,42.00,0.55,1.70,0.23 +72.00,0.00,42.00,0.42,1.85,0.40 +5.10,0.00,0.00,1.06,1.78,0.29 +78.00,0.00,48.00,0.45,1.71,0.27 +30.00,0.00,0.00,0.56,1.51,0.16 +15.50,0.00,0.00,0.59,1.58,0.26 +30.00,0.00,0.00,0.76,1.58,0.15 +59.00,0.00,29.00,0.47,1.67,0.25 +85.70,1.00,58.00,0.62,1.74,0.24 +64.00,0.00,34.00,0.34,1.61,0.31 +2.60,0.00,0.00,0.50,1.68,0.28 +30.00,0.00,0.00,0.79,1.57,0.16 +34.50,1.00,32.00,0.47,1.64,0.26 +44.00,0.00,14.00,0.45,1.66,0.26 +10.00,0.00,0.00,0.71,1.57,0.19 +44.00,0.00,14.00,0.46,1.59,0.23 +12.70,1.00,0.00,0.83,1.57,0.16 +30.00,0.00,0.00,0.38,1.66,0.27 +17.90,0.00,0.00,1.12,1.64,0.18 +69.00,0.00,39.00,0.56,1.57,0.26 +91.00,0.00,61.00,0.35,1.72,0.33 +10.60,0.00,0.00,0.89,1.59,0.18 +87.00,0.00,57.00,0.38,1.57,0.24 +91.30,1.00,76.00,0.47,1.64,0.26 +19.90,0.00,0.00,0.67,1.68,0.23 +72.00,0.00,42.00,0.45,1.82,0.39 +24.00,0.00,0.00,0.64,1.70,0.24 +7.80,1.00,0.00,1.48,1.73,0.27 +47.00,0.00,17.00,0.49,1.70,0.30 +30.00,0.00,0.00,0.57,1.50,0.16 +30.00,0.00,0.00,0.46,1.63,0.26 +30.00,0.00,0.00,0.66,1.52,0.18 +47.00,0.00,17.00,0.62,1.57,0.22 +1.20,0.00,0.00,0.67,1.54,0.18 +99.00,0.00,69.00,0.63,1.50,0.17 +44.40,1.00,15.00,0.41,1.68,0.26 +43.00,0.00,13.00,0.58,1.69,0.35 +16.70,1.00,14.00,0.46,1.67,0.26 +64.00,0.00,34.00,0.40,1.69,0.27 +46.00,0.00,16.00,0.70,1.72,0.25 +51.60,1.00,43.00,0.67,1.61,0.28 +83.00,0.00,53.00,0.76,1.62,0.28 +61.00,0.00,31.00,0.47,1.64,0.24 +43.00,0.00,13.00,0.50,1.64,0.22 +4.10,0.00,0.00,0.39,1.67,0.28 +101.00,0.00,71.00,0.41,1.64,0.24 +78.50,1.00,60.00,0.58,1.68,0.27 +41.00,0.00,11.00,0.46,1.73,0.28 +69.00,0.00,39.00,0.57,1.68,0.23 +74.00,0.00,44.00,0.32,1.60,0.28 +91.40,1.00,71.00,0.51,1.64,0.26 +72.30,1.00,51.00,0.32,1.63,0.31 +45.00,0.00,15.00,0.53,1.69,0.23 +34.00,0.00,4.00,0.60,1.52,0.16 +55.90,1.00,33.00,0.51,1.65,0.24 +9.70,0.00,0.00,0.52,1.81,0.29 +30.00,0.00,0.00,0.82,1.56,0.17 +31.10,1.00,13.00,0.44,1.66,0.24 +74.00,0.00,44.00,0.38,1.67,0.29 +86.00,0.00,56.00,0.57,1.71,0.24 +58.00,0.00,28.00,0.32,1.64,0.28 +22.90,0.00,0.00,0.51,1.63,0.30 +83.00,0.00,53.00,0.83,1.69,0.22 +7.90,0.00,0.00,0.48,1.55,0.27 +48.00,0.00,18.00,0.57,1.68,0.23 +30.00,0.00,0.00,0.54,1.57,0.19 +4.30,0.00,0.00,0.50,1.83,0.28 +17.50,0.00,0.00,0.61,1.50,0.17 +48.00,0.00,18.00,0.46,1.62,0.24 +61.70,1.00,37.00,0.44,1.69,0.28 +81.90,1.00,53.00,0.52,1.57,0.20 +30.00,0.00,0.00,0.70,1.50,0.17 +58.00,0.00,28.00,0.47,1.68,0.25 +50.00,0.00,20.00,0.40,1.58,0.27 +61.00,0.00,31.00,0.35,1.62,0.31 +59.00,0.00,29.00,0.67,1.61,0.24 +86.90,1.00,64.00,0.48,1.76,0.28 +30.00,0.00,0.00,0.86,1.81,0.40 +58.00,0.00,28.00,0.39,1.58,0.27 +28.20,1.00,0.00,0.75,1.59,0.23 +5.20,0.00,0.00,0.54,1.69,0.23 +50.00,0.00,20.00,0.43,1.73,0.27 +92.00,0.00,62.00,0.68,1.53,0.19 +91.00,0.00,61.00,0.35,1.64,0.30 +37.90,1.00,14.00,0.43,1.71,0.25 +30.00,0.00,0.00,0.46,1.73,0.26 +78.00,0.00,48.00,0.47,1.75,0.28 +30.00,0.00,0.00,0.50,1.68,0.28 +37.40,1.00,19.00,0.70,1.52,0.19 +69.00,0.00,39.00,0.66,1.52,0.19 +69.00,0.00,39.00,0.36,1.55,0.28 +64.00,0.00,34.00,0.37,1.65,0.30 +0.60,0.00,0.00,1.48,1.73,0.27 +85.00,0.00,55.00,0.38,1.54,0.28 +3.80,0.00,0.00,0.60,1.67,0.24 +83.00,0.00,53.00,0.44,1.69,0.28 +24.80,0.00,0.00,0.39,1.69,0.28 +72.00,0.00,42.00,0.65,1.80,0.37 +71.00,0.00,41.00,0.59,1.50,0.16 +49.00,0.00,19.00,0.67,1.60,0.28 +8.10,1.00,0.00,0.34,1.60,0.31 +69.00,0.00,39.00,0.53,1.57,0.18 +53.00,0.00,23.00,0.35,1.60,0.27 +75.80,1.00,66.00,0.47,1.63,0.23 +70.00,0.00,40.00,0.38,1.58,0.24 +22.30,0.00,0.00,1.06,1.78,0.29 +51.00,0.00,21.00,0.40,1.67,0.27 +41.80,1.00,17.00,0.64,1.55,0.22 +68.20,1.00,42.00,0.71,1.82,0.41 +41.00,0.00,11.00,0.50,1.61,0.27 +85.00,0.00,55.00,0.48,1.61,0.27 +16.70,0.00,0.00,0.82,1.68,0.22 +30.70,1.00,11.00,0.58,1.68,0.33 +16.40,0.00,0.00,0.40,1.66,0.27 +42.00,0.00,12.00,0.33,1.61,0.27 +72.00,0.00,42.00,0.36,1.61,0.25 +47.00,0.00,17.00,0.56,1.68,0.23 +75.20,1.00,71.00,0.56,1.67,0.29 +37.00,0.00,7.00,0.75,1.67,0.30 +53.60,1.00,53.00,0.66,1.84,0.25 +30.00,0.00,0.00,0.54,1.58,0.18 +98.00,0.00,68.00,0.36,1.63,0.28 +30.00,0.00,0.00,0.66,1.52,0.19 +30.00,0.00,0.00,0.54,1.83,0.29 +60.70,1.00,48.00,0.51,1.74,0.27 +56.70,1.00,55.00,0.48,1.62,0.28 +88.00,0.00,58.00,0.63,1.68,0.23 +42.00,0.00,12.00,0.57,1.68,0.28 +71.00,0.00,41.00,0.36,1.60,0.25 +21.30,1.00,11.00,0.79,1.54,0.18 +9.50,1.00,0.00,1.29,1.68,0.25 +48.00,1.00,31.00,0.53,1.67,0.29 +79.00,0.00,49.00,0.55,1.67,0.32 +72.00,0.00,42.00,0.54,1.74,0.25 +67.00,0.00,37.00,0.90,1.59,0.17 +26.40,0.00,0.00,0.80,1.59,0.16 +51.30,1.00,23.00,0.40,1.58,0.24 +32.00,0.00,2.00,0.58,1.63,0.25 +41.00,1.00,15.00,0.53,1.70,0.23 +30.00,0.00,0.00,0.59,1.57,0.20 +63.00,0.00,33.00,0.51,1.65,0.24 +47.00,0.00,17.00,0.50,1.71,0.30 +85.90,1.00,60.00,0.58,1.69,0.28 +69.00,0.00,39.00,0.43,1.64,0.27 +35.80,1.00,17.00,0.64,1.54,0.22 +49.00,0.00,19.00,0.74,1.73,0.25 +32.50,1.00,19.00,0.80,1.66,0.24 +16.20,0.00,0.00,0.58,1.68,0.23 +30.00,0.00,0.00,0.32,1.59,0.31 +62.00,0.00,32.00,0.48,1.65,0.27 +30.00,0.00,0.00,0.35,1.63,0.31 +84.00,0.00,54.00,0.45,1.62,0.25 +30.00,0.00,0.00,0.32,1.59,0.32 +98.00,0.00,68.00,0.50,1.83,0.28 +63.00,0.00,33.00,0.43,1.70,0.27 +50.10,1.00,21.00,0.43,1.73,0.27 +92.00,0.00,62.00,0.82,1.59,0.18 +30.00,0.00,0.00,0.53,1.83,0.29 +83.00,0.00,53.00,0.60,1.67,0.23 +60.00,0.00,30.00,0.34,1.65,0.29 +43.20,1.00,34.00,0.62,1.56,0.22 +85.50,1.00,71.00,0.52,1.65,0.26 +48.00,0.00,18.00,0.53,1.56,0.18 +30.00,0.00,0.00,0.67,1.50,0.17 +73.00,1.00,55.00,0.47,1.55,0.27 +72.00,0.00,42.00,0.42,1.85,0.40 +47.00,0.00,17.00,0.51,1.64,0.23 +14.10,0.00,0.00,0.97,1.78,0.21 +63.00,0.00,33.00,0.39,1.58,0.27 +50.00,0.00,20.00,0.56,1.70,0.24 +30.00,0.00,0.00,0.58,1.66,0.24 +30.00,0.00,0.00,0.44,1.62,0.25 +59.00,0.00,29.00,0.49,1.62,0.22 +17.70,0.00,0.00,0.32,1.64,0.28 +30.40,1.00,5.00,0.61,1.50,0.17 +51.00,0.00,21.00,0.41,1.68,0.26 +18.30,0.00,0.00,0.60,1.74,0.24 +44.00,0.00,14.00,0.49,1.60,0.21 +8.50,0.00,0.00,1.04,1.77,0.30 +10.90,0.00,0.00,0.65,1.56,0.23 +45.00,0.00,15.00,0.54,1.68,0.24 +30.00,0.00,0.00,0.60,1.60,0.25 +30.00,0.00,0.00,0.65,1.53,0.20 +58.80,1.00,29.00,0.41,1.68,0.26 +34.00,0.00,4.00,0.32,1.81,0.29 +72.00,0.00,42.00,0.50,1.77,0.38 +6.60,0.00,0.00,0.94,1.71,0.20 +50.40,1.00,44.00,0.56,1.64,0.24 +44.00,0.00,14.00,0.56,1.68,0.25 +16.40,0.00,0.00,1.08,1.63,0.18 +80.80,1.00,55.00,0.40,1.57,0.28 +10.10,0.00,0.00,0.61,1.68,0.23 +10.30,0.00,0.00,0.68,1.50,0.17 +72.00,0.00,42.00,0.36,1.64,0.29 +20.10,0.00,0.00,0.32,1.60,0.29 +45.00,0.00,15.00,0.45,1.73,0.27 +2.60,0.00,0.00,0.60,1.68,0.23 +43.00,0.00,13.00,0.44,1.71,0.27 +53.00,0.00,23.00,0.35,1.60,0.28 +1.20,0.00,0.00,1.02,1.61,0.23 +30.00,0.00,0.00,0.55,1.58,0.19 +58.00,0.00,28.00,0.32,1.63,0.28 +8.90,0.00,0.00,0.77,1.66,0.28 +59.00,0.00,29.00,0.37,1.59,0.24 +30.00,0.00,0.00,0.53,1.83,0.29 +72.00,0.00,42.00,0.37,1.66,0.28 +30.00,0.00,0.00,0.82,1.61,0.18 +74.00,0.00,44.00,0.38,1.68,0.29 +17.10,1.00,14.00,0.33,1.59,0.32 +35.00,0.00,5.00,0.36,1.53,0.27 +75.00,0.00,45.00,0.57,1.65,0.26 +52.00,0.00,22.00,0.64,1.55,0.20 +63.00,0.00,33.00,0.42,1.70,0.28 +101.00,0.00,71.00,0.56,1.67,0.28 +87.40,1.00,76.00,0.34,1.55,0.26 +30.00,0.00,0.00,0.65,1.63,0.24 +30.00,0.00,0.00,0.72,1.52,0.16 +51.00,0.00,21.00,0.63,1.54,0.16 +63.00,0.00,33.00,0.44,1.70,0.27 +81.70,1.00,71.00,0.50,1.62,0.26 +62.00,1.00,53.00,0.52,1.57,0.20 +61.00,0.00,31.00,0.43,1.63,0.24 +55.00,0.00,25.00,0.40,1.85,0.41 +43.00,0.00,13.00,0.46,1.67,0.25 +31.00,0.00,1.00,0.40,1.66,0.26 +25.50,0.00,0.00,0.64,1.69,0.30 +79.00,0.00,49.00,0.50,1.80,0.28 +52.00,0.00,22.00,0.38,1.68,0.28 +53.00,0.00,23.00,0.45,1.69,0.26 +46.00,0.00,16.00,0.61,1.81,0.40 +43.00,0.00,13.00,0.34,1.65,0.28 +78.00,0.00,48.00,0.50,1.80,0.28 +58.00,0.00,28.00,0.47,1.68,0.25 +74.00,0.00,44.00,0.32,1.64,0.29 +61.00,0.00,31.00,0.64,1.82,0.25 +74.00,0.00,44.00,0.35,1.64,0.28 +35.00,0.00,5.00,0.46,1.72,0.26 +77.00,0.00,47.00,0.81,1.55,0.21 +30.00,0.00,0.00,0.75,1.79,0.39 +47.00,0.00,17.00,0.60,1.80,0.39 +101.00,0.00,71.00,0.40,1.61,0.24 +45.90,1.00,44.00,0.35,1.65,0.28 +30.00,0.00,0.00,0.71,1.67,0.35 +71.70,1.00,58.00,0.90,1.59,0.16 +23.50,0.00,0.00,0.48,1.69,0.29 +30.00,0.00,0.00,0.45,1.68,0.27 +75.00,0.00,45.00,0.57,1.64,0.25 +44.00,0.00,14.00,0.66,1.61,0.28 +30.00,0.00,0.00,0.56,1.75,0.25 +16.00,0.00,0.00,0.61,1.60,0.26 +2.60,0.00,0.00,0.67,1.74,0.40 +25.30,1.00,10.00,0.89,1.58,0.16 +87.00,0.00,57.00,0.38,1.57,0.24 +54.00,0.00,24.00,0.43,1.68,0.28 +65.00,0.00,35.00,0.35,1.65,0.28 +30.00,0.00,0.00,0.76,1.57,0.15 +90.00,0.00,60.00,0.37,1.56,0.23 +66.00,0.00,36.00,0.52,1.70,0.24 +52.00,0.00,22.00,0.38,1.68,0.28 +43.00,0.00,13.00,0.61,1.53,0.18 +72.00,0.00,42.00,0.53,1.77,0.37 +83.00,0.00,53.00,0.58,1.66,0.23 +13.90,0.00,0.00,0.54,1.57,0.18 +16.90,0.00,0.00,0.63,1.55,0.21 +36.00,0.00,6.00,0.40,1.57,0.28 +90.80,1.00,68.00,0.32,1.60,0.31 +43.00,0.00,13.00,0.41,1.64,0.25 +30.00,0.00,0.00,0.63,1.60,0.28 +63.00,0.00,33.00,0.58,1.54,0.20 +58.00,0.00,28.00,0.34,1.59,0.27 +47.60,1.00,18.00,0.71,1.69,0.22 +92.00,0.00,62.00,0.32,1.59,0.31 +34.00,0.00,4.00,0.59,1.60,0.25 +2.00,0.00,0.00,0.42,1.69,0.26 +28.50,0.00,0.00,0.53,1.70,0.23 +86.00,0.00,56.00,0.51,1.64,0.22 +26.10,0.00,0.00,0.35,1.64,0.30 +86.00,0.00,56.00,0.52,1.78,0.28 +19.10,1.00,0.00,0.71,1.52,0.16 +16.00,0.00,0.00,0.69,1.83,0.25 +11.10,0.00,0.00,0.39,1.55,0.24 +59.70,1.00,52.00,0.85,1.67,0.18 +30.00,0.00,0.00,0.63,1.53,0.16 +7.20,0.00,0.00,0.68,1.80,0.38 +99.00,0.00,69.00,0.57,1.51,0.17 +45.00,0.00,15.00,0.61,1.52,0.17 +41.00,0.00,11.00,0.76,1.58,0.17 +91.00,0.00,61.00,0.38,1.67,0.28 +0.10,0.00,0.00,0.77,1.79,0.26 +14.70,0.00,0.00,0.39,1.55,0.28 +107.00,0.00,77.00,0.38,1.61,0.25 +30.00,0.00,0.00,0.82,1.79,0.41 +47.00,0.00,17.00,0.40,1.57,0.28 +16.80,0.00,0.00,0.39,1.69,0.28 +48.00,0.00,18.00,0.34,1.62,0.32 +52.00,0.00,22.00,0.44,1.71,0.27 +61.00,0.00,31.00,0.70,1.52,0.19 +32.50,1.00,18.00,0.89,1.66,0.24 +58.50,1.00,56.00,0.36,1.65,0.30 +47.00,0.00,17.00,0.51,1.65,0.23 +69.00,0.00,39.00,0.62,1.59,0.27 +72.00,0.00,42.00,0.39,1.69,0.28 +39.80,1.00,37.00,1.10,1.63,0.19 +26.10,1.00,0.00,1.11,1.89,0.56 +30.00,0.00,0.00,0.78,1.58,0.15 +90.00,0.00,60.00,0.40,1.66,0.27 +0.70,0.00,0.00,0.57,1.68,0.23 +89.00,0.00,59.00,0.40,1.83,0.39 +1.50,0.00,0.00,0.84,1.65,0.18 +72.00,0.00,42.00,0.71,1.82,0.41 +63.00,0.00,33.00,0.57,1.54,0.20 +49.00,0.00,19.00,0.43,1.73,0.27 +88.00,0.00,58.00,0.62,1.68,0.23 +85.00,0.00,55.00,0.38,1.55,0.28 +55.00,0.00,25.00,0.60,1.57,0.22 +9.90,0.00,0.00,0.56,1.51,0.16 +18.60,0.00,0.00,0.89,1.59,0.18 +56.00,0.00,26.00,0.78,1.58,0.15 +18.20,0.00,0.00,0.38,1.58,0.28 +61.00,0.00,31.00,0.69,1.80,0.25 +98.00,0.00,68.00,0.42,1.69,0.26 +30.00,0.00,0.00,0.74,1.64,0.24 +30.00,0.00,0.00,0.93,1.70,0.25 +28.40,1.00,3.00,0.46,1.62,0.26 +67.30,1.00,44.00,0.56,1.59,0.21 +79.00,0.00,49.00,0.44,1.72,0.27 +86.00,0.00,56.00,0.54,1.71,0.25 +58.00,0.00,28.00,0.33,1.56,0.26 +30.00,0.00,0.00,0.75,1.65,0.24 +35.90,1.00,28.00,0.38,1.55,0.28 +39.00,1.00,10.00,0.71,1.56,0.17 +75.40,1.00,71.00,0.51,1.63,0.26 +29.20,0.00,0.00,0.56,1.66,0.22 +52.00,0.00,22.00,0.42,1.60,0.25 +87.00,0.00,57.00,0.37,1.56,0.25 +63.00,0.00,33.00,0.34,1.65,0.28 +61.00,0.00,31.00,0.52,1.67,0.28 +86.00,0.00,56.00,0.53,1.79,0.28 +48.00,0.00,18.00,0.86,1.65,0.24 +80.00,0.00,50.00,0.38,1.66,0.28 +66.60,1.00,42.00,0.52,1.76,0.37 +30.00,0.00,0.00,0.59,1.53,0.19 +51.20,1.00,31.00,0.70,1.73,0.36 +11.90,1.00,0.00,0.99,1.77,0.23 +30.00,0.00,0.00,0.57,1.54,0.17 +30.00,0.00,0.00,0.58,1.58,0.22 +94.00,0.00,64.00,0.50,1.80,0.28 +83.60,1.00,68.00,0.37,1.64,0.27 +59.00,0.00,29.00,0.41,1.68,0.27 +74.90,1.00,53.00,0.55,1.65,0.22 +66.00,0.00,36.00,0.35,1.60,0.28 +44.00,0.00,14.00,0.37,1.65,0.28 +58.40,1.00,44.00,0.56,1.58,0.21 +28.40,1.00,17.00,0.57,1.68,0.23 +7.50,0.00,0.00,1.10,1.64,0.19 +47.00,0.00,17.00,0.82,1.58,0.16 +100.40,1.00,78.00,0.67,1.54,0.18 +40.00,0.00,10.00,0.95,1.60,0.17 +45.00,0.00,15.00,0.63,1.50,0.15 +18.50,0.00,0.00,0.46,1.54,0.27 +30.00,0.00,0.00,0.77,1.79,0.41 +33.00,0.00,3.00,0.70,1.67,0.33 +10.70,0.00,0.00,0.44,1.71,0.25 +31.00,0.00,1.00,0.89,1.72,0.20 +34.00,0.00,4.00,0.32,1.76,0.29 +101.00,0.00,71.00,0.56,1.67,0.28 +64.00,0.00,34.00,0.33,1.61,0.31 +53.00,0.00,23.00,0.45,1.72,0.33 +63.00,0.00,33.00,0.60,1.67,0.24 +40.00,0.00,10.00,0.79,1.81,0.51 +68.00,0.00,38.00,0.45,1.64,0.26 +30.00,0.00,0.00,0.73,1.81,0.43 +44.00,0.00,14.00,0.57,1.78,0.27 +60.00,0.00,30.00,0.45,1.72,0.27 +5.90,0.00,0.00,0.64,1.79,0.37 +64.90,1.00,62.00,0.82,1.56,0.17 +13.80,0.00,0.00,0.64,1.58,0.21 +67.00,1.00,53.00,0.69,1.83,0.25 +42.80,1.00,40.00,0.53,1.70,0.23 +44.00,0.00,14.00,0.47,1.71,0.25 +58.20,1.00,32.00,0.32,1.59,0.31 +58.00,0.00,28.00,0.31,1.62,0.28 +106.00,0.00,76.00,0.53,1.71,0.29 +58.00,0.00,28.00,0.35,1.54,0.28 +30.00,0.00,0.00,1.19,1.76,0.22 +41.00,0.00,11.00,0.46,1.73,0.27 +74.00,0.00,44.00,0.33,1.61,0.28 +11.00,0.00,0.00,0.85,1.57,0.18 +4.70,1.00,0.00,0.95,1.71,0.21 +44.00,0.00,14.00,0.62,1.60,0.22 +31.60,1.00,31.00,0.70,1.74,0.25 +10.10,0.00,0.00,0.81,1.79,0.46 +66.00,0.00,36.00,0.49,1.66,0.24 +20.50,1.00,0.00,0.51,1.67,0.29 +44.00,0.00,14.00,0.49,1.60,0.21 +63.00,0.00,33.00,0.34,1.64,0.28 +47.00,1.00,39.00,0.59,1.70,0.28 +72.00,0.00,42.00,0.44,1.81,0.39 +30.00,0.00,0.00,0.66,1.53,0.19 +68.00,0.00,38.00,0.45,1.66,0.26 +72.00,0.00,42.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.74,1.56,0.21 +25.40,1.00,14.00,0.61,1.52,0.18 +40.50,1.00,15.00,0.44,1.67,0.25 +34.00,0.00,4.00,0.32,1.80,0.28 +63.00,0.00,33.00,0.51,1.65,0.24 +30.00,0.00,0.00,0.75,1.79,0.41 +2.70,0.00,0.00,0.46,1.66,0.26 +30.00,0.00,0.00,0.66,1.61,0.26 +11.50,0.00,0.00,0.80,1.60,0.18 +22.80,0.00,0.00,0.50,1.58,0.21 +78.00,0.00,48.00,0.44,1.70,0.27 +97.90,1.00,71.00,0.64,1.57,0.20 +28.00,0.00,0.00,0.60,1.57,0.20 +30.00,0.00,0.00,0.51,1.82,0.29 +27.10,0.00,0.00,0.54,1.69,0.23 +45.00,0.00,15.00,0.72,1.66,0.30 +78.00,0.00,48.00,0.44,1.70,0.27 +48.00,0.00,18.00,0.62,1.69,0.23 +20.50,1.00,0.00,0.82,1.58,0.16 +69.00,0.00,39.00,0.33,1.59,0.27 +42.50,1.00,19.00,0.66,1.74,0.40 +57.70,1.00,42.00,0.36,1.64,0.29 +30.00,0.00,0.00,0.90,1.67,0.26 +54.40,1.00,37.00,1.06,1.75,0.22 +30.00,0.00,0.00,1.01,1.76,0.31 +57.70,1.00,32.00,0.46,1.56,0.25 +28.80,0.00,0.00,0.39,1.65,0.27 +52.00,0.00,22.00,0.43,1.61,0.24 +91.00,0.00,61.00,0.39,1.68,0.28 +52.00,0.00,22.00,0.42,1.66,0.25 +91.00,0.00,61.00,0.39,1.68,0.28 +66.00,0.00,36.00,0.45,1.67,0.26 +63.00,0.00,33.00,0.62,1.68,0.23 +7.10,0.00,0.00,0.95,1.71,0.21 +83.00,0.00,53.00,0.52,1.57,0.20 +70.00,0.00,40.00,0.51,1.70,0.24 +5.80,0.00,0.00,0.39,1.58,0.27 +72.00,0.00,42.00,0.35,1.58,0.25 +69.00,0.00,39.00,0.40,1.57,0.27 +56.10,1.00,52.00,0.36,1.67,0.31 +31.70,1.00,15.00,0.45,1.66,0.25 +82.00,0.00,52.00,0.52,1.64,0.30 +101.80,1.00,78.00,0.68,1.54,0.17 +69.00,0.00,39.00,0.34,1.62,0.27 +69.00,0.00,39.00,0.34,1.62,0.27 +66.10,1.00,39.00,0.59,1.57,0.20 +75.00,0.00,45.00,0.34,1.56,0.25 +63.00,0.00,33.00,0.53,1.71,0.24 +49.00,0.00,19.00,0.51,1.63,0.21 +51.00,0.00,21.00,0.39,1.66,0.27 +32.40,1.00,21.00,0.89,1.59,0.18 +30.00,0.00,0.00,0.63,1.54,0.20 +30.00,0.00,0.00,0.65,1.77,0.35 +60.00,1.00,42.00,0.50,1.82,0.28 +43.00,0.00,13.00,0.53,1.54,0.17 +59.40,1.00,42.00,0.69,1.75,0.35 +51.00,0.00,21.00,0.64,1.53,0.15 +47.00,0.00,17.00,0.64,1.55,0.22 +30.00,0.00,0.00,1.14,1.76,0.22 +45.00,0.00,15.00,0.74,1.76,0.24 +54.00,0.00,24.00,0.52,1.57,0.19 +54.00,0.00,24.00,0.46,1.73,0.28 +50.00,0.00,20.00,0.36,1.67,0.32 +81.00,0.00,51.00,0.47,1.64,0.26 +46.00,0.00,16.00,0.45,1.66,0.26 +26.90,1.00,0.00,0.49,1.67,0.28 +22.50,0.00,0.00,0.38,1.67,0.28 +80.00,0.00,50.00,0.60,1.66,0.23 +64.00,0.00,34.00,0.32,1.62,0.29 +48.80,1.00,20.00,0.62,1.52,0.18 +20.70,0.00,0.00,0.69,1.51,0.16 +47.00,0.00,17.00,0.39,1.55,0.24 +74.00,0.00,44.00,0.38,1.66,0.29 +28.60,1.00,0.00,1.08,1.75,0.22 +29.90,0.00,0.00,0.38,1.67,0.28 +18.10,0.00,0.00,1.30,1.80,0.30 +24.60,1.00,0.00,0.55,1.81,0.27 +72.00,0.00,42.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.57,1.60,0.22 +28.80,1.00,0.00,1.28,1.94,0.59 +53.00,0.00,23.00,0.42,1.69,0.26 +56.00,0.00,26.00,0.58,1.78,0.36 +89.00,0.00,59.00,0.40,1.83,0.39 +71.00,0.00,41.00,0.61,1.74,0.24 +10.90,1.00,0.00,0.75,1.53,0.19 +45.00,0.00,15.00,0.73,1.75,0.23 +87.00,0.00,57.00,0.50,1.76,0.28 +92.00,0.00,62.00,0.43,1.72,0.27 +64.00,0.00,34.00,0.55,1.72,0.25 +53.00,0.00,23.00,0.31,1.56,0.29 +92.00,0.00,62.00,0.31,1.58,0.31 +71.00,0.00,41.00,0.41,1.86,0.40 +20.30,0.00,0.00,0.68,1.54,0.21 +65.00,0.00,35.00,0.32,1.60,0.31 +20.30,1.00,12.00,0.60,1.70,0.36 +41.00,0.00,11.00,0.82,1.60,0.18 +71.00,0.00,41.00,0.41,1.85,0.40 +30.00,0.00,0.00,0.88,1.67,0.25 +22.80,0.00,0.00,0.82,1.60,0.16 +43.00,0.00,13.00,0.73,1.72,0.23 +63.20,1.00,39.00,0.46,1.67,0.28 +81.00,0.00,51.00,0.34,1.59,0.27 +17.40,0.00,0.00,0.77,1.79,0.26 +61.00,0.00,31.00,0.45,1.63,0.24 +30.00,0.00,0.00,0.82,1.64,0.18 +41.00,0.00,11.00,0.75,1.90,0.25 +39.00,1.00,20.00,0.54,1.56,0.20 +52.20,1.00,28.00,0.33,1.56,0.26 +66.00,0.00,36.00,0.50,1.65,0.24 +13.10,0.00,0.00,0.56,1.66,0.22 +72.70,1.00,60.00,0.56,1.72,0.31 +17.50,0.00,0.00,0.60,1.70,0.36 +11.70,1.00,0.00,1.50,1.73,0.27 +85.00,0.00,55.00,0.45,1.53,0.27 +2.80,0.00,0.00,0.79,1.54,0.18 +90.00,0.00,60.00,0.58,1.69,0.28 +44.00,0.00,14.00,0.46,1.70,0.25 +101.00,0.00,71.00,0.50,1.63,0.25 +73.00,0.00,43.00,0.44,1.72,0.26 +25.20,1.00,18.00,0.35,1.63,0.33 +30.00,0.00,0.00,1.07,1.63,0.23 +52.00,0.00,22.00,0.42,1.67,0.25 +30.00,0.00,0.00,0.58,1.62,0.25 +62.70,1.00,34.00,0.40,1.69,0.28 +72.00,0.00,42.00,0.55,1.73,0.24 +66.90,1.00,62.00,0.82,1.56,0.17 +57.10,1.00,39.00,0.59,1.57,0.20 +64.00,0.00,34.00,0.38,1.67,0.29 +65.10,1.00,39.00,0.53,1.57,0.18 +91.00,0.00,61.00,0.36,1.64,0.29 +22.80,1.00,0.00,0.86,1.81,0.50 +30.00,0.00,0.00,0.82,1.58,0.17 +23.80,1.00,0.00,0.60,1.52,0.18 +58.00,0.00,28.00,0.33,1.57,0.27 +58.30,1.00,53.00,0.40,1.67,0.26 +106.00,0.00,76.00,0.34,1.55,0.25 +86.70,1.00,60.00,0.39,1.57,0.23 +38.20,1.00,16.00,0.46,1.72,0.28 +57.00,0.00,27.00,0.61,1.52,0.18 +44.00,0.00,14.00,0.64,1.87,0.25 +74.00,0.00,44.00,0.32,1.60,0.28 +68.00,0.00,38.00,0.43,1.70,0.26 +21.40,0.00,0.00,0.47,1.69,0.30 +32.80,1.00,28.00,0.71,1.74,0.36 +55.00,0.00,25.00,0.43,1.56,0.28 +91.00,0.00,61.00,0.38,1.67,0.28 +98.00,0.00,68.00,0.35,1.62,0.30 +79.30,1.00,69.00,0.57,1.52,0.17 +42.00,0.00,12.00,0.96,1.64,0.17 +78.00,0.00,48.00,0.44,1.70,0.27 +41.00,0.00,11.00,0.78,1.59,0.18 +92.00,0.00,62.00,0.64,1.70,0.24 +72.00,0.00,42.00,0.36,1.60,0.25 +64.40,1.00,39.00,1.01,1.78,0.25 +44.00,0.00,14.00,0.48,1.70,0.24 +11.70,0.00,0.00,0.44,1.71,0.26 +16.70,0.00,0.00,0.34,1.61,0.31 +47.00,0.00,17.00,0.57,1.53,0.19 +69.00,0.00,39.00,0.45,1.66,0.28 +19.10,1.00,18.00,0.54,1.53,0.17 +93.00,0.00,63.00,0.58,1.72,0.24 +9.90,0.00,0.00,0.39,1.69,0.28 +9.40,0.00,0.00,0.93,1.83,0.52 +5.50,0.00,0.00,0.44,1.68,0.27 +87.00,0.00,57.00,0.37,1.56,0.25 +72.00,0.00,42.00,0.42,1.84,0.40 +6.80,0.00,0.00,0.87,1.67,0.25 +69.00,0.00,39.00,0.61,1.55,0.21 +96.00,0.00,66.00,0.47,1.64,0.23 +42.00,0.00,12.00,0.68,1.61,0.29 +18.50,1.00,0.00,0.79,1.63,0.18 +72.00,0.00,42.00,0.39,1.68,0.28 +51.00,0.00,21.00,0.68,1.53,0.15 +48.00,0.00,18.00,0.33,1.64,0.29 +98.00,0.00,68.00,0.38,1.64,0.26 +82.00,0.00,52.00,0.51,1.64,0.27 +42.00,0.00,12.00,0.49,1.82,0.41 +13.30,0.00,0.00,1.01,1.61,0.18 +24.80,0.00,0.00,0.82,1.56,0.18 +24.50,1.00,12.00,0.34,1.62,0.27 +42.60,1.00,31.00,0.71,1.74,0.36 +30.00,0.00,0.00,0.91,1.69,0.25 +25.40,0.00,0.00,0.42,1.67,0.25 +91.00,0.00,61.00,0.34,1.64,0.30 +72.00,0.00,42.00,0.72,1.82,0.42 +42.00,0.00,12.00,0.47,1.60,0.26 +39.00,0.00,9.00,0.88,1.70,0.19 +94.00,0.00,64.00,0.51,1.80,0.28 +9.60,1.00,0.00,0.57,1.50,0.16 +10.80,1.00,0.00,0.81,1.55,0.20 +76.00,0.00,46.00,0.32,1.61,0.29 +72.00,0.00,42.00,0.56,1.79,0.37 +62.60,1.00,54.00,0.47,1.69,0.30 +53.00,0.00,23.00,0.31,1.55,0.30 +52.00,0.00,22.00,0.38,1.68,0.28 +44.80,1.00,36.00,0.32,1.59,0.28 +51.00,0.00,21.00,0.84,1.57,0.17 +30.00,0.00,0.00,1.08,1.76,0.22 +95.50,1.00,76.00,0.53,1.70,0.29 +47.00,0.00,17.00,0.53,1.65,0.24 +69.10,1.00,55.00,0.38,1.56,0.25 +18.90,0.00,0.00,0.81,1.61,0.17 +50.00,0.00,20.00,0.58,1.53,0.19 +62.70,1.00,57.00,0.44,1.62,0.25 +13.30,1.00,0.00,1.00,1.77,0.24 +30.00,0.00,0.00,0.75,1.79,0.39 +30.00,0.00,0.00,0.48,1.64,0.27 +59.00,0.00,29.00,0.54,1.61,0.22 +22.60,0.00,0.00,0.31,1.58,0.29 +43.00,0.00,13.00,0.84,1.75,0.24 +2.70,0.00,0.00,0.60,1.70,0.28 +25.40,0.00,0.00,0.76,1.74,0.25 +72.00,0.00,42.00,0.36,1.61,0.25 +30.00,0.00,0.00,0.81,1.79,0.39 +81.50,1.00,61.00,0.39,1.69,0.28 +30.00,0.00,0.00,0.36,1.65,0.32 +25.00,1.00,0.00,0.82,1.56,0.18 +70.00,0.00,40.00,0.42,1.90,0.41 +25.20,0.00,0.00,0.56,1.68,0.23 +94.80,1.00,67.00,0.45,1.74,0.28 +30.00,0.00,0.00,0.82,1.80,0.40 +30.00,0.00,0.00,0.81,1.79,0.41 +59.00,0.00,29.00,0.53,1.65,0.22 +83.00,0.00,53.00,0.46,1.72,0.27 +56.00,0.00,26.00,0.79,1.59,0.15 +30.00,0.00,0.00,0.66,1.52,0.19 +50.00,0.00,20.00,0.43,1.61,0.25 +30.00,0.00,0.00,0.63,1.54,0.20 +92.00,0.00,62.00,0.43,1.73,0.27 +30.00,0.00,0.00,0.85,1.81,0.40 +30.00,0.00,0.00,0.63,1.51,0.18 +63.00,0.00,33.00,0.52,1.57,0.20 +42.10,1.00,36.00,0.47,1.67,0.26 +66.00,0.00,36.00,0.47,1.64,0.26 +34.00,0.00,4.00,0.48,1.55,0.26 +44.00,0.00,14.00,0.44,1.71,0.26 +1.00,0.00,0.00,0.47,1.72,0.26 +9.90,0.00,0.00,0.79,1.56,0.16 +53.90,1.00,44.00,0.37,1.66,0.29 +30.00,0.00,0.00,0.73,1.80,0.43 +48.00,0.00,18.00,0.53,1.55,0.18 +53.10,1.00,31.00,0.88,1.71,0.19 +32.10,1.00,31.00,0.62,1.79,0.25 +30.00,0.00,0.00,0.58,1.53,0.17 +77.20,1.00,68.00,0.34,1.62,0.31 +46.00,0.00,16.00,0.46,1.68,0.26 +38.00,0.00,8.00,0.53,1.54,0.17 +45.00,0.00,15.00,0.44,1.66,0.25 +71.00,0.00,41.00,0.54,1.82,0.28 +15.00,1.00,0.00,0.67,1.77,0.36 +30.00,0.00,0.00,0.84,1.75,0.24 +30.00,0.00,0.00,0.61,1.55,0.21 +47.80,1.00,35.00,0.35,1.64,0.31 +6.80,0.00,0.00,0.91,1.63,0.30 +60.00,0.00,30.00,0.71,1.55,0.15 +61.00,0.00,31.00,0.50,1.66,0.28 +56.60,1.00,55.00,0.40,1.58,0.27 +26.80,1.00,0.00,0.79,1.59,0.15 +18.40,1.00,0.00,0.63,1.68,0.23 +52.00,0.00,22.00,0.37,1.64,0.27 +3.10,0.00,0.00,0.50,1.62,0.26 +30.00,1.00,0.00,0.38,1.56,0.24 +30.00,0.00,0.00,1.08,1.77,0.26 +20.00,0.00,0.00,0.49,1.69,0.25 +50.00,0.00,20.00,0.66,1.50,0.17 +25.00,1.00,20.00,1.30,1.95,0.60 +63.00,0.00,33.00,0.62,1.61,0.23 +69.00,0.00,39.00,0.40,1.57,0.27 +25.70,1.00,10.00,0.71,1.56,0.17 +57.00,0.00,27.00,0.42,1.68,0.26 +9.40,0.00,0.00,0.37,1.65,0.29 +72.00,0.00,42.00,0.65,1.80,0.38 +70.80,1.00,42.00,0.43,1.84,0.39 +61.00,0.00,31.00,0.56,1.56,0.17 +22.30,0.00,0.00,0.98,1.60,0.17 +49.00,0.00,19.00,0.72,1.51,0.18 +66.00,0.00,36.00,0.47,1.65,0.24 +96.00,0.00,66.00,0.55,1.66,0.22 +29.00,0.00,0.00,0.75,1.56,0.21 +42.00,0.00,12.00,0.55,1.62,0.25 +66.00,0.00,36.00,0.36,1.62,0.28 +4.20,0.00,0.00,0.45,1.73,0.27 +52.00,0.00,22.00,0.42,1.66,0.25 +23.30,0.00,0.00,0.83,1.70,0.22 +42.00,0.00,12.00,0.52,1.61,0.25 +29.10,0.00,0.00,0.89,1.72,0.20 +106.00,0.00,76.00,0.33,1.56,0.27 +85.00,0.00,55.00,0.39,1.58,0.26 +30.00,0.00,0.00,0.79,1.55,0.17 +55.00,0.00,25.00,0.58,1.67,0.27 +45.00,0.00,15.00,0.52,1.67,0.24 +66.00,0.00,36.00,0.48,1.65,0.24 +99.00,0.00,69.00,0.56,1.52,0.17 +51.00,0.00,21.00,0.40,1.67,0.26 +108.00,0.00,78.00,0.62,1.53,0.18 +76.00,1.00,62.00,0.67,1.52,0.19 +44.00,0.00,14.00,0.58,1.68,0.27 +5.40,0.00,0.00,0.52,1.76,0.37 +88.00,0.00,58.00,0.63,1.68,0.23 +52.00,0.00,22.00,0.38,1.67,0.28 +85.00,0.00,55.00,0.38,1.54,0.28 +26.60,0.00,0.00,1.18,1.66,0.20 +43.00,0.00,13.00,0.46,1.66,0.25 +53.00,0.00,23.00,0.68,1.56,0.22 +98.00,0.00,68.00,0.37,1.64,0.28 +63.00,0.00,33.00,0.42,1.70,0.28 +75.50,1.00,60.00,0.40,1.66,0.27 +50.00,0.00,20.00,0.58,1.70,0.26 +43.30,1.00,39.00,1.02,1.78,0.25 +31.00,0.00,1.00,0.86,1.71,0.22 +25.20,1.00,0.00,0.36,1.63,0.30 +30.00,0.00,0.00,1.04,1.76,0.21 +93.00,0.00,63.00,0.35,1.66,0.31 +14.20,0.00,0.00,0.74,1.64,0.27 +61.00,0.00,31.00,0.61,1.55,0.21 +43.00,0.00,13.00,0.47,1.67,0.26 +73.00,0.00,43.00,0.44,1.72,0.26 +30.00,0.00,0.00,0.70,1.50,0.17 +42.80,1.00,17.00,0.39,1.55,0.24 +81.70,1.00,60.00,0.68,1.58,0.24 +20.10,0.00,0.00,0.78,1.78,0.42 +64.00,0.00,34.00,0.33,1.61,0.31 +30.00,0.00,0.00,0.38,1.67,0.28 +88.00,0.00,58.00,0.60,1.74,0.24 +50.00,0.00,20.00,0.40,1.59,0.24 +92.00,0.00,62.00,0.44,1.73,0.27 +13.30,0.00,0.00,0.65,1.52,0.19 +78.00,0.00,48.00,0.51,1.76,0.27 +30.00,0.00,0.00,0.40,1.58,0.27 +72.00,0.00,42.00,0.72,1.82,0.41 +30.00,0.00,0.00,0.32,1.55,0.27 +34.00,0.00,4.00,0.65,1.61,0.26 +31.00,0.00,1.00,0.61,1.60,0.26 +55.00,0.00,25.00,0.41,1.51,0.26 +98.00,0.00,68.00,0.36,1.63,0.29 +5.30,0.00,0.00,0.85,1.79,0.39 +48.00,0.00,18.00,0.38,1.57,0.23 +73.40,1.00,53.00,0.51,1.58,0.20 +83.00,0.00,53.00,0.52,1.57,0.20 +91.00,0.00,61.00,0.34,1.63,0.30 +54.00,0.00,24.00,0.54,1.56,0.18 +48.00,0.00,18.00,0.90,1.69,0.25 +27.80,0.00,0.00,0.51,1.63,0.30 +96.00,0.00,66.00,0.46,1.65,0.24 +52.00,0.00,22.00,0.42,1.62,0.25 +44.00,0.00,14.00,0.44,1.71,0.26 +42.00,0.00,12.00,0.50,1.64,0.22 +56.00,0.00,26.00,0.50,1.61,0.28 +46.90,1.00,44.00,0.32,1.60,0.28 +30.00,0.00,0.00,0.46,1.70,0.27 +72.00,0.00,42.00,0.73,1.82,0.43 +20.30,1.00,15.00,0.99,1.61,0.17 +61.20,1.00,60.00,0.38,1.61,0.25 +47.00,0.00,17.00,0.57,1.74,0.24 +63.00,0.00,33.00,0.56,1.54,0.20 +63.00,0.00,33.00,0.57,1.54,0.20 +37.00,0.00,7.00,0.51,1.58,0.20 +46.60,1.00,39.00,0.66,1.52,0.19 +67.00,0.00,37.00,0.61,1.74,0.32 +50.00,0.00,20.00,0.53,1.57,0.20 +78.00,0.00,48.00,0.45,1.71,0.27 +20.20,0.00,0.00,0.40,1.58,0.27 +41.00,0.00,11.00,0.46,1.72,0.28 +8.30,0.00,0.00,1.29,1.80,0.30 +46.00,0.00,16.00,0.45,1.67,0.26 +48.00,0.00,18.00,0.73,1.52,0.18 +59.20,1.00,41.00,0.68,1.68,0.23 +74.00,0.00,44.00,0.38,1.68,0.29 +19.50,0.00,0.00,0.43,1.68,0.28 +42.00,0.00,12.00,0.47,1.60,0.26 +30.00,0.00,0.00,0.33,1.60,0.31 +48.00,0.00,18.00,0.86,1.65,0.24 +86.00,0.00,56.00,0.52,1.77,0.27 +63.00,0.00,33.00,0.50,1.65,0.24 +101.00,0.00,71.00,0.42,1.67,0.25 +53.00,0.00,23.00,0.31,1.56,0.31 +48.00,0.00,18.00,0.53,1.59,0.18 +61.00,0.00,31.00,0.56,1.54,0.18 +28.30,0.00,0.00,0.99,1.77,0.21 +78.60,1.00,78.00,0.56,1.68,0.33 +30.00,0.00,0.00,0.86,1.57,0.21 +36.60,1.00,33.00,0.61,1.67,0.23 +50.50,1.00,36.00,0.35,1.60,0.28 +95.20,1.00,71.00,0.34,1.47,0.26 +51.10,1.00,38.00,0.77,1.64,0.28 +30.00,0.00,0.00,0.45,1.62,0.26 +53.00,0.00,23.00,0.46,1.69,0.26 +29.90,1.00,14.00,0.56,1.68,0.25 +73.00,0.00,43.00,0.44,1.73,0.26 +90.00,0.00,60.00,0.40,1.66,0.27 +86.00,0.00,56.00,0.43,1.71,0.26 +71.00,0.00,41.00,0.35,1.60,0.27 +32.70,1.00,10.00,1.09,1.62,0.19 +41.00,0.00,11.00,0.69,1.79,0.24 +30.00,0.00,0.00,0.46,1.62,0.26 +74.00,0.00,44.00,0.32,1.58,0.31 +43.60,1.00,40.00,0.47,1.67,0.24 +47.00,0.00,17.00,0.42,1.59,0.24 +73.00,0.00,43.00,0.44,1.73,0.27 +69.00,0.00,39.00,0.44,1.65,0.28 +12.30,0.00,0.00,0.31,1.61,0.30 +30.00,0.00,0.00,0.81,1.79,0.42 +32.50,1.00,19.00,0.82,1.70,0.24 +98.00,0.00,68.00,0.43,1.57,0.25 +74.00,0.00,44.00,0.40,1.80,0.38 +66.00,0.00,36.00,0.44,1.71,0.33 +62.00,0.00,32.00,0.60,1.60,0.26 +30.00,0.00,0.00,0.55,1.82,0.28 +51.00,0.00,21.00,0.33,1.60,0.30 +79.00,0.00,49.00,0.47,1.67,0.25 +92.00,0.00,62.00,0.46,1.73,0.27 +91.00,0.00,61.00,0.37,1.66,0.28 +30.00,0.00,0.00,0.69,1.77,0.38 +63.00,0.00,33.00,0.57,1.66,0.24 +92.00,0.00,62.00,0.70,1.53,0.20 +72.00,0.00,42.00,0.36,1.61,0.25 +47.00,0.00,17.00,0.38,1.69,0.28 +11.20,0.00,0.00,0.70,1.51,0.15 +31.00,0.00,1.00,0.32,1.57,0.27 +30.00,0.00,0.00,0.59,1.61,0.25 +92.00,0.00,62.00,0.36,1.63,0.30 +72.00,0.00,42.00,0.31,1.57,0.31 +17.30,0.00,0.00,0.58,1.73,0.31 +30.00,0.00,0.00,0.74,1.64,0.24 +101.00,0.00,71.00,0.51,1.79,0.28 +14.60,0.00,0.00,0.67,1.54,0.21 +30.00,0.00,0.00,0.61,1.59,0.27 +15.20,0.00,0.00,0.63,1.55,0.21 +44.00,0.00,14.00,0.46,1.70,0.25 +30.00,0.00,0.00,0.62,1.60,0.28 +47.00,0.00,17.00,0.78,1.57,0.16 +8.80,0.00,0.00,1.13,1.77,0.27 +47.00,0.00,17.00,0.38,1.67,0.29 +7.00,1.00,0.00,0.92,1.73,0.27 +65.00,0.00,35.00,0.56,1.67,0.33 +82.00,0.00,52.00,0.47,1.68,0.25 +38.50,1.00,31.00,0.69,1.77,0.25 +44.00,0.00,14.00,0.40,1.50,0.26 +51.00,0.00,21.00,0.34,1.61,0.31 +51.50,1.00,23.00,0.35,1.60,0.27 +20.80,0.00,0.00,0.60,1.66,0.23 +57.70,1.00,29.00,0.47,1.64,0.24 +7.90,1.00,0.00,1.03,1.76,0.25 +40.00,0.00,10.00,0.75,1.79,0.45 +63.00,0.00,33.00,0.43,1.70,0.27 +38.70,1.00,33.00,1.01,1.61,0.23 +66.00,0.00,36.00,0.45,1.67,0.26 +43.00,0.00,13.00,0.44,1.74,0.28 +44.00,0.00,14.00,0.47,1.71,0.25 +57.00,0.00,27.00,0.68,1.53,0.19 +30.00,0.00,0.00,0.36,1.63,0.29 +63.00,0.00,33.00,0.42,1.70,0.27 +46.00,0.00,16.00,0.47,1.68,0.25 +78.00,0.00,48.00,0.44,1.70,0.27 +107.00,0.00,77.00,0.39,1.61,0.25 +24.10,0.00,0.00,0.63,1.69,0.24 +63.00,0.00,33.00,0.52,1.65,0.23 +6.80,0.00,0.00,0.44,1.61,0.25 +74.00,0.00,44.00,0.54,1.82,0.29 +35.60,1.00,31.00,0.59,1.54,0.20 +45.00,0.00,15.00,0.74,1.75,0.23 +30.00,0.00,0.00,0.65,1.66,0.23 +72.00,0.00,42.00,0.50,1.78,0.38 +4.70,0.00,0.00,0.75,1.79,0.39 +55.00,0.00,25.00,0.69,1.90,0.25 +29.40,0.00,0.00,0.68,1.53,0.19 +30.00,0.00,0.00,0.37,1.54,0.28 +44.00,0.00,14.00,0.67,1.53,0.19 +30.00,0.00,0.00,0.54,1.56,0.18 +30.00,0.00,0.00,0.61,1.56,0.20 +30.00,0.00,0.00,0.70,1.56,0.19 +57.10,1.00,33.00,0.60,1.55,0.21 +6.90,0.00,0.00,0.35,1.56,0.27 +49.00,0.00,19.00,0.86,1.57,0.18 +30.00,0.00,0.00,1.00,1.78,0.22 +45.00,0.00,15.00,0.43,1.66,0.24 +7.10,0.00,0.00,0.48,1.66,0.24 +47.00,0.00,17.00,0.38,1.69,0.28 +30.00,0.00,0.00,0.79,1.57,0.16 +91.00,0.00,61.00,0.39,1.68,0.28 +72.00,0.00,42.00,0.54,1.73,0.24 +40.60,1.00,30.00,0.32,1.70,0.29 +30.00,0.00,0.00,1.04,1.76,0.21 +58.00,0.00,28.00,0.66,1.74,0.34 +10.80,0.00,0.00,0.43,1.73,0.27 +40.00,0.00,10.00,0.97,1.67,0.20 +66.00,0.00,36.00,0.46,1.69,0.26 +49.00,0.00,19.00,0.80,1.66,0.25 +39.50,1.00,20.00,0.59,1.53,0.19 +107.00,0.00,77.00,0.40,1.61,0.24 +30.00,0.00,0.00,0.72,1.54,0.20 +30.00,0.00,0.00,0.67,1.64,0.24 +44.00,0.00,14.00,0.64,1.69,0.30 +62.40,1.00,36.00,0.46,1.67,0.26 +40.00,0.00,10.00,0.91,1.73,0.20 +86.00,0.00,56.00,0.50,1.64,0.22 +98.00,0.00,68.00,0.33,1.60,0.31 +50.40,1.00,39.00,1.01,1.77,0.24 +53.00,0.00,23.00,0.59,1.69,0.27 +69.00,0.00,39.00,0.44,1.64,0.27 +30.00,0.00,0.00,0.63,1.54,0.20 +13.80,0.00,0.00,0.51,1.63,0.30 +8.90,0.00,0.00,1.07,1.70,0.22 +44.00,0.00,14.00,0.67,1.53,0.18 +30.00,0.00,0.00,0.57,1.51,0.16 +54.20,1.00,50.00,0.59,1.58,0.22 +30.00,0.00,0.00,0.44,1.70,0.28 +45.00,0.00,15.00,1.01,1.61,0.17 +61.00,0.00,31.00,0.33,1.60,0.31 +30.00,0.00,0.00,1.04,1.75,0.21 +52.00,0.00,22.00,0.67,1.54,0.21 +63.00,0.00,33.00,0.31,1.59,0.29 +83.00,0.00,53.00,0.51,1.57,0.21 +56.00,0.00,26.00,0.79,1.59,0.16 +10.00,0.00,0.00,0.41,1.51,0.27 +11.40,1.00,0.00,1.49,1.73,0.27 +3.50,0.00,0.00,0.42,1.70,0.26 +13.70,0.00,0.00,0.85,1.58,0.17 +39.90,1.00,28.00,0.70,1.74,0.36 +18.80,0.00,0.00,0.40,1.58,0.24 +7.70,0.00,0.00,0.80,1.67,0.31 +30.00,0.00,0.00,0.41,1.62,0.24 +4.60,0.00,0.00,0.35,1.55,0.27 +45.00,0.00,15.00,0.61,1.52,0.17 +76.10,1.00,60.00,0.56,1.64,0.24 +18.00,0.00,0.00,0.42,1.67,0.26 +98.00,0.00,68.00,0.40,1.66,0.26 +0.10,0.00,0.00,0.59,1.70,0.27 +65.00,0.00,35.00,0.32,1.59,0.31 +8.20,1.00,0.00,1.50,1.73,0.27 +60.00,0.00,30.00,0.44,1.71,0.25 +52.00,0.00,22.00,0.63,1.55,0.21 +37.00,0.00,7.00,0.54,1.54,0.19 +30.00,0.00,0.00,1.22,1.77,0.24 +30.00,0.00,0.00,0.54,1.56,0.18 +91.00,0.00,61.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.88,1.67,0.25 +48.40,1.00,19.00,0.77,1.63,0.22 +44.00,0.00,14.00,0.71,2.05,0.26 +50.00,0.00,20.00,0.65,1.51,0.19 +40.00,0.00,10.00,0.36,1.57,0.23 +30.00,0.00,0.00,0.32,1.60,0.31 +30.00,0.00,0.00,0.60,1.69,0.23 +101.00,0.00,71.00,0.39,1.61,0.24 +68.50,1.00,53.00,0.61,1.69,0.23 +70.00,0.00,40.00,0.43,1.57,0.25 +74.00,0.00,44.00,0.38,1.68,0.29 +72.00,0.00,42.00,0.43,1.71,0.27 +25.40,1.00,0.00,1.17,1.73,0.23 +40.00,0.00,10.00,0.54,1.53,0.19 +5.10,0.00,0.00,0.34,1.61,0.29 +69.00,0.00,39.00,0.59,1.57,0.20 +44.00,0.00,14.00,0.51,1.83,0.29 +8.20,0.00,0.00,0.38,1.81,0.37 +95.30,1.00,66.00,0.60,1.68,0.23 +4.20,0.00,0.00,0.39,1.55,0.24 +87.00,0.00,57.00,0.36,1.58,0.26 +44.00,0.00,14.00,0.69,1.53,0.20 +86.00,0.00,56.00,0.55,1.71,0.24 +66.00,0.00,36.00,0.47,1.64,0.26 +91.00,0.00,61.00,0.35,1.60,0.27 +83.70,1.00,58.00,0.62,1.68,0.23 +17.10,1.00,17.00,0.48,1.67,0.24 +101.00,0.00,71.00,0.55,1.66,0.28 +6.20,0.00,0.00,0.52,1.58,0.20 +30.00,0.00,0.00,0.60,1.56,0.20 +50.00,0.00,20.00,0.44,1.58,0.25 +45.00,0.00,15.00,0.43,1.61,0.25 +58.40,1.00,29.00,0.54,1.61,0.22 +30.00,0.00,0.00,0.66,1.77,0.36 +50.00,0.00,20.00,0.66,1.77,0.25 +5.70,0.00,0.00,0.74,1.60,0.22 +30.00,0.00,0.00,0.35,1.54,0.28 +13.00,0.00,0.00,0.50,1.78,0.39 +39.00,0.00,9.00,0.37,1.66,0.30 +74.00,0.00,44.00,0.56,1.67,0.33 +91.00,0.00,61.00,0.34,1.62,0.29 +62.40,1.00,38.00,0.95,1.73,0.24 +30.00,0.00,0.00,0.31,1.53,0.27 +50.00,0.00,20.00,0.56,1.70,0.24 +106.00,0.00,76.00,0.53,1.70,0.29 +28.40,0.00,0.00,0.82,1.57,0.17 +71.00,0.00,41.00,0.61,1.49,0.15 +44.00,0.00,14.00,0.54,1.59,0.18 +41.00,0.00,11.00,0.48,1.61,0.26 +30.00,0.00,0.00,0.74,1.56,0.15 +88.00,0.00,58.00,0.63,1.71,0.23 +50.00,0.00,20.00,0.55,1.54,0.19 +76.00,0.00,46.00,0.31,1.61,0.30 +10.20,0.00,0.00,0.51,1.82,0.28 +34.80,1.00,29.00,0.52,1.64,0.22 +47.00,0.00,17.00,0.42,1.60,0.24 +106.00,0.00,76.00,0.34,1.55,0.26 +98.00,0.00,68.00,0.34,1.61,0.31 +43.00,0.00,13.00,0.41,1.68,0.26 +42.00,0.00,12.00,0.47,1.60,0.27 +49.00,0.00,19.00,0.33,1.72,0.28 +78.00,0.00,48.00,0.49,1.67,0.24 +101.00,0.00,71.00,0.37,1.56,0.24 +101.00,0.00,71.00,0.38,1.57,0.28 +7.60,0.00,0.00,0.66,1.58,0.22 +0.60,0.00,0.00,0.58,1.57,0.21 +47.00,0.00,17.00,0.51,1.71,0.30 +88.00,0.00,58.00,0.61,1.67,0.24 +30.00,0.00,0.00,1.01,1.77,0.21 +101.00,0.00,71.00,0.37,1.55,0.25 +30.00,0.00,0.00,0.69,1.53,0.19 +63.20,1.00,37.00,1.06,1.61,0.18 +33.10,1.00,18.00,0.54,1.53,0.17 +50.00,0.00,20.00,0.44,1.65,0.25 +69.00,0.00,39.00,0.46,1.68,0.24 +24.00,0.00,0.00,0.36,1.65,0.29 +106.00,0.00,76.00,0.32,1.56,0.27 +61.00,0.00,31.00,0.49,1.65,0.24 +30.00,0.00,0.00,1.06,1.76,0.21 +60.30,1.00,39.00,0.33,1.59,0.27 +38.00,1.00,25.00,0.41,1.51,0.27 +106.00,0.00,76.00,0.51,1.69,0.28 +15.70,0.00,0.00,0.63,1.68,0.23 +14.70,0.00,0.00,0.81,1.60,0.16 +58.00,0.00,28.00,0.42,1.56,0.28 +50.00,0.00,20.00,0.59,1.53,0.19 +37.40,1.00,22.00,0.67,1.54,0.21 +74.00,0.00,44.00,0.34,1.61,0.31 +73.00,0.00,43.00,0.39,1.67,0.27 +7.50,0.00,0.00,0.44,1.57,0.26 +90.00,0.00,60.00,0.37,1.56,0.23 +68.60,1.00,68.00,0.43,1.71,0.26 +19.70,0.00,0.00,0.81,1.80,0.40 +50.00,0.00,20.00,0.68,1.77,0.25 +30.00,0.00,0.00,0.66,1.53,0.16 +48.00,0.00,18.00,0.35,1.64,0.32 +59.00,0.00,29.00,0.40,1.68,0.29 +30.00,0.00,0.00,0.97,1.75,0.30 +49.70,1.00,42.00,0.81,1.80,0.40 +18.00,1.00,0.00,0.67,1.54,0.18 +60.50,1.00,48.00,0.50,1.70,0.26 +9.80,0.00,0.00,0.70,1.73,0.36 +78.90,1.00,61.00,0.35,1.59,0.27 +62.70,1.00,52.00,0.88,1.71,0.20 +85.00,0.00,55.00,0.40,1.57,0.27 +64.80,1.00,39.00,1.05,1.79,0.28 +5.90,0.00,0.00,0.89,1.69,0.19 +58.00,0.00,28.00,0.32,1.56,0.27 +49.00,0.00,19.00,0.48,1.87,0.41 +92.00,0.00,62.00,0.61,1.69,0.23 +53.00,0.00,23.00,0.46,1.55,0.27 +12.50,0.00,0.00,0.47,1.64,0.26 +22.20,1.00,20.00,0.70,1.52,0.15 +31.00,0.00,1.00,0.88,1.72,0.21 +46.00,0.00,16.00,0.45,1.66,0.26 +66.00,0.00,36.00,0.32,1.59,0.28 +4.10,0.00,0.00,0.70,1.55,0.16 +12.40,0.00,0.00,0.73,1.53,0.16 +14.80,0.00,0.00,0.55,1.68,0.30 +32.90,1.00,28.00,0.69,1.73,0.35 +45.00,0.00,15.00,0.75,1.76,0.24 +70.60,1.00,59.00,0.62,1.59,0.27 +66.60,1.00,53.00,0.51,1.57,0.20 +49.00,0.00,19.00,0.69,1.53,0.20 +92.00,0.00,62.00,0.37,1.65,0.30 +63.00,0.00,33.00,0.50,1.69,0.25 +44.00,0.00,14.00,0.51,1.61,0.21 +60.00,0.00,30.00,0.45,1.65,0.24 +36.00,1.00,14.00,1.14,1.80,0.27 +71.00,0.00,41.00,0.36,1.60,0.25 +30.00,0.00,0.00,0.83,1.64,0.19 +18.60,1.00,0.00,0.79,1.78,0.42 +69.00,0.00,39.00,0.68,1.53,0.19 +30.00,0.00,0.00,0.66,1.77,0.36 +92.00,0.00,62.00,0.34,1.71,0.33 +20.10,0.00,0.00,0.59,1.60,0.25 +38.00,0.00,8.00,0.50,1.79,0.39 +43.00,0.00,13.00,0.47,1.66,0.25 +44.00,0.00,14.00,0.53,1.58,0.19 +50.00,0.00,20.00,0.49,1.64,0.22 +90.60,1.00,66.00,0.48,1.63,0.23 +48.00,0.00,18.00,0.61,1.69,0.23 +90.40,1.00,76.00,0.33,1.55,0.26 +19.70,1.00,19.00,0.79,1.55,0.17 +30.00,0.00,0.00,0.98,1.77,0.23 +61.00,0.00,31.00,0.35,1.62,0.31 +63.00,0.00,33.00,0.32,1.59,0.31 +45.00,0.00,15.00,0.40,1.68,0.28 +45.00,0.00,15.00,0.43,1.61,0.25 +16.10,1.00,12.00,0.33,1.60,0.27 +9.30,0.00,0.00,0.82,1.60,0.16 +88.00,0.00,58.00,0.42,1.67,0.25 +44.00,0.00,14.00,0.68,1.58,0.25 +15.50,0.00,0.00,0.78,1.53,0.19 +51.00,0.00,21.00,0.43,1.73,0.27 +8.80,0.00,0.00,0.72,1.69,0.23 +50.00,0.00,20.00,0.58,1.70,0.26 +73.00,0.00,43.00,0.44,1.72,0.26 +5.10,0.00,0.00,0.31,1.57,0.31 +26.10,1.00,17.00,0.63,1.56,0.22 +70.00,0.00,40.00,0.38,1.59,0.24 +67.10,1.00,44.00,0.56,1.70,0.23 +15.50,0.00,0.00,0.43,1.71,0.25 +41.00,0.00,11.00,0.73,1.57,0.17 +69.00,0.00,39.00,0.34,1.55,0.28 +61.00,0.00,31.00,0.43,1.73,0.26 +63.00,0.00,33.00,0.38,1.81,0.37 +66.30,1.00,62.00,0.43,1.73,0.27 +60.80,1.00,58.00,0.63,1.68,0.23 +28.70,0.00,0.00,1.06,1.78,0.29 +23.70,0.00,0.00,0.40,1.60,0.24 +30.00,0.00,0.00,0.56,1.58,0.18 +47.00,0.00,17.00,0.65,1.56,0.22 +53.00,0.00,23.00,0.31,1.57,0.29 +46.00,0.00,16.00,0.45,1.67,0.26 +23.00,0.00,0.00,0.34,1.65,0.29 +30.00,0.00,0.00,0.53,1.55,0.20 +62.00,1.00,32.00,0.68,1.56,0.22 +82.00,0.00,52.00,0.50,1.62,0.26 +30.00,0.00,0.00,0.41,1.71,0.27 +45.00,0.00,15.00,0.73,1.75,0.23 +48.00,0.00,18.00,0.61,1.59,0.27 +49.00,0.00,19.00,0.71,1.52,0.18 +35.00,0.00,5.00,0.64,1.54,0.20 +12.10,0.00,0.00,0.65,1.53,0.16 +43.20,1.00,20.00,0.56,1.70,0.23 +58.00,0.00,28.00,0.35,1.55,0.27 +30.00,0.00,0.00,0.82,1.80,0.40 +22.40,0.00,0.00,0.83,1.67,0.25 +31.20,1.00,15.00,1.11,1.64,0.18 +10.20,0.00,0.00,0.68,1.59,0.24 +74.00,0.00,44.00,0.35,1.65,0.28 +59.00,0.00,29.00,0.61,1.76,0.26 +65.00,0.00,35.00,0.93,1.75,0.21 +63.00,0.00,33.00,0.43,1.70,0.27 +96.00,0.00,66.00,0.47,1.64,0.23 +37.80,1.00,14.00,0.52,1.58,0.20 +49.80,1.00,32.00,0.99,1.63,0.18 +43.00,0.00,13.00,0.54,1.53,0.16 +72.00,0.00,42.00,0.55,1.68,0.23 +30.00,0.00,0.00,0.37,1.65,0.29 +85.00,0.00,55.00,0.39,1.58,0.26 +30.00,0.00,0.00,0.39,1.57,0.24 +74.00,0.00,44.00,0.40,1.80,0.38 +72.70,1.00,60.00,0.58,1.73,0.31 +56.00,0.00,26.00,0.79,1.59,0.15 +55.50,1.00,53.00,0.82,1.68,0.23 +108.00,0.00,78.00,0.46,1.72,0.27 +42.80,1.00,39.00,0.46,1.69,0.24 +58.00,0.00,28.00,0.32,1.72,0.29 +44.00,0.00,14.00,0.42,1.52,0.27 +30.00,0.00,0.00,0.72,1.89,0.26 +41.00,0.00,11.00,0.84,1.56,0.18 +43.60,1.00,31.00,0.34,1.60,0.25 +68.00,0.00,38.00,0.73,1.62,0.27 +40.00,0.00,10.00,0.91,1.59,0.17 +3.50,0.00,0.00,0.50,1.70,0.26 +49.00,0.00,19.00,0.82,1.70,0.24 +30.00,0.00,0.00,0.36,1.63,0.30 +83.00,0.00,53.00,0.45,1.73,0.27 +32.80,1.00,18.00,0.87,1.65,0.24 +40.00,0.00,10.00,0.70,1.55,0.17 +9.00,0.00,0.00,0.38,1.66,0.27 +47.00,0.00,17.00,0.80,1.65,0.27 +2.80,0.00,0.00,0.73,1.57,0.17 +45.00,0.00,15.00,0.46,1.73,0.28 +61.00,0.00,31.00,0.56,1.54,0.18 +85.30,1.00,68.00,0.36,1.63,0.29 +33.70,1.00,10.00,0.87,1.58,0.16 +48.00,0.00,18.00,0.50,1.58,0.21 +69.00,0.00,39.00,0.54,1.56,0.18 +56.00,0.00,26.00,0.53,1.65,0.23 +44.00,0.00,14.00,0.47,1.71,0.25 +30.00,0.00,0.00,0.60,1.64,0.24 +43.00,0.00,13.00,0.41,1.68,0.26 +71.00,0.00,41.00,0.58,1.50,0.16 +55.20,1.00,50.00,0.60,1.64,0.23 +32.90,1.00,5.00,0.61,1.60,0.28 +91.00,0.00,61.00,0.39,1.68,0.28 +50.00,0.00,20.00,0.73,1.77,0.24 +73.00,0.00,43.00,0.70,1.54,0.20 +60.00,0.00,30.00,0.70,1.55,0.16 +26.80,1.00,0.00,0.88,1.67,0.25 +91.00,0.00,61.00,0.36,1.64,0.29 +63.00,0.00,33.00,0.57,1.65,0.24 +52.00,0.00,22.00,0.43,1.67,0.25 +50.00,0.00,20.00,0.43,1.72,0.27 +100.50,1.00,76.00,0.52,1.70,0.30 +6.90,0.00,0.00,0.82,1.56,0.17 +44.00,0.00,14.00,0.56,1.79,0.28 +47.00,0.00,17.00,0.56,1.73,0.24 +91.00,0.00,61.00,0.39,1.68,0.28 +10.10,0.00,0.00,0.59,1.70,0.28 +72.00,0.00,42.00,0.43,1.82,0.39 +76.00,0.00,46.00,0.31,1.61,0.30 +24.10,0.00,0.00,1.17,1.76,0.22 +89.20,1.00,68.00,0.42,1.68,0.26 +51.00,0.00,21.00,0.52,1.65,0.28 +76.30,1.00,62.00,0.68,1.53,0.19 +59.00,0.00,29.00,0.41,1.67,0.25 +23.50,0.00,0.00,0.47,1.66,0.24 +19.60,0.00,0.00,0.32,1.51,0.27 +92.00,0.00,62.00,0.82,1.56,0.17 +53.20,1.00,30.00,0.70,1.55,0.15 +53.00,0.00,23.00,0.40,1.67,0.27 +46.00,0.00,16.00,0.33,1.47,0.26 +88.00,0.00,58.00,0.42,1.67,0.25 +50.00,0.00,20.00,0.56,1.60,0.22 +58.00,0.00,28.00,0.34,1.57,0.25 +48.00,0.00,18.00,0.86,1.65,0.24 +3.10,0.00,0.00,0.51,1.76,0.37 +44.00,0.00,14.00,0.64,1.71,0.31 +4.70,0.00,0.00,0.93,1.69,0.25 +9.40,0.00,0.00,0.79,1.79,0.42 +72.00,0.00,42.00,0.35,1.58,0.26 +72.00,0.00,42.00,0.31,1.58,0.31 +26.30,0.00,0.00,0.71,1.65,0.30 +22.00,0.00,0.00,0.39,1.59,0.26 +18.40,0.00,0.00,0.71,1.74,0.36 +47.00,0.00,17.00,0.53,1.65,0.24 +40.00,0.00,10.00,0.89,1.64,0.18 +30.00,0.00,0.00,0.65,1.77,0.35 +83.00,0.00,53.00,0.65,1.73,0.24 +29.80,0.00,0.00,0.73,1.82,0.43 +2.40,0.00,0.00,0.33,1.56,0.26 +100.60,1.00,77.00,0.39,1.61,0.25 +45.00,0.00,15.00,0.64,1.50,0.15 +30.00,0.00,0.00,0.49,1.67,0.27 +2.50,0.00,0.00,1.08,1.75,0.21 +98.00,0.00,68.00,0.32,1.60,0.31 +50.00,0.00,20.00,0.57,1.53,0.19 +78.00,0.00,48.00,0.50,1.70,0.25 +41.70,1.00,19.00,0.64,1.60,0.28 +30.00,0.00,0.00,0.63,1.56,0.22 +97.40,1.00,68.00,0.32,1.60,0.31 +30.00,0.00,0.00,0.89,1.72,0.26 +21.30,0.00,0.00,0.56,1.55,0.17 +58.00,0.00,28.00,0.31,1.57,0.28 +23.90,0.00,0.00,0.59,1.58,0.22 +61.00,0.00,31.00,0.55,1.68,0.30 +61.00,0.00,31.00,0.51,1.66,0.28 +48.00,0.00,18.00,0.52,1.59,0.20 +60.00,0.00,30.00,0.45,1.73,0.26 +52.00,0.00,22.00,0.41,1.62,0.25 +16.60,1.00,12.00,0.57,1.68,0.29 +33.00,1.00,30.00,0.32,1.64,0.28 +61.00,0.00,31.00,0.49,1.65,0.24 +26.60,0.00,0.00,0.55,1.72,0.30 +16.90,0.00,0.00,0.64,1.58,0.22 +30.00,0.00,0.00,0.85,1.81,0.40 +65.00,0.00,35.00,1.03,1.77,0.21 +26.10,1.00,0.00,1.02,1.77,0.21 +53.00,0.00,23.00,0.39,1.55,0.24 +78.40,1.00,60.00,0.61,1.75,0.33 +61.00,0.00,31.00,0.58,1.53,0.19 +72.30,1.00,50.00,0.59,1.58,0.22 +30.00,0.00,0.00,0.41,1.59,0.24 +19.00,0.00,0.00,0.54,1.58,0.25 +36.00,0.00,6.00,0.40,1.58,0.27 +53.00,0.00,23.00,0.71,1.59,0.22 +50.00,0.00,20.00,0.77,1.67,0.29 +48.00,0.00,18.00,0.71,1.68,0.22 +92.00,0.00,62.00,0.41,1.70,0.27 +58.00,0.00,28.00,0.32,1.74,0.29 +71.00,0.00,41.00,0.36,1.60,0.25 +61.00,0.00,31.00,0.58,1.54,0.20 +69.00,0.00,39.00,0.48,1.69,0.29 +43.00,0.00,13.00,0.38,1.68,0.28 +66.00,0.00,36.00,0.54,1.69,0.23 +38.70,1.00,31.00,0.58,1.53,0.19 +43.70,1.00,20.00,0.65,1.51,0.18 +69.00,0.00,39.00,0.44,1.70,0.25 +21.20,0.00,0.00,0.40,1.84,0.40 +30.00,0.00,0.00,0.79,1.79,0.42 +82.00,0.00,52.00,0.47,1.67,0.25 +90.00,0.00,60.00,0.56,1.72,0.31 +68.00,0.00,38.00,0.32,1.60,0.31 +83.00,0.00,53.00,0.65,1.75,0.24 +50.00,0.00,20.00,0.56,1.60,0.22 +28.50,1.00,19.00,0.32,1.61,0.29 +40.10,1.00,37.00,0.61,1.75,0.24 +30.00,0.00,0.00,0.75,1.53,0.19 +61.00,0.00,31.00,0.32,1.58,0.31 +19.00,0.00,0.00,0.86,1.57,0.16 +40.80,1.00,35.00,1.08,1.76,0.23 +43.00,0.00,13.00,0.54,1.53,0.16 +30.00,0.00,0.00,0.36,1.64,0.29 +47.40,1.00,19.00,0.80,1.72,0.25 +30.00,0.00,0.00,0.36,1.64,0.31 +61.00,0.00,31.00,0.32,1.58,0.31 +83.00,0.00,53.00,0.38,1.67,0.28 +5.00,0.00,0.00,0.38,1.67,0.28 +58.00,0.00,28.00,0.46,1.70,0.26 +67.00,0.00,37.00,0.41,1.68,0.26 +74.00,0.00,44.00,0.33,1.60,0.28 +67.00,0.00,37.00,0.88,1.58,0.16 +64.00,0.00,34.00,0.39,1.68,0.28 +61.00,0.00,31.00,0.43,1.73,0.26 +72.40,1.00,60.00,0.58,1.69,0.28 +7.50,0.00,0.00,0.38,1.59,0.24 +72.00,0.00,42.00,0.48,1.83,0.40 +51.00,0.00,21.00,0.39,1.66,0.27 +5.40,0.00,0.00,0.59,1.70,0.27 +22.60,1.00,0.00,0.58,1.63,0.25 +30.00,0.00,0.00,0.37,1.64,0.29 +88.00,0.00,58.00,0.42,1.70,0.26 +41.00,0.00,11.00,0.58,1.68,0.32 +77.00,0.00,47.00,0.55,1.67,0.23 +30.00,0.00,0.00,0.82,1.67,0.25 +60.00,0.00,30.00,0.32,1.65,0.28 +82.60,1.00,68.00,0.40,1.56,0.25 +78.00,0.00,48.00,0.50,1.70,0.26 +22.30,0.00,0.00,0.51,1.57,0.21 +51.00,0.00,21.00,0.39,1.66,0.27 +17.00,0.00,0.00,0.80,1.80,0.40 +39.70,1.00,28.00,0.32,1.56,0.27 +101.00,0.00,71.00,0.40,1.61,0.24 +30.00,0.00,0.00,1.00,1.75,0.25 +30.00,0.00,0.00,0.79,1.79,0.39 +5.80,0.00,0.00,0.64,1.51,0.18 +69.00,0.00,39.00,0.43,1.71,0.26 +21.00,1.00,14.00,0.83,1.80,0.49 +45.00,0.00,15.00,0.51,1.66,0.24 +52.00,0.00,22.00,0.37,1.66,0.27 +101.00,0.00,71.00,0.50,1.63,0.26 +61.00,0.00,31.00,0.43,1.72,0.26 +92.00,0.00,62.00,0.44,1.73,0.27 +49.00,0.00,19.00,0.78,1.74,0.25 +16.90,1.00,13.00,0.80,1.57,0.16 +43.00,0.00,13.00,0.37,1.67,0.29 +10.00,0.00,0.00,0.61,1.70,0.23 +74.00,0.00,44.00,0.32,1.63,0.29 +42.00,0.00,12.00,0.57,1.68,0.27 +29.50,1.00,14.00,0.36,1.56,0.28 +30.00,0.00,0.00,0.71,1.54,0.20 +61.00,0.00,31.00,0.68,1.73,0.35 +22.80,1.00,0.00,1.05,1.86,0.55 +84.00,0.00,54.00,0.45,1.62,0.25 +2.50,0.00,0.00,0.79,1.54,0.18 +106.00,0.00,76.00,0.33,1.57,0.27 +91.00,0.00,61.00,0.35,1.68,0.32 +30.00,0.00,0.00,1.06,1.63,0.18 +30.00,0.00,0.00,0.90,1.73,0.20 +43.00,0.00,13.00,0.46,1.66,0.25 +41.90,1.00,35.00,0.35,1.64,0.31 +6.80,0.00,0.00,0.54,1.56,0.18 +61.00,0.00,31.00,0.65,1.72,0.34 +30.00,0.00,0.00,0.82,1.80,0.39 +30.00,0.00,0.00,0.38,1.67,0.28 +99.20,1.00,78.00,0.67,1.54,0.18 +61.00,0.00,31.00,0.70,1.53,0.19 +57.00,0.00,27.00,0.42,1.66,0.26 +0.50,0.00,0.00,0.97,1.84,0.53 +45.00,0.00,15.00,0.44,1.67,0.25 +12.80,1.00,9.00,0.62,1.58,0.22 +30.00,0.00,0.00,0.68,1.53,0.17 +19.60,0.00,0.00,0.52,1.59,0.20 +30.00,0.00,0.00,0.36,1.53,0.27 +62.00,0.00,32.00,0.52,1.57,0.25 +60.00,0.00,30.00,0.43,1.66,0.24 +30.00,0.00,0.00,0.63,1.63,0.24 +29.60,0.00,0.00,0.41,1.59,0.24 +60.00,0.00,30.00,0.44,1.73,0.28 +30.00,0.00,0.00,0.47,1.55,0.25 +54.00,0.00,24.00,0.32,1.59,0.32 +30.00,0.00,0.00,0.40,1.69,0.28 +30.00,0.00,0.00,0.33,1.59,0.31 +21.10,0.00,0.00,0.74,1.79,0.39 +60.40,1.00,36.00,0.94,1.66,0.19 +66.60,1.00,54.00,0.49,1.65,0.28 +90.00,0.00,60.00,0.41,1.59,0.24 +5.60,0.00,0.00,0.94,1.66,0.19 +59.00,0.00,29.00,0.41,1.68,0.27 +3.30,0.00,0.00,0.97,1.85,0.54 +72.00,0.00,42.00,0.50,1.77,0.38 +87.00,0.00,57.00,0.48,1.74,0.27 +98.00,0.00,68.00,0.53,1.81,0.29 +19.10,1.00,10.00,0.93,1.74,0.20 +43.00,0.00,13.00,0.65,1.59,0.22 +81.10,1.00,55.00,0.48,1.62,0.28 +33.00,1.00,21.00,0.73,1.77,0.25 +22.70,1.00,0.00,0.84,1.67,0.18 +44.00,0.00,14.00,0.76,1.95,0.25 +63.00,0.00,33.00,0.38,1.58,0.28 +30.00,0.00,0.00,0.73,1.70,0.23 +100.20,1.00,71.00,0.52,1.81,0.29 +30.00,0.00,0.00,0.70,1.50,0.17 +15.50,0.00,0.00,0.59,1.57,0.22 +59.70,1.00,35.00,0.55,1.67,0.32 +57.00,0.00,27.00,0.43,1.67,0.26 +99.90,1.00,76.00,0.52,1.70,0.28 +83.00,0.00,53.00,0.69,1.75,0.25 +108.00,0.00,78.00,0.70,1.55,0.17 +4.50,0.00,0.00,0.32,1.58,0.31 +50.60,1.00,23.00,0.55,1.73,0.32 +49.00,0.00,19.00,0.33,1.72,0.28 +72.00,0.00,42.00,0.50,1.82,0.28 +63.00,0.00,33.00,0.60,1.57,0.23 +38.90,1.00,28.00,0.40,1.56,0.28 +71.00,0.00,41.00,0.40,1.61,0.26 +56.00,0.00,26.00,0.53,1.66,0.23 +9.10,0.00,0.00,0.34,1.62,0.30 +30.00,0.00,0.00,0.82,1.63,0.19 +30.00,0.00,0.00,0.44,1.69,0.28 +39.00,0.00,9.00,0.41,1.87,0.41 +45.00,0.00,15.00,0.41,1.68,0.26 +82.50,1.00,62.00,0.31,1.57,0.30 +63.60,1.00,55.00,0.48,1.61,0.28 +38.00,0.00,8.00,0.53,1.54,0.18 +30.00,0.00,0.00,0.72,1.71,0.23 +83.00,0.00,53.00,0.46,1.72,0.27 +44.00,0.00,14.00,0.52,1.59,0.20 +53.00,0.00,23.00,0.47,1.71,0.33 +69.00,0.00,39.00,0.44,1.58,0.25 +70.00,0.00,40.00,0.51,1.70,0.24 +44.00,0.00,14.00,0.44,1.72,0.27 +30.00,0.00,0.00,0.33,1.59,0.31 +98.00,0.00,68.00,0.36,1.63,0.28 +58.20,1.00,31.00,0.43,1.72,0.26 +60.40,1.00,55.00,0.49,1.64,0.28 +23.50,1.00,22.00,0.67,1.54,0.21 +52.50,1.00,47.00,0.55,1.63,0.24 +71.30,1.00,68.00,0.42,1.57,0.25 +30.00,0.00,0.00,0.80,1.80,0.39 +83.00,0.00,53.00,0.51,1.57,0.20 +48.20,1.00,40.00,1.19,1.74,0.24 +48.00,0.00,18.00,0.72,1.52,0.18 +30.00,0.00,0.00,0.59,1.61,0.25 +68.00,0.00,38.00,0.72,1.61,0.27 +87.00,0.00,57.00,0.36,1.58,0.26 +66.00,0.00,36.00,0.32,1.59,0.28 +3.90,0.00,0.00,0.91,1.60,0.17 +47.00,0.00,17.00,0.38,1.67,0.29 +71.30,1.00,43.00,0.71,1.54,0.20 +74.00,0.00,44.00,0.33,1.59,0.31 +33.40,1.00,7.00,0.69,1.54,0.17 +30.00,0.00,0.00,0.60,1.77,0.25 +56.00,0.00,26.00,0.36,1.69,0.32 +61.00,0.00,31.00,0.34,1.60,0.26 +67.10,1.00,60.00,0.60,1.74,0.32 +26.40,0.00,0.00,0.82,1.55,0.18 +43.80,1.00,31.00,0.63,1.70,0.33 +57.00,0.00,27.00,0.42,1.67,0.26 +97.30,1.00,74.00,0.30,1.57,0.29 +40.00,0.00,10.00,0.70,1.55,0.17 +76.00,0.00,46.00,0.68,1.69,0.23 +30.00,0.00,0.00,0.73,1.52,0.16 +87.10,1.00,76.00,0.34,1.55,0.26 +83.00,0.00,53.00,0.59,1.67,0.23 +43.00,0.00,13.00,0.47,1.67,0.26 +57.30,1.00,33.00,0.59,1.57,0.22 +56.40,1.00,53.00,0.51,1.58,0.20 +64.00,0.00,34.00,0.36,1.63,0.30 +90.00,0.00,60.00,0.46,1.65,0.26 +19.60,0.00,0.00,0.45,1.66,0.25 +49.00,0.00,19.00,0.84,1.56,0.18 +74.00,0.00,44.00,0.34,1.64,0.28 +3.20,0.00,0.00,0.72,1.62,0.29 +30.00,0.00,0.00,0.63,1.67,0.23 +91.00,0.00,61.00,0.38,1.68,0.28 +91.00,0.00,61.00,0.37,1.66,0.28 +81.00,0.00,51.00,0.32,1.61,0.29 +69.50,1.00,56.00,0.36,1.67,0.31 +43.00,0.00,13.00,0.68,1.74,0.41 +44.00,0.00,14.00,0.68,1.59,0.24 +81.40,1.00,59.00,0.58,1.57,0.26 +71.00,0.00,41.00,0.66,1.68,0.23 +101.00,0.00,71.00,0.41,1.65,0.25 +8.30,0.00,0.00,0.93,1.69,0.25 +49.00,0.00,19.00,0.70,1.52,0.19 +30.00,0.00,0.00,0.66,1.65,0.24 +44.00,0.00,14.00,0.42,1.70,0.26 +62.00,0.00,32.00,0.33,1.59,0.31 +60.00,0.00,30.00,0.32,1.72,0.29 +92.00,0.00,62.00,0.43,1.73,0.27 +59.00,0.00,29.00,0.49,1.62,0.22 +11.80,0.00,0.00,0.39,1.61,0.24 +31.70,1.00,10.00,0.74,1.79,0.45 +61.00,0.00,31.00,0.43,1.72,0.26 +75.00,0.00,45.00,0.57,1.65,0.25 +83.00,0.00,53.00,0.52,1.57,0.20 +3.80,0.00,0.00,0.44,1.71,0.26 +31.00,0.00,1.00,0.33,1.56,0.26 +2.10,0.00,0.00,0.90,1.83,0.51 +42.00,0.00,12.00,0.58,1.69,0.27 +58.00,0.00,28.00,0.66,1.74,0.34 +30.00,0.00,0.00,0.55,1.83,0.28 +71.00,0.00,41.00,0.38,1.59,0.26 +87.00,0.00,57.00,0.36,1.57,0.25 +59.00,0.00,29.00,0.59,1.77,0.26 +44.00,0.00,14.00,0.44,1.71,0.26 +69.00,0.00,39.00,0.44,1.58,0.25 +106.00,0.00,76.00,0.34,1.55,0.26 +30.00,0.00,0.00,1.01,1.76,0.31 +74.00,0.00,44.00,0.36,1.69,0.33 +12.00,0.00,0.00,0.78,1.58,0.15 +84.00,0.00,54.00,0.49,1.65,0.28 +52.00,0.00,22.00,0.37,1.65,0.27 +62.00,0.00,32.00,0.35,1.65,0.32 +108.00,0.00,78.00,0.56,1.64,0.25 +81.00,0.00,51.00,0.47,1.64,0.26 +45.00,0.00,15.00,0.61,1.55,0.21 +18.00,1.00,0.00,1.49,1.73,0.27 +33.20,1.00,33.00,0.80,1.55,0.20 +81.00,0.00,51.00,0.32,1.63,0.31 +30.00,0.00,0.00,0.84,1.71,0.23 +79.00,0.00,49.00,0.54,1.66,0.31 +57.00,1.00,37.00,0.61,1.70,0.23 +30.00,0.00,0.00,0.82,1.61,0.17 +44.00,0.00,14.00,0.48,1.56,0.27 +0.80,0.00,0.00,0.90,1.67,0.26 +63.00,0.00,33.00,0.55,1.71,0.25 +42.00,0.00,12.00,0.33,1.59,0.27 +41.80,1.00,38.00,0.76,1.64,0.28 +30.00,0.00,0.00,0.32,1.59,0.31 +82.00,0.00,52.00,0.50,1.61,0.27 +39.00,0.00,9.00,0.36,1.54,0.28 +44.00,0.00,14.00,0.55,1.67,0.24 +59.00,0.00,29.00,0.59,1.74,0.24 +72.00,0.00,42.00,0.42,1.86,0.40 +63.00,0.00,33.00,0.32,1.60,0.28 +49.00,1.00,42.00,0.70,1.81,0.40 +25.90,1.00,0.00,0.91,1.83,0.42 +56.30,1.00,53.00,0.52,1.57,0.20 +47.00,0.00,17.00,0.48,1.67,0.24 +20.50,0.00,0.00,0.67,1.72,0.35 +11.20,0.00,0.00,0.76,1.63,0.29 +45.00,0.00,15.00,0.63,1.49,0.15 +9.40,0.00,0.00,0.83,1.71,0.23 +69.00,0.00,39.00,1.01,1.78,0.25 +13.80,0.00,0.00,0.49,1.64,0.28 +30.00,0.00,0.00,0.43,1.72,0.26 +76.10,1.00,55.00,0.40,1.57,0.28 +74.00,0.00,44.00,0.38,1.68,0.29 +70.00,0.00,40.00,0.49,1.68,0.24 +61.00,0.00,31.00,0.33,1.59,0.31 +26.50,0.00,0.00,0.41,1.70,0.27 +101.00,0.00,71.00,0.37,1.57,0.28 +0.30,0.00,0.00,0.57,1.73,0.31 +15.60,0.00,0.00,0.40,1.67,0.26 +51.20,1.00,29.00,0.58,1.67,0.27 +90.00,0.00,60.00,0.57,1.68,0.29 +33.00,0.00,3.00,0.62,1.58,0.22 +88.00,0.00,58.00,0.57,1.75,0.25 +2.30,0.00,0.00,0.49,1.68,0.25 +101.00,0.00,71.00,0.37,1.56,0.24 +48.00,0.00,18.00,0.44,1.61,0.25 +80.00,0.00,50.00,0.60,1.68,0.23 +106.00,0.00,76.00,0.33,1.56,0.27 +51.00,0.00,21.00,0.85,1.57,0.18 +47.00,0.00,17.00,0.40,1.57,0.28 +90.00,0.00,60.00,0.62,1.76,0.33 +43.00,0.00,13.00,0.86,1.76,0.24 +40.00,1.00,35.00,0.35,1.66,0.28 +44.00,0.00,14.00,0.51,1.60,0.21 +15.40,1.00,0.00,0.93,1.70,0.24 +61.00,0.00,31.00,0.32,1.58,0.31 +14.30,0.00,0.00,0.63,1.68,0.23 +16.70,0.00,0.00,0.70,1.69,0.22 +60.00,0.00,30.00,0.45,1.74,0.26 +59.00,0.00,29.00,0.41,1.68,0.26 +8.70,0.00,0.00,0.34,1.59,0.29 +59.00,0.00,29.00,0.41,1.68,0.26 +72.00,0.00,42.00,0.37,1.66,0.28 +30.00,0.00,0.00,1.03,1.76,0.21 +27.20,1.00,12.00,0.61,1.71,0.36 +41.00,0.00,11.00,0.47,1.60,0.26 +67.00,0.00,37.00,0.44,1.71,0.28 +61.00,0.00,31.00,0.53,1.67,0.29 +81.60,1.00,60.00,0.51,1.70,0.28 +90.00,0.00,60.00,0.58,1.69,0.27 +67.50,1.00,60.00,0.58,1.69,0.27 +31.00,0.00,1.00,0.61,1.60,0.26 +44.00,0.00,14.00,0.85,1.69,0.19 +56.00,0.00,26.00,0.45,1.62,0.25 +30.00,0.00,0.00,0.75,1.80,0.40 +88.00,0.00,58.00,0.53,1.80,0.29 +51.00,0.00,21.00,0.59,1.58,0.23 +87.00,0.00,57.00,0.60,1.62,0.25 +59.30,1.00,46.00,0.70,1.69,0.22 +78.00,0.00,48.00,0.52,1.79,0.29 +88.30,1.00,71.00,0.40,1.61,0.24 +72.00,0.00,42.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.32,1.56,0.27 +49.00,0.00,19.00,0.71,1.52,0.18 +19.40,1.00,0.00,0.82,1.62,0.18 +76.20,1.00,76.00,0.53,1.70,0.29 +5.80,0.00,0.00,0.34,1.47,0.26 +30.00,0.00,0.00,0.74,1.78,0.38 +65.00,0.00,35.00,0.54,1.66,0.31 +45.00,0.00,15.00,0.45,1.73,0.27 +9.40,1.00,0.00,0.89,1.82,0.51 +14.10,0.00,0.00,0.50,1.69,0.25 +30.00,0.00,0.00,0.54,1.55,0.18 +28.20,1.00,18.00,0.39,1.57,0.23 +30.00,0.00,0.00,0.59,1.75,0.33 +28.80,0.00,0.00,0.98,1.85,0.54 +70.00,0.00,40.00,0.40,1.60,0.24 +16.00,1.00,0.00,1.28,1.77,0.26 +101.00,0.00,71.00,0.39,1.61,0.24 +36.00,0.00,6.00,0.41,1.69,0.26 +44.00,0.00,14.00,0.44,1.70,0.25 +71.00,0.00,41.00,0.69,1.68,0.23 +59.40,1.00,53.00,0.83,1.69,0.22 +34.00,0.00,4.00,0.36,1.66,0.32 +47.00,0.00,17.00,0.74,1.52,0.17 +29.20,1.00,20.00,0.97,1.84,0.53 +44.00,0.00,14.00,0.62,1.80,0.24 +30.00,0.00,0.00,0.63,1.67,0.23 +30.00,0.00,0.00,0.76,1.55,0.16 +3.90,0.00,0.00,0.56,1.62,0.25 +30.00,0.00,0.00,0.72,1.53,0.16 +98.00,0.00,68.00,0.36,1.63,0.28 +86.00,0.00,56.00,0.60,1.70,0.23 +38.00,0.00,8.00,0.53,1.54,0.17 +11.90,0.00,0.00,0.33,1.47,0.26 +47.00,0.00,17.00,0.54,1.67,0.24 +70.00,0.00,40.00,0.39,1.59,0.24 +41.10,1.00,26.00,0.77,1.58,0.15 +50.40,1.00,28.00,0.68,1.74,0.35 +101.00,0.00,71.00,0.39,1.61,0.24 +30.00,0.00,0.00,0.56,1.57,0.20 +6.00,0.00,0.00,0.40,1.67,0.27 +45.00,0.00,15.00,0.73,1.68,0.23 +20.50,0.00,0.00,0.32,1.61,0.29 +76.00,0.00,46.00,0.33,1.56,0.27 +101.00,0.00,71.00,0.35,1.50,0.27 +49.00,0.00,19.00,0.33,1.67,0.27 +4.10,0.00,0.00,0.43,1.57,0.25 +90.00,0.00,60.00,0.40,1.65,0.26 +9.30,0.00,0.00,0.78,1.74,0.25 +53.00,0.00,23.00,0.40,1.69,0.27 +30.00,0.00,0.00,0.84,1.65,0.18 +48.00,0.00,18.00,0.45,1.64,0.25 +30.00,0.00,0.00,0.32,1.55,0.27 +61.00,0.00,31.00,0.69,1.53,0.19 +98.00,0.00,68.00,0.39,1.64,0.26 +20.50,1.00,0.00,0.99,1.85,0.54 +71.00,0.00,41.00,0.83,1.67,0.25 +7.50,0.00,0.00,0.41,1.56,0.25 +0.70,0.00,0.00,0.40,1.57,0.24 +98.00,0.00,68.00,0.52,1.82,0.29 +64.00,0.00,34.00,0.38,1.66,0.30 +52.00,0.00,22.00,0.42,1.66,0.26 +63.00,0.00,33.00,0.49,1.69,0.25 +59.00,0.00,29.00,0.49,1.62,0.23 +74.00,0.00,44.00,0.36,1.64,0.31 +30.00,0.00,0.00,0.78,1.57,0.16 +61.00,0.00,31.00,0.35,1.66,0.32 +108.00,0.00,78.00,0.45,1.65,0.26 +30.00,0.00,0.00,0.95,1.63,0.18 +7.10,1.00,0.00,0.75,1.80,0.40 +30.30,1.00,21.00,0.41,1.68,0.26 +41.60,1.00,26.00,0.77,1.58,0.15 +53.00,0.00,23.00,0.38,1.65,0.26 +41.40,1.00,37.00,1.09,1.62,0.19 +97.00,0.00,67.00,0.59,1.70,0.27 +30.00,0.00,0.00,0.75,1.80,0.40 +61.00,0.00,31.00,0.61,1.55,0.21 +4.70,0.00,0.00,0.58,1.69,0.34 +5.00,0.00,0.00,0.52,1.57,0.25 +80.70,1.00,63.00,0.58,1.72,0.24 +82.00,0.00,52.00,0.47,1.61,0.25 +17.00,0.00,0.00,0.60,1.58,0.26 +73.00,0.00,43.00,0.39,1.66,0.27 +74.00,0.00,44.00,0.56,1.60,0.22 +29.40,0.00,0.00,0.39,1.59,0.26 +14.80,0.00,0.00,0.67,1.52,0.18 +86.00,0.00,56.00,0.36,1.67,0.31 +7.30,0.00,0.00,0.33,1.61,0.28 +94.00,0.00,64.00,0.48,1.76,0.28 +30.00,0.00,0.00,0.55,1.58,0.19 +20.00,0.00,0.00,0.66,1.80,0.38 +32.60,1.00,22.00,0.62,1.56,0.22 +44.00,0.00,14.00,0.42,1.70,0.25 +59.00,0.00,29.00,0.63,1.71,0.30 +53.00,0.00,23.00,0.41,1.59,0.24 +13.30,0.00,0.00,0.67,1.52,0.18 +15.90,0.00,0.00,0.39,1.69,0.28 +56.00,0.00,26.00,0.58,1.78,0.35 +30.00,0.00,0.00,0.87,1.70,0.19 +31.70,1.00,22.00,0.75,1.62,0.22 +74.00,0.00,44.00,0.37,1.66,0.28 +57.00,0.00,27.00,0.45,1.70,0.26 +89.00,0.00,59.00,0.61,1.58,0.27 +26.00,0.00,0.00,0.35,1.73,0.34 +64.00,0.00,34.00,0.37,1.64,0.30 +30.00,0.00,0.00,0.53,1.56,0.18 +52.00,0.00,22.00,0.43,1.60,0.24 +101.00,0.00,71.00,0.38,1.59,0.24 +43.00,0.00,13.00,0.39,1.68,0.28 +49.00,0.00,19.00,0.51,1.89,0.45 +29.10,0.00,0.00,1.08,1.62,0.19 +2.70,0.00,0.00,1.12,1.86,0.49 +22.30,0.00,0.00,0.56,1.70,0.23 +41.20,1.00,39.00,1.05,1.78,0.27 +92.00,0.00,62.00,0.43,1.73,0.27 +30.00,0.00,0.00,0.55,1.58,0.26 +30.00,0.00,0.00,0.37,1.65,0.29 +37.00,0.00,7.00,0.55,1.54,0.19 +99.00,0.00,69.00,0.60,1.50,0.17 +30.00,0.00,0.00,0.73,1.78,0.38 +19.60,0.00,0.00,0.84,1.57,0.18 +30.00,0.00,0.00,0.39,1.66,0.27 +66.00,0.00,36.00,0.44,1.68,0.31 +30.00,0.00,0.00,0.53,1.56,0.18 +56.00,0.00,26.00,0.36,1.69,0.32 +72.00,0.00,42.00,0.49,1.83,0.40 +70.00,0.00,40.00,0.40,1.60,0.24 +37.00,0.00,7.00,0.75,1.67,0.28 +27.20,0.00,0.00,0.42,1.68,0.26 +4.90,0.00,0.00,0.32,1.60,0.30 +69.00,0.00,39.00,0.60,1.56,0.20 +44.00,0.00,14.00,0.55,1.67,0.24 +58.00,0.00,28.00,0.34,1.56,0.26 +73.00,0.00,43.00,0.44,1.72,0.26 +3.10,0.00,0.00,0.53,1.70,0.23 +87.00,0.00,57.00,0.38,1.56,0.24 +30.00,0.00,0.00,0.32,1.61,0.28 +91.00,0.00,61.00,0.35,1.68,0.32 +44.00,0.00,14.00,0.44,1.71,0.26 +18.10,1.00,0.00,0.61,1.69,0.23 +63.00,0.00,33.00,0.57,1.61,0.23 +45.00,0.00,15.00,0.42,1.72,0.27 +14.30,0.00,0.00,0.82,1.64,0.18 +54.40,1.00,28.00,0.35,1.60,0.27 +75.20,1.00,60.00,0.40,1.65,0.26 +67.00,0.00,37.00,0.89,1.58,0.16 +22.00,1.00,21.00,0.88,1.58,0.18 +4.30,0.00,0.00,0.46,1.56,0.25 +66.00,0.00,36.00,0.46,1.70,0.27 +71.00,0.00,41.00,0.35,1.60,0.27 +92.00,0.00,62.00,0.36,1.63,0.30 +45.00,0.00,15.00,0.43,1.67,0.24 +69.00,0.00,39.00,0.44,1.71,0.28 +30.00,0.00,0.00,0.42,1.67,0.25 +42.00,0.00,12.00,0.50,1.74,0.27 +71.00,0.00,41.00,0.59,1.50,0.16 +39.00,0.00,9.00,0.44,1.91,0.42 +4.00,0.00,0.00,0.95,1.75,0.23 +23.60,0.00,0.00,0.77,1.53,0.18 +47.00,0.00,17.00,0.63,1.53,0.16 +37.00,0.00,7.00,0.54,1.54,0.19 +42.00,0.00,12.00,0.60,1.70,0.36 +30.00,0.00,0.00,0.75,1.56,0.15 +45.00,0.00,15.00,0.43,1.61,0.25 +50.00,0.00,20.00,0.60,1.86,0.26 +35.00,0.00,5.00,0.47,1.69,0.26 +7.50,0.00,0.00,0.64,1.89,0.25 +50.00,0.00,20.00,0.40,1.58,0.24 +106.00,0.00,76.00,0.34,1.55,0.26 +61.00,0.00,31.00,0.71,1.51,0.18 +48.00,0.00,18.00,0.56,1.51,0.17 +41.70,1.00,39.00,0.59,1.57,0.20 +101.00,0.00,71.00,0.64,1.56,0.21 +30.00,0.00,0.00,0.63,1.77,0.35 +66.00,0.00,36.00,0.49,1.68,0.24 +42.90,1.00,42.00,0.45,1.82,0.39 +48.00,0.00,18.00,0.35,1.64,0.32 +30.00,0.00,0.00,0.53,1.55,0.18 +85.00,0.00,55.00,0.40,1.58,0.27 +64.00,0.00,34.00,0.39,1.67,0.29 +47.00,0.00,17.00,0.33,1.53,0.28 +45.00,0.00,15.00,0.41,1.61,0.25 +38.00,0.00,8.00,0.53,1.54,0.17 +90.00,0.00,60.00,0.40,1.66,0.26 +1.40,0.00,0.00,0.53,1.70,0.29 +45.00,0.00,15.00,0.62,1.53,0.16 +13.50,0.00,0.00,0.59,1.70,0.26 +90.00,0.00,60.00,0.38,1.56,0.23 +97.00,0.00,67.00,0.45,1.68,0.27 +74.00,0.00,44.00,0.32,1.64,0.29 +56.00,1.00,53.00,0.77,1.63,0.29 +60.00,1.00,33.00,0.62,1.60,0.23 +66.00,0.00,36.00,0.45,1.67,0.26 +80.00,0.00,50.00,0.37,1.65,0.29 +20.10,1.00,0.00,0.73,1.54,0.20 +30.00,0.00,0.00,0.78,1.54,0.19 +90.00,0.00,60.00,0.38,1.60,0.25 +66.00,0.00,36.00,0.42,1.87,0.40 +42.00,0.00,12.00,0.51,1.83,0.43 +50.00,0.00,20.00,0.53,1.57,0.20 +90.00,0.00,60.00,0.40,1.65,0.26 +30.00,0.00,0.00,0.36,1.67,0.32 +67.40,1.00,67.00,0.58,1.53,0.19 +35.60,1.00,11.00,0.45,1.75,0.28 +51.00,0.00,21.00,0.47,1.69,0.26 +30.00,0.00,0.00,0.66,1.52,0.18 +49.00,0.00,19.00,0.71,1.52,0.18 +69.00,0.00,39.00,0.45,1.66,0.28 +91.60,1.00,62.00,0.67,1.71,0.24 +69.00,0.00,39.00,0.34,1.55,0.27 +30.00,0.00,0.00,0.89,1.72,0.24 +62.00,0.00,32.00,0.33,1.60,0.32 +58.00,0.00,28.00,0.42,1.56,0.27 +43.00,0.00,13.00,0.87,1.76,0.24 +101.00,0.00,71.00,0.53,1.83,0.29 +74.00,0.00,44.00,0.34,1.60,0.31 +30.00,0.00,0.00,0.60,1.73,0.24 +17.90,0.00,0.00,0.77,1.66,0.28 +52.00,0.00,22.00,0.44,1.71,0.26 +42.00,0.00,12.00,0.33,1.60,0.27 +83.00,1.00,60.00,0.45,1.63,0.26 +30.00,0.00,0.00,0.38,1.57,0.24 +21.10,1.00,0.00,0.87,1.67,0.25 +101.00,0.00,71.00,0.39,1.61,0.24 +52.00,0.00,22.00,0.42,1.60,0.25 +30.00,0.00,0.00,0.42,1.85,0.40 +30.00,0.00,0.00,0.37,1.54,0.28 +42.00,0.00,12.00,0.59,1.69,0.27 +68.00,0.00,38.00,0.45,1.64,0.25 +7.30,0.00,0.00,0.59,1.58,0.21 +45.00,0.00,15.00,0.43,1.61,0.25 +28.40,1.00,14.00,0.53,1.63,0.22 +63.00,0.00,33.00,0.33,1.62,0.28 +44.10,1.00,36.00,0.42,1.85,0.40 +39.70,1.00,20.00,0.68,1.50,0.17 +43.00,0.00,13.00,0.43,1.70,0.26 +63.00,0.00,33.00,0.31,1.59,0.29 +98.00,0.00,68.00,0.42,1.57,0.25 +67.00,0.00,37.00,0.44,1.69,0.28 +3.20,0.00,0.00,0.61,1.55,0.21 +11.50,0.00,0.00,0.53,1.56,0.18 +48.00,0.00,18.00,0.54,1.53,0.17 +55.00,0.00,25.00,0.41,1.51,0.27 +3.00,1.00,0.00,0.86,1.81,0.49 +45.00,0.00,15.00,0.60,1.68,0.24 +98.00,0.00,68.00,0.36,1.63,0.28 +13.30,1.00,0.00,0.70,1.53,0.20 +61.00,0.00,31.00,0.35,1.62,0.31 +48.00,0.00,18.00,0.54,1.53,0.17 +72.00,0.00,42.00,0.35,1.59,0.25 +40.00,0.00,10.00,0.43,1.87,0.45 +41.00,0.00,11.00,0.57,1.67,0.29 +50.00,0.00,20.00,0.49,1.63,0.22 +87.00,0.00,57.00,0.45,1.69,0.27 +69.00,0.00,39.00,0.53,1.57,0.18 +30.00,0.00,0.00,0.87,1.82,0.50 +47.00,0.00,17.00,0.41,1.56,0.27 +108.00,0.00,78.00,0.38,1.59,0.24 +30.00,0.00,0.00,0.34,1.60,0.31 +20.50,1.00,0.00,0.55,1.83,0.28 +30.00,0.00,0.00,0.65,1.66,0.23 +47.00,0.00,17.00,0.67,1.52,0.19 +79.00,0.00,49.00,0.62,1.58,0.22 +53.00,0.00,23.00,0.31,1.57,0.31 +37.80,1.00,10.00,0.82,1.61,0.18 +74.00,0.00,44.00,0.54,1.83,0.29 +20.40,0.00,0.00,0.61,1.55,0.21 +51.00,0.00,21.00,0.43,1.73,0.27 +89.00,0.00,59.00,0.40,1.83,0.39 +72.00,0.00,42.00,0.53,1.75,0.26 +24.20,1.00,10.00,0.80,1.83,0.55 +30.00,0.00,0.00,0.40,1.61,0.24 +45.00,0.00,15.00,0.52,1.67,0.24 +83.00,0.00,53.00,0.38,1.67,0.28 +30.00,0.00,0.00,0.81,1.79,0.41 +72.00,0.00,42.00,0.39,1.68,0.28 +81.00,0.00,51.00,0.34,1.58,0.27 +51.00,0.00,21.00,0.71,1.73,0.25 +18.90,0.00,0.00,0.70,1.55,0.16 +28.40,1.00,0.00,0.84,1.56,0.18 +22.20,0.00,0.00,0.43,1.69,0.26 +84.10,1.00,69.00,0.57,1.51,0.17 +30.00,0.00,0.00,0.32,1.59,0.32 +52.00,0.00,22.00,0.42,1.66,0.25 +63.90,1.00,60.00,0.58,1.69,0.27 +38.00,0.00,8.00,0.51,1.57,0.20 +44.00,0.00,14.00,0.63,1.67,0.29 +43.00,0.00,13.00,0.33,1.63,0.29 +30.00,0.00,0.00,0.70,1.51,0.17 +30.00,0.00,0.00,0.58,1.63,0.25 +20.90,0.00,0.00,0.70,1.92,0.26 +61.00,0.00,31.00,0.58,1.53,0.19 +86.00,0.00,56.00,0.54,1.71,0.25 +73.00,0.00,43.00,0.62,1.68,0.23 +60.00,0.00,30.00,0.44,1.72,0.25 +30.00,0.00,0.00,0.37,1.54,0.28 +52.00,0.00,22.00,0.42,1.67,0.25 +72.00,0.00,42.00,0.43,1.71,0.27 +25.80,0.00,0.00,0.32,1.72,0.28 +4.80,0.00,0.00,0.32,1.60,0.31 +72.00,0.00,42.00,0.36,1.61,0.26 +0.20,0.00,0.00,0.67,1.52,0.19 +52.00,0.00,22.00,0.42,1.67,0.25 +91.40,1.00,68.00,0.41,1.68,0.26 +30.00,0.00,0.00,0.81,1.80,0.40 +81.00,0.00,51.00,0.32,1.62,0.30 +106.00,0.00,76.00,0.46,1.64,0.26 +22.00,1.00,15.00,0.73,1.66,0.31 +69.00,0.00,39.00,0.33,1.58,0.27 +69.00,0.00,39.00,0.62,1.59,0.27 +43.00,0.00,13.00,0.53,1.53,0.17 +63.00,0.00,33.00,0.32,1.68,0.29 +26.20,0.00,0.00,0.76,1.64,0.28 +16.40,1.00,0.00,0.69,1.66,0.33 +67.60,1.00,39.00,0.65,1.53,0.19 +44.00,0.00,14.00,0.41,1.51,0.26 +60.00,0.00,30.00,0.37,1.67,0.30 +86.00,0.00,56.00,0.45,1.72,0.26 +30.00,0.00,0.00,1.01,1.76,0.25 +14.70,0.00,0.00,0.35,1.65,0.32 +1.10,0.00,0.00,0.57,1.79,0.26 +92.00,0.00,62.00,0.38,1.67,0.29 +81.00,0.00,51.00,0.32,1.62,0.30 +30.00,0.00,0.00,0.60,1.72,0.23 +58.00,0.00,28.00,0.32,1.61,0.29 +28.70,1.00,0.00,1.18,1.74,0.24 +80.00,0.00,50.00,0.38,1.66,0.28 +64.40,1.00,52.00,0.50,1.65,0.29 +73.00,0.00,43.00,0.45,1.74,0.28 +31.80,1.00,24.00,0.69,1.93,0.25 +30.00,0.00,0.00,0.91,1.74,0.21 +104.00,0.00,74.00,0.31,1.58,0.29 +28.50,1.00,0.00,0.95,1.74,0.29 +72.00,0.00,42.00,0.71,1.82,0.40 +78.80,1.00,71.00,0.43,1.69,0.26 +30.00,0.00,0.00,0.61,1.67,0.24 +44.00,0.00,14.00,0.62,1.59,0.22 +46.10,1.00,42.00,0.73,1.83,0.43 +47.00,0.00,17.00,0.53,1.66,0.24 +9.10,0.00,0.00,0.93,1.72,0.25 +43.00,0.00,13.00,0.37,1.67,0.29 +41.00,0.00,11.00,0.76,1.58,0.17 +18.20,0.00,0.00,0.69,1.51,0.15 +64.00,0.00,34.00,0.39,1.67,0.29 +87.00,0.00,57.00,0.50,1.75,0.28 +74.00,0.00,44.00,0.38,1.67,0.29 +30.00,0.00,0.00,0.96,1.82,0.45 +60.90,1.00,32.00,0.69,1.57,0.23 +30.00,0.00,0.00,0.71,1.57,0.19 +66.00,0.00,36.00,0.97,1.67,0.20 +78.00,0.00,48.00,0.52,1.79,0.29 +50.00,0.00,20.00,0.42,1.71,0.27 +69.00,0.00,39.00,0.57,1.57,0.26 +72.00,0.00,42.00,0.36,1.65,0.29 +22.60,0.00,0.00,0.71,1.78,0.38 +60.00,0.00,30.00,0.32,1.69,0.28 +5.30,0.00,0.00,0.93,1.81,0.45 +43.00,0.00,13.00,0.46,1.66,0.25 +7.70,0.00,0.00,0.50,1.62,0.26 +53.00,0.00,23.00,0.46,1.69,0.26 +44.00,0.00,14.00,0.45,1.70,0.25 +43.00,0.00,13.00,0.47,1.67,0.25 +78.00,0.00,48.00,0.49,1.77,0.28 +13.80,0.00,0.00,0.61,1.70,0.37 +8.90,0.00,0.00,0.32,1.61,0.28 +43.00,0.00,13.00,0.47,1.67,0.25 +77.70,1.00,61.00,0.37,1.66,0.28 +74.00,0.00,44.00,0.39,1.77,0.37 +49.00,0.00,19.00,0.74,1.73,0.25 +21.00,0.00,0.00,0.39,1.58,0.26 +29.40,0.00,0.00,0.80,1.54,0.18 +17.20,1.00,0.00,0.68,1.61,0.27 +71.00,0.00,41.00,0.42,1.87,0.40 +64.10,1.00,35.00,0.31,1.59,0.29 +47.50,1.00,18.00,0.87,1.67,0.24 +57.00,0.00,27.00,0.42,1.68,0.26 +66.00,0.00,36.00,0.50,1.69,0.24 +69.00,0.00,39.00,0.44,1.70,0.25 +47.00,0.00,17.00,0.66,1.56,0.21 +30.00,0.00,0.00,0.76,1.64,0.24 +43.00,0.00,13.00,0.47,1.67,0.26 +30.00,0.00,0.00,0.56,1.57,0.18 +19.80,0.00,0.00,0.99,1.61,0.17 +69.00,0.00,39.00,0.61,1.55,0.21 +90.00,0.00,60.00,0.58,1.69,0.27 +18.60,0.00,0.00,0.39,1.64,0.25 +17.60,0.00,0.00,0.62,1.49,0.15 +30.00,0.00,0.00,0.68,1.64,0.24 +30.00,0.00,0.00,0.34,1.50,0.27 +12.40,0.00,0.00,0.84,1.78,0.39 +59.00,0.00,29.00,0.41,1.67,0.26 +13.20,0.00,0.00,0.82,1.57,0.17 +34.00,0.00,4.00,0.33,1.74,0.28 +16.20,0.00,0.00,0.81,1.67,0.24 +30.00,0.00,0.00,0.32,1.60,0.31 +30.00,0.00,0.00,0.59,1.69,0.35 +92.80,1.00,76.00,0.33,1.56,0.27 +74.00,0.00,44.00,0.35,1.64,0.28 +62.30,1.00,33.00,0.43,1.70,0.27 +63.00,0.00,33.00,0.62,1.68,0.23 +1.80,0.00,0.00,0.66,1.52,0.19 +47.00,0.00,17.00,0.42,1.56,0.28 +22.20,1.00,20.00,1.34,1.96,0.60 +29.80,0.00,0.00,0.63,1.58,0.21 +49.00,0.00,19.00,0.43,1.73,0.26 +19.10,1.00,0.00,0.66,1.53,0.16 +24.50,1.00,23.00,0.41,1.59,0.24 +30.00,0.00,0.00,0.32,1.73,0.28 +40.70,1.00,32.00,0.32,1.59,0.31 +24.70,0.00,0.00,0.99,1.61,0.17 +49.00,0.00,19.00,0.65,1.60,0.28 +44.00,0.00,14.00,0.47,1.76,0.27 +65.00,0.00,35.00,0.82,1.60,0.16 +30.00,0.00,0.00,0.32,1.54,0.27 +47.90,1.00,30.00,0.44,1.73,0.26 +87.00,0.00,57.00,0.38,1.57,0.24 +30.00,0.00,0.00,0.70,1.77,0.37 +30.00,0.00,0.00,0.46,1.70,0.27 +58.00,0.00,28.00,0.35,1.60,0.27 +56.60,1.00,39.00,0.43,1.64,0.27 +81.00,0.00,51.00,0.33,1.60,0.28 +79.00,0.00,49.00,0.70,1.59,0.26 +30.00,0.00,0.00,0.31,1.58,0.31 +43.00,0.00,13.00,0.34,1.64,0.29 +53.70,1.00,34.00,0.40,1.68,0.28 +7.10,0.00,0.00,0.82,1.80,0.40 +30.00,0.00,0.00,0.88,1.67,0.25 +99.00,0.00,69.00,0.55,1.52,0.17 +47.00,0.00,17.00,0.68,1.51,0.16 +39.00,0.00,9.00,0.37,1.65,0.29 +96.00,0.00,66.00,0.54,1.65,0.22 +44.00,0.00,14.00,0.67,1.98,0.26 +45.00,0.00,15.00,0.44,1.72,0.27 +22.60,0.00,0.00,0.61,1.78,0.25 +50.20,1.00,33.00,0.95,1.59,0.22 +33.00,0.00,3.00,0.46,1.62,0.26 +52.00,0.00,22.00,0.68,1.54,0.21 +101.00,0.00,71.00,0.39,1.61,0.24 +86.00,0.00,56.00,0.55,1.81,0.28 +69.00,0.00,39.00,0.44,1.65,0.28 +11.60,0.00,0.00,0.80,1.55,0.20 +36.00,0.00,6.00,0.41,1.69,0.26 +19.00,0.00,0.00,0.97,1.75,0.30 +7.10,0.00,0.00,0.39,1.69,0.28 +52.00,0.00,22.00,0.51,1.65,0.28 +54.00,0.00,24.00,0.41,1.84,0.39 +30.00,0.00,0.00,0.85,1.81,0.49 +69.00,0.00,39.00,0.36,1.55,0.28 +29.90,1.00,0.00,0.84,1.81,0.40 +24.70,0.00,0.00,0.63,1.54,0.20 +91.00,0.00,61.00,0.36,1.64,0.29 +28.70,1.00,9.00,0.78,1.58,0.15 +30.00,0.00,0.00,1.11,1.76,0.21 +1.30,0.00,0.00,0.63,1.49,0.15 +81.50,1.00,69.00,0.61,1.50,0.17 +30.00,0.00,0.00,1.21,1.79,0.29 +22.80,0.00,0.00,0.82,1.58,0.17 +38.70,1.00,10.00,1.04,1.69,0.21 +65.00,0.00,35.00,0.35,1.63,0.31 +11.10,1.00,0.00,0.81,1.61,0.17 +24.80,1.00,11.00,0.69,1.80,0.24 +63.00,0.00,33.00,0.46,1.69,0.26 +50.00,0.00,20.00,0.48,1.66,0.23 +90.00,0.00,60.00,0.35,1.65,0.31 +107.00,0.00,77.00,0.38,1.61,0.25 +45.00,0.00,15.00,0.39,1.58,0.27 +30.00,0.00,0.00,0.69,1.61,0.27 +16.00,0.00,0.00,0.41,1.59,0.24 +35.30,1.00,29.00,0.36,1.57,0.24 +59.00,0.00,29.00,0.51,1.64,0.22 +65.00,0.00,35.00,0.36,1.64,0.30 +50.00,0.00,20.00,0.41,1.57,0.27 +30.00,0.00,0.00,0.50,1.56,0.25 +74.00,0.00,44.00,0.38,1.76,0.36 +108.00,0.00,78.00,0.49,1.64,0.28 +66.00,0.00,36.00,0.32,1.60,0.29 +30.00,0.00,0.00,0.44,1.72,0.28 +38.10,1.00,31.00,0.67,1.72,0.35 +74.00,0.00,44.00,0.35,1.64,0.28 +30.00,0.00,0.00,0.59,1.74,0.25 +13.90,0.00,0.00,0.68,1.73,0.34 +38.00,0.00,8.00,0.37,1.67,0.30 +43.00,0.00,13.00,0.41,1.68,0.27 +18.90,0.00,0.00,0.59,1.61,0.25 +22.20,0.00,0.00,0.39,1.58,0.26 +98.00,0.00,68.00,0.40,1.66,0.26 +61.00,0.00,31.00,0.36,1.67,0.32 +43.00,0.00,13.00,0.91,1.77,0.25 +30.00,0.00,0.00,0.58,1.67,0.27 +64.00,0.00,34.00,0.36,1.63,0.30 +49.00,0.00,19.00,0.77,1.76,0.25 +33.70,1.00,19.00,0.88,1.71,0.25 +88.00,0.00,58.00,0.64,1.69,0.23 +44.00,0.00,14.00,0.58,1.78,0.26 +50.00,0.00,20.00,0.53,1.57,0.21 +44.00,0.00,14.00,0.63,1.84,0.25 +46.70,1.00,25.00,0.58,1.57,0.22 +83.00,0.00,53.00,0.55,1.65,0.22 +45.00,0.00,15.00,0.46,1.68,0.25 +82.50,1.00,60.00,0.38,1.59,0.24 +25.50,1.00,17.00,0.52,1.65,0.23 +30.00,0.00,0.00,0.34,1.50,0.27 +63.00,0.00,33.00,0.33,1.63,0.28 +43.00,0.00,13.00,0.44,1.73,0.28 +63.00,0.00,33.00,0.58,1.54,0.20 +78.00,0.00,48.00,0.52,1.79,0.29 +63.80,1.00,58.00,0.87,1.57,0.16 +100.60,1.00,77.00,0.40,1.61,0.24 +27.10,0.00,0.00,0.82,1.56,0.17 +44.00,0.00,14.00,0.42,1.70,0.25 +45.00,0.00,15.00,0.41,1.70,0.27 +20.60,0.00,0.00,0.60,1.68,0.23 +30.00,0.00,0.00,0.84,1.67,0.25 +44.00,0.00,14.00,0.46,1.71,0.25 +52.00,0.00,22.00,0.37,1.64,0.27 +29.80,1.00,23.00,0.35,1.59,0.27 +9.50,0.00,0.00,0.59,1.58,0.22 +4.80,0.00,0.00,0.61,1.63,0.26 +30.00,0.00,0.00,0.60,1.56,0.20 +44.00,0.00,14.00,0.47,1.77,0.28 +49.00,0.00,19.00,0.50,1.89,0.45 +47.00,0.00,17.00,0.80,1.58,0.16 +54.00,0.00,24.00,0.62,1.56,0.22 +85.20,1.00,60.00,0.58,1.68,0.27 +43.00,0.00,13.00,0.74,1.72,0.23 +30.00,0.00,0.00,0.67,1.53,0.16 +14.20,1.00,0.00,0.73,1.81,0.43 +74.20,1.00,52.00,0.51,1.63,0.29 +67.00,0.00,37.00,0.58,1.73,0.31 +48.00,0.00,18.00,0.53,1.60,0.18 +49.00,0.00,19.00,0.33,1.71,0.28 +64.00,0.00,34.00,0.38,1.66,0.30 +69.00,0.00,39.00,0.44,1.70,0.25 +83.00,0.00,53.00,0.58,1.66,0.22 +49.00,0.00,19.00,0.32,1.72,0.28 +70.70,1.00,68.00,0.42,1.57,0.25 +17.70,0.00,0.00,0.50,1.65,0.29 +38.00,0.00,8.00,0.52,1.55,0.18 +53.90,1.00,33.00,0.57,1.62,0.23 +53.00,0.00,23.00,0.66,1.72,0.32 +85.00,0.00,55.00,0.48,1.61,0.27 +81.00,0.00,51.00,0.32,1.61,0.29 +30.00,0.00,0.00,1.24,1.68,0.20 +31.00,0.00,1.00,0.39,1.66,0.26 +30.00,0.00,0.00,0.98,1.74,0.25 +75.00,0.00,45.00,0.60,1.58,0.26 +84.00,0.00,54.00,0.52,1.71,0.30 +29.40,0.00,0.00,0.53,1.70,0.24 +91.00,0.00,61.00,0.39,1.69,0.28 +90.00,0.00,60.00,0.38,1.56,0.23 +36.00,0.00,6.00,0.40,1.58,0.27 +30.00,0.00,0.00,0.76,1.78,0.44 +30.00,0.00,0.00,0.64,1.56,0.22 +66.60,1.00,41.00,0.79,1.57,0.16 +68.00,0.00,38.00,0.34,1.64,0.28 +49.00,0.00,19.00,0.93,1.72,0.25 +32.80,1.00,17.00,0.81,1.66,0.28 +17.40,1.00,14.00,0.67,1.57,0.24 +81.10,1.00,61.00,0.39,1.69,0.28 +61.00,0.00,31.00,0.32,1.58,0.31 +83.00,0.00,53.00,0.43,1.70,0.26 +63.90,1.00,48.00,0.45,1.71,0.27 +36.00,0.00,6.00,0.80,1.64,0.18 +44.00,0.00,14.00,0.42,1.69,0.26 +20.40,1.00,0.00,0.95,1.63,0.18 +49.00,0.00,19.00,0.80,1.55,0.17 +76.00,0.00,46.00,0.31,1.61,0.30 +90.00,0.00,60.00,0.45,1.64,0.26 +28.20,1.00,9.00,0.42,1.88,0.41 +58.00,0.00,28.00,0.32,1.61,0.29 +25.40,0.00,0.00,0.56,1.68,0.33 +30.00,0.00,0.00,0.61,1.75,0.24 +18.90,1.00,17.00,0.84,1.59,0.16 +19.60,0.00,0.00,0.44,1.92,0.42 +86.00,0.00,56.00,0.44,1.71,0.26 +33.80,1.00,13.00,0.46,1.66,0.25 +42.00,0.00,12.00,0.50,1.64,0.22 +65.00,0.00,35.00,0.32,1.60,0.30 +30.00,0.00,0.00,0.62,1.66,0.23 +59.00,0.00,29.00,0.49,1.62,0.23 +24.40,0.00,0.00,0.45,1.82,0.39 +25.60,1.00,21.00,0.47,1.68,0.25 +57.80,1.00,29.00,0.70,1.63,0.25 +53.00,0.00,23.00,0.35,1.60,0.27 +30.00,0.00,0.00,0.36,1.63,0.29 +87.00,0.00,57.00,0.60,1.62,0.25 +3.20,0.00,0.00,0.70,1.81,0.40 +55.50,1.00,44.00,0.32,1.58,0.31 +59.00,0.00,29.00,0.77,1.66,0.28 +20.70,0.00,0.00,0.36,1.63,0.27 +68.70,1.00,49.00,0.45,1.72,0.28 +4.80,0.00,0.00,1.04,1.78,0.26 +21.40,0.00,0.00,0.39,1.56,0.28 +40.00,0.00,10.00,0.74,1.80,0.45 +20.80,0.00,0.00,0.64,1.69,0.23 +14.90,0.00,0.00,0.38,1.66,0.29 +78.00,0.00,48.00,0.52,1.81,0.29 +30.00,0.00,0.00,0.67,1.76,0.35 +80.70,1.00,75.00,0.60,1.70,0.28 +91.00,0.00,61.00,0.34,1.62,0.29 +60.60,1.00,59.00,0.37,1.81,0.37 +48.00,0.00,18.00,0.60,1.59,0.27 +108.00,0.00,78.00,0.38,1.59,0.24 +30.00,0.00,0.00,0.38,1.57,0.24 +20.00,0.00,0.00,0.35,1.56,0.27 +30.00,0.00,0.00,0.44,1.69,0.28 +59.00,0.00,29.00,0.37,1.59,0.24 +69.00,0.00,39.00,0.37,1.56,0.28 +54.00,0.00,24.00,0.46,1.73,0.28 +47.00,0.00,17.00,0.78,1.63,0.26 +47.00,0.00,17.00,0.40,1.57,0.24 +32.80,1.00,29.00,0.68,1.73,0.34 +74.00,0.00,44.00,0.35,1.65,0.28 +67.00,0.00,37.00,0.53,1.71,0.30 +30.00,0.00,0.00,0.67,1.63,0.25 +30.00,0.00,0.00,0.66,1.52,0.19 +88.00,0.00,58.00,0.62,1.68,0.23 +30.00,0.00,0.00,0.39,1.57,0.24 +34.00,0.00,4.00,0.34,1.63,0.27 +18.80,1.00,15.00,0.67,1.53,0.18 +55.00,0.00,25.00,0.51,1.65,0.22 +23.20,0.00,0.00,0.62,1.68,0.23 +30.00,0.00,0.00,0.34,1.61,0.31 +1.70,0.00,0.00,0.60,1.55,0.21 +83.00,0.00,53.00,0.51,1.57,0.20 +51.30,1.00,32.00,0.53,1.58,0.25 +43.00,0.00,13.00,0.44,1.73,0.28 +0.30,0.00,0.00,0.51,1.70,0.26 +9.20,0.00,0.00,0.62,1.58,0.22 +88.00,0.00,58.00,0.61,1.74,0.24 +51.00,0.00,21.00,0.44,1.70,0.27 +45.00,0.00,15.00,0.54,1.68,0.24 +88.00,0.00,58.00,0.63,1.68,0.23 +21.40,1.00,19.00,0.70,1.53,0.19 +25.50,1.00,0.00,0.39,1.66,0.27 +38.80,1.00,14.00,0.47,1.72,0.25 +30.00,0.00,0.00,0.58,1.63,0.24 +47.00,0.00,17.00,0.79,1.64,0.26 +57.00,0.00,27.00,0.42,1.67,0.26 +44.00,0.00,14.00,0.50,1.61,0.21 +15.70,0.00,0.00,0.57,1.66,0.22 +0.60,0.00,0.00,0.79,1.55,0.20 +73.00,0.00,43.00,0.39,1.67,0.28 +59.00,0.00,29.00,0.51,1.64,0.22 +44.00,0.00,14.00,0.57,1.69,0.26 +83.30,1.00,63.00,0.56,1.71,0.24 +7.70,0.00,0.00,0.48,1.60,0.26 +30.00,0.00,0.00,0.53,1.56,0.18 +30.00,0.00,0.00,0.60,1.56,0.20 +53.00,0.00,23.00,0.35,1.59,0.27 +40.00,0.00,10.00,0.92,1.73,0.20 +4.40,0.00,0.00,0.93,1.70,0.24 +76.00,0.00,46.00,0.65,1.69,0.23 +51.00,0.00,21.00,0.65,1.53,0.15 +62.00,0.00,32.00,0.48,1.56,0.25 +54.40,1.00,41.00,0.62,1.49,0.15 +22.30,0.00,0.00,1.02,1.77,0.21 +78.00,0.00,48.00,0.52,1.78,0.28 +60.00,0.00,30.00,0.45,1.73,0.26 +30.00,0.00,0.00,0.54,1.54,0.18 +40.30,1.00,20.00,0.61,1.53,0.19 +8.30,0.00,0.00,0.34,1.64,0.28 +38.00,0.00,8.00,0.53,1.54,0.17 +65.00,0.00,35.00,0.34,1.62,0.29 +55.50,1.00,41.00,0.60,1.49,0.15 +17.90,0.00,0.00,0.57,1.50,0.16 +38.60,1.00,13.00,0.80,1.57,0.16 +5.40,0.00,0.00,0.90,1.62,0.17 +63.00,0.00,33.00,0.54,1.65,0.23 +97.50,1.00,71.00,0.56,1.67,0.29 +33.00,0.00,3.00,0.46,1.63,0.26 +12.40,0.00,0.00,0.58,1.51,0.16 +66.00,0.00,36.00,0.32,1.59,0.27 +33.00,1.00,20.00,0.70,1.51,0.16 +30.00,0.00,0.00,0.62,1.59,0.27 +86.00,0.00,56.00,0.54,1.84,0.29 +40.00,0.00,10.00,1.05,1.70,0.21 +20.30,0.00,0.00,0.44,1.61,0.25 +72.00,0.00,42.00,0.39,1.68,0.28 +23.00,0.00,0.00,0.47,1.61,0.25 +39.00,1.00,22.00,0.65,1.54,0.21 +58.00,0.00,28.00,0.32,1.70,0.29 +49.80,1.00,20.00,0.58,1.70,0.26 +51.00,0.00,21.00,0.49,1.63,0.26 +61.00,0.00,31.00,0.58,1.54,0.20 +30.00,0.00,0.00,0.31,1.57,0.31 +57.00,0.00,27.00,0.63,1.51,0.18 +53.00,0.00,23.00,0.42,1.85,0.40 +30.00,0.00,0.00,0.79,1.59,0.17 +35.60,1.00,10.00,0.79,1.82,0.52 +55.00,0.00,25.00,0.44,1.62,0.25 +8.20,0.00,0.00,1.03,1.77,0.30 +30.00,0.00,0.00,0.39,1.57,0.24 +72.00,0.00,42.00,0.35,1.58,0.25 +39.00,0.00,9.00,0.43,1.89,0.42 +72.00,0.00,42.00,0.38,1.68,0.28 +57.00,0.00,27.00,0.64,1.69,0.30 +53.00,0.00,23.00,0.40,1.68,0.27 +44.00,0.00,14.00,0.56,1.68,0.25 +8.30,0.00,0.00,0.36,1.57,0.23 +95.60,1.00,76.00,0.48,1.66,0.27 +21.70,0.00,0.00,0.76,1.80,0.48 +94.00,0.00,64.00,0.48,1.76,0.28 +69.00,0.00,39.00,0.35,1.55,0.27 +40.60,1.00,21.00,0.70,1.54,0.15 +52.00,0.00,22.00,0.44,1.61,0.25 +69.00,0.00,39.00,0.37,1.57,0.28 +98.00,0.00,68.00,0.39,1.55,0.24 +1.80,0.00,0.00,0.45,1.63,0.26 +30.00,0.00,0.00,0.32,1.55,0.27 +30.00,0.00,0.00,1.03,1.77,0.21 +41.00,0.00,11.00,0.68,1.79,0.24 +30.00,0.00,0.00,0.48,1.64,0.27 +58.00,0.00,28.00,0.33,1.56,0.26 +43.00,0.00,13.00,0.43,1.70,0.26 +32.00,0.00,2.00,0.62,1.58,0.22 +47.00,0.00,17.00,0.63,1.55,0.22 +63.90,1.00,40.00,0.40,1.60,0.24 +41.20,1.00,30.00,0.57,1.77,0.25 +61.00,0.00,31.00,0.36,1.65,0.32 +49.00,0.00,19.00,0.81,1.55,0.17 +4.50,0.00,0.00,0.39,1.58,0.27 +48.40,1.00,38.00,0.73,1.62,0.27 +74.00,0.00,44.00,0.56,1.63,0.24 +30.00,0.00,0.00,0.89,1.82,0.41 +62.00,0.00,32.00,0.60,1.50,0.15 +48.00,0.00,18.00,0.56,1.52,0.17 +30.00,0.00,0.00,0.82,1.57,0.16 +18.20,1.00,18.00,0.85,1.65,0.24 +30.00,0.00,0.00,0.62,1.55,0.20 +18.30,0.00,0.00,0.42,1.60,0.24 +43.00,0.00,13.00,0.79,1.57,0.16 +40.00,0.00,10.00,0.36,1.57,0.23 +59.00,0.00,29.00,0.58,1.78,0.27 +30.00,0.00,0.00,1.00,1.75,0.25 +13.40,0.00,0.00,0.33,1.64,0.29 +72.00,0.00,42.00,0.56,1.79,0.37 +3.30,0.00,0.00,0.53,1.84,0.29 +30.00,0.00,0.00,0.58,1.54,0.17 +2.60,0.00,0.00,0.93,1.70,0.20 +74.00,0.00,44.00,0.35,1.66,0.28 +43.30,1.00,18.00,0.90,1.70,0.25 +30.00,0.00,0.00,0.37,1.57,0.28 +33.00,0.00,3.00,0.46,1.61,0.25 +10.30,0.00,0.00,0.50,1.64,0.27 +98.00,0.00,68.00,0.51,1.83,0.29 +56.00,0.00,26.00,0.55,1.72,0.32 +101.00,0.00,71.00,0.36,1.67,0.31 +11.70,0.00,0.00,0.68,1.69,0.23 +34.60,1.00,29.00,0.50,1.62,0.22 +43.00,0.00,13.00,0.45,1.66,0.23 +30.00,0.00,0.00,0.46,1.73,0.28 +63.00,0.00,33.00,0.53,1.55,0.20 +88.00,0.00,58.00,0.63,1.68,0.23 +11.40,0.00,0.00,0.85,1.65,0.24 +30.00,0.00,0.00,0.37,1.56,0.28 +63.00,0.00,33.00,0.74,1.54,0.20 +36.20,1.00,22.00,0.44,1.61,0.25 +41.00,0.00,11.00,0.58,1.68,0.32 +44.00,0.00,14.00,0.43,1.71,0.26 +47.50,1.00,23.00,0.38,1.55,0.24 +51.00,0.00,21.00,0.39,1.66,0.27 +25.00,1.00,18.00,0.86,1.66,0.24 +92.00,0.00,62.00,0.45,1.73,0.27 +67.10,1.00,42.00,0.77,1.76,0.37 +106.00,0.00,76.00,0.33,1.56,0.27 +61.00,0.00,31.00,0.34,1.60,0.26 +44.00,0.00,14.00,0.43,1.69,0.27 +44.00,0.00,14.00,0.44,1.71,0.25 +17.30,0.00,0.00,0.39,1.59,0.24 +44.00,0.00,14.00,0.68,1.59,0.24 +59.70,1.00,33.00,0.76,1.56,0.21 +10.40,0.00,0.00,0.72,1.76,0.36 +9.90,1.00,0.00,1.03,1.77,0.32 +69.00,0.00,39.00,0.44,1.65,0.28 +47.00,0.00,17.00,0.38,1.68,0.29 +17.10,0.00,0.00,0.53,1.64,0.22 +98.00,0.00,68.00,0.33,1.61,0.31 +61.00,0.00,31.00,0.34,1.60,0.25 +69.90,1.00,53.00,0.50,1.58,0.20 +59.00,0.00,29.00,0.39,1.67,0.30 +30.00,0.00,0.00,0.61,1.55,0.21 +3.80,0.00,0.00,0.46,1.55,0.27 +17.00,1.00,0.00,0.67,1.52,0.18 +72.00,0.00,42.00,0.55,1.69,0.23 +42.50,1.00,33.00,0.37,1.80,0.36 +57.00,0.00,27.00,0.71,1.91,0.26 +9.10,0.00,0.00,0.32,1.60,0.30 +48.00,0.00,18.00,0.91,1.71,0.25 +60.00,0.00,30.00,0.45,1.71,0.27 +39.50,1.00,33.00,0.72,1.55,0.20 +78.30,1.00,67.00,0.57,1.69,0.27 +59.00,0.00,29.00,0.41,1.68,0.26 +71.00,0.00,41.00,0.40,1.84,0.40 +55.30,1.00,32.00,0.32,1.58,0.31 +30.00,0.00,0.00,0.31,1.52,0.27 +106.00,0.00,76.00,0.51,1.69,0.28 +30.00,0.00,0.00,0.99,1.77,0.24 +0.40,0.00,0.00,0.52,1.76,0.37 +50.00,0.00,20.00,0.43,1.73,0.27 +5.70,0.00,0.00,0.43,1.57,0.25 +11.90,0.00,0.00,0.76,1.64,0.28 +78.00,0.00,48.00,0.53,1.78,0.28 +24.80,0.00,0.00,1.05,1.76,0.21 +54.40,1.00,38.00,0.75,1.63,0.28 +84.20,1.00,57.00,0.48,1.73,0.27 +12.10,0.00,0.00,0.53,1.70,0.23 +30.00,0.00,0.00,0.86,1.81,0.50 +72.60,1.00,58.00,0.61,1.68,0.24 +44.00,0.00,14.00,0.51,1.58,0.20 +7.30,0.00,0.00,0.39,1.56,0.24 +30.00,0.00,0.00,0.84,1.71,0.23 +17.20,0.00,0.00,0.69,1.81,0.39 +50.00,0.00,20.00,0.71,1.51,0.16 +69.00,0.00,39.00,0.46,1.67,0.28 +77.30,1.00,69.00,0.55,1.52,0.18 +30.00,0.00,0.00,0.40,1.58,0.24 +69.00,0.00,39.00,0.33,1.59,0.27 +8.40,0.00,0.00,0.55,1.66,0.28 +59.60,1.00,44.00,0.56,1.60,0.22 +40.00,0.00,10.00,0.84,1.62,0.18 +16.50,0.00,0.00,0.57,1.68,0.30 +62.10,1.00,62.00,0.40,1.69,0.27 +26.00,1.00,21.00,0.93,1.59,0.19 +75.00,0.00,45.00,0.34,1.56,0.25 +78.00,0.00,48.00,0.46,1.71,0.27 +59.00,0.00,29.00,0.50,1.63,0.22 +16.00,0.00,0.00,0.88,1.71,0.20 +51.20,1.00,37.00,1.00,1.61,0.18 +53.00,0.00,23.00,0.73,1.59,0.23 +30.00,0.00,0.00,0.36,1.57,0.25 +58.00,0.00,28.00,0.42,1.56,0.26 +63.40,1.00,62.00,0.61,1.69,0.23 +39.00,0.00,9.00,0.33,1.52,0.27 +87.00,0.00,57.00,0.64,1.61,0.26 +10.90,0.00,0.00,0.62,1.56,0.22 +50.00,0.00,20.00,0.48,1.66,0.24 +43.00,0.00,13.00,0.38,1.67,0.29 +83.00,0.00,53.00,0.52,1.57,0.20 +63.00,0.00,33.00,0.39,1.58,0.27 +12.30,1.00,0.00,0.52,1.70,0.28 +48.00,0.00,18.00,0.35,1.62,0.32 +11.40,1.00,0.00,1.16,1.90,0.57 +40.00,0.00,10.00,0.43,1.66,0.25 +30.00,0.00,0.00,0.33,1.60,0.31 +82.00,0.00,52.00,0.54,1.66,0.31 +34.00,0.00,4.00,0.56,1.56,0.26 +30.00,0.00,0.00,0.44,1.69,0.28 +59.00,0.00,29.00,0.41,1.68,0.26 +47.00,0.00,17.00,0.68,1.52,0.15 +30.00,0.00,0.00,1.06,1.79,0.28 +65.00,0.00,35.00,1.03,1.77,0.21 +70.00,0.00,40.00,0.52,1.70,0.23 +15.20,0.00,0.00,0.35,1.62,0.30 +48.00,0.00,18.00,0.54,1.55,0.18 +68.00,0.00,38.00,0.65,1.61,0.28 +55.00,0.00,25.00,0.69,1.85,0.25 +49.00,0.00,19.00,0.83,1.56,0.18 +88.00,0.00,58.00,0.60,1.74,0.24 +8.40,0.00,0.00,0.80,1.78,0.46 +91.00,0.00,61.00,0.36,1.65,0.29 +78.00,0.00,48.00,0.44,1.70,0.27 +55.20,1.00,32.00,0.33,1.60,0.32 +79.50,1.00,60.00,0.58,1.68,0.29 +0.70,0.00,0.00,0.88,1.63,0.18 +0.60,0.00,0.00,0.84,1.62,0.18 +39.90,1.00,31.00,0.63,1.71,0.34 +72.00,0.00,42.00,0.35,1.60,0.27 +59.00,0.00,29.00,0.37,1.58,0.24 +62.00,0.00,32.00,0.34,1.61,0.32 +2.20,0.00,0.00,0.65,1.56,0.22 +106.10,1.00,77.00,0.39,1.61,0.25 +77.70,1.00,62.00,0.67,1.52,0.19 +65.90,1.00,48.00,0.50,1.81,0.28 +90.00,0.00,60.00,0.38,1.56,0.23 +57.70,1.00,47.00,0.78,1.55,0.20 +43.00,0.00,13.00,0.63,1.53,0.18 +65.00,0.00,35.00,0.31,1.59,0.29 +72.00,0.00,42.00,0.50,1.83,0.28 +66.00,0.00,36.00,0.43,1.82,0.39 +30.00,0.00,0.00,0.82,1.60,0.16 +18.00,1.00,1.00,0.89,1.72,0.20 +66.00,0.00,36.00,0.43,1.79,0.38 +96.00,0.00,66.00,0.47,1.63,0.23 +106.00,0.00,76.00,0.34,1.55,0.26 +39.80,1.00,20.00,0.57,1.60,0.23 +17.10,1.00,0.00,0.95,1.63,0.30 +27.10,1.00,17.00,0.88,1.60,0.17 +72.00,0.00,42.00,0.38,1.68,0.28 +61.20,1.00,61.00,0.35,1.59,0.28 +45.00,0.00,15.00,0.50,1.66,0.24 +52.20,1.00,39.00,0.60,1.68,0.23 +41.00,0.00,11.00,0.81,1.55,0.18 +3.60,0.00,0.00,1.06,1.78,0.29 +36.30,1.00,17.00,0.62,1.56,0.22 +98.00,0.00,68.00,0.38,1.64,0.26 +50.00,0.00,20.00,0.73,1.51,0.18 +30.00,0.00,0.00,0.81,1.79,0.41 +30.00,0.00,0.00,0.74,1.64,0.24 +107.00,0.00,77.00,0.39,1.60,0.25 +56.00,0.00,26.00,0.32,1.59,0.31 +56.00,0.00,26.00,0.77,1.57,0.15 +31.30,1.00,22.00,0.36,1.63,0.27 +30.00,0.00,0.00,0.49,1.67,0.28 +67.00,0.00,37.00,0.62,1.77,0.25 +55.50,1.00,31.00,0.46,1.64,0.24 +85.00,0.00,55.00,0.39,1.55,0.28 +74.00,0.00,44.00,0.35,1.62,0.31 +83.00,0.00,53.00,0.58,1.66,0.22 +48.00,0.00,18.00,0.39,1.57,0.23 +72.00,0.00,42.00,0.38,1.67,0.28 +74.00,0.00,44.00,0.37,1.66,0.29 +46.70,1.00,29.00,0.48,1.64,0.24 +33.00,0.00,3.00,0.76,1.63,0.25 +45.00,0.00,15.00,0.43,1.66,0.24 +30.00,0.00,0.00,0.70,1.55,0.17 +67.90,1.00,42.00,0.34,1.57,0.25 +49.10,1.00,42.00,0.77,1.76,0.37 +9.10,0.00,0.00,1.13,1.72,0.23 +45.80,1.00,33.00,0.83,1.56,0.21 +54.00,0.00,24.00,0.53,1.56,0.18 +14.40,0.00,0.00,0.44,1.72,0.34 +77.20,1.00,48.00,0.51,1.71,0.27 +30.00,0.00,0.00,0.76,1.78,0.44 +48.00,0.00,18.00,0.44,1.61,0.25 +78.00,0.00,48.00,0.44,1.70,0.27 +50.00,0.00,20.00,0.58,1.64,0.22 +44.00,0.00,14.00,0.58,1.78,0.26 +70.00,0.00,40.00,0.40,1.60,0.24 +63.00,0.00,33.00,0.53,1.65,0.23 +87.80,1.00,62.00,0.45,1.73,0.27 +70.00,0.00,40.00,0.39,1.65,0.27 +97.00,0.00,67.00,0.59,1.70,0.28 +53.00,0.00,23.00,0.62,1.70,0.29 +43.00,0.00,13.00,0.38,1.68,0.28 +86.60,1.00,58.00,0.63,1.68,0.22 +37.00,0.00,7.00,0.56,1.54,0.19 +43.00,1.00,17.00,0.79,1.58,0.16 +68.80,1.00,59.00,0.39,1.82,0.38 +8.80,0.00,0.00,0.59,1.57,0.23 +92.00,0.00,62.00,0.82,1.56,0.17 +58.00,0.00,28.00,0.32,1.60,0.28 +92.00,0.00,62.00,0.42,1.71,0.27 +15.00,0.00,0.00,0.41,1.70,0.27 +45.00,0.00,15.00,0.59,1.54,0.20 +72.00,0.00,42.00,0.37,1.62,0.26 +1.40,0.00,0.00,0.73,1.81,0.43 +2.80,0.00,0.00,0.57,1.79,0.37 +5.40,0.00,0.00,0.68,1.53,0.15 +71.30,1.00,42.00,0.43,1.81,0.39 +30.00,0.00,0.00,0.62,1.59,0.27 +14.40,0.00,0.00,0.35,1.59,0.27 +47.00,0.00,17.00,0.41,1.60,0.24 +50.00,0.00,20.00,0.58,1.69,0.26 +0.90,0.00,0.00,0.34,1.48,0.27 +0.10,0.00,0.00,1.09,1.62,0.19 +63.00,0.00,33.00,0.44,1.70,0.27 +59.00,0.00,29.00,0.42,1.68,0.26 +52.00,0.00,22.00,0.42,1.63,0.26 +73.00,0.00,43.00,0.44,1.72,0.26 +90.00,0.00,60.00,0.49,1.64,0.22 +50.00,0.00,20.00,0.64,1.51,0.19 +85.00,0.00,55.00,0.49,1.64,0.28 +40.00,0.00,10.00,0.44,1.67,0.25 +21.60,1.00,18.00,0.81,1.92,0.25 +3.60,0.00,0.00,0.35,1.60,0.27 +49.00,0.00,19.00,0.81,1.71,0.24 +43.80,1.00,28.00,0.41,1.56,0.28 +71.80,1.00,43.00,0.38,1.67,0.28 +28.90,0.00,0.00,0.55,1.71,0.24 +83.00,0.00,53.00,0.45,1.73,0.28 +53.00,0.00,23.00,0.31,1.55,0.30 +47.00,0.00,17.00,0.50,1.61,0.22 +58.00,0.00,28.00,0.34,1.56,0.26 +30.00,0.00,0.00,0.52,1.56,0.19 +30.00,0.00,0.00,0.89,1.80,0.44 +52.20,1.00,31.00,0.57,1.53,0.18 +45.00,0.00,15.00,0.41,1.70,0.27 +83.00,0.00,53.00,0.40,1.67,0.27 +101.00,0.00,71.00,0.40,1.61,0.24 +67.20,1.00,39.00,0.66,1.52,0.19 +87.00,0.00,57.00,0.36,1.58,0.26 +82.00,0.00,52.00,0.53,1.65,0.30 +9.60,0.00,0.00,0.79,1.64,0.26 +14.90,0.00,0.00,0.57,1.68,0.29 +17.90,0.00,0.00,0.62,1.50,0.17 +20.30,0.00,0.00,0.75,1.62,0.22 +8.60,0.00,0.00,0.62,1.74,0.32 +44.00,0.00,14.00,0.47,1.71,0.25 +50.90,1.00,28.00,0.62,1.54,0.16 +34.00,0.00,4.00,0.44,1.81,0.39 +30.00,0.00,0.00,0.39,1.68,0.28 +63.00,0.00,33.00,0.32,1.59,0.29 +29.90,1.00,19.00,0.73,1.52,0.18 +66.90,1.00,42.00,0.84,1.80,0.40 +73.00,0.00,43.00,0.45,1.74,0.28 +71.00,0.00,41.00,0.37,1.59,0.26 +65.00,0.00,35.00,0.35,1.64,0.30 +30.00,0.00,0.00,0.66,1.77,0.36 +71.00,0.00,41.00,0.85,1.67,0.25 +85.00,0.00,55.00,0.40,1.57,0.27 +44.00,0.00,14.00,0.53,1.58,0.19 +69.00,0.00,39.00,0.33,1.59,0.27 +87.80,1.00,78.00,0.66,1.54,0.18 +76.00,0.00,46.00,0.32,1.61,0.29 +53.00,0.00,23.00,0.46,1.68,0.26 +72.00,0.00,42.00,0.42,1.86,0.40 +72.00,0.00,42.00,0.65,1.80,0.37 +42.00,0.00,12.00,0.56,1.68,0.28 +67.80,1.00,55.00,0.35,1.55,0.27 +14.90,0.00,0.00,0.55,1.65,0.23 +16.60,0.00,0.00,1.02,1.76,0.21 +58.00,0.00,28.00,0.42,1.56,0.26 +18.30,0.00,0.00,0.44,1.72,0.26 +43.00,0.00,13.00,0.76,1.73,0.23 +31.90,1.00,22.00,0.66,1.54,0.21 +41.00,0.00,11.00,0.75,1.90,0.25 +15.60,0.00,0.00,0.47,1.60,0.26 +73.00,0.00,43.00,0.39,1.66,0.27 +79.70,1.00,67.00,0.58,1.69,0.26 +53.00,0.00,23.00,0.43,1.79,0.38 +36.90,1.00,20.00,0.68,1.74,0.41 +40.00,0.00,10.00,0.88,1.63,0.18 +41.00,0.00,11.00,0.49,1.61,0.27 +92.00,0.00,62.00,0.32,1.59,0.31 +30.00,0.00,0.00,0.96,1.76,0.23 +85.70,1.00,71.00,0.55,1.66,0.28 +72.00,0.00,42.00,0.45,1.73,0.28 +30.00,0.00,0.00,0.71,1.56,0.19 +46.20,1.00,36.00,0.90,1.64,0.19 +106.00,0.00,76.00,0.52,1.71,0.30 +58.20,1.00,58.00,0.42,1.66,0.25 +45.00,0.00,15.00,0.58,1.53,0.20 +1.00,0.00,0.00,0.50,1.64,0.22 +74.00,0.00,44.00,0.32,1.63,0.29 +25.20,1.00,0.00,0.64,1.53,0.16 +42.00,0.00,12.00,0.34,1.62,0.27 +68.20,1.00,53.00,0.51,1.57,0.20 +90.00,0.00,60.00,0.58,1.69,0.28 +16.30,0.00,0.00,0.34,1.62,0.29 +31.00,0.00,1.00,0.54,1.82,0.28 +22.40,0.00,0.00,0.34,1.62,0.30 +73.00,0.00,43.00,0.39,1.65,0.27 +30.00,0.00,0.00,0.64,1.51,0.18 +60.00,0.00,30.00,0.32,1.71,0.29 +30.00,0.00,0.00,1.03,1.76,0.21 +48.00,1.00,37.00,1.09,1.63,0.19 +17.60,0.00,0.00,0.46,1.69,0.26 +18.90,0.00,0.00,0.34,1.55,0.26 +27.20,1.00,20.00,0.41,1.57,0.26 +47.00,0.00,17.00,0.52,1.65,0.23 +8.60,0.00,0.00,0.91,1.60,0.17 +65.00,0.00,35.00,0.33,1.59,0.30 +30.00,0.00,0.00,0.34,1.60,0.31 +43.30,1.00,30.00,0.31,1.70,0.29 +101.00,0.00,71.00,0.52,1.64,0.26 +30.00,0.00,0.00,0.61,1.65,0.23 +72.00,0.00,42.00,0.38,1.67,0.28 +54.00,0.00,24.00,0.43,1.68,0.27 +9.10,0.00,0.00,0.61,1.70,0.29 +35.00,0.00,5.00,0.36,1.54,0.27 +39.00,0.00,9.00,0.36,1.55,0.27 +43.00,0.00,13.00,0.68,1.74,0.41 +49.00,0.00,19.00,0.32,1.73,0.28 +31.20,1.00,26.00,0.53,1.66,0.23 +50.00,0.00,20.00,0.41,1.57,0.27 +68.00,0.00,38.00,0.74,1.62,0.27 +6.90,0.00,0.00,0.94,1.59,0.22 +24.20,0.00,0.00,0.90,1.59,0.17 +59.00,0.00,29.00,0.54,1.61,0.23 +44.00,0.00,14.00,0.45,1.66,0.26 +72.00,0.00,42.00,0.54,1.77,0.37 +11.70,0.00,0.00,0.73,1.80,0.44 +63.00,0.00,33.00,0.59,1.54,0.20 +98.00,0.00,68.00,0.37,1.64,0.28 +30.00,0.00,0.00,0.71,1.53,0.15 +79.00,0.00,49.00,0.59,1.73,0.25 +30.00,0.00,0.00,0.83,1.79,0.42 +60.00,0.00,30.00,0.51,1.69,0.24 +16.10,0.00,0.00,0.67,1.74,0.34 +50.00,0.00,20.00,0.53,1.71,0.24 +19.00,0.00,0.00,0.53,1.70,0.24 +30.00,0.00,0.00,0.49,1.65,0.28 +6.20,0.00,0.00,0.62,1.59,0.27 +49.00,0.00,19.00,0.80,1.72,0.25 +58.00,0.00,28.00,0.34,1.55,0.27 +41.00,0.00,11.00,0.53,1.65,0.25 +13.00,0.00,0.00,0.62,1.60,0.23 +47.00,0.00,17.00,0.57,1.74,0.24 +83.00,0.00,53.00,0.50,1.58,0.21 +44.00,0.00,14.00,0.42,1.52,0.27 +98.00,0.00,68.00,0.36,1.63,0.28 +72.00,0.00,42.00,0.35,1.57,0.26 +70.00,0.00,40.00,0.39,1.58,0.27 +14.90,0.00,0.00,0.57,1.68,0.29 +67.70,1.00,41.00,0.66,1.68,0.23 +15.00,0.00,0.00,0.67,1.77,0.36 +49.00,0.00,19.00,0.42,1.87,0.40 +58.00,0.00,28.00,0.34,1.56,0.26 +39.60,1.00,14.00,0.54,1.67,0.24 +37.20,1.00,14.00,0.83,1.80,0.49 +42.80,1.00,21.00,0.34,1.60,0.31 +52.00,0.00,22.00,0.42,1.64,0.26 +43.90,1.00,14.00,0.53,1.58,0.19 +78.00,0.00,48.00,0.50,1.70,0.25 +2.90,0.00,0.00,0.42,1.70,0.26 +30.00,0.00,0.00,0.58,1.58,0.22 +30.00,0.00,0.00,0.76,1.79,0.41 +44.20,1.00,29.00,0.66,1.72,0.32 +26.80,0.00,0.00,0.51,1.63,0.26 +81.20,1.00,62.00,0.62,1.69,0.23 +6.20,0.00,0.00,0.54,1.54,0.18 +72.00,0.00,42.00,0.32,1.59,0.31 +72.00,0.00,42.00,0.67,1.80,0.38 +30.00,0.00,0.00,0.86,1.67,0.25 +43.00,0.00,13.00,0.51,1.64,0.22 +71.00,0.00,41.00,0.60,1.50,0.15 +30.00,0.00,0.00,0.50,1.76,0.28 +90.00,0.00,60.00,0.58,1.69,0.28 +72.00,0.00,42.00,0.39,1.68,0.28 +63.00,0.00,33.00,0.31,1.62,0.28 +68.80,1.00,39.00,0.43,1.71,0.26 +83.00,0.00,53.00,0.52,1.57,0.20 +44.00,0.00,14.00,0.58,1.63,0.25 +30.00,0.00,0.00,0.46,1.71,0.27 +52.00,0.00,22.00,0.77,1.66,0.28 +30.00,0.00,0.00,0.58,1.53,0.17 +91.00,0.00,61.00,0.39,1.68,0.28 +60.00,1.00,39.00,0.61,1.55,0.20 +21.60,0.00,0.00,0.38,1.67,0.29 +43.00,0.00,13.00,0.73,1.71,0.23 +14.90,0.00,0.00,0.44,1.55,0.27 +72.00,0.00,42.00,0.43,1.83,0.39 +48.00,0.00,18.00,0.47,1.62,0.23 +90.00,0.00,60.00,0.48,1.67,0.25 +39.70,1.00,19.00,0.78,1.74,0.25 +108.00,0.00,78.00,0.62,1.53,0.18 +70.00,0.00,40.00,0.39,1.58,0.24 +25.60,1.00,0.00,0.93,1.70,0.24 +59.50,1.00,58.00,0.91,1.60,0.17 +31.00,0.00,1.00,0.63,1.60,0.26 +8.70,0.00,0.00,0.55,1.73,0.32 +65.00,0.00,35.00,0.35,1.65,0.31 +44.00,0.00,14.00,0.65,1.92,0.25 +70.00,0.00,40.00,0.38,1.58,0.24 +37.00,0.00,7.00,0.50,1.58,0.20 +58.00,0.00,28.00,0.34,1.56,0.26 +49.00,0.00,19.00,0.34,1.61,0.27 +87.00,0.00,57.00,0.49,1.74,0.28 +44.00,0.00,14.00,0.67,1.52,0.18 +90.00,0.00,60.00,0.58,1.68,0.28 +37.00,0.00,7.00,0.51,1.57,0.20 +72.00,0.00,42.00,0.54,1.73,0.24 +106.00,0.00,76.00,0.33,1.56,0.26 +54.90,1.00,26.00,0.44,1.94,0.42 +20.60,1.00,0.00,1.15,1.76,0.22 +62.00,0.00,32.00,0.43,1.55,0.26 +83.00,0.00,53.00,0.51,1.59,0.21 +58.00,0.00,28.00,0.35,1.57,0.25 +8.50,0.00,0.00,0.53,1.70,0.29 +69.00,0.00,39.00,0.33,1.59,0.27 +43.00,0.00,13.00,0.42,1.69,0.26 +30.00,0.00,0.00,0.93,1.73,0.24 +72.00,0.00,42.00,0.36,1.61,0.25 +44.00,0.00,14.00,0.46,1.62,0.23 +70.00,0.00,40.00,0.54,1.69,0.23 +30.00,0.00,0.00,0.34,1.52,0.27 +72.90,1.00,62.00,0.31,1.58,0.31 +67.00,0.00,37.00,0.56,1.72,0.31 +3.60,0.00,0.00,0.46,1.67,0.26 +50.40,1.00,42.00,0.35,1.66,0.31 +64.00,0.00,34.00,0.40,1.70,0.27 +42.10,1.00,33.00,0.57,1.63,0.24 +9.90,0.00,0.00,0.31,1.62,0.28 +69.00,0.00,39.00,0.58,1.68,0.28 +18.70,0.00,0.00,0.57,1.69,0.27 +50.80,1.00,37.00,1.11,1.63,0.20 +11.80,0.00,0.00,0.66,1.54,0.21 +72.00,0.00,42.00,0.37,1.66,0.28 +107.00,0.00,77.00,0.39,1.61,0.25 +54.00,0.00,24.00,0.65,1.56,0.21 +34.00,0.00,4.00,0.32,1.78,0.29 +61.00,0.00,31.00,0.34,1.60,0.26 +8.00,0.00,0.00,0.51,1.72,0.27 +13.80,0.00,0.00,0.67,1.73,0.41 +30.00,0.00,0.00,0.74,1.79,0.43 +74.00,0.00,44.00,0.36,1.62,0.29 +73.00,0.00,43.00,0.44,1.73,0.26 +67.20,1.00,62.00,0.82,1.56,0.18 +84.00,1.00,66.00,0.53,1.64,0.22 +37.00,0.00,7.00,0.76,1.67,0.29 +55.00,0.00,25.00,0.42,1.54,0.27 +52.00,0.00,22.00,0.37,1.66,0.27 +2.80,0.00,0.00,1.03,1.77,0.21 +50.00,0.00,20.00,0.44,1.66,0.24 +49.00,0.00,19.00,0.35,1.60,0.25 +2.30,0.00,0.00,0.64,1.78,0.24 +87.00,0.00,57.00,0.35,1.60,0.27 +5.50,0.00,0.00,0.46,1.64,0.24 +8.90,0.00,0.00,0.60,1.57,0.23 +8.40,0.00,0.00,0.41,1.53,0.27 +65.00,0.00,35.00,0.34,1.63,0.28 +28.90,0.00,0.00,0.82,1.59,0.17 +23.00,0.00,0.00,0.58,1.68,0.23 +39.00,0.00,9.00,0.40,1.56,0.28 +30.00,0.00,0.00,0.55,1.62,0.25 +62.40,1.00,42.00,0.48,1.83,0.40 +3.50,0.00,0.00,0.65,1.71,0.34 +28.40,1.00,0.00,0.85,1.57,0.16 +72.00,0.00,42.00,0.85,1.79,0.39 +69.30,1.00,66.00,0.47,1.64,0.24 +30.00,0.00,0.00,0.33,1.60,0.31 +91.50,1.00,78.00,0.63,1.53,0.17 +24.30,0.00,0.00,0.67,1.52,0.19 +101.00,0.00,71.00,0.39,1.61,0.24 +51.00,0.00,21.00,0.39,1.66,0.27 +73.00,0.00,43.00,0.38,1.60,0.24 +5.90,0.00,0.00,0.78,1.68,0.30 +74.00,0.00,44.00,0.38,1.67,0.28 +106.00,0.00,76.00,0.52,1.71,0.30 +41.60,1.00,31.00,0.49,1.65,0.24 +40.00,0.00,10.00,1.05,1.61,0.18 +30.00,0.00,0.00,0.83,1.65,0.18 +91.00,0.00,61.00,0.34,1.61,0.29 +15.30,0.00,0.00,0.39,1.58,0.27 +60.00,0.00,30.00,0.45,1.71,0.27 +30.00,0.00,0.00,0.58,1.54,0.17 +66.00,0.00,36.00,0.59,1.74,0.24 +62.00,0.00,32.00,0.39,1.69,0.28 +52.80,1.00,46.00,0.33,1.57,0.27 +53.00,0.00,23.00,0.46,1.69,0.26 +51.00,0.00,21.00,0.39,1.66,0.27 +98.00,0.00,68.00,0.42,1.57,0.25 +75.90,1.00,62.00,0.67,1.52,0.19 +66.00,0.00,36.00,0.47,1.66,0.25 +28.00,0.00,0.00,1.14,1.76,0.25 +44.00,0.00,14.00,0.44,1.71,0.26 +59.00,0.00,29.00,0.37,1.59,0.24 +30.00,0.00,0.00,0.52,1.81,0.29 +16.20,1.00,0.00,0.86,1.81,0.50 +34.00,0.00,4.00,0.32,1.79,0.29 +22.40,0.00,0.00,0.92,1.72,0.25 +31.00,0.00,1.00,0.58,1.59,0.25 +29.10,1.00,0.00,0.60,1.57,0.20 +6.60,0.00,0.00,0.60,1.58,0.26 +78.00,0.00,48.00,0.44,1.70,0.27 +1.40,0.00,0.00,0.57,1.53,0.19 +81.00,0.00,51.00,0.32,1.62,0.30 +30.00,0.00,0.00,0.34,1.61,0.31 +68.00,0.00,38.00,0.42,1.70,0.26 +52.00,0.00,22.00,0.42,1.63,0.26 +13.60,1.00,10.00,1.08,1.62,0.19 +30.00,0.00,0.00,0.59,1.83,0.26 +68.00,0.00,38.00,0.45,1.72,0.28 +37.30,1.00,20.00,0.39,1.58,0.27 +30.00,0.00,0.00,0.36,1.65,0.32 +48.00,0.00,18.00,0.45,1.63,0.25 +26.60,0.00,0.00,0.56,1.51,0.17 +78.00,0.00,48.00,0.50,1.80,0.28 +101.00,0.00,71.00,0.53,1.65,0.26 +42.00,0.00,12.00,0.52,1.59,0.19 +51.00,0.00,21.00,0.67,1.53,0.15 +61.00,0.00,31.00,0.58,1.53,0.19 +30.00,0.00,0.00,0.92,1.63,0.30 +43.00,0.00,13.00,0.54,1.53,0.17 +59.00,0.00,29.00,0.58,1.74,0.24 +50.00,0.00,20.00,0.84,1.68,0.35 +50.00,0.00,20.00,0.42,1.71,0.27 +72.00,0.00,42.00,0.52,1.76,0.37 +90.00,0.00,60.00,0.46,1.72,0.26 +27.20,1.00,10.00,1.21,1.76,0.23 +40.00,0.00,10.00,0.73,1.81,0.43 +30.00,0.00,0.00,0.65,1.53,0.16 +72.00,0.00,42.00,0.38,1.68,0.28 +58.90,1.00,33.00,0.57,1.60,0.22 +31.00,0.00,1.00,0.85,1.71,0.22 +5.30,0.00,0.00,1.01,1.61,0.18 +47.00,0.00,17.00,0.56,1.73,0.24 +97.30,1.00,78.00,0.57,1.59,0.22 +51.00,0.00,21.00,0.49,1.63,0.26 +30.00,0.00,0.00,0.54,1.54,0.20 +30.00,0.00,0.00,1.01,1.77,0.21 +44.00,0.00,14.00,0.54,1.67,0.23 +47.00,0.00,17.00,0.34,1.55,0.28 +48.20,1.00,33.00,0.59,1.54,0.20 +79.00,0.00,49.00,0.46,1.73,0.28 +44.00,0.00,14.00,0.34,1.61,0.32 +47.00,0.00,17.00,0.59,1.80,0.39 +7.30,0.00,0.00,0.35,1.60,0.27 +72.00,0.00,42.00,0.43,1.84,0.40 +69.50,1.00,53.00,0.51,1.57,0.21 +30.00,0.00,0.00,0.44,1.68,0.27 +51.00,0.00,21.00,0.41,1.85,0.39 +58.00,0.00,28.00,0.46,1.71,0.26 +30.00,0.00,0.00,0.58,1.63,0.24 +30.00,0.00,0.00,0.67,1.61,0.28 +72.00,0.00,42.00,0.35,1.57,0.25 +58.00,0.00,28.00,0.31,1.70,0.29 +42.00,0.00,12.00,0.36,1.65,0.31 +92.00,0.00,62.00,0.35,1.62,0.30 +44.00,0.00,14.00,0.57,1.68,0.27 +64.00,0.00,34.00,0.35,1.62,0.30 +51.00,0.00,21.00,0.52,1.65,0.28 +82.00,0.00,52.00,0.47,1.60,0.26 +47.00,0.00,17.00,0.66,1.52,0.19 +30.00,0.00,0.00,0.68,1.53,0.19 +2.10,0.00,0.00,0.44,1.82,0.39 +74.00,0.00,44.00,0.36,1.68,0.32 +4.10,0.00,0.00,0.57,1.51,0.17 +78.00,0.00,48.00,0.52,1.78,0.28 +9.00,0.00,0.00,0.70,1.68,0.23 +30.00,0.00,0.00,0.80,1.79,0.42 +86.00,0.00,56.00,0.57,1.71,0.24 +89.90,1.00,60.00,0.59,1.70,0.27 +47.00,0.00,17.00,0.38,1.69,0.28 +50.00,0.00,20.00,0.49,1.64,0.22 +59.00,0.00,29.00,0.60,1.70,0.28 +65.00,0.00,35.00,0.34,1.63,0.28 +53.00,0.00,23.00,0.48,1.71,0.32 +82.00,0.00,52.00,0.47,1.69,0.26 +73.50,1.00,44.00,0.33,1.60,0.31 +30.00,0.00,0.00,0.55,1.65,0.24 +67.00,0.00,37.00,0.59,1.59,0.22 +51.00,0.00,21.00,0.47,1.68,0.25 +44.10,1.00,35.00,1.01,1.77,0.21 +36.00,0.00,6.00,0.40,1.58,0.27 +96.00,0.00,66.00,0.46,1.64,0.24 +24.70,0.00,0.00,0.74,1.76,0.24 +53.00,0.00,23.00,0.30,1.55,0.30 +107.00,0.00,77.00,0.38,1.60,0.24 +83.00,0.00,53.00,0.59,1.67,0.23 +30.00,0.00,0.00,0.32,1.60,0.31 +63.00,0.00,33.00,0.59,1.66,0.24 +100.60,1.00,71.00,0.50,1.63,0.26 +59.00,0.00,29.00,0.41,1.67,0.26 +72.00,0.00,42.00,0.55,1.73,0.24 +53.10,1.00,40.00,0.51,1.70,0.24 +9.00,0.00,0.00,1.11,1.76,0.24 +71.00,0.00,41.00,0.37,1.60,0.25 +81.50,1.00,74.00,0.31,1.58,0.29 +43.00,0.00,13.00,0.55,1.52,0.17 +14.10,0.00,0.00,0.39,1.61,0.25 +81.00,0.00,51.00,0.31,1.62,0.31 +53.00,0.00,23.00,0.40,1.69,0.27 +79.00,0.00,49.00,0.61,1.76,0.24 +52.00,0.00,22.00,0.63,1.55,0.21 +48.00,0.00,18.00,0.45,1.64,0.25 +44.00,0.00,14.00,0.46,1.55,0.27 +23.00,1.00,0.00,0.45,1.66,0.24 +108.00,0.00,78.00,0.45,1.65,0.26 +28.10,0.00,0.00,0.58,1.53,0.17 +69.20,1.00,48.00,0.44,1.70,0.27 +30.00,0.00,0.00,0.72,1.70,0.23 +54.00,0.00,24.00,0.32,1.59,0.31 +50.00,0.00,20.00,0.40,1.60,0.24 +45.00,0.00,15.00,0.40,1.68,0.28 +29.40,0.00,0.00,0.61,1.74,0.32 +83.00,0.00,53.00,0.52,1.57,0.20 +88.00,0.00,58.00,0.42,1.66,0.25 +9.50,0.00,0.00,0.38,1.66,0.30 +45.00,0.00,15.00,0.53,1.68,0.24 +30.00,0.00,0.00,0.73,1.79,0.38 +30.00,0.00,0.00,0.69,1.55,0.18 +30.00,0.00,0.00,0.70,1.66,0.34 +30.00,0.00,0.00,1.04,1.69,0.21 +30.00,0.00,0.00,0.44,1.68,0.28 +30.00,0.00,0.00,0.61,1.75,0.24 +17.30,0.00,0.00,0.60,1.77,0.25 +19.90,0.00,0.00,0.93,1.75,0.22 +66.00,0.00,36.00,0.52,1.70,0.24 +47.00,0.00,17.00,0.46,1.71,0.26 +43.00,0.00,13.00,0.54,1.53,0.16 +46.70,1.00,17.00,0.95,1.63,0.18 +40.00,0.00,10.00,0.82,1.62,0.18 +27.20,1.00,10.00,0.79,1.82,0.53 +85.00,0.00,55.00,0.49,1.64,0.28 +1.70,0.00,0.00,0.45,1.67,0.25 +36.50,1.00,25.00,0.94,1.75,0.22 +58.00,0.00,28.00,0.32,1.72,0.29 +16.20,0.00,0.00,0.92,1.59,0.19 +30.00,0.00,0.00,0.56,1.65,0.24 +30.00,0.00,0.00,0.62,1.59,0.27 +24.70,0.00,0.00,0.52,1.57,0.20 +59.00,0.00,29.00,0.36,1.62,0.26 +29.40,0.00,0.00,0.57,1.71,0.24 +47.00,0.00,17.00,0.68,1.57,0.21 +65.00,0.00,35.00,0.35,1.65,0.31 +30.00,0.00,0.00,0.56,1.79,0.26 +45.00,0.00,15.00,0.41,1.70,0.27 +53.00,0.00,23.00,0.41,1.60,0.24 +108.00,0.00,78.00,0.65,1.54,0.18 +4.20,0.00,0.00,0.49,1.67,0.24 +79.00,0.00,49.00,0.46,1.65,0.25 +6.40,0.00,0.00,0.45,1.71,0.26 +56.10,1.00,39.00,0.61,1.56,0.20 +91.00,0.00,61.00,0.37,1.66,0.28 +63.00,0.00,33.00,0.50,1.65,0.24 +4.10,0.00,0.00,0.56,1.75,0.33 +30.00,0.00,0.00,0.96,1.84,0.54 +44.00,0.00,14.00,0.56,1.68,0.25 +51.00,0.00,21.00,0.43,1.73,0.27 +60.00,0.00,30.00,0.45,1.72,0.26 +90.00,0.00,60.00,0.50,1.69,0.28 +12.80,1.00,0.00,1.19,1.79,0.29 +15.60,0.00,0.00,0.32,1.60,0.31 +30.00,0.00,0.00,0.52,1.81,0.29 +31.00,1.00,28.00,0.39,1.56,0.28 +40.00,0.00,10.00,0.54,1.52,0.18 +50.00,0.00,20.00,0.62,1.52,0.18 +52.00,0.00,22.00,0.42,1.66,0.25 +72.20,1.00,71.00,0.39,1.61,0.24 +21.40,0.00,0.00,0.48,1.61,0.28 +37.00,0.00,7.00,0.58,1.54,0.20 +2.90,0.00,0.00,0.71,1.52,0.18 +54.30,1.00,35.00,0.56,1.80,0.28 +92.00,0.00,62.00,0.47,1.75,0.28 +61.00,0.00,31.00,0.32,1.58,0.31 +0.20,0.00,0.00,0.56,1.71,0.24 +44.00,0.00,14.00,0.54,1.59,0.18 +83.70,1.00,59.00,0.61,1.58,0.27 +30.00,0.00,0.00,0.37,1.54,0.28 +52.00,0.00,22.00,0.44,1.71,0.27 +52.00,0.00,22.00,0.74,1.60,0.22 +3.90,0.00,0.00,0.54,1.77,0.37 +5.00,0.00,0.00,0.58,1.57,0.26 +44.00,0.00,14.00,0.51,1.59,0.20 +44.20,1.00,17.00,0.71,1.59,0.21 +30.00,0.00,0.00,0.60,1.77,0.25 +101.00,0.00,71.00,0.64,1.57,0.20 +74.00,0.00,44.00,0.37,1.65,0.28 +74.00,0.00,44.00,0.38,1.67,0.29 +55.00,0.00,25.00,0.36,1.67,0.32 +85.00,0.00,55.00,0.36,1.55,0.27 +63.00,0.00,33.00,0.38,1.81,0.37 +63.00,0.00,33.00,0.33,1.62,0.28 +85.00,0.00,55.00,0.40,1.57,0.28 +30.00,0.00,0.00,0.62,1.59,0.27 +47.00,0.00,17.00,0.62,1.58,0.22 +21.90,0.00,0.00,0.42,1.85,0.40 +10.00,0.00,0.00,0.80,1.66,0.23 +60.00,0.00,30.00,0.70,1.55,0.16 +16.20,0.00,0.00,0.50,1.66,0.28 +52.00,0.00,22.00,0.43,1.69,0.25 +13.60,0.00,0.00,0.61,1.56,0.20 +3.10,0.00,0.00,0.53,1.59,0.19 +74.00,0.00,44.00,0.34,1.61,0.31 +73.00,1.00,57.00,0.35,1.59,0.26 +15.20,0.00,0.00,0.62,1.55,0.21 +30.00,0.00,0.00,0.54,1.58,0.19 +44.00,0.00,14.00,0.46,1.71,0.25 +44.00,0.00,14.00,0.39,1.50,0.26 +72.00,0.00,42.00,0.81,1.58,0.17 +83.00,0.00,53.00,0.76,1.62,0.28 +9.40,0.00,0.00,0.34,1.61,0.31 +42.00,0.00,12.00,0.93,1.63,0.18 +86.00,0.00,56.00,0.56,1.71,0.24 +19.90,0.00,0.00,0.38,1.67,0.28 +92.00,0.00,62.00,0.34,1.72,0.33 +3.40,0.00,0.00,0.56,1.52,0.17 +40.00,0.00,10.00,0.88,1.58,0.16 +8.00,0.00,0.00,0.36,1.63,0.30 +19.20,0.00,0.00,0.34,1.63,0.28 +59.00,0.00,29.00,0.38,1.66,0.30 +52.00,0.00,22.00,0.42,1.62,0.26 +63.00,0.00,33.00,0.54,1.54,0.20 +53.00,0.00,23.00,0.31,1.56,0.31 +18.50,1.00,0.00,1.01,1.68,0.21 +50.00,0.00,20.00,0.41,1.57,0.27 +60.00,0.00,30.00,0.70,1.55,0.15 +1.80,0.00,0.00,0.60,1.68,0.23 +77.00,0.00,47.00,0.55,1.66,0.23 +53.00,0.00,23.00,0.30,1.54,0.30 +82.30,1.00,60.00,0.47,1.66,0.27 +53.00,0.00,23.00,0.40,1.67,0.26 +28.90,0.00,0.00,0.54,1.53,0.17 +44.00,0.00,14.00,0.57,1.79,0.28 +57.00,0.00,27.00,0.42,1.67,0.26 +5.80,0.00,0.00,1.19,1.79,0.28 +69.00,0.00,39.00,0.33,1.58,0.27 +47.00,0.00,17.00,0.62,1.54,0.16 +74.00,0.00,44.00,0.32,1.60,0.28 +69.00,0.00,39.00,0.59,1.68,0.23 +44.00,0.00,14.00,0.33,1.59,0.32 +39.00,0.00,9.00,0.45,1.62,0.25 +53.00,0.00,23.00,0.48,1.55,0.26 +23.20,1.00,0.00,1.05,1.76,0.21 +80.00,0.00,50.00,0.59,1.62,0.22 +44.00,0.00,14.00,0.44,1.71,0.26 +92.00,0.00,62.00,0.67,1.52,0.19 +94.00,0.00,64.00,0.50,1.79,0.28 +30.00,0.00,0.00,0.80,1.66,0.25 +33.00,0.00,3.00,0.46,1.61,0.25 +30.00,0.00,0.00,0.54,1.57,0.18 +48.70,1.00,39.00,0.64,1.53,0.20 +25.80,1.00,0.00,0.70,1.53,0.19 +61.00,0.00,31.00,0.49,1.65,0.24 +30.00,0.00,0.00,0.61,1.70,0.23 +61.00,0.00,31.00,0.52,1.67,0.29 +5.60,0.00,0.00,0.86,1.68,0.36 +61.00,0.00,31.00,0.43,1.72,0.26 +74.00,0.00,44.00,0.32,1.60,0.28 +33.10,1.00,21.00,0.63,1.54,0.16 +44.00,0.00,14.00,0.62,1.80,0.24 +63.00,0.00,33.00,0.74,1.55,0.20 +58.00,0.00,28.00,0.67,1.74,0.34 +1.80,0.00,0.00,0.43,1.72,0.26 +92.00,0.00,62.00,0.42,1.71,0.27 +83.00,0.00,53.00,0.40,1.66,0.26 +30.00,0.00,0.00,0.58,1.58,0.22 +62.00,0.00,32.00,0.35,1.63,0.31 +24.00,1.00,16.00,0.51,1.83,0.29 +74.40,1.00,53.00,0.51,1.58,0.21 +85.00,0.00,55.00,0.38,1.55,0.25 +55.00,0.00,25.00,0.40,1.84,0.40 +17.90,0.00,0.00,1.03,1.77,0.21 +39.00,0.00,9.00,0.39,1.55,0.28 +69.00,0.00,39.00,0.43,1.71,0.26 +70.50,1.00,60.00,0.38,1.56,0.23 +87.00,0.00,57.00,0.35,1.60,0.27 +30.00,1.00,15.00,0.72,1.62,0.26 +74.00,0.00,44.00,0.38,1.68,0.29 +75.00,0.00,45.00,0.74,1.57,0.18 +77.70,1.00,62.00,0.62,1.69,0.24 +83.50,1.00,71.00,0.64,1.58,0.20 +30.00,0.00,0.00,0.82,1.60,0.16 +72.00,0.00,42.00,0.36,1.61,0.25 +16.10,1.00,0.00,1.02,1.78,0.25 +45.00,0.00,15.00,0.65,1.56,0.23 +30.00,0.00,0.00,0.57,1.79,0.26 +9.00,0.00,0.00,0.44,1.68,0.27 +34.00,0.00,4.00,0.60,1.60,0.25 +90.00,0.00,60.00,0.52,1.70,0.28 +4.00,0.00,0.00,0.94,1.71,0.20 +4.60,0.00,0.00,1.20,1.88,0.50 +82.30,1.00,55.00,0.40,1.57,0.28 +30.00,0.00,0.00,0.76,1.57,0.15 +45.00,0.00,15.00,0.44,1.66,0.25 +55.00,0.00,25.00,0.91,1.73,0.21 +74.00,0.00,44.00,0.42,1.85,0.40 +30.00,0.00,0.00,0.36,1.58,0.26 +44.60,1.00,39.00,0.44,1.58,0.25 +30.00,0.00,0.00,0.32,1.59,0.32 +48.00,0.00,18.00,0.56,1.68,0.23 +35.60,1.00,17.00,0.58,1.79,0.37 +63.00,0.00,33.00,0.54,1.71,0.24 +25.70,0.00,0.00,0.58,1.68,0.31 +49.00,0.00,19.00,0.76,1.63,0.22 +23.60,0.00,0.00,0.67,1.74,0.34 +29.50,0.00,0.00,0.53,1.70,0.23 +30.00,0.00,0.00,0.98,1.74,0.25 +5.00,0.00,0.00,0.61,1.55,0.21 +92.30,1.00,76.00,0.33,1.55,0.26 +26.60,1.00,1.00,0.61,1.60,0.26 +43.00,0.00,13.00,0.54,1.53,0.16 +13.20,0.00,0.00,0.63,1.55,0.22 +30.00,0.00,0.00,0.61,1.59,0.28 +77.60,1.00,63.00,0.56,1.71,0.24 +66.90,1.00,57.00,0.59,1.60,0.25 +13.70,1.00,0.00,1.12,1.76,0.24 +91.00,0.00,61.00,0.39,1.68,0.28 +40.00,0.00,10.00,0.84,1.62,0.18 +30.00,0.00,0.00,0.83,1.71,0.23 +30.00,0.00,0.00,0.32,1.53,0.27 +54.00,0.00,24.00,0.54,1.56,0.18 +30.00,0.00,0.00,0.81,1.58,0.17 +50.00,0.00,20.00,0.48,1.65,0.23 +52.00,0.00,22.00,0.43,1.60,0.24 +30.00,0.00,0.00,0.78,1.58,0.15 +66.00,0.00,36.00,0.44,1.78,0.37 +15.50,0.00,0.00,1.26,1.67,0.25 +41.00,0.00,11.00,0.37,1.67,0.30 +5.60,0.00,0.00,0.55,1.68,0.30 +72.00,0.00,42.00,0.50,1.78,0.39 +67.90,1.00,38.00,0.72,1.59,0.24 +90.00,0.00,60.00,0.43,1.60,0.25 +54.00,0.00,24.00,0.52,1.57,0.19 +1.20,0.00,0.00,0.42,1.79,0.38 +78.00,0.00,48.00,0.46,1.71,0.27 +48.00,0.00,18.00,0.44,1.61,0.25 +48.30,1.00,28.00,0.67,1.74,0.34 +30.00,0.00,0.00,0.85,1.70,0.23 +58.00,0.00,28.00,0.33,1.56,0.26 +50.00,0.00,20.00,0.43,1.57,0.25 +7.20,0.00,0.00,0.73,1.52,0.18 +67.00,1.00,42.00,0.83,1.80,0.40 +54.70,1.00,43.00,0.44,1.72,0.26 +51.00,0.00,21.00,0.49,1.63,0.26 +60.00,0.00,30.00,0.45,1.72,0.26 +29.90,0.00,0.00,0.39,1.67,0.27 +61.00,0.00,31.00,0.55,1.68,0.30 +47.00,0.00,17.00,0.46,1.71,0.26 +29.00,0.00,0.00,0.49,1.74,0.27 +30.00,0.00,0.00,0.70,1.50,0.17 +72.00,0.00,42.00,0.55,1.78,0.37 +1.30,0.00,0.00,0.54,1.65,0.22 +61.00,0.00,31.00,0.59,1.54,0.20 +51.00,0.00,21.00,0.43,1.73,0.27 +49.90,1.00,23.00,0.31,1.56,0.31 +70.00,0.00,40.00,0.43,1.57,0.25 +30.00,0.00,0.00,0.85,1.70,0.23 +58.00,0.00,28.00,0.67,1.74,0.34 +30.00,0.00,0.00,0.86,1.70,0.23 +43.00,0.00,13.00,0.41,1.67,0.26 +60.60,1.00,59.00,0.61,1.58,0.26 +104.40,1.00,77.00,0.40,1.62,0.24 +87.00,0.00,57.00,0.35,1.59,0.26 +51.00,0.00,21.00,0.84,1.57,0.18 +63.00,0.00,33.00,0.56,1.73,0.25 +82.00,0.00,52.00,0.50,1.65,0.29 +106.00,0.00,76.00,0.46,1.63,0.26 +69.60,1.00,58.00,0.94,1.62,0.17 +41.00,0.00,11.00,0.76,1.58,0.17 +55.00,0.00,25.00,0.56,1.58,0.21 +9.20,0.00,0.00,0.78,1.54,0.18 +30.00,0.00,0.00,0.64,1.66,0.23 +16.20,0.00,0.00,0.48,1.61,0.26 +43.00,0.00,13.00,0.53,1.70,0.23 +52.00,0.00,22.00,0.42,1.63,0.26 +108.00,0.00,78.00,0.57,1.68,0.34 +108.00,0.00,78.00,0.68,1.54,0.18 +30.00,0.00,0.00,0.52,1.64,0.22 +30.00,0.00,0.00,0.87,1.70,0.19 +92.00,0.00,62.00,0.39,1.68,0.28 +70.00,0.00,40.00,0.38,1.59,0.24 +15.30,0.00,0.00,0.62,1.50,0.17 +87.00,0.00,57.00,0.47,1.73,0.26 +0.60,0.00,0.00,0.71,1.72,0.25 +29.50,1.00,19.00,0.79,1.73,0.25 +58.00,0.00,28.00,0.32,1.60,0.31 +29.40,0.00,0.00,0.65,1.51,0.15 +43.20,1.00,24.00,0.39,1.85,0.41 +10.70,0.00,0.00,0.64,1.72,0.39 +30.00,0.00,0.00,0.38,1.57,0.24 +5.40,0.00,0.00,0.55,1.81,0.27 +65.00,0.00,35.00,0.34,1.60,0.30 +63.00,0.00,33.00,0.52,1.70,0.24 +28.40,0.00,0.00,0.37,1.81,0.37 +15.20,1.00,0.00,0.67,1.52,0.18 +53.30,1.00,31.00,0.65,1.71,0.34 +6.70,0.00,0.00,0.63,1.53,0.16 +21.30,1.00,0.00,0.83,1.66,0.25 +19.20,0.00,0.00,0.80,1.77,0.38 +71.00,0.00,41.00,0.36,1.60,0.25 +106.00,0.00,76.00,0.50,1.68,0.28 +10.30,0.00,0.00,0.55,1.65,0.22 +106.00,0.00,76.00,0.46,1.64,0.26 +43.10,1.00,37.00,0.59,1.58,0.22 +65.80,1.00,37.00,0.59,1.57,0.21 +41.00,0.00,11.00,0.68,1.78,0.24 +31.00,0.00,1.00,0.50,1.62,0.22 +59.00,0.00,29.00,0.41,1.67,0.26 +45.10,1.00,32.00,0.99,1.63,0.18 +106.00,0.00,76.00,0.47,1.64,0.26 +76.00,0.00,46.00,0.66,1.69,0.23 +69.00,0.00,39.00,0.61,1.60,0.28 +65.00,0.00,35.00,0.97,1.76,0.21 +47.00,0.00,17.00,0.46,1.70,0.27 +69.00,0.00,39.00,0.54,1.56,0.26 +83.00,0.00,53.00,0.56,1.66,0.22 +15.90,0.00,0.00,0.50,1.80,0.28 +61.00,0.00,31.00,0.43,1.72,0.26 +70.00,0.00,40.00,0.42,1.90,0.41 +63.90,1.00,57.00,0.43,1.69,0.25 +83.00,0.00,53.00,0.69,1.79,0.25 +30.00,0.00,0.00,0.85,1.67,0.25 +30.00,0.00,0.00,0.58,1.63,0.25 +91.00,0.00,61.00,0.35,1.64,0.30 +104.00,0.00,74.00,0.35,1.66,0.31 +4.40,0.00,0.00,0.79,1.57,0.16 +78.20,1.00,53.00,0.66,1.89,0.25 +46.30,1.00,40.00,0.40,1.60,0.24 +18.60,0.00,0.00,1.21,1.74,0.24 +30.00,0.00,0.00,0.33,1.61,0.27 +41.00,0.00,11.00,0.84,1.56,0.18 +64.00,0.00,34.00,0.34,1.65,0.29 +61.00,0.00,31.00,0.32,1.60,0.31 +9.60,0.00,0.00,1.17,1.66,0.20 +52.00,0.00,22.00,0.44,1.72,0.27 +85.00,0.00,55.00,0.49,1.63,0.28 +5.00,0.00,0.00,1.26,1.77,0.25 +33.80,1.00,31.00,0.61,1.79,0.25 +59.60,1.00,37.00,0.62,1.77,0.24 +53.80,1.00,45.00,0.57,1.64,0.25 +64.00,0.00,34.00,0.56,1.75,0.25 +44.00,0.00,14.00,0.51,1.60,0.20 +61.00,0.00,31.00,0.57,1.53,0.19 +41.00,0.00,11.00,0.43,1.66,0.24 +26.00,0.00,0.00,0.45,1.67,0.26 +53.00,0.00,23.00,0.62,1.68,0.30 +30.00,0.00,0.00,0.61,1.55,0.20 +68.00,0.00,38.00,0.34,1.53,0.27 +99.00,0.00,69.00,0.61,1.50,0.17 +30.00,0.00,0.00,0.36,1.63,0.30 +59.00,0.00,29.00,0.47,1.67,0.25 +22.30,1.00,20.00,0.78,1.68,0.31 +58.00,0.00,28.00,0.38,1.55,0.28 +64.00,1.00,39.00,0.61,1.55,0.21 +23.70,0.00,0.00,0.59,1.58,0.26 +23.70,1.00,0.00,0.33,1.48,0.27 +26.20,1.00,17.00,0.84,1.59,0.16 +45.00,0.00,15.00,0.41,1.70,0.27 +44.00,0.00,14.00,0.44,1.71,0.26 +22.50,1.00,17.00,0.62,1.57,0.22 +59.00,0.00,29.00,0.41,1.68,0.26 +26.80,1.00,13.00,0.46,1.66,0.26 +61.00,0.00,31.00,0.49,1.66,0.28 +63.70,1.00,55.00,0.40,1.58,0.27 +30.00,0.00,0.00,0.58,1.60,0.25 +77.80,1.00,62.00,0.81,1.55,0.18 +47.00,0.00,17.00,0.52,1.65,0.23 +5.90,0.00,0.00,0.78,1.57,0.16 +52.30,1.00,52.00,0.50,1.63,0.26 +66.00,0.00,36.00,0.47,1.65,0.24 +40.00,0.00,10.00,1.17,1.76,0.22 +65.00,0.00,35.00,0.32,1.60,0.31 +44.00,0.00,14.00,0.41,1.86,0.40 +82.00,0.00,52.00,0.52,1.64,0.30 +18.60,0.00,0.00,0.63,1.74,0.33 +9.40,0.00,0.00,0.67,1.78,0.24 +53.50,1.00,37.00,0.41,1.69,0.26 +74.40,1.00,53.00,0.45,1.71,0.28 +75.30,1.00,71.00,0.64,1.58,0.20 +45.00,0.00,15.00,0.54,1.68,0.24 +75.00,0.00,45.00,0.70,1.55,0.17 +39.40,1.00,14.00,0.47,1.71,0.25 +30.00,0.00,0.00,0.56,1.73,0.25 +44.00,0.00,14.00,0.59,1.69,0.29 +53.00,0.00,23.00,0.55,1.73,0.32 +40.00,0.00,10.00,0.83,1.62,0.18 +58.00,0.00,28.00,0.32,1.56,0.28 +44.00,0.00,14.00,0.51,1.58,0.20 +14.20,0.00,0.00,0.60,1.68,0.23 +6.70,0.00,0.00,0.34,1.62,0.29 +40.00,0.00,10.00,0.85,1.57,0.16 +30.00,0.00,0.00,0.60,1.60,0.28 +41.00,1.00,39.00,0.60,1.57,0.20 +61.00,0.00,31.00,0.62,1.80,0.25 +25.50,0.00,0.00,0.77,1.63,0.29 +71.00,0.00,41.00,0.68,1.68,0.23 +50.00,0.00,20.00,0.40,1.59,0.24 +51.00,0.00,21.00,0.63,1.54,0.16 +101.00,0.00,71.00,0.50,1.83,0.28 +88.00,0.00,58.00,0.63,1.68,0.23 +25.70,1.00,14.00,0.44,1.71,0.26 +89.00,0.00,59.00,0.61,1.58,0.27 +97.00,0.00,67.00,0.59,1.70,0.27 +9.90,0.00,0.00,0.60,1.83,0.26 +41.00,0.00,11.00,0.56,1.67,0.27 +30.00,0.00,0.00,0.91,1.73,0.21 +72.00,0.00,42.00,0.81,1.77,0.38 +30.00,0.00,0.00,0.68,1.64,0.24 +30.00,0.00,0.00,0.61,1.60,0.28 +44.00,0.00,14.00,0.56,1.68,0.25 +6.10,0.00,0.00,0.67,1.52,0.18 +54.00,0.00,24.00,0.40,1.83,0.40 +78.00,0.00,48.00,0.50,1.80,0.28 +29.30,0.00,0.00,0.37,1.81,0.37 +14.70,0.00,0.00,0.92,1.73,0.20 +42.00,0.00,12.00,0.52,1.59,0.19 +96.20,1.00,75.00,0.58,1.71,0.27 +8.60,0.00,0.00,0.45,1.71,0.28 +57.00,0.00,27.00,0.63,1.51,0.18 +6.60,0.00,0.00,0.55,1.58,0.19 +69.00,0.00,39.00,0.57,1.69,0.27 +47.00,0.00,17.00,0.52,1.72,0.31 +64.00,0.00,34.00,0.62,1.56,0.22 +30.00,0.00,0.00,0.70,1.61,0.29 +30.00,0.00,0.00,0.88,1.72,0.23 +58.00,0.00,28.00,0.47,1.68,0.25 +57.00,0.00,27.00,0.61,1.52,0.18 +56.00,0.00,26.00,0.52,1.65,0.22 +45.00,0.00,15.00,0.43,1.61,0.25 +64.00,0.00,34.00,0.38,1.66,0.30 +60.30,1.00,39.00,0.60,1.60,0.28 +76.80,1.00,56.00,0.56,1.71,0.24 +9.90,0.00,0.00,0.55,1.73,0.24 +45.50,1.00,21.00,0.47,1.68,0.25 +76.00,0.00,46.00,0.69,1.69,0.23 +92.00,0.00,62.00,0.43,1.73,0.27 +83.90,1.00,62.00,0.82,1.56,0.17 +70.00,0.00,40.00,0.39,1.62,0.25 +58.00,0.00,28.00,0.42,1.56,0.27 +53.00,0.00,23.00,0.31,1.56,0.31 +22.30,0.00,0.00,0.77,1.57,0.15 +66.00,0.00,36.00,0.45,1.70,0.27 +86.40,1.00,71.00,0.53,1.66,0.27 +55.00,0.00,25.00,0.57,1.57,0.20 +49.00,0.00,19.00,0.72,1.51,0.18 +3.00,0.00,0.00,0.87,1.82,0.50 +42.00,0.00,12.00,0.57,1.69,0.27 +104.60,1.00,78.00,0.63,1.53,0.18 +14.70,0.00,0.00,0.97,1.64,0.18 +81.00,0.00,51.00,0.48,1.65,0.27 +48.00,0.00,18.00,0.67,1.69,0.23 +13.30,0.00,0.00,0.35,1.59,0.27 +26.80,0.00,0.00,0.81,1.55,0.18 +40.70,1.00,18.00,0.56,1.52,0.17 +79.00,0.00,49.00,0.46,1.65,0.25 +69.00,0.00,39.00,1.01,1.77,0.24 +23.60,0.00,0.00,0.68,1.54,0.18 +36.00,0.00,6.00,0.56,1.60,0.22 +2.50,0.00,0.00,0.33,1.61,0.30 +68.30,1.00,57.00,0.46,1.70,0.26 +30.00,0.00,0.00,0.63,1.54,0.20 +79.00,0.00,49.00,0.71,1.60,0.26 +30.00,0.00,0.00,0.35,1.62,0.31 +66.00,0.00,36.00,0.35,1.60,0.28 +41.00,0.00,11.00,0.60,1.70,0.37 +30.00,0.00,0.00,0.82,1.61,0.17 +58.00,0.00,28.00,0.47,1.69,0.26 +0.50,0.00,0.00,0.82,1.58,0.17 +54.40,1.00,37.00,0.89,1.58,0.16 +65.00,0.00,35.00,0.34,1.62,0.29 +42.00,0.00,12.00,0.47,1.60,0.26 +30.00,0.00,0.00,0.54,1.56,0.18 +43.00,0.00,13.00,0.44,1.73,0.28 +30.00,0.00,0.00,0.74,1.79,0.39 +56.20,1.00,37.00,1.05,1.61,0.18 +3.40,0.00,0.00,0.77,1.66,0.28 +44.00,0.00,14.00,0.54,1.59,0.18 +80.00,0.00,50.00,0.38,1.66,0.28 +52.20,1.00,42.00,0.73,1.82,0.43 +30.00,0.00,0.00,1.00,1.78,0.22 +50.00,0.00,20.00,0.72,1.54,0.15 +49.00,0.00,19.00,0.36,1.60,0.25 +30.00,0.00,0.00,0.33,1.49,0.27 +71.00,0.00,41.00,0.61,1.70,0.23 +72.00,0.00,42.00,0.35,1.65,0.31 +30.00,0.00,0.00,1.17,1.87,0.50 +106.00,0.00,76.00,0.34,1.55,0.26 +30.00,0.00,0.00,0.66,1.52,0.19 +34.70,1.00,17.00,0.41,1.59,0.24 +71.00,0.00,41.00,0.36,1.59,0.26 +62.00,0.00,32.00,0.48,1.56,0.25 +82.50,1.00,60.00,0.37,1.57,0.23 +10.20,1.00,0.00,1.16,1.90,0.57 +44.00,0.00,14.00,0.62,1.60,0.23 +5.90,0.00,0.00,0.79,1.54,0.18 +48.00,0.00,18.00,0.47,1.62,0.23 +51.80,1.00,45.00,0.57,1.64,0.25 +17.20,0.00,0.00,0.61,1.55,0.21 +16.20,0.00,0.00,0.39,1.60,0.25 +58.00,0.00,28.00,0.32,1.74,0.29 +61.00,0.00,31.00,0.72,1.51,0.18 +37.90,1.00,37.00,1.07,1.75,0.22 +30.00,0.00,0.00,1.02,1.76,0.32 +30.00,0.00,0.00,0.46,1.64,0.26 +63.60,1.00,53.00,0.40,1.67,0.27 +30.00,0.00,0.00,0.55,1.71,0.24 +25.50,1.00,25.00,1.49,1.73,0.27 +48.80,1.00,20.00,0.68,1.50,0.17 +30.00,0.00,0.00,0.74,1.79,0.39 +26.30,0.00,0.00,1.00,1.77,0.21 +66.00,0.00,36.00,0.50,1.66,0.23 +58.00,0.00,28.00,0.32,1.59,0.31 +80.00,0.00,50.00,0.38,1.66,0.28 +30.00,0.00,0.00,0.33,1.59,0.31 +81.00,0.00,51.00,0.32,1.61,0.29 +3.90,0.00,0.00,0.49,1.70,0.29 +19.00,0.00,0.00,0.63,1.83,0.24 +27.10,0.00,0.00,0.82,1.56,0.17 +30.00,0.00,0.00,0.53,1.55,0.18 +30.00,0.00,0.00,0.78,1.79,0.38 +51.00,0.00,21.00,0.41,1.82,0.39 +57.60,1.00,36.00,0.38,1.58,0.28 +47.00,0.00,17.00,0.62,1.56,0.22 +30.00,0.00,0.00,0.60,1.52,0.18 +42.00,0.00,12.00,0.47,1.61,0.25 +48.00,0.00,18.00,0.33,1.65,0.30 +20.70,1.00,1.00,0.87,1.71,0.21 +18.60,0.00,0.00,0.57,1.68,0.23 +101.00,0.00,71.00,0.64,1.58,0.21 +64.00,0.00,34.00,0.42,1.70,0.27 +42.00,1.00,14.00,0.49,1.60,0.21 +30.00,0.00,0.00,0.58,1.53,0.17 +12.00,0.00,0.00,0.93,1.84,0.53 +41.00,0.00,11.00,0.66,1.77,0.25 +7.80,0.00,0.00,0.76,1.56,0.21 +77.90,1.00,50.00,0.37,1.65,0.29 +91.00,0.00,61.00,0.37,1.66,0.28 +41.00,0.00,11.00,0.77,1.59,0.17 +60.00,0.00,30.00,0.44,1.65,0.24 +30.00,0.00,0.00,0.92,1.83,0.42 +30.00,0.00,0.00,0.50,1.66,0.28 +73.00,0.00,43.00,0.61,1.68,0.23 +45.00,0.00,15.00,0.44,1.66,0.25 +10.70,0.00,0.00,1.00,1.85,0.44 +27.70,0.00,0.00,0.45,1.67,0.26 +52.00,0.00,22.00,0.36,1.62,0.26 +40.00,0.00,10.00,0.45,1.68,0.25 +51.00,0.00,21.00,0.49,1.63,0.26 +53.00,0.00,23.00,0.42,1.82,0.39 +30.00,0.00,0.00,0.77,1.73,0.23 +92.00,0.00,62.00,0.44,1.73,0.27 +82.00,0.00,52.00,0.51,1.64,0.27 +68.00,0.00,38.00,0.73,1.60,0.25 +7.30,0.00,0.00,0.52,1.65,0.26 +19.20,0.00,0.00,0.67,1.52,0.19 +72.00,0.00,42.00,0.36,1.60,0.25 +72.00,0.00,42.00,0.37,1.65,0.29 +14.80,1.00,0.00,1.16,1.73,0.23 +29.10,0.00,0.00,0.45,1.82,0.39 +0.90,0.00,0.00,0.82,1.56,0.18 +58.00,0.00,28.00,0.33,1.56,0.26 +71.00,0.00,41.00,0.53,1.82,0.28 +30.00,0.00,0.00,0.66,1.52,0.19 +30.00,0.00,0.00,0.42,1.60,0.24 +30.00,0.00,0.00,0.60,1.64,0.23 +68.00,0.00,38.00,0.73,1.62,0.27 +53.00,0.00,23.00,0.31,1.55,0.31 +44.00,0.00,14.00,0.62,1.60,0.22 +30.00,0.00,0.00,0.50,1.66,0.28 +30.00,0.00,0.00,0.62,1.55,0.21 +41.80,1.00,24.00,0.52,1.57,0.19 +72.00,0.00,42.00,0.50,1.80,0.40 +44.40,1.00,37.00,0.61,1.78,0.25 +51.00,0.00,21.00,0.49,1.64,0.25 +85.00,0.00,55.00,0.44,1.55,0.27 +20.40,0.00,0.00,0.55,1.73,0.24 +73.00,0.00,43.00,0.44,1.73,0.26 +59.00,0.00,29.00,0.42,1.67,0.25 +61.00,0.00,31.00,0.50,1.66,0.28 +47.00,0.00,17.00,0.93,1.62,0.18 +90.00,0.00,60.00,0.46,1.65,0.27 +30.00,0.00,0.00,0.62,1.51,0.18 +9.50,0.00,0.00,0.39,1.69,0.28 +30.00,0.00,0.00,0.86,1.81,0.50 +30.00,0.00,0.00,0.86,1.68,0.19 +48.30,1.00,41.00,0.61,1.49,0.15 +50.00,0.00,20.00,0.63,1.53,0.16 +61.00,0.00,31.00,0.63,1.71,0.33 +45.00,0.00,15.00,0.44,1.65,0.25 +98.00,0.00,68.00,0.41,1.68,0.26 +104.00,0.00,74.00,0.30,1.57,0.29 +70.00,1.00,68.00,0.36,1.63,0.29 +35.60,1.00,32.00,0.35,1.64,0.31 +29.70,0.00,0.00,0.46,1.72,0.26 +45.00,0.00,15.00,0.42,1.61,0.25 +83.00,0.00,53.00,0.43,1.70,0.26 +5.40,0.00,0.00,0.38,1.66,0.28 +66.00,0.00,36.00,0.43,1.70,0.32 +30.00,0.00,0.00,0.77,1.55,0.16 +43.00,0.00,13.00,0.43,1.70,0.26 +60.00,0.00,30.00,0.45,1.71,0.27 +67.60,1.00,39.00,0.35,1.55,0.28 +101.00,0.00,71.00,0.49,1.63,0.25 +44.00,0.00,14.00,0.39,1.50,0.26 +83.00,0.00,53.00,0.51,1.57,0.20 +0.30,0.00,0.00,1.50,1.73,0.27 +88.00,0.00,58.00,0.53,1.81,0.29 +12.50,0.00,0.00,0.66,1.52,0.19 +78.00,0.00,48.00,0.45,1.70,0.27 +14.60,0.00,0.00,0.58,1.51,0.17 +55.00,0.00,25.00,0.42,1.84,0.39 +6.10,0.00,0.00,1.03,1.77,0.20 +66.00,0.00,36.00,0.40,1.69,0.27 +50.00,0.00,20.00,0.81,1.62,0.18 +92.00,0.00,62.00,0.67,1.52,0.19 +12.40,0.00,0.00,0.43,1.70,0.26 +23.00,1.00,5.00,0.58,1.71,0.27 +30.00,0.00,0.00,0.40,1.69,0.27 +19.30,0.00,0.00,0.43,1.56,0.28 +60.00,0.00,30.00,0.53,1.71,0.24 +10.10,0.00,0.00,0.83,1.79,0.47 +30.00,0.00,0.00,0.89,1.83,0.41 +44.00,0.00,14.00,0.43,1.52,0.27 +15.30,0.00,0.00,0.60,1.74,0.24 +51.00,0.00,21.00,0.66,1.53,0.15 +101.00,0.00,71.00,0.34,1.48,0.27 +26.30,1.00,20.00,0.92,1.69,0.39 +73.60,1.00,50.00,0.59,1.59,0.22 +30.00,0.00,0.00,0.40,1.69,0.27 +56.00,0.00,26.00,0.52,1.65,0.23 +48.00,1.00,37.00,1.02,1.77,0.21 +73.50,1.00,59.00,0.59,1.58,0.26 +13.80,1.00,0.00,0.83,1.80,0.40 +33.40,1.00,29.00,0.68,1.61,0.24 +12.10,1.00,0.00,1.19,1.79,0.29 +92.00,0.00,62.00,0.33,1.60,0.31 +32.00,0.00,2.00,0.57,1.66,0.24 +69.00,0.00,39.00,0.65,1.53,0.19 +2.20,0.00,0.00,1.21,1.92,0.58 +63.00,0.00,33.00,0.42,1.70,0.28 +52.40,1.00,44.00,0.38,1.67,0.29 +51.00,0.00,21.00,0.35,1.63,0.31 +48.00,0.00,18.00,0.58,1.68,0.23 +63.00,0.00,33.00,0.56,1.54,0.20 +45.00,0.00,15.00,0.42,1.72,0.27 +93.70,1.00,69.00,0.63,1.51,0.17 +9.60,0.00,0.00,0.66,1.50,0.17 +60.00,0.00,30.00,0.32,1.71,0.29 +8.90,0.00,0.00,0.40,1.57,0.28 +18.40,1.00,0.00,0.98,1.76,0.21 +59.00,0.00,29.00,0.70,1.72,0.25 +78.40,1.00,56.00,0.57,1.71,0.24 +25.70,0.00,0.00,0.82,1.59,0.17 +30.00,0.00,0.00,0.38,1.57,0.28 +92.00,0.00,62.00,0.80,1.54,0.17 +30.00,0.00,0.00,0.72,1.67,0.35 +82.00,0.00,52.00,0.47,1.69,0.26 +44.00,0.00,14.00,0.55,1.67,0.24 +83.00,0.00,53.00,0.50,1.58,0.20 +21.60,0.00,0.00,0.81,1.79,0.41 +76.20,1.00,61.00,0.39,1.68,0.28 +45.00,0.00,15.00,1.04,1.62,0.17 +57.00,0.00,27.00,0.42,1.67,0.26 +0.40,0.00,0.00,0.72,1.52,0.18 +32.30,1.00,20.00,0.69,1.50,0.17 +47.00,1.00,41.00,0.68,1.68,0.23 +21.00,0.00,0.00,0.64,1.53,0.20 +30.00,0.00,0.00,0.41,1.62,0.24 +14.90,0.00,0.00,0.32,1.68,0.28 +52.00,0.00,22.00,0.42,1.67,0.25 +41.00,0.00,11.00,0.48,1.61,0.26 +30.00,0.00,0.00,0.58,1.53,0.17 +18.30,0.00,0.00,0.81,1.55,0.18 +41.00,1.00,36.00,0.47,1.65,0.27 +30.00,0.00,0.00,0.54,1.83,0.29 +25.50,0.00,0.00,0.42,1.70,0.28 +98.00,0.00,68.00,0.32,1.60,0.31 +61.00,0.00,31.00,0.36,1.65,0.32 +65.00,0.00,35.00,0.34,1.63,0.28 +34.00,0.00,4.00,0.56,1.56,0.26 +55.20,1.00,33.00,0.76,1.56,0.21 +85.00,0.00,55.00,0.38,1.55,0.28 +57.00,0.00,27.00,0.43,1.67,0.26 +91.00,0.00,61.00,0.36,1.64,0.29 +13.20,0.00,0.00,0.44,1.72,0.26 +23.90,0.00,0.00,0.38,1.65,0.26 +20.00,0.00,0.00,0.56,1.63,0.24 +40.20,1.00,14.00,0.46,1.55,0.27 +72.00,0.00,42.00,0.42,1.85,0.40 +22.80,0.00,0.00,0.57,1.76,0.25 +30.00,0.00,0.00,0.40,1.69,0.27 +60.00,0.00,30.00,0.32,1.73,0.28 +30.00,0.00,0.00,1.09,1.71,0.22 +33.00,0.00,3.00,0.65,1.69,0.30 +44.00,0.00,14.00,0.44,1.64,0.26 +49.00,0.00,19.00,0.43,1.73,0.26 +40.00,0.00,10.00,0.83,1.62,0.18 +50.00,0.00,20.00,0.41,1.57,0.27 +49.00,0.00,19.00,0.33,1.72,0.28 +53.10,1.00,33.00,0.60,1.67,0.24 +22.20,1.00,0.00,1.16,1.76,0.22 +30.00,0.00,0.00,0.99,1.77,0.21 +90.00,0.00,60.00,0.39,1.57,0.23 +22.40,1.00,11.00,0.82,1.60,0.18 +26.90,0.00,0.00,0.65,1.75,0.34 +29.80,0.00,0.00,0.55,1.81,0.27 +4.20,0.00,0.00,0.49,1.62,0.22 +44.00,0.00,14.00,0.71,2.05,0.26 +65.20,1.00,40.00,0.42,1.88,0.40 +106.00,0.00,76.00,0.47,1.64,0.26 +81.00,0.00,51.00,0.33,1.59,0.28 +82.00,0.00,52.00,0.46,1.61,0.25 +61.00,0.00,31.00,0.51,1.67,0.28 +52.00,0.00,22.00,0.37,1.65,0.27 +33.00,1.00,20.00,0.80,1.79,0.45 +30.00,0.00,0.00,0.86,1.70,0.19 +101.00,0.00,71.00,0.50,1.82,0.28 +8.20,0.00,0.00,1.03,1.76,0.25 +53.00,0.00,23.00,0.68,1.72,0.33 +60.00,0.00,30.00,0.46,1.65,0.24 +62.20,1.00,39.00,0.64,1.53,0.20 +36.10,1.00,25.00,1.16,1.65,0.24 +30.00,0.00,0.00,0.54,1.54,0.18 +30.00,0.00,0.00,0.37,1.55,0.27 +87.00,0.00,57.00,0.43,1.68,0.25 +106.00,0.00,76.00,0.47,1.65,0.27 +22.80,1.00,0.00,1.05,1.75,0.21 +36.00,0.00,6.00,0.56,1.63,0.24 +74.00,0.00,44.00,0.32,1.60,0.28 +73.00,0.00,43.00,0.43,1.72,0.26 +70.10,1.00,47.00,0.94,1.59,0.22 +80.00,0.00,50.00,0.36,1.65,0.29 +47.00,0.00,17.00,0.56,1.73,0.24 +27.50,1.00,26.00,1.11,1.76,0.24 +10.70,0.00,0.00,0.45,1.69,0.26 +48.00,0.00,18.00,0.46,1.62,0.24 +21.90,0.00,0.00,0.88,1.70,0.23 +34.00,0.00,4.00,0.32,1.81,0.28 +52.60,1.00,48.00,0.44,1.70,0.27 +92.00,0.00,62.00,0.30,1.56,0.30 +14.10,1.00,0.00,1.19,1.74,0.24 +9.00,0.00,0.00,0.61,1.52,0.18 +33.90,1.00,20.00,0.70,1.50,0.17 +101.00,0.00,71.00,0.38,1.58,0.24 +49.00,0.00,19.00,0.34,1.60,0.26 +30.00,0.00,0.00,0.32,1.60,0.31 +44.00,0.00,14.00,0.45,1.54,0.27 +72.00,0.00,42.00,0.43,1.83,0.39 +23.50,1.00,23.00,0.67,1.72,0.32 +73.00,0.00,43.00,0.39,1.66,0.27 +51.00,0.00,21.00,0.91,1.62,0.17 +17.00,0.00,0.00,1.19,1.79,0.28 +71.00,0.00,41.00,0.66,1.68,0.23 +12.90,0.00,0.00,0.46,1.65,0.25 +36.30,1.00,18.00,0.68,1.69,0.23 +17.00,0.00,0.00,0.80,1.79,0.45 +22.80,0.00,0.00,0.39,1.68,0.28 +21.90,0.00,0.00,0.82,1.67,0.33 +34.10,1.00,15.00,0.65,1.56,0.23 +63.00,0.00,33.00,0.53,1.56,0.20 +52.10,1.00,28.00,0.32,1.56,0.27 +31.40,1.00,30.00,0.71,1.55,0.15 +18.00,0.00,0.00,0.62,1.68,0.23 +80.00,0.00,50.00,0.38,1.66,0.27 +0.40,0.00,0.00,0.67,1.71,0.24 +27.20,0.00,0.00,0.80,1.54,0.18 +43.00,0.00,13.00,0.38,1.67,0.29 +30.00,0.00,0.00,0.37,1.55,0.25 +70.00,0.00,40.00,0.54,1.69,0.23 +30.00,0.00,0.00,0.70,1.77,0.38 +11.60,0.00,0.00,0.61,1.75,0.33 +30.00,0.00,0.00,0.63,1.54,0.20 +40.40,1.00,21.00,0.89,1.59,0.18 +2.30,0.00,0.00,0.43,1.52,0.27 +70.00,0.00,40.00,0.54,1.69,0.23 +49.00,0.00,19.00,0.35,1.60,0.26 +87.00,0.00,57.00,0.68,1.61,0.28 +28.30,1.00,12.00,0.52,1.59,0.19 +30.00,0.00,0.00,0.46,1.63,0.26 +63.00,0.00,33.00,0.43,1.70,0.27 +56.00,0.00,26.00,0.52,1.65,0.22 +94.10,1.00,71.00,0.52,1.65,0.26 +49.00,0.00,19.00,0.33,1.72,0.28 +30.00,0.00,0.00,0.85,1.81,0.40 +37.00,0.00,7.00,0.74,1.67,0.31 +53.00,0.00,23.00,0.40,1.68,0.27 +51.00,0.00,21.00,0.87,1.58,0.18 +45.90,1.00,39.00,0.61,1.55,0.21 +17.70,0.00,0.00,0.69,1.50,0.17 +80.00,0.00,50.00,0.38,1.66,0.28 +56.00,0.00,26.00,0.37,1.67,0.30 +30.00,0.00,0.00,0.36,1.57,0.25 +71.00,0.00,41.00,0.37,1.60,0.25 +39.00,0.00,9.00,0.47,1.63,0.26 +30.00,0.00,0.00,0.60,1.60,0.28 +32.90,1.00,22.00,0.42,1.67,0.25 +30.00,0.00,0.00,0.99,1.64,0.30 +90.00,0.00,60.00,0.43,1.60,0.25 +66.00,0.00,36.00,0.53,1.68,0.23 +42.00,0.00,12.00,0.35,1.62,0.26 +48.00,0.00,18.00,0.35,1.65,0.32 +4.10,0.00,0.00,0.57,1.60,0.22 +71.00,0.00,41.00,0.70,1.68,0.23 +71.00,0.00,41.00,0.61,1.49,0.15 +82.00,0.00,52.00,0.51,1.64,0.27 +30.00,0.00,0.00,0.38,1.67,0.28 +87.00,0.00,57.00,0.46,1.70,0.26 +33.00,0.00,3.00,0.46,1.63,0.26 +30.00,0.00,0.00,0.89,1.67,0.26 +39.20,1.00,10.00,0.84,1.57,0.16 +60.50,1.00,39.00,0.61,1.56,0.20 +105.00,0.00,75.00,0.60,1.70,0.28 +14.10,1.00,10.00,1.14,1.64,0.20 +101.00,0.00,71.00,0.38,1.58,0.27 +7.10,0.00,0.00,1.27,1.80,0.30 +33.00,0.00,3.00,0.53,1.82,0.28 +97.00,0.00,67.00,0.57,1.68,0.33 +25.50,0.00,0.00,0.52,1.57,0.20 +74.00,0.00,44.00,0.32,1.63,0.29 +29.00,0.00,0.00,0.56,1.52,0.17 +44.00,0.00,14.00,0.59,1.77,0.25 +39.70,1.00,23.00,0.35,1.59,0.27 +44.00,0.00,14.00,0.44,1.71,0.25 +87.00,0.00,57.00,0.49,1.75,0.28 +82.00,0.00,52.00,0.47,1.60,0.26 +48.00,0.00,18.00,0.41,1.63,0.25 +2.50,0.00,0.00,0.92,1.81,0.44 +28.40,0.00,0.00,0.98,1.61,0.19 +96.00,0.00,66.00,0.49,1.64,0.22 +16.10,0.00,0.00,0.60,1.70,0.37 +69.00,0.00,39.00,0.44,1.58,0.25 +27.30,0.00,0.00,0.66,1.56,0.21 +69.00,0.00,39.00,0.61,1.55,0.21 +82.80,1.00,62.00,0.82,1.59,0.17 +21.90,1.00,0.00,0.74,1.79,0.43 +58.00,0.00,28.00,0.65,1.75,0.34 +58.00,0.00,28.00,0.34,1.56,0.26 +25.80,1.00,0.00,1.14,1.77,0.27 +22.70,0.00,0.00,0.59,1.51,0.16 +30.00,0.00,0.00,0.63,1.51,0.18 +72.00,0.00,42.00,0.43,1.71,0.27 +13.30,1.00,11.00,0.42,1.65,0.25 +87.10,1.00,76.00,0.52,1.70,0.30 +15.10,0.00,0.00,0.83,1.62,0.18 +63.00,0.00,33.00,0.44,1.69,0.27 +101.00,0.00,71.00,0.37,1.56,0.24 +30.00,0.00,0.00,1.05,1.78,0.30 +30.00,0.00,0.00,0.65,1.63,0.24 +10.20,0.00,0.00,0.63,1.69,0.23 +67.00,0.00,37.00,1.03,1.77,0.21 +42.00,0.00,12.00,0.50,1.82,0.41 +47.00,0.00,17.00,0.41,1.60,0.24 +64.00,0.00,34.00,0.33,1.64,0.29 +30.00,0.00,0.00,0.80,1.56,0.17 +30.00,0.00,0.00,0.56,1.73,0.32 +30.00,0.00,0.00,0.54,1.55,0.18 +44.00,0.00,14.00,0.55,1.68,0.24 +74.00,0.00,44.00,0.56,1.57,0.21 +30.00,0.00,0.00,0.49,1.67,0.28 +61.00,0.00,31.00,0.59,1.69,0.32 +30.00,0.00,0.00,0.74,1.59,0.22 +5.80,0.00,0.00,0.78,1.57,0.15 +30.00,0.00,0.00,1.05,1.79,0.27 +43.00,0.00,13.00,0.41,1.68,0.26 +30.00,0.00,0.00,0.51,1.69,0.28 +51.00,0.00,21.00,0.94,1.63,0.17 +58.00,0.00,28.00,0.32,1.60,0.28 +72.00,1.00,42.00,0.45,1.73,0.28 +59.20,1.00,39.00,0.58,1.68,0.23 +19.50,0.00,0.00,0.59,1.57,0.22 +85.90,1.00,62.00,0.68,1.53,0.19 +76.00,1.00,62.00,0.31,1.58,0.31 +52.00,0.00,22.00,0.75,1.62,0.22 +30.00,0.00,0.00,0.88,1.67,0.25 +71.00,0.00,41.00,0.66,1.68,0.23 +18.40,1.00,10.00,1.14,1.64,0.20 +84.00,0.00,54.00,0.48,1.69,0.30 +72.00,0.00,42.00,0.35,1.57,0.25 +13.90,0.00,0.00,0.37,1.60,0.25 +0.40,0.00,0.00,0.50,1.63,0.26 +44.00,0.00,14.00,0.65,1.63,0.24 +13.50,0.00,0.00,0.38,1.67,0.28 +71.00,0.00,41.00,0.35,1.59,0.26 +73.00,0.00,43.00,0.44,1.73,0.27 +13.00,0.00,0.00,0.64,1.53,0.15 +98.00,0.00,68.00,0.34,1.61,0.31 +75.10,1.00,54.00,0.50,1.71,0.30 +55.00,0.00,25.00,0.43,1.79,0.38 +61.50,1.00,39.00,0.61,1.55,0.21 +98.00,0.00,68.00,0.40,1.66,0.26 +48.00,0.00,18.00,0.65,1.49,0.16 +50.00,0.00,20.00,0.74,1.52,0.18 +37.00,0.00,7.00,0.52,1.55,0.19 +16.20,0.00,0.00,0.46,1.67,0.26 +64.00,0.00,34.00,0.33,1.60,0.31 +96.00,0.00,66.00,0.48,1.63,0.23 +56.00,0.00,26.00,0.45,1.62,0.25 +85.00,0.00,55.00,0.42,1.56,0.28 +64.40,1.00,37.00,0.53,1.71,0.30 +56.00,0.00,26.00,0.78,1.58,0.15 +26.60,1.00,12.00,0.94,1.63,0.17 +69.00,0.00,39.00,0.40,1.65,0.27 +64.00,0.00,34.00,0.56,1.75,0.25 +19.80,0.00,0.00,0.48,1.66,0.24 +47.00,0.00,17.00,0.41,1.58,0.24 +76.00,0.00,46.00,0.69,1.69,0.23 +74.30,1.00,48.00,0.49,1.78,0.28 +45.00,0.00,15.00,0.63,1.50,0.15 +52.30,1.00,28.00,0.47,1.69,0.26 +104.60,1.00,76.00,0.53,1.70,0.29 +18.00,0.00,0.00,0.70,1.54,0.15 +58.00,0.00,28.00,0.33,1.56,0.26 +50.00,0.00,20.00,0.70,1.77,0.25 +30.00,0.00,0.00,0.64,1.53,0.16 +30.00,0.00,0.00,0.48,1.62,0.28 +39.00,0.00,9.00,0.35,1.64,0.30 +47.30,1.00,33.00,0.59,1.67,0.24 +11.30,0.00,0.00,0.52,1.81,0.29 +53.30,1.00,52.00,0.50,1.63,0.26 +40.00,0.00,10.00,0.44,1.67,0.25 +50.00,0.00,20.00,0.63,1.52,0.18 +74.00,0.00,44.00,0.35,1.61,0.28 +48.00,0.00,18.00,0.53,1.58,0.18 +50.00,0.00,20.00,0.77,1.67,0.29 +83.90,1.00,61.00,0.39,1.69,0.28 +87.00,0.00,57.00,0.59,1.62,0.25 +4.60,0.00,0.00,0.47,1.67,0.25 +52.00,0.00,22.00,0.37,1.63,0.27 +30.00,0.00,0.00,0.41,1.62,0.24 +3.90,0.00,0.00,1.02,1.77,0.21 +69.00,0.00,39.00,0.63,1.54,0.20 +14.70,0.00,0.00,0.47,1.64,0.26 +101.00,0.00,71.00,0.38,1.56,0.25 +11.70,0.00,0.00,0.70,1.52,0.19 +43.00,0.00,13.00,0.78,1.57,0.16 +52.00,0.00,22.00,0.43,1.60,0.24 +59.30,1.00,58.00,0.61,1.68,0.23 +8.50,0.00,0.00,0.60,1.70,0.37 +30.00,0.00,0.00,0.45,1.62,0.26 +41.00,0.00,11.00,0.70,1.81,0.24 +74.00,0.00,44.00,0.38,1.67,0.29 +42.00,0.00,12.00,0.55,1.62,0.25 +51.00,0.00,21.00,0.52,1.65,0.28 +72.00,0.00,42.00,0.44,1.73,0.27 +17.90,0.00,0.00,0.56,1.71,0.24 +72.00,0.00,42.00,0.39,1.69,0.28 +30.00,0.00,0.00,0.33,1.59,0.31 +60.00,0.00,30.00,0.45,1.72,0.27 +60.00,0.00,30.00,0.32,1.63,0.29 +85.00,0.00,55.00,0.38,1.54,0.28 +41.00,0.00,11.00,0.48,1.61,0.26 +50.00,0.00,20.00,0.58,1.64,0.22 +69.00,0.00,39.00,0.44,1.58,0.25 +37.00,0.00,7.00,0.75,1.67,0.30 +9.40,0.00,0.00,0.83,1.65,0.18 +30.00,0.00,0.00,0.82,1.80,0.40 +98.00,0.00,68.00,0.40,1.56,0.25 +17.30,0.00,0.00,0.58,1.69,0.26 +30.00,0.00,0.00,0.90,1.82,0.41 +96.20,1.00,78.00,0.65,1.54,0.18 +92.10,1.00,71.00,0.33,1.47,0.26 +30.00,0.00,0.00,0.55,1.62,0.25 +60.00,0.00,30.00,0.38,1.68,0.28 +16.90,0.00,0.00,1.00,1.75,0.25 +81.40,1.00,74.00,0.31,1.58,0.29 +69.00,0.00,39.00,0.61,1.55,0.21 +108.00,0.00,78.00,0.68,1.54,0.17 +71.00,0.00,41.00,0.67,1.68,0.23 +51.00,0.00,21.00,0.40,1.67,0.27 +30.00,0.00,0.00,0.83,1.66,0.18 +73.10,1.00,47.00,0.90,1.58,0.22 +61.00,0.00,31.00,0.33,1.60,0.31 +61.00,0.00,31.00,0.43,1.73,0.26 +50.00,0.00,20.00,0.55,1.54,0.20 +18.80,0.00,0.00,0.71,1.69,0.22 +30.00,0.00,0.00,0.65,1.63,0.24 +12.80,1.00,10.00,0.80,1.83,0.55 +49.00,0.00,19.00,0.73,1.72,0.25 +43.00,0.00,13.00,0.68,1.74,0.41 +90.00,0.00,60.00,0.39,1.61,0.25 +11.50,0.00,0.00,0.43,1.55,0.27 +14.00,0.00,0.00,0.55,1.71,0.31 +4.40,0.00,0.00,0.51,1.71,0.30 +11.10,0.00,0.00,0.59,1.53,0.19 +13.50,0.00,0.00,0.41,1.69,0.26 +79.00,0.00,49.00,0.44,1.72,0.28 +26.90,0.00,0.00,0.59,1.57,0.20 +86.00,0.00,56.00,0.45,1.72,0.26 +76.00,0.00,46.00,0.34,1.55,0.28 +23.40,0.00,0.00,0.43,1.73,0.27 +23.40,1.00,17.00,0.56,1.68,0.25 +33.00,0.00,3.00,0.32,1.64,0.31 +91.00,0.00,61.00,0.39,1.69,0.28 +30.00,0.00,0.00,0.37,1.55,0.28 +30.00,0.00,0.00,0.54,1.58,0.19 +72.00,0.00,42.00,0.38,1.66,0.27 +45.00,0.00,15.00,0.40,1.68,0.28 +57.40,1.00,32.00,0.47,1.67,0.24 +30.00,0.00,0.00,0.74,1.79,0.43 +30.00,0.00,0.00,0.32,1.60,0.31 +25.30,1.00,20.00,0.74,1.76,0.24 +3.60,0.00,0.00,0.32,1.62,0.29 +41.00,0.00,11.00,0.67,1.78,0.24 +28.70,0.00,0.00,0.47,1.63,0.23 +66.00,0.00,36.00,0.47,1.67,0.26 +30.00,0.00,0.00,0.69,1.77,0.38 +40.90,1.00,20.00,0.49,1.64,0.22 +41.00,1.00,23.00,0.39,1.66,0.26 +36.00,0.00,6.00,0.38,1.55,0.24 +62.00,0.00,32.00,0.35,1.66,0.32 +42.00,0.00,12.00,0.57,1.63,0.25 +48.00,0.00,18.00,0.32,1.65,0.30 +30.00,0.00,0.00,0.70,1.78,0.38 +7.60,0.00,0.00,1.09,1.63,0.23 +30.00,0.00,0.00,0.62,1.59,0.27 +48.00,0.00,18.00,0.42,1.67,0.26 +28.50,0.00,0.00,0.59,1.75,0.25 +76.80,1.00,71.00,0.49,1.64,0.25 +8.50,0.00,0.00,0.46,1.73,0.27 +20.30,1.00,0.00,0.59,1.64,0.24 +24.30,0.00,0.00,0.60,1.70,0.28 +30.00,0.00,0.00,0.44,1.73,0.28 +18.90,0.00,0.00,0.47,1.65,0.24 +50.00,0.00,20.00,0.49,1.64,0.22 +20.50,0.00,0.00,0.45,1.71,0.27 +84.00,0.00,54.00,0.46,1.63,0.26 +58.00,0.00,28.00,0.68,1.74,0.35 +80.70,1.00,60.00,0.56,1.68,0.33 +31.00,0.00,1.00,0.51,1.64,0.29 +39.00,0.00,9.00,0.36,1.65,0.29 +44.00,0.00,14.00,0.62,1.64,0.27 +47.00,0.00,17.00,0.52,1.82,0.28 +44.00,0.00,14.00,0.53,1.59,0.19 +54.70,1.00,53.00,0.81,1.67,0.23 +66.00,0.00,36.00,0.36,1.63,0.28 +65.00,0.00,35.00,0.53,1.66,0.30 +47.00,0.00,17.00,0.40,1.56,0.28 +30.00,0.00,0.00,0.79,1.57,0.16 +60.00,0.00,30.00,0.70,1.55,0.17 +30.00,0.00,0.00,0.32,1.59,0.32 +45.00,0.00,15.00,0.43,1.67,0.24 +36.40,1.00,26.00,0.59,1.78,0.36 +22.60,1.00,0.00,0.53,1.81,0.29 +61.00,0.00,31.00,0.58,1.53,0.19 +106.00,0.00,76.00,0.33,1.56,0.26 +61.00,0.00,31.00,0.50,1.66,0.28 +50.00,0.00,20.00,0.55,1.54,0.20 +12.50,0.00,0.00,0.37,1.56,0.28 +51.00,0.00,21.00,0.80,1.59,0.16 +52.00,0.00,22.00,0.62,1.55,0.21 +21.40,0.00,0.00,0.67,1.61,0.28 +6.20,0.00,0.00,0.60,1.52,0.18 +72.00,0.00,42.00,0.35,1.59,0.25 +101.00,0.00,71.00,0.39,1.59,0.24 +60.20,1.00,39.00,0.34,1.55,0.27 +48.10,1.00,44.00,0.36,1.63,0.31 +55.00,0.00,25.00,0.69,1.82,0.25 +30.00,0.00,0.00,0.60,1.56,0.20 +30.00,0.00,0.00,0.52,1.70,0.28 +60.00,0.00,30.00,0.55,1.71,0.25 +85.40,1.00,69.00,0.60,1.50,0.17 +6.20,0.00,0.00,0.94,1.63,0.18 +97.20,1.00,68.00,0.39,1.64,0.26 +30.00,0.00,0.00,0.55,1.62,0.25 +7.80,0.00,0.00,0.63,1.55,0.21 +78.00,0.00,48.00,0.52,1.78,0.28 +45.00,0.00,15.00,0.69,1.60,0.25 +53.00,0.00,23.00,0.31,1.57,0.31 +42.00,0.00,12.00,0.53,1.62,0.25 +13.80,0.00,0.00,0.47,1.71,0.25 +46.00,0.00,16.00,0.47,1.68,0.25 +69.00,0.00,39.00,0.41,1.62,0.26 +5.80,0.00,0.00,0.44,1.71,0.25 +30.00,0.00,0.00,0.48,1.55,0.25 +73.00,0.00,43.00,0.44,1.73,0.26 +22.20,0.00,0.00,0.69,1.93,0.25 +46.00,0.00,16.00,0.45,1.65,0.26 +44.60,1.00,39.00,0.61,1.55,0.21 +30.00,0.00,0.00,1.18,1.79,0.29 +0.90,0.00,0.00,1.29,1.68,0.25 +25.30,0.00,0.00,0.67,1.60,0.28 +92.00,0.00,62.00,0.44,1.73,0.27 +58.00,0.00,28.00,0.65,1.74,0.34 +45.00,0.00,15.00,0.42,1.61,0.25 +13.30,0.00,0.00,0.68,1.80,0.38 +23.20,0.00,0.00,0.87,1.82,0.51 +85.00,0.00,55.00,0.45,1.53,0.27 +14.90,0.00,0.00,0.37,1.57,0.25 +5.60,0.00,0.00,0.55,1.63,0.24 +83.00,0.00,53.00,0.45,1.71,0.28 +30.00,0.00,0.00,0.67,1.53,0.16 +30.00,0.00,0.00,0.61,1.67,0.24 +30.00,0.00,0.00,0.49,1.66,0.28 +17.70,0.00,0.00,0.82,1.78,0.25 +3.50,0.00,0.00,1.18,1.80,0.29 +86.00,0.00,56.00,0.55,1.81,0.28 +9.10,0.00,0.00,0.52,1.57,0.20 +24.60,1.00,21.00,0.80,1.59,0.16 +30.00,0.00,0.00,0.41,1.57,0.27 +25.10,1.00,18.00,0.41,1.64,0.25 +10.10,0.00,0.00,0.58,1.71,0.23 +17.90,0.00,0.00,0.56,1.52,0.17 +81.90,1.00,52.00,0.50,1.63,0.26 +27.20,1.00,10.00,0.94,1.60,0.17 +47.00,0.00,17.00,0.38,1.68,0.29 +97.00,0.00,67.00,0.57,1.68,0.33 +44.00,0.00,14.00,0.33,1.61,0.32 +14.30,0.00,0.00,0.38,1.64,0.26 +52.00,0.00,22.00,0.42,1.62,0.26 +10.50,0.00,0.00,0.72,1.54,0.20 +1.40,0.00,0.00,0.61,1.74,0.32 +17.90,0.00,0.00,0.59,1.72,0.23 +73.70,1.00,51.00,0.49,1.65,0.28 +3.10,1.00,0.00,1.48,1.73,0.27 +8.50,0.00,0.00,0.46,1.62,0.24 +75.90,1.00,48.00,0.51,1.74,0.27 +91.00,0.00,61.00,0.36,1.64,0.29 +13.50,0.00,0.00,0.71,1.54,0.15 +39.20,1.00,30.00,0.60,1.66,0.23 +74.00,0.00,44.00,0.36,1.64,0.28 +30.00,0.00,0.00,0.78,1.58,0.15 +11.70,0.00,0.00,0.61,1.73,0.24 +53.00,0.00,23.00,0.42,1.84,0.39 +67.00,0.00,37.00,0.62,1.77,0.24 +3.90,0.00,0.00,0.38,1.64,0.26 +44.00,0.00,14.00,0.46,1.74,0.28 +67.70,1.00,67.00,0.97,1.74,0.24 +30.00,0.00,0.00,0.62,1.76,0.24 +51.00,0.00,21.00,0.46,1.71,0.27 +6.60,0.00,0.00,0.63,1.58,0.21 +58.00,0.00,28.00,0.32,1.56,0.27 +65.00,0.00,35.00,0.34,1.63,0.28 +40.00,0.00,10.00,1.05,1.61,0.18 +71.00,0.00,41.00,0.57,1.64,0.25 +68.80,1.00,44.00,0.36,1.64,0.28 +72.00,0.00,42.00,0.84,1.78,0.39 +76.10,1.00,60.00,0.39,1.63,0.25 +71.00,0.00,41.00,0.61,1.72,0.24 +13.70,1.00,10.00,1.01,1.61,0.18 +76.00,0.00,46.00,0.33,1.56,0.27 +18.20,1.00,13.00,0.63,1.58,0.22 +44.00,0.00,14.00,0.52,1.59,0.20 +97.00,0.00,67.00,0.46,1.64,0.25 +30.00,0.00,0.00,0.70,1.63,0.25 +30.00,0.00,0.00,0.51,1.57,0.25 +83.00,0.00,53.00,0.52,1.57,0.20 +50.00,0.00,20.00,0.43,1.73,0.27 +69.00,0.00,39.00,0.36,1.55,0.28 +27.60,1.00,10.00,1.17,1.76,0.22 +54.10,1.00,40.00,0.54,1.69,0.23 +71.00,0.00,41.00,0.39,1.60,0.26 +72.00,0.00,42.00,0.43,1.82,0.39 +66.00,0.00,36.00,0.47,1.65,0.25 +58.00,0.00,28.00,0.32,1.61,0.29 +47.00,0.00,17.00,0.34,1.55,0.28 +31.60,1.00,11.00,0.82,1.60,0.18 +45.00,0.00,15.00,0.46,1.73,0.28 +98.00,0.00,68.00,0.35,1.63,0.30 +44.00,0.00,14.00,0.55,1.68,0.24 +58.00,0.00,28.00,0.32,1.56,0.27 +20.40,0.00,0.00,0.69,1.87,0.25 +86.00,0.00,56.00,0.50,1.64,0.22 +8.20,0.00,0.00,0.34,1.60,0.31 +11.30,0.00,0.00,0.73,1.82,0.43 +74.00,0.00,44.00,0.36,1.63,0.30 +4.00,0.00,0.00,0.38,1.66,0.28 +43.00,0.00,13.00,0.66,1.73,0.39 +22.60,1.00,21.00,0.59,1.57,0.22 +53.00,0.00,23.00,0.46,1.69,0.26 +65.00,0.00,35.00,0.34,1.63,0.28 +9.60,0.00,0.00,0.57,1.72,0.31 +29.80,1.00,29.00,0.59,1.77,0.26 +66.70,1.00,53.00,0.69,1.76,0.25 +72.00,0.00,42.00,0.47,1.83,0.40 +4.00,0.00,0.00,0.69,1.50,0.17 +33.00,0.00,3.00,0.46,1.63,0.26 +13.70,0.00,0.00,0.71,1.55,0.15 +13.70,0.00,0.00,0.39,1.69,0.28 +63.00,0.00,33.00,0.54,1.65,0.23 +48.00,0.00,18.00,0.41,1.65,0.26 +66.70,1.00,53.00,0.83,1.69,0.22 +40.00,0.00,10.00,0.45,1.87,0.47 +30.00,0.00,0.00,0.85,1.57,0.18 +8.70,0.00,0.00,0.76,1.53,0.17 +30.00,0.00,0.00,0.57,1.54,0.17 +43.70,1.00,40.00,0.53,1.69,0.23 +26.90,0.00,0.00,0.82,1.56,0.21 +13.70,0.00,0.00,0.84,1.62,0.18 +63.00,0.00,33.00,0.56,1.54,0.20 +30.00,0.00,0.00,0.71,1.64,0.24 +23.60,0.00,0.00,0.78,1.66,0.25 +51.00,0.00,21.00,0.41,1.68,0.26 +45.00,0.00,15.00,0.44,1.73,0.27 +86.00,0.00,56.00,0.56,1.71,0.24 +42.00,0.00,12.00,0.50,1.74,0.27 +10.00,0.00,0.00,0.78,1.68,0.33 +48.30,1.00,28.00,0.32,1.59,0.31 +48.00,0.00,18.00,0.33,1.65,0.30 +33.00,0.00,3.00,0.42,1.69,0.26 +82.00,0.00,52.00,0.50,1.63,0.27 +86.00,0.00,56.00,0.46,1.72,0.26 +36.00,0.00,6.00,0.56,1.63,0.24 +57.00,0.00,27.00,0.42,1.67,0.26 +74.00,0.00,44.00,0.32,1.60,0.32 +72.00,0.00,42.00,0.38,1.67,0.28 +44.00,0.00,14.00,0.61,1.61,0.24 +22.40,0.00,0.00,0.52,1.59,0.18 +61.00,0.00,31.00,0.61,1.55,0.21 +63.00,0.00,33.00,0.62,1.59,0.22 +74.00,0.00,44.00,0.32,1.60,0.28 +64.00,0.00,34.00,0.37,1.65,0.30 +89.00,0.00,59.00,0.37,1.80,0.37 +61.00,0.00,31.00,0.43,1.73,0.26 +82.00,0.00,52.00,0.47,1.67,0.25 +30.00,0.00,0.00,0.36,1.58,0.26 +9.60,0.00,0.00,0.44,1.67,0.25 +72.00,0.00,42.00,0.43,1.71,0.27 +88.30,1.00,71.00,0.35,1.50,0.27 +30.00,0.00,0.00,1.04,1.76,0.21 +30.00,0.00,0.00,0.57,1.50,0.16 +52.00,0.00,22.00,0.42,1.68,0.25 +42.00,0.00,12.00,0.51,1.83,0.43 +74.00,0.00,44.00,0.35,1.60,0.28 +44.00,0.00,14.00,0.38,1.50,0.26 +60.10,1.00,56.00,0.59,1.71,0.23 +72.00,0.00,42.00,0.49,1.82,0.40 +74.00,0.00,44.00,0.37,1.65,0.28 +30.00,0.00,0.00,0.73,1.69,0.23 +78.40,1.00,71.00,0.55,1.71,0.24 +9.40,0.00,0.00,0.80,1.83,0.54 +73.00,0.00,43.00,0.44,1.73,0.26 +101.00,0.00,71.00,0.39,1.60,0.24 +68.60,1.00,62.00,0.43,1.73,0.27 +26.00,0.00,0.00,0.88,1.67,0.25 +45.00,0.00,15.00,0.51,1.66,0.24 +44.00,0.00,14.00,0.84,1.81,0.50 +9.10,0.00,0.00,0.56,1.52,0.17 +30.00,0.00,0.00,0.32,1.59,0.32 +42.00,0.00,12.00,0.57,1.68,0.28 +78.00,0.00,48.00,0.50,1.83,0.29 +5.50,0.00,0.00,0.41,1.56,0.26 +28.30,1.00,0.00,0.77,1.79,0.39 +90.00,0.00,60.00,0.54,1.71,0.29 +30.00,0.00,0.00,0.70,1.54,0.15 +36.00,0.00,6.00,0.54,1.58,0.21 +79.00,0.00,49.00,0.71,1.60,0.27 +38.40,1.00,36.00,0.51,1.67,0.23 +25.90,0.00,0.00,0.68,1.54,0.18 +31.00,0.00,1.00,0.45,1.73,0.28 +39.00,0.00,9.00,0.34,1.53,0.27 +41.00,0.00,11.00,0.68,1.74,0.41 +101.00,0.00,71.00,0.39,1.59,0.26 +45.00,0.00,15.00,0.41,1.68,0.26 +62.60,1.00,42.00,0.37,1.65,0.29 +56.00,0.00,26.00,0.80,1.67,0.31 +90.00,0.00,60.00,0.65,1.72,0.40 +30.00,0.00,0.00,0.52,1.81,0.29 +30.00,0.00,0.00,0.76,1.59,0.16 +67.00,0.00,37.00,0.62,1.77,0.25 +74.00,0.00,44.00,0.35,1.60,0.27 +15.10,0.00,0.00,0.34,1.64,0.28 +18.00,0.00,0.00,0.34,1.62,0.31 +98.00,0.00,68.00,0.43,1.70,0.26 +33.00,1.00,21.00,0.34,1.62,0.31 +11.60,0.00,0.00,0.38,1.58,0.28 +14.90,0.00,0.00,0.36,1.59,0.26 +74.00,0.00,44.00,0.34,1.60,0.31 +30.00,0.00,0.00,0.73,1.70,0.23 +30.00,0.00,0.00,0.56,1.51,0.16 +42.00,0.00,12.00,0.50,1.64,0.22 +48.00,0.00,18.00,0.63,1.49,0.16 +61.00,0.00,31.00,0.57,1.53,0.19 +20.90,0.00,0.00,0.93,1.74,0.20 +47.00,0.00,17.00,0.51,1.58,0.21 +76.00,0.00,46.00,0.34,1.55,0.28 +52.90,1.00,33.00,0.61,1.68,0.23 +10.50,0.00,0.00,0.72,1.74,0.36 +13.90,0.00,0.00,0.39,1.63,0.25 +90.00,0.00,60.00,0.38,1.58,0.24 +17.40,1.00,17.00,0.51,1.64,0.23 +30.00,0.00,0.00,0.69,1.74,0.25 +6.40,0.00,0.00,0.76,1.67,0.29 +72.00,0.00,42.00,0.45,1.73,0.28 +47.90,1.00,41.00,0.80,1.57,0.16 +69.00,0.00,39.00,0.45,1.69,0.25 +74.00,0.00,44.00,0.56,1.71,0.24 +31.00,0.00,1.00,0.51,1.63,0.22 +72.00,0.00,42.00,0.53,1.77,0.37 +63.00,0.00,33.00,0.52,1.65,0.23 +8.80,0.00,0.00,0.63,1.63,0.24 +30.00,0.00,0.00,0.80,1.79,0.42 +2.20,0.00,0.00,0.83,1.63,0.19 +13.80,0.00,0.00,0.43,1.70,0.26 +19.00,1.00,0.00,0.69,1.55,0.18 +30.00,0.00,0.00,0.36,1.66,0.32 +72.00,0.00,42.00,0.54,1.78,0.37 +33.00,0.00,3.00,0.46,1.64,0.26 +53.00,0.00,23.00,0.38,1.55,0.24 +61.00,0.00,31.00,0.69,1.78,0.25 +90.00,0.00,60.00,0.59,1.70,0.27 +74.00,0.00,44.00,0.36,1.65,0.31 +9.60,0.00,0.00,0.73,1.54,0.20 +36.00,0.00,6.00,0.54,1.56,0.20 +51.00,0.00,21.00,0.63,1.54,0.16 +88.30,1.00,69.00,0.58,1.51,0.17 +47.90,1.00,40.00,0.39,1.62,0.25 +61.00,0.00,31.00,0.36,1.66,0.32 +82.30,1.00,71.00,0.42,1.66,0.25 +23.30,0.00,0.00,0.81,1.58,0.16 +53.00,0.00,23.00,0.30,1.55,0.30 +43.00,0.00,13.00,0.40,1.68,0.28 +19.30,0.00,0.00,0.50,1.65,0.24 +90.00,0.00,60.00,0.58,1.68,0.29 +43.20,1.00,39.00,0.40,1.62,0.26 +45.00,0.00,15.00,0.55,1.68,0.24 +79.60,1.00,78.00,0.59,1.69,0.35 +27.30,0.00,0.00,0.46,1.67,0.26 +40.20,1.00,30.00,0.48,1.66,0.24 +76.00,0.00,46.00,0.31,1.61,0.30 +9.50,0.00,0.00,0.51,1.67,0.29 +40.00,0.00,10.00,0.36,1.57,0.24 +51.00,0.00,21.00,0.87,1.58,0.18 +44.00,0.00,14.00,0.50,1.61,0.21 +80.00,0.00,50.00,0.60,1.63,0.23 +70.90,1.00,62.00,0.82,1.56,0.17 +64.90,1.00,62.00,0.82,1.56,0.17 +85.80,1.00,56.00,0.56,1.71,0.24 +20.80,0.00,0.00,0.34,1.62,0.31 +30.00,0.00,0.00,0.79,1.66,0.25 +43.10,1.00,25.00,0.90,1.69,0.19 +63.00,0.00,33.00,0.55,1.54,0.20 +9.10,0.00,0.00,0.38,1.67,0.29 +47.00,0.00,17.00,0.66,1.52,0.19 +70.00,0.00,40.00,0.39,1.59,0.24 +12.80,0.00,0.00,0.79,1.82,0.53 +63.00,0.00,33.00,0.62,1.59,0.22 +30.00,0.00,0.00,0.47,1.60,0.26 +42.70,1.00,20.00,0.70,1.51,0.15 +106.00,0.00,76.00,0.33,1.56,0.26 +22.70,1.00,16.00,0.45,1.65,0.26 +30.00,0.00,0.00,0.81,1.62,0.18 +12.70,0.00,0.00,0.52,1.59,0.20 +51.00,0.00,21.00,0.40,1.66,0.27 +51.00,0.00,21.00,0.72,1.76,0.25 +30.00,0.00,0.00,0.31,1.53,0.27 +30.00,0.00,0.00,0.93,1.84,0.53 +75.90,1.00,56.00,0.58,1.71,0.23 +30.00,0.00,0.00,0.65,1.53,0.16 +43.00,0.00,13.00,0.41,1.64,0.25 +30.00,0.00,0.00,0.54,1.83,0.29 +69.00,0.00,39.00,0.38,1.57,0.28 +16.80,0.00,0.00,0.99,1.61,0.17 +8.00,0.00,0.00,0.71,1.69,0.22 +0.40,0.00,0.00,0.69,1.80,0.24 +101.00,0.00,71.00,0.63,1.58,0.21 +30.00,0.00,0.00,0.67,1.64,0.24 +30.00,0.00,0.00,0.64,1.53,0.20 +44.00,0.00,14.00,0.68,1.58,0.25 +21.30,1.00,0.00,0.98,1.76,0.23 +79.00,0.00,49.00,0.70,1.59,0.26 +46.00,0.00,16.00,0.46,1.70,0.26 +53.00,0.00,23.00,0.75,1.61,0.24 +42.00,0.00,12.00,0.58,1.69,0.27 +63.00,0.00,33.00,0.62,1.68,0.23 +30.00,0.00,0.00,0.70,1.77,0.38 +28.70,0.00,0.00,0.50,1.63,0.26 +3.50,0.00,0.00,0.50,1.69,0.25 +3.70,0.00,0.00,0.89,1.72,0.24 +30.00,0.00,0.00,0.57,1.73,0.32 +69.00,0.00,39.00,0.61,1.55,0.21 +44.00,0.00,14.00,0.55,1.81,0.28 +41.70,1.00,14.00,0.42,1.52,0.26 +44.00,0.00,14.00,0.40,1.63,0.25 +30.00,0.00,0.00,0.55,1.52,0.16 +72.00,0.00,42.00,0.53,1.76,0.37 +52.70,1.00,31.00,0.88,1.71,0.19 +53.00,0.00,23.00,0.58,1.65,0.26 +30.00,0.00,0.00,0.32,1.59,0.32 +71.00,0.00,41.00,0.36,1.60,0.25 +57.40,1.00,49.00,0.58,1.58,0.22 +9.10,0.00,0.00,0.31,1.57,0.31 +70.00,0.00,40.00,0.39,1.58,0.24 +71.00,0.00,41.00,0.36,1.59,0.26 +44.00,0.00,14.00,0.66,1.97,0.26 +2.00,0.00,0.00,1.01,1.78,0.25 +61.00,0.00,31.00,0.71,1.51,0.18 +43.00,0.00,13.00,0.46,1.66,0.25 +22.10,0.00,0.00,0.69,1.80,0.39 +61.00,0.00,31.00,0.57,1.53,0.18 +16.60,1.00,0.00,1.20,1.91,0.58 +30.00,0.00,0.00,0.68,1.61,0.27 +36.70,1.00,20.00,0.95,1.84,0.52 +54.90,1.00,39.00,0.59,1.57,0.20 +59.00,1.00,37.00,0.60,1.72,0.24 +16.20,0.00,0.00,0.58,1.53,0.19 +53.00,0.00,23.00,0.35,1.60,0.28 +50.00,0.00,20.00,0.56,1.69,0.23 +53.00,0.00,23.00,0.44,1.77,0.37 +51.00,0.00,21.00,0.62,1.55,0.21 +73.80,1.00,48.00,0.49,1.67,0.24 +101.00,0.00,71.00,0.35,1.51,0.26 +19.80,0.00,0.00,0.61,1.51,0.18 +44.00,0.00,14.00,0.34,1.61,0.32 +65.50,1.00,55.00,0.39,1.56,0.28 +49.00,0.00,19.00,0.43,1.73,0.26 +66.00,0.00,36.00,0.46,1.69,0.26 +87.00,0.00,57.00,0.46,1.73,0.27 +65.00,0.00,35.00,0.82,1.60,0.16 +31.00,0.00,1.00,0.47,1.64,0.24 +62.00,0.00,32.00,0.47,1.56,0.25 +74.00,0.00,44.00,0.38,1.66,0.29 +30.00,0.00,0.00,0.63,1.50,0.17 +30.00,0.00,0.00,0.51,1.57,0.19 +52.00,0.00,22.00,0.41,1.61,0.25 +82.80,1.00,68.00,0.35,1.62,0.30 +44.00,0.00,14.00,0.52,1.61,0.21 +70.00,0.00,40.00,0.47,1.67,0.24 +53.00,0.00,23.00,0.41,1.59,0.24 +47.00,0.00,17.00,0.38,1.68,0.28 +30.00,0.00,0.00,0.42,1.60,0.24 +65.00,0.00,35.00,0.34,1.60,0.29 +68.00,1.00,41.00,0.62,1.68,0.23 +30.00,0.00,0.00,0.74,1.64,0.24 +65.20,1.00,44.00,0.63,1.53,0.17 +30.00,0.00,0.00,0.36,1.64,0.31 +51.00,0.00,21.00,0.35,1.65,0.31 +53.00,0.00,23.00,0.39,1.56,0.24 +48.00,0.00,18.00,0.51,1.59,0.21 +47.00,0.00,17.00,0.68,1.51,0.15 +44.00,0.00,14.00,0.58,1.78,0.27 +49.00,0.00,19.00,0.80,1.55,0.17 +37.30,1.00,29.00,0.37,1.58,0.24 +14.40,1.00,11.00,0.48,1.61,0.26 +45.00,0.00,15.00,0.55,1.68,0.23 +44.00,0.00,14.00,0.44,1.71,0.26 +9.40,0.00,0.00,0.89,1.72,0.20 +85.00,0.00,55.00,0.46,1.54,0.27 +30.00,0.00,0.00,0.31,1.57,0.31 +82.50,1.00,58.00,0.63,1.68,0.23 +23.90,0.00,0.00,0.32,1.60,0.31 +30.00,0.00,0.00,0.63,1.54,0.20 +31.10,1.00,21.00,0.97,1.61,0.19 +30.00,0.00,0.00,0.79,1.78,0.43 +72.60,1.00,62.00,0.82,1.56,0.17 +90.00,0.00,60.00,0.58,1.68,0.34 +47.00,0.00,17.00,0.58,1.53,0.19 +61.00,0.00,31.00,0.45,1.63,0.24 +69.00,0.00,39.00,0.38,1.58,0.28 +14.00,0.00,0.00,0.39,1.57,0.24 +61.50,1.00,48.00,0.49,1.67,0.24 +26.30,1.00,13.00,0.53,1.70,0.23 +74.00,0.00,44.00,0.56,1.62,0.23 +0.90,0.00,0.00,0.51,1.57,0.20 +17.30,0.00,0.00,0.47,1.68,0.29 +29.00,0.00,0.00,0.46,1.63,0.26 +75.00,0.00,45.00,0.34,1.57,0.26 +30.00,0.00,0.00,0.55,1.52,0.16 +61.00,0.00,31.00,0.43,1.72,0.26 +106.00,0.00,76.00,0.32,1.56,0.27 +99.00,0.00,69.00,0.59,1.50,0.17 +55.90,1.00,53.00,0.74,1.60,0.27 +42.00,0.00,12.00,0.34,1.62,0.27 +25.40,0.00,0.00,0.57,1.68,0.29 +54.00,0.00,24.00,0.42,1.71,0.26 +27.20,1.00,11.00,0.67,1.73,0.41 +63.00,0.00,33.00,0.62,1.68,0.23 +30.00,0.00,0.00,0.57,1.74,0.33 +69.00,0.00,39.00,0.44,1.70,0.25 +60.00,0.00,30.00,0.50,1.69,0.24 +74.00,0.00,44.00,0.38,1.68,0.29 +80.00,0.00,50.00,0.59,1.58,0.22 +84.00,0.00,54.00,0.49,1.70,0.30 +91.00,0.00,61.00,0.35,1.72,0.33 +92.00,0.00,62.00,0.53,1.84,0.29 +70.00,0.00,40.00,0.38,1.59,0.24 +31.00,0.00,1.00,0.78,1.62,0.18 +28.50,1.00,0.00,0.75,1.80,0.41 +84.00,0.00,54.00,0.47,1.68,0.30 +30.00,0.00,0.00,0.32,1.54,0.27 +101.00,0.00,71.00,0.54,1.72,0.25 +47.70,1.00,29.00,0.52,1.64,0.22 +30.00,0.00,0.00,0.61,1.65,0.23 +2.20,0.00,0.00,0.44,1.71,0.25 +10.10,0.00,0.00,0.52,1.55,0.18 +43.60,1.00,23.00,0.36,1.62,0.28 +5.30,0.00,0.00,0.52,1.57,0.20 +83.00,0.00,53.00,0.51,1.57,0.20 +30.00,0.00,0.00,0.58,1.63,0.25 +30.00,0.00,0.00,0.64,1.53,0.20 +45.00,0.00,15.00,0.63,1.49,0.15 +90.60,1.00,62.00,0.68,1.72,0.24 +44.00,0.00,14.00,0.54,1.66,0.23 +69.00,0.00,39.00,0.59,1.57,0.20 +85.00,0.00,55.00,0.47,1.55,0.27 +91.00,0.00,61.00,0.34,1.61,0.29 +30.00,0.00,0.00,0.85,1.70,0.25 +50.00,0.00,20.00,0.42,1.60,0.24 +83.00,0.00,53.00,0.44,1.69,0.28 +85.00,0.00,55.00,0.39,1.58,0.27 +49.00,0.00,19.00,0.48,1.89,0.42 +96.00,0.00,66.00,0.59,1.67,0.23 +23.90,1.00,0.00,0.83,1.69,0.25 +30.00,0.00,0.00,0.90,1.72,0.26 +23.10,1.00,9.00,0.37,1.54,0.28 +13.40,1.00,0.00,1.25,1.75,0.25 +20.80,0.00,0.00,0.77,1.79,0.41 +96.00,0.00,66.00,0.56,1.66,0.22 +66.00,0.00,36.00,0.56,1.70,0.24 +44.00,0.00,14.00,0.61,1.63,0.26 +30.00,0.00,0.00,0.45,1.70,0.26 +30.00,0.00,0.00,0.83,1.78,0.39 +93.00,0.00,63.00,0.60,1.71,0.23 +44.00,0.00,14.00,0.32,1.58,0.31 +30.00,0.00,0.00,0.60,1.73,0.24 +25.90,0.00,0.00,0.36,1.63,0.31 +57.70,1.00,37.00,1.12,1.64,0.20 +49.00,0.00,19.00,0.80,1.71,0.25 +34.00,0.00,4.00,0.60,1.52,0.16 +15.50,0.00,0.00,0.59,1.58,0.26 +107.00,0.00,77.00,0.40,1.62,0.24 +72.00,0.00,42.00,0.34,1.57,0.25 +36.00,0.00,6.00,0.38,1.55,0.24 +23.70,0.00,0.00,0.82,1.56,0.17 +98.00,0.00,68.00,0.40,1.56,0.25 +37.00,0.00,7.00,0.74,1.67,0.31 +60.00,0.00,30.00,0.59,1.58,0.22 +81.00,0.00,51.00,0.45,1.62,0.26 +77.50,1.00,61.00,0.38,1.67,0.28 +98.00,0.00,68.00,0.33,1.61,0.31 +75.00,0.00,45.00,0.33,1.58,0.26 +86.00,0.00,56.00,0.45,1.72,0.26 +63.00,0.00,33.00,0.32,1.67,0.28 +54.00,0.00,24.00,0.40,1.85,0.41 +7.90,0.00,0.00,1.00,1.77,0.21 +1.30,0.00,0.00,0.74,1.72,0.23 +25.80,0.00,0.00,0.66,1.57,0.23 +101.00,0.00,71.00,0.64,1.57,0.20 +17.80,1.00,11.00,0.57,1.67,0.29 +59.00,0.00,29.00,0.61,1.58,0.23 +15.70,1.00,0.00,0.78,1.79,0.41 +98.00,0.00,68.00,0.39,1.55,0.24 +63.00,0.00,33.00,0.59,1.54,0.20 +11.00,0.00,0.00,0.65,1.72,0.24 +54.00,0.00,24.00,0.51,1.58,0.20 +55.50,1.00,36.00,0.53,1.71,0.24 +31.00,0.00,1.00,0.89,1.72,0.21 +27.80,1.00,4.00,0.62,1.59,0.27 +90.00,0.00,60.00,0.37,1.56,0.23 +30.00,0.00,0.00,0.68,1.53,0.17 +45.00,0.00,15.00,0.45,1.67,0.25 +11.40,0.00,0.00,0.90,1.69,0.19 +44.00,0.00,14.00,0.43,1.64,0.26 +56.00,0.00,26.00,0.52,1.65,0.23 +50.00,0.00,20.00,0.56,1.69,0.23 +32.60,1.00,19.00,0.71,1.52,0.18 +30.00,0.00,0.00,0.65,1.66,0.23 +30.00,0.00,0.00,0.62,1.51,0.18 +61.00,0.00,31.00,0.33,1.61,0.27 +69.00,0.00,39.00,0.37,1.57,0.28 +30.00,0.00,0.00,0.66,1.57,0.22 +78.00,0.00,48.00,0.46,1.73,0.27 +84.50,1.00,60.00,0.38,1.57,0.23 +27.30,0.00,0.00,0.42,1.57,0.25 +42.70,1.00,25.00,0.97,1.76,0.23 +101.00,0.00,71.00,0.56,1.67,0.28 +47.00,0.00,17.00,0.49,1.71,0.30 +98.00,0.00,68.00,0.42,1.69,0.26 +7.70,0.00,0.00,0.45,1.55,0.25 +30.00,0.00,0.00,0.73,1.55,0.20 +47.00,0.00,17.00,0.90,1.60,0.17 +25.50,0.00,0.00,0.45,1.69,0.26 +10.10,0.00,0.00,0.82,1.68,0.23 +82.70,1.00,55.00,0.38,1.54,0.28 +63.60,1.00,36.00,0.59,1.73,0.25 +33.30,1.00,13.00,0.67,1.74,0.40 +22.10,0.00,0.00,0.35,1.62,0.30 +44.50,1.00,35.00,0.95,1.75,0.21 +87.00,0.00,57.00,0.45,1.68,0.27 +13.90,0.00,0.00,0.56,1.74,0.33 +46.00,0.00,16.00,0.37,1.56,0.28 +108.00,0.00,78.00,0.38,1.59,0.24 +14.00,0.00,0.00,0.35,1.59,0.26 +6.60,0.00,0.00,0.73,1.77,0.24 +57.00,1.00,42.00,0.53,1.77,0.27 +9.80,0.00,0.00,0.71,1.53,0.15 +52.00,0.00,22.00,0.42,1.63,0.25 +28.50,0.00,0.00,0.39,1.69,0.28 +67.00,0.00,37.00,0.57,1.73,0.31 +85.00,0.00,55.00,0.40,1.58,0.27 +40.00,0.00,10.00,0.95,1.75,0.21 +92.10,1.00,71.00,0.64,1.58,0.20 +51.00,0.00,21.00,0.64,1.53,0.15 +60.00,0.00,30.00,0.36,1.66,0.30 +30.00,0.00,0.00,0.59,1.62,0.25 +54.00,0.00,24.00,0.53,1.57,0.18 +30.80,1.00,14.00,0.42,1.70,0.26 +56.00,0.00,26.00,0.56,1.76,0.34 +96.00,0.00,66.00,0.54,1.64,0.22 +50.00,0.00,20.00,0.59,1.53,0.19 +43.00,0.00,13.00,0.40,1.68,0.28 +14.90,0.00,0.00,1.13,1.79,0.27 +45.00,0.00,15.00,0.42,1.72,0.27 +88.00,0.00,58.00,0.55,1.80,0.27 +72.00,0.00,42.00,0.36,1.61,0.26 +96.20,1.00,71.00,0.50,1.62,0.26 +25.30,0.00,0.00,0.48,1.65,0.27 +85.50,1.00,68.00,0.40,1.56,0.25 +40.00,0.00,10.00,0.96,1.76,0.21 +41.00,0.00,11.00,0.50,1.61,0.27 +12.40,0.00,0.00,0.62,1.69,0.30 +61.00,0.00,31.00,0.54,1.68,0.30 +18.60,0.00,0.00,0.68,1.74,0.41 +45.00,0.00,15.00,0.52,1.67,0.24 +26.30,1.00,0.00,1.01,1.77,0.24 +30.00,0.00,0.00,1.05,1.75,0.21 +40.00,0.00,10.00,0.84,1.57,0.16 +12.30,0.00,0.00,0.31,1.57,0.31 +30.00,0.00,0.00,0.46,1.70,0.27 +6.60,0.00,0.00,0.61,1.60,0.28 +72.00,0.00,42.00,0.56,1.79,0.37 +74.00,0.00,44.00,0.38,1.67,0.29 +34.00,0.00,4.00,0.32,1.82,0.29 +21.70,0.00,0.00,0.31,1.58,0.29 +48.00,0.00,18.00,0.51,1.59,0.21 +49.00,0.00,19.00,0.79,1.65,0.23 +0.20,0.00,0.00,0.59,1.58,0.22 +23.00,1.00,0.00,0.64,1.51,0.18 +43.00,0.00,13.00,0.43,1.70,0.26 +71.00,0.00,41.00,0.35,1.60,0.27 +46.60,1.00,19.00,0.82,1.55,0.18 +7.40,0.00,0.00,0.34,1.56,0.25 +63.00,0.00,33.00,0.58,1.57,0.22 +37.80,1.00,28.00,0.40,1.58,0.27 +28.00,0.00,0.00,0.41,1.68,0.26 +63.00,0.00,33.00,0.54,1.71,0.24 +74.00,0.00,44.00,0.32,1.63,0.29 +91.00,0.00,61.00,0.35,1.58,0.27 +71.00,0.00,41.00,0.61,1.49,0.15 +41.00,0.00,11.00,0.73,1.57,0.17 +21.60,0.00,0.00,0.38,1.56,0.23 +61.00,0.00,31.00,0.54,1.68,0.30 +58.00,0.00,28.00,0.32,1.71,0.29 +48.30,1.00,48.00,0.50,1.70,0.25 +53.00,0.00,23.00,0.50,1.71,0.32 +50.00,0.00,20.00,0.57,1.68,0.23 +69.00,0.00,39.00,0.57,1.68,0.23 +13.80,0.00,0.00,1.00,1.77,0.21 +59.10,1.00,41.00,0.61,1.76,0.24 +83.00,0.00,53.00,0.53,1.64,0.22 +78.00,0.00,48.00,0.49,1.68,0.24 +78.10,1.00,56.00,0.58,1.71,0.23 +65.70,1.00,41.00,0.71,1.68,0.23 +42.40,1.00,20.00,0.57,1.53,0.19 +65.00,0.00,35.00,0.36,1.64,0.30 +51.00,0.00,21.00,0.46,1.70,0.26 +27.10,1.00,20.00,0.77,1.53,0.18 +30.00,0.00,0.00,0.67,1.64,0.24 +29.50,1.00,0.00,0.79,1.70,0.23 +58.00,0.00,28.00,0.47,1.68,0.25 +21.70,0.00,0.00,0.40,1.60,0.24 +46.00,0.00,16.00,0.58,1.80,0.26 +85.00,0.00,55.00,0.36,1.56,0.27 +66.00,0.00,36.00,0.48,1.66,0.24 +30.00,0.00,0.00,0.45,1.73,0.28 +59.00,0.00,29.00,0.41,1.68,0.26 +72.00,0.00,42.00,0.55,1.70,0.23 +30.00,0.00,0.00,0.73,1.55,0.15 +30.00,0.00,0.00,0.33,1.48,0.27 +30.00,0.00,0.00,0.80,1.58,0.17 +87.00,0.00,57.00,0.36,1.58,0.26 +61.00,0.00,31.00,0.43,1.72,0.26 +47.20,1.00,40.00,0.40,1.59,0.24 +5.50,0.00,0.00,0.44,1.69,0.25 +12.80,0.00,0.00,0.34,1.55,0.26 +30.00,0.00,0.00,0.41,1.59,0.24 +10.50,0.00,0.00,1.20,1.67,0.20 +68.20,1.00,42.00,0.83,1.80,0.40 +72.00,0.00,42.00,0.45,1.82,0.39 +29.80,0.00,0.00,0.42,1.66,0.25 +30.00,0.00,0.00,0.54,1.83,0.28 +6.50,0.00,0.00,0.45,1.67,0.25 +9.70,0.00,0.00,0.33,1.56,0.26 +86.00,0.00,56.00,0.54,1.84,0.29 +6.20,0.00,0.00,0.61,1.74,0.24 +39.90,1.00,20.00,0.70,1.52,0.15 +59.00,0.00,29.00,0.36,1.60,0.25 +2.40,0.00,0.00,0.58,1.53,0.19 +17.90,0.00,0.00,1.19,1.79,0.29 +59.00,0.00,29.00,0.48,1.62,0.23 +41.00,0.00,11.00,0.74,1.87,0.25 +71.00,0.00,41.00,0.61,1.72,0.24 +65.00,0.00,35.00,0.34,1.63,0.28 +64.00,0.00,34.00,0.32,1.60,0.31 +83.00,0.00,53.00,0.51,1.57,0.21 +10.90,0.00,0.00,0.66,1.60,0.24 +57.00,0.00,27.00,0.45,1.71,0.26 +23.00,0.00,0.00,0.73,1.66,0.31 +30.00,0.00,0.00,0.60,1.75,0.33 +91.00,0.00,61.00,0.39,1.68,0.28 +1.20,0.00,0.00,0.68,1.50,0.17 +0.40,0.00,0.00,0.89,1.72,0.20 +41.00,0.00,11.00,0.71,1.83,0.24 +23.80,0.00,0.00,0.60,1.68,0.23 +49.00,0.00,19.00,0.75,1.73,0.25 +70.70,1.00,42.00,0.35,1.57,0.26 +15.50,0.00,0.00,0.60,1.49,0.15 +30.00,0.00,0.00,0.84,1.58,0.16 +17.70,1.00,0.00,0.80,1.55,0.17 +61.00,0.00,31.00,0.50,1.66,0.28 +31.00,0.00,1.00,0.62,1.60,0.26 +4.10,0.00,0.00,0.55,1.68,0.23 +6.50,0.00,0.00,0.58,1.53,0.19 +44.00,0.00,14.00,0.56,1.68,0.25 +3.90,0.00,0.00,0.40,1.57,0.23 +30.20,1.00,14.00,0.47,1.71,0.25 +41.30,1.00,33.00,0.34,1.65,0.28 +39.50,1.00,35.00,0.34,1.61,0.31 +48.00,0.00,18.00,0.41,1.65,0.26 +19.70,1.00,17.00,0.66,1.56,0.21 +72.00,0.00,42.00,0.56,1.72,0.24 +51.00,0.00,21.00,0.69,1.53,0.16 +91.00,0.00,61.00,0.38,1.67,0.28 +66.00,0.00,36.00,0.47,1.65,0.24 +61.00,0.00,31.00,0.44,1.63,0.24 +61.00,0.00,31.00,0.59,1.69,0.32 +42.20,1.00,21.00,0.83,1.60,0.16 +92.00,0.00,62.00,0.41,1.70,0.27 +22.40,0.00,0.00,0.85,1.68,0.19 +30.00,0.00,0.00,0.55,1.52,0.16 +106.00,0.00,76.00,0.34,1.55,0.26 +91.00,0.00,61.00,0.39,1.68,0.28 +31.90,1.00,17.00,0.57,1.74,0.24 +51.00,0.00,21.00,0.60,1.59,0.23 +69.00,0.00,39.00,0.43,1.71,0.26 +33.20,1.00,17.00,0.96,1.64,0.18 +25.60,1.00,25.00,1.48,1.73,0.27 +30.00,0.00,0.00,0.66,1.52,0.18 +81.00,0.00,51.00,0.35,1.60,0.27 +66.00,0.00,36.00,0.57,1.70,0.24 +66.80,1.00,62.00,0.67,1.52,0.19 +19.00,1.00,12.00,0.47,1.61,0.25 +30.00,0.00,0.00,0.38,1.67,0.28 +73.00,0.00,43.00,0.38,1.67,0.28 +44.00,0.00,14.00,0.46,1.67,0.26 +18.30,0.00,0.00,0.68,1.53,0.19 +101.00,0.00,71.00,0.64,1.57,0.20 +63.00,0.00,33.00,0.50,1.65,0.24 +81.00,0.00,51.00,0.34,1.59,0.27 +11.30,0.00,0.00,0.32,1.64,0.29 +6.40,0.00,0.00,0.59,1.50,0.15 +41.00,0.00,11.00,0.46,1.71,0.27 +4.40,0.00,0.00,0.81,1.67,0.32 +59.00,0.00,29.00,0.48,1.63,0.23 +67.00,0.00,37.00,0.62,1.56,0.21 +48.00,0.00,18.00,0.66,1.50,0.16 +30.00,0.00,0.00,0.32,1.68,0.28 +51.00,0.00,21.00,0.35,1.66,0.31 +52.00,0.00,22.00,0.65,1.54,0.21 +52.00,0.00,22.00,0.42,1.67,0.25 +59.00,0.00,29.00,0.41,1.68,0.27 +63.00,0.00,33.00,0.38,1.58,0.28 +18.30,0.00,0.00,0.81,1.77,0.38 +50.00,0.00,20.00,0.78,1.68,0.31 +16.80,0.00,0.00,0.66,1.52,0.18 +87.00,0.00,57.00,0.39,1.57,0.24 +59.00,0.00,29.00,0.39,1.67,0.30 +87.00,0.00,57.00,0.50,1.75,0.28 +11.90,0.00,0.00,0.86,1.68,0.36 +35.80,1.00,12.00,0.94,1.63,0.18 +55.00,0.00,25.00,0.51,1.72,0.32 +75.00,1.00,61.00,0.37,1.65,0.28 +61.00,0.00,31.00,0.32,1.59,0.31 +11.00,0.00,0.00,0.69,1.55,0.18 +47.00,0.00,17.00,0.41,1.56,0.28 +51.00,0.00,21.00,0.49,1.63,0.26 +52.00,0.00,22.00,0.62,1.55,0.21 +71.80,1.00,62.00,0.61,1.69,0.23 +50.00,0.00,20.00,0.56,1.71,0.24 +19.30,1.00,3.00,0.85,1.58,0.17 +59.00,0.00,29.00,0.49,1.62,0.22 +45.00,0.00,15.00,0.44,1.72,0.27 +5.10,0.00,0.00,0.36,1.64,0.29 +2.00,0.00,0.00,0.66,1.80,0.38 +54.30,1.00,33.00,0.75,1.54,0.20 +19.90,0.00,0.00,0.38,1.58,0.28 +35.00,0.00,5.00,0.63,1.51,0.17 +74.00,0.00,44.00,0.35,1.59,0.27 +18.70,0.00,0.00,0.65,1.52,0.19 +74.50,1.00,53.00,0.62,1.69,0.24 +46.00,0.00,16.00,0.50,1.80,0.28 +72.00,0.00,42.00,0.39,1.69,0.28 +45.00,0.00,15.00,0.64,1.50,0.15 +74.00,0.00,44.00,0.56,1.67,0.32 +78.00,0.00,48.00,0.50,1.81,0.28 +90.00,0.00,60.00,0.40,1.66,0.26 +37.20,1.00,22.00,0.77,1.66,0.28 +106.00,0.00,76.00,0.52,1.70,0.30 +25.40,0.00,0.00,0.53,1.77,0.37 +106.00,0.00,76.00,0.47,1.64,0.26 +52.00,0.00,22.00,0.38,1.68,0.28 +71.00,0.00,41.00,0.37,1.59,0.26 +31.00,0.00,1.00,0.65,1.61,0.27 +61.00,0.00,31.00,0.61,1.70,0.32 +17.60,1.00,0.00,0.93,1.83,0.53 +67.00,0.00,37.00,0.53,1.71,0.30 +55.00,0.00,25.00,0.43,1.55,0.27 +68.00,1.00,39.00,0.48,1.69,0.29 +18.40,0.00,0.00,0.56,1.67,0.32 +37.00,0.00,7.00,0.51,1.56,0.19 +47.00,0.00,17.00,0.38,1.68,0.29 +53.20,1.00,26.00,0.78,1.58,0.15 +72.00,0.00,42.00,0.32,1.59,0.31 +30.00,0.00,0.00,0.82,1.68,0.22 +106.00,0.00,76.00,0.33,1.56,0.26 +45.00,0.00,15.00,0.62,1.52,0.17 +79.00,0.00,49.00,0.47,1.66,0.25 +13.80,0.00,0.00,0.48,1.65,0.27 +74.00,0.00,44.00,0.34,1.60,0.31 +30.00,0.00,0.00,0.67,1.57,0.22 +3.20,0.00,0.00,0.79,1.59,0.15 +38.50,1.00,25.00,0.41,1.52,0.27 +30.00,0.00,0.00,0.75,1.79,0.44 +10.60,0.00,0.00,0.36,1.64,0.30 +106.00,0.00,76.00,0.48,1.66,0.27 +30.00,0.00,0.00,0.57,1.64,0.25 +86.00,0.00,56.00,0.58,1.71,0.23 +16.40,0.00,0.00,0.75,1.79,0.45 +51.00,0.00,21.00,0.34,1.61,0.31 +30.00,0.00,0.00,0.78,1.57,0.21 +30.00,0.00,0.00,0.89,1.67,0.26 +67.10,1.00,45.00,0.75,1.58,0.18 +74.00,0.00,44.00,0.36,1.64,0.31 +3.20,0.00,0.00,0.62,1.59,0.27 +30.00,0.00,0.00,0.83,1.64,0.18 +67.00,0.00,37.00,0.54,1.71,0.30 +30.00,0.00,0.00,0.64,1.53,0.16 +30.00,0.00,0.00,0.37,1.54,0.28 +90.00,0.00,60.00,0.38,1.58,0.24 +23.60,1.00,19.00,0.76,1.74,0.25 +44.00,0.00,14.00,0.42,1.52,0.26 +12.60,0.00,0.00,0.55,1.70,0.23 +4.80,0.00,0.00,0.36,1.63,0.30 +14.30,0.00,0.00,0.41,1.56,0.27 +52.00,0.00,22.00,0.42,1.64,0.26 +53.00,0.00,23.00,0.41,1.85,0.40 +23.20,1.00,19.00,0.81,1.55,0.18 +2.70,0.00,0.00,0.67,1.53,0.19 +30.00,0.00,0.00,0.58,1.78,0.26 +55.40,1.00,28.00,0.65,1.75,0.34 +48.00,0.00,18.00,0.42,1.67,0.26 +33.90,1.00,23.00,0.59,1.69,0.27 +0.80,0.00,0.00,0.36,1.66,0.31 +71.00,0.00,41.00,0.36,1.59,0.26 +40.80,1.00,36.00,0.40,1.69,0.27 +44.00,0.00,14.00,0.52,1.81,0.29 +2.60,0.00,0.00,1.02,1.77,0.21 +87.00,0.00,57.00,0.38,1.57,0.24 +101.00,0.00,71.00,0.49,1.63,0.25 +47.00,0.00,17.00,0.51,1.65,0.23 +44.00,0.00,14.00,0.54,1.66,0.23 +67.40,1.00,53.00,0.40,1.67,0.26 +30.00,0.00,0.00,0.62,1.51,0.18 +54.00,0.00,24.00,0.53,1.56,0.18 +47.00,0.00,17.00,0.53,1.65,0.24 +69.00,0.00,39.00,0.35,1.55,0.28 +30.00,0.00,0.00,0.67,1.52,0.18 +41.30,1.00,13.00,0.46,1.66,0.25 +41.00,0.00,11.00,0.78,1.54,0.17 +72.00,0.00,42.00,0.36,1.61,0.25 +50.00,0.00,20.00,0.48,1.64,0.23 +66.00,0.00,36.00,0.32,1.59,0.28 +22.60,0.00,0.00,0.55,1.71,0.24 +53.00,0.00,23.00,0.48,1.55,0.27 +61.00,0.00,31.00,0.71,1.51,0.18 +76.00,1.00,60.00,0.61,1.75,0.33 +30.00,0.00,0.00,1.09,1.76,0.23 +30.00,0.00,0.00,0.59,1.53,0.17 +50.00,0.00,20.00,0.84,1.80,0.47 +8.00,1.00,0.00,0.78,1.57,0.16 +42.00,0.00,12.00,0.52,1.61,0.25 +72.00,0.00,42.00,0.36,1.61,0.25 +30.00,0.00,0.00,0.51,1.67,0.28 +82.00,0.00,52.00,0.46,1.62,0.25 +50.00,0.00,20.00,0.43,1.61,0.25 +101.00,0.00,71.00,0.37,1.56,0.24 +55.90,1.00,51.00,0.32,1.61,0.29 +8.40,1.00,0.00,0.81,1.79,0.41 +61.00,0.00,31.00,0.58,1.69,0.31 +101.00,0.00,71.00,0.35,1.50,0.27 +46.00,0.00,16.00,0.47,1.70,0.26 +72.00,0.00,42.00,0.37,1.63,0.26 +14.90,1.00,0.00,0.41,1.62,0.24 +40.90,1.00,37.00,0.61,1.76,0.25 +6.90,0.00,0.00,1.03,1.77,0.30 +50.00,0.00,20.00,0.63,1.52,0.19 +107.00,0.00,77.00,0.38,1.61,0.25 +47.00,0.00,17.00,0.41,1.58,0.24 +48.00,0.00,18.00,0.35,1.65,0.32 +55.00,0.00,25.00,0.40,1.84,0.40 +13.90,0.00,0.00,0.82,1.64,0.18 +31.00,0.00,1.00,0.57,1.59,0.25 +6.60,0.00,0.00,0.40,1.62,0.24 +56.00,0.00,26.00,0.78,1.58,0.15 +58.00,0.00,28.00,0.31,1.61,0.28 +64.00,0.00,34.00,0.39,1.68,0.28 +106.00,0.00,76.00,0.47,1.64,0.26 +13.40,0.00,0.00,0.34,1.63,0.28 +60.30,1.00,39.00,0.60,1.55,0.20 +45.00,0.00,15.00,0.41,1.71,0.27 +17.80,0.00,0.00,0.40,1.59,0.24 +30.00,0.00,0.00,0.69,1.50,0.17 +56.00,0.00,26.00,0.52,1.71,0.31 +52.00,1.00,39.00,0.60,1.57,0.20 +6.40,0.00,0.00,0.58,1.68,0.23 +97.00,0.00,67.00,0.59,1.70,0.28 +43.00,0.00,13.00,0.67,1.74,0.40 +41.00,0.00,11.00,0.43,1.66,0.24 +90.00,0.00,60.00,0.39,1.57,0.23 +30.00,0.00,0.00,0.66,1.52,0.19 +22.50,0.00,0.00,0.50,1.61,0.28 +69.00,0.00,39.00,0.33,1.59,0.27 +90.00,0.00,60.00,0.40,1.66,0.27 +23.40,0.00,0.00,0.67,1.61,0.24 +30.00,0.00,0.00,0.85,1.71,0.23 +58.00,0.00,28.00,0.65,1.74,0.34 +61.00,0.00,31.00,0.35,1.60,0.25 +30.00,0.00,0.00,0.59,1.63,0.24 +20.30,0.00,0.00,0.53,1.68,0.23 +48.00,0.00,18.00,0.54,1.53,0.17 +53.00,0.00,23.00,0.69,1.57,0.22 +72.00,0.00,42.00,0.39,1.69,0.28 +40.00,0.00,10.00,0.90,1.73,0.20 +43.00,0.00,13.00,0.42,1.68,0.26 +5.70,0.00,0.00,0.42,1.66,0.25 +50.00,0.00,20.00,0.43,1.66,0.24 +30.00,0.00,0.00,0.85,1.68,0.19 +58.00,0.00,28.00,0.32,1.61,0.29 +33.00,0.00,3.00,0.69,1.67,0.32 +30.00,1.00,0.00,0.45,1.71,0.27 +65.00,0.00,35.00,0.31,1.57,0.31 +47.00,0.00,17.00,0.51,1.65,0.23 +41.00,0.00,11.00,0.37,1.67,0.30 +33.70,1.00,15.00,0.41,1.71,0.27 +69.00,0.00,39.00,0.44,1.65,0.28 +45.00,0.00,15.00,0.44,1.66,0.25 +30.00,0.00,0.00,0.64,1.53,0.20 +35.70,1.00,20.00,0.82,1.64,0.18 +43.00,0.00,13.00,0.33,1.64,0.29 +29.90,1.00,17.00,0.55,1.73,0.24 +41.00,0.00,11.00,0.74,1.57,0.17 +91.00,0.00,61.00,0.39,1.68,0.28 +53.00,0.00,23.00,0.59,1.70,0.27 +45.00,0.00,15.00,0.55,1.68,0.23 +38.80,1.00,13.00,0.80,1.58,0.17 +30.00,0.00,0.00,0.90,1.73,0.21 +45.60,1.00,19.00,0.69,1.51,0.16 +97.00,0.00,67.00,0.59,1.70,0.27 +17.50,0.00,0.00,1.07,1.87,0.55 +30.00,0.00,0.00,0.77,1.55,0.16 +20.00,1.00,17.00,0.42,1.60,0.24 +53.00,0.00,23.00,0.42,1.84,0.40 +2.10,0.00,0.00,0.50,1.79,0.40 +65.00,0.00,35.00,0.32,1.60,0.30 +1.60,0.00,0.00,0.34,1.56,0.26 +30.00,0.00,0.00,0.54,1.58,0.19 +54.30,1.00,42.00,0.35,1.64,0.30 +16.20,0.00,0.00,0.46,1.63,0.26 +23.60,1.00,0.00,0.78,1.80,0.49 +59.90,1.00,41.00,0.58,1.50,0.16 +28.60,0.00,0.00,0.66,1.73,0.40 +51.00,0.00,21.00,0.66,1.53,0.15 +44.00,0.00,14.00,0.59,1.78,0.25 +58.70,1.00,42.00,0.65,1.79,0.37 +5.80,0.00,0.00,0.44,1.65,0.26 +51.00,0.00,21.00,0.52,1.65,0.28 +72.00,0.00,42.00,0.35,1.58,0.25 +92.00,0.00,62.00,0.33,1.60,0.31 +30.00,0.00,0.00,0.32,1.59,0.31 +71.00,0.00,41.00,0.35,1.59,0.27 +40.00,0.00,10.00,0.44,1.67,0.25 +9.60,1.00,0.00,1.25,1.75,0.25 +41.00,0.00,11.00,0.49,1.61,0.27 +23.10,0.00,0.00,0.66,1.52,0.18 +30.00,0.00,0.00,0.69,1.61,0.28 +48.00,0.00,18.00,0.55,1.52,0.18 +49.00,0.00,19.00,0.33,1.70,0.28 +49.00,0.00,19.00,0.80,1.72,0.25 +41.00,0.00,11.00,0.82,1.60,0.18 +30.00,0.00,0.00,0.36,1.63,0.30 +58.00,0.00,28.00,0.33,1.56,0.26 +30.00,0.00,0.00,0.66,1.53,0.16 +35.10,1.00,29.00,0.61,1.76,0.26 +84.00,0.00,54.00,0.49,1.65,0.28 +30.00,0.00,0.00,0.61,1.55,0.21 +55.00,0.00,25.00,0.36,1.66,0.32 +44.00,0.00,14.00,0.63,1.82,0.24 +92.60,1.00,71.00,0.55,1.66,0.28 +47.00,0.00,17.00,0.68,1.51,0.15 +63.00,0.00,33.00,0.52,1.65,0.24 +40.50,1.00,23.00,0.69,1.73,0.34 +76.40,1.00,53.00,0.39,1.67,0.27 +69.00,0.00,39.00,0.43,1.64,0.27 +51.00,0.00,21.00,0.66,1.53,0.15 +50.00,0.00,20.00,0.56,1.71,0.24 +18.60,0.00,0.00,0.96,1.63,0.18 +26.70,1.00,0.00,0.36,1.58,0.26 +20.20,0.00,0.00,0.33,1.56,0.27 +98.00,0.00,68.00,0.33,1.61,0.31 +80.10,1.00,68.00,0.37,1.64,0.28 +17.90,0.00,0.00,1.21,1.67,0.20 +23.20,0.00,0.00,0.67,1.52,0.19 +48.00,0.00,18.00,0.69,1.69,0.23 +62.00,0.00,32.00,0.64,1.79,0.37 +73.00,0.00,43.00,0.44,1.73,0.27 +56.00,0.00,26.00,0.49,1.60,0.27 +53.00,0.00,23.00,0.57,1.74,0.32 +101.00,0.00,71.00,0.53,1.74,0.27 +1.10,0.00,0.00,0.69,1.57,0.23 +1.70,0.00,0.00,0.40,1.58,0.24 +16.80,0.00,0.00,0.67,1.65,0.24 +48.00,0.00,18.00,0.63,1.49,0.15 +43.00,0.00,13.00,0.79,1.57,0.16 +83.00,0.00,53.00,0.40,1.66,0.26 +79.00,1.00,58.00,0.95,1.63,0.18 +69.00,0.00,39.00,0.33,1.59,0.27 +70.00,0.00,40.00,0.40,1.60,0.24 +78.00,0.00,48.00,0.49,1.69,0.25 +62.00,0.00,32.00,0.34,1.61,0.32 +71.00,0.00,41.00,0.55,1.80,0.27 +6.20,0.00,0.00,0.82,1.60,0.17 +40.00,0.00,10.00,0.71,1.55,0.17 +1.50,0.00,0.00,0.35,1.60,0.27 +41.20,1.00,21.00,0.47,1.67,0.25 +47.00,0.00,17.00,0.74,1.53,0.17 +30.90,1.00,4.00,0.48,1.55,0.26 +35.00,0.00,5.00,0.59,1.70,0.27 +52.00,0.00,22.00,0.44,1.61,0.25 +30.00,0.00,0.00,0.85,1.70,0.25 +41.00,0.00,11.00,0.47,1.60,0.26 +98.00,0.00,68.00,0.38,1.64,0.26 +30.00,0.00,0.00,0.67,1.52,0.18 +45.00,0.00,15.00,0.54,1.69,0.23 +1.80,0.00,0.00,0.56,1.62,0.23 +81.00,0.00,51.00,0.34,1.59,0.27 +78.00,0.00,48.00,0.52,1.79,0.28 +65.40,1.00,47.00,0.80,1.55,0.20 +13.20,1.00,0.00,0.67,1.65,0.24 +71.00,1.00,64.00,0.48,1.77,0.28 +6.60,0.00,0.00,0.70,1.59,0.26 +30.00,0.00,0.00,0.53,1.83,0.29 +58.00,0.00,28.00,0.47,1.69,0.26 +75.00,0.00,45.00,0.33,1.59,0.26 +48.00,0.00,18.00,0.53,1.60,0.18 +60.00,0.00,30.00,0.33,1.64,0.29 +88.00,0.00,58.00,0.42,1.67,0.25 +90.00,0.00,60.00,0.46,1.73,0.26 +80.60,1.00,62.00,0.44,1.73,0.27 +44.00,0.00,14.00,0.34,1.61,0.32 +55.00,0.00,25.00,0.57,1.57,0.21 +80.00,0.00,50.00,0.38,1.65,0.27 +46.00,1.00,24.00,0.54,1.56,0.18 +64.00,0.00,34.00,0.34,1.61,0.30 +31.00,0.00,1.00,0.85,1.71,0.22 +30.00,0.00,0.00,0.68,1.53,0.17 +48.00,0.00,18.00,0.55,1.73,0.32 +11.30,0.00,0.00,0.54,1.78,0.37 +90.60,1.00,64.00,0.50,1.80,0.28 +30.00,0.00,0.00,0.58,1.74,0.33 +36.00,0.00,6.00,0.56,1.62,0.23 +101.00,0.00,71.00,0.39,1.60,0.24 +50.00,0.00,20.00,0.54,1.60,0.21 +12.00,0.00,0.00,0.85,1.68,0.35 +72.00,0.00,42.00,0.39,1.68,0.28 +63.00,0.00,33.00,0.45,1.69,0.26 +13.10,0.00,0.00,0.43,1.61,0.25 +10.60,0.00,0.00,0.76,1.59,0.23 +86.00,0.00,56.00,0.47,1.72,0.26 +61.00,0.00,31.00,0.64,1.83,0.25 +30.00,0.00,0.00,0.56,1.79,0.27 +44.00,0.00,14.00,0.66,1.56,0.21 +30.00,0.00,0.00,0.77,1.55,0.16 +30.00,0.00,0.00,0.59,1.57,0.20 +7.90,0.00,0.00,0.41,1.61,0.25 +52.00,0.00,22.00,0.65,1.54,0.21 +25.60,0.00,0.00,0.57,1.53,0.19 +16.50,1.00,0.00,1.01,1.76,0.32 +69.00,0.00,39.00,0.37,1.56,0.28 +55.40,1.00,31.00,0.57,1.53,0.19 +52.00,0.00,22.00,0.41,1.61,0.25 +30.00,0.00,0.00,0.39,1.66,0.27 +85.00,0.00,55.00,0.39,1.57,0.25 +101.00,0.00,71.00,0.37,1.55,0.24 +96.00,0.00,66.00,0.47,1.63,0.23 +47.00,0.00,17.00,0.54,1.73,0.24 +30.00,0.00,0.00,0.75,1.79,0.43 +58.00,0.00,28.00,0.31,1.58,0.28 +72.00,0.00,42.00,0.35,1.66,0.31 +76.00,0.00,46.00,0.31,1.61,0.29 +5.30,0.00,0.00,0.58,1.73,0.31 +71.70,1.00,53.00,0.69,1.80,0.25 +63.00,0.00,33.00,0.32,1.64,0.28 +30.00,0.00,0.00,0.36,1.58,0.25 +43.00,0.00,13.00,0.35,1.66,0.28 +30.00,0.00,0.00,0.38,1.56,0.24 +20.40,1.00,0.00,0.77,1.54,0.17 +65.00,0.00,35.00,0.36,1.64,0.29 +64.30,1.00,60.00,0.58,1.68,0.31 +3.70,0.00,0.00,0.96,1.67,0.20 +47.00,0.00,17.00,0.33,1.53,0.27 +74.00,0.00,44.00,0.37,1.65,0.28 +66.00,0.00,36.00,0.32,1.59,0.28 +30.00,0.00,0.00,0.32,1.60,0.31 +49.00,0.00,19.00,0.74,1.72,0.25 +30.00,0.00,0.00,0.76,1.78,0.44 +30.00,0.00,0.00,0.89,1.67,0.25 +44.00,0.00,14.00,0.44,1.70,0.25 +14.40,0.00,0.00,0.37,1.64,0.27 +52.00,0.00,22.00,0.64,1.55,0.21 +54.20,1.00,41.00,0.60,1.49,0.15 +107.00,0.00,77.00,0.39,1.61,0.25 +30.00,0.00,0.00,0.62,1.63,0.24 +66.00,0.00,36.00,0.32,1.61,0.29 +30.00,0.00,0.00,0.93,1.75,0.22 +75.00,0.00,45.00,0.41,1.86,0.40 +61.00,0.00,31.00,0.43,1.73,0.26 +13.10,0.00,0.00,0.66,1.54,0.18 +63.00,0.00,33.00,0.32,1.65,0.28 +5.50,0.00,0.00,0.63,1.68,0.23 +49.00,0.00,19.00,0.43,1.73,0.27 +58.00,0.00,28.00,0.32,1.70,0.29 +79.00,0.00,49.00,0.48,1.76,0.28 +85.00,0.00,55.00,0.49,1.64,0.28 +63.00,0.00,33.00,0.58,1.82,0.26 +44.00,0.00,14.00,0.62,1.70,0.30 +4.40,0.00,0.00,0.60,1.50,0.17 +18.10,1.00,0.00,0.55,1.81,0.28 +16.70,0.00,0.00,0.31,1.70,0.29 +44.00,0.00,14.00,0.46,1.67,0.26 +67.80,1.00,42.00,0.50,1.76,0.37 +35.30,1.00,15.00,1.03,1.62,0.17 +37.00,0.00,7.00,0.55,1.53,0.19 +16.30,0.00,0.00,0.44,1.66,0.25 +11.80,0.00,0.00,1.14,1.77,0.27 +59.00,0.00,29.00,0.53,1.64,0.22 +57.00,0.00,27.00,0.73,1.64,0.26 +9.00,0.00,0.00,0.67,1.54,0.18 +25.40,0.00,0.00,0.77,1.60,0.18 +74.00,0.00,44.00,0.36,1.66,0.32 +65.00,0.00,35.00,0.34,1.63,0.28 +72.00,0.00,42.00,0.56,1.79,0.37 +67.00,0.00,37.00,0.44,1.68,0.28 +70.00,0.00,40.00,0.39,1.59,0.24 +96.00,0.00,66.00,0.47,1.65,0.24 +58.00,0.00,28.00,0.65,1.74,0.34 +25.20,1.00,20.00,0.46,1.66,0.26 +73.70,1.00,44.00,0.54,1.74,0.25 +14.80,0.00,0.00,0.59,1.54,0.20 +21.50,0.00,0.00,1.19,1.80,0.29 +10.60,0.00,0.00,0.93,1.70,0.24 +74.00,0.00,44.00,0.36,1.65,0.32 +33.00,0.00,3.00,0.46,1.61,0.25 +70.00,0.00,40.00,0.39,1.58,0.28 +30.00,0.00,0.00,0.66,1.77,0.36 +18.00,1.00,0.00,1.00,1.75,0.25 +52.00,0.00,22.00,0.42,1.63,0.26 +5.30,0.00,0.00,0.71,1.76,0.42 +4.70,0.00,0.00,0.62,1.55,0.21 +12.40,0.00,0.00,0.69,1.54,0.17 +70.80,1.00,58.00,0.95,1.62,0.17 +44.50,1.00,35.00,0.35,1.66,0.28 +26.10,0.00,0.00,0.80,1.57,0.16 +39.00,0.00,9.00,0.33,1.52,0.27 +101.00,0.00,71.00,0.51,1.78,0.28 +25.30,1.00,0.00,0.93,1.69,0.25 +85.00,0.00,55.00,0.39,1.57,0.26 +1.20,0.00,0.00,0.59,1.57,0.21 +53.70,1.00,50.00,0.37,1.65,0.29 +21.30,0.00,0.00,0.75,1.80,0.40 +8.00,1.00,0.00,0.62,1.58,0.21 +72.00,0.00,42.00,0.52,1.76,0.37 +76.80,1.00,71.00,0.64,1.58,0.21 +98.60,1.00,76.00,0.48,1.65,0.27 +47.00,0.00,17.00,0.51,1.65,0.23 +38.90,1.00,31.00,0.88,1.70,0.19 +72.00,0.00,42.00,0.36,1.61,0.25 +15.80,0.00,0.00,0.49,1.64,0.25 +30.00,0.00,0.00,0.50,1.61,0.28 +48.00,0.00,18.00,0.67,1.50,0.16 +71.10,1.00,44.00,0.36,1.64,0.31 +30.00,0.00,0.00,0.56,1.79,0.27 +73.70,1.00,66.00,0.47,1.62,0.23 +83.00,0.00,53.00,0.57,1.66,0.22 +90.00,0.00,60.00,0.38,1.56,0.23 +3.30,0.00,0.00,1.22,1.81,0.30 +53.00,0.00,23.00,0.35,1.60,0.28 +78.00,0.00,48.00,0.50,1.83,0.28 +61.00,0.00,31.00,0.43,1.72,0.26 +17.50,0.00,0.00,0.50,1.70,0.26 +51.00,0.00,21.00,0.66,1.53,0.15 +106.00,0.00,76.00,0.51,1.69,0.28 +92.00,0.00,62.00,0.37,1.65,0.30 +72.00,0.00,42.00,0.35,1.57,0.25 +63.00,0.00,33.00,0.47,1.70,0.26 +55.90,1.00,29.00,0.68,1.73,0.33 +40.20,1.00,20.00,0.62,1.52,0.19 +66.00,0.00,36.00,0.48,1.64,0.24 +79.00,0.00,49.00,0.46,1.66,0.25 +2.90,0.00,0.00,0.61,1.55,0.21 +69.00,0.00,39.00,0.33,1.59,0.27 +52.10,1.00,38.00,0.50,1.80,0.28 +34.30,1.00,20.00,0.78,1.68,0.32 +44.00,0.00,14.00,0.44,1.71,0.26 +10.70,0.00,0.00,0.45,1.70,0.27 +30.00,0.00,0.00,0.33,1.60,0.31 +65.00,0.00,35.00,0.34,1.61,0.29 +48.00,0.00,18.00,0.53,1.57,0.18 +30.00,0.00,0.00,0.35,1.62,0.30 +44.00,0.00,14.00,0.46,1.74,0.28 +40.00,0.00,10.00,0.85,1.63,0.18 +61.70,1.00,43.00,0.40,1.66,0.27 +44.00,0.00,14.00,0.53,1.65,0.23 +63.00,0.00,33.00,0.61,1.58,0.23 +107.00,0.00,77.00,0.38,1.61,0.25 +30.00,0.00,0.00,0.73,1.67,0.35 +38.10,1.00,17.00,0.79,1.58,0.16 +70.60,1.00,44.00,0.38,1.68,0.29 +55.00,0.00,25.00,0.59,1.57,0.22 +48.00,0.00,18.00,0.35,1.66,0.32 +30.00,0.00,0.00,0.94,1.75,0.22 +66.00,0.00,36.00,0.43,1.70,0.33 +30.00,0.00,0.00,0.76,1.58,0.15 +42.00,0.00,12.00,0.62,1.72,0.37 +34.80,1.00,20.00,0.48,1.67,0.24 +40.00,0.00,10.00,1.10,1.63,0.19 +16.10,0.00,0.00,0.76,1.62,0.29 +65.00,0.00,35.00,0.35,1.65,0.28 +60.00,0.00,30.00,0.71,1.55,0.15 +4.60,0.00,0.00,1.01,1.78,0.25 +53.00,0.00,23.00,0.43,1.78,0.37 +33.50,1.00,22.00,0.44,1.62,0.25 +29.80,0.00,0.00,0.39,1.56,0.28 +48.10,1.00,28.00,0.31,1.62,0.28 +49.00,0.00,19.00,0.72,1.52,0.18 +30.00,0.00,0.00,0.69,1.78,0.25 +45.00,0.00,15.00,0.66,1.57,0.23 +44.00,0.00,14.00,0.34,1.61,0.32 +92.00,0.00,62.00,0.42,1.72,0.27 +18.90,0.00,0.00,0.41,1.69,0.27 +55.00,0.00,25.00,0.96,1.76,0.23 +5.90,0.00,0.00,0.61,1.59,0.27 +63.00,0.00,33.00,0.60,1.58,0.23 +59.00,0.00,29.00,0.41,1.68,0.26 +51.00,0.00,21.00,0.68,1.53,0.15 +94.00,0.00,64.00,0.49,1.79,0.28 +6.30,0.00,0.00,0.87,1.58,0.16 +30.00,0.00,0.00,0.87,1.82,0.41 +74.00,0.00,44.00,0.32,1.64,0.29 +11.50,0.00,0.00,0.93,1.70,0.24 +50.00,0.00,20.00,0.60,1.53,0.19 +59.00,0.00,29.00,0.41,1.68,0.27 +58.00,0.00,28.00,0.32,1.59,0.31 +69.00,0.00,39.00,0.46,1.68,0.24 +59.00,0.00,29.00,0.48,1.64,0.24 +23.20,1.00,0.00,0.77,1.79,0.41 +67.10,1.00,53.00,0.69,1.84,0.25 +90.00,0.00,60.00,0.54,1.72,0.30 +13.80,0.00,0.00,0.65,1.61,0.26 +43.00,0.00,13.00,0.41,1.69,0.27 +63.00,0.00,33.00,0.71,1.53,0.20 +67.00,0.00,37.00,0.62,1.77,0.25 +87.60,1.00,58.00,0.64,1.69,0.23 +48.90,1.00,31.00,0.61,1.55,0.21 +58.00,0.00,28.00,0.62,1.54,0.16 +30.00,0.00,0.00,0.77,1.65,0.24 +32.00,0.00,2.00,0.55,1.67,0.23 +44.00,0.00,14.00,0.43,1.70,0.26 +63.00,0.00,33.00,0.57,1.77,0.25 +18.10,0.00,0.00,0.83,1.64,0.18 +57.80,1.00,53.00,0.50,1.58,0.21 +2.90,0.00,0.00,0.96,1.82,0.45 +49.00,0.00,19.00,0.70,1.52,0.18 +7.40,0.00,0.00,0.50,1.81,0.28 +10.70,0.00,0.00,0.62,1.56,0.22 +40.00,0.00,10.00,0.86,1.57,0.16 +90.00,0.00,60.00,0.41,1.59,0.24 +69.00,0.00,39.00,0.64,1.53,0.20 +48.00,0.00,18.00,0.33,1.65,0.30 +4.20,0.00,0.00,0.80,1.57,0.16 +10.30,0.00,0.00,0.78,1.58,0.15 +37.00,0.00,7.00,0.74,1.67,0.31 +60.70,1.00,42.00,0.54,1.78,0.37 +86.00,0.00,56.00,0.53,1.84,0.29 +26.20,1.00,0.00,0.82,1.57,0.16 +30.00,0.00,0.00,0.62,1.50,0.17 +69.00,0.00,39.00,0.43,1.64,0.27 +30.00,0.00,0.00,0.62,1.58,0.22 +43.00,0.00,13.00,0.80,1.58,0.17 +30.00,0.00,0.00,0.82,1.79,0.47 +30.00,0.00,0.00,0.62,1.63,0.24 +70.30,1.00,43.00,0.61,1.68,0.23 +9.30,0.00,0.00,0.35,1.62,0.31 +88.00,0.00,58.00,0.42,1.66,0.25 +30.00,0.00,0.00,0.75,1.79,0.41 +47.00,0.00,17.00,0.52,1.65,0.23 +58.00,0.00,28.00,0.47,1.69,0.25 +82.40,1.00,71.00,0.64,1.57,0.20 +41.40,1.00,19.00,0.80,1.72,0.25 +83.00,0.00,53.00,0.40,1.66,0.26 +6.90,0.00,0.00,0.42,1.67,0.25 +72.60,1.00,71.00,0.64,1.57,0.20 +62.00,0.00,32.00,0.69,1.57,0.22 +8.10,1.00,0.00,1.09,1.88,0.56 +30.00,0.00,0.00,0.61,1.55,0.21 +69.00,0.00,39.00,0.64,1.54,0.20 +78.00,0.00,48.00,0.44,1.70,0.27 +30.00,0.00,0.00,0.83,1.64,0.19 +90.00,0.00,60.00,0.60,1.74,0.32 +30.00,0.00,0.00,0.74,1.53,0.16 +59.00,0.00,29.00,0.39,1.68,0.30 +50.00,0.00,20.00,0.76,1.53,0.18 +35.00,0.00,5.00,0.47,1.69,0.26 +59.00,0.00,29.00,0.59,1.74,0.24 +30.00,0.00,0.00,0.80,1.57,0.16 +39.00,0.00,9.00,0.43,1.71,0.26 +55.50,1.00,37.00,0.61,1.74,0.32 +60.90,1.00,33.00,0.42,1.70,0.28 +52.00,0.00,22.00,0.37,1.65,0.27 +30.00,0.00,0.00,0.88,1.67,0.25 +69.00,0.00,39.00,0.40,1.57,0.27 +92.00,0.00,62.00,0.38,1.66,0.30 +50.00,0.00,20.00,0.41,1.57,0.27 +30.00,0.00,0.00,0.78,1.65,0.25 +61.00,0.00,31.00,0.33,1.60,0.31 +28.30,0.00,0.00,0.47,1.64,0.24 +29.10,0.00,0.00,0.49,1.64,0.22 +45.00,0.00,15.00,0.42,1.71,0.27 +31.50,1.00,12.00,0.51,1.83,0.43 +48.00,0.00,18.00,0.35,1.64,0.32 +85.00,0.00,55.00,0.36,1.55,0.27 +44.00,0.00,14.00,0.40,1.63,0.25 +56.00,0.00,26.00,0.31,1.59,0.31 +60.00,0.00,30.00,0.49,1.67,0.24 +31.00,0.00,1.00,0.39,1.65,0.26 +67.00,0.00,37.00,0.57,1.76,0.25 +87.00,0.00,57.00,0.37,1.56,0.24 +14.60,0.00,0.00,0.59,1.68,0.23 +74.00,0.00,44.00,0.33,1.60,0.28 +30.00,0.00,0.00,0.36,1.63,0.29 +44.00,0.00,14.00,0.65,1.56,0.23 +47.00,0.00,17.00,0.39,1.56,0.24 +3.70,0.00,0.00,0.85,1.81,0.50 +30.00,0.00,0.00,0.95,1.75,0.23 +63.00,0.00,33.00,0.62,1.59,0.22 +96.00,0.00,66.00,0.55,1.65,0.22 +30.00,0.00,0.00,0.74,1.60,0.21 +59.30,1.00,53.00,0.50,1.58,0.21 +42.00,0.00,12.00,0.52,1.59,0.19 +54.00,0.00,24.00,0.53,1.56,0.18 +69.00,0.00,39.00,1.04,1.78,0.27 +30.00,0.00,0.00,0.36,1.53,0.27 +98.00,0.00,68.00,0.35,1.62,0.30 +41.00,0.00,11.00,0.59,1.69,0.36 +29.60,0.00,0.00,0.61,1.70,0.38 +14.30,0.00,0.00,0.92,1.73,0.27 +60.00,0.00,30.00,0.32,1.63,0.29 +15.80,0.00,0.00,0.71,1.55,0.15 +30.00,0.00,0.00,0.62,1.60,0.25 +13.10,0.00,0.00,0.58,1.58,0.22 +30.00,0.00,0.00,0.57,1.55,0.17 +30.00,0.00,0.00,0.75,1.79,0.39 +81.00,0.00,51.00,0.47,1.63,0.26 +87.00,0.00,57.00,0.59,1.63,0.25 +17.20,0.00,0.00,0.63,1.70,0.33 +74.00,0.00,44.00,0.36,1.65,0.32 +30.00,0.00,0.00,0.47,1.63,0.26 +30.00,0.00,0.00,0.71,1.51,0.16 +7.80,0.00,0.00,0.49,1.68,0.27 +101.00,0.00,71.00,0.50,1.62,0.26 +15.70,1.00,10.00,0.45,1.68,0.25 +65.00,0.00,35.00,0.35,1.64,0.31 +24.20,1.00,10.00,0.84,1.57,0.16 +59.10,1.00,42.00,0.39,1.69,0.28 +58.00,0.00,28.00,0.32,1.56,0.27 +44.00,0.00,14.00,0.62,1.65,0.27 +101.00,0.00,71.00,0.40,1.61,0.24 +66.00,0.00,36.00,0.47,1.67,0.26 +12.00,1.00,10.00,0.54,1.53,0.18 +83.00,0.00,53.00,0.39,1.67,0.28 +44.00,0.00,14.00,0.47,1.55,0.27 +48.00,0.00,18.00,0.54,1.53,0.17 +53.00,0.00,23.00,0.43,1.78,0.38 +72.00,0.00,42.00,0.43,1.71,0.27 +37.00,0.00,7.00,0.55,1.54,0.19 +19.40,1.00,0.00,0.89,1.80,0.44 +92.00,0.00,62.00,0.41,1.71,0.27 +69.00,0.00,39.00,0.54,1.54,0.18 +44.00,0.00,14.00,0.68,1.59,0.24 +20.80,0.00,0.00,0.57,1.51,0.17 +52.00,0.00,22.00,0.42,1.67,0.25 +30.00,0.00,0.00,0.71,1.54,0.20 +72.00,0.00,42.00,0.31,1.58,0.31 +30.00,0.00,0.00,0.32,1.55,0.27 +30.00,0.00,0.00,0.37,1.57,0.28 +2.10,0.00,0.00,0.37,1.54,0.28 +59.00,0.00,29.00,0.47,1.64,0.24 +39.00,1.00,19.00,0.80,1.66,0.23 +74.00,0.00,44.00,0.35,1.66,0.28 +60.00,0.00,30.00,0.70,1.55,0.17 +30.00,0.00,0.00,1.03,1.77,0.21 +8.60,0.00,0.00,0.59,1.54,0.20 +72.00,0.00,42.00,0.38,1.67,0.28 +30.00,0.00,0.00,0.65,1.61,0.26 +72.00,0.00,42.00,0.37,1.66,0.28 +0.70,0.00,0.00,0.60,1.68,0.23 +7.80,0.00,0.00,0.62,1.53,0.16 +27.70,0.00,0.00,0.37,1.66,0.30 +53.00,0.00,23.00,0.41,1.59,0.24 +47.00,0.00,17.00,0.52,1.57,0.21 +50.00,0.00,20.00,0.69,1.74,0.41 +40.00,0.00,10.00,0.79,1.60,0.18 +50.20,1.00,37.00,0.61,1.69,0.23 +59.00,0.00,29.00,0.54,1.62,0.22 +30.00,0.00,0.00,1.03,1.76,0.21 +29.20,1.00,20.00,0.78,1.68,0.32 +30.00,0.00,0.00,0.54,1.57,0.19 +67.00,0.00,37.00,0.58,1.81,0.26 +30.00,0.00,0.00,0.42,1.85,0.40 +11.40,0.00,0.00,0.70,1.53,0.15 +58.00,0.00,28.00,0.32,1.61,0.29 +46.00,0.00,16.00,0.33,1.46,0.26 +48.10,1.00,34.00,0.39,1.69,0.28 +73.00,0.00,43.00,0.39,1.66,0.27 +30.00,0.00,0.00,0.62,1.76,0.24 +57.00,0.00,27.00,0.45,1.72,0.26 +11.30,0.00,0.00,0.85,1.81,0.49 +62.40,1.00,51.00,0.35,1.59,0.27 +3.50,0.00,0.00,0.68,1.59,0.24 +31.70,1.00,5.00,0.69,1.59,0.25 +44.00,0.00,14.00,0.45,1.70,0.25 +30.00,0.00,0.00,0.56,1.51,0.16 +53.20,1.00,28.00,0.34,1.55,0.27 +70.50,1.00,42.00,0.52,1.82,0.28 +83.00,0.00,53.00,0.50,1.57,0.20 +30.00,0.00,0.00,0.86,1.71,0.23 +71.00,1.00,67.00,0.63,1.58,0.22 +76.80,1.00,68.00,0.41,1.56,0.25 +40.00,0.00,10.00,0.89,1.72,0.20 +66.00,0.00,36.00,0.44,1.74,0.35 +1.20,0.00,0.00,0.84,1.70,0.22 +59.00,0.00,29.00,0.38,1.67,0.30 +73.70,1.00,58.00,0.63,1.68,0.23 +1.00,0.00,0.00,0.79,1.79,0.39 +30.00,0.00,0.00,0.59,1.64,0.24 +30.00,0.00,0.00,0.61,1.70,0.37 +17.40,0.00,0.00,0.42,1.66,0.25 +88.00,0.00,58.00,0.42,1.70,0.26 +25.30,1.00,0.00,0.75,1.79,0.39 +50.00,0.00,20.00,0.68,1.50,0.17 +86.00,0.00,56.00,0.56,1.71,0.24 +30.00,0.00,0.00,0.33,1.46,0.26 +5.90,0.00,0.00,0.78,1.55,0.17 +4.10,0.00,0.00,0.82,1.56,0.17 +30.30,1.00,21.00,0.85,1.57,0.18 +13.10,0.00,0.00,0.50,1.58,0.20 +49.00,0.00,19.00,0.51,1.65,0.22 +53.00,0.00,23.00,0.59,1.69,0.27 +30.00,0.00,0.00,0.44,1.61,0.25 +49.00,0.00,19.00,0.35,1.60,0.26 +5.50,0.00,0.00,0.31,1.63,0.28 +45.00,0.00,15.00,0.61,1.52,0.17 +51.00,0.00,21.00,0.35,1.63,0.31 +66.00,0.00,36.00,0.32,1.62,0.29 +63.00,0.00,33.00,0.58,1.58,0.22 +10.90,0.00,0.00,0.51,1.69,0.28 +9.60,1.00,7.00,0.75,1.67,0.29 +83.00,0.00,53.00,0.53,1.64,0.22 +40.30,1.00,37.00,1.05,1.75,0.21 +30.00,0.00,0.00,0.78,1.57,0.16 +7.50,0.00,0.00,0.69,1.59,0.26 +30.00,0.00,0.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.66,1.65,0.24 +2.50,0.00,0.00,0.69,1.69,0.32 +72.00,0.00,42.00,0.80,1.77,0.38 +1.20,0.00,0.00,0.73,1.59,0.20 +30.00,0.00,0.00,0.66,1.53,0.19 +21.40,1.00,0.00,0.71,1.52,0.16 +62.00,0.00,32.00,0.35,1.63,0.32 +70.00,0.00,40.00,0.39,1.64,0.25 +53.00,0.00,23.00,0.46,1.69,0.26 +30.00,0.00,0.00,0.94,1.73,0.24 +7.20,0.00,0.00,0.48,1.70,0.30 +47.00,0.00,17.00,0.41,1.56,0.27 +58.00,0.00,28.00,0.42,1.56,0.27 +30.00,0.00,0.00,0.72,1.58,0.22 +30.00,0.00,0.00,1.00,1.62,0.18 +77.90,1.00,49.00,0.70,1.59,0.26 +44.00,0.00,14.00,0.43,1.63,0.26 +45.00,0.00,15.00,0.61,1.52,0.17 +64.00,0.00,34.00,0.42,1.70,0.27 +30.00,0.00,0.00,1.19,1.79,0.28 +78.10,1.00,53.00,0.76,1.62,0.29 +72.00,1.00,68.00,0.40,1.56,0.25 +41.00,0.00,11.00,0.46,1.72,0.28 +69.70,1.00,43.00,0.39,1.66,0.27 +74.00,0.00,44.00,0.38,1.67,0.28 +58.00,0.00,28.00,0.34,1.56,0.27 +26.20,0.00,0.00,0.36,1.68,0.32 +25.20,0.00,0.00,0.67,1.52,0.19 +55.00,0.00,25.00,0.59,1.57,0.22 +30.00,0.00,0.00,0.69,1.77,0.37 +30.00,0.00,0.00,0.73,1.69,0.23 +38.30,1.00,21.00,0.56,1.54,0.20 +30.00,0.00,0.00,0.66,1.52,0.19 +44.00,0.00,14.00,0.54,1.59,0.18 +20.30,0.00,0.00,0.57,1.79,0.37 +72.00,0.00,42.00,0.55,1.73,0.24 +3.40,0.00,0.00,0.94,1.66,0.19 +75.00,0.00,45.00,0.34,1.57,0.26 +73.00,0.00,43.00,0.39,1.67,0.28 +69.00,0.00,39.00,0.47,1.67,0.24 +29.60,1.00,0.00,0.35,1.60,0.27 +8.90,0.00,0.00,0.41,1.62,0.26 +31.00,0.00,1.00,0.58,1.59,0.25 +23.60,0.00,0.00,0.38,1.66,0.28 +13.90,0.00,0.00,0.59,1.70,0.27 +1.00,0.00,0.00,0.40,1.61,0.26 +44.50,1.00,17.00,0.78,1.57,0.16 +37.30,1.00,11.00,0.78,1.54,0.18 +79.00,0.00,49.00,0.69,1.59,0.25 +17.00,0.00,0.00,0.70,1.51,0.16 +59.00,0.00,29.00,0.41,1.67,0.26 +43.00,0.00,13.00,0.43,1.70,0.26 +25.10,0.00,0.00,0.59,1.70,0.27 +53.00,0.00,23.00,0.31,1.56,0.31 +42.00,0.00,12.00,0.54,1.62,0.25 +43.00,0.00,13.00,0.53,1.53,0.17 +65.40,1.00,61.00,0.37,1.66,0.28 +72.00,0.00,42.00,0.35,1.57,0.26 +44.00,0.00,14.00,0.54,1.59,0.18 +10.80,0.00,0.00,0.61,1.55,0.21 +0.20,0.00,0.00,0.57,1.62,0.24 +80.00,0.00,50.00,0.59,1.58,0.21 +41.00,1.00,24.00,0.52,1.57,0.19 +99.00,0.00,69.00,0.56,1.52,0.17 +90.00,0.00,60.00,0.58,1.69,0.28 +18.40,0.00,0.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.68,1.59,0.24 +71.00,0.00,41.00,0.62,1.49,0.15 +52.00,0.00,22.00,0.36,1.62,0.27 +106.00,0.00,76.00,0.52,1.70,0.29 +3.00,0.00,0.00,0.59,1.53,0.20 +43.00,0.00,13.00,0.53,1.70,0.23 +30.00,0.00,0.00,0.65,1.53,0.16 +47.00,0.00,17.00,0.76,1.53,0.17 +52.00,0.00,22.00,0.38,1.68,0.28 +68.00,0.00,38.00,0.77,1.65,0.28 +58.00,1.00,57.00,0.49,1.74,0.27 +58.00,0.00,28.00,0.33,1.56,0.27 +54.00,0.00,24.00,0.43,1.67,0.27 +60.00,0.00,30.00,0.36,1.66,0.30 +6.60,0.00,0.00,0.71,1.61,0.26 +58.00,0.00,28.00,0.38,1.58,0.28 +81.00,0.00,51.00,0.32,1.62,0.29 +54.00,0.00,24.00,0.54,1.56,0.18 +59.00,0.00,29.00,0.54,1.61,0.23 +30.00,0.00,0.00,0.45,1.70,0.27 +52.00,0.00,22.00,0.36,1.63,0.27 +7.10,0.00,0.00,0.51,1.65,0.24 +69.40,1.00,60.00,0.47,1.67,0.27 +69.00,0.00,39.00,0.60,1.56,0.20 +45.00,0.00,15.00,0.70,1.65,0.30 +63.00,0.00,33.00,0.51,1.65,0.24 +74.00,0.00,44.00,0.36,1.66,0.31 +69.00,0.00,39.00,0.66,1.52,0.19 +89.00,0.00,59.00,0.40,1.83,0.39 +60.00,0.00,30.00,0.45,1.72,0.27 +50.00,0.00,20.00,0.63,1.52,0.18 +25.80,0.00,0.00,0.47,1.55,0.27 +14.20,0.00,0.00,0.46,1.71,0.26 +38.00,0.00,8.00,0.53,1.54,0.17 +63.00,0.00,33.00,0.59,1.57,0.22 +30.00,0.00,0.00,0.92,1.74,0.21 +58.00,0.00,28.00,0.48,1.67,0.25 +63.30,1.00,41.00,0.61,1.70,0.24 +39.00,0.00,9.00,0.41,1.87,0.40 +30.00,0.00,0.00,0.57,1.80,0.26 +101.00,0.00,71.00,0.64,1.58,0.21 +40.90,1.00,14.00,0.53,1.59,0.19 +3.10,0.00,0.00,0.68,1.59,0.24 +18.50,0.00,0.00,0.38,1.55,0.25 +30.00,0.00,0.00,0.59,1.63,0.24 +43.00,0.00,13.00,0.36,1.67,0.29 +42.00,0.00,12.00,0.35,1.62,0.26 +30.00,0.00,0.00,0.59,1.75,0.33 +51.00,0.00,21.00,0.32,1.74,0.29 +16.90,0.00,0.00,0.51,1.70,0.24 +59.50,1.00,35.00,0.32,1.59,0.30 +81.80,1.00,60.00,0.41,1.59,0.24 +61.20,1.00,47.00,1.02,1.61,0.23 +62.00,0.00,32.00,0.39,1.69,0.28 +30.00,0.00,0.00,0.76,1.54,0.17 +61.00,0.00,31.00,0.43,1.73,0.26 +58.00,0.00,28.00,0.34,1.56,0.25 +19.90,0.00,0.00,1.08,1.62,0.19 +51.00,0.00,21.00,0.67,1.53,0.15 +43.00,0.00,13.00,0.41,1.64,0.25 +53.00,0.00,23.00,0.40,1.68,0.27 +48.00,0.00,18.00,0.44,1.61,0.25 +11.50,0.00,0.00,0.92,1.59,0.17 +84.00,0.00,54.00,0.49,1.64,0.28 +6.20,0.00,0.00,0.58,1.69,0.31 +57.00,0.00,27.00,0.43,1.66,0.26 +98.00,0.00,68.00,0.37,1.64,0.28 +45.00,0.00,15.00,0.59,1.53,0.20 +36.00,0.00,6.00,0.41,1.69,0.26 +83.00,0.00,53.00,0.51,1.57,0.20 +65.00,0.00,35.00,0.32,1.60,0.31 +67.00,0.00,37.00,0.61,1.75,0.24 +43.00,0.00,13.00,0.42,1.69,0.26 +18.40,0.00,0.00,0.35,1.63,0.31 +59.00,0.00,29.00,0.36,1.62,0.26 +0.30,0.00,0.00,0.60,1.64,0.23 +59.00,0.00,29.00,0.42,1.68,0.26 +32.00,0.00,2.00,0.59,1.61,0.25 +30.00,0.00,0.00,0.73,1.59,0.22 +11.70,0.00,0.00,0.34,1.55,0.26 +71.00,1.00,50.00,0.38,1.66,0.27 +84.80,1.00,74.00,0.31,1.58,0.29 +16.20,0.00,0.00,0.51,1.58,0.21 +42.00,0.00,12.00,0.57,1.68,0.29 +63.00,0.00,33.00,0.52,1.65,0.23 +19.10,0.00,0.00,0.71,1.60,0.26 +43.00,0.00,13.00,0.44,1.70,0.26 +61.00,0.00,31.00,0.65,1.84,0.25 +39.20,1.00,17.00,0.41,1.58,0.24 +30.00,0.00,0.00,0.75,1.79,0.39 +15.20,0.00,0.00,0.52,1.71,0.30 +48.00,0.00,18.00,0.47,1.62,0.23 +71.00,0.00,41.00,0.37,1.59,0.26 +50.00,0.00,20.00,0.43,1.57,0.25 +76.00,0.00,46.00,0.68,1.69,0.23 +30.00,0.00,0.00,0.35,1.62,0.31 +30.00,0.00,0.00,0.49,1.56,0.25 +54.00,0.00,24.00,0.69,1.81,0.25 +19.20,0.00,0.00,0.70,1.52,0.19 +30.00,0.00,0.00,0.67,1.52,0.19 +85.00,0.00,55.00,0.47,1.60,0.27 +82.00,0.00,52.00,0.51,1.64,0.29 +68.00,0.00,38.00,0.56,1.57,0.18 +30.00,0.00,0.00,0.66,1.66,0.24 +74.00,0.00,44.00,0.37,1.66,0.29 +40.00,0.00,10.00,0.62,1.58,0.21 +11.90,1.00,0.00,1.48,1.73,0.27 +66.00,0.00,36.00,0.44,1.68,0.31 +17.30,0.00,0.00,0.82,1.60,0.16 +29.30,0.00,0.00,0.39,1.83,0.39 +68.80,1.00,57.00,0.35,1.59,0.27 +61.00,0.00,31.00,0.72,1.51,0.18 +25.90,1.00,10.00,0.95,1.66,0.20 +83.00,0.00,53.00,0.51,1.58,0.20 +107.00,0.00,77.00,0.39,1.61,0.25 +62.40,1.00,44.00,0.32,1.64,0.29 +56.00,0.00,26.00,0.85,1.68,0.35 +30.00,0.00,0.00,0.77,1.65,0.24 +30.00,0.00,0.00,0.82,1.60,0.17 +30.00,0.00,0.00,0.45,1.73,0.28 +34.00,0.00,4.00,0.33,1.62,0.27 +79.00,0.00,49.00,0.61,1.76,0.24 +44.30,1.00,44.00,0.42,1.89,0.41 +30.00,0.00,0.00,0.85,1.71,0.23 +8.70,0.00,0.00,0.60,1.55,0.20 +86.00,0.00,56.00,0.45,1.71,0.26 +59.00,0.00,29.00,0.62,1.76,0.25 +25.80,0.00,0.00,0.81,1.55,0.18 +19.90,1.00,10.00,0.57,1.79,0.27 +14.50,0.00,0.00,0.38,1.60,0.25 +21.30,1.00,15.00,0.64,1.56,0.22 +7.10,0.00,0.00,0.56,1.52,0.17 +33.00,0.00,3.00,0.46,1.65,0.26 +15.10,0.00,0.00,1.15,1.65,0.20 +63.00,0.00,33.00,0.53,1.65,0.23 +47.00,0.00,17.00,0.46,1.71,0.26 +68.80,1.00,66.00,0.47,1.63,0.23 +64.00,0.00,34.00,0.37,1.64,0.30 +101.00,0.00,71.00,0.64,1.58,0.21 +23.10,0.00,0.00,0.61,1.55,0.21 +6.50,0.00,0.00,1.13,1.64,0.20 +106.00,0.00,76.00,0.34,1.55,0.25 +71.00,0.00,41.00,0.61,1.49,0.15 +30.00,0.00,0.00,0.46,1.72,0.27 +29.70,0.00,0.00,0.47,1.64,0.27 +44.00,0.00,14.00,0.42,1.70,0.26 +52.90,1.00,33.00,0.70,1.54,0.20 +63.00,0.00,33.00,0.71,1.54,0.20 +42.80,1.00,25.00,0.51,1.64,0.23 +74.00,0.00,44.00,0.38,1.68,0.29 +53.00,0.00,23.00,0.36,1.62,0.28 +51.00,0.00,21.00,0.49,1.64,0.25 +42.00,0.00,12.00,0.47,1.61,0.25 +87.00,0.00,57.00,0.49,1.75,0.28 +8.90,0.00,0.00,0.50,1.71,0.30 +55.00,0.00,25.00,0.36,1.67,0.32 +58.00,0.00,28.00,0.39,1.56,0.28 +0.60,0.00,0.00,0.63,1.51,0.17 +47.00,0.00,17.00,0.40,1.57,0.24 +30.00,0.00,0.00,0.60,1.63,0.25 +46.20,1.00,37.00,0.61,1.74,0.32 +66.00,0.00,36.00,0.32,1.61,0.29 +63.00,0.00,33.00,0.33,1.61,0.28 +61.00,0.00,31.00,0.58,1.53,0.19 +83.00,0.00,53.00,0.62,1.69,0.23 +88.50,1.00,62.00,0.37,1.66,0.30 +0.40,0.00,0.00,0.61,1.55,0.21 +53.00,0.00,23.00,0.48,1.55,0.26 +34.00,0.00,4.00,0.60,1.51,0.16 +59.00,0.00,29.00,0.36,1.60,0.25 +30.00,0.00,0.00,0.94,1.81,0.45 +11.40,0.00,0.00,0.94,1.66,0.19 +87.00,0.00,57.00,0.38,1.57,0.24 +55.00,0.00,25.00,0.69,1.82,0.25 +47.00,0.00,17.00,0.56,1.73,0.24 +90.00,0.00,60.00,0.39,1.61,0.25 +30.00,0.00,0.00,0.99,1.74,0.25 +73.00,0.00,43.00,0.39,1.67,0.27 +83.10,1.00,62.00,0.67,1.52,0.19 +62.00,0.00,32.00,0.34,1.61,0.32 +51.00,0.00,21.00,0.41,1.67,0.26 +30.00,0.00,0.00,0.59,1.63,0.24 +30.00,0.00,0.00,0.60,1.63,0.24 +74.00,0.00,44.00,0.35,1.60,0.28 +40.00,0.00,10.00,0.81,1.61,0.18 +82.00,0.00,52.00,0.53,1.65,0.30 +70.00,0.00,40.00,0.42,1.88,0.40 +69.00,0.00,39.00,0.51,1.55,0.26 +65.00,0.00,35.00,0.35,1.64,0.30 +5.70,0.00,0.00,0.71,1.74,0.25 +79.00,0.00,49.00,0.56,1.68,0.33 +30.00,0.00,0.00,0.32,1.59,0.32 +61.00,0.00,31.00,0.47,1.64,0.24 +98.00,0.00,68.00,0.37,1.64,0.27 +72.00,0.00,42.00,0.43,1.84,0.40 +30.00,0.00,0.00,0.47,1.74,0.28 +86.00,0.00,56.00,0.57,1.71,0.24 +18.80,1.00,0.00,0.81,1.61,0.17 +57.10,1.00,41.00,0.37,1.60,0.25 +29.60,0.00,0.00,0.54,1.77,0.37 +7.30,0.00,0.00,0.67,1.74,0.40 +69.00,0.00,39.00,0.66,1.52,0.18 +30.00,0.00,0.00,0.82,1.60,0.16 +46.00,0.00,16.00,0.47,1.66,0.24 +41.00,0.00,11.00,0.46,1.68,0.26 +61.00,0.00,31.00,0.34,1.60,0.31 +84.00,0.00,54.00,0.45,1.62,0.25 +53.00,0.00,23.00,0.31,1.56,0.31 +48.00,0.00,18.00,0.41,1.65,0.26 +30.00,0.00,0.00,0.70,1.67,0.33 +63.00,0.00,33.00,0.60,1.55,0.21 +0.30,0.00,0.00,0.41,1.68,0.26 +88.00,0.00,58.00,0.61,1.68,0.23 +73.00,0.00,43.00,0.39,1.66,0.27 +30.00,0.00,0.00,0.35,1.59,0.26 +68.80,1.00,62.00,0.67,1.52,0.18 +3.60,0.00,0.00,0.87,1.63,0.18 +28.60,1.00,20.00,0.69,1.50,0.17 +104.20,1.00,76.00,0.45,1.63,0.26 +22.60,0.00,0.00,0.34,1.60,0.31 +40.00,0.00,10.00,0.77,1.80,0.49 +1.00,0.00,0.00,0.77,1.66,0.28 +65.00,0.00,35.00,0.79,1.59,0.15 +59.00,0.00,29.00,0.47,1.65,0.24 +101.00,0.00,71.00,0.54,1.73,0.26 +16.50,0.00,0.00,0.80,1.66,0.24 +53.00,0.00,23.00,0.45,1.69,0.26 +59.00,0.00,29.00,0.49,1.62,0.23 +61.00,0.00,31.00,0.33,1.60,0.27 +60.00,0.00,30.00,0.33,1.66,0.28 +62.40,1.00,44.00,0.56,1.67,0.32 +97.40,1.00,76.00,0.34,1.55,0.26 +12.90,0.00,0.00,0.59,1.53,0.18 +45.00,0.00,15.00,0.54,1.68,0.24 +94.30,1.00,71.00,0.63,1.58,0.21 +75.00,0.00,45.00,0.34,1.55,0.25 +30.00,0.00,0.00,0.66,1.65,0.24 +45.00,0.00,15.00,0.62,1.52,0.17 +13.30,0.00,0.00,0.63,1.71,0.30 +62.10,1.00,39.00,1.01,1.78,0.25 +3.10,0.00,0.00,0.68,1.73,0.33 +41.00,0.00,11.00,0.57,1.67,0.30 +53.00,0.00,23.00,0.53,1.72,0.32 +47.00,0.00,17.00,0.45,1.69,0.27 +60.00,0.00,30.00,0.55,1.72,0.25 +22.00,0.00,0.00,0.81,1.67,0.23 +30.00,0.00,0.00,0.32,1.59,0.32 +46.30,1.00,20.00,0.77,1.67,0.29 +39.30,1.00,35.00,0.92,1.74,0.21 +26.70,1.00,0.00,0.62,1.52,0.18 +101.00,0.00,71.00,0.37,1.55,0.24 +7.20,0.00,0.00,0.65,1.71,0.24 +30.00,0.00,0.00,0.32,1.59,0.32 +10.80,0.00,0.00,1.11,1.79,0.27 +48.00,0.00,18.00,0.54,1.53,0.17 +45.00,0.00,15.00,0.44,1.67,0.25 +48.00,0.00,18.00,0.56,1.68,0.23 +82.00,0.00,52.00,0.50,1.65,0.28 +42.00,0.00,12.00,0.92,1.63,0.18 +60.30,1.00,39.00,0.60,1.68,0.23 +61.00,0.00,31.00,0.36,1.66,0.32 +88.00,0.00,58.00,0.54,1.84,0.28 +65.00,0.00,35.00,0.32,1.59,0.31 +21.00,0.00,0.00,0.63,1.72,0.38 +53.00,0.00,23.00,0.43,1.56,0.28 +50.00,0.00,20.00,0.77,1.67,0.29 +44.00,0.00,14.00,0.50,1.58,0.20 +92.00,0.00,62.00,0.35,1.72,0.33 +34.00,0.00,4.00,0.32,1.80,0.29 +67.10,1.00,47.00,0.84,1.56,0.21 +93.00,0.00,63.00,0.56,1.71,0.24 +30.00,0.00,0.00,0.61,1.65,0.23 +12.70,0.00,0.00,0.96,1.64,0.17 +98.00,0.00,68.00,0.33,1.60,0.31 +3.50,0.00,0.00,0.77,1.67,0.29 +30.00,0.00,0.00,0.82,1.61,0.17 +108.00,0.00,78.00,0.61,1.52,0.18 +47.00,0.00,17.00,0.68,1.51,0.15 +30.00,0.00,0.00,0.53,1.55,0.18 +53.90,1.00,43.00,0.40,1.66,0.27 +45.00,0.00,15.00,0.59,1.53,0.20 +2.50,0.00,0.00,0.78,1.57,0.16 +71.00,0.00,41.00,0.39,1.59,0.26 +23.80,0.00,0.00,0.50,1.63,0.25 +52.00,0.00,22.00,0.41,1.61,0.25 +18.20,0.00,0.00,1.21,1.67,0.20 +44.00,0.00,14.00,0.60,1.77,0.25 +49.00,0.00,19.00,0.43,1.73,0.27 +69.00,0.00,39.00,0.46,1.68,0.24 +49.00,0.00,19.00,0.32,1.70,0.28 +5.40,0.00,0.00,0.64,1.68,0.23 +34.00,0.00,4.00,0.60,1.52,0.16 +30.00,0.00,0.00,0.70,1.77,0.37 +17.60,0.00,0.00,0.57,1.62,0.23 +75.00,0.00,45.00,0.82,1.66,0.18 +84.10,1.00,58.00,0.62,1.68,0.23 +30.00,0.00,0.00,0.45,1.62,0.25 +49.30,1.00,42.00,0.82,1.77,0.38 +72.00,0.00,42.00,0.56,1.72,0.24 +12.30,0.00,0.00,0.56,1.65,0.24 +15.70,0.00,0.00,0.52,1.70,0.28 +86.00,0.00,56.00,0.46,1.72,0.26 +27.40,1.00,0.00,0.42,1.63,0.24 +64.00,0.00,34.00,0.41,1.71,0.27 +108.00,0.00,78.00,0.67,1.54,0.18 +42.40,1.00,28.00,0.32,1.59,0.31 +26.40,0.00,0.00,0.57,1.59,0.21 +43.00,0.00,13.00,0.41,1.68,0.27 +76.00,0.00,46.00,0.33,1.56,0.27 +108.00,0.00,78.00,0.56,1.67,0.33 +52.00,0.00,22.00,0.51,1.65,0.27 +41.00,0.00,11.00,0.67,1.78,0.24 +68.00,0.00,38.00,0.70,1.58,0.23 +19.60,1.00,0.00,0.61,1.76,0.24 +30.00,0.00,0.00,0.40,1.61,0.24 +47.00,0.00,17.00,0.74,1.53,0.17 +63.00,0.00,33.00,0.60,1.55,0.21 +58.20,1.00,39.00,0.47,1.68,0.29 +6.80,0.00,0.00,0.72,1.51,0.18 +61.00,0.00,31.00,0.88,1.70,0.19 +82.00,0.00,52.00,0.53,1.66,0.31 +21.90,1.00,14.00,0.82,1.80,0.48 +106.00,0.00,76.00,0.52,1.70,0.29 +50.00,0.00,20.00,0.53,1.58,0.21 +0.60,0.00,0.00,1.01,1.77,0.24 +44.00,0.00,14.00,0.44,1.72,0.27 +22.10,0.00,0.00,0.63,1.58,0.21 +45.00,0.00,15.00,0.42,1.72,0.27 +37.00,0.00,7.00,0.69,1.54,0.17 +30.00,0.00,0.00,0.67,1.64,0.24 +63.00,0.00,33.00,0.52,1.57,0.20 +61.00,0.00,31.00,0.56,1.55,0.18 +50.00,0.00,20.00,0.43,1.72,0.27 +71.00,0.00,41.00,0.36,1.60,0.25 +84.00,0.00,54.00,0.47,1.69,0.30 +66.00,1.00,53.00,0.38,1.67,0.28 +74.00,0.00,44.00,0.35,1.65,0.28 +83.00,0.00,53.00,0.40,1.67,0.26 +30.00,0.00,0.00,1.21,1.74,0.24 +54.00,0.00,24.00,0.54,1.56,0.18 +5.40,0.00,0.00,0.75,1.68,0.23 +74.00,0.00,44.00,0.37,1.65,0.28 +58.00,0.00,28.00,0.32,1.65,0.28 +30.00,0.00,0.00,0.52,1.81,0.29 +49.00,0.00,19.00,0.33,1.71,0.28 +30.00,0.00,0.00,0.66,1.52,0.18 +62.10,1.00,53.00,0.51,1.57,0.21 +30.00,0.00,0.00,0.93,1.73,0.24 +0.90,0.00,0.00,0.60,1.57,0.20 +39.10,1.00,11.00,0.72,1.84,0.25 +69.20,1.00,45.00,0.58,1.65,0.26 +76.40,1.00,60.00,0.58,1.67,0.27 +30.00,0.00,0.00,0.40,1.69,0.28 +66.00,0.00,36.00,0.32,1.60,0.29 +72.00,0.00,42.00,0.38,1.66,0.28 +71.00,0.00,41.00,0.59,1.50,0.15 +70.00,0.00,40.00,0.40,1.64,0.25 +46.00,0.00,16.00,0.48,1.68,0.25 +1.30,0.00,0.00,0.86,1.71,0.23 +83.00,0.00,53.00,0.46,1.72,0.27 +29.90,0.00,0.00,0.39,1.58,0.27 +30.00,0.00,0.00,0.59,1.58,0.26 +11.80,0.00,0.00,1.31,1.80,0.30 +3.60,0.00,0.00,0.48,1.87,0.42 +15.50,0.00,0.00,0.35,1.60,0.28 +89.00,0.00,59.00,0.40,1.83,0.39 +12.00,0.00,0.00,1.01,1.85,0.44 +30.00,0.00,0.00,0.54,1.55,0.18 +30.00,0.00,0.00,0.53,1.55,0.18 +91.00,0.00,61.00,0.35,1.64,0.30 +53.00,0.00,23.00,0.31,1.56,0.31 +10.50,0.00,0.00,0.54,1.68,0.24 +11.50,0.00,0.00,0.61,1.49,0.15 +69.00,0.00,39.00,0.65,1.53,0.20 +91.00,0.00,61.00,0.38,1.67,0.28 +30.00,0.00,0.00,0.64,1.51,0.18 +56.00,0.00,26.00,0.32,1.59,0.31 +11.40,0.00,0.00,0.44,1.73,0.27 +30.00,0.00,0.00,0.61,1.76,0.25 +30.00,0.00,0.00,0.77,1.78,0.44 +26.90,0.00,0.00,0.74,1.76,0.24 +65.00,0.00,35.00,0.34,1.63,0.29 +66.80,1.00,41.00,0.80,1.57,0.16 +65.70,1.00,44.00,0.34,1.64,0.28 +75.00,0.00,45.00,0.62,1.59,0.27 +85.00,0.00,55.00,0.49,1.63,0.28 +16.40,1.00,10.00,0.73,1.81,0.43 +62.80,1.00,33.00,0.57,1.62,0.24 +2.90,0.00,0.00,0.41,1.57,0.27 +21.60,0.00,0.00,0.64,1.49,0.16 +48.00,0.00,18.00,0.53,1.60,0.18 +66.00,0.00,36.00,0.54,1.71,0.24 +10.20,0.00,0.00,0.57,1.60,0.23 +9.60,0.00,0.00,0.55,1.52,0.17 +47.00,0.00,17.00,0.38,1.68,0.29 +74.00,0.00,44.00,0.38,1.67,0.28 +69.00,0.00,39.00,0.65,1.53,0.19 +96.00,0.00,66.00,0.54,1.64,0.22 +6.60,1.00,0.00,0.67,1.52,0.19 +13.70,1.00,0.00,0.73,1.71,0.23 +66.00,0.00,36.00,0.54,1.69,0.23 +49.00,0.00,19.00,0.77,1.78,0.26 +90.00,0.00,60.00,0.38,1.59,0.24 +60.00,0.00,30.00,0.32,1.67,0.28 +30.00,0.00,0.00,0.46,1.54,0.27 +15.70,0.00,0.00,0.78,1.68,0.32 +42.00,0.00,12.00,0.52,1.61,0.25 +41.00,0.00,11.00,0.39,1.61,0.24 +22.70,0.00,0.00,0.46,1.68,0.26 +63.00,0.00,33.00,0.56,1.73,0.25 +8.30,0.00,0.00,0.50,1.58,0.20 +13.10,0.00,0.00,0.68,1.74,0.41 +68.30,1.00,42.00,0.59,1.67,0.28 +71.00,0.00,41.00,0.38,1.59,0.26 +92.00,0.00,62.00,0.67,1.52,0.19 +61.00,0.00,31.00,0.71,1.52,0.18 +50.00,0.00,20.00,0.55,1.54,0.20 +16.60,1.00,10.00,0.83,1.62,0.18 +64.40,1.00,61.00,0.35,1.64,0.30 +51.00,0.00,21.00,0.44,1.73,0.27 +17.50,0.00,0.00,0.42,1.60,0.24 +51.00,0.00,21.00,0.72,1.77,0.25 +14.40,0.00,0.00,0.76,1.59,0.16 +61.90,1.00,60.00,0.53,1.71,0.29 +47.00,0.00,17.00,0.54,1.67,0.24 +65.40,1.00,39.00,0.59,1.58,0.26 +0.90,0.00,0.00,0.79,1.64,0.27 +24.10,1.00,10.00,1.11,1.63,0.20 +6.80,0.00,0.00,0.77,1.79,0.41 +3.00,0.00,0.00,0.62,1.68,0.23 +97.60,1.00,76.00,0.53,1.70,0.29 +86.00,0.00,56.00,0.53,1.71,0.26 +41.00,0.00,11.00,0.76,1.92,0.25 +38.20,1.00,11.00,0.73,1.57,0.17 +40.00,0.00,10.00,0.95,1.76,0.21 +97.90,1.00,71.00,0.50,1.62,0.26 +50.00,0.00,20.00,0.42,1.71,0.27 +38.10,1.00,21.00,0.80,1.59,0.16 +44.00,0.00,14.00,0.63,1.82,0.24 +30.00,0.00,0.00,0.38,1.67,0.28 +47.00,0.00,17.00,0.62,1.58,0.22 +34.30,1.00,20.00,1.01,1.77,0.21 +53.00,0.00,23.00,0.42,1.70,0.26 +17.20,1.00,12.00,0.47,1.60,0.26 +72.00,0.00,42.00,0.35,1.66,0.31 +65.00,0.00,35.00,0.32,1.60,0.30 +63.00,0.00,33.00,0.39,1.58,0.28 +83.00,0.00,53.00,0.42,1.69,0.26 +65.00,0.00,35.00,0.34,1.61,0.29 +82.50,1.00,71.00,0.38,1.55,0.25 +54.30,1.00,36.00,0.45,1.72,0.27 +83.00,0.00,53.00,0.42,1.67,0.26 +63.10,1.00,63.00,0.36,1.67,0.31 +35.30,1.00,11.00,0.74,1.57,0.17 +3.70,0.00,0.00,0.78,1.54,0.18 +75.00,0.00,45.00,0.33,1.57,0.26 +43.00,0.00,13.00,0.47,1.67,0.25 +3.90,0.00,0.00,0.52,1.71,0.30 +42.00,0.00,12.00,0.47,1.60,0.26 +35.00,0.00,5.00,0.64,1.54,0.20 +72.00,0.00,42.00,0.31,1.57,0.31 +69.00,0.00,39.00,0.46,1.68,0.24 +30.00,0.00,0.00,0.53,1.63,0.22 +18.40,0.00,0.00,0.93,1.87,0.26 +42.10,1.00,18.00,0.61,1.59,0.27 +4.20,0.00,0.00,0.77,1.65,0.25 +31.00,0.00,1.00,0.87,1.71,0.21 +65.60,1.00,62.00,0.82,1.55,0.18 +42.30,1.00,32.00,0.47,1.64,0.27 +49.00,0.00,19.00,0.33,1.69,0.27 +51.00,0.00,21.00,0.88,1.58,0.18 +67.00,0.00,37.00,0.59,1.84,0.26 +59.00,0.00,29.00,0.36,1.62,0.25 +88.00,0.00,58.00,0.62,1.74,0.24 +69.10,1.00,48.00,0.50,1.70,0.26 +70.00,0.00,40.00,0.53,1.70,0.23 +61.00,0.00,31.00,0.34,1.60,0.25 +40.10,1.00,32.00,0.68,1.56,0.22 +2.30,0.00,0.00,0.88,1.58,0.16 +42.00,0.00,12.00,0.92,1.63,0.18 +47.00,0.00,17.00,0.33,1.52,0.27 +6.10,0.00,0.00,0.56,1.52,0.17 +69.00,0.00,39.00,0.44,1.71,0.25 +25.20,0.00,0.00,0.89,1.58,0.21 +68.00,0.00,38.00,0.55,1.58,0.19 +30.00,0.00,0.00,0.32,1.56,0.27 +72.00,0.00,42.00,0.57,1.79,0.26 +51.00,0.00,21.00,0.80,1.59,0.16 +79.60,1.00,54.00,0.51,1.71,0.30 +30.00,0.00,0.00,0.35,1.63,0.31 +83.00,0.00,53.00,0.52,1.57,0.20 +66.00,0.00,36.00,0.43,1.80,0.38 +58.00,0.00,28.00,0.31,1.59,0.28 +47.00,0.00,17.00,0.52,1.57,0.21 +60.90,1.00,50.00,0.38,1.66,0.28 +30.00,0.00,0.00,0.54,1.57,0.18 +45.00,0.00,15.00,0.44,1.66,0.25 +72.00,0.00,42.00,0.43,1.71,0.27 +54.50,1.00,35.00,0.94,1.75,0.21 +5.70,0.00,0.00,0.76,1.55,0.16 +56.00,0.00,26.00,0.45,1.62,0.25 +84.30,1.00,57.00,0.43,1.61,0.25 +40.50,1.00,14.00,0.68,1.59,0.24 +80.50,1.00,59.00,0.57,1.57,0.26 +48.00,0.00,18.00,0.70,1.69,0.23 +57.00,0.00,27.00,0.45,1.72,0.26 +57.50,1.00,53.00,0.52,1.57,0.20 +8.00,0.00,0.00,0.54,1.56,0.18 +34.00,0.00,4.00,0.66,1.61,0.26 +80.00,0.00,50.00,0.38,1.66,0.28 +23.60,0.00,0.00,0.91,1.70,0.19 +59.00,0.00,29.00,0.52,1.64,0.22 +59.00,0.00,29.00,0.51,1.64,0.22 +62.00,0.00,32.00,0.39,1.69,0.28 +59.00,0.00,29.00,0.36,1.57,0.24 +53.00,0.00,23.00,0.59,1.66,0.27 +98.00,0.00,68.00,0.37,1.64,0.28 +99.00,0.00,69.00,0.55,1.52,0.18 +2.20,0.00,0.00,0.71,1.53,0.15 +13.70,0.00,0.00,0.33,1.56,0.26 +64.80,1.00,42.00,0.36,1.61,0.25 +51.00,0.00,21.00,0.66,1.53,0.15 +30.00,0.00,0.00,0.68,1.64,0.24 +50.00,0.00,20.00,0.45,1.65,0.25 +44.00,0.00,14.00,0.54,1.59,0.18 +30.00,0.00,0.00,0.52,1.56,0.20 +49.00,0.00,19.00,0.48,1.88,0.42 +85.00,0.00,55.00,0.38,1.54,0.28 +30.00,0.00,0.00,0.45,1.70,0.27 +81.00,0.00,51.00,0.33,1.60,0.28 +5.10,0.00,0.00,0.99,1.75,0.25 +99.00,0.00,69.00,0.56,1.52,0.17 +83.00,0.00,53.00,0.40,1.67,0.26 +60.00,0.00,30.00,0.57,1.76,0.25 +19.40,0.00,0.00,0.83,1.63,0.19 +86.00,0.00,56.00,0.56,1.71,0.24 +21.50,0.00,0.00,0.78,1.65,0.28 +64.00,1.00,42.00,0.37,1.65,0.29 +89.90,1.00,69.00,0.56,1.52,0.17 +53.00,0.00,23.00,0.39,1.66,0.26 +23.00,0.00,0.00,0.69,1.53,0.20 +12.90,0.00,0.00,0.66,1.80,0.38 +48.00,0.00,18.00,0.94,1.72,0.25 +39.00,0.00,9.00,0.33,1.52,0.27 +85.80,1.00,59.00,0.62,1.59,0.27 +50.00,0.00,20.00,0.66,1.77,0.25 +52.00,0.00,22.00,0.65,1.54,0.21 +40.00,0.00,10.00,0.54,1.52,0.17 +18.40,0.00,0.00,1.08,1.62,0.19 +66.10,1.00,60.00,0.57,1.72,0.31 +105.00,0.00,75.00,0.59,1.70,0.28 +8.80,0.00,0.00,0.60,1.76,0.33 +30.00,0.00,0.00,0.39,1.57,0.24 +28.20,0.00,0.00,0.82,1.59,0.17 +65.80,1.00,41.00,0.88,1.67,0.25 +48.00,0.00,18.00,0.54,1.55,0.18 +70.00,0.00,40.00,0.43,1.58,0.25 +69.00,0.00,39.00,0.66,1.52,0.19 +82.00,0.00,52.00,0.36,1.69,0.31 +30.00,0.00,0.00,0.76,1.65,0.24 +51.00,0.00,21.00,0.40,1.67,0.27 +21.70,0.00,0.00,0.34,1.65,0.28 +19.50,0.00,0.00,0.38,1.56,0.23 +59.00,0.00,29.00,0.36,1.58,0.24 +59.00,0.00,29.00,0.51,1.64,0.22 +68.00,0.00,38.00,0.46,1.67,0.26 +44.00,0.00,14.00,0.61,1.52,0.18 +45.70,1.00,36.00,0.53,1.68,0.23 +27.00,0.00,0.00,0.47,1.61,0.25 +30.00,0.00,0.00,0.66,1.77,0.36 +46.00,0.00,16.00,0.45,1.65,0.26 +47.00,0.00,17.00,0.38,1.68,0.29 +24.00,1.00,0.00,0.78,1.57,0.15 +3.60,0.00,0.00,1.25,1.75,0.25 +68.00,0.00,38.00,0.59,1.70,0.28 +85.00,0.00,55.00,0.37,1.55,0.27 +47.00,0.00,17.00,0.52,1.65,0.23 +11.30,0.00,0.00,0.40,1.66,0.27 +48.00,0.00,18.00,0.53,1.58,0.18 +11.50,0.00,0.00,0.51,1.81,0.29 +74.00,0.00,44.00,0.56,1.58,0.21 +25.20,1.00,22.00,0.43,1.67,0.25 +73.80,1.00,60.00,0.37,1.65,0.29 +49.70,1.00,26.00,0.32,1.59,0.31 +54.50,1.00,42.00,0.43,1.81,0.39 +11.80,0.00,0.00,0.65,1.80,0.25 +69.00,0.00,39.00,0.35,1.55,0.28 +55.00,0.00,25.00,0.41,1.51,0.26 +50.00,0.00,20.00,0.70,1.51,0.16 +85.00,0.00,55.00,0.48,1.60,0.27 +84.30,1.00,58.00,0.54,1.83,0.28 +30.00,0.00,0.00,0.82,1.68,0.24 +55.00,0.00,25.00,0.41,1.53,0.27 +49.00,0.00,19.00,0.33,1.70,0.28 +32.00,0.00,2.00,0.38,1.66,0.27 +33.00,0.00,3.00,0.76,1.62,0.24 +30.00,0.00,0.00,0.81,1.56,0.17 +61.00,0.00,31.00,0.34,1.60,0.27 +30.00,0.00,0.00,0.55,1.58,0.19 +27.90,1.00,0.00,0.48,1.67,0.24 +51.00,0.00,21.00,0.67,1.53,0.15 +30.00,0.00,0.00,0.41,1.59,0.24 +45.00,0.00,15.00,0.44,1.66,0.25 +42.00,0.00,12.00,0.53,1.61,0.25 +59.40,1.00,44.00,0.32,1.60,0.28 +54.50,1.00,41.00,0.65,1.68,0.23 +99.00,0.00,69.00,0.59,1.50,0.17 +23.50,0.00,0.00,0.86,1.65,0.24 +66.00,0.00,36.00,0.48,1.66,0.24 +6.70,0.00,0.00,0.63,1.58,0.21 +33.70,1.00,21.00,0.82,1.60,0.16 +2.40,0.00,0.00,0.55,1.73,0.32 +30.00,0.00,0.00,0.59,1.63,0.25 +0.80,0.00,0.00,1.08,1.75,0.22 +30.00,0.00,0.00,0.86,1.71,0.23 +30.00,0.00,0.00,0.59,1.83,0.26 +30.00,0.00,0.00,0.62,1.66,0.23 +71.00,0.00,41.00,0.45,1.75,0.28 +53.80,1.00,53.00,0.44,1.71,0.28 +30.00,0.00,0.00,0.75,1.79,0.39 +63.00,1.00,41.00,0.65,1.68,0.23 +75.90,1.00,68.00,0.42,1.70,0.26 +50.00,0.00,20.00,0.58,1.76,0.25 +30.00,0.00,0.00,0.55,1.71,0.25 +30.00,0.00,0.00,0.51,1.69,0.28 +18.70,0.00,0.00,0.46,1.70,0.26 +67.00,0.00,37.00,0.59,1.58,0.22 +32.60,1.00,29.00,0.41,1.67,0.26 +25.20,1.00,0.00,0.60,1.76,0.33 +9.40,0.00,0.00,0.44,1.53,0.27 +92.00,0.00,62.00,0.35,1.62,0.30 +53.00,0.00,23.00,0.36,1.61,0.28 +50.00,0.00,20.00,0.54,1.71,0.23 +18.90,0.00,0.00,0.58,1.68,0.27 +85.10,1.00,57.00,0.58,1.60,0.25 +50.00,0.00,20.00,0.42,1.71,0.27 +47.00,0.00,17.00,0.66,1.56,0.21 +28.10,1.00,0.00,0.80,1.79,0.42 +35.00,1.00,12.00,0.93,1.63,0.18 +40.00,0.00,10.00,0.44,1.68,0.25 +72.00,0.00,42.00,0.55,1.73,0.24 +48.00,0.00,18.00,0.89,1.88,0.26 +42.20,1.00,22.00,0.75,1.61,0.22 +72.00,0.00,42.00,0.36,1.61,0.25 +49.00,0.00,19.00,0.35,1.60,0.26 +30.00,0.00,0.00,0.42,1.67,0.25 +82.00,0.00,52.00,0.51,1.63,0.30 +69.00,0.00,39.00,0.33,1.59,0.27 +97.00,0.00,67.00,0.59,1.70,0.27 +52.00,0.00,22.00,0.38,1.67,0.28 +7.60,1.00,0.00,0.91,1.83,0.52 +89.00,0.00,59.00,0.37,1.81,0.37 +30.00,0.00,0.00,0.65,1.53,0.20 +7.90,0.00,0.00,0.88,1.71,0.19 +30.00,0.00,0.00,0.63,1.53,0.16 +30.00,0.00,0.00,0.46,1.73,0.26 +52.00,0.00,22.00,0.37,1.64,0.27 +3.20,0.00,0.00,0.53,1.71,0.30 +72.00,0.00,42.00,0.57,1.79,0.37 +31.50,1.00,15.00,0.44,1.65,0.25 +70.00,0.00,40.00,0.49,1.69,0.24 +41.00,0.00,11.00,0.58,1.68,0.33 +38.40,1.00,20.00,0.42,1.72,0.27 +20.20,0.00,0.00,0.66,1.54,0.18 +71.00,0.00,41.00,0.57,1.64,0.25 +9.10,0.00,0.00,0.60,1.57,0.20 +88.00,0.00,58.00,0.41,1.65,0.25 +53.00,0.00,23.00,0.46,1.69,0.26 +45.10,1.00,22.00,0.42,1.67,0.25 +30.00,0.00,0.00,0.32,1.59,0.31 +70.00,0.00,40.00,0.53,1.69,0.23 +47.00,0.00,17.00,0.33,1.54,0.28 +69.00,0.00,39.00,0.37,1.57,0.28 +82.00,0.00,52.00,0.52,1.64,0.30 +0.40,0.00,0.00,0.48,1.74,0.27 +41.00,0.00,11.00,0.73,1.57,0.17 +101.00,0.00,71.00,0.39,1.61,0.24 +66.00,0.00,36.00,0.32,1.59,0.28 +73.00,0.00,43.00,0.44,1.72,0.26 +8.80,0.00,0.00,0.63,1.53,0.17 +45.00,0.00,15.00,0.42,1.61,0.25 +32.00,0.00,2.00,0.43,1.55,0.25 +70.00,0.00,40.00,0.39,1.65,0.26 +1.10,0.00,0.00,0.64,1.53,0.20 +65.00,0.00,35.00,0.35,1.66,0.28 +47.00,0.00,17.00,0.33,1.53,0.27 +52.00,0.00,22.00,0.42,1.62,0.26 +36.00,1.00,33.00,0.74,1.54,0.20 +74.00,0.00,44.00,0.53,1.78,0.28 +27.40,1.00,25.00,0.42,1.54,0.27 +59.00,0.00,29.00,0.50,1.63,0.22 +39.00,0.00,9.00,0.33,1.52,0.27 +98.00,0.00,68.00,0.37,1.63,0.28 +22.50,0.00,0.00,0.46,1.66,0.28 +54.00,0.00,24.00,0.54,1.56,0.18 +42.00,0.00,12.00,0.35,1.62,0.26 +45.00,1.00,20.00,0.92,1.83,0.51 +30.00,0.00,0.00,0.62,1.55,0.20 +95.00,0.00,65.00,0.37,1.79,0.36 +60.00,0.00,30.00,0.33,1.66,0.28 +30.00,0.00,0.00,0.81,1.61,0.18 +61.00,0.00,31.00,0.46,1.64,0.24 +48.00,0.00,18.00,0.44,1.61,0.25 +3.60,0.00,0.00,1.03,1.77,0.21 +38.40,1.00,12.00,0.62,1.72,0.38 +30.00,0.00,0.00,0.73,1.52,0.16 +72.00,0.00,42.00,0.35,1.57,0.25 +30.00,0.00,0.00,1.27,1.80,0.30 +29.50,0.00,0.00,0.42,1.68,0.26 +45.00,0.00,15.00,0.45,1.66,0.25 +82.00,0.00,52.00,0.52,1.64,0.30 +50.00,0.00,20.00,0.72,1.54,0.15 +43.00,0.00,13.00,0.33,1.63,0.29 +30.00,0.00,0.00,0.66,1.63,0.25 +86.00,0.00,56.00,0.49,1.64,0.22 +48.00,0.00,18.00,0.52,1.59,0.20 +20.70,0.00,0.00,0.88,1.68,0.38 +53.00,1.00,28.00,0.67,1.74,0.34 +27.10,1.00,0.00,0.72,1.52,0.16 +53.00,0.00,23.00,0.31,1.57,0.31 +47.40,1.00,38.00,0.73,1.59,0.25 +13.20,0.00,0.00,0.33,1.56,0.27 +38.90,1.00,17.00,0.89,1.60,0.17 +30.00,0.00,0.00,0.78,1.79,0.39 +43.00,0.00,13.00,0.44,1.71,0.26 +10.00,0.00,0.00,0.38,1.67,0.29 +6.30,0.00,0.00,0.55,1.65,0.22 +101.00,0.00,71.00,0.37,1.55,0.24 +51.30,1.00,28.00,0.32,1.61,0.29 +30.00,0.00,0.00,0.73,1.79,0.38 +72.00,0.00,42.00,0.42,1.85,0.40 +50.00,0.00,20.00,0.53,1.57,0.20 +60.00,0.00,30.00,0.59,1.62,0.22 +43.00,0.00,13.00,0.46,1.67,0.25 +33.00,0.00,3.00,0.46,1.61,0.25 +73.00,0.00,43.00,0.44,1.72,0.26 +79.30,1.00,71.00,0.34,1.48,0.26 +81.00,0.00,51.00,0.32,1.62,0.30 +90.00,0.00,60.00,0.58,1.69,0.27 +30.00,0.00,0.00,0.67,1.52,0.18 +34.00,0.00,4.00,0.44,1.81,0.39 +50.00,0.00,20.00,0.82,1.63,0.19 +30.70,1.00,17.00,0.68,1.51,0.16 +30.00,0.00,0.00,0.37,1.54,0.28 +87.80,1.00,61.00,0.35,1.60,0.27 +50.00,0.00,20.00,0.42,1.57,0.25 +65.60,1.00,37.00,0.92,1.74,0.21 +97.00,0.00,67.00,0.64,1.69,0.30 +76.80,1.00,54.00,0.48,1.70,0.30 +88.00,0.00,58.00,0.63,1.68,0.23 +91.00,0.00,61.00,0.36,1.64,0.29 +48.00,0.00,18.00,0.53,1.59,0.18 +37.30,1.00,17.00,0.69,1.58,0.21 +58.00,0.00,28.00,0.38,1.81,0.37 +11.00,0.00,0.00,0.58,1.53,0.19 +69.00,0.00,39.00,0.46,1.68,0.24 +46.00,0.00,16.00,0.51,1.78,0.28 +92.00,0.00,62.00,0.38,1.67,0.30 +5.80,0.00,0.00,0.70,1.54,0.15 +2.60,0.00,0.00,1.26,1.81,0.31 +30.00,0.00,0.00,1.05,1.87,0.55 +83.00,0.00,53.00,0.51,1.58,0.21 +55.00,0.00,25.00,0.55,1.59,0.22 +85.00,0.00,55.00,0.35,1.56,0.27 +83.00,0.00,53.00,0.66,1.85,0.25 +70.00,0.00,40.00,0.52,1.70,0.23 +69.60,1.00,62.00,0.67,1.52,0.19 +101.00,0.00,71.00,0.51,1.82,0.29 +50.00,0.00,20.00,0.71,1.51,0.16 +67.30,1.00,66.00,0.47,1.63,0.23 +30.00,0.00,0.00,0.85,1.79,0.43 +74.00,0.00,44.00,0.32,1.64,0.29 +25.10,0.00,0.00,0.56,1.75,0.33 +16.50,0.00,0.00,0.64,1.57,0.20 +19.10,0.00,0.00,0.76,1.76,0.37 +74.00,0.00,44.00,0.36,1.66,0.32 +44.00,0.00,14.00,0.64,1.55,0.21 +16.50,0.00,0.00,0.78,1.68,0.24 +30.00,0.00,0.00,0.92,1.70,0.24 +58.00,0.00,28.00,0.31,1.57,0.28 +69.00,0.00,39.00,0.57,1.68,0.23 +40.00,0.00,10.00,0.84,1.57,0.16 +80.00,0.00,50.00,0.38,1.66,0.27 +30.00,0.00,0.00,0.66,1.52,0.19 +78.00,0.00,48.00,0.45,1.71,0.27 +30.00,0.00,0.00,0.74,1.79,0.43 +30.00,0.00,0.00,0.91,1.72,0.24 +106.00,0.00,76.00,0.33,1.56,0.27 +5.20,0.00,0.00,0.68,1.51,0.15 +45.50,1.00,20.00,0.56,1.53,0.19 +39.00,1.00,20.00,0.78,1.68,0.31 +55.00,0.00,25.00,0.45,1.62,0.25 +30.00,0.00,0.00,0.37,1.54,0.28 +12.00,0.00,0.00,1.08,1.76,0.22 +3.20,0.00,0.00,0.88,1.67,0.25 +37.00,0.00,7.00,0.74,1.67,0.31 +29.50,1.00,25.00,0.42,1.54,0.27 +45.00,0.00,15.00,0.67,1.58,0.24 +45.00,0.00,15.00,0.42,1.71,0.27 +20.50,0.00,0.00,0.89,1.58,0.21 +44.00,0.00,14.00,0.67,1.57,0.24 +30.00,0.00,0.00,0.37,1.56,0.24 +45.00,0.00,15.00,0.45,1.67,0.25 +48.40,1.00,25.00,0.94,1.71,0.20 +25.40,0.00,0.00,0.37,1.64,0.27 +48.30,1.00,28.00,0.33,1.56,0.26 +69.00,0.00,39.00,0.40,1.57,0.28 +52.00,0.00,22.00,0.42,1.63,0.25 +67.00,0.00,37.00,0.54,1.71,0.30 +28.10,0.00,0.00,0.64,1.54,0.16 +61.70,1.00,39.00,0.47,1.68,0.29 +38.80,1.00,33.00,0.62,1.68,0.23 +34.00,0.00,4.00,0.34,1.65,0.27 +44.00,0.00,14.00,0.65,1.56,0.21 +30.00,0.00,0.00,0.52,1.81,0.29 +28.40,0.00,0.00,0.67,1.94,0.25 +45.00,0.00,15.00,0.42,1.61,0.25 +72.00,0.00,42.00,0.42,1.86,0.40 +41.00,0.00,11.00,0.50,1.62,0.26 +30.00,0.00,0.00,0.67,1.53,0.17 +40.00,0.00,10.00,0.54,1.53,0.18 +73.00,1.00,57.00,0.39,1.57,0.24 +40.00,0.00,10.00,0.70,1.54,0.17 +54.00,1.00,28.00,0.47,1.68,0.25 +49.00,0.00,19.00,0.74,1.72,0.25 +70.00,0.00,40.00,0.39,1.65,0.26 +52.00,0.00,22.00,0.36,1.62,0.26 +5.10,1.00,0.00,1.24,1.74,0.25 +82.90,1.00,53.00,0.83,1.69,0.22 +30.00,0.00,0.00,0.69,1.61,0.27 +42.00,0.00,12.00,0.58,1.69,0.27 +44.00,0.00,14.00,0.56,1.68,0.25 +36.20,1.00,21.00,0.63,1.56,0.21 +104.00,0.00,74.00,0.30,1.57,0.29 +11.80,0.00,0.00,0.68,1.53,0.20 +16.90,0.00,0.00,0.49,1.71,0.32 +61.00,0.00,31.00,0.69,1.53,0.20 +24.90,0.00,0.00,0.53,1.55,0.20 +83.00,0.00,53.00,0.42,1.69,0.26 +9.00,1.00,0.00,0.91,1.73,0.27 +56.30,1.00,40.00,0.38,1.61,0.25 +20.20,0.00,0.00,0.52,1.71,0.30 +45.80,1.00,36.00,0.53,1.68,0.23 +64.00,0.00,34.00,0.33,1.61,0.31 +62.50,1.00,43.00,0.38,1.60,0.24 +88.00,0.00,58.00,0.62,1.68,0.23 +50.00,0.00,20.00,0.43,1.66,0.24 +50.00,0.00,20.00,0.38,1.58,0.28 +1.70,0.00,0.00,1.14,1.89,0.56 +26.40,0.00,0.00,0.82,1.60,0.16 +49.00,0.00,19.00,0.74,1.72,0.25 +29.20,0.00,0.00,0.41,1.51,0.26 +18.80,0.00,0.00,0.57,1.77,0.25 +53.00,0.00,23.00,0.48,1.55,0.27 +2.00,0.00,0.00,0.59,1.50,0.17 +4.70,0.00,0.00,0.43,1.71,0.27 +2.30,0.00,0.00,0.68,1.53,0.19 +21.20,1.00,0.00,0.83,1.80,0.39 +10.10,0.00,0.00,0.97,1.74,0.24 +99.00,0.00,69.00,0.61,1.50,0.17 +9.40,0.00,0.00,0.43,1.61,0.25 +30.00,0.00,0.00,0.46,1.69,0.26 +44.00,0.00,14.00,0.55,1.68,0.24 +10.10,0.00,0.00,0.52,1.65,0.23 +98.00,0.00,68.00,0.40,1.56,0.25 +30.00,0.00,0.00,1.01,1.77,0.21 +53.00,0.00,23.00,0.47,1.55,0.27 +30.00,0.00,0.00,0.33,1.48,0.27 +92.70,1.00,77.00,0.39,1.61,0.24 +43.00,0.00,13.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.78,1.58,0.15 +2.80,0.00,0.00,0.89,1.58,0.16 +49.00,0.00,19.00,0.77,1.75,0.25 +61.00,0.00,31.00,0.36,1.65,0.32 +86.00,0.00,56.00,0.45,1.72,0.26 +93.40,1.00,71.00,0.57,1.67,0.29 +27.70,0.00,0.00,0.78,1.68,0.31 +101.00,0.00,71.00,0.52,1.65,0.26 +69.00,0.00,39.00,0.44,1.70,0.25 +87.00,0.00,57.00,0.48,1.73,0.27 +57.00,0.00,27.00,0.42,1.68,0.26 +23.50,1.00,14.00,0.68,1.53,0.20 +30.00,0.00,0.00,0.39,1.66,0.27 +107.00,0.00,77.00,0.38,1.61,0.25 +48.00,0.00,18.00,0.51,1.59,0.21 +93.00,0.00,63.00,0.36,1.66,0.31 +30.00,0.00,0.00,0.78,1.79,0.41 +81.00,0.00,51.00,0.33,1.60,0.28 +24.30,1.00,0.00,0.76,1.55,0.16 +53.00,0.00,23.00,0.30,1.55,0.30 +2.00,0.00,0.00,0.52,1.59,0.20 +19.40,0.00,0.00,0.40,1.67,0.27 +8.40,0.00,0.00,0.92,1.62,0.17 +74.00,0.00,44.00,0.40,1.80,0.38 +54.00,0.00,24.00,0.53,1.56,0.18 +37.00,0.00,7.00,0.83,1.65,0.18 +69.00,0.00,39.00,0.36,1.55,0.28 +21.50,0.00,0.00,0.76,1.54,0.20 +30.00,0.00,0.00,0.72,1.58,0.22 +55.00,0.00,25.00,0.84,1.67,0.19 +45.00,0.00,15.00,0.70,1.60,0.26 +40.00,0.00,10.00,0.69,1.54,0.17 +69.00,0.00,39.00,0.44,1.70,0.25 +4.40,0.00,0.00,0.95,1.84,0.52 +67.20,1.00,60.00,0.46,1.65,0.27 +4.10,0.00,0.00,0.88,1.67,0.25 +101.00,0.00,71.00,0.40,1.61,0.24 +32.90,1.00,18.00,0.51,1.59,0.21 +38.00,0.00,8.00,0.51,1.83,0.29 +41.00,0.00,11.00,0.67,1.78,0.24 +49.30,1.00,48.00,0.50,1.70,0.26 +47.30,1.00,33.00,0.63,1.68,0.23 +45.10,1.00,30.00,0.32,1.68,0.28 +20.50,0.00,0.00,0.88,1.70,0.19 +65.00,0.00,35.00,1.06,1.76,0.21 +28.80,0.00,0.00,0.33,1.56,0.27 +44.00,0.00,14.00,0.64,1.69,0.30 +78.00,0.00,48.00,0.45,1.72,0.28 +43.00,0.00,13.00,0.36,1.67,0.29 +1.10,0.00,0.00,0.75,1.67,0.30 +85.00,0.00,55.00,0.46,1.54,0.27 +74.00,0.00,44.00,0.36,1.61,0.28 +26.20,0.00,0.00,0.62,1.68,0.23 +91.00,0.00,61.00,0.35,1.70,0.32 +44.00,0.00,14.00,0.44,1.53,0.27 +53.50,1.00,33.00,0.52,1.57,0.20 +50.00,0.00,20.00,0.65,1.77,0.25 +71.60,1.00,60.00,0.56,1.67,0.32 +46.00,0.00,16.00,0.46,1.71,0.27 +30.00,0.00,0.00,0.71,1.91,0.26 +10.10,0.00,0.00,0.55,1.66,0.32 +47.00,0.00,17.00,0.56,1.68,0.23 +82.00,0.00,52.00,0.36,1.67,0.31 +48.00,0.00,18.00,0.53,1.59,0.18 +63.00,0.00,33.00,0.59,1.67,0.24 +3.50,0.00,0.00,0.32,1.71,0.29 +87.00,0.00,57.00,0.38,1.57,0.24 +46.20,1.00,31.00,0.57,1.53,0.19 +39.20,1.00,14.00,0.61,1.63,0.26 +15.70,0.00,0.00,0.32,1.60,0.30 +6.00,0.00,0.00,0.73,1.69,0.23 +30.00,0.00,0.00,0.79,1.60,0.23 +14.30,0.00,0.00,0.71,1.56,0.17 +63.00,0.00,33.00,0.68,1.74,0.41 +74.00,0.00,44.00,0.53,1.75,0.26 +19.40,1.00,0.00,0.57,1.50,0.16 +61.00,0.00,31.00,0.36,1.66,0.32 +9.10,1.00,0.00,0.70,1.55,0.19 +88.00,0.00,58.00,0.63,1.72,0.24 +30.00,0.00,0.00,0.89,1.59,0.16 +63.00,0.00,33.00,0.55,1.54,0.20 +45.80,1.00,35.00,0.34,1.63,0.28 +45.00,0.00,15.00,0.41,1.61,0.25 +43.00,0.00,13.00,0.43,1.66,0.24 +9.70,0.00,0.00,0.32,1.59,0.31 +69.00,0.00,39.00,0.57,1.68,0.23 +17.00,0.00,0.00,0.98,1.60,0.17 +10.90,0.00,0.00,0.66,1.53,0.16 +43.00,0.00,13.00,0.39,1.68,0.28 +7.20,0.00,0.00,0.36,1.61,0.25 +90.00,0.00,60.00,0.38,1.60,0.24 +50.00,0.00,20.00,0.40,1.57,0.27 +88.00,0.00,58.00,0.42,1.70,0.26 +83.00,0.00,53.00,0.63,1.70,0.24 +44.90,1.00,18.00,0.63,1.69,0.23 +8.10,0.00,0.00,0.89,1.60,0.17 +48.00,0.00,18.00,0.33,1.64,0.29 +107.00,0.00,77.00,0.39,1.61,0.24 +20.20,1.00,0.00,1.03,1.76,0.21 +86.00,0.00,56.00,0.53,1.84,0.29 +71.00,0.00,41.00,0.45,1.74,0.27 +52.00,0.00,22.00,0.81,1.75,0.25 +92.00,0.00,62.00,0.82,1.56,0.17 +19.80,1.00,10.00,0.91,1.73,0.20 +53.00,0.00,23.00,0.42,1.67,0.25 +30.00,0.00,0.00,0.54,1.84,0.28 +71.00,0.00,41.00,0.39,1.60,0.26 +75.70,1.00,69.00,0.56,1.52,0.17 +30.00,0.00,0.00,1.22,1.74,0.24 +30.00,0.00,0.00,0.34,1.60,0.31 +72.60,1.00,53.00,0.83,1.69,0.22 +14.20,0.00,0.00,0.82,1.56,0.17 +72.00,0.00,42.00,0.56,1.79,0.37 +12.10,1.00,0.00,0.84,1.80,0.48 +69.00,0.00,39.00,0.61,1.55,0.21 +12.80,0.00,0.00,0.61,1.58,0.27 +48.00,0.00,18.00,0.53,1.59,0.18 +52.00,0.00,22.00,0.37,1.64,0.27 +72.00,0.00,42.00,0.35,1.64,0.30 +40.00,0.00,10.00,0.93,1.59,0.17 +62.00,0.00,32.00,0.47,1.67,0.24 +9.70,0.00,0.00,0.74,1.55,0.21 +30.00,0.00,0.00,1.11,1.77,0.27 +45.00,0.00,15.00,0.61,1.52,0.17 +98.00,0.00,68.00,0.37,1.64,0.27 +30.00,0.00,0.00,0.51,1.57,0.21 +66.00,0.00,36.00,0.40,1.69,0.27 +9.90,0.00,0.00,0.51,1.58,0.20 +53.00,0.00,23.00,0.45,1.70,0.26 +57.00,0.00,27.00,0.42,1.67,0.26 +53.00,0.00,23.00,0.71,1.73,0.35 +44.00,0.00,14.00,0.58,1.78,0.27 +72.00,0.00,42.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.59,1.63,0.24 +73.00,0.00,43.00,0.39,1.66,0.27 +71.20,1.00,42.00,0.83,1.66,0.18 +56.00,0.00,26.00,0.44,1.94,0.42 +10.70,0.00,0.00,0.93,1.75,0.22 +30.00,0.00,0.00,0.41,1.67,0.26 +58.00,0.00,28.00,0.69,1.73,0.35 +48.00,0.00,18.00,0.53,1.60,0.18 +55.40,1.00,26.00,1.10,1.76,0.23 +98.00,0.00,68.00,0.36,1.63,0.30 +72.00,0.00,42.00,0.49,1.83,0.40 +73.40,1.00,67.00,0.59,1.71,0.27 +3.90,0.00,0.00,0.71,1.52,0.18 +90.00,0.00,60.00,0.40,1.58,0.23 +30.00,0.00,0.00,0.60,1.52,0.18 +46.50,1.00,30.00,0.71,1.54,0.15 +74.00,0.00,44.00,0.38,1.67,0.28 +40.00,0.00,10.00,1.00,1.68,0.20 +27.10,1.00,15.00,1.12,1.64,0.18 +34.00,0.00,4.00,0.34,1.63,0.27 +45.00,0.00,15.00,0.63,1.49,0.15 +44.00,0.00,14.00,0.47,1.71,0.25 +62.00,0.00,32.00,0.59,1.59,0.26 +59.90,1.00,31.00,0.54,1.67,0.29 +61.20,1.00,37.00,0.61,1.75,0.24 +30.00,0.00,0.00,0.98,1.74,0.25 +58.00,1.00,42.00,0.72,1.83,0.42 +62.00,1.00,52.00,0.50,1.65,0.29 +30.00,0.00,0.00,0.31,1.59,0.32 +40.20,1.00,15.00,0.41,1.70,0.27 +67.00,0.00,37.00,0.61,1.74,0.32 +30.00,0.00,0.00,0.48,1.69,0.29 +55.00,0.00,25.00,0.42,1.51,0.26 +30.00,0.00,0.00,0.54,1.54,0.20 +22.80,0.00,0.00,0.41,1.57,0.26 +30.00,0.00,0.00,0.45,1.70,0.26 +87.00,0.00,57.00,0.44,1.69,0.25 +48.00,0.00,18.00,0.51,1.59,0.21 +30.00,0.00,0.00,0.37,1.57,0.28 +50.00,0.00,20.00,0.57,1.62,0.22 +31.00,0.00,1.00,0.39,1.66,0.26 +104.00,0.00,74.00,0.30,1.57,0.29 +30.00,0.00,0.00,0.98,1.76,0.21 +80.00,0.00,50.00,0.58,1.59,0.22 +29.30,0.00,0.00,0.34,1.56,0.26 +13.40,0.00,0.00,0.38,1.68,0.28 +11.00,0.00,0.00,0.55,1.82,0.28 +61.00,0.00,31.00,0.70,1.74,0.36 +31.00,0.00,1.00,0.85,1.71,0.22 +30.00,0.00,0.00,0.37,1.56,0.28 +76.10,1.00,52.00,0.50,1.63,0.26 +30.00,0.00,0.00,0.31,1.58,0.31 +59.00,0.00,29.00,0.65,1.72,0.32 +30.00,0.00,0.00,0.96,1.76,0.21 +14.80,0.00,0.00,0.65,1.51,0.18 +68.00,0.00,38.00,0.73,1.61,0.27 +92.00,0.00,62.00,0.66,1.71,0.24 +29.20,0.00,0.00,0.82,1.80,0.40 +60.00,0.00,30.00,0.37,1.67,0.30 +85.00,0.00,55.00,0.48,1.61,0.27 +57.00,0.00,27.00,0.42,1.68,0.26 +47.90,1.00,20.00,0.43,1.60,0.24 +30.00,0.00,0.00,0.85,1.67,0.18 +61.00,0.00,31.00,0.34,1.60,0.25 +61.00,0.00,31.00,0.34,1.60,0.25 +50.00,0.00,20.00,0.54,1.56,0.20 +42.00,0.00,12.00,0.47,1.60,0.26 +10.80,0.00,0.00,0.63,1.51,0.17 +9.10,0.00,0.00,0.99,1.68,0.20 +11.30,0.00,0.00,1.07,1.76,0.22 +38.00,0.00,8.00,0.51,1.83,0.29 +28.10,1.00,17.00,0.53,1.66,0.24 +47.00,0.00,17.00,0.65,1.56,0.22 +44.00,0.00,14.00,0.51,1.61,0.21 +69.00,0.00,39.00,0.44,1.70,0.25 +58.00,0.00,28.00,0.34,1.56,0.26 +60.00,0.00,30.00,0.32,1.65,0.28 +44.00,0.00,14.00,0.44,1.70,0.25 +49.00,0.00,19.00,0.70,1.53,0.19 +34.00,0.00,4.00,0.33,1.75,0.28 +75.30,1.00,56.00,0.44,1.71,0.25 +85.00,0.00,55.00,0.39,1.58,0.26 +84.00,0.00,54.00,0.47,1.69,0.30 +51.60,1.00,39.00,0.61,1.55,0.21 +80.00,0.00,50.00,0.38,1.66,0.27 +1.70,0.00,0.00,0.48,1.62,0.28 +61.00,0.00,31.00,0.43,1.63,0.24 +30.00,0.00,0.00,0.32,1.47,0.27 +90.00,0.00,60.00,0.57,1.68,0.34 +30.00,0.00,0.00,0.40,1.68,0.28 +55.00,0.00,25.00,0.44,1.62,0.25 +14.50,0.00,0.00,0.61,1.52,0.17 +51.00,0.00,21.00,0.47,1.72,0.26 +15.50,0.00,0.00,0.49,1.64,0.22 +30.00,0.00,0.00,0.60,1.69,0.36 +98.00,0.00,68.00,0.32,1.60,0.31 +29.40,0.00,0.00,0.61,1.68,0.23 +62.00,0.00,32.00,0.39,1.69,0.28 +44.10,1.00,22.00,0.41,1.61,0.25 +1.60,0.00,0.00,0.48,1.61,0.27 +30.00,0.00,0.00,0.37,1.55,0.28 +33.90,1.00,26.00,0.53,1.66,0.23 +67.00,0.00,37.00,0.58,1.73,0.31 +74.00,0.00,44.00,0.36,1.65,0.31 +30.00,0.00,0.00,0.63,1.54,0.20 +40.00,0.00,10.00,0.54,1.55,0.20 +82.00,0.00,52.00,0.47,1.67,0.25 +63.00,0.00,33.00,0.46,1.69,0.26 +11.10,0.00,0.00,0.94,1.66,0.19 +44.00,0.00,14.00,0.43,1.63,0.26 +30.00,0.00,0.00,0.74,1.64,0.24 +57.50,1.00,31.00,0.65,1.71,0.34 +50.00,0.00,20.00,0.68,1.74,0.41 +24.80,0.00,0.00,0.68,1.54,0.21 +30.00,0.00,0.00,0.92,1.60,0.17 +37.00,0.00,7.00,0.52,1.56,0.19 +30.00,0.00,0.00,0.64,1.51,0.17 +65.00,0.00,35.00,0.97,1.76,0.21 +3.00,0.00,0.00,1.02,1.78,0.25 +92.00,0.00,62.00,0.30,1.57,0.30 +30.00,0.00,0.00,0.32,1.59,0.31 +81.00,0.00,51.00,0.32,1.61,0.29 +48.00,0.00,18.00,0.65,1.49,0.16 +87.00,0.00,57.00,0.50,1.77,0.28 +10.20,0.00,0.00,0.53,1.59,0.19 +45.00,0.00,15.00,0.74,1.64,0.27 +45.00,0.00,15.00,0.44,1.66,0.25 +48.00,0.00,18.00,0.42,1.67,0.26 +56.00,0.00,26.00,0.54,1.66,0.32 +69.00,0.00,39.00,0.60,1.56,0.20 +7.60,0.00,0.00,0.48,1.67,0.24 +101.00,0.00,71.00,0.51,1.79,0.28 +55.00,0.00,25.00,0.45,1.62,0.25 +30.00,0.00,0.00,0.61,1.59,0.27 +69.00,0.00,39.00,0.59,1.57,0.20 +85.00,0.00,55.00,0.38,1.55,0.24 +37.00,0.00,7.00,0.61,1.60,0.23 +98.00,0.00,68.00,0.40,1.65,0.26 +83.60,1.00,71.00,0.42,1.66,0.25 +20.30,0.00,0.00,0.49,1.75,0.28 +22.90,1.00,21.00,0.64,1.54,0.16 +78.00,0.00,48.00,0.50,1.77,0.27 +50.00,0.00,20.00,0.44,1.65,0.25 +77.40,1.00,53.00,0.60,1.68,0.23 +37.00,0.00,7.00,0.75,1.67,0.29 +4.80,0.00,0.00,0.50,1.62,0.26 +72.00,0.00,42.00,0.35,1.57,0.26 +41.00,0.00,11.00,0.54,1.66,0.26 +0.10,0.00,0.00,1.19,1.74,0.24 +31.10,1.00,14.00,0.61,1.70,0.30 +72.00,0.00,42.00,0.42,1.86,0.40 +72.00,0.00,42.00,0.48,1.83,0.40 +28.80,0.00,0.00,1.01,1.77,0.21 +22.30,1.00,0.00,0.92,1.70,0.24 +46.00,0.00,16.00,0.33,1.46,0.26 +63.00,0.00,33.00,0.45,1.69,0.26 +43.00,0.00,13.00,0.54,1.53,0.17 +30.00,0.00,0.00,0.89,1.67,0.25 +69.00,0.00,39.00,0.60,1.56,0.20 +22.80,0.00,0.00,0.46,1.65,0.27 +52.00,0.00,22.00,0.38,1.68,0.28 +62.30,1.00,41.00,0.36,1.60,0.25 +30.00,0.00,0.00,0.69,1.77,0.36 +39.00,0.00,9.00,0.33,1.52,0.27 +72.00,0.00,42.00,0.43,1.71,0.27 +53.00,0.00,23.00,0.46,1.69,0.26 +45.00,0.00,15.00,0.64,1.50,0.15 +30.00,0.00,0.00,0.58,1.58,0.22 +34.40,1.00,28.00,0.67,1.74,0.34 +46.10,1.00,26.00,0.52,1.77,0.28 +40.00,0.00,10.00,0.86,1.63,0.18 +44.00,0.00,14.00,0.67,1.52,0.18 +58.00,0.00,28.00,0.40,1.58,0.27 +17.40,1.00,0.00,0.34,1.59,0.30 +22.10,0.00,0.00,0.88,1.70,0.19 +28.30,1.00,10.00,0.73,1.80,0.44 +72.00,0.00,42.00,0.55,1.78,0.37 +53.00,0.00,23.00,0.30,1.55,0.29 +37.20,1.00,11.00,0.61,1.70,0.38 +44.00,0.00,14.00,0.44,1.72,0.27 +53.00,0.00,23.00,0.46,1.68,0.26 +37.80,1.00,33.00,0.89,1.58,0.21 +72.00,0.00,42.00,0.43,1.71,0.27 +43.00,0.00,13.00,0.39,1.68,0.28 +35.00,0.00,5.00,0.65,1.69,0.23 +10.00,0.00,0.00,0.79,1.59,0.16 +78.00,0.00,48.00,0.45,1.73,0.28 +82.00,0.00,52.00,0.47,1.69,0.26 +26.00,0.00,0.00,0.39,1.69,0.28 +65.00,0.00,35.00,0.31,1.59,0.30 +15.60,0.00,0.00,0.54,1.60,0.21 +51.00,0.00,21.00,0.69,1.53,0.16 +42.00,0.00,12.00,0.95,1.64,0.17 +30.00,0.00,0.00,0.70,1.67,0.33 +1.50,0.00,0.00,0.76,1.59,0.23 +13.30,0.00,0.00,0.81,1.67,0.24 +99.00,0.00,69.00,0.57,1.51,0.17 +66.00,0.00,36.00,0.42,1.87,0.40 +4.00,0.00,0.00,0.97,1.67,0.20 +11.20,0.00,0.00,0.73,1.82,0.43 +30.00,0.00,0.00,0.62,1.59,0.27 +65.00,0.00,35.00,0.32,1.59,0.31 +59.90,1.00,35.00,0.34,1.61,0.29 +53.00,0.00,23.00,0.50,1.82,0.28 +90.00,0.00,60.00,0.56,1.72,0.31 +16.60,0.00,0.00,0.78,1.58,0.15 +27.30,0.00,0.00,0.33,1.60,0.27 +83.00,0.00,53.00,0.74,1.60,0.28 +13.30,0.00,0.00,0.77,1.76,0.37 +51.00,0.00,21.00,0.40,1.67,0.26 +30.00,0.00,0.00,0.81,1.58,0.17 +9.80,0.00,0.00,0.62,1.52,0.19 +18.50,0.00,0.00,0.61,1.69,0.23 +10.10,0.00,0.00,0.76,1.69,0.23 +38.90,1.00,17.00,0.83,1.59,0.16 +15.80,0.00,0.00,0.54,1.53,0.17 +53.00,0.00,23.00,0.31,1.56,0.31 +30.00,0.00,0.00,0.32,1.53,0.27 +67.00,0.00,37.00,0.88,1.58,0.16 +63.00,0.00,33.00,0.56,1.54,0.20 +52.00,0.00,22.00,0.44,1.72,0.27 +31.00,0.00,1.00,0.89,1.72,0.20 +13.60,0.00,0.00,0.39,1.78,0.37 +72.00,0.00,42.00,0.56,1.78,0.37 +48.00,0.00,18.00,0.35,1.64,0.32 +64.00,0.00,34.00,0.40,1.70,0.27 +60.00,0.00,30.00,0.59,1.64,0.23 +58.60,1.00,39.00,0.45,1.69,0.25 +87.00,0.00,57.00,0.42,1.67,0.25 +75.00,0.00,45.00,0.33,1.59,0.26 +44.00,0.00,14.00,0.61,1.62,0.25 +58.00,0.00,28.00,0.35,1.54,0.28 +14.00,1.00,10.00,1.11,1.72,0.22 +92.00,0.00,62.00,0.42,1.72,0.27 +28.10,0.00,0.00,0.51,1.69,0.28 +44.00,1.00,35.00,0.32,1.60,0.30 +62.00,0.00,32.00,0.35,1.63,0.32 +78.00,0.00,48.00,0.49,1.78,0.28 +30.00,0.00,0.00,0.75,1.79,0.39 +18.10,0.00,0.00,1.31,1.69,0.25 +63.00,0.00,33.00,0.51,1.65,0.24 +20.90,0.00,0.00,0.49,1.82,0.40 +86.00,0.00,56.00,0.58,1.71,0.24 +34.60,1.00,14.00,0.44,1.53,0.27 +51.30,1.00,51.00,0.47,1.64,0.27 +43.00,0.00,13.00,0.68,1.74,0.41 +1.40,0.00,0.00,1.08,1.75,0.22 +30.00,0.00,0.00,0.69,1.82,0.25 +50.00,0.00,20.00,0.55,1.60,0.22 +56.00,0.00,26.00,0.56,1.67,0.33 +65.00,0.00,35.00,0.34,1.65,0.28 +8.60,0.00,0.00,0.74,1.67,0.31 +40.50,1.00,31.00,0.88,1.70,0.19 +5.10,0.00,0.00,0.71,1.58,0.22 +30.00,0.00,0.00,0.77,1.78,0.44 +66.00,0.00,36.00,0.55,1.70,0.24 +44.00,0.00,14.00,0.61,1.62,0.26 +74.00,0.00,44.00,0.53,1.80,0.28 +50.00,0.00,20.00,0.48,1.67,0.24 +65.00,0.00,35.00,0.34,1.62,0.29 +51.00,0.00,21.00,0.47,1.72,0.26 +74.00,0.00,44.00,0.33,1.60,0.28 +106.00,0.00,76.00,0.33,1.55,0.26 +9.60,0.00,0.00,0.74,1.76,0.36 +33.00,0.00,3.00,0.32,1.66,0.32 +68.20,1.00,57.00,0.68,1.61,0.27 +10.50,0.00,0.00,0.58,1.70,0.27 +30.00,0.00,0.00,0.59,1.63,0.24 +2.10,0.00,0.00,0.53,1.70,0.24 +92.00,0.00,62.00,0.31,1.59,0.31 +67.00,1.00,41.00,0.38,1.59,0.26 +10.20,1.00,0.00,1.11,1.76,0.24 +106.00,0.00,76.00,0.47,1.64,0.26 +78.00,0.00,48.00,0.50,1.70,0.26 +30.00,0.00,0.00,0.40,1.58,0.24 +58.00,0.00,28.00,0.38,1.61,0.25 +13.60,0.00,0.00,0.38,1.68,0.28 +44.00,0.00,14.00,0.44,1.71,0.26 +87.00,0.00,57.00,0.45,1.70,0.26 +85.00,0.00,55.00,0.44,1.55,0.27 +47.00,0.00,17.00,0.51,1.58,0.21 +30.00,0.00,0.00,0.74,1.79,0.39 +44.00,0.00,14.00,0.46,1.60,0.23 +30.00,0.00,0.00,0.81,1.79,0.41 +48.00,0.00,18.00,0.53,1.58,0.18 +48.00,0.00,18.00,0.94,1.87,0.26 +44.00,0.00,14.00,0.44,1.71,0.26 +65.90,1.00,58.00,0.93,1.61,0.17 +66.00,0.00,36.00,0.43,1.72,0.34 +49.00,0.00,19.00,0.51,1.65,0.22 +81.00,0.00,51.00,0.47,1.64,0.26 +51.00,0.00,21.00,0.88,1.61,0.16 +4.80,0.00,0.00,0.55,1.54,0.20 +30.00,0.00,0.00,0.32,1.59,0.32 +11.10,1.00,0.00,1.21,1.79,0.30 +69.00,0.00,39.00,0.45,1.69,0.25 +38.00,0.00,8.00,0.52,1.55,0.18 +10.80,0.00,0.00,0.66,1.54,0.21 +83.00,0.00,53.00,0.52,1.57,0.20 +87.00,0.00,57.00,0.59,1.62,0.25 +25.80,0.00,0.00,0.83,1.69,0.22 +69.00,0.00,39.00,0.60,1.56,0.20 +98.00,0.00,68.00,0.34,1.61,0.31 +50.00,0.00,20.00,0.48,1.64,0.23 +74.00,0.00,44.00,0.32,1.60,0.28 +106.00,0.00,76.00,0.34,1.55,0.25 +51.00,0.00,21.00,0.43,1.73,0.27 +38.00,0.00,8.00,0.52,1.55,0.18 +41.80,1.00,18.00,0.54,1.54,0.18 +69.00,0.00,39.00,0.57,1.68,0.23 +30.00,0.00,0.00,0.47,1.60,0.26 +30.00,0.00,0.00,0.47,1.74,0.28 +47.00,0.00,17.00,0.38,1.67,0.29 +53.00,1.00,41.00,0.62,1.68,0.23 +56.00,0.00,26.00,0.53,1.65,0.30 +30.00,0.00,0.00,1.13,1.77,0.27 +30.00,0.00,0.00,0.89,1.72,0.26 +53.00,0.00,23.00,0.59,1.70,0.27 +45.00,0.00,15.00,0.63,1.50,0.15 +17.60,0.00,0.00,0.58,1.68,0.30 +31.70,1.00,17.00,0.76,1.53,0.17 +30.00,0.00,0.00,0.66,1.52,0.19 +52.00,0.00,22.00,0.79,1.66,0.29 +4.20,0.00,0.00,1.05,1.79,0.28 +26.20,1.00,10.00,0.43,1.66,0.25 +72.00,0.00,42.00,0.35,1.64,0.29 +9.50,0.00,0.00,0.82,1.58,0.16 +65.00,0.00,35.00,0.32,1.59,0.31 +74.00,0.00,44.00,0.37,1.66,0.29 +63.00,0.00,33.00,0.87,1.57,0.21 +91.00,0.00,61.00,0.35,1.60,0.27 +60.00,0.00,30.00,0.59,1.63,0.23 +42.30,1.00,39.00,0.34,1.55,0.27 +10.60,0.00,0.00,0.93,1.87,0.26 +66.00,0.00,36.00,0.42,1.87,0.40 +59.00,0.00,29.00,0.41,1.67,0.26 +4.40,0.00,0.00,1.18,1.91,0.57 +24.50,0.00,0.00,0.58,1.57,0.26 +58.00,0.00,28.00,0.38,1.55,0.28 +44.00,0.00,14.00,0.40,1.51,0.26 +49.00,0.00,19.00,0.33,1.71,0.28 +72.00,0.00,42.00,0.42,1.86,0.40 +5.50,0.00,0.00,0.71,1.55,0.15 +25.90,0.00,0.00,1.14,1.64,0.20 +74.00,0.00,44.00,0.33,1.64,0.29 +83.00,0.00,53.00,0.62,1.69,0.24 +48.00,0.00,18.00,0.53,1.56,0.18 +76.00,0.00,46.00,0.31,1.61,0.30 +47.00,0.00,17.00,0.52,1.65,0.23 +30.00,0.00,0.00,0.37,1.56,0.28 +69.00,0.00,39.00,0.48,1.69,0.29 +57.00,0.00,27.00,0.42,1.67,0.26 +20.30,1.00,20.00,0.67,1.77,0.25 +22.30,0.00,0.00,0.37,1.64,0.27 +11.50,1.00,0.00,1.24,1.74,0.25 +44.00,0.00,14.00,0.42,1.70,0.26 +61.20,1.00,55.00,0.35,1.55,0.27 +30.00,0.00,0.00,0.79,1.57,0.21 +53.00,0.00,23.00,0.67,1.72,0.33 +41.00,0.00,11.00,0.56,1.67,0.27 +63.00,0.00,33.00,0.62,1.61,0.23 +0.90,0.00,0.00,0.66,1.61,0.28 +55.00,0.00,25.00,0.52,1.65,0.22 +107.00,0.00,77.00,0.39,1.61,0.24 +39.00,0.00,9.00,0.41,1.56,0.28 +52.00,0.00,22.00,0.43,1.69,0.25 +30.60,1.00,22.00,0.63,1.55,0.21 +53.00,0.00,23.00,0.70,1.73,0.34 +30.00,0.00,0.00,0.87,1.81,0.50 +27.40,0.00,0.00,0.53,1.71,0.24 +7.90,0.00,0.00,0.69,1.80,0.39 +58.00,0.00,28.00,0.35,1.57,0.25 +44.00,0.00,14.00,0.66,1.94,0.25 +52.00,0.00,22.00,0.55,1.58,0.25 +53.00,0.00,23.00,0.69,1.73,0.34 +58.00,0.00,28.00,0.35,1.60,0.27 +88.00,1.00,71.00,0.64,1.56,0.21 +101.00,0.00,71.00,0.39,1.61,0.24 +69.30,1.00,42.00,0.50,1.58,0.21 +30.00,0.00,0.00,0.48,1.65,0.27 +31.00,0.00,1.00,0.63,1.60,0.26 +38.20,1.00,21.00,0.84,1.60,0.16 +78.00,0.00,48.00,0.52,1.80,0.29 +44.00,0.00,14.00,0.43,1.71,0.26 +90.00,0.00,60.00,0.40,1.66,0.26 +99.00,0.00,69.00,0.59,1.50,0.17 +106.00,0.00,76.00,0.47,1.64,0.26 +30.00,0.00,0.00,0.70,1.66,0.34 +50.00,0.00,20.00,0.58,1.53,0.19 +1.70,0.00,0.00,0.77,1.79,0.39 +88.50,1.00,62.00,0.67,1.71,0.24 +39.10,1.00,17.00,0.63,1.55,0.22 +2.80,0.00,0.00,0.48,1.73,0.27 +13.90,0.00,0.00,0.39,1.55,0.24 +37.00,0.00,7.00,0.76,1.67,0.29 +23.00,0.00,0.00,0.48,1.77,0.28 +6.90,0.00,0.00,0.35,1.63,0.30 +45.00,0.00,15.00,0.66,1.57,0.23 +40.00,0.00,10.00,0.94,1.60,0.17 +3.90,0.00,0.00,0.88,1.82,0.50 +41.20,1.00,35.00,0.88,1.71,0.20 +58.00,0.00,28.00,0.34,1.56,0.26 +68.00,0.00,38.00,0.45,1.66,0.26 +62.00,0.00,32.00,0.33,1.60,0.32 +30.00,0.00,0.00,0.94,1.75,0.21 +44.00,0.00,14.00,0.63,1.84,0.24 +34.00,0.00,4.00,0.34,1.64,0.27 +30.00,0.00,0.00,0.99,1.74,0.25 +29.80,0.00,0.00,0.48,1.65,0.27 +30.00,0.00,0.00,0.34,1.50,0.27 +83.00,0.00,53.00,0.51,1.57,0.20 +80.00,0.00,50.00,0.38,1.66,0.28 +58.00,0.00,28.00,0.34,1.59,0.27 +53.00,0.00,23.00,0.71,1.58,0.22 +61.00,0.00,31.00,0.71,1.52,0.18 +99.00,0.00,69.00,0.56,1.52,0.17 +30.00,0.00,0.00,0.45,1.73,0.28 +49.00,0.00,19.00,0.71,1.52,0.18 +79.50,1.00,71.00,0.38,1.55,0.25 +68.00,0.00,38.00,0.71,1.58,0.23 +72.00,0.00,42.00,0.36,1.61,0.25 +30.00,0.00,0.00,0.34,1.61,0.31 +30.00,0.00,0.00,0.55,1.65,0.22 +38.90,1.00,28.00,0.35,1.55,0.28 +50.00,0.00,20.00,0.40,1.59,0.24 +59.00,0.00,29.00,0.61,1.58,0.22 +58.00,0.00,28.00,0.47,1.68,0.25 +6.00,0.00,0.00,0.92,1.73,0.24 +66.00,0.00,36.00,0.53,1.69,0.23 +43.00,0.00,13.00,0.47,1.66,0.25 +45.00,0.00,15.00,0.61,1.52,0.17 +9.10,0.00,0.00,0.41,1.63,0.24 +85.00,0.00,55.00,0.36,1.55,0.27 +59.00,0.00,29.00,0.53,1.65,0.22 +48.00,0.00,18.00,0.42,1.67,0.26 +28.70,1.00,1.00,0.47,1.66,0.25 +51.00,0.00,21.00,0.80,1.59,0.16 +30.00,0.00,0.00,0.55,1.63,0.24 +44.00,0.00,14.00,0.63,1.71,0.31 +44.00,1.00,33.00,0.53,1.70,0.24 +86.00,0.00,56.00,0.58,1.71,0.24 +30.00,0.00,0.00,0.70,1.55,0.19 +8.30,0.00,0.00,0.53,1.67,0.29 +36.20,1.00,13.00,0.44,1.71,0.26 +19.20,1.00,15.00,0.66,1.57,0.23 +47.00,0.00,17.00,0.45,1.72,0.28 +90.00,0.00,60.00,0.38,1.57,0.23 +46.00,0.00,16.00,0.87,1.82,0.52 +72.00,0.00,42.00,0.35,1.58,0.25 +18.20,0.00,0.00,0.45,1.69,0.26 +40.00,0.00,10.00,0.76,1.79,0.47 +56.00,0.00,26.00,0.54,1.66,0.31 +65.00,0.00,35.00,0.34,1.60,0.29 +12.10,1.00,0.00,1.21,1.67,0.20 +85.00,0.00,55.00,0.38,1.55,0.24 +76.00,0.00,46.00,0.31,1.61,0.29 +20.20,1.00,0.00,1.21,1.76,0.23 +88.00,0.00,58.00,0.54,1.85,0.28 +4.70,0.00,0.00,0.59,1.70,0.27 +28.60,1.00,0.00,0.85,1.67,0.18 +72.00,0.00,42.00,0.57,1.79,0.37 +73.00,1.00,50.00,0.59,1.58,0.21 +86.00,0.00,56.00,0.54,1.71,0.25 +74.00,0.00,44.00,0.53,1.76,0.26 +45.00,0.00,15.00,0.40,1.68,0.28 +43.00,0.00,13.00,0.45,1.66,0.23 +44.00,0.00,14.00,0.62,1.56,0.22 +30.00,0.00,0.00,0.59,1.57,0.20 +44.00,0.00,14.00,0.47,1.76,0.28 +30.00,0.00,0.00,0.82,1.60,0.16 +40.00,0.00,10.00,0.36,1.57,0.24 +70.60,1.00,57.00,0.45,1.69,0.27 +23.00,1.00,0.00,0.86,1.69,0.19 +42.00,0.00,12.00,0.52,1.59,0.19 +41.00,0.00,11.00,0.66,1.77,0.25 +51.00,0.00,21.00,0.44,1.73,0.27 +101.00,0.00,71.00,0.39,1.58,0.27 +69.00,0.00,39.00,0.57,1.68,0.23 +44.00,0.00,14.00,0.44,1.71,0.25 +101.00,0.00,71.00,0.52,1.81,0.29 +40.00,0.00,10.00,0.44,1.67,0.25 +70.00,0.00,40.00,0.38,1.59,0.24 +75.00,0.00,45.00,0.65,1.72,0.40 +44.10,1.00,34.00,0.38,1.58,0.28 +91.00,0.00,61.00,0.35,1.59,0.28 +69.00,0.00,39.00,0.47,1.67,0.24 +33.40,1.00,23.00,0.69,1.73,0.34 +1.70,0.00,0.00,0.67,1.71,0.24 +44.00,0.00,14.00,0.57,1.68,0.27 +33.20,1.00,31.00,0.36,1.66,0.32 +55.00,0.00,25.00,0.60,1.57,0.23 +92.00,0.00,62.00,0.31,1.58,0.31 +69.80,1.00,53.00,0.56,1.66,0.22 +90.00,0.00,60.00,0.45,1.62,0.26 +50.00,0.00,20.00,0.48,1.66,0.23 +47.80,1.00,36.00,0.38,1.58,0.28 +30.00,0.00,0.00,0.37,1.55,0.27 +69.00,0.00,39.00,0.42,1.63,0.27 +12.10,0.00,0.00,0.52,1.70,0.28 +101.00,0.00,71.00,0.35,1.50,0.27 +30.00,0.00,0.00,0.76,1.79,0.39 +78.40,1.00,53.00,0.40,1.67,0.27 +32.50,1.00,26.00,1.08,1.76,0.23 +30.00,0.00,0.00,0.74,1.80,0.43 +30.00,0.00,0.00,0.75,1.78,0.43 +87.00,0.00,57.00,0.36,1.58,0.26 +44.00,0.00,14.00,0.34,1.61,0.32 +92.00,0.00,62.00,0.44,1.73,0.27 +69.00,0.00,39.00,0.47,1.68,0.29 +30.00,0.00,0.00,0.50,1.64,0.27 +13.70,0.00,0.00,1.05,1.76,0.21 +31.00,0.00,1.00,0.33,1.56,0.26 +30.00,0.00,0.00,0.54,1.56,0.18 +53.00,0.00,23.00,0.73,1.60,0.23 +90.00,0.00,60.00,0.49,1.68,0.27 +54.00,0.00,24.00,0.50,1.58,0.20 +7.00,0.00,0.00,0.39,1.61,0.25 +13.40,0.00,0.00,0.58,1.72,0.24 +26.40,1.00,0.00,1.15,1.76,0.22 +66.00,0.00,36.00,0.47,1.67,0.26 +30.00,0.00,0.00,0.31,1.52,0.27 +63.00,0.00,33.00,0.44,1.70,0.27 +70.00,0.00,40.00,0.53,1.69,0.23 +48.00,0.00,18.00,0.35,1.65,0.32 +42.00,0.00,12.00,0.34,1.62,0.27 +97.00,0.00,67.00,0.47,1.66,0.25 +78.00,0.00,48.00,0.47,1.75,0.28 +79.80,1.00,53.00,0.52,1.58,0.20 +50.00,0.00,20.00,0.55,1.55,0.20 +70.00,0.00,40.00,0.40,1.58,0.27 +45.00,0.00,15.00,1.02,1.62,0.17 +30.00,0.00,0.00,0.58,1.54,0.17 +83.00,0.00,53.00,0.77,1.64,0.29 +98.00,0.00,68.00,0.39,1.65,0.26 +30.00,0.00,0.00,0.63,1.53,0.16 +86.00,0.00,56.00,0.43,1.72,0.26 +45.00,0.00,15.00,1.00,1.61,0.17 +54.00,0.00,24.00,0.53,1.57,0.18 +49.00,0.00,19.00,0.79,1.65,0.23 +83.00,0.00,53.00,0.57,1.66,0.22 +37.70,1.00,19.00,0.72,1.51,0.18 +63.00,0.00,33.00,0.42,1.70,0.27 +58.00,0.00,28.00,0.42,1.56,0.27 +63.00,0.00,33.00,0.42,1.70,0.28 +58.30,1.00,33.00,0.71,1.55,0.20 +7.50,0.00,0.00,0.79,1.57,0.16 +45.00,0.00,15.00,0.41,1.61,0.25 +30.00,1.00,0.00,0.40,1.56,0.28 +29.60,0.00,0.00,0.33,1.60,0.28 +67.30,1.00,42.00,0.43,1.71,0.27 +30.00,0.00,0.00,1.05,1.76,0.21 +69.00,0.00,39.00,0.43,1.71,0.26 +45.00,0.00,15.00,0.61,1.54,0.21 +32.70,1.00,10.00,0.95,1.60,0.17 +27.40,0.00,0.00,0.42,1.67,0.26 +50.00,0.00,20.00,0.46,1.66,0.25 +37.00,0.00,7.00,0.57,1.54,0.20 +30.00,0.00,0.00,1.01,1.76,0.25 +22.20,0.00,0.00,0.37,1.55,0.28 +25.20,1.00,0.00,0.70,1.66,0.34 +80.00,0.00,50.00,0.60,1.62,0.22 +82.00,0.00,52.00,0.50,1.65,0.29 +28.90,0.00,0.00,0.55,1.67,0.23 +92.00,0.00,62.00,0.43,1.73,0.27 +69.00,0.00,39.00,0.60,1.55,0.20 +39.80,1.00,33.00,0.62,1.68,0.23 +37.00,0.00,7.00,0.52,1.56,0.19 +30.00,0.00,0.00,0.66,1.53,0.19 +69.00,0.00,39.00,0.57,1.68,0.23 +3.00,0.00,0.00,0.80,1.66,0.25 +15.60,1.00,0.00,0.76,1.59,0.16 +37.90,1.00,18.00,0.76,1.69,0.23 +18.90,0.00,0.00,0.53,1.66,0.24 +44.00,0.00,14.00,0.66,1.57,0.23 +44.00,0.00,14.00,0.47,1.76,0.27 +30.00,0.00,0.00,0.46,1.69,0.27 +69.00,0.00,39.00,0.44,1.70,0.25 +30.00,0.00,0.00,0.75,1.56,0.15 +2.30,0.00,0.00,1.14,1.77,0.27 +15.40,0.00,0.00,0.83,1.65,0.18 +30.00,0.00,0.00,0.59,1.53,0.17 +30.00,0.00,0.00,0.59,1.62,0.25 +13.90,0.00,0.00,0.33,1.67,0.27 +20.00,0.00,0.00,0.43,1.72,0.26 +71.00,0.00,41.00,0.62,1.49,0.15 +83.20,1.00,71.00,0.37,1.55,0.24 +76.00,0.00,46.00,0.70,1.69,0.22 +92.00,0.00,62.00,0.39,1.68,0.28 +101.00,0.00,71.00,0.38,1.57,0.24 +59.00,0.00,29.00,0.38,1.67,0.30 +49.00,0.00,19.00,0.51,1.64,0.22 +1.30,0.00,0.00,0.62,1.60,0.23 +58.00,0.00,28.00,0.31,1.70,0.29 +93.00,1.00,71.00,0.43,1.70,0.26 +53.00,0.00,23.00,0.46,1.69,0.26 +1.00,0.00,0.00,0.74,1.60,0.28 +72.00,0.00,42.00,0.68,1.75,0.35 +4.50,0.00,0.00,1.47,1.72,0.27 +51.00,0.00,21.00,0.53,1.66,0.29 +31.20,1.00,10.00,0.91,1.73,0.20 +87.00,0.00,57.00,0.37,1.57,0.25 +59.00,0.00,29.00,0.41,1.68,0.27 +71.80,1.00,50.00,0.59,1.60,0.22 +73.00,0.00,43.00,0.45,1.75,0.28 +26.20,0.00,0.00,1.04,1.78,0.26 +70.00,0.00,40.00,0.40,1.60,0.24 +66.00,0.00,36.00,0.59,1.73,0.24 +72.00,0.00,42.00,0.35,1.58,0.26 +43.30,1.00,33.00,0.32,1.60,0.29 +44.00,0.00,14.00,0.68,1.53,0.19 +101.00,0.00,71.00,0.51,1.63,0.26 +17.10,0.00,0.00,0.64,1.56,0.22 +44.00,0.00,14.00,0.47,1.75,0.28 +84.00,0.00,54.00,0.45,1.68,0.30 +66.00,0.00,36.00,0.35,1.59,0.28 +42.30,1.00,14.00,0.50,1.61,0.21 +53.00,0.00,23.00,0.36,1.62,0.28 +69.00,0.00,39.00,0.43,1.57,0.25 +27.30,0.00,0.00,0.61,1.69,0.23 +88.00,0.00,58.00,0.62,1.68,0.23 +65.00,0.00,35.00,0.32,1.60,0.31 +91.00,0.00,61.00,0.39,1.69,0.28 +13.80,0.00,0.00,0.45,1.68,0.27 +69.00,0.00,39.00,0.59,1.57,0.20 +14.00,0.00,0.00,0.61,1.75,0.33 +49.00,0.00,19.00,0.73,1.52,0.18 +56.90,1.00,39.00,0.54,1.55,0.18 +44.00,0.00,14.00,0.44,1.53,0.27 +72.50,1.00,51.00,0.47,1.63,0.26 +78.00,0.00,48.00,0.50,1.70,0.26 +104.00,0.00,74.00,0.31,1.58,0.29 +22.70,0.00,0.00,0.68,1.56,0.22 +62.40,1.00,33.00,0.42,1.70,0.27 +30.00,0.00,0.00,0.57,1.56,0.18 +9.40,0.00,0.00,0.70,1.74,0.36 +87.00,1.00,59.00,0.61,1.58,0.27 +93.80,1.00,68.00,0.53,1.56,0.18 +44.00,0.00,14.00,0.55,1.67,0.24 +71.00,0.00,41.00,0.87,1.67,0.25 +41.00,0.00,11.00,0.46,1.73,0.28 +51.00,0.00,21.00,0.39,1.66,0.27 +30.00,0.00,0.00,0.77,1.63,0.25 +30.00,0.00,0.00,0.78,1.60,0.23 +52.00,0.00,22.00,0.44,1.73,0.28 +19.00,0.00,0.00,1.09,1.63,0.19 +43.00,0.00,13.00,0.54,1.53,0.16 +95.00,1.00,68.00,0.39,1.64,0.26 +45.00,0.00,15.00,0.42,1.61,0.25 +18.90,0.00,0.00,0.61,1.68,0.23 +61.00,0.00,31.00,0.61,1.70,0.33 +12.90,0.00,0.00,0.56,1.72,0.30 +63.00,0.00,33.00,0.58,1.57,0.22 +50.00,0.00,20.00,0.36,1.68,0.32 +91.00,0.00,61.00,0.35,1.68,0.32 +72.00,0.00,42.00,0.73,1.83,0.43 +83.00,0.00,53.00,0.67,1.91,0.25 +49.00,0.00,19.00,0.69,1.75,0.42 +30.00,0.00,0.00,0.61,1.76,0.24 +30.00,0.00,0.00,1.06,1.75,0.21 +63.00,0.00,33.00,0.51,1.69,0.25 +63.00,0.00,33.00,0.50,1.65,0.24 +34.00,0.00,4.00,0.32,1.74,0.29 +78.00,0.00,48.00,0.45,1.71,0.27 +74.60,1.00,60.00,0.58,1.73,0.31 +45.90,1.00,36.00,0.40,1.69,0.27 +48.00,0.00,18.00,0.83,1.90,0.26 +8.80,0.00,0.00,0.43,1.67,0.27 +41.30,1.00,16.00,0.68,1.61,0.28 +41.00,0.00,11.00,0.41,1.65,0.25 +50.00,0.00,20.00,0.48,1.67,0.24 +44.00,0.00,14.00,0.59,1.78,0.26 +31.00,0.00,1.00,0.60,1.60,0.26 +31.00,0.00,1.00,0.86,1.71,0.21 +64.00,0.00,34.00,0.35,1.62,0.30 +0.70,0.00,0.00,0.63,1.53,0.16 +54.00,0.00,24.00,0.44,1.68,0.28 +66.00,0.00,36.00,0.50,1.66,0.23 +47.00,0.00,17.00,0.33,1.53,0.28 +68.60,1.00,55.00,0.38,1.55,0.24 +72.00,0.00,42.00,0.35,1.59,0.26 +83.00,0.00,53.00,0.41,1.67,0.26 +88.00,0.00,58.00,0.57,1.75,0.25 +69.00,0.00,39.00,0.59,1.57,0.20 +22.50,0.00,0.00,0.69,1.77,0.25 +72.00,0.00,42.00,0.55,1.70,0.23 +50.00,0.00,20.00,0.55,1.54,0.20 +8.70,0.00,0.00,0.60,1.68,0.23 +30.00,0.00,0.00,0.35,1.62,0.30 +19.00,1.00,0.00,1.33,1.69,0.26 +30.00,0.00,0.00,0.49,1.60,0.27 +39.00,0.00,9.00,0.33,1.52,0.27 +64.00,0.00,34.00,0.58,1.81,0.26 +81.00,1.00,53.00,0.42,1.69,0.26 +42.00,1.00,33.00,0.57,1.54,0.20 +13.30,0.00,0.00,0.52,1.65,0.23 +9.70,0.00,0.00,0.92,1.70,0.24 +50.00,0.00,20.00,0.45,1.65,0.25 +41.00,0.00,11.00,0.75,1.91,0.25 +30.00,0.00,0.00,0.99,1.78,0.22 +26.40,0.00,0.00,0.52,1.65,0.23 +61.00,1.00,49.00,0.69,1.59,0.25 +44.00,0.00,14.00,0.62,1.65,0.28 +72.00,0.00,42.00,0.37,1.63,0.26 +45.00,0.00,15.00,0.75,1.76,0.24 +9.30,0.00,0.00,0.56,1.68,0.33 +60.00,0.00,30.00,0.32,1.71,0.29 +59.00,0.00,29.00,0.61,1.76,0.26 +15.10,0.00,0.00,0.44,1.73,0.27 +83.00,0.00,53.00,0.82,1.68,0.22 +71.00,0.00,41.00,0.37,1.59,0.26 +53.00,0.00,23.00,0.45,1.69,0.26 +58.00,0.00,28.00,0.33,1.62,0.30 +60.00,0.00,30.00,0.32,1.68,0.28 +37.00,0.00,7.00,0.51,1.58,0.20 +1.90,0.00,0.00,0.54,1.56,0.20 +72.00,0.00,42.00,0.42,1.85,0.40 +53.00,0.00,23.00,0.51,1.72,0.32 +27.80,0.00,0.00,1.05,1.78,0.27 +65.00,0.00,35.00,0.31,1.59,0.29 +44.00,0.00,14.00,0.44,1.71,0.26 +47.00,0.00,17.00,0.42,1.59,0.24 +6.10,0.00,0.00,0.59,1.66,0.28 +57.30,1.00,28.00,0.63,1.53,0.16 +53.00,0.00,23.00,0.41,1.59,0.24 +51.70,1.00,25.00,0.99,1.77,0.24 +37.00,0.00,7.00,0.61,1.60,0.23 +6.70,0.00,0.00,0.50,1.78,0.38 +101.00,0.00,71.00,0.49,1.63,0.25 +101.00,0.00,71.00,0.64,1.56,0.21 +2.10,0.00,0.00,0.70,1.54,0.20 +50.00,0.00,20.00,0.40,1.59,0.24 +50.00,0.00,20.00,0.42,1.60,0.24 +30.00,0.00,0.00,0.54,1.57,0.18 +30.00,0.00,0.00,1.03,1.76,0.21 +30.00,0.00,0.00,0.81,1.74,0.23 +83.00,0.00,53.00,0.52,1.57,0.20 +24.80,0.00,0.00,1.01,1.61,0.23 +29.30,0.00,0.00,0.93,1.59,0.17 +44.00,0.00,14.00,0.56,1.68,0.24 +56.30,1.00,42.00,0.73,1.83,0.43 +9.70,0.00,0.00,1.07,1.63,0.19 +47.00,0.00,17.00,0.42,1.56,0.28 +64.00,0.00,34.00,0.38,1.67,0.29 +82.80,1.00,71.00,0.41,1.64,0.24 +50.00,1.00,37.00,0.61,1.75,0.24 +35.70,1.00,17.00,0.58,1.79,0.38 +63.50,1.00,39.00,0.63,1.54,0.20 +1.90,0.00,0.00,0.57,1.66,0.26 +101.00,0.00,71.00,0.50,1.62,0.26 +82.00,0.00,52.00,0.47,1.60,0.26 +4.90,0.00,0.00,0.85,1.59,0.16 +50.00,0.00,20.00,0.53,1.72,0.24 +16.40,0.00,0.00,0.38,1.55,0.24 +46.00,0.00,16.00,0.46,1.71,0.26 +50.00,0.00,20.00,0.48,1.65,0.23 +30.00,0.00,0.00,0.82,1.60,0.17 +30.00,0.00,0.00,1.24,1.79,0.30 +60.90,1.00,37.00,0.89,1.58,0.16 +94.60,1.00,69.00,0.60,1.50,0.17 +106.00,0.00,76.00,0.53,1.70,0.29 +20.60,1.00,11.00,0.83,1.56,0.18 +34.00,0.00,4.00,0.34,1.65,0.27 +10.80,1.00,0.00,0.88,1.71,0.20 +90.00,0.00,60.00,0.53,1.71,0.29 +60.00,0.00,30.00,0.60,1.65,0.23 +30.00,0.00,0.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.78,1.79,0.41 +4.00,0.00,0.00,0.69,1.64,0.24 +45.00,0.00,15.00,0.41,1.68,0.26 +72.00,0.00,42.00,0.84,1.78,0.39 +91.00,0.00,61.00,0.37,1.66,0.28 +56.90,1.00,56.00,0.52,1.78,0.28 +53.00,0.00,23.00,0.45,1.70,0.26 +17.60,0.00,0.00,0.34,1.60,0.27 +26.00,1.00,19.00,0.69,1.53,0.20 +72.00,0.00,42.00,0.38,1.68,0.28 +30.00,0.00,0.00,0.70,1.76,0.42 +41.60,1.00,21.00,0.49,1.63,0.26 +97.00,0.00,67.00,0.59,1.70,0.27 +30.00,0.00,0.00,0.62,1.55,0.21 +30.00,0.00,0.00,0.35,1.60,0.27 +6.40,1.00,0.00,0.78,1.66,0.25 +30.00,0.00,0.00,0.31,1.58,0.31 +19.30,1.00,0.00,0.80,1.58,0.21 +50.00,0.00,20.00,0.42,1.56,0.26 +48.00,0.00,18.00,0.40,1.58,0.23 +30.00,0.00,0.00,1.03,1.77,0.21 +85.00,0.00,55.00,0.39,1.55,0.28 +5.70,0.00,0.00,0.59,1.57,0.22 +40.00,0.00,10.00,0.54,1.52,0.17 +61.00,0.00,31.00,0.69,1.73,0.36 +7.20,0.00,0.00,0.68,1.50,0.17 +73.00,0.00,43.00,0.36,1.66,0.31 +20.40,1.00,0.00,1.35,1.70,0.26 +4.10,0.00,0.00,0.78,1.68,0.32 +51.00,0.00,21.00,0.64,1.54,0.16 +44.00,0.00,14.00,0.76,1.94,0.25 +71.00,0.00,41.00,0.61,1.49,0.15 +4.20,0.00,0.00,0.58,1.57,0.21 +30.00,0.00,0.00,0.91,1.73,0.21 +88.00,0.00,58.00,0.61,1.74,0.24 +29.50,0.00,0.00,0.35,1.69,0.32 +43.40,1.00,28.00,0.31,1.58,0.28 +72.00,0.00,42.00,0.39,1.69,0.28 +57.10,1.00,28.00,0.34,1.56,0.26 +72.80,1.00,57.00,0.46,1.70,0.26 +43.00,0.00,13.00,0.47,1.67,0.25 +6.50,0.00,0.00,0.32,1.60,0.31 +56.00,0.00,26.00,0.58,1.78,0.36 +73.00,0.00,43.00,0.57,1.62,0.25 +2.60,1.00,0.00,0.97,1.85,0.54 +8.00,0.00,0.00,0.45,1.68,0.27 +7.70,0.00,0.00,0.92,1.70,0.24 +48.00,0.00,18.00,0.53,1.57,0.18 +47.00,0.00,17.00,0.38,1.67,0.29 +30.00,0.00,0.00,0.55,1.83,0.28 +78.00,0.00,48.00,0.50,1.76,0.27 +34.70,1.00,30.00,0.45,1.73,0.26 +43.00,0.00,13.00,0.44,1.72,0.27 +39.10,1.00,17.00,0.63,1.55,0.22 +69.00,0.00,39.00,0.42,1.63,0.27 +5.10,0.00,0.00,0.84,1.80,0.40 +43.00,0.00,13.00,0.53,1.53,0.17 +49.00,0.00,19.00,0.72,1.72,0.25 +98.00,0.00,68.00,0.33,1.61,0.31 +23.20,0.00,0.00,1.06,1.76,0.26 +30.00,0.00,0.00,0.33,1.61,0.31 +70.10,1.00,54.00,0.45,1.68,0.30 +67.00,0.00,37.00,0.61,1.74,0.24 +9.10,0.00,0.00,0.56,1.75,0.33 +19.00,1.00,0.00,0.90,1.83,0.41 +38.20,1.00,11.00,0.79,1.54,0.18 +66.00,0.00,36.00,0.51,1.67,0.23 +5.80,0.00,0.00,0.42,1.88,0.41 +37.40,1.00,37.00,0.99,1.77,0.21 +2.50,0.00,0.00,0.63,1.70,0.24 +30.00,0.00,0.00,0.62,1.76,0.24 +39.30,1.00,20.00,0.42,1.71,0.27 +61.00,0.00,31.00,0.47,1.64,0.24 +28.60,0.00,0.00,0.38,1.55,0.25 +47.80,1.00,33.00,0.94,1.59,0.22 +43.30,1.00,31.00,0.49,1.65,0.24 +10.10,0.00,0.00,0.44,1.72,0.26 +44.00,0.00,14.00,0.63,1.81,0.24 +53.00,0.00,23.00,0.46,1.69,0.26 +59.00,0.00,29.00,0.59,1.77,0.27 +45.00,0.00,15.00,1.09,1.63,0.18 +8.90,0.00,0.00,0.89,1.67,0.26 +53.00,0.00,23.00,0.31,1.57,0.31 +0.40,0.00,0.00,0.87,1.81,0.50 +44.00,0.00,14.00,0.54,1.67,0.24 +64.20,1.00,36.00,0.42,1.87,0.40 +74.00,0.00,44.00,0.58,1.68,0.34 +61.00,0.00,31.00,0.36,1.64,0.31 +50.00,0.00,20.00,0.70,1.50,0.17 +89.00,0.00,59.00,0.62,1.59,0.27 +21.80,0.00,0.00,0.76,1.59,0.18 +88.00,0.00,58.00,0.42,1.67,0.25 +63.00,0.00,33.00,0.37,1.80,0.36 +70.00,0.00,40.00,0.50,1.69,0.24 +50.40,1.00,28.00,0.48,1.67,0.24 +44.00,0.00,14.00,0.57,1.68,0.26 +14.60,1.00,14.00,0.68,1.58,0.25 +30.00,0.00,0.00,0.76,1.78,0.44 +66.00,0.00,36.00,0.49,1.67,0.24 +30.00,0.00,0.00,0.57,1.79,0.26 +49.00,0.00,19.00,0.71,1.52,0.18 +11.40,0.00,0.00,0.44,1.90,0.42 +74.00,0.00,44.00,0.32,1.64,0.29 +51.00,0.00,21.00,0.64,1.54,0.16 +4.20,0.00,0.00,1.15,1.77,0.27 +64.00,0.00,34.00,0.33,1.61,0.31 +33.00,0.00,3.00,0.33,1.66,0.32 +30.00,0.00,0.00,0.96,1.75,0.29 +34.20,1.00,30.00,0.32,1.72,0.28 +44.00,0.00,14.00,0.44,1.64,0.26 +73.00,0.00,43.00,0.45,1.74,0.28 +59.00,0.00,29.00,0.64,1.71,0.30 +64.20,1.00,39.00,1.04,1.78,0.26 +41.00,0.00,11.00,0.68,1.78,0.24 +16.30,0.00,0.00,0.81,1.60,0.16 +7.30,0.00,0.00,0.84,1.67,0.18 +44.40,1.00,17.00,0.53,1.57,0.21 +30.00,0.00,0.00,0.36,1.63,0.29 +21.70,0.00,0.00,0.34,1.48,0.26 +30.00,0.00,0.00,0.32,1.59,0.31 +30.00,0.00,0.00,0.79,1.66,0.25 +14.60,0.00,0.00,0.75,1.61,0.28 +48.00,0.00,18.00,0.56,1.52,0.17 +106.00,0.00,76.00,0.45,1.63,0.26 +60.80,1.00,39.00,0.33,1.59,0.27 +30.00,0.00,0.00,0.67,1.52,0.19 +8.80,0.00,0.00,0.37,1.66,0.28 +21.00,1.00,0.00,0.72,1.56,0.17 +53.00,0.00,23.00,0.31,1.56,0.31 +8.40,0.00,0.00,1.15,1.77,0.25 +29.60,1.00,10.00,1.08,1.71,0.22 +45.00,0.00,15.00,0.44,1.73,0.27 +44.00,0.00,14.00,0.44,1.53,0.27 +21.70,0.00,0.00,0.38,1.67,0.29 +41.30,1.00,26.00,0.78,1.57,0.15 +35.00,0.00,5.00,0.58,1.71,0.27 +108.00,0.00,78.00,0.58,1.68,0.34 +86.00,0.00,56.00,0.44,1.71,0.25 +44.00,0.00,14.00,0.43,1.63,0.26 +107.00,0.00,77.00,0.40,1.62,0.24 +48.00,0.00,18.00,0.53,1.57,0.18 +53.00,0.00,23.00,0.39,1.56,0.24 +24.20,0.00,0.00,0.41,1.57,0.26 +90.00,0.00,60.00,0.57,1.72,0.31 +79.00,0.00,49.00,0.49,1.78,0.28 +59.00,0.00,29.00,0.36,1.62,0.26 +54.70,1.00,53.00,0.76,1.62,0.29 +16.50,0.00,0.00,0.82,1.70,0.24 +5.30,1.00,0.00,1.31,1.80,0.30 +30.00,0.00,0.00,0.49,1.64,0.28 +101.00,0.00,71.00,0.43,1.69,0.25 +90.00,0.00,60.00,0.58,1.69,0.26 +86.00,0.00,56.00,0.49,1.77,0.28 +40.20,1.00,26.00,0.79,1.59,0.16 +81.70,1.00,57.00,0.68,1.61,0.28 +64.00,0.00,34.00,0.33,1.60,0.31 +60.00,0.00,30.00,0.48,1.67,0.24 +30.00,0.00,0.00,0.86,1.71,0.23 +30.00,0.00,0.00,0.40,1.61,0.24 +73.00,0.00,43.00,0.39,1.60,0.24 +20.00,1.00,15.00,0.60,1.55,0.21 +1.90,0.00,0.00,0.79,1.58,0.16 +27.40,0.00,0.00,0.55,1.67,0.23 +9.60,0.00,0.00,1.01,1.68,0.21 +61.00,0.00,31.00,0.63,1.81,0.25 +101.00,0.00,71.00,0.64,1.56,0.21 +27.50,1.00,23.00,0.45,1.69,0.26 +72.00,0.00,42.00,0.55,1.78,0.37 +29.60,1.00,18.00,0.93,1.87,0.26 +47.00,0.00,17.00,0.51,1.60,0.21 +45.00,0.00,15.00,0.44,1.72,0.27 +25.20,1.00,3.00,0.32,1.66,0.32 +101.00,0.00,71.00,0.37,1.55,0.24 +62.20,1.00,33.00,0.55,1.71,0.24 +47.00,0.00,17.00,0.47,1.67,0.25 +3.50,0.00,0.00,0.76,1.62,0.25 +1.10,0.00,0.00,1.06,1.78,0.29 +59.00,0.00,29.00,0.54,1.62,0.22 +66.00,0.00,36.00,0.46,1.70,0.27 +30.00,0.00,0.00,0.31,1.52,0.27 +63.00,0.00,33.00,0.61,1.67,0.23 +12.10,0.00,0.00,0.50,1.81,0.28 +42.00,0.00,12.00,0.35,1.62,0.26 +18.40,1.00,0.00,1.49,1.73,0.27 +19.00,0.00,0.00,0.64,1.58,0.20 +26.70,1.00,14.00,0.60,1.77,0.25 +59.00,0.00,29.00,0.41,1.67,0.26 +30.00,0.00,0.00,0.60,1.60,0.28 +30.00,0.00,0.00,0.32,1.53,0.27 +50.00,0.00,20.00,0.48,1.66,0.24 +42.00,0.00,12.00,0.34,1.62,0.26 +22.90,0.00,0.00,0.45,1.62,0.25 +66.00,0.00,36.00,0.32,1.60,0.29 +72.00,0.00,42.00,0.50,1.79,0.39 +66.00,0.00,36.00,0.53,1.68,0.23 +22.50,0.00,0.00,0.61,1.59,0.27 +28.60,0.00,0.00,0.39,1.56,0.28 +81.00,0.00,51.00,0.33,1.60,0.28 +92.00,0.00,62.00,0.39,1.68,0.29 +22.70,0.00,0.00,0.61,1.58,0.23 +19.10,0.00,0.00,0.42,1.67,0.25 +90.00,0.00,60.00,0.42,1.60,0.25 +18.30,0.00,0.00,1.03,1.76,0.21 +30.00,0.00,0.00,0.81,1.60,0.17 +26.50,0.00,0.00,0.70,1.55,0.15 +88.80,1.00,78.00,0.67,1.54,0.18 +53.00,0.00,23.00,0.69,1.57,0.22 +47.00,0.00,17.00,0.41,1.56,0.28 +44.00,0.00,14.00,0.44,1.71,0.26 +67.00,0.00,37.00,1.09,1.75,0.22 +60.00,0.00,30.00,0.71,1.55,0.15 +44.00,0.00,14.00,0.40,1.50,0.26 +53.00,0.00,23.00,0.57,1.65,0.26 +72.00,0.00,42.00,0.37,1.66,0.28 +62.00,0.00,32.00,0.42,1.56,0.26 +66.00,0.00,36.00,0.44,1.69,0.32 +69.00,0.00,39.00,0.58,1.69,0.27 +50.00,0.00,20.00,0.42,1.71,0.27 +74.00,0.00,44.00,0.58,1.69,0.35 +51.00,0.00,21.00,0.47,1.67,0.25 +56.50,1.00,31.00,0.32,1.58,0.31 +41.90,1.00,17.00,0.75,1.53,0.17 +21.90,0.00,0.00,0.70,1.74,0.35 +90.00,0.00,60.00,0.58,1.68,0.32 +106.00,0.00,76.00,0.34,1.55,0.26 +64.00,0.00,34.00,0.34,1.65,0.29 +31.00,0.00,1.00,0.40,1.67,0.26 +53.00,0.00,23.00,0.30,1.54,0.29 +86.00,0.00,56.00,0.43,1.72,0.26 +30.00,0.00,0.00,0.39,1.68,0.28 +48.00,0.00,18.00,0.39,1.57,0.23 +58.00,0.00,28.00,0.41,1.57,0.27 +61.30,1.00,32.00,0.51,1.57,0.25 +65.00,0.00,35.00,0.34,1.63,0.28 +11.20,0.00,0.00,0.46,1.54,0.27 +30.00,1.00,0.00,1.11,1.76,0.24 +40.40,1.00,20.00,0.56,1.53,0.19 +30.00,0.00,0.00,0.61,1.76,0.25 +88.00,0.00,58.00,0.42,1.68,0.25 +0.20,0.00,0.00,1.02,1.77,0.21 +15.60,0.00,0.00,0.38,1.58,0.28 +97.00,0.00,67.00,0.57,1.54,0.20 +28.50,1.00,19.00,0.74,1.73,0.25 +11.70,0.00,0.00,0.58,1.70,0.26 +30.00,0.00,0.00,0.52,1.83,0.29 +53.00,0.00,23.00,0.72,1.59,0.23 +50.00,0.00,20.00,0.70,1.52,0.15 +52.00,1.00,24.00,0.55,1.56,0.18 +9.50,0.00,0.00,0.51,1.59,0.20 +57.30,1.00,51.00,0.47,1.64,0.27 +42.00,0.00,12.00,0.51,1.59,0.19 +44.00,0.00,14.00,0.57,1.79,0.28 +66.00,0.00,36.00,0.32,1.61,0.29 +8.20,0.00,0.00,0.64,1.56,0.21 +53.00,0.00,23.00,0.42,1.68,0.25 +67.00,0.00,37.00,0.58,1.74,0.31 +58.00,0.00,28.00,0.51,1.83,0.29 +24.30,0.00,0.00,0.45,1.68,0.25 +45.00,0.00,15.00,0.40,1.69,0.27 +40.40,1.00,17.00,0.56,1.68,0.25 +89.00,0.00,59.00,0.56,1.56,0.26 +53.00,0.00,23.00,0.35,1.59,0.27 +5.90,0.00,0.00,0.51,1.59,0.21 +43.00,0.00,13.00,0.57,1.68,0.34 +50.00,1.00,28.00,0.42,1.56,0.27 +30.00,0.00,0.00,0.80,1.60,0.18 +87.00,0.00,57.00,0.50,1.75,0.28 +72.00,0.00,42.00,0.38,1.68,0.28 +30.00,0.00,0.00,0.83,1.71,0.23 +98.00,0.00,68.00,0.39,1.55,0.24 +67.00,0.00,37.00,0.59,1.74,0.31 +30.00,0.00,0.00,0.56,1.63,0.24 +71.00,0.00,41.00,0.77,1.55,0.16 +72.00,0.00,42.00,0.45,1.73,0.28 +47.00,0.00,17.00,0.67,1.57,0.21 +72.00,0.00,42.00,0.66,1.75,0.34 +84.20,1.00,66.00,0.58,1.66,0.23 +60.00,0.00,30.00,0.32,1.63,0.28 +73.10,1.00,62.00,0.82,1.56,0.17 +42.00,0.00,12.00,0.47,1.61,0.26 +52.00,0.00,22.00,0.74,1.60,0.23 +4.90,0.00,0.00,0.95,1.71,0.21 +83.00,0.00,53.00,0.74,1.60,0.27 +30.00,0.00,0.00,0.62,1.56,0.22 +11.20,0.00,0.00,0.83,1.57,0.16 +96.00,0.00,66.00,0.56,1.66,0.22 +57.00,0.00,27.00,0.42,1.67,0.26 +39.90,1.00,17.00,0.67,1.52,0.19 +25.60,0.00,0.00,0.50,1.80,0.40 +33.00,0.00,3.00,0.69,1.68,0.32 +72.00,0.00,42.00,0.68,1.80,0.39 +50.00,0.00,20.00,0.53,1.72,0.24 +30.00,0.00,0.00,0.48,1.64,0.27 +31.20,1.00,17.00,0.78,1.63,0.26 +6.80,0.00,0.00,1.05,1.76,0.21 +51.00,0.00,21.00,0.64,1.53,0.15 +50.00,0.00,20.00,0.55,1.55,0.20 +78.00,0.00,48.00,0.50,1.80,0.28 +58.00,0.00,28.00,0.35,1.54,0.28 +23.20,1.00,10.00,0.69,1.54,0.17 +44.00,0.00,14.00,0.44,1.71,0.26 +20.80,1.00,0.00,0.72,1.59,0.22 +27.60,0.00,0.00,1.06,1.87,0.55 +54.00,0.00,24.00,0.69,1.83,0.25 +43.10,1.00,41.00,0.75,1.68,0.23 +30.00,0.00,0.00,0.51,1.56,0.25 +48.00,0.00,18.00,0.46,1.62,0.24 +30.00,0.00,0.00,0.38,1.57,0.24 +45.00,0.00,15.00,0.53,1.67,0.24 +27.10,1.00,6.00,0.38,1.55,0.24 +41.10,1.00,31.00,0.56,1.56,0.17 +68.00,0.00,38.00,0.40,1.57,0.27 +66.00,0.00,36.00,0.54,1.69,0.23 +83.00,0.00,53.00,0.57,1.66,0.22 +30.00,0.00,0.00,0.36,1.63,0.29 +59.00,0.00,29.00,0.49,1.62,0.22 +44.00,0.00,14.00,0.54,1.67,0.24 +39.00,0.00,9.00,0.38,1.54,0.28 +69.10,1.00,44.00,0.32,1.59,0.31 +30.00,0.00,0.00,0.82,1.71,0.23 +78.00,0.00,48.00,0.45,1.71,0.27 +46.00,1.00,36.00,0.91,1.65,0.19 +87.00,0.00,57.00,0.44,1.69,0.25 +46.00,0.00,16.00,0.45,1.65,0.26 +36.00,0.00,6.00,0.79,1.59,0.15 +18.60,0.00,0.00,0.44,1.72,0.27 +32.30,1.00,9.00,0.62,1.58,0.22 +15.20,0.00,0.00,0.59,1.62,0.22 +45.00,0.00,15.00,0.55,1.68,0.23 +87.00,0.00,57.00,0.48,1.73,0.27 +78.00,0.00,48.00,0.49,1.80,0.28 +44.00,0.00,14.00,0.50,1.61,0.21 +22.70,0.00,0.00,0.62,1.57,0.22 +30.00,0.00,0.00,0.33,1.46,0.26 +81.00,0.00,51.00,0.32,1.62,0.30 +30.00,0.00,0.00,0.94,1.74,0.28 +63.00,0.00,33.00,0.57,1.66,0.24 +30.00,0.00,0.00,0.60,1.77,0.25 +55.70,1.00,35.00,0.82,1.60,0.16 +86.00,0.00,56.00,0.44,1.71,0.25 +30.00,0.00,0.00,0.62,1.49,0.15 +55.30,1.00,53.00,0.82,1.68,0.23 +51.00,0.00,21.00,0.65,1.53,0.15 +2.20,0.00,0.00,0.81,1.58,0.17 +73.00,0.00,43.00,0.39,1.67,0.28 +30.00,0.00,0.00,0.82,1.80,0.39 +44.20,1.00,29.00,0.42,1.68,0.26 +27.70,1.00,15.00,0.59,1.54,0.20 +2.30,0.00,0.00,0.38,1.54,0.28 +9.10,0.00,0.00,0.65,1.53,0.15 +19.80,0.00,0.00,0.66,1.52,0.19 +18.50,1.00,0.00,0.93,1.70,0.24 +61.00,0.00,31.00,0.70,1.52,0.19 +83.00,0.00,53.00,0.51,1.59,0.21 +61.30,1.00,53.00,0.69,1.82,0.25 +63.00,0.00,33.00,0.56,1.54,0.20 +47.00,0.00,17.00,0.68,1.57,0.21 +55.00,0.00,25.00,0.51,1.65,0.22 +30.00,0.00,0.00,0.59,1.63,0.25 +30.00,0.00,0.00,0.52,1.56,0.19 +40.00,0.00,10.00,0.79,1.60,0.18 +98.00,0.00,68.00,0.36,1.63,0.29 +5.00,0.00,0.00,0.38,1.68,0.28 +4.20,0.00,0.00,0.55,1.56,0.18 +54.50,1.00,42.00,0.31,1.58,0.31 +59.00,0.00,29.00,0.48,1.64,0.24 +43.00,1.00,32.00,0.54,1.58,0.25 +98.00,0.00,68.00,0.36,1.63,0.29 +15.90,0.00,0.00,0.42,1.88,0.41 +50.00,0.00,20.00,0.56,1.71,0.24 +60.00,0.00,30.00,0.45,1.72,0.27 +49.00,0.00,19.00,0.51,1.89,0.46 +107.00,0.00,77.00,0.38,1.61,0.25 +3.60,0.00,0.00,0.58,1.73,0.31 +50.00,0.00,20.00,0.58,1.79,0.25 +50.10,1.00,33.00,0.98,1.60,0.22 +14.60,1.00,0.00,0.83,1.65,0.18 +3.40,0.00,0.00,0.33,1.63,0.29 +20.00,0.00,0.00,0.42,1.69,0.26 +66.30,1.00,40.00,0.38,1.59,0.24 +47.40,1.00,33.00,0.72,1.55,0.20 +1.80,0.00,0.00,0.59,1.57,0.22 +70.00,0.00,40.00,0.39,1.59,0.24 +98.00,0.00,68.00,0.42,1.57,0.25 +44.00,0.00,14.00,0.34,1.62,0.32 +60.00,0.00,30.00,0.45,1.73,0.26 +69.20,1.00,53.00,0.43,1.70,0.26 +45.00,0.00,15.00,0.43,1.67,0.24 +15.90,1.00,0.00,0.78,1.57,0.16 +8.90,0.00,0.00,0.38,1.55,0.24 +55.00,0.00,25.00,0.55,1.59,0.22 +56.00,0.00,26.00,0.58,1.78,0.36 +2.00,0.00,0.00,0.93,1.75,0.21 +83.00,0.00,53.00,0.40,1.67,0.27 +84.30,1.00,71.00,0.38,1.58,0.24 +43.00,0.00,13.00,0.54,1.53,0.17 +99.00,0.00,69.00,0.58,1.51,0.17 +27.50,0.00,0.00,0.82,1.56,0.17 +74.00,0.00,44.00,0.56,1.68,0.33 +44.00,0.00,14.00,0.43,1.71,0.26 +53.00,0.00,23.00,0.31,1.55,0.30 +6.30,0.00,0.00,0.74,1.59,0.23 +49.00,0.00,19.00,0.35,1.60,0.26 +90.00,0.00,60.00,0.46,1.65,0.27 +59.00,0.00,29.00,0.38,1.67,0.30 +65.00,0.00,35.00,0.34,1.63,0.28 +0.50,0.00,0.00,0.40,1.58,0.24 +44.00,1.00,26.00,0.78,1.58,0.15 +70.00,0.00,40.00,0.48,1.68,0.24 +61.00,0.00,31.00,0.43,1.72,0.26 +28.80,0.00,0.00,0.58,1.71,0.26 +69.90,1.00,44.00,0.33,1.59,0.31 +46.00,1.00,20.00,0.69,1.50,0.17 +16.30,0.00,0.00,0.73,1.71,0.23 +12.00,0.00,0.00,1.00,1.75,0.25 +93.00,0.00,63.00,0.35,1.66,0.31 +71.00,0.00,41.00,0.36,1.60,0.25 +72.00,0.00,42.00,0.43,1.83,0.39 +63.00,0.00,33.00,0.43,1.70,0.27 +37.00,0.00,7.00,0.56,1.54,0.19 +72.00,0.00,42.00,0.44,1.82,0.39 +83.20,1.00,66.00,0.54,1.65,0.22 +44.00,0.00,14.00,0.61,1.64,0.27 +54.70,1.00,42.00,0.73,1.82,0.43 +30.00,0.00,0.00,0.45,1.68,0.27 +35.20,1.00,9.00,0.44,1.71,0.26 +30.00,0.00,0.00,0.65,1.52,0.19 +87.00,0.00,57.00,0.40,1.58,0.24 +67.80,1.00,52.00,0.46,1.71,0.26 +72.00,0.00,42.00,0.38,1.67,0.28 +49.00,0.00,19.00,0.33,1.72,0.28 +42.00,0.00,12.00,0.72,1.55,0.20 +70.00,0.00,40.00,0.49,1.69,0.24 +13.60,0.00,0.00,0.40,1.68,0.27 +47.00,0.00,17.00,0.33,1.54,0.28 +98.00,0.00,68.00,0.33,1.61,0.31 +66.00,0.00,36.00,0.42,1.84,0.40 +51.80,1.00,36.00,0.59,1.73,0.24 +41.00,0.00,11.00,0.68,1.79,0.24 +30.00,0.00,0.00,0.48,1.65,0.27 +6.60,0.00,0.00,0.68,1.74,0.41 +13.50,0.00,0.00,0.55,1.52,0.18 +45.00,0.00,15.00,0.50,1.65,0.24 +75.00,1.00,60.00,0.58,1.68,0.31 +27.90,0.00,0.00,0.60,1.56,0.20 +69.80,1.00,60.00,0.58,1.68,0.31 +71.00,0.00,41.00,0.53,1.82,0.28 +15.00,0.00,0.00,0.54,1.83,0.29 +87.00,0.00,57.00,0.44,1.68,0.27 +30.00,0.00,0.00,0.37,1.54,0.28 +58.00,0.00,28.00,0.32,1.56,0.27 +106.00,0.00,76.00,0.49,1.66,0.27 +45.00,0.00,15.00,0.74,1.76,0.23 +30.70,1.00,25.00,0.51,1.72,0.32 +45.50,1.00,35.00,0.32,1.60,0.30 +4.50,0.00,0.00,0.99,1.61,0.17 +43.00,0.00,13.00,0.74,1.72,0.23 +44.00,0.00,14.00,1.03,1.78,0.24 +34.00,0.00,4.00,0.42,1.60,0.25 +30.00,0.00,0.00,0.74,1.80,0.39 +44.00,0.00,14.00,0.46,1.67,0.26 +74.60,1.00,71.00,0.38,1.57,0.28 +59.20,1.00,55.00,0.47,1.55,0.27 +7.20,0.00,0.00,0.36,1.65,0.32 +65.30,1.00,48.00,0.50,1.78,0.28 +82.50,1.00,54.00,0.49,1.71,0.30 +16.20,0.00,0.00,0.46,1.67,0.26 +62.80,1.00,39.00,0.59,1.70,0.28 +42.30,1.00,23.00,0.40,1.57,0.24 +22.00,0.00,0.00,0.45,1.75,0.29 +28.30,0.00,0.00,0.76,1.62,0.29 +65.00,0.00,35.00,0.54,1.66,0.30 +82.30,1.00,74.00,0.31,1.58,0.29 +44.00,0.00,14.00,0.56,1.68,0.25 +30.00,0.00,0.00,0.57,1.50,0.16 +39.00,0.00,9.00,0.37,1.65,0.29 +21.30,1.00,0.00,1.17,1.76,0.22 +82.10,1.00,66.00,0.47,1.65,0.24 +30.00,0.00,0.00,0.34,1.52,0.27 +71.00,0.00,41.00,0.58,1.50,0.16 +9.80,0.00,0.00,0.75,1.61,0.22 +28.70,1.00,0.00,0.32,1.53,0.27 +16.40,0.00,0.00,0.45,1.69,0.27 +74.00,0.00,44.00,0.53,1.76,0.27 +30.00,0.00,0.00,0.79,1.74,0.23 +58.00,0.00,28.00,0.34,1.56,0.26 +30.00,0.00,0.00,1.00,1.77,0.21 +56.30,1.00,30.00,0.70,1.55,0.15 +80.70,1.00,58.00,0.61,1.68,0.23 +30.00,0.00,0.00,0.59,1.64,0.24 +40.00,0.00,10.00,0.70,1.54,0.17 +30.00,0.00,0.00,0.87,1.70,0.23 +45.00,0.00,15.00,0.55,1.68,0.23 +43.60,1.00,25.00,1.00,1.77,0.24 +16.40,1.00,0.00,0.80,1.79,0.42 +34.00,0.00,4.00,0.59,1.60,0.25 +79.00,0.00,49.00,0.55,1.58,0.19 +45.00,0.00,15.00,0.44,1.66,0.25 +67.00,0.00,37.00,0.61,1.67,0.23 +76.20,1.00,60.00,0.44,1.62,0.25 +49.00,0.00,19.00,0.72,1.51,0.18 +42.20,1.00,27.00,0.64,1.51,0.19 +51.00,0.00,21.00,0.41,1.68,0.26 +40.70,1.00,15.00,0.55,1.68,0.24 +98.00,0.00,68.00,0.54,1.58,0.19 +30.00,0.00,0.00,0.81,1.79,0.41 +30.00,0.00,0.00,0.35,1.62,0.31 +30.00,0.00,0.00,0.42,1.70,0.26 +66.00,0.00,36.00,0.51,1.66,0.23 +37.00,0.00,7.00,0.74,1.67,0.31 +76.00,0.00,46.00,0.67,1.69,0.23 +47.00,0.00,17.00,0.52,1.81,0.28 +78.00,0.00,48.00,0.44,1.70,0.27 +7.60,0.00,0.00,0.57,1.71,0.24 +61.00,0.00,31.00,0.43,1.72,0.26 +88.00,0.00,58.00,0.63,1.69,0.22 +44.00,0.00,14.00,0.66,1.56,0.23 +39.60,1.00,31.00,0.60,1.55,0.21 +11.40,0.00,0.00,0.44,1.65,0.24 +52.00,0.00,22.00,0.42,1.62,0.25 +63.00,0.00,33.00,0.42,1.70,0.27 +42.00,0.00,12.00,0.59,1.70,0.35 +17.20,0.00,0.00,0.35,1.55,0.27 +108.00,0.00,78.00,0.38,1.60,0.24 +44.00,0.00,14.00,0.50,1.58,0.21 +45.00,0.00,15.00,0.44,1.61,0.25 +50.00,0.00,20.00,0.67,1.50,0.17 +6.60,0.00,0.00,0.62,1.49,0.15 +30.00,0.00,0.00,0.82,1.60,0.18 +53.00,0.00,23.00,0.35,1.59,0.27 +86.00,0.00,56.00,0.50,1.64,0.22 +73.00,0.00,43.00,0.43,1.71,0.26 +80.00,0.00,50.00,0.38,1.66,0.27 +56.00,0.00,26.00,0.54,1.67,0.24 +45.60,1.00,38.00,0.74,1.60,0.26 +65.60,1.00,60.00,0.58,1.69,0.27 +89.00,0.00,59.00,0.56,1.56,0.26 +87.00,0.00,57.00,0.36,1.58,0.26 +20.90,0.00,0.00,0.51,1.57,0.21 +30.00,0.00,0.00,0.45,1.63,0.25 +30.00,0.00,0.00,0.70,1.53,0.15 +11.70,0.00,0.00,0.71,1.55,0.15 +88.00,0.00,58.00,0.55,1.80,0.27 +17.10,1.00,7.00,0.76,1.67,0.29 +64.30,1.00,37.00,0.62,1.77,0.25 +70.00,0.00,40.00,0.39,1.65,0.26 +47.80,1.00,19.00,0.73,1.59,0.20 +61.00,0.00,31.00,0.90,1.70,0.19 +56.00,0.00,26.00,0.53,1.65,0.23 +90.00,0.00,60.00,0.58,1.67,0.27 +61.00,0.00,31.00,0.71,1.52,0.18 +65.30,1.00,44.00,0.54,1.83,0.29 +41.00,0.00,11.00,0.46,1.70,0.27 +44.00,0.00,14.00,0.47,1.71,0.25 +44.00,0.00,14.00,0.53,1.83,0.29 +41.00,0.00,11.00,0.75,1.91,0.25 +5.10,0.00,0.00,0.54,1.80,0.28 +59.10,1.00,42.00,0.66,1.80,0.38 +106.00,0.00,76.00,0.50,1.68,0.28 +85.00,0.00,55.00,0.48,1.61,0.28 +45.00,0.00,15.00,0.67,1.57,0.24 +101.00,0.00,71.00,0.49,1.64,0.25 +26.60,0.00,0.00,0.35,1.64,0.30 +32.50,1.00,20.00,0.42,1.60,0.24 +29.00,0.00,0.00,0.79,1.59,0.15 +61.00,0.00,31.00,0.35,1.60,0.25 +64.00,0.00,34.00,0.40,1.69,0.27 +41.00,0.00,11.00,0.49,1.61,0.27 +52.00,0.00,22.00,0.67,1.54,0.21 +30.00,0.00,0.00,0.49,1.56,0.25 +3.60,0.00,0.00,0.59,1.58,0.26 +36.10,1.00,22.00,0.42,1.62,0.25 +30.00,0.00,0.00,0.57,1.61,0.23 +51.00,0.00,21.00,0.44,1.73,0.27 +52.00,0.00,22.00,0.42,1.66,0.25 +59.80,1.00,39.00,0.46,1.67,0.28 +41.90,1.00,35.00,0.34,1.62,0.29 +64.70,1.00,59.00,0.38,1.82,0.37 +44.00,0.00,14.00,0.63,1.80,0.24 +0.70,0.00,0.00,0.67,1.74,0.41 +18.10,1.00,0.00,0.73,1.52,0.16 +34.00,0.00,4.00,0.61,1.52,0.16 +2.80,0.00,0.00,0.57,1.64,0.24 +63.30,1.00,53.00,0.78,1.65,0.29 +79.00,0.00,49.00,0.70,1.60,0.26 +58.00,0.00,28.00,0.33,1.61,0.30 +3.30,0.00,0.00,0.69,1.59,0.25 +30.00,0.00,0.00,0.39,1.68,0.28 +5.30,0.00,0.00,0.60,1.70,0.28 +64.00,0.00,34.00,0.41,1.70,0.27 +14.80,0.00,0.00,0.36,1.57,0.23 +90.00,0.00,60.00,0.59,1.70,0.27 +47.00,0.00,17.00,0.40,1.56,0.24 +64.00,0.00,34.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.37,1.57,0.25 +30.00,0.00,0.00,0.67,1.64,0.24 +72.00,0.00,42.00,0.31,1.58,0.31 +16.50,0.00,0.00,0.82,1.56,0.17 +44.00,0.00,14.00,0.46,1.70,0.25 +49.00,0.00,19.00,0.33,1.72,0.28 +11.00,0.00,0.00,0.90,1.83,0.41 +31.00,0.00,1.00,0.78,1.58,0.15 +97.00,0.00,67.00,0.60,1.70,0.28 +72.00,0.00,42.00,0.69,1.81,0.39 +72.00,0.00,42.00,0.35,1.65,0.31 +2.10,0.00,0.00,0.36,1.60,0.25 +30.00,0.00,0.00,0.76,1.64,0.24 +74.00,0.00,44.00,0.34,1.63,0.28 +59.00,0.00,29.00,0.58,1.78,0.27 +85.00,0.00,55.00,0.48,1.56,0.27 +30.00,0.00,0.00,0.48,1.61,0.27 +90.60,1.00,76.00,0.34,1.55,0.25 +56.00,0.00,26.00,0.49,1.60,0.27 +101.00,0.00,71.00,0.63,1.58,0.21 +30.00,0.00,0.00,0.98,1.67,0.20 +30.00,0.00,0.00,1.11,1.72,0.22 +23.10,1.00,15.00,0.73,1.75,0.23 +4.00,1.00,0.00,0.88,1.67,0.25 +45.00,0.00,15.00,0.41,1.70,0.27 +69.00,0.00,39.00,0.33,1.59,0.27 +41.00,0.00,11.00,0.46,1.71,0.27 +4.90,1.00,0.00,1.30,1.77,0.27 +12.90,0.00,0.00,0.69,1.54,0.17 +63.00,0.00,33.00,0.45,1.69,0.26 +74.00,0.00,44.00,0.35,1.61,0.28 +39.00,0.00,9.00,0.35,1.53,0.27 +70.00,0.00,40.00,0.38,1.59,0.24 +11.80,0.00,0.00,1.01,1.76,0.31 +43.70,1.00,15.00,0.53,1.67,0.24 +30.00,0.00,0.00,0.68,1.61,0.27 +24.70,0.00,0.00,0.40,1.67,0.26 +9.10,0.00,0.00,0.84,1.60,0.16 +88.00,0.00,58.00,0.42,1.69,0.26 +66.00,0.00,36.00,0.36,1.63,0.28 +40.20,1.00,20.00,0.55,1.54,0.19 +30.00,0.00,0.00,0.64,1.60,0.28 +48.00,0.00,18.00,0.76,1.79,0.38 +4.30,0.00,0.00,0.63,1.55,0.21 +30.00,0.00,0.00,0.70,1.64,0.24 +88.00,0.00,58.00,0.60,1.74,0.24 +59.00,0.00,29.00,0.41,1.67,0.26 +70.50,1.00,46.00,0.31,1.61,0.30 +42.00,0.00,12.00,0.52,1.59,0.19 +50.00,0.00,20.00,0.40,1.57,0.27 +93.00,0.00,63.00,0.56,1.71,0.24 +30.00,0.00,0.00,0.48,1.65,0.27 +86.00,0.00,56.00,0.46,1.72,0.26 +53.00,0.00,23.00,0.42,1.84,0.39 +33.00,0.00,3.00,0.75,1.62,0.24 +83.50,1.00,78.00,0.56,1.67,0.33 +52.00,0.00,22.00,0.42,1.63,0.25 +30.00,0.00,0.00,0.82,1.55,0.20 +14.40,0.00,0.00,0.62,1.59,0.27 +31.00,0.00,1.00,0.61,1.60,0.26 +31.00,1.00,20.00,0.62,1.52,0.18 +25.50,0.00,0.00,0.42,1.54,0.27 +7.60,0.00,0.00,0.58,1.57,0.26 +38.00,0.00,8.00,0.53,1.54,0.17 +63.00,0.00,33.00,0.51,1.65,0.24 +72.00,0.00,42.00,0.57,1.79,0.37 +56.00,0.00,26.00,0.57,1.77,0.35 +44.00,0.00,14.00,0.51,1.60,0.21 +83.00,0.00,53.00,0.62,1.69,0.24 +53.50,1.00,41.00,0.61,1.49,0.15 +63.40,1.00,60.00,0.40,1.66,0.26 +82.90,1.00,58.00,0.54,1.80,0.28 +5.70,0.00,0.00,0.74,1.57,0.17 +69.50,1.00,41.00,0.39,1.59,0.26 +47.00,0.00,17.00,0.51,1.65,0.23 +84.10,1.00,62.00,0.82,1.59,0.18 +9.70,0.00,0.00,0.44,1.61,0.25 +74.00,0.00,44.00,0.38,1.67,0.29 +47.00,0.00,17.00,0.61,1.58,0.22 +56.00,0.00,26.00,0.78,1.57,0.15 +11.30,0.00,0.00,0.72,1.51,0.18 +50.00,0.00,20.00,0.59,1.81,0.26 +30.00,0.00,0.00,0.45,1.63,0.25 +59.00,0.00,29.00,0.52,1.64,0.22 +23.90,0.00,0.00,0.65,1.75,0.34 +59.00,0.00,29.00,0.50,1.63,0.22 +84.00,0.00,54.00,0.50,1.71,0.30 +66.60,1.00,52.00,0.85,1.68,0.19 +34.00,0.00,4.00,0.61,1.52,0.16 +27.60,0.00,0.00,0.94,1.62,0.17 +16.30,0.00,0.00,0.41,1.56,0.25 +83.00,0.00,53.00,0.38,1.67,0.28 +70.00,0.00,40.00,0.50,1.69,0.24 +40.00,0.00,10.00,0.43,1.66,0.25 +40.90,1.00,36.00,0.44,1.77,0.37 +75.00,0.00,45.00,0.56,1.68,0.33 +52.00,0.00,22.00,0.36,1.62,0.26 +30.00,0.00,0.00,0.83,1.81,0.40 +5.80,0.00,0.00,0.53,1.58,0.18 +83.00,0.00,53.00,0.39,1.67,0.28 +95.90,1.00,76.00,0.34,1.55,0.26 +30.00,0.00,0.00,0.73,1.79,0.39 +38.10,1.00,25.00,0.59,1.67,0.28 +72.00,0.00,42.00,0.55,1.73,0.24 +58.00,0.00,28.00,0.33,1.56,0.27 +89.10,1.00,71.00,0.42,1.68,0.25 +30.00,0.00,0.00,0.77,1.64,0.24 +74.00,0.00,44.00,0.32,1.61,0.29 +63.00,0.00,33.00,0.60,1.57,0.23 +69.00,0.00,39.00,0.43,1.57,0.25 +30.00,0.00,0.00,0.41,1.71,0.27 +4.40,0.00,0.00,0.41,1.52,0.27 +45.70,1.00,20.00,0.60,1.53,0.19 +24.30,0.00,0.00,1.01,1.61,0.23 +56.30,1.00,53.00,0.51,1.57,0.21 +3.50,0.00,0.00,0.88,1.71,0.19 +59.00,0.00,29.00,0.62,1.71,0.29 +27.80,0.00,0.00,0.53,1.76,0.27 +47.00,0.00,17.00,0.38,1.67,0.29 +70.00,0.00,40.00,0.40,1.60,0.24 +70.00,0.00,40.00,0.43,1.92,0.42 +87.00,1.00,61.00,0.39,1.69,0.28 +3.20,0.00,0.00,0.88,1.72,0.21 +45.00,0.00,15.00,0.75,1.76,0.24 +94.30,1.00,69.00,0.57,1.51,0.17 +45.00,0.00,15.00,0.55,1.68,0.23 +6.20,0.00,0.00,0.72,1.69,0.23 +30.00,0.00,0.00,0.52,1.81,0.29 +49.00,0.00,19.00,0.53,1.82,0.29 +58.00,0.00,28.00,0.70,1.74,0.36 +14.00,0.00,0.00,0.43,1.73,0.26 +30.00,0.00,0.00,0.72,1.70,0.23 +36.00,0.00,6.00,0.57,1.64,0.24 +30.00,0.00,0.00,0.63,1.54,0.20 +30.00,0.00,0.00,0.72,1.57,0.20 +57.60,1.00,36.00,0.93,1.66,0.19 +40.00,0.00,10.00,0.96,1.76,0.21 +83.00,0.00,53.00,0.51,1.57,0.20 +30.00,0.00,0.00,0.60,1.81,0.25 +7.60,0.00,0.00,0.44,1.62,0.26 +84.00,0.00,54.00,0.45,1.68,0.30 +50.00,0.00,20.00,0.57,1.72,0.25 +66.00,1.00,62.00,0.35,1.73,0.34 +30.00,0.00,0.00,0.62,1.59,0.27 +73.00,0.00,43.00,0.38,1.67,0.28 +83.00,0.00,53.00,0.43,1.69,0.26 +56.50,1.00,39.00,0.37,1.56,0.28 +47.00,0.00,17.00,0.48,1.67,0.25 +4.70,0.00,0.00,0.90,1.70,0.25 +34.10,1.00,25.00,0.93,1.70,0.20 +67.00,0.00,37.00,0.57,1.73,0.31 +48.00,0.00,18.00,0.35,1.66,0.32 +30.00,0.00,0.00,0.81,1.79,0.42 +53.00,0.00,23.00,0.42,1.85,0.40 +44.00,0.00,14.00,0.74,1.99,0.25 +30.00,0.00,0.00,0.75,1.79,0.42 +38.00,0.00,8.00,0.52,1.55,0.18 +63.00,0.00,33.00,0.51,1.65,0.24 +6.10,0.00,0.00,0.70,1.50,0.17 +15.50,0.00,0.00,0.45,1.70,0.27 +7.10,0.00,0.00,0.58,1.68,0.29 +55.00,0.00,25.00,0.41,1.51,0.26 +52.00,0.00,22.00,0.63,1.55,0.21 +30.00,0.00,0.00,0.83,1.66,0.18 +48.00,0.00,18.00,0.59,1.68,0.23 +30.00,0.00,0.00,0.68,1.53,0.17 +66.90,1.00,37.00,0.53,1.71,0.30 +30.00,0.00,0.00,0.66,1.52,0.19 +44.00,0.00,14.00,0.53,1.58,0.19 +30.00,0.00,0.00,0.63,1.54,0.20 +52.00,0.00,22.00,0.38,1.67,0.28 +19.60,0.00,0.00,0.69,1.73,0.34 +90.00,0.00,60.00,0.38,1.56,0.23 +30.00,0.00,0.00,0.55,1.82,0.28 +8.10,0.00,0.00,0.56,1.54,0.20 +50.80,1.00,25.00,0.58,1.57,0.21 +48.00,0.00,18.00,0.39,1.57,0.23 +1.30,0.00,0.00,0.88,1.67,0.25 +63.10,1.00,44.00,0.36,1.66,0.32 +26.20,0.00,0.00,0.62,1.58,0.22 +73.00,0.00,43.00,0.44,1.72,0.26 +56.20,1.00,29.00,0.69,1.62,0.25 +30.00,0.00,0.00,0.55,1.81,0.28 +108.00,0.00,78.00,0.57,1.60,0.22 +3.80,0.00,0.00,0.86,1.70,0.19 +50.00,0.00,20.00,0.44,1.65,0.25 +60.00,0.00,30.00,0.44,1.65,0.24 +64.50,1.00,53.00,0.42,1.69,0.26 +30.00,0.00,0.00,0.60,1.67,0.23 +47.00,0.00,17.00,0.52,1.65,0.23 +45.00,0.00,15.00,0.49,1.65,0.24 +14.50,0.00,0.00,0.61,1.69,0.23 +82.00,0.00,52.00,0.36,1.67,0.31 +56.30,1.00,53.00,0.78,1.65,0.29 +62.00,0.00,32.00,0.35,1.64,0.31 +56.00,0.00,26.00,0.58,1.77,0.35 +69.00,0.00,39.00,0.41,1.63,0.26 +13.80,0.00,0.00,1.25,1.77,0.25 +52.50,1.00,32.00,0.34,1.61,0.32 +43.00,0.00,13.00,0.46,1.66,0.25 +7.50,0.00,0.00,0.40,1.69,0.28 +58.00,0.00,28.00,0.66,1.74,0.34 +10.90,0.00,0.00,0.32,1.60,0.30 +48.00,0.00,18.00,0.32,1.65,0.30 +10.50,0.00,0.00,0.59,1.53,0.19 +10.70,0.00,0.00,0.96,1.76,0.21 +30.00,0.00,0.00,0.66,1.52,0.19 +45.00,0.00,15.00,0.51,1.67,0.24 +70.00,0.00,40.00,0.40,1.60,0.24 +58.00,0.00,28.00,0.34,1.58,0.27 +8.90,0.00,0.00,0.33,1.47,0.26 +54.00,0.00,24.00,0.49,1.70,0.29 +19.80,0.00,0.00,0.82,1.59,0.18 +12.30,0.00,0.00,0.58,1.72,0.24 +28.60,0.00,0.00,0.64,1.71,0.30 +74.00,0.00,44.00,0.36,1.66,0.31 +90.00,0.00,60.00,0.39,1.57,0.23 +66.00,0.00,36.00,0.44,1.71,0.33 +41.00,0.00,11.00,0.69,1.79,0.24 +43.00,0.00,13.00,0.39,1.68,0.28 +48.00,0.00,18.00,0.33,1.65,0.30 +85.00,0.00,55.00,0.39,1.58,0.26 +59.00,0.00,29.00,0.42,1.68,0.26 +91.00,0.00,61.00,0.36,1.64,0.29 +30.00,0.00,0.00,0.39,1.68,0.28 +81.90,1.00,53.00,0.50,1.58,0.21 +15.10,0.00,0.00,0.51,1.64,0.29 +51.30,1.00,42.00,0.84,1.79,0.40 +7.00,0.00,0.00,0.48,1.64,0.22 +65.70,1.00,44.00,0.32,1.64,0.29 +55.00,0.00,25.00,0.45,1.62,0.25 +50.90,1.00,39.00,0.33,1.59,0.27 +42.00,0.00,12.00,0.57,1.63,0.25 +7.40,0.00,0.00,0.60,1.80,0.39 +58.00,0.00,28.00,0.31,1.62,0.28 +52.00,0.00,22.00,0.43,1.60,0.24 +23.40,0.00,0.00,0.80,1.78,0.46 +34.30,1.00,22.00,0.67,1.54,0.21 +51.80,1.00,23.00,0.42,1.79,0.38 +7.00,0.00,0.00,0.88,1.58,0.16 +62.70,1.00,58.00,0.88,1.58,0.16 +45.00,0.00,15.00,0.61,1.52,0.17 +41.00,0.00,11.00,0.65,1.77,0.25 +5.10,0.00,0.00,0.49,1.67,0.24 +30.00,0.00,0.00,0.87,1.80,0.43 +101.00,0.00,71.00,0.64,1.57,0.20 +74.00,0.00,44.00,0.56,1.68,0.33 +16.00,0.00,0.00,0.35,1.66,0.32 +42.00,0.00,12.00,0.52,1.82,0.28 +11.70,0.00,0.00,0.36,1.66,0.30 +18.20,1.00,0.00,1.24,1.74,0.25 +44.00,0.00,14.00,0.62,1.80,0.24 +47.00,0.00,17.00,0.93,1.62,0.17 +67.00,0.00,37.00,0.59,1.74,0.31 +33.00,0.00,3.00,0.46,1.61,0.25 +30.00,0.00,0.00,0.95,1.73,0.24 +9.90,0.00,0.00,0.60,1.67,0.24 +53.00,0.00,23.00,0.31,1.57,0.29 +25.90,0.00,0.00,0.59,1.70,0.27 +101.00,0.00,71.00,0.39,1.61,0.24 +7.20,0.00,0.00,1.17,1.87,0.50 +12.00,1.00,0.00,1.00,1.64,0.30 +72.00,0.00,42.00,0.39,1.68,0.28 +2.90,0.00,0.00,0.59,1.57,0.20 +41.00,0.00,11.00,0.68,1.79,0.24 +52.00,0.00,22.00,0.42,1.66,0.26 +9.80,0.00,0.00,1.03,1.76,0.21 +13.30,0.00,0.00,0.45,1.66,0.25 +63.00,0.00,33.00,0.32,1.65,0.28 +55.00,1.00,52.00,0.47,1.61,0.25 +72.00,0.00,42.00,0.56,1.72,0.24 +58.90,1.00,31.00,0.56,1.56,0.17 +69.00,0.00,39.00,0.44,1.70,0.25 +49.00,0.00,19.00,0.81,1.67,0.24 +30.00,0.00,0.00,0.91,1.68,0.25 +30.00,0.00,0.00,0.44,1.61,0.25 +9.60,0.00,0.00,0.93,1.59,0.17 +53.00,0.00,23.00,0.40,1.69,0.27 +2.10,0.00,0.00,0.44,1.64,0.27 +47.00,0.00,17.00,0.54,1.66,0.24 +83.00,0.00,53.00,0.55,1.65,0.22 +87.00,0.00,57.00,0.49,1.74,0.28 +77.00,0.00,47.00,0.55,1.66,0.23 +7.90,1.00,0.00,1.50,1.73,0.27 +7.40,0.00,0.00,0.84,1.68,0.34 +9.10,0.00,0.00,0.57,1.62,0.23 +88.00,0.00,58.00,0.64,1.69,0.23 +55.30,1.00,33.00,0.54,1.55,0.20 +63.00,0.00,33.00,0.46,1.69,0.26 +66.00,0.00,36.00,0.35,1.60,0.28 +18.60,1.00,0.00,0.70,1.53,0.15 +30.00,0.00,0.00,0.42,1.60,0.24 +66.00,0.00,36.00,0.58,1.72,0.24 +1.20,0.00,0.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.35,1.63,0.31 +16.10,1.00,0.00,0.87,1.71,0.25 +53.00,0.00,23.00,0.42,1.82,0.39 +50.00,0.00,20.00,0.61,1.53,0.19 +48.50,1.00,43.00,0.39,1.65,0.27 +44.00,0.00,14.00,0.54,1.67,0.24 +17.60,0.00,0.00,0.50,1.65,0.29 +87.00,0.00,57.00,0.36,1.57,0.25 +65.00,0.00,35.00,0.34,1.63,0.28 +44.00,0.00,14.00,0.52,1.60,0.21 +100.60,1.00,78.00,0.66,1.54,0.18 +21.10,0.00,0.00,0.79,1.67,0.30 +63.00,0.00,33.00,0.52,1.57,0.20 +62.00,0.00,32.00,0.49,1.56,0.25 +40.00,0.00,10.00,0.90,1.58,0.16 +59.00,0.00,29.00,0.55,1.61,0.23 +92.00,0.00,62.00,0.33,1.60,0.31 +58.70,1.00,42.00,0.84,1.79,0.40 +0.50,0.00,0.00,0.33,1.60,0.31 +65.00,0.00,35.00,0.36,1.64,0.30 +30.00,0.00,0.00,0.60,1.64,0.23 +78.00,0.00,48.00,0.51,1.73,0.27 +72.00,0.00,42.00,0.56,1.72,0.24 +22.90,1.00,17.00,0.64,1.55,0.22 +101.00,0.00,71.00,0.41,1.63,0.24 +22.80,0.00,0.00,0.33,1.57,0.27 +11.40,0.00,0.00,0.39,1.69,0.28 +66.00,0.00,36.00,0.50,1.68,0.24 +6.80,0.00,0.00,0.52,1.55,0.19 +47.00,0.00,17.00,0.90,1.61,0.17 +97.60,1.00,71.00,0.43,1.70,0.26 +22.50,0.00,0.00,0.88,1.70,0.19 +30.00,0.00,0.00,0.42,1.59,0.24 +6.30,0.00,0.00,0.32,1.59,0.31 +25.80,0.00,0.00,0.62,1.58,0.21 +25.20,0.00,0.00,0.54,1.81,0.28 +8.80,0.00,0.00,0.78,1.68,0.24 +17.10,0.00,0.00,0.58,1.53,0.20 +50.00,0.00,20.00,0.62,1.49,0.15 +72.00,0.00,42.00,0.36,1.61,0.26 +81.00,0.00,51.00,0.59,1.57,0.21 +78.00,0.00,48.00,0.49,1.67,0.24 +86.00,0.00,56.00,0.58,1.71,0.23 +22.70,0.00,0.00,0.60,1.55,0.21 +33.00,0.00,3.00,0.54,1.82,0.28 +73.00,0.00,43.00,0.38,1.67,0.28 +83.00,0.00,53.00,0.40,1.67,0.27 +37.40,1.00,31.00,0.91,1.70,0.19 +66.00,0.00,36.00,0.32,1.61,0.29 +30.00,0.00,0.00,0.57,1.50,0.16 +69.00,0.00,39.00,0.43,1.57,0.25 +42.00,0.00,12.00,0.33,1.59,0.27 +91.40,1.00,69.00,0.58,1.51,0.17 +96.00,0.00,66.00,0.47,1.66,0.24 +72.80,1.00,62.00,0.67,1.52,0.19 +48.00,0.00,18.00,0.67,1.50,0.16 +86.00,0.00,56.00,0.56,1.71,0.24 +58.00,0.00,28.00,0.31,1.62,0.28 +11.50,1.00,0.00,0.74,1.64,0.24 +60.80,1.00,42.00,0.57,1.79,0.37 +41.00,0.00,11.00,0.76,1.94,0.25 +42.00,0.00,12.00,0.50,1.82,0.41 +93.40,1.00,68.00,0.40,1.56,0.25 +37.60,1.00,19.00,0.48,1.87,0.42 +8.80,0.00,0.00,0.32,1.60,0.31 +27.50,1.00,20.00,1.24,1.93,0.58 +30.00,0.00,0.00,0.54,1.83,0.29 +67.00,1.00,58.00,0.95,1.62,0.18 +30.00,0.00,0.00,0.47,1.64,0.27 +59.00,0.00,29.00,0.37,1.58,0.24 +30.50,1.00,13.00,0.53,1.53,0.17 +59.00,0.00,29.00,0.39,1.67,0.30 +90.00,0.00,60.00,0.38,1.59,0.24 +87.00,0.00,57.00,0.46,1.73,0.27 +23.90,0.00,0.00,0.69,1.73,0.35 +37.00,0.00,7.00,0.74,1.67,0.31 +44.00,0.00,14.00,0.44,1.71,0.26 +7.90,0.00,0.00,0.33,1.61,0.28 +41.10,1.00,15.00,1.00,1.61,0.17 +78.00,0.00,48.00,0.49,1.67,0.24 +30.00,0.00,0.00,0.48,1.60,0.26 +67.00,0.00,37.00,0.62,1.59,0.27 +60.00,0.00,30.00,0.70,1.55,0.16 +73.70,1.00,57.00,0.46,1.73,0.26 +58.60,1.00,44.00,0.42,1.83,0.39 +45.00,0.00,15.00,0.44,1.67,0.25 +62.60,1.00,62.00,0.68,1.53,0.19 +12.90,0.00,0.00,0.36,1.62,0.26 +30.00,0.00,0.00,0.89,1.82,0.51 +37.50,1.00,37.00,0.49,1.68,0.28 +20.90,0.00,0.00,0.42,1.84,0.40 +83.00,0.00,53.00,0.51,1.58,0.20 +74.00,0.00,44.00,0.32,1.64,0.29 +56.00,0.00,26.00,0.83,1.67,0.34 +74.00,0.00,44.00,0.56,1.60,0.22 +58.00,0.00,28.00,0.32,1.69,0.29 +54.00,0.00,24.00,0.52,1.57,0.19 +53.00,0.00,23.00,0.31,1.55,0.31 +30.00,0.00,0.00,0.37,1.56,0.28 +61.00,0.00,31.00,0.56,1.54,0.18 +52.00,0.00,22.00,0.63,1.55,0.21 +55.00,0.00,25.00,0.59,1.67,0.28 +71.00,0.00,41.00,0.57,1.65,0.25 +8.10,0.00,0.00,0.82,1.56,0.17 +69.00,0.00,39.00,0.54,1.56,0.18 +58.00,0.00,28.00,0.39,1.56,0.28 +64.10,1.00,48.00,0.49,1.68,0.24 +49.30,1.00,23.00,0.39,1.56,0.24 +30.00,0.00,0.00,0.60,1.56,0.20 +30.00,0.00,0.00,0.98,1.75,0.30 +41.20,1.00,41.00,0.55,1.81,0.27 +72.00,0.00,42.00,0.35,1.64,0.30 +69.90,1.00,58.00,0.91,1.60,0.17 +40.00,0.00,10.00,0.48,1.88,0.49 +86.00,0.00,56.00,0.54,1.81,0.28 +51.00,0.00,21.00,0.40,1.67,0.26 +48.00,0.00,18.00,0.47,1.62,0.23 +50.00,0.00,20.00,0.43,1.66,0.24 +87.00,0.00,57.00,0.44,1.68,0.27 +31.00,0.00,1.00,0.54,1.82,0.28 +60.00,0.00,30.00,0.57,1.76,0.25 +33.00,0.00,3.00,0.70,1.76,0.42 +42.00,0.00,12.00,0.52,1.59,0.19 +30.00,0.00,0.00,0.42,1.60,0.24 +45.00,0.00,15.00,0.44,1.65,0.25 +73.00,0.00,43.00,0.43,1.71,0.26 +53.20,1.00,45.00,0.57,1.66,0.26 +30.00,0.00,0.00,0.34,1.51,0.27 +42.00,0.00,12.00,0.61,1.71,0.37 +58.00,0.00,28.00,0.69,1.73,0.35 +59.00,0.00,29.00,0.47,1.65,0.24 +59.00,0.00,29.00,0.42,1.67,0.25 +49.70,1.00,41.00,0.63,1.68,0.23 +64.30,1.00,62.00,0.80,1.54,0.17 +90.00,0.00,60.00,0.58,1.73,0.31 +12.10,0.00,0.00,0.71,1.55,0.15 +53.00,0.00,23.00,0.42,1.83,0.39 +30.00,0.00,0.00,0.32,1.59,0.32 +40.00,0.00,10.00,0.95,1.75,0.21 +56.00,0.00,26.00,0.52,1.65,0.23 +60.00,0.00,30.00,0.49,1.67,0.24 +35.20,1.00,12.00,0.52,1.59,0.19 +30.00,0.00,0.00,0.45,1.63,0.25 +0.80,0.00,0.00,0.60,1.60,0.28 +27.40,1.00,0.00,0.64,1.53,0.16 +106.00,0.00,76.00,0.52,1.70,0.29 +83.00,0.00,53.00,0.44,1.68,0.28 +30.00,0.00,0.00,0.86,1.81,0.40 +56.10,1.00,34.00,0.38,1.57,0.28 +69.00,0.00,39.00,0.51,1.55,0.26 +92.00,0.00,62.00,0.34,1.61,0.31 +39.00,0.00,9.00,0.82,1.61,0.18 +43.00,0.00,13.00,0.39,1.68,0.28 +63.00,0.00,33.00,0.71,1.54,0.20 +41.80,1.00,39.00,0.61,1.55,0.21 +49.00,0.00,19.00,0.72,1.72,0.25 +30.00,0.00,0.00,0.91,1.58,0.21 +19.70,0.00,0.00,0.68,1.50,0.17 +53.30,1.00,33.00,0.58,1.81,0.26 +69.00,0.00,39.00,0.64,1.53,0.20 +63.00,0.00,33.00,0.42,1.70,0.27 +30.00,0.00,0.00,0.36,1.66,0.32 +72.00,0.00,42.00,0.42,1.87,0.40 +101.00,0.00,71.00,0.42,1.68,0.25 +30.00,0.00,0.00,0.79,1.79,0.39 +51.00,0.00,21.00,0.70,1.54,0.15 +48.00,0.00,18.00,0.56,1.68,0.23 +46.00,1.00,32.00,0.61,1.60,0.26 +101.00,0.00,71.00,0.42,1.67,0.25 +19.20,0.00,0.00,0.55,1.54,0.20 +101.00,0.00,71.00,0.37,1.55,0.25 +55.00,0.00,25.00,0.50,1.64,0.23 +85.00,0.00,55.00,0.45,1.53,0.27 +46.00,0.00,16.00,0.58,1.80,0.26 +69.00,0.00,39.00,0.36,1.55,0.28 +10.10,0.00,0.00,0.65,1.69,0.23 +7.70,0.00,0.00,1.09,1.88,0.56 +30.00,0.00,0.00,0.46,1.68,0.26 +43.00,0.00,13.00,0.54,1.53,0.16 +21.70,0.00,0.00,0.64,1.56,0.20 +49.00,0.00,19.00,0.33,1.68,0.27 +44.00,0.00,14.00,0.47,1.70,0.24 +9.40,0.00,0.00,0.36,1.62,0.28 +47.00,0.00,17.00,0.42,1.59,0.24 +18.20,1.00,0.00,1.20,1.88,0.50 +37.00,0.00,7.00,0.60,1.55,0.21 +61.00,0.00,31.00,0.57,1.53,0.19 +94.30,1.00,67.00,0.58,1.67,0.27 +30.00,0.00,0.00,0.42,1.60,0.24 +10.70,0.00,0.00,0.35,1.60,0.27 +57.00,0.00,27.00,0.43,1.66,0.26 +19.60,0.00,0.00,0.75,1.76,0.24 +58.00,0.00,28.00,0.38,1.55,0.28 +30.00,0.00,0.00,0.60,1.63,0.22 +51.00,0.00,21.00,0.65,1.53,0.15 +69.00,0.00,39.00,0.46,1.72,0.27 +30.00,0.00,0.00,0.73,1.79,0.39 +59.30,1.00,37.00,0.61,1.75,0.24 +90.00,0.00,60.00,0.40,1.66,0.27 +56.90,1.00,52.00,0.87,1.70,0.19 +45.00,0.00,15.00,0.43,1.66,0.24 +90.00,0.00,60.00,0.40,1.65,0.25 +30.00,0.00,0.00,0.61,1.55,0.21 +42.00,0.00,12.00,0.34,1.61,0.27 +73.00,0.00,43.00,0.39,1.67,0.28 +64.00,0.00,34.00,0.37,1.64,0.30 +81.00,0.00,51.00,0.33,1.60,0.28 +62.00,1.00,40.00,0.55,1.68,0.23 +59.20,1.00,33.00,0.60,1.67,0.24 +53.00,0.00,23.00,0.40,1.57,0.24 +41.00,0.00,11.00,0.65,1.77,0.25 +30.00,0.00,0.00,0.47,1.69,0.26 +30.00,0.00,0.00,0.82,1.57,0.16 +61.00,0.00,31.00,0.66,1.84,0.25 +15.00,0.00,0.00,0.70,1.74,0.35 +67.70,1.00,51.00,0.32,1.62,0.30 +63.00,0.00,33.00,0.49,1.69,0.25 +67.00,0.00,37.00,0.55,1.72,0.25 +30.00,0.00,0.00,0.63,1.67,0.23 +14.00,1.00,0.00,0.58,1.74,0.32 +72.00,0.00,42.00,0.51,1.75,0.37 +56.00,0.00,26.00,0.56,1.75,0.33 +30.00,0.00,0.00,0.68,1.61,0.27 +30.00,0.00,0.00,0.98,1.76,0.21 +30.00,0.00,0.00,0.46,1.69,0.26 +19.40,0.00,0.00,0.64,1.76,0.35 +66.10,1.00,58.00,0.90,1.59,0.16 +74.40,1.00,58.00,0.64,1.69,0.23 +3.70,0.00,0.00,0.55,1.68,0.23 +35.70,1.00,13.00,0.67,1.74,0.40 +10.10,1.00,0.00,1.00,1.76,0.31 +90.00,0.00,60.00,0.45,1.65,0.26 +33.00,0.00,3.00,0.69,1.67,0.32 +106.00,0.00,76.00,0.33,1.56,0.27 +44.00,0.00,14.00,0.53,1.65,0.23 +27.60,0.00,0.00,0.44,1.68,0.27 +1.80,0.00,0.00,1.22,1.67,0.20 +63.70,1.00,63.00,0.35,1.66,0.31 +74.00,0.00,44.00,0.34,1.61,0.31 +34.70,1.00,31.00,0.49,1.66,0.28 +41.00,0.00,11.00,0.46,1.74,0.27 +52.00,0.00,22.00,0.42,1.62,0.25 +51.00,0.00,21.00,0.35,1.65,0.31 +101.00,0.00,71.00,0.35,1.50,0.27 +49.80,1.00,24.00,0.55,1.56,0.18 +26.70,0.00,0.00,0.39,1.59,0.26 +44.00,0.00,14.00,0.47,1.55,0.27 +30.00,0.00,0.00,0.47,1.68,0.25 +24.70,1.00,14.00,0.66,1.57,0.23 +69.00,0.00,39.00,0.59,1.57,0.21 +101.00,0.00,71.00,0.37,1.56,0.24 +51.00,0.00,21.00,0.34,1.62,0.31 +33.00,0.00,3.00,0.46,1.65,0.26 +73.00,0.00,43.00,0.44,1.72,0.26 +48.80,1.00,27.00,0.76,1.66,0.28 +30.00,0.00,0.00,0.74,1.64,0.24 +49.00,0.00,19.00,0.51,1.64,0.22 +63.00,0.00,33.00,0.78,1.55,0.20 +18.50,0.00,0.00,0.61,1.76,0.25 +24.10,1.00,0.00,0.89,1.82,0.51 +15.10,0.00,0.00,0.63,1.55,0.21 +12.10,0.00,0.00,0.34,1.65,0.30 +7.70,0.00,0.00,0.65,1.71,0.34 +36.20,1.00,35.00,1.01,1.77,0.21 +47.90,1.00,36.00,0.47,1.64,0.27 +45.50,1.00,18.00,0.53,1.55,0.18 +86.00,0.00,56.00,0.53,1.79,0.28 +20.20,0.00,0.00,0.74,1.65,0.27 +96.00,0.00,66.00,0.46,1.69,0.26 +55.00,0.00,25.00,0.44,1.74,0.35 +25.30,0.00,0.00,0.61,1.68,0.23 +38.90,1.00,18.00,0.93,1.72,0.25 +32.80,1.00,19.00,0.81,1.67,0.24 +44.00,0.00,14.00,0.46,1.70,0.25 +4.00,0.00,0.00,0.38,1.59,0.26 +66.00,0.00,36.00,0.36,1.62,0.28 +58.50,1.00,30.00,0.60,1.81,0.26 +50.00,0.00,20.00,0.40,1.57,0.27 +26.60,1.00,18.00,0.61,1.59,0.27 +28.60,0.00,0.00,0.61,1.69,0.23 +30.00,0.00,0.00,0.38,1.58,0.28 +49.00,0.00,19.00,0.71,1.52,0.18 +13.80,0.00,0.00,0.86,1.81,0.50 +0.90,0.00,0.00,0.46,1.66,0.25 +14.30,0.00,0.00,0.42,1.69,0.26 +12.90,0.00,0.00,0.40,1.66,0.26 +30.00,0.00,0.00,1.03,1.77,0.21 +30.00,0.00,0.00,0.52,1.56,0.19 +74.00,0.00,44.00,0.33,1.64,0.29 +25.70,1.00,14.00,0.41,1.51,0.26 +44.00,0.00,14.00,0.62,1.66,0.28 +23.50,1.00,0.00,0.83,1.57,0.16 +48.00,0.00,18.00,0.44,1.61,0.25 +30.20,1.00,7.00,0.52,1.55,0.19 +82.40,1.00,60.00,0.44,1.62,0.26 +53.00,0.00,23.00,0.49,1.71,0.32 +70.00,0.00,40.00,0.38,1.60,0.24 +54.40,1.00,48.00,0.47,1.75,0.28 +60.00,0.00,30.00,0.32,1.71,0.29 +78.00,0.00,48.00,0.45,1.71,0.27 +72.00,0.00,42.00,0.55,1.73,0.24 +49.90,1.00,42.00,0.69,1.80,0.39 +26.90,1.00,0.00,0.35,1.62,0.30 +47.00,0.00,17.00,0.38,1.68,0.29 +43.00,0.00,13.00,0.36,1.67,0.29 +73.00,0.00,43.00,0.38,1.60,0.24 +22.30,0.00,0.00,0.47,1.62,0.23 +66.00,0.00,36.00,0.73,1.69,0.23 +33.00,0.00,3.00,0.70,1.68,0.32 +43.00,0.00,13.00,0.40,1.64,0.25 +30.00,0.00,0.00,0.35,1.63,0.30 +16.70,0.00,0.00,0.51,1.65,0.27 +30.00,0.00,0.00,0.59,1.61,0.25 +51.00,0.00,21.00,0.47,1.69,0.26 +30.00,0.00,0.00,0.61,1.67,0.23 +72.00,0.00,42.00,0.36,1.61,0.25 +64.00,0.00,34.00,0.53,1.66,0.29 +78.00,0.00,48.00,0.52,1.78,0.28 +8.30,1.00,0.00,0.73,1.52,0.16 +74.00,0.00,44.00,0.35,1.62,0.31 +52.00,0.00,22.00,0.68,1.54,0.21 +59.00,0.00,29.00,0.36,1.58,0.24 +101.00,0.00,71.00,0.49,1.63,0.25 +64.00,0.00,34.00,0.52,1.65,0.28 +44.00,0.00,14.00,0.33,1.60,0.32 +30.00,0.00,0.00,0.57,1.56,0.18 +45.00,0.00,15.00,0.43,1.61,0.25 +58.00,0.00,28.00,0.31,1.58,0.28 +11.40,1.00,0.00,0.32,1.47,0.27 +44.00,0.00,14.00,0.64,1.69,0.30 +69.00,0.00,39.00,0.34,1.65,0.28 +37.00,0.00,7.00,0.54,1.54,0.19 +15.90,0.00,0.00,0.73,1.80,0.43 +58.00,0.00,28.00,0.34,1.56,0.26 +12.20,0.00,0.00,0.60,1.74,0.25 +82.00,0.00,52.00,0.51,1.64,0.27 +47.00,0.00,17.00,0.80,1.58,0.16 +13.70,0.00,0.00,0.33,1.55,0.26 +49.00,0.00,19.00,0.41,1.86,0.40 +48.00,0.00,18.00,0.35,1.63,0.33 +40.00,0.00,10.00,0.43,1.66,0.25 +59.00,0.00,29.00,0.49,1.62,0.22 +30.00,0.00,0.00,0.53,1.55,0.18 +85.00,0.00,55.00,0.40,1.57,0.28 +14.60,0.00,0.00,0.32,1.60,0.28 +59.00,0.00,29.00,0.36,1.57,0.24 +63.00,0.00,33.00,0.32,1.66,0.28 +19.80,0.00,0.00,0.35,1.56,0.27 +30.00,0.00,0.00,0.57,1.55,0.17 +78.00,0.00,48.00,0.50,1.78,0.28 +30.00,0.00,0.00,0.58,1.75,0.33 +44.00,0.00,14.00,0.60,1.77,0.24 +70.00,0.00,40.00,0.40,1.58,0.27 +69.00,0.00,39.00,0.45,1.66,0.28 +30.00,0.00,0.00,0.41,1.62,0.24 +42.90,1.00,36.00,0.50,1.65,0.24 +2.20,0.00,0.00,0.41,1.70,0.27 +43.00,0.00,13.00,0.47,1.67,0.25 +66.00,0.00,36.00,0.53,1.71,0.24 +74.00,0.00,44.00,0.53,1.82,0.29 +74.00,0.00,44.00,0.36,1.64,0.32 +40.00,0.00,10.00,0.70,1.55,0.17 +92.00,0.00,62.00,0.33,1.60,0.31 +43.00,0.00,13.00,0.68,1.74,0.41 +45.00,0.00,15.00,0.54,1.69,0.23 +101.00,0.00,71.00,0.41,1.63,0.24 +40.00,0.00,10.00,0.48,1.88,0.49 +40.10,1.00,14.00,0.61,1.63,0.27 +30.00,0.00,0.00,0.69,1.64,0.24 +43.00,0.00,13.00,0.54,1.53,0.16 +50.00,0.00,20.00,0.42,1.71,0.27 +21.30,0.00,0.00,0.55,1.71,0.24 +31.00,0.00,1.00,0.54,1.82,0.28 +74.00,0.00,44.00,0.33,1.61,0.28 +58.00,0.00,28.00,0.31,1.58,0.28 +5.70,0.00,0.00,0.34,1.55,0.25 +63.00,0.00,33.00,0.45,1.69,0.26 +2.80,0.00,0.00,0.54,1.74,0.25 +101.00,0.00,71.00,0.64,1.57,0.20 +13.60,1.00,0.00,1.01,1.77,0.21 +72.00,0.00,42.00,0.83,1.78,0.39 +76.30,1.00,52.00,0.53,1.64,0.30 +95.90,1.00,76.00,0.47,1.65,0.27 +81.00,0.00,51.00,0.46,1.63,0.26 +0.70,0.00,0.00,0.62,1.66,0.28 +30.00,0.00,0.00,0.98,1.76,0.21 +9.30,0.00,0.00,0.64,1.53,0.20 +21.80,0.00,0.00,1.24,1.74,0.25 +30.00,0.00,0.00,0.61,1.75,0.25 +86.00,0.00,56.00,0.57,1.71,0.24 +30.00,0.00,0.00,0.58,1.50,0.16 +52.00,0.00,22.00,0.42,1.60,0.24 +58.00,0.00,28.00,0.36,1.54,0.28 +49.00,0.00,19.00,0.78,1.74,0.25 +38.00,0.00,8.00,0.53,1.54,0.18 +21.30,0.00,0.00,0.85,1.57,0.18 +97.00,0.00,67.00,0.59,1.70,0.27 +10.00,0.00,0.00,0.71,1.82,0.41 +34.00,0.00,4.00,0.62,1.53,0.16 +44.00,0.00,14.00,0.62,1.79,0.24 +69.90,1.00,69.00,0.55,1.52,0.17 +30.00,0.00,0.00,0.45,1.63,0.25 +75.20,1.00,68.00,0.40,1.66,0.26 +13.80,1.00,0.00,1.21,1.92,0.58 +30.00,0.00,0.00,0.54,1.54,0.17 +55.00,0.00,25.00,0.41,1.51,0.27 +62.00,0.00,32.00,0.35,1.64,0.31 +34.00,0.00,4.00,0.59,1.51,0.16 +54.00,0.00,24.00,0.42,1.70,0.26 +48.80,1.00,42.00,0.72,1.82,0.42 +45.50,1.00,23.00,0.71,1.73,0.35 +45.30,1.00,38.00,0.72,1.61,0.27 +30.00,0.00,0.00,0.89,1.62,0.30 +63.00,0.00,33.00,0.32,1.60,0.28 +30.00,0.00,0.00,0.32,1.47,0.27 +51.40,1.00,40.00,0.39,1.59,0.24 +2.90,0.00,0.00,0.56,1.57,0.26 +21.20,1.00,0.00,0.60,1.76,0.33 +42.00,0.00,12.00,0.34,1.62,0.27 +45.00,0.00,15.00,0.46,1.73,0.28 +59.30,1.00,42.00,0.34,1.57,0.25 +38.00,1.00,22.00,0.42,1.60,0.24 +61.00,0.00,31.00,0.72,1.51,0.18 +30.00,0.00,0.00,0.68,1.63,0.25 +64.00,0.00,34.00,0.62,1.56,0.22 +25.20,1.00,10.00,0.36,1.57,0.23 +34.00,0.00,4.00,0.57,1.62,0.25 +30.00,0.00,0.00,1.07,1.76,0.22 +4.40,0.00,0.00,0.61,1.68,0.23 +2.10,0.00,0.00,0.43,1.73,0.27 +72.00,0.00,42.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.89,1.67,0.25 +107.00,0.00,77.00,0.40,1.62,0.24 +11.30,0.00,0.00,0.36,1.63,0.28 +36.10,1.00,17.00,0.40,1.57,0.24 +45.00,0.00,15.00,0.66,1.57,0.23 +45.00,0.00,15.00,0.61,1.52,0.17 +106.00,0.00,76.00,0.46,1.63,0.26 +27.40,1.00,0.00,0.95,1.74,0.28 +0.20,0.00,0.00,0.60,1.50,0.17 +30.00,0.00,0.00,0.82,1.63,0.19 +9.90,0.00,0.00,0.72,1.76,0.36 +30.00,0.00,0.00,0.57,1.73,0.32 +23.30,0.00,0.00,0.47,1.66,0.25 +3.60,0.00,0.00,1.15,1.76,0.22 +44.00,0.00,14.00,0.46,1.54,0.27 +49.00,0.00,19.00,0.42,1.88,0.40 +63.00,0.00,33.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.31,1.58,0.32 +50.00,0.00,20.00,0.78,1.68,0.31 +50.00,1.00,31.00,0.58,1.53,0.19 +71.00,0.00,41.00,0.70,1.68,0.23 +13.60,0.00,0.00,0.69,1.66,0.33 +6.60,0.00,0.00,0.39,1.67,0.27 +69.00,0.00,39.00,0.69,1.53,0.20 +86.00,0.00,56.00,0.43,1.72,0.26 +88.00,0.00,58.00,0.86,1.57,0.16 +72.00,0.00,42.00,0.43,1.71,0.27 +41.00,0.00,11.00,0.72,1.84,0.25 +99.00,1.00,78.00,0.67,1.54,0.18 +98.00,0.00,68.00,0.38,1.64,0.26 +41.20,1.00,36.00,0.44,1.74,0.35 +65.90,1.00,60.00,0.57,1.68,0.30 +47.00,0.00,17.00,0.38,1.68,0.29 +74.00,0.00,44.00,0.36,1.64,0.28 +60.00,0.00,30.00,0.33,1.64,0.29 +58.00,0.00,28.00,0.47,1.68,0.25 +66.00,0.00,36.00,0.43,1.70,0.33 +78.00,0.00,48.00,0.50,1.69,0.25 +60.00,0.00,30.00,0.58,1.59,0.22 +90.00,0.00,60.00,0.57,1.72,0.31 +107.00,0.00,77.00,0.38,1.60,0.25 +83.50,1.00,69.00,0.63,1.50,0.17 +74.00,0.00,44.00,0.54,1.74,0.25 +52.00,0.00,22.00,0.41,1.62,0.25 +27.20,0.00,0.00,0.64,1.51,0.18 +92.00,0.00,62.00,0.62,1.69,0.24 +40.00,0.00,10.00,0.36,1.57,0.24 +52.00,0.00,22.00,0.42,1.63,0.25 +56.30,1.00,35.00,0.34,1.59,0.29 +45.70,1.00,41.00,0.36,1.61,0.25 +65.00,0.00,35.00,0.32,1.59,0.30 +53.00,0.00,23.00,0.47,1.71,0.33 +39.00,0.00,9.00,0.50,1.79,0.39 +81.00,0.00,51.00,0.46,1.63,0.26 +16.00,0.00,0.00,0.73,1.55,0.21 +47.00,0.00,17.00,0.34,1.54,0.28 +48.00,0.00,18.00,0.70,1.69,0.22 +3.40,0.00,0.00,0.62,1.49,0.15 +49.00,1.00,20.00,0.56,1.69,0.23 +73.10,1.00,53.00,0.51,1.58,0.20 +101.00,0.00,71.00,0.37,1.55,0.24 +28.10,0.00,0.00,0.51,1.64,0.29 +78.20,1.00,67.00,0.59,1.70,0.26 +13.70,0.00,0.00,0.54,1.56,0.20 +44.00,0.00,14.00,0.54,1.59,0.18 +48.00,0.00,18.00,0.44,1.61,0.25 +48.00,0.00,18.00,0.66,1.50,0.16 +65.20,1.00,58.00,0.62,1.68,0.23 +18.80,1.00,10.00,1.18,1.76,0.22 +30.00,0.00,0.00,0.31,1.53,0.27 +9.10,0.00,0.00,0.54,1.71,0.31 +77.20,1.00,48.00,0.50,1.70,0.26 +83.20,1.00,55.00,0.38,1.55,0.24 +30.00,0.00,0.00,0.76,1.78,0.44 +70.60,1.00,42.00,0.39,1.69,0.28 +66.00,0.00,36.00,0.32,1.60,0.29 +91.00,0.00,61.00,0.39,1.68,0.28 +12.60,0.00,0.00,1.06,1.75,0.22 +91.00,0.00,61.00,0.36,1.64,0.29 +3.10,1.00,0.00,1.21,1.92,0.58 +30.00,0.00,0.00,0.39,1.57,0.24 +44.00,0.00,14.00,0.65,1.61,0.29 +30.00,0.00,0.00,0.99,1.63,0.18 +97.00,0.00,67.00,0.59,1.69,0.26 +59.10,1.00,39.00,1.04,1.78,0.27 +21.30,0.00,0.00,0.51,1.57,0.20 +94.00,0.00,64.00,0.49,1.78,0.28 +46.00,0.00,16.00,0.46,1.70,0.26 +30.00,0.00,0.00,0.37,1.54,0.27 +5.90,0.00,0.00,0.89,1.82,0.51 +53.00,0.00,23.00,0.38,1.55,0.24 +38.00,0.00,8.00,0.53,1.54,0.18 +37.00,0.00,7.00,0.56,1.54,0.19 +16.80,0.00,0.00,0.84,1.68,0.35 +9.40,0.00,0.00,0.82,1.60,0.18 +47.00,0.00,17.00,0.57,1.74,0.24 +20.00,1.00,10.00,1.14,1.64,0.20 +53.00,0.00,23.00,0.31,1.57,0.31 +67.00,0.00,37.00,0.59,1.62,0.22 +63.90,1.00,48.00,0.50,1.69,0.25 +44.00,0.00,14.00,0.43,1.71,0.26 +29.70,0.00,0.00,0.50,1.63,0.26 +30.00,0.00,0.00,0.60,1.56,0.20 +6.00,1.00,0.00,0.61,1.52,0.18 +34.90,1.00,25.00,0.98,1.76,0.23 +39.00,0.00,9.00,0.40,1.56,0.28 +68.10,1.00,44.00,0.32,1.58,0.31 +29.70,1.00,0.00,0.90,1.58,0.21 +99.00,0.00,69.00,0.59,1.50,0.17 +49.00,0.00,19.00,0.42,1.88,0.40 +30.00,0.00,0.00,0.55,1.61,0.23 +61.00,0.00,31.00,0.33,1.59,0.31 +53.00,0.00,23.00,0.31,1.55,0.30 +67.00,0.00,37.00,0.56,1.73,0.25 +30.00,0.00,0.00,0.83,1.65,0.18 +72.00,0.00,42.00,0.37,1.65,0.28 +32.30,1.00,10.00,0.94,1.74,0.20 +75.00,0.00,45.00,0.64,1.72,0.39 +2.30,0.00,0.00,1.00,1.77,0.21 +71.00,0.00,41.00,0.59,1.50,0.15 +5.60,0.00,0.00,0.60,1.65,0.23 +41.00,0.00,11.00,0.66,1.72,0.40 +30.00,0.00,0.00,0.51,1.57,0.20 +88.80,1.00,77.00,0.39,1.61,0.25 +75.00,0.00,45.00,0.34,1.56,0.25 +84.50,1.00,58.00,0.62,1.74,0.24 +47.90,1.00,35.00,0.99,1.77,0.21 +49.00,1.00,26.00,0.49,1.63,0.25 +30.00,0.00,0.00,0.47,1.64,0.27 +27.10,0.00,0.00,0.32,1.60,0.28 +42.50,1.00,33.00,0.56,1.75,0.25 +52.00,0.00,22.00,0.71,1.54,0.20 +77.00,0.00,47.00,0.55,1.67,0.23 +79.00,0.00,49.00,0.45,1.65,0.26 +73.00,0.00,43.00,0.45,1.74,0.28 +44.20,1.00,30.00,0.71,1.55,0.15 +10.60,0.00,0.00,0.32,1.72,0.29 +30.00,0.00,0.00,0.61,1.55,0.21 +17.90,0.00,0.00,0.72,1.68,0.22 +57.40,1.00,47.00,0.75,1.54,0.20 +30.00,0.00,0.00,0.51,1.57,0.20 +6.90,0.00,0.00,0.90,1.77,0.25 +2.40,0.00,0.00,0.57,1.66,0.22 +27.20,0.00,0.00,0.35,1.62,0.30 +39.00,0.00,9.00,0.49,1.67,0.28 +92.00,0.00,62.00,0.38,1.67,0.29 +30.00,0.00,0.00,0.60,1.56,0.20 +39.00,0.00,9.00,0.38,1.54,0.28 +30.00,0.00,0.00,0.89,1.72,0.20 +91.00,0.00,61.00,0.37,1.66,0.28 +63.00,0.00,33.00,0.62,1.60,0.23 +65.00,0.00,35.00,0.36,1.64,0.29 +61.10,1.00,44.00,0.54,1.74,0.25 +30.00,0.00,0.00,0.66,1.51,0.18 +26.60,1.00,0.00,1.11,1.76,0.24 +83.00,0.00,53.00,0.51,1.58,0.20 +30.00,0.00,0.00,0.71,1.62,0.25 +30.00,0.00,0.00,1.11,1.76,0.24 +85.00,0.00,55.00,0.39,1.57,0.28 +101.00,0.00,71.00,0.43,1.70,0.26 +6.90,1.00,0.00,0.59,1.70,0.28 +30.00,0.00,0.00,0.80,1.66,0.25 +19.10,1.00,0.00,0.90,1.82,0.41 +44.00,0.00,14.00,0.68,1.53,0.19 +30.00,0.00,0.00,0.74,1.64,0.24 +30.00,0.00,0.00,0.82,1.60,0.18 +69.00,0.00,39.00,0.48,1.68,0.29 +57.10,1.00,31.00,0.71,1.52,0.18 +71.50,1.00,53.00,0.43,1.70,0.26 +44.00,0.00,14.00,0.75,1.95,0.25 +43.00,0.00,13.00,0.87,1.76,0.24 +69.00,0.00,39.00,0.66,1.52,0.18 +24.20,1.00,0.00,1.05,1.78,0.30 +57.00,0.00,27.00,0.42,1.68,0.26 +50.00,0.00,20.00,0.53,1.59,0.21 +107.00,0.00,77.00,0.39,1.60,0.25 +38.70,1.00,31.00,0.47,1.64,0.24 +70.00,0.00,40.00,0.52,1.70,0.23 +6.90,0.00,0.00,0.83,1.69,0.22 +44.00,0.00,14.00,0.46,1.70,0.25 +30.00,0.00,0.00,1.00,1.77,0.24 +30.00,0.00,0.00,0.92,1.83,0.42 +30.00,0.00,0.00,0.64,1.50,0.17 +63.00,0.00,33.00,0.50,1.83,0.28 +71.60,1.00,71.00,0.64,1.56,0.20 +29.60,0.00,0.00,0.49,1.63,0.26 +40.00,0.00,10.00,0.45,1.68,0.25 +64.80,1.00,42.00,0.80,1.79,0.39 +20.60,0.00,0.00,0.70,1.52,0.19 +61.00,0.00,31.00,0.64,1.83,0.25 +87.00,0.00,57.00,0.39,1.57,0.24 +80.00,1.00,62.00,0.82,1.59,0.17 +60.60,1.00,34.00,0.33,1.63,0.29 +73.00,0.00,43.00,0.38,1.67,0.28 +48.60,1.00,20.00,0.53,1.72,0.24 +53.00,0.00,23.00,0.46,1.67,0.25 +45.00,0.00,15.00,0.45,1.67,0.25 +52.00,0.00,22.00,0.62,1.56,0.21 +96.00,0.00,66.00,0.47,1.66,0.25 +52.00,0.00,22.00,0.80,1.72,0.25 +50.00,0.00,20.00,0.71,1.53,0.15 +60.00,1.00,34.00,0.39,1.69,0.28 +70.00,0.00,40.00,0.55,1.69,0.23 +30.00,0.00,0.00,1.17,1.76,0.22 +64.00,0.00,34.00,0.38,1.58,0.28 +27.20,0.00,0.00,0.77,1.66,0.28 +58.00,0.00,28.00,0.34,1.56,0.27 +52.00,0.00,22.00,0.82,1.76,0.25 +57.90,1.00,37.00,0.54,1.71,0.31 +54.80,1.00,29.00,0.49,1.62,0.22 +103.20,1.00,74.00,0.36,1.66,0.31 +53.00,0.00,23.00,0.58,1.65,0.26 +93.00,0.00,63.00,0.36,1.68,0.31 +72.00,0.00,42.00,0.43,1.82,0.39 +2.00,0.00,0.00,0.89,1.82,0.51 +43.00,0.00,13.00,0.40,1.69,0.28 +88.00,0.00,58.00,0.63,1.72,0.23 +74.00,0.00,44.00,0.33,1.59,0.31 +63.00,0.00,33.00,0.55,1.54,0.20 +87.00,0.00,57.00,0.46,1.72,0.26 +50.00,0.00,20.00,0.41,1.57,0.27 +26.20,0.00,0.00,1.01,1.78,0.24 +64.50,1.00,41.00,0.58,1.50,0.16 +16.80,1.00,14.00,0.50,1.61,0.21 +30.00,0.00,0.00,0.34,1.61,0.31 +50.00,0.00,20.00,0.41,1.57,0.27 +22.80,0.00,0.00,0.58,1.50,0.16 +6.70,0.00,0.00,0.41,1.57,0.27 +24.00,0.00,0.00,0.68,1.68,0.23 +101.00,0.00,71.00,0.43,1.70,0.26 +17.40,0.00,0.00,0.43,1.71,0.26 +61.80,1.00,58.00,0.62,1.68,0.23 +28.00,1.00,0.00,1.10,1.76,0.23 +8.70,0.00,0.00,0.92,1.63,0.30 +15.60,0.00,0.00,0.69,1.75,0.42 +54.00,0.00,24.00,0.53,1.57,0.18 +30.00,0.00,0.00,0.51,1.65,0.23 +48.00,0.00,18.00,0.52,1.59,0.20 +38.10,1.00,19.00,0.73,1.52,0.18 +53.00,0.00,23.00,0.45,1.69,0.26 +30.00,1.00,18.00,0.42,1.67,0.26 +53.00,0.00,23.00,0.45,1.72,0.33 +49.00,0.00,19.00,0.78,1.75,0.25 +47.00,0.00,17.00,0.38,1.68,0.29 +47.80,1.00,20.00,0.42,1.56,0.25 +44.00,0.00,14.00,0.45,1.65,0.26 +59.00,0.00,29.00,0.58,1.74,0.24 +49.00,0.00,19.00,0.34,1.66,0.27 +85.00,0.00,55.00,0.40,1.58,0.27 +107.00,0.00,77.00,0.38,1.60,0.24 +30.00,0.00,0.00,0.63,1.54,0.20 +41.00,0.00,11.00,0.42,1.65,0.25 +20.90,1.00,0.00,0.74,1.54,0.20 +61.00,0.00,31.00,0.56,1.55,0.17 +58.00,0.00,28.00,0.35,1.55,0.28 +86.00,1.00,57.00,0.46,1.70,0.26 +73.00,0.00,43.00,0.38,1.67,0.28 +68.00,0.00,38.00,0.59,1.73,0.25 +43.00,0.00,13.00,0.44,1.71,0.26 +44.00,0.00,14.00,0.46,1.55,0.27 +85.20,1.00,62.00,0.31,1.58,0.31 +30.00,0.00,0.00,0.81,1.60,0.16 +41.00,0.00,11.00,0.41,1.65,0.25 +44.00,0.00,14.00,0.68,1.58,0.25 +71.80,1.00,53.00,0.76,1.63,0.29 +97.20,1.00,69.00,0.58,1.51,0.17 +50.00,0.00,20.00,0.56,1.69,0.23 +44.00,0.00,14.00,0.67,1.52,0.18 +44.00,0.00,14.00,0.59,1.78,0.26 +30.00,0.00,0.00,0.72,1.89,0.26 +59.00,0.00,29.00,0.58,1.78,0.27 +89.30,1.00,62.00,0.67,1.53,0.19 +30.00,0.00,0.00,0.62,1.56,0.22 +30.00,0.00,0.00,0.64,1.67,0.23 +47.00,0.00,17.00,0.56,1.73,0.24 +36.00,0.00,6.00,0.55,1.59,0.22 +10.10,0.00,0.00,0.78,1.68,0.33 +46.40,1.00,22.00,0.36,1.62,0.26 +26.60,0.00,0.00,0.67,1.57,0.24 +26.50,1.00,18.00,0.44,1.61,0.25 +74.00,0.00,44.00,0.32,1.64,0.29 +43.90,1.00,23.00,0.61,1.70,0.29 +30.00,0.00,0.00,0.78,1.78,0.45 +47.00,0.00,17.00,0.38,1.67,0.29 +43.00,0.00,13.00,0.41,1.69,0.27 +21.00,0.00,0.00,0.62,1.63,0.23 +72.00,0.00,42.00,0.36,1.61,0.25 +96.00,0.00,66.00,0.48,1.63,0.23 +10.50,0.00,0.00,0.96,1.76,0.21 +71.00,0.00,41.00,0.37,1.59,0.26 +3.90,0.00,0.00,0.41,1.56,0.25 +69.00,0.00,39.00,0.46,1.67,0.28 +67.00,0.00,37.00,0.61,1.69,0.23 +49.00,0.00,19.00,0.33,1.73,0.28 +44.00,0.00,14.00,0.43,1.63,0.26 +48.00,0.00,18.00,0.33,1.65,0.29 +30.00,0.00,0.00,0.32,1.59,0.32 +39.00,0.00,9.00,0.37,1.66,0.30 +30.00,0.00,0.00,0.37,1.54,0.28 +30.00,0.00,0.00,0.63,1.54,0.20 +30.00,0.00,0.00,0.74,1.55,0.20 +7.40,0.00,0.00,0.58,1.65,0.27 +60.60,1.00,60.00,0.61,1.74,0.32 +59.80,1.00,49.00,0.45,1.65,0.26 +43.00,0.00,13.00,0.46,1.66,0.25 +15.90,0.00,0.00,0.34,1.66,0.31 +76.90,1.00,62.00,0.44,1.73,0.27 +44.00,0.00,14.00,0.55,1.67,0.24 +74.00,0.00,44.00,0.38,1.76,0.36 +51.00,0.00,21.00,0.46,1.71,0.26 +7.10,0.00,0.00,0.53,1.54,0.17 +50.00,0.00,20.00,0.49,1.64,0.22 +30.00,0.00,0.00,0.67,1.52,0.18 +52.00,0.00,22.00,0.42,1.64,0.26 +50.20,1.00,39.00,0.59,1.68,0.23 +91.00,0.00,61.00,0.37,1.66,0.28 +40.00,0.00,10.00,0.44,1.67,0.25 +108.00,0.00,78.00,0.64,1.54,0.18 +69.00,0.00,39.00,0.63,1.54,0.20 +38.30,1.00,15.00,0.63,1.53,0.16 +37.90,1.00,19.00,0.34,1.64,0.27 +30.00,0.00,0.00,0.79,1.57,0.16 +2.90,0.00,0.00,0.64,1.69,0.23 +47.00,0.00,17.00,0.42,1.56,0.28 +51.00,0.00,21.00,0.39,1.66,0.27 +60.50,1.00,42.00,0.69,1.81,0.39 +14.80,0.00,0.00,0.57,1.53,0.19 +53.00,0.00,23.00,0.30,1.55,0.29 +18.60,0.00,0.00,0.39,1.59,0.24 +50.00,0.00,20.00,0.48,1.67,0.24 +61.00,0.00,31.00,0.34,1.60,0.31 +50.00,0.00,20.00,0.40,1.57,0.27 +2.10,0.00,0.00,0.41,1.65,0.25 +71.30,1.00,71.00,0.37,1.55,0.24 +87.00,0.00,57.00,0.59,1.63,0.25 +30.00,0.00,0.00,0.90,1.72,0.24 +50.00,0.00,20.00,0.53,1.72,0.24 +81.20,1.00,62.00,0.43,1.73,0.27 +25.70,1.00,0.00,1.02,1.77,0.21 +19.70,0.00,0.00,1.01,1.77,0.24 +50.00,0.00,20.00,0.58,1.69,0.26 +23.70,1.00,20.00,0.78,1.68,0.32 +43.00,0.00,13.00,0.53,1.54,0.17 +30.00,0.00,0.00,0.42,1.51,0.26 +86.00,0.00,56.00,0.56,1.71,0.24 +48.10,1.00,39.00,0.61,1.55,0.21 +61.00,0.00,31.00,0.43,1.73,0.26 +91.90,1.00,69.00,0.56,1.52,0.17 +9.80,0.00,0.00,0.48,1.55,0.26 +47.00,0.00,17.00,0.34,1.54,0.28 +71.00,0.00,41.00,0.79,1.57,0.16 +43.00,0.00,13.00,0.46,1.66,0.25 +48.00,0.00,18.00,0.41,1.64,0.25 +45.00,0.00,15.00,0.52,1.67,0.24 +63.00,0.00,33.00,0.62,1.68,0.23 +83.80,1.00,57.00,0.46,1.73,0.26 +30.00,0.00,0.00,0.64,1.53,0.16 +71.00,0.00,41.00,0.37,1.60,0.25 +74.00,0.00,44.00,0.38,1.67,0.29 +85.90,1.00,62.00,0.67,1.52,0.18 +40.00,0.00,10.00,0.75,1.79,0.46 +87.30,1.00,71.00,0.42,1.67,0.25 +99.00,0.00,69.00,0.58,1.51,0.17 +39.00,0.00,9.00,0.38,1.55,0.28 +37.00,0.00,7.00,0.62,1.58,0.21 +100.90,1.00,71.00,0.64,1.57,0.20 +17.70,0.00,0.00,0.49,1.65,0.24 +15.30,0.00,0.00,0.54,1.84,0.29 +30.00,0.00,0.00,0.50,1.56,0.25 +86.90,1.00,57.00,0.35,1.60,0.27 +20.80,0.00,0.00,0.53,1.81,0.29 +29.00,1.00,0.00,0.61,1.60,0.28 +60.00,0.00,30.00,0.45,1.72,0.27 +29.20,0.00,0.00,0.64,1.58,0.20 +30.00,0.00,0.00,0.89,1.82,0.51 +45.00,0.00,15.00,0.45,1.73,0.27 +75.00,0.00,45.00,0.62,1.56,0.22 +44.00,0.00,14.00,0.46,1.60,0.23 +45.00,0.00,15.00,0.53,1.69,0.23 +59.00,0.00,29.00,0.51,1.64,0.22 +30.00,0.00,0.00,0.80,1.79,0.42 +50.00,0.00,20.00,0.42,1.56,0.26 +61.00,0.00,31.00,0.43,1.73,0.26 +0.30,0.00,0.00,0.97,1.84,0.43 +48.00,0.00,18.00,0.35,1.63,0.33 +42.00,0.00,12.00,0.33,1.59,0.27 +57.50,1.00,45.00,0.81,1.65,0.18 +71.00,0.00,41.00,0.64,1.68,0.23 +104.00,0.00,74.00,0.31,1.58,0.29 +55.00,0.00,25.00,0.55,1.59,0.21 +49.00,0.00,19.00,0.51,1.89,0.46 +72.00,0.00,42.00,0.45,1.82,0.39 +72.00,0.00,42.00,0.36,1.60,0.25 +75.00,0.00,45.00,0.57,1.64,0.25 +69.00,0.00,39.00,0.61,1.55,0.21 +33.00,0.00,3.00,0.46,1.62,0.26 +52.00,0.00,22.00,0.65,1.55,0.21 +74.00,0.00,44.00,0.35,1.60,0.27 +32.00,0.00,2.00,0.62,1.58,0.21 +27.40,1.00,0.00,0.50,1.68,0.28 +27.80,0.00,0.00,1.02,1.61,0.18 +30.00,0.00,0.00,0.61,1.55,0.21 +48.00,0.00,18.00,0.47,1.62,0.23 +53.00,0.00,23.00,0.30,1.54,0.29 +83.00,0.00,53.00,0.81,1.67,0.23 +51.00,0.00,21.00,0.70,1.54,0.15 +8.60,0.00,0.00,0.71,1.52,0.16 +27.10,0.00,0.00,0.74,1.60,0.27 +45.90,1.00,39.00,1.05,1.79,0.27 +9.40,1.00,0.00,0.63,1.70,0.24 +79.00,1.00,71.00,0.50,1.62,0.26 +50.00,0.00,20.00,0.42,1.71,0.27 +83.50,1.00,60.00,0.58,1.68,0.30 +40.80,1.00,31.00,0.69,1.53,0.20 +37.50,1.00,33.00,0.42,1.70,0.28 +30.00,0.00,0.00,0.34,1.61,0.31 +44.00,0.00,14.00,0.44,1.71,0.26 +21.60,0.00,0.00,0.51,1.64,0.27 +32.00,0.00,2.00,0.62,1.58,0.22 +11.60,0.00,0.00,0.40,1.58,0.27 +67.90,1.00,62.00,0.63,1.69,0.24 +27.60,1.00,0.00,0.90,1.81,0.44 +50.00,0.00,20.00,0.40,1.58,0.24 +62.10,1.00,62.00,0.82,1.58,0.17 +91.00,0.00,61.00,0.38,1.67,0.28 +48.00,0.00,18.00,0.59,1.68,0.23 +78.00,0.00,48.00,0.49,1.69,0.25 +72.00,0.00,42.00,0.36,1.64,0.29 +63.00,0.00,33.00,0.33,1.62,0.28 +80.00,0.00,50.00,0.37,1.65,0.29 +30.00,0.00,0.00,0.32,1.54,0.27 +40.00,0.00,10.00,0.87,1.58,0.16 +77.30,1.00,61.00,0.34,1.63,0.30 +70.00,0.00,40.00,0.39,1.62,0.25 +69.00,0.00,39.00,0.61,1.55,0.21 +47.50,1.00,42.00,0.37,1.66,0.28 +63.10,1.00,45.00,0.78,1.61,0.18 +58.00,0.00,28.00,0.33,1.57,0.27 +53.60,1.00,32.00,0.68,1.56,0.22 +101.00,0.00,71.00,0.38,1.57,0.26 +73.00,0.00,43.00,0.45,1.76,0.28 +74.50,1.00,48.00,0.50,1.70,0.26 +30.00,0.00,0.00,0.32,1.59,0.32 +46.00,1.00,17.00,0.62,1.54,0.16 +30.00,0.00,0.00,0.94,1.75,0.22 +62.00,0.00,32.00,0.44,1.55,0.25 +41.00,0.00,11.00,0.46,1.72,0.27 +88.00,0.00,58.00,0.61,1.74,0.24 +53.00,0.00,23.00,0.31,1.57,0.31 +70.00,0.00,40.00,0.38,1.59,0.24 +48.00,0.00,18.00,0.35,1.64,0.32 +18.40,0.00,0.00,0.74,1.61,0.28 +66.00,0.00,36.00,0.55,1.70,0.24 +30.00,0.00,0.00,0.74,1.60,0.21 +16.00,0.00,0.00,0.64,1.58,0.21 +26.30,1.00,0.00,0.82,1.64,0.18 +101.00,0.00,71.00,0.40,1.61,0.24 +15.90,0.00,0.00,0.82,1.58,0.17 +3.20,0.00,0.00,0.52,1.58,0.20 +59.00,0.00,29.00,0.42,1.67,0.25 +76.20,1.00,75.00,0.58,1.71,0.26 +72.00,0.00,42.00,0.55,1.69,0.23 +63.00,0.00,33.00,0.39,1.58,0.27 +80.00,0.00,50.00,0.38,1.66,0.27 +44.00,0.00,14.00,0.58,1.63,0.25 +91.00,0.00,61.00,0.37,1.66,0.28 +42.00,0.00,12.00,0.51,1.59,0.19 +2.60,0.00,0.00,0.95,1.74,0.28 +19.00,1.00,15.00,0.45,1.66,0.25 +96.00,0.00,66.00,0.47,1.65,0.24 +66.00,0.00,36.00,0.45,1.70,0.27 +44.00,0.00,14.00,0.36,1.55,0.28 +101.00,0.00,71.00,0.37,1.55,0.24 +50.00,0.00,20.00,0.63,1.52,0.19 +46.30,1.00,19.00,0.84,1.71,0.24 +85.00,0.00,55.00,0.48,1.61,0.27 +31.70,1.00,31.00,0.69,1.73,0.36 +88.00,0.00,58.00,0.64,1.69,0.23 +85.00,0.00,55.00,0.40,1.57,0.28 +67.40,1.00,62.00,0.53,1.84,0.29 +58.00,0.00,28.00,0.34,1.56,0.27 +75.00,0.00,45.00,0.34,1.56,0.25 +59.00,0.00,29.00,0.47,1.64,0.24 +107.00,0.00,77.00,0.40,1.62,0.24 +44.00,0.00,14.00,0.81,1.79,0.47 +30.00,0.00,0.00,0.45,1.53,0.27 +38.50,1.00,13.00,0.62,1.58,0.22 +63.00,0.00,33.00,0.49,1.69,0.25 +20.90,1.00,0.00,0.99,1.68,0.20 +61.00,0.00,31.00,0.52,1.67,0.29 +1.90,0.00,0.00,0.72,1.84,0.25 +101.00,0.00,71.00,0.40,1.61,0.24 +22.30,0.00,0.00,0.82,1.68,0.22 +30.00,0.00,0.00,0.32,1.56,0.27 +17.70,1.00,10.00,1.21,1.76,0.23 +5.20,0.00,0.00,0.55,1.54,0.19 +10.10,0.00,0.00,1.16,1.73,0.23 +6.10,0.00,0.00,0.38,1.55,0.28 +30.00,0.00,0.00,0.79,1.79,0.39 +30.00,0.00,0.00,0.57,1.58,0.22 +101.00,0.00,71.00,0.64,1.57,0.20 +40.50,1.00,31.00,0.67,1.72,0.35 +55.00,0.00,25.00,0.40,1.85,0.41 +31.00,0.00,1.00,0.65,1.61,0.27 +30.00,0.00,0.00,0.59,1.63,0.25 +92.00,0.00,62.00,0.40,1.70,0.27 +6.10,0.00,0.00,0.83,1.69,0.25 +72.00,0.00,42.00,0.55,1.80,0.27 +88.00,1.00,60.00,0.58,1.69,0.28 +69.40,1.00,62.00,0.44,1.73,0.27 +48.00,0.00,18.00,0.45,1.64,0.25 +18.80,0.00,0.00,0.60,1.55,0.21 +88.00,0.00,58.00,0.42,1.69,0.26 +56.00,0.00,26.00,0.79,1.59,0.15 +55.00,0.00,25.00,0.41,1.51,0.26 +45.00,0.00,15.00,0.44,1.67,0.25 +53.90,1.00,42.00,0.64,1.79,0.37 +74.00,0.00,44.00,0.37,1.72,0.34 +2.70,0.00,0.00,0.58,1.68,0.33 +33.30,1.00,10.00,0.80,1.60,0.18 +69.00,0.00,39.00,0.61,1.55,0.21 +74.00,0.00,44.00,0.38,1.67,0.28 +71.40,1.00,60.00,0.58,1.69,0.27 +30.00,0.00,0.00,0.45,1.71,0.27 +21.10,0.00,0.00,0.63,1.71,0.34 +16.70,0.00,0.00,0.94,1.75,0.22 +5.90,0.00,0.00,0.66,1.51,0.17 +5.80,0.00,0.00,0.86,1.63,0.18 +45.00,0.00,15.00,0.63,1.53,0.16 +75.00,0.00,45.00,0.34,1.56,0.25 +95.80,1.00,78.00,0.62,1.53,0.18 +57.00,1.00,36.00,0.52,1.70,0.24 +98.00,0.00,68.00,0.37,1.64,0.28 +88.00,0.00,58.00,0.63,1.68,0.23 +44.00,0.00,14.00,0.63,1.55,0.21 +98.00,0.00,68.00,0.39,1.64,0.26 +93.70,1.00,71.00,0.52,1.65,0.26 +61.00,0.00,31.00,0.43,1.72,0.26 +84.50,1.00,69.00,0.56,1.52,0.17 +96.00,0.00,66.00,0.52,1.64,0.22 +58.00,0.00,28.00,0.39,1.58,0.27 +57.20,1.00,42.00,0.37,1.64,0.26 +57.00,0.00,27.00,0.45,1.73,0.26 +70.00,0.00,40.00,0.39,1.63,0.25 +23.20,0.00,0.00,0.33,1.57,0.27 +53.00,0.00,23.00,0.52,1.72,0.32 +66.00,0.00,36.00,0.48,1.65,0.27 +42.00,0.00,12.00,0.51,1.59,0.19 +4.30,0.00,0.00,0.62,1.68,0.23 +92.00,0.00,62.00,0.35,1.62,0.30 +45.80,1.00,37.00,0.88,1.72,0.20 +53.00,0.00,23.00,0.44,1.61,0.25 +50.00,0.00,20.00,0.74,1.52,0.18 +47.00,0.00,17.00,0.38,1.68,0.29 +74.00,0.00,44.00,0.37,1.72,0.34 +48.00,0.00,18.00,0.41,1.64,0.25 +43.00,0.00,13.00,0.44,1.71,0.26 +98.00,0.00,68.00,0.37,1.64,0.27 +30.00,0.00,0.00,0.56,1.73,0.32 +30.00,0.00,0.00,0.37,1.56,0.25 +87.00,0.00,57.00,0.47,1.73,0.26 +39.00,1.00,21.00,0.86,1.58,0.18 +5.70,0.00,0.00,0.49,1.60,0.27 +2.60,0.00,0.00,0.44,1.72,0.26 +72.00,0.00,42.00,0.36,1.64,0.29 +30.00,0.00,0.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.48,1.64,0.27 +59.00,0.00,29.00,0.36,1.57,0.24 +61.00,0.00,31.00,0.35,1.60,0.25 +14.10,0.00,0.00,0.59,1.57,0.20 +37.90,1.00,37.00,0.89,1.72,0.20 +56.00,0.00,26.00,0.57,1.77,0.35 +90.20,1.00,66.00,0.52,1.64,0.22 +61.80,1.00,57.00,0.36,1.57,0.25 +35.00,0.00,5.00,0.39,1.65,0.27 +20.10,1.00,10.00,1.11,1.63,0.19 +56.00,0.00,26.00,0.53,1.66,0.23 +35.00,0.00,5.00,0.32,1.59,0.32 +21.60,1.00,4.00,0.58,1.51,0.16 +69.00,0.00,39.00,0.33,1.59,0.27 +47.00,0.00,17.00,0.88,1.59,0.17 +45.00,0.00,15.00,0.54,1.68,0.24 +45.00,0.00,15.00,0.44,1.72,0.27 +78.00,0.00,48.00,0.48,1.77,0.28 +92.00,0.00,62.00,0.82,1.57,0.17 +53.00,0.00,23.00,0.42,1.70,0.26 +42.00,0.00,12.00,0.58,1.69,0.27 +45.00,0.00,15.00,0.67,1.58,0.24 +60.10,1.00,31.00,0.66,1.61,0.28 +74.50,1.00,68.00,0.37,1.64,0.27 +30.00,0.00,0.00,0.62,1.51,0.18 +40.00,0.00,10.00,0.45,1.68,0.25 +13.70,0.00,0.00,0.38,1.61,0.25 +2.50,0.00,0.00,0.77,1.60,0.23 +25.70,0.00,0.00,0.84,1.79,0.40 +12.40,0.00,0.00,0.43,1.64,0.27 +6.70,0.00,0.00,0.80,1.60,0.18 +81.00,0.00,51.00,0.32,1.63,0.30 +43.00,0.00,13.00,0.36,1.66,0.29 +30.00,0.00,0.00,1.07,1.75,0.21 +51.00,0.00,21.00,0.40,1.66,0.27 +53.00,0.00,23.00,0.44,1.76,0.37 +30.00,0.00,0.00,0.48,1.65,0.27 +28.50,1.00,0.00,0.76,1.59,0.23 +12.00,0.00,0.00,0.82,1.59,0.17 +44.00,0.00,14.00,0.65,1.90,0.25 +25.50,0.00,0.00,0.72,1.72,0.25 +59.00,0.00,29.00,0.47,1.65,0.24 +15.10,0.00,0.00,0.53,1.66,0.29 +55.00,0.00,25.00,0.51,1.65,0.22 +76.00,0.00,46.00,0.33,1.56,0.27 +44.00,0.00,14.00,0.53,1.59,0.19 +106.00,0.00,76.00,0.51,1.69,0.28 +63.00,0.00,33.00,0.66,1.73,0.40 +30.00,0.00,0.00,0.84,1.66,0.18 +74.00,0.00,44.00,0.32,1.63,0.29 +42.00,0.00,12.00,0.50,1.64,0.22 +14.10,1.00,0.00,0.73,1.80,0.43 +44.00,0.00,14.00,0.45,1.54,0.27 +45.70,1.00,29.00,0.63,1.71,0.30 +3.20,0.00,0.00,0.33,1.59,0.28 +44.00,0.00,14.00,0.56,1.68,0.25 +30.00,0.00,0.00,0.62,1.55,0.21 +96.90,1.00,68.00,0.36,1.63,0.29 +3.80,0.00,0.00,0.63,1.58,0.21 +59.00,0.00,29.00,0.41,1.67,0.25 +52.00,0.00,22.00,0.38,1.67,0.28 +74.00,0.00,44.00,0.33,1.61,0.28 +44.00,0.00,14.00,0.48,1.70,0.24 +11.80,0.00,0.00,0.68,1.68,0.23 +83.70,1.00,69.00,0.62,1.50,0.17 +51.00,0.00,21.00,0.62,1.56,0.21 +43.00,0.00,13.00,0.54,1.53,0.17 +92.20,1.00,76.00,0.48,1.65,0.27 +61.00,0.00,31.00,0.33,1.61,0.27 +1.40,0.00,0.00,0.43,1.78,0.38 +15.20,0.00,0.00,0.56,1.71,0.24 +53.00,0.00,23.00,0.50,1.72,0.32 +39.50,1.00,37.00,1.03,1.77,0.20 +37.00,0.00,7.00,0.45,1.69,0.31 +104.00,0.00,74.00,0.31,1.58,0.29 +57.70,1.00,41.00,0.60,1.49,0.15 +18.40,0.00,0.00,0.84,1.67,0.25 +30.00,0.00,0.00,0.81,1.70,0.23 +45.00,0.00,15.00,0.41,1.61,0.25 +58.00,0.00,28.00,0.32,1.64,0.28 +62.20,1.00,54.00,0.49,1.71,0.30 +71.00,0.00,41.00,0.41,1.86,0.40 +32.10,1.00,21.00,0.56,1.54,0.20 +73.00,0.00,43.00,0.39,1.65,0.27 +47.00,0.00,17.00,0.46,1.69,0.26 +67.00,0.00,37.00,0.59,1.83,0.26 +29.60,1.00,11.00,0.71,1.82,0.24 +59.00,0.00,29.00,0.77,1.66,0.28 +49.00,0.00,19.00,0.79,1.55,0.17 +37.50,1.00,34.00,0.41,1.70,0.27 +29.40,0.00,0.00,0.39,1.61,0.24 +71.60,1.00,46.00,0.70,1.69,0.22 +28.80,1.00,0.00,0.82,1.66,0.25 +47.00,0.00,17.00,0.53,1.66,0.24 +14.60,0.00,0.00,0.55,1.71,0.31 +59.00,0.00,29.00,0.50,1.63,0.22 +23.50,0.00,0.00,0.50,1.58,0.21 +30.00,0.00,0.00,0.55,1.63,0.25 +9.40,0.00,0.00,0.77,1.63,0.29 +2.40,0.00,0.00,0.82,1.55,0.18 +83.00,0.00,53.00,0.52,1.56,0.20 +58.00,0.00,28.00,0.32,1.66,0.28 +30.00,0.00,0.00,0.93,1.69,0.25 +87.00,0.00,57.00,0.44,1.68,0.27 +29.40,1.00,24.00,0.65,1.56,0.21 +65.00,0.00,35.00,0.35,1.66,0.28 +78.00,0.00,48.00,0.46,1.71,0.27 +89.00,0.00,59.00,0.39,1.82,0.38 +47.20,1.00,25.00,0.55,1.60,0.22 +82.00,0.00,52.00,0.52,1.64,0.29 +15.40,0.00,0.00,0.70,1.73,0.34 +26.10,1.00,12.00,0.33,1.59,0.27 +51.00,0.00,21.00,0.33,1.60,0.30 +30.00,0.00,0.00,0.58,1.78,0.27 +72.00,0.00,42.00,0.37,1.65,0.28 +58.00,0.00,28.00,0.32,1.65,0.28 +44.00,0.00,14.00,0.74,1.97,0.25 +17.70,0.00,0.00,0.43,1.72,0.26 +101.00,0.00,71.00,0.35,1.50,0.27 +64.00,0.00,34.00,0.41,1.71,0.27 +30.00,0.00,0.00,0.32,1.54,0.27 +80.00,0.00,50.00,0.38,1.66,0.28 +99.90,1.00,77.00,0.39,1.61,0.25 +101.00,0.00,71.00,0.51,1.79,0.28 +90.00,1.00,68.00,0.36,1.63,0.30 +10.60,0.00,0.00,0.40,1.69,0.27 +15.50,0.00,0.00,1.49,1.73,0.27 +65.30,1.00,43.00,0.61,1.68,0.23 +25.70,1.00,4.00,0.59,1.60,0.25 +53.00,0.00,23.00,0.68,1.57,0.22 +32.00,0.00,2.00,0.56,1.65,0.24 +40.00,0.00,10.00,0.91,1.59,0.17 +59.00,0.00,29.00,0.70,1.72,0.25 +19.30,0.00,0.00,0.45,1.71,0.27 +101.30,1.00,78.00,0.65,1.54,0.18 +1.20,0.00,0.00,1.28,1.94,0.59 +30.00,0.00,0.00,0.60,1.63,0.25 +46.30,1.00,42.00,0.69,1.81,0.39 +56.00,0.00,26.00,0.37,1.67,0.31 +59.60,1.00,53.00,0.52,1.58,0.20 +47.00,0.00,17.00,0.51,1.71,0.30 +25.20,0.00,0.00,0.71,1.74,0.36 +5.20,0.00,0.00,0.95,1.84,0.53 +30.00,0.00,0.00,0.62,1.54,0.20 +89.00,1.00,62.00,0.82,1.58,0.17 +43.00,0.00,13.00,0.41,1.68,0.26 +49.00,0.00,19.00,0.32,1.63,0.30 +0.20,0.00,0.00,0.59,1.60,0.22 +30.00,0.00,0.00,0.65,1.53,0.16 +30.00,0.00,0.00,0.69,1.61,0.27 +107.00,0.00,77.00,0.38,1.60,0.25 +46.00,0.00,16.00,0.55,1.72,0.25 +66.00,0.00,36.00,0.32,1.62,0.29 +80.00,0.00,50.00,0.38,1.66,0.28 +32.80,1.00,24.00,0.40,1.84,0.40 +86.00,0.00,56.00,0.52,1.71,0.26 +67.00,0.00,37.00,1.05,1.75,0.21 +18.50,0.00,0.00,0.32,1.58,0.31 +43.00,0.00,13.00,0.44,1.73,0.28 +78.00,0.00,48.00,0.46,1.71,0.27 +30.00,0.00,0.00,0.32,1.55,0.27 +30.00,0.00,0.00,0.58,1.60,0.25 +32.00,0.00,2.00,0.59,1.67,0.24 +76.00,0.00,46.00,0.70,1.69,0.22 +89.00,0.00,59.00,0.38,1.82,0.37 +82.00,0.00,52.00,0.53,1.65,0.30 +63.00,0.00,33.00,0.31,1.58,0.29 +86.50,1.00,60.00,0.59,1.74,0.32 +16.40,0.00,0.00,0.65,1.51,0.18 +21.00,1.00,0.00,1.36,1.83,0.34 +30.00,0.00,0.00,0.53,1.90,0.48 +5.00,0.00,0.00,0.60,1.68,0.23 +40.00,0.00,10.00,0.36,1.57,0.24 +2.30,0.00,0.00,1.13,1.77,0.27 +66.00,0.00,36.00,0.54,1.71,0.24 +59.00,0.00,29.00,0.64,1.77,0.25 +15.10,0.00,0.00,0.90,1.67,0.26 +43.00,0.00,13.00,0.44,1.66,0.24 +55.00,0.00,25.00,0.40,1.83,0.39 +23.70,0.00,0.00,0.86,1.71,0.23 +54.00,0.00,24.00,0.55,1.56,0.18 +30.00,0.00,0.00,0.32,1.71,0.29 +79.00,0.00,49.00,0.47,1.74,0.28 +31.80,1.00,10.00,1.06,1.70,0.21 +75.90,1.00,48.00,0.50,1.69,0.25 +32.00,0.00,2.00,0.49,1.56,0.25 +2.80,0.00,0.00,0.46,1.70,0.27 +69.00,0.00,39.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.80,1.59,0.16 +47.00,0.00,17.00,0.85,1.59,0.16 +60.00,0.00,30.00,0.44,1.65,0.24 +45.00,0.00,15.00,0.44,1.73,0.27 +30.00,0.00,0.00,0.89,1.67,0.26 +51.00,0.00,21.00,0.53,1.66,0.29 +86.70,1.00,59.00,0.41,1.85,0.40 +17.80,0.00,0.00,0.41,1.57,0.27 +30.00,0.00,0.00,0.82,1.80,0.40 +35.00,1.00,7.00,0.52,1.56,0.19 +6.40,1.00,0.00,1.26,1.77,0.25 +85.00,0.00,55.00,0.40,1.57,0.28 +30.00,0.00,0.00,0.42,1.62,0.24 +45.30,1.00,21.00,0.71,1.74,0.25 +83.00,0.00,53.00,0.78,1.65,0.29 +71.00,0.00,41.00,0.80,1.68,0.24 +59.00,0.00,29.00,0.36,1.58,0.24 +1.70,0.00,0.00,0.34,1.55,0.25 +61.00,0.00,31.00,0.45,1.63,0.24 +41.00,0.00,11.00,0.67,1.78,0.25 +92.00,0.00,62.00,0.36,1.63,0.30 +84.20,1.00,62.00,0.67,1.52,0.19 +82.00,0.00,52.00,0.51,1.64,0.29 +42.00,0.00,12.00,0.55,1.62,0.25 +76.00,0.00,46.00,0.34,1.55,0.27 +94.50,1.00,68.00,0.42,1.70,0.26 +30.00,0.00,0.00,0.32,1.59,0.31 +53.00,0.00,23.00,0.40,1.68,0.27 +92.00,0.00,62.00,0.40,1.70,0.27 +30.00,0.00,0.00,0.46,1.73,0.27 +59.00,0.00,29.00,0.37,1.58,0.24 +68.00,0.00,38.00,0.45,1.71,0.28 +10.90,0.00,0.00,0.41,1.62,0.24 +37.00,0.00,7.00,0.51,1.57,0.20 +70.00,0.00,40.00,0.39,1.65,0.26 +40.00,0.00,10.00,0.92,1.73,0.20 +98.00,0.00,68.00,0.37,1.64,0.27 +65.00,0.00,35.00,0.82,1.60,0.16 +83.00,0.00,53.00,0.45,1.73,0.28 +43.00,0.00,13.00,0.68,1.74,0.41 +53.00,0.00,23.00,0.44,1.73,0.34 +38.00,0.00,8.00,0.82,1.60,0.17 +22.40,1.00,0.00,1.09,1.63,0.23 +91.00,0.00,61.00,0.34,1.60,0.28 +34.20,1.00,19.00,0.66,1.74,0.40 +21.20,0.00,0.00,0.93,1.74,0.22 +13.70,0.00,0.00,0.43,1.53,0.27 +8.30,0.00,0.00,0.78,1.57,0.16 +30.00,0.00,0.00,0.41,1.62,0.24 +30.00,0.00,0.00,0.65,1.53,0.20 +44.20,1.00,19.00,0.87,1.71,0.25 +43.00,0.00,13.00,0.40,1.69,0.28 +61.00,0.00,31.00,0.43,1.72,0.26 +63.00,0.00,33.00,0.60,1.57,0.23 +25.40,0.00,0.00,0.92,1.73,0.24 +34.00,0.00,4.00,0.36,1.66,0.32 +50.50,1.00,42.00,0.51,1.75,0.37 +69.00,1.00,58.00,0.86,1.57,0.16 +66.00,0.00,36.00,0.32,1.59,0.28 +30.00,0.00,0.00,0.69,1.61,0.28 +47.00,0.00,17.00,0.66,1.56,0.21 +90.00,0.00,60.00,0.62,1.76,0.33 +58.00,0.00,28.00,0.34,1.59,0.27 +29.30,1.00,10.00,0.96,1.76,0.21 +37.00,0.00,7.00,0.52,1.55,0.19 +82.00,0.00,52.00,0.53,1.65,0.30 +1.50,0.00,0.00,0.41,1.62,0.24 +44.00,0.00,14.00,0.45,1.65,0.26 +107.00,0.00,77.00,0.38,1.61,0.25 +19.90,0.00,0.00,0.88,1.60,0.17 +35.90,1.00,29.00,0.40,1.68,0.29 +11.20,0.00,0.00,0.87,1.81,0.49 +65.00,0.00,35.00,0.34,1.62,0.29 +44.30,1.00,39.00,0.63,1.54,0.20 +30.00,0.00,0.00,0.64,1.67,0.23 +31.00,0.00,1.00,0.37,1.66,0.30 +47.00,0.00,17.00,0.58,1.53,0.19 +14.40,0.00,0.00,0.59,1.51,0.16 +6.50,1.00,0.00,0.76,1.62,0.21 +46.00,0.00,16.00,0.37,1.55,0.28 +63.00,0.00,33.00,0.45,1.69,0.26 +66.00,0.00,36.00,0.55,1.81,0.27 +28.50,1.00,20.00,1.04,1.86,0.54 +88.20,1.00,76.00,0.47,1.65,0.27 +44.00,0.00,14.00,0.56,1.68,0.25 +8.20,1.00,0.00,0.77,1.78,0.44 +52.50,1.00,35.00,0.35,1.64,0.31 +45.00,1.00,24.00,0.49,1.70,0.29 +87.00,0.00,57.00,0.44,1.69,0.25 +70.00,0.00,40.00,0.39,1.64,0.25 +65.00,0.00,35.00,0.90,1.73,0.20 +15.70,0.00,0.00,0.86,1.69,0.19 +87.70,1.00,67.00,0.59,1.70,0.27 +44.00,0.00,14.00,0.43,1.63,0.26 +3.90,0.00,0.00,0.53,1.57,0.18 +91.00,0.00,61.00,0.39,1.68,0.28 +38.00,0.00,8.00,0.53,1.55,0.18 +4.80,0.00,0.00,0.41,1.56,0.25 +45.00,0.00,15.00,0.61,1.52,0.17 +86.00,0.00,56.00,0.60,1.69,0.23 +41.00,0.00,11.00,0.79,1.54,0.18 +71.00,0.00,41.00,0.37,1.60,0.25 +60.00,0.00,30.00,0.43,1.67,0.24 +61.00,0.00,31.00,0.43,1.73,0.27 +44.00,0.00,14.00,0.53,1.59,0.18 +83.00,0.00,53.00,0.82,1.68,0.23 +24.60,0.00,0.00,0.49,1.64,0.28 +77.60,1.00,62.00,0.41,1.71,0.27 +30.00,0.00,0.00,0.45,1.63,0.25 +21.90,0.00,0.00,0.37,1.71,0.34 +50.00,0.00,20.00,0.56,1.60,0.22 +70.00,1.00,49.00,0.61,1.52,0.18 +51.00,0.00,21.00,0.60,1.59,0.23 +35.00,0.00,5.00,0.57,1.64,0.25 +101.00,0.00,71.00,0.64,1.57,0.20 +6.10,1.00,0.00,0.32,1.60,0.31 +63.30,1.00,55.00,0.47,1.55,0.27 +20.50,0.00,0.00,0.70,1.52,0.15 +69.00,0.00,39.00,0.61,1.55,0.21 +31.70,1.00,10.00,0.36,1.57,0.23 +66.00,0.00,36.00,0.42,1.85,0.40 +59.10,1.00,44.00,0.38,1.66,0.29 +72.00,0.00,42.00,0.43,1.71,0.27 +58.00,0.00,28.00,0.69,1.73,0.35 +43.00,0.00,13.00,0.36,1.66,0.29 +48.00,0.00,18.00,0.54,1.53,0.17 +48.00,0.00,18.00,0.66,1.50,0.16 +79.40,1.00,68.00,0.51,1.83,0.29 +74.00,0.00,44.00,0.53,1.76,0.27 +58.20,1.00,58.00,0.85,1.57,0.16 +5.20,0.00,0.00,0.36,1.64,0.28 +42.50,1.00,20.00,0.96,1.84,0.52 +92.00,0.00,62.00,0.67,1.52,0.19 +47.00,0.00,17.00,0.53,1.73,0.24 +83.00,0.00,53.00,0.43,1.70,0.26 +50.00,0.00,20.00,0.40,1.57,0.27 +63.00,0.00,33.00,0.32,1.66,0.28 +52.00,0.00,22.00,0.42,1.67,0.25 +4.30,0.00,0.00,0.38,1.66,0.28 +23.80,0.00,0.00,0.34,1.62,0.32 +63.00,0.00,33.00,0.60,1.58,0.23 +30.00,0.00,0.00,0.52,1.70,0.28 +61.00,0.00,31.00,0.34,1.60,0.27 +2.10,0.00,0.00,0.58,1.66,0.23 +9.20,1.00,0.00,0.94,1.63,0.17 +39.00,0.00,9.00,0.37,1.66,0.30 +43.00,0.00,13.00,0.38,1.68,0.28 +66.00,0.00,36.00,0.46,1.67,0.25 +41.00,0.00,11.00,0.46,1.67,0.26 +30.00,0.00,0.00,0.36,1.65,0.32 +6.20,0.00,0.00,0.57,1.68,0.34 +69.00,0.00,39.00,0.60,1.57,0.20 +45.00,0.00,15.00,0.62,1.53,0.16 +30.00,0.00,0.00,0.46,1.54,0.27 +49.00,0.00,19.00,0.79,1.73,0.25 +85.00,0.00,55.00,0.52,1.71,0.31 +83.00,0.00,53.00,0.40,1.67,0.26 +64.50,1.00,59.00,0.58,1.57,0.26 +74.00,0.00,44.00,0.35,1.59,0.27 +92.00,0.00,62.00,0.39,1.67,0.29 +36.30,1.00,10.00,0.96,1.67,0.20 +27.80,0.00,0.00,0.71,1.68,0.22 +59.00,0.00,29.00,0.41,1.67,0.25 +30.00,0.00,0.00,0.92,1.73,0.24 +88.00,0.00,58.00,0.54,1.85,0.28 +16.70,0.00,0.00,0.72,1.59,0.25 +51.00,0.00,21.00,0.63,1.54,0.16 +72.00,0.00,42.00,0.56,1.71,0.24 +48.00,0.00,18.00,0.44,1.61,0.25 +30.00,0.00,0.00,0.71,1.77,0.37 +34.50,1.00,13.00,0.75,1.73,0.23 +1.10,1.00,0.00,0.87,1.70,0.19 +50.00,0.00,20.00,1.01,1.77,0.21 +86.00,0.00,56.00,0.36,1.67,0.31 +69.00,0.00,39.00,0.45,1.66,0.28 +4.10,0.00,0.00,0.87,1.72,0.23 +31.00,0.00,1.00,0.41,1.68,0.26 +82.00,0.00,52.00,0.47,1.66,0.25 +90.00,0.00,60.00,0.57,1.72,0.31 +50.00,0.00,20.00,0.70,1.52,0.15 +70.00,0.00,40.00,0.38,1.59,0.24 +59.00,0.00,29.00,0.41,1.68,0.26 +72.00,0.00,42.00,0.55,1.69,0.23 +58.00,0.00,28.00,0.35,1.55,0.28 +69.00,0.00,39.00,0.61,1.55,0.21 +5.80,0.00,0.00,0.65,1.74,0.34 +30.00,0.00,0.00,0.50,1.83,0.28 +37.80,1.00,21.00,0.80,1.59,0.16 +69.00,0.00,39.00,0.48,1.69,0.29 +30.00,0.00,0.00,0.73,1.59,0.20 +49.10,1.00,21.00,0.90,1.59,0.18 +48.10,1.00,30.00,0.58,1.58,0.22 +45.00,0.00,15.00,0.54,1.69,0.23 +3.10,0.00,0.00,0.48,1.55,0.26 +39.00,0.00,9.00,0.37,1.66,0.30 +88.00,0.00,58.00,0.62,1.74,0.24 +13.70,1.00,0.00,0.93,1.70,0.24 +50.50,1.00,43.00,0.38,1.67,0.28 +59.00,0.00,29.00,0.36,1.61,0.25 +11.30,0.00,0.00,0.73,1.72,0.25 +43.00,0.00,13.00,0.65,1.73,0.39 +50.00,0.00,20.00,0.48,1.66,0.24 +30.00,0.00,0.00,0.34,1.62,0.30 +77.40,1.00,71.00,0.40,1.61,0.24 +59.00,1.00,42.00,0.50,1.78,0.39 +48.70,1.00,33.00,0.97,1.60,0.22 +80.00,0.00,50.00,0.59,1.58,0.21 +4.80,0.00,0.00,0.34,1.55,0.27 +70.60,1.00,43.00,0.61,1.68,0.23 +30.00,0.00,0.00,0.93,1.70,0.25 +41.00,0.00,11.00,0.46,1.68,0.26 +5.70,0.00,0.00,0.83,1.80,0.48 +53.00,0.00,23.00,0.30,1.55,0.29 +38.00,0.00,8.00,0.37,1.67,0.30 +6.20,0.00,0.00,0.75,1.68,0.23 +69.00,0.00,39.00,0.44,1.71,0.28 +60.60,1.00,31.00,0.72,1.52,0.18 +30.00,0.00,0.00,0.47,1.55,0.25 +30.00,0.00,0.00,0.56,1.51,0.16 +58.00,0.00,28.00,0.35,1.55,0.28 +30.00,0.00,0.00,0.40,1.69,0.28 +30.00,0.00,0.00,0.50,1.81,0.28 +108.00,0.00,78.00,0.56,1.67,0.33 +65.00,0.00,35.00,0.34,1.63,0.28 +54.20,1.00,52.00,0.51,1.63,0.30 +16.60,0.00,0.00,0.36,1.65,0.31 +45.00,0.00,15.00,1.05,1.62,0.17 +30.00,0.00,0.00,0.85,1.70,0.23 +23.90,0.00,0.00,0.47,1.67,0.26 +34.80,1.00,18.00,0.67,1.50,0.16 +8.80,0.00,0.00,0.83,1.80,0.39 +13.20,0.00,0.00,0.62,1.55,0.21 +30.00,0.00,0.00,0.32,1.60,0.31 +47.00,0.00,17.00,0.70,1.58,0.21 +72.00,0.00,42.00,0.37,1.65,0.29 +59.00,0.00,29.00,0.48,1.64,0.24 +30.00,0.00,0.00,0.83,1.67,0.25 +3.30,0.00,0.00,0.49,1.68,0.25 +23.70,0.00,0.00,0.71,1.69,0.22 +71.20,1.00,53.00,0.65,1.80,0.25 +47.00,0.00,17.00,0.38,1.67,0.29 +58.00,0.00,28.00,0.33,1.56,0.27 +59.00,0.00,29.00,0.36,1.62,0.26 +66.00,0.00,36.00,0.44,1.73,0.34 +67.00,0.00,37.00,1.02,1.77,0.21 +44.00,0.00,14.00,0.64,1.55,0.22 +44.00,0.00,14.00,0.51,1.60,0.21 +8.00,0.00,0.00,1.04,1.61,0.18 +16.70,0.00,0.00,0.40,1.69,0.28 +59.00,0.00,29.00,0.62,1.76,0.25 +45.00,0.00,15.00,0.51,1.66,0.24 +15.10,0.00,0.00,0.42,1.67,0.26 +0.20,0.00,0.00,0.41,1.68,0.26 +46.90,1.00,28.00,0.67,1.74,0.34 +11.50,1.00,0.00,0.88,1.72,0.20 +21.60,0.00,0.00,0.65,1.63,0.24 +54.00,0.00,24.00,0.56,1.56,0.18 +15.80,0.00,0.00,0.48,1.64,0.24 +78.00,0.00,48.00,0.44,1.70,0.27 +88.00,0.00,58.00,0.42,1.66,0.25 +44.90,1.00,33.00,0.57,1.66,0.24 +17.30,0.00,0.00,0.62,1.62,0.23 +50.00,0.00,20.00,0.88,1.82,0.49 +11.90,1.00,10.00,0.78,1.80,0.49 +28.00,0.00,0.00,1.18,1.76,0.22 +101.00,0.00,71.00,0.38,1.57,0.24 +52.00,0.00,22.00,0.82,1.77,0.25 +30.00,0.00,0.00,0.76,1.59,0.16 +17.40,0.00,0.00,0.82,1.62,0.18 +60.50,1.00,31.00,0.56,1.55,0.18 +63.50,1.00,39.00,1.02,1.78,0.26 +42.10,1.00,20.00,1.00,1.77,0.21 +10.10,0.00,0.00,1.02,1.77,0.21 +70.00,0.00,40.00,0.49,1.69,0.24 +7.30,0.00,0.00,0.47,1.68,0.29 +63.00,0.00,33.00,0.32,1.65,0.28 +65.00,0.00,35.00,0.35,1.65,0.28 +9.30,0.00,0.00,0.61,1.55,0.21 +90.00,0.00,60.00,0.37,1.65,0.29 +86.00,0.00,56.00,0.52,1.77,0.28 +50.00,0.00,20.00,0.58,1.69,0.26 +34.00,0.00,4.00,0.61,1.53,0.16 +48.00,0.00,18.00,0.64,1.49,0.16 +22.50,0.00,0.00,0.61,1.52,0.18 +69.00,0.00,39.00,0.47,1.67,0.24 +24.30,0.00,0.00,0.63,1.58,0.21 +30.00,0.00,0.00,0.62,1.67,0.23 +85.00,0.00,55.00,0.49,1.64,0.28 +30.00,0.00,0.00,0.79,1.79,0.42 +6.10,0.00,0.00,0.48,1.66,0.24 +80.00,0.00,50.00,0.59,1.59,0.22 +27.60,1.00,7.00,0.76,1.67,0.29 +10.60,0.00,0.00,1.50,1.73,0.27 +49.00,0.00,19.00,0.78,1.75,0.25 +48.00,0.00,18.00,0.62,1.69,0.23 +50.00,0.00,20.00,0.40,1.58,0.23 +30.00,0.00,0.00,0.77,1.63,0.25 +5.10,0.00,0.00,0.54,1.57,0.18 +53.00,0.00,23.00,0.46,1.71,0.33 +52.00,0.00,22.00,0.64,1.55,0.20 +16.40,0.00,0.00,0.71,1.52,0.18 +30.00,0.00,0.00,0.62,1.56,0.22 +51.00,0.00,21.00,0.83,1.60,0.16 +68.00,0.00,38.00,0.46,1.71,0.26 +48.00,0.00,18.00,0.44,1.61,0.25 +47.00,0.00,17.00,0.57,1.68,0.23 +55.00,0.00,25.00,0.39,1.85,0.41 +25.30,1.00,10.00,0.92,1.73,0.20 +49.40,1.00,35.00,0.35,1.64,0.30 +21.70,1.00,0.00,1.29,1.80,0.30 +47.00,0.00,17.00,0.58,1.69,0.26 +59.00,0.00,29.00,0.53,1.65,0.22 +92.00,0.00,62.00,0.67,1.52,0.19 +53.00,0.00,23.00,0.71,1.58,0.22 +74.00,0.00,44.00,0.32,1.64,0.29 +69.00,1.00,51.00,0.34,1.59,0.27 +50.00,0.00,20.00,0.46,1.66,0.26 +44.00,0.00,14.00,0.44,1.71,0.26 +18.70,0.00,0.00,0.41,1.67,0.26 +44.00,0.00,14.00,0.55,1.67,0.24 +87.60,1.00,62.00,0.31,1.58,0.31 +19.10,0.00,0.00,0.38,1.59,0.24 +2.80,0.00,0.00,0.71,1.59,0.21 +8.70,1.00,0.00,1.24,1.75,0.25 +50.00,0.00,20.00,0.63,1.52,0.19 +43.00,0.00,13.00,0.37,1.67,0.29 +8.60,0.00,0.00,0.59,1.58,0.22 +7.80,0.00,0.00,0.86,1.71,0.25 +76.00,0.00,46.00,0.31,1.61,0.30 +21.00,1.00,11.00,0.58,1.68,0.32 +48.00,0.00,18.00,0.53,1.57,0.18 +49.00,0.00,19.00,0.79,1.55,0.17 +61.00,0.00,31.00,0.36,1.65,0.32 +30.00,0.00,0.00,0.86,1.81,0.50 +30.00,0.00,0.00,0.88,1.67,0.25 +63.00,0.00,33.00,0.31,1.63,0.28 +49.00,0.00,19.00,0.81,1.55,0.18 +93.00,0.00,63.00,0.59,1.72,0.24 +43.00,0.00,13.00,0.59,1.75,0.25 +74.00,0.00,44.00,0.42,1.86,0.40 +48.00,0.00,18.00,0.69,1.69,0.23 +87.00,0.00,57.00,0.44,1.61,0.25 +13.20,0.00,0.00,0.70,1.69,0.22 +70.00,0.00,40.00,0.39,1.59,0.24 +1.10,0.00,0.00,0.68,1.80,0.38 +42.70,1.00,14.00,0.62,1.60,0.23 +81.70,1.00,52.00,0.50,1.65,0.29 +71.00,0.00,41.00,0.87,1.67,0.25 +86.70,1.00,61.00,0.35,1.60,0.27 +68.00,0.00,38.00,0.46,1.72,0.26 +42.20,1.00,20.00,0.85,1.68,0.35 +22.30,1.00,0.00,0.80,1.74,0.23 +7.90,0.00,0.00,0.75,1.58,0.18 +38.80,1.00,35.00,1.03,1.77,0.21 +34.00,0.00,4.00,0.32,1.74,0.29 +38.10,1.00,33.00,0.53,1.55,0.20 +69.00,0.00,39.00,0.51,1.55,0.26 +0.30,0.00,0.00,0.88,1.82,0.41 +79.80,1.00,53.00,0.82,1.68,0.23 +30.00,0.00,0.00,0.36,1.64,0.31 +42.90,1.00,34.00,0.39,1.68,0.28 +10.70,0.00,0.00,0.57,1.59,0.22 +26.70,1.00,26.00,1.12,1.76,0.24 +30.00,0.00,0.00,0.42,1.62,0.24 +62.00,0.00,32.00,0.45,1.55,0.25 +34.00,0.00,4.00,0.58,1.62,0.25 +90.00,0.00,60.00,0.46,1.72,0.26 +29.40,0.00,0.00,0.66,1.84,0.25 +18.30,0.00,0.00,0.44,1.71,0.26 +37.00,0.00,7.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.86,1.67,0.19 +52.40,1.00,41.00,0.36,1.59,0.26 +40.00,0.00,10.00,0.54,1.53,0.19 +86.00,0.00,56.00,0.58,1.71,0.23 +73.00,0.00,43.00,0.44,1.73,0.27 +31.00,0.00,1.00,0.56,1.58,0.25 +62.70,1.00,44.00,0.32,1.64,0.29 +47.00,0.00,17.00,0.48,1.67,0.25 +44.00,0.00,14.00,0.64,1.87,0.25 +48.00,0.00,18.00,0.68,1.69,0.23 +60.70,1.00,57.00,0.43,1.68,0.25 +30.00,0.00,0.00,0.88,1.72,0.20 +30.00,0.00,0.00,0.54,1.56,0.18 +66.00,0.00,36.00,0.43,1.83,0.39 +0.50,0.00,0.00,0.43,1.72,0.26 +11.30,1.00,4.00,0.59,1.51,0.16 +15.30,0.00,0.00,0.79,1.66,0.29 +42.00,0.00,12.00,0.51,1.61,0.25 +32.50,1.00,14.00,0.67,1.57,0.24 +50.00,0.00,20.00,0.58,1.77,0.25 +95.00,0.00,65.00,0.36,1.79,0.36 +108.00,0.00,78.00,0.63,1.53,0.17 +53.00,0.00,23.00,0.44,1.77,0.37 +41.00,0.00,11.00,0.42,1.65,0.25 +40.00,0.00,10.00,1.04,1.69,0.21 +49.00,0.00,19.00,0.70,1.52,0.19 +66.00,0.00,36.00,0.40,1.69,0.27 +30.00,0.00,0.00,0.70,1.50,0.17 +67.90,1.00,42.00,0.55,1.68,0.23 +86.50,1.00,62.00,0.82,1.56,0.17 +6.40,1.00,0.00,1.50,1.73,0.27 +45.00,0.00,15.00,0.44,1.65,0.25 +30.00,0.00,0.00,0.45,1.70,0.26 +43.90,1.00,21.00,0.62,1.56,0.21 +30.00,0.00,0.00,0.74,1.79,0.39 +19.50,1.00,0.00,1.10,1.71,0.22 +24.00,1.00,11.00,0.65,1.77,0.25 +44.00,0.00,14.00,0.65,1.56,0.23 +87.00,0.00,57.00,0.44,1.61,0.25 +70.00,0.00,40.00,0.38,1.60,0.25 +44.00,0.00,14.00,0.61,1.63,0.26 +5.50,0.00,0.00,0.32,1.72,0.28 +2.20,0.00,0.00,0.42,1.56,0.25 +35.60,1.00,15.00,0.53,1.67,0.24 +71.00,0.00,41.00,0.35,1.60,0.27 +7.40,1.00,0.00,1.01,1.77,0.21 +32.00,0.00,2.00,0.62,1.58,0.22 +2.50,0.00,0.00,0.54,1.84,0.29 +44.00,0.00,14.00,0.42,1.70,0.26 +33.00,0.00,3.00,0.69,1.69,0.31 +78.00,0.00,48.00,0.50,1.83,0.28 +2.80,0.00,0.00,0.78,1.58,0.15 +31.00,0.00,1.00,0.54,1.61,0.22 +3.30,1.00,0.00,0.77,1.78,0.44 +41.00,0.00,11.00,0.55,1.67,0.27 +17.40,1.00,0.00,0.66,1.52,0.19 +40.00,0.00,10.00,0.43,1.66,0.25 +50.00,0.00,20.00,0.58,1.69,0.26 +30.00,0.00,0.00,0.33,1.47,0.27 +11.80,0.00,0.00,0.65,1.54,0.18 +93.60,1.00,66.00,0.57,1.66,0.22 +24.00,0.00,0.00,0.70,1.58,0.22 +30.00,0.00,0.00,0.61,1.56,0.20 +60.80,1.00,56.00,0.54,1.81,0.28 +30.00,0.00,0.00,0.83,1.64,0.18 +33.60,1.00,15.00,0.53,1.67,0.24 +40.00,0.00,10.00,0.74,1.80,0.45 +30.00,0.00,0.00,0.75,1.80,0.41 +52.00,0.00,22.00,0.64,1.55,0.20 +47.00,0.00,17.00,0.73,1.52,0.17 +41.00,0.00,11.00,0.50,1.61,0.27 +49.00,0.00,19.00,0.33,1.71,0.28 +21.70,1.00,20.00,0.90,1.82,0.50 +108.00,0.00,78.00,0.38,1.60,0.24 +30.00,0.00,0.00,0.32,1.53,0.27 +82.00,0.00,52.00,0.52,1.63,0.29 +43.00,0.00,13.00,0.67,1.74,0.40 +69.00,0.00,39.00,0.61,1.55,0.21 +78.00,0.00,48.00,0.45,1.70,0.27 +83.00,0.00,53.00,0.65,1.74,0.24 +10.20,0.00,0.00,0.87,1.70,0.19 +15.40,0.00,0.00,0.51,1.58,0.20 +88.00,0.00,58.00,0.42,1.69,0.26 +43.00,0.00,13.00,0.74,1.72,0.23 +37.70,1.00,37.00,0.55,1.71,0.25 +27.60,0.00,0.00,0.51,1.67,0.23 +71.00,0.00,41.00,0.36,1.59,0.26 +17.70,1.00,17.00,0.54,1.67,0.24 +30.00,0.00,0.00,0.83,1.65,0.18 +30.00,0.00,0.00,0.57,1.73,0.32 +28.90,1.00,18.00,0.87,1.88,0.26 +29.30,1.00,12.00,0.96,1.64,0.17 +47.00,0.00,17.00,0.38,1.68,0.29 +18.50,0.00,0.00,0.77,1.78,0.44 +48.40,1.00,39.00,0.45,1.66,0.28 +101.00,0.00,71.00,0.37,1.56,0.24 +81.00,0.00,51.00,0.32,1.63,0.31 +30.00,0.00,0.00,0.39,1.66,0.27 +106.00,0.00,76.00,0.52,1.71,0.30 +40.00,0.00,10.00,0.44,1.57,0.26 +70.00,0.00,40.00,0.38,1.60,0.25 +44.00,0.00,14.00,0.56,1.68,0.25 +71.00,0.00,41.00,0.63,1.68,0.23 +58.00,0.00,28.00,0.31,1.63,0.28 +63.00,0.00,33.00,0.32,1.60,0.29 +14.20,0.00,0.00,1.47,1.73,0.27 +44.00,0.00,14.00,0.47,1.75,0.28 +83.00,0.00,53.00,0.58,1.66,0.22 +30.00,0.00,0.00,0.82,1.79,0.47 +40.60,1.00,11.00,0.69,1.80,0.24 +71.00,0.00,41.00,0.36,1.59,0.26 +81.00,0.00,51.00,0.48,1.65,0.27 +106.00,0.00,76.00,0.34,1.55,0.26 +63.00,0.00,33.00,0.31,1.62,0.28 +59.00,0.00,29.00,0.64,1.59,0.22 +29.10,1.00,0.00,0.82,1.61,0.17 +6.00,0.00,0.00,0.82,1.57,0.17 +72.00,0.00,42.00,0.37,1.65,0.29 +40.30,1.00,28.00,0.32,1.64,0.28 +60.00,0.00,30.00,0.58,1.58,0.22 +9.50,0.00,0.00,0.43,1.55,0.26 +0.90,0.00,0.00,0.59,1.53,0.19 +4.60,1.00,0.00,1.06,1.75,0.21 +69.00,0.00,39.00,0.62,1.60,0.28 +44.00,0.00,14.00,0.33,1.60,0.32 +93.00,0.00,63.00,0.35,1.66,0.31 +30.00,0.00,0.00,0.81,1.66,0.25 +30.00,0.00,0.00,0.50,1.56,0.25 +49.00,0.00,19.00,0.78,1.74,0.25 +8.90,0.00,0.00,0.86,1.58,0.16 +18.40,0.00,0.00,0.57,1.71,0.24 +71.00,0.00,41.00,0.39,1.60,0.26 +47.00,0.00,17.00,0.66,1.56,0.21 +30.00,0.00,0.00,0.52,1.56,0.19 +34.00,0.00,4.00,0.59,1.51,0.16 +89.00,0.00,59.00,0.41,1.85,0.40 +74.00,0.00,44.00,0.53,1.79,0.28 +24.40,1.00,13.00,0.68,1.74,0.41 +30.00,0.00,0.00,0.61,1.61,0.24 +47.00,0.00,17.00,0.62,1.56,0.22 +55.00,0.00,25.00,0.58,1.67,0.27 +70.00,0.00,40.00,0.51,1.69,0.24 +87.00,0.00,57.00,0.47,1.73,0.26 +107.00,0.00,77.00,0.38,1.61,0.25 +80.60,1.00,71.00,0.37,1.55,0.25 +91.40,1.00,67.00,0.58,1.53,0.19 +53.10,1.00,41.00,0.89,1.67,0.26 +29.80,1.00,21.00,0.82,1.60,0.16 +67.00,0.00,37.00,0.56,1.74,0.25 +4.60,0.00,0.00,0.59,1.54,0.20 +3.30,0.00,0.00,0.99,1.77,0.24 +60.00,0.00,30.00,0.43,1.66,0.24 +61.00,0.00,31.00,0.35,1.60,0.25 +44.00,0.00,14.00,0.61,1.64,0.27 +24.20,0.00,0.00,0.87,1.57,0.16 +90.00,0.00,60.00,0.58,1.69,0.27 +13.00,0.00,0.00,0.89,1.72,0.20 +30.00,0.00,0.00,0.88,1.82,0.50 +66.00,0.00,36.00,0.46,1.68,0.26 +54.00,0.00,24.00,0.41,1.84,0.39 +47.00,0.00,17.00,0.62,1.59,0.22 +30.00,0.00,0.00,0.35,1.61,0.31 +88.00,0.00,58.00,0.55,1.81,0.27 +92.00,0.00,62.00,0.40,1.69,0.28 +68.50,1.00,42.00,0.83,1.80,0.40 +19.60,0.00,0.00,0.59,1.78,0.36 +22.30,0.00,0.00,0.58,1.53,0.19 +50.00,0.00,20.00,0.54,1.56,0.20 +74.00,0.00,44.00,0.34,1.63,0.28 +47.00,0.00,17.00,0.66,1.56,0.21 +48.30,1.00,30.00,0.71,1.55,0.15 +30.00,0.00,0.00,0.86,1.70,0.23 +63.00,0.00,33.00,0.58,1.66,0.24 +104.00,0.00,74.00,0.31,1.58,0.29 +30.00,0.00,0.00,0.77,1.63,0.25 +20.40,0.00,0.00,0.47,1.64,0.26 +63.00,0.00,33.00,0.32,1.65,0.28 +53.40,1.00,33.00,0.73,1.54,0.20 +49.30,1.00,28.00,0.34,1.56,0.27 +72.00,0.00,42.00,0.56,1.72,0.24 +30.00,0.00,0.00,0.48,1.60,0.27 +74.00,0.00,44.00,0.39,1.77,0.37 +63.00,0.00,33.00,0.57,1.54,0.20 +43.40,1.00,38.00,0.84,1.69,0.25 +30.00,0.00,0.00,1.04,1.77,0.32 +72.00,0.00,42.00,0.38,1.68,0.28 +30.00,0.00,0.00,0.50,1.66,0.28 +67.00,0.00,37.00,0.57,1.78,0.25 +30.00,0.00,0.00,0.35,1.62,0.30 +59.00,0.00,29.00,0.40,1.68,0.27 +59.00,0.00,29.00,0.47,1.66,0.24 +101.00,0.00,71.00,0.55,1.67,0.28 +48.00,0.00,18.00,0.47,1.62,0.23 +98.00,0.00,68.00,0.37,1.64,0.27 +86.00,0.00,56.00,0.50,1.64,0.22 +71.00,0.00,41.00,0.37,1.59,0.26 +66.00,1.00,60.00,0.58,1.70,0.27 +30.00,0.00,0.00,0.83,1.65,0.18 +18.10,0.00,0.00,0.64,1.79,0.37 +90.00,0.00,60.00,0.39,1.57,0.23 +44.00,0.00,14.00,0.39,1.50,0.26 +29.90,0.00,0.00,0.38,1.68,0.29 +72.00,1.00,53.00,0.56,1.66,0.22 +48.00,0.00,18.00,0.61,1.59,0.27 +53.00,0.00,23.00,0.43,1.78,0.37 +4.90,0.00,0.00,0.35,1.65,0.28 +66.30,1.00,66.00,0.52,1.64,0.22 +33.90,1.00,27.00,0.76,1.66,0.28 +1.50,0.00,0.00,0.49,1.71,0.30 +30.00,0.00,0.00,0.47,1.74,0.28 +106.00,0.00,76.00,0.53,1.70,0.29 +16.00,0.00,0.00,0.62,1.59,0.27 +63.00,0.00,33.00,0.32,1.64,0.28 +35.40,1.00,13.00,0.66,1.58,0.22 +73.60,1.00,61.00,0.35,1.64,0.30 +27.90,1.00,0.00,0.37,1.54,0.28 +16.90,1.00,2.00,1.15,1.65,0.20 +12.80,0.00,0.00,0.72,1.61,0.27 +53.00,0.00,23.00,0.31,1.55,0.30 +59.00,0.00,29.00,0.41,1.68,0.26 +42.00,0.00,12.00,0.35,1.61,0.26 +78.00,0.00,48.00,0.44,1.70,0.27 +30.00,0.00,0.00,0.47,1.55,0.25 +44.00,0.00,14.00,0.71,2.06,0.26 +32.60,1.00,30.00,0.53,1.71,0.24 +85.00,0.00,55.00,0.35,1.55,0.27 +51.00,0.00,21.00,0.67,1.53,0.15 +10.30,0.00,0.00,1.06,1.79,0.28 +59.00,0.00,29.00,0.47,1.64,0.24 +59.00,0.00,29.00,0.47,1.64,0.24 +37.70,1.00,10.00,0.88,1.58,0.16 +101.00,0.00,71.00,0.38,1.57,0.25 +44.00,0.00,14.00,0.49,1.61,0.21 +73.00,0.00,43.00,0.45,1.74,0.28 +30.00,0.00,0.00,0.57,1.50,0.16 +5.50,0.00,0.00,0.52,1.70,0.30 +52.00,0.00,22.00,0.36,1.62,0.26 +70.00,0.00,40.00,0.40,1.60,0.24 +91.00,0.00,61.00,0.38,1.67,0.28 +82.00,0.00,52.00,0.50,1.63,0.26 +30.00,0.00,0.00,1.00,1.75,0.25 +3.30,0.00,0.00,0.39,1.66,0.27 +26.30,0.00,0.00,0.38,1.58,0.28 +30.00,0.00,0.00,0.82,1.60,0.17 +30.00,0.00,0.00,0.60,1.62,0.25 +23.40,1.00,0.00,0.55,1.58,0.19 +28.30,0.00,0.00,0.51,1.58,0.20 +66.00,0.00,36.00,0.43,1.70,0.32 +30.00,0.00,0.00,0.59,1.75,0.33 +27.60,1.00,0.00,1.22,1.79,0.30 +60.00,0.00,30.00,0.33,1.64,0.29 +30.00,0.00,0.00,0.45,1.62,0.25 +44.00,0.00,14.00,0.46,1.61,0.23 +16.40,1.00,0.00,0.82,1.77,0.38 +49.00,0.00,19.00,0.38,1.82,0.37 +61.00,0.00,31.00,0.34,1.60,0.27 +30.00,0.00,0.00,0.33,1.60,0.31 +51.00,0.00,21.00,0.68,1.53,0.15 +48.50,1.00,37.00,0.61,1.69,0.23 +40.00,0.00,10.00,0.84,1.57,0.16 +50.00,0.00,20.00,0.53,1.72,0.24 +5.30,0.00,0.00,0.59,1.50,0.17 +45.00,0.00,15.00,0.43,1.67,0.25 +50.00,0.00,20.00,0.69,1.50,0.17 +60.00,0.00,30.00,0.32,1.68,0.28 +30.00,0.00,0.00,0.56,1.73,0.32 +69.00,0.00,39.00,0.58,1.68,0.23 +8.00,0.00,0.00,0.58,1.68,0.33 +78.00,0.00,48.00,0.50,1.81,0.28 +96.00,0.00,66.00,0.46,1.64,0.24 +49.00,0.00,19.00,0.51,1.63,0.21 +42.00,0.00,12.00,0.47,1.60,0.26 +83.00,0.00,53.00,0.40,1.67,0.27 +30.00,0.00,0.00,0.51,1.69,0.28 +0.10,0.00,0.00,0.83,1.69,0.22 +15.20,1.00,13.00,0.45,1.66,0.24 +43.00,0.00,13.00,0.38,1.67,0.29 +37.00,0.00,7.00,0.75,1.67,0.28 +42.10,1.00,25.00,1.06,1.63,0.23 +50.00,0.00,20.00,0.73,1.77,0.24 +17.60,0.00,0.00,0.57,1.57,0.26 +30.00,0.00,0.00,0.86,1.81,0.49 +25.40,1.00,15.00,0.68,1.53,0.18 +43.60,1.00,18.00,0.74,1.69,0.23 +23.50,1.00,9.00,0.36,1.64,0.29 +43.00,0.00,13.00,0.68,1.74,0.40 +30.00,0.00,0.00,0.94,1.84,0.53 +51.00,0.00,21.00,0.44,1.73,0.27 +30.00,0.00,0.00,0.39,1.61,0.24 +86.00,0.00,56.00,0.51,1.75,0.27 +58.00,0.00,28.00,0.65,1.74,0.34 +58.20,1.00,37.00,0.61,1.76,0.24 +59.50,1.00,41.00,0.61,1.69,0.23 +23.20,1.00,0.00,0.54,1.56,0.18 +72.00,0.00,42.00,0.46,1.82,0.39 +15.00,0.00,0.00,0.57,1.71,0.24 +30.00,0.00,0.00,0.34,1.61,0.31 +30.00,0.00,0.00,1.14,1.77,0.27 +43.70,1.00,18.00,0.89,1.68,0.25 +56.00,0.00,26.00,0.52,1.65,0.30 +49.00,0.00,19.00,0.64,1.60,0.28 +51.00,0.00,21.00,0.49,1.63,0.26 +27.40,0.00,0.00,0.40,1.66,0.27 +30.00,0.00,0.00,0.76,1.65,0.24 +30.00,0.00,0.00,0.55,1.82,0.28 +45.00,0.00,15.00,0.55,1.59,0.22 +107.00,0.00,77.00,0.39,1.61,0.25 +52.00,0.00,22.00,0.42,1.67,0.25 +30.00,0.00,0.00,0.53,1.56,0.18 +30.00,0.00,0.00,0.71,1.54,0.20 +92.00,0.00,62.00,0.53,1.84,0.29 +2.20,0.00,0.00,0.36,1.65,0.30 +65.00,0.00,35.00,0.34,1.64,0.28 +45.60,1.00,20.00,0.95,1.84,0.52 +4.50,0.00,0.00,0.56,1.53,0.19 +44.80,1.00,30.00,0.59,1.62,0.22 +12.20,0.00,0.00,0.99,1.63,0.18 +44.00,0.00,14.00,0.69,2.08,0.26 +43.00,0.00,13.00,0.41,1.68,0.26 +9.60,0.00,0.00,0.39,1.58,0.28 +19.40,0.00,0.00,0.32,1.70,0.29 +48.00,0.00,18.00,0.66,1.50,0.16 +78.00,0.00,48.00,0.49,1.77,0.28 +91.00,0.00,61.00,0.39,1.68,0.28 +51.00,0.00,21.00,0.52,1.66,0.29 +74.00,0.00,44.00,0.34,1.63,0.28 +44.00,0.00,14.00,0.59,1.77,0.25 +48.00,0.00,18.00,0.55,1.52,0.17 +30.00,0.00,0.00,0.51,1.80,0.29 +44.00,0.00,14.00,0.60,1.70,0.29 +30.00,0.00,0.00,0.56,1.62,0.25 +30.00,0.00,0.00,0.40,1.69,0.27 +30.00,0.00,0.00,0.66,1.52,0.18 +15.00,0.00,0.00,0.52,1.70,0.28 +47.00,0.00,17.00,0.59,1.53,0.19 +67.00,0.00,37.00,0.44,1.70,0.28 +43.00,0.00,13.00,0.44,1.73,0.28 +1.30,0.00,0.00,0.95,1.64,0.17 +9.50,0.00,0.00,0.56,1.67,0.27 +59.00,0.00,29.00,0.58,1.74,0.24 +18.00,0.00,0.00,0.58,1.58,0.22 +12.20,0.00,0.00,0.62,1.53,0.18 +47.00,0.00,17.00,0.39,1.56,0.24 +23.50,0.00,0.00,0.66,1.54,0.18 +25.10,1.00,19.00,0.73,1.52,0.18 +42.00,0.00,12.00,0.50,1.76,0.27 +51.30,1.00,40.00,0.44,1.58,0.25 +72.40,1.00,60.00,0.62,1.75,0.33 +26.60,1.00,0.00,0.54,1.57,0.18 +30.00,0.00,0.00,0.39,1.56,0.28 +108.00,0.00,78.00,0.48,1.60,0.26 +60.20,1.00,36.00,0.86,1.63,0.18 +30.00,0.00,0.00,0.66,1.65,0.24 +23.80,0.00,0.00,0.56,1.68,0.33 +30.00,0.00,0.00,0.73,1.54,0.20 +71.00,0.00,41.00,0.52,1.82,0.28 +66.00,0.00,36.00,0.38,1.58,0.28 +11.20,0.00,0.00,0.57,1.79,0.37 +69.00,0.00,39.00,0.43,1.71,0.26 +30.00,0.00,0.00,0.47,1.55,0.25 +1.70,0.00,0.00,0.69,1.63,0.25 +3.20,0.00,0.00,0.67,1.65,0.24 +27.70,0.00,0.00,0.50,1.70,0.26 +41.00,0.00,11.00,0.72,1.83,0.24 +52.00,0.00,22.00,0.43,1.67,0.25 +22.10,0.00,0.00,0.82,1.57,0.17 +26.40,0.00,0.00,0.46,1.67,0.26 +45.00,0.00,15.00,0.51,1.66,0.24 +61.00,0.00,31.00,0.51,1.67,0.28 +44.00,0.00,14.00,0.40,1.63,0.25 +63.00,0.00,33.00,0.32,1.64,0.28 +63.00,0.00,33.00,0.43,1.70,0.27 +30.00,0.00,0.00,0.94,1.75,0.22 +15.60,0.00,0.00,0.33,1.55,0.26 +44.00,0.00,14.00,0.44,1.71,0.27 +71.00,0.00,41.00,0.37,1.60,0.25 +40.00,0.00,10.00,0.36,1.57,0.23 +44.00,0.00,14.00,0.46,1.55,0.27 +45.00,0.00,15.00,0.64,1.50,0.15 +44.00,0.00,14.00,0.47,1.75,0.27 +88.00,0.00,58.00,0.64,1.69,0.23 +107.00,0.00,77.00,0.39,1.61,0.24 +83.00,0.00,53.00,0.51,1.58,0.21 +74.00,0.00,44.00,0.32,1.58,0.31 +58.00,0.00,28.00,0.32,1.56,0.28 +44.00,0.00,14.00,0.66,1.57,0.23 +4.00,0.00,0.00,0.94,1.63,0.30 +39.00,0.00,9.00,0.33,1.51,0.27 +51.00,0.00,21.00,0.86,1.61,0.16 +4.70,0.00,0.00,0.60,1.60,0.28 +60.00,0.00,30.00,0.33,1.66,0.28 +34.00,0.00,4.00,0.58,1.50,0.16 +47.00,0.00,17.00,0.47,1.70,0.26 +51.60,1.00,23.00,0.43,1.78,0.38 +7.00,0.00,0.00,0.59,1.58,0.21 +85.00,0.00,55.00,0.48,1.61,0.27 +19.70,0.00,0.00,0.57,1.52,0.17 +98.00,0.00,68.00,0.39,1.55,0.24 +28.70,1.00,0.00,0.74,1.80,0.39 +50.00,0.00,20.00,0.53,1.58,0.21 +72.00,0.00,42.00,0.38,1.66,0.28 +45.00,0.00,15.00,0.44,1.65,0.25 +41.00,1.00,31.00,0.43,1.72,0.26 +45.00,0.00,15.00,0.62,1.52,0.16 +52.00,0.00,22.00,0.38,1.68,0.28 +30.00,0.00,0.00,1.03,1.76,0.21 +50.00,0.00,20.00,0.55,1.54,0.20 +15.20,0.00,0.00,1.05,1.79,0.27 +62.00,0.00,32.00,0.61,1.60,0.26 +52.00,0.00,22.00,0.43,1.67,0.25 +48.00,0.00,18.00,0.53,1.58,0.18 +69.00,0.00,39.00,0.54,1.55,0.18 +90.00,0.00,60.00,0.58,1.73,0.31 +8.00,0.00,0.00,0.34,1.55,0.25 +45.00,0.00,15.00,0.45,1.66,0.25 +30.00,0.00,0.00,0.97,1.78,0.21 +71.00,0.00,41.00,0.40,1.85,0.41 +38.00,1.00,28.00,0.70,1.74,0.35 +58.00,0.00,28.00,0.32,1.56,0.27 +65.00,0.00,35.00,0.55,1.67,0.31 +30.00,0.00,0.00,0.93,1.74,0.22 +5.00,0.00,0.00,0.83,1.80,0.40 +98.40,1.00,71.00,0.42,1.67,0.25 +81.30,1.00,58.00,0.54,1.80,0.28 +35.40,1.00,32.00,0.33,1.60,0.32 +69.00,0.00,39.00,0.59,1.57,0.21 +35.00,0.00,5.00,0.68,1.69,0.23 +10.50,0.00,0.00,0.88,1.82,0.50 +106.00,0.00,76.00,0.49,1.67,0.28 +60.00,0.00,30.00,0.33,1.66,0.28 +1.60,0.00,0.00,0.65,1.69,0.23 +30.00,0.00,0.00,0.66,1.52,0.18 +78.00,0.00,48.00,0.45,1.71,0.27 +22.40,1.00,0.00,0.76,1.59,0.16 +36.70,1.00,20.00,0.54,1.59,0.21 +48.00,0.00,18.00,0.59,1.59,0.27 +50.00,0.00,20.00,0.58,1.66,0.22 +30.00,0.00,0.00,0.79,1.78,0.43 +63.00,1.00,35.00,0.93,1.75,0.21 +29.90,0.00,0.00,0.68,1.53,0.19 +48.00,0.00,18.00,0.51,1.59,0.21 +44.00,0.00,14.00,0.44,1.71,0.26 +43.00,0.00,13.00,0.80,1.57,0.16 +70.00,0.00,40.00,0.38,1.61,0.25 +45.00,0.00,15.00,0.42,1.61,0.25 +83.00,0.00,53.00,0.51,1.58,0.21 +51.30,1.00,25.00,0.58,1.57,0.21 +30.00,0.00,0.00,0.32,1.59,0.32 +69.00,0.00,39.00,0.61,1.55,0.21 +66.70,1.00,52.00,0.88,1.71,0.20 +63.00,0.00,33.00,0.52,1.70,0.24 +43.00,0.00,13.00,0.47,1.67,0.25 +33.00,0.00,3.00,0.46,1.67,0.26 +37.00,1.00,10.00,0.93,1.73,0.20 +44.00,0.00,14.00,0.51,1.59,0.20 +64.00,0.00,34.00,0.41,1.70,0.27 +46.00,0.00,16.00,0.40,1.66,0.26 +30.00,0.00,0.00,0.65,1.53,0.20 +57.10,1.00,41.00,0.82,1.67,0.25 +13.00,0.00,0.00,0.37,1.66,0.28 +85.10,1.00,58.00,0.64,1.69,0.23 +5.90,0.00,0.00,0.32,1.56,0.27 +90.00,0.00,60.00,0.38,1.56,0.23 +26.70,1.00,12.00,0.58,1.69,0.27 +30.00,0.00,0.00,0.39,1.66,0.26 +7.60,0.00,0.00,0.67,1.54,0.18 +30.50,1.00,17.00,0.66,1.56,0.21 +66.00,0.00,36.00,0.49,1.66,0.24 +87.00,0.00,57.00,0.42,1.67,0.25 +25.60,0.00,0.00,0.63,1.73,0.24 +60.00,0.00,30.00,0.33,1.64,0.29 +30.00,0.00,0.00,0.32,1.54,0.27 +30.00,0.00,0.00,0.33,1.59,0.31 +47.20,1.00,29.00,0.38,1.67,0.30 +81.50,1.00,76.00,0.52,1.70,0.28 +90.00,0.00,60.00,0.40,1.67,0.27 +46.00,0.00,16.00,0.59,1.80,0.38 +19.50,0.00,0.00,0.39,1.56,0.28 +44.00,0.00,14.00,0.61,1.62,0.25 +50.30,1.00,39.00,0.61,1.55,0.21 +40.00,0.00,10.00,0.92,1.65,0.19 +47.00,0.00,17.00,0.49,1.70,0.29 +44.00,0.00,14.00,0.45,1.70,0.25 +14.80,0.00,0.00,0.61,1.71,0.36 +43.00,0.00,13.00,0.80,1.57,0.16 +90.00,0.00,60.00,0.42,1.59,0.24 +24.30,1.00,0.00,0.90,1.83,0.52 +49.00,0.00,19.00,0.70,1.52,0.19 +57.00,0.00,27.00,0.45,1.71,0.26 +59.00,0.00,29.00,0.48,1.64,0.23 +49.20,1.00,42.00,0.64,1.79,0.37 +10.50,1.00,0.00,0.82,1.61,0.18 +42.00,1.00,13.00,0.50,1.64,0.22 +20.80,0.00,0.00,0.96,1.64,0.18 +79.00,0.00,49.00,0.69,1.59,0.25 +59.00,0.00,29.00,0.69,1.73,0.34 +49.00,0.00,19.00,0.47,1.85,0.41 +38.00,0.00,8.00,0.53,1.54,0.18 +30.00,0.00,0.00,0.72,1.54,0.20 +37.00,0.00,7.00,0.60,1.55,0.21 +90.00,0.00,60.00,0.40,1.67,0.27 +72.00,0.00,42.00,0.37,1.62,0.26 +72.00,0.00,42.00,0.37,1.63,0.26 +77.00,0.00,47.00,0.55,1.66,0.23 +24.20,1.00,0.00,0.85,1.58,0.17 +54.00,0.00,24.00,0.40,1.83,0.39 +56.00,0.00,26.00,0.82,1.67,0.32 +3.50,0.00,0.00,0.67,1.71,0.24 +83.00,0.00,53.00,0.46,1.73,0.27 +45.00,0.00,15.00,0.58,1.53,0.19 +52.00,0.00,22.00,0.36,1.62,0.26 +107.00,0.00,77.00,0.39,1.61,0.25 +9.00,0.00,0.00,0.45,1.74,0.28 +29.10,0.00,0.00,0.68,1.72,0.24 +38.40,1.00,29.00,0.49,1.62,0.23 +22.40,0.00,0.00,0.66,1.52,0.19 +88.00,0.00,58.00,0.59,1.75,0.25 +50.00,0.00,20.00,0.64,1.51,0.19 +106.00,0.00,76.00,0.34,1.55,0.25 +30.00,0.00,0.00,0.59,1.82,0.26 +13.80,0.00,0.00,0.41,1.81,0.39 +50.00,0.00,20.00,0.63,1.52,0.19 +72.00,0.00,42.00,0.72,1.82,0.42 +41.00,0.00,11.00,0.79,1.54,0.18 +44.00,0.00,14.00,0.44,1.71,0.26 +60.00,0.00,30.00,0.51,1.70,0.24 +30.00,0.00,0.00,0.32,1.55,0.27 +53.00,0.00,23.00,0.31,1.56,0.31 +60.00,0.00,30.00,0.32,1.64,0.28 +42.00,0.00,12.00,0.47,1.61,0.25 +47.00,0.00,17.00,0.55,1.67,0.24 +30.00,0.00,0.00,0.35,1.59,0.26 +30.00,0.00,0.00,0.85,1.67,0.25 +5.40,0.00,0.00,0.63,1.54,0.20 +30.00,0.00,0.00,0.45,1.70,0.27 +44.00,0.00,14.00,0.62,1.56,0.22 +48.00,0.00,18.00,0.33,1.65,0.30 +87.00,0.00,57.00,0.48,1.74,0.27 +30.00,0.00,0.00,0.82,1.62,0.18 +43.00,0.00,13.00,0.44,1.71,0.26 +43.00,0.00,13.00,0.45,1.66,0.23 +42.00,0.00,12.00,0.57,1.68,0.28 +71.10,1.00,67.00,0.59,1.70,0.27 +48.10,1.00,32.00,0.68,1.57,0.22 +47.00,0.00,17.00,0.62,1.56,0.22 +30.30,1.00,20.00,0.68,1.50,0.17 +72.00,0.00,42.00,0.72,1.83,0.42 +13.00,0.00,0.00,0.64,1.56,0.21 +53.00,0.00,23.00,0.44,1.56,0.27 +50.90,1.00,39.00,0.46,1.69,0.24 +6.50,0.00,0.00,0.58,1.50,0.16 +107.00,0.00,77.00,0.39,1.61,0.24 +30.00,0.00,0.00,0.60,1.65,0.23 +53.00,0.00,23.00,0.40,1.68,0.27 +43.00,0.00,13.00,0.44,1.70,0.26 +72.00,0.00,42.00,0.39,1.69,0.28 +63.00,0.00,33.00,0.35,1.66,0.28 +59.00,0.00,29.00,0.52,1.64,0.22 +44.00,0.00,14.00,0.44,1.70,0.25 +63.00,0.00,33.00,0.61,1.56,0.21 +30.00,0.00,0.00,0.66,1.52,0.19 +66.00,0.00,36.00,0.44,1.69,0.32 +30.00,0.00,0.00,0.70,1.77,0.38 +5.50,0.00,0.00,0.46,1.67,0.26 +30.00,0.00,0.00,0.72,1.67,0.35 +61.00,0.00,31.00,0.56,1.56,0.18 +41.00,0.00,11.00,0.80,1.54,0.17 +75.10,1.00,67.00,0.58,1.68,0.33 +35.20,1.00,11.00,0.73,1.86,0.25 +101.00,0.00,71.00,0.63,1.58,0.21 +54.10,1.00,33.00,0.60,1.57,0.23 +43.00,0.00,13.00,0.31,1.59,0.28 +63.00,0.00,33.00,0.74,1.55,0.20 +2.20,0.00,0.00,0.61,1.52,0.18 +88.00,0.00,58.00,0.42,1.67,0.25 +33.60,1.00,22.00,0.78,1.66,0.28 +64.00,0.00,34.00,0.34,1.65,0.29 +7.00,0.00,0.00,0.45,1.63,0.26 +18.50,1.00,0.00,0.98,1.76,0.23 +24.10,1.00,0.00,0.66,1.51,0.17 +53.00,0.00,23.00,0.35,1.60,0.27 +52.00,0.00,22.00,0.41,1.62,0.25 +47.00,0.00,17.00,0.33,1.53,0.27 +42.00,0.00,12.00,0.55,1.65,0.24 +5.10,0.00,0.00,0.39,1.59,0.24 +30.00,0.00,0.00,0.34,1.49,0.27 +40.00,0.00,10.00,1.00,1.61,0.18 +61.00,0.00,31.00,0.44,1.63,0.24 +81.00,0.00,51.00,0.35,1.60,0.27 +10.00,0.00,0.00,0.38,1.66,0.27 +30.00,0.00,0.00,0.76,1.58,0.15 +99.00,0.00,69.00,0.56,1.52,0.17 +58.00,0.00,28.00,0.68,1.74,0.35 +21.70,0.00,0.00,0.80,1.67,0.31 +47.00,0.00,17.00,0.57,1.68,0.23 +58.00,0.00,28.00,0.33,1.61,0.30 +9.00,0.00,0.00,0.61,1.55,0.21 +52.00,0.00,22.00,0.38,1.68,0.28 +24.00,1.00,15.00,0.63,1.49,0.15 +1.30,0.00,0.00,0.35,1.57,0.26 +44.00,0.00,14.00,0.54,1.67,0.24 +72.00,0.00,42.00,0.69,1.81,0.39 +48.00,0.00,18.00,0.65,1.69,0.23 +46.20,1.00,39.00,0.64,1.53,0.20 +17.60,0.00,0.00,0.80,1.60,0.23 +53.00,0.00,23.00,0.53,1.72,0.32 +56.00,0.00,26.00,0.78,1.67,0.29 +30.00,0.00,0.00,0.82,1.80,0.40 +30.00,0.00,0.00,0.58,1.74,0.33 +34.00,0.00,4.00,0.33,1.62,0.27 +66.00,0.00,36.00,0.32,1.60,0.29 +60.00,0.00,30.00,0.37,1.66,0.30 +16.20,0.00,0.00,0.58,1.65,0.26 +47.50,1.00,40.00,0.43,1.57,0.25 +30.00,0.00,0.00,0.85,1.81,0.50 +63.00,0.00,33.00,0.49,1.69,0.25 +30.00,0.00,0.00,0.32,1.53,0.27 +13.40,0.00,0.00,0.86,1.67,0.25 +30.00,0.00,0.00,0.72,1.70,0.23 +96.00,0.00,66.00,0.48,1.63,0.23 +30.00,0.00,0.00,0.58,1.66,0.24 +80.20,1.00,74.00,0.31,1.58,0.29 +58.00,0.00,28.00,0.70,1.74,0.35 +51.70,1.00,26.00,0.82,1.67,0.33 +84.00,0.00,54.00,0.45,1.62,0.25 +64.00,0.00,34.00,0.33,1.64,0.29 +74.00,0.00,44.00,0.36,1.64,0.28 +31.00,0.00,1.00,0.60,1.60,0.26 +97.00,0.00,67.00,0.58,1.53,0.19 +63.30,1.00,42.00,0.83,1.80,0.40 +74.00,0.00,44.00,0.32,1.63,0.29 +40.00,0.00,10.00,0.42,1.66,0.25 +52.00,0.00,22.00,0.38,1.68,0.28 +59.60,1.00,52.00,0.85,1.68,0.19 +69.00,0.00,39.00,0.34,1.63,0.27 +78.00,1.00,50.00,0.59,1.58,0.21 +81.50,1.00,60.00,0.60,1.70,0.37 +73.10,1.00,58.00,0.63,1.68,0.23 +29.90,1.00,0.00,1.01,1.77,0.24 +60.00,0.00,30.00,0.45,1.65,0.24 +23.10,0.00,0.00,1.05,1.79,0.27 +81.00,0.00,51.00,0.46,1.63,0.26 +45.30,1.00,42.00,0.55,1.69,0.23 +31.00,0.00,1.00,0.89,1.72,0.20 +85.00,0.00,55.00,0.48,1.61,0.28 +41.00,0.00,11.00,0.50,1.61,0.27 +63.00,0.00,33.00,0.52,1.57,0.20 +78.00,0.00,48.00,0.44,1.70,0.27 +71.00,0.00,41.00,0.75,1.68,0.23 +62.60,1.00,53.00,0.82,1.68,0.23 +73.00,0.00,43.00,0.44,1.72,0.26 +72.00,0.00,42.00,0.37,1.65,0.28 +68.10,1.00,56.00,0.56,1.71,0.24 +5.30,0.00,0.00,0.68,1.61,0.28 +77.00,0.00,47.00,0.81,1.55,0.21 +45.00,1.00,42.00,0.84,1.78,0.39 +21.00,1.00,17.00,0.51,1.58,0.21 +76.00,0.00,46.00,0.33,1.55,0.27 +3.10,0.00,0.00,1.49,1.73,0.27 +72.00,0.00,42.00,0.46,1.82,0.40 +40.00,0.00,10.00,0.54,1.54,0.19 +17.20,1.00,0.00,1.14,1.89,0.56 +104.00,0.00,74.00,0.30,1.57,0.29 +50.00,0.00,20.00,0.45,1.66,0.25 +18.60,1.00,0.00,1.26,1.77,0.25 +66.00,0.00,36.00,0.45,1.70,0.27 +30.00,0.00,0.00,1.04,1.62,0.23 +30.00,0.00,0.00,0.63,1.50,0.17 +11.60,0.00,0.00,0.35,1.58,0.26 +52.00,0.00,22.00,0.37,1.64,0.27 +53.50,1.00,29.00,0.59,1.74,0.24 +10.80,0.00,0.00,0.43,1.73,0.27 +51.00,0.00,21.00,0.60,1.58,0.23 +91.00,0.00,61.00,0.35,1.59,0.27 +30.00,0.00,0.00,0.38,1.67,0.28 +4.10,0.00,0.00,0.71,1.74,0.36 +30.00,0.00,0.00,0.79,1.59,0.15 +12.10,0.00,0.00,1.49,1.73,0.27 +45.00,0.00,15.00,0.60,1.54,0.21 +88.00,0.00,58.00,0.42,1.67,0.25 +27.30,1.00,17.00,0.40,1.57,0.28 +30.00,0.00,0.00,0.70,1.67,0.33 +30.00,0.00,0.00,0.73,1.79,0.39 +60.00,0.00,30.00,0.44,1.65,0.24 +45.40,1.00,31.00,0.88,1.70,0.19 +101.00,0.00,71.00,0.51,1.81,0.29 +30.00,0.00,0.00,0.62,1.56,0.22 +60.00,0.00,30.00,0.59,1.63,0.22 +18.60,0.00,0.00,0.58,1.69,0.27 +76.30,1.00,58.00,0.88,1.58,0.16 +47.00,0.00,17.00,0.39,1.55,0.24 +8.30,0.00,0.00,0.37,1.55,0.27 +60.20,1.00,42.00,0.50,1.78,0.38 +7.00,1.00,0.00,0.95,1.66,0.19 +30.00,0.00,0.00,1.01,1.62,0.18 +30.00,0.00,0.00,0.86,1.70,0.23 +99.00,0.00,69.00,0.55,1.52,0.18 +15.10,0.00,0.00,0.63,1.52,0.19 +30.00,0.00,0.00,0.72,1.58,0.20 +47.00,0.00,17.00,0.54,1.73,0.24 +44.00,0.00,14.00,0.61,1.64,0.27 +47.90,1.00,30.00,0.71,1.55,0.15 +41.00,0.00,11.00,0.46,1.72,0.28 +30.50,1.00,29.00,0.68,1.61,0.24 +58.00,0.00,28.00,0.42,1.56,0.28 +5.10,0.00,0.00,0.61,1.79,0.25 +78.00,0.00,48.00,0.46,1.73,0.26 +41.00,0.00,11.00,0.55,1.66,0.27 +101.00,0.00,71.00,0.38,1.56,0.25 +88.00,0.00,58.00,0.62,1.68,0.23 +3.80,0.00,0.00,0.71,1.82,0.41 +66.00,0.00,36.00,0.44,1.75,0.36 +14.10,0.00,0.00,0.57,1.77,0.35 +45.00,0.00,15.00,0.62,1.52,0.17 +30.00,0.00,0.00,0.56,1.79,0.26 +30.00,0.00,0.00,0.91,1.81,0.44 +44.00,0.00,14.00,0.44,1.72,0.27 +80.70,1.00,76.00,0.48,1.65,0.27 +30.00,0.00,0.00,0.58,1.83,0.26 +29.90,0.00,0.00,1.07,1.76,0.22 +47.00,0.00,17.00,0.52,1.72,0.31 +44.00,0.00,14.00,0.64,1.88,0.25 +21.00,1.00,0.00,0.67,1.52,0.19 +59.00,0.00,29.00,0.60,1.77,0.26 +51.00,0.00,21.00,0.43,1.73,0.27 +30.00,0.00,0.00,0.42,1.68,0.26 +48.00,0.00,18.00,0.54,1.55,0.18 +3.90,0.00,0.00,0.40,1.61,0.24 +40.00,0.00,10.00,0.45,1.87,0.47 +30.00,0.00,0.00,0.46,1.65,0.24 +44.00,0.00,14.00,0.52,1.59,0.20 +59.00,0.00,29.00,0.70,1.72,0.25 +46.10,1.00,31.00,0.89,1.69,0.19 +50.60,1.00,25.00,0.41,1.52,0.27 +63.00,0.00,33.00,0.55,1.54,0.20 +16.50,0.00,0.00,0.49,1.67,0.24 +18.70,1.00,0.00,0.97,1.74,0.24 +37.50,1.00,23.00,0.35,1.60,0.27 +3.00,0.00,0.00,0.78,1.67,0.29 +63.00,0.00,33.00,0.32,1.63,0.28 +30.00,0.00,0.00,0.73,1.53,0.16 +45.00,0.00,15.00,0.42,1.61,0.25 +44.00,0.00,14.00,0.57,1.68,0.27 +54.00,0.00,24.00,0.43,1.67,0.27 +61.00,0.00,31.00,0.43,1.72,0.26 +63.00,0.00,33.00,0.42,1.70,0.28 +83.00,0.00,53.00,0.59,1.67,0.23 +30.00,0.00,0.00,0.60,1.60,0.25 +38.30,1.00,31.00,0.60,1.55,0.21 +58.00,0.00,28.00,0.39,1.58,0.27 +44.00,0.00,14.00,0.62,1.59,0.22 +34.10,1.00,6.00,0.54,1.56,0.20 +78.00,0.00,48.00,0.50,1.80,0.28 +62.70,1.00,46.00,0.32,1.61,0.29 +31.60,1.00,11.00,0.67,1.78,0.24 +100.10,1.00,71.00,0.34,1.48,0.27 +30.00,0.00,0.00,0.85,1.67,0.19 +1.40,0.00,0.00,0.93,1.74,0.22 +27.00,0.00,0.00,0.65,1.72,0.24 +34.00,0.00,4.00,0.33,1.63,0.27 +54.00,0.00,24.00,0.55,1.56,0.18 +64.20,1.00,43.00,0.39,1.66,0.27 +6.70,0.00,0.00,0.68,1.74,0.34 +61.00,0.00,31.00,0.49,1.66,0.28 +41.00,0.00,11.00,0.46,1.75,0.27 +96.30,1.00,76.00,0.52,1.70,0.28 +85.00,0.00,55.00,0.46,1.54,0.27 +30.00,0.00,0.00,0.47,1.67,0.25 +88.00,0.00,58.00,0.64,1.69,0.23 +63.00,0.00,33.00,0.62,1.65,0.23 +84.00,1.00,61.00,0.36,1.64,0.29 +31.00,0.00,1.00,0.41,1.68,0.26 +52.00,0.00,22.00,0.44,1.72,0.27 +30.00,0.00,0.00,0.68,1.61,0.28 +43.00,0.00,13.00,0.41,1.69,0.27 +63.00,0.00,33.00,0.45,1.69,0.26 +30.00,0.00,0.00,0.45,1.62,0.26 +106.00,0.00,76.00,0.48,1.65,0.27 +89.40,1.00,61.00,0.34,1.65,0.31 +50.00,0.00,20.00,0.44,1.65,0.25 +8.00,0.00,0.00,0.92,1.63,0.18 +38.00,0.00,8.00,0.53,1.55,0.18 +40.00,0.00,10.00,0.78,1.80,0.50 +30.00,0.00,0.00,0.50,1.75,0.28 +11.80,0.00,0.00,0.45,1.72,0.26 +8.70,0.00,0.00,0.75,1.54,0.20 +87.00,0.00,57.00,0.44,1.69,0.25 +30.00,0.00,0.00,0.37,1.57,0.28 +63.00,0.00,33.00,0.52,1.57,0.20 +90.00,0.00,60.00,0.38,1.56,0.23 +34.90,1.00,26.00,0.79,1.67,0.30 +76.00,0.00,46.00,0.70,1.69,0.22 +66.10,1.00,39.00,0.56,1.57,0.26 +48.00,0.00,18.00,0.62,1.69,0.23 +28.80,0.00,0.00,0.39,1.61,0.24 +84.00,0.00,54.00,0.46,1.68,0.30 +50.00,0.00,20.00,0.62,1.52,0.19 +65.00,1.00,55.00,0.35,1.56,0.27 +83.00,0.00,53.00,0.52,1.57,0.20 +53.00,0.00,23.00,0.40,1.67,0.26 +46.00,0.00,16.00,0.46,1.67,0.26 +9.80,0.00,0.00,0.47,1.67,0.25 +30.00,0.00,0.00,0.66,1.52,0.18 +90.00,0.00,60.00,0.39,1.62,0.25 +58.00,0.00,28.00,0.32,1.59,0.31 +63.00,0.00,33.00,0.56,1.65,0.24 +62.00,0.00,32.00,0.34,1.62,0.32 +15.90,0.00,0.00,0.69,1.84,0.25 +43.50,1.00,20.00,0.56,1.71,0.24 +41.00,0.00,11.00,0.54,1.65,0.26 +63.00,0.00,33.00,0.31,1.58,0.29 +30.00,0.00,0.00,0.57,1.66,0.22 +26.00,0.00,0.00,0.33,1.57,0.26 +30.00,0.00,0.00,0.55,1.52,0.17 +87.00,0.00,57.00,0.43,1.68,0.25 +90.70,1.00,71.00,0.49,1.63,0.25 +44.00,0.00,14.00,0.32,1.59,0.31 +30.00,0.00,0.00,0.78,1.59,0.17 +22.40,1.00,0.00,0.83,1.57,0.16 +53.00,0.00,23.00,0.38,1.65,0.26 +6.70,0.00,0.00,0.32,1.58,0.31 +35.80,1.00,14.00,0.57,1.68,0.27 +43.00,0.00,13.00,0.53,1.71,0.23 +53.00,0.00,23.00,0.31,1.56,0.31 +30.00,0.00,0.00,0.54,1.56,0.18 +92.00,0.00,62.00,0.31,1.59,0.31 +19.00,0.00,0.00,0.85,1.56,0.18 +30.00,0.00,0.00,1.02,1.77,0.30 +41.00,0.00,11.00,0.48,1.61,0.26 +32.00,0.00,2.00,0.59,1.66,0.24 +57.20,1.00,33.00,1.03,1.62,0.23 +56.90,1.00,37.00,0.91,1.59,0.17 +65.00,0.00,35.00,1.02,1.77,0.21 +52.00,0.00,22.00,0.66,1.54,0.21 +44.00,0.00,14.00,0.44,1.71,0.26 +74.00,0.00,44.00,0.36,1.64,0.28 +72.00,0.00,42.00,0.45,1.82,0.39 +71.00,0.00,41.00,0.42,1.86,0.40 +87.00,0.00,57.00,0.37,1.57,0.25 +14.80,0.00,0.00,0.59,1.69,0.36 +9.80,0.00,0.00,1.21,1.76,0.23 +43.50,1.00,39.00,0.59,1.57,0.21 +92.00,0.00,62.00,0.68,1.53,0.19 +30.00,0.00,0.00,0.54,1.55,0.18 +85.00,0.00,55.00,0.46,1.55,0.27 +30.00,0.00,0.00,0.97,1.82,0.45 +60.70,1.00,42.00,0.73,1.82,0.43 +7.90,0.00,0.00,0.90,1.88,0.26 +47.00,0.00,17.00,0.66,1.56,0.21 +30.00,0.00,0.00,0.33,1.48,0.27 +83.00,0.00,53.00,0.52,1.57,0.20 +50.00,0.00,20.00,0.48,1.67,0.24 +30.00,0.00,0.00,0.87,1.82,0.41 +72.00,0.00,42.00,0.84,1.78,0.39 +13.50,0.00,0.00,1.26,1.93,0.59 +86.00,0.00,56.00,0.54,1.83,0.29 +55.00,0.00,25.00,0.41,1.51,0.26 +40.00,0.00,10.00,0.69,1.54,0.17 +16.20,0.00,0.00,0.59,1.71,0.23 +53.00,0.00,23.00,0.46,1.71,0.33 +62.00,0.00,32.00,0.33,1.60,0.32 +67.00,0.00,37.00,0.44,1.72,0.28 +44.00,0.00,14.00,0.67,1.63,0.25 +24.10,0.00,0.00,0.64,1.58,0.20 +16.80,1.00,0.00,0.85,1.71,0.23 +47.00,0.00,17.00,0.54,1.66,0.24 +23.80,1.00,10.00,0.88,1.58,0.16 +74.00,0.00,44.00,0.38,1.76,0.36 +8.90,0.00,0.00,0.64,1.58,0.20 +89.00,1.00,71.00,0.54,1.66,0.27 +17.00,0.00,0.00,0.56,1.67,0.32 +12.30,1.00,0.00,0.65,1.61,0.26 +50.00,0.00,20.00,0.56,1.53,0.19 +20.60,1.00,0.00,0.83,1.71,0.23 +48.30,1.00,42.00,0.82,1.78,0.38 +43.00,0.00,13.00,0.32,1.61,0.28 +92.00,0.00,62.00,0.32,1.59,0.31 +62.00,0.00,32.00,0.33,1.60,0.32 +3.50,0.00,0.00,1.06,1.78,0.29 +30.00,0.00,0.00,0.45,1.71,0.28 +5.30,1.00,0.00,0.66,1.52,0.19 +33.00,0.00,3.00,0.46,1.61,0.25 +23.80,0.00,0.00,0.41,1.57,0.26 +69.00,0.00,39.00,0.40,1.57,0.27 +31.00,0.00,1.00,0.52,1.64,0.22 +61.00,0.00,31.00,0.57,1.53,0.18 +86.00,0.00,56.00,0.53,1.71,0.26 +50.00,0.00,20.00,0.60,1.53,0.19 +30.00,0.00,0.00,0.32,1.60,0.31 +11.20,0.00,0.00,0.36,1.55,0.28 +61.00,0.00,31.00,0.34,1.60,0.27 +87.00,0.00,57.00,0.36,1.58,0.26 +30.00,0.00,0.00,0.75,1.79,0.39 +2.60,0.00,0.00,0.64,1.53,0.16 +63.00,0.00,33.00,0.31,1.62,0.28 +86.00,0.00,56.00,0.46,1.72,0.26 +75.00,0.00,45.00,0.34,1.56,0.25 +30.00,0.00,0.00,0.63,1.67,0.23 +52.80,1.00,42.00,0.80,1.77,0.38 +75.70,1.00,68.00,0.37,1.64,0.27 +58.00,0.00,28.00,0.42,1.56,0.28 +30.00,0.00,0.00,0.57,1.55,0.17 +66.00,0.00,36.00,0.47,1.64,0.27 +60.00,0.00,30.00,0.45,1.74,0.26 +101.00,0.00,71.00,0.40,1.62,0.24 +61.00,0.00,31.00,0.68,1.84,0.25 +44.00,0.00,14.00,0.46,1.70,0.25 +52.00,0.00,22.00,0.42,1.67,0.25 +21.60,0.00,0.00,0.86,1.57,0.21 +63.00,0.00,33.00,0.32,1.69,0.29 +56.00,0.00,26.00,0.58,1.78,0.36 +30.00,0.00,0.00,0.71,1.51,0.16 +30.00,0.00,0.00,0.62,1.55,0.21 +6.10,0.00,0.00,0.68,1.53,0.19 +43.00,0.00,13.00,0.50,1.64,0.22 +56.00,0.00,26.00,0.32,1.59,0.31 +17.30,0.00,0.00,0.79,1.56,0.16 +30.00,0.00,0.00,0.40,1.69,0.28 +87.00,0.00,57.00,0.46,1.74,0.27 +38.10,1.00,35.00,0.82,1.60,0.16 +30.00,0.00,0.00,0.37,1.65,0.29 +31.00,0.00,1.00,0.87,1.71,0.21 +50.40,1.00,41.00,0.68,1.68,0.23 +69.00,0.00,39.00,0.66,1.52,0.19 +49.00,0.00,19.00,0.72,1.52,0.18 +7.20,0.00,0.00,0.35,1.57,0.25 +62.00,0.00,32.00,0.42,1.55,0.26 +62.50,1.00,57.00,0.69,1.61,0.27 +45.00,0.00,15.00,0.43,1.67,0.25 +72.00,0.00,42.00,0.44,1.72,0.27 +30.00,0.00,0.00,0.65,1.51,0.19 +55.00,0.00,25.00,0.55,1.73,0.32 +69.00,0.00,39.00,0.42,1.63,0.27 +66.00,0.00,36.00,0.47,1.65,0.24 +45.50,1.00,36.00,0.45,1.67,0.26 +30.00,0.00,0.00,0.61,1.55,0.20 +67.00,0.00,37.00,0.62,1.56,0.22 +90.00,0.00,60.00,0.38,1.59,0.24 +50.00,0.00,20.00,0.53,1.72,0.24 +63.00,0.00,33.00,0.63,1.68,0.23 +45.00,0.00,15.00,0.46,1.68,0.25 +3.00,0.00,0.00,0.44,1.63,0.24 +11.10,0.00,0.00,0.34,1.64,0.27 +51.00,0.00,21.00,0.73,1.79,0.25 +30.00,0.00,0.00,0.43,1.70,0.26 +86.00,0.00,56.00,0.53,1.80,0.28 +46.80,1.00,42.00,0.84,1.79,0.40 +17.10,1.00,0.00,0.70,1.54,0.20 +59.00,0.00,29.00,0.54,1.61,0.22 +37.30,1.00,28.00,0.70,1.73,0.36 +87.00,0.00,57.00,0.48,1.73,0.27 +40.00,0.00,10.00,0.93,1.59,0.17 +38.00,1.00,10.00,0.45,1.68,0.25 +106.00,0.00,76.00,0.45,1.62,0.25 +72.00,0.00,42.00,0.51,1.76,0.37 +59.30,1.00,40.00,0.93,1.75,0.22 +61.00,0.00,31.00,0.43,1.73,0.27 +24.40,0.00,0.00,0.59,1.74,0.24 +44.00,0.00,14.00,0.44,1.71,0.26 +67.00,0.00,37.00,0.59,1.59,0.22 +72.00,0.00,42.00,0.72,1.82,0.42 +22.10,0.00,0.00,0.41,1.57,0.26 +3.90,0.00,0.00,0.48,1.62,0.28 +33.00,0.00,3.00,0.76,1.63,0.25 +101.00,0.00,71.00,0.40,1.62,0.24 +58.00,0.00,28.00,0.46,1.71,0.26 +30.00,0.00,0.00,0.61,1.67,0.23 +51.00,0.00,21.00,0.47,1.72,0.26 +45.00,0.00,15.00,0.42,1.61,0.25 +5.70,0.00,0.00,0.78,1.68,0.33 +63.00,0.00,33.00,0.49,1.69,0.25 +20.70,0.00,0.00,0.58,1.68,0.32 +28.00,1.00,0.00,0.51,1.57,0.21 +77.00,0.00,47.00,0.75,1.54,0.20 +42.00,0.00,12.00,0.54,1.62,0.25 +30.00,0.00,0.00,0.37,1.64,0.29 +44.00,0.00,14.00,0.49,1.60,0.21 +30.00,0.00,0.00,0.94,1.81,0.45 +65.60,1.00,63.00,0.59,1.72,0.24 +68.00,0.00,38.00,0.71,1.58,0.23 +28.30,1.00,25.00,0.98,1.76,0.23 +62.00,0.00,32.00,0.69,1.57,0.22 +28.80,0.00,0.00,0.91,1.69,0.39 +6.80,0.00,0.00,0.80,1.68,0.24 +81.10,1.00,56.00,0.53,1.79,0.28 +3.80,0.00,0.00,1.19,1.76,0.22 +70.00,0.00,40.00,0.39,1.59,0.24 +27.00,1.00,13.00,0.67,1.74,0.40 +53.00,0.00,23.00,0.42,1.84,0.40 +30.00,0.00,0.00,0.73,1.67,0.36 +63.90,1.00,62.00,0.42,1.72,0.27 +37.00,0.00,7.00,0.68,1.53,0.17 +92.00,0.00,62.00,0.37,1.65,0.30 +23.10,1.00,14.00,0.33,1.60,0.32 +30.00,0.00,0.00,0.44,1.69,0.28 +30.00,0.00,0.00,0.61,1.67,0.23 +14.60,0.00,0.00,0.46,1.67,0.26 +30.00,0.00,0.00,0.76,1.57,0.15 +44.00,0.00,14.00,0.34,1.61,0.32 +30.00,0.00,0.00,0.72,1.78,0.38 +6.80,0.00,0.00,0.31,1.58,0.31 +97.00,0.00,67.00,0.45,1.68,0.27 +86.00,0.00,56.00,0.52,1.82,0.29 +49.00,0.00,19.00,0.32,1.61,0.30 +72.00,0.00,42.00,0.55,1.73,0.24 +72.00,0.00,42.00,0.35,1.59,0.25 +67.00,0.00,37.00,0.60,1.71,0.23 +42.00,0.00,12.00,0.57,1.68,0.28 +29.60,0.00,0.00,0.45,1.65,0.28 +51.00,0.00,21.00,0.47,1.69,0.26 +78.00,0.00,48.00,0.45,1.71,0.27 +52.00,0.00,22.00,0.42,1.66,0.25 +30.00,0.00,0.00,0.76,1.58,0.15 +59.00,0.00,29.00,0.63,1.59,0.22 +47.00,0.00,17.00,0.57,1.54,0.20 +51.00,0.00,21.00,0.41,1.68,0.26 +57.60,1.00,53.00,0.83,1.69,0.22 +24.40,1.00,10.00,0.93,1.74,0.20 +85.00,0.00,55.00,0.48,1.62,0.28 +48.00,0.00,18.00,0.40,1.57,0.23 +26.70,1.00,0.00,0.89,1.68,0.25 +63.00,0.00,33.00,0.59,1.55,0.21 +5.80,0.00,0.00,0.72,1.59,0.22 +72.00,0.00,42.00,0.57,1.79,0.37 +47.50,1.00,37.00,1.11,1.63,0.19 +30.00,0.00,0.00,0.87,1.70,0.19 +83.00,0.00,53.00,0.50,1.58,0.20 +95.50,1.00,67.00,0.32,1.63,0.29 +47.90,1.00,23.00,0.71,1.58,0.22 +85.00,1.00,71.00,0.64,1.58,0.21 +67.00,0.00,37.00,0.58,1.82,0.26 +2.00,0.00,0.00,0.45,1.68,0.27 +84.00,0.00,54.00,0.45,1.62,0.25 +4.30,0.00,0.00,0.55,1.68,0.24 +108.00,0.00,78.00,0.64,1.54,0.18 +95.10,1.00,69.00,0.55,1.52,0.17 +4.70,0.00,0.00,0.90,1.70,0.23 +30.00,0.00,0.00,0.51,1.57,0.20 +91.00,0.00,61.00,0.36,1.64,0.29 +30.00,0.00,0.00,0.45,1.70,0.27 +12.40,0.00,0.00,1.17,1.76,0.22 +13.40,0.00,0.00,0.55,1.82,0.28 +2.20,0.00,0.00,0.72,1.56,0.17 +59.00,0.00,29.00,0.39,1.67,0.30 +15.40,0.00,0.00,0.36,1.60,0.25 +2.90,0.00,0.00,0.72,1.52,0.16 +4.30,0.00,0.00,0.35,1.60,0.27 +17.80,0.00,0.00,0.58,1.74,0.24 +31.00,0.00,1.00,0.46,1.63,0.26 +30.00,0.00,0.00,1.12,1.72,0.22 +72.00,0.00,42.00,0.68,1.75,0.34 +67.50,1.00,60.00,0.50,1.61,0.28 +66.00,0.00,36.00,0.46,1.67,0.25 +101.00,0.00,71.00,0.53,1.66,0.27 +40.00,0.00,10.00,0.44,1.67,0.25 +78.90,1.00,71.00,0.63,1.58,0.21 +87.00,0.00,57.00,0.49,1.74,0.28 +9.90,0.00,0.00,0.46,1.73,0.27 +59.00,0.00,29.00,0.48,1.62,0.23 +22.90,1.00,0.00,0.44,1.70,0.28 +18.80,0.00,0.00,0.57,1.71,0.24 +79.00,0.00,49.00,0.46,1.65,0.25 +43.00,0.00,13.00,0.47,1.67,0.25 +83.00,0.00,53.00,0.84,1.70,0.22 +89.20,1.00,61.00,0.39,1.68,0.28 +21.10,1.00,21.00,0.47,1.69,0.26 +19.00,0.00,0.00,0.62,1.52,0.18 +21.50,1.00,0.00,0.56,1.52,0.17 +38.60,1.00,10.00,0.73,1.81,0.43 +42.00,0.00,12.00,0.81,1.67,0.25 +5.20,0.00,0.00,0.86,1.68,0.19 +40.00,0.00,10.00,0.54,1.54,0.19 +1.30,0.00,0.00,0.93,1.69,0.25 +44.00,0.00,14.00,0.50,1.61,0.21 +83.00,0.00,53.00,0.39,1.67,0.28 +50.00,0.00,20.00,0.74,1.52,0.18 +56.00,0.00,26.00,0.77,1.57,0.15 +56.00,0.00,26.00,0.37,1.67,0.31 +44.30,1.00,19.00,0.82,1.55,0.18 +45.00,0.00,15.00,0.43,1.66,0.24 +26.90,1.00,20.00,0.98,1.78,0.21 +30.00,0.00,0.00,0.51,1.83,0.29 +2.10,0.00,0.00,0.81,1.58,0.17 +79.50,1.00,60.00,0.58,1.70,0.27 +61.50,1.00,41.00,0.67,1.68,0.23 +47.00,0.00,17.00,0.33,1.54,0.28 +106.00,0.00,76.00,0.48,1.65,0.27 +30.00,0.00,0.00,0.58,1.60,0.25 +48.10,1.00,33.00,0.55,1.72,0.25 +6.80,0.00,0.00,1.05,1.70,0.21 +13.50,0.00,0.00,0.44,1.65,0.25 +86.00,0.00,56.00,0.48,1.77,0.28 +35.30,1.00,33.00,0.74,1.54,0.20 +52.00,0.00,22.00,0.66,1.54,0.21 +30.00,0.00,0.00,1.03,1.76,0.25 +74.00,0.00,44.00,0.32,1.64,0.29 +30.00,0.00,0.00,0.51,1.80,0.29 +27.20,0.00,0.00,0.47,1.63,0.23 +19.10,0.00,0.00,0.59,1.66,0.27 +55.00,0.00,25.00,0.36,1.67,0.32 +58.00,0.00,28.00,0.32,1.59,0.31 +40.00,0.00,10.00,0.76,1.80,0.48 +56.00,0.00,26.00,0.59,1.78,0.36 +98.00,0.00,68.00,0.41,1.56,0.25 +18.90,1.00,1.00,0.60,1.60,0.25 +30.00,0.00,0.00,0.81,1.79,0.41 +73.50,1.00,55.00,0.43,1.55,0.27 +44.00,0.00,14.00,0.43,1.63,0.26 +30.00,0.00,0.00,0.73,1.80,0.43 +9.30,1.00,0.00,0.60,1.58,0.26 +61.00,0.00,31.00,0.33,1.59,0.31 +19.20,1.00,0.00,0.57,1.55,0.17 +62.00,0.00,32.00,0.70,1.57,0.23 +64.80,1.00,42.00,0.35,1.57,0.25 +70.00,0.00,40.00,0.51,1.70,0.24 +7.30,0.00,0.00,0.82,1.58,0.16 +98.00,0.00,68.00,0.32,1.60,0.31 +91.00,0.00,61.00,0.36,1.66,0.31 +49.00,0.00,19.00,0.79,1.73,0.25 +45.00,0.00,15.00,0.42,1.72,0.27 +1.40,0.00,0.00,0.85,1.66,0.18 +69.00,0.00,39.00,0.67,1.52,0.19 +43.00,0.00,13.00,0.68,1.74,0.41 +74.60,1.00,50.00,0.38,1.66,0.28 +18.60,0.00,0.00,0.84,1.67,0.25 +52.30,1.00,37.00,0.62,1.77,0.24 +30.00,0.00,0.00,0.42,1.67,0.25 +16.40,0.00,0.00,1.11,1.89,0.56 +28.30,0.00,0.00,0.50,1.77,0.37 +36.00,0.00,6.00,0.42,1.69,0.26 +88.50,1.00,76.00,0.46,1.64,0.26 +30.00,0.00,0.00,0.61,1.67,0.23 +58.00,0.00,28.00,0.34,1.56,0.26 +18.00,0.00,0.00,0.52,1.64,0.30 +25.40,1.00,15.00,0.75,1.76,0.24 +44.00,0.00,14.00,0.50,1.58,0.21 +71.00,0.00,41.00,0.38,1.59,0.26 +11.60,0.00,0.00,0.56,1.67,0.32 +30.00,0.00,0.00,0.54,1.57,0.18 +74.00,0.00,44.00,0.36,1.64,0.32 +10.30,0.00,0.00,0.47,1.70,0.26 +4.10,0.00,0.00,0.33,1.59,0.31 +1.10,0.00,0.00,0.36,1.63,0.29 +59.00,0.00,29.00,0.70,1.72,0.25 +82.00,1.00,61.00,0.38,1.68,0.28 +50.00,0.00,20.00,0.61,1.52,0.19 +90.00,0.00,60.00,0.39,1.62,0.25 +55.00,0.00,25.00,0.43,1.56,0.28 +35.00,0.00,5.00,0.82,1.58,0.16 +63.00,0.00,33.00,0.35,1.65,0.28 +52.00,0.00,22.00,0.43,1.61,0.24 +61.00,0.00,31.00,0.72,1.51,0.18 +13.70,0.00,0.00,0.69,1.53,0.20 +30.00,0.00,0.00,0.54,1.55,0.18 +10.50,0.00,0.00,0.64,1.58,0.20 +69.00,0.00,39.00,0.61,1.55,0.21 +108.00,0.00,78.00,0.57,1.68,0.33 +19.40,0.00,0.00,0.53,1.67,0.24 +14.00,1.00,0.00,0.86,1.80,0.43 +54.00,0.00,24.00,0.43,1.67,0.27 +41.00,0.00,11.00,0.42,1.65,0.25 +33.00,0.00,3.00,0.66,1.69,0.30 +56.00,0.00,26.00,0.53,1.66,0.23 +82.00,0.00,52.00,0.50,1.65,0.29 +25.00,0.00,0.00,0.60,1.55,0.21 +47.00,0.00,17.00,0.63,1.56,0.22 +63.00,0.00,33.00,0.33,1.61,0.28 +101.00,0.00,71.00,0.42,1.65,0.25 +87.00,0.00,57.00,0.42,1.67,0.25 +52.00,0.00,22.00,0.36,1.63,0.26 +33.00,0.00,3.00,0.64,1.69,0.30 +42.00,0.00,12.00,0.57,1.68,0.28 +91.00,0.00,61.00,0.37,1.65,0.29 +29.30,0.00,0.00,0.79,1.55,0.17 +17.50,0.00,0.00,0.43,1.81,0.39 +86.00,0.00,56.00,0.41,1.66,0.26 +52.00,0.00,22.00,0.42,1.63,0.25 +69.10,1.00,58.00,0.61,1.68,0.23 +49.00,0.00,19.00,0.77,1.54,0.17 +56.90,1.00,27.00,0.42,1.67,0.26 +77.10,1.00,60.00,0.56,1.72,0.30 +14.90,0.00,0.00,0.57,1.51,0.17 +7.70,0.00,0.00,0.94,1.74,0.20 +71.00,0.00,41.00,0.35,1.60,0.27 +20.40,0.00,0.00,0.93,1.65,0.19 +30.00,0.00,0.00,0.63,1.53,0.16 +74.00,0.00,44.00,0.32,1.63,0.29 +11.10,0.00,0.00,0.58,1.66,0.27 +106.00,0.00,76.00,0.47,1.64,0.26 +45.00,0.00,15.00,0.44,1.66,0.25 +54.00,0.00,24.00,0.54,1.56,0.18 +60.50,1.00,36.00,0.46,1.67,0.26 +18.80,0.00,0.00,0.54,1.78,0.37 +72.00,0.00,42.00,0.66,1.80,0.38 +48.00,0.00,18.00,0.52,1.59,0.20 +98.00,0.00,68.00,0.52,1.82,0.29 +81.10,1.00,76.00,0.53,1.70,0.29 +53.00,0.00,23.00,0.41,1.85,0.40 +10.70,0.00,0.00,0.31,1.57,0.30 +69.00,0.00,39.00,0.41,1.62,0.26 +60.00,0.00,30.00,0.44,1.66,0.25 +33.00,1.00,21.00,0.70,1.54,0.15 +64.00,0.00,34.00,0.38,1.66,0.30 +44.00,0.00,14.00,0.44,1.64,0.26 +45.00,0.00,15.00,0.54,1.69,0.23 +53.00,0.00,23.00,0.41,1.60,0.24 +30.00,0.00,0.00,0.78,1.79,0.41 +19.80,0.00,0.00,0.42,1.71,0.27 +44.00,0.00,14.00,0.46,1.70,0.25 +0.20,0.00,0.00,0.43,1.71,0.26 +56.60,1.00,52.00,0.86,1.69,0.19 +60.00,0.00,30.00,0.44,1.72,0.25 +2.60,0.00,0.00,0.60,1.50,0.17 +50.70,1.00,37.00,1.10,1.63,0.19 +49.00,0.00,19.00,0.32,1.62,0.30 +40.00,0.00,10.00,0.84,1.57,0.16 +21.80,1.00,17.00,0.56,1.68,0.23 +45.00,0.00,15.00,0.63,1.49,0.15 +9.30,0.00,0.00,0.66,1.72,0.34 +56.00,0.00,26.00,0.48,1.60,0.27 +30.00,0.00,0.00,0.32,1.60,0.31 +61.00,0.00,31.00,0.59,1.54,0.20 +50.00,0.00,20.00,0.78,1.68,0.32 +63.00,0.00,33.00,0.38,1.58,0.28 +73.00,0.00,43.00,0.62,1.68,0.23 +6.60,0.00,0.00,0.34,1.62,0.30 +108.00,0.00,78.00,0.69,1.54,0.17 +58.90,1.00,29.00,0.41,1.67,0.26 +97.00,0.00,67.00,0.49,1.64,0.22 +50.00,0.00,20.00,0.48,1.67,0.24 +30.00,0.00,0.00,0.96,1.64,0.18 +30.00,0.00,0.00,1.01,1.68,0.21 +34.00,0.00,4.00,0.32,1.74,0.29 +50.00,0.00,20.00,0.53,1.72,0.24 +30.00,0.00,0.00,0.87,1.72,0.23 +30.00,1.00,26.00,0.78,1.57,0.16 +47.00,0.00,17.00,0.51,1.64,0.23 +92.00,0.00,62.00,0.33,1.60,0.31 +30.00,0.00,0.00,0.59,1.53,0.17 +62.00,0.00,32.00,0.49,1.56,0.25 +6.00,1.00,0.00,0.84,1.59,0.16 +91.00,0.00,61.00,0.37,1.66,0.28 +81.00,0.00,51.00,0.34,1.59,0.27 +72.00,0.00,42.00,0.37,1.65,0.29 +30.00,0.00,0.00,0.86,1.81,0.40 +57.50,1.00,36.00,0.32,1.60,0.29 +81.10,1.00,69.00,0.56,1.52,0.17 +30.00,0.00,0.00,0.53,1.81,0.29 +3.40,0.00,0.00,0.59,1.53,0.20 +72.00,0.00,42.00,0.36,1.60,0.25 +14.40,0.00,0.00,0.56,1.60,0.22 +12.00,0.00,0.00,0.42,1.66,0.25 +99.00,0.00,69.00,0.61,1.50,0.17 +42.10,1.00,17.00,0.85,1.59,0.16 +71.00,0.00,41.00,0.54,1.82,0.28 +58.00,0.00,28.00,0.35,1.55,0.28 +41.00,0.00,11.00,0.54,1.66,0.26 +58.00,0.00,28.00,0.31,1.59,0.28 +2.50,0.00,0.00,0.60,1.67,0.24 +53.00,0.00,23.00,0.35,1.60,0.28 +72.00,0.00,42.00,0.51,1.75,0.37 +11.40,0.00,0.00,0.42,1.68,0.26 +45.00,0.00,15.00,0.44,1.72,0.27 +29.50,1.00,10.00,0.83,1.62,0.18 +90.00,0.00,60.00,0.47,1.66,0.27 +45.00,0.00,15.00,0.73,1.68,0.23 +44.00,0.00,14.00,0.40,1.63,0.25 +64.00,0.00,34.00,0.34,1.61,0.31 +56.00,0.00,26.00,0.77,1.57,0.15 +61.00,0.00,31.00,0.32,1.59,0.31 +33.20,1.00,4.00,0.61,1.53,0.16 +20.60,0.00,0.00,0.47,1.67,0.27 +68.00,0.00,38.00,0.46,1.62,0.24 +52.00,0.00,22.00,0.62,1.55,0.21 +30.00,0.00,0.00,0.48,1.65,0.27 +79.00,0.00,49.00,0.45,1.73,0.28 +71.00,0.00,41.00,0.76,1.68,0.24 +60.00,0.00,30.00,0.33,1.66,0.28 +38.00,0.00,8.00,0.53,1.54,0.18 +73.00,0.00,43.00,0.39,1.67,0.28 +87.00,0.00,57.00,0.42,1.67,0.25 +22.90,0.00,0.00,0.35,1.58,0.27 +23.00,0.00,0.00,0.83,1.80,0.49 +19.10,0.00,0.00,0.40,1.66,0.27 +30.00,0.00,0.00,0.68,1.53,0.19 +72.00,0.00,42.00,0.51,1.76,0.37 +30.00,0.00,0.00,0.40,1.61,0.24 +72.00,0.00,42.00,0.43,1.84,0.40 +30.00,0.00,0.00,0.40,1.68,0.28 +30.00,0.00,0.00,0.60,1.70,0.23 +30.00,0.00,0.00,0.75,1.79,0.39 +47.10,1.00,20.00,0.41,1.57,0.27 +55.00,0.00,25.00,0.69,1.88,0.25 +36.90,1.00,13.00,0.32,1.61,0.28 +72.00,0.00,42.00,0.35,1.65,0.31 +42.00,0.00,12.00,0.34,1.62,0.27 +69.00,0.00,39.00,0.34,1.61,0.27 +6.20,0.00,0.00,0.33,1.61,0.31 +30.70,1.00,19.00,0.48,1.85,0.41 +66.10,1.00,42.00,0.64,1.79,0.37 +43.30,1.00,42.00,0.68,1.80,0.38 +106.00,0.00,76.00,0.48,1.65,0.27 +86.00,0.00,56.00,0.58,1.71,0.23 +30.00,0.00,0.00,0.59,1.53,0.18 +68.80,1.00,58.00,0.63,1.68,0.23 +40.00,1.00,20.00,0.78,1.68,0.33 +11.30,0.00,0.00,0.66,1.71,0.24 +54.00,0.00,24.00,0.69,1.84,0.25 +2.70,0.00,0.00,0.95,1.63,0.18 +29.40,0.00,0.00,0.68,1.58,0.25 +73.00,0.00,43.00,0.43,1.72,0.26 +45.00,0.00,15.00,0.44,1.65,0.25 +41.00,0.00,11.00,0.79,1.54,0.18 +30.00,0.00,0.00,0.78,1.57,0.21 +75.10,1.00,60.00,0.57,1.68,0.29 +53.00,0.00,23.00,0.39,1.66,0.26 +45.00,0.00,15.00,0.53,1.67,0.24 +22.50,0.00,0.00,0.31,1.58,0.29 +56.00,0.00,26.00,0.49,1.60,0.27 +69.00,0.00,39.00,0.43,1.71,0.26 +30.00,0.00,0.00,0.58,1.63,0.25 +79.00,0.00,49.00,0.54,1.66,0.31 +75.70,1.00,50.00,0.38,1.66,0.28 +57.80,1.00,39.00,0.36,1.55,0.28 +12.00,0.00,0.00,0.78,1.76,0.37 +70.00,1.00,50.00,0.38,1.66,0.27 +44.00,0.00,14.00,0.47,1.75,0.27 +28.50,1.00,0.00,0.57,1.51,0.16 +30.00,0.00,0.00,0.88,1.82,0.51 +64.00,0.00,34.00,0.39,1.68,0.28 +45.00,0.00,15.00,0.54,1.69,0.23 +30.00,0.00,0.00,0.54,1.58,0.19 +53.00,0.00,23.00,0.31,1.57,0.31 +30.00,0.00,0.00,0.99,1.78,0.21 +62.40,1.00,42.00,0.74,1.76,0.36 +86.00,0.00,56.00,0.46,1.72,0.26 +41.80,1.00,18.00,0.67,1.50,0.16 +60.00,0.00,30.00,0.60,1.83,0.26 +30.00,0.00,0.00,0.61,1.70,0.38 +36.70,1.00,20.00,0.55,1.54,0.20 +9.60,0.00,0.00,0.59,1.50,0.17 +2.50,0.00,0.00,0.54,1.54,0.18 +65.00,0.00,35.00,0.35,1.65,0.31 +92.00,0.00,62.00,0.40,1.68,0.28 +90.00,0.00,60.00,0.40,1.66,0.27 +30.00,0.00,0.00,0.51,1.57,0.19 +41.00,0.00,11.00,0.73,1.85,0.25 +53.00,0.00,23.00,0.72,1.59,0.23 +26.90,1.00,0.00,0.72,1.67,0.35 +17.40,0.00,0.00,0.37,1.63,0.27 +99.00,0.00,69.00,0.56,1.52,0.17 +53.00,0.00,23.00,0.51,1.72,0.32 +45.00,0.00,15.00,0.62,1.54,0.21 +61.00,0.00,31.00,0.52,1.67,0.29 +67.90,1.00,56.00,0.50,1.64,0.22 +34.00,0.00,4.00,0.33,1.73,0.27 +72.00,0.00,42.00,0.82,1.80,0.40 +51.00,0.00,21.00,0.35,1.63,0.31 +64.40,1.00,42.00,0.49,1.82,0.40 +40.00,0.00,10.00,0.93,1.73,0.20 +90.80,1.00,66.00,0.47,1.64,0.24 +44.00,0.00,14.00,0.58,1.78,0.26 +30.00,0.00,0.00,0.75,1.56,0.15 +14.80,0.00,0.00,0.63,1.56,0.21 +63.00,0.00,33.00,0.69,1.53,0.20 +0.10,0.00,0.00,0.77,1.62,0.25 +72.00,0.00,42.00,0.35,1.59,0.25 +13.70,0.00,0.00,0.47,1.64,0.24 +72.00,0.00,42.00,0.48,1.83,0.40 +69.00,0.00,39.00,0.43,1.58,0.25 +61.00,0.00,31.00,0.35,1.63,0.31 +30.00,0.00,0.00,0.81,1.58,0.17 +22.20,1.00,20.00,0.78,1.67,0.30 +30.00,0.00,0.00,0.59,1.53,0.17 +12.80,0.00,0.00,1.12,1.65,0.19 +5.30,0.00,0.00,0.44,1.69,0.28 +30.00,0.00,0.00,0.72,1.55,0.20 +30.00,0.00,0.00,0.86,1.80,0.43 +67.00,0.00,37.00,0.96,1.76,0.21 +43.00,0.00,13.00,0.31,1.59,0.28 +46.20,1.00,20.00,0.40,1.58,0.27 +45.90,1.00,42.00,0.35,1.58,0.26 +30.00,0.00,0.00,0.38,1.57,0.24 +6.60,0.00,0.00,1.11,1.63,0.19 +23.90,1.00,1.00,0.62,1.60,0.26 +87.00,0.00,57.00,0.46,1.70,0.26 +52.20,1.00,39.00,0.66,1.52,0.18 +66.00,0.00,36.00,0.36,1.62,0.28 +39.00,0.00,9.00,0.35,1.60,0.27 +27.80,0.00,0.00,0.36,1.66,0.32 +63.00,0.00,33.00,0.50,1.65,0.24 +48.00,0.00,18.00,0.35,1.63,0.32 +54.00,0.00,24.00,0.52,1.57,0.19 +61.00,0.00,31.00,0.66,1.84,0.25 +60.00,0.00,30.00,0.51,1.69,0.24 +12.00,0.00,0.00,0.34,1.59,0.27 +51.00,0.00,21.00,0.49,1.65,0.28 +61.00,0.00,31.00,0.43,1.72,0.26 +30.00,0.00,0.00,0.75,1.79,0.39 +63.00,0.00,33.00,0.93,1.59,0.22 +70.00,0.00,40.00,0.38,1.61,0.25 +31.00,0.00,1.00,0.59,1.59,0.25 +67.00,0.00,37.00,0.60,1.74,0.24 +47.00,0.00,17.00,0.81,1.65,0.28 +9.50,0.00,0.00,0.31,1.57,0.30 +44.00,0.00,14.00,0.65,1.56,0.23 +20.80,0.00,0.00,0.68,1.69,0.23 +45.00,0.00,15.00,0.41,1.71,0.27 +101.00,0.00,71.00,0.39,1.58,0.26 +6.90,1.00,0.00,1.17,1.73,0.23 +66.00,0.00,36.00,0.32,1.59,0.28 +59.00,0.00,29.00,0.60,1.76,0.26 +30.00,0.00,0.00,0.42,1.67,0.25 +72.00,0.00,42.00,0.50,1.79,0.39 +78.80,1.00,62.00,0.82,1.57,0.17 +98.00,0.00,68.00,0.52,1.81,0.29 +25.90,0.00,0.00,0.33,1.60,0.27 +1.50,0.00,0.00,0.39,1.59,0.26 +5.50,0.00,0.00,0.57,1.68,0.34 +58.00,0.00,28.00,0.47,1.69,0.25 +38.00,0.00,8.00,0.53,1.55,0.18 +56.40,1.00,31.00,0.51,1.67,0.28 +73.00,0.00,43.00,0.39,1.66,0.27 +59.00,0.00,29.00,0.42,1.66,0.25 +40.00,0.00,10.00,0.95,1.75,0.20 +54.00,0.00,24.00,0.51,1.58,0.20 +30.00,0.00,0.00,0.55,1.81,0.28 +81.00,0.00,51.00,0.33,1.60,0.28 +30.00,0.00,0.00,0.62,1.54,0.20 +18.10,0.00,0.00,0.60,1.56,0.20 +25.80,0.00,0.00,0.87,1.81,0.50 +50.50,1.00,31.00,0.72,1.74,0.36 +52.00,0.00,22.00,0.42,1.67,0.25 +73.90,1.00,69.00,0.59,1.50,0.17 +51.00,0.00,21.00,0.52,1.65,0.28 +27.70,0.00,0.00,0.74,1.54,0.20 +54.00,0.00,24.00,0.32,1.77,0.29 +43.00,0.00,13.00,0.41,1.68,0.27 +62.00,0.00,32.00,0.48,1.56,0.25 +55.00,0.00,25.00,0.31,1.57,0.31 +55.20,1.00,33.00,0.63,1.68,0.23 +20.70,0.00,0.00,0.70,1.73,0.36 +47.00,0.00,17.00,0.39,1.56,0.24 +22.40,1.00,20.00,1.06,1.87,0.55 +34.10,1.00,31.00,0.36,1.65,0.32 +50.00,0.00,20.00,0.77,1.67,0.29 +1.00,0.00,0.00,1.02,1.76,0.32 +48.00,0.00,18.00,0.33,1.65,0.30 +9.30,0.00,0.00,1.12,1.64,0.20 +62.00,0.00,32.00,0.58,1.59,0.26 +83.00,0.00,53.00,0.38,1.67,0.28 +61.00,0.00,31.00,0.45,1.63,0.24 +72.00,0.00,42.00,0.31,1.58,0.31 +101.00,0.00,71.00,0.39,1.58,0.26 +43.00,0.00,13.00,0.44,1.73,0.28 +4.50,0.00,0.00,0.60,1.55,0.21 +58.00,0.00,28.00,0.32,1.71,0.29 +99.00,0.00,69.00,0.59,1.51,0.17 +64.60,1.00,37.00,1.03,1.77,0.21 +20.70,1.00,0.00,1.25,1.75,0.25 +4.80,0.00,0.00,0.66,1.89,0.25 +52.00,0.00,22.00,0.38,1.68,0.28 +30.70,1.00,10.00,1.03,1.61,0.18 +86.00,0.00,56.00,0.55,1.81,0.28 +36.00,0.00,6.00,0.54,1.58,0.21 +64.20,1.00,41.00,0.80,1.68,0.24 +30.00,0.00,0.00,0.88,1.68,0.25 +20.60,0.00,0.00,0.51,1.65,0.28 +54.00,0.00,24.00,0.53,1.57,0.18 +27.10,0.00,0.00,0.69,1.53,0.20 +41.00,0.00,11.00,0.76,1.93,0.25 +99.00,0.00,69.00,0.58,1.51,0.17 +78.00,0.00,48.00,0.48,1.77,0.28 +47.00,0.00,17.00,0.58,1.79,0.37 +30.00,0.00,0.00,0.54,1.62,0.22 +83.00,0.00,53.00,0.65,1.74,0.24 +47.20,1.00,42.00,0.39,1.69,0.28 +72.30,1.00,69.00,0.61,1.50,0.17 +30.00,0.00,0.00,0.45,1.72,0.28 +49.00,0.00,19.00,0.36,1.60,0.25 +33.00,0.00,3.00,0.32,1.66,0.32 +59.00,0.00,29.00,0.41,1.68,0.26 +61.00,0.00,31.00,0.43,1.73,0.26 +87.00,0.00,57.00,0.47,1.73,0.26 +7.70,0.00,0.00,0.61,1.68,0.23 +41.50,1.00,20.00,1.01,1.77,0.21 +29.40,0.00,0.00,0.46,1.63,0.25 +76.40,1.00,47.00,0.79,1.55,0.20 +56.80,1.00,44.00,0.53,1.79,0.28 +73.50,1.00,57.00,0.45,1.69,0.27 +45.00,0.00,15.00,0.72,1.75,0.23 +98.70,1.00,69.00,0.57,1.51,0.17 +51.00,0.00,21.00,0.67,1.53,0.15 +71.00,0.00,41.00,0.38,1.59,0.26 +20.50,0.00,0.00,0.48,1.65,0.27 +48.00,0.00,18.00,0.53,1.58,0.18 +66.00,0.00,36.00,0.47,1.64,0.24 +83.00,0.00,53.00,0.51,1.57,0.20 +59.00,0.00,29.00,0.41,1.68,0.26 +28.10,0.00,0.00,0.56,1.74,0.33 +49.00,0.00,19.00,0.69,1.51,0.15 +73.00,0.00,43.00,0.61,1.68,0.23 +70.60,1.00,67.00,0.57,1.59,0.21 +89.40,1.00,69.00,0.56,1.52,0.17 +101.00,0.00,71.00,0.37,1.57,0.28 +96.00,0.00,66.00,0.55,1.65,0.22 +10.30,0.00,0.00,0.88,1.67,0.25 +30.00,0.00,0.00,0.88,1.67,0.26 +31.00,0.00,1.00,0.86,1.71,0.21 +58.60,1.00,35.00,0.54,1.66,0.30 +1.90,0.00,0.00,1.14,1.64,0.20 +2.00,0.00,0.00,0.47,1.61,0.25 +50.00,0.00,20.00,0.54,1.56,0.20 +44.00,0.00,14.00,0.54,1.66,0.23 +74.00,0.00,44.00,0.35,1.66,0.28 +30.00,0.00,0.00,0.42,1.63,0.24 +30.00,0.00,0.00,0.49,1.56,0.25 +27.20,0.00,0.00,1.10,1.63,0.19 +30.00,0.00,0.00,0.31,1.52,0.27 +73.00,0.00,43.00,0.44,1.72,0.26 +31.00,0.00,1.00,0.41,1.67,0.26 +73.00,0.00,43.00,0.45,1.76,0.28 +58.00,0.00,28.00,0.42,1.56,0.28 +14.20,1.00,0.00,1.09,1.88,0.56 +30.00,0.00,0.00,0.78,1.57,0.15 +65.40,1.00,37.00,0.60,1.73,0.24 +41.00,0.00,11.00,0.71,1.83,0.24 +6.00,0.00,0.00,0.36,1.63,0.30 +61.00,0.00,31.00,0.53,1.67,0.29 +3.10,0.00,0.00,0.99,1.76,0.31 +49.00,0.00,19.00,0.70,1.53,0.19 +27.70,0.00,0.00,0.82,1.68,0.23 +34.00,0.00,4.00,0.60,1.51,0.16 +58.00,0.00,28.00,0.65,1.74,0.34 +38.50,1.00,11.00,0.79,1.54,0.18 +30.00,0.00,0.00,0.78,1.57,0.21 +47.00,0.00,17.00,0.51,1.71,0.30 +62.00,0.00,32.00,0.33,1.60,0.32 +43.20,1.00,17.00,0.62,1.56,0.22 +30.00,0.00,0.00,0.73,1.81,0.43 +18.20,1.00,0.00,1.14,1.77,0.27 +36.30,1.00,14.00,0.43,1.64,0.26 +14.10,0.00,0.00,0.83,1.56,0.21 +44.00,0.00,14.00,0.54,1.60,0.18 +30.00,0.00,0.00,0.40,1.61,0.24 +30.00,0.00,0.00,0.88,1.67,0.25 +50.00,0.00,20.00,0.57,1.68,0.22 +6.10,0.00,0.00,0.60,1.70,0.23 +7.40,1.00,0.00,0.34,1.55,0.27 +80.00,0.00,50.00,0.38,1.66,0.28 +30.00,0.00,0.00,0.69,1.77,0.25 +76.30,1.00,71.00,0.41,1.62,0.24 +30.00,0.00,0.00,0.70,1.55,0.18 +22.60,0.00,0.00,1.01,1.77,0.21 +23.20,0.00,0.00,0.71,1.52,0.18 +64.00,0.00,34.00,0.34,1.61,0.31 +36.80,1.00,14.00,1.21,1.81,0.29 +70.00,0.00,40.00,0.38,1.62,0.25 +72.00,0.00,42.00,0.42,1.85,0.40 +30.00,0.00,0.00,0.46,1.69,0.26 +40.70,1.00,14.00,1.22,1.81,0.30 +78.10,1.00,50.00,0.59,1.58,0.22 +98.00,0.00,68.00,0.39,1.55,0.24 +30.40,1.00,26.00,0.85,1.68,0.36 +64.00,1.00,60.00,0.58,1.69,0.28 +12.90,0.00,0.00,0.95,1.63,0.30 +2.00,0.00,0.00,0.61,1.58,0.27 +82.00,0.00,52.00,0.87,1.69,0.19 +19.90,0.00,0.00,0.75,1.61,0.24 +44.00,0.00,14.00,0.44,1.71,0.25 +57.00,0.00,27.00,0.42,1.66,0.26 +44.00,0.00,14.00,0.50,1.58,0.21 +69.00,0.00,39.00,0.57,1.68,0.23 +60.00,0.00,30.00,0.47,1.66,0.25 +26.20,1.00,1.00,0.65,1.61,0.27 +71.00,0.00,41.00,0.62,1.49,0.15 +49.00,0.00,19.00,0.78,1.74,0.25 +45.00,0.00,15.00,0.39,1.58,0.27 +12.50,0.00,0.00,0.40,1.56,0.25 +42.00,0.00,12.00,0.54,1.62,0.25 +50.00,0.00,20.00,0.57,1.61,0.23 +40.00,1.00,11.00,0.42,1.66,0.24 +88.00,0.00,58.00,0.93,1.61,0.17 +30.00,0.00,0.00,0.46,1.64,0.26 +106.00,0.00,76.00,0.34,1.55,0.25 +37.90,1.00,17.00,0.38,1.67,0.29 +30.00,0.00,0.00,0.73,1.79,0.39 +30.00,0.00,0.00,0.33,1.46,0.26 +61.00,0.00,31.00,0.43,1.71,0.26 +7.30,0.00,0.00,0.61,1.51,0.18 +44.00,0.00,14.00,0.54,1.59,0.18 +37.60,1.00,33.00,0.43,1.70,0.27 +81.00,0.00,51.00,0.32,1.62,0.30 +6.80,0.00,0.00,0.93,1.63,0.17 +66.00,0.00,36.00,0.36,1.62,0.28 +47.00,0.00,17.00,0.56,1.68,0.25 +5.90,0.00,0.00,0.41,1.71,0.27 +72.00,0.00,42.00,0.54,1.75,0.26 +48.00,0.00,18.00,0.35,1.66,0.32 +81.00,0.00,51.00,0.33,1.59,0.28 +61.00,0.00,31.00,0.46,1.64,0.24 +56.00,0.00,26.00,0.56,1.76,0.34 +84.00,0.00,54.00,0.48,1.70,0.30 +53.00,0.00,23.00,0.30,1.55,0.30 +30.00,0.00,0.00,0.82,1.75,0.23 +40.50,1.00,19.00,0.76,1.74,0.25 +66.00,0.00,36.00,0.32,1.59,0.28 +92.90,1.00,78.00,0.57,1.60,0.22 +50.00,0.00,20.00,0.48,1.67,0.24 +6.90,0.00,0.00,0.44,1.72,0.26 +85.00,0.00,55.00,0.48,1.61,0.27 +41.00,0.00,11.00,0.42,1.65,0.24 +30.00,0.00,0.00,0.61,1.55,0.21 +38.80,1.00,14.00,0.52,1.60,0.21 +55.00,0.00,25.00,0.69,1.93,0.25 +33.00,0.00,3.00,0.42,1.69,0.26 +98.90,1.00,71.00,0.49,1.64,0.25 +47.00,0.00,17.00,0.56,1.68,0.23 +65.00,0.00,35.00,0.32,1.60,0.31 +53.00,0.00,23.00,0.45,1.69,0.26 +17.00,0.00,0.00,0.66,1.88,0.25 +63.00,0.00,33.00,0.43,1.70,0.27 +51.50,1.00,40.00,1.17,1.73,0.23 +72.00,1.00,67.00,0.59,1.69,0.26 +58.00,0.00,28.00,0.32,1.56,0.27 +69.00,0.00,39.00,0.60,1.55,0.20 +45.20,1.00,20.00,0.79,1.67,0.30 +30.00,0.00,0.00,0.79,1.55,0.17 +44.00,0.00,14.00,0.57,1.68,0.26 +15.90,0.00,0.00,0.60,1.55,0.20 +29.00,1.00,10.00,0.95,1.66,0.19 +30.00,0.00,0.00,0.91,1.73,0.20 +104.00,0.00,74.00,0.30,1.57,0.29 +44.00,0.00,14.00,0.53,1.59,0.19 +30.00,0.00,0.00,0.53,1.56,0.18 +85.00,0.00,55.00,0.38,1.55,0.25 +70.00,0.00,40.00,0.39,1.62,0.25 +85.00,0.00,55.00,0.40,1.58,0.27 +82.40,1.00,61.00,0.35,1.60,0.27 +72.00,0.00,42.00,0.43,1.72,0.27 +48.00,0.00,18.00,0.57,1.68,0.23 +42.00,0.00,12.00,0.33,1.60,0.27 +69.00,1.00,41.00,0.81,1.67,0.24 +11.10,1.00,11.00,0.75,1.58,0.17 +24.00,0.00,0.00,0.38,1.55,0.25 +47.00,0.00,17.00,0.34,1.54,0.28 +41.00,0.00,11.00,0.71,1.82,0.24 +90.00,0.00,60.00,0.45,1.62,0.26 +44.00,0.00,14.00,0.68,1.58,0.25 +11.70,0.00,0.00,0.34,1.50,0.27 +51.00,0.00,21.00,0.43,1.73,0.27 +72.00,0.00,42.00,0.68,1.80,0.38 +62.00,0.00,32.00,0.39,1.69,0.28 +26.70,1.00,17.00,0.73,1.59,0.21 +11.60,0.00,0.00,0.74,1.67,0.31 +35.20,1.00,28.00,0.33,1.57,0.27 +55.00,0.00,25.00,0.41,1.51,0.26 +10.50,0.00,0.00,0.74,1.74,0.25 +52.00,0.00,22.00,0.36,1.68,0.31 +63.60,1.00,47.00,0.88,1.58,0.21 +32.00,0.00,2.00,0.62,1.58,0.22 +76.00,0.00,46.00,0.32,1.61,0.29 +30.00,0.00,0.00,0.97,1.74,0.25 +29.70,0.00,0.00,0.51,1.58,0.20 +99.00,0.00,69.00,0.55,1.52,0.18 +106.00,0.00,76.00,0.32,1.56,0.27 +38.90,1.00,20.00,0.59,1.53,0.19 +30.00,0.00,0.00,0.79,1.57,0.21 +30.00,0.00,0.00,0.88,1.82,0.50 +91.00,0.00,61.00,0.39,1.69,0.28 +56.50,1.00,42.00,0.84,1.79,0.40 +69.00,0.00,39.00,0.61,1.55,0.20 +30.00,0.00,0.00,0.46,1.69,0.26 +101.00,0.00,71.00,0.64,1.57,0.20 +45.00,0.00,15.00,0.42,1.72,0.27 +69.00,0.00,39.00,0.60,1.68,0.23 +69.00,0.00,39.00,0.33,1.59,0.27 +71.00,0.00,41.00,0.61,1.49,0.15 +51.00,0.00,21.00,0.47,1.68,0.25 +30.00,0.00,0.00,0.82,1.80,0.39 +57.20,1.00,39.00,0.66,1.52,0.19 +45.00,0.00,15.00,0.45,1.67,0.25 +4.20,0.00,0.00,0.86,1.58,0.18 +43.00,0.00,13.00,0.42,1.69,0.26 +59.00,0.00,29.00,0.40,1.68,0.27 +59.00,0.00,29.00,0.70,1.72,0.25 +21.60,0.00,0.00,0.82,1.60,0.16 +30.00,0.00,0.00,0.82,1.60,0.16 +99.00,0.00,69.00,0.58,1.51,0.17 +44.00,0.00,14.00,0.39,1.50,0.26 +19.00,0.00,0.00,0.44,1.73,0.35 +67.00,0.00,37.00,0.61,1.72,0.24 +63.00,0.00,33.00,0.55,1.72,0.25 +48.40,1.00,42.00,0.31,1.58,0.31 +30.00,0.00,0.00,0.47,1.68,0.25 +28.30,0.00,0.00,0.48,1.62,0.28 +48.00,0.00,18.00,0.70,1.69,0.22 +63.00,0.00,33.00,0.47,1.70,0.26 +54.00,0.00,24.00,0.50,1.58,0.20 +69.00,0.00,39.00,0.43,1.71,0.25 +42.00,0.00,12.00,0.34,1.62,0.26 +65.00,0.00,35.00,0.32,1.60,0.30 +49.90,1.00,35.00,0.53,1.66,0.29 +30.00,0.00,0.00,0.57,1.50,0.16 +50.00,0.00,20.00,0.71,1.51,0.16 +63.00,0.00,33.00,0.37,1.81,0.37 +30.00,0.00,0.00,0.87,1.57,0.18 +63.00,0.00,33.00,0.49,1.65,0.24 +69.10,1.00,43.00,0.39,1.65,0.27 +101.00,0.00,71.00,0.41,1.63,0.24 +10.00,0.00,0.00,0.75,1.61,0.28 +26.50,0.00,0.00,0.54,1.64,0.22 +30.00,0.00,0.00,0.72,1.54,0.15 +0.70,0.00,0.00,0.39,1.60,0.24 +19.20,0.00,0.00,0.64,1.58,0.21 +44.00,0.00,14.00,0.46,1.70,0.25 +26.20,1.00,0.00,0.93,1.70,0.24 +81.00,0.00,51.00,0.45,1.62,0.26 +23.40,0.00,0.00,0.45,1.76,0.28 +43.00,0.00,13.00,0.44,1.74,0.28 +66.10,1.00,43.00,0.45,1.76,0.28 +53.00,0.00,23.00,0.35,1.60,0.28 +17.10,1.00,17.00,0.89,1.60,0.17 +3.20,1.00,0.00,0.78,1.78,0.42 +91.00,0.00,61.00,0.35,1.58,0.28 +59.00,0.00,29.00,0.41,1.68,0.26 +72.40,1.00,49.00,0.70,1.59,0.26 +57.00,0.00,27.00,0.35,1.72,0.33 +39.50,1.00,19.00,0.61,1.60,0.28 +42.00,0.00,12.00,0.34,1.62,0.27 +92.00,0.00,62.00,0.35,1.62,0.30 +40.00,0.00,10.00,0.73,1.81,0.43 +1.70,0.00,0.00,0.50,1.61,0.21 +63.00,0.00,33.00,0.35,1.65,0.28 +27.50,1.00,20.00,0.65,1.51,0.18 +25.60,1.00,18.00,0.92,1.72,0.25 +18.60,1.00,10.00,0.73,1.81,0.43 +101.00,0.00,71.00,0.39,1.59,0.26 +101.00,0.00,71.00,0.64,1.58,0.20 +43.50,1.00,15.00,1.03,1.62,0.17 +62.00,0.00,32.00,0.34,1.61,0.32 +81.00,0.00,51.00,0.32,1.61,0.29 +67.00,0.00,37.00,0.62,1.56,0.22 +72.00,0.00,42.00,0.47,1.83,0.40 +39.00,0.00,9.00,0.37,1.65,0.29 +44.40,1.00,21.00,0.60,1.58,0.23 +63.00,0.00,33.00,0.33,1.62,0.28 +43.00,0.00,13.00,0.53,1.53,0.17 +68.10,1.00,56.00,0.54,1.71,0.25 +39.90,1.00,38.00,0.55,1.58,0.19 +24.90,1.00,10.00,0.83,1.62,0.18 +65.00,0.00,35.00,0.34,1.60,0.29 +19.90,0.00,0.00,0.60,1.57,0.23 +75.00,0.00,45.00,0.76,1.59,0.18 +93.00,0.00,63.00,0.59,1.72,0.24 +74.00,0.00,44.00,0.36,1.66,0.32 +59.00,0.00,29.00,0.36,1.59,0.25 +101.00,0.00,71.00,0.53,1.66,0.27 +58.00,0.00,28.00,0.67,1.74,0.34 +58.30,1.00,39.00,0.63,1.54,0.20 +82.00,0.00,52.00,0.47,1.67,0.25 +13.80,1.00,0.00,0.70,1.52,0.19 +27.00,1.00,0.00,0.76,1.59,0.16 +27.40,0.00,0.00,0.82,1.56,0.17 +56.00,0.00,26.00,0.52,1.65,0.23 +33.60,1.00,29.00,0.42,1.67,0.25 +63.00,0.00,33.00,0.32,1.67,0.28 +44.00,0.00,14.00,0.62,1.60,0.22 +30.00,0.00,0.00,0.80,1.58,0.17 +10.10,0.00,0.00,0.34,1.55,0.26 +44.00,0.00,14.00,1.07,1.78,0.30 +46.00,0.00,16.00,0.46,1.72,0.26 +52.00,0.00,22.00,0.44,1.72,0.27 +2.30,0.00,0.00,1.00,1.64,0.30 +45.00,0.00,15.00,0.55,1.68,0.23 +30.00,0.00,0.00,0.32,1.60,0.31 +23.10,0.00,0.00,0.35,1.64,0.31 +30.00,0.00,0.00,0.92,1.83,0.42 +45.00,0.00,15.00,0.43,1.66,0.24 +40.00,0.00,10.00,0.36,1.57,0.23 +85.00,0.00,55.00,0.48,1.60,0.27 +20.40,0.00,0.00,0.71,1.51,0.16 +61.00,0.00,31.00,0.34,1.60,0.25 +45.00,0.00,15.00,0.73,1.68,0.23 +74.00,0.00,44.00,0.35,1.61,0.28 +101.00,0.00,71.00,0.53,1.82,0.29 +40.90,1.00,31.00,0.32,1.58,0.31 +34.00,0.00,4.00,0.81,1.59,0.17 +52.00,0.00,22.00,0.36,1.62,0.26 +43.00,0.00,13.00,0.65,1.59,0.22 +58.00,0.00,28.00,0.70,1.74,0.35 +30.00,0.00,0.00,0.55,1.51,0.16 +48.00,0.00,18.00,0.45,1.62,0.25 +61.00,0.00,31.00,0.36,1.65,0.32 +37.00,0.00,7.00,0.61,1.60,0.23 +34.00,0.00,4.00,0.60,1.68,0.23 +43.40,1.00,15.00,0.62,1.52,0.17 +30.00,0.00,0.00,0.59,1.61,0.25 +72.00,0.00,42.00,0.38,1.67,0.28 +30.00,0.00,0.00,0.33,1.59,0.31 +31.40,1.00,22.00,0.51,1.65,0.28 +69.00,0.00,39.00,0.61,1.55,0.21 +11.80,0.00,0.00,0.56,1.71,0.24 +13.30,0.00,0.00,0.37,1.66,0.28 +42.00,0.00,12.00,0.50,1.75,0.27 +1.30,0.00,0.00,0.74,1.80,0.39 +45.00,0.00,15.00,0.47,1.62,0.23 +87.00,0.00,57.00,0.49,1.74,0.28 +74.00,0.00,44.00,0.33,1.64,0.29 +74.00,0.00,44.00,0.41,1.81,0.38 +30.00,0.00,0.00,0.81,1.66,0.25 +57.70,1.00,55.00,0.39,1.57,0.28 +30.00,0.00,0.00,0.87,1.81,0.50 +51.00,0.00,21.00,0.47,1.72,0.25 +30.00,0.00,0.00,0.53,1.55,0.18 +33.00,0.00,3.00,0.46,1.64,0.26 +53.00,0.00,23.00,0.46,1.71,0.33 +30.00,0.00,0.00,0.77,1.73,0.23 +72.00,0.00,42.00,0.37,1.62,0.26 +16.10,1.00,0.00,0.82,1.64,0.18 +44.00,0.00,14.00,0.44,1.71,0.26 +52.00,1.00,33.00,0.60,1.57,0.23 +30.00,0.00,0.00,0.86,1.71,0.23 +5.40,1.00,0.00,0.82,1.71,0.23 +53.00,0.00,23.00,0.35,1.59,0.27 +74.00,0.00,44.00,0.35,1.64,0.28 +44.00,0.00,14.00,0.47,1.71,0.25 +46.60,1.00,25.00,0.41,1.53,0.27 +15.50,0.00,0.00,0.89,1.66,0.24 +42.00,0.00,12.00,0.51,1.59,0.19 +49.00,0.00,19.00,0.32,1.62,0.30 +30.00,0.00,0.00,0.33,1.56,0.27 +92.00,0.00,62.00,0.69,1.53,0.20 +75.00,0.00,45.00,0.69,1.51,0.15 +92.00,0.00,62.00,0.44,1.73,0.27 +108.00,0.00,78.00,0.56,1.67,0.32 +88.00,0.00,58.00,0.42,1.70,0.26 +64.00,0.00,34.00,0.36,1.64,0.30 +49.00,0.00,19.00,0.52,1.89,0.47 +47.00,0.00,17.00,0.38,1.68,0.29 +30.00,0.00,0.00,0.54,1.83,0.29 +19.00,0.00,0.00,0.82,1.63,0.19 +69.00,0.00,39.00,0.60,1.58,0.27 +30.00,0.00,0.00,0.55,1.81,0.28 +0.10,0.00,0.00,0.64,1.57,0.20 +30.00,0.00,0.00,0.78,1.57,0.15 +45.60,1.00,28.00,0.69,1.73,0.35 +48.00,0.00,18.00,0.56,1.68,0.23 +59.20,1.00,31.00,0.43,1.72,0.26 +44.00,0.00,14.00,0.54,1.59,0.18 +30.00,0.00,0.00,0.45,1.69,0.27 +63.00,0.00,33.00,0.75,1.54,0.20 +58.00,0.00,28.00,0.34,1.56,0.27 +60.00,0.00,30.00,0.71,1.54,0.15 +107.00,0.00,77.00,0.38,1.61,0.25 +34.00,0.00,4.00,0.33,1.68,0.27 +46.00,0.00,16.00,0.45,1.66,0.26 +50.00,0.00,20.00,0.58,1.69,0.26 +45.00,0.00,15.00,0.45,1.73,0.27 +30.00,0.00,0.00,0.67,1.52,0.18 +90.50,1.00,68.00,0.41,1.56,0.25 +83.00,0.00,53.00,0.82,1.68,0.22 +48.00,0.00,18.00,0.58,1.68,0.23 +66.00,0.00,36.00,0.45,1.72,0.27 +69.00,0.00,39.00,0.66,1.52,0.18 +39.30,1.00,31.00,0.64,1.71,0.34 +96.00,0.00,66.00,0.46,1.64,0.24 +66.00,0.00,36.00,0.44,1.76,0.37 +59.10,1.00,33.00,0.47,1.70,0.26 +66.00,0.00,36.00,0.48,1.64,0.24 +25.00,0.00,0.00,0.72,1.68,0.23 +57.20,1.00,44.00,0.36,1.64,0.28 +88.00,0.00,58.00,0.42,1.67,0.25 +24.50,0.00,0.00,0.62,1.57,0.22 +69.00,0.00,39.00,0.47,1.67,0.24 +12.20,0.00,0.00,0.49,1.65,0.24 +60.00,0.00,30.00,0.33,1.67,0.28 +30.00,0.00,0.00,0.56,1.51,0.16 +12.00,0.00,0.00,0.60,1.74,0.32 +30.00,0.00,0.00,0.91,1.73,0.20 +30.00,0.00,0.00,0.93,1.69,0.25 +47.00,0.00,17.00,0.41,1.58,0.24 +41.70,1.00,13.00,0.74,1.72,0.23 +44.00,0.00,14.00,0.67,1.58,0.24 +55.00,0.00,25.00,0.44,1.62,0.25 +79.00,0.00,49.00,0.55,1.66,0.32 +30.00,0.00,0.00,0.33,1.48,0.27 +90.00,0.00,60.00,0.58,1.70,0.27 +30.00,0.00,0.00,0.47,1.63,0.26 +83.00,0.00,53.00,0.51,1.57,0.20 +40.00,0.00,10.00,0.54,1.54,0.19 +65.00,0.00,35.00,0.34,1.61,0.29 +30.00,0.00,0.00,0.74,1.64,0.24 +83.00,0.00,53.00,0.58,1.66,0.22 +8.80,1.00,0.00,1.12,1.76,0.21 +7.60,0.00,0.00,1.19,1.74,0.24 +53.00,0.00,23.00,0.35,1.61,0.28 diff --git a/relife/datasets/power_transformer.csv b/relife/datasets/power_transformer.csv new file mode 100644 index 0000000..414682a --- /dev/null +++ b/relife/datasets/power_transformer.csv @@ -0,0 +1,1651 @@ +time,event,entry +34.3,1.0,34.0 +45.1,1.0,44.0 +53.2,1.0,52.0 +48.2,1.0,47.0 +33.2,1.0,32.0 +19.3,1.0,18.0 +43.8,1.0,42.0 +54.9,1.0,53.0 +26.9,1.0,25.0 +52.0,1.0,50.0 +44.2,1.0,42.0 +31.4,1.0,29.0 +20.8,1.0,18.0 +34.9,1.0,32.0 +28.0,1.0,25.0 +13.3,1.0,10.0 +53.6,1.0,50.0 +40.6,1.0,37.0 +47.3,1.0,43.0 +51.6,1.0,47.0 +25.7,1.0,21.0 +41.7,1.0,37.0 +9.9,1.0,5.0 +65.9,1.0,60.0 +30.0,1.0,24.0 +29.0,1.0,23.0 +54.5,1.0,48.0 +60.5,1.0,54.0 +26.8,1.0,20.0 +54.0,1.0,47.0 +50.0,1.0,43.0 +47.1,1.0,40.0 +49.1,1.0,42.0 +28.3,1.0,21.0 +58.3,1.0,51.0 +38.4,1.0,31.0 +53.6,1.0,46.0 +39.7,1.0,32.0 +67.9,1.0,60.0 +47.9,1.0,40.0 +80.0,1.0,72.0 +60.0,1.0,52.0 +70.4,1.0,62.0 +61.4,1.0,53.0 +45.4,1.0,37.0 +51.8,1.0,43.0 +51.8,1.0,43.0 +50.0,1.0,41.0 +55.0,1.0,46.0 +28.2,1.0,19.0 +32.3,1.0,23.0 +59.5,1.0,50.0 +60.5,1.0,51.0 +61.6,1.0,52.0 +36.6,1.0,27.0 +58.7,1.0,49.0 +43.8,1.0,34.0 +61.9,1.0,52.0 +53.1,1.0,43.0 +70.2,1.0,60.0 +63.3,1.0,53.0 +56.3,1.0,46.0 +52.4,1.0,42.0 +32.5,1.0,22.0 +45.6,1.0,35.0 +52.9,1.0,42.0 +52.9,1.0,42.0 +26.0,1.0,15.0 +58.1,1.0,47.0 +54.4,1.0,43.0 +62.5,1.0,51.0 +62.5,1.0,51.0 +28.5,1.0,17.0 +70.7,1.0,59.0 +56.8,1.0,45.0 +47.9,1.0,36.0 +39.2,1.0,27.0 +12.4,1.0,0.0 +37.5,1.0,25.0 +47.5,1.0,35.0 +51.5,1.0,39.0 +12.6,1.0,0.0 +42.6,1.0,30.0 +53.6,1.0,41.0 +12.7,1.0,0.0 +35.8,1.0,23.0 +63.8,1.0,51.0 +59.8,1.0,47.0 +49.9,1.0,37.0 +65.9,1.0,53.0 +54.0,1.0,41.0 +44.1,1.0,31.0 +13.2,1.0,0.0 +67.2,1.0,54.0 +52.4,1.0,39.0 +62.4,1.0,49.0 +67.6,1.0,54.0 +66.7,1.0,53.0 +15.1,1.0,1.0 +57.2,1.0,43.0 +60.2,1.0,46.0 +73.3,1.0,59.0 +29.3,1.0,15.0 +43.5,1.0,29.0 +33.5,1.0,19.0 +59.6,1.0,45.0 +63.7,1.0,49.0 +35.8,1.0,21.0 +66.8,1.0,52.0 +66.9,1.0,52.0 +63.9,1.0,49.0 +62.1,1.0,47.0 +68.3,1.0,53.0 +49.3,1.0,34.0 +76.4,1.0,61.0 +57.5,1.0,42.0 +28.7,1.0,13.0 +54.7,1.0,39.0 +39.8,1.0,24.0 +56.9,1.0,41.0 +50.2,1.0,34.0 +53.2,1.0,37.0 +19.4,1.0,3.0 +38.5,1.0,22.0 +64.7,1.0,48.0 +43.7,1.0,27.0 +61.8,1.0,45.0 +55.8,1.0,39.0 +52.1,1.0,35.0 +61.1,1.0,44.0 +52.1,1.0,35.0 +56.1,1.0,39.0 +69.3,1.0,52.0 +68.3,1.0,51.0 +41.3,1.0,24.0 +52.3,1.0,35.0 +57.4,1.0,40.0 +61.5,1.0,44.0 +39.5,1.0,22.0 +33.6,1.0,16.0 +68.7,1.0,51.0 +54.7,1.0,37.0 +58.7,1.0,41.0 +36.8,1.0,19.0 +63.9,1.0,46.0 +35.0,1.0,17.0 +56.0,1.0,38.0 +56.1,1.0,38.0 +72.2,1.0,54.0 +61.2,1.0,43.0 +31.3,1.0,13.0 +46.7,1.0,28.0 +1.8,1.0,0.0 +60.2,1.0,41.0 +48.2,1.0,29.0 +60.3,1.0,41.0 +60.4,1.0,41.0 +62.6,1.0,43.0 +50.6,1.0,31.0 +39.6,1.0,20.0 +71.7,1.0,52.0 +45.8,1.0,26.0 +62.8,1.0,43.0 +49.0,1.0,29.0 +73.0,1.0,53.0 +54.1,1.0,34.0 +64.2,1.0,44.0 +60.2,1.0,40.0 +53.2,1.0,33.0 +58.4,1.0,38.0 +36.4,1.0,16.0 +78.4,1.0,58.0 +50.5,1.0,30.0 +72.5,1.0,52.0 +63.6,1.0,43.0 +38.7,1.0,18.0 +53.8,1.0,33.0 +72.0,1.0,51.0 +50.0,1.0,29.0 +44.1,1.0,23.0 +74.1,1.0,53.0 +69.2,1.0,48.0 +13.3,1.0,0.0 +30.5,1.0,9.0 +35.6,1.0,14.0 +36.6,1.0,15.0 +41.7,1.0,20.0 +57.7,1.0,36.0 +69.8,1.0,48.0 +52.8,1.0,31.0 +64.8,1.0,43.0 +47.0,1.0,25.0 +73.0,1.0,51.0 +57.1,1.0,35.0 +58.1,1.0,36.0 +49.2,1.0,27.0 +61.2,1.0,39.0 +53.3,1.0,31.0 +50.4,1.0,28.0 +64.4,1.0,42.0 +66.4,1.0,44.0 +73.6,1.0,51.0 +75.7,1.0,53.0 +66.8,1.0,44.0 +33.1,1.0,10.0 +69.1,1.0,46.0 +74.1,1.0,51.0 +69.1,1.0,46.0 +55.1,1.0,32.0 +70.2,1.0,47.0 +56.2,1.0,33.0 +74.3,1.0,51.0 +44.3,1.0,21.0 +40.4,1.0,17.0 +73.4,1.0,50.0 +73.4,1.0,50.0 +56.4,1.0,33.0 +55.5,1.0,32.0 +65.5,1.0,42.0 +69.5,1.0,46.0 +58.5,1.0,35.0 +53.6,1.0,30.0 +27.7,1.0,4.0 +57.7,1.0,34.0 +49.8,1.0,26.0 +61.9,1.0,38.0 +53.0,1.0,29.0 +42.1,1.0,18.0 +54.2,1.0,30.0 +54.3,1.0,30.0 +49.4,1.0,25.0 +68.4,1.0,44.0 +27.4,1.0,3.0 +42.6,1.0,18.0 +65.8,1.0,41.0 +36.8,1.0,12.0 +38.8,1.0,14.0 +48.8,1.0,24.0 +75.8,1.0,51.0 +57.8,1.0,33.0 +45.9,1.0,21.0 +42.0,1.0,17.0 +70.0,1.0,45.0 +77.1,1.0,52.0 +50.2,1.0,25.0 +50.2,1.0,25.0 +74.2,1.0,49.0 +56.3,1.0,31.0 +45.4,1.0,20.0 +67.5,1.0,42.0 +69.6,1.0,44.0 +56.7,1.0,31.0 +41.8,1.0,16.0 +71.8,1.0,46.0 +72.0,1.0,46.0 +60.1,1.0,34.0 +73.1,1.0,47.0 +66.2,1.0,40.0 +60.2,1.0,34.0 +70.3,1.0,44.0 +75.4,1.0,49.0 +59.4,1.0,33.0 +62.6,1.0,36.0 +65.7,1.0,39.0 +18.3,1.0,0.0 +58.8,1.0,32.0 +79.9,1.0,53.0 +75.9,1.0,49.0 +59.0,1.0,32.0 +57.0,1.0,30.0 +67.0,1.0,40.0 +44.1,1.0,17.0 +78.2,1.0,51.0 +47.2,1.0,20.0 +64.2,1.0,37.0 +49.4,1.0,22.0 +28.5,1.0,1.0 +27.7,1.0,0.0 +79.9,1.0,52.0 +64.9,1.0,37.0 +77.0,1.0,49.0 +53.1,1.0,25.0 +45.1,1.0,17.0 +60.2,1.0,32.0 +69.2,1.0,41.0 +79.2,1.0,51.0 +80.3,1.0,52.0 +53.4,1.0,25.0 +57.5,1.0,29.0 +57.5,1.0,29.0 +40.6,1.0,12.0 +60.8,1.0,32.0 +67.8,1.0,39.0 +55.8,1.0,27.0 +55.8,1.0,27.0 +85.8,1.0,57.0 +75.0,1.0,46.0 +25.7,1.0,0.0 +81.0,1.0,52.0 +49.1,1.0,20.0 +70.1,1.0,41.0 +60.1,1.0,31.0 +69.2,1.0,40.0 +46.2,1.0,17.0 +78.4,1.0,49.0 +72.4,1.0,43.0 +63.4,1.0,34.0 +71.4,1.0,42.0 +37.4,1.0,8.0 +55.6,1.0,26.0 +59.6,1.0,30.0 +66.6,1.0,37.0 +55.8,1.0,26.0 +78.8,1.0,49.0 +55.9,1.0,26.0 +92.9,1.0,63.0 +46.9,1.0,17.0 +69.0,1.0,39.0 +62.0,0.0,32.0 +61.0,0.0,31.0 +55.0,0.0,25.0 +53.0,0.0,23.0 +61.0,0.0,31.0 +73.0,0.0,43.0 +21.6,0.0,0.0 +48.0,0.0,18.0 +60.0,0.0,30.0 +4.2,0.0,0.0 +56.0,0.0,26.0 +44.0,0.0,14.0 +6.1,0.0,0.0 +67.0,0.0,37.0 +55.0,0.0,25.0 +64.0,0.0,34.0 +3.0,0.0,0.0 +21.6,0.0,0.0 +15.1,0.0,0.0 +83.0,0.0,53.0 +75.0,0.0,45.0 +4.2,0.0,0.0 +81.0,0.0,51.0 +17.2,0.0,0.0 +54.0,0.0,24.0 +54.0,0.0,24.0 +58.0,0.0,28.0 +47.0,0.0,17.0 +27.1,0.0,0.0 +4.7,0.0,0.0 +67.0,0.0,37.0 +6.5,0.0,0.0 +65.0,0.0,35.0 +59.0,0.0,29.0 +78.0,0.0,48.0 +61.0,0.0,31.0 +43.0,0.0,13.0 +43.0,0.0,13.0 +50.0,0.0,20.0 +12.7,0.0,0.0 +57.0,0.0,27.0 +53.0,0.0,23.0 +54.0,0.0,24.0 +17.5,0.0,0.0 +53.0,0.0,23.0 +43.0,0.0,13.0 +12.5,0.0,0.0 +6.7,0.0,0.0 +7.7,0.0,0.0 +5.1,0.0,0.0 +49.0,0.0,19.0 +71.0,0.0,41.0 +8.4,0.0,0.0 +48.0,0.0,18.0 +43.0,0.0,13.0 +48.0,0.0,18.0 +55.0,0.0,25.0 +55.0,0.0,25.0 +76.0,0.0,46.0 +61.0,0.0,31.0 +56.0,0.0,26.0 +8.8,0.0,0.0 +78.0,0.0,48.0 +71.0,0.0,41.0 +70.0,0.0,40.0 +27.6,0.0,0.0 +48.0,0.0,18.0 +54.0,0.0,24.0 +8.0,0.0,0.0 +13.2,0.0,0.0 +55.0,0.0,25.0 +55.0,0.0,25.0 +4.8,0.0,0.0 +55.0,0.0,25.0 +57.0,0.0,27.0 +61.0,0.0,31.0 +6.6,0.0,0.0 +1.5,0.0,0.0 +68.0,0.0,38.0 +1.9,0.0,0.0 +75.0,0.0,45.0 +57.0,0.0,27.0 +57.0,0.0,27.0 +56.0,0.0,26.0 +51.0,0.0,21.0 +6.7,0.0,0.0 +19.5,0.0,0.0 +8.2,0.0,0.0 +61.0,0.0,31.0 +14.6,0.0,0.0 +24.1,0.0,0.0 +90.0,0.0,60.0 +51.0,0.0,21.0 +41.0,0.0,11.0 +7.6,0.0,0.0 +47.0,0.0,17.0 +45.0,0.0,15.0 +55.0,0.0,25.0 +52.0,0.0,22.0 +46.0,0.0,16.0 +3.9,0.0,0.0 +21.0,0.0,0.0 +70.0,0.0,40.0 +62.0,0.0,32.0 +29.7,0.0,0.0 +78.0,0.0,48.0 +60.0,0.0,30.0 +55.0,0.0,25.0 +50.0,0.0,20.0 +50.0,0.0,20.0 +55.0,0.0,25.0 +55.0,0.0,25.0 +56.0,0.0,26.0 +56.0,0.0,26.0 +56.0,0.0,26.0 +56.0,0.0,26.0 +55.0,0.0,25.0 +55.0,0.0,25.0 +73.0,0.0,43.0 +77.0,0.0,47.0 +59.0,0.0,29.0 +62.0,0.0,32.0 +41.0,0.0,11.0 +44.0,0.0,14.0 +46.0,0.0,16.0 +55.0,0.0,25.0 +60.0,0.0,30.0 +54.0,0.0,24.0 +5.8,0.0,0.0 +28.1,0.0,0.0 +52.0,0.0,22.0 +54.0,0.0,24.0 +35.0,0.0,5.0 +6.5,0.0,0.0 +35.0,0.0,5.0 +48.0,0.0,18.0 +17.2,0.0,0.0 +52.0,0.0,22.0 +41.0,0.0,11.0 +79.0,0.0,49.0 +71.0,0.0,41.0 +56.0,0.0,26.0 +46.0,0.0,16.0 +43.0,0.0,13.0 +12.3,0.0,0.0 +60.0,0.0,30.0 +59.0,0.0,29.0 +80.0,0.0,50.0 +1.7,0.0,0.0 +13.5,0.0,0.0 +51.0,0.0,21.0 +66.0,0.0,36.0 +46.0,0.0,16.0 +63.0,0.0,33.0 +73.0,0.0,43.0 +72.0,0.0,42.0 +13.3,0.0,0.0 +49.0,0.0,19.0 +57.0,0.0,27.0 +22.9,0.0,0.0 +52.0,0.0,22.0 +69.0,0.0,39.0 +64.0,0.0,34.0 +64.0,0.0,34.0 +60.0,0.0,30.0 +25.7,0.0,0.0 +77.0,0.0,47.0 +25.3,0.0,0.0 +3.8,0.0,0.0 +72.0,0.0,42.0 +72.0,0.0,42.0 +5.6,0.0,0.0 +56.0,0.0,26.0 +55.0,0.0,25.0 +44.0,0.0,14.0 +69.0,0.0,39.0 +59.0,0.0,29.0 +63.0,0.0,33.0 +63.0,0.0,33.0 +59.0,0.0,29.0 +50.0,0.0,20.0 +57.0,0.0,27.0 +62.0,0.0,32.0 +63.0,0.0,33.0 +63.0,0.0,33.0 +45.0,0.0,15.0 +47.0,0.0,17.0 +37.0,0.0,7.0 +38.0,0.0,8.0 +71.0,0.0,41.0 +10.4,0.0,0.0 +34.0,0.0,4.0 +6.9,0.0,0.0 +77.0,0.0,47.0 +50.0,0.0,20.0 +73.0,0.0,43.0 +78.0,0.0,48.0 +75.0,0.0,45.0 +77.0,0.0,47.0 +73.0,0.0,43.0 +68.0,0.0,38.0 +73.0,0.0,43.0 +12.1,0.0,0.0 +15.2,0.0,0.0 +9.0,0.0,0.0 +22.4,0.0,0.0 +59.0,0.0,29.0 +68.0,0.0,38.0 +9.8,0.0,0.0 +22.0,0.0,0.0 +80.0,0.0,50.0 +81.0,0.0,51.0 +34.0,0.0,4.0 +28.8,0.0,0.0 +65.0,0.0,35.0 +45.0,0.0,15.0 +24.0,0.0,0.0 +54.0,0.0,24.0 +45.0,0.0,15.0 +7.9,0.0,0.0 +65.0,0.0,35.0 +65.0,0.0,35.0 +56.0,0.0,26.0 +62.0,0.0,32.0 +19.4,0.0,0.0 +48.0,0.0,18.0 +47.0,0.0,17.0 +43.0,0.0,13.0 +54.0,0.0,24.0 +62.0,0.0,32.0 +21.2,0.0,0.0 +63.0,0.0,33.0 +65.0,0.0,35.0 +6.3,0.0,0.0 +17.8,0.0,0.0 +77.0,0.0,47.0 +61.0,0.0,31.0 +6.0,0.0,0.0 +21.0,0.0,0.0 +73.0,0.0,43.0 +67.0,0.0,37.0 +18.2,0.0,0.0 +43.0,0.0,13.0 +70.0,0.0,40.0 +57.0,0.0,27.0 +64.0,0.0,34.0 +15.7,0.0,0.0 +18.3,0.0,0.0 +76.0,0.0,46.0 +45.0,0.0,15.0 +27.0,0.0,0.0 +1.2,0.0,0.0 +82.0,0.0,52.0 +42.0,0.0,12.0 +74.0,0.0,44.0 +36.0,0.0,6.0 +56.0,0.0,26.0 +58.0,0.0,28.0 +46.0,0.0,16.0 +64.0,0.0,34.0 +4.6,0.0,0.0 +51.0,0.0,21.0 +47.0,0.0,17.0 +50.0,0.0,20.0 +51.0,0.0,21.0 +47.0,0.0,17.0 +7.2,0.0,0.0 +11.8,0.0,0.0 +67.0,0.0,37.0 +7.3,0.0,0.0 +28.1,0.0,0.0 +19.7,0.0,0.0 +10.0,0.0,0.0 +83.0,0.0,53.0 +47.0,0.0,17.0 +74.0,0.0,44.0 +0.6,0.0,0.0 +72.0,0.0,42.0 +73.0,0.0,43.0 +46.0,0.0,16.0 +73.0,0.0,43.0 +52.0,0.0,22.0 +52.0,0.0,22.0 +33.0,0.0,3.0 +60.0,0.0,30.0 +20.7,0.0,0.0 +6.3,0.0,0.0 +34.0,0.0,4.0 +1.2,0.0,0.0 +12.7,0.0,0.0 +14.3,0.0,0.0 +70.0,0.0,40.0 +55.0,0.0,25.0 +78.0,0.0,48.0 +59.0,0.0,29.0 +6.9,0.0,0.0 +8.7,0.0,0.0 +67.0,0.0,37.0 +1.2,0.0,0.0 +56.0,0.0,26.0 +1.9,0.0,0.0 +7.8,0.0,0.0 +13.3,0.0,0.0 +69.0,0.0,39.0 +59.0,0.0,29.0 +50.0,0.0,20.0 +3.9,0.0,0.0 +16.6,0.0,0.0 +47.0,0.0,17.0 +37.0,0.0,7.0 +61.0,0.0,31.0 +7.6,0.0,0.0 +3.6,0.0,0.0 +40.0,0.0,10.0 +42.0,0.0,12.0 +47.0,0.0,17.0 +67.0,0.0,37.0 +53.0,0.0,23.0 +72.0,0.0,42.0 +8.3,0.0,0.0 +71.0,0.0,41.0 +15.8,0.0,0.0 +59.0,0.0,29.0 +67.0,0.0,37.0 +47.0,0.0,17.0 +75.0,0.0,45.0 +55.0,0.0,25.0 +38.0,0.0,8.0 +76.0,0.0,46.0 +82.0,0.0,52.0 +15.1,0.0,0.0 +61.0,0.0,31.0 +67.0,0.0,37.0 +43.0,0.0,13.0 +3.0,0.0,0.0 +41.0,0.0,11.0 +52.0,0.0,22.0 +6.9,0.0,0.0 +60.0,0.0,30.0 +6.6,0.0,0.0 +13.8,0.0,0.0 +12.0,0.0,0.0 +63.0,0.0,33.0 +70.0,0.0,40.0 +67.0,0.0,37.0 +56.0,0.0,26.0 +52.0,0.0,22.0 +62.0,0.0,32.0 +4.4,0.0,0.0 +1.0,0.0,0.0 +82.0,0.0,52.0 +50.0,0.0,20.0 +72.0,0.0,42.0 +0.9,0.0,0.0 +13.6,0.0,0.0 +44.0,0.0,14.0 +53.0,0.0,23.0 +64.0,0.0,34.0 +42.0,0.0,12.0 +47.0,0.0,17.0 +49.0,0.0,19.0 +11.3,0.0,0.0 +10.8,0.0,0.0 +23.0,0.0,0.0 +11.1,0.0,0.0 +54.0,0.0,24.0 +51.0,0.0,21.0 +0.6,0.0,0.0 +76.0,0.0,46.0 +51.0,0.0,21.0 +34.0,0.0,4.0 +34.0,0.0,4.0 +72.0,0.0,42.0 +6.6,0.0,0.0 +4.8,0.0,0.0 +4.0,0.0,0.0 +48.0,0.0,18.0 +67.0,0.0,37.0 +67.0,0.0,37.0 +62.0,0.0,32.0 +57.0,0.0,27.0 +46.0,0.0,16.0 +39.0,0.0,9.0 +56.0,0.0,26.0 +53.0,0.0,23.0 +44.0,0.0,14.0 +28.8,0.0,0.0 +71.0,0.0,41.0 +0.8,0.0,0.0 +44.0,0.0,14.0 +53.0,0.0,23.0 +51.0,0.0,21.0 +40.0,0.0,10.0 +48.0,0.0,18.0 +38.0,0.0,8.0 +15.3,0.0,0.0 +82.0,0.0,52.0 +64.0,0.0,34.0 +6.4,0.0,0.0 +67.0,0.0,37.0 +53.0,0.0,23.0 +50.0,0.0,20.0 +50.0,0.0,20.0 +67.0,0.0,37.0 +62.0,0.0,32.0 +49.0,0.0,19.0 +60.0,0.0,30.0 +46.0,0.0,16.0 +59.0,0.0,29.0 +24.0,0.0,0.0 +12.5,0.0,0.0 +59.0,0.0,29.0 +82.0,0.0,52.0 +82.0,0.0,52.0 +55.0,0.0,25.0 +60.0,0.0,30.0 +56.0,0.0,26.0 +17.5,0.0,0.0 +63.0,0.0,33.0 +53.0,0.0,23.0 +47.0,0.0,17.0 +75.0,0.0,45.0 +80.0,0.0,50.0 +62.0,0.0,32.0 +70.0,0.0,40.0 +50.0,0.0,20.0 +69.0,0.0,39.0 +67.0,0.0,37.0 +58.0,0.0,28.0 +52.0,0.0,22.0 +2.8,0.0,0.0 +55.0,0.0,25.0 +49.0,0.0,19.0 +38.0,0.0,8.0 +48.0,0.0,18.0 +65.0,0.0,35.0 +68.0,0.0,38.0 +50.0,0.0,20.0 +51.0,0.0,21.0 +71.0,0.0,41.0 +9.8,0.0,0.0 +21.2,0.0,0.0 +3.8,0.0,0.0 +58.0,0.0,28.0 +63.0,0.0,33.0 +64.0,0.0,34.0 +20.2,0.0,0.0 +39.0,0.0,9.0 +39.0,0.0,9.0 +49.0,0.0,19.0 +40.0,0.0,10.0 +40.0,0.0,10.0 +54.0,0.0,24.0 +52.0,0.0,22.0 +39.0,0.0,9.0 +39.0,0.0,9.0 +78.0,0.0,48.0 +82.0,0.0,52.0 +12.7,0.0,0.0 +20.4,0.0,0.0 +42.0,0.0,12.0 +43.0,0.0,13.0 +34.0,0.0,4.0 +57.0,0.0,27.0 +51.0,0.0,21.0 +54.0,0.0,24.0 +69.0,0.0,39.0 +78.0,0.0,48.0 +3.1,0.0,0.0 +6.9,0.0,0.0 +40.0,0.0,10.0 +78.0,0.0,48.0 +49.0,0.0,19.0 +47.0,0.0,17.0 +9.6,0.0,0.0 +79.0,0.0,49.0 +51.0,0.0,21.0 +62.0,0.0,32.0 +32.0,0.0,2.0 +63.0,0.0,33.0 +59.0,0.0,29.0 +62.0,0.0,32.0 +53.0,0.0,23.0 +62.0,0.0,32.0 +58.0,0.0,28.0 +52.0,0.0,22.0 +79.0,0.0,49.0 +26.4,0.0,0.0 +51.0,0.0,21.0 +58.0,0.0,28.0 +38.0,0.0,8.0 +33.0,0.0,3.0 +47.0,0.0,17.0 +3.0,0.0,0.0 +67.0,0.0,37.0 +34.0,0.0,4.0 +79.0,0.0,49.0 +67.0,0.0,37.0 +69.0,0.0,39.0 +64.0,0.0,34.0 +36.0,0.0,6.0 +35.0,0.0,5.0 +3.6,0.0,0.0 +8.2,0.0,0.0 +65.0,0.0,35.0 +51.0,0.0,21.0 +49.0,0.0,19.0 +49.0,0.0,19.0 +59.0,0.0,29.0 +54.0,0.0,24.0 +0.4,0.0,0.0 +0.4,0.0,0.0 +54.0,0.0,24.0 +57.0,0.0,27.0 +63.0,0.0,33.0 +61.0,0.0,31.0 +53.0,0.0,23.0 +15.4,0.0,0.0 +61.0,0.0,31.0 +77.0,0.0,47.0 +51.0,0.0,21.0 +50.0,0.0,20.0 +53.0,0.0,23.0 +53.0,0.0,23.0 +50.0,0.0,20.0 +54.0,0.0,24.0 +47.0,0.0,17.0 +48.0,0.0,18.0 +64.0,0.0,34.0 +59.0,0.0,29.0 +58.0,0.0,28.0 +4.3,0.0,0.0 +63.0,0.0,33.0 +50.0,0.0,20.0 +52.0,0.0,22.0 +57.0,0.0,27.0 +50.0,0.0,20.0 +2.8,0.0,0.0 +22.9,0.0,0.0 +54.0,0.0,24.0 +54.0,0.0,24.0 +43.0,0.0,13.0 +53.0,0.0,23.0 +39.0,0.0,9.0 +49.0,0.0,19.0 +55.0,0.0,25.0 +71.0,0.0,41.0 +65.0,0.0,35.0 +9.6,0.0,0.0 +36.0,0.0,6.0 +54.0,0.0,24.0 +57.0,0.0,27.0 +47.0,0.0,17.0 +40.0,0.0,10.0 +71.0,0.0,41.0 +69.0,0.0,39.0 +54.0,0.0,24.0 +58.0,0.0,28.0 +3.2,0.0,0.0 +59.0,0.0,29.0 +58.0,0.0,28.0 +54.0,0.0,24.0 +68.0,0.0,38.0 +34.0,0.0,4.0 +59.0,0.0,29.0 +7.8,0.0,0.0 +53.0,0.0,23.0 +8.5,0.0,0.0 +71.0,0.0,41.0 +65.0,0.0,35.0 +60.0,0.0,30.0 +56.0,0.0,26.0 +72.0,0.0,42.0 +52.0,0.0,22.0 +22.1,0.0,0.0 +65.0,0.0,35.0 +61.0,0.0,31.0 +56.0,0.0,26.0 +52.0,0.0,22.0 +0.9,0.0,0.0 +57.0,0.0,27.0 +65.0,0.0,35.0 +60.0,0.0,30.0 +33.0,0.0,3.0 +60.0,0.0,30.0 +62.0,0.0,32.0 +3.2,0.0,0.0 +49.0,0.0,19.0 +52.0,0.0,22.0 +5.2,0.0,0.0 +18.5,0.0,0.0 +81.0,0.0,51.0 +40.0,0.0,10.0 +60.0,0.0,30.0 +10.4,0.0,0.0 +53.0,0.0,23.0 +48.0,0.0,18.0 +18.5,0.0,0.0 +5.0,0.0,0.0 +47.0,0.0,17.0 +2.6,0.0,0.0 +38.0,0.0,8.0 +37.0,0.0,7.0 +37.0,0.0,7.0 +38.0,0.0,8.0 +27.2,0.0,0.0 +55.0,0.0,25.0 +64.0,0.0,34.0 +70.0,0.0,40.0 +51.0,0.0,21.0 +58.0,0.0,28.0 +55.0,0.0,25.0 +57.0,0.0,27.0 +64.0,0.0,34.0 +75.0,0.0,45.0 +61.0,0.0,31.0 +62.0,0.0,32.0 +55.0,0.0,25.0 +5.7,0.0,0.0 +53.0,0.0,23.0 +49.0,0.0,19.0 +42.0,0.0,12.0 +39.0,0.0,9.0 +5.2,0.0,0.0 +60.0,0.0,30.0 +69.0,0.0,39.0 +0.1,0.0,0.0 +1.8,0.0,0.0 +67.0,0.0,37.0 +64.0,0.0,34.0 +19.0,0.0,0.0 +70.0,0.0,40.0 +73.0,0.0,43.0 +26.4,0.0,0.0 +61.0,0.0,31.0 +17.0,0.0,0.0 +43.0,0.0,13.0 +43.0,0.0,13.0 +9.9,0.0,0.0 +50.0,0.0,20.0 +49.0,0.0,19.0 +12.3,0.0,0.0 +57.0,0.0,27.0 +8.2,0.0,0.0 +14.1,0.0,0.0 +72.0,0.0,42.0 +62.0,0.0,32.0 +68.0,0.0,38.0 +63.0,0.0,33.0 +12.9,0.0,0.0 +67.0,0.0,37.0 +40.0,0.0,10.0 +40.0,0.0,10.0 +34.0,0.0,4.0 +34.0,0.0,4.0 +60.0,0.0,30.0 +1.8,0.0,0.0 +59.0,0.0,29.0 +54.0,0.0,24.0 +62.0,0.0,32.0 +8.9,0.0,0.0 +52.0,0.0,22.0 +46.0,0.0,16.0 +16.9,0.0,0.0 +34.0,0.0,4.0 +19.8,0.0,0.0 +38.0,0.0,8.0 +13.2,0.0,0.0 +49.0,0.0,19.0 +58.0,0.0,28.0 +48.0,0.0,18.0 +54.0,0.0,24.0 +5.6,0.0,0.0 +25.1,0.0,0.0 +64.0,0.0,34.0 +4.8,0.0,0.0 +28.9,0.0,0.0 +20.5,0.0,0.0 +52.0,0.0,22.0 +56.0,0.0,26.0 +16.4,0.0,0.0 +11.8,0.0,0.0 +84.0,0.0,54.0 +22.3,0.0,0.0 +60.0,0.0,30.0 +0.2,0.0,0.0 +0.8,0.0,0.0 +72.0,0.0,42.0 +59.0,0.0,29.0 +54.0,0.0,24.0 +68.0,0.0,38.0 +22.7,0.0,0.0 +22.0,0.0,0.0 +0.1,0.0,0.0 +73.0,0.0,43.0 +72.0,0.0,42.0 +71.0,0.0,41.0 +62.0,0.0,32.0 +71.0,0.0,41.0 +58.0,0.0,28.0 +57.0,0.0,27.0 +46.0,0.0,16.0 +7.6,0.0,0.0 +71.0,0.0,41.0 +57.0,0.0,27.0 +50.0,0.0,20.0 +17.4,0.0,0.0 +70.0,0.0,40.0 +47.0,0.0,17.0 +47.0,0.0,17.0 +76.0,0.0,46.0 +48.0,0.0,18.0 +58.0,0.0,28.0 +67.0,0.0,37.0 +12.9,0.0,0.0 +51.0,0.0,21.0 +54.0,0.0,24.0 +61.0,0.0,31.0 +16.8,0.0,0.0 +23.5,0.0,0.0 +83.0,0.0,53.0 +82.0,0.0,52.0 +68.0,0.0,38.0 +3.7,0.0,0.0 +48.0,0.0,18.0 +50.0,0.0,20.0 +47.0,0.0,17.0 +50.0,0.0,20.0 +59.0,0.0,29.0 +25.3,0.0,0.0 +45.0,0.0,15.0 +45.0,0.0,15.0 +65.0,0.0,35.0 +8.9,0.0,0.0 +40.0,0.0,10.0 +40.0,0.0,10.0 +69.0,0.0,39.0 +67.0,0.0,37.0 +5.6,0.0,0.0 +58.0,0.0,28.0 +0.1,0.0,0.0 +86.0,0.0,56.0 +50.0,0.0,20.0 +46.0,0.0,16.0 +61.0,0.0,31.0 +12.2,0.0,0.0 +49.0,0.0,19.0 +46.0,0.0,16.0 +72.0,0.0,42.0 +6.8,0.0,0.0 +15.5,0.0,0.0 +61.0,0.0,31.0 +72.0,0.0,42.0 +6.5,0.0,0.0 +33.0,0.0,3.0 +79.0,0.0,49.0 +61.0,0.0,31.0 +39.0,0.0,9.0 +33.0,0.0,3.0 +34.0,0.0,4.0 +53.0,0.0,23.0 +48.0,0.0,18.0 +14.7,0.0,0.0 +69.0,0.0,39.0 +2.8,0.0,0.0 +59.0,0.0,29.0 +35.0,0.0,5.0 +65.0,0.0,35.0 +33.0,0.0,3.0 +1.6,0.0,0.0 +45.0,0.0,15.0 +46.0,0.0,16.0 +69.0,0.0,39.0 +62.0,0.0,32.0 +14.2,0.0,0.0 +54.0,0.0,24.0 +71.0,0.0,41.0 +42.0,0.0,12.0 +47.0,0.0,17.0 +59.0,0.0,29.0 +20.4,0.0,0.0 +52.0,0.0,22.0 +15.5,0.0,0.0 +20.8,0.0,0.0 +62.0,0.0,32.0 +6.6,0.0,0.0 +1.5,0.0,0.0 +49.0,0.0,19.0 +56.0,0.0,26.0 +58.0,0.0,28.0 +49.0,0.0,19.0 +33.0,0.0,3.0 +58.0,0.0,28.0 +5.2,0.0,0.0 +40.0,0.0,10.0 +42.0,0.0,12.0 +56.0,0.0,26.0 +50.0,0.0,20.0 +49.0,0.0,19.0 +47.0,0.0,17.0 +15.2,0.0,0.0 +55.0,0.0,25.0 +3.3,0.0,0.0 +71.0,0.0,41.0 +28.2,0.0,0.0 +0.6,0.0,0.0 +41.0,0.0,11.0 +12.6,0.0,0.0 +54.0,0.0,24.0 +67.0,0.0,37.0 +52.0,0.0,22.0 +23.5,0.0,0.0 +0.9,0.0,0.0 +61.0,0.0,31.0 +60.0,0.0,30.0 +62.0,0.0,32.0 +33.0,0.0,3.0 +58.0,0.0,28.0 +8.3,0.0,0.0 +59.0,0.0,29.0 +10.6,0.0,0.0 +14.5,0.0,0.0 +34.0,0.0,4.0 +34.0,0.0,4.0 +14.7,0.0,0.0 +17.1,0.0,0.0 +55.0,0.0,25.0 +39.0,0.0,9.0 +1.0,0.0,0.0 +39.0,0.0,9.0 +47.0,0.0,17.0 +60.0,0.0,30.0 +6.5,0.0,0.0 +73.0,0.0,43.0 +16.6,0.0,0.0 +59.0,0.0,29.0 +75.0,0.0,45.0 +43.0,0.0,13.0 +67.0,0.0,37.0 +9.4,0.0,0.0 +48.0,0.0,18.0 +43.0,0.0,13.0 +2.1,0.0,0.0 +80.0,0.0,50.0 +51.0,0.0,21.0 +54.0,0.0,24.0 +61.0,0.0,31.0 +59.0,0.0,29.0 +54.0,0.0,24.0 +1.4,0.0,0.0 +43.0,0.0,13.0 +47.0,0.0,17.0 +57.0,0.0,27.0 +53.0,0.0,23.0 +53.0,0.0,23.0 +34.0,0.0,4.0 +55.0,0.0,25.0 +56.0,0.0,26.0 +11.9,0.0,0.0 +8.0,0.0,0.0 +18.1,0.0,0.0 +65.0,0.0,35.0 +7.9,0.0,0.0 +39.0,0.0,9.0 +12.4,0.0,0.0 +51.0,0.0,21.0 +44.0,0.0,14.0 +64.0,0.0,34.0 +60.0,0.0,30.0 +6.2,0.0,0.0 +60.0,0.0,30.0 +49.0,0.0,19.0 +3.4,0.0,0.0 +74.0,0.0,44.0 +12.3,0.0,0.0 +43.0,0.0,13.0 +18.9,0.0,0.0 +63.0,0.0,33.0 +2.1,0.0,0.0 +49.0,0.0,19.0 +18.6,0.0,0.0 +2.0,0.0,0.0 +49.0,0.0,19.0 +50.0,0.0,20.0 +6.8,0.0,0.0 +51.0,0.0,21.0 +20.5,0.0,0.0 +51.0,0.0,21.0 +19.1,0.0,0.0 +49.0,0.0,19.0 +68.0,0.0,38.0 +12.0,0.0,0.0 +67.0,0.0,37.0 +43.0,0.0,13.0 +42.0,0.0,12.0 +51.0,0.0,21.0 +47.0,0.0,17.0 +0.6,0.0,0.0 +37.0,0.0,7.0 +41.0,0.0,11.0 +71.0,0.0,41.0 +79.0,0.0,49.0 +73.0,0.0,43.0 +22.7,0.0,0.0 +51.0,0.0,21.0 +14.3,0.0,0.0 +46.0,0.0,16.0 +47.0,0.0,17.0 +40.0,0.0,10.0 +39.0,0.0,9.0 +10.4,0.0,0.0 +53.0,0.0,23.0 +58.0,0.0,28.0 +6.9,0.0,0.0 +80.0,0.0,50.0 +28.0,0.0,0.0 +76.0,0.0,46.0 +46.0,0.0,16.0 +48.0,0.0,18.0 +28.7,0.0,0.0 +15.7,0.0,0.0 +56.0,0.0,26.0 +44.0,0.0,14.0 +9.2,0.0,0.0 +67.0,0.0,37.0 +64.0,0.0,34.0 +1.0,0.0,0.0 +63.0,0.0,33.0 +54.0,0.0,24.0 +63.0,0.0,33.0 +14.9,0.0,0.0 +74.0,0.0,44.0 +40.0,0.0,10.0 +47.0,0.0,17.0 +10.8,0.0,0.0 +46.0,0.0,16.0 +67.0,0.0,37.0 +48.0,0.0,18.0 +73.0,0.0,43.0 +9.8,0.0,0.0 +57.0,0.0,27.0 +60.0,0.0,30.0 +58.0,0.0,28.0 +59.0,0.0,29.0 +51.0,0.0,21.0 +10.2,0.0,0.0 +57.0,0.0,27.0 +43.0,0.0,13.0 +11.7,0.0,0.0 +22.6,0.0,0.0 +10.3,0.0,0.0 +9.5,0.0,0.0 +68.0,0.0,38.0 +81.0,0.0,51.0 +5.2,0.0,0.0 +74.0,0.0,44.0 +44.0,0.0,14.0 +2.9,0.0,0.0 +45.0,0.0,15.0 +44.0,0.0,14.0 +44.0,0.0,14.0 +20.1,0.0,0.0 +67.0,0.0,37.0 +62.0,0.0,32.0 +58.0,0.0,28.0 +23.2,0.0,0.0 +50.0,0.0,20.0 +61.0,0.0,31.0 +19.6,0.0,0.0 +23.0,0.0,0.0 +4.5,0.0,0.0 +5.9,0.0,0.0 +53.0,0.0,23.0 +56.0,0.0,26.0 +47.0,0.0,17.0 +49.0,0.0,19.0 +59.0,0.0,29.0 +56.0,0.0,26.0 +48.0,0.0,18.0 +48.0,0.0,18.0 +52.0,0.0,22.0 +52.0,0.0,22.0 +52.0,0.0,22.0 +19.9,0.0,0.0 +56.0,0.0,26.0 +54.0,0.0,24.0 +57.0,0.0,27.0 +15.8,0.0,0.0 +57.0,0.0,27.0 +62.0,0.0,32.0 +78.0,0.0,48.0 +20.3,0.0,0.0 +48.0,0.0,18.0 +8.4,0.0,0.0 +48.0,0.0,18.0 +53.0,0.0,23.0 +80.0,0.0,50.0 +55.0,0.0,25.0 +1.2,0.0,0.0 +75.0,0.0,45.0 +60.0,0.0,30.0 +62.0,0.0,32.0 +4.9,0.0,0.0 +79.0,0.0,49.0 +0.2,0.0,0.0 +55.0,0.0,25.0 +54.0,0.0,24.0 +47.0,0.0,17.0 +46.0,0.0,16.0 +54.0,0.0,24.0 +87.0,0.0,57.0 +9.6,0.0,0.0 +9.3,0.0,0.0 +49.0,0.0,19.0 +48.0,0.0,18.0 +46.0,0.0,16.0 +5.4,0.0,0.0 +47.0,0.0,17.0 +3.1,0.0,0.0 +28.8,0.0,0.0 +52.0,0.0,22.0 +58.0,0.0,28.0 +40.0,0.0,10.0 +59.0,0.0,29.0 +7.4,0.0,0.0 +76.0,0.0,46.0 +5.0,0.0,0.0 +61.0,0.0,31.0 +59.0,0.0,29.0 +71.0,0.0,41.0 +1.2,0.0,0.0 +50.0,0.0,20.0 +57.0,0.0,27.0 +40.0,0.0,10.0 +78.0,0.0,48.0 +66.0,0.0,36.0 +51.0,0.0,21.0 +53.0,0.0,23.0 +52.0,0.0,22.0 +19.7,0.0,0.0 +52.0,0.0,22.0 +55.0,0.0,25.0 +13.8,0.0,0.0 +44.0,0.0,14.0 +39.0,0.0,9.0 +68.0,0.0,38.0 +34.0,0.0,4.0 +16.3,0.0,0.0 +52.0,0.0,22.0 +53.0,0.0,23.0 +53.0,0.0,23.0 +59.0,0.0,29.0 +55.0,0.0,25.0 +25.4,0.0,0.0 +1.8,0.0,0.0 +27.8,0.0,0.0 +78.0,0.0,48.0 +49.0,0.0,19.0 +48.0,0.0,18.0 +17.5,0.0,0.0 +69.0,0.0,39.0 +10.2,0.0,0.0 +57.0,0.0,27.0 +58.0,0.0,28.0 +9.5,0.0,0.0 +67.0,0.0,37.0 +78.0,0.0,48.0 +44.0,0.0,14.0 +53.0,0.0,23.0 +65.0,0.0,35.0 +17.4,0.0,0.0 +12.9,0.0,0.0 +5.2,0.0,0.0 +55.0,0.0,25.0 +55.0,0.0,25.0 +56.0,0.0,26.0 +78.0,0.0,48.0 +52.0,0.0,22.0 +33.0,0.0,3.0 +33.0,0.0,3.0 +59.0,0.0,29.0 +59.0,0.0,29.0 +10.0,0.0,0.0 +5.2,0.0,0.0 +69.0,0.0,39.0 +39.0,0.0,9.0 +43.0,0.0,13.0 +42.0,0.0,12.0 +42.0,0.0,12.0 +42.0,0.0,12.0 +42.0,0.0,12.0 +19.1,0.0,0.0 +10.7,0.0,0.0 +9.0,0.0,0.0 +59.0,0.0,29.0 +48.0,0.0,18.0 +18.5,0.0,0.0 +12.7,0.0,0.0 +65.0,0.0,35.0 +32.0,0.0,2.0 +35.0,0.0,5.0 +0.4,0.0,0.0 +32.0,0.0,2.0 +35.0,0.0,5.0 +32.0,0.0,2.0 +17.2,0.0,0.0 +31.0,0.0,1.0 +34.0,0.0,4.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +15.9,0.0,0.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +32.0,0.0,2.0 +56.0,0.0,26.0 +47.0,0.0,17.0 +55.0,0.0,25.0 +56.0,0.0,26.0 +32.0,0.0,2.0 +17.1,0.0,0.0 +32.0,0.0,2.0 +32.0,0.0,2.0 +32.0,0.0,2.0 +31.0,0.0,1.0 +30.0,0.0,0.0 +46.0,0.0,16.0 +32.0,0.0,2.0 +55.0,0.0,25.0 +31.0,0.0,1.0 +30.0,0.0,0.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +37.0,0.0,7.0 +30.0,0.0,0.0 +31.0,0.0,1.0 +30.0,0.0,0.0 +72.0,0.0,42.0 +30.0,0.0,0.0 +31.0,0.0,1.0 +30.0,0.0,0.0 +31.0,0.0,1.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +32.0,0.0,2.0 +32.0,0.0,2.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +2.5,0.0,0.0 +35.0,0.0,5.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +42.0,0.0,12.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +56.0,0.0,26.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +82.0,0.0,52.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +35.0,0.0,5.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +39.0,0.0,9.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +32.0,0.0,2.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +33.0,0.0,3.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +16.8,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +68.0,0.0,38.0 +0.6,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +17.3,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +52.0,0.0,22.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +34.0,0.0,4.0 +30.0,0.0,0.0 +32.0,0.0,2.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +17.6,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +35.0,0.0,5.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +17.4,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +2.3,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 diff --git a/relife/discounting.py b/relife/discounting.py new file mode 100644 index 0000000..51f8f82 --- /dev/null +++ b/relife/discounting.py @@ -0,0 +1,202 @@ +"""Discount functions.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from abc import ABC, abstractmethod +import numpy as np + + +class Discount(ABC): + """Generic discount function. + + References + ---------- + .. [1] Van der Weide, J. A. M., & Van Noortwijk, J. M. (2008). Renewal + theory with exponential and hyperbolic discounting. Probability in the + Engineering and Informational Sciences, 22(1), 53-74. + """ + + @classmethod + @abstractmethod + def factor(cls, t: np.ndarray, *discount_args: np.ndarray) -> np.ndarray: + r"""The discount factor. + + Parameters + ---------- + t : ndarray + Time. + *discount_args : ndarray + Extra arguments required by the discount model. + + Returns + ------- + ndarray + The discount factor evaluated at `t`. + + Notes + ----- + The discount factor evaluated at :math:`t` that multiplies the reward to get the + discounted reward :math:`D(t) \cdot y`. + """ + pass + + @classmethod + @abstractmethod + def rate(cls, t: np.ndarray, *discount_args: np.ndarray) -> np.ndarray: + r"""The discount rate. + + Parameters + ---------- + t : ndarray + Time. + *discount_args : ndarray + Extra arguments required by the discount model. + + Returns + ------- + ndarray + The discount rate evaluated at `t`. + + Notes + ----- + The discount rate evaluated at :math:`t` is defined by: + + .. math:: + + r(t) = -\dfrac{D'(t)}{D(t)} + + where :math:`D` is the discount factor. + """ + pass + + @classmethod + @abstractmethod + def annuity_factor(cls, t: np.ndarray, *discount_args: np.ndarray) -> np.ndarray: + r"""The annuity factor. + + Parameters + ---------- + t : ndarray + Time. + *discount_args : ndarray + Extra arguments required by the discount model. + + Returns + ------- + ndarray + The annuity factor evaluated at `t`. + + Notes + ----- + + The annuity factor at time :math:`t` is defined by: + + .. math:: + + AF(t) = \int_0^t D(x) \mathrm{d}x + + where :math:`D` is the discount factor. + + It is used to compute the equivalent annual cost of continuous + discounted cash flows over the period :math:`[0, t]`. + """ + pass + + +class ExponentialDiscounting(Discount): + r"""Exponential discounting model. + + The exponetial discount factor is: + + .. math:: + + D(x) = e^{-\delta x} + + where :math:`\delta` is the `rate`. + """ + + @classmethod + def factor(cls, t: np.ndarray, rate: np.ndarray = 0) -> np.ndarray: + return np.exp(-rate * t) + + @classmethod + def rate(cls, t: np.ndarray, rate: np.ndarray = 0) -> np.ndarray: + return rate * np.ones_like(t) + + @classmethod + def annuity_factor(cls, t: np.ndarray, rate: np.ndarray = 0) -> np.ndarray: + mask = rate == 0 + rate = np.ma.MaskedArray(rate, mask) + return np.where(mask, t, (1 - np.exp(-rate * t)) / rate) + + +class HyperbolicDiscounting(Discount): + r"""Hyperbolic discounting model. + + The hyperbolic discount factor is: + + .. math:: + + D(x) = \dfrac{1}{1 + \beta x} + + where :math:`\beta>0`. + """ + + @classmethod + def factor(cls, t: np.ndarray, beta: np.ndarray = 0) -> np.ndarray: + return 1 / (1 + beta * t) + + @classmethod + def rate(cls, t: np.ndarray, beta: np.ndarray = 0) -> np.ndarray: + return beta / (1 + beta * t) + + @classmethod + def annuity_factor(cls, t: np.ndarray, beta: np.ndarray = 0) -> np.ndarray: + mask = beta == 0 + beta = np.ma.MaskedArray(beta, mask) + return np.where(mask, t, np.log1p(beta * t) / beta) + + +class GeneralizedHyperbolicDiscounting(Discount): + r"""Generalized hyperbolic discounting model. + + The generalized hyperbolic discount factor is: + + .. math:: + + D(x) = \dfrac{1}{(1 + \beta x)^\eta} + + where :math:`\beta,\eta >0`. + """ + + @classmethod + def factor( + cls, t: np.ndarray, beta: np.ndarray = 0, eta: np.ndarray = 1 + ) -> np.ndarray: + return 1 / (1 + beta * t) ** eta + + @classmethod + def rate( + cls, t: np.ndarray, beta: np.ndarray = 0, eta: np.ndarray = 1 + ) -> np.ndarray: + return beta * eta / (1 + beta * t) + + @classmethod + def annuity_factor( + cls, t: np.ndarray, beta: np.ndarray = 0, eta: np.ndarray = 1 + ) -> np.ndarray: + mask_beta = beta == 0 + mask_eta = eta == 1 + beta = np.ma.MaskedArray(beta, mask_beta) + eta = np.ma.MaskedArray(eta, mask_eta) + return np.where( + mask_eta, + HyperbolicDiscounting.annuity_factor(t, beta), + np.where( + mask_beta, t, ((1 + beta * t) ** (1 - eta) - 1) / (beta * (1 - eta)) + ), + ) diff --git a/relife/distribution.py b/relife/distribution.py new file mode 100644 index 0000000..dddd5cf --- /dev/null +++ b/relife/distribution.py @@ -0,0 +1,601 @@ +"""Parametric lifetime distribution.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from __future__ import annotations +from dataclasses import dataclass, fields +from typing import Tuple +import numpy as np +from scipy.optimize import Bounds +from scipy.special import exp1, gamma, gammaincc, gammainccinv, digamma + +from .data import LifetimeData +from .parametric import ParametricLifetimeModel +from .utils import MIN_POSITIVE_FLOAT, plot, shifted_laguerre + + +@dataclass +class ParametricLifetimeDistribution(ParametricLifetimeModel): + """Generic class for parametric lifetime distribution.""" + + @property + def n_params(self) -> int: + return len(fields(self)) + + @property + def _param_bounds(self) -> Bounds: + # return Bounds(*[(MIN_POSITIVE_FLOAT, None)] * len(fields(self))) + return Bounds( + np.full(self.n_params, MIN_POSITIVE_FLOAT), np.full(self.n_params, np.inf) + ) + + def _init_params(self, data: LifetimeData) -> np.ndarray: + params0 = np.ones(self.n_params) + params0[-1] = 1 / np.median(data.time) + return params0 + + def _set_params(self, params: np.ndarray) -> None: + for i, field in enumerate(fields(self)): + setattr(self, field.name, params[i]) + + def fit( + self, + time: np.ndarray, + event: np.ndarray = None, + entry: np.ndarray = None, + args: np.ndarray = (), + params0: np.ndarray = None, + method: str = None, + **kwargs, + ) -> ParametricLifetimeDistribution: + """Fit the parametric lifetime distribution to lifetime data. + + Parameters + ---------- + time : 1D array + Array of time-to-event or durations. + event : 1D array, optional + Array of event types coded as follows: + + - 0 if observation ends before the event has occurred (right censoring) + - 1 if the event has occured + - 2 if observation starts after the event has occurred (left censoring) + + by default the event has occured for each asset. + entry : 1D array, optional + Array of delayed entry times (left truncation), + by default None. + args : float or 2D array, optional + Extra arguments required by the parametric lifetime model. + params0 : 1D array, optional + Initial guess, by default None. + method : str, optional + Type of solver (see scipy.optimize.minimize documentation), by + default None. + **kwargs: dict, optional + Extra arguments to pass to the minimize method. + + Returns + ------- + self + Return the fitted distribution as the current object. + """ + data = LifetimeData(time, event, entry, args) + self._fit(data, params0, method=method, **kwargs) + return self + + def plot( + self, + timeline: np.ndarray = None, + args: Tuple[np.ndarray] = (), + alpha_ci: float = 0.05, + fname: str = "sf", + **kwargs, + ) -> None: + r"""Plot functions of the distribution model. + + Parameters + ---------- + timeline : 1D array, optional + Timeline of the plot (x-axis), by default guessed by the millile. + args : Tuple[ndarray], optional + Extra arguments required by the parametric lifetime model, by + default (). + alpha_ci : float, optional + :math:`\alpha`-value to define the :math:`100(1-\alpha)\%` + confidence interval, by default 0.05 corresponding to the 95\% + confidence interval. If set to None or if the model has not been + fitted, no confidence interval is plotted. + fname : str, optional + Name of the function to be plotted, by default 'sf'. Should be one + of: + + - 'sf': survival function, + - 'cdf': cumulative distribution function, + - 'chf': cumulative hazard function, + - 'hf': hazard function, + - 'pdf': probability density function. + + **kwargs : dict, optional + Extra arguments to specify the plot properties (see + matplotlib.pyplot.plot documentation). + + Raises + ------ + ValueError + If `fname` value is not among 'sf', 'cdf', 'chf', 'hf' or 'pdf'. + """ + flist = ["sf", "cdf", "chf", "hf", "pdf"] + if fname not in flist: + raise ValueError( + "Function name '{}' is not supported for plotting, `fname` must be in {}".format( + fname, flist + ) + ) + if timeline is None: + timeline = np.linspace(0, self.isf(1e-3), 200) + f = getattr(self, "_" + fname) + jac_f = getattr(self, "_jac_" + fname) + y = f(self.params, timeline, *args) + if alpha_ci is not None and hasattr(self, "result"): + i0 = 0 + se = np.empty_like(timeline, float) + if timeline[0] == 0: + i0 = 1 + se[0] = 0 + se[i0:] = self.result.standard_error( + jac_f(self.result.opt.x, timeline[i0:].reshape(-1, 1), *args) + ) + else: + se = None + label = kwargs.pop("label", self.__class__.__name__) + bounds = (0, 1) if fname in ["sf", "cdf"] else (0, np.inf) + plot(timeline, y, se, alpha_ci, bounds=bounds, label=label, **kwargs) + + +@dataclass +class Exponential(ParametricLifetimeDistribution): + r"""Exponential parametric lifetime distribution. + + The exponential distribution is a 1-parameter distribution with + :math:`(\lambda)`. The probability density function is: + + .. math:: + + f(t) = \lambda e^{-\lambda t} + + where: + + - :math:`\lambda > 0`, the rate parameter, + - :math:`t\geq 0`, the operating time, age, cycles, etc. + """ + + rate: float = None #: rate parameter (inverse of scale) + + @property + def params(self) -> np.ndarray: + return np.array([self.rate]) + + def _chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + rate = params[0] + return rate * t + + def _hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + rate = params[0] + return rate * np.ones_like(t) + + def _dhf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + return np.zeros_like(t) + + def _jac_chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + return np.ones((t.size, 1)) * t + + def _jac_hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + return np.ones((t.size, 1)) + + def _ichf(self, params: np.ndarray, v: np.ndarray) -> np.ndarray: + rate = params[0] + return v / rate + + def mean(self) -> np.ndarray: + rate = self.params[0] + return 1 / rate + + def var(self) -> np.ndarray: + rate = self.params[0] + return 1 / rate**2 + + def mrl(self, t: np.ndarray) -> np.ndarray: + rate = self.params[0] + return 1 / rate * np.ones_like(t) + + +@dataclass +class Weibull(ParametricLifetimeDistribution): + r"""Weibull parametric lifetime distribution. + + The Weibull distribution is a 2-parameter distribution with + :math:`(c,\lambda)`. The probability density function is: + + .. math:: + + f(t) = c \lambda^c t^{c-1} e^{-(\lambda t)^c} + + where: + + - :math:`c > 0`, the shape parameter, + - :math:`\lambda > 0`, the rate parameter, + - :math:`t\geq 0`, the operating time, age, cycles, etc. + """ + + c: float = None #: shape parameter + rate: float = None #: rate parameter (inverse of scale) + + @property + def params(self) -> np.ndarray: + return np.array([self.c, self.rate]) + + def _chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return (rate * t) ** c + + def _hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return c * rate * (rate * t) ** (c - 1) + + def _dhf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return c * (c - 1) * rate**2 * (rate * t) ** (c - 2) + + def _jac_chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return np.column_stack( + (np.log(rate * t) * (rate * t) ** c, c * t * (rate * t) ** (c - 1)) + ) + + def _jac_hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return np.column_stack( + ( + rate * (rate * t) ** (c - 1) * (1 + c * np.log(rate * t)), + c**2 * (rate * t) ** (c - 1), + ) + ) + + def _ichf(self, params: np.ndarray, v: np.ndarray) -> np.ndarray: + c, rate = params + return v ** (1 / c) / rate + + def mean(self) -> np.ndarray: + c, rate = self.params + return gamma(1 + 1 / c) / rate + + def mrl(self, t: np.ndarray) -> np.ndarray: + c, rate = self.params + return ( + gamma(1 / c) / (rate * c * self.sf(t)) * gammaincc(1 / c, (rate * t) ** c) + ) + + def var(self) -> np.ndarray: + c, rate = self.params + return gamma(1 + 2 / c) / rate**2 - self.mean() ** 2 + + +@dataclass +class Gompertz(ParametricLifetimeDistribution): + r"""Gompertz parametric lifetime distribution. + + The Gompertz distribution is a 2-parameter distribution with + :math:`(c,\lambda)`. The probability density function is: + + .. math:: + + f(t) = c \lambda e^{\lambda t} e^{ -c \left( e^{\lambda t}-1 \right) } + + where: + + - :math:`c > 0`, the shape parameter, + - :math:`\lambda > 0`, the rate parameter, + - :math:`t\geq 0`, the operating time, age, cycles, etc. + """ + + c: float = None #: shape parameter + rate: float = None #: rate parameter (inverse of scale) + + @property + def params(self) -> np.ndarray: + return np.array([self.c, self.rate]) + + def _init_params(self, data: LifetimeData) -> np.ndarray: + rate = np.pi / (np.sqrt(6) * np.std(data.time)) + c = np.exp(-rate * np.mean(data.time)) + return np.array([c, rate]) + + def _chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return c * np.expm1(rate * t) + + def _hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return c * rate * np.exp(rate * t) + + def _dhf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return c * (rate) ** 2 * np.exp(rate * t) + + def _jac_chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return np.column_stack((np.expm1(rate * t), c * t * np.exp(rate * t))) + + def _jac_hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return np.column_stack( + (rate * np.exp(rate * t), c * np.exp(rate * t) * (1 + rate * t)) + ) + + def _ichf(self, params: np.ndarray, v: np.ndarray) -> np.ndarray: + c, rate = params + return 1 / rate * np.log1p(v / c) + + def mean(self) -> np.ndarray: + c, rate = self.params + return np.exp(c) * exp1(c) / rate + + def mrl(self, t: np.ndarray) -> np.ndarray: + c, rate = self.params + z = c * np.exp(rate * t) + return np.exp(z) * exp1(z) / rate + + +@dataclass +class Gamma(ParametricLifetimeDistribution): + r"""Gamma parametric lifetime distribution. + + The Gamma distribution is a 2-parameter distribution with + :math:`(c,\lambda)`. The probability density function is: + + .. math:: + + f(t) = \frac{\lambda^c t^{c-1} e^{-\lambda t}}{\Gamma(c)} + + where: + + - :math:`c > 0`, the shape parameter, + - :math:`\lambda > 0`, the rate parameter, + - :math:`t\geq 0`, the operating time, age, cycles, etc. + """ + + c: float = None # shape parameter + rate: float = None #: rate parameter (inverse of scale) + + @staticmethod + def _uppergamma(c: np.ndarray, x: np.ndarray) -> np.ndarray: + return gammaincc(c, x) * gamma(c) + + @staticmethod + def _jac_uppergamma_c(c: np.ndarray, x: np.ndarray) -> np.ndarray: + return shifted_laguerre(lambda s: np.log(s) * s ** (c - 1), x, ndim=np.ndim(x)) + + @property + def _default_hess_scheme(self): + return "2-point" + + @property + def params(self) -> np.ndarray: + return np.array([self.c, self.rate]) + + def _chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return np.log(gamma(c)) - np.log(self._uppergamma(c, x)) + + def _hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return rate * x ** (c - 1) * np.exp(-x) / self._uppergamma(c, x) + + def _dhf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return self._hf(params, t) * ((c - 1) / t - rate + self._hf(params, t)) + + def _jac_chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return np.column_stack( + ( + digamma(c) - self._jac_uppergamma_c(c, x) / self._uppergamma(c, x), + x ** (c - 1) * t * np.exp(-x) / self._uppergamma(c, x), + ) + ) + + def _jac_hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return ( + x ** (c - 1) + * np.exp(-x) + / self._uppergamma(c, x) ** 2 + * np.column_stack( + ( + rate * np.log(x) * self._uppergamma(c, x) + - rate * self._jac_uppergamma_c(c, x), + (c - x) * self._uppergamma(c, x) + x**c * np.exp(-x), + ) + ) + ) + + def _ichf(self, params: np.ndarray, v: np.ndarray) -> np.ndarray: + c, rate = params + return 1 / rate * gammainccinv(c, np.exp(-v)) + + def mean(self) -> np.ndarray: + c, rate = self.params + return c / rate + + def var(self, params: np.ndarray) -> np.ndarray: + c, rate = params + return c / (rate**2) + + +@dataclass +class LogLogistic(ParametricLifetimeDistribution): + r"""Log-logistic parametric lifetime distribution. + + The Log-logistic distribution is defined as a 2-parameter distribution + :math:`(c, \lambda)`. The probability density function is: + + .. math:: + + f(t) = \frac{c \lambda^c t^{c-1}}{(1+(\lambda t)^{c})^2} + + where: + + - :math:`c > 0`, the shape parameter, + - :math:`\lambda > 0`, the rate parameter, + - :math:`t\geq 0`, the operating time, age, cycles, etc. + """ + + c: float = None #: shape parameter + rate: float = None #: rate parameter (inverse of scale) + + @property + def params(self) -> np.ndarray: + return np.array([self.c, self.rate]) + + def _chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return np.log(1 + x**c) + + def _hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return c * rate * x ** (c - 1) / (1 + x**c) + + def _dhf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return c * rate**2 * x ** (c - 2) * (c - 1 - x**c) / (1 + x**c) ** 2 + + def _jac_chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return np.column_stack( + ( + (x**c / (1 + x**c)) * np.log(rate * t), + (x**c / (1 + x**c)) * (c / rate), + ) + ) + + def _jac_hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return np.column_stack( + ( + (rate * x ** (c - 1) / (1 + x**c) ** 2) + * (1 + x**c + c * np.log(rate * t)), + (rate * x ** (c - 1) / (1 + x**c) ** 2) * (c**2 / rate), + ) + ) + + def _ichf(self, params: np.ndarray, v: np.ndarray) -> np.ndarray: + c, rate = params + return ((np.exp(v) - 1) ** (1 / c)) / rate + + def mean(self) -> np.ndarray: + c, rate = self.params + b = np.pi / c + if c > 1: + return b / (rate * np.sin(b)) + else: + raise ValueError(f"Expectancy only defined for c > 1: c = {c}") + + def var(self) -> np.ndarray: + c, rate = self.params + b = np.pi / c + if c > 2: + return (1 / rate**2) * (2 * b / np.sin(2 * b) - b**2 / (np.sin(b) ** 2)) + else: + raise ValueError(f"Variance only defined for c > 2: c = {c}") + + +@dataclass +class MinimumDistribution(ParametricLifetimeDistribution): + r"""Series structure of n identical and independent components. + + The hazard function of the system is given by: + + .. math:: + + h(t) = n \cdot h_0(t) + + where :math:`h_0` is the baseline hazard function of the components. + + Examples + -------- + + Computing the survival (or reliability) function for 3 structures of 3,6 and + 9 identical and idependent components: + + .. code-block:: + + model = MinimumDistribution(Weibull(2, 0.05)) + t = np.arange(0, 10, 0.1) + n = np.array([3, 6, 9]).reshape(-1, 1) + model.sf(t, n) + """ + + baseline: ParametricLifetimeDistribution #: Underlying lifetime model of the components. + + @property + def _default_hess_scheme(self) -> str: + return self.baseline._default_hess_scheme + + @property + def params(self) -> np.ndarray: + return self.baseline.params + + @property + def n_params(self) -> int: + return self.baseline.n_params + + @property + def _param_bounds(self) -> Bounds: + return self.baseline._param_bounds + + def _set_params(self, params: np.ndarray) -> None: + self.baseline._set_params(params) + + def _chf( + self, params: np.ndarray, t: np.ndarray, n: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + return n * self.baseline._chf(params, t, *args) + + def _hf( + self, params: np.ndarray, t: np.ndarray, n: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + return n * self.baseline._hf(params, t, *args) + + def _dhf( + self, params: np.ndarray, t: np.ndarray, n: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + return n * self.baseline._dhf(params, t, *args) + + def _jac_chf( + self, params: np.ndarray, t: np.ndarray, n: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + return n * self.baseline._jac_chf(params, t, *args) + + def _jac_hf( + self, params: np.ndarray, t: np.ndarray, n: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + return n * self.baseline._jac_hf(params, t, *args) + + def _ichf( + self, params: np.ndarray, v: np.ndarray, n: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + return self.baseline._ichf(params, v / n, *args) diff --git a/relife/model.py b/relife/model.py new file mode 100644 index 0000000..77c37f7 --- /dev/null +++ b/relife/model.py @@ -0,0 +1,663 @@ +"""Generic lifetime models.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from abc import ABC, abstractmethod +from dataclasses import dataclass +import numpy as np +import scipy.optimize as optimize +from typing import Callable + +from .utils import args_size, args_ndim, gauss_legendre, quad_laguerre + + +class LifetimeModel(ABC): + """Generic lifetime model. + + Abstract class for lifetime models, with basic functions pertaining to + statiscal distributions. + """ + + @abstractmethod + def support_upper_bound(self, *args: np.ndarray) -> np.ndarray: + """Support upper bound of the lifetime model. + + Parameters + ---------- + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + The support upper bound of the lifetime model with respect to the extra arguments. + """ + pass + + @abstractmethod + def sf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Survival (or reliability) function of the lifetime model. + + Parameters + ---------- + t : float or 1D array + Elapsed time. + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + The survival function evaluated at `t` with extra arguments `args`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),) + """ + pass + + @abstractmethod + def pdf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Probability density function. + + Parameters + ---------- + t : float or 1D array + Elapsed time. + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + The probability density function evaluated at `t` with extra arguments `args`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),) + """ + pass + + @abstractmethod + def isf(self, p: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Inverse survival function. + + Parameters + ---------- + p : float or 1D array + Probability. + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + Complement quantile corresponding to `p`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(p),) + """ + pass + + @abstractmethod + def ls_integrate( + self, func: Callable, a: np.ndarray, b: np.ndarray, *args: np.ndarray, **kwargs + ) -> np.ndarray: + r"""Lebesgue-Stieltjes integration. + + The Lebesgue-Stieljes intregration of a function with respect to the + lifetime model taking into account the probability density function and + jumps. + + Parameters + ---------- + func : Callable + Function or method to integrate on interval [a,b] integrated with + respect to the lifetime model. + a : float or 1D array + Lower bound of integration. + b : float or 1D array + Upper bound of integration (use numpy.inf for +infinity). + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + **kwargs: int or float + Extra keyword arguments required for the Lebesgue-Stieljes + integration. + + Returns + ------- + float or ndarray + Lebesgue-Stieltjes integral of func with respect to `cdf` from `a` + to `b`. + + Notes + ----- + The Lebesgue-Stieltjes integral is: + + .. math:: + + \int_a^b g(x) \mathrm{d}F(x) = \int_a^b g(x) f(x)\mathrm{d}x + + \sum_i g(a_i) w_i + + where: + + - :math:`F` is the cumulative distribution function, + - :math:`f` the probability density function of the lifetime model, + - :math:`a_i` and :math:`w_i` are the points and weights of the jumps. + + .. [1] Resnick, S. I. (1992). Adventures in stochastic processes. + Springer Science & Business Media. p176. + """ + pass + + def cdf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Cumulative distribution function. + + Parameters + ---------- + t : float or 1D array + Elapsed time. + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + Cumulative distribution function at `t` with extra `args` . + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),) + """ + return 1 - self.sf(t, *args) + + def rvs( + self, *args: np.ndarray, size: int = 1, random_state: int = None + ) -> np.ndarray: + """Random variable sampling. + + Parameters + ---------- + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + size : int, optional + Size of sample, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + float or ndarray + Sample of random variates with shape[-1]=size. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (size,) + """ + if len(args) > 0: + size = (args_size(*args), size) + u = np.random.RandomState(seed=random_state).uniform(size=size) + return self.isf(u, *args) + + def ppf(self, p: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Percent point function. + + The `ppf` is the inverse of `cdf`. + + Parameters + ---------- + p : float or 1D array + Probability. + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + Quantile corresponding to `p`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(p),) + """ + return self.isf(1 - p, *args) + + def median(self, *args: np.ndarray) -> np.ndarray: + """Median of the distribution. + + The median is the `ppf` evaluated at 0.5. + + Parameters + ---------- + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + The median of the distribution. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (1,) + """ + return self.ppf(0.5, *args) + + def moment(self, n: int, *args: np.ndarray) -> np.ndarray: + """N-th order moment of the distribution. + + The n-th order moment is the Lebegue-Stieljes integral of x**n with + respect to the `cdf`. + + Parameters + ---------- + n : int, n >=1 + Order of moment. + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + N-th order moment of the distribution. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (1,) + """ + ub = self.support_upper_bound(*args) + return self.ls_integrate(lambda x: x**n, 0, ub, *args, ndim=args_ndim(*args)) + + def mean(self, *args: np.ndarray) -> np.ndarray: + """Mean of the distribution. + + The mean of a distribution is the moment of the first order. + + Parameters + ---------- + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + Mean of the distribution. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (1,) + """ + return self.moment(1, *args) + + def var(self, *args: np.ndarray) -> np.ndarray: + """Variance of the distribution. + + Parameters + ---------- + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + Variance of the distribution. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (1,) + """ + return self.moment(2, *args) - self.moment(1, *args) ** 2 + + def mrl(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + r"""Mean residual life. + + The mean residual life for an asset aged `t` is the mean of the lifetime + distribution truncated at `t` on the interval `[t,ub)`. + + Parameters + ---------- + t : float or 1D array + Age of the asset + + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + The mean residual life of assets at age `t`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),). + + The mean residual life is: + + .. math:: + + \mu(t) = \dfrac{\int_t^{\infty} (x - t) \mathrm{d}F(x)}{S(t)} + + where + :math:`F` is the cumulative distribution function and + :math:`S` is the survival function. + """ + ndim = args_ndim(t, *args) + ub = self.support_upper_bound(*args) + mask = t >= ub + if np.any(mask): + t, ub = np.broadcast_arrays(t, ub) + t = np.ma.MaskedArray(t, mask) + ub = np.ma.MaskedArray(ub, mask) + mu = self.ls_integrate(lambda x: x - t, t, ub, *args, ndim=ndim) / self.sf( + t, *args + ) + return np.ma.filled(mu, 0) + + +@dataclass +class AgeReplacementModel(LifetimeModel): + r"""Age replacement model. + + Lifetime model where the asset is replaced at age `ar`. + + Notes + ----- + This is equivalent to the distribution of :math:`\min(X,a_r)` where + :math:`X` is a baseline lifetime model and ar the age of replacement. + """ + + baseline: LifetimeModel #: Underlying lifetime model of the asset. + + def support_upper_bound(self, ar: np.ndarray, *args: np.ndarray) -> np.ndarray: + return np.minimum(ar, self.baseline.support_upper_bound(*args)) + + def sf(self, t: np.ndarray, ar: np.ndarray, *args: np.ndarray) -> np.ndarray: + return np.where(t < ar, self.baseline.sf(t, *args), 0) + + def pdf(self, t: np.ndarray, ar: np.ndarray, *args: np.ndarray) -> np.ndarray: + return np.where(t < ar, self.baseline.pdf(t, *args), 0) + + def isf(self, p: np.ndarray, ar: np.ndarray, *args: np.ndarray) -> np.ndarray: + return np.minimum(self.baseline.isf(p, *args), ar) + + def ls_integrate( + self, + func: Callable, + a: np.ndarray, + b: np.ndarray, + ar: np.ndarray, + *args: np.ndarray, + ndim: int = 0, + deg: int = 100 + ) -> np.ndarray: + ub = self.support_upper_bound(ar, *args) + b = np.minimum(ub, b) + f = lambda x, *args: func(x) * self.baseline.pdf(x, *args) + w = np.where(b == ar, func(ar) * self.baseline.sf(ar, *args), 0) + return gauss_legendre(f, a, b, *args, ndim=ndim, deg=deg) + w + + +class HazardFunctions(ABC): + """Generic hazard functions. + + Abstract class for the definition of a hazard functions: hazard rate, + cumulative hazard function, and inverse cumulative hazard function. + """ + + @abstractmethod + def hf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Hazard function (or hazard rate). + + The hazard function is the derivative of the cumulative hazard function. + + Parameters + ---------- + t : float or 1D array + Elapsed time. + *args : float or 2D array, optional + Extra arguments required by the hazard function. + + Returns + ------- + float or 1D array + Hazard rate at `t`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),) + """ + pass + + @abstractmethod + def chf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Cumulative hazard function. + + The cumulative hazard function is the integral of the hazard function. + + Parameters + ---------- + t : float or 1D array + Elapsed time. + *args : float or 2D array, optional + Extra arguments required by the hazard function. + + Returns + ------- + float or ndarray + Cumulative hazard function at `t`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),) + """ + pass + + @abstractmethod + def ichf(self, v: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Inverse cumulative hazard function. + + Parameters + ---------- + v : float or 1D array + Cumulative hazard rate + *args : float or 2D array, optional + Extra arguments required by the hazard function. + + Returns + ------- + float or ndarray + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),) + """ + pass + + +class AbsolutelyContinuousLifetimeModel(LifetimeModel, HazardFunctions): + """Absolutely continuous lifetime model. + + Abstract class that implements LifetimeModel with HazardFunctions. + """ + + def support_upper_bound(self, *args: np.ndarray) -> float: + return np.inf + + def sf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return np.exp(-self.chf(t, *args)) + + def pdf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.hf(t, *args) * self.sf(t, *args) + + def isf(self, p: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.ichf(-np.log(p), *args) + + def ls_integrate( + self, + func: Callable, + a: np.ndarray, + b: np.ndarray, + *args: np.ndarray, + ndim: int = 0, + deg: int = 100, + q0: float = 1e-4 + ) -> np.ndarray: + ub = self.support_upper_bound(*args) + b = np.minimum(ub, b) + f = lambda x, *args: func(x) * self.pdf(x, *args) + if np.all(np.isinf(b)): + b = self.isf(q0, *args) + res = quad_laguerre(f, b, *args, ndim=ndim, deg=deg) + else: + res = 0 + return gauss_legendre(f, a, b, *args, ndim=ndim, deg=deg) + res + + +@dataclass +class LeftTruncated(AbsolutelyContinuousLifetimeModel): + """Left truncation of an absolutely continuous lifetime model. + + Conditional distribution of the lifetime model for an asset having reach age `a0`. + """ + + baseline: AbsolutelyContinuousLifetimeModel #: Underlying absolutely continuous lifetime model of the asset. + + def chf(self, t: np.ndarray, a0: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.baseline.chf(a0 + t, *args) - self.baseline.chf(a0, *args) + + def hf(self, t: np.ndarray, a0: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.baseline.hf(a0 + t, *args) + + def ichf(self, v: np.ndarray, a0: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.baseline.ichf(v + self.baseline.chf(a0, *args), *args) - a0 + + +@dataclass +class EquilibriumDistribution(AbsolutelyContinuousLifetimeModel): + """Equilibrium distribution of a lifetime model. + + The equilibirum distribution is the distrbution computed from a lifetime + model that makes the associated delayed renewal process stationary [1]_. + + .. [1] Ross, S. M. (1996). Stochastic processes. New York: Wiley. + """ + + baseline: LifetimeModel #: Underlying lifetime model of the asset. + + def support_upper_bound(self, *args: np.ndarray) -> np.ndarray: + return self.baseline.support_upper_bound(*args) + + def sf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return 1 - self.cdf(t, *args) + + def cdf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + ndim = args_ndim(t, *args) + return gauss_legendre( + self.baseline.sf, 0, t, *args, ndim=ndim + ) / self.baseline.mean(*args) + + def pdf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.baseline.sf(t, *args) / self.baseline.mean(*args) + + def hf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return 1 / self.baseline.mrl(t, *args) + + def chf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return -np.log(self.sf(t, *args)) + + def isf(self, p: np.ndarray, *args: np.ndarray) -> np.ndarray: + f = lambda t, *args: self.sf(t, *args) - p + t = optimize.newton(f, self.baseline.isf(p, *args), args=args) + return t + + def ichf(self, v: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.isf(np.exp(-v), *args) diff --git a/relife/nonparametric.py b/relife/nonparametric.py new file mode 100644 index 0000000..3d198b9 --- /dev/null +++ b/relife/nonparametric.py @@ -0,0 +1,352 @@ +"""Non-parametric estimator for survival analysis.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from __future__ import annotations +from typing import Tuple +import numpy as np + +from .data import LifetimeData +from .utils import plot + + +def _estimate(data: LifetimeData) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: + r"""Counting failures and assets at risks + + Counts the number of failures and assets at risk sorted along the timeline + of unique times, needed to compute the Kaplan-Meier and Nelson-Aalen + estimators. + + Parameters + ---------- + data : LifetimeData + The lifetime data. + + Returns + ------- + Tuple[1D array, 1D array, 1D array] + timeline : sorted unique time-to-event. + d : number of failures. + n : number of assets at risk + + Raises + ------ + ValueError + If `data.event` type is not 0 or 1. + + Notes + ----- + For :math:`N` the unique times in timeline: + + .. math:: + + \begin{align*} + d_j &= \sum_{i=1}^N \delta_i \mathbbm{1}_{\{t_j = t_i\}} \\ n_j &= + \sum_{i=1}^N \mathbbm{1}_{\{t_j \leq t_i\}} + \end{align*} + + """ + if not np.all(np.isin(data.event, [0, 1])): + raise ValueError("event values must be in [0,1]") + timeline, inv, counts = np.unique( + data.time, return_inverse=True, return_counts=True + ) + d = np.zeros_like(timeline, int) + np.add.at(d, inv, data.event) + x_in = np.histogram(data.entry, np.insert(timeline, 0, 0))[0] + x_out = np.insert(counts[:-1], 0, 0) + n = np.cumsum(x_in - x_out) + return timeline, d, n + + +class ECDF: + """Empirical Cumulative Distribution Function.""" + + def fit(self, time: np.ndarray) -> ECDF: + """Fit the empirical cumuative distribution function. + + Parameters + ---------- + time : 1D array + Failure times. + + Returns + ------- + ECDF + Return the fitted empirical estimate as the current object. + + """ + + data = LifetimeData(time) + self.n_samples = data.size + x1, n1 = np.unique(data.time, return_counts=True) + self.timeline = np.insert(x1, 0, 0) + self.cdf = np.insert(np.cumsum(n1), 0, 0) / np.sum(n1) + self.sf = 1 - self.cdf + self.se = np.sqrt(self.cdf * (1 - self.cdf) / self.n_samples) + return self + + def plot( + self, alpha_ci: float = 0.05, fname: str = "cdf", **kwargs: np.ndarray + ) -> None: + r"""Plot the empirical cumulative distribution function. + + Parameters + ---------- + alpha_ci : float, optional + :math:`\alpha`-value to define the :math:`100(1-\alpha)\%` + confidence interval, by default 0.05 corresponding to the 95\% + confidence interval. If set to None or if the model has not been + fitted, no confidence interval is plotted. + + fname : str, optional + Name of the function to be plotted, by default 'cdf'. Should be one + of: + + - 'sf' : survival function, + - 'cdf': cumulative distribution function. + + **kwargs : + Extra arguments to specify the plot properties (see + matplotlib.pyplot.plot documentation). + + Raises + ------ + ValueError + If `fname` value is not 'sf' or 'cdf'. + + """ + flist = ["sf", "cdf"] + if fname in flist: + y = getattr(self, fname) + else: + raise ValueError( + "Function name '{}' is not supported for plotting, 'fname' must be in {}".format( + fname, flist + ) + ) + label = "ECDF" + plot( + self.timeline, + y, + self.se, + alpha_ci, + bounds=(0, 1), + label=label, + drawstyle="steps-post", + **kwargs, + ) + + +class KaplanMeier: + r"""Kaplan-Meier Estimator. + + Compute the non-parametric Kaplan-Meier estimator (also known as the product + limit estimator) of the survival function from lifetime data. + + Notes + ----- + For a given time instant :math:`t` and :math:`n` total observations, this + estimator is defined as: + + .. math:: + + \hat{S}(t) = \prod_{i: t_i \leq t} \left( 1 - \frac{d_i}{n_i}\right) + + where :math:`d_i` is the number of failures until :math:`t_i` and + :math:`n_i` is the number of assets at risk just prior to :math:`t_i`. + + The variance estimation is obtained by: + + .. math:: + + \widehat{Var}[\hat{S}(t)] = \hat{S}(t)^2 \sum_{i: t_i \leq t} + \frac{d_i}{n_i(n_i - d_i)} + + which is often referred to as Greenwood's formula. + + References + ---------- + .. [1] Lawless, J. F. (2011). Statistical models and methods for lifetime + data. John Wiley & Sons. + + .. [2] Kaplan, E. L., & Meier, P. (1958). Nonparametric estimation from + incomplete observations. Journal of the American statistical + association, 53(282), 457-481. + + """ + + def fit( + self, time: np.ndarray, event: np.ndarray = None, entry: np.ndarray = None + ) -> KaplanMeier: + """Fit the Kaplan-Meier estimator to a time, event and entry arrays. + + Parameters + ---------- + time : 1D array + Array of time-to-event or durations. + event : 1D array, optional + Array of event types coded as follows: + + - 0 if observation ends before the event has occurred (right censoring) + - 1 if the event has occured + - 2 if observation starts after the event has occurred (left censoring) + + by default the event has occured for each asset. + entry : 1D array, optional + Array of delayed entry times (left truncation), + by default None. + + Returns + ------- + KaplanMeier + Return the fitted Kaplan-Meier estimator as the current object. + + """ + data = LifetimeData(time, event, entry) + timeline, d, n = _estimate(data) + # [1] eq (3.2.2) + s = np.cumprod(1 - d / n) + with np.errstate(divide="ignore"): + # [1] eq (3.2.3) + var = s**2 * np.cumsum(np.where(n > d, d / (n * (n - d)), 0)) + self.timeline = np.insert(timeline, 0, 0) + self.sf = np.insert(s, 0, 1) + self.se = np.sqrt(np.insert(var, 0, 0)) + return self + + def plot(self, alpha_ci: float = 0.05, **kwargs) -> None: + r"""Plot the Kaplan-Meier estimator of the survival function. + + Parameters + ---------- + alpha_ci : float, optional + :math:`\alpha`-value to define the :math:`100(1-\alpha)\%` + confidence interval, by default 0.05 corresponding to the 95\% + confidence interval. If set to None or if the model has not been + fitted, no confidence interval is plotted. + + **kwargs : + Extra arguments to specify the plot properties (see + matplotlib.pyplot.plot documentation). + """ + label = kwargs.pop("label", "Kaplan-Meier") + plot( + self.timeline, + self.sf, + self.se, + alpha_ci, + bounds=(0, 1), + label=label, + drawstyle="steps-post", + **kwargs, + ) + + +class NelsonAalen: + r"""Nelson-Aalen Estimator. + + Compute the non-parametric Nelson-Aalen estimator of the cumulative hazard + function from lifetime data. + + Notes + ----- + For a given time instant :math:`t` and :math:`n` total observations, this + estimator is defined as: + + .. math:: + + \hat{H}(t) = \sum_{i: t_i \leq t} \frac{d_i}{n_i} + + where :math:`d_i` is the number of failures until :math:`t_i` and + :math:`n_i` is the number of assets at risk just prior to :math:`t_i`. + + The variance estimation is obtained by: + + .. math:: + + \widehat{Var}[\hat{H}(t)] = \sum_{i: t_i \leq t} \frac{d_i}{n_i^2} + + Note that the alternative survivor function estimate: + + .. math:: + + \tilde{S}(t) = \exp{(-\hat{H}(t))} + + is sometimes suggested for the continuous-time case. + + References + ---------- + .. [1] Lawless, J. F. (2011). Statistical models and methods for lifetime + data. John Wiley & Sons. + """ + + def fit( + self, time: np.ndarray, event: np.ndarray = None, entry: np.ndarray = None + ) -> NelsonAalen: + """Fit the Nelson-Aalen estimator to lifetime data. + + Parameters + ---------- + time : 1D array + Array of time-to-event or durations. + event : 1D array, optional + Array of event types coded as follows: + + - 0 if observation ends before the event has occurred (right censoring) + - 1 if the event has occured + - 2 if observation starts after the event has occurred (left censoring) + + by default the event has occured for each asset. + entry : 1D array, optional + Array of delayed entry times (left truncation), + by default None. + + Returns + ------- + NelsonAalen + The fitted Nelson-Aalen estimator as the current object. + + """ + data = LifetimeData(time, event, entry) + timeline, d, n = _estimate(data) + # [1] eq (3.2.13) + s = np.cumsum(d / n) + # [1] eq (3.2.15) + var = np.cumsum(d / np.where(n == 0, 1, n**2)) + self.timeline = np.insert(timeline, 0, 0) + self.chf = np.insert(s, 0, 0) + self.se = np.sqrt(np.insert(var, 0, 0)) + return self + + def plot(self, alpha_ci: float = 0.05, **kwargs: np.ndarray) -> None: + r"""Plot the Nelson-Aalen estimator of the cumulative hazard function. + + Parameters + ---------- + alpha_ci : float, optional + :math:`\alpha`-value to define the :math:`100(1-\alpha)\%` + confidence interval, by default 0.05 corresponding to the 95\% + confidence interval. If set to None or if the model has not been + fitted, no confidence interval is plotted. + + **kwargs : + Extra arguments to specify the plot properties (see + matplotlib.pyplot.plot documentation). + + """ + label = kwargs.pop("label", "Nelson-Aalen") + plot( + self.timeline, + self.chf, + self.se, + alpha_ci, + bounds=(0, np.inf), + label=label, + drawstyle="steps-post", + **kwargs, + ) diff --git a/relife/parametric.py b/relife/parametric.py new file mode 100644 index 0000000..ed74263 --- /dev/null +++ b/relife/parametric.py @@ -0,0 +1,424 @@ +"""Generic parametric models.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from abc import abstractmethod +from dataclasses import dataclass, field, asdict +import numpy as np +from scipy.optimize import minimize, Bounds, OptimizeResult +from scipy.optimize.optimize import approx_fprime + +from .data import LifetimeData +from .model import HazardFunctions, AbsolutelyContinuousLifetimeModel + + +class ParametricHazardFunctions(HazardFunctions): + """Generic parametric hazard functions. + + Generic class for the parametric hazard functions with a fitting method based + on the maximum likelihood estimator. + """ + + _default_method: str = ( + "L-BFGS-B" #: Default method for minimizing the negative log-likelihood. + ) + _default_hess_scheme: str = "cs" #: Default method for evaluating the hessian of the negative log-likelihood. + + @property + @abstractmethod + def params(self) -> np.ndarray: + """Parameters of the hazard functions.""" + pass + + @property + @abstractmethod + def n_params(self) -> int: + """Number of parameters.""" + pass + + @property + @abstractmethod + def _param_bounds(self) -> Bounds: + """Bounds of the parameters for the fit.""" + pass + + @abstractmethod + def _set_params(self, params: np.ndarray) -> None: + """Sets the parameters after the fit.""" + + pass + + @abstractmethod + def _init_params(self, data: LifetimeData) -> np.ndarray: + """Initial guess for the fit.""" + pass + + @abstractmethod + def _chf(self, params: np.ndarray, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Parametric cumulative hazard function.""" + pass + + @abstractmethod + def _hf(self, params: np.ndarray, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Parametric hazard function.""" + pass + + @abstractmethod + def _dhf(self, params: np.ndarray, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Derivative of the parametric hazard function with repspect to t.""" + pass + + @abstractmethod + def _jac_chf( + self, params: np.ndarray, t: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + """Jacobian of the parametric cumulative hazard function with respect to params.""" + pass + + @abstractmethod + def _jac_hf( + self, params: np.ndarray, t: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + """Jacobian of the parametric hazard function with respect to params.""" + pass + + @abstractmethod + def _ichf(self, params: np.ndarray, x: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Inverse of the parametric cumulative hazard function.""" + pass + + def chf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self._chf(self.params, t, *args) + + def hf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self._hf(self.params, t, *args) + + def ichf(self, v: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self._ichf(self.params, v, *args) + + def _negative_log_likelihood( + self, params: np.ndarray, data: LifetimeData + ) -> np.ndarray: + """Negative log-likelihood function. + + Parameters + ---------- + params : 1D array + Parameters of the hazard functions. + data : LifetimeData + Lifetime data with time, event, entry and args attributes. + + Returns + ------- + float + The negative log-likelihood for the lifetime `data` evaluated at + `params`. + """ + return ( + -np.sum(np.log(self._hf(params, data._time.D, *data._args.D))) + + np.sum(self._chf(params, data._time.D_RC, *data._args.D_RC)) + - np.sum(self._chf(params, data._time.LT, *data._args.LT)) + - np.sum( + np.log(-np.expm1(-self._chf(params, data._time.LC, *data._args.LC))) + ) + ) + + def _jac_negative_log_likelihood( + self, params: np.ndarray, data: LifetimeData + ) -> np.ndarray: + """Jacobian of the negative log-likelihood function. + + Parameters + ---------- + params : 1D array + Parameters of the hazard functions. + data : LifetimeData + Lifetime data with time, event, entry and args attributes. + + Returns + ------- + 1D array + The Jacobian of the negative log-likelihood evaluated at `params` with + `data`. + """ + return ( + -np.sum( + self._jac_hf(params, data._time.D, *data._args.D) + / self._hf(params, data._time.D, *data._args.D), + axis=0, + ) + + np.sum(self._jac_chf(params, data._time.D_RC, *data._args.D_RC), axis=0) + - np.sum(self._jac_chf(params, data._time.LT, *data._args.LT), axis=0) + - np.sum( + self._jac_chf(params, data._time.LC, *data._args.LC) + / np.expm1(self._chf(params, data._time.LC, *data._args.LC)), + axis=0, + ) + ) + + def _hess_negative_log_likelihood( + self, + params: np.ndarray, + data: LifetimeData, + eps: float = 1e-6, + scheme: str = None, + ) -> np.ndarray: + """Hessian of the negative log-likelihood. + + Parameters + ---------- + params : 1D array + Parameters of the hazard functions. + data : LifetimeData + Lifetime data with time, event, entry and args attributes. + eps : float, optional + Increment to params for computing the numerical approximation, + by default 1e-6. + scheme : str, optional + Approximation method for computing the hessian matrix, 2 options: + + - "cs" (Complex Step derivative approximation) + - "2-point" (Finite-Difference approximation) + + by default None. + + Returns + ------- + 2D array + The Hessian of the negative log-likelihood. + + Raises + ------ + ValueError + If the scheme argument is not 'cs' or '2-point'. + """ + size = np.size(params) + hess = np.empty((size, size)) + + if scheme is None: + scheme = self._default_hess_scheme + + if scheme == "cs": + u = eps * 1j * np.eye(size) + for i in range(size): + for j in range(i, size): + hess[i, j] = ( + np.imag( + self._jac_negative_log_likelihood(params + u[i], data)[j] + ) + / eps + ) + if i != j: + hess[j, i] = hess[i, j] + + elif scheme == "2-point": + for i in range(size): + hess[i] = approx_fprime( + params, + lambda params: self._jac_negative_log_likelihood(params, data)[i], + eps, + ) + + else: + raise ValueError("scheme argument must be 'cs' or '2-point'") + + return hess + + def _fit( + self, + data: LifetimeData, + params0: np.ndarray = None, + method: str = None, + eps: float = 1e-6, + hess_scheme: str = None, + **kwargs, + ) -> None: + """Maximum likelihood estimation of the parameters + + Fit a parametric hazard function to lifetime data, by minimizing the + negative log-likelihood. + + Parameters + ---------- + data : LifetimeData + Lifetime data with time, event, entry and args attributes. + params0 : 1D array, optional + Initial guess for the parameters, by default None. + method : str, optional + Type of solver (see scipy.optimize.minimize documentation), by + default None. + eps : float, optional + Increment to params for computing the numerical approximation, + by default 1e-6. + hess_scheme : str, optional + Approximation method for computing the hessian matrix, 2 options: + + - "cs" (Complex Step derivative approximation) + - "2-point" (Finite-Difference approximation), + + by default None. + + Raises + ------ + ValueError + If `params0` size does not match the expected size of the hazard + functions parameters. + """ + if params0 is not None: + params0 = np.asanyarray(params0, float) + if self.n_params != params0.size: + raise ValueError( + f"Wrong dimension for params0, expected {self.n_params} got {params0.size}" + ) + else: + params0 = self._init_params(data) + if method is None: + method = self._default_method + jac = kwargs.pop("jac", self._jac_negative_log_likelihood) + bounds = kwargs.pop("bounds", self._param_bounds) + opt = minimize( + self._negative_log_likelihood, + params0, + args=(data), + method=method, + jac=jac, + bounds=bounds, + **kwargs, + ) + jac = self._jac_negative_log_likelihood(opt.x, data) + var = np.linalg.inv( + self._hess_negative_log_likelihood(opt.x, data, eps, hess_scheme) + ) + self._set_params(opt.x) + self._set_fitting_result(opt, jac, var, data) + + def _set_fitting_result( + self, opt, jac: np.ndarray, var: np.ndarray, data: LifetimeData + ) -> None: + """Set the fitting result. + + Create a `result` attribute which store fitting information in an + instance of FittingResult. + + Parameters + ---------- + opt : OptimizeResult + Represents the optimization result (see + scipy.optimize.OptimizeResult documentation). + jac : 1D array + Jacobian of the negative log-likelihood of the data. + var : 2D array + Covariance matrix (computed as the inverse of the Hessian matrix). + data : LifetimeData + Lifetime data used for the fit. + """ + self.result = FittingResult(opt, jac, var, data.size) + + +@dataclass +class FittingResult: + """Fitting results of the parametric model.""" + + opt: OptimizeResult = field( + repr=False + ) #: Optimization result (see scipy.optimize.OptimizeResult doc). + jac: np.ndarray = field( + repr=False + ) #: Jacobian of the negative log-likelihood with the lifetime data. + var: np.ndarray = field( + repr=False + ) #: Covariance matrix (computed as the inverse of the Hessian matrix) + se: np.ndarray = field( + init=False, repr=False + ) #: Standard error, square root of the diagonal of the covariance matrix. + n_samples: int #: Number of observations (samples). + n_params: int = field(init=False) #: Number of parameters. + AIC: float = field(init=False) #: Akaike Information Criterion. + AICc: float = field( + init=False + ) #: Akaike Information Criterion with a correction for small sample sizes. + BIC: float = field(init=False) #: Bayesian Information Criterion. + + def __post_init__(self): + self.se = np.sqrt(np.diag(self.var)) + self.n_params = self.opt.x.size + self.AIC = 2 * self.n_params + 2 * self.opt.fun + self.AICc = self.AIC + 2 * self.n_params * (self.n_params + 1) / ( + self.n_samples - self.n_params - 1 + ) + self.BIC = np.log(self.n_samples) * self.n_params + 2 * self.opt.fun + + def standard_error(self, jac_f: np.ndarray) -> np.ndarray: + """Standard error estimation function. + + Parameters + ---------- + jac_f : 1D array + The Jacobian of a function f with respect to params. + + Returns + ------- + 1D array + Standard error for f(params). + + References + ---------- + .. [1] Meeker, W. Q., Escobar, L. A., & Pascual, F. G. (2022). + Statistical methods for reliability data. John Wiley & Sons. + """ + # [1] equation B.10 in Appendix + return np.sqrt(np.einsum("ni,ij,nj->n", jac_f, self.var, jac_f)) + + def asdict(self) -> dict: + """converts FittingResult into a dictionary. + + Returns + ------- + dict + Returns the fitting result as a dictionary. + """ + return asdict(self) + + +class ParametricLifetimeModel( + ParametricHazardFunctions, AbsolutelyContinuousLifetimeModel +): + """Parametric lifetime model.""" + + def _sf(self, params: np.ndarray, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Parametric survival function.""" + return np.exp(-self._chf(params, t, *args)) + + def _cdf(self, params: np.ndarray, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Parametric cumulative distribution function.""" + return 1 - self._sf(params, t, *args) + + def _pdf(self, params: np.ndarray, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Parametric probability density function.""" + return self._hf(params, t, *args) * self._sf(params, t, *args) + + def _jac_sf( + self, params: np.ndarray, t: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + """Jacobian of the parametric survival function with respect to params.""" + return -self._jac_chf(params, t, *args) * self._sf(params, t, *args) + + def _jac_cdf( + self, params: np.ndarray, t: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + """Jacobian of the parametric cumulative distribution function with + respect to params.""" + return -self._jac_sf(params, t, *args) + + def _jac_pdf( + self, params: np.ndarray, t: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + """Jacobian of the parametric probability density function with respect to + params.""" + return self._jac_hf(params, t, *args) * self._sf( + params, t, *args + ) + self._jac_sf(params, t, *args) * self._hf(params, t, *args) diff --git a/relife/regression.py b/relife/regression.py new file mode 100644 index 0000000..7c52f67 --- /dev/null +++ b/relife/regression.py @@ -0,0 +1,432 @@ +"""Survival regression models.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from __future__ import annotations +from dataclasses import dataclass +from typing import Tuple +import numpy as np +from scipy.optimize import Bounds, OptimizeResult + +from .data import LifetimeData +from .parametric import ParametricLifetimeModel, FittingResult +from .distribution import ParametricLifetimeDistribution + + +def concordance_index( + time: np.ndarray, + event: np.ndarray, + score: np.ndarray, + include_tied_score: bool = True, +) -> Tuple[float, int, int, int]: + """Computes the concordance index (c-index). + + The concordance index is a metric for evaluating the predictions of a + survival regression model. It is the proportion of concordant + pairs divided by the total number of possible evaluation pairs. + + Parameters + ---------- + time : 1D array + Array of time-to-event or durations. + event : 1D array + Array of event types coded as follows: + + - 0 if observation ends before the event has occurred (right censoring) + - 1 if the event has occured + + score : 1D array + Vector of individual risk scores (e.g. the median). + + include_tied_score : bool, optional + Specifies whether ties in risk score are included in calculations, by + default True. + + Returns + ------- + Tuple[float, int, int, int] + + - cindex : The computed concordance index (float) + - concordant : Number of concordant pairs (int) + - discordant : Number of discordant pairs (int) + - tied_score : Number of pairs having tied estimated risks (int) + """ + admissible = 0 + concordant = 0 + tied_score = 0 + + event_observed = event == 1 + event_not_observed = ~event_observed + + t1 = time[event_observed] + s1 = score[event_observed] + + t0 = time[event_not_observed] + s0 = score[event_not_observed] + + for ti, si in zip(t1, s1): + ind1 = ti < t1 + ind0 = ti <= t0 + admissible += np.sum(ind1) + np.sum(ind0) + concordant += np.sum(si < s1[ind1]) + np.sum(si < s0[ind0]) + tied_score += np.sum(si == s1[ind1]) + np.sum(si == s0[ind0]) + + if include_tied_score: + cindex = (concordant + 0.5 * tied_score) / admissible + else: + cindex = concordant / (admissible - tied_score) + + discordant = admissible - concordant - tied_score + + return cindex, concordant, discordant, tied_score + + +@dataclass +class Regression(ParametricLifetimeModel): + r"""Generic regression for parametric lifetime model. + + A generic class for survival regression model. The model includes a baseline + lifetime model and a multiplier function :math:`g` that specifies the effect + of the covariates (explanatory variables) on the baseline model: + + .. math:: + + g(\beta, x) = e^{\beta \cdot x} + """ + + baseline: ParametricLifetimeModel #: Baseline parametric lifetime model for the regression. + beta: np.ndarray = None #: Coefficients for the covariates. + + def __post_init__(self): + if self.beta is not None: + self.beta = np.asanyarray(self.beta, float) + self.n_covar = self.beta.size + + @property + def params(self) -> np.ndarray: + return np.concatenate((self.beta, self.baseline.params)) + + @property + def n_params(self) -> int: + return self.n_covar + self.baseline.n_params + + @property + def _param_bounds(self) -> Bounds: + lb = np.concatenate( + (np.full(self.n_covar, -np.inf), self.baseline._param_bounds.lb) + ) + ub = np.concatenate( + (np.full(self.n_covar, np.inf), self.baseline._param_bounds.ub) + ) + return Bounds(lb, ub) + + @property + def _default_hess_scheme(self) -> str: + return self.baseline._default_hess_scheme + + def _init_params(self, data: LifetimeData) -> np.ndarray: + args = data.args + if not len(data.args) > 0: + raise ValueError( + "`covar` argument is missing for regression model {}".format( + self.__class__.__name__ + ) + ) + if data.args[0].ndim != 2: + raise ValueError("`covar` argument must be a 2d-array") + covar, *args = args + self.n_covar = covar.shape[1] + data = LifetimeData(*data.astuple()[:-1], args) + return np.concatenate( + (np.zeros(self.n_covar), self.baseline._init_params(data)) + ) + + def _dispatch(self, params: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: + """Dispatch the params array into two arrays. + + Parameters + ---------- + params : 1D array + Parameters array for the regression model. + + Returns + ------- + Tuple[1D array, 1D array] + The first array contains the beta parameters for the covariates, and the + second the parameters of the baseline model. + """ + return params[: self.n_covar], params[self.n_covar :] + + def _set_params(self, params: np.ndarray) -> None: + self.beta, params0 = self._dispatch(params) + self.baseline._set_params(params0) + + @classmethod + def _g(cls, beta: np.ndarray, covar: np.ndarray) -> np.ndarray: + """The multiplier that specifies the effect of covariates. + + Parameters + ---------- + beta : 1D array + The beta parameters of the covariates. + covar : 2D array + The covariates array. + + Returns + ------- + float or 2D array + The multiplier function evaluated at `beta` and `covar`. + """ + return np.exp(np.sum(beta * covar, axis=1, keepdims=True)) + + @classmethod + def _jac_g(cls, beta: np.ndarray, covar: np.ndarray) -> np.ndarray: + """Jacobian of the multiplier function. + + Parameters + ---------- + beta : 1D array + The `beta` parameters of the covariates. + covar : 2D array + The covariates array. + + Returns + ------- + float or 2D array + The jacobian of the multiplier function `g` evaluated at `beta` and `covar`. + """ + return covar * cls._g(beta, covar) + + def fit( + self, + time: np.ndarray, + event: np.ndarray = None, + entry: np.ndarray = None, + covar: np.ndarray = None, + args: np.ndarray = (), + params0: np.ndarray = None, + method: str = None, + **kwargs, + ) -> Regression: + """Fit the parametric survival regression model to lifetime data. + + Parameters + ---------- + time : 1D array + Array of time-to-event or durations. + event : 1D array, optional + Array of event types coded as follows: + + - 0 if observation ends before the event has occurred (right censoring) + - 1 if the event has occured + - 2 if observation starts after the event has occurred (left censoring) + + by default the event has occured for each asset. + entry : 1D array, optional + Array of delayed entry times (left truncation), + by default None. + covar : 2D array + Array of covariates. + args : float or 2D array, optional + Extra arguments required by the baseline parametric lifetime model. + params0 : 1D array, optional + Initial guess, by default None. + method : str, optional + Type of solver (see scipy.optimize.minimize documentation), by + default None. + + Returns + ------- + self + Return the fitted regression as the current object. + """ + args = (covar, *args) if covar is not None else args + data = LifetimeData(time, event, entry, args) + self._fit(data, params0, method=method, **kwargs) + return self + + def _set_fitting_result( + self, opt: OptimizeResult, jac: np.ndarray, var: np.ndarray, data: LifetimeData + ) -> None: + cindex = concordance_index(data.time, data.event, self.median(*data.args))[0] + self.result = RegressionFittingResult(opt, jac, var, data.time.size, cindex) + + +@dataclass +class RegressionFittingResult(FittingResult): + """Class for the result of the fitted regression, inheriting from + FittingResult. + + Used as the type for the instance attribute 'result' for an object of the + Regression class, after fitting. + """ + + cindex: float + + +# Regression models + + +class AFT(Regression): + r"""Accelerated Failure Time Regression Model. + + The cumulative hazard function :math:`H` is linked to the multiplier + function :math:`g` by the relation: + + .. math:: + + H(t, x) = H_0\left(\dfrac{t}{g(\beta, x)}\right) = H_0(t e^{- \beta + \cdot x}) + + where :math:`x` is a vector of covariates, :math:`\beta` is the coefficient + vector of the effect of covariates, :math:`H_0` is the baseline cumulative + hazard function. + + References + ---------- + .. [1] Kalbfleisch, J. D., & Prentice, R. L. (2011). The statistical + analysis of failure time data. John Wiley & Sons. + """ + + def _chf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + t0 = t / self._g(beta, covar) + return self.baseline._chf(params0, t0, *args) + + def _hf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + t0 = t / self._g(beta, covar) + return self.baseline._hf(params0, t0, *args) / self._g(beta, covar) + + def _dhf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + t0 = t / self._g(beta, covar) + return self.baseline._dhf(params0, t0, *args) / self._g(beta, covar) ** 2 + + def _jac_chf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + t0 = t / self._g(beta, covar) + return np.column_stack( + ( + -self._jac_g(beta, covar) + / self._g(beta, covar) + * t0 + * self.baseline._hf(params0, t0, *args), + self.baseline._jac_chf(params0, t0, *args), + ) + ) + + def _jac_hf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + t0 = t / self._g(beta, covar) + return np.column_stack( + ( + -self._jac_g(beta, covar) + / self._g(beta, covar) ** 2 + * ( + self.baseline._hf(params0, t0, *args) + + t0 * self.baseline._dhf(params0, t0, *args) + ), + self.baseline._jac_hf(params0, t0, *args) / self._g(beta, covar), + ) + ) + + def _ichf( + self, params: np.ndarray, v: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return self._g(beta, covar) * self.baseline._ichf(params0, v, *args) + + def mean(self, covar: np.ndarray, *args: np.ndarray) -> np.ndarray: + if issubclass(self.baseline.__class__, ParametricLifetimeDistribution): + return self._g(self.beta, covar) * self.baseline.mean(*args) + else: + super().mean(covar, *args) + + def mrl(self, t: np.ndarray, covar: np.ndarray, *args: np.ndarray) -> np.ndarray: + if issubclass(self.baseline.__class__, ParametricLifetimeDistribution): + t0 = t / self._g(self.beta, covar) + return self._g(self.beta, covar) * self.baseline.mrl(t0, *args) + else: + super().mrl(t, covar, *args) + + +class ProportionalHazards(Regression): + r"""Parametric Proportional Hazards Regression Model. + + The cumulative hazard function :math:`H` is linked to the multiplier + function :math:`g` by the relation: + + .. math:: + + H(t, x) = g(\beta, x) H_0(t) = e^{\beta \cdot x} H_0(t) + + where :math:`x` is a vector of covariates, :math:`\beta` is the coefficient + vector of the effect of covariates, :math:`H_0` is the baseline cumulative + hazard function. + + References + ---------- + .. [1] Sun, J. (2006). The statistical analysis of interval-censored failure + time data (Vol. 3, No. 1). New York: springer. + """ + + def _chf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return self._g(beta, covar) * self.baseline._chf(params0, t, *args) + + def _hf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return self._g(beta, covar) * self.baseline._hf(params0, t, *args) + + def _dhf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return self._g(beta, covar) * self.baseline._dhf(params0, t, *args) + + def _jac_chf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return np.column_stack( + ( + self._jac_g(beta, covar) * self.baseline._chf(params0, t, *args), + self._g(beta, covar) * self.baseline._jac_chf(params0, t, *args), + ) + ) + + def _jac_hf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return np.column_stack( + ( + self._jac_g(beta, covar) * self.baseline._hf(params0, t, *args), + self._g(beta, covar) * self.baseline._jac_hf(params0, t, *args), + ) + ) + + def _ichf( + self, params: np.ndarray, v: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return self.baseline._ichf(params0, v / self._g(beta, covar), *args) diff --git a/relife/renewal_process.py b/relife/renewal_process.py new file mode 100644 index 0000000..cad8b78 --- /dev/null +++ b/relife/renewal_process.py @@ -0,0 +1,1006 @@ +"""Generic renewal processes.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import numpy as np +from typing import Tuple + +from .model import LifetimeModel, AbsolutelyContinuousLifetimeModel +from .reward import Reward +from .discounting import Discount, ExponentialDiscounting +from .data import RenewalData, RenewalRewardData +from .utils import args_size, args_take, args_ndim + + +def _check_absolutely_continuous(model: LifetimeModel) -> None: + if not isinstance(model, AbsolutelyContinuousLifetimeModel): + raise NotImplementedError("The lifetime model must be absolutely continuous") + + +def _check_exponential_discounting(discount: Discount) -> None: + if not isinstance(discount, ExponentialDiscounting): + raise NotImplementedError("The discount function must be exponential") + + +def renewal_equation_solver( + F: np.ndarray, Fm: np.ndarray, y: np.ndarray, D: np.ndarray = None +) -> np.ndarray: + r"""Renewal equation solver. + + Parameters + ---------- + F : ndarray + The cumulative distribution function evaluated at each point of the + timeline. + Fm : ndarray + The cumulative distribution function evaluated at each midpoint of the + timeline. + y : ndarray + A given function evaluated at each point of the timeline. + D : ndarray, optional + Discount function value at each point of the timeline, by default None. + + Returns + ------- + ndarray + Renewal function evaluated at each point of the timeline. + + Notes + ----- + The timeline must start at 0. + + Solve the renewal equation for :math:`z`, such that for :math:`t\geq 0`. + + .. math:: + + \begin{aligned} z(t) & = y(t) + \int_0^t z(t-x) D(x) \mathrm{d}F(x) \\ + & = y(t) + z \ast F(t) + \end{aligned} + + where :math:`F` is the cumulative distribution function, :math:`y` a + function and :math:`D` the exponential discounting factor. + + References + ---------- + .. [1] Dragomir, S. S. (2011). Approximating the Riemann–Stieltjes integral + by a trapezoidal quadrature rule with applications. Mathematical and + computer modelling, 54(1-2), 243-260. + + .. [2] Tortorella, M. (2005). Numerical solutions of renewal-type integral + equations. INFORMS Journal on Computing, 17(1), 66-74. + """ + if D is None: + D = np.ones_like(F) + z = np.empty(y.shape) + u = D * np.insert(F[..., 1:] - Fm, 0, 1, axis=-1) + v = D[..., :-1] * np.insert(np.diff(Fm), 0, 1, axis=-1) + q0 = 1 / (1 - D[..., 0] * Fm[..., 0]) + z[..., 0] = y[..., 0] + z[..., 1] = q0 * (y[..., 1] + z[..., 0] * u[..., 1]) + for n in range(2, F.shape[-1]): + z[..., n] = q0 * ( + y[..., n] + + z[..., 0] * u[..., n] + + np.sum(z[..., 1:n][..., ::-1] * v[..., 1:n], axis=-1) + ) + return z + + +def delayed_renewal( + z: np.ndarray, F1: np.ndarray, F1m: np.ndarray, y1: np.ndarray, D: np.ndarray = None +) -> np.ndarray: + r"""Add delay for the first renewal to a solution of a renewal equation. + + Parameters + ---------- + z : ndarray + The solution of a renewal equation at each point of the timeline. + F1 : ndarray + The cumulative distribution function of the first renewal evaluated at + each point of the timeline. + F1m : ndarray + The cumulative distribution function of the first renewal evaluated at + each midpoint of the timeline. + y : ndarray + A given function related to the first renewal evaluated at each point of + the timeline. + D : ndarray, optional + Discount function value at each point of the timeline, by default None. + + Returns + ------- + ndarray + Delayed solution of the renewal equation at each point of the timeline. + + Notes + ----- + The solution of the renewal equation is delayed by computing: + + .. math:: + + z_1(t) = y_1(t) + \int_0^t z(t-x) D(x) \mathrm{d}F_1(x) + + where :math:`z` is a solution of a renewal equation, :math:`D` the + exponential discounting factor, :math:`F_1` is the cumulative distribution + function of the first renwal and :math:`y_1` a function related to the first + renewal. + """ + if D is None: + D = np.ones_like(F1) + z1 = np.empty(y1.shape) + u1 = D * np.insert(F1[..., 1:] - F1m, 0, 1, axis=-1) + v1 = D[..., :-1] * np.insert(np.diff(F1m), 0, 1, axis=-1) + z1[..., 0] = y1[..., 0] + z1[..., 1] = ( + y1[..., 1] + z[..., 0] * u1[..., 1] + z[..., 1] * D[..., 0] * F1m[..., 0] + ) + for n in range(2, F1.shape[-1]): + z1[..., n] = ( + y1[..., n] + + z[..., 0] * u1[..., n] + + z[..., n] * D[..., 0] * F1m[..., 0] + + np.sum(z[..., 1:n][..., ::-1] * v1[..., 1:n], axis=-1) + ) + return z1 + + +class RenewalProcess: + """Renewal process.""" + + def __init__(self, model: LifetimeModel, model1: LifetimeModel = None) -> None: + """Creates a renewal process. + + Parameters + ---------- + model : LifetimeModel + A lifetime model representing the durations between events. + + model1 : LifetimeModel, optional + A lifetime model for the first renewal (delayed renewal process), by + default None. + + """ + self.model = model + self.model1 = model1 + + def renewal_function( + self, + t: np.ndarray, + model_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + r"""The renewal function. + + Parameters + ---------- + t : 1D array + Timeline. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + + Returns + ------- + ndarray + The renewal function evaluated at each point of the timeline. + + Notes + ----- + + The expected total number of renewals is computed by solving the + renewal equation: + + .. math:: + + m(t) = F_1(t) + \int_0^t m(t-x) \mathrm{d}F(x) + + where: + + - :math:`m` is the renewal function, + - :math:`F` is the cumulative distribution function of the underlying + lifetime model, + - :math:`F_1` is the cumulative distribution function of the underlying + lifetime model for the fist renewal in the case of a delayed renewal + process. + + References + ---------- + .. [1] Rausand, M., Barros, A., & Hoyland, A. (2020). System Reliability + Theory: Models, Statistical Methods, and Applications. John Wiley & + Sons. + """ + tm = 0.5 * (t[1:] + t[:-1]) + F = self.model.cdf(t, *model_args) + Fm = self.model.cdf(tm, *model_args) + if self.model1 is not None: + y = self.model1.cdf(t, *model1_args) + else: + y = F + return renewal_equation_solver(F, Fm, y) + + def renewal_density( + self, + t: np.ndarray, + model_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + r"""The renewal density. + + Parameters + ---------- + t : 1D array + Timeline. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + + Returns + ------- + ndarray + Renewal density evaluated at each point of the timeline. + + Raises + ------ + NotImplementedError + If the lifetime model is not absolutely continuous. + + Notes + ----- + The renewal density is the derivative of the renewal function with + respect to time. It is computed by solving the renewal equation: + + .. math:: + + \mu(t) = f_1(t) + \int_0^t \mu(t-x) \mathrm{d}F(x) + + where: + + - :math:`\mu` is the renewal function, + - :math:`F` is the cumulative distribution function of the underlying + lifetime model, + - :math:`f_1` is the probability density function of the underlying + lifetime model for the fist renewal in the case of a delayed renewal + process. + + References + ---------- + .. [1] Rausand, M., Barros, A., & Hoyland, A. (2020). System Reliability + Theory: Models, Statistical Methods, and Applications. John Wiley & + Sons. + """ + if self.model1 is not None: + _check_absolutely_continuous(self.model1) + y = self.model1.pdf(t, *model1_args) + else: + _check_absolutely_continuous(self.model) + y = self.model.pdf(t, *model_args) + tm = 0.5 * (t[1:] + t[:-1]) + F = self.model.cdf(t, *model_args) + Fm = self.model.cdf(tm, *model_args) + return renewal_equation_solver(F, Fm, y) + + def sample( + self, + T: float, + model_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + n_samples: int = 1, + random_state: int = None, + ) -> RenewalData: + """Renewal data sampling. + + Parameters + ---------- + T : float + Time at the end of the observation. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + n_samples : int, optional + Number of samples, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + RenewalData + Samples of replacement times and durations. + """ + n_indices = max(1, args_size(*model_args, *model1_args)) + if self.model1 is not None: + data = self._sample_init( + T, self.model1, model1_args, n_indices, n_samples, random_state + ) + else: + data = self._sample_init( + T, self.model, model_args, n_indices, n_samples, random_state + ) + return self._sample_loop(data, self.model, model_args) + + @classmethod + def _sample_init( + cls, + T: float, + model: LifetimeModel, + model_args: Tuple[np.ndarray, ...], + n_indices: int, + n_samples: int, + random_state: int = None, + ) -> RenewalData: + """Initializing a RenewalData sample. + + Creates a RenewalData instance with the first renewal times and durations. + + Parameters + ---------- + T : float + Time at the end of observation. + model : LifetimeModel + A lifetime model representing the durations between events. + model_args : Tuple[ndarray,...] + Extra arguments required by the lifetime model. + n_indices : int + Number of assets. + n_samples : int + Number of samples. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + RenewalData + The renewal data sample with the first renewal times and durations. + """ + indices = np.repeat(np.arange(n_indices), n_samples) + samples = np.tile(np.arange(n_samples), n_indices) + size = n_indices * n_samples if len(model_args) == 0 else 1 + times = model.rvs( + *args_take(indices, *model_args), size=size, random_state=random_state + ).ravel() + durations = times.copy() + return RenewalData(T, n_indices, n_samples, indices, samples, times, durations) + + @classmethod + def _sample_loop( + cls, data: RenewalData, model: LifetimeModel, model_args: Tuple[np.ndarray, ...] + ) -> RenewalData: + """Sampling loop on renewals until the end time is reached. + + Parameters + ---------- + data : RenewalData + An initial RenewalData instance. + model : LifetimeModel + A lifetime model representing the durations between events. + model_args : Tuple[ndarray,...] + Extra arguments required by the lifetime model. + + Returns + ------- + RenewalData + The renewal data sample with times and durations. + """ + T = data.T + ind_T = np.nonzero(data.times < T) + times = data.times[ind_T] + indices = data.indices[ind_T] + samples = data.samples[ind_T] + + while len(ind_T[0])>0: + size = indices.size if len(model_args) == 0 else 1 + durations = model.rvs(*args_take(indices, *model_args), size=size).ravel() + times = times + durations + data.times = np.concatenate((data.times, times)) + data.durations = np.concatenate((data.durations, durations)) + data.indices = np.concatenate((data.indices, indices)) + data.samples = np.concatenate((data.samples, samples)) + ind_T = np.nonzero(times < T) + times = times[ind_T] + indices = indices[ind_T] + samples = samples[ind_T] + + return data + + +class RenewalRewardProcess(RenewalProcess): + """Renewal reward process.""" + + def __init__( + self, + model: LifetimeModel, + reward: Reward, + model1: LifetimeModel = None, + reward1: Reward = None, + discount: Discount = ExponentialDiscounting(), + ): + """Creates a renewal reward process. + + Parameters + ---------- + model : LifetimeModel + A lifetime model representing the durations between events. + reward : Reward + A reward associated to the interarrival time. + model1 : LifetimeModel, optional + A lifetime model for the first renewal (delayed renewal process), by + default None. + reward1 : Reward, optional + A reward associated to the first renewal, by default None + discount : Discount, optional + A discount function related to the rewards, by default + ExponentialDiscounting() + """ + super().__init__(model, model1) + self.reward = reward + self.reward1 = reward1 + self.discount = discount + + def expected_total_reward( + self, + t: np.ndarray, + model_args: Tuple[np.ndarray, ...] = (), + reward_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + reward1_args: Tuple[np.ndarray, ...] = (), + discount_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + r"""The expected total reward. + + Parameters + ---------- + t : 1D array + Timeline. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + reward_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward, by default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + reward1_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward of the first renewal, by default (). + discount_args : Tuple[ndarray,...], optional + Extra arguments required by the discount function, by default (). + + Returns + ------- + ndarray + Expected total reward of process evaluated at each point of the + timeline. + + Raises + ------ + NotImplementedError + If the discount function is not exponential. + + Notes + ----- + The renewal equation solved by the expected reward is: + + .. math:: + + z(t) = \int_0^t E[Y | X = x] D(x) \mathrm{d}F(x) + \int_0^t z(t-x) + D(x)\mathrm{d}F(x) + + where: + + - :math:`z` is the expected total reward, + - :math:`F` is the cumulative distribution function of the underlying + lifetime model, + - :math:`X` the interarrival random variable, + - :math:`Y` the associated reward, + - :math:`D` the exponential discount factor. + + If the renewal reward process is delayed, the expected total reward is + modified as: + + .. math:: + + z_1(t) = \int_0^t E[Y_1 | X_1 = x] D(x) \mathrm{d}F_1(x) + \int_0^t + z(t-x) D(x) \mathrm{d}F_1(x) + + where: + + - :math:`z_1` is the expected total reward with delay, + - :math:`F_1` is the cumulative distribution function of the lifetime + model for the first renewal, + - :math:`X_1` the interarrival random variable of the first renewal, + - :math:`Y_1` the associated reward of the first renewal, + """ + + _check_exponential_discounting(self.discount) + tm = 0.5 * (t[1:] + t[:-1]) + F = self.model.cdf(t, *model_args) + Fm = self.model.cdf(tm, *model_args) + D = self.discount.factor(t, *discount_args) + y = self._reward_partial_expectation( + t, + self.model, + self.reward, + self.discount, + model_args, + reward_args, + discount_args, + ) + z = renewal_equation_solver(F, Fm, y, D) + if self.model1 is not None: + F1 = self.model1.cdf(t, *model1_args) + F1m = self.model1.cdf(tm, *model1_args) + y1 = self._reward_partial_expectation( + t, + self.model1, + self.reward1, + self.discount, + model1_args, + reward1_args, + discount_args, + ) + z = delayed_renewal(z, F1, F1m, y1, D) + return z + + def expected_equivalent_annual_worth( + self, + t: np.ndarray, + model_args: Tuple[np.ndarray, ...] = (), + reward_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + reward1_args: Tuple[np.ndarray, ...] = (), + discount_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + """Expected equivalent annual worth. + + Gives the equivalent annual worth of the expected total reward of the + process at each point of the timeline. + + Parameters + ---------- + t : 1D array + Timeline. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + reward_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward, by default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + reward1_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward of the first + renewal, by default (). + discount_args : Tuple[ndarray,...], optional + Extra arguments required by the discount function, by default (). + + Returns + ------- + ndarray + The expected equivalent annual worth evaluated at each point of the + timeline. + + Notes + ----- + The equivalent annual worth at time :math:`t` is equal to the expected + total reward :math:`z` divided by the annuity factor :math:`AF(t)`. + """ + z = self.expected_total_reward( + t, model_args, reward_args, model1_args, reward1_args, discount_args + ) + af = self.discount.annuity_factor(t, *discount_args) + mask = af == 0 + af = np.ma.masked_where(mask, af) + q = z / af + if self.model1 is not None: + q0 = self.reward1.conditional_expectation( + 0, *reward1_args + ) * self.model1.pdf(0, *model1_args) + else: + q0 = self.reward.conditional_expectation(0, *reward_args) * self.model.pdf( + 0, *model_args + ) + return np.where(mask, q0, q) + + def asymptotic_expected_total_reward( + self, + model_args: Tuple[np.ndarray, ...] = (), + reward_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + reward1_args: Tuple[np.ndarray, ...] = (), + discount_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + r"""Asymptotic expected total reward. + + Parameters + ---------- + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + reward_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward, by default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + reward1_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward of the first + renewal, by default (). + discount_args : Tuple[ndarray,...], optional + Extra arguments required by the discount function, by default (). + + Returns + ------- + ndarray + The assymptotic expected total reward of the process. + + Raises + ------ + NotImplementedError + If the discount function is not exponential. + + Notes + ----- + The asymptotic expected total reward is: + + .. math:: + + z^\infty = \lim_{t\to \infty} z(t) = \dfrac{E[Y D(X)]}{1-E[D(X)]} + + where: + + - :math:`X` the interarrival random variable, + - :math:`Y` the associated reward, + - :math:`D` the exponential discount factor. + + If the renewal reward process is delayed, the asymptotic expected total + reward is modified as: + + .. math:: + + z_1^\infty = E[Y_1 D(X_1)] + z^\infty E[D(X_1)] + + where: + + - :math:`X_1` the interarrival random variable of the first renewal, + - :math:`Y_1` the associated reward of the first renewal, + """ + _check_exponential_discounting(self.discount) + rate = discount_args[0] + mask = rate <= 0 + rate = np.ma.MaskedArray(rate, mask) + ndim = args_ndim(*model_args, *reward_args, rate) + f = lambda x: self.discount.factor(x, rate) + y = lambda x: self.discount.factor( + x, rate + ) * self.reward.conditional_expectation(x, *reward_args) + lf = self.model.ls_integrate(f, 0, np.inf, *model_args, ndim=ndim) + ly = self.model.ls_integrate(y, 0, np.inf, *model_args, ndim=ndim) + z = ly / (1 - lf) + if self.model1 is not None: + ndim1 = args_ndim(*model1_args, *reward1_args, rate) + y1 = lambda x: self.discount.factor( + x, rate + ) * self.reward.conditional_expectation(x, *reward1_args) + lf1 = self.model1.ls_integrate(f, 0, np.inf, *model1_args, ndim=ndim1) + ly1 = self.model1.ls_integrate(y1, 0, np.inf, *model1_args, ndim=ndim1) + z = ly1 + z * lf1 + return np.where(mask, np.inf, z) + + def asymptotic_expected_equivalent_annual_worth( + self, + model_args: Tuple[np.ndarray, ...] = (), + reward_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + reward1_args: Tuple[np.ndarray, ...] = (), + discount_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + """Asymptotic expected equivalent annual worth. + + Parameters + ---------- + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + reward_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward, by default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + reward1_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward of the first + renewal, by default (). + discount_args : Tuple[ndarray,...], optional + Extra arguments required by the discount function, by default (). + + Returns + ------- + ndarray + The asymptotic expected equivalent annual worth of the process. + + Raises + ------ + NotImplementedError + If the discount function is not exponential. + """ + _check_exponential_discounting(self.discount) + rate = discount_args[0] + mask = rate <= 0 + rate = np.ma.MaskedArray(rate, mask) + ndim = args_ndim(*model_args, *reward_args) + q = rate * self.asymptotic_expected_total_reward( + model_args, reward_args, model1_args, reward1_args, discount_args + ) + q0 = self.model.ls_integrate( + lambda x: self.reward.conditional_expectation(x, *reward_args), + 0, + np.inf, + *model_args, + ndim=ndim + ) / self.model.mean(*model_args) + return np.where(mask, q0, q) + + def sample( + self, + T: float, + model_args: Tuple[np.ndarray, ...] = (), + reward_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + reward1_args: Tuple[np.ndarray, ...] = (), + discount_args: Tuple[np.ndarray, ...] = (), + n_samples: int = 1, + random_state: int = None, + ) -> RenewalRewardData: + """Renewal reward data sampling. + + Parameters + ---------- + T : float + Time at the end of the observation. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + reward_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward, by default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + reward1_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward of the first + renewal, by default (). + discount_args : Tuple[ndarray,...], optional + Extra arguments required by the discount function, by default (). + n_samples : int, optional + Number of samples, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + RenewalRewardData + Samples of replacement times, durations and rewards. + """ + n_indices = max( + 1, args_size(*model_args, *reward_args, *model1_args, *reward1_args) + ) + if self.model1 is not None: + data = self._sample_init( + T, + self.model1, + self.reward1, + self.discount, + model1_args, + reward1_args, + discount_args, + n_indices, + n_samples, + random_state, + ) + else: + data = self._sample_init( + T, + self.model, + self.reward, + self.discount, + model_args, + reward_args, + discount_args, + n_indices, + n_samples, + random_state, + ) + return self._sample_loop( + data, + self.model, + self.reward, + self.discount, + model_args, + reward_args, + discount_args, + ) + + @classmethod + def _reward_partial_expectation( + cls, + t: np.ndarray, + model: LifetimeModel, + reward: Reward, + discount: Discount, + model_args: Tuple[np.ndarray, ...] = (), + reward_args: Tuple[np.ndarray, ...] = (), + discount_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + r"""Reward partial expectation. + + Parameters + ---------- + t : float or 1D array + Timeline. + model : LifetimeModel + A lifetime model representing the durations between events. + reward : Reward + A reward associated to the interarrival time. + discount : Discount + A discount function related to the rewards. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + reward_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward, by default (). + discount_args : Tuple[ndarray,...], optional + Extra arguments required by the discount function, by default (). + + Returns + ------- + ndarray + Reward partial expectation at each point of the timeline. + + Notes + ----- + The reward partial expactation is defined by: + + .. math:: + + y(t) = \int_0^t E[Y | X = x] D(x) \mathrm{d}F(x) + + where: + + - :math:`F` is the cumulative distribution function of the underlying + lifetime model, + - :math:`X` the interarrival random variable, + - :math:`Y` the associated reward, + - :math:`D` the exponential discount factor. + """ + func = lambda x: reward.conditional_expectation( + x, *reward_args + ) * discount.factor(x, *discount_args) + ndim = args_ndim(t, *model_args, *reward_args, *discount_args) + return model.ls_integrate(func, 0, t, *model_args, ndim=ndim) + + @classmethod + def _sample_init( + cls, + T: float, + model: LifetimeModel, + reward: Reward, + discount: Discount, + model_args: Tuple[np.ndarray, ...], + reward_args: Tuple[np.ndarray, ...], + discount_args: Tuple[np.ndarray, ...], + n_indices: int, + n_samples: int, + random_state: int = None, + ) -> RenewalRewardData: + """Initializing a RenewalRewardData sample. + + Creates a RenewalRewardData instance with the first renewal times, + durations and rewards. + + Parameters + ---------- + T : float + Time at the end of the observation. + model : LifetimeModel + A lifetime model representing the durations between events. + reward : Reward + A reward associated to the interarrival time. + discount : Discount + A discount function related to the rewards. + model_args : Tuple[ndarray,...] + Extra arguments required by the underlying lifetime model. + reward_args : Tuple[ndarray,...] + Extra arguments required by the associated reward. + discount_args : Tuple[ndarray,...] + Extra arguments required by the discount function. + n_indices : int + Number of assets. + n_samples : int + Number of samples. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + RenewalRewardData + The renewal reward data sample with the first renewal times, + durations and rewards. + """ + data = super()._sample_init( + T, model, model_args, n_indices, n_samples, random_state + ) + rewards = ( + np.array( + reward.sample( + data.durations.reshape(-1, 1), + *args_take(data.indices, *reward_args) + ).swapaxes(-2, -1) + * discount.factor(data.times, *discount_args), + ndmin=3, + ) + .sum(axis=0) + .ravel() + ) + return RenewalRewardData(*data.astuple(), rewards) + + @classmethod + def _sample_loop( + cls, + data: RenewalRewardData, + model: LifetimeModel, + reward: Reward, + discount: Discount, + model_args: Tuple[np.ndarray, ...], + reward_args: Tuple[np.ndarray, ...], + discount_args: Tuple[np.ndarray, ...], + ) -> RenewalRewardData: + """Sampling loop on renewals until the end time is reached. + + Parameters + ---------- + data : RenewalRewardData + An initial RenewalRewardData instance. + model : LifetimeModel + A lifetime model representing the durations between events. + reward : Reward + A reward associated to the interarrival time. + discount : Discount + A discount function related to the rewards. + model_args : Tuple[ndarray,...] + Extra arguments required by the underlying lifetime model. + reward_args : Tuple[ndarray,...] + Extra arguments required by the associated reward. + discount_args : Tuple[ndarray,...] + Extra arguments required by the discount function. + + Returns + ------- + RenewalRewardData + The renewal reward data sample with times, durations and rewards. + """ + data = super()._sample_loop(data, model, model_args) + ind = data.rewards.size + indices = data.indices[ind:] + times = data.times[ind:] + durations = data.durations[ind:] + rewards = ( + np.array( + reward.sample( + durations.reshape(-1, 1), *args_take(indices, *reward_args) + ).swapaxes(-2, -1) + * discount.factor(times, *discount_args), + ndmin=3, + ) + .sum(axis=0) + .ravel() + ) + data.rewards = np.concatenate((data.rewards, rewards)) + return data diff --git a/relife/replacement_policy.py b/relife/replacement_policy.py new file mode 100644 index 0000000..230a81c --- /dev/null +++ b/relife/replacement_policy.py @@ -0,0 +1,1604 @@ +"""Run-to-failure and age replacement maintenance policies.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from __future__ import annotations +import numpy as np +import scipy.optimize as optimize +from typing import Tuple + +from .model import AbsolutelyContinuousLifetimeModel, AgeReplacementModel, LeftTruncated +from .data import ReplacementPolicyData +from .reward import FailureCost, AgeReplacementCost +from .discounting import ExponentialDiscounting +from .renewal_process import RenewalRewardProcess +from .utils import args_size, args_take, args_ndim, gauss_legendre + + +# One Cyle Replacement Policies + + +class OneCycleRunToFailure: + """One cyle run-to-failure policy.""" + + reward: FailureCost = FailureCost() #: The failure cost of the asset. + discount: ExponentialDiscounting = ( + ExponentialDiscounting() + ) #: Exponential discounting. + + def __init__( + self, + model: AbsolutelyContinuousLifetimeModel, + args:Tuple[np.ndarray,...] = (), + a0: np.ndarray = None, + cf: np.ndarray = None, + rate: np.ndarray = 0, + ) -> None: + """One cycle run-to-failure policy. + + Parameters + ---------- + model : AbsolutelyContinuousLifetimeModel + Absolutely continuous lifetime model of the asset. + args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model. + a0 : float or 2D array, optional + Current ages of the assets, by default 0 for each asset. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + + Notes + ----- + If `cf` is set to None, if should be defined when using methods to + compute costs. + + If `cf` and `rate` are 2D or 3D array, then: + + - axis=-2 represents the indices of each asset, + - axis=-3 represents the indices of each component of the cost vector. + + References + ---------- + .. [1] Coolen-Schrijner, P., & Coolen, F. P. A. (2006). On optimality + criteria for age replacement. Proceedings of the Institution of + Mechanical Engineers, Part O: Journal of Risk and Reliability, + 220(1), 21-29 + """ + if a0 is not None: + model = LeftTruncated(model) + args = (a0, *args) + self.model = model + self.args = args + self.cf = cf + self.rate = rate + + def _parse_policy_args( + self, cf: np.ndarray, rate: np.ndarray + ) -> Tuple[np.ndarray, ...]: + """Parse the arguments of the policy. + + Parameters + ---------- + cf : float, 2D array or 3D array + Costs of failures. + rate : float, 2D array or 3D array + Discount rate. + + Returns + ------- + Tuple[ndarray,...] + `(cf, rate)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + if cf is None: + cf = self.cf + if rate is None: + rate = self.rate + return cf, rate + + def rrp_args( + self, cf: np.ndarray = None, rate: np.ndarray = None + ) -> Tuple[Tuple[np.ndarray, ...], ...]: + """Arguments of the underlying renewal reward process. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + Tuple[Tuple[ndarray,...],...] + `(model_args, reaward_args, discount_args)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + cf, rate = self._parse_policy_args(cf, rate) + model_args = self.args + reward_args = (cf,) + discount_args = (rate,) + return model_args, reward_args, discount_args + + def expected_total_cost( + self, t: np.ndarray, cf: np.ndarray = None, rate: np.ndarray = None + ) -> np.ndarray: + """The expected total discounted cost. + + Parameters + ---------- + t : 1D array + Timeline. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The cumulative expected total cost for each asset along the + timeline. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return RenewalRewardProcess._reward_partial_expectation( + t, self.model, self.reward, self.discount, *self.rrp_args(cf, rate) + ) + + def asymptotic_expected_total_cost( + self, cf: np.ndarray = None, rate: np.ndarray = None + ) -> np.ndarray: + """The asymptotic expected total cost. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The asymptotic expected total cost for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return RenewalRewardProcess._reward_partial_expectation( + np.inf, self.model, self.reward, self.discount, *self.rrp_args(cf, rate) + ) + + def expected_equivalent_annual_cost( + self, + t: np.ndarray, + cf: np.ndarray = None, + rate: np.ndarray = None, + dt: float = 1.0, + ) -> np.ndarray: + r"""The expected equivalent annual cost. + + Parameters + ---------- + t : 1D array + Timeline. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + dt : float, optional + The length of the first period before discounting, by default 1. + + Returns + ------- + ndarray + The expected equivalent annual cost until time `t`. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The expected equivalent annual cost until time :math:`t` is given by: + + .. math:: + + EEAC(t) = \int_0^t \frac{\delta c_f e^{-\delta x}}{1 - e^{-\delta + x}} \mathrm{d}F(x) + """ + model_args, reward_args, discount_args = self.rrp_args(cf, rate) + ndim = args_ndim(t, *model_args, *reward_args, *discount_args) + f = ( + lambda x: self.reward.conditional_expectation(x, *reward_args) + * self.discount.factor(x, *discount_args) + / self.discount.annuity_factor(x, *discount_args) + ) + mask = t < dt + q0 = self.model.cdf(dt, *model_args) * f(dt) + return q0 + np.where( + mask, 0, self.model.ls_integrate(f, dt, t, *model_args, ndim=ndim) + ) + + def asymptotic_expected_equivalent_annual_cost( + self, cf: np.ndarray = None, rate: np.ndarray = None, dt: float = 1.0 + ) -> np.ndarray: + r"""The asymptotic expected equivalent annual cost. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + dt : float, optional + The length of the first period before discounting, by default 1. + + Returns + ------- + ndarray + The asymptotic expected equivalent annual cost. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The asymptotic expected equivalent annual cost is: + + .. math:: + + EEAC_\infty = \int_0^\infty \frac{\delta c_f e^{-\delta x}}{1 - + e^{-\delta x}} \mathrm{d}F(x) + """ + return self.expected_equivalent_annual_cost(np.inf, cf, rate, dt) + + def sample( + self, + cf: np.ndarray = None, + rate: np.ndarray = None, + n_samples: int = 1, + random_state: int = None, + ) -> ReplacementPolicyData: + """One cycle run-to-failure policy sampling. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + n_samples : int, optional + Number of samples, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + ReplacementPolicyData + Samples of replacement times, durations, costs and events for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + T = np.inf + model_args, reward_args, discount_args = self.rrp_args(cf, rate) + n_indices = max(1, args_size(*model_args, *reward_args)) + data = RenewalRewardProcess._sample_init( + T, + self.model, + self.reward, + self.discount, + model_args, + reward_args, + discount_args, + n_indices, + n_samples, + random_state, + ) + events = np.ones(data.size) + if isinstance(self.model, LeftTruncated): + a0, *args = args_take(data.indices, *self.args) + else: + args = args_take(data.indices, *self.args) + a0 = np.zeros(data.indices.size).reshape(-1, 1) + return ReplacementPolicyData(*data.astuple(), events, args, a0) + + +class OneCycleAgeReplacementPolicy: + """One-cyle age replacement policy. + + The asset is disposed at a fixed age `ar` with costs `cp` or upon failure + with costs `cf` if earlier. + """ + + reward: AgeReplacementCost = AgeReplacementCost() #: Costs of the replacement. + discount: ExponentialDiscounting = ( + ExponentialDiscounting() + ) #: Exponential discounting. + + def __init__( + self, + model: AbsolutelyContinuousLifetimeModel, + args:Tuple[np.ndarray,...]=(), + a0: np.ndarray = None, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = 0, + ) -> None: + """One-cyle age replacement policy. + + Parameters + ---------- + model : AbsolutelyContinuousLifetimeModel + Absolutely continuous lifetime model of the asset. + args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model, by default (). + a0 : float or 2D array, optional + Current ages of the assets, by default 0 for each asset. + ar : float, 2D array, optional + Ages of preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + + Notes + ----- + If `ar`, `cf` or `cp` is set to None, the argument should be defined + when using methods to compute costs. + + If `cf`, `cp` and `rate` are 2D or 3D array, then: + + - axis=-2 represents the indices of each asset, + - axis=-3 represents the indices of each component of the cost vector. + + References + ---------- + .. [1] Coolen-Schrijner, P., & Coolen, F. P. A. (2006). On optimality + criteria for age replacement. Proceedings of the Institution of + Mechanical Engineers, Part O: Journal of Risk and Reliability, + 220(1), 21-29 + """ + if a0 is not None: + model = LeftTruncated(model) + args = (a0, *args) + self.model = AgeReplacementModel(model) + self.args = args + self.ar = ar + self.cf = cf + self.cp = cp + self.rate = rate + + def _parse_policy_args( + self, ar: np.ndarray, cf: np.ndarray, cp: np.ndarray, rate: np.ndarray + ) -> Tuple[np.ndarray, ...]: + """Parse the arguments of the policy. + + Parameters + ---------- + ar : float or 2D array + Ages of preventive replacements. + cf : float, 2D array or 3D array + Costs of failures. + cp : float, 2D array or 3D array + Costs of preventive replacements. + rate : float, 2D array or 3D array + Discount rate. + + Returns + ------- + Tuple[ndarray,...] + `(ar, cf, cp, rate)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + if ar is None: + ar = self.ar + if cf is None: + cf = self.cf + if cp is None: + cp = self.cp + if rate is None: + rate = self.rate + return ar, cf, cp, rate + + def rrp_args( + self, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> Tuple[Tuple[np.ndarray, ...], ...]: + """Arguments of the underlying renewal reward process. + + Parameters + ---------- + ar : float or 2D array, optional + Ages of preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + Tuple[Tuple[ndarray,...],...] + `(model_args, reaward_args, discount_args)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + ar, cf, cp, rate = self._parse_policy_args(ar, cf, cp, rate) + model_args = (ar, *self.args) + reward_args = (ar, cf, cp) + discount_args = (rate,) + return model_args, reward_args, discount_args + + @classmethod + def optimal_replacement_age( + cls, + model: AbsolutelyContinuousLifetimeModel, + cf: np.ndarray, + cp: np.ndarray, + rate: np.ndarray = 0, + args:Tuple[np.ndarray,...]=(), + ) -> np.ndarray: + r"""Compute the optimal age of preventive replacement for each asset. + + The optimal age of preventive replacement is computed by minimizing the + asymptotic expected equivalent annual cost on one-cycle. + + Parameters + ---------- + model : AbsolutelyContinuousLifetimeModel + Absolutely continuous lifetime model. + cf : float, 2D array or 3D array + Costs of failures. + cp : float, 2D array or 3D array + Costs of preventive replacements. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model, by default (). + + Returns + ------- + ndarray + The optimal age of preventive replacement. + + Notes + ----- + The optimal age of replacement minimizes the asymptotic expected + equivalent annual cost: + + .. math:: + + EEAC_\infty(a) = \sum_i {c_f}_i \int_0^a \dfrac{\delta_i e^{-\delta_i + t}}{1 - e^{-\delta_i t}} f(t) \mathrm{d}t + {c_p}_i S(a)\dfrac{\delta_i + e^{-\delta_i a}}{1 - e^{-\delta_i a}} + + where: + + - :math:`a` is the age of replacement, + - :math:`{c_f}_i, {c_p}_i, \delta_i` are respectively the components of + the failures costs, preventive costs and the associated discount rate, + - :math:`S, f, h` are respectively the survival function, the + probability density function and the hazard function of the underlying + lifetime model. + + The optimal age of replacement is then solution of the equation: + + .. math:: + + \sum_i \dfrac{\delta_i e^{-\delta_i a}}{1 - e^{-\delta_i a}} \left( + ({c_f}_i - {c_p}_i) h(a) - \dfrac{\delta_i {c_p}_i}{1 - e^{-\delta_i + a}} \right) = 0 + """ + size = args_size(cf, cp, *args) + cf, cp = np.array(cf, ndmin=3), np.array(cp, ndmin=3) + x0 = np.minimum(np.sum(cp, axis=0) / np.sum(cf - cp, axis=0), 1) + if np.size(x0) == 1: + x0 = np.tile(x0, (size, 1)) + eq = lambda a: np.sum( + cls.discount.factor(a, rate) + / cls.discount.annuity_factor(a, rate) + * ( + (cf - cp) * model.hf(a, *args) + - cp / cls.discount.annuity_factor(a, rate) + ), + axis=0, + ) + ar = optimize.newton(eq, x0) + return ar.squeeze() if np.size(ar) == 1 else ar + + def fit( + self, cf: np.ndarray = None, cp: np.ndarray = None, rate: np.ndarray = None + ) -> OneCycleAgeReplacementPolicy: + """Computes and sets the optimal age of replacement for each asset. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + self + The fitted policy as the current object. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + _, cf, cp, rate = self._parse_policy_args(None, cf, cp, rate) + self.ar = self.optimal_replacement_age( + self.model.baseline, cf, cp, rate, self.args + ) + return self + + def expected_total_cost( + self, + t: np.ndarray, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> np.ndarray: + """The expected total discounted cost. + + Parameters + ---------- + t : 1D array + Timeline. + ar : float or 2D array, optional + Ages of replacement, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The cumulative expected total cost for each asset along the + timeline. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return RenewalRewardProcess._reward_partial_expectation( + t, self.model, self.reward, self.discount, *self.rrp_args(ar, cf, cp, rate) + ) + + def asymptotic_expected_total_cost( + self, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> np.ndarray: + """The asymptotic expected total cost. + + Parameters + ---------- + ar : float or 2D array, optional + Ages of preventive replacement, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The asymptotic expected total cost for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return RenewalRewardProcess._reward_partial_expectation( + np.inf, + self.model, + self.reward, + self.discount, + *self.rrp_args(ar, cf, cp, rate), + ) + + def expected_equivalent_annual_cost( + self, + t: np.ndarray, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + dt: float = 1.0, + ) -> np.ndarray: + r"""The expected equivalent annual cost. + + Parameters + ---------- + t : 1D array + Timeline. + ar : float or 2D array, optional + Ages of preventive replacement, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + dt : float, optional + The length of the first period before discounting, by default 1. + + Returns + ------- + ndarray + The cumulative expected equivalent annual cost until time t. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The expected equivalent annual cost until time :math:`t` is: + + .. math:: + + EEAC(t) = \int_0^t \frac{\delta c_f e^{-\delta x}}{1 - e^{-\delta + x}} \mathrm{d}F(x) + """ + model_args, reward_args, discount_args = self.rrp_args(ar, cf, cp, rate) + ndim = args_ndim(t, *model_args, *reward_args, *discount_args) + f = ( + lambda x: self.reward.conditional_expectation(x, *reward_args) + * self.discount.factor(x, *discount_args) + / self.discount.annuity_factor(x, *discount_args) + ) + mask = t < dt + q0 = self.model.cdf(dt, *model_args) * f(dt) + return q0 + np.where( + mask, 0, self.model.ls_integrate(f, dt, t, *model_args, ndim=ndim) + ) + + def asymptotic_expected_equivalent_annual_cost( + self, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + dt: float = 1.0, + ) -> np.ndarray: + r"""The asymptotic expected equivalent annual cost. + + Parameters + ---------- + ar : float or 2D array, optional + Ages of preventive replacement, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + dt : float, optional + The length of the first period before discounting, by default 1. + + Returns + ------- + ndarray + The asymptotic expected equivalent annual cost. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The asymptotic expected equivalent annual cost is: + + .. math:: + + EEAC_\infty = \int_0^\infty \frac{\delta c_f e^{-\delta x}}{1 - + e^{-\delta x}} \mathrm{d}F(x) + """ + return self.expected_equivalent_annual_cost(np.inf, ar, cf, cp, rate, dt) + + def sample( + self, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + n_samples: int = 1, + random_state: int = None, + ) -> ReplacementPolicyData: + """One-cycle age replacement policy sampling. + + Parameters + ---------- + ar : float or 2D array, optional + Ages of preventive replacement, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + n_samples : int, optional + Number of samples, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + ReplacementPolicyData + Samples of replacement times, durations, costs and events for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + T = np.inf + model_args, reward_args, discount_args = self.rrp_args(ar, cf, cp, rate) + n_indices = max(1, args_size(*model_args, *reward_args)) + data = RenewalRewardProcess._sample_init( + T, + self.model, + self.reward, + self.discount, + model_args, + reward_args, + discount_args, + n_indices, + n_samples, + random_state, + ) + ar = model_args[0] + events = np.where(data.durations < args_take(data.indices, ar)[0].ravel(), 1, 0) + if isinstance(self.model.baseline, LeftTruncated): + a0, *args = args_take(data.indices, *self.args) + else: + args = args_take(data.indices, *self.args) + a0 = np.zeros(data.indices.size).reshape(-1, 1) + return ReplacementPolicyData(*data.astuple(), events, args, a0) + + +# Renewal Process Replacement Policy + + +class RunToFailure: + """Run-to-failure renewal policy.""" + + reward: FailureCost = FailureCost() #: The failure cost of the asset. + discount: ExponentialDiscounting = ( + ExponentialDiscounting() + ) #: Exponential discounting. + + def __init__( + self, + model: AbsolutelyContinuousLifetimeModel, + args:Tuple[np.ndarray,...]=(), + a0: np.ndarray = None, + cf: np.ndarray = None, + rate: np.ndarray = 0, + ) -> None: + """Run-to-failure renwal policy. + + Renewal reward process where assets are replaced on failure with costs + `cf`. + + Parameters + ---------- + model : AbsolutelyContinuousLifetimeModel + Absolutely continuous lifetime model of the asset. + args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model, by default (). + a0 : float or 2D array, optional + Current ages of the assets, by default 0 for each asset. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + + Notes + ----- + If `cf` is set to None, if should be defined when using methods to + compute costs. + + If `cf` and `rate` are 2D or 3D array, then: + + - axis=-2 represents the indices of each asset, + - axis=-3 represents the indices of each component of the cost vector. + + References + ---------- + .. [1] Van der Weide, J. A. M., & Van Noortwijk, J. M. (2008). Renewal + theory with exponential and hyperbolic discounting. Probability in + the Engineering and Informational Sciences, 22(1), 53-74. + """ + if a0 is not None: + self.model1 = LeftTruncated(model) + self.args1 = (a0, *args) + else: + self.model1 = None + self.args1 = () + self.model = model + self.args = args + self.cf = cf + self.rate = rate + self.rrp = RenewalRewardProcess( + self.model, self.reward, self.model1, self.reward, self.discount + ) + + def _parse_policy_args( + self, cf: np.ndarray, rate: np.ndarray + ) -> Tuple[np.ndarray, ...]: + """Parse the arguments of the policy. + + Parameters + ---------- + cf : float, 2D array or 3D array + Costs of failures. + rate : float, 2D array or 3D array + Discount rate. + + Returns + ------- + Tuple[ndarray,...] + `(cf, rate)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + if cf is None: + cf = self.cf + if rate is None: + rate = self.rate + return cf, rate + + def rrp_args( + self, cf: np.ndarray = None, rate: np.ndarray = None + ) -> Tuple[Tuple[np.ndarray, ...], ...]: + """Arguments of the underlying renewal reward process. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + Tuple[Tuple[ndarray,...],...] + `(model_args, reward_args, model1_args, reward1_args, discount_args)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + cf, rate = self._parse_policy_args(cf, rate) + model_args = self.args + reward_args = (cf,) + model1_args = self.args1 + reward1_args = (cf,) + discount_args = (rate,) + return model_args, reward_args, model1_args, reward1_args, discount_args + + def expected_total_cost( + self, t: np.ndarray, cf: np.ndarray = None, rate: np.ndarray = None + ) -> np.ndarray: + """The expected total discounted cost. + + The expected total discounted cost is computed by solving the renewal + equation. + + Parameters + ---------- + t : 1D array + Timeline. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The cumulative expected total cost for each asset along the + timeline. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return self.rrp.expected_total_reward(t, *self.rrp_args(cf, rate)) + + def asymptotic_expected_total_cost( + self, cf: np.ndarray = None, rate: np.ndarray = None + ) -> np.ndarray: + """The asymptotic expected total cost. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The asymptotic expected total cost for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return self.rrp.asymptotic_expected_total_reward(*self.rrp_args(cf, rate)) + + def expected_equivalent_annual_cost( + self, t: np.ndarray, cf: np.ndarray = None, rate: np.ndarray = None + ) -> np.ndarray: + r"""The expected equivalent annual cost. + + where :math:`z` is the expected total cost. + + Parameters + ---------- + t : 1D array + Timeline. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The expected equivalent annual cost for each asset along the + timeline. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The expected equivalent annual cost at time :math:`t` is: + + .. math:: + + EEAC(t) = \dfrac{\delta z(t)}{1 - e^{-\delta t}} + """ + return self.rrp.expected_equivalent_annual_worth(t, *self.rrp_args(cf, rate)) + + def asymptotic_expected_equivalent_annual_cost( + self, cf: np.ndarray = None, rate: np.ndarray = None + ) -> np.ndarray: + r"""The asymptotic expected equivalent annual cost. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The asymptotic expected equivalent annual cost for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The asymptotic expected equivalent annual cost is: + + .. math:: + + EEAC_\infty = \lim_{t \to \infty} EEAC(t) + """ + return self.rrp.asymptotic_expected_equivalent_annual_worth( + *self.rrp_args(cf, rate) + ) + + def sample( + self, + T: float, + cf: np.ndarray = None, + rate: np.ndarray = None, + n_samples: int = 1, + random_state: int = None, + ) -> ReplacementPolicyData: + """Run-to-failure renewal policy sampling. + + Parameters + ---------- + T : float + End of the observation period. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + n_samples : int, optional + Number of samples, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + ReplacementPolicyData + Samples of replacement times, durations, costs and events for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + data = self.rrp.sample(T, *self.rrp_args(cf, rate), n_samples, random_state) + events = np.ones(data.size) + args = args_take(data.indices, *self.args) + a0 = np.zeros(data.size) + if self.model1 is not None: + ind1 = data.n_indices * data.n_samples + a0[:ind1] = args_take(data.indices[:ind1], *self.args1)[0] + return ReplacementPolicyData(*data.astuple(), events, args, a0) + + +class AgeReplacementPolicy: + """Time based replacement policy.""" + + reward: AgeReplacementCost = AgeReplacementCost() #: Costs of the replacement. + discount: ExponentialDiscounting = ( + ExponentialDiscounting() + ) #: Exponential discounting. + + def __init__( + self, + model: AbsolutelyContinuousLifetimeModel, + args:Tuple[np.ndarray,...]=(), + a0: np.ndarray = None, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = 0, + ) -> None: + """Age replacement renewal policy. + + Renewal reward process where assets are replaced at a fixed age `ar` + with costs `cp` or upon failure with costs `cf` if earlier. + + Parameters + ---------- + model : AbsolutelyContinuousLifetimeModel + Absolutely continuous lifetime model of the asset. + args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model, by default (). + a0 : float or 2D array, optional + Current ages of the assets, by default 0 for each asset. + ar : float, 2D array, optional + Ages of preventive replacements, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + + Notes + ----- + If `ar`, `ar1`, `cf` or `cp` is set to None, the argument should be + defined when using methods to compute costs. + + If `cf`, `cp` and `rate` are 2D or 3D array, then: + + - axis=-2 represents the indices of each asset, + - axis=-3 represents the indices of each component of the cost vector. + + References + ---------- + .. [1] Mazzuchi, T. A., Van Noortwijk, J. M., & Kallen, M. J. (2007). + Maintenance optimization. Encyclopedia of Statistics in Quality and + Reliability, 1000-1008. + """ + if a0 is not None: + self.model1 = AgeReplacementModel(LeftTruncated(model)) + self.args1 = (a0, *args) + else: + self.model1 = None + self.args1 = () + self.model = AgeReplacementModel(model) + self.args = args + self.ar = ar + self.ar1 = ar1 + self.cf = cf + self.cp = cp + self.rate = rate + self.rrp = RenewalRewardProcess( + self.model, self.reward, self.model1, self.reward, self.discount + ) + + def _parse_policy_args( + self, + ar: np.ndarray, + ar1: np.ndarray, + cf: np.ndarray, + cp: np.ndarray, + rate: np.ndarray, + ) -> Tuple[np.ndarray, ...]: + """Parse the arguments of the policy. + + Parameters + ---------- + ar : float or 2D array + Ages of preventive replacements. + ar1 : float, 2D array + Ages of the first preventive replacements. + cf : float, 2D array or 3D array + Costs of failures. + cp : float, 2D array or 3D array + Costs of preventive replacements. + rate : float, 2D array or 3D array + Discount rate. + + Returns + ------- + Tuple[ndarray,...] + `(ar, ar1, cf, cp, rate)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + if ar is None: + ar = self.ar + if ar1 is None: + ar1 = self.ar1 + if cf is None: + cf = self.cf + if cp is None: + cp = self.cp + if rate is None: + rate = self.rate + return ar, ar1, cf, cp, rate + + def rrp_args( + self, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> Tuple[Tuple[np.ndarray, ...], ...]: + """Arguments of the underlying renewal reward process. + + Parameters + ---------- + ar : float, 2D array, optional + Ages of preventive replacements, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + + Returns + ------- + Tuple[Tuple[ndarray,...],...] + `(model_args, reward_args, model1_args, reward1_args, discount_args)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + ar, ar1, cf, cp, rate = self._parse_policy_args(ar, ar1, cf, cp, rate) + model_args = (ar, *self.args) + reward_args = (ar, cf, cp) + model1_args = (ar1, *self.args1) + reward1_args = (ar1, cf, cp) + discount_args = (rate,) + return model_args, reward_args, model1_args, reward1_args, discount_args + + @classmethod + def optimal_replacement_age( + cls, + model: AbsolutelyContinuousLifetimeModel, + cf: np.ndarray, + cp: np.ndarray, + rate: np.ndarray = 0, + args:Tuple[np.ndarray,...]=(), + ) -> np.ndarray: + r"""Compute the optimal age of preventive replacement for each asset. + + The optimal age of preventive replacement is computed by minimizing the + asymptotic expected equivalent annual cost of the renewal reward + process. + + Parameters + ---------- + model : AbsolutelyContinuousLifetimeModel + Absolutely continuous lifetime model. + cf : float, 2D array or 3D array + Costs of failures. + cp : float, 2D array or 3D array + Costs of preventive replacements. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model, by default (). + + Returns + ------- + ndarray + The optimal age of preventive replacement. + + Notes + ----- + The optimal age of replacement minimizes the asymptotic expected + equivalent annual cost: + + .. math:: + + EEAC_\infty(a) = \sum_i \dfrac{{c_f}_i \int_0^a e^{-\delta_i x} f(x) + \mathrm{d}x + {c_p}_i e^{-\delta_i a} S(a)}{\int_0^a e^{-\delta_i x} + S(x) \mathrm{d}x} + + where: + + - :math:`a` is the age of replacement, + - :math:`{c_f}_i, {c_p}_i, \delta_i` are respectively the components of + the failures costs, preventive costs and the associated discount rate, + - :math:`S, f, h` are respectively the survival function, the + probability density function and the hazard function of the underlying + lifetime model. + + The optimal age of replacement is then solution of the equation: + + .. math:: + + \sum_i \dfrac{\left( ({c_f}_i - {c_p}_i) \left( + h(a) \int_0^a e^{-\delta_i x} S(x) \mathrm{d}x - \int_0^a + e^{-\delta_i x} f(x) \mathrm{d}x \right) - {c_p}_i \right)} + {\left( \int_0^a e^{-\delta_i x} S(x) \mathrm{d}x \right)^2} = 0 + """ + size = args_size(cf, cp, *args) + cf, cp = np.array(cf, ndmin=3), np.array(cp, ndmin=3) + ndim = args_ndim(cf, cp, rate, *args) + x0 = np.minimum(np.sum(cp, axis=0) / np.sum(cf - cp, axis=0), 1) + if np.size(x0) == 1: + x0 = np.tile(x0, (size, 1)) + f = lambda x: cls.discount.factor(x, rate) * model.sf(x, *args) + g = lambda x: cls.discount.factor(x, rate) * model.pdf(x, *args) + + def eq(a): + F = gauss_legendre(f, 0, a, ndim=ndim) + G = gauss_legendre(g, 0, a, ndim=ndim) + return np.sum( + cls.discount.factor(a, rate) + * ((cf - cp) * (model.hf(a, *args) * F - G) - cp) + / F**2, + axis=0, + ) + + ar = optimize.newton(eq, x0) + return ar.squeeze() if np.size(ar) == 1 else ar + + def fit( + self, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + fit_ar1: bool = True, + ) -> AgeReplacementPolicy: + """Computes and sets the optimal age of replacement for each asset. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + fit_ar1 : bool, optional + If True, computes and sets the optimal age of replacement for the + first replacement considering a one-cycle age replacement criteria. + + Returns + ------- + self + The fitted policy as the current object. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + _, _, cf, cp, rate = self._parse_policy_args(None, None, cf, cp, rate) + self.ar = self.optimal_replacement_age( + self.model.baseline, cf, cp, rate, self.args + ) + if self.model1 is not None and fit_ar1: + self.ar1 = OneCycleAgeReplacementPolicy.optimal_replacement_age( + self.model1.baseline, cf, cp, rate, self.args1 + ) + return self + + def expected_total_cost( + self, + t: np.ndarray, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> np.ndarray: + """The expected total discounted cost. + + The expected total discounted cost is computed by solving the renewal + equation. + + Parameters + ---------- + t : 1D array + Timeline. + ar : float or 2D array, optional + Ages of replacement, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The cumulative expected total cost for each asset along the + timeline. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return self.rrp.expected_total_reward(t, *self.rrp_args(ar, ar1, cf, cp, rate)) + + def asymptotic_expected_total_cost( + self, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> np.ndarray: + """The asymptotic expected total cost. + + Parameters + ---------- + ar : float or 2D array, optional + Ages of preventive replacement, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The asymptotic expected total cost for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return self.rrp.asymptotic_expected_total_reward( + *self.rrp_args(ar, ar1, cf, cp, rate) + ) + + def expected_equivalent_annual_cost( + self, + t: np.ndarray, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> np.ndarray: + r"""The expected equivalent annual cost. + + Parameters + ---------- + t : 1D array + Timeline. + ar : float or 2D array, optional + Ages of replacement, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The expected equivalent annual cost for each asset along the + timeline. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The expected equivalent annual cost at time :math:`t` is: + + .. math:: + + EEAC(t) = \dfrac{\delta z(t)}{1 - e^{-\delta t}} + + where :math:`z` is the expected total cost. + """ + return self.rrp.expected_equivalent_annual_worth( + t, *self.rrp_args(ar, ar1, cf, cp, rate) + ) + + def asymptotic_expected_equivalent_annual_cost( + self, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> np.ndarray: + r"""The asymptotic expected equivalent annual cost. + + Parameters + ---------- + ar : float or 2D array, optional + Ages of replacement, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The asymptotic expected equivalent annual cost for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The asymptotic expected equivalent annual cost is: + + .. math:: + + EEAC_\infty = \lim_{t \to \infty} EEAC(t) + """ + return self.rrp.asymptotic_expected_equivalent_annual_worth( + *self.rrp_args(ar, ar1, cf, cp, rate) + ) + + def sample( + self, + T: float, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + n_samples: int = 1, + random_state: int = None, + ) -> ReplacementPolicyData: + """Age replacement renewal policy sampling. + + Parameters + ---------- + T : float + End of the observation period. + ar : float or 2D array, optional + Ages of replacement, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + n_samples : int, optional + Number of samples, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + ReplacementPolicyData + Samples of replacement times, durations, costs and events for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + ( + model_args, + reward_args, + model1_args, + reward1_args, + discount_args, + ) = self.rrp_args(ar, ar1, cf, cp, rate) + data = self.rrp.sample( + T, + model_args, + reward_args, + model1_args, + reward1_args, + discount_args, + n_samples, + random_state, + ) + events = np.ones(data.size) + args = args_take(data.indices, *self.args) + a0 = np.zeros(data.size) + ind1 = 0 + if self.model1 is not None: + ar1 = model1_args[0] + ind1 = data.n_indices * data.n_samples + a0[:ind1] = args_take(data.indices[:ind1], *self.args1)[0] + events[:ind1] = np.where( + data.durations[:ind1] < args_take(data.indices[:ind1], ar1)[0].ravel(), + 1, + 0, + ) + ar = model_args[0] + events[ind1:] = np.where( + data.durations[ind1:] < args_take(data.indices[ind1:], ar)[0].ravel(), 1, 0 + ) + return ReplacementPolicyData(*data.astuple(), events, args, a0) diff --git a/relife/reward.py b/relife/reward.py new file mode 100644 index 0000000..039d6d3 --- /dev/null +++ b/relife/reward.py @@ -0,0 +1,75 @@ +"""Rewards for renewal reward processes.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from abc import ABC, abstractmethod +import numpy as np + + +class Reward(ABC): + """Generic reward class.""" + + @abstractmethod + def conditional_expectation( + self, x: np.ndarray, *reward_args: np.ndarray + ) -> np.ndarray: + """Conditional expected reward. + + Parameters + ---------- + x : ndarray + Duration. + *reward_args : ndarray + Extra arguments of the reward random variable. + + Returns + ------- + ndarray + The conditional expected reward with respect to the duration. + """ + pass + + def sample(self, x: np.ndarray, *reward_args: np.ndarray) -> np.ndarray: + """Reward conditional sampling. + + Parameters + ---------- + x : ndarray + Duration. + *reward_args : ndarray + Extra arguments of the reward random variable. + + Returns + ------- + ndarray + Random drawing of a reward with respect to the duration. + + """ + return self.conditional_expectation(x, *reward_args) + + +class FailureCost(Reward): + """Run-to-failure costs. + + The replacements occur upon failures with costs `cf`. + """ + + def conditional_expectation(self, x: np.ndarray, cf: np.ndarray) -> np.ndarray: + return cf + + +class AgeReplacementCost(Reward): + """Age replacement costs. + + The replacements occur at a fixed age `ar` with preventive costs `cp` or + upon failure with failure costs `cf` if earlier. + """ + + def conditional_expectation( + self, x: np.ndarray, ar: np.ndarray, cf: np.ndarray, cp: np.ndarray + ) -> np.ndarray: + return np.where(x < ar, cf, cp) diff --git a/relife/utils.py b/relife/utils.py new file mode 100644 index 0000000..f19aaa8 --- /dev/null +++ b/relife/utils.py @@ -0,0 +1,292 @@ +"""Numerical integration, args manipulation, plot, etc.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import numpy as np +import scipy.stats as stats +import matplotlib.pyplot as plt +from typing import Callable, Tuple + +MIN_POSITIVE_FLOAT = np.finfo(float).resolution + +# numerical integration + + +def gauss_legendre( + func: Callable, + a: np.ndarray, + b: np.ndarray, + *args: np.ndarray, + ndim: int = 0, + deg: int = 100 +) -> np.ndarray: + r"""Gauss-Legendre integration. + + Parameters + ---------- + func : Callable + The function to be integrated. + a : float or ndarray. + The lower bound of integration. + b : float or 1D array. + The upper bound of integration. + *args : float or 2D array, optional + Extra arguments required by the function `func`. + ndim : int, optional + Number of dimensions of the `func`, by default 0. + deg : int, optional + Degree of the Legendre polynomials (see numpy.polynomial.legendre.leggauss + documentation), by default 100. + + Returns + ------- + ndarray + The numerical integration of `func` from `a` to `b`. + + Notes + ----- + It is a numerical integration of: + + .. math:: + + \int_a^b f(x) \mathrm{d} x + """ + shape = (-1,) + (1,) * ndim + x, w = np.polynomial.legendre.leggauss(deg) + x, w = x.reshape(shape), w.reshape(shape) + p = (b - a) / 2 + m = (a + b) / 2 + u = p * x + m + v = p * w + return np.sum(v * func(u, *args), axis=0) + + +def gauss_laguerre( + func: Callable, *args: np.ndarray, ndim: int = 0, deg: int = 100 +) -> np.ndarray: + r"""Gauss-Laguerre integration. + + Parameters + ---------- + func : Callable + The function to be integrated. + *args : float or 2D array, optional + Extra arguments required by the function `func`. + ndim : int, optional + Number of dimensions of the `func`, by default 0. + deg : int + Degree of the Laguerre polynomials (see numpy.polynomial.laguerre.laggauss + documentation), by default 100. + + Returns + ------- + ndarray + The Gauss-Laguerre integration of the function `func`. + + Notes + ----- + It is the numerical integration of: + + .. math:: + + \int_0^{+\infty} f(x) e^{-x} \mathrm{d} x + """ + shape = (-1,) + (1,) * ndim + x, w = np.polynomial.laguerre.laggauss(deg) + x, w = x.reshape(shape), w.reshape(shape) + return np.sum(w * func(x, *args), axis=0) + + +def shifted_laguerre( + func: Callable, a: np.ndarray, *args: np.ndarray, ndim: int = 0, deg: int = 100 +) -> np.ndarray: + r"""Shifted Gauss-Laguerre integration. + + Parameters + ---------- + func : Callable + The function to be integrated. + a : float or ndarray + The lower bound of integration. + *args : float or 2D array, optional + Extra arguments required by the function `func`. + ndim : int, optional + Number of dimensions of the `func`, by default 0. + deg : int + Degree of the Laguerre polynomials (see numpy.polynomial.laguerre.laggauss + documentation), by default 100. + + Returns + ------- + ndarray + The Gauss-Laguerre integration of the function `func` from `a` to infinity. + + Notes + ----- + It is the numerical integration of: + + .. math:: + + \int_a^{+\infty} f(x) e^{-x} \mathrm{d} x + """ + f = lambda x, *args: func(x + a, *args) * np.exp(-a) + return gauss_laguerre(f, *args, ndim=ndim, deg=deg) + + +def quad_laguerre( + func: Callable, a: np.ndarray, *args: np.ndarray, ndim: int = 0, deg: int = 100 +) -> np.ndarray: + r"""Numerical integration over the interval `[a,inf]`. + + + Parameters + ---------- + func : Callable + The function to be integrated. + a : float or ndarray + The lower bound of integration. + *args : float or 2D array, optional + Extra arguments required by the function `func`. + ndim : int, optional + Number of dimensions of the `func`, by default 0. + deg : int, optional + Degree of the Laguerre polynomials (see numpy.polynomial.laguerre.laggauss + documentation), by default 100. + + Returns + ------- + ndarray + Numerical integration of `func` over the interval `[a,inf]`. + + Notes + ----- + The numerical integration using Gauss-Laguerre quadrature of: + + .. math:: + + \int_a^{+\infty} f(x) \mathrm{d} x + """ + f = lambda x, *args: func(x + a, *args) * np.exp(x) + return gauss_laguerre(f, *args, ndim=ndim, deg=deg) + + +# args manipulation functions + + +def args_size(*args) -> int: + """Number of elements on axis=-2. + + Parameters + ---------- + *args : float or 2D array + Sequence of arrays. + + Returns + ------- + int + The number of elements. + + Raises + ------ + ValueError + If `args` have not same size on axis=-2. + """ + if len(args) == 0: + return 0 + elif 1 in map(np.ndim, args): + raise ValueError("args must be float or 2D array") + else: + s = set(np.size(arg, axis=-2) if np.ndim(arg) >= 2 else 1 for arg in args) + if len(s - {1}) <= 1: + return max(s) + else: + raise ValueError("args must have same size on axis=-2") + + +def args_ndim(*args) -> int: + """Max number of array dimension in args. + + Parameters + ---------- + *args : float or ndarray + Sequence of arrays. + + Returns + ------- + int + Maximum number of array dimension in `args`. + """ + return max(map(np.ndim, args), default=0) + + +def args_take(indices: np.ndarray, *args) -> Tuple[np.ndarray, ...]: + """Take elements in each array of args on axis=-2. + + Parameters + ---------- + indices : ndarray + The indices of the values to extract for each array. + *args : float or 2D array + Sequence of arrays. + + Returns + ------- + Tuple[ndarray, ...] + The tuple of arrays where values at indices are extracted. + """ + return tuple( + np.take(arg, indices, axis=-2) + if np.ndim(arg) > 0 + else np.tile(arg, (np.size(indices), 1)) + for arg in args + ) + + +# plotting + + +def plot( + x: np.ndarray, + y: np.ndarray, + se: np.ndarray = None, + alpha_ci: float = 0.05, + bounds=(-np.inf, np.inf), + **kwargs +) -> None: + r"""Plot a function with a confidence interval. + + Parameters + ---------- + x : 1D array + x-axis values. + y : np.ndarray + y-axis values. + se : np.ndarray, optional + The standard error, by default None. + alpha_ci : float, optional + :math:`\alpha`-value to define the :math:`100(1-\alpha)\%` confidence + interval, by default 0.05 corresponding to the 95\% confidence interval. + If set to None or if se is None, no confidence interval is plotted, by + default 0.05. + bounds : tuple, optional + Bounds for clipping the value of the confidence interval, by default + (-np.inf, np.inf). + **kwargs : dict, optional + Extra arguments to specify the plot properties (see + matplotlib.pyplot.plot documentation). + + """ + ax = kwargs.pop("ax", plt.gca()) + drawstyle = kwargs.pop("drawstyle", "default") + (lines,) = ax.plot(x, y, drawstyle=drawstyle, **kwargs) + if alpha_ci is not None and se is not None: + z = stats.norm.ppf(1 - alpha_ci / 2) + yl = np.clip(y - z * se, bounds[0], bounds[1]) + yu = np.clip(y + z * se, bounds[0], bounds[1]) + step = drawstyle.split("-")[1] if "steps-" in drawstyle else None + ax.fill_between(x, yl, yu, facecolor=lines.get_color(), step=step, alpha=0.25) + ax.legend() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4ef3cb8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +numpy>=1.17.0 +scipy>=1.3.1 +matplotlib>=3.1.1 diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..60b6b2e --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. diff --git a/tests/test_distribution.py b/tests/test_distribution.py new file mode 100644 index 0000000..fc42657 --- /dev/null +++ b/tests/test_distribution.py @@ -0,0 +1,73 @@ +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import pytest +import numpy as np + +from relife.datasets import load_power_transformer +from relife.distribution import ( + Exponential, + MinimumDistribution, + Weibull, + Gompertz, + Gamma, + LogLogistic, +) + +# fixtures + + +@pytest.fixture(scope="module") +def data(): + return load_power_transformer() + + +@pytest.fixture( + scope="module", + params=[ + Exponential(0.00795203), + Weibull(3.46597395, 0.01227849), + Gompertz(0.00865741, 0.06062632), + Gamma(5.3571091, 0.06622822), + LogLogistic(3.92614064, 0.0133325), + ], +) +def model(request): + return request.param + + +# test functions + + +def test_sf(model): + assert model.sf(model.median()) == pytest.approx(0.5, rel=1e-3) + + +def test_rvs(model): + size = 10 + assert model.rvs(size=size).shape == (size,) + + +def test_mean(model): + assert super(type(model), model).mean() == pytest.approx(model.mean(), rel=1e-3) + + +def test_mrl(model): + t = np.arange(10) + assert model.mrl(t).shape == (t.size,) + + +def test_fit(model, data): + params = model.params.copy() + model.fit(*data.astuple()) + assert model.params == pytest.approx(params, rel=1e-3) + + +def test_minimum_distribution(model, data): + params = model.params.copy() + n = np.ones((data.size, 1)) + model = MinimumDistribution(model).fit(*data.astuple(), args=(n,)) + assert model.params == pytest.approx(params, rel=1e-3) diff --git a/tests/test_nonparametric.py b/tests/test_nonparametric.py new file mode 100644 index 0000000..abf3872 --- /dev/null +++ b/tests/test_nonparametric.py @@ -0,0 +1,28 @@ +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import pytest +import numpy as np + +from relife.datasets import load_power_transformer +from relife.nonparametric import ECDF, KaplanMeier + +# fixtures + + +@pytest.fixture +def data(): + return load_power_transformer() + + +# test functions + + +def test_fit_ecdf_kaplan_meier(data): + time = data.time[data.event == 1] + ecdf = ECDF().fit(time) + km = KaplanMeier().fit(time) + assert ecdf.sf == pytest.approx(km.sf, rel=1e-4) diff --git a/tests/test_regression.py b/tests/test_regression.py new file mode 100644 index 0000000..d5d413c --- /dev/null +++ b/tests/test_regression.py @@ -0,0 +1,79 @@ +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import pytest +import numpy as np +from scipy.stats import boxcox, zscore + +from relife.datasets import load_insulator_string +from relife.distribution import Exponential, Weibull, Gompertz, Gamma, LogLogistic +from relife.regression import AFT, ProportionalHazards + + +# fixtures + + +@pytest.fixture(scope="module") +def data(): + time, event, entry, *args = load_insulator_string().astuple() + covar = zscore(np.column_stack([boxcox(col)[0] for col in args[0].T])) + return time, event, entry, covar + + +@pytest.fixture( + scope="module", + params=[ + Exponential(0.05), + Weibull(2, 0.05), + Gompertz(0.01, 0.1), + Gamma(2, 0.05), + LogLogistic(3, 0.05), + ], +) +def baseline(request): + return request.param + + +@pytest.fixture(scope="module", params=[AFT, ProportionalHazards]) +def model(request, baseline): + beta = [1.0, 1.0] + return request.param(baseline, beta) + + +@pytest.fixture(scope="module") +def covar(): + return np.random.uniform(size=(5, 2)) + + +# test functions + + +def test_sf(model, covar): + assert model.sf(model.median(covar), covar) == pytest.approx(0.5, rel=1e-3) + + +def test_rvs(model, covar): + size = 10 + assert model.rvs(covar, size=size).shape == (covar.shape[0], size) + + +def test_mean(model, covar): + assert model.mean(covar).shape[0] == covar.shape[0] + + +def test_fit(model, data): + model.fit(*data) + + +def test_aft_pph_weibull_eq(data): + model_aft = AFT(Weibull()).fit(*data) + model_pph = ProportionalHazards(Weibull()).fit(*data) + assert model_pph.baseline.params == pytest.approx( + model_aft.baseline.params, rel=1e-3 + ) + assert model_pph.beta == pytest.approx( + -model_aft.baseline.c * model_aft.beta, rel=1e-3 + ) diff --git a/tests/test_renewal_process.py b/tests/test_renewal_process.py new file mode 100644 index 0000000..8ebd8ea --- /dev/null +++ b/tests/test_renewal_process.py @@ -0,0 +1,108 @@ +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import pytest +import numpy as np + +from relife.model import AgeReplacementModel, EquilibriumDistribution +from relife.distribution import Weibull, Gompertz, Gamma, LogLogistic +from relife.regression import AFT, ProportionalHazards +from relife.renewal_process import RenewalProcess, RenewalRewardProcess +from relife.reward import FailureCost + +# fixtures + + +@pytest.fixture( + scope="module", + params=[ + Weibull(2, 0.05), + Gompertz(0.01, 0.1), + Gamma(2, 0.05), + LogLogistic(3, 0.05), + ], +) +def baseline(request): + return request.param + + +@pytest.fixture(scope="module", params=[None, AFT, ProportionalHazards]) +def regression(request): + return request.param + + +@pytest.fixture( + scope="module", + params=[ + None, + AgeReplacementModel, + ], +) +def age_replacement_model(request): + return request.param + + +@pytest.fixture(scope="module") +def model_and_args(baseline, regression, age_replacement_model): + model = baseline + args = () + if regression is not None: + beta = [np.log(2), np.log(2)] + covar = np.arange(0.0, 0.6, 0.1).reshape(-1, 2) + model = regression(model, beta) + args = (covar,) + args + if age_replacement_model is not None: + tmax = model.isf(0.75, *args) + model = age_replacement_model(model) + args = (tmax,) + args + return model, args + + +# test functions + + +def test_renewal_process(model_and_args): + t = np.arange(0, 100, 0.5) + model, model_args = model_and_args + model1 = EquilibriumDistribution(model) + rp = RenewalProcess(model, model1) + y0 = 1 / model.mean(*model_args) + y = rp.renewal_density(t, model_args, model_args) + assert y[..., -1:] == pytest.approx(y0, rel=1e-4) + + +def test_renewal_reward_process(model_and_args): + t = np.arange(0, 100, 0.5) + model, model_args = model_and_args + reward = FailureCost() + reward_args = (1,) + rrp = RenewalRewardProcess(model, reward) + m = rrp.renewal_function(t, model_args) + z = rrp.expected_total_reward(t, model_args, reward_args) + assert m == pytest.approx(z, rel=1e-4) + + +def test_renewal_reward_process_vec(model_and_args): + t = np.arange(0, 100, 0.5) + n = 3 + cf = 1 + rate = 0.04 + model, model_args = model_and_args + reward = FailureCost() + reward_args0 = (n * cf,) + reward_args = (cf,) + discount_args0 = (rate,) + discount_args = (np.repeat(rate, n).reshape(-1, 1, 1),) + rrp = RenewalRewardProcess(model, reward) + z0 = np.atleast_2d( + rrp.expected_total_reward( + t, model_args, reward_args0, discount_args=discount_args0 + ) + ) + z = rrp.expected_total_reward( + t, model_args, reward_args, discount_args=discount_args + ) + assert z0 == pytest.approx(z.sum(axis=0), rel=1e-4) diff --git a/tests/test_replacement_policy.py b/tests/test_replacement_policy.py new file mode 100644 index 0000000..3266a7a --- /dev/null +++ b/tests/test_replacement_policy.py @@ -0,0 +1,106 @@ +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import pytest +import numpy as np +from itertools import chain + +from relife.replacement_policy import ( + OneCycleRunToFailure, + RunToFailure, + OneCycleAgeReplacementPolicy, + AgeReplacementPolicy, +) +from relife.utils import args_size +from .test_renewal_process import baseline + + +# fixtures + + +@pytest.fixture(scope="module", params=[0, 0.04]) +def fit_args(request): + rate = request.param + cp = 1 + cf = cp + np.array([5, 10, 20, 100, 1000]).reshape(-1, 1) + return cf, cp, rate + + +@pytest.fixture( + scope="module", + params=[ + OneCycleRunToFailure, + OneCycleAgeReplacementPolicy, + RunToFailure, + AgeReplacementPolicy, + ], +) +def policy(request, baseline, fit_args): + policy = request.param(baseline) + cf, cp, rate = fit_args + policy.cf = cf + policy.rate = rate + if hasattr(policy, "cp"): + policy.cp = cp + policy.fit() + return policy + + +# test functions + + +def test_one_cycle_optimal_replacement_age(baseline, fit_args): + cf, cp, rate = fit_args + eps = 1e-2 + policy = OneCycleAgeReplacementPolicy(baseline, cf=cf, cp=cp, rate=rate).fit() + ar = policy.ar + assert np.all( + policy.asymptotic_expected_equivalent_annual_cost(ar + eps, dt=0.1) + > policy.asymptotic_expected_equivalent_annual_cost() + ) and np.all( + policy.asymptotic_expected_equivalent_annual_cost(ar - eps, dt=0.1) + > policy.asymptotic_expected_equivalent_annual_cost() + ) + + +def test_optimal_replacement_age(baseline, fit_args): + cf, cp, rate = fit_args + eps = 1e-2 + policy = AgeReplacementPolicy(baseline, cf=cf, cp=cp, rate=rate).fit(fit_ar1=False) + ar = policy.ar + assert np.all( + policy.asymptotic_expected_equivalent_annual_cost(ar + eps) + > policy.asymptotic_expected_equivalent_annual_cost() + ) and np.all( + policy.asymptotic_expected_equivalent_annual_cost(ar - eps) + > policy.asymptotic_expected_equivalent_annual_cost() + ) + + +def test_asymptotic_expected_equivalent_annual_cost(policy): + t = np.arange(0, 400, 0.2) + qa = policy.asymptotic_expected_equivalent_annual_cost() + q = policy.expected_equivalent_annual_cost(t) + assert q[..., -1:] == pytest.approx(qa, rel=1e-1) + + +def test_expected_total_cost_vec(policy): + n = 3 + policy.cf = np.tile(policy.cf, (n, 1, 1)) + policy.rate = np.tile(policy.rate, (n, 1, 1)) + t = np.arange(0, 100, 0.5) + z = policy.expected_total_cost(t) + assert z.sum(axis=0) == pytest.approx(n * z[0, ...], rel=1e-4) + + +def test_sample(policy): + n_indices = max(1, args_size(*chain(*policy.rrp_args()))) + n_samples = 10 + if hasattr(policy, "rrp"): + data = policy.sample(0, n_samples=n_samples) + else: + data = policy.sample(n_samples=n_samples) + assert data.size == n_indices * n_samples