diff --git a/.gitattributes b/.gitattributes index a6344aac8c09253b3b630fb776ae94478aa0275b..1f89208aa874d3dfb9cc7aed049fac1574ad879f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -33,3 +33,11 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text +assets/head_template_color_tex.png filter=lfs diff=lfs merge=lfs -text +assets/test_rigid.ply filter=lfs diff=lfs merge=lfs -text +example_videos/ex1.mp4 filter=lfs diff=lfs merge=lfs -text +example_videos/ex2.mp4 filter=lfs diff=lfs merge=lfs -text +example_videos/ex3.mp4 filter=lfs diff=lfs merge=lfs -text +example_videos/ex4.mp4 filter=lfs diff=lfs merge=lfs -text +example_videos/ex5.mp4 filter=lfs diff=lfs merge=lfs -text +media/banner.gif filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..70271a0da9daf1cb7c7e2611066259a51f1b7f0f --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# Python cache +_pycache__ +*.py[cod] + +# PyCharm/Jupyter +.idea +.ipynb_checkpoints + +# build artifacts +*.egg-info +/docs/build/ +dist + + +/src/pixel3dmm/preprocessing/facer/ +/src/pixel3dmm/preprocessing/MICA/ +/src/pixel3dmm/preprocessing/PIPNet/ +/pretrained_weights/ +/assets/ + +*.mp4 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..428e59536b10170c4e7412b803db164f0002e4c6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,407 @@ +Attribution-NonCommercial 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-NonCommercial 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-NonCommercial 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. NonCommercial means not primarily intended for or directed towards + commercial advantage or monetary compensation. For purposes of + this Public License, the exchange of the Licensed Material for + other material subject to Copyright and Similar Rights by digital + file-sharing or similar means is NonCommercial provided there is + no payment of monetary compensation in connection with the + exchange. + + j. 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. + + k. 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. + + l. 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, for NonCommercial purposes only; and + + b. produce, reproduce, and Share Adapted Material for + NonCommercial purposes only. + + 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, including when + the Licensed Material is used other than for NonCommercial + purposes. + + +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 for NonCommercial purposes + only; + + 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/assets/flame_mirror_index.npy b/assets/flame_mirror_index.npy new file mode 100644 index 0000000000000000000000000000000000000000..fd9335ebb3987f936a95c0b3a0d2f76b0805c950 --- /dev/null +++ b/assets/flame_mirror_index.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:374636351ce484f36a3524af05cb00ed5a4f4a38ab759ea9bffce6e3fb761153 +size 40312 diff --git a/assets/flame_uv_coords.npy b/assets/flame_uv_coords.npy new file mode 100644 index 0000000000000000000000000000000000000000..73ef320c41dbd749835c4abf64169283fbd1d0ed --- /dev/null +++ b/assets/flame_uv_coords.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:194adb9a1c1bc76a85c4e8c446d5dfaca93f0f42f157eb82659457c057c71527 +size 80496 diff --git a/assets/flame_vertex_weights.npy b/assets/flame_vertex_weights.npy new file mode 100644 index 0000000000000000000000000000000000000000..fdef04ebfc626963180b0e45e73deb2389b0d4f4 --- /dev/null +++ b/assets/flame_vertex_weights.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e860e97be4209f3ee7351a7359cb01b9870d56fc93be3b76cdd7e657eb9346d +size 60404 diff --git a/assets/head_template.obj b/assets/head_template.obj new file mode 100644 index 0000000000000000000000000000000000000000..49c83e88c1bd6ba409f867ed717117293906e24d --- /dev/null +++ b/assets/head_template.obj @@ -0,0 +1,20122 @@ +# Blender v2.80 (sub 75) OBJ File: 'flame_new_uv_map.blend' +# www.blender.org +mtllib template.mtl +v 0.061998 1.493503 -0.027215 +v 0.066005 1.492495 -0.026312 +v 0.066500 1.493900 -0.026200 +v 0.062307 1.494799 -0.027008 +v 0.075800 1.494613 -0.035711 +v 0.075177 1.497973 -0.032283 +v 0.074438 1.500713 -0.032211 +v 0.074800 1.500600 -0.034800 +v 0.028307 1.453590 -0.092080 +v 0.013146 1.453750 -0.096146 +v 0.013086 1.443515 -0.093653 +v 0.026940 1.441069 -0.088483 +v 0.044034 1.418873 -0.070397 +v 0.039796 1.426214 -0.075181 +v 0.036540 1.415001 -0.078651 +v 0.044437 1.411710 -0.070237 +v 0.039024 1.550958 0.053657 +v 0.046783 1.549456 0.048912 +v 0.044954 1.543563 0.051419 +v -0.061998 1.493503 -0.027215 +v -0.066005 1.492495 -0.026312 +v -0.066500 1.493900 -0.026200 +v -0.062307 1.494799 -0.027008 +v -0.075800 1.494613 -0.035711 +v -0.075177 1.497973 -0.032283 +v -0.074438 1.500713 -0.032211 +v -0.074800 1.500600 -0.034800 +v 0.037682 1.544673 0.054847 +v 0.092919 1.516004 -0.048998 +v 0.093182 1.513297 -0.049973 +v 0.093400 1.511900 -0.048200 +v 0.093071 1.514299 -0.047313 +v 0.089794 1.497809 -0.046670 +v 0.089310 1.505389 -0.048436 +v 0.090352 1.508011 -0.049430 +v 0.090705 1.505796 -0.048534 +v 0.090287 1.486997 -0.043418 +v 0.089308 1.487702 -0.042889 +v 0.090700 1.492300 -0.044900 +v 0.091687 1.491903 -0.045704 +v 0.075298 1.468043 -0.021340 +v 0.078140 1.470212 -0.022933 +v 0.078493 1.467790 -0.024400 +v 0.073913 1.466336 -0.023090 +v 0.070914 1.467491 -0.024294 +v 0.075432 1.466828 -0.028178 +v 0.075074 1.469686 -0.029129 +v 0.071489 1.469689 -0.026106 +v 0.086489 1.526078 -0.035111 +v 0.086600 1.523100 -0.034700 +v 0.084675 1.522306 -0.032321 +v 0.084516 1.525303 -0.032395 +v 0.076847 1.490511 -0.045292 +v 0.075461 1.484031 -0.043370 +v 0.081300 1.489074 -0.045823 +v 0.081298 1.491995 -0.046116 +v 0.085506 1.516107 -0.041696 +v 0.086614 1.516897 -0.045188 +v 0.087200 1.514700 -0.046300 +v 0.086210 1.513201 -0.043498 +v 0.089406 1.517594 -0.050088 +v 0.089835 1.514599 -0.051186 +v 0.073155 1.476985 -0.019715 +v 0.071768 1.480608 -0.019054 +v 0.072296 1.482197 -0.020109 +v 0.073056 1.481128 -0.021346 +v 0.073953 1.494303 -0.032675 +v 0.075096 1.498497 -0.031088 +v 0.086495 1.476758 -0.038243 +v 0.086462 1.478693 -0.037171 +v 0.088511 1.482595 -0.040600 +v 0.088684 1.481204 -0.041805 +v 0.083800 1.481300 -0.034800 +v 0.086100 1.483800 -0.038300 +v 0.087015 1.484403 -0.040188 +v 0.085989 1.482300 -0.038105 +v 0.088031 1.519317 -0.041792 +v 0.085861 1.521559 -0.037113 +v 0.086699 1.521126 -0.037101 +v 0.088900 1.518700 -0.041800 +v 0.082000 1.504600 -0.045500 +v 0.080323 1.509694 -0.043474 +v 0.079604 1.508792 -0.043485 +v 0.081297 1.504301 -0.045314 +v 0.089100 1.515800 -0.048100 +v 0.089639 1.513104 -0.049003 +v 0.087992 1.512000 -0.047407 +v 0.075500 1.513617 -0.029983 +v 0.076118 1.514593 -0.031298 +v 0.076609 1.513005 -0.031696 +v 0.076371 1.511694 -0.030520 +v 0.078164 1.466576 -0.027814 +v 0.073096 1.475727 -0.036776 +v 0.074801 1.476562 -0.038030 +v 0.077596 1.480667 -0.040850 +v 0.076407 1.481515 -0.041493 +v 0.070618 1.469515 -0.019925 +v 0.073800 1.469900 -0.019600 +v 0.074701 1.468685 -0.020488 +v 0.071600 1.467919 -0.021209 +v 0.078425 1.518098 -0.031667 +v 0.080957 1.517503 -0.033837 +v 0.079092 1.516506 -0.033011 +v 0.077368 1.516811 -0.031317 +v 0.088500 1.503500 -0.046500 +v 0.087000 1.510300 -0.044900 +v 0.089148 1.494204 -0.040272 +v 0.089000 1.494300 -0.043500 +v 0.088538 1.490188 -0.041897 +v -0.028307 1.453590 -0.092080 +v -0.013146 1.453750 -0.096146 +v -0.013086 1.443515 -0.093653 +v -0.026940 1.441069 -0.088483 +v 0.088564 1.490214 -0.038795 +v 0.088334 1.502483 -0.040508 +v 0.088447 1.502416 -0.044192 +v 0.090983 1.511396 -0.046991 +v 0.091428 1.505198 -0.047205 +v 0.090384 1.512000 -0.047798 +v 0.077544 1.512600 -0.041093 +v 0.077400 1.515300 -0.044900 +v 0.077651 1.508587 -0.046651 +v 0.078383 1.510012 -0.042574 +v 0.072487 1.486189 -0.020399 +v 0.073652 1.488310 -0.021518 +v 0.072785 1.486082 -0.022770 +v 0.072332 1.483812 -0.022359 +v 0.078096 1.478882 -0.039421 +v 0.075400 1.475700 -0.037100 +v 0.075785 1.475417 -0.036252 +v 0.078507 1.477345 -0.037814 +v 0.083100 1.518700 -0.036200 +v 0.083855 1.513511 -0.036581 +v 0.082100 1.513505 -0.035117 +v 0.079400 1.482900 -0.027100 +v 0.080206 1.484210 -0.028695 +v 0.081500 1.481100 -0.030500 +v 0.080687 1.479097 -0.029207 +v 0.082571 1.470333 -0.032585 +v 0.080240 1.469896 -0.033585 +v 0.077900 1.467889 -0.030714 +v 0.080399 1.467916 -0.030093 +v 0.072675 1.482711 -0.021801 +v 0.072327 1.483599 -0.020303 +v 0.083926 1.505195 -0.047073 +v 0.082566 1.511308 -0.044839 +v 0.086087 1.511596 -0.040800 +v 0.086768 1.509089 -0.042098 +v 0.074730 1.498708 -0.025229 +v 0.072484 1.499298 -0.026263 +v 0.072424 1.498498 -0.026271 +v 0.075274 1.497098 -0.025153 +v 0.074986 1.498595 -0.024097 +v 0.075514 1.497004 -0.023998 +v 0.075085 1.496797 -0.022906 +v 0.074710 1.497703 -0.022785 +v 0.071792 1.499615 -0.026608 +v 0.072000 1.499300 -0.026400 +v 0.072388 1.499850 -0.026639 +v 0.077294 1.502724 -0.037763 +v 0.078993 1.494880 -0.039129 +v 0.077413 1.494601 -0.037981 +v 0.075700 1.501500 -0.036400 +v 0.089216 1.495402 -0.045388 +v 0.080994 1.521612 -0.028301 +v 0.079582 1.523421 -0.028204 +v 0.082400 1.526875 -0.032516 +v 0.074387 1.485551 -0.030792 +v 0.077111 1.486378 -0.028293 +v 0.075401 1.486174 -0.026902 +v 0.073776 1.485212 -0.029312 +v 0.072203 1.490294 -0.025077 +v 0.070416 1.486997 -0.024430 +v 0.074220 1.488702 -0.023891 +v 0.074537 1.504508 -0.024103 +v 0.073632 1.500887 -0.026200 +v 0.074301 1.499691 -0.025068 +v 0.074473 1.500004 -0.024007 +v 0.090300 1.486200 -0.044700 +v 0.091516 1.491394 -0.047212 +v 0.089989 1.491103 -0.048594 +v 0.088900 1.485600 -0.046100 +v 0.071174 1.473291 -0.018315 +v 0.067815 1.470535 -0.021913 +v 0.069856 1.476490 -0.018061 +v 0.091000 1.522800 -0.044100 +v 0.087700 1.524800 -0.044500 +v 0.088398 1.522717 -0.046819 +v 0.091894 1.520791 -0.046191 +v 0.072913 1.506097 -0.031592 +v 0.073018 1.504001 -0.031087 +v 0.072919 1.505397 -0.029993 +v 0.072693 1.507397 -0.030290 +v 0.053586 1.467412 -0.075433 +v 0.062458 1.468076 -0.057171 +v 0.066552 1.481198 -0.065315 +v 0.058792 1.480269 -0.080652 +v 0.083582 1.473183 -0.031719 +v 0.082493 1.471092 -0.029401 +v 0.075389 1.512005 -0.023502 +v 0.074722 1.513599 -0.022600 +v 0.075513 1.518799 -0.024222 +v 0.076219 1.515923 -0.024158 +v 0.090682 1.506499 -0.052109 +v 0.093415 1.505906 -0.050612 +v 0.077712 1.518490 -0.030205 +v 0.081200 1.521900 -0.033400 +v 0.079308 1.519492 -0.032198 +v 0.077480 1.518012 -0.030407 +v 0.077190 1.509801 -0.027990 +v 0.077694 1.511105 -0.027778 +v 0.076001 1.512096 -0.027915 +v 0.075200 1.510700 -0.027900 +v 0.074370 1.517897 -0.021713 +v 0.075297 1.522474 -0.025117 +v 0.071415 1.475105 -0.036388 +v 0.077115 1.511100 -0.025590 +v 0.077700 1.513600 -0.025600 +v 0.078380 1.512711 -0.027699 +v -0.044034 1.418873 -0.070397 +v -0.039796 1.426214 -0.075181 +v -0.036540 1.415001 -0.078651 +v -0.044437 1.411710 -0.070237 +v 0.070513 1.481494 -0.017518 +v 0.071608 1.483198 -0.019075 +v 0.076812 1.517093 -0.030192 +v 0.076143 1.515882 -0.030085 +v 0.074901 1.512051 -0.029070 +v 0.075697 1.510116 -0.030317 +v 0.083394 1.503779 -0.036850 +v 0.085900 1.495120 -0.037669 +v 0.070665 1.482116 -0.051701 +v 0.066781 1.468771 -0.037011 +v 0.074900 1.512500 -0.028100 +v 0.074900 1.512900 -0.028300 +v 0.074300 1.512000 -0.028500 +v 0.074200 1.511400 -0.028200 +v 0.081180 1.469406 -0.027314 +v 0.081392 1.510102 -0.034728 +v 0.078509 1.508234 -0.032619 +v 0.078690 1.510401 -0.032211 +v 0.091593 1.496901 -0.045991 +v 0.092481 1.504997 -0.047033 +v 0.093707 1.505301 -0.048582 +v 0.092700 1.496700 -0.047300 +v 0.069138 1.468847 -0.022896 +v 0.073401 1.503294 -0.031788 +v 0.074390 1.501599 -0.031214 +v 0.073320 1.508785 -0.030771 +v 0.073362 1.510351 -0.029068 +v 0.071539 1.486197 -0.018780 +v 0.087705 1.519915 -0.045409 +v 0.088484 1.518000 -0.046810 +v 0.086125 1.518595 -0.043989 +v 0.085717 1.519801 -0.042398 +v 0.084872 1.521507 -0.039310 +v 0.084900 1.522959 -0.038902 +v 0.086800 1.521600 -0.043400 +v 0.076910 1.509099 -0.031384 +v 0.077488 1.510807 -0.031221 +v 0.078757 1.481692 -0.026054 +v 0.079651 1.475700 -0.026960 +v 0.087515 1.486694 -0.039481 +v 0.087178 1.487520 -0.036411 +v 0.087200 1.496700 -0.049600 +v 0.086626 1.505995 -0.050271 +v 0.085270 1.505500 -0.048424 +v 0.086200 1.496700 -0.048500 +v 0.080890 1.497910 -0.046193 +v 0.077697 1.498497 -0.046178 +v 0.074100 1.498700 -0.022500 +v 0.073200 1.502400 -0.020900 +v 0.073000 1.508100 -0.030600 +v 0.073112 1.509696 -0.028998 +v 0.082101 1.481590 -0.041807 +v 0.077895 1.474733 -0.034283 +v 0.082003 1.479694 -0.039813 +v 0.073816 1.473945 -0.032524 +v 0.073304 1.473187 -0.030203 +v 0.075893 1.473216 -0.031599 +v 0.084062 1.483308 -0.033637 +v 0.085978 1.484417 -0.036390 +v 0.071500 1.499400 -0.027100 +v 0.070090 1.497912 -0.028215 +v 0.070510 1.499177 -0.026601 +v 0.086793 1.502906 -0.038129 +v 0.088239 1.494694 -0.038349 +v 0.077317 1.513394 -0.028185 +v 0.076101 1.503386 -0.027988 +v 0.076739 1.506787 -0.026397 +v 0.080088 1.516707 -0.028296 +v 0.078608 1.515193 -0.028702 +v 0.078171 1.514217 -0.028369 +v 0.079119 1.514587 -0.027733 +v 0.064970 1.489977 -0.026859 +v 0.068207 1.488286 -0.025432 +v 0.069600 1.491400 -0.025400 +v 0.083936 1.522604 -0.037179 +v 0.084376 1.520602 -0.038312 +v 0.083800 1.512300 -0.046400 +v 0.077005 1.514888 -0.032296 +v 0.077607 1.513397 -0.033092 +v 0.077512 1.523697 -0.039600 +v 0.077134 1.522214 -0.036306 +v 0.077024 1.522596 -0.035096 +v 0.077000 1.526200 -0.035400 +v 0.072194 1.470894 -0.027111 +v 0.075000 1.471200 -0.029600 +v 0.074913 1.472222 -0.030080 +v 0.072794 1.472090 -0.028308 +v 0.074614 1.485867 -0.026314 +v 0.073392 1.484991 -0.028510 +v 0.088313 1.487893 -0.042607 +v 0.087791 1.487097 -0.041406 +v 0.088800 1.491100 -0.043700 +v 0.089407 1.492300 -0.044808 +v 0.074023 1.506963 -0.033952 +v 0.073613 1.505802 -0.033402 +v 0.078264 1.516972 -0.037457 +v 0.080300 1.519500 -0.038900 +v 0.078936 1.522279 -0.035468 +v 0.077375 1.520039 -0.035263 +v 0.085184 1.513304 -0.048435 +v 0.077900 1.512000 -0.032500 +v 0.078690 1.512194 -0.033514 +v 0.077290 1.512393 -0.032109 +v 0.074693 1.509798 -0.027983 +v 0.076690 1.508602 -0.028290 +v 0.079600 1.517115 -0.029581 +v 0.083299 1.520672 -0.032822 +v 0.082605 1.520723 -0.032873 +v 0.079196 1.517891 -0.029805 +v 0.075486 1.514507 -0.028998 +v 0.014577 1.465024 -0.102244 +v 0.016400 1.474400 -0.109200 +v -0.039024 1.550958 0.053657 +v -0.046783 1.549456 0.048912 +v -0.044954 1.543563 0.051419 +v -0.037682 1.544673 0.054847 +v 0.077508 1.523187 -0.028108 +v 0.078384 1.524716 -0.032003 +v 0.079493 1.525831 -0.032370 +v 0.078124 1.524043 -0.029015 +v 0.085510 1.518598 -0.041793 +v 0.089900 1.514600 -0.047000 +v 0.075224 1.500049 -0.029836 +v 0.072310 1.497196 -0.029602 +v 0.062100 1.496100 -0.028400 +v 0.062400 1.497300 -0.028400 +v 0.062996 1.496896 -0.029588 +v 0.062700 1.495600 -0.029800 +v 0.065798 1.490998 -0.030077 +v 0.068687 1.489987 -0.028824 +v 0.067795 1.488059 -0.027571 +v 0.065087 1.488901 -0.029508 +v 0.061700 1.493000 -0.028800 +v 0.061900 1.494600 -0.028500 +v 0.062600 1.493904 -0.030024 +v 0.062510 1.492089 -0.030514 +v 0.083251 1.522548 -0.035046 +v 0.085047 1.522467 -0.036875 +v 0.091507 1.513492 -0.045983 +v 0.092000 1.511200 -0.046800 +v 0.088778 1.518688 -0.044296 +v 0.089400 1.516800 -0.045700 +v 0.073810 1.490899 -0.021494 +v 0.074915 1.491096 -0.023006 +v 0.074587 1.489510 -0.022989 +v 0.092426 1.516497 -0.046084 +v 0.092491 1.518401 -0.047705 +v 0.074023 1.473610 -0.019287 +v 0.072900 1.472100 -0.018700 +v 0.040539 1.402694 -0.008784 +v 0.048074 1.407914 -0.020517 +v 0.047013 1.398104 -0.021095 +v 0.039392 1.393104 -0.010006 +v 0.079593 1.519097 -0.027011 +v 0.078310 1.521306 -0.026782 +v 0.061832 1.491418 -0.027890 +v 0.061767 1.490564 -0.029280 +v 0.064532 1.489040 -0.028225 +v 0.066803 1.495395 -0.026325 +v 0.062692 1.496102 -0.026989 +v 0.066004 1.492689 -0.029996 +v 0.066600 1.497700 -0.029000 +v 0.066899 1.498785 -0.027594 +v 0.069870 1.484581 -0.025568 +v 0.071628 1.484108 -0.027495 +v 0.073099 1.484030 -0.024480 +v 0.062493 1.490133 -0.030449 +v 0.073605 1.507995 -0.032192 +v 0.069294 1.493493 -0.029380 +v 0.072510 1.491006 -0.030991 +v 0.072108 1.488909 -0.030290 +v 0.069088 1.491598 -0.029288 +v 0.082186 1.480509 -0.032108 +v 0.082500 1.482389 -0.031806 +v 0.075207 1.486410 -0.032571 +v 0.078600 1.486500 -0.030726 +v 0.074610 1.503003 -0.030429 +v 0.075710 1.506076 -0.029052 +v 0.072018 1.499535 -0.027245 +v 0.069600 1.495600 -0.029000 +v 0.072429 1.493400 -0.030779 +v 0.066996 1.496709 -0.026563 +v 0.070701 1.496697 -0.025915 +v 0.070496 1.497807 -0.026089 +v 0.067002 1.497703 -0.026813 +v 0.080210 1.513496 -0.034376 +v 0.077161 1.519075 -0.025362 +v 0.078600 1.516400 -0.026100 +v 0.078956 1.526993 -0.051414 +v 0.077945 1.518913 -0.056083 +v 0.077665 1.520494 -0.043294 +v 0.066104 1.494500 -0.029818 +v 0.063008 1.498217 -0.028195 +v 0.063488 1.497694 -0.027293 +v 0.087700 1.483800 -0.040300 +v 0.073996 1.483585 -0.024303 +v 0.073597 1.507916 -0.028454 +v 0.087091 1.491399 -0.048005 +v 0.086200 1.486200 -0.045800 +v 0.073000 1.509200 -0.028900 +v 0.073613 1.510299 -0.028418 +v 0.072679 1.484436 -0.028099 +v 0.074011 1.484984 -0.025493 +v 0.073800 1.510700 -0.028300 +v 0.074759 1.490612 -0.024153 +v 0.085521 1.513187 -0.039739 +v 0.078886 1.472181 -0.034028 +v 0.076900 1.470700 -0.031400 +v 0.063107 1.497087 -0.027034 +v 0.067048 1.488263 -0.026903 +v 0.066401 1.496204 -0.029511 +v 0.073083 1.494401 -0.025488 +v 0.072718 1.492295 -0.025142 +v 0.075021 1.492793 -0.024235 +v 0.080194 1.487032 -0.032232 +v 0.076200 1.488129 -0.034638 +v 0.077499 1.489024 -0.036690 +v 0.082102 1.487860 -0.033716 +v 0.084805 1.481507 -0.043287 +v 0.083016 1.477319 -0.039971 +v 0.085043 1.475936 -0.039699 +v 0.087297 1.480394 -0.043209 +v 0.079918 1.541308 -0.059991 +v 0.078910 1.532799 -0.044899 +v 0.080121 1.548101 -0.049100 +v 0.083314 1.521389 -0.044086 +v 0.083806 1.518997 -0.045690 +v 0.088991 1.520200 -0.048605 +v 0.076340 1.525030 -0.030066 +v 0.076931 1.522731 -0.033547 +v 0.077407 1.523933 -0.031651 +v 0.090305 1.496596 -0.050608 +v 0.074900 1.508300 -0.023500 +v 0.076811 1.508900 -0.025803 +v 0.081302 1.482541 -0.042839 +v 0.082741 1.485784 -0.031869 +v 0.085088 1.486284 -0.033841 +v 0.088312 1.522894 -0.037393 +v 0.085094 1.521385 -0.034799 +v 0.008841 1.394244 0.015789 +v 0.008800 1.386900 0.011600 +v 0.008589 1.498484 0.073786 +v 0.010030 1.498324 0.072305 +v 0.008757 1.500242 0.071290 +v 0.008117 1.500249 0.072013 +v 0.008946 1.489300 0.072430 +v 0.008334 1.490922 0.071314 +v 0.009315 1.490643 0.070347 +v 0.010188 1.489265 0.071512 +v 0.005681 1.499910 0.071178 +v 0.004213 1.497290 0.073791 +v 0.005785 1.498187 0.075196 +v 0.006796 1.500441 0.071916 +v 0.088400 1.525800 -0.038200 +v 0.012342 1.488981 0.072095 +v 0.011326 1.490885 0.070919 +v 0.012050 1.491341 0.072767 +v 0.013716 1.489773 0.073790 +v 0.004958 1.489999 0.080211 +v 0.006080 1.492103 0.080389 +v 0.004980 1.491307 0.078099 +v 0.004935 1.489324 0.077714 +v 0.007888 1.492561 0.079779 +v 0.009808 1.492021 0.081514 +v 0.011583 1.491985 0.079889 +v 0.009400 1.492428 0.078300 +v 0.004716 1.493621 0.073204 +v 0.006063 1.491670 0.074584 +v 0.003964 1.493789 0.076796 +v 0.012266 1.493714 0.070902 +v 0.010928 1.492691 0.069478 +v 0.009809 1.496498 0.068938 +v 0.011062 1.497282 0.069812 +v 0.045276 1.418919 -0.006497 +v 0.051316 1.421097 -0.020493 +v 0.034601 1.509504 0.051197 +v 0.033968 1.506854 0.052483 +v 0.030002 1.508004 0.053112 +v 0.030801 1.510322 0.051979 +v 0.075600 1.495000 -0.023600 +v 0.074983 1.495799 -0.022522 +v 0.084383 1.516205 -0.047117 +v 0.087769 1.520281 -0.042209 +v 0.082911 1.523192 -0.041995 +v 0.081484 1.525319 -0.037312 +v 0.080076 1.523708 -0.036314 +v 0.081315 1.521297 -0.040291 +v 0.090800 1.520100 -0.042800 +v 0.075382 1.482188 -0.024203 +v 0.084040 1.509298 -0.036335 +v 0.080484 1.525822 -0.034804 +v 0.083919 1.527606 -0.035488 +v 0.090591 1.497096 -0.045921 +v 0.091688 1.518505 -0.044615 +v 0.089812 1.517295 -0.043486 +v 0.081321 1.518998 -0.029088 +v 0.078895 1.491603 -0.038661 +v 0.085402 1.491588 -0.036554 +v 0.084007 1.489086 -0.035109 +v -0.092919 1.516004 -0.048998 +v -0.093182 1.513297 -0.049973 +v -0.093400 1.511900 -0.048200 +v -0.093071 1.514299 -0.047313 +v -0.089794 1.497809 -0.046670 +v -0.089310 1.505389 -0.048436 +v -0.090352 1.508011 -0.049430 +v -0.090705 1.505796 -0.048534 +v 0.078399 1.489817 -0.037774 +v 0.073444 1.504694 -0.032820 +v 0.071111 1.486897 -0.016909 +v 0.081578 1.475997 -0.030012 +v -0.090287 1.486997 -0.043418 +v -0.089308 1.487702 -0.042889 +v -0.090700 1.492300 -0.044900 +v -0.091687 1.491903 -0.045704 +v 0.082714 1.477004 -0.032189 +v 0.031157 1.465431 -0.096619 +v 0.034883 1.475714 -0.102887 +v 0.092400 1.496600 -0.049200 +v 0.083202 1.522130 -0.035985 +v 0.077509 1.481801 -0.025290 +v 0.077217 1.476111 -0.024483 +v 0.075527 1.476613 -0.022791 +v 0.078213 1.512608 -0.033384 +v 0.080792 1.483473 -0.043245 +v 0.081006 1.485539 -0.044522 +v 0.063300 1.497600 -0.029200 +v 0.082300 1.478600 -0.039700 +v 0.078492 1.473495 -0.034110 +v 0.054580 1.424205 -0.033907 +v 0.053617 1.426598 -0.048816 +v -0.075298 1.468043 -0.021340 +v -0.078140 1.470212 -0.022933 +v -0.078493 1.467790 -0.024400 +v -0.073913 1.466336 -0.023090 +v 0.052512 1.415702 -0.047314 +v 0.052297 1.412202 -0.033512 +v 0.072400 1.500500 -0.017900 +v 0.072720 1.493501 -0.019884 +v 0.072078 1.492403 -0.018405 +v 0.022133 1.402373 0.012551 +v 0.018991 1.390401 0.007792 +v 0.071080 1.487414 -0.013506 +v 0.070164 1.486779 -0.003273 +v 0.071773 1.502108 -0.003201 +v 0.072151 1.496898 -0.012896 +v 0.059961 1.533198 0.030682 +v 0.061666 1.533495 0.026588 +v 0.061933 1.524304 0.026724 +v 0.059859 1.525661 0.030102 +v 0.020105 1.589077 0.046472 +v 0.009713 1.590238 0.048897 +v 0.009944 1.597050 0.042825 +v 0.020552 1.595691 0.040151 +v 0.036783 1.483221 -0.106562 +v 0.038502 1.492891 -0.110712 +v 0.018483 1.490152 -0.117701 +v 0.017417 1.481271 -0.113053 +v 0.020717 1.610835 0.018436 +v 0.010055 1.612720 0.020935 +v 0.010178 1.617029 0.011196 +v -0.070914 1.467491 -0.024294 +v -0.075432 1.466828 -0.028178 +v -0.075074 1.469686 -0.029129 +v -0.071489 1.469689 -0.026106 +v 0.021004 1.614887 0.009079 +v 0.051849 1.506984 0.042450 +v 0.053308 1.500902 0.042309 +v 0.049500 1.500600 0.045600 +v 0.048611 1.506682 0.045109 +v 0.077083 1.471595 -0.021914 +v 0.075873 1.472489 -0.020821 +v -0.086489 1.526078 -0.035111 +v -0.086600 1.523100 -0.034700 +v -0.084675 1.522306 -0.032321 +v -0.084516 1.525303 -0.032395 +v -0.076847 1.490511 -0.045292 +v -0.075461 1.484031 -0.043370 +v -0.081300 1.489074 -0.045823 +v -0.081298 1.491995 -0.046116 +v 0.010363 1.620560 -0.000194 +v 0.021444 1.618288 -0.001890 +v 0.013719 1.517008 0.059295 +v -0.085506 1.516107 -0.041696 +v -0.086614 1.516897 -0.045188 +v -0.087200 1.514700 -0.046300 +v -0.086210 1.513201 -0.043498 +v -0.089406 1.517594 -0.050088 +v -0.089835 1.514599 -0.051186 +v -0.073155 1.476985 -0.019715 +v -0.071768 1.480608 -0.019054 +v -0.072296 1.482197 -0.020109 +v -0.073056 1.481128 -0.021346 +v -0.073953 1.494303 -0.032675 +v -0.075096 1.498497 -0.031088 +v -0.086495 1.476758 -0.038243 +v -0.086462 1.478693 -0.037171 +v -0.088511 1.482595 -0.040600 +v -0.088684 1.481204 -0.041805 +v 0.014127 1.518765 0.056494 +v 0.017673 1.515705 0.055114 +v 0.017351 1.513871 0.057445 +v 0.007369 1.564131 0.060202 +v 0.008331 1.571458 0.057659 +v 0.017301 1.571015 0.055837 +v 0.015753 1.563817 0.058794 +v 0.021739 1.513091 0.053661 +v 0.021012 1.511308 0.055406 +v 0.010005 1.602932 0.036161 +v 0.020698 1.601402 0.033405 +v 0.020840 1.621971 -0.050662 +v -0.083800 1.481300 -0.034800 +v -0.086100 1.483800 -0.038300 +v -0.087015 1.484403 -0.040188 +v -0.085989 1.482300 -0.038105 +v 0.021361 1.622750 -0.042579 +v 0.009988 1.625236 -0.042999 +v -0.088031 1.519317 -0.041792 +v -0.085861 1.521559 -0.037113 +v -0.086699 1.521126 -0.037101 +v -0.088900 1.518700 -0.041800 +v 0.011010 1.623798 -0.055177 +v 0.071022 1.498660 -0.072359 +v 0.074708 1.498310 -0.057287 +v 0.076813 1.509999 -0.058491 +v 0.074411 1.514719 -0.074802 +v 0.033028 1.407859 0.005141 +v 0.030039 1.395778 0.000929 +v -0.082000 1.504600 -0.045500 +v -0.080323 1.509694 -0.043474 +v -0.079604 1.508792 -0.043485 +v -0.081297 1.504301 -0.045314 +v -0.089100 1.515800 -0.048100 +v -0.089639 1.513104 -0.049003 +v -0.087992 1.512000 -0.047407 +v -0.075500 1.513617 -0.029983 +v -0.076118 1.514593 -0.031298 +v -0.076609 1.513005 -0.031696 +v -0.076371 1.511694 -0.030520 +v -0.078164 1.466576 -0.027814 +v -0.073096 1.475727 -0.036776 +v -0.074801 1.476562 -0.038030 +v -0.077596 1.480667 -0.040850 +v -0.076407 1.481515 -0.041493 +v 0.053520 1.554444 0.037880 +v 0.055167 1.559187 0.033299 +v 0.058439 1.552305 0.030019 +v 0.056797 1.548534 0.034888 +v 0.005887 1.552131 0.063546 +v 0.013242 1.551916 0.062647 +v 0.011428 1.545963 0.063453 +v 0.005203 1.545936 0.064108 +v -0.070618 1.469515 -0.019925 +v -0.073800 1.469900 -0.019600 +v -0.074701 1.468685 -0.020488 +v -0.071600 1.467919 -0.021209 +v 0.059440 1.518629 0.030726 +v 0.062023 1.515611 0.028312 +v 0.060821 1.508001 0.032915 +v 0.058003 1.511984 0.034409 +v 0.054598 1.507965 0.039780 +v -0.078425 1.518098 -0.031667 +v -0.080957 1.517503 -0.033837 +v -0.079092 1.516506 -0.033011 +v -0.077368 1.516811 -0.031317 +v 0.056600 1.502200 0.039300 +v -0.088500 1.503500 -0.046500 +v -0.087000 1.510300 -0.044900 +v 0.018904 1.579964 0.052345 +v 0.009112 1.580880 0.054387 +v 0.060600 1.543300 0.027500 +v 0.058985 1.541133 0.032384 +v 0.010699 1.519994 0.061739 +v 0.011514 1.521322 0.058249 +v 0.007996 1.525146 0.059987 +v -0.089148 1.494204 -0.040272 +v -0.089000 1.494300 -0.043500 +v -0.088538 1.490188 -0.041897 +v -0.088564 1.490214 -0.038795 +v 0.003912 1.524971 0.065569 +v 0.003648 1.528717 0.063754 +v 0.007046 1.528482 0.060248 +v 0.033993 1.562933 0.052199 +v 0.035634 1.569459 0.048664 +v 0.043291 1.567819 0.043458 +v 0.041735 1.561705 0.047287 +v 0.020698 1.606310 0.026348 +v -0.088334 1.502483 -0.040508 +v -0.088447 1.502416 -0.044192 +v 0.010005 1.608005 0.029016 +v 0.004139 1.537948 0.062980 +v 0.008537 1.537917 0.061632 +v 0.007473 1.534421 0.060282 +v -0.090983 1.511396 -0.046991 +v -0.091428 1.505198 -0.047205 +v -0.090384 1.512000 -0.047798 +v -0.077544 1.512600 -0.041093 +v -0.077400 1.515300 -0.044900 +v -0.077651 1.508587 -0.046651 +v -0.078383 1.510012 -0.042574 +v 0.003950 1.534628 0.062399 +v 0.025500 1.509400 0.054200 +v 0.026221 1.511402 0.052919 +v 0.068924 1.470783 -0.026772 +v 0.070063 1.470235 -0.025719 +v 0.073354 1.517300 -0.015507 +v 0.072714 1.507101 -0.013696 +v 0.071736 1.514897 -0.004110 +v 0.071742 1.527400 -0.006595 +v 0.073300 1.538600 -0.010500 +v 0.074599 1.546926 -0.016268 +v 0.075720 1.531749 -0.022655 +v 0.074613 1.525899 -0.018098 +v 0.049669 1.418009 -0.059856 +v 0.048608 1.427595 -0.062745 +v 0.004078 1.522301 0.068552 +v 0.004027 1.519664 0.071163 +v 0.020495 1.529703 -0.128086 +v -0.072487 1.486189 -0.020399 +v -0.073652 1.488310 -0.021518 +v -0.072785 1.486082 -0.022770 +v -0.072332 1.483812 -0.022359 +v 0.019992 1.516906 -0.126383 +v 0.040609 1.520993 -0.118122 +v 0.040804 1.533198 -0.119411 +v 0.068436 1.488481 -0.068879 +v -0.078096 1.478882 -0.039421 +v -0.075400 1.475700 -0.037100 +v -0.075785 1.475417 -0.036252 +v -0.078507 1.477345 -0.037814 +v 0.072751 1.489694 -0.054914 +v 0.010892 1.495095 0.074194 +v 0.007594 1.499713 0.069461 +v 0.007789 1.496199 0.068918 +v 0.007417 1.498889 0.069265 +v 0.010944 1.492053 0.076099 +v 0.013247 1.491279 0.077394 +v 0.008600 1.492389 0.069127 +v 0.007700 1.492600 0.069700 +v 0.006998 1.496497 0.069211 +v 0.008729 1.500115 0.070107 +v 0.001944 1.488386 0.082348 +v 0.002499 1.489875 0.085125 +v 0.006506 1.490990 0.084097 +v 0.005006 1.489613 0.082093 +v 0.005458 1.499077 0.070745 +v 0.004491 1.496811 0.071589 +v 0.005310 1.494685 0.078792 +v 0.007206 1.498428 0.074823 +v 0.007494 1.500437 0.072081 +v 0.007200 1.495300 0.078000 +v 0.006200 1.489300 0.075200 +v 0.009008 1.495404 0.076405 +v -0.083100 1.518700 -0.036200 +v -0.083855 1.513511 -0.036581 +v -0.082100 1.513505 -0.035117 +v -0.079400 1.482900 -0.027100 +v -0.080206 1.484210 -0.028695 +v -0.081500 1.481100 -0.030500 +v -0.080687 1.479097 -0.029207 +v 0.081106 1.485086 -0.030299 +v 0.055353 1.438827 -0.014305 +v 0.061802 1.452633 -0.021411 +v 0.061800 1.451269 -0.026789 +v -0.082571 1.470333 -0.032585 +v -0.080240 1.469896 -0.033585 +v -0.077900 1.467889 -0.030714 +v -0.080399 1.467916 -0.030093 +v -0.072675 1.482711 -0.021801 +v -0.072327 1.483599 -0.020303 +v -0.083926 1.505195 -0.047073 +v -0.082566 1.511308 -0.044839 +v 0.056475 1.436705 -0.023388 +v 0.080800 1.511900 -0.034700 +v 0.066012 1.558296 0.012561 +v 0.067698 1.568962 0.002878 +v 0.072355 1.557904 -0.008158 +v -0.086087 1.511596 -0.040800 +v -0.086768 1.509089 -0.042098 +v 0.071371 1.547902 -0.002509 +v 0.068379 1.577790 -0.004909 +v 0.073269 1.567598 -0.015308 +v 0.076018 1.556001 -0.024296 +v 0.077911 1.536200 -0.036897 +v 0.042165 1.521251 0.045613 +v 0.042412 1.521112 0.045815 +v 0.040900 1.520800 0.047100 +v -0.074730 1.498708 -0.025229 +v -0.072484 1.499298 -0.026263 +v -0.072424 1.498498 -0.026271 +v -0.075274 1.497098 -0.025153 +v 0.040900 1.520900 0.046900 +v 0.041684 1.521291 0.044982 +v 0.040343 1.520792 0.046058 +v -0.074986 1.498595 -0.024097 +v -0.075514 1.497004 -0.023998 +v -0.075085 1.496797 -0.022906 +v -0.074710 1.497703 -0.022785 +v 0.042542 1.521718 0.044010 +v 0.043095 1.521563 0.044535 +v 0.043365 1.521386 0.044713 +v 0.024933 1.521899 0.048906 +v 0.025588 1.522170 0.048171 +v 0.028191 1.521207 0.048430 +v 0.027547 1.521253 0.049572 +v 0.024720 1.521709 0.049378 +v 0.027503 1.521018 0.050005 +v -0.071792 1.499615 -0.026608 +v -0.072000 1.499300 -0.026400 +v -0.072388 1.499850 -0.026639 +v -0.077294 1.502724 -0.037763 +v -0.078993 1.494880 -0.039129 +v -0.077413 1.494601 -0.037981 +v -0.075700 1.501500 -0.036400 +v 0.028678 1.523900 0.042557 +v 0.028204 1.524236 0.042492 +v -0.089216 1.495402 -0.045388 +v 0.029466 1.523482 0.042681 +v 0.023235 1.523973 0.046674 +v 0.023291 1.524974 0.046778 +v -0.080994 1.521612 -0.028301 +v -0.079582 1.523421 -0.028204 +v -0.082400 1.526875 -0.032516 +v 0.027982 1.525037 0.042609 +v 0.027969 1.524510 0.042490 +v 0.023469 1.523441 0.046801 +v -0.074387 1.485551 -0.030792 +v -0.077111 1.486378 -0.028293 +v -0.075401 1.486174 -0.026902 +v -0.073776 1.485212 -0.029312 +v -0.072203 1.490294 -0.025077 +v -0.070416 1.486997 -0.024430 +v -0.074220 1.488702 -0.023891 +v -0.074537 1.504508 -0.024103 +v -0.073632 1.500887 -0.026200 +v -0.074301 1.499691 -0.025068 +v -0.074473 1.500004 -0.024007 +v -0.090300 1.486200 -0.044700 +v -0.091516 1.491394 -0.047212 +v -0.089989 1.491103 -0.048594 +v -0.088900 1.485600 -0.046100 +v 0.021958 1.523277 0.046966 +v 0.021129 1.523661 0.046653 +v -0.071174 1.473291 -0.018315 +v -0.067815 1.470535 -0.021913 +v -0.069856 1.476490 -0.018061 +v -0.091000 1.522800 -0.044100 +v -0.087700 1.524800 -0.044500 +v -0.088398 1.522717 -0.046819 +v -0.091894 1.520791 -0.046191 +v -0.072913 1.506097 -0.031592 +v -0.073018 1.504001 -0.031087 +v -0.072919 1.505397 -0.029993 +v -0.072693 1.507397 -0.030290 +v 0.021224 1.524972 0.046884 +v 0.032700 1.520100 0.050100 +v 0.032897 1.519399 0.050184 +v 0.028200 1.519704 0.050417 +v 0.027801 1.520500 0.050288 +v 0.032498 1.520485 0.049893 +v 0.035900 1.520600 0.049000 +v 0.035996 1.520197 0.049188 +v 0.036104 1.519501 0.049213 +v -0.053586 1.467412 -0.075433 +v -0.062458 1.468076 -0.057171 +v -0.066552 1.481198 -0.065315 +v -0.058792 1.480269 -0.080652 +v -0.083582 1.473183 -0.031719 +v -0.082493 1.471092 -0.029401 +v -0.075389 1.512005 -0.023502 +v -0.074722 1.513599 -0.022600 +v -0.075513 1.518799 -0.024222 +v -0.076219 1.515923 -0.024158 +v 0.024901 1.520591 0.050179 +v 0.024799 1.521400 0.049815 +v 0.036100 1.518900 0.049200 +v 0.033100 1.518800 0.050100 +v -0.090682 1.506499 -0.052109 +v -0.093415 1.505906 -0.050612 +v 0.028400 1.519100 0.050400 +v 0.024900 1.520200 0.050300 +v 0.022180 1.521429 0.049697 +v 0.023262 1.521579 0.049651 +v 0.033098 1.518102 0.049889 +v 0.033002 1.517298 0.049711 +v 0.028299 1.517601 0.050288 +v 0.028401 1.518399 0.050319 +v -0.077712 1.518490 -0.030205 +v -0.081200 1.521900 -0.033400 +v -0.079308 1.519492 -0.032198 +v -0.077480 1.518012 -0.030407 +v -0.077190 1.509801 -0.027990 +v -0.077694 1.511105 -0.027778 +v -0.076001 1.512096 -0.027915 +v -0.075200 1.510700 -0.027900 +v 0.036100 1.518200 0.048900 +v 0.036000 1.517400 0.048700 +v -0.074370 1.517897 -0.021713 +v -0.075297 1.522474 -0.025117 +v 0.044439 1.521538 0.043123 +v 0.044900 1.522000 0.042200 +v 0.044889 1.521497 0.042391 +v -0.071415 1.475105 -0.036388 +v 0.044613 1.521100 0.042908 +v 0.047300 1.519000 0.040400 +v 0.048300 1.520100 0.039500 +v 0.050100 1.519300 0.038700 +v -0.077115 1.511100 -0.025590 +v -0.077700 1.513600 -0.025600 +v -0.078380 1.512711 -0.027699 +v -0.070513 1.481494 -0.017518 +v -0.071608 1.483198 -0.019075 +v -0.076812 1.517093 -0.030192 +v -0.076143 1.515882 -0.030085 +v -0.074901 1.512051 -0.029070 +v -0.075697 1.510116 -0.030317 +v 0.048907 1.518104 0.039809 +v -0.083394 1.503779 -0.036850 +v -0.085900 1.495120 -0.037669 +v 0.056681 1.509389 0.037056 +v 0.051190 1.515294 0.039686 +v 0.052600 1.516500 0.037900 +v 0.044000 1.521300 0.043900 +v 0.043400 1.521000 0.044800 +v 0.043900 1.521600 0.043800 +v 0.044314 1.521924 0.042872 +v 0.044184 1.520701 0.043691 +v 0.043510 1.520399 0.044707 +v 0.042500 1.520800 0.045900 +v 0.042589 1.520103 0.045890 +v 0.041000 1.519800 0.047200 +v 0.040900 1.520500 0.047200 +v 0.038827 1.520294 0.048207 +v -0.070665 1.482116 -0.051701 +v -0.066781 1.468771 -0.037011 +v 0.039096 1.520691 0.047990 +v 0.038924 1.519591 0.048198 +v 0.041100 1.519200 0.047000 +v 0.039015 1.518991 0.048107 +v 0.042600 1.519500 0.045600 +v 0.043590 1.519902 0.044393 +v 0.044314 1.520298 0.043307 +v 0.044900 1.520700 0.042500 +v 0.045300 1.521300 0.041900 +v 0.044600 1.519800 0.042800 +v 0.045200 1.519100 0.042100 +v 0.044000 1.518600 0.043400 +v 0.043727 1.519374 0.043986 +v 0.045400 1.520300 0.041900 +v 0.046200 1.519700 0.041100 +v -0.074900 1.512500 -0.028100 +v -0.074900 1.512900 -0.028300 +v -0.074300 1.512000 -0.028500 +v -0.074200 1.511400 -0.028200 +v 0.042700 1.519000 0.045200 +v 0.042700 1.518300 0.044800 +v 0.041000 1.517900 0.046300 +v 0.041092 1.518606 0.046690 +v -0.081180 1.469406 -0.027314 +v -0.081392 1.510102 -0.034728 +v -0.078509 1.508234 -0.032619 +v -0.078690 1.510401 -0.032211 +v 0.039015 1.518382 0.047807 +v 0.039024 1.517589 0.047472 +v -0.091593 1.496901 -0.045991 +v -0.092481 1.504997 -0.047033 +v -0.093707 1.505301 -0.048582 +v -0.092700 1.496700 -0.047300 +v 0.032398 1.520499 0.049611 +v 0.032070 1.520462 0.048411 +v 0.035568 1.520277 0.047815 +v 0.035900 1.520600 0.048700 +v 0.039100 1.520700 0.047800 +v -0.069138 1.468847 -0.022896 +v -0.073401 1.503294 -0.031788 +v -0.074390 1.501599 -0.031214 +v 0.038514 1.520381 0.046986 +v 0.035403 1.520177 0.046662 +v 0.033667 1.522493 0.042517 +v 0.035009 1.522519 0.042154 +v 0.038077 1.520272 0.045916 +v -0.073320 1.508785 -0.030771 +v -0.073362 1.510351 -0.029068 +v 0.032250 1.520456 0.047158 +v 0.032125 1.522658 0.042749 +v 0.028946 1.521295 0.047200 +v -0.071539 1.486197 -0.018780 +v 0.030633 1.523025 0.042787 +v 0.026318 1.522169 0.047391 +v 0.033945 1.532789 0.049154 +v 0.033987 1.533023 0.049380 +v 0.038500 1.532400 0.048800 +v 0.038100 1.532100 0.048400 +v 0.051553 1.496317 -0.100345 +v 0.052901 1.510673 -0.105774 +v 0.040195 1.505800 -0.115183 +v 0.040900 1.529700 0.047500 +v 0.040908 1.530602 0.047110 +v 0.043300 1.529300 0.045900 +v 0.043109 1.528498 0.046011 +v 0.040898 1.528786 0.047906 +v -0.087705 1.519915 -0.045409 +v -0.088484 1.518000 -0.046810 +v -0.086125 1.518595 -0.043989 +v -0.085717 1.519801 -0.042398 +v -0.084872 1.521507 -0.039310 +v -0.084900 1.522959 -0.038902 +v -0.086800 1.521600 -0.043400 +v -0.076910 1.509099 -0.031384 +v -0.077488 1.510807 -0.031221 +v 0.042890 1.527512 0.046186 +v 0.038200 1.530000 0.049500 +v -0.078757 1.481692 -0.026054 +v -0.079651 1.475700 -0.026960 +v -0.087515 1.486694 -0.039481 +v -0.087178 1.487520 -0.036411 +v -0.087200 1.496700 -0.049600 +v -0.086626 1.505995 -0.050271 +v -0.085270 1.505500 -0.048424 +v -0.086200 1.496700 -0.048500 +v 0.038200 1.531000 0.049000 +v 0.038100 1.531800 0.048500 +v 0.042119 1.526072 0.042035 +v 0.041362 1.527066 0.042705 +v -0.080890 1.497910 -0.046193 +v -0.077697 1.498497 -0.046178 +v -0.074100 1.498700 -0.022500 +v -0.073200 1.502400 -0.020900 +v -0.073000 1.508100 -0.030600 +v -0.073112 1.509696 -0.028998 +v -0.082101 1.481590 -0.041807 +v -0.077895 1.474733 -0.034283 +v -0.082003 1.479694 -0.039813 +v -0.073816 1.473945 -0.032524 +v -0.073304 1.473187 -0.030203 +v -0.075893 1.473216 -0.031599 +v 0.041916 1.526935 0.044139 +v 0.042956 1.526131 0.042937 +v 0.042757 1.525369 0.041438 +v 0.043602 1.525370 0.042054 +v 0.037542 1.525216 0.039867 +v 0.037198 1.525606 0.040151 +v 0.036660 1.526085 0.040544 +v -0.084062 1.483308 -0.033637 +v -0.085978 1.484417 -0.036390 +v 0.037714 1.524891 0.039697 +v -0.071500 1.499400 -0.027100 +v -0.070090 1.497912 -0.028215 +v -0.070510 1.499177 -0.026601 +v -0.086793 1.502906 -0.038129 +v -0.088239 1.494694 -0.038349 +v -0.077317 1.513394 -0.028185 +v 0.037779 1.524597 0.039632 +v -0.076101 1.503386 -0.027988 +v -0.076739 1.506787 -0.026397 +v -0.080088 1.516707 -0.028296 +v -0.078608 1.515193 -0.028702 +v -0.078171 1.514217 -0.028369 +v -0.079119 1.514587 -0.027733 +v -0.064970 1.489977 -0.026859 +v -0.068207 1.488286 -0.025432 +v -0.069600 1.491400 -0.025400 +v 0.037758 1.524316 0.039661 +v 0.037669 1.524040 0.039811 +v 0.058518 1.493799 0.036810 +v 0.059081 1.504398 0.036285 +v -0.083936 1.522604 -0.037179 +v -0.084376 1.520602 -0.038312 +v -0.083800 1.512300 -0.046400 +v 0.061300 1.496500 0.033300 +v 0.043599 1.521847 0.043556 +v -0.077005 1.514888 -0.032296 +v -0.077607 1.513397 -0.033092 +v 0.044055 1.522221 0.042659 +v -0.077512 1.523697 -0.039600 +v -0.077134 1.522214 -0.036306 +v -0.077024 1.522596 -0.035096 +v -0.077000 1.526200 -0.035400 +v 0.043015 1.522082 0.043129 +v -0.072194 1.470894 -0.027111 +v -0.075000 1.471200 -0.029600 +v -0.074913 1.472222 -0.030080 +v -0.072794 1.472090 -0.028308 +v -0.074614 1.485867 -0.026314 +v -0.073392 1.484991 -0.028510 +v 0.043462 1.522488 0.042348 +v -0.088313 1.487893 -0.042607 +v -0.087791 1.487097 -0.041406 +v -0.088800 1.491100 -0.043700 +v -0.089407 1.492300 -0.044808 +v 0.044553 1.522761 0.041803 +v 0.044927 1.522554 0.041844 +v 0.041056 1.521240 0.044204 +v 0.036673 1.522964 0.041275 +v 0.037083 1.523262 0.040834 +v -0.074023 1.506963 -0.033952 +v -0.073613 1.505802 -0.033402 +v -0.078264 1.516972 -0.037457 +v -0.080300 1.519500 -0.038900 +v -0.078936 1.522279 -0.035468 +v -0.077375 1.520039 -0.035263 +v -0.085184 1.513304 -0.048435 +v 0.041746 1.521873 0.043317 +v 0.039788 1.520688 0.045084 +v 0.035983 1.522699 0.041727 +v 0.037308 1.523509 0.040446 +v 0.037510 1.523762 0.040093 +v -0.077900 1.512000 -0.032500 +v -0.078690 1.512194 -0.033514 +v 0.042057 1.522240 0.042582 +v -0.077290 1.512393 -0.032109 +v 0.042503 1.522667 0.041859 +v 0.043826 1.523087 0.041769 +v -0.074693 1.509798 -0.027983 +v -0.076690 1.508602 -0.028290 +v -0.079600 1.517115 -0.029581 +v -0.083299 1.520672 -0.032822 +v -0.082605 1.520723 -0.032873 +v -0.079196 1.517891 -0.029805 +v 0.043025 1.523723 0.040992 +v 0.043098 1.524246 0.040972 +v 0.044011 1.523655 0.041586 +v -0.075486 1.514507 -0.028998 +v 0.044072 1.524168 0.041487 +v 0.042854 1.523208 0.041263 +v -0.014577 1.465024 -0.102244 +v -0.016400 1.474400 -0.109200 +v 0.043014 1.524789 0.041098 +v 0.043930 1.524704 0.041661 +v 0.045170 1.522128 0.041830 +v 0.045172 1.522916 0.041508 +v 0.045689 1.523909 0.041025 +v 0.045611 1.522137 0.041396 +v -0.077508 1.523187 -0.028108 +v -0.078384 1.524716 -0.032003 +v -0.079493 1.525831 -0.032370 +v -0.078124 1.524043 -0.029015 +v -0.085510 1.518598 -0.041793 +v 0.046307 1.522104 0.040817 +v 0.045900 1.521000 0.041200 +v 0.046700 1.524488 0.040798 +v 0.048114 1.524818 0.040328 +v -0.089900 1.514600 -0.047000 +v -0.075224 1.500049 -0.029836 +v -0.072310 1.497196 -0.029602 +v 0.047605 1.521996 0.040014 +v 0.046900 1.520700 0.040400 +v 0.044824 1.523362 0.041444 +v -0.062100 1.496100 -0.028400 +v -0.062400 1.497300 -0.028400 +v -0.062996 1.496896 -0.029588 +v -0.062700 1.495600 -0.029800 +v 0.044987 1.523980 0.041208 +v 0.046091 1.525512 0.041885 +v -0.065798 1.490998 -0.030077 +v -0.068687 1.489987 -0.028824 +v -0.067795 1.488059 -0.027571 +v -0.065087 1.488901 -0.029508 +v 0.046900 1.526300 0.041900 +v 0.045406 1.524990 0.041911 +v 0.044897 1.525716 0.043091 +v 0.045400 1.526400 0.043200 +v -0.061700 1.493000 -0.028800 +v -0.061900 1.494600 -0.028500 +v -0.062600 1.493904 -0.030024 +v -0.062510 1.492089 -0.030514 +v 0.046000 1.527100 0.043200 +v 0.044489 1.527303 0.044590 +v -0.083251 1.522548 -0.035046 +v -0.085047 1.522467 -0.036875 +v 0.044900 1.528100 0.044600 +v 0.044112 1.526492 0.044515 +v 0.044792 1.524756 0.041778 +v -0.091507 1.513492 -0.045983 +v -0.092000 1.511200 -0.046800 +v -0.088778 1.518688 -0.044296 +v -0.089400 1.516800 -0.045700 +v 0.044314 1.525441 0.042693 +v 0.043559 1.526182 0.043934 +v 0.042506 1.526800 0.045709 +v -0.073810 1.490899 -0.021494 +v -0.074915 1.491096 -0.023006 +v -0.074587 1.489510 -0.022989 +v -0.092426 1.516497 -0.046084 +v -0.092491 1.518401 -0.047705 +v -0.074023 1.473610 -0.019287 +v -0.072900 1.472100 -0.018700 +v -0.040539 1.402694 -0.008784 +v -0.048074 1.407914 -0.020517 +v -0.047013 1.398104 -0.021095 +v -0.039392 1.393104 -0.010006 +v -0.079593 1.519097 -0.027011 +v -0.078310 1.521306 -0.026782 +v 0.040690 1.527910 0.047582 +v 0.039941 1.527889 0.045733 +v 0.038000 1.529200 0.049200 +v -0.061832 1.491418 -0.027890 +v -0.061767 1.490564 -0.029280 +v -0.064532 1.489040 -0.028225 +v -0.066803 1.495395 -0.026325 +v -0.062692 1.496102 -0.026989 +v 0.037203 1.528804 0.047236 +v 0.034542 1.533709 0.050445 +v 0.039499 1.533215 0.049975 +v 0.036807 1.528788 0.045465 +v 0.034347 1.526891 0.041805 +v 0.032772 1.526987 0.042325 +v 0.033546 1.528876 0.046426 +v -0.066004 1.492689 -0.029996 +v 0.023838 1.525682 0.047159 +v 0.024615 1.526505 0.047491 +v -0.066600 1.497700 -0.029000 +v -0.066899 1.498785 -0.027594 +v -0.069870 1.484581 -0.025568 +v -0.071628 1.484108 -0.027495 +v -0.073099 1.484030 -0.024480 +v -0.062493 1.490133 -0.030449 +v -0.073605 1.507995 -0.032192 +v 0.028529 1.525780 0.042811 +v 0.028182 1.525373 0.042703 +v 0.022456 1.525747 0.047856 +v 0.023742 1.526545 0.048365 +v -0.069294 1.493493 -0.029380 +v -0.072510 1.491006 -0.030991 +v -0.072108 1.488909 -0.030290 +v -0.069088 1.491598 -0.029288 +v -0.082186 1.480509 -0.032108 +v -0.082500 1.482389 -0.031806 +v -0.075207 1.486410 -0.032571 +v -0.078600 1.486500 -0.030726 +v -0.074610 1.503003 -0.030429 +v -0.075710 1.506076 -0.029052 +v -0.072018 1.499535 -0.027245 +v -0.069600 1.495600 -0.029000 +v -0.072429 1.493400 -0.030779 +v -0.066996 1.496709 -0.026563 +v -0.070701 1.496697 -0.025915 +v -0.070496 1.497807 -0.026089 +v -0.067002 1.497703 -0.026813 +v -0.080210 1.513496 -0.034376 +v -0.077161 1.519075 -0.025362 +v -0.078600 1.516400 -0.026100 +v -0.078956 1.526993 -0.051414 +v -0.077945 1.518913 -0.056083 +v -0.077665 1.520494 -0.043294 +v -0.066104 1.494500 -0.029818 +v -0.063008 1.498217 -0.028195 +v -0.063488 1.497694 -0.027293 +v -0.087700 1.483800 -0.040300 +v -0.073996 1.483585 -0.024303 +v -0.073597 1.507916 -0.028454 +v -0.087091 1.491399 -0.048005 +v -0.086200 1.486200 -0.045800 +v -0.073000 1.509200 -0.028900 +v -0.073613 1.510299 -0.028418 +v -0.072679 1.484436 -0.028099 +v -0.074011 1.484984 -0.025493 +v -0.073800 1.510700 -0.028300 +v -0.074759 1.490612 -0.024153 +v -0.085521 1.513187 -0.039739 +v 0.027850 1.528251 0.047514 +v 0.029964 1.526652 0.042905 +v -0.078886 1.472181 -0.034028 +v -0.076900 1.470700 -0.031400 +v 0.029085 1.526235 0.042905 +v -0.063107 1.497087 -0.027034 +v 0.026190 1.527374 0.047403 +v -0.067048 1.488263 -0.026903 +v -0.066401 1.496204 -0.029511 +v 0.027281 1.528690 0.049325 +v 0.025103 1.527452 0.048740 +v 0.033744 1.529320 0.048332 +v -0.073083 1.494401 -0.025488 +v -0.072718 1.492295 -0.025142 +v -0.075021 1.492793 -0.024235 +v 0.021800 1.564300 -0.125112 +v 0.021390 1.549196 -0.128268 +v -0.080194 1.487032 -0.032232 +v -0.076200 1.488129 -0.034638 +v -0.077499 1.489024 -0.036690 +v -0.082102 1.487860 -0.033716 +v -0.084805 1.481507 -0.043287 +v -0.083016 1.477319 -0.039971 +v -0.085043 1.475936 -0.039699 +v -0.087297 1.480394 -0.043209 +v 0.041100 1.551200 -0.119600 +v 0.041000 1.564300 -0.117100 +v -0.079918 1.541308 -0.059991 +v -0.078910 1.532799 -0.044899 +v -0.080121 1.548101 -0.049100 +v -0.083314 1.521389 -0.044086 +v -0.083806 1.518997 -0.045690 +v -0.088991 1.520200 -0.048605 +v -0.076340 1.525030 -0.030066 +v -0.076931 1.522731 -0.033547 +v -0.077407 1.523933 -0.031651 +v -0.090305 1.496596 -0.050608 +v 0.039290 1.528051 0.044190 +v 0.035655 1.526552 0.041178 +v 0.051007 1.565829 -0.109698 +v 0.050153 1.574170 -0.107041 +v 0.041409 1.575703 -0.112304 +v 0.037050 1.439676 -0.079925 +v 0.026375 1.429290 -0.086093 +v -0.074900 1.508300 -0.023500 +v -0.076811 1.508900 -0.025803 +v 0.020443 1.525555 0.049023 +v -0.081302 1.482541 -0.042839 +v 0.022090 1.526874 0.049265 +v -0.082741 1.485784 -0.031869 +v -0.085088 1.486284 -0.033841 +v -0.088312 1.522894 -0.037393 +v -0.085094 1.521385 -0.034799 +v 0.019381 1.524425 0.048883 +v 0.018804 1.524338 0.049175 +v 0.019820 1.525679 0.049223 +v 0.021236 1.527039 0.049389 +v 0.024082 1.528063 0.049571 +v 0.023449 1.528355 0.049996 +v 0.026775 1.529813 0.050788 +v 0.026860 1.529186 0.050504 +v 0.034030 1.529944 0.050131 +v 0.034105 1.530682 0.050431 +v 0.026377 1.530509 0.050284 +v 0.022991 1.528811 0.049615 +v 0.025891 1.531275 0.049667 +v 0.022800 1.529700 0.049200 +v 0.033943 1.532420 0.049431 +v 0.034105 1.531621 0.049993 +v 0.022009 1.522235 0.049146 +v 0.019888 1.522635 0.049121 +v 0.022491 1.522472 0.048858 +v 0.020169 1.522855 0.048732 +v 0.023596 1.522765 0.047753 +v 0.019510 1.523334 0.048695 +v 0.018853 1.523205 0.049074 +v -0.008841 1.394244 0.015789 +v -0.008800 1.386900 0.011600 +v 0.024390 1.522876 0.047222 +v 0.019200 1.525800 0.049100 +v 0.018016 1.524253 0.049349 +v 0.018201 1.526310 0.048651 +v 0.017395 1.524492 0.049158 +v 0.020237 1.528365 0.048593 +v 0.020635 1.527357 0.048964 +v 0.017989 1.523129 0.049200 +v 0.018475 1.522629 0.049200 +v 0.017396 1.523127 0.049280 +v 0.017900 1.522496 0.049287 +v 0.024700 1.519600 0.050400 +v 0.024500 1.519000 0.050400 +v 0.021512 1.520977 0.049893 +v 0.021022 1.520599 0.049909 +v 0.032795 1.516401 0.049585 +v 0.035800 1.516500 0.048500 +v 0.032503 1.515300 0.049614 +v -0.008589 1.498484 0.073786 +v -0.010030 1.498324 0.072305 +v -0.008757 1.500242 0.071290 +v -0.008117 1.500249 0.072013 +v 0.035693 1.515294 0.048482 +v 0.027697 1.515798 0.050481 +v 0.028102 1.516702 0.050317 +v 0.029412 1.387797 -0.001384 +v 0.046000 1.518200 0.041600 +v 0.047200 1.517100 0.041300 +v 0.045392 1.516396 0.042790 +v 0.044509 1.517704 0.042911 +v 0.042900 1.517300 0.044400 +v -0.008946 1.489300 0.072430 +v -0.008334 1.490922 0.071314 +v -0.009315 1.490643 0.070347 +v -0.010188 1.489265 0.071512 +v 0.043309 1.515909 0.044414 +v 0.041000 1.515600 0.046000 +v 0.040900 1.516900 0.046000 +v 0.038919 1.516689 0.047177 +v 0.038722 1.515306 0.047242 +v 0.049300 1.521500 0.038900 +v 0.050591 1.524603 0.038686 +v 0.051200 1.520900 0.037800 +v 0.052905 1.524289 0.037006 +v 0.016797 1.527194 0.048968 +v -0.005681 1.499910 0.071178 +v -0.004213 1.497290 0.073791 +v -0.005785 1.498187 0.075196 +v -0.006796 1.500441 0.071916 +v 0.016432 1.524904 0.049054 +v 0.015300 1.527900 0.050300 +v 0.015200 1.525300 0.050100 +v 0.016200 1.530800 0.050800 +v 0.018103 1.529886 0.049322 +v 0.016702 1.523141 0.049381 +v 0.017301 1.522304 0.049412 +v 0.015612 1.523203 0.049817 +v 0.016513 1.521817 0.049816 +v 0.024099 1.518299 0.050487 +v 0.023694 1.517490 0.050592 +v 0.020550 1.520111 0.050065 +v 0.019827 1.519426 0.050302 +v 0.049954 1.486090 -0.095874 +v 0.053460 1.525713 -0.108355 +v 0.047153 1.537083 0.048674 +v 0.044799 1.534344 0.048966 +v 0.041146 1.535635 0.050758 +v 0.043109 1.539081 0.051229 +v 0.050240 1.540841 0.047395 +v 0.052685 1.537388 0.044750 +v 0.049920 1.534711 0.046178 +v 0.047487 1.532583 0.046972 +v 0.051300 1.527400 0.039700 +v 0.049306 1.527394 0.041107 +v 0.049400 1.529100 0.042600 +v 0.051400 1.529700 0.041500 +v 0.053700 1.527400 0.038000 +v 0.054100 1.530500 0.039900 +v 0.050911 1.531995 0.043813 +v 0.048706 1.530695 0.044709 +v 0.053767 1.533613 0.042372 +v 0.023810 1.535193 0.052318 +v 0.024621 1.533474 0.050880 +v 0.021502 1.531689 0.049858 +v 0.020094 1.532606 0.050483 +v 0.022472 1.536856 0.053894 +v 0.017898 1.533692 0.051907 +v 0.036404 1.539832 0.053434 +v 0.035572 1.536604 0.052091 +v 0.025594 1.531753 0.049356 +v 0.023502 1.530697 0.049184 +v 0.025447 1.531989 0.049401 +v 0.022900 1.530600 0.049100 +v 0.058944 1.585628 -0.090242 +v 0.061100 1.592200 -0.078300 +v 0.044568 1.602329 -0.084574 +v 0.043693 1.594392 -0.096197 +v 0.041000 1.531000 0.047100 +v 0.041600 1.531400 0.047600 +v 0.044100 1.530100 0.046400 +v 0.043500 1.529700 0.046000 +v 0.045300 1.528600 0.044700 +v 0.045998 1.529012 0.044988 +v 0.047100 1.528000 0.043400 +v 0.046494 1.527712 0.043387 +v 0.047100 1.527000 0.042300 +v 0.047706 1.526995 0.042008 +v 0.023200 1.531500 0.049500 +v 0.025342 1.532353 0.049786 +v 0.052443 1.554395 -0.110733 +v 0.045436 1.574694 0.038505 +v 0.052333 1.571092 0.032286 +v 0.050200 1.565000 0.037900 +v 0.042799 1.532208 0.048590 +v 0.045400 1.530900 0.047000 +v 0.047100 1.529700 0.045100 +v 0.048000 1.528600 0.043300 +v 0.048394 1.527705 0.042091 +v 0.071726 1.489597 -0.018397 +v 0.072300 1.489600 -0.019800 +v 0.082403 1.497500 -0.046021 +v 0.080609 1.503982 -0.045312 +v 0.079052 1.507506 -0.044008 +v 0.078100 1.518500 -0.029900 +v 0.081582 1.521655 -0.032839 +v 0.085888 1.480697 -0.037210 +v 0.082727 1.479003 -0.033181 +v -0.088400 1.525800 -0.038200 +v 0.085882 1.481597 -0.037615 +v 0.089000 1.517700 -0.043700 +v 0.089700 1.515900 -0.045000 +v 0.090689 1.515510 -0.044722 +v 0.042993 1.466469 -0.086739 +v 0.047760 1.478256 -0.092516 +v 0.090400 1.513800 -0.046200 +v 0.074300 1.494200 -0.021900 +v 0.083479 1.497097 -0.046117 +v 0.085217 1.496703 -0.047579 +v 0.086211 1.491703 -0.047289 +v 0.085503 1.492007 -0.046781 +v 0.085486 1.486796 -0.045215 +v 0.084991 1.487411 -0.044990 +v 0.087400 1.484200 -0.040300 +v 0.088704 1.487908 -0.042783 +v 0.082840 1.522084 -0.034142 +v 0.082112 1.521223 -0.032776 +v 0.083570 1.521955 -0.034436 +v 0.075177 1.493002 -0.023111 +v 0.076500 1.516600 -0.029500 +v 0.075900 1.514300 -0.028300 +v 0.075700 1.514700 -0.028700 +v 0.071800 1.498104 -0.026083 +v 0.071802 1.498996 -0.026313 +v 0.072996 1.496503 -0.026061 +v 0.075410 1.495001 -0.024819 +v 0.069598 1.487587 -0.024692 +v 0.069300 1.486401 -0.026424 +v 0.069687 1.485404 -0.026018 +v 0.085515 1.527480 -0.038589 +v 0.075999 1.513302 -0.027984 +v 0.077199 1.514400 -0.028210 +v 0.077500 1.515700 -0.028600 +v 0.084313 1.521518 -0.034793 +v 0.077793 1.516688 -0.028928 +v 0.077100 1.516600 -0.028900 +v 0.078695 1.518295 -0.029809 +v 0.076700 1.516600 -0.029100 +v 0.077487 1.491398 -0.037513 +v 0.076038 1.491207 -0.035474 +v 0.073200 1.509900 -0.019400 +v 0.073700 1.508000 -0.021200 +v 0.081613 1.478503 -0.031092 +v 0.077071 1.514610 -0.039608 +v 0.076983 1.517291 -0.040993 +v 0.089989 1.492402 -0.044791 +v 0.083719 1.487422 -0.033473 +v 0.081400 1.486758 -0.031819 +v 0.085799 1.488493 -0.035214 +v 0.087406 1.491007 -0.036987 +v 0.073275 1.507102 -0.031910 +v 0.084591 1.511302 -0.037217 +v 0.085725 1.509009 -0.038205 +v 0.082810 1.511499 -0.035689 +v 0.077116 1.520902 -0.039194 +v 0.076866 1.521086 -0.036895 +v 0.077427 1.516146 -0.037671 +v 0.076733 1.519477 -0.036354 +v 0.071294 1.491000 -0.025011 +v 0.071539 1.485011 -0.028169 +v 0.071376 1.487003 -0.028816 +v 0.072800 1.485000 -0.029000 +v 0.073029 1.485996 -0.030176 +v 0.073697 1.487491 -0.031606 +v 0.074400 1.489400 -0.032700 +v 0.074445 1.491799 -0.033137 +v 0.070700 1.495100 -0.025700 +v 0.076554 1.521809 -0.026878 +v 0.070296 1.493304 -0.025475 +v 0.072097 1.496697 -0.025914 +v 0.072201 1.494908 -0.025566 +v 0.071902 1.492995 -0.025121 +v 0.077900 1.484000 -0.026400 +v 0.078789 1.485596 -0.028414 +v 0.076283 1.484669 -0.025833 +v 0.079808 1.486114 -0.030284 +v 0.074909 1.484910 -0.025487 +v 0.077240 1.515882 -0.038378 +v 0.076800 1.519100 -0.038300 +v 0.071770 1.493003 -0.016807 +v 0.063703 1.501321 0.029000 +v 0.065291 1.510391 0.023890 +v 0.026059 1.454896 0.049004 +v 0.025298 1.451791 0.049406 +v 0.054800 1.491500 0.040500 +v 0.049968 1.489449 0.045159 +v 0.025148 1.460346 0.061133 +v 0.024435 1.459621 0.061337 +v 0.023522 1.460187 0.061418 +v 0.024249 1.460520 0.061081 +v 0.022000 1.460772 0.059500 +v 0.022800 1.460707 0.058800 +v 0.023014 1.460696 0.059746 +v 0.022313 1.460759 0.060425 +v 0.028109 1.475652 0.062034 +v 0.031378 1.479582 0.059952 +v 0.034158 1.475322 0.058856 +v 0.030949 1.471935 0.060987 +v 0.024580 1.459509 0.051432 +v 0.024307 1.461110 0.051921 +v 0.023228 1.460994 0.055868 +v 0.023532 1.460361 0.055415 +v 0.024417 1.456932 0.051523 +v 0.023415 1.459081 0.054968 +v 0.026131 1.458845 0.048941 +v 0.025595 1.461351 0.049316 +v 0.033679 1.454181 0.057135 +v 0.030493 1.456211 0.059276 +v 0.031308 1.459310 0.059370 +v 0.034660 1.458692 0.057534 +v 0.025183 1.486692 0.060752 +v 0.028504 1.483099 0.060419 +v 0.025503 1.479201 0.062212 +v 0.022102 1.483306 0.062428 +v 0.018718 1.488020 0.063334 +v 0.021581 1.490552 0.061358 +v 0.017491 1.495490 0.066471 +v 0.017785 1.491959 0.067693 +v 0.017219 1.491111 0.070903 +v 0.017625 1.493108 0.069690 +v 0.015426 1.487303 0.069410 +v 0.017764 1.489813 0.066272 +v 0.011460 1.486297 0.069954 +v -0.012342 1.488981 0.072095 +v -0.011326 1.490885 0.070919 +v -0.012050 1.491341 0.072767 +v -0.013716 1.489773 0.073790 +v 0.011262 1.487086 0.070809 +v 0.015505 1.486658 0.068092 +v -0.004958 1.489999 0.080211 +v -0.006080 1.492103 0.080389 +v -0.004980 1.491307 0.078099 +v -0.004935 1.489324 0.077714 +v 0.015732 1.485856 0.066517 +v 0.011732 1.485545 0.068955 +v 0.010705 1.488275 0.071582 +v 0.013514 1.488048 0.071692 +v -0.007888 1.492561 0.079779 +v -0.009808 1.492021 0.081514 +v -0.011583 1.491985 0.079889 +v -0.009400 1.492428 0.078300 +v -0.004716 1.493621 0.073204 +v -0.006063 1.491670 0.074584 +v -0.003964 1.493789 0.076796 +v -0.012266 1.493714 0.070902 +v -0.010928 1.492691 0.069478 +v -0.009809 1.496498 0.068938 +v -0.011062 1.497282 0.069812 +v 0.015121 1.489854 0.073173 +v 0.004381 1.488908 0.079905 +v 0.005639 1.490149 0.081872 +v 0.010589 1.518080 0.064760 +v 0.013675 1.514833 0.061918 +v 0.010631 1.515723 0.067072 +v 0.013514 1.512714 0.064157 +v 0.014372 1.491968 0.076867 +v 0.015789 1.493572 0.075165 +v 0.011991 1.493152 0.080609 +v 0.013201 1.495495 0.080068 +v 0.003688 1.531722 0.062648 +v 0.002148 1.485462 0.075849 +v 0.002408 1.484602 0.075445 +v 0.001814 1.486575 0.077679 +v 0.022510 1.586616 -0.113415 +v 0.023000 1.599213 -0.102898 +v 0.022139 1.613460 -0.081347 +v 0.019834 1.618165 -0.069601 +v 0.005695 1.468502 0.076511 +v 0.005296 1.470999 0.076289 +v 0.012858 1.464687 0.059653 +v 0.007373 1.464960 0.061179 +v 0.006975 1.463108 0.065761 +v 0.012269 1.462964 0.064467 +v 0.016278 1.462759 0.062362 +v 0.017223 1.464311 0.057602 +v 0.013211 1.465957 0.057083 +v 0.007475 1.466294 0.058483 +v 0.011800 1.461943 0.068868 +v 0.006582 1.462229 0.070956 +v 0.006449 1.463859 0.073683 +v 0.011854 1.463360 0.071100 +v 0.018283 1.481390 0.065162 +v 0.014145 1.482119 0.067466 +v 0.009947 1.482343 0.070802 +v 0.006663 1.482219 0.073355 +v 0.006070 1.484310 0.073705 +v 0.008634 1.484916 0.071533 +v 0.005846 1.485250 0.074051 +v 0.008425 1.485773 0.072107 +v 0.008365 1.486729 0.072615 +v 0.008909 1.488251 0.072763 +v 0.007010 1.488079 0.074018 +v 0.007500 1.489300 0.073600 +v 0.005805 1.486238 0.074278 +v 0.004053 1.510006 0.078946 +v 0.003955 1.513584 0.076221 +v 0.009855 1.472515 0.074138 +v 0.005009 1.472999 0.075408 +v 0.004315 1.476815 0.074624 +v 0.008666 1.476809 0.073279 +v 0.013211 1.476061 0.071006 +v 0.014910 1.470831 0.071677 +v 0.002734 1.483714 0.075107 +v 0.010300 1.470400 0.074600 +v 0.010703 1.467995 0.074513 +v 0.015502 1.468576 0.071979 +v 0.015800 1.466400 0.071600 +v 0.019602 1.468322 0.068491 +v 0.018439 1.474099 0.068134 +v 0.023987 1.472042 0.064669 +v 0.023470 1.465647 0.065227 +v 0.031113 1.462468 0.060031 +v 0.026531 1.460082 0.060975 +v 0.026577 1.461421 0.061328 +v 0.026234 1.462618 0.062158 +v 0.030104 1.465556 0.061112 +v 0.034404 1.463254 0.058475 +v 0.033149 1.467775 0.059705 +v 0.027971 1.468600 0.062562 +v 0.025395 1.463939 0.063270 +v 0.025250 1.461104 0.061542 +v 0.024309 1.460885 0.061344 +v 0.024976 1.461816 0.062298 +v 0.024034 1.461246 0.062012 +v 0.024386 1.462489 0.063348 +v 0.023558 1.461583 0.062874 +v 0.022612 1.462197 0.064256 +v 0.023177 1.463590 0.064981 +v 0.022133 1.460920 0.059768 +v 0.021168 1.460992 0.060855 +v 0.021285 1.460964 0.062165 +v 0.022204 1.460838 0.060987 +v 0.022757 1.460837 0.059067 +v 0.022727 1.460779 0.060310 +v 0.022731 1.461571 0.056693 +v 0.021763 1.461781 0.057508 +v -0.045276 1.418919 -0.006497 +v -0.051316 1.421097 -0.020493 +v 0.023289 1.460690 0.058334 +v 0.023330 1.460718 0.059396 +v 0.023394 1.460716 0.060836 +v 0.023251 1.460914 0.061284 +v 0.022758 1.461069 0.062036 +v 0.021882 1.461334 0.063176 +v 0.015798 1.464470 0.070396 +v 0.019424 1.464378 0.068200 +v 0.019113 1.462802 0.066769 +v 0.015646 1.462491 0.068328 +v 0.018697 1.461683 0.065172 +v 0.017785 1.465453 0.055196 +v 0.015373 1.461586 0.066485 +v 0.020861 1.463425 0.055138 +v 0.021815 1.464456 0.052646 +v 0.019799 1.462183 0.059397 +v 0.023776 1.462261 0.052914 +v 0.022746 1.462430 0.053473 +v 0.024706 1.463135 0.050424 +v 0.023488 1.463681 0.051401 +v 0.018585 1.461130 0.063357 +v 0.019687 1.466161 0.068684 +v 0.011193 1.465708 0.073182 +v 0.006008 1.466276 0.075328 +v -0.034601 1.509504 0.051197 +v -0.033968 1.506854 0.052483 +v -0.030002 1.508004 0.053112 +v -0.030801 1.510322 0.051979 +v 0.004764 1.502917 0.085468 +v 0.004430 1.506626 0.081984 +v 0.022824 1.460592 0.061246 +v 0.009000 1.380900 0.008200 +v -0.075600 1.495000 -0.023600 +v -0.074983 1.495799 -0.022522 +v -0.084383 1.516205 -0.047117 +v 0.025820 1.458897 0.061092 +v 0.023838 1.454565 0.051597 +v 0.022628 1.458084 0.055319 +v 0.030940 1.449785 0.057855 +v 0.026597 1.445592 0.060153 +v 0.024565 1.449667 0.061995 +v 0.028277 1.452952 0.060029 +v 0.021911 1.455732 0.064216 +v 0.024465 1.457488 0.062231 +v -0.087769 1.520281 -0.042209 +v 0.023209 1.458786 0.062690 +v 0.020872 1.457806 0.064774 +v 0.019961 1.459373 0.065056 +v 0.022233 1.459817 0.062668 +v 0.017872 1.461109 0.063406 +v 0.013488 1.461506 0.066143 +v 0.012943 1.457844 0.061366 +v 0.017612 1.457529 0.058998 +v 0.021527 1.457717 0.056493 +v 0.021070 1.460876 0.060391 +v -0.082911 1.523192 -0.041995 +v -0.081484 1.525319 -0.037312 +v -0.080076 1.523708 -0.036314 +v -0.081315 1.521297 -0.040291 +v 0.018523 1.461113 0.064244 +v 0.021342 1.460835 0.061409 +v 0.013977 1.461497 0.067282 +v 0.018900 1.383500 0.004700 +v 0.021710 1.460566 0.062261 +v 0.019048 1.460695 0.064671 +v 0.014749 1.460724 0.068045 +v 0.015854 1.458903 0.068665 +v 0.016792 1.456693 0.068793 +v 0.017461 1.453899 0.067856 +v 0.019149 1.446712 0.065034 +v 0.020456 1.441594 0.063824 +v 0.013229 1.444892 0.067749 +v 0.014176 1.439699 0.067357 +v 0.012333 1.452486 0.071105 +v 0.012051 1.456002 0.072665 +v 0.011198 1.458638 0.072223 +v 0.010410 1.460704 0.071129 +v 0.003264 1.481942 0.074712 +v 0.005689 1.488011 0.075291 +v 0.004510 1.488195 0.077505 +v 0.007868 1.491520 0.082722 +v 0.001736 1.487415 0.079846 +v 0.010492 1.492952 0.082279 +v 0.008765 1.492452 0.083652 +v 0.009522 1.493885 0.084514 +v 0.010810 1.494494 0.083310 +v 0.007182 1.491909 0.084782 +v 0.008500 1.493700 0.085400 +v 0.002902 1.491075 0.086336 +v 0.003721 1.494335 0.088102 +v 0.004650 1.499551 0.087718 +v 0.004111 1.496344 0.088521 +v 0.009882 1.495499 0.084882 +v 0.011411 1.497274 0.083159 +v -0.090800 1.520100 -0.042800 +v 0.011743 1.500268 0.080871 +v 0.013890 1.498099 0.077459 +v 0.010602 1.625284 -0.027469 +v 0.009656 1.461739 0.070112 +v 0.008742 1.461758 0.068290 +v -0.075382 1.482188 -0.024203 +v -0.084040 1.509298 -0.036335 +v 0.012774 1.447697 0.054662 +v 0.012805 1.452064 0.057064 +v 0.008059 1.451891 0.058520 +v -0.080484 1.525822 -0.034804 +v -0.083919 1.527606 -0.035488 +v 0.008007 1.447711 0.056270 +v 0.004812 1.461758 0.069092 +v -0.090591 1.497096 -0.045921 +v -0.091688 1.518505 -0.044615 +v -0.089812 1.517295 -0.043486 +v -0.081321 1.518998 -0.029088 +v -0.078895 1.491603 -0.038661 +v -0.085402 1.491588 -0.036554 +v -0.084007 1.489086 -0.035109 +v -0.078399 1.489817 -0.037774 +v -0.073444 1.504694 -0.032820 +v 0.004543 1.458037 0.063816 +v 0.008262 1.458084 0.063082 +v 0.005072 1.461835 0.071297 +v 0.005589 1.460631 0.072613 +v 0.006193 1.458494 0.073986 +v 0.004333 1.451771 0.059202 +v 0.004401 1.447435 0.056949 +v -0.071111 1.486897 -0.016909 +v 0.022224 1.453109 0.052652 +v -0.081578 1.475997 -0.030012 +v -0.082714 1.477004 -0.032189 +v -0.031157 1.465431 -0.096619 +v -0.034883 1.475714 -0.102887 +v -0.092400 1.496600 -0.049200 +v 0.022834 1.449420 0.050597 +v 0.017680 1.452071 0.055120 +v 0.018045 1.448223 0.052946 +v 0.007817 1.439111 0.069698 +v 0.007074 1.444141 0.069216 +v 0.006581 1.455345 0.074334 +v 0.006668 1.451550 0.072522 +v 0.022923 1.607438 -0.092701 +v 0.062856 1.576001 0.009824 +v 0.061268 1.569757 0.017690 +v -0.083202 1.522130 -0.035985 +v 0.055147 1.577388 0.024227 +v 0.056734 1.582384 0.017099 +v 0.063470 1.583142 0.001913 +v 0.057200 1.588300 0.009600 +v 0.040530 1.616390 -0.045728 +v 0.041088 1.616383 -0.031901 +v 0.021913 1.622737 -0.028613 +v 0.035329 1.615763 -0.059197 +v 0.047797 1.607383 -0.067962 +v 0.050017 1.610884 -0.049176 +v 0.049914 1.611324 -0.034400 +v -0.077509 1.481801 -0.025290 +v -0.077217 1.476111 -0.024483 +v -0.075527 1.476613 -0.022791 +v -0.078213 1.512608 -0.033384 +v 0.025319 1.417296 -0.086431 +v 0.053341 1.537593 -0.109735 +v 0.048594 1.610887 -0.021003 +v 0.040400 1.615200 -0.018500 +v 0.039869 1.612797 -0.006457 +v 0.047253 1.609196 -0.009635 +v 0.021703 1.620912 -0.014487 +v 0.010484 1.623294 -0.012843 +v 0.019518 1.501968 -0.122785 +v 0.003912 1.516946 0.073584 +v 0.049036 1.451832 -0.071080 +v 0.058265 1.451117 -0.053166 +v 0.051200 1.402600 -0.033800 +v 0.072990 1.474329 -0.033592 +v 0.072822 1.474732 -0.034523 +v 0.057824 1.437788 -0.035288 +v 0.061932 1.450619 -0.035689 +v 0.039174 1.452431 -0.082310 +v 0.082400 1.485383 -0.044422 +v 0.082903 1.489094 -0.045618 +v 0.083405 1.484800 -0.043789 +v 0.084115 1.488697 -0.045292 +v 0.083998 1.492895 -0.046032 +v 0.083879 1.483300 -0.042725 +v 0.076924 1.521442 -0.034424 +v 0.078187 1.523278 -0.033695 +v -0.080792 1.483473 -0.043245 +v -0.081006 1.485539 -0.044522 +v 0.072100 1.473090 -0.029303 +v 0.072098 1.473611 -0.030997 +v -0.063300 1.497600 -0.029200 +v 0.071500 1.473300 -0.030200 +v 0.071200 1.472900 -0.028900 +v 0.071696 1.472309 -0.027792 +v 0.071001 1.472380 -0.027818 +v 0.076624 1.536198 -0.028498 +v 0.070000 1.472400 -0.031600 +v 0.072088 1.474257 -0.034077 +v 0.071908 1.473871 -0.032409 +v 0.071000 1.473200 -0.031100 +v 0.070412 1.472386 -0.029103 +v 0.070191 1.471713 -0.027395 +v 0.071000 1.471300 -0.026800 +v -0.082300 1.478600 -0.039700 +v -0.078492 1.473495 -0.034110 +v -0.054580 1.424205 -0.033907 +v -0.053617 1.426598 -0.048816 +v -0.052512 1.415702 -0.047314 +v -0.052297 1.412202 -0.033512 +v -0.072400 1.500500 -0.017900 +v -0.072720 1.493501 -0.019884 +v -0.072078 1.492403 -0.018405 +v 0.084111 1.482503 -0.042789 +v 0.076500 1.472200 -0.031600 +v -0.022133 1.402373 0.012551 +v -0.018991 1.390401 0.007792 +v 0.079079 1.513709 -0.040420 +v 0.079508 1.511895 -0.041894 +v 0.081688 1.513702 -0.043406 +v 0.081123 1.515993 -0.041982 +v 0.060712 1.487981 -0.084226 +v 0.062551 1.497993 -0.088895 +v 0.012694 1.418793 -0.090986 +v 0.012984 1.431500 -0.091585 +v 0.076230 1.530994 -0.074442 +v 0.078600 1.515400 -0.038900 +v 0.080687 1.517803 -0.040507 +v 0.082899 1.493300 -0.046163 +v 0.077782 1.514596 -0.038896 +v 0.078304 1.512904 -0.040408 +v 0.081700 1.519700 -0.042100 +v 0.082200 1.517500 -0.043700 +v 0.082816 1.515000 -0.045088 +v 0.078788 1.510996 -0.041897 +v -0.071080 1.487414 -0.013506 +v -0.070164 1.486779 -0.003273 +v -0.071773 1.502108 -0.003201 +v -0.072151 1.496898 -0.012896 +v 0.077321 1.519308 -0.041011 +v 0.080072 1.561101 -0.051900 +v 0.079500 1.554700 -0.065300 +v 0.077000 1.577000 -0.055600 +v 0.076100 1.571400 -0.070200 +v 0.071739 1.564758 -0.085415 +v 0.075100 1.546934 -0.080535 +v 0.076756 1.521093 -0.035588 +v 0.079218 1.524487 -0.034190 +v 0.064046 1.588845 -0.005609 +v 0.069100 1.583700 -0.012500 +v 0.057334 1.593424 0.002717 +v 0.057190 1.597993 -0.003706 +v 0.063487 1.594294 -0.012304 +v 0.070644 1.587414 -0.023990 +v 0.078576 1.553401 -0.037404 +v 0.078229 1.566908 -0.038395 +v 0.075235 1.571187 -0.025413 +v -0.059961 1.533198 0.030682 +v -0.061666 1.533495 0.026588 +v -0.061933 1.524304 0.026724 +v -0.059859 1.525661 0.030102 +v 0.074960 1.582288 -0.040605 +v 0.066600 1.595600 -0.030100 +v 0.070333 1.591526 -0.044305 +v 0.059609 1.603311 -0.033797 +v 0.061738 1.601056 -0.048113 +v 0.061583 1.597869 -0.063692 +v 0.071969 1.587274 -0.059096 +v 0.061700 1.599100 -0.018200 +v 0.055613 1.602114 -0.008857 +v 0.056700 1.604800 -0.021500 +v 0.053364 1.605595 -0.013183 +v 0.073321 1.572998 -0.018597 +v 0.065872 1.467058 -0.027795 +v 0.066067 1.467582 -0.022798 +v -0.020105 1.589077 0.046472 +v -0.009713 1.590238 0.048897 +v -0.009944 1.597050 0.042825 +v -0.020552 1.595691 0.040151 +v 0.069850 1.479001 -0.015004 +v -0.036783 1.483221 -0.106562 +v -0.038502 1.492891 -0.110712 +v -0.018483 1.490152 -0.117701 +v -0.017417 1.481271 -0.113053 +v 0.067976 1.503604 0.017668 +v 0.068022 1.515690 0.015397 +v 0.070799 1.507799 0.005481 +v 0.069552 1.493504 0.006914 +v -0.020717 1.610835 0.018436 +v -0.010055 1.612720 0.020935 +v -0.010178 1.617029 0.011196 +v -0.021004 1.614887 0.009079 +v -0.051849 1.506984 0.042450 +v -0.053308 1.500902 0.042309 +v -0.049500 1.500600 0.045600 +v -0.048611 1.506682 0.045109 +v 0.066865 1.528807 0.013619 +v 0.070014 1.521399 0.003997 +v 0.069755 1.535201 0.001517 +v 0.066276 1.542800 0.012494 +v 0.063123 1.558544 -0.099907 +v 0.065392 1.542129 -0.097712 +v -0.077083 1.471595 -0.021914 +v -0.075873 1.472489 -0.020821 +v 0.065894 1.530249 -0.096000 +v 0.048710 1.559533 0.042020 +v -0.010363 1.620560 -0.000194 +v -0.021444 1.618288 -0.001890 +v 0.022210 1.577716 -0.119229 +v 0.047881 1.581782 0.031191 +v 0.055375 1.577878 -0.100584 +v 0.000000 1.432410 -0.093127 +v 0.042198 1.583290 -0.106886 +v 0.071219 1.581908 -0.073609 +v 0.068054 1.575876 -0.086371 +v 0.060075 1.568989 -0.100537 +v 0.065163 1.514915 -0.094089 +v 0.047764 1.605853 -0.002383 +v 0.056288 1.527306 0.035388 +v 0.055400 1.522900 0.034700 +v 0.056800 1.532000 0.036900 +v 0.053710 1.518407 0.036312 +v 0.016988 1.511816 0.059509 +v 0.016523 1.509829 0.061527 +v 0.016060 1.507311 0.063477 +v 0.019643 1.507148 0.059252 +v 0.018886 1.504168 0.061098 +v 0.012688 1.507683 0.068746 +v 0.013226 1.510263 0.066357 +v 0.015327 1.504867 0.065498 +v 0.014758 1.501776 0.067443 +v 0.012525 1.504630 0.071081 +v 0.018383 1.489537 0.064268 +v 0.019566 1.494092 0.062319 +v 0.017300 1.498299 0.064286 +v 0.022379 1.501260 0.059636 +v 0.021217 1.498003 0.061176 +v 0.018101 1.501539 0.062795 +v 0.023651 1.504578 0.057693 +v 0.015512 1.498333 0.069921 +v 0.016336 1.495285 0.072852 +v 0.013197 1.501347 0.074285 +v 0.011289 1.503443 0.077455 +v 0.010513 1.506879 0.074245 +v 0.020300 1.509300 0.057400 +v 0.024688 1.506991 0.055978 +v 0.024313 1.494467 0.060252 +v 0.028338 1.491184 0.059583 +v 0.026548 1.498726 0.058604 +v 0.030377 1.496054 0.058135 +v 0.027823 1.502213 0.056766 +v 0.031864 1.499784 0.056280 +v 0.031980 1.487707 0.059208 +v 0.034944 1.483875 0.058162 +v 0.037789 1.479097 0.056553 +v 0.037765 1.488714 0.056258 +v 0.040839 1.483470 0.054215 +v 0.039779 1.493485 0.054171 +v 0.043257 1.488620 0.051763 +v -0.013719 1.517008 0.059295 +v -0.014127 1.518765 0.056494 +v -0.017673 1.515705 0.055114 +v -0.017351 1.513871 0.057445 +v -0.007369 1.564131 0.060202 +v -0.008331 1.571458 0.057659 +v -0.017301 1.571015 0.055837 +v -0.015753 1.563817 0.058794 +v 0.034514 1.492718 0.057558 +v 0.036283 1.496846 0.055538 +v 0.033157 1.503343 0.054269 +v 0.029010 1.505211 0.054822 +v 0.041601 1.504292 0.050690 +v 0.041085 1.498898 0.052381 +v 0.037317 1.501291 0.053567 +v 0.037974 1.505637 0.051703 +v 0.045069 1.495056 0.049656 +v 0.045400 1.502500 0.048600 +v 0.045080 1.507384 0.047479 +v 0.031897 1.513496 0.050390 +v 0.027202 1.514204 0.051209 +v 0.035292 1.513223 0.049379 +v 0.041527 1.508144 0.049267 +v 0.038279 1.508792 0.050353 +v 0.049200 1.514300 0.041600 +v 0.046800 1.513600 0.043500 +v 0.041300 1.513100 0.047100 +v 0.038537 1.513112 0.048362 +v 0.044195 1.513295 0.045391 +v 0.022901 1.515905 0.051410 +v 0.018571 1.517968 0.051684 +v 0.055257 1.438999 -0.050771 +v 0.010308 1.510155 0.071901 +v 0.010478 1.513105 0.069505 +v 0.015156 1.533977 0.054304 +v 0.013596 1.531070 0.053522 +v 0.006923 1.531511 0.060081 +v 0.019158 1.537755 0.056855 +v 0.015489 1.520401 0.051954 +v -0.021739 1.513091 0.053661 +v -0.021012 1.511308 0.055406 +v 0.013800 1.522800 0.052200 +v 0.013178 1.525174 0.052712 +v 0.012942 1.528094 0.053113 +v -0.010005 1.602932 0.036161 +v -0.020698 1.601402 0.033405 +v -0.020840 1.621971 -0.050662 +v -0.021361 1.622750 -0.042579 +v -0.009988 1.625236 -0.042999 +v -0.011010 1.623798 -0.055177 +v 0.030114 1.551419 0.058036 +v 0.026720 1.545266 0.059766 +v 0.058325 1.563672 0.026481 +v 0.061625 1.555341 0.023089 +v 0.051668 1.546035 0.044932 +v 0.054700 1.541900 0.041900 +v 0.056409 1.536994 0.039107 +v 0.063211 1.544202 0.020706 +v 0.064120 1.532200 0.020511 +v 0.064932 1.520906 0.021512 +v -0.071022 1.498660 -0.072359 +v -0.074708 1.498310 -0.057287 +v -0.076813 1.509999 -0.058491 +v -0.074411 1.514719 -0.074802 +v 0.049122 1.592694 0.017549 +v -0.033028 1.407859 0.005141 +v -0.030039 1.395778 0.000929 +v 0.000000 1.419295 -0.092376 +v 0.048919 1.597614 0.010981 +v 0.048889 1.587381 0.024404 +v 0.039547 1.609385 0.002641 +v 0.039647 1.605670 0.010726 +v 0.048516 1.602029 0.004404 +v 0.040184 1.601257 0.017716 +v 0.040667 1.596353 0.024229 +v 0.040410 1.591110 0.031115 +v 0.039626 1.585244 0.037833 +v 0.037606 1.577249 0.044470 +v 0.046691 1.439449 -0.068449 +v 0.008002 1.500332 0.070494 +v 0.007296 1.500479 0.071202 +v -0.053520 1.554444 0.037880 +v -0.055167 1.559187 0.033299 +v -0.058439 1.552305 0.030019 +v -0.056797 1.548534 0.034888 +v 0.006915 1.499983 0.069926 +v 0.006208 1.500093 0.070605 +v 0.005973 1.498711 0.070176 +v 0.007189 1.491278 0.072688 +v 0.005704 1.493209 0.071394 +v 0.005327 1.496700 0.070331 +v 0.068207 1.472506 -0.017095 +v -0.005887 1.552131 0.063546 +v -0.013242 1.551916 0.062647 +v -0.011428 1.545963 0.063453 +v -0.005203 1.545936 0.064108 +v -0.059440 1.518629 0.030726 +v -0.062023 1.515611 0.028312 +v -0.060821 1.508001 0.032915 +v -0.058003 1.511984 0.034409 +v -0.054598 1.507965 0.039780 +v -0.056600 1.502200 0.039300 +v -0.018904 1.579964 0.052345 +v -0.009112 1.580880 0.054387 +v -0.060600 1.543300 0.027500 +v -0.058985 1.541133 0.032384 +v -0.010699 1.519994 0.061739 +v -0.011514 1.521322 0.058249 +v -0.007996 1.525146 0.059987 +v -0.003912 1.524971 0.065569 +v -0.003648 1.528717 0.063754 +v -0.007046 1.528482 0.060248 +v -0.033993 1.562933 0.052199 +v -0.035634 1.569459 0.048664 +v -0.043291 1.567819 0.043458 +v -0.041735 1.561705 0.047287 +v -0.020698 1.606310 0.026348 +v -0.010005 1.608005 0.029016 +v -0.004139 1.537948 0.062980 +v -0.008537 1.537917 0.061632 +v -0.007473 1.534421 0.060282 +v -0.003950 1.534628 0.062399 +v -0.025500 1.509400 0.054200 +v -0.026221 1.511402 0.052919 +v -0.068924 1.470783 -0.026772 +v -0.070063 1.470235 -0.025719 +v -0.073354 1.517300 -0.015507 +v -0.072714 1.507101 -0.013696 +v -0.071736 1.514897 -0.004110 +v -0.071742 1.527400 -0.006595 +v -0.073300 1.538600 -0.010500 +v -0.074599 1.546926 -0.016268 +v -0.075720 1.531749 -0.022655 +v -0.074613 1.525899 -0.018098 +v -0.049669 1.418009 -0.059856 +v -0.048608 1.427595 -0.062745 +v -0.004078 1.522301 0.068552 +v -0.004027 1.519664 0.071163 +v -0.020495 1.529703 -0.128086 +v -0.019992 1.516906 -0.126383 +v -0.040609 1.520993 -0.118122 +v -0.040804 1.533198 -0.119411 +v -0.068436 1.488481 -0.068879 +v -0.072751 1.489694 -0.054914 +v -0.010892 1.495095 0.074194 +v -0.007594 1.499713 0.069461 +v -0.007789 1.496199 0.068918 +v -0.007417 1.498889 0.069265 +v -0.010944 1.492053 0.076099 +v -0.013247 1.491279 0.077394 +v -0.008600 1.492389 0.069127 +v -0.007700 1.492600 0.069700 +v -0.006998 1.496497 0.069211 +v -0.008729 1.500115 0.070107 +v -0.001944 1.488386 0.082348 +v -0.002499 1.489875 0.085125 +v -0.006506 1.490990 0.084097 +v -0.005006 1.489613 0.082093 +v -0.005458 1.499077 0.070745 +v -0.004491 1.496811 0.071589 +v -0.005310 1.494685 0.078792 +v -0.007206 1.498428 0.074823 +v -0.007494 1.500437 0.072081 +v -0.007200 1.495300 0.078000 +v -0.006200 1.489300 0.075200 +v -0.009008 1.495404 0.076405 +v -0.081106 1.485086 -0.030299 +v -0.055353 1.438827 -0.014305 +v -0.061802 1.452633 -0.021411 +v -0.061800 1.451269 -0.026789 +v -0.056475 1.436705 -0.023388 +v -0.080800 1.511900 -0.034700 +v -0.066012 1.558296 0.012561 +v -0.067698 1.568962 0.002878 +v -0.072355 1.557904 -0.008158 +v -0.071371 1.547902 -0.002509 +v -0.068379 1.577790 -0.004909 +v -0.073269 1.567598 -0.015308 +v -0.076018 1.556001 -0.024296 +v -0.077911 1.536200 -0.036897 +v -0.042165 1.521251 0.045613 +v -0.042412 1.521112 0.045815 +v -0.040900 1.520800 0.047100 +v -0.040900 1.520900 0.046900 +v -0.041684 1.521291 0.044982 +v -0.040343 1.520792 0.046058 +v -0.042542 1.521718 0.044010 +v -0.043095 1.521563 0.044535 +v -0.043365 1.521386 0.044713 +v -0.024933 1.521899 0.048906 +v -0.025588 1.522170 0.048171 +v -0.028191 1.521207 0.048430 +v -0.027547 1.521253 0.049572 +v -0.024720 1.521709 0.049378 +v -0.027503 1.521018 0.050005 +v -0.028678 1.523900 0.042557 +v -0.028204 1.524236 0.042492 +v -0.029466 1.523482 0.042681 +v -0.023235 1.523973 0.046674 +v -0.023291 1.524974 0.046778 +v -0.027982 1.525037 0.042609 +v -0.027969 1.524510 0.042490 +v -0.023469 1.523441 0.046801 +v -0.021958 1.523277 0.046966 +v -0.021129 1.523661 0.046653 +v -0.021224 1.524972 0.046884 +v -0.032700 1.520100 0.050100 +v -0.032897 1.519399 0.050184 +v -0.028200 1.519704 0.050417 +v -0.027801 1.520500 0.050288 +v -0.032498 1.520485 0.049893 +v -0.035900 1.520600 0.049000 +v -0.035996 1.520197 0.049188 +v -0.036104 1.519501 0.049213 +v -0.024901 1.520591 0.050179 +v -0.024799 1.521400 0.049815 +v -0.036100 1.518900 0.049200 +v -0.033100 1.518800 0.050100 +v -0.028400 1.519100 0.050400 +v -0.024900 1.520200 0.050300 +v -0.022180 1.521429 0.049697 +v -0.023262 1.521579 0.049651 +v -0.033098 1.518102 0.049889 +v -0.033002 1.517298 0.049711 +v -0.028299 1.517601 0.050288 +v -0.028401 1.518399 0.050319 +v -0.036100 1.518200 0.048900 +v -0.036000 1.517400 0.048700 +v -0.044439 1.521538 0.043123 +v -0.044900 1.522000 0.042200 +v -0.044889 1.521497 0.042391 +v -0.044613 1.521100 0.042908 +v -0.047300 1.519000 0.040400 +v -0.048300 1.520100 0.039500 +v -0.050100 1.519300 0.038700 +v -0.048907 1.518104 0.039809 +v -0.056681 1.509389 0.037056 +v -0.051190 1.515294 0.039686 +v -0.052600 1.516500 0.037900 +v -0.044000 1.521300 0.043900 +v -0.043400 1.521000 0.044800 +v -0.043900 1.521600 0.043800 +v -0.044314 1.521924 0.042872 +v -0.044184 1.520701 0.043691 +v -0.043510 1.520399 0.044707 +v -0.042500 1.520800 0.045900 +v -0.042589 1.520103 0.045890 +v -0.041000 1.519800 0.047200 +v -0.040900 1.520500 0.047200 +v -0.038827 1.520294 0.048207 +v -0.039096 1.520691 0.047990 +v -0.038924 1.519591 0.048198 +v -0.041100 1.519200 0.047000 +v -0.039015 1.518991 0.048107 +v -0.042600 1.519500 0.045600 +v -0.043590 1.519902 0.044393 +v -0.044314 1.520298 0.043307 +v -0.044900 1.520700 0.042500 +v -0.045300 1.521300 0.041900 +v -0.044600 1.519800 0.042800 +v -0.045200 1.519100 0.042100 +v -0.044000 1.518600 0.043400 +v -0.043727 1.519374 0.043986 +v -0.045400 1.520300 0.041900 +v -0.046200 1.519700 0.041100 +v -0.042700 1.519000 0.045200 +v -0.042700 1.518300 0.044800 +v -0.041000 1.517900 0.046300 +v -0.041092 1.518606 0.046690 +v -0.039015 1.518382 0.047807 +v -0.039024 1.517589 0.047472 +v -0.032398 1.520499 0.049611 +v -0.032070 1.520462 0.048411 +v -0.035568 1.520277 0.047815 +v -0.035900 1.520600 0.048700 +v -0.039100 1.520700 0.047800 +v -0.038514 1.520381 0.046986 +v -0.035403 1.520177 0.046662 +v -0.033667 1.522493 0.042517 +v -0.035009 1.522519 0.042154 +v -0.038077 1.520272 0.045916 +v -0.032250 1.520456 0.047158 +v -0.032125 1.522658 0.042749 +v -0.028946 1.521295 0.047200 +v -0.030633 1.523025 0.042787 +v -0.026318 1.522169 0.047391 +v -0.033945 1.532789 0.049154 +v -0.033987 1.533023 0.049380 +v -0.038500 1.532400 0.048800 +v -0.038100 1.532100 0.048400 +v -0.051553 1.496317 -0.100345 +v -0.052901 1.510673 -0.105774 +v -0.040195 1.505800 -0.115183 +v -0.040900 1.529700 0.047500 +v -0.040908 1.530602 0.047110 +v -0.043300 1.529300 0.045900 +v -0.043109 1.528498 0.046011 +v -0.040898 1.528786 0.047906 +v -0.042890 1.527512 0.046186 +v -0.038200 1.530000 0.049500 +v -0.038200 1.531000 0.049000 +v -0.038100 1.531800 0.048500 +v -0.042119 1.526072 0.042035 +v -0.041362 1.527066 0.042705 +v -0.041916 1.526935 0.044139 +v -0.042956 1.526131 0.042937 +v -0.042757 1.525369 0.041438 +v -0.043602 1.525370 0.042054 +v -0.037542 1.525216 0.039867 +v -0.037198 1.525606 0.040151 +v -0.036660 1.526085 0.040544 +v -0.037714 1.524891 0.039697 +v -0.037779 1.524597 0.039632 +v -0.037758 1.524316 0.039661 +v -0.037669 1.524040 0.039811 +v -0.058518 1.493799 0.036810 +v -0.059081 1.504398 0.036285 +v -0.061300 1.496500 0.033300 +v -0.043599 1.521847 0.043556 +v -0.044055 1.522221 0.042659 +v -0.043015 1.522082 0.043129 +v -0.043462 1.522488 0.042348 +v -0.044553 1.522761 0.041803 +v -0.044927 1.522554 0.041844 +v -0.041056 1.521240 0.044204 +v -0.036673 1.522964 0.041275 +v -0.037083 1.523262 0.040834 +v -0.041746 1.521873 0.043317 +v -0.039788 1.520688 0.045084 +v -0.035983 1.522699 0.041727 +v -0.037308 1.523509 0.040446 +v -0.037510 1.523762 0.040093 +v -0.042057 1.522240 0.042582 +v -0.042503 1.522667 0.041859 +v -0.043826 1.523087 0.041769 +v -0.043025 1.523723 0.040992 +v -0.043098 1.524246 0.040972 +v -0.044011 1.523655 0.041586 +v -0.044072 1.524168 0.041487 +v -0.042854 1.523208 0.041263 +v -0.043014 1.524789 0.041098 +v -0.043930 1.524704 0.041661 +v -0.045170 1.522128 0.041830 +v -0.045172 1.522916 0.041508 +v -0.045689 1.523909 0.041025 +v -0.045611 1.522137 0.041396 +v -0.046307 1.522104 0.040817 +v -0.045900 1.521000 0.041200 +v -0.046700 1.524488 0.040798 +v -0.048114 1.524818 0.040328 +v -0.047605 1.521996 0.040014 +v -0.046900 1.520700 0.040400 +v -0.044824 1.523362 0.041444 +v -0.044987 1.523980 0.041208 +v -0.046091 1.525512 0.041885 +v -0.046900 1.526300 0.041900 +v -0.045406 1.524990 0.041911 +v -0.044897 1.525716 0.043091 +v -0.045400 1.526400 0.043200 +v -0.046000 1.527100 0.043200 +v -0.044489 1.527303 0.044590 +v -0.044900 1.528100 0.044600 +v -0.044112 1.526492 0.044515 +v -0.044792 1.524756 0.041778 +v -0.044314 1.525441 0.042693 +v -0.043559 1.526182 0.043934 +v -0.042506 1.526800 0.045709 +v -0.040690 1.527910 0.047582 +v -0.039941 1.527889 0.045733 +v -0.038000 1.529200 0.049200 +v -0.037203 1.528804 0.047236 +v -0.034542 1.533709 0.050445 +v -0.039499 1.533215 0.049975 +v -0.036807 1.528788 0.045465 +v -0.034347 1.526891 0.041805 +v -0.032772 1.526987 0.042325 +v -0.033546 1.528876 0.046426 +v -0.023838 1.525682 0.047159 +v -0.024615 1.526505 0.047491 +v -0.028529 1.525780 0.042811 +v -0.028182 1.525373 0.042703 +v -0.022456 1.525747 0.047856 +v -0.023742 1.526545 0.048365 +v -0.027850 1.528251 0.047514 +v -0.029964 1.526652 0.042905 +v -0.029085 1.526235 0.042905 +v -0.026190 1.527374 0.047403 +v -0.027281 1.528690 0.049325 +v -0.025103 1.527452 0.048740 +v -0.033744 1.529320 0.048332 +v -0.021800 1.564300 -0.125112 +v -0.021390 1.549196 -0.128268 +v -0.041100 1.551200 -0.119600 +v -0.041000 1.564300 -0.117100 +v -0.039290 1.528051 0.044190 +v -0.035655 1.526552 0.041178 +v -0.051007 1.565829 -0.109698 +v -0.050153 1.574170 -0.107041 +v -0.041409 1.575703 -0.112304 +v -0.037050 1.439676 -0.079925 +v -0.026375 1.429290 -0.086093 +v -0.020443 1.525555 0.049023 +v -0.022090 1.526874 0.049265 +v -0.019381 1.524425 0.048883 +v -0.018804 1.524338 0.049175 +v -0.019820 1.525679 0.049223 +v -0.021236 1.527039 0.049389 +v -0.024082 1.528063 0.049571 +v -0.023449 1.528355 0.049996 +v -0.026775 1.529813 0.050788 +v -0.026860 1.529186 0.050504 +v -0.034030 1.529944 0.050131 +v -0.034105 1.530682 0.050431 +v -0.026377 1.530509 0.050284 +v -0.022991 1.528811 0.049615 +v -0.025891 1.531275 0.049667 +v -0.022800 1.529700 0.049200 +v -0.033943 1.532420 0.049431 +v -0.034105 1.531621 0.049993 +v -0.022009 1.522235 0.049146 +v -0.019888 1.522635 0.049121 +v -0.022491 1.522472 0.048858 +v -0.020169 1.522855 0.048732 +v -0.023596 1.522765 0.047753 +v -0.019510 1.523334 0.048695 +v -0.018853 1.523205 0.049074 +v -0.024390 1.522876 0.047222 +v -0.019200 1.525800 0.049100 +v -0.018016 1.524253 0.049349 +v -0.018201 1.526310 0.048651 +v -0.017395 1.524492 0.049158 +v -0.020237 1.528365 0.048593 +v -0.020635 1.527357 0.048964 +v -0.017989 1.523129 0.049200 +v -0.018475 1.522629 0.049200 +v -0.017396 1.523127 0.049280 +v -0.017900 1.522496 0.049287 +v -0.024700 1.519600 0.050400 +v -0.024500 1.519000 0.050400 +v -0.021512 1.520977 0.049893 +v -0.021022 1.520599 0.049909 +v -0.032795 1.516401 0.049585 +v -0.035800 1.516500 0.048500 +v -0.032503 1.515300 0.049614 +v -0.035693 1.515294 0.048482 +v -0.027697 1.515798 0.050481 +v -0.028102 1.516702 0.050317 +v -0.029412 1.387797 -0.001384 +v -0.046000 1.518200 0.041600 +v -0.047200 1.517100 0.041300 +v -0.045392 1.516396 0.042790 +v -0.044509 1.517704 0.042911 +v -0.042900 1.517300 0.044400 +v -0.043309 1.515909 0.044414 +v -0.041000 1.515600 0.046000 +v -0.040900 1.516900 0.046000 +v -0.038919 1.516689 0.047177 +v -0.038722 1.515306 0.047242 +v -0.049300 1.521500 0.038900 +v -0.050591 1.524603 0.038686 +v -0.051200 1.520900 0.037800 +v -0.052905 1.524289 0.037006 +v -0.016797 1.527194 0.048968 +v -0.016432 1.524904 0.049054 +v -0.015300 1.527900 0.050300 +v -0.015200 1.525300 0.050100 +v -0.016200 1.530800 0.050800 +v -0.018103 1.529886 0.049322 +v -0.016702 1.523141 0.049381 +v -0.017301 1.522304 0.049412 +v -0.015612 1.523203 0.049817 +v -0.016513 1.521817 0.049816 +v -0.024099 1.518299 0.050487 +v -0.023694 1.517490 0.050592 +v -0.020550 1.520111 0.050065 +v -0.019827 1.519426 0.050302 +v -0.049954 1.486090 -0.095874 +v -0.053460 1.525713 -0.108355 +v -0.047153 1.537083 0.048674 +v -0.044799 1.534344 0.048966 +v -0.041146 1.535635 0.050758 +v -0.043109 1.539081 0.051229 +v -0.050240 1.540841 0.047395 +v -0.052685 1.537388 0.044750 +v -0.049920 1.534711 0.046178 +v -0.047487 1.532583 0.046972 +v -0.051300 1.527400 0.039700 +v -0.049306 1.527394 0.041107 +v -0.049400 1.529100 0.042600 +v -0.051400 1.529700 0.041500 +v -0.053700 1.527400 0.038000 +v -0.054100 1.530500 0.039900 +v -0.050911 1.531995 0.043813 +v -0.048706 1.530695 0.044709 +v -0.053767 1.533613 0.042372 +v -0.023810 1.535193 0.052318 +v -0.024621 1.533474 0.050880 +v -0.021502 1.531689 0.049858 +v -0.020094 1.532606 0.050483 +v -0.022472 1.536856 0.053894 +v -0.017898 1.533692 0.051907 +v -0.036404 1.539832 0.053434 +v -0.035572 1.536604 0.052091 +v -0.025594 1.531753 0.049356 +v -0.023502 1.530697 0.049184 +v -0.025447 1.531989 0.049401 +v -0.022900 1.530600 0.049100 +v -0.058944 1.585628 -0.090242 +v -0.061100 1.592200 -0.078300 +v -0.044568 1.602329 -0.084574 +v -0.043693 1.594392 -0.096197 +v -0.041000 1.531000 0.047100 +v -0.041600 1.531400 0.047600 +v -0.044100 1.530100 0.046400 +v -0.043500 1.529700 0.046000 +v -0.045300 1.528600 0.044700 +v -0.045998 1.529012 0.044988 +v -0.047100 1.528000 0.043400 +v -0.046494 1.527712 0.043387 +v -0.047100 1.527000 0.042300 +v -0.047706 1.526995 0.042008 +v -0.023200 1.531500 0.049500 +v -0.025342 1.532353 0.049786 +v -0.052443 1.554395 -0.110733 +v -0.045436 1.574694 0.038505 +v -0.052333 1.571092 0.032286 +v -0.050200 1.565000 0.037900 +v -0.042799 1.532208 0.048590 +v -0.045400 1.530900 0.047000 +v -0.047100 1.529700 0.045100 +v -0.048000 1.528600 0.043300 +v -0.048394 1.527705 0.042091 +v -0.071726 1.489597 -0.018397 +v -0.072300 1.489600 -0.019800 +v -0.082403 1.497500 -0.046021 +v -0.080609 1.503982 -0.045312 +v -0.079052 1.507506 -0.044008 +v -0.078100 1.518500 -0.029900 +v -0.081582 1.521655 -0.032839 +v -0.085888 1.480697 -0.037210 +v -0.082727 1.479003 -0.033181 +v -0.085882 1.481597 -0.037615 +v -0.089000 1.517700 -0.043700 +v -0.089700 1.515900 -0.045000 +v -0.090689 1.515510 -0.044722 +v -0.042993 1.466469 -0.086739 +v -0.047760 1.478256 -0.092516 +v -0.090400 1.513800 -0.046200 +v -0.074300 1.494200 -0.021900 +v -0.083479 1.497097 -0.046117 +v -0.085217 1.496703 -0.047579 +v -0.086211 1.491703 -0.047289 +v -0.085503 1.492007 -0.046781 +v -0.085486 1.486796 -0.045215 +v -0.084991 1.487411 -0.044990 +v -0.087400 1.484200 -0.040300 +v -0.088704 1.487908 -0.042783 +v -0.082840 1.522084 -0.034142 +v -0.082112 1.521223 -0.032776 +v -0.083570 1.521955 -0.034436 +v -0.075177 1.493002 -0.023111 +v -0.076500 1.516600 -0.029500 +v -0.075900 1.514300 -0.028300 +v -0.075700 1.514700 -0.028700 +v -0.071800 1.498104 -0.026083 +v -0.071802 1.498996 -0.026313 +v -0.072996 1.496503 -0.026061 +v -0.075410 1.495001 -0.024819 +v -0.069598 1.487587 -0.024692 +v -0.069300 1.486401 -0.026424 +v -0.069687 1.485404 -0.026018 +v -0.085515 1.527480 -0.038589 +v -0.075999 1.513302 -0.027984 +v -0.077199 1.514400 -0.028210 +v -0.077500 1.515700 -0.028600 +v -0.084313 1.521518 -0.034793 +v -0.077793 1.516688 -0.028928 +v -0.077100 1.516600 -0.028900 +v -0.078695 1.518295 -0.029809 +v -0.076700 1.516600 -0.029100 +v -0.077487 1.491398 -0.037513 +v -0.076038 1.491207 -0.035474 +v -0.073200 1.509900 -0.019400 +v -0.073700 1.508000 -0.021200 +v -0.081613 1.478503 -0.031092 +v -0.077071 1.514610 -0.039608 +v -0.076983 1.517291 -0.040993 +v -0.089989 1.492402 -0.044791 +v -0.083719 1.487422 -0.033473 +v -0.081400 1.486758 -0.031819 +v -0.085799 1.488493 -0.035214 +v -0.087406 1.491007 -0.036987 +v -0.073275 1.507102 -0.031910 +v -0.084591 1.511302 -0.037217 +v -0.085725 1.509009 -0.038205 +v -0.082810 1.511499 -0.035689 +v -0.077116 1.520902 -0.039194 +v -0.076866 1.521086 -0.036895 +v -0.077427 1.516146 -0.037671 +v -0.076733 1.519477 -0.036354 +v -0.071294 1.491000 -0.025011 +v -0.071539 1.485011 -0.028169 +v -0.071376 1.487003 -0.028816 +v -0.072800 1.485000 -0.029000 +v -0.073029 1.485996 -0.030176 +v -0.073697 1.487491 -0.031606 +v -0.074400 1.489400 -0.032700 +v -0.074445 1.491799 -0.033137 +v -0.070700 1.495100 -0.025700 +v -0.076554 1.521809 -0.026878 +v -0.070296 1.493304 -0.025475 +v -0.072097 1.496697 -0.025914 +v -0.072201 1.494908 -0.025566 +v -0.071902 1.492995 -0.025121 +v -0.077900 1.484000 -0.026400 +v -0.078789 1.485596 -0.028414 +v -0.076283 1.484669 -0.025833 +v -0.079808 1.486114 -0.030284 +v -0.074909 1.484910 -0.025487 +v -0.077240 1.515882 -0.038378 +v -0.076800 1.519100 -0.038300 +v -0.071770 1.493003 -0.016807 +v -0.063703 1.501321 0.029000 +v -0.065291 1.510391 0.023890 +v -0.026059 1.454896 0.049004 +v -0.025298 1.451791 0.049406 +v -0.054800 1.491500 0.040500 +v -0.049968 1.489449 0.045159 +v -0.025148 1.460346 0.061133 +v -0.024435 1.459621 0.061337 +v -0.023522 1.460187 0.061418 +v -0.024249 1.460520 0.061081 +v -0.022000 1.460772 0.059500 +v -0.022800 1.460707 0.058800 +v -0.023014 1.460696 0.059746 +v -0.022313 1.460759 0.060425 +v -0.028109 1.475652 0.062034 +v -0.031378 1.479582 0.059952 +v -0.034158 1.475322 0.058856 +v -0.030949 1.471935 0.060987 +v -0.024580 1.459509 0.051432 +v -0.024307 1.461110 0.051921 +v -0.023228 1.460994 0.055868 +v -0.023532 1.460361 0.055415 +v -0.024417 1.456932 0.051523 +v -0.023415 1.459081 0.054968 +v -0.026131 1.458845 0.048941 +v -0.025595 1.461351 0.049316 +v -0.033679 1.454181 0.057135 +v -0.030493 1.456211 0.059276 +v -0.031308 1.459310 0.059370 +v -0.034660 1.458692 0.057534 +v -0.025183 1.486692 0.060752 +v -0.028504 1.483099 0.060419 +v -0.025503 1.479201 0.062212 +v -0.022102 1.483306 0.062428 +v -0.018718 1.488020 0.063334 +v -0.021581 1.490552 0.061358 +v -0.017491 1.495490 0.066471 +v -0.017785 1.491959 0.067693 +v -0.017219 1.491111 0.070903 +v -0.017625 1.493108 0.069690 +v -0.015426 1.487303 0.069410 +v -0.017764 1.489813 0.066272 +v -0.011460 1.486297 0.069954 +v -0.011262 1.487086 0.070809 +v -0.015505 1.486658 0.068092 +v -0.015732 1.485856 0.066517 +v -0.011732 1.485545 0.068955 +v -0.010705 1.488275 0.071582 +v -0.013514 1.488048 0.071692 +v -0.015121 1.489854 0.073173 +v -0.004381 1.488908 0.079905 +v -0.005639 1.490149 0.081872 +v -0.010589 1.518080 0.064760 +v -0.013675 1.514833 0.061918 +v -0.010631 1.515723 0.067072 +v -0.013514 1.512714 0.064157 +v -0.014372 1.491968 0.076867 +v -0.015789 1.493572 0.075165 +v -0.011991 1.493152 0.080609 +v -0.013201 1.495495 0.080068 +v -0.003688 1.531722 0.062648 +v -0.002148 1.485462 0.075849 +v -0.002408 1.484602 0.075445 +v -0.001814 1.486575 0.077679 +v -0.022510 1.586616 -0.113415 +v -0.023000 1.599213 -0.102898 +v -0.022139 1.613460 -0.081347 +v -0.019834 1.618165 -0.069601 +v -0.005695 1.468502 0.076511 +v -0.005296 1.470999 0.076289 +v -0.012858 1.464687 0.059653 +v -0.007373 1.464960 0.061179 +v -0.006975 1.463108 0.065761 +v -0.012269 1.462964 0.064467 +v -0.016278 1.462759 0.062362 +v -0.017223 1.464311 0.057602 +v -0.013211 1.465957 0.057083 +v -0.007475 1.466294 0.058483 +v -0.011800 1.461943 0.068868 +v -0.006582 1.462229 0.070956 +v -0.006449 1.463859 0.073683 +v -0.011854 1.463360 0.071100 +v -0.018283 1.481390 0.065162 +v -0.014145 1.482119 0.067466 +v -0.009947 1.482343 0.070802 +v -0.006663 1.482219 0.073355 +v -0.006070 1.484310 0.073705 +v -0.008634 1.484916 0.071533 +v -0.005846 1.485250 0.074051 +v -0.008425 1.485773 0.072107 +v -0.008365 1.486729 0.072615 +v -0.008909 1.488251 0.072763 +v -0.007010 1.488079 0.074018 +v -0.007500 1.489300 0.073600 +v -0.005805 1.486238 0.074278 +v -0.004053 1.510006 0.078946 +v -0.003955 1.513584 0.076221 +v -0.009855 1.472515 0.074138 +v -0.005009 1.472999 0.075408 +v -0.004315 1.476815 0.074624 +v -0.008666 1.476809 0.073279 +v -0.013211 1.476061 0.071006 +v -0.014910 1.470831 0.071677 +v -0.002734 1.483714 0.075107 +v -0.010300 1.470400 0.074600 +v -0.010703 1.467995 0.074513 +v -0.015502 1.468576 0.071979 +v -0.015800 1.466400 0.071600 +v -0.019602 1.468322 0.068491 +v -0.018439 1.474099 0.068134 +v -0.023987 1.472042 0.064669 +v -0.023470 1.465647 0.065227 +v -0.031113 1.462468 0.060031 +v -0.026531 1.460082 0.060975 +v -0.026577 1.461421 0.061328 +v -0.026234 1.462618 0.062158 +v -0.030104 1.465556 0.061112 +v -0.034404 1.463254 0.058475 +v -0.033149 1.467775 0.059705 +v -0.027971 1.468600 0.062562 +v -0.025395 1.463939 0.063270 +v -0.025250 1.461104 0.061542 +v -0.024309 1.460885 0.061344 +v -0.024976 1.461816 0.062298 +v -0.024034 1.461246 0.062012 +v -0.024386 1.462489 0.063348 +v -0.023558 1.461583 0.062874 +v -0.022612 1.462197 0.064256 +v -0.023177 1.463590 0.064981 +v -0.022133 1.460920 0.059768 +v -0.021168 1.460992 0.060855 +v -0.021285 1.460964 0.062165 +v -0.022204 1.460838 0.060987 +v -0.022757 1.460837 0.059067 +v -0.022727 1.460779 0.060310 +v -0.022731 1.461571 0.056693 +v -0.021763 1.461781 0.057508 +v -0.023289 1.460690 0.058334 +v -0.023330 1.460718 0.059396 +v -0.023394 1.460716 0.060836 +v -0.023251 1.460914 0.061284 +v -0.022758 1.461069 0.062036 +v -0.021882 1.461334 0.063176 +v -0.015798 1.464470 0.070396 +v -0.019424 1.464378 0.068200 +v -0.019113 1.462802 0.066769 +v -0.015646 1.462491 0.068328 +v -0.018697 1.461683 0.065172 +v -0.017785 1.465453 0.055196 +v -0.015373 1.461586 0.066485 +v -0.020861 1.463425 0.055138 +v -0.021815 1.464456 0.052646 +v -0.019799 1.462183 0.059397 +v -0.023776 1.462261 0.052914 +v -0.022746 1.462430 0.053473 +v -0.024706 1.463135 0.050424 +v -0.023488 1.463681 0.051401 +v -0.018585 1.461130 0.063357 +v -0.019687 1.466161 0.068684 +v -0.011193 1.465708 0.073182 +v -0.006008 1.466276 0.075328 +v -0.004764 1.502917 0.085468 +v -0.004430 1.506626 0.081984 +v -0.022824 1.460592 0.061246 +v -0.009000 1.380900 0.008200 +v -0.025820 1.458897 0.061092 +v -0.023838 1.454565 0.051597 +v -0.022628 1.458084 0.055319 +v -0.030940 1.449785 0.057855 +v -0.026597 1.445592 0.060153 +v -0.024565 1.449667 0.061995 +v -0.028277 1.452952 0.060029 +v -0.021911 1.455732 0.064216 +v -0.024465 1.457488 0.062231 +v -0.023209 1.458786 0.062690 +v -0.020872 1.457806 0.064774 +v -0.019961 1.459373 0.065056 +v -0.022233 1.459817 0.062668 +v -0.017872 1.461109 0.063406 +v -0.013488 1.461506 0.066143 +v -0.012943 1.457844 0.061366 +v -0.017612 1.457529 0.058998 +v -0.021527 1.457717 0.056493 +v -0.021070 1.460876 0.060391 +v -0.018523 1.461113 0.064244 +v -0.021342 1.460835 0.061409 +v -0.013977 1.461497 0.067282 +v -0.018900 1.383500 0.004700 +v -0.021710 1.460566 0.062261 +v -0.019048 1.460695 0.064671 +v -0.014749 1.460724 0.068045 +v -0.015854 1.458903 0.068665 +v -0.016792 1.456693 0.068793 +v -0.017461 1.453899 0.067856 +v -0.019149 1.446712 0.065034 +v -0.020456 1.441594 0.063824 +v -0.013229 1.444892 0.067749 +v -0.014176 1.439699 0.067357 +v -0.012333 1.452486 0.071105 +v -0.012051 1.456002 0.072665 +v -0.011198 1.458638 0.072223 +v -0.010410 1.460704 0.071129 +v -0.003264 1.481942 0.074712 +v -0.005689 1.488011 0.075291 +v -0.004510 1.488195 0.077505 +v -0.007868 1.491520 0.082722 +v -0.001736 1.487415 0.079846 +v -0.010492 1.492952 0.082279 +v -0.008765 1.492452 0.083652 +v -0.009522 1.493885 0.084514 +v -0.010810 1.494494 0.083310 +v -0.007182 1.491909 0.084782 +v -0.008500 1.493700 0.085400 +v -0.002902 1.491075 0.086336 +v -0.003721 1.494335 0.088102 +v -0.004650 1.499551 0.087718 +v -0.004111 1.496344 0.088521 +v -0.009882 1.495499 0.084882 +v -0.011411 1.497274 0.083159 +v -0.011743 1.500268 0.080871 +v -0.013890 1.498099 0.077459 +v -0.010602 1.625284 -0.027469 +v -0.009656 1.461739 0.070112 +v -0.008742 1.461758 0.068290 +v -0.012774 1.447697 0.054662 +v -0.012805 1.452064 0.057064 +v -0.008059 1.451891 0.058520 +v -0.008007 1.447711 0.056270 +v -0.004812 1.461758 0.069092 +v -0.004543 1.458037 0.063816 +v -0.008262 1.458084 0.063082 +v -0.005072 1.461835 0.071297 +v -0.005589 1.460631 0.072613 +v -0.006193 1.458494 0.073986 +v -0.004333 1.451771 0.059202 +v -0.004401 1.447435 0.056949 +v -0.022224 1.453109 0.052652 +v -0.022834 1.449420 0.050597 +v -0.017680 1.452071 0.055120 +v -0.018045 1.448223 0.052946 +v -0.007817 1.439111 0.069698 +v -0.007074 1.444141 0.069216 +v -0.006581 1.455345 0.074334 +v -0.006668 1.451550 0.072522 +v -0.022923 1.607438 -0.092701 +v -0.062856 1.576001 0.009824 +v -0.061268 1.569757 0.017690 +v -0.055147 1.577388 0.024227 +v -0.056734 1.582384 0.017099 +v -0.063470 1.583142 0.001913 +v -0.057200 1.588300 0.009600 +v -0.040530 1.616390 -0.045728 +v -0.041088 1.616383 -0.031901 +v -0.021913 1.622737 -0.028613 +v -0.035329 1.615763 -0.059197 +v -0.047797 1.607383 -0.067962 +v -0.050017 1.610884 -0.049176 +v -0.049914 1.611324 -0.034400 +v -0.025319 1.417296 -0.086431 +v -0.053341 1.537593 -0.109735 +v -0.048594 1.610887 -0.021003 +v -0.040400 1.615200 -0.018500 +v -0.039869 1.612797 -0.006457 +v -0.047253 1.609196 -0.009635 +v -0.021703 1.620912 -0.014487 +v -0.010484 1.623294 -0.012843 +v -0.019518 1.501968 -0.122785 +v -0.003912 1.516946 0.073584 +v -0.049036 1.451832 -0.071080 +v -0.058265 1.451117 -0.053166 +v -0.051200 1.402600 -0.033800 +v -0.072990 1.474329 -0.033592 +v -0.072822 1.474732 -0.034523 +v -0.057824 1.437788 -0.035288 +v -0.061932 1.450619 -0.035689 +v -0.039174 1.452431 -0.082310 +v -0.082400 1.485383 -0.044422 +v -0.082903 1.489094 -0.045618 +v -0.083405 1.484800 -0.043789 +v -0.084115 1.488697 -0.045292 +v -0.083998 1.492895 -0.046032 +v -0.083879 1.483300 -0.042725 +v -0.076924 1.521442 -0.034424 +v -0.078187 1.523278 -0.033695 +v -0.072100 1.473090 -0.029303 +v -0.072098 1.473611 -0.030997 +v -0.071500 1.473300 -0.030200 +v -0.071200 1.472900 -0.028900 +v -0.071696 1.472309 -0.027792 +v -0.071001 1.472380 -0.027818 +v -0.076624 1.536198 -0.028498 +v -0.070000 1.472400 -0.031600 +v -0.072088 1.474257 -0.034077 +v -0.071908 1.473871 -0.032409 +v -0.071000 1.473200 -0.031100 +v -0.070412 1.472386 -0.029103 +v -0.070191 1.471713 -0.027395 +v -0.071000 1.471300 -0.026800 +v -0.084111 1.482503 -0.042789 +v -0.076500 1.472200 -0.031600 +v -0.079079 1.513709 -0.040420 +v -0.079508 1.511895 -0.041894 +v -0.081688 1.513702 -0.043406 +v -0.081123 1.515993 -0.041982 +v -0.060712 1.487981 -0.084226 +v -0.062551 1.497993 -0.088895 +v -0.012694 1.418793 -0.090986 +v -0.012984 1.431500 -0.091585 +v -0.076230 1.530994 -0.074442 +v -0.078600 1.515400 -0.038900 +v -0.080687 1.517803 -0.040507 +v -0.082899 1.493300 -0.046163 +v -0.077782 1.514596 -0.038896 +v -0.078304 1.512904 -0.040408 +v -0.081700 1.519700 -0.042100 +v -0.082200 1.517500 -0.043700 +v -0.082816 1.515000 -0.045088 +v -0.078788 1.510996 -0.041897 +v -0.077321 1.519308 -0.041011 +v -0.080072 1.561101 -0.051900 +v -0.079500 1.554700 -0.065300 +v -0.077000 1.577000 -0.055600 +v -0.076100 1.571400 -0.070200 +v -0.071739 1.564758 -0.085415 +v -0.075100 1.546934 -0.080535 +v -0.076756 1.521093 -0.035588 +v -0.079218 1.524487 -0.034190 +v -0.064046 1.588845 -0.005609 +v -0.069100 1.583700 -0.012500 +v -0.057334 1.593424 0.002717 +v -0.057190 1.597993 -0.003706 +v -0.063487 1.594294 -0.012304 +v -0.070644 1.587414 -0.023990 +v -0.078576 1.553401 -0.037404 +v -0.078229 1.566908 -0.038395 +v -0.075235 1.571187 -0.025413 +v -0.074960 1.582288 -0.040605 +v -0.066600 1.595600 -0.030100 +v -0.070333 1.591526 -0.044305 +v -0.059609 1.603311 -0.033797 +v -0.061738 1.601056 -0.048113 +v -0.061583 1.597869 -0.063692 +v -0.071969 1.587274 -0.059096 +v -0.061700 1.599100 -0.018200 +v -0.055613 1.602114 -0.008857 +v -0.056700 1.604800 -0.021500 +v -0.053364 1.605595 -0.013183 +v -0.073321 1.572998 -0.018597 +v -0.065872 1.467058 -0.027795 +v -0.066067 1.467582 -0.022798 +v -0.069850 1.479001 -0.015004 +v -0.067976 1.503604 0.017668 +v -0.068022 1.515690 0.015397 +v -0.070799 1.507799 0.005481 +v -0.069552 1.493504 0.006914 +v -0.066865 1.528807 0.013619 +v -0.070014 1.521399 0.003997 +v -0.069755 1.535201 0.001517 +v -0.066276 1.542800 0.012494 +v -0.063123 1.558544 -0.099907 +v -0.065392 1.542129 -0.097712 +v -0.065894 1.530249 -0.096000 +v -0.048710 1.559533 0.042020 +v -0.022210 1.577716 -0.119229 +v -0.047881 1.581782 0.031191 +v -0.055375 1.577878 -0.100584 +v -0.042198 1.583290 -0.106886 +v -0.071219 1.581908 -0.073609 +v -0.068054 1.575876 -0.086371 +v -0.060075 1.568989 -0.100537 +v -0.065163 1.514915 -0.094089 +v -0.047764 1.605853 -0.002383 +v -0.056288 1.527306 0.035388 +v -0.055400 1.522900 0.034700 +v -0.056800 1.532000 0.036900 +v -0.053710 1.518407 0.036312 +v -0.016988 1.511816 0.059509 +v -0.016523 1.509829 0.061527 +v -0.016060 1.507311 0.063477 +v -0.019643 1.507148 0.059252 +v -0.018886 1.504168 0.061098 +v -0.012688 1.507683 0.068746 +v -0.013226 1.510263 0.066357 +v -0.015327 1.504867 0.065498 +v -0.014758 1.501776 0.067443 +v -0.012525 1.504630 0.071081 +v -0.018383 1.489537 0.064268 +v -0.019566 1.494092 0.062319 +v -0.017300 1.498299 0.064286 +v -0.022379 1.501260 0.059636 +v -0.021217 1.498003 0.061176 +v -0.018101 1.501539 0.062795 +v -0.023651 1.504578 0.057693 +v -0.015512 1.498333 0.069921 +v -0.016336 1.495285 0.072852 +v -0.013197 1.501347 0.074285 +v -0.011289 1.503443 0.077455 +v -0.010513 1.506879 0.074245 +v -0.020300 1.509300 0.057400 +v -0.024688 1.506991 0.055978 +v -0.024313 1.494467 0.060252 +v -0.028338 1.491184 0.059583 +v -0.026548 1.498726 0.058604 +v -0.030377 1.496054 0.058135 +v -0.027823 1.502213 0.056766 +v -0.031864 1.499784 0.056280 +v -0.031980 1.487707 0.059208 +v -0.034944 1.483875 0.058162 +v -0.037789 1.479097 0.056553 +v -0.037765 1.488714 0.056258 +v -0.040839 1.483470 0.054215 +v -0.039779 1.493485 0.054171 +v -0.043257 1.488620 0.051763 +v -0.034514 1.492718 0.057558 +v -0.036283 1.496846 0.055538 +v -0.033157 1.503343 0.054269 +v -0.029010 1.505211 0.054822 +v -0.041601 1.504292 0.050690 +v -0.041085 1.498898 0.052381 +v -0.037317 1.501291 0.053567 +v -0.037974 1.505637 0.051703 +v -0.045069 1.495056 0.049656 +v -0.045400 1.502500 0.048600 +v -0.045080 1.507384 0.047479 +v -0.031897 1.513496 0.050390 +v -0.027202 1.514204 0.051209 +v -0.035292 1.513223 0.049379 +v -0.041527 1.508144 0.049267 +v -0.038279 1.508792 0.050353 +v -0.049200 1.514300 0.041600 +v -0.046800 1.513600 0.043500 +v -0.041300 1.513100 0.047100 +v -0.038537 1.513112 0.048362 +v -0.044195 1.513295 0.045391 +v -0.022901 1.515905 0.051410 +v -0.018571 1.517968 0.051684 +v -0.055257 1.438999 -0.050771 +v -0.010308 1.510155 0.071901 +v -0.010478 1.513105 0.069505 +v -0.015156 1.533977 0.054304 +v -0.013596 1.531070 0.053522 +v -0.006923 1.531511 0.060081 +v -0.019158 1.537755 0.056855 +v -0.015489 1.520401 0.051954 +v -0.013800 1.522800 0.052200 +v -0.013178 1.525174 0.052712 +v -0.012942 1.528094 0.053113 +v -0.030114 1.551419 0.058036 +v -0.026720 1.545266 0.059766 +v -0.058325 1.563672 0.026481 +v -0.061625 1.555341 0.023089 +v -0.051668 1.546035 0.044932 +v -0.054700 1.541900 0.041900 +v -0.056409 1.536994 0.039107 +v -0.063211 1.544202 0.020706 +v -0.064120 1.532200 0.020511 +v -0.064932 1.520906 0.021512 +v -0.049122 1.592694 0.017549 +v -0.048919 1.597614 0.010981 +v -0.048889 1.587381 0.024404 +v -0.039547 1.609385 0.002641 +v -0.039647 1.605670 0.010726 +v -0.048516 1.602029 0.004404 +v -0.040184 1.601257 0.017716 +v -0.040667 1.596353 0.024229 +v -0.040410 1.591110 0.031115 +v -0.039626 1.585244 0.037833 +v -0.037606 1.577249 0.044470 +v -0.046691 1.439449 -0.068449 +v -0.008002 1.500332 0.070494 +v -0.007296 1.500479 0.071202 +v -0.006915 1.499983 0.069926 +v -0.006208 1.500093 0.070605 +v -0.005973 1.498711 0.070176 +v -0.007189 1.491278 0.072688 +v -0.005704 1.493209 0.071394 +v -0.005327 1.496700 0.070331 +v -0.068207 1.472506 -0.017095 +v -0.051800 1.406300 -0.047300 +v -0.049500 1.409300 -0.059900 +v 0.051800 1.406300 -0.047300 +v 0.049500 1.409300 -0.059900 +v 0.019200 1.377100 0.002800 +v 0.029900 1.380600 -0.002700 +v 0.031191 1.371902 -0.003814 +v 0.019808 1.368797 0.001123 +v 0.056238 1.388815 -0.051486 +v 0.052715 1.397600 -0.048798 +v 0.050621 1.400619 -0.062005 +v 0.054435 1.392053 -0.065906 +v 0.044999 1.402416 -0.073412 +v 0.048271 1.393089 -0.078193 +v 0.038400 1.392900 -0.087400 +v 0.036279 1.403790 -0.082284 +v 0.025100 1.404800 -0.088700 +v 0.026404 1.392692 -0.093192 +v 0.040100 1.385100 -0.010900 +v 0.047900 1.389700 -0.021800 +v 0.050655 1.380682 -0.023015 +v 0.042189 1.376097 -0.011909 +v 0.051989 1.393992 -0.034900 +v 0.055002 1.384985 -0.036793 +v 0.013400 1.392500 -0.096200 +v 0.012800 1.405400 -0.092300 +v 0.021630 1.347706 -0.002280 +v 0.010000 1.345800 -0.001600 +v 0.009703 1.356796 0.000912 +v 0.020700 1.358599 -0.000789 +v 0.051215 1.344489 -0.016416 +v 0.064809 1.351419 -0.027220 +v 0.071413 1.342539 -0.024854 +v 0.056256 1.334601 -0.013505 +v 0.092658 1.345253 -0.035792 +v 0.101991 1.356549 -0.055946 +v 0.036452 1.340095 -0.007796 +v 0.039614 1.330165 -0.004026 +v 0.000000 1.380304 -0.103110 +v 0.000000 1.392398 -0.097112 +v 0.092167 1.361945 -0.058015 +v 0.091650 1.365890 -0.081008 +v 0.103647 1.360106 -0.079767 +v 0.051390 1.344988 -0.117606 +v 0.051696 1.338191 -0.120202 +v 0.066194 1.342704 -0.118123 +v 0.062220 1.349185 -0.114825 +v 0.071324 1.377988 -0.076126 +v 0.061101 1.377499 -0.090389 +v 0.068719 1.369941 -0.095525 +v 0.081299 1.371989 -0.079679 +v 0.035196 1.360991 -0.111297 +v 0.052500 1.365903 -0.105617 +v 0.047106 1.374613 -0.100311 +v 0.031703 1.371412 -0.106125 +v 0.082737 1.367023 -0.058545 +v 0.072497 1.372769 -0.057489 +v 0.075085 1.358733 -0.041692 +v 0.066988 1.366168 -0.041342 +v 0.059293 1.360571 -0.026713 +v 0.053878 1.384658 -0.084389 +v 0.042301 1.383191 -0.093893 +v 0.028800 1.381600 -0.099600 +v 0.014500 1.380600 -0.102300 +v 0.000000 1.332103 -0.118329 +v 0.000000 1.344407 -0.116723 +v 0.017506 1.357805 -0.112991 +v 0.015901 1.369391 -0.108565 +v 0.083352 1.352116 -0.039990 +v 0.060082 1.375357 -0.039221 +v 0.054595 1.370684 -0.024895 +v 0.062373 1.326943 -0.004014 +v 0.079695 1.333782 -0.017820 +v 0.043486 1.322351 0.005265 +v 0.026318 1.318980 0.010419 +v 0.018804 1.345613 -0.116011 +v 0.018497 1.333611 -0.117736 +v 0.036412 1.336188 -0.118918 +v 0.039911 1.348812 -0.116108 +v 0.047810 1.355088 -0.015297 +v 0.034741 1.350700 -0.006936 +v 0.022774 1.337339 -0.002166 +v 0.061403 1.384360 -0.070911 +v 0.062762 1.380358 -0.054854 +v 0.044957 1.365794 -0.013553 +v 0.033008 1.361602 -0.005389 +v 0.009400 1.367000 0.003600 +v 0.024391 1.327745 0.002406 +v 0.092841 1.355870 -0.099836 +v 0.080101 1.348808 -0.111908 +v 0.073289 1.352758 -0.110048 +v 0.000000 1.356994 -0.113868 +v 0.000000 1.356207 0.001169 +v 0.000000 1.345096 -0.002041 +v 0.000000 1.366405 0.004280 +v 0.077652 1.361117 -0.101163 +v 0.057989 1.356635 -0.110582 +v 0.000000 1.374300 0.006800 +v 0.000000 1.405600 -0.093400 +v 0.000000 1.333470 -0.004016 +v 0.000000 1.322036 -0.000042 +v 0.000000 1.313137 0.009546 +v 0.009198 1.375001 0.005887 +v 0.011601 1.323874 0.001497 +v 0.010712 1.334590 -0.002614 +v 0.012479 1.314794 0.010120 +v 0.000000 1.368900 -0.109400 +v -0.019200 1.377100 0.002800 +v -0.029900 1.380600 -0.002700 +v -0.031191 1.371902 -0.003814 +v -0.019808 1.368797 0.001123 +v -0.056238 1.388815 -0.051486 +v -0.052715 1.397600 -0.048798 +v -0.050621 1.400619 -0.062005 +v -0.054435 1.392053 -0.065906 +v -0.044999 1.402416 -0.073412 +v -0.048271 1.393089 -0.078193 +v -0.038400 1.392900 -0.087400 +v -0.036279 1.403790 -0.082284 +v -0.025100 1.404800 -0.088700 +v -0.026404 1.392692 -0.093192 +v -0.040100 1.385100 -0.010900 +v -0.047900 1.389700 -0.021800 +v -0.050655 1.380682 -0.023015 +v -0.042189 1.376097 -0.011909 +v -0.051989 1.393992 -0.034900 +v -0.055002 1.384985 -0.036793 +v -0.013400 1.392500 -0.096200 +v -0.012800 1.405400 -0.092300 +v -0.021630 1.347706 -0.002280 +v -0.010000 1.345800 -0.001600 +v -0.009703 1.356796 0.000912 +v -0.020700 1.358599 -0.000789 +v -0.051215 1.344489 -0.016416 +v -0.064809 1.351419 -0.027220 +v -0.071413 1.342539 -0.024854 +v -0.056256 1.334601 -0.013505 +v -0.092658 1.345253 -0.035792 +v -0.101991 1.356549 -0.055946 +v -0.036452 1.340095 -0.007796 +v -0.039614 1.330165 -0.004026 +v -0.092167 1.361945 -0.058015 +v -0.091650 1.365890 -0.081008 +v -0.103647 1.360106 -0.079767 +v -0.051390 1.344988 -0.117606 +v -0.051696 1.338191 -0.120202 +v -0.066194 1.342704 -0.118123 +v -0.062220 1.349185 -0.114825 +v -0.071324 1.377988 -0.076126 +v -0.061101 1.377499 -0.090389 +v -0.068719 1.369941 -0.095525 +v -0.081299 1.371989 -0.079679 +v -0.035196 1.360991 -0.111297 +v -0.052500 1.365903 -0.105617 +v -0.047106 1.374613 -0.100311 +v -0.031703 1.371412 -0.106125 +v -0.082737 1.367023 -0.058545 +v -0.072497 1.372769 -0.057489 +v -0.075085 1.358733 -0.041692 +v -0.066988 1.366168 -0.041342 +v -0.059293 1.360571 -0.026713 +v -0.053878 1.384658 -0.084389 +v -0.042301 1.383191 -0.093893 +v -0.028800 1.381600 -0.099600 +v -0.014500 1.380600 -0.102300 +v -0.017506 1.357805 -0.112991 +v -0.015901 1.369391 -0.108565 +v -0.083352 1.352116 -0.039990 +v -0.060082 1.375357 -0.039221 +v -0.054595 1.370684 -0.024895 +v -0.062373 1.326943 -0.004014 +v -0.079695 1.333782 -0.017820 +v -0.043486 1.322351 0.005265 +v -0.026318 1.318980 0.010419 +v -0.018804 1.345613 -0.116011 +v -0.018497 1.333611 -0.117736 +v -0.036412 1.336188 -0.118918 +v -0.039911 1.348812 -0.116108 +v -0.047810 1.355088 -0.015297 +v -0.034741 1.350700 -0.006936 +v -0.022774 1.337339 -0.002166 +v -0.061403 1.384360 -0.070911 +v -0.062762 1.380358 -0.054854 +v -0.044957 1.365794 -0.013553 +v -0.033008 1.361602 -0.005389 +v -0.009400 1.367000 0.003600 +v -0.024391 1.327745 0.002406 +v -0.092841 1.355870 -0.099836 +v -0.080101 1.348808 -0.111908 +v -0.073289 1.352758 -0.110048 +v -0.077652 1.361117 -0.101163 +v -0.057989 1.356635 -0.110582 +v -0.009198 1.375001 0.005887 +v -0.011601 1.323874 0.001497 +v -0.010712 1.334590 -0.002614 +v -0.012479 1.314794 0.010120 +v -0.007181 1.498708 0.069367 +v -0.065756 1.470880 0.002952 +v -0.064678 1.463496 -0.004242 +v -0.059783 1.453210 0.002188 +v -0.061561 1.461383 0.009926 +v -0.053965 1.443825 0.009394 +v -0.057441 1.453563 0.015359 +v -0.047918 1.436419 0.017837 +v -0.052352 1.446406 0.021891 +v -0.043190 1.432359 0.027284 +v -0.047905 1.441899 0.029774 +v -0.031556 1.428128 0.049181 +v -0.029812 1.423095 0.045409 +v -0.023660 1.420365 0.052657 +v -0.024436 1.424506 0.056749 +v -0.016606 1.418589 0.059010 +v -0.017378 1.422321 0.062977 +v -0.009001 1.417534 0.062700 +v -0.009151 1.420928 0.066849 +v 0.000000 1.417091 0.064366 +v 0.000000 1.420471 0.068613 +v 0.000000 1.429788 0.071272 +v -0.008705 1.429911 0.070470 +v -0.009043 1.425262 0.069435 +v 0.000000 1.424583 0.070677 +v -0.016107 1.430898 0.066910 +v -0.017100 1.426200 0.065400 +v -0.022581 1.433356 0.062133 +v -0.023967 1.428745 0.059766 +v -0.030372 1.437649 0.055874 +v -0.031736 1.432795 0.052581 +v -0.035914 1.443090 0.051692 +v -0.038348 1.440043 0.047005 +v -0.008052 1.414547 0.056606 +v 0.000000 1.414303 0.058898 +v -0.015000 1.415300 0.053100 +v -0.021489 1.416660 0.047689 +v -0.026700 1.418600 0.041100 +v -0.037876 1.429176 0.036787 +v -0.032082 1.421210 0.032893 +v -0.038453 1.425506 0.024641 +v -0.044093 1.429078 0.014379 +v -0.051272 1.436912 0.004435 +v -0.058145 1.447580 -0.004610 +v -0.063602 1.458794 -0.011346 +v -0.067842 1.470820 -0.008907 +v -0.015270 1.435111 0.067257 +v -0.008309 1.434379 0.070327 +v -0.021438 1.437110 0.063198 +v -0.028470 1.441606 0.058224 +v -0.033392 1.446468 0.055158 +v -0.037951 1.458101 0.054503 +v -0.036662 1.452045 0.054037 +v -0.036406 1.470117 0.057341 +v -0.037754 1.464227 0.055768 +v -0.043361 1.476565 0.051520 +v -0.045063 1.468107 0.048653 +v -0.041386 1.465667 0.052396 +v -0.039988 1.472930 0.054506 +v -0.046552 1.481759 0.048340 +v -0.048779 1.472120 0.044600 +v -0.007075 1.412271 0.050914 +v 0.000000 1.411855 0.052119 +v -0.013085 1.412852 0.047489 +v -0.018439 1.413640 0.042102 +v -0.022392 1.414312 0.035486 +v -0.026870 1.415220 0.027969 +v -0.032350 1.416735 0.019836 +v -0.039581 1.420103 0.010510 +v -0.048258 1.428267 -0.000383 +v -0.056639 1.442227 -0.010608 +v -0.062381 1.454404 -0.017696 +v -0.019224 1.407282 0.021407 +v -0.015527 1.408710 0.027842 +v -0.012281 1.409694 0.033437 +v -0.009411 1.409986 0.038105 +v -0.005395 1.408971 0.037381 +v 0.000000 1.408566 0.036837 +v -0.004839 1.406112 0.028904 +v 0.000000 1.406027 0.029136 +v -0.006997 1.402824 0.023825 +v 0.000000 1.402365 0.023807 +v -0.008716 1.399498 0.019583 +v 0.000000 1.397683 0.018995 +v -0.039863 1.450124 0.050121 +v -0.043157 1.449236 0.045330 +v -0.045252 1.458819 0.046255 +v -0.049202 1.461445 0.041161 +v -0.046825 1.450025 0.039223 +v -0.041526 1.457887 0.050684 +v -0.051791 1.453260 0.031960 +v -0.053856 1.465584 0.035623 +v -0.052811 1.477332 0.040542 +v -0.057864 1.470411 0.031084 +v -0.056300 1.458400 0.025400 +v -0.056809 1.481199 0.036406 +v -0.060191 1.484902 0.032594 +v -0.060914 1.474694 0.027211 +v -0.059936 1.463921 0.021284 +v -0.040912 1.437507 0.039969 +v -0.062508 1.469594 0.016502 +v -0.062707 1.488777 0.028637 +v -0.063200 1.479400 0.022700 +v -0.065244 1.494102 0.023621 +v -0.065986 1.485178 0.015507 +v -0.065555 1.477004 0.008784 +v -0.069692 1.478726 -0.004793 +v 0.000000 1.434286 0.071004 +v -0.066436 1.467824 -0.032302 +v -0.021200 1.476200 0.065000 +v -0.016400 1.478400 0.067700 +v -0.011548 1.479216 0.070929 +v -0.007644 1.479541 0.073277 +v -0.003728 1.479322 0.074674 +v 0.000000 1.385930 0.012858 +v 0.000000 1.545795 0.064295 +v 0.000000 1.392634 0.016701 +v 0.000000 1.447350 0.057204 +v 0.000000 1.624622 -0.011960 +v 0.000000 1.439029 0.070422 +v 0.000000 1.451933 0.059578 +v 0.000000 1.507470 0.083595 +v 0.000000 1.443887 0.069414 +v 0.000000 1.454946 0.074679 +v 0.000000 1.460438 0.072980 +v 0.000000 1.581135 0.055452 +v 0.000000 1.458137 0.074512 +v 0.000000 1.481587 0.074783 +v 0.000000 1.503893 0.087054 +v 0.000000 1.461914 0.071559 +v 0.000000 1.453858 -0.096645 +v 0.000000 1.451493 0.073105 +v 0.000000 1.457993 0.064088 +v 0.000000 1.461813 0.069558 +v 0.000000 1.466261 0.058890 +v 0.000000 1.478892 0.074531 +v 0.000000 1.523678 0.069736 +v 0.000000 1.489535 -0.119515 +v 0.000000 1.520960 0.072272 +v 0.000000 1.603650 0.037414 +v 0.000000 1.590954 0.049992 +v 0.000000 1.511043 0.080323 +v 0.000000 1.548918 -0.131703 +v 0.000000 1.564870 -0.128630 +v 0.000000 1.564427 0.060719 +v 0.000000 1.619611 -0.072800 +v 0.000000 1.500275 0.089409 +v 0.000000 1.486994 0.079952 +v 0.000000 1.618215 0.012229 +v 0.000000 1.516038 -0.129465 +v 0.000000 1.609100 -0.095443 +v 0.000000 1.463596 0.074251 +v 0.000000 1.621812 0.000643 +v 0.000000 1.462127 0.071343 +v 0.000000 1.490647 0.086919 +v 0.000000 1.501198 -0.125457 +v 0.000000 1.528930 -0.131276 +v 0.000000 1.472588 0.075172 +v 0.000000 1.476298 0.074308 +v 0.000000 1.615230 -0.084480 +v 0.000000 1.552251 0.063707 +v 0.000000 1.470467 0.076486 +v 0.000000 1.531870 0.063901 +v 0.000000 1.467967 0.077060 +v 0.000000 1.380109 0.009288 +v 0.000000 1.588347 -0.116312 +v 0.000000 1.465652 0.075795 +v 0.000000 1.463525 0.066420 +v 0.000000 1.514724 0.077389 +v 0.000000 1.464844 0.061917 +v 0.000000 1.571606 0.058534 +v 0.000000 1.484386 0.075902 +v 0.000000 1.485219 0.076416 +v 0.000000 1.529107 0.065284 +v 0.000000 1.597750 0.044018 +v 0.000000 1.534589 0.063461 +v 0.000000 1.483532 0.075433 +v 0.000000 1.579233 -0.122370 +v 0.000000 1.625022 -0.056413 +v 0.000000 1.626434 -0.043475 +v 0.000000 1.526279 0.067227 +v 0.000000 1.518187 0.074678 +v 0.000000 1.444587 -0.094873 +v 0.000000 1.493944 0.089210 +v 0.000000 1.496642 0.090010 +v 0.000000 1.613719 0.022204 +v 0.000000 1.480841 -0.114686 +v 0.000000 1.626736 -0.026845 +v 0.000000 1.608841 0.030309 +v 0.000000 1.464839 -0.103477 +v 0.000000 1.473938 -0.110708 +v 0.000000 1.489364 0.085409 +v 0.000000 1.537787 0.063642 +v 0.000000 1.487900 0.082456 +v 0.000000 1.601204 -0.105587 +v 0.000000 1.486122 0.077824 +v 0.007181 1.498708 0.069367 +v 0.065756 1.470880 0.002952 +v 0.064678 1.463496 -0.004242 +v 0.059783 1.453210 0.002188 +v 0.061561 1.461383 0.009926 +v 0.053965 1.443825 0.009394 +v 0.057441 1.453563 0.015359 +v 0.047918 1.436419 0.017837 +v 0.052352 1.446406 0.021891 +v -0.004500 1.490438 0.084613 +v -0.003472 1.488993 0.082224 +v 0.043190 1.432359 0.027284 +v 0.047905 1.441899 0.029774 +v -0.016500 1.524050 0.049200 +v -0.008669 1.487703 0.072770 +v -0.007120 1.508654 0.076839 +v -0.015400 1.524250 0.049950 +v 0.031556 1.428128 0.049181 +v 0.029812 1.423095 0.045409 +v 0.023660 1.420365 0.052657 +v 0.024436 1.424506 0.056749 +v -0.010950 1.487850 0.071400 +v 0.016606 1.418589 0.059010 +v 0.017378 1.422321 0.062977 +v 0.009001 1.417534 0.062700 +v 0.009151 1.420928 0.066849 +v -0.007135 1.515470 0.071771 +v -0.009449 1.523427 0.059362 +v 0.008705 1.429911 0.070470 +v 0.009043 1.425262 0.069435 +v -0.006967 1.512062 0.074392 +v -0.016213 1.490290 0.071850 +v -0.014561 1.487764 0.070635 +v -0.007012 1.495925 0.086718 +v -0.007912 1.498518 0.085593 +v 0.016107 1.430898 0.066910 +v -0.007950 1.492950 0.085200 +v -0.005075 1.491535 0.085592 +v 0.017100 1.426200 0.065400 +v -0.017849 1.523713 0.049317 +v -0.027909 1.524762 0.042535 +v -0.006251 1.494112 0.086673 +v -0.003263 1.492383 0.087243 +v -0.020870 1.524355 0.046670 +v -0.017300 1.523850 0.049250 +v -0.012558 1.494457 0.080516 +v -0.007666 1.522431 0.063361 +v 0.022581 1.433356 0.062133 +v 0.023967 1.428745 0.059766 +v 0.030372 1.437649 0.055874 +v 0.031736 1.432795 0.052581 +v -0.015100 1.492888 0.076170 +v 0.035914 1.443090 0.051692 +v 0.038348 1.440043 0.047005 +v 0.008052 1.414547 0.056606 +v -0.018624 1.523754 0.049075 +v -0.019148 1.523864 0.048784 +v -0.007841 1.505078 0.079909 +v 0.015000 1.415300 0.053100 +v 0.021489 1.416660 0.047689 +v 0.026700 1.418600 0.041100 +v 0.037876 1.429176 0.036787 +v -0.023224 1.524491 0.046688 +v -0.003145 1.487404 0.077579 +v -0.010700 1.493800 0.082850 +v -0.009226 1.493297 0.084222 +v -0.003762 1.486831 0.075684 +v 0.032082 1.421210 0.032893 +v 0.038453 1.425506 0.024641 +v -0.013400 1.524050 0.052550 +v 0.044093 1.429078 0.014379 +v -0.007290 1.520479 0.066899 +v -0.007075 1.518086 0.069666 +v 0.051272 1.436912 0.004435 +v 0.058145 1.447580 -0.004610 +v -0.003068 1.488157 0.079873 +v 0.063602 1.458794 -0.011346 +v 0.067842 1.470820 -0.008907 +v 0.015270 1.435111 0.067257 +v 0.008309 1.434379 0.070327 +v 0.021438 1.437110 0.063198 +v -0.008204 1.501659 0.083269 +v 0.028470 1.441606 0.058224 +v 0.033392 1.446468 0.055158 +v 0.037951 1.458101 0.054503 +v -0.006298 1.487370 0.074241 +v 0.036662 1.452045 0.054037 +v 0.036406 1.470117 0.057341 +v 0.037754 1.464227 0.055768 +v 0.043361 1.476565 0.051520 +v 0.045063 1.468107 0.048653 +v 0.041386 1.465667 0.052396 +v 0.000000 1.492114 0.088144 +v -0.005607 1.492667 0.086221 +v 0.039988 1.472930 0.054506 +v 0.046552 1.481759 0.048340 +v 0.048779 1.472120 0.044600 +v 0.007075 1.412271 0.050914 +v -0.029820 1.538011 0.053479 +v -0.029975 1.535460 0.051854 +v 0.013085 1.412852 0.047489 +v 0.018439 1.413640 0.042102 +v 0.022392 1.414312 0.035486 +v 0.026870 1.415220 0.027969 +v 0.032350 1.416735 0.019836 +v 0.039581 1.420103 0.010510 +v -0.022655 1.541291 0.058383 +v -0.004631 1.541666 0.063468 +v -0.009806 1.541712 0.062495 +v 0.048258 1.428267 -0.000383 +v -0.030165 1.531058 0.050149 +v -0.030253 1.529212 0.048923 +v -0.029840 1.533259 0.050285 +v -0.030360 1.529572 0.050362 +v -0.030372 1.530239 0.050612 +v 0.056639 1.442227 -0.010608 +v -0.029637 1.532503 0.049387 +v 0.062381 1.454404 -0.017696 +v -0.029693 1.532256 0.049246 +v 0.019224 1.407282 0.021407 +v -0.027671 1.540519 0.055546 +v 0.015527 1.408710 0.027842 +v 0.012281 1.409694 0.033437 +v -0.029842 1.531837 0.049551 +v -0.030415 1.528777 0.047185 +v 0.009411 1.409986 0.038105 +v -0.031235 1.526917 0.042713 +v 0.005395 1.408971 0.037381 +v 0.000000 1.541720 0.063941 +v -0.021294 1.551703 0.061045 +v -0.052438 1.549986 0.041694 +v 0.004839 1.406112 0.028904 +v -0.055550 1.544750 0.039000 +v 0.006997 1.402824 0.023825 +v -0.047669 1.510613 0.044309 +v -0.050350 1.511400 0.042050 +v -0.018586 1.545772 0.062254 +v 0.008716 1.399498 0.019583 +v 0.039863 1.450124 0.050121 +v 0.043157 1.449236 0.045330 +v 0.045252 1.458819 0.046255 +v 0.049202 1.461445 0.041161 +v -0.026633 1.570326 0.053151 +v -0.031183 1.612253 0.006230 +v -0.025033 1.563535 0.056327 +v -0.039899 1.555892 0.051097 +v 0.046825 1.450025 0.039223 +v -0.031322 1.608404 0.015054 +v 0.041526 1.457887 0.050684 +v 0.051791 1.453260 0.031960 +v 0.053856 1.465584 0.035623 +v 0.052811 1.477332 0.040542 +v 0.057864 1.470411 0.031084 +v -0.047573 1.554241 0.045738 +v 0.056300 1.458400 0.025400 +v -0.055410 1.515906 0.035556 +v -0.006407 1.557738 0.062139 +v -0.057000 1.521250 0.033100 +v 0.056809 1.481199 0.036406 +v -0.014452 1.557484 0.060981 +v -0.027655 1.619202 -0.054491 +v 0.060191 1.484902 0.032594 +v 0.060914 1.474694 0.027211 +v 0.059936 1.463921 0.021284 +v 0.040912 1.437507 0.039969 +v -0.013492 1.537749 0.059645 +v 0.062508 1.469594 0.016502 +v -0.038491 1.511269 0.049270 +v -0.041415 1.510904 0.048099 +v 0.062707 1.488777 0.028637 +v -0.031626 1.619606 -0.043643 +v -0.054250 1.513750 0.037600 +v -0.030425 1.587622 0.043038 +v -0.009981 1.531318 0.057230 +v -0.011297 1.534252 0.057544 +v -0.031087 1.593873 0.036455 +v 0.063200 1.479400 0.022700 +v 0.065244 1.494102 0.023621 +v 0.065986 1.485178 0.015507 +v -0.031324 1.599313 0.029619 +v 0.065555 1.477004 0.008784 +v 0.069692 1.478726 -0.004793 +v -0.031546 1.615607 -0.004075 +v -0.022319 1.514517 0.052251 +v 0.066436 1.467824 -0.032302 +v 0.021200 1.476200 0.065000 +v 0.016400 1.478400 0.067700 +v -0.057500 1.538800 0.036350 +v -0.058100 1.532550 0.034450 +v -0.032263 1.619648 -0.030163 +v -0.031406 1.512072 0.051113 +v -0.057750 1.526700 0.033300 +v -0.015698 1.620824 -0.062572 +v 0.011548 1.479216 0.070929 +v -0.052650 1.512350 0.039800 +v 0.007644 1.479541 0.073277 +v 0.003728 1.479322 0.074674 +v -0.032093 1.556898 0.055351 +v -0.035048 1.511533 0.050181 +v -0.009930 1.528293 0.056852 +v -0.017992 1.516836 0.052905 +v -0.014937 1.519669 0.053809 +v -0.031324 1.604084 0.022698 +v -0.012601 1.522311 0.054996 +v -0.010574 1.525230 0.056359 +v -0.026755 1.512927 0.051954 +v -0.028743 1.578935 0.049280 +v -0.031801 1.618118 -0.016442 +v -0.044633 1.510707 0.046380 +v 0.000000 1.622074 -0.065518 +v 0.000000 1.557883 0.062415 +v -0.011454 1.523753 0.055896 +v -0.015953 1.541608 0.060927 +v -0.023334 1.557278 0.058912 +v 0.000000 1.447907 0.071016 +v -0.026419 1.465952 0.063157 +v -0.027870 1.463869 0.061808 +v -0.027772 1.457800 0.060516 +v -0.019323 1.471062 0.068309 +v -0.023570 1.468321 0.065257 +v -0.018205 1.450607 0.066524 +v -0.028489 1.461876 0.060872 +v -0.012701 1.448969 0.069362 +v -0.028519 1.459779 0.060404 +v -0.006830 1.448110 0.070648 +v 0.000000 1.474497 0.074690 +v -0.009267 1.474752 0.073658 +v -0.004619 1.474962 0.074975 +v -0.014224 1.473445 0.071283 +v -0.026055 1.455533 0.061457 +v -0.023175 1.453006 0.063253 +v 0.004500 1.490438 0.084613 +v 0.003472 1.488993 0.082224 +v 0.016500 1.524050 0.049200 +v 0.008669 1.487703 0.072770 +v 0.007120 1.508654 0.076839 +v 0.015400 1.524250 0.049950 +v 0.010950 1.487850 0.071400 +v 0.007135 1.515470 0.071771 +v 0.009449 1.523427 0.059362 +v 0.006967 1.512062 0.074392 +v 0.016213 1.490290 0.071850 +v 0.014561 1.487764 0.070635 +v 0.007012 1.495925 0.086718 +v 0.007912 1.498518 0.085593 +v 0.007950 1.492950 0.085200 +v 0.005075 1.491535 0.085592 +v 0.017849 1.523713 0.049317 +v 0.027909 1.524762 0.042535 +v 0.006251 1.494112 0.086673 +v 0.003263 1.492383 0.087243 +v 0.020870 1.524355 0.046670 +v 0.017300 1.523850 0.049250 +v 0.012558 1.494457 0.080516 +v 0.007666 1.522431 0.063361 +v 0.015100 1.492888 0.076170 +v 0.018624 1.523754 0.049075 +v 0.019148 1.523864 0.048784 +v 0.007841 1.505078 0.079909 +v 0.023224 1.524491 0.046688 +v 0.003145 1.487404 0.077579 +v 0.010700 1.493800 0.082850 +v 0.009226 1.493297 0.084222 +v 0.003762 1.486831 0.075684 +v 0.013400 1.524050 0.052550 +v 0.007290 1.520479 0.066899 +v 0.007075 1.518086 0.069666 +v 0.003068 1.488157 0.079873 +v 0.008204 1.501659 0.083269 +v 0.006298 1.487370 0.074241 +v 0.005607 1.492667 0.086221 +v 0.029820 1.538011 0.053479 +v 0.029975 1.535460 0.051854 +v 0.022655 1.541291 0.058383 +v 0.004631 1.541666 0.063468 +v 0.009806 1.541712 0.062495 +v 0.030165 1.531058 0.050149 +v 0.030253 1.529212 0.048923 +v 0.029840 1.533259 0.050285 +v 0.030360 1.529572 0.050362 +v 0.030372 1.530239 0.050612 +v 0.029637 1.532503 0.049387 +v 0.029693 1.532256 0.049246 +v 0.027671 1.540519 0.055546 +v 0.029842 1.531837 0.049551 +v 0.030415 1.528777 0.047185 +v 0.031235 1.526917 0.042713 +v 0.021294 1.551703 0.061045 +v 0.052438 1.549986 0.041694 +v 0.055550 1.544750 0.039000 +v 0.047669 1.510613 0.044309 +v 0.050350 1.511400 0.042050 +v 0.018586 1.545772 0.062254 +v 0.026633 1.570326 0.053151 +v 0.031183 1.612253 0.006230 +v 0.025033 1.563535 0.056327 +v 0.039899 1.555892 0.051097 +v 0.031322 1.608404 0.015054 +v 0.047573 1.554241 0.045738 +v 0.055410 1.515906 0.035556 +v 0.006407 1.557738 0.062139 +v 0.057000 1.521250 0.033100 +v 0.014452 1.557484 0.060981 +v 0.027655 1.619202 -0.054491 +v 0.013492 1.537749 0.059645 +v 0.038491 1.511269 0.049270 +v 0.041415 1.510904 0.048099 +v 0.031626 1.619606 -0.043643 +v 0.054250 1.513750 0.037600 +v 0.030425 1.587622 0.043038 +v 0.009981 1.531318 0.057230 +v 0.011297 1.534252 0.057544 +v 0.031087 1.593873 0.036455 +v 0.031324 1.599313 0.029619 +v 0.031546 1.615607 -0.004075 +v 0.022319 1.514517 0.052251 +v 0.057500 1.538800 0.036350 +v 0.058100 1.532550 0.034450 +v 0.032263 1.619648 -0.030163 +v 0.031406 1.512072 0.051113 +v 0.057750 1.526700 0.033300 +v 0.015698 1.620824 -0.062572 +v 0.052650 1.512350 0.039800 +v 0.032093 1.556898 0.055351 +v 0.035048 1.511533 0.050181 +v 0.009930 1.528293 0.056852 +v 0.017992 1.516836 0.052905 +v 0.014937 1.519669 0.053809 +v 0.031324 1.604084 0.022698 +v 0.012601 1.522311 0.054996 +v 0.010574 1.525230 0.056359 +v 0.026755 1.512927 0.051954 +v 0.028743 1.578935 0.049280 +v 0.031801 1.618118 -0.016442 +v 0.044633 1.510707 0.046380 +v 0.011454 1.523753 0.055896 +v 0.015953 1.541608 0.060927 +v 0.023334 1.557278 0.058912 +v 0.026419 1.465952 0.063157 +v 0.027870 1.463869 0.061808 +v 0.027772 1.457800 0.060516 +v 0.019323 1.471062 0.068309 +v 0.023570 1.468321 0.065257 +v 0.018205 1.450607 0.066524 +v 0.028489 1.461876 0.060872 +v 0.012701 1.448969 0.069362 +v 0.028519 1.459779 0.060404 +v 0.006830 1.448110 0.070648 +v 0.009267 1.474752 0.073658 +v 0.004619 1.474962 0.074975 +v 0.014224 1.473445 0.071283 +v 0.026055 1.455533 0.061457 +v 0.023175 1.453006 0.063253 +v 0.031451 1.525118 0.037401 +v -0.031451 1.525118 0.037401 +v 0.029824 1.525118 0.050617 +v 0.028260 1.525118 0.050142 +v 0.026818 1.525118 0.049372 +v 0.025609 1.525118 0.048376 +v 0.029856 1.525435 0.050617 +v 0.028321 1.525741 0.050142 +v 0.026907 1.526022 0.049372 +v 0.025722 1.526258 0.048376 +v 0.029948 1.525741 0.050617 +v 0.028503 1.526339 0.050142 +v 0.027171 1.526891 0.049372 +v 0.026054 1.527353 0.048376 +v 0.030098 1.526022 0.050617 +v 0.028798 1.526891 0.050142 +v 0.027599 1.527692 0.049372 +v 0.026594 1.528363 0.048376 +v 0.030301 1.526268 0.050617 +v 0.029195 1.527374 0.050142 +v 0.028175 1.528394 0.049372 +v 0.027320 1.529249 0.048376 +v 0.030547 1.526471 0.050617 +v 0.029678 1.527771 0.050142 +v 0.028877 1.528970 0.049372 +v 0.028206 1.529975 0.048376 +v 0.030828 1.526621 0.050617 +v 0.030230 1.528066 0.050142 +v 0.029678 1.529398 0.049372 +v 0.029216 1.530515 0.048376 +v 0.031134 1.526714 0.050617 +v 0.030828 1.528248 0.050142 +v 0.030547 1.529662 0.049372 +v 0.030311 1.530847 0.048376 +v 0.031451 1.526745 0.050617 +v 0.031451 1.528309 0.050142 +v 0.031451 1.529751 0.049372 +v 0.031451 1.530960 0.048376 +v 0.031768 1.526714 0.050617 +v 0.032074 1.528248 0.050142 +v 0.032355 1.529662 0.049372 +v 0.032591 1.530847 0.048376 +v 0.032074 1.526621 0.050617 +v 0.032672 1.528066 0.050142 +v 0.033224 1.529398 0.049372 +v 0.033686 1.530515 0.048376 +v 0.032355 1.526471 0.050617 +v 0.033224 1.527771 0.050142 +v 0.034025 1.528970 0.049372 +v 0.034696 1.529975 0.048376 +v 0.032601 1.526268 0.050617 +v 0.033707 1.527374 0.050142 +v 0.034727 1.528394 0.049372 +v 0.035582 1.529249 0.048376 +v 0.032804 1.526022 0.050617 +v 0.034104 1.526891 0.050142 +v 0.035303 1.527692 0.049372 +v 0.036308 1.528363 0.048376 +v 0.032954 1.525741 0.050617 +v 0.034399 1.526339 0.050142 +v 0.035731 1.526891 0.049372 +v 0.036848 1.527353 0.048376 +v 0.033047 1.525435 0.050617 +v 0.034581 1.525741 0.050142 +v 0.035995 1.526022 0.049372 +v 0.037180 1.526258 0.048376 +v 0.033078 1.525118 0.050617 +v 0.034642 1.525118 0.050142 +v 0.036084 1.525118 0.049372 +v 0.037293 1.525118 0.048376 +v 0.033047 1.524801 0.050617 +v 0.034581 1.524495 0.050142 +v 0.035995 1.524214 0.049372 +v 0.037180 1.523978 0.048376 +v 0.032954 1.524495 0.050617 +v 0.034399 1.523897 0.050142 +v 0.035731 1.523345 0.049372 +v 0.036848 1.522883 0.048376 +v 0.032804 1.524214 0.050617 +v 0.034104 1.523345 0.050142 +v 0.035303 1.522544 0.049372 +v 0.036308 1.521873 0.048376 +v 0.032601 1.523968 0.050617 +v 0.033707 1.522862 0.050142 +v 0.034727 1.521842 0.049372 +v 0.035582 1.520987 0.048376 +v 0.032355 1.523765 0.050617 +v 0.033224 1.522465 0.050142 +v 0.034025 1.521266 0.049372 +v 0.034696 1.520261 0.048376 +v 0.032074 1.523615 0.050617 +v 0.032672 1.522170 0.050142 +v 0.033224 1.520838 0.049372 +v 0.033686 1.519721 0.048376 +v 0.031768 1.523522 0.050617 +v 0.032074 1.521988 0.050142 +v 0.032355 1.520574 0.049372 +v 0.032591 1.519389 0.048376 +v 0.031451 1.523491 0.050617 +v 0.031451 1.521927 0.050142 +v 0.031451 1.520485 0.049372 +v 0.031451 1.519276 0.048376 +v 0.031134 1.523522 0.050617 +v 0.030828 1.521988 0.050142 +v 0.030547 1.520574 0.049372 +v 0.030311 1.519389 0.048376 +v 0.030828 1.523615 0.050617 +v 0.030230 1.522170 0.050142 +v 0.029678 1.520838 0.049372 +v 0.029216 1.519721 0.048376 +v 0.030547 1.523765 0.050617 +v 0.029678 1.522465 0.050142 +v 0.028877 1.521266 0.049372 +v 0.028206 1.520261 0.048376 +v 0.030301 1.523968 0.050617 +v 0.029195 1.522862 0.050142 +v 0.028175 1.521842 0.049372 +v 0.027320 1.520987 0.048376 +v 0.030098 1.524214 0.050617 +v 0.028798 1.523345 0.050142 +v 0.027599 1.522544 0.049372 +v 0.026594 1.521873 0.048376 +v 0.031451 1.525118 0.050777 +v 0.029948 1.524495 0.050617 +v 0.028503 1.523897 0.050142 +v 0.027171 1.523345 0.049372 +v 0.026054 1.522883 0.048376 +v 0.029856 1.524801 0.050617 +v 0.028321 1.524495 0.050142 +v 0.026907 1.524214 0.049372 +v 0.025722 1.523978 0.048376 +v 0.024430 1.525118 0.047521 +v 0.022607 1.525118 0.046071 +v 0.021051 1.525118 0.044176 +v 0.019895 1.525118 0.042014 +v 0.019184 1.525118 0.039667 +v 0.018943 1.525118 0.037227 +v 0.019184 1.525118 0.034787 +v 0.019895 1.525118 0.032441 +v 0.021051 1.525118 0.030278 +v 0.022607 1.525118 0.028383 +v 0.024502 1.525118 0.026827 +v 0.026665 1.525118 0.025671 +v 0.029011 1.525118 0.024960 +v 0.024565 1.526488 0.047521 +v 0.022777 1.526843 0.046071 +v 0.021251 1.527147 0.044176 +v 0.020117 1.527372 0.042014 +v 0.019419 1.527511 0.039667 +v 0.019184 1.527558 0.037227 +v 0.019419 1.527511 0.034787 +v 0.020117 1.527372 0.032441 +v 0.021251 1.527147 0.030278 +v 0.022777 1.526843 0.028383 +v 0.024636 1.526474 0.026827 +v 0.026756 1.526052 0.025671 +v 0.029058 1.525594 0.024960 +v 0.024965 1.527805 0.047521 +v 0.023280 1.528503 0.046071 +v 0.021843 1.529098 0.044176 +v 0.020775 1.529540 0.042013 +v 0.020117 1.529813 0.039667 +v 0.019895 1.529905 0.037227 +v 0.020117 1.529813 0.034787 +v 0.020775 1.529540 0.032441 +v 0.021843 1.529098 0.030278 +v 0.023280 1.528503 0.028383 +v 0.025031 1.527777 0.026827 +v 0.027029 1.526950 0.025671 +v 0.029197 1.526052 0.024960 +v 0.025613 1.529019 0.047521 +v 0.024097 1.530032 0.046071 +v 0.022804 1.530896 0.044176 +v 0.021843 1.531538 0.042013 +v 0.021251 1.531933 0.039667 +v 0.021051 1.532067 0.037227 +v 0.021251 1.531933 0.034787 +v 0.021843 1.531538 0.032441 +v 0.022804 1.530896 0.030278 +v 0.024097 1.530032 0.028383 +v 0.025673 1.528979 0.026827 +v 0.027471 1.527777 0.025671 +v 0.029422 1.526474 0.024960 +v 0.026486 1.530083 0.047521 +v 0.025197 1.531372 0.046071 +v 0.024097 1.532472 0.044176 +v 0.023280 1.533289 0.042013 +v 0.022777 1.533792 0.039667 +v 0.022607 1.533962 0.037227 +v 0.022777 1.533792 0.034787 +v 0.023280 1.533289 0.032441 +v 0.024097 1.532472 0.030278 +v 0.025197 1.531372 0.028383 +v 0.026537 1.530032 0.026827 +v 0.028066 1.528503 0.025671 +v 0.029726 1.526843 0.024960 +v 0.027550 1.530956 0.047521 +v 0.026537 1.532472 0.046071 +v 0.025673 1.533765 0.044176 +v 0.025031 1.534726 0.042013 +v 0.024636 1.535318 0.039667 +v 0.024502 1.535518 0.037227 +v 0.024636 1.535318 0.034787 +v 0.025031 1.534726 0.032441 +v 0.025673 1.533765 0.030278 +v 0.026537 1.532472 0.028383 +v 0.027590 1.530896 0.026827 +v 0.028792 1.529098 0.025671 +v 0.030095 1.527147 0.024960 +v 0.028764 1.531604 0.047521 +v 0.028066 1.533289 0.046071 +v 0.027471 1.534726 0.044176 +v 0.027029 1.535794 0.042013 +v 0.026756 1.536452 0.039667 +v 0.026665 1.536674 0.037227 +v 0.026756 1.536452 0.034787 +v 0.027029 1.535794 0.032441 +v 0.027471 1.534726 0.030278 +v 0.028066 1.533289 0.028383 +v 0.028792 1.531538 0.026827 +v 0.029619 1.529540 0.025671 +v 0.030517 1.527372 0.024960 +v 0.030081 1.532004 0.047521 +v 0.029726 1.533792 0.046071 +v 0.029422 1.535318 0.044176 +v 0.029197 1.536452 0.042013 +v 0.029058 1.537150 0.039667 +v 0.029011 1.537385 0.037227 +v 0.029058 1.537150 0.034787 +v 0.029197 1.536452 0.032441 +v 0.029422 1.535318 0.030278 +v 0.029726 1.533792 0.028383 +v 0.030095 1.531933 0.026827 +v 0.030517 1.529813 0.025671 +v 0.030975 1.527511 0.024960 +v 0.031451 1.532139 0.047521 +v 0.031451 1.533962 0.046071 +v 0.031451 1.535518 0.044176 +v 0.031451 1.536674 0.042013 +v 0.031451 1.537385 0.039667 +v 0.031451 1.537626 0.037227 +v 0.031451 1.537385 0.034787 +v 0.031451 1.536674 0.032441 +v 0.031451 1.535518 0.030278 +v 0.031451 1.533962 0.028383 +v 0.031451 1.532067 0.026827 +v 0.031451 1.529905 0.025671 +v 0.031451 1.527558 0.024960 +v 0.032821 1.532004 0.047521 +v 0.033176 1.533792 0.046071 +v 0.033480 1.535318 0.044176 +v 0.033705 1.536452 0.042013 +v 0.033844 1.537150 0.039667 +v 0.033891 1.537385 0.037227 +v 0.033844 1.537150 0.034787 +v 0.033705 1.536452 0.032441 +v 0.033480 1.535318 0.030278 +v 0.033176 1.533792 0.028383 +v 0.032807 1.531933 0.026827 +v 0.032385 1.529813 0.025671 +v 0.031927 1.527511 0.024960 +v 0.034138 1.531604 0.047521 +v 0.034836 1.533289 0.046071 +v 0.035431 1.534726 0.044176 +v 0.035873 1.535794 0.042013 +v 0.036146 1.536452 0.039667 +v 0.036238 1.536674 0.037227 +v 0.036146 1.536452 0.034787 +v 0.035873 1.535794 0.032441 +v 0.035431 1.534726 0.030278 +v 0.034836 1.533289 0.028383 +v 0.034110 1.531538 0.026827 +v 0.033283 1.529540 0.025671 +v 0.032385 1.527372 0.024960 +v 0.035352 1.530956 0.047521 +v 0.036365 1.532472 0.046071 +v 0.037229 1.533765 0.044176 +v 0.037871 1.534726 0.042013 +v 0.038266 1.535318 0.039667 +v 0.038400 1.535518 0.037227 +v 0.038266 1.535318 0.034787 +v 0.037871 1.534726 0.032441 +v 0.037229 1.533765 0.030278 +v 0.036365 1.532472 0.028383 +v 0.035312 1.530896 0.026827 +v 0.034110 1.529098 0.025671 +v 0.032807 1.527147 0.024960 +v 0.036416 1.530083 0.047521 +v 0.037705 1.531372 0.046071 +v 0.038805 1.532472 0.044176 +v 0.039622 1.533289 0.042013 +v 0.040125 1.533792 0.039667 +v 0.040295 1.533962 0.037227 +v 0.040125 1.533792 0.034787 +v 0.039622 1.533289 0.032441 +v 0.038805 1.532472 0.030278 +v 0.037705 1.531372 0.028383 +v 0.036365 1.530032 0.026827 +v 0.034836 1.528503 0.025671 +v 0.033176 1.526843 0.024960 +v 0.037289 1.529019 0.047521 +v 0.038805 1.530032 0.046071 +v 0.040098 1.530896 0.044176 +v 0.041059 1.531538 0.042013 +v 0.041651 1.531933 0.039667 +v 0.041851 1.532067 0.037227 +v 0.041651 1.531933 0.034787 +v 0.041059 1.531538 0.032441 +v 0.040098 1.530896 0.030278 +v 0.038805 1.530032 0.028383 +v 0.037229 1.528979 0.026827 +v 0.035431 1.527777 0.025671 +v 0.033480 1.526474 0.024960 +v 0.037937 1.527805 0.047521 +v 0.039622 1.528503 0.046071 +v 0.041059 1.529098 0.044176 +v 0.042127 1.529540 0.042013 +v 0.042785 1.529813 0.039667 +v 0.043007 1.529904 0.037227 +v 0.042785 1.529813 0.034787 +v 0.042127 1.529540 0.032441 +v 0.041059 1.529098 0.030278 +v 0.039622 1.528503 0.028383 +v 0.037871 1.527777 0.026827 +v 0.035873 1.526950 0.025671 +v 0.033705 1.526052 0.024960 +v 0.038337 1.526488 0.047521 +v 0.040125 1.526843 0.046071 +v 0.041651 1.527147 0.044176 +v 0.042785 1.527372 0.042014 +v 0.043483 1.527511 0.039667 +v 0.043718 1.527558 0.037227 +v 0.043483 1.527511 0.034787 +v 0.042785 1.527372 0.032441 +v 0.041651 1.527147 0.030278 +v 0.040125 1.526843 0.028383 +v 0.038266 1.526474 0.026827 +v 0.036146 1.526052 0.025671 +v 0.033844 1.525594 0.024960 +v 0.038472 1.525118 0.047521 +v 0.040295 1.525118 0.046071 +v 0.041851 1.525118 0.044176 +v 0.043007 1.525118 0.042014 +v 0.043718 1.525118 0.039667 +v 0.043959 1.525118 0.037227 +v 0.043718 1.525118 0.034787 +v 0.043007 1.525118 0.032441 +v 0.041851 1.525118 0.030278 +v 0.040295 1.525118 0.028383 +v 0.038400 1.525118 0.026827 +v 0.036238 1.525118 0.025671 +v 0.033891 1.525118 0.024960 +v 0.038337 1.523748 0.047521 +v 0.040125 1.523393 0.046071 +v 0.041651 1.523089 0.044176 +v 0.042785 1.522864 0.042014 +v 0.043483 1.522725 0.039667 +v 0.043718 1.522678 0.037227 +v 0.043483 1.522725 0.034787 +v 0.042785 1.522864 0.032441 +v 0.041651 1.523089 0.030278 +v 0.040125 1.523393 0.028383 +v 0.038266 1.523762 0.026827 +v 0.036146 1.524184 0.025671 +v 0.033844 1.524642 0.024960 +v 0.037937 1.522431 0.047521 +v 0.039622 1.521733 0.046071 +v 0.041059 1.521138 0.044176 +v 0.042127 1.520696 0.042014 +v 0.042785 1.520423 0.039667 +v 0.043007 1.520331 0.037227 +v 0.042785 1.520423 0.034787 +v 0.042127 1.520696 0.032441 +v 0.041059 1.521138 0.030278 +v 0.039622 1.521733 0.028383 +v 0.037871 1.522459 0.026827 +v 0.035873 1.523286 0.025671 +v 0.033705 1.524184 0.024960 +v 0.037289 1.521217 0.047521 +v 0.038805 1.520204 0.046071 +v 0.040098 1.519340 0.044176 +v 0.041059 1.518698 0.042014 +v 0.041651 1.518303 0.039667 +v 0.041851 1.518169 0.037227 +v 0.041651 1.518303 0.034787 +v 0.041059 1.518698 0.032441 +v 0.040098 1.519340 0.030278 +v 0.038805 1.520204 0.028383 +v 0.037229 1.521257 0.026827 +v 0.035431 1.522459 0.025671 +v 0.033480 1.523762 0.024960 +v 0.036416 1.520153 0.047521 +v 0.037705 1.518864 0.046071 +v 0.038805 1.517764 0.044176 +v 0.039622 1.516947 0.042014 +v 0.040125 1.516444 0.039667 +v 0.040295 1.516274 0.037227 +v 0.040125 1.516444 0.034787 +v 0.039622 1.516947 0.032441 +v 0.038805 1.517764 0.030278 +v 0.037705 1.518864 0.028383 +v 0.036365 1.520204 0.026827 +v 0.034836 1.521733 0.025671 +v 0.033176 1.523393 0.024960 +v 0.035352 1.519280 0.047521 +v 0.036365 1.517764 0.046071 +v 0.037229 1.516471 0.044176 +v 0.037871 1.515510 0.042014 +v 0.038266 1.514918 0.039667 +v 0.038400 1.514718 0.037227 +v 0.038266 1.514918 0.034787 +v 0.037871 1.515510 0.032441 +v 0.037229 1.516471 0.030278 +v 0.036365 1.517764 0.028383 +v 0.035312 1.519340 0.026827 +v 0.034110 1.521138 0.025671 +v 0.032807 1.523089 0.024960 +v 0.031451 1.525118 0.024719 +v 0.034138 1.518632 0.047521 +v 0.034836 1.516947 0.046071 +v 0.035431 1.515510 0.044176 +v 0.035873 1.514442 0.042014 +v 0.036146 1.513784 0.039667 +v 0.036238 1.513562 0.037227 +v 0.036146 1.513784 0.034787 +v 0.035873 1.514442 0.032441 +v 0.035431 1.515510 0.030278 +v 0.034836 1.516947 0.028383 +v 0.034110 1.518698 0.026827 +v 0.033283 1.520696 0.025671 +v 0.032385 1.522864 0.024960 +v 0.032821 1.518232 0.047521 +v 0.033176 1.516444 0.046071 +v 0.033480 1.514918 0.044176 +v 0.033705 1.513784 0.042014 +v 0.033844 1.513086 0.039667 +v 0.033891 1.512851 0.037227 +v 0.033844 1.513086 0.034787 +v 0.033705 1.513784 0.032441 +v 0.033480 1.514918 0.030278 +v 0.033176 1.516444 0.028383 +v 0.032807 1.518303 0.026827 +v 0.032385 1.520423 0.025671 +v 0.031927 1.522725 0.024960 +v 0.031451 1.518097 0.047521 +v 0.031451 1.516274 0.046071 +v 0.031451 1.514718 0.044176 +v 0.031451 1.513562 0.042014 +v 0.031451 1.512851 0.039667 +v 0.031451 1.512610 0.037227 +v 0.031451 1.512851 0.034787 +v 0.031451 1.513562 0.032441 +v 0.031451 1.514718 0.030278 +v 0.031451 1.516274 0.028383 +v 0.031451 1.518169 0.026827 +v 0.031451 1.520332 0.025671 +v 0.031451 1.522678 0.024960 +v 0.030081 1.518232 0.047521 +v 0.029726 1.516444 0.046071 +v 0.029422 1.514918 0.044176 +v 0.029197 1.513784 0.042014 +v 0.029058 1.513086 0.039667 +v 0.029011 1.512851 0.037227 +v 0.029058 1.513086 0.034787 +v 0.029197 1.513784 0.032441 +v 0.029422 1.514918 0.030278 +v 0.029726 1.516444 0.028383 +v 0.030095 1.518303 0.026827 +v 0.030517 1.520423 0.025671 +v 0.030975 1.522725 0.024960 +v 0.028764 1.518632 0.047521 +v 0.028066 1.516947 0.046071 +v 0.027471 1.515510 0.044176 +v 0.027029 1.514442 0.042014 +v 0.026756 1.513784 0.039667 +v 0.026665 1.513562 0.037227 +v 0.026756 1.513784 0.034787 +v 0.027029 1.514442 0.032441 +v 0.027471 1.515510 0.030278 +v 0.028066 1.516947 0.028383 +v 0.028792 1.518698 0.026827 +v 0.029619 1.520696 0.025671 +v 0.030517 1.522864 0.024960 +v 0.027550 1.519280 0.047521 +v 0.026537 1.517764 0.046071 +v 0.025673 1.516471 0.044176 +v 0.025031 1.515510 0.042014 +v 0.024636 1.514918 0.039667 +v 0.024502 1.514718 0.037227 +v 0.024636 1.514918 0.034787 +v 0.025031 1.515510 0.032441 +v 0.025673 1.516471 0.030278 +v 0.026537 1.517764 0.028383 +v 0.027590 1.519340 0.026827 +v 0.028792 1.521138 0.025671 +v 0.030095 1.523089 0.024960 +v 0.026486 1.520153 0.047521 +v 0.025197 1.518864 0.046071 +v 0.024097 1.517764 0.044176 +v 0.023280 1.516947 0.042014 +v 0.022777 1.516444 0.039667 +v 0.022607 1.516274 0.037227 +v 0.022777 1.516444 0.034787 +v 0.023280 1.516947 0.032441 +v 0.024097 1.517764 0.030278 +v 0.025197 1.518864 0.028383 +v 0.026537 1.520204 0.026827 +v 0.028066 1.521733 0.025671 +v 0.029726 1.523393 0.024960 +v 0.025613 1.521217 0.047521 +v 0.024097 1.520204 0.046071 +v 0.022804 1.519340 0.044176 +v 0.021843 1.518698 0.042014 +v 0.021251 1.518303 0.039667 +v 0.021051 1.518169 0.037227 +v 0.021251 1.518303 0.034787 +v 0.021843 1.518698 0.032441 +v 0.022804 1.519340 0.030278 +v 0.024097 1.520204 0.028383 +v 0.025673 1.521257 0.026827 +v 0.027471 1.522459 0.025671 +v 0.029422 1.523762 0.024960 +v 0.024965 1.522431 0.047521 +v 0.023280 1.521733 0.046071 +v 0.021843 1.521138 0.044176 +v 0.020775 1.520696 0.042014 +v 0.020117 1.520423 0.039667 +v 0.019895 1.520332 0.037227 +v 0.020117 1.520423 0.034787 +v 0.020775 1.520696 0.032441 +v 0.021843 1.521138 0.030278 +v 0.023280 1.521733 0.028383 +v 0.025031 1.522459 0.026827 +v 0.027029 1.523286 0.025671 +v 0.029197 1.524184 0.024960 +v 0.024565 1.523748 0.047521 +v 0.022777 1.523393 0.046071 +v 0.021251 1.523089 0.044176 +v 0.020117 1.522864 0.042014 +v 0.019419 1.522725 0.039667 +v 0.019184 1.522678 0.037227 +v 0.019419 1.522725 0.034787 +v 0.020117 1.522864 0.032441 +v 0.021251 1.523089 0.030278 +v 0.022777 1.523393 0.028383 +v 0.024636 1.523762 0.026827 +v 0.026756 1.524184 0.025671 +v 0.029058 1.524642 0.024960 +v -0.033078 1.525118 0.050617 +v -0.034642 1.525118 0.050142 +v -0.036084 1.525118 0.049372 +v -0.037293 1.525118 0.048376 +v -0.033047 1.525435 0.050617 +v -0.034581 1.525741 0.050142 +v -0.035995 1.526022 0.049372 +v -0.037180 1.526258 0.048376 +v -0.032954 1.525741 0.050617 +v -0.034399 1.526339 0.050142 +v -0.035731 1.526891 0.049372 +v -0.036848 1.527353 0.048376 +v -0.032804 1.526022 0.050617 +v -0.034104 1.526891 0.050142 +v -0.035303 1.527692 0.049372 +v -0.036308 1.528363 0.048376 +v -0.032601 1.526268 0.050617 +v -0.033707 1.527374 0.050142 +v -0.034727 1.528394 0.049372 +v -0.035582 1.529249 0.048376 +v -0.032355 1.526471 0.050617 +v -0.033224 1.527771 0.050142 +v -0.034025 1.528970 0.049372 +v -0.034696 1.529975 0.048376 +v -0.032074 1.526621 0.050617 +v -0.032672 1.528066 0.050142 +v -0.033224 1.529398 0.049372 +v -0.033686 1.530515 0.048376 +v -0.031768 1.526714 0.050617 +v -0.032074 1.528248 0.050142 +v -0.032355 1.529662 0.049372 +v -0.032591 1.530847 0.048376 +v -0.031451 1.526745 0.050617 +v -0.031451 1.528309 0.050142 +v -0.031451 1.529751 0.049372 +v -0.031451 1.530960 0.048376 +v -0.031134 1.526714 0.050617 +v -0.030828 1.528248 0.050142 +v -0.030547 1.529662 0.049372 +v -0.030311 1.530847 0.048376 +v -0.030828 1.526621 0.050617 +v -0.030230 1.528066 0.050142 +v -0.029678 1.529398 0.049372 +v -0.029216 1.530515 0.048376 +v -0.030547 1.526471 0.050617 +v -0.029678 1.527771 0.050142 +v -0.028877 1.528970 0.049372 +v -0.028206 1.529975 0.048376 +v -0.030301 1.526268 0.050617 +v -0.029195 1.527374 0.050142 +v -0.028175 1.528394 0.049372 +v -0.027320 1.529249 0.048376 +v -0.030098 1.526022 0.050617 +v -0.028798 1.526891 0.050142 +v -0.027599 1.527692 0.049372 +v -0.026594 1.528363 0.048376 +v -0.029948 1.525741 0.050617 +v -0.028503 1.526339 0.050142 +v -0.027171 1.526891 0.049372 +v -0.026054 1.527353 0.048376 +v -0.029856 1.525435 0.050617 +v -0.028321 1.525741 0.050142 +v -0.026907 1.526022 0.049372 +v -0.025722 1.526258 0.048376 +v -0.029824 1.525118 0.050617 +v -0.028260 1.525118 0.050142 +v -0.026818 1.525118 0.049372 +v -0.025609 1.525118 0.048376 +v -0.029856 1.524801 0.050617 +v -0.028321 1.524495 0.050142 +v -0.026907 1.524214 0.049372 +v -0.025722 1.523978 0.048376 +v -0.029948 1.524495 0.050617 +v -0.028503 1.523897 0.050142 +v -0.027171 1.523345 0.049372 +v -0.026054 1.522883 0.048376 +v -0.030098 1.524214 0.050617 +v -0.028798 1.523345 0.050142 +v -0.027599 1.522544 0.049372 +v -0.026594 1.521873 0.048376 +v -0.030301 1.523968 0.050617 +v -0.029195 1.522862 0.050142 +v -0.028175 1.521842 0.049372 +v -0.027320 1.520987 0.048376 +v -0.030547 1.523765 0.050617 +v -0.029678 1.522465 0.050142 +v -0.028877 1.521266 0.049372 +v -0.028206 1.520261 0.048376 +v -0.030828 1.523615 0.050617 +v -0.030230 1.522170 0.050142 +v -0.029678 1.520838 0.049372 +v -0.029216 1.519721 0.048376 +v -0.031134 1.523522 0.050617 +v -0.030828 1.521988 0.050142 +v -0.030547 1.520574 0.049372 +v -0.030311 1.519389 0.048376 +v -0.031451 1.523491 0.050617 +v -0.031451 1.521927 0.050142 +v -0.031451 1.520485 0.049372 +v -0.031451 1.519276 0.048376 +v -0.031768 1.523522 0.050617 +v -0.032074 1.521988 0.050142 +v -0.032355 1.520574 0.049372 +v -0.032591 1.519389 0.048376 +v -0.032074 1.523615 0.050617 +v -0.032672 1.522170 0.050142 +v -0.033224 1.520838 0.049372 +v -0.033686 1.519721 0.048376 +v -0.032355 1.523765 0.050617 +v -0.033224 1.522465 0.050142 +v -0.034025 1.521266 0.049372 +v -0.034696 1.520261 0.048376 +v -0.032601 1.523968 0.050617 +v -0.033707 1.522862 0.050142 +v -0.034727 1.521842 0.049372 +v -0.035582 1.520987 0.048376 +v -0.032804 1.524214 0.050617 +v -0.034104 1.523345 0.050142 +v -0.035303 1.522544 0.049372 +v -0.036308 1.521873 0.048376 +v -0.031451 1.525118 0.050777 +v -0.032954 1.524495 0.050617 +v -0.034399 1.523897 0.050142 +v -0.035731 1.523345 0.049372 +v -0.036848 1.522883 0.048376 +v -0.033047 1.524801 0.050617 +v -0.034581 1.524495 0.050142 +v -0.035995 1.524214 0.049372 +v -0.037180 1.523978 0.048376 +v -0.038472 1.525118 0.047521 +v -0.040295 1.525118 0.046071 +v -0.041851 1.525118 0.044176 +v -0.043007 1.525118 0.042014 +v -0.043718 1.525118 0.039667 +v -0.043959 1.525118 0.037227 +v -0.043718 1.525118 0.034787 +v -0.043007 1.525118 0.032441 +v -0.041851 1.525118 0.030278 +v -0.040295 1.525118 0.028383 +v -0.038400 1.525118 0.026827 +v -0.036238 1.525118 0.025671 +v -0.033891 1.525118 0.024960 +v -0.038337 1.526488 0.047521 +v -0.040125 1.526843 0.046071 +v -0.041651 1.527147 0.044176 +v -0.042785 1.527372 0.042014 +v -0.043483 1.527511 0.039667 +v -0.043718 1.527558 0.037227 +v -0.043483 1.527511 0.034787 +v -0.042785 1.527372 0.032441 +v -0.041651 1.527147 0.030278 +v -0.040125 1.526843 0.028383 +v -0.038266 1.526474 0.026827 +v -0.036146 1.526052 0.025671 +v -0.033844 1.525594 0.024960 +v -0.037937 1.527805 0.047521 +v -0.039622 1.528503 0.046071 +v -0.041059 1.529098 0.044176 +v -0.042127 1.529540 0.042013 +v -0.042785 1.529813 0.039667 +v -0.043007 1.529904 0.037227 +v -0.042785 1.529813 0.034787 +v -0.042127 1.529540 0.032441 +v -0.041059 1.529098 0.030278 +v -0.039622 1.528503 0.028383 +v -0.037871 1.527777 0.026827 +v -0.035873 1.526950 0.025671 +v -0.033705 1.526052 0.024960 +v -0.037289 1.529019 0.047521 +v -0.038805 1.530032 0.046071 +v -0.040098 1.530896 0.044176 +v -0.041059 1.531538 0.042013 +v -0.041651 1.531933 0.039667 +v -0.041851 1.532067 0.037227 +v -0.041651 1.531933 0.034787 +v -0.041059 1.531538 0.032441 +v -0.040098 1.530896 0.030278 +v -0.038805 1.530032 0.028383 +v -0.037229 1.528979 0.026827 +v -0.035431 1.527777 0.025671 +v -0.033480 1.526474 0.024960 +v -0.036416 1.530083 0.047521 +v -0.037705 1.531372 0.046071 +v -0.038805 1.532472 0.044176 +v -0.039622 1.533289 0.042013 +v -0.040125 1.533792 0.039667 +v -0.040295 1.533962 0.037227 +v -0.040125 1.533792 0.034787 +v -0.039622 1.533289 0.032441 +v -0.038805 1.532472 0.030278 +v -0.037705 1.531372 0.028383 +v -0.036365 1.530032 0.026827 +v -0.034836 1.528503 0.025671 +v -0.033176 1.526843 0.024960 +v -0.035352 1.530956 0.047521 +v -0.036365 1.532472 0.046071 +v -0.037229 1.533765 0.044176 +v -0.037871 1.534726 0.042013 +v -0.038266 1.535318 0.039667 +v -0.038400 1.535518 0.037227 +v -0.038266 1.535318 0.034787 +v -0.037871 1.534726 0.032441 +v -0.037229 1.533765 0.030278 +v -0.036365 1.532472 0.028383 +v -0.035312 1.530896 0.026827 +v -0.034110 1.529098 0.025671 +v -0.032807 1.527147 0.024960 +v -0.034138 1.531604 0.047521 +v -0.034836 1.533289 0.046071 +v -0.035431 1.534726 0.044176 +v -0.035873 1.535794 0.042013 +v -0.036146 1.536452 0.039667 +v -0.036238 1.536674 0.037227 +v -0.036146 1.536452 0.034787 +v -0.035873 1.535794 0.032441 +v -0.035431 1.534726 0.030278 +v -0.034836 1.533289 0.028383 +v -0.034110 1.531538 0.026827 +v -0.033283 1.529540 0.025671 +v -0.032385 1.527372 0.024960 +v -0.032821 1.532004 0.047521 +v -0.033176 1.533792 0.046071 +v -0.033480 1.535318 0.044176 +v -0.033705 1.536452 0.042013 +v -0.033844 1.537150 0.039667 +v -0.033891 1.537385 0.037227 +v -0.033844 1.537150 0.034787 +v -0.033705 1.536452 0.032441 +v -0.033480 1.535318 0.030278 +v -0.033176 1.533792 0.028383 +v -0.032807 1.531933 0.026827 +v -0.032385 1.529813 0.025671 +v -0.031927 1.527511 0.024960 +v -0.031451 1.532139 0.047521 +v -0.031451 1.533962 0.046071 +v -0.031451 1.535518 0.044176 +v -0.031451 1.536674 0.042013 +v -0.031451 1.537385 0.039667 +v -0.031451 1.537626 0.037227 +v -0.031451 1.537385 0.034787 +v -0.031451 1.536674 0.032441 +v -0.031451 1.535518 0.030278 +v -0.031451 1.533962 0.028383 +v -0.031451 1.532067 0.026827 +v -0.031451 1.529905 0.025671 +v -0.031451 1.527558 0.024960 +v -0.030081 1.532004 0.047521 +v -0.029726 1.533792 0.046071 +v -0.029422 1.535318 0.044176 +v -0.029197 1.536452 0.042013 +v -0.029058 1.537150 0.039667 +v -0.029011 1.537385 0.037227 +v -0.029058 1.537150 0.034787 +v -0.029197 1.536452 0.032441 +v -0.029422 1.535318 0.030278 +v -0.029726 1.533792 0.028383 +v -0.030095 1.531933 0.026827 +v -0.030517 1.529813 0.025671 +v -0.030975 1.527511 0.024960 +v -0.028764 1.531604 0.047521 +v -0.028066 1.533289 0.046071 +v -0.027471 1.534726 0.044176 +v -0.027029 1.535794 0.042013 +v -0.026756 1.536452 0.039667 +v -0.026665 1.536674 0.037227 +v -0.026756 1.536452 0.034787 +v -0.027029 1.535794 0.032441 +v -0.027471 1.534726 0.030278 +v -0.028066 1.533289 0.028383 +v -0.028792 1.531538 0.026827 +v -0.029619 1.529540 0.025671 +v -0.030517 1.527372 0.024960 +v -0.027550 1.530956 0.047521 +v -0.026537 1.532472 0.046071 +v -0.025673 1.533765 0.044176 +v -0.025031 1.534726 0.042013 +v -0.024636 1.535318 0.039667 +v -0.024502 1.535518 0.037227 +v -0.024636 1.535318 0.034787 +v -0.025031 1.534726 0.032441 +v -0.025673 1.533765 0.030278 +v -0.026537 1.532472 0.028383 +v -0.027590 1.530896 0.026827 +v -0.028792 1.529098 0.025671 +v -0.030095 1.527147 0.024960 +v -0.026486 1.530083 0.047521 +v -0.025197 1.531372 0.046071 +v -0.024097 1.532472 0.044176 +v -0.023280 1.533289 0.042013 +v -0.022777 1.533792 0.039667 +v -0.022607 1.533962 0.037227 +v -0.022777 1.533792 0.034787 +v -0.023280 1.533289 0.032441 +v -0.024097 1.532472 0.030278 +v -0.025197 1.531372 0.028383 +v -0.026537 1.530032 0.026827 +v -0.028066 1.528503 0.025671 +v -0.029726 1.526843 0.024960 +v -0.025613 1.529019 0.047521 +v -0.024097 1.530032 0.046071 +v -0.022804 1.530896 0.044176 +v -0.021843 1.531538 0.042013 +v -0.021251 1.531933 0.039667 +v -0.021051 1.532067 0.037227 +v -0.021251 1.531933 0.034787 +v -0.021843 1.531538 0.032441 +v -0.022804 1.530896 0.030278 +v -0.024097 1.530032 0.028383 +v -0.025673 1.528979 0.026827 +v -0.027471 1.527777 0.025671 +v -0.029422 1.526474 0.024960 +v -0.024965 1.527805 0.047521 +v -0.023280 1.528503 0.046071 +v -0.021843 1.529098 0.044176 +v -0.020775 1.529540 0.042013 +v -0.020117 1.529813 0.039667 +v -0.019895 1.529905 0.037227 +v -0.020117 1.529813 0.034787 +v -0.020775 1.529540 0.032441 +v -0.021843 1.529098 0.030278 +v -0.023280 1.528503 0.028383 +v -0.025031 1.527777 0.026827 +v -0.027029 1.526950 0.025671 +v -0.029197 1.526052 0.024960 +v -0.024565 1.526488 0.047521 +v -0.022777 1.526843 0.046071 +v -0.021251 1.527147 0.044176 +v -0.020117 1.527372 0.042014 +v -0.019419 1.527511 0.039667 +v -0.019184 1.527558 0.037227 +v -0.019419 1.527511 0.034787 +v -0.020117 1.527372 0.032441 +v -0.021251 1.527147 0.030278 +v -0.022777 1.526843 0.028383 +v -0.024636 1.526474 0.026827 +v -0.026756 1.526052 0.025671 +v -0.029058 1.525594 0.024960 +v -0.024430 1.525118 0.047521 +v -0.022607 1.525118 0.046071 +v -0.021051 1.525118 0.044176 +v -0.019895 1.525118 0.042014 +v -0.019184 1.525118 0.039667 +v -0.018943 1.525118 0.037227 +v -0.019184 1.525118 0.034787 +v -0.019895 1.525118 0.032441 +v -0.021051 1.525118 0.030278 +v -0.022607 1.525118 0.028383 +v -0.024502 1.525118 0.026827 +v -0.026665 1.525118 0.025671 +v -0.029011 1.525118 0.024960 +v -0.024565 1.523748 0.047521 +v -0.022777 1.523393 0.046071 +v -0.021251 1.523089 0.044176 +v -0.020117 1.522864 0.042014 +v -0.019419 1.522725 0.039667 +v -0.019184 1.522678 0.037227 +v -0.019419 1.522725 0.034787 +v -0.020117 1.522864 0.032441 +v -0.021251 1.523089 0.030278 +v -0.022777 1.523393 0.028383 +v -0.024636 1.523762 0.026827 +v -0.026756 1.524184 0.025671 +v -0.029058 1.524642 0.024960 +v -0.024965 1.522431 0.047521 +v -0.023280 1.521733 0.046071 +v -0.021843 1.521138 0.044176 +v -0.020775 1.520696 0.042014 +v -0.020117 1.520423 0.039667 +v -0.019895 1.520332 0.037227 +v -0.020117 1.520423 0.034787 +v -0.020775 1.520696 0.032441 +v -0.021843 1.521138 0.030278 +v -0.023280 1.521733 0.028383 +v -0.025031 1.522459 0.026827 +v -0.027029 1.523286 0.025671 +v -0.029197 1.524184 0.024960 +v -0.025613 1.521217 0.047521 +v -0.024097 1.520204 0.046071 +v -0.022804 1.519340 0.044176 +v -0.021843 1.518698 0.042014 +v -0.021251 1.518303 0.039667 +v -0.021051 1.518169 0.037227 +v -0.021251 1.518303 0.034787 +v -0.021843 1.518698 0.032441 +v -0.022804 1.519340 0.030278 +v -0.024097 1.520204 0.028383 +v -0.025673 1.521257 0.026827 +v -0.027471 1.522459 0.025671 +v -0.029422 1.523762 0.024960 +v -0.026486 1.520153 0.047521 +v -0.025197 1.518864 0.046071 +v -0.024097 1.517764 0.044176 +v -0.023280 1.516947 0.042014 +v -0.022777 1.516444 0.039667 +v -0.022607 1.516274 0.037227 +v -0.022777 1.516444 0.034787 +v -0.023280 1.516947 0.032441 +v -0.024097 1.517764 0.030278 +v -0.025197 1.518864 0.028383 +v -0.026537 1.520204 0.026827 +v -0.028066 1.521733 0.025671 +v -0.029726 1.523393 0.024960 +v -0.027550 1.519280 0.047521 +v -0.026537 1.517764 0.046071 +v -0.025673 1.516471 0.044176 +v -0.025031 1.515510 0.042014 +v -0.024636 1.514918 0.039667 +v -0.024502 1.514718 0.037227 +v -0.024636 1.514918 0.034787 +v -0.025031 1.515510 0.032441 +v -0.025673 1.516471 0.030278 +v -0.026537 1.517764 0.028383 +v -0.027590 1.519340 0.026827 +v -0.028792 1.521138 0.025671 +v -0.030095 1.523089 0.024960 +v -0.031451 1.525118 0.024719 +v -0.028764 1.518632 0.047521 +v -0.028066 1.516947 0.046071 +v -0.027471 1.515510 0.044176 +v -0.027029 1.514442 0.042014 +v -0.026756 1.513784 0.039667 +v -0.026665 1.513562 0.037227 +v -0.026756 1.513784 0.034787 +v -0.027029 1.514442 0.032441 +v -0.027471 1.515510 0.030278 +v -0.028066 1.516947 0.028383 +v -0.028792 1.518698 0.026827 +v -0.029619 1.520696 0.025671 +v -0.030517 1.522864 0.024960 +v -0.030081 1.518232 0.047521 +v -0.029726 1.516444 0.046071 +v -0.029422 1.514918 0.044176 +v -0.029197 1.513784 0.042014 +v -0.029058 1.513086 0.039667 +v -0.029011 1.512851 0.037227 +v -0.029058 1.513086 0.034787 +v -0.029197 1.513784 0.032441 +v -0.029422 1.514918 0.030278 +v -0.029726 1.516444 0.028383 +v -0.030095 1.518303 0.026827 +v -0.030517 1.520423 0.025671 +v -0.030975 1.522725 0.024960 +v -0.031451 1.518097 0.047521 +v -0.031451 1.516274 0.046071 +v -0.031451 1.514718 0.044176 +v -0.031451 1.513562 0.042014 +v -0.031451 1.512851 0.039667 +v -0.031451 1.512610 0.037227 +v -0.031451 1.512851 0.034787 +v -0.031451 1.513562 0.032441 +v -0.031451 1.514718 0.030278 +v -0.031451 1.516274 0.028383 +v -0.031451 1.518169 0.026827 +v -0.031451 1.520332 0.025671 +v -0.031451 1.522678 0.024960 +v -0.032821 1.518232 0.047521 +v -0.033176 1.516444 0.046071 +v -0.033480 1.514918 0.044176 +v -0.033705 1.513784 0.042014 +v -0.033844 1.513086 0.039667 +v -0.033891 1.512851 0.037227 +v -0.033844 1.513086 0.034787 +v -0.033705 1.513784 0.032441 +v -0.033480 1.514918 0.030278 +v -0.033176 1.516444 0.028383 +v -0.032807 1.518303 0.026827 +v -0.032385 1.520423 0.025671 +v -0.031927 1.522725 0.024960 +v -0.034138 1.518632 0.047521 +v -0.034836 1.516947 0.046071 +v -0.035431 1.515510 0.044176 +v -0.035873 1.514442 0.042014 +v -0.036146 1.513784 0.039667 +v -0.036238 1.513562 0.037227 +v -0.036146 1.513784 0.034787 +v -0.035873 1.514442 0.032441 +v -0.035431 1.515510 0.030278 +v -0.034836 1.516947 0.028383 +v -0.034110 1.518698 0.026827 +v -0.033283 1.520696 0.025671 +v -0.032385 1.522864 0.024960 +v -0.035352 1.519280 0.047521 +v -0.036365 1.517764 0.046071 +v -0.037229 1.516471 0.044176 +v -0.037871 1.515510 0.042014 +v -0.038266 1.514918 0.039667 +v -0.038400 1.514718 0.037227 +v -0.038266 1.514918 0.034787 +v -0.037871 1.515510 0.032441 +v -0.037229 1.516471 0.030278 +v -0.036365 1.517764 0.028383 +v -0.035312 1.519340 0.026827 +v -0.034110 1.521138 0.025671 +v -0.032807 1.523089 0.024960 +v -0.036416 1.520153 0.047521 +v -0.037705 1.518864 0.046071 +v -0.038805 1.517764 0.044176 +v -0.039622 1.516947 0.042014 +v -0.040125 1.516444 0.039667 +v -0.040295 1.516274 0.037227 +v -0.040125 1.516444 0.034787 +v -0.039622 1.516947 0.032441 +v -0.038805 1.517764 0.030278 +v -0.037705 1.518864 0.028383 +v -0.036365 1.520204 0.026827 +v -0.034836 1.521733 0.025671 +v -0.033176 1.523393 0.024960 +v -0.037289 1.521217 0.047521 +v -0.038805 1.520204 0.046071 +v -0.040098 1.519340 0.044176 +v -0.041059 1.518698 0.042014 +v -0.041651 1.518303 0.039667 +v -0.041851 1.518169 0.037227 +v -0.041651 1.518303 0.034787 +v -0.041059 1.518698 0.032441 +v -0.040098 1.519340 0.030278 +v -0.038805 1.520204 0.028383 +v -0.037229 1.521257 0.026827 +v -0.035431 1.522459 0.025671 +v -0.033480 1.523762 0.024960 +v -0.037937 1.522431 0.047521 +v -0.039622 1.521733 0.046071 +v -0.041059 1.521138 0.044176 +v -0.042127 1.520696 0.042014 +v -0.042785 1.520423 0.039667 +v -0.043007 1.520331 0.037227 +v -0.042785 1.520423 0.034787 +v -0.042127 1.520696 0.032441 +v -0.041059 1.521138 0.030278 +v -0.039622 1.521733 0.028383 +v -0.037871 1.522459 0.026827 +v -0.035873 1.523286 0.025671 +v -0.033705 1.524184 0.024960 +v -0.038337 1.523748 0.047521 +v -0.040125 1.523393 0.046071 +v -0.041651 1.523089 0.044176 +v -0.042785 1.522864 0.042014 +v -0.043483 1.522725 0.039667 +v -0.043718 1.522678 0.037227 +v -0.043483 1.522725 0.034787 +v -0.042785 1.522864 0.032441 +v -0.041651 1.523089 0.030278 +v -0.040125 1.523393 0.028383 +v -0.038266 1.523762 0.026827 +v -0.036146 1.524184 0.025671 +v -0.033844 1.524642 0.024960 +usemtl material_1 +vt 0.827841 0.456444 +vt 0.826865 0.455402 +vt 0.827907 0.456096 +vt 0.842058 0.471775 +vt 0.837976 0.467212 +vt 0.842847 0.461572 +vt 0.870015 0.218946 +vt 0.894946 0.209010 +vt 0.891536 0.243748 +vt 0.626067 0.713548 +vt 0.646852 0.690397 +vt 0.655533 0.703344 +vt 0.873927 0.494550 +vt 0.876257 0.493740 +vt 0.875382 0.496354 +vt 0.872019 0.483542 +vt 0.870940 0.482536 +vt 0.871472 0.470778 +vt 0.871509 0.449954 +vt 0.872148 0.460940 +vt 0.869884 0.450896 +vt 0.165800 0.455529 +vt 0.164845 0.456567 +vt 0.164776 0.456219 +vt 0.154869 0.467361 +vt 0.150856 0.471940 +vt 0.149956 0.461721 +vt 0.838315 0.395768 +vt 0.844026 0.400208 +vt 0.840380 0.402876 +vt 0.846600 0.382012 +vt 0.849120 0.393760 +vt 0.841435 0.384948 +vt 0.862553 0.515661 +vt 0.863353 0.509890 +vt 0.865905 0.512859 +vt 0.903197 0.443541 +vt 0.890997 0.445717 +vt 0.896335 0.420583 +vt 0.864481 0.490056 +vt 0.865943 0.493748 +vt 0.862936 0.493077 +vt 0.878909 0.496392 +vt 0.877836 0.499308 +vt 0.823238 0.423976 +vt 0.816272 0.418672 +vt 0.824230 0.409451 +vt 0.838080 0.460496 +vt 0.836168 0.468022 +vt 0.870187 0.437303 +vt 0.863523 0.429405 +vt 0.865693 0.426083 +vt 0.863829 0.437613 +vt 0.863830 0.440753 +vt 0.857959 0.433341 +vt 0.867019 0.499853 +vt 0.864036 0.505455 +vt 0.863152 0.504591 +vt 0.897221 0.488439 +vt 0.899057 0.503323 +vt 0.896823 0.503983 +vt 0.866905 0.491780 +vt 0.869888 0.490883 +vt 0.868763 0.493053 +vt 0.844697 0.494535 +vt 0.847181 0.492958 +vt 0.846961 0.495396 +vt 0.888614 0.415091 +vt 0.878802 0.397244 +vt 0.876764 0.389051 +vt 0.836173 0.388504 +vt 0.834026 0.395287 +vt 0.831825 0.387866 +vt 0.850583 0.499869 +vt 0.851510 0.496872 +vt 0.854041 0.497539 +vt 0.866125 0.487052 +vt 0.868225 0.489363 +vt 0.868953 0.463043 +vt 0.862904 0.475192 +vt 0.864392 0.461427 +vt 0.872170 0.490753 +vt 0.873166 0.482859 +vt 0.814715 0.439052 +vt 0.820247 0.442227 +vt 0.815386 0.446010 +vt 0.874814 0.407608 +vt 0.875562 0.396903 +vt 0.879540 0.411076 +vt 0.857822 0.497888 +vt 0.854636 0.491664 +vt 0.857133 0.491101 +vt 0.852684 0.402568 +vt 0.859029 0.403657 +vt 0.857200 0.408243 +vt 0.863556 0.485000 +vt 0.861944 0.487965 +vt 0.817191 0.430877 +vt 0.822995 0.435592 +vt 0.820870 0.466724 +vt 0.824843 0.464314 +vt 0.825851 0.465959 +vt 0.815771 0.465966 +vt 0.817856 0.463741 +vt 0.818798 0.467103 +vt 0.826902 0.466657 +vt 0.826344 0.465087 +vt 0.826963 0.465058 +vt 0.867416 0.476409 +vt 0.870879 0.466015 +vt 0.869476 0.479087 +vt 0.835489 0.444680 +vt 0.839104 0.439991 +vt 0.837491 0.446209 +vt 0.818719 0.449140 +vt 0.824589 0.446916 +vt 0.821894 0.452148 +vt 0.873450 0.448904 +vt 0.878909 0.459689 +vt 0.875985 0.460354 +vt 0.872027 0.503703 +vt 0.875232 0.504611 +vt 0.873706 0.507233 +vt 0.913942 0.372248 +vt 0.910810 0.410742 +vt 0.892795 0.368057 +vt 0.851839 0.409438 +vt 0.855720 0.414436 +vt 0.849343 0.501995 +vt 0.852223 0.501391 +vt 0.855562 0.503813 +vt 0.838856 0.492407 +vt 0.836210 0.497003 +vt 0.835143 0.493577 +vt 0.833641 0.524315 +vt 0.825758 0.523817 +vt 0.824494 0.509354 +vt 0.876011 0.382443 +vt 0.848993 0.398547 +vt 0.841142 0.391893 +vt 0.836186 0.380433 +vt 0.840694 0.489359 +vt 0.844147 0.488818 +vt 0.842631 0.492279 +vt 0.866551 0.496353 +vt 0.867676 0.494849 +vt 0.865297 0.497855 +vt 0.862330 0.499569 +vt 0.864020 0.496699 +vt 0.846809 0.489395 +vt 0.845915 0.486975 +vt 0.052020 0.330165 +vt 0.031772 0.301144 +vt 0.058399 0.292781 +vt 0.863402 0.453967 +vt 0.865473 0.447501 +vt 0.868216 0.455204 +vt 0.885552 0.469190 +vt 0.889406 0.487571 +vt 0.886308 0.487255 +vt 0.893600 0.452797 +vt 0.906806 0.470475 +vt 0.898399 0.469472 +vt 0.840313 0.488493 +vt 0.841474 0.486048 +vt 0.814942 0.400565 +vt 0.861999 0.391729 +vt 0.865396 0.386821 +vt 0.867006 0.399398 +vt 0.827310 0.462459 +vt 0.827830 0.464426 +vt 0.840662 0.499750 +vt 0.839852 0.495550 +vt 0.853694 0.398236 +vt 0.831159 0.479268 +vt 0.822201 0.482616 +vt 0.825611 0.471616 +vt 0.834363 0.443763 +vt 0.835726 0.439241 +vt 0.848779 0.405351 +vt 0.842170 0.480592 +vt 0.846995 0.474293 +vt 0.843139 0.481763 +vt 0.854377 0.382884 +vt 0.856214 0.389598 +vt 0.850473 0.382115 +vt 0.848576 0.488354 +vt 0.850112 0.490893 +vt 0.848590 0.490914 +vt 0.848141 0.485157 +vt 0.853582 0.390914 +vt 0.870296 0.457783 +vt 0.870133 0.493228 +vt 0.871296 0.490781 +vt 0.828116 0.456781 +vt 0.828338 0.457060 +vt 0.828099 0.457058 +vt 0.828269 0.456009 +vt 0.828574 0.456299 +vt 0.828169 0.456406 +vt 0.828739 0.454554 +vt 0.830826 0.453572 +vt 0.829438 0.455268 +vt 0.873008 0.490889 +vt 0.872106 0.493568 +vt 0.867798 0.497175 +vt 0.869023 0.495378 +vt 0.813626 0.451266 +vt 0.817093 0.450008 +vt 0.816442 0.452822 +vt 0.824350 0.395864 +vt 0.829501 0.402016 +vt 0.844427 0.472826 +vt 0.848408 0.462167 +vt 0.848950 0.500912 +vt 0.847276 0.525033 +vt 0.853080 0.519142 +vt 0.854777 0.524826 +vt 0.828156 0.455564 +vt 0.828349 0.454453 +vt 0.828385 0.455468 +vt 0.827833 0.456816 +vt 0.826692 0.456246 +vt 0.829235 0.461455 +vt 0.827896 0.458828 +vt 0.828578 0.458422 +vt 0.827866 0.444228 +vt 0.828832 0.437216 +vt 0.831484 0.443654 +vt 0.842333 0.484020 +vt 0.851557 0.433941 +vt 0.852536 0.429870 +vt 0.827043 0.458047 +vt 0.826006 0.461257 +vt 0.825145 0.460133 +vt 0.831353 0.514392 +vt 0.839442 0.512336 +vt 0.839093 0.521955 +vt 0.901202 0.540443 +vt 0.906030 0.547063 +vt 0.893380 0.565617 +vt 0.876358 0.421251 +vt 0.880120 0.426829 +vt 0.865041 0.495361 +vt 0.829413 0.457025 +vt 0.828438 0.456741 +vt 0.827875 0.457305 +vt 0.827333 0.458555 +vt 0.834400 0.484499 +vt 0.838510 0.482213 +vt 0.838422 0.486832 +vt 0.829764 0.434392 +vt 0.822729 0.430085 +vt 0.883518 0.458053 +vt 0.876382 0.447390 +vt 0.880796 0.445447 +vt 0.849181 0.493012 +vt 0.852394 0.492252 +vt 0.818204 0.452463 +vt 0.828647 0.455809 +vt 0.884507 0.499233 +vt 0.858140 0.395432 +vt 0.863034 0.401494 +vt 0.830765 0.459446 +vt 0.829107 0.457866 +vt 0.818032 0.456219 +vt 0.821361 0.455110 +vt 0.821563 0.458333 +vt 0.846693 0.444503 +vt 0.845698 0.453704 +vt 0.842916 0.451400 +vt 0.880686 0.507364 +vt 0.878487 0.510394 +vt 0.858323 0.545975 +vt 0.863625 0.537467 +vt 0.872414 0.538309 +vt 0.809760 0.419093 +vt 0.813500 0.427367 +vt 0.840782 0.491898 +vt 0.840360 0.490638 +vt 0.883175 0.428313 +vt 0.855501 0.437323 +vt 0.855438 0.443606 +vt 0.850535 0.440915 +vt 0.866251 0.507358 +vt 0.860721 0.441452 +vt 0.512697 0.504195 +vt 0.513067 0.504456 +vt 0.512684 0.504669 +vt 0.828563 0.455379 +vt 0.505058 0.505642 +vt 0.507875 0.503852 +vt 0.507972 0.507293 +vt 0.512335 0.508938 +vt 0.510077 0.512472 +vt 0.510052 0.508717 +vt 0.514515 0.503892 +vt 0.513301 0.503601 +vt 0.514308 0.502955 +vt 0.515702 0.499885 +vt 0.513324 0.500964 +vt 0.513730 0.498908 +vt 0.607350 0.540611 +vt 0.618975 0.526944 +vt 0.620706 0.532580 +vt 0.124014 0.218952 +vt 0.099625 0.209027 +vt 0.132266 0.193780 +vt 0.831926 0.429504 +vt 0.869474 0.498017 +vt 0.870133 0.501385 +vt 0.867880 0.500126 +vt 0.856221 0.485346 +vt 0.854964 0.476579 +vt 0.859501 0.475270 +vt 0.877449 0.485093 +vt 0.874834 0.491952 +vt 0.875665 0.483738 +vt 0.873360 0.501225 +vt 0.876614 0.501958 +vt 0.841095 0.479381 +vt 0.805414 0.436792 +vt 0.810321 0.436713 +vt 0.892196 0.594266 +vt 0.881916 0.571862 +vt 0.968926 0.403403 +vt 0.946795 0.365227 +vt 0.967802 0.369636 +vt 0.836877 0.428859 +vt 0.833086 0.413826 +vt 0.837725 0.414975 +vt 0.848004 0.507703 +vt 0.845494 0.509822 +vt 0.843622 0.504405 +vt 0.844002 0.416461 +vt 0.828052 0.457252 +vt 0.828261 0.457238 +vt 0.838708 0.479561 +vt 0.839042 0.477802 +vt 0.873821 0.482824 +vt 0.841574 0.492499 +vt 0.953351 0.429482 +vt 0.971103 0.462460 +vt 0.954995 0.465773 +vt 0.735380 0.595059 +vt 0.746723 0.622955 +vt 0.734142 0.625525 +vt 0.806992 0.474518 +vt 0.809147 0.456029 +vt 0.813424 0.478681 +vt 0.688497 0.515273 +vt 0.675381 0.493409 +vt 0.689271 0.492812 +vt 0.834603 0.403046 +vt 0.837606 0.403441 +vt 0.816953 0.460105 +vt 0.815875 0.463681 +vt 0.815165 0.461557 +vt 0.545483 0.595339 +vt 0.561340 0.585414 +vt 0.549221 0.600940 +vt 0.518794 0.501766 +vt 0.516426 0.504569 +vt 0.515620 0.502466 +vt 0.922067 0.475564 +vt 0.916804 0.515723 +vt 0.917837 0.459539 +vt 0.702609 0.496283 +vt 0.700502 0.518907 +vt 0.598305 0.177246 +vt 0.631221 0.160647 +vt 0.650865 0.188922 +vt 0.844660 0.377072 +vt 0.829147 0.374883 +vt 0.846930 0.370751 +vt 0.511030 0.672679 +vt 0.524864 0.660104 +vt 0.526165 0.675057 +vt 0.560268 0.788311 +vt 0.530673 0.810853 +vt 0.527456 0.791432 +vt 0.950180 0.399125 +vt 0.970058 0.431030 +vt 0.834077 0.471401 +vt 0.837115 0.474679 +vt 0.836102 0.477765 +vt 0.884644 0.415077 +vt 0.529278 0.623530 +vt 0.510111 0.632307 +vt 0.510484 0.616017 +vt 0.566976 0.806985 +vt 0.533546 0.828017 +vt 0.829741 0.487902 +vt 0.834518 0.490395 +vt 0.576070 0.568723 +vt 0.590032 0.548918 +vt 0.591544 0.553315 +vt 0.816021 0.598369 +vt 0.834984 0.572839 +vt 0.828252 0.619165 +vt 0.513764 0.505485 +vt 0.513358 0.503917 +vt 0.514804 0.507870 +vt 0.522578 0.506258 +vt 0.516757 0.510849 +vt 0.512989 0.503347 +vt 0.513175 0.502218 +vt 0.513552 0.502344 +vt 0.512822 0.504016 +vt 0.512796 0.504144 +vt 0.503668 0.508524 +vt 0.502165 0.512866 +vt 0.501425 0.507976 +vt 0.513190 0.512449 +vt 0.510196 0.504111 +vt 0.512053 0.504588 +vt 0.510245 0.505628 +vt 0.511941 0.503989 +vt 0.512554 0.503823 +vt 0.512570 0.503939 +vt 0.512653 0.504160 +vt 0.512338 0.504729 +vt 0.508944 0.499425 +vt 0.510420 0.501562 +vt 0.511322 0.506236 +vt 0.512772 0.503886 +vt 0.849040 0.430210 +vt 0.846823 0.438440 +vt 0.844002 0.435579 +vt 0.852604 0.489893 +vt 0.849713 0.491741 +vt 0.859490 0.512043 +vt 0.872856 0.496911 +vt 0.874405 0.498745 +vt 0.799000 0.494613 +vt 0.783589 0.486921 +vt 0.794853 0.465043 +vt 0.848561 0.495287 +vt 0.872259 0.469466 +vt 0.873147 0.469339 +vt 0.812520 0.657031 +vt 0.843089 0.635107 +vt 0.828194 0.673622 +vt 0.617074 0.583026 +vt 0.620821 0.582710 +vt 0.620252 0.584600 +vt 0.623581 0.584615 +vt 0.622713 0.586620 +vt 0.876467 0.554242 +vt 0.867701 0.582874 +vt 0.617641 0.580805 +vt 0.624187 0.578736 +vt 0.587850 0.592882 +vt 0.593223 0.589141 +vt 0.589369 0.594582 +vt 0.605344 0.536366 +vt 0.840205 0.489942 +vt 0.840085 0.487871 +vt 0.603224 0.575080 +vt 0.593526 0.578528 +vt 0.604336 0.570586 +vt 0.609685 0.577108 +vt 0.611579 0.573168 +vt 0.838182 0.501180 +vt 0.831447 0.499300 +vt 0.583392 0.593640 +vt 0.584890 0.585342 +vt 0.585676 0.587324 +vt 0.880876 0.470091 +vt 0.877545 0.470008 +vt 0.587059 0.590707 +vt 0.592949 0.586449 +vt 0.593757 0.574953 +vt 0.845884 0.517276 +vt 0.850768 0.513058 +vt 0.638269 0.582255 +vt 0.630538 0.582823 +vt 0.634312 0.579590 +vt 0.636311 0.572698 +vt 0.640405 0.575426 +vt 0.496576 0.591923 +vt 0.508928 0.602069 +vt 0.496593 0.603855 +vt 0.605851 0.566318 +vt 0.613550 0.568708 +vt 0.818097 0.425891 +vt 0.877311 0.433336 +vt 0.631134 0.577046 +vt 0.627535 0.580742 +vt 0.627083 0.569172 +vt 0.624238 0.563484 +vt 0.630966 0.565091 +vt 0.644022 0.578574 +vt 0.646048 0.572456 +vt 0.650388 0.576026 +vt 0.646106 0.581556 +vt 0.652481 0.581003 +vt 0.856279 0.529400 +vt 0.863956 0.531768 +vt 0.852631 0.530653 +vt 0.647358 0.565863 +vt 0.653202 0.569565 +vt 0.654610 0.562736 +vt 0.661953 0.567757 +vt 0.658639 0.574156 +vt 0.668028 0.573558 +vt 0.636508 0.566538 +vt 0.635064 0.561020 +vt 0.641742 0.562859 +vt 0.368060 0.714197 +vt 0.347288 0.690679 +vt 0.373206 0.699728 +vt 0.601030 0.582653 +vt 0.595463 0.590613 +vt 0.620449 0.577427 +vt 0.613824 0.580182 +vt 0.616262 0.576571 +vt 0.602971 0.587835 +vt 0.608858 0.595982 +vt 0.606630 0.597002 +vt 0.593675 0.595782 +vt 0.597853 0.591954 +vt 0.604755 0.598589 +vt 0.841014 0.505658 +vt 0.606845 0.561903 +vt 0.618657 0.556448 +vt 0.617669 0.559836 +vt 0.940198 0.473328 +vt 0.954814 0.509723 +vt 0.941717 0.515026 +vt 0.626720 0.634207 +vt 0.636822 0.632162 +vt 0.629149 0.638316 +vt 0.617384 0.634586 +vt 0.618989 0.639365 +vt 0.626287 0.612167 +vt 0.621924 0.613739 +vt 0.623243 0.610213 +vt 0.627677 0.607573 +vt 0.624237 0.606726 +vt 0.620364 0.643831 +vt 0.624525 0.589034 +vt 0.628073 0.589723 +vt 0.626314 0.591851 +vt 0.619302 0.586771 +vt 0.613726 0.598335 +vt 0.613253 0.597093 +vt 0.621266 0.646631 +vt 0.609782 0.653721 +vt 0.609590 0.650317 +vt 0.616548 0.585438 +vt 0.625786 0.586908 +vt 0.633766 0.586250 +vt 0.868540 0.523146 +vt 0.864092 0.520060 +vt 0.867481 0.516529 +vt 0.890929 0.502588 +vt 0.622033 0.591282 +vt 0.613989 0.600950 +vt 0.613890 0.599641 +vt 0.621140 0.589013 +vt 0.628725 0.598126 +vt 0.624071 0.596774 +vt 0.627851 0.595228 +vt 0.613987 0.604688 +vt 0.624498 0.603907 +vt 0.613902 0.605946 +vt 0.614023 0.603477 +vt 0.614042 0.602252 +vt 0.630655 0.593375 +vt 0.639684 0.593254 +vt 0.652386 0.587694 +vt 0.645961 0.597584 +vt 0.645560 0.586568 +vt 0.495457 0.167657 +vt 0.536350 0.159940 +vt 0.536360 0.173776 +vt 0.624571 0.601471 +vt 0.628661 0.603948 +vt 0.661892 0.579842 +vt 0.662230 0.587471 +vt 0.659032 0.600032 +vt 0.673155 0.589137 +vt 0.671188 0.601764 +vt 0.633314 0.599519 +vt 0.629067 0.600946 +vt 0.632284 0.596411 +vt 0.640880 0.605832 +vt 0.649401 0.607973 +vt 0.636899 0.612221 +vt 0.643092 0.615417 +vt 0.613763 0.607310 +vt 0.633479 0.628707 +vt 0.643130 0.625490 +vt 0.671183 0.580956 +vt 0.633474 0.618563 +vt 0.638340 0.622042 +vt 0.630626 0.609444 +vt 0.632324 0.604167 +vt 0.628621 0.615007 +vt 0.602197 0.606482 +vt 0.590147 0.610704 +vt 0.590076 0.608379 +vt 0.626154 0.620744 +vt 0.629593 0.624753 +vt 0.620183 0.621710 +vt 0.621962 0.626056 +vt 0.624159 0.616778 +vt 0.614824 0.625560 +vt 0.616146 0.630314 +vt 0.713764 0.682147 +vt 0.740827 0.657366 +vt 0.727510 0.687880 +vt 0.624110 0.630195 +vt 0.611706 0.659848 +vt 0.623291 0.649980 +vt 0.627693 0.656201 +vt 0.602283 0.609196 +vt 0.592142 0.616797 +vt 0.590957 0.613732 +vt 0.608369 0.623222 +vt 0.610222 0.613525 +vt 0.614127 0.621690 +vt 0.602190 0.607792 +vt 0.586891 0.613965 +vt 0.585111 0.609774 +vt 0.589288 0.617568 +vt 0.861742 0.372864 +vt 0.864851 0.355415 +vt 0.633635 0.518804 +vt 0.572079 0.738226 +vt 0.594420 0.720196 +vt 0.602804 0.733237 +vt 0.882846 0.503671 +vt 0.829832 0.493332 +vt 0.967415 0.627599 +vt 0.951869 0.602418 +vt 0.969915 0.597156 +vt 0.605852 0.614092 +vt 0.602623 0.623295 +vt 0.612999 0.610472 +vt 0.618467 0.618403 +vt 0.611880 0.612203 +vt 0.944497 0.655175 +vt 0.935769 0.634601 +vt 0.949170 0.629601 +vt 0.584545 0.618598 +vt 0.580865 0.613953 +vt 0.595131 0.619368 +vt 0.602539 0.610682 +vt 0.603082 0.612132 +vt 0.578615 0.609968 +vt 0.577721 0.617494 +vt 0.575111 0.612782 +vt 0.581432 0.622873 +vt 0.588887 0.622919 +vt 0.591747 0.620938 +vt 0.586903 0.627316 +vt 0.593472 0.633083 +vt 0.594078 0.628190 +vt 0.595608 0.625378 +vt 0.600734 0.634939 +vt 0.608236 0.632113 +vt 0.608700 0.636571 +vt 0.591943 0.638043 +vt 0.600910 0.630655 +vt 0.608193 0.627519 +vt 0.590113 0.643481 +vt 0.584901 0.632138 +vt 0.599019 0.644959 +vt 0.600064 0.639879 +vt 0.582085 0.598236 +vt 0.579986 0.594846 +vt 0.576821 0.602548 +vt 0.586195 0.604614 +vt 0.584586 0.599055 +vt 0.588547 0.600099 +vt 0.591525 0.595390 +vt 0.579988 0.603322 +vt 0.578209 0.607795 +vt 0.573368 0.610167 +vt 0.584884 0.606497 +vt 0.578919 0.605626 +vt 0.584495 0.608159 +vt 0.602828 0.602238 +vt 0.603497 0.600447 +vt 0.574563 0.620965 +vt 0.578064 0.627607 +vt 0.564820 0.611830 +vt 0.568107 0.613336 +vt 0.565571 0.616286 +vt 0.117210 0.493851 +vt 0.119524 0.494663 +vt 0.118092 0.496461 +vt 0.122329 0.482707 +vt 0.121284 0.483697 +vt 0.121663 0.470888 +vt 0.566433 0.606581 +vt 0.567821 0.609808 +vt 0.121427 0.449965 +vt 0.120919 0.460973 +vt 0.119208 0.460784 +vt 0.574783 0.635192 +vt 0.583111 0.638455 +vt 0.569461 0.605710 +vt 0.573563 0.606920 +vt 0.583094 0.583056 +vt 0.153804 0.395813 +vt 0.148166 0.400258 +vt 0.150946 0.391940 +vt 0.581892 0.581599 +vt 0.593326 0.571358 +vt 0.576582 0.594195 +vt 0.574286 0.594011 +vt 0.619552 0.552929 +vt 0.607395 0.558943 +vt 0.607740 0.555933 +vt 0.671657 0.151136 +vt 0.623360 0.140133 +vt 0.669444 0.564513 +vt 0.143038 0.393787 +vt 0.145432 0.382018 +vt 0.150594 0.384988 +vt 0.667279 0.553935 +vt 0.660996 0.559305 +vt 0.130139 0.509993 +vt 0.130976 0.515745 +vt 0.127630 0.512953 +vt 0.090000 0.443329 +vt 0.102148 0.445512 +vt 0.099618 0.452587 +vt 0.651873 0.555060 +vt 0.646749 0.559214 +vt 0.127396 0.493876 +vt 0.128806 0.490204 +vt 0.130360 0.493207 +vt 0.114594 0.496494 +vt 0.115676 0.499407 +vt 0.175956 0.418777 +vt 0.169078 0.424088 +vt 0.167946 0.409559 +vt 0.154693 0.460640 +vt 0.129095 0.429485 +vt 0.122591 0.437322 +vt 0.126922 0.426147 +vt 0.656382 0.549525 +vt 0.644927 0.547206 +vt 0.641630 0.552313 +vt 0.632092 0.551231 +vt 0.685811 0.586527 +vt 0.128901 0.440913 +vt 0.128874 0.437761 +vt 0.134637 0.433513 +vt 0.692279 0.573440 +vt 0.681662 0.578555 +vt 0.126395 0.499946 +vt 0.129429 0.505565 +vt 0.125558 0.500216 +vt 0.697529 0.581880 +vt 0.688251 0.599122 +vt 0.563943 0.624463 +vt 0.570513 0.627714 +vt 0.564925 0.633617 +vt 0.558059 0.638233 +vt 0.567246 0.644244 +vt 0.559424 0.649226 +vt 0.096339 0.488441 +vt 0.094686 0.503314 +vt 0.095359 0.488082 +vt 0.126427 0.491921 +vt 0.123469 0.491033 +vt 0.125096 0.489518 +vt 0.148451 0.494678 +vt 0.145972 0.493106 +vt 0.147733 0.491278 +vt 0.113607 0.397153 +vt 0.104166 0.414911 +vt 0.115526 0.388903 +vt 0.558152 0.628565 +vt 0.557708 0.616970 +vt 0.562570 0.619754 +vt 0.558072 0.623155 +vt 0.563594 0.607429 +vt 0.561728 0.614173 +vt 0.560378 0.607815 +vt 0.592682 0.566585 +vt 0.580395 0.580325 +vt 0.158063 0.395356 +vt 0.155868 0.388546 +vt 0.160195 0.387914 +vt 0.591798 0.564591 +vt 0.578990 0.578766 +vt 0.572042 0.593431 +vt 0.142643 0.499990 +vt 0.141702 0.497001 +vt 0.144338 0.498530 +vt 0.569248 0.592983 +vt 0.127148 0.487213 +vt 0.955551 0.539937 +vt 0.940933 0.548837 +vt 0.128552 0.461564 +vt 0.124693 0.455365 +vt 0.129459 0.454116 +vt 0.937915 0.440042 +vt 0.621501 0.346150 +vt 0.598586 0.340764 +vt 0.608331 0.329450 +vt 0.124040 0.463188 +vt 0.130206 0.475357 +vt 0.125735 0.476585 +vt 0.718346 0.475276 +vt 0.740050 0.463946 +vt 0.732541 0.489889 +vt 0.121226 0.490893 +vt 0.122083 0.490930 +vt 0.087872 0.524952 +vt 0.094456 0.509046 +vt 0.097096 0.517213 +vt 0.496638 0.645071 +vt 0.496625 0.631456 +vt 0.657002 0.667209 +vt 0.668154 0.675497 +vt 0.640877 0.678015 +vt 0.647816 0.658559 +vt 0.510348 0.455822 +vt 0.496196 0.459443 +vt 0.496203 0.455843 +vt 0.697171 0.627110 +vt 0.688575 0.612696 +vt 0.700980 0.611010 +vt 0.685173 0.626475 +vt 0.677179 0.613209 +vt 0.659318 0.648863 +vt 0.669998 0.654597 +vt 0.690573 0.643419 +vt 0.678244 0.640655 +vt 0.177725 0.439167 +vt 0.172244 0.442356 +vt 0.169441 0.435719 +vt 0.667601 0.637631 +vt 0.116806 0.396831 +vt 0.117675 0.407504 +vt 0.113061 0.410951 +vt 0.701389 0.596194 +vt 0.569947 0.656791 +vt 0.583353 0.662647 +vt 0.579974 0.670936 +vt 0.574124 0.677771 +vt 0.590610 0.692187 +vt 0.597881 0.681450 +vt 0.575217 0.651355 +vt 0.562593 0.661933 +vt 0.512004 0.500921 +vt 0.135470 0.498002 +vt 0.138567 0.491801 +vt 0.139203 0.497657 +vt 0.151168 0.432110 +vt 0.143474 0.430336 +vt 0.145449 0.425274 +vt 0.516445 0.488326 +vt 0.507223 0.483405 +vt 0.519424 0.482924 +vt 0.598283 0.649077 +vt 0.133217 0.403715 +vt 0.139551 0.402627 +vt 0.135087 0.408336 +vt 0.175168 0.430982 +vt 0.102728 0.502646 +vt 0.096889 0.504015 +vt 0.912058 0.689267 +vt 0.907357 0.733069 +vt 0.894950 0.709852 +vt 0.582130 0.645108 +vt 0.584139 0.644258 +vt 0.129668 0.485163 +vt 0.131294 0.488114 +vt 0.524213 0.609833 +vt 0.609219 0.641580 +vt 0.609321 0.646571 +vt 0.630774 0.640755 +vt 0.634069 0.644000 +vt 0.171893 0.466849 +vt 0.167908 0.464449 +vt 0.173095 0.463698 +vt 0.529130 0.575825 +vt 0.516811 0.567236 +vt 0.528800 0.565557 +vt 0.174863 0.463852 +vt 0.176972 0.466065 +vt 0.173963 0.467224 +vt 0.654247 0.621616 +vt 0.649736 0.618365 +vt 0.659657 0.615772 +vt 0.659121 0.622906 +vt 0.657806 0.611827 +vt 0.665029 0.615081 +vt 0.166425 0.465229 +vt 0.165882 0.466799 +vt 0.165807 0.465197 +vt 0.144454 0.462305 +vt 0.148523 0.472982 +vt 0.146000 0.474440 +vt 0.581755 0.650305 +vt 0.122175 0.466145 +vt 0.123731 0.479260 +vt 0.588053 0.650969 +vt 0.138723 0.524964 +vt 0.129487 0.520137 +vt 0.598879 0.670340 +vt 0.597802 0.658869 +vt 0.153467 0.440115 +vt 0.157117 0.444812 +vt 0.155139 0.446345 +vt 0.167973 0.447048 +vt 0.173838 0.449263 +vt 0.170707 0.452281 +vt 0.167236 0.471755 +vt 0.173202 0.470992 +vt 0.170725 0.482753 +vt 0.119500 0.448893 +vt 0.114219 0.459663 +vt 0.116584 0.447365 +vt 0.597704 0.652690 +vt 0.167717 0.395948 +vt 0.162728 0.374933 +vt 0.177105 0.400674 +vt 0.121480 0.503791 +vt 0.118301 0.504705 +vt 0.120134 0.501321 +vt 0.152498 0.482205 +vt 0.154490 0.482386 +vt 0.152980 0.484696 +vt 0.937403 0.610412 +vt 0.650134 0.641770 +vt 0.639670 0.649566 +vt 0.643468 0.637218 +vt 0.079885 0.372002 +vt 0.082758 0.410666 +vt 0.071206 0.415476 +vt 0.140460 0.409517 +vt 0.136635 0.414551 +vt 0.168691 0.509508 +vt 0.161920 0.514516 +vt 0.167555 0.503813 +vt 0.112781 0.486667 +vt 0.658855 0.633603 +vt 0.652118 0.630403 +vt 0.516556 0.320179 +vt 0.495554 0.309736 +vt 0.518283 0.310595 +vt 0.143891 0.502148 +vt 0.141036 0.501496 +vt 0.144269 0.501055 +vt 0.156920 0.497164 +vt 0.154239 0.492572 +vt 0.157942 0.493738 +vt 0.505405 0.363885 +vt 0.495616 0.354825 +vt 0.507392 0.356351 +vt 0.167559 0.524009 +vt 0.159730 0.524467 +vt 0.670031 0.618552 +vt 0.675006 0.626496 +vt 0.665770 0.625329 +vt 0.116235 0.382230 +vt 0.096574 0.420337 +vt 0.810210 0.446784 +vt 0.806560 0.452759 +vt 0.807268 0.445544 +vt 0.898225 0.488134 +vt 0.895254 0.468654 +vt 0.161685 0.499450 +vt 0.155004 0.501350 +vt 0.182428 0.419200 +vt 0.145511 0.499814 +vt 0.146806 0.498153 +vt 0.150486 0.492425 +vt 0.148954 0.488973 +vt 0.901599 0.500491 +vt 0.909515 0.504110 +vt 0.899334 0.509068 +vt 0.138086 0.476747 +vt 0.881500 0.520433 +vt 0.873447 0.523940 +vt 0.878700 0.516993 +vt 0.503805 0.369681 +vt 0.495608 0.363008 +vt 0.862380 0.433351 +vt 0.855370 0.427298 +vt 0.854376 0.422465 +vt 0.504671 0.536218 +vt 0.496478 0.546108 +vt 0.496452 0.536719 +vt 0.868671 0.497700 +vt 0.871113 0.493388 +vt 0.928731 0.370200 +vt 0.934982 0.410495 +vt 0.091285 0.405461 +vt 0.127450 0.355243 +vt 0.591853 0.421981 +vt 0.595072 0.441683 +vt 0.579286 0.440476 +vt 0.815461 0.468621 +vt 0.869930 0.495686 +vt 0.863322 0.495722 +vt 0.861071 0.499198 +vt 0.886046 0.457249 +vt 0.887309 0.468437 +vt 0.884949 0.457500 +vt 0.889009 0.467807 +vt 0.892258 0.488113 +vt 0.151597 0.494415 +vt 0.151537 0.492658 +vt 0.152318 0.492064 +vt 0.513983 0.490628 +vt 0.505197 0.488105 +vt 0.511731 0.495495 +vt 0.508811 0.497471 +vt 0.505713 0.495534 +vt 0.143207 0.398593 +vt 0.140342 0.487287 +vt 0.144954 0.485310 +vt 0.144548 0.488507 +vt 0.119520 0.482929 +vt 0.117974 0.469632 +vt 0.120014 0.469379 +vt 0.863027 0.435676 +vt 0.866641 0.441524 +vt 0.866689 0.442450 +vt 0.859447 0.384333 +vt 0.858188 0.388834 +vt 0.155794 0.380475 +vt 0.153921 0.477972 +vt 0.155801 0.474848 +vt 0.154272 0.479734 +vt 0.869403 0.451247 +vt 0.857741 0.505000 +vt 0.855624 0.506390 +vt 0.855346 0.505082 +vt 0.858856 0.504067 +vt 0.858772 0.505629 +vt 0.152387 0.489511 +vt 0.899227 0.487547 +vt 0.182074 0.436830 +vt 0.178802 0.427464 +vt 0.816356 0.456400 +vt 0.509151 0.448815 +vt 0.496229 0.446032 +vt 0.507452 0.445185 +vt 0.846518 0.499773 +vt 0.847690 0.499671 +vt 0.842088 0.494587 +vt 0.843983 0.497553 +vt 0.843253 0.497798 +vt 0.841529 0.494243 +vt 0.832190 0.437950 +vt 0.833032 0.443705 +vt 0.856721 0.455209 +vt 0.858014 0.462012 +vt 0.126820 0.496465 +vt 0.128304 0.495480 +vt 0.131022 0.499687 +vt 0.128072 0.497957 +vt 0.129326 0.496811 +vt 0.146313 0.489547 +vt 0.147185 0.487129 +vt 0.836807 0.395414 +vt 0.153053 0.429013 +vt 0.148345 0.416555 +vt 0.127337 0.447673 +vt 0.132593 0.447971 +vt 0.107701 0.469174 +vt 0.104093 0.487621 +vt 0.105965 0.468379 +vt 0.870823 0.495902 +vt 0.868386 0.509868 +vt 0.841661 0.497002 +vt 0.086688 0.470289 +vt 0.095034 0.469291 +vt 0.179427 0.478817 +vt 0.151585 0.486208 +vt 0.152753 0.488652 +vt 0.116334 0.421189 +vt 0.112690 0.426725 +vt 0.126773 0.386764 +vt 0.130185 0.391694 +vt 0.125281 0.399326 +vt 0.841673 0.502561 +vt 0.842580 0.500445 +vt 0.844807 0.501959 +vt 0.856067 0.507834 +vt 0.859927 0.506638 +vt 0.877670 0.540256 +vt 0.860885 0.507680 +vt 0.856924 0.509300 +vt 0.131992 0.441625 +vt 0.849388 0.503147 +vt 0.846308 0.501544 +vt 0.846301 0.500559 +vt 0.164936 0.464566 +vt 0.165437 0.462594 +vt 0.134889 0.462173 +vt 0.133575 0.475439 +vt 0.131476 0.461645 +vt 0.152519 0.499924 +vt 0.153281 0.495720 +vt 0.842990 0.456347 +vt 0.826094 0.464213 +vt 0.845951 0.457128 +vt 0.138510 0.398275 +vt 0.161772 0.479427 +vt 0.163263 0.488052 +vt 0.149623 0.504591 +vt 0.152233 0.505835 +vt 0.147824 0.510009 +vt 0.847016 0.455126 +vt 0.166130 0.451324 +vt 0.168069 0.454079 +vt 0.814213 0.500474 +vt 0.986328 0.431641 +vt 0.132405 0.502326 +vt 0.132265 0.499317 +vt 0.105872 0.501131 +vt 0.101277 0.488131 +vt 0.851078 0.425043 +vt 0.847002 0.425162 +vt 0.144619 0.495427 +vt 0.143989 0.493156 +vt 0.872905 0.435104 +vt 0.112404 0.540950 +vt 0.117463 0.554329 +vt 0.103782 0.548600 +vt 0.871495 0.460942 +vt 0.135939 0.389594 +vt 0.137708 0.382847 +vt 0.141577 0.382098 +vt 0.156819 0.439362 +vt 0.158227 0.443897 +vt 0.593085 0.568997 +vt 0.871135 0.460681 +vt 0.850295 0.419238 +vt 0.869330 0.451150 +vt 0.123564 0.451261 +vt 0.122666 0.457921 +vt 0.121885 0.460781 +vt 0.856934 0.448765 +vt 0.860183 0.447818 +vt 0.853972 0.449920 +vt 0.852838 0.445365 +vt 0.150846 0.480761 +vt 0.149900 0.481921 +vt 0.112206 0.520501 +vt 0.112749 0.532131 +vt 0.106476 0.525100 +vt 0.107156 0.487330 +vt 0.174219 0.425998 +vt 0.873566 0.396725 +vt 0.507138 0.568350 +vt 0.496506 0.557105 +vt 0.506955 0.556829 +vt 0.840048 0.484530 +vt 0.841466 0.483081 +vt 0.840797 0.485217 +vt 0.859945 0.454421 +vt 0.861443 0.461495 +vt 0.151824 0.402929 +vt 0.143469 0.405418 +vt 0.840514 0.482035 +vt 0.499339 0.502612 +vt 0.496336 0.507190 +vt 0.496309 0.502312 +vt 0.514640 0.329083 +vt 0.495611 0.336761 +vt 0.495574 0.327991 +vt 0.143041 0.491038 +vt 0.144553 0.491062 +vt 0.145261 0.491917 +vt 0.860830 0.489973 +vt 0.857758 0.487913 +vt 0.154587 0.490677 +vt 0.145308 0.507906 +vt 0.137336 0.507935 +vt 0.144156 0.506192 +vt 0.887687 0.435499 +vt 0.825316 0.448901 +vt 0.828335 0.448233 +vt 0.826493 0.451200 +vt 0.149191 0.496841 +vt 0.859013 0.484650 +vt 0.855113 0.488739 +vt 0.852810 0.487134 +vt 0.866326 0.499152 +vt 0.862646 0.501132 +vt 0.129711 0.531843 +vt 0.137262 0.529517 +vt 0.140890 0.530784 +vt 0.138571 0.390932 +vt 0.825122 0.462901 +vt 0.881463 0.540893 +vt 0.890411 0.539287 +vt 0.890185 0.548544 +vt 0.517524 0.738833 +vt 0.496711 0.756070 +vt 0.496670 0.739258 +vt 0.123253 0.493362 +vt 0.124605 0.493188 +vt 0.158790 0.471568 +vt 0.986328 0.626953 +vt 0.164575 0.456905 +vt 0.164358 0.457185 +vt 0.164254 0.456866 +vt 0.834315 0.505848 +vt 0.825587 0.503685 +vt 0.161841 0.453700 +vt 0.163932 0.454680 +vt 0.163243 0.455395 +vt 0.829213 0.397026 +vt 0.846380 0.498011 +vt 0.164414 0.456134 +vt 0.164114 0.456425 +vt 0.164036 0.455935 +vt 0.822864 0.453260 +vt 0.893447 0.467841 +vt 0.131415 0.503692 +vt 0.130725 0.501248 +vt 0.834744 0.451673 +vt 0.832660 0.448714 +vt 0.120405 0.491017 +vt 0.121315 0.493690 +vt 0.166926 0.466103 +vt 0.125595 0.497283 +vt 0.125695 0.494972 +vt 0.540716 0.609765 +vt 0.534111 0.603239 +vt 0.178927 0.451378 +vt 0.175465 0.450129 +vt 0.177125 0.446127 +vt 0.120599 0.497018 +vt 0.162636 0.402109 +vt 0.130008 0.495838 +vt 0.306173 0.175609 +vt 0.271726 0.157314 +vt 0.320525 0.151226 +vt 0.588936 0.647679 +vt 0.140367 0.519298 +vt 0.146175 0.525177 +vt 0.164522 0.455689 +vt 0.164317 0.454580 +vt 0.164884 0.454495 +vt 0.165981 0.456376 +vt 0.164857 0.456939 +vt 0.593248 0.582888 +vt 0.828108 0.446010 +vt 0.163109 0.456245 +vt 0.163515 0.461586 +vt 0.164821 0.458956 +vt 0.164685 0.444351 +vt 0.163656 0.437341 +vt 0.164294 0.455593 +vt 0.164115 0.455504 +vt 0.843973 0.496693 +vt 0.150714 0.484181 +vt 0.839266 0.456671 +vt 0.835482 0.447027 +vt 0.835077 0.458391 +vt 0.832419 0.463270 +vt 0.157130 0.455048 +vt 0.161233 0.455440 +vt 0.161263 0.457448 +vt 0.141013 0.434082 +vt 0.139986 0.430014 +vt 0.149413 0.442856 +vt 0.156841 0.477939 +vt 0.158598 0.484661 +vt 0.872401 0.421509 +vt 0.864923 0.400484 +vt 0.874771 0.420745 +vt 0.164519 0.456530 +vt 0.164859 0.465746 +vt 0.827853 0.457101 +vt 0.826782 0.457215 +vt 0.971701 0.560564 +vt 0.972241 0.531458 +vt 0.831458 0.455309 +vt 0.831996 0.445359 +vt 0.845799 0.532056 +vt 0.868129 0.448996 +vt 0.835578 0.454916 +vt 0.831453 0.457315 +vt 0.157665 0.458528 +vt 0.824571 0.453950 +vt 0.165654 0.458178 +vt 0.166721 0.461394 +vt 0.165376 0.458683 +vt 0.623362 0.573874 +vt 0.631938 0.570488 +vt 0.627607 0.575167 +vt 0.140795 0.492391 +vt 0.153858 0.512492 +vt 0.158898 0.505998 +vt 0.079974 0.536981 +vt 0.092782 0.540463 +vt 0.098862 0.565130 +vt 0.838484 0.490513 +vt 0.873879 0.460770 +vt 0.163289 0.457152 +vt 0.164823 0.457430 +vt 0.126135 0.441577 +vt 0.124716 0.439457 +vt 0.579609 0.151601 +vt 0.534965 0.142921 +vt 0.162696 0.434514 +vt 0.154613 0.486999 +vt 0.922640 0.415840 +vt 0.109627 0.458019 +vt 0.574187 0.564121 +vt 0.152968 0.488039 +vt 0.152871 0.490109 +vt 0.781214 0.438251 +vt 0.796889 0.436436 +vt 0.847887 0.491769 +vt 0.159548 0.443839 +vt 0.158218 0.438982 +vt 0.160321 0.438074 +vt 0.846460 0.502961 +vt 0.152726 0.490804 +vt 0.834025 0.445028 +vt 0.824334 0.458283 +vt 0.822403 0.455957 +vt 0.824110 0.456095 +vt 0.174386 0.452582 +vt 0.176142 0.452936 +vt 0.136091 0.491238 +vt 0.132418 0.490114 +vt 0.544515 0.865441 +vt 0.497502 0.886260 +vt 0.497474 0.866962 +vt 0.642416 0.737327 +vt 0.619326 0.759157 +vt 0.611275 0.745948 +vt 0.839408 0.428900 +vt 0.838400 0.433958 +vt 0.134055 0.395454 +vt 0.165903 0.457346 +vt 0.164841 0.457225 +vt 0.828944 0.451929 +vt 0.828070 0.452461 +vt 0.848287 0.442841 +vt 0.844662 0.440691 +vt 0.164574 0.452586 +vt 0.161973 0.459579 +vt 0.843203 0.442724 +vt 0.841510 0.438158 +vt 0.835578 0.435477 +vt 0.171270 0.455239 +vt 0.174598 0.456333 +vt 0.171104 0.458461 +vt 0.869775 0.513306 +vt 0.876361 0.513264 +vt 0.871914 0.519527 +vt 0.145959 0.444638 +vt 0.147044 0.453862 +vt 0.142286 0.446903 +vt 0.120239 0.421543 +vt 0.119883 0.435109 +vt 0.115504 0.433332 +vt 0.816892 0.493808 +vt 0.101369 0.592903 +vt 0.112268 0.571927 +vt 0.117596 0.610444 +vt 0.112914 0.507447 +vt 0.116908 0.502055 +vt 0.135412 0.546105 +vt 0.121368 0.538391 +vt 0.130077 0.537561 +vt 0.112192 0.445413 +vt 0.112362 0.470085 +vt 0.690596 0.462505 +vt 0.704884 0.467959 +vt 0.527621 0.400626 +vt 0.532344 0.403463 +vt 0.525828 0.404990 +vt 0.590835 0.856742 +vt 0.557496 0.885355 +vt 0.512562 0.412577 +vt 0.510405 0.414236 +vt 0.509920 0.412702 +vt 0.616530 0.431486 +vt 0.607875 0.448149 +vt 0.513157 0.414386 +vt 0.510772 0.415369 +vt 0.706139 0.544956 +vt 0.693071 0.552724 +vt 0.696843 0.538496 +vt 0.614056 0.371650 +vt 0.596617 0.363660 +vt 0.609313 0.355157 +vt 0.579262 0.472490 +vt 0.599593 0.462834 +vt 0.588878 0.478079 +vt 0.638273 0.556895 +vt 0.509340 0.415427 +vt 0.508982 0.414272 +vt 0.546374 0.512126 +vt 0.551629 0.507151 +vt 0.555587 0.516867 +vt 0.860967 0.502216 +vt 0.861984 0.503578 +vt 0.527162 0.499287 +vt 0.523046 0.496975 +vt 0.534908 0.497467 +vt 0.171035 0.469486 +vt 0.170221 0.493284 +vt 0.163228 0.493474 +vt 0.839064 0.452887 +vt 0.745698 0.586680 +vt 0.731815 0.564972 +vt 0.739753 0.550363 +vt 0.512583 0.506208 +vt 0.529936 0.585635 +vt 0.541892 0.590368 +vt 0.530723 0.594725 +vt 0.137131 0.437484 +vt 0.137258 0.443751 +vt 0.132572 0.507788 +vt 0.514222 0.501409 +vt 0.519405 0.598966 +vt 0.517431 0.588507 +vt 0.885098 0.429574 +vt 0.847930 0.457579 +vt 0.590053 0.603431 +vt 0.602277 0.605207 +vt 0.589971 0.605967 +vt 0.521665 0.513111 +vt 0.528992 0.506912 +vt 0.834313 0.438857 +vt 0.833330 0.436734 +vt 0.495604 0.155380 +vt 0.495763 0.140227 +vt 0.456642 0.142801 +vt 0.819626 0.463578 +vt 0.515322 0.515574 +vt 0.526392 0.515320 +vt 0.522088 0.521893 +vt 0.518357 0.518892 +vt 0.510266 0.435417 +vt 0.503397 0.432709 +vt 0.508429 0.429012 +vt 0.696546 0.704386 +vt 0.708617 0.712859 +vt 0.837775 0.862671 +vt 0.800596 0.904287 +vt 0.807062 0.878193 +vt 0.792384 0.228006 +vt 0.810809 0.205530 +vt 0.827256 0.237922 +vt 0.511452 0.502781 +vt 0.496248 0.490635 +vt 0.502170 0.493027 +vt 0.496263 0.493190 +vt 0.606835 0.873017 +vt 0.581502 0.903595 +vt 0.829584 0.456118 +vt 0.479636 0.504410 +vt 0.480006 0.504149 +vt 0.480021 0.504624 +vt 0.497596 0.905660 +vt 0.502668 0.429395 +vt 0.507072 0.426047 +vt 0.479362 0.500914 +vt 0.476979 0.499827 +vt 0.478947 0.498856 +vt 0.514408 0.430152 +vt 0.519491 0.443818 +vt 0.515806 0.440655 +vt 0.554820 0.487678 +vt 0.550678 0.479113 +vt 0.566053 0.473330 +vt 0.480131 0.503895 +vt 0.480651 0.504547 +vt 0.480085 0.504064 +vt 0.526672 0.488971 +vt 0.533357 0.482286 +vt 0.533546 0.491803 +vt 0.539318 0.489023 +vt 0.522566 0.491348 +vt 0.519136 0.498251 +vt 0.517108 0.496102 +vt 0.802223 0.635054 +vt 0.911653 0.824908 +vt 0.909457 0.776219 +vt 0.937275 0.784646 +vt 0.827920 0.465609 +vt 0.548163 0.753960 +vt 0.524567 0.772294 +vt 0.521114 0.755115 +vt 0.512800 0.503781 +vt 0.789443 0.262334 +vt 0.805713 0.314811 +vt 0.772247 0.268393 +vt 0.823787 0.461097 +vt 0.864087 0.526570 +vt 0.524935 0.455792 +vt 0.522702 0.452061 +vt 0.541686 0.452855 +vt 0.539225 0.447545 +vt 0.496233 0.488112 +vt 0.503545 0.490605 +vt 0.589534 0.391848 +vt 0.577791 0.384208 +vt 0.588611 0.380784 +vt 0.588049 0.403513 +vt 0.601352 0.390783 +vt 0.598814 0.405900 +vt 0.573652 0.431877 +vt 0.555910 0.440236 +vt 0.568941 0.424675 +vt 0.560008 0.455333 +vt 0.543218 0.459099 +vt 0.559393 0.446902 +vt 0.822721 0.458698 +vt 0.612299 0.596173 +vt 0.614196 0.389666 +vt 0.610985 0.408415 +vt 0.600915 0.376482 +vt 0.604171 0.426149 +vt 0.558153 0.401767 +vt 0.569231 0.394169 +vt 0.568140 0.401424 +vt 0.578795 0.392815 +vt 0.568586 0.388067 +vt 0.557248 0.408636 +vt 0.566482 0.409114 +vt 0.537214 0.409458 +vt 0.530182 0.416044 +vt 0.529265 0.410116 +vt 0.127244 0.507464 +vt 0.125146 0.509968 +vt 0.839953 0.448188 +vt 0.715060 0.503416 +vt 0.746934 0.525283 +vt 0.727481 0.517036 +vt 0.917567 0.439888 +vt 0.911571 0.435363 +vt 0.528917 0.405202 +vt 0.526788 0.408573 +vt 0.523558 0.407959 +vt 0.513820 0.415534 +vt 0.544497 0.397804 +vt 0.621038 0.548656 +vt 0.608100 0.552583 +vt 0.546305 0.401817 +vt 0.559107 0.395101 +vt 0.535378 0.405270 +vt 0.558542 0.392259 +vt 0.547091 0.408584 +vt 0.538944 0.416983 +vt 0.547339 0.416702 +vt 0.556224 0.417727 +vt 0.531490 0.440960 +vt 0.544932 0.433189 +vt 0.535487 0.444197 +vt 0.521170 0.434825 +vt 0.512304 0.419513 +vt 0.509637 0.422161 +vt 0.510564 0.418688 +vt 0.526373 0.436745 +vt 0.538877 0.430268 +vt 0.511441 0.424242 +vt 0.516249 0.423275 +vt 0.514804 0.416911 +vt 0.511745 0.417312 +vt 0.511303 0.416420 +vt 0.509763 0.416510 +vt 0.510192 0.417292 +vt 0.511111 0.459534 +vt 0.496174 0.464125 +vt 0.531619 0.112351 +vt 0.495872 0.125641 +vt 0.495922 0.111115 +vt 0.526250 0.426483 +vt 0.532429 0.428046 +vt 0.515662 0.418857 +vt 0.642113 0.585364 +vt 0.638014 0.590149 +vt 0.958163 0.683154 +vt 0.974667 0.727263 +vt 0.948547 0.713584 +vt 0.507264 0.580003 +vt 0.496535 0.569162 +vt 0.551165 0.435415 +vt 0.521241 0.448284 +vt 0.509893 0.452544 +vt 0.627586 0.559022 +vt 0.587537 0.351649 +vt 0.581844 0.328914 +vt 0.512456 0.410520 +vt 0.509192 0.411594 +vt 0.551217 0.387898 +vt 0.555452 0.373888 +vt 0.562644 0.382925 +vt 0.576554 0.361362 +vt 0.556818 0.358955 +vt 0.565554 0.350706 +vt 0.572917 0.377375 +vt 0.584247 0.371036 +vt 0.545776 0.378739 +vt 0.547575 0.364595 +vt 0.573372 0.455862 +vt 0.613185 0.584938 +vt 0.610876 0.595720 +vt 0.565741 0.369285 +vt 0.630099 0.555227 +vt 0.526487 0.397253 +vt 0.511446 0.403299 +vt 0.522995 0.388556 +vt 0.779178 0.865621 +vt 0.818133 0.848992 +vt 0.573557 0.340643 +vt 0.532609 0.376887 +vt 0.531879 0.390520 +vt 0.527872 0.382313 +vt 0.555904 0.330797 +vt 0.496241 0.482658 +vt 0.508994 0.477727 +vt 0.527186 0.342028 +vt 0.532102 0.333509 +vt 0.523723 0.370777 +vt 0.529186 0.363661 +vt 0.539348 0.370736 +vt 0.533212 0.396957 +vt 0.549551 0.340559 +vt 0.538715 0.313464 +vt 0.536257 0.324240 +vt 0.560010 0.318855 +vt 0.542545 0.348792 +vt 0.535360 0.355770 +vt 0.517897 0.358633 +vt 0.496217 0.449866 +vt 0.496210 0.452659 +vt 0.506048 0.501805 +vt 0.503748 0.504458 +vt 0.502951 0.498977 +vt 0.500245 0.497900 +vt 0.505238 0.500152 +vt 0.526393 0.470827 +vt 0.538676 0.474398 +vt 0.523279 0.476930 +vt 0.511587 0.515400 +vt 0.509263 0.517317 +vt 0.507926 0.519037 +vt 0.506925 0.517443 +vt 0.512468 0.517712 +vt 0.508346 0.515004 +vt 0.504635 0.508423 +vt 0.504839 0.513087 +vt 0.502799 0.515370 +vt 0.504546 0.520287 +vt 0.503523 0.517641 +vt 0.506998 0.511702 +vt 0.505680 0.515289 +vt 0.513423 0.701458 +vt 0.496676 0.721244 +vt 0.496674 0.700385 +vt 0.513281 0.519556 +vt 0.515682 0.525436 +vt 0.510898 0.522111 +vt 0.508740 0.527931 +vt 0.505990 0.523424 +vt 0.520906 0.532412 +vt 0.530520 0.528431 +vt 0.512053 0.371570 +vt 0.514715 0.366086 +vt 0.504114 0.438864 +vt 0.516244 0.382517 +vt 0.503897 0.396345 +vt 0.508839 0.377906 +vt 0.519740 0.376361 +vt 0.501592 0.402876 +vt 0.498151 0.405557 +vt 0.498760 0.402038 +vt 0.497085 0.812617 +vt 0.473892 0.501702 +vt 0.476271 0.504514 +vt 0.472945 0.505855 +vt 0.495297 0.405251 +vt 0.495398 0.401461 +vt 0.487660 0.505616 +vt 0.484833 0.503820 +vt 0.486651 0.501775 +vt 0.508756 0.410283 +vt 0.508097 0.411771 +vt 0.507332 0.410840 +vt 0.499975 0.395274 +vt 0.495532 0.394835 +vt 0.512433 0.408124 +vt 0.482669 0.512447 +vt 0.480389 0.508903 +vt 0.482675 0.508687 +vt 0.482274 0.501522 +vt 0.482508 0.504076 +vt 0.481245 0.502740 +vt 0.478183 0.503841 +vt 0.479398 0.503552 +vt 0.479343 0.503869 +vt 0.505628 0.409176 +vt 0.507281 0.407375 +vt 0.521866 0.350561 +vt 0.512286 0.337764 +vt 0.503173 0.407559 +vt 0.504859 0.404679 +vt 0.733657 0.756547 +vt 0.746327 0.721236 +vt 0.762615 0.728409 +vt 0.777683 0.738507 +vt 0.787212 0.698478 +vt 0.800741 0.715520 +vt 0.714002 0.587146 +vt 0.723974 0.602233 +vt 0.714263 0.607027 +vt 0.477070 0.502411 +vt 0.478466 0.501355 +vt 0.793385 0.840092 +vt 0.829469 0.821333 +vt 0.853506 0.871477 +vt 0.893352 0.854190 +vt 0.860410 0.887132 +vt 0.848298 0.836743 +vt 0.931401 0.257462 +vt 0.734656 0.874546 +vt 0.756593 0.892816 +vt 0.708212 0.900978 +vt 0.677667 0.927363 +vt 0.664771 0.899138 +vt 0.496881 0.792407 +vt 0.798186 0.923734 +vt 0.896755 0.321851 +vt 0.866272 0.315934 +vt 0.776610 0.825800 +vt 0.755370 0.850882 +vt 0.870889 0.385338 +vt 0.868375 0.385023 +vt 0.901829 0.405782 +vt 0.577962 0.401685 +vt 0.803765 0.454062 +vt 0.919091 0.325182 +vt 0.508141 0.399056 +vt 0.885073 0.437078 +vt 0.888007 0.447280 +vt 0.613253 0.582441 +vt 0.607792 0.580865 +vt 0.625626 0.494808 +vt 0.605805 0.500095 +vt 0.618592 0.484563 +vt 0.853467 0.379892 +vt 0.856067 0.378506 +vt 0.857310 0.380915 +vt 0.870825 0.532831 +vt 0.877254 0.535470 +vt 0.859359 0.379283 +vt 0.861605 0.381166 +vt 0.635908 0.533490 +vt 0.622640 0.542517 +vt 0.622405 0.537558 +vt 0.955576 0.744383 +vt 0.929285 0.745773 +vt 0.861451 0.377472 +vt 0.865324 0.381150 +vt 0.496610 0.617182 +vt 0.496412 0.524952 +vt 0.500919 0.521205 +vt 0.501516 0.524429 +vt 0.855772 0.375851 +vt 0.763987 0.383409 +vt 0.790724 0.381560 +vt 0.782121 0.408923 +vt 0.849921 0.378538 +vt 0.813714 0.458141 +vt 0.816383 0.266551 +vt 0.817021 0.309268 +vt 0.869605 0.382552 +vt 0.896074 0.529959 +vt 0.890763 0.525173 +vt 0.893818 0.522483 +vt 0.871300 0.485865 +vt 0.875211 0.469610 +vt 0.860547 0.393759 +vt 0.583220 0.416632 +vt 0.496262 0.430323 +vt 0.275629 0.212786 +vt 0.260447 0.184716 +vt 0.597986 0.621892 +vt 0.601471 0.627029 +vt 0.910789 0.567847 +vt 0.837477 0.449665 +vt 0.607836 0.583220 +vt 0.601547 0.585579 +vt 0.641442 0.569290 +vt 0.891717 0.457641 +vt 0.859261 0.502416 +vt 0.374032 0.527031 +vt 0.385766 0.540719 +vt 0.372388 0.532676 +vt 0.515422 0.497172 +vt 0.511436 0.498715 +vt 0.511739 0.496967 +vt 0.858895 0.244265 +vt 0.842644 0.214193 +vt 0.880655 0.486596 +vt 0.175714 0.460212 +vt 0.176836 0.463777 +vt 0.109056 0.499326 +vt 0.885539 0.447508 +vt 0.889706 0.457633 +vt 0.897327 0.511008 +vt 0.896723 0.517194 +vt 0.127065 0.499249 +vt 0.895759 0.535702 +vt 0.889118 0.533454 +vt 0.873903 0.640989 +vt 0.889781 0.659102 +vt 0.871162 0.677372 +vt 0.910038 0.601245 +vt 0.891300 0.622943 +vt 0.121708 0.519615 +vt 0.114955 0.517070 +vt 0.117247 0.513351 +vt 0.880799 0.536163 +vt 0.869393 0.527736 +vt 0.875365 0.528482 +vt 0.880137 0.433566 +vt 0.882567 0.436728 +vt 0.849390 0.504553 +vt 0.782755 0.752257 +vt 0.805886 0.729645 +vt 0.758499 0.787390 +vt 0.787620 0.765824 +vt 0.858718 0.626100 +vt 0.854055 0.659370 +vt 0.827778 0.454368 +vt 0.563991 0.419177 +vt 0.575506 0.411629 +vt 0.602036 0.579051 +vt 0.519208 0.493840 +vt 0.115956 0.485171 +vt 0.118605 0.492071 +vt 0.841335 0.431988 +vt 0.876438 0.611078 +vt 0.630971 0.887634 +vt 0.620961 0.918605 +vt 0.849757 0.698009 +vt 0.838881 0.683261 +vt 0.819717 0.731913 +vt 0.819481 0.752818 +vt 0.845681 0.722403 +vt 0.822423 0.775991 +vt 0.848132 0.752101 +vt 0.868820 0.702788 +vt 0.873191 0.733015 +vt 0.881039 0.532059 +vt 0.887296 0.525042 +vt 0.624362 0.599188 +vt 0.762704 0.798304 +vt 0.792308 0.777292 +vt 0.767442 0.808817 +vt 0.793752 0.796129 +vt 0.826779 0.691096 +vt 0.823396 0.360326 +vt 0.837432 0.353794 +vt 0.160491 0.429626 +vt 0.169641 0.430205 +vt 0.136948 0.485503 +vt 0.772334 0.682395 +vt 0.807641 0.525283 +vt 0.790903 0.526456 +vt 0.764466 0.543330 +vt 0.783086 0.555325 +vt 0.773649 0.592049 +vt 0.125089 0.523227 +vt 0.129539 0.526641 +vt 0.793765 0.599501 +vt 0.777104 0.638269 +vt 0.120883 0.469538 +vt 0.123336 0.501475 +vt 0.123957 0.498119 +vt 0.681220 0.659993 +vt 0.147499 0.517437 +vt 0.142624 0.513239 +vt 0.821763 0.469348 +vt 0.635889 0.539468 +vt 0.144874 0.457728 +vt 0.138784 0.450060 +vt 0.145754 0.455280 +vt 0.151897 0.479557 +vt 0.927190 0.559531 +vt 0.924002 0.586949 +vt 0.871632 0.499215 +vt 0.939129 0.575464 +vt 0.496775 0.773065 +vt 0.512182 0.502386 +vt 0.512249 0.503561 +vt 0.186940 0.436927 +vt 0.542242 0.495094 +vt 0.528193 0.494658 +vt 0.142102 0.419351 +vt 0.954258 0.566655 +vt 0.026627 0.403186 +vt 0.048239 0.364844 +vt 0.044804 0.398632 +vt 0.154283 0.522091 +vt 0.894604 0.516829 +vt 0.894923 0.511104 +vt 0.673244 0.725044 +vt 0.683356 0.734852 +vt 0.963330 0.658076 +vt 0.861350 0.806737 +vt 0.888892 0.810067 +vt 0.889742 0.684185 +vt 0.100373 0.367920 +vt 0.812081 0.808772 +vt 0.134091 0.502519 +vt 0.134519 0.504169 +vt 0.923271 0.621656 +vt 0.933662 0.653654 +vt 0.923245 0.644506 +vt 0.938308 0.676322 +vt 0.924428 0.665299 +vt 0.155566 0.428985 +vt 0.159172 0.413941 +vt 0.498047 0.923828 +vt 0.930272 0.522736 +vt 0.930377 0.477399 +vt 0.496558 0.581177 +vt 0.507950 0.590528 +vt 0.922426 0.526688 +vt 0.847206 0.786251 +vt 0.722598 0.578171 +vt 0.708540 0.568110 +vt 0.714984 0.554815 +vt 0.559332 0.579134 +vt 0.554907 0.557706 +vt 0.569882 0.552118 +vt 0.556184 0.566259 +vt 0.701322 0.559063 +vt 0.552834 0.550107 +vt 0.542384 0.552612 +vt 0.550708 0.540023 +vt 0.120153 0.482992 +vt 0.547982 0.492008 +vt 0.555576 0.499506 +vt 0.563006 0.495411 +vt 0.576610 0.494439 +vt 0.569573 0.508144 +vt 0.567633 0.489816 +vt 0.868056 0.439421 +vt 0.579948 0.528232 +vt 0.564701 0.534777 +vt 0.575773 0.519132 +vt 0.539218 0.520125 +vt 0.543654 0.539955 +vt 0.567410 0.542768 +vt 0.584293 0.537043 +vt 0.541460 0.508150 +vt 0.531686 0.516832 +vt 0.822714 0.461454 +vt 0.818606 0.460085 +vt 0.517337 0.578904 +vt 0.604122 0.613375 +vt 0.547154 0.528836 +vt 0.884307 0.516760 +vt 0.889853 0.520964 +vt 0.107803 0.429420 +vt 0.105305 0.435312 +vt 0.571707 0.558377 +vt 0.557819 0.572631 +vt 0.926279 0.706920 +vt 0.598489 0.487734 +vt 0.585597 0.503678 +vt 0.164138 0.458549 +vt 0.164646 0.457376 +vt 0.593609 0.513869 +vt 0.611453 0.509405 +vt 0.598275 0.522763 +vt 0.609713 0.472319 +vt 0.541731 0.581610 +vt 0.608371 0.585714 +vt 0.127342 0.400460 +vt 0.117889 0.420741 +vt 0.639461 0.634378 +vt 0.199574 0.227939 +vt 0.182088 0.205547 +vt 0.217787 0.194349 +vt 0.185766 0.474706 +vt 0.183433 0.456136 +vt 0.185966 0.452887 +vt 0.630345 0.467897 +vt 0.651839 0.461828 +vt 0.639124 0.479975 +vt 0.885984 0.506148 +vt 0.887740 0.501051 +vt 0.454855 0.159803 +vt 0.412111 0.151479 +vt 0.744264 0.829296 +vt 0.729477 0.822526 +vt 0.619233 0.456856 +vt 0.641231 0.448493 +vt 0.616449 0.518158 +vt 0.541673 0.572517 +vt 0.541304 0.563711 +vt 0.646443 0.511842 +vt 0.630504 0.506987 +vt 0.644504 0.495026 +vt 0.691977 0.669071 +vt 0.713854 0.652273 +vt 0.701432 0.675298 +vt 0.703771 0.648991 +vt 0.721128 0.627228 +vt 0.659743 0.479658 +vt 0.674902 0.459042 +vt 0.587409 0.542803 +vt 0.602181 0.530195 +vt 0.660822 0.502336 +vt 0.675279 0.514770 +vt 0.961043 0.267168 +vt 0.936587 0.292931 +vt 0.609006 0.547667 +vt 0.647505 0.522944 +vt 0.591739 0.557127 +vt 0.608494 0.544179 +vt 0.685582 0.566507 +vt 0.683470 0.547308 +vt 0.676611 0.571168 +vt 0.686388 0.534096 +vt 0.211131 0.438388 +vt 0.197752 0.465227 +vt 0.195407 0.436588 +vt 0.676801 0.559572 +vt 0.672806 0.542921 +vt 0.661263 0.540345 +vt 0.755643 0.406277 +vt 0.730348 0.416677 +vt 0.736441 0.382962 +vt 0.661990 0.530569 +vt 0.661547 0.519412 +vt 0.675141 0.530517 +vt 0.592019 0.560426 +vt 0.577554 0.575786 +vt 0.565456 0.591675 +vt 0.576644 0.572628 +vt 0.563282 0.589137 +vt 0.508508 0.412683 +vt 0.247218 0.622931 +vt 0.258273 0.595016 +vt 0.259780 0.625505 +vt 0.529295 0.554604 +vt 0.496659 0.671205 +vt 0.511232 0.658801 +vt 0.542916 0.679180 +vt 0.552290 0.664245 +vt 0.561314 0.681738 +vt 0.556113 0.605785 +vt 0.552795 0.603805 +vt 0.543467 0.738132 +vt 0.426422 0.807363 +vt 0.460836 0.828084 +vt 0.420582 0.823809 +vt 0.541049 0.622296 +vt 0.548789 0.630162 +vt 0.538146 0.628721 +vt 0.041438 0.429023 +vt 0.024268 0.462301 +vt 0.025410 0.430852 +vt 0.547808 0.640473 +vt 0.388712 0.874477 +vt 0.415288 0.904106 +vt 0.363898 0.889133 +vt 0.304520 0.515275 +vt 0.317494 0.493436 +vt 0.317700 0.514819 +vt 0.927244 0.444976 +vt 0.157559 0.403132 +vt 0.154581 0.415071 +vt 0.154579 0.403512 +vt 0.535788 0.639647 +vt 0.548903 0.651875 +vt 0.535575 0.651299 +vt 0.579010 0.751836 +vt 0.711697 0.524783 +vt 0.524105 0.648034 +vt 0.512224 0.534898 +vt 0.499157 0.507497 +vt 0.501652 0.503505 +vt 0.512037 0.686716 +vt 0.529026 0.689131 +vt 0.585882 0.766223 +vt 0.881142 0.761088 +vt 0.374813 0.919108 +vt 0.328934 0.900180 +vt 0.538760 0.383815 +vt 0.886713 0.512933 +vt 0.883579 0.510282 +vt 0.641367 0.361982 +vt 0.627414 0.366446 +vt 0.549148 0.693845 +vt 0.571604 0.695256 +vt 0.512620 0.503757 +vt 0.512710 0.503911 +vt 0.512631 0.503933 +vt 0.726896 0.716572 +vt 0.852544 0.355225 +vt 0.836203 0.309847 +vt 0.620711 0.699293 +vt 0.618691 0.685290 +vt 0.549706 0.624761 +vt 0.697435 0.743748 +vt 0.747076 0.687839 +vt 0.716922 0.750097 +vt 0.538461 0.663803 +vt 0.502742 0.376614 +vt 0.495592 0.375946 +vt 0.535992 0.506945 +vt 0.685731 0.695491 +vt 0.648277 0.531522 +vt 0.648242 0.539062 +vt 0.569919 0.615546 +vt 0.567350 0.619671 +vt 0.497402 0.847661 +vt 0.497258 0.830253 +vt 0.664094 0.715112 +vt 0.676367 0.687001 +vt 0.583199 0.707776 +vt 0.726790 0.655391 +vt 0.710965 0.627794 +vt 0.556053 0.708190 +vt 0.499857 0.515396 +vt 0.499469 0.512721 +vt 0.758679 0.652398 +vt 0.760912 0.611485 +vt 0.756318 0.568753 +vt 0.447728 0.595421 +vt 0.431841 0.585484 +vt 0.433835 0.579215 +vt 0.468951 0.772473 +vt 0.445251 0.754348 +vt 0.472306 0.755271 +vt 0.750203 0.764327 +vt 0.710324 0.803118 +vt 0.705631 0.790142 +vt 0.693924 0.779829 +vt 0.718486 0.813747 +vt 0.698215 0.846391 +vt 0.681569 0.837010 +vt 0.647750 0.854864 +vt 0.554212 0.770317 +vt 0.671969 0.823394 +vt 0.667754 0.807400 +vt 0.633210 0.840430 +vt 0.622617 0.825545 +vt 0.524926 0.635830 +vt 0.500281 0.517925 +vt 0.679911 0.770766 +vt 0.654052 0.797833 +vt 0.641391 0.786875 +vt 0.612770 0.812847 +vt 0.603576 0.798797 +vt 0.667838 0.867928 +vt 0.632621 0.725895 +vt 0.634105 0.666604 +vt 0.616235 0.672830 +vt 0.579652 0.839562 +vt 0.696245 0.874912 +vt 0.418941 0.564213 +vt 0.417085 0.568824 +vt 0.613493 0.608818 +vt 0.720721 0.851737 +vt 0.458189 0.844527 +vt 0.159468 0.862644 +vt 0.195576 0.903893 +vt 0.143250 0.871607 +vt 0.564791 0.723734 +vt 0.593965 0.782357 +vt 0.651378 0.749264 +vt 0.628274 0.773483 +vt 0.510639 0.646052 +vt 0.906951 0.664799 +vt 0.908048 0.639864 +vt 0.071181 0.475285 +vt 0.074911 0.508701 +vt 0.069036 0.522058 +vt 0.942974 0.330423 +vt 0.963798 0.301244 +vt 0.966389 0.332846 +vt 0.495570 0.319257 +vt 0.393102 0.177156 +vt 0.360617 0.160631 +vt 0.853289 0.378041 +vt 0.881084 0.281512 +vt 0.846312 0.275881 +vt 0.819607 0.470858 +vt 0.910245 0.284814 +vt 0.851133 0.375626 +vt 0.986328 0.302734 +vt 0.986328 0.236328 +vt 0.958748 0.231354 +vt 0.512617 0.504109 +vt 0.576388 0.132918 +vt 0.534131 0.127411 +vt 0.298435 0.704796 +vt 0.267123 0.687771 +vt 0.280797 0.682236 +vt 0.512865 0.503394 +vt 0.812037 0.382048 +vt 0.803885 0.407752 +vt 0.512759 0.504025 +vt 0.663098 0.760932 +vt 0.477842 0.721253 +vt 0.460166 0.703687 +vt 0.479929 0.701540 +vt 0.253594 0.550221 +vt 0.271501 0.535961 +vt 0.261620 0.564847 +vt 0.290347 0.496211 +vt 0.292582 0.518840 +vt 0.247937 0.586554 +vt 0.884227 0.537732 +vt 0.590984 0.599951 +vt 0.831816 0.185975 +vt 0.861880 0.193731 +vt 0.774460 0.194304 +vt 0.754276 0.220467 +vt 0.731676 0.184657 +vt 0.775795 0.122966 +vt 0.822321 0.156767 +vt 0.785955 0.151135 +vt 0.893631 0.173540 +vt 0.854941 0.132560 +vt 0.892355 0.137821 +vt 0.560381 0.062199 +vt 0.527974 0.080184 +vt 0.526501 0.061000 +vt 0.637070 0.047301 +vt 0.669343 0.029555 +vt 0.676534 0.048689 +vt 0.433093 0.788766 +vt 0.463324 0.810986 +vt 0.253407 0.657241 +vt 0.267390 0.655371 +vt 0.452509 0.609819 +vt 0.459101 0.603300 +vt 0.463967 0.623579 +vt 0.483142 0.632332 +vt 0.468342 0.635878 +vt 0.374469 0.760661 +vt 0.352171 0.738389 +vt 0.382516 0.747042 +vt 0.623742 0.411266 +vt 0.641198 0.389007 +vt 0.636611 0.415525 +vt 0.551280 0.618398 +vt 0.545380 0.616404 +vt 0.623233 0.593892 +vt 0.404392 0.857625 +vt 0.438369 0.885525 +vt 0.027789 0.369460 +vt 0.597273 0.045757 +vt 0.632851 0.029051 +vt 0.482293 0.672728 +vt 0.468449 0.660177 +vt 0.482070 0.658839 +vt 0.971919 0.496814 +vt 0.387708 0.536462 +vt 0.401585 0.553433 +vt 0.340867 0.188907 +vt 0.147331 0.377070 +vt 0.144984 0.370718 +vt 0.414545 0.839484 +vt 0.450491 0.865387 +vt 0.108080 0.414927 +vt 0.156670 0.468178 +vt 0.185586 0.525446 +vt 0.202288 0.526556 +vt 0.190820 0.565529 +vt 0.177875 0.598430 +vt 0.158790 0.572951 +vt 0.174423 0.553098 +vt 0.134674 0.244184 +vt 0.150865 0.214208 +vt 0.737942 0.028021 +vt 0.759766 0.009766 +vt 0.775492 0.028180 +vt 0.484258 0.602091 +vt 0.023692 0.560366 +vt 0.038944 0.539523 +vt 0.040481 0.566151 +vt 0.403055 0.549017 +vt 0.538881 0.721562 +vt 0.076371 0.440113 +vt 0.079330 0.469524 +vt 0.478943 0.505439 +vt 0.479901 0.503736 +vt 0.479930 0.503841 +vt 0.477911 0.507827 +vt 0.479709 0.503300 +vt 0.479517 0.502171 +vt 0.479833 0.503349 +vt 0.479880 0.503970 +vt 0.479906 0.504099 +vt 0.490552 0.512925 +vt 0.489026 0.508690 +vt 0.491262 0.508049 +vt 0.479550 0.512420 +vt 0.480761 0.503949 +vt 0.480146 0.503779 +vt 0.480451 0.503519 +vt 0.915584 0.060223 +vt 0.883478 0.079411 +vt 0.875332 0.056639 +vt 0.802216 0.069907 +vt 0.749708 0.046472 +vt 0.790619 0.047418 +vt 0.844160 0.071498 +vt 0.832197 0.051132 +vt 0.482467 0.505594 +vt 0.480050 0.504114 +vt 0.480368 0.504686 +vt 0.484751 0.507266 +vt 0.483070 0.499259 +vt 0.481392 0.506198 +vt 0.480130 0.506166 +vt 0.479141 0.502293 +vt 0.478386 0.502903 +vt 0.851258 0.100520 +vt 0.145774 0.438573 +vt 0.185748 0.314880 +vt 0.201964 0.262337 +vt 0.218894 0.268486 +vt 0.634048 0.546276 +vt 0.628822 0.438314 +vt 0.140573 0.490034 +vt 0.143449 0.491888 +vt 0.133987 0.512145 +vt 0.221921 0.681919 +vt 0.181820 0.656863 +vt 0.191960 0.634821 +vt 0.207008 0.698082 +vt 0.166293 0.673633 +vt 0.151279 0.635159 +vt 0.165886 0.619217 +vt 0.193909 0.494800 +vt 0.209227 0.487046 +vt 0.153841 0.537660 +vt 0.126430 0.582940 +vt 0.124200 0.423441 +vt 0.129219 0.401521 +vt 0.884363 0.532713 +vt 0.368867 0.578555 +vt 0.375378 0.580615 +vt 0.372214 0.582504 +vt 0.375955 0.582837 +vt 0.372792 0.584392 +vt 0.369475 0.584399 +vt 0.370353 0.586399 +vt 0.365542 0.580551 +vt 0.401639 0.595379 +vt 0.399902 0.589095 +vt 0.403800 0.594576 +vt 0.405330 0.592890 +vt 0.400197 0.586433 +vt 0.403200 0.610764 +vt 0.391089 0.606420 +vt 0.403230 0.608440 +vt 0.403174 0.603478 +vt 0.390971 0.605142 +vt 0.390743 0.603762 +vt 0.407057 0.604657 +vt 0.403293 0.606024 +vt 0.408219 0.609822 +vt 0.408809 0.608205 +vt 0.389877 0.575043 +vt 0.399650 0.578571 +vt 0.399914 0.582902 +vt 0.391041 0.578972 +vt 0.383370 0.577000 +vt 0.381507 0.573095 +vt 0.388794 0.570586 +vt 0.407517 0.587359 +vt 0.406127 0.590726 +vt 0.379569 0.568668 +vt 0.387308 0.566354 +vt 0.399435 0.575028 +vt 0.408312 0.585397 +vt 0.409809 0.593665 +vt 0.385817 0.559051 +vt 0.399883 0.571468 +vt 0.386347 0.561974 +vt 0.377681 0.564511 +vt 0.374564 0.556491 +vt 0.375524 0.559860 +vt 0.354885 0.582077 +vt 0.347101 0.581401 +vt 0.349159 0.578424 +vt 0.311704 0.578488 +vt 0.307677 0.566460 +vt 0.316667 0.571084 +vt 0.287043 0.544957 +vt 0.300146 0.552713 +vt 0.291941 0.559036 +vt 0.358809 0.579416 +vt 0.362564 0.582629 +vt 0.359371 0.586049 +vt 0.352744 0.575281 +vt 0.356808 0.572557 +vt 0.361159 0.570356 +vt 0.369698 0.573732 +vt 0.365466 0.575008 +vt 0.372589 0.577261 +vt 0.361961 0.576878 +vt 0.376775 0.576425 +vt 0.371953 0.567674 +vt 0.366003 0.569057 +vt 0.368880 0.563430 +vt 0.362143 0.564996 +vt 0.356613 0.566427 +vt 0.351701 0.569170 +vt 0.347127 0.572334 +vt 0.342824 0.575902 +vt 0.340761 0.580867 +vt 0.340004 0.569468 +vt 0.338597 0.562636 +vt 0.345809 0.565765 +vt 0.334612 0.574059 +vt 0.331272 0.567665 +vt 0.351403 0.562768 +vt 0.354918 0.556834 +vt 0.358069 0.560944 +vt 0.346450 0.559125 +vt 0.365562 0.558993 +vt 0.363100 0.555225 +vt 0.392024 0.582528 +vt 0.397667 0.590555 +vt 0.391532 0.585462 +vt 0.385208 0.583077 +vt 0.385231 0.580717 +vt 0.379190 0.580004 +vt 0.384692 0.585576 +vt 0.382227 0.595612 +vt 0.379858 0.584775 +vt 0.379776 0.582270 +vt 0.390122 0.587723 +vt 0.384255 0.595883 +vt 0.395275 0.591881 +vt 0.388385 0.598503 +vt 0.386498 0.596910 +vt 0.399481 0.595757 +vt 0.389659 0.600365 +vt 0.383849 0.653822 +vt 0.372418 0.646619 +vt 0.384009 0.650371 +vt 0.053832 0.472626 +vt 0.039223 0.509364 +vt 0.039515 0.465368 +vt 0.366854 0.634099 +vt 0.356777 0.632041 +vt 0.360063 0.628566 +vt 0.369411 0.630062 +vt 0.363893 0.624594 +vt 0.376155 0.634478 +vt 0.374597 0.639285 +vt 0.364481 0.638233 +vt 0.371482 0.613538 +vt 0.367084 0.611957 +vt 0.370129 0.609984 +vt 0.365645 0.607344 +vt 0.369092 0.606473 +vt 0.379607 0.607136 +vt 0.379903 0.608653 +vt 0.274395 0.475257 +vt 0.287787 0.467935 +vt 0.367294 0.586687 +vt 0.368567 0.588804 +vt 0.365040 0.589500 +vt 0.355180 0.589953 +vt 0.373746 0.586560 +vt 0.379410 0.598187 +vt 0.371931 0.588782 +vt 0.376491 0.585252 +vt 0.379863 0.596958 +vt 0.371066 0.591035 +vt 0.379198 0.600785 +vt 0.369901 0.593632 +vt 0.366813 0.591615 +vt 0.362503 0.593148 +vt 0.536499 0.844537 +vt 0.368856 0.598914 +vt 0.379321 0.604508 +vt 0.368674 0.601200 +vt 0.364176 0.600707 +vt 0.364482 0.597886 +vt 0.369104 0.596505 +vt 0.365319 0.594987 +vt 0.379223 0.603302 +vt 0.368789 0.603640 +vt 0.364617 0.603712 +vt 0.379437 0.605768 +vt 0.347666 0.586400 +vt 0.351085 0.585190 +vt 0.353534 0.593059 +vt 0.340883 0.587537 +vt 0.347343 0.597409 +vt 0.331398 0.579735 +vt 0.331097 0.587343 +vt 0.334374 0.599886 +vt 0.320193 0.589053 +vt 0.322219 0.601654 +vt 0.322123 0.580871 +vt 0.360907 0.596191 +vt 0.359913 0.599303 +vt 0.335686 0.611681 +vt 0.344013 0.607807 +vt 0.352463 0.605640 +vt 0.356490 0.612031 +vt 0.350358 0.615245 +vt 0.355156 0.621879 +vt 0.343779 0.618211 +vt 0.359965 0.618383 +vt 0.350423 0.625343 +vt 0.360949 0.603952 +vt 0.362705 0.609234 +vt 0.364761 0.614814 +vt 0.369251 0.616591 +vt 0.367272 0.620571 +vt 0.373263 0.621549 +vt 0.371501 0.625902 +vt 0.378642 0.625426 +vt 0.377343 0.630179 +vt 0.381959 0.659977 +vt 0.370444 0.650002 +vt 0.383208 0.613401 +vt 0.385090 0.623118 +vt 0.379324 0.621554 +vt 0.401270 0.616828 +vt 0.391074 0.609131 +vt 0.402424 0.613783 +vt 0.391133 0.607729 +vt 0.406473 0.614008 +vt 0.404107 0.617599 +vt 0.387578 0.613989 +vt 0.390835 0.623223 +vt 0.395466 0.621857 +vt 0.390329 0.612052 +vt 0.398305 0.619366 +vt 0.397842 0.625348 +vt 0.401672 0.620946 +vt 0.385281 0.627419 +vt 0.391996 0.626965 +vt 0.028156 0.627357 +vt 0.043123 0.601900 +vt 0.045959 0.629138 +vt 0.374968 0.618238 +vt 0.380418 0.610319 +vt 0.381547 0.612064 +vt 0.059194 0.634011 +vt 0.050725 0.654777 +vt 0.084193 0.284621 +vt 0.063580 0.257415 +vt 0.102731 0.243708 +vt 0.390849 0.610610 +vt 0.408838 0.618629 +vt 0.412484 0.613994 +vt 0.414702 0.610018 +vt 0.415611 0.617534 +vt 0.418189 0.612816 +vt 0.411931 0.622914 +vt 0.404530 0.622931 +vt 0.406501 0.627344 +vt 0.399986 0.633084 +vt 0.399384 0.628165 +vt 0.392576 0.630591 +vt 0.392759 0.634906 +vt 0.385261 0.632016 +vt 0.401506 0.638069 +vt 0.408490 0.632183 +vt 0.403325 0.643529 +vt 0.410275 0.638515 +vt 0.394483 0.644988 +vt 0.393434 0.639877 +vt 0.413222 0.594870 +vt 0.411137 0.598264 +vt 0.413273 0.603359 +vt 0.408636 0.599075 +vt 0.404663 0.600124 +vt 0.415089 0.607849 +vt 0.408396 0.606542 +vt 0.416436 0.602583 +vt 0.414361 0.605675 +vt 0.402208 0.599973 +vt 0.390352 0.602162 +vt 0.418752 0.621002 +vt 0.423363 0.615564 +vt 0.422811 0.627793 +vt 0.425940 0.619701 +vt 0.415283 0.627655 +vt 0.418600 0.635332 +vt 0.419711 0.606956 +vt 0.423797 0.605738 +vt 0.425440 0.609828 +vt 0.426856 0.606609 +vt 0.428479 0.611872 +vt 0.425164 0.613352 +vt 0.427740 0.616337 +vt 0.419916 0.610202 +vt 0.410116 0.583134 +vt 0.411329 0.581702 +vt 0.400133 0.569132 +vt 0.416623 0.594220 +vt 0.418915 0.594053 +vt 0.373634 0.552961 +vt 0.385444 0.556035 +vt 0.372148 0.548689 +vt 0.385091 0.552709 +vt 0.400517 0.566703 +vt 0.401369 0.564686 +vt 0.323811 0.564428 +vt 0.325225 0.573451 +vt 0.316416 0.559540 +vt 0.325888 0.553878 +vt 0.332202 0.559229 +vt 0.341321 0.554983 +vt 0.336758 0.549494 +vt 0.348209 0.547174 +vt 0.351547 0.552262 +vt 0.361051 0.551214 +vt 0.359074 0.546273 +vt 0.307561 0.586409 +vt 0.305282 0.599058 +vt 0.295917 0.581843 +vt 0.292214 0.596189 +vt 0.301070 0.573398 +vt 0.429350 0.624527 +vt 0.428414 0.633725 +vt 0.435177 0.628717 +vt 0.435293 0.638413 +vt 0.426131 0.644382 +vt 0.433932 0.649404 +vt 0.429706 0.607443 +vt 0.431587 0.614251 +vt 0.432935 0.607835 +vt 0.435631 0.617129 +vt 0.430745 0.619809 +vt 0.435229 0.623303 +vt 0.412827 0.580444 +vt 0.414230 0.578911 +vt 0.421145 0.593451 +vt 0.423936 0.593010 +vt 0.056260 0.439487 +vt 0.052243 0.514090 +vt 0.346023 0.658566 +vt 0.353019 0.678134 +vt 0.336934 0.667208 +vt 0.326024 0.675603 +vt 0.323928 0.654556 +vt 0.312844 0.660001 +vt 0.334525 0.648816 +vt 0.316430 0.613134 +vt 0.308577 0.626462 +vt 0.305072 0.612631 +vt 0.296667 0.627112 +vt 0.292703 0.611015 +vt 0.326210 0.637561 +vt 0.315631 0.640629 +vt 0.303367 0.643423 +vt 0.318697 0.626420 +vt 0.410092 0.662818 +vt 0.423433 0.656946 +vt 0.413433 0.671154 +vt 0.419291 0.678031 +vt 0.430767 0.662123 +vt 0.402913 0.692524 +vt 0.394659 0.670561 +vt 0.395679 0.681716 +vt 0.418169 0.651470 +vt 0.409257 0.644332 +vt 0.404495 0.647751 +vt 0.405374 0.651069 +vt 0.411257 0.645191 +vt 0.395816 0.652803 +vt 0.395227 0.649145 +vt 0.083085 0.688973 +vt 0.088339 0.733007 +vt 0.069192 0.706811 +vt 0.373267 0.643783 +vt 0.384327 0.641554 +vt 0.384248 0.646582 +vt 0.362916 0.640696 +vt 0.359676 0.643967 +vt 0.354199 0.634275 +vt 0.350247 0.637137 +vt 0.346427 0.627743 +vt 0.341549 0.630293 +vt 0.339322 0.621474 +vt 0.334495 0.622778 +vt 0.333884 0.615635 +vt 0.328541 0.614950 +vt 0.411643 0.650403 +vt 0.406540 0.654994 +vt 0.395733 0.659011 +vt 0.057367 0.609682 +vt 0.332479 0.762948 +vt 0.312630 0.735829 +vt 0.343639 0.750744 +vt 0.343634 0.641721 +vt 0.354126 0.649562 +vt 0.366088 0.656254 +vt 0.359693 0.666658 +vt 0.334862 0.633516 +vt 0.327897 0.625219 +vt 0.323594 0.618441 +vt 0.527839 0.542455 +vt 0.182288 0.446891 +vt 0.185196 0.445659 +vt 0.098124 0.468502 +vt 0.084300 0.504015 +vt 0.092151 0.500433 +vt 0.120220 0.524028 +vt 0.122015 0.486027 +vt 0.838344 0.472620 +vt 0.138008 0.505171 +vt 0.137768 0.503899 +vt 0.130264 0.433438 +vt 0.137128 0.427456 +vt 0.129647 0.435799 +vt 0.154558 0.472779 +vt 0.124742 0.497805 +vt 0.123479 0.495803 +vt 0.122603 0.496014 +vt 0.124369 0.495498 +vt 0.065654 0.369858 +vt 0.122290 0.493517 +vt 0.177510 0.461653 +vt 0.177307 0.468733 +vt 0.121831 0.499314 +vt 0.099882 0.467726 +vt 0.104290 0.467705 +vt 0.107147 0.457130 +vt 0.108220 0.457424 +vt 0.109879 0.445237 +vt 0.110751 0.444963 +vt 0.126091 0.442541 +vt 0.126256 0.443021 +vt 0.123040 0.450930 +vt 0.123508 0.451316 +vt 0.132680 0.384281 +vt 0.133964 0.388806 +vt 0.135636 0.505098 +vt 0.137753 0.506484 +vt 0.134624 0.505731 +vt 0.874110 0.839431 +vt 0.094372 0.487453 +vt 0.109688 0.428185 +vt 0.117705 0.483830 +vt 0.176267 0.456514 +vt 0.866519 0.442895 +vt 0.882261 0.445038 +vt 0.146684 0.499924 +vt 0.161083 0.443786 +vt 0.151045 0.494754 +vt 0.149918 0.497974 +vt 0.149188 0.497715 +vt 0.136106 0.455355 +vt 0.164596 0.457182 +vt 0.167616 0.463035 +vt 0.166663 0.464351 +vt 0.734644 0.921134 +vt 0.169994 0.461584 +vt 0.167278 0.449027 +vt 0.164271 0.448360 +vt 0.164469 0.446136 +vt 0.119841 0.507324 +vt 0.138060 0.422596 +vt 0.556944 0.467747 +vt 0.151494 0.497178 +vt 0.150617 0.500626 +vt 0.151543 0.502740 +vt 0.148416 0.502146 +vt 0.133499 0.506742 +vt 0.136515 0.509412 +vt 0.130282 0.504705 +vt 0.883165 0.445363 +vt 0.116153 0.540323 +vt 0.146783 0.503145 +vt 0.143882 0.504737 +vt 0.146918 0.501723 +vt 0.143864 0.503317 +vt 0.146911 0.500723 +vt 0.149789 0.451552 +vt 0.152708 0.448331 +vt 0.721730 0.536070 +vt 0.146571 0.461789 +vt 0.146831 0.457277 +vt 0.149765 0.456493 +vt 0.753802 0.495517 +vt 0.772308 0.507639 +vt 0.178832 0.500669 +vt 0.176112 0.493950 +vt 0.850412 0.446767 +vt 0.141384 0.425168 +vt 0.097803 0.529978 +vt 0.142103 0.441050 +vt 0.121550 0.461007 +vt 0.848863 0.498398 +vt 0.496396 0.521160 +vt 0.144356 0.442975 +vt 0.139862 0.445504 +vt 0.135830 0.448912 +vt 0.132895 0.454569 +vt 0.118767 0.396678 +vt 0.151563 0.483246 +vt 0.152244 0.485379 +vt 0.119078 0.498847 +vt 0.839685 0.537490 +vt 0.819097 0.552963 +vt 0.822803 0.493152 +vt 0.178908 0.458246 +vt 0.135445 0.488063 +vt 0.502940 0.529452 +vt 0.496431 0.530039 +vt 0.117122 0.460346 +vt 0.134177 0.484805 +vt 0.138075 0.488885 +vt 0.158530 0.490555 +vt 0.103493 0.539340 +vt 0.109465 0.532777 +vt 0.104249 0.525370 +vt 0.906030 0.524955 +vt 0.615473 0.564518 +vt 0.162879 0.397099 +vt 0.115667 0.470012 +vt 0.889552 0.525322 +vt 0.146209 0.495539 +vt 0.766255 0.458449 +vt 0.059317 0.410018 +vt 0.846256 0.461643 +vt 0.169759 0.453391 +vt 0.160596 0.445488 +vt 0.126092 0.516617 +vt 0.157925 0.451804 +vt 0.868419 0.423396 +vt 0.159970 0.448843 +vt 0.163699 0.452054 +vt 0.685817 0.175559 +vt 0.164438 0.457363 +vt 0.157146 0.447159 +vt 0.158575 0.445160 +vt 0.153639 0.453027 +vt 0.155185 0.449800 +vt 0.153474 0.456812 +vt 0.168348 0.458418 +vt 0.160362 0.463408 +vt 0.115119 0.510478 +vt 0.163604 0.457993 +vt 0.147704 0.532208 +vt 0.124720 0.449144 +vt 0.174068 0.460199 +vt 0.123792 0.513398 +vt 0.168923 0.461229 +vt 0.167563 0.460270 +vt 0.169957 0.458827 +vt 0.168548 0.456226 +vt 0.170244 0.456086 +vt 0.881013 0.513805 +vt 0.151055 0.438284 +vt 0.154105 0.434078 +vt 0.156925 0.435596 +vt 0.147943 0.440821 +vt 0.148552 0.435707 +vt 0.159176 0.436854 +vt 0.845394 0.491128 +vt 0.104744 0.533503 +vt 0.103062 0.525209 +vt 0.600533 0.942036 +vt 0.496260 0.439975 +vt 0.560880 0.525140 +vt 0.802747 0.565452 +vt 0.260358 0.489907 +vt 0.277956 0.503372 +vt 0.265661 0.516952 +vt 0.246263 0.525137 +vt 0.301986 0.462515 +vt 0.303640 0.492758 +vt 0.428993 0.382675 +vt 0.433181 0.391965 +vt 0.423113 0.387854 +vt 0.463984 0.399967 +vt 0.459393 0.402868 +vt 0.458403 0.396408 +vt 0.397253 0.441707 +vt 0.375651 0.431560 +vt 0.387950 0.426198 +vt 0.481147 0.413962 +vt 0.478652 0.413424 +vt 0.481306 0.412817 +vt 0.479056 0.411596 +vt 0.481552 0.411353 +vt 0.482554 0.412565 +vt 0.482829 0.411169 +vt 0.482465 0.413664 +vt 0.394955 0.363596 +vt 0.377610 0.371613 +vt 0.382211 0.355120 +vt 0.392853 0.462862 +vt 0.413287 0.472458 +vt 0.403728 0.478088 +vt 0.425142 0.489789 +vt 0.416179 0.494425 +vt 0.441499 0.507111 +vt 0.446834 0.512106 +vt 0.437469 0.516840 +vt 0.451977 0.508148 +vt 0.437452 0.499492 +vt 0.450915 0.494975 +vt 0.459206 0.491692 +vt 0.444983 0.491922 +vt 0.453383 0.488899 +vt 0.437962 0.487618 +vt 0.473547 0.498214 +vt 0.466132 0.499263 +vt 0.469710 0.496900 +vt 0.458390 0.497388 +vt 0.457841 0.506970 +vt 0.488921 0.504467 +vt 0.451328 0.590484 +vt 0.462471 0.594793 +vt 0.463236 0.585706 +vt 0.451469 0.581726 +vt 0.473782 0.599007 +vt 0.475726 0.588546 +vt 0.469002 0.609877 +vt 0.956794 0.159535 +vt 0.986328 0.138672 +vt 0.986328 0.173828 +vt 0.471479 0.512985 +vt 0.465466 0.506822 +vt 0.466847 0.515226 +vt 0.477475 0.515566 +vt 0.475967 0.510807 +vt 0.470836 0.521907 +vt 0.474502 0.518888 +vt 0.928408 0.145792 +vt 0.890108 0.104814 +vt 0.923919 0.114266 +vt 0.490343 0.492994 +vt 0.084441 0.824908 +vt 0.086900 0.776620 +vt 0.107727 0.810503 +vt 0.511313 0.468276 +vt 0.526908 0.465772 +vt 0.489247 0.432424 +vt 0.482244 0.435005 +vt 0.484203 0.428530 +vt 0.478054 0.429599 +vt 0.481129 0.423560 +vt 0.490072 0.429052 +vt 0.485669 0.425548 +vt 0.484997 0.445039 +vt 0.472916 0.443612 +vt 0.476623 0.440389 +vt 0.488408 0.438642 +vt 0.426537 0.473300 +vt 0.441959 0.479039 +vt 0.473063 0.482826 +vt 0.465895 0.488847 +vt 0.459229 0.482170 +vt 0.476032 0.488229 +vt 0.470005 0.491249 +vt 0.464590 0.494566 +vt 0.477221 0.497128 +vt 0.475496 0.496031 +vt 0.481244 0.498669 +vt 0.480726 0.496912 +vt 0.473365 0.493756 +vt 0.478486 0.490543 +vt 0.480339 0.492901 +vt 0.481063 0.468219 +vt 0.466084 0.470719 +vt 0.465565 0.465667 +vt 0.449270 0.458991 +vt 0.466012 0.460499 +vt 0.488942 0.490570 +vt 0.467465 0.455682 +vt 0.482057 0.455747 +vt 0.481285 0.459464 +vt 0.480790 0.463892 +vt 0.450735 0.452752 +vt 0.469696 0.451939 +vt 0.453135 0.447422 +vt 0.456864 0.444035 +vt 0.432401 0.455272 +vt 0.432961 0.446804 +vt 0.418553 0.431802 +vt 0.436389 0.440106 +vt 0.402261 0.391813 +vt 0.413888 0.384080 +vt 0.412987 0.392703 +vt 0.403872 0.403490 +vt 0.390438 0.390749 +vt 0.377586 0.389646 +vt 0.390772 0.376436 +vt 0.393146 0.405930 +vt 0.380973 0.408454 +vt 0.400246 0.421997 +vt 0.416443 0.411504 +vt 0.408830 0.416612 +vt 0.432664 0.394815 +vt 0.422535 0.393965 +vt 0.433702 0.401484 +vt 0.423702 0.401225 +vt 0.413922 0.401560 +vt 0.425443 0.408921 +vt 0.434692 0.408364 +vt 0.435822 0.417482 +vt 0.428049 0.419003 +vt 0.461957 0.415522 +vt 0.454777 0.408978 +vt 0.462736 0.409526 +vt 0.456518 0.404745 +vt 0.465113 0.407917 +vt 0.477248 0.416131 +vt 0.478105 0.414644 +vt 0.476539 0.418169 +vt 0.462888 0.404574 +vt 0.468260 0.407228 +vt 0.465902 0.404290 +vt 0.447259 0.397374 +vt 0.445547 0.401417 +vt 0.444867 0.408213 +vt 0.453161 0.416564 +vt 0.444727 0.416369 +vt 0.460859 0.440750 +vt 0.447324 0.432981 +vt 0.453381 0.429986 +vt 0.465989 0.436457 +vt 0.459849 0.427680 +vt 0.483037 0.421345 +vt 0.471220 0.434459 +vt 0.480075 0.418565 +vt 0.476121 0.422650 +vt 0.480432 0.416124 +vt 0.480784 0.415127 +vt 0.482419 0.414783 +vt 0.482119 0.415795 +vt 0.481882 0.417405 +vt 0.466057 0.426023 +vt 0.441089 0.435266 +vt 0.423161 0.424526 +vt 0.471157 0.448133 +vt 0.483278 0.448704 +vt 0.482521 0.452456 +vt 0.449475 0.390777 +vt 0.418686 0.377218 +vt 0.407332 0.370970 +vt 0.478931 0.409602 +vt 0.482096 0.410317 +vt 0.440434 0.387549 +vt 0.409466 0.328850 +vt 0.403905 0.351581 +vt 0.392818 0.340707 +vt 0.414924 0.361217 +vt 0.434584 0.358762 +vt 0.425759 0.369080 +vt 0.443832 0.364349 +vt 0.445729 0.378386 +vt 0.436070 0.373620 +vt 0.468340 0.388068 +vt 0.482997 0.398477 +vt 0.479737 0.402556 +vt 0.464983 0.396627 +vt 0.459604 0.390005 +vt 0.463477 0.381888 +vt 0.471525 0.376051 +vt 0.368669 0.140106 +vt 0.415446 0.132840 +vt 0.452732 0.383387 +vt 0.452036 0.370424 +vt 0.458749 0.376511 +vt 0.478819 0.407273 +vt 0.467555 0.370504 +vt 0.462116 0.363431 +vt 0.455962 0.355586 +vt 0.448776 0.348630 +vt 0.441758 0.340437 +vt 0.425808 0.350541 +vt 0.435385 0.330682 +vt 0.417795 0.340542 +vt 0.452455 0.313403 +vt 0.454982 0.324165 +vt 0.464113 0.341937 +vt 0.473366 0.358488 +vt 0.459208 0.333434 +vt 0.573146 0.823606 +vt 0.489610 0.498955 +vt 0.486774 0.495463 +vt 0.483495 0.497399 +vt 0.487875 0.513152 +vt 0.488035 0.508773 +vt 0.493284 0.502616 +vt 0.490988 0.503516 +vt 0.481189 0.515391 +vt 0.484417 0.515003 +vt 0.485747 0.511681 +vt 0.483523 0.517325 +vt 0.480335 0.517715 +vt 0.484870 0.519050 +vt 0.485849 0.517461 +vt 0.487068 0.515320 +vt 0.489942 0.515410 +vt 0.488247 0.520302 +vt 0.489242 0.517667 +vt 0.466232 0.791627 +vt 0.496669 0.686174 +vt 0.477195 0.525438 +vt 0.479548 0.519572 +vt 0.481934 0.522120 +vt 0.482886 0.518884 +vt 0.486834 0.523431 +vt 0.484121 0.527932 +vt 0.472017 0.532395 +vt 0.480684 0.534892 +vt 0.760141 0.167745 +vt 0.496649 0.657621 +vt 0.479182 0.371376 +vt 0.475013 0.382157 +vt 0.485959 0.404066 +vt 0.490078 0.405831 +vt 0.487338 0.406885 +vt 0.482373 0.377683 +vt 0.491105 0.395081 +vt 0.487209 0.395974 +vt 0.487405 0.369578 +vt 0.588711 0.456282 +vt 0.485818 0.363792 +vt 0.476530 0.365913 +vt 0.483848 0.356272 +vt 0.627507 0.388774 +vt 0.469415 0.350442 +vt 0.492426 0.405381 +vt 0.489199 0.402503 +vt 0.492027 0.401846 +vt 0.482343 0.409161 +vt 0.483123 0.410370 +vt 0.483607 0.406525 +vt 0.484990 0.408263 +vt 0.472833 0.310574 +vt 0.474628 0.320157 +vt 0.481596 0.347174 +vt 0.478933 0.337732 +vt 0.476544 0.329047 +vt 0.247734 0.719577 +vt 0.263324 0.754507 +vt 0.231354 0.726775 +vt 0.247128 0.760638 +vt 0.217012 0.738546 +vt 0.179532 0.848324 +vt 0.204440 0.838045 +vt 0.217793 0.863676 +vt 0.149027 0.836997 +vt 0.135692 0.807299 +vt 0.149351 0.786459 +vt 0.168261 0.821222 +vt 0.186054 0.808273 +vt 0.067085 0.221466 +vt 0.055313 0.574565 +vt 0.384822 0.636509 +vt 0.221675 0.822335 +vt 0.241438 0.847909 +vt 0.249783 0.827173 +vt 0.272228 0.850676 +vt 0.296562 0.875117 +vt 0.287007 0.900460 +vt 0.261170 0.872547 +vt 0.238598 0.891050 +vt 0.316505 0.927760 +vt 0.023356 0.496651 +vt 0.197908 0.923734 +vt 0.500453 0.406198 +vt 0.618250 0.572383 +vt 0.515515 0.721143 +vt 0.533200 0.703514 +vt 0.097042 0.321643 +vt 0.232429 0.167840 +vt 0.081853 0.435434 +vt 0.121310 0.385222 +vt 0.123799 0.384932 +vt 0.237492 0.220504 +vt 0.188755 0.454234 +vt 0.175337 0.266374 +vt 0.174599 0.309287 +vt 0.155778 0.309621 +vt 0.075325 0.324930 +vt 0.155295 0.395476 +vt 0.107908 0.436909 +vt 0.110379 0.436584 +vt 0.107562 0.447348 +vt 0.103515 0.457498 +vt 0.122896 0.532908 +vt 0.116536 0.535543 +vt 0.134784 0.380861 +vt 0.132734 0.379209 +vt 0.136003 0.378452 +vt 0.138595 0.379863 +vt 0.138757 0.378006 +vt 0.130510 0.381095 +vt 0.140226 0.589360 +vt 0.122581 0.382430 +vt 0.130632 0.377377 +vt 0.126815 0.381066 +vt 0.130299 0.372713 +vt 0.136282 0.375788 +vt 0.140880 0.375604 +vt 0.142104 0.378531 +vt 0.112738 0.433470 +vt 0.113549 0.432871 +vt 0.849136 0.505998 +vt 0.131645 0.393754 +vt 0.101344 0.516338 +vt 0.104352 0.508329 +vt 0.106977 0.512993 +vt 0.066521 0.444449 +vt 0.063132 0.476444 +vt 0.036868 0.231346 +vt 0.034520 0.267129 +vt 0.082140 0.564458 +vt 0.109390 0.516825 +vt 0.105120 0.447093 +vt 0.101523 0.457471 +vt 0.103917 0.521013 +vt 0.101839 0.521677 +vt 0.099999 0.522520 +vt 0.099182 0.516862 +vt 0.112637 0.513880 +vt 0.110066 0.510355 +vt 0.110742 0.503755 +vt 0.107650 0.506222 +vt 0.096440 0.511025 +vt 0.098820 0.511139 +vt 0.098149 0.535738 +vt 0.102721 0.621827 +vt 0.120358 0.640301 +vt 0.104722 0.658335 +vt 0.086360 0.638881 +vt 0.083712 0.599414 +vt 0.109626 0.537790 +vt 0.113024 0.536228 +vt 0.118358 0.528565 +vt 0.124278 0.527815 +vt 0.212810 0.752255 +vt 0.193887 0.715564 +vt 0.244211 0.774144 +vt 0.238068 0.784440 +vt 0.208256 0.765467 +vt 0.189076 0.729602 +vt 0.135508 0.625789 +vt 0.140363 0.658864 +vt 0.155645 0.682828 +vt 0.145005 0.697200 +vt 0.123454 0.676719 +vt 0.175809 0.752479 +vt 0.175444 0.731959 +vt 0.173752 0.775707 +vt 0.149266 0.721646 +vt 0.147547 0.751794 +vt 0.126060 0.702276 +vt 0.233389 0.795494 +vt 0.203572 0.776555 +vt 0.228193 0.806035 +vt 0.203920 0.794022 +vt 0.167756 0.690884 +vt 0.168419 0.360416 +vt 0.154515 0.353789 +vt 0.239122 0.495473 +vt 0.220711 0.507583 +vt 0.226297 0.458555 +vt 0.228899 0.543102 +vt 0.210405 0.555160 +vt 0.220121 0.591885 +vt 0.200116 0.599281 +vt 0.217024 0.638020 +vt 0.071286 0.620724 +vt 0.070124 0.585598 +vt 0.066553 0.557805 +vt 0.025586 0.596907 +vt 0.122725 0.839807 +vt 0.102742 0.854190 +vt 0.489920 0.529452 +vt 0.322075 0.725839 +vt 0.286462 0.713157 +vt 0.259862 0.919947 +vt 0.114847 0.761151 +vt 0.032290 0.657854 +vt 0.299425 0.744830 +vt 0.316387 0.773132 +vt 0.280198 0.749928 +vt 0.070603 0.664844 +vt 0.056974 0.676019 +vt 0.122251 0.732791 +vt 0.105091 0.683696 +vt 0.100315 0.709570 +vt 0.087781 0.664167 +vt 0.071562 0.643830 +vt 0.061406 0.653167 +vt 0.747626 0.433144 +vt 0.485203 0.590548 +vt 0.485852 0.580020 +vt 0.375075 0.685573 +vt 0.377431 0.673011 +vt 0.053268 0.547849 +vt 0.063167 0.520827 +vt 0.270877 0.578184 +vt 0.269698 0.602206 +vt 0.279417 0.606991 +vt 0.282902 0.627739 +vt 0.272748 0.627181 +vt 0.284818 0.568075 +vt 0.279522 0.587119 +vt 0.278289 0.554812 +vt 0.047189 0.713519 +vt 0.037478 0.682997 +vt 0.436948 0.566348 +vt 0.435331 0.572720 +vt 0.438201 0.557786 +vt 0.423190 0.552197 +vt 0.425631 0.542828 +vt 0.451515 0.572652 +vt 0.440249 0.550167 +vt 0.451831 0.563814 +vt 0.450642 0.552623 +vt 0.442346 0.540039 +vt 0.429875 0.495370 +vt 0.423335 0.508136 +vt 0.432134 0.525147 +vt 0.413013 0.528286 +vt 0.428319 0.534817 +vt 0.408708 0.537116 +vt 0.417156 0.519163 +vt 0.445906 0.528813 +vt 0.453938 0.520106 +vt 0.449246 0.539841 +vt 0.461531 0.516825 +vt 0.462453 0.528397 +vt 0.486577 0.546278 +vt 0.476242 0.556296 +vt 0.477008 0.544825 +vt 0.463727 0.554612 +vt 0.465110 0.542419 +vt 0.421393 0.558461 +vt 0.281467 0.524706 +vt 0.405632 0.542886 +vt 0.394183 0.487758 +vt 0.407222 0.503700 +vt 0.386947 0.500143 +vt 0.399253 0.513918 +vt 0.394644 0.522828 +vt 0.381370 0.509465 +vt 0.382817 0.472348 +vt 0.363402 0.438359 +vt 0.384485 0.448204 +vt 0.373156 0.456893 +vt 0.351155 0.448579 +vt 0.362192 0.467992 +vt 0.340658 0.461892 +vt 0.353521 0.480044 +vt 0.374031 0.484612 +vt 0.367084 0.494868 +vt 0.376456 0.518229 +vt 0.390802 0.530277 +vt 0.346438 0.511923 +vt 0.362313 0.507057 +vt 0.359305 0.518880 +vt 0.348238 0.495096 +vt 0.332942 0.479728 +vt 0.332071 0.502428 +vt 0.331418 0.519490 +vt 0.023082 0.531264 +vt 0.401375 0.557202 +vt 0.384685 0.544309 +vt 0.384183 0.547799 +vt 0.370527 0.542587 +vt 0.370749 0.537649 +vt 0.345496 0.523014 +vt 0.358353 0.526767 +vt 0.317906 0.530579 +vt 0.306671 0.534102 +vt 0.320281 0.542889 +vt 0.309697 0.547298 +vt 0.296290 0.538528 +vt 0.344853 0.539069 +vt 0.357173 0.533525 +vt 0.344789 0.531556 +vt 0.331068 0.530601 +vt 0.331831 0.540335 +vt 0.401107 0.560494 +vt 0.415664 0.575948 +vt 0.427715 0.591666 +vt 0.416550 0.572766 +vt 0.126639 0.315770 +vt 0.165540 0.237832 +vt 0.146475 0.275705 +vt 0.379174 0.602081 +vt 0.486060 0.556834 +vt 0.476264 0.567261 +vt 0.475788 0.578940 +vt 0.464011 0.575893 +vt 0.485932 0.568362 +vt 0.441046 0.664436 +vt 0.444431 0.652108 +vt 0.454851 0.664033 +vt 0.457739 0.651492 +vt 0.450392 0.679395 +vt 0.432051 0.681987 +vt 0.816524 0.128759 +vt 0.858356 0.164485 +vt 0.459068 0.617013 +vt 0.429876 0.589123 +vt 0.437190 0.605859 +vt 0.443632 0.624949 +vt 0.440475 0.603894 +vt 0.442053 0.618601 +vt 0.452260 0.622427 +vt 0.444565 0.630347 +vt 0.445537 0.640703 +vt 0.455183 0.628858 +vt 0.457542 0.639787 +vt 0.469185 0.648092 +vt 0.189637 0.877332 +vt 0.481303 0.686780 +vt 0.467171 0.675155 +vt 0.407280 0.767247 +vt 0.414337 0.752637 +vt 0.066798 0.746023 +vt 0.437330 0.708536 +vt 0.454490 0.721800 +vt 0.428623 0.724192 +vt 0.449867 0.738434 +vt 0.421323 0.738838 +vt 0.390971 0.734066 +vt 0.361644 0.726674 +vt 0.399239 0.720831 +vt 0.444203 0.694106 +vt 0.421839 0.695591 +vt 0.338887 0.703718 +vt 0.267832 0.716018 +vt 0.247351 0.687253 +vt 0.308903 0.695681 +vt 0.292923 0.675326 +vt 0.302267 0.669148 +vt 0.330712 0.715653 +vt 0.280278 0.652252 +vt 0.290245 0.648946 +vt 0.232955 0.611323 +vt 0.235511 0.652201 +vt 0.853798 0.589267 +vt 0.237216 0.568534 +vt 0.664643 0.128626 +vt 0.696788 0.115134 +vt 0.707541 0.136669 +vt 0.516777 0.556289 +vt 0.283739 0.802595 +vt 0.289154 0.790141 +vt 0.928040 0.221479 +vt 0.264347 0.820932 +vt 0.294429 0.847001 +vt 0.275310 0.812685 +vt 0.310973 0.839192 +vt 0.345714 0.857742 +vt 0.325412 0.869883 +vt 0.320392 0.826720 +vt 0.324485 0.811664 +vt 0.360236 0.844002 +vt 0.370284 0.829582 +vt 0.302195 0.781572 +vt 0.339141 0.801751 +vt 0.352085 0.789903 +vt 0.379556 0.815572 +vt 0.388897 0.800713 +vt 0.365353 0.775599 +vt 0.398844 0.783710 +vt 0.482640 0.646082 +vt 0.112716 0.281315 +vt 0.891955 0.521636 +vt 0.439178 0.770765 +vt 0.475819 0.738967 +vt 0.009766 0.302734 +vt 0.029205 0.332718 +vt 0.009766 0.333984 +vt 0.621138 0.567755 +vt 0.009766 0.271484 +vt 0.009766 0.236328 +vt 0.760109 0.069014 +vt 0.713770 0.048318 +vt 0.480023 0.504017 +vt 0.479943 0.503980 +vt 0.479991 0.503866 +vt 0.480070 0.503889 +vt 0.480684 0.500876 +vt 0.480513 0.502342 +vt 0.480210 0.503394 +vt 0.179782 0.382168 +vt 0.188135 0.407893 +vt 0.526418 0.460599 +vt 0.195600 0.177514 +vt 0.161848 0.186033 +vt 0.752965 0.777233 +vt 0.539544 0.303339 +vt 0.518510 0.292089 +vt 0.539713 0.293695 +vt 0.512680 0.504062 +vt 0.955078 0.009766 +vt 0.986328 0.041016 +vt 0.951793 0.036519 +vt 0.682381 0.068892 +vt 0.641405 0.066939 +vt 0.599883 0.064169 +vt 0.810829 0.098936 +vt 0.647262 0.088061 +vt 0.688650 0.091866 +vt 0.563247 0.081760 +vt 0.604222 0.084329 +vt 0.529700 0.098328 +vt 0.567295 0.100334 +vt 0.952361 0.065926 +vt 0.920421 0.086097 +vt 0.596067 0.028271 +vt 0.559259 0.044295 +vt 0.560091 0.026960 +vt 0.721334 0.069797 +vt 0.768993 0.096738 +vt 0.728507 0.094727 +vt 0.703755 0.029073 +vt 0.662109 0.009766 +vt 0.626953 0.009766 +vt 0.595703 0.009766 +vt 0.564453 0.009766 +vt 0.822266 0.009766 +vt 0.818791 0.028907 +vt 0.791016 0.009766 +vt 0.886942 0.020032 +vt 0.923828 0.009766 +vt 0.910268 0.032622 +vt 0.835322 0.019964 +vt 0.867338 0.036144 +vt 0.572424 0.115442 +vt 0.527057 0.025855 +vt 0.986328 0.076172 +vt 0.526242 0.042712 +vt 0.497091 0.060366 +vt 0.497433 0.042052 +vt 0.957256 0.195000 +vt 0.986328 0.205078 +vt 0.927117 0.183865 +vt 0.857422 0.009766 +vt 0.888672 0.009766 +vt 0.529297 0.009766 +vt 0.497739 0.025546 +vt 0.498047 0.009766 +vt 0.736904 0.120469 +vt 0.610153 0.103947 +vt 0.654860 0.109223 +vt 0.862237 0.021112 +vt 0.954066 0.095141 +vt 0.986328 0.107422 +vt 0.955679 0.125864 +vt 0.496282 0.097549 +vt 0.496695 0.079550 +vt 0.724609 0.009766 +vt 0.693359 0.009766 +vt 0.747939 0.144575 +vt 0.797524 0.177441 +vt 0.618216 0.120880 +vt 0.720382 0.157182 +vt 0.512796 0.503761 +vt 0.512488 0.503438 +vt 0.725821 0.329020 +vt 0.754453 0.323143 +vt 0.744227 0.353536 +vt 0.776450 0.356789 +vt 0.599789 0.279618 +vt 0.564775 0.269897 +vt 0.597053 0.264136 +vt 0.495464 0.274345 +vt 0.518094 0.281020 +vt 0.495495 0.281473 +vt 0.593746 0.305942 +vt 0.564136 0.289344 +vt 0.596567 0.293705 +vt 0.518231 0.262132 +vt 0.539898 0.272853 +vt 0.518599 0.273766 +vt 0.563037 0.256850 +vt 0.687546 0.249474 +vt 0.664434 0.270609 +vt 0.653043 0.245857 +vt 0.726618 0.268257 +vt 0.694508 0.275883 +vt 0.788018 0.336888 +vt 0.762200 0.299568 +vt 0.518466 0.301156 +vt 0.726141 0.294492 +vt 0.620759 0.243320 +vt 0.589855 0.247890 +vt 0.588225 0.317139 +vt 0.655905 0.394408 +vt 0.650256 0.424281 +vt 0.670169 0.404683 +vt 0.663177 0.438038 +vt 0.517984 0.250147 +vt 0.539632 0.260307 +vt 0.538726 0.247794 +vt 0.675353 0.221280 +vt 0.637121 0.215670 +vt 0.767547 0.280993 +vt 0.721308 0.240572 +vt 0.606383 0.220172 +vt 0.797478 0.322117 +vt 0.715973 0.212765 +vt 0.582191 0.192787 +vt 0.495525 0.286126 +vt 0.495556 0.291832 +vt 0.532675 0.226089 +vt 0.559651 0.241530 +vt 0.545774 0.216694 +vt 0.580660 0.228572 +vt 0.633855 0.269801 +vt 0.516557 0.198579 +vt 0.495202 0.221982 +vt 0.495108 0.198801 +vt 0.495271 0.182279 +vt 0.540149 0.287122 +vt 0.540347 0.281233 +vt 0.528268 0.185584 +vt 0.562211 0.204190 +vt 0.618051 0.318143 +vt 0.629571 0.305473 +vt 0.564925 0.280694 +vt 0.634289 0.337700 +vt 0.656947 0.362302 +vt 0.666538 0.329639 +vt 0.673128 0.367607 +vt 0.649254 0.331186 +vt 0.689602 0.378173 +vt 0.683636 0.419103 +vt 0.687584 0.336517 +vt 0.707032 0.349492 +vt 0.703651 0.391770 +vt 0.676317 0.300905 +vt 0.702030 0.309617 +vt 0.561247 0.307784 +vt 0.710671 0.438363 +vt 0.697093 0.428864 +vt 0.516428 0.224309 +vt 0.518259 0.287028 +vt 0.495393 0.250567 +vt 0.602469 0.603831 +vt 0.534166 0.616961 +vt 0.721582 0.366152 +vt 0.562412 0.297800 +vt 0.495430 0.264726 +vt 0.716594 0.403850 +vt 0.644476 0.293442 +vt 0.419489 0.115429 +vt 0.382549 0.103945 +vt 0.425314 0.100312 +vt 0.218106 0.123011 +vt 0.171633 0.156815 +vt 0.177851 0.128809 +vt 0.136095 0.164517 +vt 0.139829 0.132598 +vt 0.102760 0.137850 +vt 0.068170 0.183871 +vt 0.067041 0.145817 +vt 0.327612 0.128716 +vt 0.296399 0.115211 +vt 0.338026 0.109274 +vt 0.285043 0.136778 +vt 0.256643 0.120535 +vt 0.101228 0.173558 +vt 0.038982 0.159547 +vt 0.038436 0.195008 +vt 0.433765 0.062158 +vt 0.465410 0.080181 +vt 0.430143 0.081727 +vt 0.357880 0.047291 +vt 0.326241 0.029552 +vt 0.362691 0.029041 +vt 0.397584 0.045710 +vt 0.399419 0.028239 +vt 0.257804 0.028046 +vt 0.236328 0.009766 +vt 0.271484 0.009766 +vt 0.109083 0.020037 +vt 0.138672 0.009766 +vt 0.133763 0.021116 +vt 0.192978 0.069959 +vt 0.163420 0.051156 +vt 0.204910 0.047463 +vt 0.080283 0.060239 +vt 0.112070 0.079442 +vt 0.075323 0.086122 +vt 0.245663 0.046514 +vt 0.234825 0.069066 +vt 0.281396 0.048351 +vt 0.273344 0.069851 +vt 0.318508 0.048706 +vt 0.120383 0.056657 +vt 0.151195 0.071539 +vt 0.143815 0.100569 +vt 0.105235 0.104856 +vt 0.009766 0.138672 +vt 0.040174 0.125881 +vt 0.043621 0.065934 +vt 0.041855 0.095155 +vt 0.071691 0.114293 +vt 0.291901 0.029072 +vt 0.305195 0.091925 +vt 0.220340 0.028203 +vt 0.044250 0.036516 +vt 0.072266 0.009766 +vt 0.085717 0.032633 +vt 0.041016 0.009766 +vt 0.009766 0.041016 +vt 0.009766 0.009766 +vt 0.312082 0.068935 +vt 0.394301 0.064125 +vt 0.435570 0.044252 +vt 0.183959 0.098993 +vt 0.225445 0.096793 +vt 0.346342 0.088082 +vt 0.389234 0.084301 +vt 0.462872 0.098322 +vt 0.265622 0.094788 +vt 0.207524 0.151202 +vt 0.245055 0.144666 +vt 0.352886 0.066942 +vt 0.373818 0.120907 +vt 0.160679 0.019974 +vt 0.333984 0.009766 +vt 0.369141 0.009766 +vt 0.400391 0.009766 +vt 0.435378 0.026938 +vt 0.302734 0.009766 +vt 0.173828 0.009766 +vt 0.177087 0.028918 +vt 0.128543 0.036149 +vt 0.205078 0.009766 +vt 0.009766 0.076172 +vt 0.460241 0.112334 +vt 0.467660 0.060997 +vt 0.468609 0.042710 +vt 0.468420 0.025858 +vt 0.431641 0.009766 +vt 0.466797 0.009766 +vt 0.009766 0.173828 +vt 0.009766 0.107422 +vt 0.457647 0.127332 +vt 0.009766 0.205078 +vt 0.479905 0.503716 +vt 0.480080 0.503713 +vt 0.215125 0.356904 +vt 0.247322 0.353606 +vt 0.227821 0.383498 +vt 0.236813 0.323229 +vt 0.265541 0.329070 +vt 0.264912 0.294536 +vt 0.289198 0.309626 +vt 0.296495 0.275909 +vt 0.314873 0.300921 +vt 0.391272 0.279638 +vt 0.426107 0.269884 +vt 0.426046 0.280686 +vt 0.451009 0.272836 +vt 0.450635 0.281221 +vt 0.472324 0.273753 +vt 0.472894 0.281011 +vt 0.472603 0.292088 +vt 0.451402 0.293692 +vt 0.472793 0.287021 +vt 0.428717 0.297797 +vt 0.450899 0.287115 +vt 0.397442 0.305936 +vt 0.426918 0.289338 +vt 0.373231 0.318135 +vt 0.394530 0.293699 +vt 0.472613 0.262115 +vt 0.451186 0.260281 +vt 0.427743 0.256829 +vt 0.393908 0.264180 +vt 0.401007 0.247943 +vt 0.370266 0.243378 +vt 0.357202 0.269822 +vt 0.338000 0.245915 +vt 0.326601 0.270650 +vt 0.303410 0.249544 +vt 0.264180 0.268285 +vt 0.228758 0.299610 +vt 0.203345 0.336971 +vt 0.201091 0.381689 +vt 0.472651 0.301136 +vt 0.429942 0.307744 +vt 0.431207 0.318796 +vt 0.403000 0.317113 +vt 0.364229 0.366424 +vt 0.364297 0.388796 +vt 0.335975 0.394453 +vt 0.355419 0.415571 +vt 0.341860 0.424331 +vt 0.321812 0.404713 +vt 0.329083 0.438060 +vt 0.368239 0.411319 +vt 0.472784 0.250121 +vt 0.451996 0.247747 +vt 0.431014 0.241495 +vt 0.410108 0.228594 +vt 0.384584 0.220182 +vt 0.354075 0.215753 +vt 0.315946 0.221317 +vt 0.269875 0.240599 +vt 0.223519 0.281046 +vt 0.193935 0.322179 +vt 0.408859 0.192719 +vt 0.428500 0.204157 +vt 0.444635 0.216644 +vt 0.457824 0.226027 +vt 0.473998 0.224270 +vt 0.473666 0.198541 +vt 0.462324 0.185465 +vt 0.454543 0.173634 +vt 0.357133 0.337690 +vt 0.361672 0.305451 +vt 0.334646 0.362347 +vt 0.324835 0.329646 +vt 0.342120 0.331196 +vt 0.383019 0.329430 +vt 0.369962 0.346110 +vt 0.350233 0.361984 +vt 0.350618 0.389030 +vt 0.318519 0.367693 +vt 0.303869 0.336495 +vt 0.302139 0.378228 +vt 0.308496 0.419101 +vt 0.317621 0.459099 +vt 0.284535 0.349513 +vt 0.288220 0.391825 +vt 0.295169 0.428876 +vt 0.281687 0.438356 +vt 0.275391 0.403912 +vt 0.270097 0.366184 +vt 0.346710 0.293462 +vt 0.255367 0.383025 +vt 0.268074 0.448682 +vt 0.261764 0.416750 +vt 0.252617 0.463959 +vt 0.244656 0.433256 +vt 0.236384 0.406375 +vt 0.209922 0.409028 +vt 0.495526 0.300642 +vt 0.451586 0.303307 +vt 0.892414 0.516296 +vt 0.889327 0.508270 +vt 0.515950 0.544835 +vt 0.647184 0.627875 +vt 0.879292 0.432912 +vt 0.509662 0.347234 +vt 0.506382 0.546280 +vt 0.139545 0.355116 +vt 0.419030 0.455810 +vt 0.413049 0.440439 +vt 0.374813 0.572274 +vt 0.380806 0.596052 +vt 0.403693 0.456273 +vt 0.357213 0.539484 +vt 0.435582 0.467684 +vt 0.509918 0.518874 +vt 0.485259 0.483363 +vt 0.487266 0.488061 +vt 0.480690 0.495424 +vt 0.453858 0.474274 +vt 0.449813 0.465922 +vt 0.493519 0.507528 +vt 0.496358 0.512502 +vt 0.493248 0.512751 +vt 0.009766 0.400391 +vt 0.009766 0.369141 +vt 0.009766 0.431641 +vt 0.491874 0.521214 +vt 0.491306 0.524432 +vt 0.293074 0.949356 +vt 0.542160 0.391215 +vt 0.482736 0.616041 +vt 0.492312 0.497887 +vt 0.496280 0.434234 +vt 0.021308 0.727217 +vt 0.009766 0.693359 +vt 0.009766 0.662109 +vt 0.496207 0.472215 +vt 0.481546 0.472459 +vt 0.496370 0.515409 +vt 0.492883 0.515420 +vt 0.496383 0.518175 +vt 0.492483 0.517941 +vt 0.058819 0.784646 +vt 0.040518 0.744383 +vt 0.009766 0.529297 +vt 0.009766 0.498047 +vt 0.009766 0.564453 +vt 0.009766 0.626953 +vt 0.009766 0.595703 +vt 0.986328 0.271484 +vt 0.009766 0.466797 +vt 0.488448 0.376491 +vt 0.495600 0.369416 +vt 0.495625 0.345422 +vt 0.488233 0.536215 +vt 0.395560 0.942036 +vt 0.447917 0.616560 +vt 0.464292 0.565604 +vt 0.724404 0.448669 +vt 0.487337 0.500140 +vt 0.542674 0.466048 +vt 0.703020 0.949356 +vt 0.986328 0.529297 +vt 0.986328 0.564453 +vt 0.496280 0.497402 +vt 0.986328 0.693359 +vt 0.496188 0.468222 +vt 0.986328 0.400391 +vt 0.512115 0.492980 +vt 0.410289 0.708217 +vt 0.464328 0.689261 +vt 0.389303 0.613284 +vt 0.986328 0.466797 +vt 0.986328 0.369141 +vt 0.986328 0.595703 +vt 0.986328 0.662109 +vt 0.986328 0.498047 +vt 0.586890 0.654870 +vt 0.634697 0.526689 +vt 0.318047 0.687163 +vt 0.443995 0.600998 +vt 0.135684 0.887132 +vt 0.469267 0.476833 +vt 0.483490 0.477694 +vt 0.496229 0.477187 +vt 0.403101 0.380735 +vt 0.510880 0.472508 +vt 0.511591 0.463957 +vt 0.608332 0.606220 +vt 0.608067 0.614100 +vt 0.384974 0.606128 +vt 0.385361 0.613987 +vt 0.379271 0.599484 +vt 0.911391 0.942787 +vt 0.918162 0.939607 +vt 0.915141 0.945119 +vt 0.912275 0.950252 +vt 0.907647 0.947216 +vt 0.920464 0.932110 +vt 0.915739 0.937662 +vt 0.917282 0.952478 +vt 0.923343 0.933687 +vt 0.921093 0.940637 +vt 0.919172 0.946966 +vt 0.922711 0.953703 +vt 0.924951 0.934090 +vt 0.924140 0.941299 +vt 0.923462 0.947645 +vt 0.927800 0.947989 +vt 0.928305 0.953722 +vt 0.927258 0.941370 +vt 0.933810 0.952709 +vt 0.928245 0.933727 +vt 0.930297 0.940862 +vt 0.932046 0.946914 +vt 0.936157 0.945427 +vt 0.938899 0.950537 +vt 0.929791 0.933155 +vt 0.933110 0.939595 +vt 0.939784 0.942950 +vt 0.943383 0.947433 +vt 0.931207 0.932288 +vt 0.935736 0.937939 +vt 0.947467 0.943782 +vt 0.937943 0.935764 +vt 0.942992 0.939978 +vt 0.950441 0.939172 +vt 0.933308 0.929765 +vt 0.939688 0.933225 +vt 0.945289 0.936286 +vt 0.952644 0.934207 +vt 0.940878 0.930403 +vt 0.947106 0.932328 +vt 0.953886 0.928861 +vt 0.934305 0.926633 +vt 0.941513 0.927410 +vt 0.947847 0.928103 +vt 0.948179 0.923826 +vt 0.953879 0.923346 +vt 0.941578 0.924364 +vt 0.952889 0.917903 +vt 0.934034 0.923376 +vt 0.941015 0.921365 +vt 0.947101 0.919647 +vt 0.945669 0.915607 +vt 0.950756 0.912842 +vt 0.939857 0.918521 +vt 0.943168 0.911999 +vt 0.947723 0.908346 +vt 0.932524 0.920462 +vt 0.938212 0.915938 +vt 0.940278 0.908729 +vt 0.943961 0.904368 +vt 0.936060 0.913750 +vt 0.939399 0.901353 +vt 0.930047 0.918336 +vt 0.933537 0.912021 +vt 0.936568 0.906464 +vt 0.934449 0.899133 +vt 0.930696 0.910810 +vt 0.932609 0.904623 +vt 0.929108 0.897870 +vt 0.926910 0.917334 +vt 0.927694 0.910155 +vt 0.928357 0.903871 +vt 0.924019 0.903512 +vt 0.923519 0.897817 +vt 0.924629 0.910061 +vt 0.918038 0.898760 +vt 0.923633 0.917587 +vt 0.921608 0.910624 +vt 0.919825 0.904561 +vt 0.915733 0.905954 +vt 0.912942 0.900861 +vt 0.918730 0.911738 +vt 0.912127 0.908428 +vt 0.908391 0.903850 +vt 0.920699 0.919086 +vt 0.916117 0.913403 +vt 0.908842 0.911299 +vt 0.904297 0.907520 +vt 0.913879 0.915531 +vt 0.906413 0.914935 +vt 0.901320 0.912151 +vt 0.918547 0.921567 +vt 0.912092 0.918039 +vt 0.899011 0.917085 +vt 0.910875 0.920877 +vt 0.904579 0.918930 +vt 0.897697 0.922479 +vt 0.917529 0.924700 +vt 0.910211 0.923890 +vt 0.903816 0.923194 +vt 0.903467 0.927529 +vt 0.897632 0.928043 +vt 0.910152 0.926954 +vt 0.898667 0.933501 +vt 0.917767 0.927992 +vt 0.910765 0.929984 +vt 0.904552 0.931737 +vt 0.906005 0.935807 +vt 0.900805 0.938636 +vt 0.911934 0.932865 +vt 0.908462 0.939480 +vt 0.903844 0.943193 +vt 0.918429 0.929508 +vt 0.913444 0.935583 +vt 0.925956 0.925720 +vt 0.921852 0.932984 +vt 0.926612 0.933980 +vt 0.932315 0.931072 +vt 0.933892 0.928225 +vt 0.934247 0.924992 +vt 0.933340 0.921889 +vt 0.931341 0.919329 +vt 0.928500 0.917764 +vt 0.925265 0.917384 +vt 0.922140 0.918276 +vt 0.919561 0.920271 +vt 0.917955 0.923106 +vt 0.917564 0.926350 +vt 0.919365 0.930873 +vt 0.972934 0.847573 +vt 0.973280 0.844993 +vt 0.974223 0.846712 +vt 0.968500 0.842226 +vt 0.972219 0.843005 +vt 0.970244 0.844334 +vt 0.886838 0.972284 +vt 0.899797 0.973007 +vt 0.896691 0.978922 +vt 0.895318 0.961904 +vt 0.906283 0.961080 +vt 0.903074 0.967135 +vt 0.975113 0.850181 +vt 0.976566 0.851027 +vt 0.976095 0.851353 +vt 0.975058 0.848269 +vt 0.974078 0.848945 +vt 0.971699 0.846088 +vt 0.882558 0.977579 +vt 0.893864 0.984919 +vt 0.891152 0.966991 +vt 0.904179 0.951342 +vt 0.899845 0.956471 +vt 0.977273 0.852317 +vt 0.977038 0.852478 +vt 0.975837 0.849694 +vt 0.909604 0.977175 +vt 0.909635 0.955134 +vt 0.913569 0.964263 +vt 0.977095 0.850805 +vt 0.977535 0.852206 +vt 0.976638 0.849348 +vt 0.975053 0.844231 +vt 0.975643 0.846122 +vt 0.970974 0.840625 +vt 0.974407 0.842107 +vt 0.907789 0.983419 +vt 0.911695 0.970779 +vt 0.976156 0.847801 +vt 0.906134 0.989822 +vt 0.920129 0.979218 +vt 0.922156 0.959114 +vt 0.921459 0.965760 +vt 0.977813 0.852147 +vt 0.977494 0.849165 +vt 0.976943 0.843861 +vt 0.977143 0.845832 +vt 0.973658 0.839559 +vt 0.976712 0.841635 +vt 0.919448 0.985762 +vt 0.920808 0.972387 +vt 0.977655 0.850686 +vt 0.977322 0.847556 +vt 0.918974 0.992319 +vt 0.930070 0.972651 +vt 0.930728 0.979168 +vt 0.929466 0.965888 +vt 0.978228 0.850679 +vt 0.978097 0.852145 +vt 0.978511 0.847553 +vt 0.978367 0.849162 +vt 0.978664 0.845814 +vt 0.976465 0.839022 +vt 0.979071 0.841607 +vt 0.931409 0.985915 +vt 0.978857 0.843874 +vt 0.931992 0.992319 +vt 0.941090 0.977383 +vt 0.935329 0.957910 +vt 0.937242 0.964271 +vt 0.978377 0.852197 +vt 0.979677 0.847779 +vt 0.979222 0.849329 +vt 0.980166 0.846097 +vt 0.982150 0.839518 +vt 0.981376 0.842098 +vt 0.943069 0.983682 +vt 0.939117 0.970836 +vt 0.978791 0.850789 +vt 0.980732 0.844226 +vt 0.945049 0.990147 +vt 0.947709 0.967544 +vt 0.950962 0.973439 +vt 0.944690 0.961437 +vt 0.979320 0.851006 +vt 0.978640 0.852304 +vt 0.980776 0.848228 +vt 0.980028 0.849660 +vt 0.981586 0.846669 +vt 0.983547 0.842984 +vt 0.953987 0.979197 +vt 0.982515 0.844936 +vt 0.957232 0.984939 +vt 0.955465 0.962407 +vt 0.959791 0.967526 +vt 0.946844 0.951792 +vt 0.951235 0.957014 +vt 0.978878 0.852459 +vt 0.981767 0.848883 +vt 0.980750 0.850141 +vt 0.982868 0.847511 +vt 0.984799 0.840658 +vt 0.985518 0.844261 +vt 0.964002 0.972662 +vt 0.979799 0.851318 +vt 0.984104 0.846007 +vt 0.968023 0.977689 +vt 0.962121 0.955953 +vt 0.967173 0.960114 +vt 0.951551 0.947189 +vt 0.956688 0.951452 +vt 0.979081 0.852658 +vt 0.981372 0.850746 +vt 0.983967 0.848587 +vt 0.989255 0.844209 +vt 0.987175 0.845930 +vt 0.972446 0.964404 +vt 0.980205 0.851720 +vt 0.982604 0.849720 +vt 0.985440 0.847366 +vt 0.977718 0.968664 +vt 0.973152 0.951548 +vt 0.961234 0.945134 +vt 0.979241 0.852893 +vt 0.983274 0.850695 +vt 0.981855 0.851467 +vt 0.986523 0.848933 +vt 0.984820 0.849866 +vt 0.988490 0.847883 +vt 0.979030 0.954662 +vt 0.967303 0.948297 +vt 0.980528 0.852190 +vt 0.984998 0.957471 +vt 0.977271 0.941841 +vt 0.955314 0.941777 +vt 0.964390 0.937905 +vt 0.980749 0.852716 +vt 0.979352 0.853154 +vt 0.982197 0.852262 +vt 0.987278 0.850690 +vt 0.985406 0.851276 +vt 0.990840 0.846649 +vt 0.989380 0.850047 +vt 0.983485 0.943672 +vt 0.970882 0.939787 +vt 0.983739 0.851786 +vt 0.989866 0.945310 +vt 0.979325 0.931427 +vt 0.959269 0.929402 +vt 0.965895 0.930093 +vt 0.979411 0.853432 +vt 0.982377 0.853112 +vt 0.987646 0.852563 +vt 0.985697 0.852766 +vt 0.991900 0.849301 +vt 0.989852 0.852329 +vt 0.985839 0.932119 +vt 0.972515 0.930766 +vt 0.980867 0.853274 +vt 0.983983 0.852946 +vt 0.992346 0.932575 +vt 0.972758 0.921605 +vt 0.979238 0.920953 +vt 0.965994 0.922185 +vt 0.980875 0.853845 +vt 0.979413 0.853715 +vt 0.982386 0.853979 +vt 0.985722 0.854282 +vt 0.992439 0.852077 +vt 0.989886 0.854666 +vt 0.985966 0.920244 +vt 0.983986 0.854130 +vt 0.987634 0.854458 +vt 0.992346 0.919666 +vt 0.977479 0.910701 +vt 0.958068 0.916378 +vt 0.964409 0.914480 +vt 0.979361 0.853995 +vt 0.982226 0.854833 +vt 0.987298 0.856322 +vt 0.985424 0.855768 +vt 0.991969 0.857713 +vt 0.989408 0.856954 +vt 0.983760 0.908726 +vt 0.970944 0.912638 +vt 0.980767 0.854406 +vt 0.983760 0.855288 +vt 0.990191 0.906725 +vt 0.967703 0.904144 +vt 0.973579 0.900930 +vt 0.961608 0.907121 +vt 0.980551 0.854934 +vt 0.979255 0.854257 +vt 0.983318 0.856380 +vt 0.981896 0.855637 +vt 0.984867 0.857179 +vt 0.988535 0.859112 +vt 0.979319 0.897929 +vt 0.986594 0.858095 +vt 0.985030 0.894658 +vt 0.962669 0.896463 +vt 0.967725 0.892175 +vt 0.952046 0.904942 +vt 0.957268 0.900647 +vt 0.979100 0.854495 +vt 0.982670 0.857366 +vt 0.981418 0.856358 +vt 0.984037 0.858454 +vt 0.990846 0.860347 +vt 0.987274 0.861071 +vt 0.972845 0.888023 +vt 0.980241 0.855412 +vt 0.985536 0.859676 +vt 0.977852 0.883989 +vt 0.956215 0.889890 +vt 0.960381 0.884872 +vt 0.947411 0.900307 +vt 0.951699 0.895235 +vt 0.978902 0.854699 +vt 0.980817 0.856980 +vt 0.982975 0.859550 +vt 0.987336 0.864773 +vt 0.985624 0.862719 +vt 0.964680 0.879648 +vt 0.979844 0.855820 +vt 0.981842 0.858202 +vt 0.984194 0.861007 +vt 0.968953 0.874430 +vt 0.951934 0.878950 +vt 0.945417 0.890704 +vt 0.979373 0.856141 +vt 0.978668 0.854858 +vt 0.980876 0.858874 +vt 0.980101 0.857464 +vt 0.982645 0.862088 +vt 0.981709 0.860404 +vt 0.983697 0.864030 +vt 0.955085 0.873149 +vt 0.948633 0.884716 +vt 0.957954 0.867251 +vt 0.942301 0.874833 +vt 0.942053 0.896536 +vt 0.938222 0.887524 +vt 0.978848 0.856363 +vt 0.978407 0.854970 +vt 0.979308 0.857809 +vt 0.980909 0.862847 +vt 0.980313 0.860996 +vt 0.984927 0.866348 +vt 0.981560 0.864924 +vt 0.944255 0.868716 +vt 0.940161 0.881085 +vt 0.979792 0.859344 +vt 0.946065 0.862443 +vt 0.931985 0.872731 +vt 0.929668 0.892545 +vt 0.930449 0.886009 +vt 0.978129 0.855029 +vt 0.978460 0.857993 +vt 0.979057 0.863226 +vt 0.978832 0.861309 +vt 0.982313 0.867406 +vt 0.979310 0.865409 +vt 0.932846 0.866264 +vt 0.931176 0.879294 +vt 0.978292 0.856484 +vt 0.978638 0.859579 +vt 0.933719 0.859936 +vt 0.921583 0.872552 +vt 0.922496 0.885722 +vt 0.977721 0.856494 +vt 0.977846 0.855032 +vt 0.977461 0.859606 +vt 0.977594 0.858000 +vt 0.977178 0.863245 +vt 0.977321 0.861324 +vt 0.979580 0.867953 +vt 0.977004 0.865474 +vt 0.921160 0.865861 +vt 0.921957 0.879170 +vt 0.921051 0.859362 +vt 0.911245 0.874087 +vt 0.916591 0.893575 +vt 0.914715 0.887234 +vt 0.977567 0.854981 +vt 0.976741 0.857849 +vt 0.975317 0.862937 +vt 0.975840 0.861052 +vt 0.974073 0.867545 +vt 0.974727 0.865059 +vt 0.909613 0.867735 +vt 0.912928 0.880697 +vt 0.977160 0.856388 +vt 0.976301 0.859389 +vt 0.908283 0.861316 +vt 0.904347 0.883753 +vt 0.901311 0.877755 +vt 0.907257 0.889911 +vt 0.976631 0.856175 +vt 0.977304 0.854875 +vt 0.975203 0.858957 +vt 0.975935 0.857525 +vt 0.974423 0.860517 +vt 0.971430 0.866587 +vt 0.972563 0.864228 +vt 0.898596 0.871851 +vt 0.973535 0.862264 +vt 0.896051 0.865748 +vt 0.896524 0.888693 +vt 0.892381 0.883386 +vt 0.904975 0.899477 +vt 0.900655 0.894179 +vt 0.977065 0.854720 +vt 0.974208 0.858317 +vt 0.975209 0.857051 +vt 0.973131 0.859704 +vt 0.968979 0.865126 +vt 0.970572 0.863002 +vt 0.888408 0.878007 +vt 0.976150 0.855867 +vt 0.971929 0.861231 +vt 0.884747 0.872494 +vt 0.889750 0.895063 +vt 0.884845 0.890678 +vt 0.900221 0.904055 +vt 0.895115 0.899693 +vt 0.975742 0.855467 +vt 0.976862 0.854522 +vt 0.974581 0.856452 +vt 0.972011 0.858648 +vt 0.966813 0.863171 +vt 0.968853 0.861385 +vt 0.879787 0.886102 +vt 0.973360 0.857492 +vt 0.970559 0.859903 +vt 0.874777 0.881512 +vt 0.878642 0.899218 +vt 0.890453 0.905995 +vt 0.976700 0.854288 +vt 0.972675 0.856524 +vt 0.974090 0.855734 +vt 0.969434 0.858354 +vt 0.971131 0.857380 +vt 0.967466 0.859470 +vt 0.872908 0.895855 +vt 0.884404 0.902685 +vt 0.975415 0.854998 +vt 0.867347 0.892604 +vt 0.874199 0.909012 +vt 0.896411 0.909459 +vt 0.887180 0.913209 +vt 0.975191 0.854472 +vt 0.976588 0.854027 +vt 0.973738 0.854938 +vt 0.968637 0.856597 +vt 0.970515 0.855969 +vt 0.963991 0.858169 +vt 0.966520 0.857299 +vt 0.868018 0.906913 +vt 0.880601 0.911235 +vt 0.972196 0.855433 +vt 0.861836 0.904544 +vt 0.871913 0.919521 +vt 0.892270 0.921874 +vt 0.885618 0.921070 +vt 0.976529 0.853748 +vt 0.973549 0.854084 +vt 0.968235 0.854703 +vt 0.970192 0.854463 +vt 0.963275 0.855326 +vt 0.966000 0.854982 +vt 0.865320 0.918588 +vt 0.878790 0.920288 +vt 0.975068 0.853913 +vt 0.971942 0.854269 +vt 0.858584 0.917614 +vt 0.878578 0.929570 +vt 0.871924 0.930104 +vt 0.885348 0.929060 +vt 0.975058 0.853338 +vt 0.976526 0.853464 +vt 0.971918 0.853074 +vt 0.973541 0.853210 +vt 0.968212 0.852774 +vt 0.970175 0.852925 +vt 0.965908 0.852587 +vt 0.865014 0.930643 +vt 0.858540 0.931134 +vt 0.873611 0.940541 +vt 0.892280 0.928512 +vt 0.886848 0.936862 +vt 0.976577 0.853184 +vt 0.973695 0.852349 +vt 0.968541 0.850865 +vt 0.970457 0.851414 +vt 0.963733 0.849459 +vt 0.966378 0.850231 +vt 0.867256 0.942484 +vt 0.880261 0.938685 +vt 0.975165 0.852774 +vt 0.972147 0.851902 +vt 0.860755 0.944480 +vt 0.883564 0.947337 +vt 0.877612 0.950556 +vt 0.893457 0.935024 +vt 0.889718 0.944358 +vt 0.975380 0.852243 +vt 0.976684 0.852920 +vt 0.972578 0.850789 +vt 0.974024 0.851537 +vt 0.971017 0.849981 +vt 0.967265 0.848017 +vt 0.871822 0.953597 +vt 0.969252 0.849053 +vt 0.866065 0.956870 +vt 0.888742 0.955199 +vt 0.883613 0.959523 +vt 0.899459 0.946639 +vt 0.894166 0.950992 +vt 0.976839 0.852682 +vt 0.973237 0.849790 +vt 0.974506 0.850809 +vt 0.971854 0.848686 +vt 0.964893 0.846750 +vt 0.968554 0.846014 +vt 0.878454 0.963724 +vt 0.975691 0.851761 +vt 0.970328 0.847441 +vt 0.873428 0.967793 +vt 0.977971 0.853589 +vt 0.895966 0.941083 +vt 0.893847 0.915474 +vt 0.910534 0.896052 +vt 0.936024 0.894040 +vt 0.955518 0.910411 +vt 0.957780 0.935741 +vt 0.941356 0.955315 +vt 0.915729 0.957624 +vt 0.057212 0.938803 +vt 0.064416 0.936718 +vt 0.060460 0.941688 +vt 0.056792 0.946268 +vt 0.052834 0.942489 +vt 0.062248 0.934559 +vt 0.068917 0.931031 +vt 0.061268 0.949297 +vt 0.066991 0.938387 +vt 0.064029 0.944172 +vt 0.066315 0.951424 +vt 0.071804 0.932545 +vt 0.069829 0.939531 +vt 0.068072 0.945628 +vt 0.072254 0.946698 +vt 0.071766 0.952417 +vt 0.072830 0.940101 +vt 0.077314 0.952428 +vt 0.075065 0.932822 +vt 0.075882 0.940040 +vt 0.076546 0.946375 +vt 0.080780 0.945655 +vt 0.082647 0.951185 +vt 0.078883 0.939407 +vt 0.084743 0.943837 +vt 0.087629 0.949008 +vt 0.078185 0.931830 +vt 0.081698 0.938239 +vt 0.088436 0.941549 +vt 0.092251 0.946052 +vt 0.084238 0.936507 +vt 0.091425 0.938379 +vt 0.095908 0.942002 +vt 0.080712 0.929742 +vt 0.086398 0.934307 +vt 0.098984 0.937514 +vt 0.088019 0.931679 +vt 0.093863 0.934739 +vt 0.101151 0.932447 +vt 0.081567 0.928315 +vt 0.089296 0.928881 +vt 0.095363 0.930645 +vt 0.096416 0.926416 +vt 0.102144 0.926929 +vt 0.082158 0.926775 +vt 0.089829 0.925839 +vt 0.102198 0.921354 +vt 0.082507 0.923503 +vt 0.089733 0.922743 +vt 0.096107 0.922098 +vt 0.095403 0.917834 +vt 0.100966 0.915951 +vt 0.089068 0.919716 +vt 0.093604 0.913803 +vt 0.098749 0.910947 +vt 0.082105 0.921915 +vt 0.088061 0.916794 +vt 0.091293 0.910052 +vt 0.095733 0.906312 +vt 0.080540 0.919045 +vt 0.086156 0.914360 +vt 0.091750 0.902504 +vt 0.084101 0.912048 +vt 0.088036 0.907099 +vt 0.087219 0.899454 +vt 0.077978 0.917045 +vt 0.081424 0.910537 +vt 0.084396 0.904636 +vt 0.082136 0.897299 +vt 0.076492 0.916365 +vt 0.078557 0.909365 +vt 0.080342 0.903182 +vt 0.076138 0.902099 +vt 0.076685 0.896267 +vt 0.075545 0.908749 +vt 0.071121 0.896315 +vt 0.073219 0.916065 +vt 0.072473 0.908778 +vt 0.071815 0.902401 +vt 0.067548 0.903139 +vt 0.065748 0.897585 +vt 0.069444 0.909419 +vt 0.063557 0.904961 +vt 0.060803 0.899889 +vt 0.070099 0.917092 +vt 0.066611 0.910620 +vt 0.056179 0.902822 +vt 0.064088 0.912405 +vt 0.059915 0.907371 +vt 0.052483 0.906883 +vt 0.067592 0.919215 +vt 0.061953 0.914621 +vt 0.057037 0.910627 +vt 0.049498 0.911423 +vt 0.060316 0.917238 +vt 0.054576 0.914244 +vt 0.047369 0.916533 +vt 0.066111 0.922153 +vt 0.059173 0.920093 +vt 0.053136 0.918317 +vt 0.052098 0.922535 +vt 0.046422 0.922010 +vt 0.058616 0.923118 +vt 0.046462 0.927573 +vt 0.065834 0.925421 +vt 0.058695 0.926185 +vt 0.052430 0.926843 +vt 0.053159 0.931097 +vt 0.047673 0.932945 +vt 0.059326 0.929196 +vt 0.054974 0.935078 +vt 0.049845 0.937897 +vt 0.066815 0.928536 +vt 0.060506 0.932018 +vt 0.067814 0.929831 +vt 0.074142 0.924466 +vt 0.070330 0.931857 +vt 0.073428 0.932757 +vt 0.076648 0.932412 +vt 0.079512 0.930858 +vt 0.082410 0.925145 +vt 0.081416 0.920430 +vt 0.079307 0.917984 +vt 0.074865 0.916130 +vt 0.071630 0.916494 +vt 0.068783 0.918085 +vt 0.066775 0.920652 +vt 0.065897 0.923774 +vt 0.066260 0.927001 +vt 0.027180 0.846482 +vt 0.029743 0.846354 +vt 0.028244 0.847578 +vt 0.031538 0.841251 +vt 0.031480 0.844956 +vt 0.029828 0.843308 +vt 0.027873 0.963038 +vt 0.040438 0.966189 +vt 0.036215 0.971273 +vt 0.038214 0.954650 +vt 0.049014 0.955773 +vt 0.044769 0.961115 +vt 0.024052 0.850215 +vt 0.025626 0.849676 +vt 0.024449 0.850624 +vt 0.026880 0.848668 +vt 0.026049 0.847832 +vt 0.028398 0.845023 +vt 0.022589 0.967292 +vt 0.032163 0.976257 +vt 0.033146 0.958778 +vt 0.048745 0.945921 +vt 0.043629 0.950167 +vt 0.023110 0.851337 +vt 0.023308 0.851540 +vt 0.025024 0.849055 +vt 0.049202 0.972078 +vt 0.053364 0.950584 +vt 0.055497 0.960163 +vt 0.024759 0.851102 +vt 0.023463 0.851778 +vt 0.026104 0.850398 +vt 0.030802 0.847935 +vt 0.029072 0.848852 +vt 0.035056 0.845676 +vt 0.032744 0.846915 +vt 0.046148 0.977789 +vt 0.052462 0.966234 +vt 0.027532 0.849654 +vt 0.042831 0.983485 +vt 0.058996 0.975966 +vt 0.064789 0.956603 +vt 0.062860 0.962984 +vt 0.023569 0.852041 +vt 0.026432 0.851202 +vt 0.031508 0.849709 +vt 0.029634 0.850263 +vt 0.036185 0.848313 +vt 0.033620 0.849075 +vt 0.056991 0.982274 +vt 0.060989 0.969547 +vt 0.024974 0.851629 +vt 0.027963 0.850752 +vt 0.054896 0.988707 +vt 0.069226 0.977870 +vt 0.070581 0.964558 +vt 0.025083 0.852190 +vt 0.023621 0.852320 +vt 0.028192 0.851909 +vt 0.026589 0.852055 +vt 0.029932 0.851753 +vt 0.034100 0.851367 +vt 0.068499 0.984579 +vt 0.070028 0.971270 +vt 0.031845 0.851576 +vt 0.067859 0.990937 +vt 0.079728 0.977947 +vt 0.077848 0.957818 +vt 0.078551 0.964454 +vt 0.023619 0.852604 +vt 0.026588 0.852922 +vt 0.031858 0.853474 +vt 0.029907 0.853270 +vt 0.036657 0.853961 +vt 0.034066 0.853707 +vt 0.080377 0.984483 +vt 0.079146 0.971097 +vt 0.025075 0.852762 +vt 0.028190 0.853092 +vt 0.080823 0.990998 +vt 0.088168 0.969538 +vt 0.090207 0.975938 +vt 0.086355 0.962980 +vt 0.024957 0.853319 +vt 0.023560 0.852881 +vt 0.027946 0.854250 +vt 0.026407 0.853773 +vt 0.029615 0.854761 +vt 0.036115 0.856741 +vt 0.033593 0.855992 +vt 0.091997 0.982159 +vt 0.031489 0.855348 +vt 0.093625 0.988551 +vt 0.096698 0.965930 +vt 0.099930 0.971821 +vt 0.090202 0.953903 +vt 0.093527 0.959843 +vt 0.023449 0.853143 +vt 0.027482 0.855342 +vt 0.026064 0.854569 +vt 0.029028 0.856171 +vt 0.035052 0.859395 +vt 0.032700 0.858158 +vt 0.103046 0.977714 +vt 0.024736 0.853846 +vt 0.030733 0.857106 +vt 0.105849 0.983691 +vt 0.104377 0.960793 +vt 0.108533 0.965857 +vt 0.095638 0.950195 +vt 0.099896 0.955350 +vt 0.024413 0.854316 +vt 0.023289 0.853378 +vt 0.025581 0.855290 +vt 0.028175 0.857451 +vt 0.033463 0.861835 +vt 0.031383 0.860111 +vt 0.112842 0.971129 +vt 0.026812 0.856316 +vt 0.029649 0.858673 +vt 0.117098 0.976401 +vt 0.116005 0.958439 +vt 0.105479 0.949915 +vt 0.024007 0.854718 +vt 0.023086 0.853576 +vt 0.025975 0.857153 +vt 0.024958 0.855896 +vt 0.028311 0.860031 +vt 0.027075 0.858526 +vt 0.029724 0.861780 +vt 0.121144 0.962654 +vt 0.110875 0.954122 +vt 0.126159 0.966682 +vt 0.121911 0.949590 +vt 0.100238 0.945498 +vt 0.109876 0.943332 +vt 0.023528 0.855030 +vt 0.022848 0.853731 +vt 0.024236 0.856376 +vt 0.026721 0.861101 +vt 0.025793 0.859368 +vt 0.029001 0.865382 +vt 0.027752 0.863055 +vt 0.127676 0.952626 +vt 0.116003 0.946348 +vt 0.024984 0.857808 +vt 0.133435 0.955869 +vt 0.125860 0.939715 +vt 0.106314 0.933951 +vt 0.112686 0.935902 +vt 0.022585 0.853839 +vt 0.023430 0.856707 +vt 0.024937 0.861810 +vt 0.024372 0.859939 +vt 0.026350 0.866519 +vt 0.025579 0.863938 +vt 0.132177 0.941679 +vt 0.119272 0.937783 +vt 0.022999 0.855247 +vt 0.023884 0.858257 +vt 0.138657 0.943663 +vt 0.121122 0.928734 +vt 0.127653 0.929356 +vt 0.114328 0.928123 +vt 0.022437 0.855356 +vt 0.022305 0.853890 +vt 0.022575 0.856873 +vt 0.023062 0.862160 +vt 0.022871 0.860221 +vt 0.023275 0.864426 +vt 0.134419 0.930035 +vt 0.022718 0.858482 +vt 0.140835 0.930585 +vt 0.127739 0.918780 +vt 0.107614 0.920817 +vt 0.114257 0.920138 +vt 0.022021 0.853889 +vt 0.021702 0.856871 +vt 0.021149 0.862172 +vt 0.021350 0.860202 +vt 0.020667 0.867007 +vt 0.020917 0.864397 +vt 0.134278 0.918067 +vt 0.120903 0.919479 +vt 0.021863 0.855349 +vt 0.021530 0.858479 +vt 0.140835 0.917556 +vt 0.119309 0.910340 +vt 0.125699 0.908226 +vt 0.112774 0.912220 +vt 0.021303 0.855230 +vt 0.021743 0.853830 +vt 0.020365 0.858234 +vt 0.020846 0.856688 +vt 0.019851 0.859912 +vt 0.017862 0.866467 +vt 0.018614 0.863923 +vt 0.131936 0.906379 +vt 0.019260 0.861801 +vt 0.138336 0.904707 +vt 0.115645 0.901724 +vt 0.121520 0.898430 +vt 0.103634 0.908324 +vt 0.109576 0.904936 +vt 0.021481 0.853719 +vt 0.019267 0.857766 +vt 0.020046 0.856341 +vt 0.018432 0.859321 +vt 0.015183 0.865400 +vt 0.016428 0.863024 +vt 0.127431 0.895286 +vt 0.020775 0.855008 +vt 0.017489 0.861039 +vt 0.133432 0.892437 +vt 0.110462 0.893965 +vt 0.115522 0.889765 +vt 0.099874 0.902849 +vt 0.105022 0.898523 +vt 0.020303 0.854683 +vt 0.021246 0.853558 +vt 0.019322 0.855854 +vt 0.017144 0.858461 +vt 0.012716 0.863800 +vt 0.014456 0.861696 +vt 0.120807 0.885419 +vt 0.018288 0.857090 +vt 0.015909 0.859945 +vt 0.126094 0.881135 +vt 0.108072 0.882252 +vt 0.099555 0.892839 +vt 0.021047 0.853355 +vt 0.017448 0.856246 +vt 0.018715 0.855227 +vt 0.014540 0.858593 +vt 0.016063 0.857350 +vt 0.012770 0.860019 +vt 0.112282 0.877084 +vt 0.103757 0.887397 +vt 0.019900 0.854275 +vt 0.116315 0.872014 +vt 0.099157 0.876244 +vt 0.095199 0.898112 +vt 0.092953 0.888356 +vt 0.019589 0.853793 +vt 0.020892 0.853116 +vt 0.018232 0.854499 +vt 0.013465 0.856983 +vt 0.015221 0.856055 +vt 0.009117 0.859287 +vt 0.011483 0.858020 +vt 0.102173 0.870442 +vt 0.095946 0.882186 +vt 0.016793 0.855247 +vt 0.105407 0.864661 +vt 0.089155 0.872257 +vt 0.083677 0.892093 +vt 0.085489 0.885488 +vt 0.020785 0.852852 +vt 0.017901 0.853688 +vt 0.012759 0.855176 +vt 0.014657 0.854620 +vt 0.007956 0.856588 +vt 0.010596 0.855812 +vt 0.091085 0.865894 +vt 0.087314 0.878891 +vt 0.019373 0.853262 +vt 0.016349 0.854140 +vt 0.093039 0.859361 +vt 0.078243 0.877204 +vt 0.078733 0.870532 +vt 0.077153 0.890914 +vt 0.077720 0.883973 +vt 0.019266 0.852698 +vt 0.020734 0.852572 +vt 0.016126 0.852966 +vt 0.017745 0.852826 +vt 0.012419 0.853273 +vt 0.014395 0.853110 +vt 0.010120 0.853461 +vt 0.079263 0.863626 +vt 0.079726 0.857150 +vt 0.068207 0.870503 +vt 0.070534 0.890891 +vt 0.069762 0.884234 +vt 0.020737 0.852287 +vt 0.016149 0.851772 +vt 0.017761 0.851952 +vt 0.014404 0.851577 +vt 0.007481 0.850726 +vt 0.010208 0.851065 +vt 0.067247 0.863923 +vt 0.069013 0.877381 +vt 0.019277 0.852124 +vt 0.012443 0.851341 +vt 0.066247 0.857190 +vt 0.059988 0.879162 +vt 0.057726 0.872776 +vt 0.061940 0.885730 +vt 0.019399 0.851565 +vt 0.020796 0.852010 +vt 0.016404 0.850606 +vt 0.017948 0.851099 +vt 0.014724 0.850072 +vt 0.010725 0.848746 +vt 0.055606 0.866595 +vt 0.012844 0.849446 +vt 0.053223 0.860424 +vt 0.051467 0.882941 +vt 0.048005 0.877181 +vt 0.058161 0.894961 +vt 0.054769 0.888990 +vt 0.020908 0.851748 +vt 0.016882 0.849515 +vt 0.018299 0.850304 +vt 0.015339 0.848660 +vt 0.008192 0.847879 +vt 0.011670 0.846573 +vt 0.044624 0.871452 +vt 0.019623 0.851039 +vt 0.013640 0.847687 +vt 0.041333 0.865901 +vt 0.043826 0.888251 +vt 0.039455 0.883345 +vt 0.052767 0.898728 +vt 0.048441 0.893607 +vt 0.019950 0.850570 +vt 0.021069 0.851514 +vt 0.018789 0.849586 +vt 0.016217 0.847391 +vt 0.011013 0.842870 +vt 0.013056 0.844655 +vt 0.034889 0.878286 +vt 0.017567 0.848546 +vt 0.014764 0.846136 +vt 0.030298 0.873276 +vt 0.032189 0.890830 +vt 0.042918 0.899096 +vt 0.021273 0.851316 +vt 0.018414 0.847720 +vt 0.019417 0.848987 +vt 0.016133 0.844807 +vt 0.017337 0.846334 +vt 0.014775 0.843037 +vt 0.026830 0.886838 +vt 0.037473 0.894971 +vt 0.020358 0.850170 +vt 0.021321 0.883155 +vt 0.026550 0.899707 +vt 0.048138 0.903424 +vt 0.038616 0.905704 +vt 0.020838 0.849861 +vt 0.021511 0.851161 +vt 0.020142 0.848513 +vt 0.017739 0.843774 +vt 0.018628 0.845520 +vt 0.013181 0.840912 +vt 0.016766 0.841809 +vt 0.020676 0.896936 +vt 0.032516 0.902765 +vt 0.019411 0.847079 +vt 0.014599 0.894342 +vt 0.022862 0.909613 +vt 0.042214 0.915024 +vt 0.035854 0.913164 +vt 0.021774 0.851055 +vt 0.020947 0.848191 +vt 0.019520 0.843099 +vt 0.020045 0.844983 +vt 0.015633 0.839451 +vt 0.018930 0.840978 +vt 0.016530 0.907880 +vt 0.029460 0.911391 +vt 0.021367 0.849648 +vt 0.020509 0.846645 +vt 0.010159 0.906416 +vt 0.027740 0.920329 +vt 0.021155 0.919908 +vt 0.034395 0.920993 +vt 0.021928 0.849542 +vt 0.022053 0.851004 +vt 0.021799 0.848031 +vt 0.021526 0.844711 +vt 0.018275 0.838493 +vt 0.021205 0.840562 +vt 0.014498 0.919393 +vt 0.021669 0.846427 +vt 0.021381 0.842790 +vt 0.008135 0.918962 +vt 0.027802 0.929537 +vt 0.021185 0.930314 +vt 0.041125 0.928158 +vt 0.034557 0.928894 +vt 0.022337 0.851007 +vt 0.022667 0.848040 +vt 0.023034 0.844726 +vt 0.023778 0.838082 +vt 0.023510 0.840625 +vt 0.014676 0.931069 +vt 0.022499 0.849552 +vt 0.022848 0.846449 +vt 0.023259 0.842808 +vt 0.008162 0.931635 +vt 0.029533 0.938533 +vt 0.023194 0.940613 +vt 0.036012 0.936678 +vt 0.023056 0.849672 +vt 0.022614 0.851066 +vt 0.023999 0.846696 +vt 0.023515 0.848225 +vt 0.024516 0.845035 +vt 0.026509 0.838625 +vt 0.025760 0.841108 +vt 0.016991 0.942492 +vt 0.025111 0.843185 +vt 0.010609 0.944182 +vt 0.033117 0.947005 +vt 0.027275 0.950255 +vt 0.045025 0.940497 +vt 0.039148 0.943843 +vt 0.022875 0.851177 +vt 0.025083 0.847162 +vt 0.024308 0.848571 +vt 0.025914 0.845628 +vt 0.029125 0.839679 +vt 0.027898 0.841999 +vt 0.021387 0.953362 +vt 0.023580 0.849894 +vt 0.026848 0.843943 +vt 0.015406 0.956203 +vt 0.022179 0.852447 +vt 0.042583 0.934489 +vt 0.044732 0.908981 +vt 0.064153 0.892427 +vt 0.089692 0.894632 +vt 0.106146 0.914403 +vt 0.103741 0.939990 +vt 0.084203 0.956330 +vt 0.058833 0.954045 +vt 0.986328 0.333984 +vt 0.483537 0.409555 +vt 0.986328 0.009766 +vt 0.107422 0.009766 +vt 0.928788 0.958957 +vt 0.979307 0.839033 +vt 0.987145 0.842241 +vt 0.959088 0.922854 +vt 0.992439 0.854891 +vt 0.989281 0.862679 +vt 0.923091 0.892611 +vt 0.976815 0.867973 +vt 0.965194 0.860763 +vt 0.963256 0.852378 +vt 0.966503 0.844363 +vt 0.033487 0.843344 +vt 0.071271 0.957636 +vt 0.036657 0.851141 +vt 0.031349 0.863802 +vt 0.107376 0.927434 +vt 0.023507 0.867001 +vt 0.010724 0.861667 +vt 0.007470 0.853676 +vt 0.009395 0.845280 +vt 0.041240 0.921575 +vt 0.021015 0.838064 +s off +f 4/1 2/2 1/3 +f 8/4 6/5 5/6 +f 13/7 15/8 14/9 +f 17/10 19/11 18/12 +f 32/13 30/14 29/15 +f 36/16 34/17 33/18 +f 37/19 39/20 38/21 +f 21/22 23/23 20/24 +f 25/25 27/26 24/27 +f 41/28 43/29 42/30 +f 48/31 46/32 45/33 +f 52/34 50/35 49/36 +f 53/37 55/38 54/39 +f 60/40 58/41 57/42 +f 29/15 62/43 61/44 +f 66/45 64/46 63/47 +f 67/48 6/5 68/49 +f 72/50 70/51 69/52 +f 76/53 74/54 73/55 +f 77/56 79/57 78/58 +f 81/59 83/60 82/61 +f 59/62 86/63 85/64 +f 88/65 90/66 89/67 +f 96/68 94/69 93/70 +f 100/71 98/72 97/73 +f 101/74 103/75 102/76 +f 106/77 34/17 87/78 +f 108/79 115/80 107/81 +f 117/82 36/16 118/83 +f 124/84 126/85 125/86 +f 131/87 129/88 128/89 +f 132/90 134/91 133/92 +f 142/93 140/94 139/95 +f 148/96 60/40 147/97 +f 144/98 127/99 124/84 +f 149/100 151/101 150/102 +f 156/103 154/104 153/105 +f 159/106 158/107 157/108 +f 116/109 164/110 105/111 +f 171/112 169/113 168/114 +f 174/115 173/116 172/117 +f 179/118 181/119 180/120 +f 186/121 188/122 187/123 +f 194/124 196/125 195/126 +f 199/127 139/95 198/128 +f 206/129 208/130 207/131 +f 213/132 211/133 210/134 +f 202/135 214/136 201/137 +f 96/68 216/138 54/39 +f 92/139 43/29 44/140 +f 97/73 246/141 100/71 +f 250/142 229/143 228/144 +f 252/145 58/41 253/146 +f 258/147 256/148 255/149 +f 260/150 229/143 259/151 +f 110/152 112/153 113/154 +f 114/155 263/156 109/157 +f 265/158 267/159 266/160 +f 56/161 270/162 269/163 +f 274/164 249/165 250/142 +f 185/166 63/47 64/46 +f 280/167 278/168 276/169 +f 285/170 283/171 157/108 +f 288/172 211/133 212/173 +f 141/174 92/139 46/32 +f 289/175 175/176 176/177 +f 148/96 105/111 106/77 +f 312/178 170/179 171/112 +f 238/180 42/30 43/29 +f 318/181 160/182 317/183 +f 310/184 308/185 307/186 +f 241/187 325/188 324/189 +f 160/182 240/190 317/183 +f 47/191 307/186 308/185 +f 108/79 315/192 164/110 +f 345/193 86/63 119/194 +f 348/195 350/196 349/197 +f 356/198 358/199 357/200 +f 355/201 353/202 352/203 +f 363/204 32/13 362/205 +f 149/100 150/102 176/177 +f 364/206 253/146 365/207 +f 366/208 368/209 367/210 +f 183/211 371/212 63/47 +f 163/213 161/214 160/182 +f 209/215 101/74 208/130 +f 378/216 165/217 166/218 +f 379/219 381/220 380/221 +f 383/222 3/223 4/1 +f 284/224 386/225 385/226 +f 387/227 389/228 388/229 +f 391/230 229/143 249/165 +f 73/55 397/231 396/232 +f 405/233 407/234 406/235 +f 203/236 411/237 410/238 +f 414/239 413/240 412/241 +f 1/3 357/200 4/1 +f 277/242 131/87 275/243 +f 254/244 57/42 58/41 +f 358/199 415/245 351/246 +f 417/247 386/225 408/248 +f 401/249 192/250 420/251 +f 419/252 127/99 143/253 +f 421/254 182/255 422/256 +f 103/75 302/257 409/258 +f 428/259 368/209 174/115 +f 380/221 359/260 356/198 +f 62/43 266/160 323/261 +f 140/94 431/262 430/263 +f 357/200 351/246 348/195 +f 356/198 379/219 380/221 +f 415/245 403/264 434/265 +f 437/266 436/267 435/268 +f 438/269 440/270 439/271 +f 188/122 450/272 449/273 +f 452/274 454/275 453/276 +f 265/158 181/119 421/254 +f 224/277 64/46 225/278 +f 237/279 213/132 427/280 +f 275/243 128/89 458/281 +f 281/282 460/283 459/284 +f 50/35 79/57 461/285 +f 73/55 282/286 281/282 +f 468/287 466/288 465/289 +f 390/290 352/203 359/260 +f 482/291 484/292 483/293 +f 489/294 487/295 486/296 +f 493/297 495/298 494/299 +f 472/300 470/301 469/302 +f 502/303 500/304 499/305 +f 220/306 222/307 223/308 +f 512/309 143/253 66/45 +f 518/310 511/311 80/312 +f 513/313 230/314 286/315 +f 205/316 31/317 244/318 +f 189/319 451/320 188/122 +f 163/213 532/321 8/4 +f 533/322 225/278 251/323 +f 446/324 447/325 412/241 +f 335/326 540/327 334/328 +f 544/329 546/330 545/331 +f 329/332 291/333 292/334 +f 199/127 262/335 238/180 +f 385/226 416/336 550/337 +f 532/321 191/338 247/339 +f 363/204 118/83 243/340 +f 236/341 237/279 250/142 +f 578/342 580/343 579/344 +f 573/345 571/346 570/347 +f 561/348 562/349 272/350 +f 241/187 259/151 240/190 +f 590/351 592/352 591/353 +f 545/331 595/354 594/355 +f 503/356 155/357 504/358 +f 606/359 624/360 623/361 +f 478/362 480/363 479/364 +f 646/365 648/366 647/367 +f 590/351 689/368 684/369 +f 564/370 651/371 650/372 +f 728/373 184/374 727/375 +f 714/376 716/377 715/378 +f 692/379 575/380 693/381 +f 541/382 581/383 578/342 +f 346/384 248/385 400/386 +f 161/214 230/314 160/182 +f 128/89 94/69 95/387 +f 698/388 704/389 703/390 +f 574/391 576/392 575/380 +f 290/393 401/249 328/394 +f 630/395 725/396 726/397 +f 733/398 735/399 734/400 +f 755/401 496/402 493/297 +f 759/403 481/404 760/405 +f 757/406 762/407 761/408 +f 764/409 466/288 467/410 +f 768/411 3808/412 3809/413 +f 759/403 488/414 489/294 +f 492/415 475/416 771/417 +f 474/418 769/419 473/420 +f 773/421 465/289 772/422 +f 771/417 486/296 483/293 +f 484/292 775/423 491/424 +f 774/425 489/294 486/296 +f 495/298 764/409 756/426 +f 495/298 761/408 494/299 +f 137/427 784/428 136/429 +f 325/188 797/430 547/431 +f 165/217 51/432 52/34 +f 369/433 29/15 370/434 +f 730/435 568/436 569/437 +f 90/66 301/438 89/67 +f 243/340 516/439 242/440 +f 800/441 806/442 805/443 +f 817/444 808/445 816/446 +f 816/446 823/447 822/448 +f 306/449 447/325 807/450 +f 815/451 809/452 808/445 +f 829/453 828/454 825/455 +f 726/397 501/456 502/303 +f 274/164 424/457 423/458 +f 879/459 881/460 880/461 +f 884/462 879/459 885/463 +f 219/464 217/465 211/133 +f 906/466 904/467 897/468 +f 455/469 205/316 542/470 +f 898/471 830/472 829/453 +f 903/473 880/461 881/460 +f 906/466 897/468 898/471 +f 377/474 519/475 165/217 +f 923/476 948/477 946/478 +f 946/478 951/479 950/480 +f 3519/481 739/482 3517/483 +f 900/484 886/485 880/461 +f 225/278 65/486 144/98 +f 182/255 442/487 422/256 +f 809/452 947/488 824/489 +f 954/490 962/491 961/492 +f 927/493 965/494 966/495 +f 885/463 880/461 886/485 +f 925/496 966/495 967/497 +f 343/498 341/499 340/500 +f 965/494 971/501 968/502 +f 968/502 970/503 969/504 +f 972/505 969/504 973/506 +f 963/507 981/508 978/509 +f 336/510 338/511 339/512 +f 992/513 827/514 828/454 +f 810/515 996/516 959/517 +f 1007/518 1002/519 1008/520 +f 1012/521 827/514 1009/522 +f 1011/523 1007/518 1008/520 +f 294/524 292/334 291/333 +f 907/525 920/526 919/527 +f 1017/528 1019/529 1018/530 +f 1020/531 1022/532 1021/533 +f 1035/534 1020/531 1044/535 +f 1061/536 1047/537 1046/538 +f 1063/539 1046/538 1062/540 +f 1044/535 1021/533 1045/541 +f 1102/542 1097/543 1109/544 +f 1116/545 1118/546 1117/547 +f 1016/548 1014/549 1013/550 +f 881/460 904/467 903/473 +f 816/446 1127/551 817/444 +f 1094/552 949/553 1097/543 +f 514/554 167/555 515/556 +f 146/557 81/59 82/61 +f 1133/558 1130/559 1129/560 +f 1102/542 1126/561 822/448 +f 822/448 1116/545 816/446 +f 1145/562 1148/563 1136/564 +f 1076/565 1151/566 1069/567 +f 1148/563 1086/568 1087/569 +f 1109/544 1114/570 1136/564 +f 1154/571 1156/572 1155/573 +f 1153/574 967/497 1156/572 +f 3464/575 463/576 3714/577 +f 1144/578 1152/579 1151/566 +f 1156/572 1163/580 1162/581 +f 1164/582 1169/583 1165/584 +f 1145/562 1176/585 1147/586 +f 1114/570 1154/571 1171/587 +f 1183/588 1164/582 1177/589 +f 1184/590 1177/589 1185/591 +f 1069/567 1062/540 1064/592 +f 1023/593 1194/594 1022/532 +f 1162/581 1170/595 1169/583 +f 1195/596 1185/591 1191/597 +f 1183/588 1176/585 1155/573 +f 1201/598 1152/579 1196/599 +f 1061/536 1201/598 1202/600 +f 3825/601 843/602 3836/603 +f 1203/604 1195/596 1034/605 +f 1202/600 1184/590 1195/596 +f 1218/606 1203/604 1217/607 +f 1060/608 1202/600 1203/604 +f 1225/609 1217/607 1219/610 +f 671/611 694/612 670/613 +f 1219/610 1024/614 1035/534 +f 1217/607 1034/605 1024/614 +f 1226/615 1015/616 1227/617 +f 1243/618 1234/619 1233/620 +f 1231/621 1229/622 1228/623 +f 847/624 1233/620 843/602 +f 843/602 1244/625 878/626 +f 1233/620 1245/627 1244/625 +f 1923/628 233/629 216/138 +f 2100/630 499/305 500/304 +f 3914/631 2135/632 3900/633 +f 61/44 323/261 505/634 +f 210/134 217/465 457/635 +f 1299/636 1309/637 1300/638 +f 3863/639 1231/621 3862/640 +f 1066/641 1321/642 1322/643 +f 1322/643 1228/623 1229/622 +f 1060/608 1321/642 1047/537 +f 1325/644 1323/645 1310/646 +f 1244/625 1332/647 1330/648 +f 1290/649 1242/650 1288/651 +f 1337/652 1339/653 1338/654 +f 1330/648 1340/655 1339/653 +f 1341/656 1245/627 1294/657 +f 1342/658 1332/647 1341/656 +f 1343/659 1341/656 1344/660 +f 1344/660 1294/657 1293/661 +f 3857/662 1345/663 1346/664 +f 1347/665 1342/658 1343/659 +f 3856/666 1295/667 1345/663 +f 1349/668 1348/669 1347/665 +f 3861/670 1347/665 3853/671 +f 3853/671 1343/659 3857/662 +f 906/466 829/453 1353/672 +f 905/673 1353/672 1354/674 +f 865/675 1355/676 1357/677 +f 1355/676 829/453 825/455 +f 1357/677 825/455 826/678 +f 1356/679 1353/672 1355/676 +f 3834/680 1338/654 3833/681 +f 866/682 1356/679 865/675 +f 1358/683 1354/674 1356/679 +f 3828/684 1337/652 3834/680 +f 838/685 1012/521 841/686 +f 1363/687 1338/654 1339/653 +f 1368/688 1339/653 1340/655 +f 1348/669 1340/655 1342/658 +f 1371/689 3824/690 3829/691 +f 524/692 526/693 523/694 +f 528/695 530/696 527/697 +f 1372/698 1369/699 1371/689 +f 535/700 537/701 538/702 +f 1367/703 1348/669 1350/704 +f 1370/705 1359/706 1369/699 +f 1369/699 3833/681 3824/690 +f 1373/707 903/473 904/467 +f 555/708 557/709 558/710 +f 1374/711 910/712 1373/707 +f 1373/707 905/673 1375/713 +f 1374/711 1375/713 1376/714 +f 1375/713 1354/674 1370/705 +f 1378/715 908/716 1377/717 +f 376/718 651/371 1387/719 +f 1388/720 973/506 969/504 +f 586/721 588/722 585/723 +f 1390/724 1388/720 1391/725 +f 1391/725 969/504 970/503 +f 597/726 599/727 596/728 +f 600/729 602/730 603/731 +f 1392/732 970/503 979/733 +f 608/734 610/735 607/736 +f 612/737 523/694 611/738 +f 614/739 616/740 613/741 +f 617/742 25/25 24/27 +f 620/743 622/744 619/745 +f 1397/746 1391/725 1392/732 +f 1398/747 1392/732 1399/748 +f 1400/749 920/526 1378/715 +f 1402/750 1165/584 1169/583 +f 636/751 638/752 635/753 +f 930/754 1402/750 929/755 +f 641/756 643/757 644/758 +f 929/755 1169/583 1170/595 +f 1404/759 1403/760 1402/750 +f 1411/761 1365/762 1406/763 +f 1412/764 1415/765 1414/766 +f 652/767 654/768 655/769 +f 609/770 657/771 658/772 +f 659/773 661/774 662/775 +f 558/710 586/721 585/723 +f 665/776 667/777 664/778 +f 1413/779 1406/763 1412/764 +f 1418/780 3810/781 3813/782 +f 1417/783 1371/689 1416/784 +f 1416/784 3829/691 3810/781 +f 1419/785 1416/784 1418/780 +f 1386/786 1374/711 1420/787 +f 677/788 679/789 676/790 +f 1385/791 1420/787 1421/792 +f 1420/787 1376/714 1422/793 +f 685/794 687/795 688/796 +f 1421/792 1422/793 1423/797 +f 528/695 691/798 658/772 +f 1422/793 1372/698 1417/783 +f 1018/530 747/799 1425/800 +f 699/801 701/802 702/803 +f 1424/804 579/344 1017/528 +f 3663/805 1767/806 3660/807 +f 700/808 711/809 712/810 +f 1093/811 3754/812 1571/813 +f 717/814 530/696 719/815 +f 721/816 723/817 720/818 +f 704/389 3543/819 3554/820 +f 19/11 1426/821 1430/822 +f 1429/823 1427/824 1426/821 +f 1658/825 3542/826 3544/827 +f 1439/828 1434/829 1438/830 +f 1437/831 1435/832 1434/829 +f 1426/821 1433/833 1432/834 +f 1442/835 1432/834 1440/836 +f 742/837 744/838 745/839 +f 1432/834 1441/840 1440/836 +f 751/841 753/842 750/843 +f 1438/830 1403/760 1405/844 +f 1446/845 1444/846 1443/847 +f 1447/848 1446/845 1443/847 +f 3860/849 1443/847 3848/850 +f 1415/765 1445/851 1446/845 +f 1414/766 1446/845 1448/852 +f 2173/853 469/302 470/301 +f 777/854 779/855 686/856 +f 780/857 782/858 783/859 +f 1676/860 1806/861 1675/862 +f 3859/863 1349/668 3861/670 +f 789/864 791/865 788/866 +f 745/839 793/867 742/837 +f 652/767 795/868 653/869 +f 1455/870 1457/871 1456/872 +f 1454/873 1350/704 1452/874 +f 610/735 802/875 801/876 +f 3831/877 698/388 703/390 +f 1352/878 1045/541 1351/879 +f 1015/616 1459/880 1460/881 +f 811/882 813/883 814/884 +f 2118/885 3817/886 2117/887 +f 819/888 821/889 818/890 +f 1466/891 1194/594 1190/892 +f 1467/893 1465/894 1466/891 +f 1182/895 1468/896 1467/893 +f 832/897 833/898 831/899 +f 835/900 837/901 834/902 +f 1467/893 1190/892 1182/895 +f 1469/903 1444/846 1445/851 +f 840/904 712/810 690/905 +f 1453/906 1469/903 1454/873 +f 599/727 845/907 846/908 +f 1226/615 3849/909 3855/910 +f 851/911 853/912 850/913 +f 855/914 856/915 854/916 +f 858/917 860/918 857/919 +f 861/920 863/921 864/922 +f 1014/549 3855/910 3858/923 +f 867/924 868/925 869/926 +f 870/927 872/928 873/929 +f 874/930 876/931 877/932 +f 1310/646 1471/933 1309/637 +f 1476/934 1427/824 1475/935 +f 1461/936 1475/935 1460/881 +f 887/937 889/938 890/939 +f 788/866 892/940 891/941 +f 894/942 896/943 893/944 +f 1460/881 1227/617 1015/616 +f 901/945 524/692 612/737 +f 1465/894 1477/946 1464/947 +f 1865/948 3500/949 1864/950 +f 911/951 913/952 914/953 +f 916/954 918/955 915/956 +f 1850/957 3507/958 1851/959 +f 921/960 895/961 894/942 +f 1479/962 1436/963 1478/964 +f 926/965 667/777 601/966 +f 1481/967 563/968 1480/969 +f 269/163 84/970 1482/971 +f 931/972 933/973 916/954 +f 934/974 614/739 869/926 +f 936/975 688/796 937/976 +f 938/977 662/775 939/978 +f 1484/979 122/980 123/981 +f 941/982 835/900 834/902 +f 320/983 509/984 510/985 +f 1849/986 3505/987 1850/957 +f 84/970 1484/979 83/60 +f 1487/988 1488/989 539/990 +f 1757/991 3502/992 3509/993 +f 365/207 1491/994 364/206 +f 461/285 80/312 511/311 +f 117/82 362/205 1496/995 +f 1494/996 541/382 1495/997 +f 926/965 957/998 958/999 +f 1477/946 1433/833 1476/934 +f 1709/1000 1585/1001 1700/1002 +f 119/194 1496/995 345/193 +f 271/1003 504/358 156/103 +f 511/311 189/319 186/121 +f 345/193 1492/1004 365/207 +f 255/149 344/1005 254/244 +f 57/42 299/1006 132/90 +f 1501/1007 268/1008 1500/1009 +f 267/159 1499/1010 145/1011 +f 974/1012 976/1013 977/1014 +f 1678/1015 1693/1016 1676/860 +f 3846/1017 1807/1018 3840/1019 +f 557/709 663/1020 558/710 +f 983/1021 984/1022 985/1023 +f 1443/847 3849/909 3848/850 +f 421/254 268/1008 265/158 +f 989/1024 991/1025 988/1026 +f 1490/1027 418/1028 1504/1029 +f 279/1030 309/1031 310/184 +f 997/1032 676/790 679/789 +f 998/1033 999/1034 875/1035 +f 1504/1029 38/21 1505/1036 +f 1506/1037 1507/1038 1486/1039 +f 360/1040 1508/1041 1506/1037 +f 1506/1037 207/131 360/1040 +f 939/978 1006/1042 938/977 +f 270/162 1483/1043 269/163 +f 66/45 546/330 512/309 +f 1010/1044 793/867 935/1045 +f 367/210 437/266 1509/1046 +f 244/318 363/204 243/340 +f 1670/1047 3534/1048 1669/1049 +f 209/215 1510/1050 226/1051 +f 235/1052 1512/1053 1511/1054 +f 1511/1054 234/1055 235/1052 +f 388/229 426/1056 425/1057 +f 427/280 250/142 237/279 +f 161/214 521/1058 231/1059 +f 100/71 45/33 44/140 +f 1025/1060 608/734 1027/1061 +f 1029/1062 1031/1063 1028/1064 +f 939/978 1033/1065 1032/1066 +f 41/28 594/355 99/1067 +f 1036/1068 783/859 1037/1069 +f 702/803 1038/1070 1039/1071 +f 1040/1072 1042/1073 1043/1074 +f 362/205 369/433 1493/1075 +f 187/123 477/1076 186/121 +f 70/51 539/990 198/128 +f 1511/1054 1521/1077 234/1055 +f 1049/1078 603/731 1048/1079 +f 613/741 869/926 614/739 +f 860/918 1051/1080 857/919 +f 1005/1081 1053/1082 1006/1042 +f 753/842 1056/1083 1054/1084 +f 1057/1085 1059/1086 1055/1087 +f 293/1088 1522/1089 292/334 +f 288/172 1521/1077 1522/1089 +f 292/334 1523/1090 329/332 +f 331/1091 1508/1041 1524/1092 +f 306/449 453/276 305/1093 +f 100/71 41/28 99/1067 +f 462/1094 78/58 79/57 +f 330/1095 1524/1092 462/1094 +f 635/753 1068/1096 636/751 +f 1485/1097 1526/1098 1528/1099 +f 206/129 1528/1099 1510/1050 +f 1070/1100 1072/1101 831/899 +f 942/1102 1073/1103 1074/1104 +f 916/954 1075/1105 917/1106 +f 440/270 1530/1107 439/271 +f 157/108 1514/1108 285/170 +f 1529/1109 5/6 1530/1107 +f 371/212 546/330 63/47 +f 790/1110 663/1020 791/865 +f 1077/1111 857/919 1078/1112 +f 1403/760 1435/832 1165/584 +f 1080/1113 1082/1114 1079/1115 +f 531/1116 1529/1109 440/270 +f 21/22 1084/1117 1085/1118 +f 272/350 1531/1119 561/348 +f 137/427 396/232 397/231 +f 690/905 802/875 691/798 +f 335/326 3567/1120 581/383 +f 1090/1121 1029/1062 1091/1122 +f 1092/1123 794/1124 1042/1073 +f 1533/1125 137/427 138/1126 +f 661/774 1095/1127 1096/1128 +f 69/52 445/1129 72/50 +f 1099/1130 1101/1131 1098/1132 +f 38/21 1536/1133 1505/1036 +f 1104/1134 1106/1135 1103/1136 +f 852/1137 1108/1138 853/912 +f 1377/717 909/1139 1386/786 +f 291/333 411/237 294/524 +f 316/1140 516/439 33/18 +f 539/990 1533/1125 534/1141 +f 1505/1036 316/1140 313/1142 +f 1110/1143 1112/1144 1113/1145 +f 1539/1146 460/283 264/1147 +f 522/1148 1537/1149 1539/1146 +f 834/902 1120/1150 1119/1151 +f 1122/1152 1124/1153 1121/1154 +f 612/737 1041/1155 901/945 +f 935/1045 615/1156 614/739 +f 276/169 130/1157 131/87 +f 1686/1158 3522/1159 1685/1160 +f 193/1161 1541/1162 273/1163 +f 231/1059 1540/1164 287/1165 +f 556/1166 982/1167 557/709 +f 365/207 85/64 345/193 +f 190/1168 318/181 1541/1162 +f 1810/1169 3574/1170 3528/1171 +f 3924/1172 3512/1173 3791/1174 +f 1132/1175 985/1023 1131/1176 +f 208/130 102/76 132/90 +f 1134/1177 662/775 661/774 +f 1491/994 80/312 77/56 +f 429/1178 1542/1179 147/97 +f 1137/1180 915/956 918/955 +f 172/117 428/259 174/115 +f 1139/1181 1141/1182 1142/1183 +f 549/1184 54/39 55/38 +f 1517/1185 1518/1186 296/1187 +f 976/1013 1146/1188 938/977 +f 834/902 984/1022 941/982 +f 1543/1189 286/315 115/80 +f 1544/1190 239/1191 513/313 +f 133/92 1544/1190 1542/1179 +f 506/1192 257/1193 258/147 +f 420/251 328/394 401/249 +f 1158/1194 1160/1195 1157/1196 +f 587/1197 1103/1136 588/722 +f 1513/1198 1514/1108 151/101 +f 607/736 1027/1061 608/734 +f 304/1199 1545/1200 303/1201 +f 364/206 77/56 506/1192 +f 69/52 198/128 139/95 +f 1006/1042 976/1013 938/977 +f 700/808 1112/1144 701/802 +f 3877/1202 3525/1203 3787/1204 +f 1166/1205 657/771 656/1206 +f 1167/1207 858/917 1077/1111 +f 1300/638 3524/1208 1299/636 +f 1172/1209 1174/1210 1175/1211 +f 218/1212 200/1213 217/465 +f 1179/1214 1181/1215 1178/1216 +f 372/1217 97/73 98/72 +f 89/67 227/1218 88/65 +f 1186/1219 1188/1220 1189/1221 +f 172/117 1517/1185 1549/1222 +f 1482/971 81/59 1498/1223 +f 1090/1121 1193/1224 1030/1225 +f 394/1226 353/202 1551/1227 +f 526/693 1198/1228 1197/1229 +f 811/882 858/917 812/1230 +f 1199/1231 1026/1232 1025/1060 +f 606/359 697/1233 696/1234 +f 1204/1235 1206/1236 743/1237 +f 1207/1238 523/694 526/693 +f 1209/1239 867/924 613/741 +f 914/953 685/794 936/975 +f 1478/964 1441/840 1477/946 +f 1029/1062 1161/1240 1091/1122 +f 1211/1241 1213/1242 1214/1243 +f 3858/923 1451/1244 3859/863 +f 844/1245 1216/1246 845/907 +f 423/458 273/1163 274/164 +f 1220/1247 1222/1248 1083/1249 +f 22/1250 1224/1251 23/23 +f 882/1252 897/468 881/460 +f 1519/1253 173/116 387/227 +f 1189/1221 1232/1254 1178/1216 +f 349/197 550/337 416/336 +f 1071/1255 1236/1256 1072/1101 +f 1237/1257 1239/1258 745/839 +f 1221/1259 1189/1221 1240/1260 +f 1510/1050 1512/1053 333/1261 +f 939/978 1241/1262 1005/1081 +f 1556/1263 5/6 67/48 +f 1553/1264 394/1226 1551/1227 +f 404/1265 67/48 347/1266 +f 1247/1267 1249/1268 1246/1269 +f 142/93 238/180 92/139 +f 1251/1270 635/753 1250/1271 +f 850/913 1253/1272 851/911 +f 1254/1273 1077/1111 1255/1274 +f 57/42 133/92 429/1178 +f 443/1275 552/1276 551/1277 +f 1187/1278 1175/1211 1188/1220 +f 1256/1279 831/899 833/898 +f 432/1280 382/1281 383/222 +f 741/1282 747/799 746/1283 +f 434/265 351/246 415/245 +f 349/197 383/222 348/195 +f 251/323 1481/967 1480/969 +f 395/1284 352/203 353/202 +f 1518/1186 1550/1285 1551/1227 +f 1558/1286 378/216 340/500 +f 109/157 314/1287 315/192 +f 285/170 1513/1198 407/234 +f 395/1284 393/1288 392/1289 +f 202/135 410/238 1558/1286 +f 417/247 405/233 432/1280 +f 1246/1269 1258/1290 1247/1267 +f 3/223 297/1291 2/2 +f 1259/1292 1261/1293 1262/1294 +f 403/264 347/1266 284/224 +f 955/1295 953/1296 952/1297 +f 462/1094 51/432 330/1095 +f 1096/1128 687/795 1263/1298 +f 429/1178 60/40 57/42 +f 896/943 1265/1299 932/1300 +f 1267/1301 1268/1302 1266/1303 +f 423/458 327/1304 420/251 +f 37/19 180/120 40/1305 +f 20/24 1187/1278 1186/1219 +f 1256/1279 1071/1255 1070/1100 +f 155/357 156/103 504/358 +f 1188/1220 1269/1306 1232/1254 +f 1236/1256 1271/1307 1262/1294 +f 1272/1308 535/700 621/1309 +f 565/1310 463/576 464/1311 +f 1273/1312 745/839 1239/1258 +f 876/931 1255/1274 1274/1313 +f 316/1140 164/110 315/192 +f 437/266 503/356 1509/1046 +f 194/124 1495/997 197/1314 +f 1275/1315 864/922 863/921 +f 624/360 631/1316 630/395 +f 1277/1317 1137/1180 1278/1318 +f 569/437 567/1319 566/1320 +f 1481/967 125/86 366/208 +f 324/189 547/431 326/1321 +f 1279/1322 1107/1323 1280/1324 +f 1525/1325 329/332 1523/1090 +f 1281/1326 1137/1180 918/955 +f 171/112 1553/1264 1552/1327 +f 1488/989 396/232 1533/1125 +f 1557/1328 1562/1329 1559/1330 +f 1282/1331 1206/1236 1205/1332 +f 1053/1082 1278/1318 1281/1326 +f 778/1333 607/736 1283/1334 +f 713/1335 3566/1336 3569/1337 +f 251/323 144/98 124/84 +f 4/1 348/195 383/222 +f 709/1338 707/1339 706/1340 +f 728/373 45/33 246/141 +f 261/1341 1563/1342 544/329 +f 789/864 1287/1343 790/1110 +f 74/54 263/156 282/286 +f 403/264 385/226 434/265 +f 1178/1216 1240/1260 1189/1221 +f 1223/1344 1289/1345 1224/1251 +f 158/107 150/102 151/101 +f 1220/1247 1186/1219 1221/1259 +f 296/1187 354/1346 433/1347 +f 784/428 1538/1348 1566/1349 +f 1181/1215 1291/1350 1222/1248 +f 1269/1306 1257/1351 1246/1269 +f 1566/1349 438/269 399/1352 +f 136/429 1566/1349 1564/1353 +f 1563/1342 169/113 1565/1354 +f 107/81 109/157 108/79 +f 1297/1355 1298/1356 1296/1357 +f 1464/947 1476/934 1461/936 +f 1520/1358 507/1359 508/1360 +f 1301/1361 1303/1362 1304/1363 +f 1306/1364 1308/1365 1305/1366 +f 175/176 1532/1367 272/350 +f 1532/1367 200/1213 201/137 +f 1311/1368 1312/1369 1313/1370 +f 872/928 1315/1371 1316/1372 +f 1317/1373 1318/1374 1319/1375 +f 3836/603 878/626 3828/684 +f 1305/1366 864/922 1276/1376 +f 1040/1072 863/921 1320/1377 +f 1564/1353 399/1352 169/113 +f 592/352 1575/1378 591/353 +f 591/353 1088/1379 689/368 +f 1581/1380 1583/1381 1582/1382 +f 1196/599 1147/586 1176/585 +f 710/1383 583/1384 713/1335 +f 285/170 408/248 386/225 +f 953/1296 961/492 963/507 +f 1594/1385 1589/1386 1593/1387 +f 1585/1001 1587/1388 1586/1389 +f 1592/1390 1590/1391 1589/1386 +f 3885/1392 944/1393 3899/1394 +f 1600/1395 1598/1396 1597/1397 +f 1604/1398 1602/1399 1601/1400 +f 1399/748 979/733 980/1401 +f 1589/1386 1596/1402 1595/1403 +f 1610/1404 1608/1405 1607/1406 +f 298/1407 361/1408 360/1040 +f 551/1277 276/169 277/242 +f 1627/1409 3814/1410 3819/1411 +f 859/1412 818/890 860/918 +f 1078/1112 1328/1413 1329/1414 +f 1555/1415 1530/1107 1556/1263 +f 572/1416 680/1417 681/1418 +f 772/422 776/1419 774/425 +f 977/1014 918/955 917/1106 +f 404/1265 392/1289 393/1288 +f 1054/1084 750/843 753/842 +f 1644/1420 1643/1421 1642/1422 +f 932/1300 1082/1114 933/973 +f 1067/1423 1334/1424 1068/1096 +f 1540/1164 264/1147 114/155 +f 597/726 643/757 1336/1425 +f 471/1426 762/407 470/301 +f 1642/1422 3831/877 3842/1427 +f 1644/1420 3842/1427 3843/1428 +f 923/476 950/480 927/493 +f 96/68 548/1429 95/387 +f 520/1430 522/1148 521/1058 +f 445/1129 443/1275 442/487 +f 849/1431 848/1432 842/1433 +f 480/363 755/401 493/297 +f 1646/1434 481/404 1639/1435 +f 311/1436 1567/1437 170/179 +f 464/1311 3497/1438 3495/1439 +f 3497/1438 1361/1440 3495/1439 +f 234/1055 236/341 235/1052 +f 190/1168 192/250 191/338 +f 153/105 152/1441 149/100 +f 231/1059 286/315 230/314 +f 1552/1327 1551/1227 1550/1285 +f 760/405 1648/1442 488/414 +f 3832/1443 1649/1444 3830/1445 +f 828/454 826/678 825/455 +f 52/34 166/218 165/217 +f 1663/1446 1661/1447 1660/1448 +f 287/1165 115/80 286/315 +f 668/1449 670/613 669/1450 +f 634/1451 640/1452 639/1453 +f 553/1454 559/1455 554/1456 +f 118/83 33/18 516/439 +f 492/415 491/424 490/1457 +f 3552/1458 1651/1459 3553/1460 +f 582/1461 584/1462 583/1384 +f 384/1463 392/1289 415/245 +f 1381/1464 1383/1465 1380/1466 +f 1562/1329 435/268 436/267 +f 952/1297 951/479 947/488 +f 3529/1467 583/1384 584/1462 +f 1660/1448 1667/1468 1666/1469 +f 1394/1470 1396/1471 1393/1472 +f 1660/1448 1664/1473 1663/1446 +f 1671/1474 1669/1049 1668/1475 +f 1624/1476 1673/1477 1672/1478 +f 1407/1479 1409/1480 1410/1481 +f 1677/1482 1675/862 1674/1483 +f 1613/1484 1677/1482 1625/1485 +f 1679/1486 1676/860 1677/1482 +f 1626/1487 3811/1488 3814/1410 +f 534/1141 198/128 539/990 +f 176/177 150/102 159/106 +f 803/1489 734/400 800/441 +f 400/386 191/338 192/250 +f 65/486 143/253 144/98 +f 3526/1490 1656/1491 3540/1492 +f 402/1493 157/108 283/171 +f 629/1494 627/1495 626/1496 +f 461/285 49/36 50/35 +f 758/1497 495/298 756/426 +f 796/1498 786/1499 785/1500 +f 406/235 1513/1198 1560/1501 +f 342/1502 166/218 167/555 +f 1694/1503 1658/825 1695/1504 +f 1692/1505 1694/1503 1696/1506 +f 3557/1507 1652/1508 3552/1458 +f 3921/1509 1703/1510 3923/1511 +f 326/1321 302/257 90/66 +f 3916/1512 1702/1513 1706/1514 +f 3919/1515 1698/1516 1701/1517 +f 1699/1518 3927/1519 3918/1520 +f 1557/1328 1560/1501 1561/1521 +f 1127/551 1117/547 1128/1522 +f 400/386 289/175 346/384 +f 1706/1514 1707/1523 1708/1524 +f 1707/1523 1599/1525 1600/1395 +f 1709/1000 1708/1524 1588/1526 +f 1714/1527 1711/1528 1713/1529 +f 3919/1515 1709/1000 1700/1002 +f 1704/1530 1577/1531 1703/1510 +f 1716/1532 1713/1529 1715/1533 +f 1559/1330 1549/1222 297/1291 +f 1722/1534 1720/1535 1719/1536 +f 1335/1537 596/728 1489/1538 +f 410/238 377/474 378/216 +f 973/506 1163/580 972/505 +f 168/114 399/1352 398/1539 +f 1571/813 1089/1540 1093/811 +f 1572/1541 682/1542 1571/813 +f 749/1543 647/367 754/1544 +f 1730/1545 1723/1546 1729/1547 +f 1594/1385 1729/1547 1592/1390 +f 1729/1547 1591/1548 1592/1390 +f 1731/1549 1730/1545 1583/1381 +f 1384/1550 1377/717 1379/1551 +f 1732/1552 1712/1553 1714/1527 +f 1724/1554 1731/1549 1732/1552 +f 1712/1553 1731/1549 1580/1555 +f 1722/1534 1732/1552 1733/1556 +f 1721/1557 1733/1556 1734/1558 +f 1734/1558 1716/1532 1717/1559 +f 1735/1560 1736/1561 1697/1562 +f 1733/1556 1714/1527 1716/1532 +f 1663/1446 1741/1563 1668/1475 +f 1742/1564 1740/1565 1743/1566 +f 1738/1567 1737/1568 1735/1560 +f 1665/1569 1666/1469 1740/1565 +f 1665/1569 1744/1570 1664/1473 +f 1725/1571 1746/1572 1745/1573 +f 1591/1548 1745/1573 1590/1391 +f 1590/1391 1747/1574 1596/1402 +f 1745/1573 1748/1575 1747/1574 +f 1659/1576 3538/1577 3542/826 +f 3287/1578 3545/1579 3282/1580 +f 1185/591 1182/895 1190/892 +f 1664/1473 1749/1581 1741/1563 +f 1741/1563 1739/1582 1738/1567 +f 1746/1572 1743/1566 1748/1575 +f 1726/1583 1742/1564 1746/1572 +f 1153/574 924/1584 925/496 +f 1115/1585 1153/574 1154/571 +f 1654/1586 3575/1587 1655/1588 +f 1896/1589 3549/1590 1686/1158 +f 1720/1535 1744/1570 1726/1583 +f 1721/1557 1749/1581 1720/1535 +f 1750/1591 1701/1517 1698/1516 +f 1697/1562 1750/1591 1696/1506 +f 1151/566 1063/539 1062/540 +f 1751/1592 1670/1047 1671/1474 +f 1695/1504 1752/1593 1751/1592 +f 961/492 986/1594 981/508 +f 1770/1595 1768/1596 1767/806 +f 1766/1597 1593/1387 1765/1598 +f 1731/1549 1579/1599 1580/1555 +f 1579/1599 1774/1600 1578/1601 +f 3928/1602 1771/1603 3929/1604 +f 1764/1605 3928/1602 3917/1606 +f 1777/1607 1775/1608 1774/1600 +f 3762/1609 1699/1518 1700/1002 +f 1004/1610 1128/1522 1003/1611 +f 1774/1600 1771/1603 1772/1612 +f 987/1613 1399/748 980/1401 +f 1578/1601 1772/1612 1764/1605 +f 1783/1614 1781/1615 1778/1616 +f 1597/1397 1770/1595 1767/806 +f 639/1453 3895/1617 3884/1618 +f 3928/1602 1769/1619 1770/1595 +f 1793/1620 1789/1621 1788/1622 +f 3929/1604 1798/1623 1769/1619 +f 3508/1624 3773/1625 1806/861 +f 1802/1626 3924/1172 3922/1627 +f 1788/1622 1794/1628 1793/1620 +f 1793/1620 1795/1629 1776/1630 +f 3773/1625 1675/862 1806/861 +f 1584/1631 1783/1614 1789/1621 +f 1771/1603 3920/1632 3929/1604 +f 1801/1633 1798/1623 1800/1634 +f 1768/1596 1798/1623 1799/1635 +f 1775/1608 1797/1636 1771/1603 +f 508/1360 515/556 1520/1358 +f 1796/1637 1802/1626 1797/1636 +f 1800/1634 3920/1632 3922/1627 +f 1794/1628 1804/1638 1795/1629 +f 3532/1639 1752/1593 3547/1640 +f 485/1641 1807/1018 775/423 +f 3809/413 1640/1642 768/411 +f 3837/1643 1810/1169 1653/1644 +f 485/1641 1640/1642 1808/1645 +f 1690/1646 3770/1647 3772/1648 +f 487/295 1648/1442 1811/1649 +f 3839/1650 1816/1651 3822/1652 +f 3838/1653 1648/1442 3830/1445 +f 3839/1650 1811/1649 3838/1653 +f 1812/1654 487/295 1811/1649 +f 1641/1655 767/1656 768/411 +f 465/289 755/401 776/1419 +f 767/1656 3823/1657 3808/412 +f 3822/1652 3826/1658 3847/1659 +f 1809/1660 1815/1661 767/1656 +f 3837/1643 1651/1459 3840/1019 +f 675/1662 3541/1663 3496/1664 +f 1814/1665 1822/1666 1821/1667 +f 1821/1667 3821/1668 3820/1669 +f 1824/1670 1649/1444 1825/1671 +f 1827/1672 1850/957 1805/1673 +f 1668/1475 1662/1674 1663/1446 +f 1779/1675 1848/1676 1828/1677 +f 1790/1678 1805/1673 1794/1628 +f 1833/1679 1853/1680 1852/1681 +f 3521/1682 693/381 575/380 +f 1614/1683 1616/1684 1617/1685 +f 1852/1681 3498/1686 3501/1687 +f 1620/1688 1622/1689 1623/1690 +f 1855/1691 1574/1692 1861/1693 +f 1847/1694 3501/1687 3513/1695 +f 1766/1597 1855/1691 1782/1696 +f 1629/1697 1631/1698 1628/1699 +f 1633/1700 1634/1701 1632/1702 +f 1635/1703 1637/1704 1638/1705 +f 1848/1676 1852/1681 1847/1694 +f 1855/1691 1863/1706 1862/1707 +f 1803/1708 1867/1709 1802/1626 +f 1862/1707 1831/1710 1832/1711 +f 1782/1696 1862/1707 1781/1615 +f 3922/1627 1865/948 1800/1634 +f 1873/1712 1870/1713 1869/1714 +f 1874/1715 799/1716 804/1717 +f 2045/1718 3897/1719 2044/1720 +f 1219/610 1295/667 1225/609 +f 1615/1721 1396/1471 1395/1722 +f 3884/1618 1877/1723 1876/1724 +f 645/1725 3786/1726 3559/1727 +f 1345/663 1035/534 1346/664 +f 634/1451 3884/1618 3880/1728 +f 15/8 1327/1729 14/9 +f 3910/1730 1878/1731 1893/1732 +f 1894/1733 605/1734 1893/1732 +f 3506/1735 627/1495 693/381 +f 3560/1736 645/1725 3559/1727 +f 340/500 454/275 1558/1286 +f 1897/1737 195/126 1898/1738 +f 1889/1739 1877/1723 1890/1740 +f 1901/1741 129/88 1900/1742 +f 196/125 754/1544 232/1743 +f 1705/1744 3921/1509 3916/1512 +f 340/500 166/218 343/498 +f 1570/1745 563/968 561/348 +f 1904/1746 194/124 1897/1737 +f 1781/1615 1832/1711 1780/1747 +f 1905/1748 55/38 1906/1749 +f 1000/1750 995/1751 996/516 +f 986/1594 920/526 987/1613 +f 1191/597 1190/892 1194/594 +f 2094/1752 2075/1753 2093/1754 +f 1920/1755 1919/1756 1915/1757 +f 453/276 1912/1758 1911/1759 +f 1915/1757 1918/1760 1916/1761 +f 3882/1762 2106/1763 3901/1764 +f 1655/1588 3531/1765 1868/1766 +f 1916/1761 1926/1767 1925/1768 +f 704/389 3561/1769 703/390 +f 278/168 1925/1768 1900/1742 +f 3565/1770 1818/1771 1820/1772 +f 1097/543 1115/1585 1114/570 +f 1927/1773 727/375 1923/628 +f 3578/1774 3654/1775 3758/1776 +f 1920/1755 307/186 1929/1777 +f 1929/1777 48/31 728/373 +f 503/356 1497/1778 1509/1046 +f 1902/1779 787/1780 796/1498 +f 1816/1651 3820/1669 3826/1658 +f 1925/1768 1923/628 1924/1781 +f 1535/1782 1568/1783 1534/1784 +f 254/244 258/147 255/149 +f 1509/1046 366/208 367/210 +f 119/194 35/1785 36/16 +f 219/464 293/1088 294/524 +f 141/174 47/191 431/262 +f 542/470 244/318 245/1786 +f 1940/1787 430/263 431/262 +f 1779/1675 1827/1672 1790/1678 +f 1701/1517 3915/1788 3919/1515 +f 1661/1447 3515/1789 1667/1468 +f 270/162 754/1544 647/367 +f 197/1314 749/1543 196/125 +f 1727/1790 1212/1791 1211/1241 +f 53/37 232/1743 754/1544 +f 1465/894 1479/962 1478/964 +f 1284/1792 3854/1793 1293/661 +f 1951/1794 412/241 413/240 +f 168/114 1554/1795 1553/1264 +f 1486/1039 206/129 207/131 +f 506/1192 78/58 361/1408 +f 994/1796 1007/518 993/1797 +f 951/479 963/507 964/1798 +f 1013/550 3861/670 1351/879 +f 3826/1658 1820/1772 1818/1771 +f 1498/1223 1954/1799 1482/971 +f 299/1006 543/1800 132/90 +f 1754/1801 1756/1802 1753/1803 +f 1681/1804 1683/1805 1682/1806 +f 1696/1506 1695/1504 1697/1562 +f 13/7 738/1807 737/1808 +f 473/420 475/416 474/418 +f 482/291 768/411 1640/1642 +f 204/1809 30/14 205/316 +f 1761/1810 820/1811 819/888 +f 611/738 1125/1812 612/737 +f 1501/1007 1908/1813 1909/1814 +f 1074/1104 711/809 699/801 +f 1960/1815 82/61 83/60 +f 120/1816 1960/1815 123/981 +f 35/1785 87/78 34/17 +f 1773/1817 1025/1060 1031/1063 +f 1965/1818 1569/1819 1535/1782 +f 494/299 471/1426 479/364 +f 1966/1820 1969/1821 1968/1822 +f 446/324 1971/1823 1967/1824 +f 174/115 125/86 126/85 +f 1580/1555 1578/1601 1577/1531 +f 1785/1825 1787/1826 1784/1827 +f 1972/1828 304/1199 305/1093 +f 1254/1273 875/1035 999/1034 +f 1973/1829 342/1502 514/554 +f 321/1830 1973/1829 509/984 +f 1910/1831 275/243 1907/1832 +f 509/984 514/554 508/1360 +f 1486/1039 1527/1833 1485/1097 +f 1974/1834 804/1717 1975/1835 +f 1977/1836 1974/1834 1978/1837 +f 1980/1838 1966/1820 1981/1839 +f 379/219 2/2 295/1840 +f 1718/1841 1710/1842 1701/1517 +f 884/462 992/513 883/1843 +f 1680/1844 1678/1015 1679/1486 +f 902/1845 525/1846 524/692 +f 344/1005 256/148 299/1006 +f 135/1847 137/427 136/429 +f 236/341 228/144 333/1261 +f 448/1848 1967/1824 1966/1820 +f 589/1849 604/1850 584/1462 +f 910/712 908/716 907/525 +f 1981/1839 1968/1822 1987/1851 +f 1982/1852 1987/1851 1979/1853 +f 1988/1854 1987/1851 1989/1855 +f 1990/1856 1989/1855 1991/1857 +f 1991/1857 1993/1858 1992/1859 +f 322/1860 320/983 319/1861 +f 992/513 830/472 883/1843 +f 1144/578 1086/568 1143/1862 +f 1995/1863 1978/1837 1994/1864 +f 1133/558 1118/546 1126/561 +f 1997/1865 1994/1864 1996/1866 +f 870/927 1335/1537 1489/1538 +f 805/443 1982/1852 1998/1867 +f 727/375 2000/1868 1999/1869 +f 1996/1866 1988/1854 1990/1856 +f 1994/1864 1979/1853 1988/1854 +f 1829/1870 792/1871 1273/1312 +f 1830/1872 941/982 983/1021 +f 798/1873 800/441 799/1716 +f 729/1874 731/1875 730/435 +f 2011/1876 2023/1877 2022/1878 +f 1834/1879 846/908 1159/1880 +f 402/1493 284/224 347/1266 +f 2022/1878 2024/1881 2025/1882 +f 1838/1883 989/1024 988/1026 +f 810/515 952/1297 809/452 +f 1823/1884 1840/1885 644/758 +f 1430/822 1432/834 1431/1886 +f 1215/1887 1841/1888 1079/1115 +f 149/100 176/177 177/1889 +f 1316/1372 873/929 872/928 +f 2112/1890 1384/1550 2106/1763 +f 1842/1891 1844/1892 1845/1893 +f 1159/1880 845/907 1160/1195 +f 837/901 1846/1894 1120/1150 +f 1971/1823 2030/1895 2027/1896 +f 517/1897 370/434 189/319 +f 858/917 833/898 812/1230 +f 1471/933 2027/1896 1888/1898 +f 3551/1899 626/1496 627/1495 +f 2174/1900 770/1901 490/1457 +f 935/1045 1854/1902 1010/1044 +f 1613/1484 1611/1903 1618/1904 +f 1231/621 1225/609 1295/667 +f 1856/1905 891/941 892/940 +f 1300/638 748/1906 741/1282 +f 1150/1907 1858/1908 1859/1909 +f 1643/1421 696/1234 1642/1422 +f 1215/1887 1264/1910 1216/1246 +f 1320/1377 902/1845 901/945 +f 1956/1911 1944/1912 1960/1815 +f 2031/1913 669/1450 1474/1914 +f 2034/1915 1310/646 1299/636 +f 1879/1916 1656/1491 1657/1917 +f 40/1305 242/440 39/20 +f 1992/1859 2039/1918 1456/872 +f 888/1919 957/998 889/938 +f 1882/1920 1996/1866 1990/1856 +f 1078/1112 1255/1274 1077/1111 +f 1871/1921 1192/1922 1090/1121 +f 294/524 218/1212 219/464 +f 1323/645 2026/1923 1471/933 +f 123/981 83/60 1484/979 +f 1324/1924 2041/1925 1323/645 +f 384/1463 359/260 352/203 +f 1324/1924 2038/1926 2036/1927 +f 1883/1928 1885/1929 1829/1870 +f 287/1165 114/155 107/81 +f 1096/1128 1134/1177 661/774 +f 915/956 931/972 916/954 +f 806/442 1981/1839 1982/1852 +f 3533/1930 584/1462 604/1850 +f 1425/800 2042/1931 1018/530 +f 1018/530 1948/1932 1017/528 +f 3562/1933 740/1934 3519/481 +f 1948/1932 649/1935 646/365 +f 1881/1936 1990/1856 1991/1857 +f 1900/1742 130/1157 278/168 +f 992/513 994/1796 993/1797 +f 923/476 925/496 924/1584 +f 3878/1937 2047/1938 3876/1939 +f 1643/1421 625/1940 606/359 +f 2050/1941 2051/1942 2049/1943 +f 2045/1718 1404/759 2047/1938 +f 3876/1939 945/1944 3885/1392 +f 1139/1181 1079/1115 1841/1888 +f 1037/1069 892/940 982/1167 +f 2055/1945 2057/1946 2056/1947 +f 1198/1228 718/1948 717/814 +f 1619/1949 1612/1950 1611/1903 +f 2058/1951 1606/1952 2059/1953 +f 2059/1953 1607/1406 2058/1951 +f 2058/1951 1624/1476 1605/1954 +f 71/1955 179/118 37/19 +f 405/233 1557/1328 382/1281 +f 976/1013 1006/1042 977/1014 +f 322/1860 1972/1828 1911/1759 +f 2061/1956 2063/1957 2062/1958 +f 2066/1959 2067/1960 1825/1671 +f 2052/1961 2064/1962 2051/1942 +f 1609/1963 2066/1959 1647/1964 +f 1515/1965 152/1441 1516/1966 +f 1009/522 993/1797 1007/518 +f 1644/1420 3815/1967 2118/885 +f 279/1030 1916/1761 278/168 +f 1285/1968 3862/640 1284/1792 +f 1647/1964 1825/1671 1649/1444 +f 2056/1947 2067/1960 2065/1969 +f 319/1861 1953/1970 1952/1971 +f 667/777 1913/1972 1914/1973 +f 2070/1974 625/1940 2048/1975 +f 2052/1961 2055/1945 2063/1957 +f 2038/1926 1655/1588 1458/1976 +f 1606/1952 2073/1977 2072/1978 +f 1235/1979 1270/1980 1236/1256 +f 2072/1978 2075/1753 2074/1981 +f 2059/1953 2072/1978 2062/1958 +f 2074/1981 2077/1982 2076/1983 +f 1601/1400 2078/1984 2073/1977 +f 2049/1943 1643/1421 1645/1985 +f 1000/1750 1001/1986 994/1796 +f 1089/1540 684/369 689/368 +f 1931/1987 1306/1364 1930/1988 +f 1462/1989 1021/533 1022/532 +f 1932/1990 1934/1991 1935/1992 +f 875/1035 1846/1894 998/1033 +f 1936/1993 1937/1994 1938/1995 +f 44/140 46/32 92/139 +f 1534/1784 1956/1911 120/1816 +f 1541/1162 317/183 391/230 +f 2081/1996 2084/1997 2083/1998 +f 146/557 1959/1999 300/2000 +f 1360/2001 1942/2002 1361/1440 +f 985/1023 1032/1066 1033/1065 +f 1995/1863 1892/2003 2043/2004 +f 2079/2005 2082/2006 2081/1996 +f 2095/2007 2076/1983 2077/1982 +f 2081/1996 2078/1984 2079/2005 +f 2055/1945 2054/2008 2053/2009 +f 501/456 2095/2007 500/304 +f 2097/2010 2099/2011 2098/2012 +f 2098/2012 2094/1752 2083/1998 +f 2140/2013 3893/2014 3866/2015 +f 2141/2016 3894/2017 3893/2014 +f 2051/1942 2048/1975 2049/1943 +f 592/352 2101/2018 1576/2019 +f 2071/2020 2076/1983 2096/2021 +f 2102/2022 2098/2012 2101/2018 +f 593/2023 2102/2022 592/352 +f 1019/529 746/1283 747/799 +f 1950/2024 12/2025 1327/1729 +f 725/396 2096/2021 501/456 +f 1385/791 2104/2026 1379/1551 +f 1379/1551 2106/1763 1384/1550 +f 2107/2027 2100/630 2097/2010 +f 3908/2028 502/303 3896/2029 +f 3896/2029 499/305 3901/1764 +f 940/2030 2109/2031 944/1393 +f 928/2032 1170/595 973/506 +f 3868/2033 684/369 3899/1394 +f 1962/2034 1964/2035 1961/2036 +f 3878/1937 573/345 3897/1719 +f 2039/1918 1968/1822 1969/1821 +f 1389/2037 2110/2038 2109/2031 +f 1398/747 2113/2039 1397/746 +f 3757/2040 3753/2041 3743/2042 +f 3911/2043 2107/2027 2103/2044 +f 949/553 924/1584 1115/1585 +f 260/150 324/189 326/1321 +f 1390/724 2113/2039 2110/2038 +f 2070/1974 2064/1962 2071/2020 +f 3867/2045 2103/2044 593/2023 +f 2105/2046 1421/792 2114/2047 +f 2114/2047 1423/797 2115/2048 +f 3892/2049 2115/2048 3903/2050 +f 3908/2028 2114/2047 3892/2049 +f 554/1456 1902/1779 553/1454 +f 972/505 967/497 966/495 +f 1765/1598 1573/2051 1574/1692 +f 1984/2052 1986/2053 1983/2054 +f 2053/2009 2069/2055 2057/1946 +f 3573/2056 724/2057 714/376 +f 1625/1485 1674/1483 1673/1477 +f 3881/2058 2119/2059 2122/2060 +f 3903/2050 2123/2061 3904/2062 +f 56/161 1906/1749 55/38 +f 626/1496 3879/2063 629/1494 +f 2001/2064 2003/2065 2004/2066 +f 3912/2067 2127/2068 3907/2069 +f 2006/2070 2008/2071 2009/2072 +f 2127/2068 1412/764 2128/2073 +f 2014/2074 2016/2075 2017/2076 +f 2018/2077 2020/2078 2021/2079 +f 1495/997 1947/2080 197/1314 +f 1379/1551 1386/786 1385/791 +f 3814/1410 1680/1844 1618/1904 +f 2029/2081 1884/2082 2028/2083 +f 3902/2084 2120/2085 3887/2086 +f 629/1494 3914/631 3872/2087 +f 682/1542 943/2088 1089/1540 +f 724/2057 2121/2089 716/377 +f 1757/991 3821/1668 3845/2090 +f 765/2091 3844/2092 3809/413 +f 3851/2093 715/378 3852/2094 +f 706/1340 3870/2095 3872/2087 +f 981/508 987/1613 980/1401 +f 1457/871 1656/1491 1880/2096 +f 2017/2076 2032/2097 2033/2098 +f 1458/1976 1868/1766 1457/871 +f 1776/1630 1792/2099 1793/1620 +f 1959/1999 1946/2100 1958/2101 +f 3663/805 3725/2102 3661/2103 +f 3913/2104 2122/2060 3850/2105 +f 1093/811 689/368 1088/1379 +f 966/495 968/502 972/505 +f 3852/2094 3881/2058 3913/2104 +f 2172/2106 2170/2107 2171/2108 +f 670/613 2137/2109 669/1450 +f 3761/2110 1903/2111 233/629 +f 1429/823 28/2112 1449/2113 +f 964/1798 978/509 971/501 +f 3841/2114 1413/779 2127/2068 +f 1473/2115 669/1450 2137/2109 +f 3834/680 1359/706 1358/683 +f 2138/2116 1870/1713 2137/2109 +f 1872/2117 2137/2109 1870/1713 +f 715/378 3888/2118 3881/2058 +f 1881/1936 1992/1859 1880/2096 +f 3843/1428 739/482 740/1934 +f 1837/2119 3513/1695 3514/2120 +f 253/146 59/62 85/64 +f 1808/1645 3840/1019 1807/1018 +f 1647/1964 3818/2121 1609/1963 +f 3865/2122 671/611 668/1449 +f 2112/1890 3883/2123 2111/2124 +f 1405/844 2044/1720 1438/830 +f 3829/691 1364/2125 1366/2126 +f 273/1163 391/230 249/165 +f 576/392 3520/2127 3555/2128 +f 3875/2129 668/1449 2031/1913 +f 1430/822 2140/2013 2139/2130 +f 2136/2131 3860/849 28/2112 +f 1430/822 18/12 19/11 +f 3893/2014 570/347 695/2132 +f 1442/835 2046/2133 2141/2016 +f 1431/1886 2141/2016 2140/2013 +f 3869/2134 3850/2105 2136/2131 +f 3808/412 1817/2135 766/2136 +f 3866/2015 695/2132 671/611 +f 2142/2137 798/1873 2138/2116 +f 571/346 2142/2137 694/612 +f 3819/1411 1618/1904 1611/1903 +f 2143/2138 2025/1882 2142/2137 +f 694/612 2138/2116 670/613 +f 681/1418 2144/2139 572/1416 +f 2144/2139 2022/1878 2143/2138 +f 328/394 457/635 290/393 +f 1572/1541 2011/1876 2144/2139 +f 630/395 3903/2050 624/360 +f 2085/2140 2087/2141 2088/2142 +f 2090/2143 2092/2144 2089/2145 +f 572/1416 2143/2138 571/346 +f 1875/2146 2153/2147 2149/2148 +f 1873/1712 2149/2148 2154/2149 +f 2103/2044 2097/2010 2102/2022 +f 2157/2150 2155/2151 2156/2152 +f 2128/2073 1414/766 2120/2085 +f 3874/2153 589/1849 582/1461 +f 3872/2087 628/2154 629/1494 +f 2149/2148 2158/2155 2159/2156 +f 2159/2156 3905/2157 3890/2158 +f 698/388 3902/2084 705/2159 +f 3823/1657 3827/2160 1817/2135 +f 2158/2155 3874/2153 3905/2157 +f 1438/830 2046/2133 1439/828 +f 2035/2161 2160/2162 2161/2163 +f 2161/2163 3889/2164 3886/2165 +f 3871/2166 605/1734 589/1849 +f 3873/2167 18/12 3875/2129 +f 370/434 61/44 451/320 +f 649/1935 413/240 648/366 +f 2153/2147 2156/2152 2158/2155 +f 1428/2168 1449/2113 1450/2169 +f 1490/1027 73/55 1488/989 +f 3890/2158 710/1383 633/2170 +f 2155/2151 3891/2171 3871/2166 +f 1456/872 1880/2096 1992/1859 +f 2125/2172 2087/2141 2124/2173 +f 2160/2162 3890/2158 3889/2164 +f 300/2000 505/634 323/261 +f 1064/592 1046/538 1065/2174 +f 2043/2004 1891/2175 2155/2151 +f 2129/2176 2004/2066 2003/2065 +f 2131/2177 2133/2178 2134/2179 +f 3848/850 1450/2169 1449/2113 +f 1998/1867 804/1717 805/443 +f 3879/2063 3864/2180 3914/631 +f 474/418 490/1457 770/1901 +f 1164/582 1182/895 1177/589 +f 707/1339 3909/2181 3870/2095 +f 708/2182 2162/2183 707/1339 +f 2162/2183 3886/2165 3909/2181 +f 548/1429 1905/1748 458/281 +f 1145/562 1114/570 1171/587 +f 705/2159 1650/2184 704/389 +f 2043/2004 1977/1836 1995/1863 +f 737/1808 554/1456 559/1455 +f 1034/605 1191/597 1023/593 +f 458/281 1907/1832 275/243 +f 195/126 232/1743 233/629 +f 2040/2185 1969/1821 1970/2186 +f 2145/2187 2147/2188 2148/2189 +f 2054/2008 2049/1943 1645/1985 +f 3832/1443 1639/1435 3818/2121 +f 9/2190 11/2191 10/2192 +f 252/145 506/1192 258/147 +f 472/300 479/364 471/1426 +f 1865/948 3791/1174 3503/2193 +f 900/484 910/712 907/525 +f 1941/2194 2151/2195 1942/2002 +f 1921/2196 1927/1773 1919/1756 +f 2163/2197 1898/1738 2116/2198 +f 271/1003 153/105 178/2199 +f 1904/1746 12/2025 9/2190 +f 282/286 264/1147 460/283 +f 1872/2117 2154/2149 2035/2161 +f 1326/2200 1897/1737 2163/2197 +f 628/2154 693/381 627/1495 +f 1724/1554 1719/1536 1723/1546 +f 1549/1222 436/267 172/117 +f 1582/1382 1730/1545 1729/1547 +f 1921/2196 1929/1777 1928/2201 +f 3563/2202 10/2192 11/2191 +f 2152/2203 1950/2024 1949/2204 +f 475/416 774/425 771/417 +f 769/419 2171/2108 473/420 +f 2171/2108 476/2205 473/420 +f 476/2205 772/422 475/416 +f 1791/2206 464/1311 1760/2207 +f 2166/2208 2168/2209 2169/2210 +f 595/354 372/1217 98/72 +f 483/293 1641/1655 482/291 +f 762/407 2173/853 470/301 +f 771/417 484/292 492/415 +f 486/296 1809/1660 483/293 +f 297/1291 1517/1185 296/1187 +f 763/2211 2174/1900 762/407 +f 776/1419 759/403 489/294 +f 184/374 2176/2212 2000/1868 +f 412/241 303/1201 414/239 +f 2005/2213 185/166 224/277 +f 3811/1488 1682/1806 3846/1017 +f 2164/2214 756/426 764/409 +f 1472/2215 2161/2163 2162/2183 +f 950/480 964/1798 965/494 +f 2177/2216 2179/2217 2180/2218 +f 227/1218 1510/1050 333/1261 +f 764/409 467/410 2164/2214 +f 2182/2219 2184/2220 2181/2221 +f 2186/2222 2018/2077 2185/2223 +f 1985/2224 2181/2221 1986/2053 +f 214/136 729/1874 1531/1119 +f 1545/1200 1546/2225 1569/1819 +f 865/675 842/1433 866/682 +f 849/1431 1357/677 1362/2226 +f 452/274 1558/1286 454/275 +f 559/1455 3188/2227 737/1808 +f 16/2228 737/1808 3188/2227 +f 560/2229 498/2230 374/2231 +f 3193/2232 3195/2233 3194/2234 +f 3200/2235 3198/2236 3199/2237 +f 3211/2238 3213/2239 3212/2240 +f 3215/2241 3217/2242 3216/2243 +f 2187/2244 2002/2245 2001/2064 +f 2169/2210 2189/2246 2190/2247 +f 2192/2248 2085/2140 2191/2249 +f 2193/2250 2195/2251 2196/2252 +f 2198/2253 2200/2254 2197/2255 +f 1998/1867 1979/1853 1975/1835 +f 3664/2256 3668/2257 3671/2258 +f 2116/2198 1903/2111 1902/1779 +f 1859/1909 2009/2072 1150/1907 +f 3904/2062 2126/2259 3906/2260 +f 1135/2261 1087/569 1130/559 +f 2201/2262 2015/2263 2014/2074 +f 1149/2264 110/152 1858/1908 +f 3221/2265 3218/2266 3215/2241 +f 2203/2267 2205/2268 2206/2269 +f 579/344 1895/2270 1019/529 +f 1755/2271 2208/2272 1756/1802 +f 3891/2171 1893/1732 605/1734 +f 1211/1241 2150/2273 1727/1790 +f 868/925 2210/2274 2209/2275 +f 944/1393 930/754 940/2030 +f 2130/2276 2202/2277 2201/2262 +f 233/629 1898/1738 195/126 +f 665/776 750/843 666/2278 +f 1167/1207 999/1034 618/2279 +f 2211/2280 2213/2281 2214/2282 +f 2215/2283 2217/2284 2218/2285 +f 3867/2045 590/351 3868/2033 +f 2220/2286 220/306 2219/2287 +f 823/447 948/477 1094/552 +f 3225/2288 3227/2289 3226/2290 +f 266/160 455/469 265/158 +f 3882/1762 2107/2027 3883/2123 +f 2221/2291 3519/481 3517/483 +f 2223/2292 2225/2293 2226/2294 +f 2207/2295 2124/2173 2208/2272 +f 673/2296 3869/2134 3864/2180 +f 817/444 996/516 815/451 +f 2227/2297 2146/2298 2145/2187 +f 1947/2080 646/365 749/1543 +f 3900/633 17/10 3873/2167 +f 2229/2299 1638/1705 1381/1464 +f 1679/1486 1618/1904 1680/1844 +f 1637/1704 2232/2300 2230/2301 +f 2233/2302 1617/1685 1616/1684 +f 2231/2303 2236/2304 2237/2305 +f 1381/1464 2238/2306 1382/2307 +f 3586/2308 2242/2309 3587/2310 +f 1630/2311 2233/2302 1631/1698 +f 1681/1804 472/300 469/302 +f 1408/2312 2243/2313 2244/2314 +f 3236/2315 3238/2316 3237/2317 +f 3232/2318 3240/2319 3235/2320 +f 1637/1704 2238/2306 1638/1705 +f 3237/2317 3233/2321 3234/2322 +f 1409/1480 1634/1701 2245/2323 +f 1380/1466 2247/2324 2246/2325 +f 1628/1699 2245/2323 1621/2326 +f 2249/2327 1622/1689 1633/1700 +f 1632/1702 1408/2312 2244/2314 +f 2248/2328 1631/1698 2250/2329 +f 2235/2330 1637/1704 1636/2331 +f 3245/2332 3199/2237 3198/2236 +f 631/1316 2071/2020 725/396 +f 515/556 52/34 49/36 +f 782/858 2251/2333 1251/1270 +f 2253/2334 2255/2335 2252/2336 +f 397/231 459/284 784/428 +f 1456/872 2040/2185 1455/870 +f 2040/2185 2036/1927 1455/870 +f 1401/2337 2111/2124 1398/747 +f 2041/1925 1970/2186 2026/1923 +f 1535/1782 414/239 1965/1818 +f 1586/1389 2080/2338 2079/2005 +f 2256/2339 1132/1175 1886/2340 +f 1700/1002 3918/1520 3919/1515 +f 3815/1967 1686/1158 3817/886 +f 1263/1298 1886/2340 1096/1128 +f 598/2341 844/1245 599/727 +f 2257/2342 2259/2343 2260/2344 +f 2258/2345 2262/2346 2259/2343 +f 2259/2343 2263/2347 2216/2348 +f 2260/2344 2216/2348 2215/2283 +f 1967/1824 1970/2186 1969/1821 +f 2212/2349 1963/2350 2213/2281 +f 922/2351 2218/2285 2217/2284 +f 1312/1369 1101/1131 2264/2352 +f 1307/2353 1286/2354 789/864 +f 1548/2355 1546/2225 1972/1828 +f 2266/2356 2268/2357 2265/2358 +f 2265/2358 2270/2359 2269/2360 +f 2272/2361 2269/2360 2271/2362 +f 2273/2363 2265/2358 2272/2361 +f 2275/2364 2277/2365 2274/2366 +f 2278/2367 2277/2365 2279/2368 +f 2284/2369 3617/2370 3639/2371 +f 2287/2372 2286/2373 2281/2374 +f 2288/2375 2283/2376 2287/2372 +f 2290/2377 3639/2371 3620/2378 +f 2291/2379 2293/2380 2294/2381 +f 2295/2382 2294/2381 2279/2368 +f 2296/2383 2291/2379 2295/2382 +f 2297/2384 2292/2385 2291/2379 +f 2294/2381 2299/2386 2300/2387 +f 2279/2368 2300/2387 2278/2367 +f 2298/2388 2302/2389 2292/2385 +f 2292/2385 2303/2390 2293/2380 +f 2293/2380 2304/2391 2299/2386 +f 2304/2391 2306/2392 2299/2386 +f 2306/2392 2300/2387 2299/2386 +f 2308/2393 2310/2394 2307/2395 +f 2302/2389 2310/2394 2303/2390 +f 2301/2396 2307/2395 2302/2389 +f 2312/2397 2307/2395 2311/2398 +f 2313/2399 2315/2400 2316/2401 +f 2318/2402 2320/2403 2317/2404 +f 3748/2405 2322/2406 2323/2407 +f 2324/2408 2273/2363 2326/2409 +f 2313/2399 2326/2409 2327/2410 +f 2328/2411 2313/2399 2316/2401 +f 2329/2412 2324/2408 2328/2411 +f 2331/2413 2333/2414 2330/2415 +f 2330/2415 2267/2416 2266/2356 +f 2325/2417 2266/2356 2273/2363 +f 2329/2412 2330/2415 2325/2417 +f 2333/2414 2335/2418 2267/2416 +f 2336/2419 2333/2414 2332/2420 +f 2338/2421 2332/2420 2337/2422 +f 2331/2413 2337/2422 2332/2420 +f 2329/2412 2339/2423 2331/2413 +f 2328/2411 2340/2424 2329/2412 +f 2316/2401 2341/2425 2328/2411 +f 2342/2426 2315/2400 2343/2427 +f 2344/2428 2346/2429 2347/2430 +f 2341/2425 2347/2430 2340/2424 +f 2342/2426 2344/2428 2341/2425 +f 2348/2431 2345/2432 2344/2428 +f 2350/2433 2352/2434 2353/2435 +f 2339/2423 2353/2435 2337/2422 +f 2340/2424 2350/2433 2339/2423 +f 2347/2430 2351/2436 2350/2433 +f 2337/2422 2354/2437 2338/2421 +f 2353/2435 2355/2438 2354/2437 +f 2356/2439 2276/2440 2357/2441 +f 2356/2439 2358/2442 2359/2443 +f 2356/2439 2296/2383 2295/2382 +f 2279/2368 2356/2439 2295/2382 +f 2360/2444 2270/2359 2268/2357 +f 2267/2416 2360/2444 2268/2357 +f 2362/2445 2364/2446 2365/2447 +f 2362/2445 2361/2448 2358/2442 +f 2366/2449 2358/2442 2357/2441 +f 2366/2449 2363/2450 2362/2445 +f 2357/2441 2368/2451 2366/2449 +f 2366/2449 2369/2452 2367/2453 +f 2276/2440 2370/2454 2368/2451 +f 2368/2451 2282/2455 2369/2452 +f 2372/2456 2374/2457 2371/2458 +f 2375/2459 2377/2460 2007/2461 +f 2378/2462 2380/2463 2381/2464 +f 2382/2465 2381/2464 2383/2466 +f 2384/2467 2378/2462 2382/2465 +f 2385/2468 2379/2469 2378/2462 +f 2388/2470 2390/2471 2387/2472 +f 2387/2472 2392/2473 2391/2474 +f 2393/2475 2387/2472 2391/2474 +f 2394/2476 2388/2470 2387/2472 +f 2186/2222 2402/2477 2400/2478 +f 2403/2479 2327/2410 2326/2409 +f 2272/2361 2326/2409 2273/2363 +f 2271/2362 2403/2479 2272/2361 +f 2405/2480 2404/2481 2403/2479 +f 2404/2481 2408/2482 2327/2410 +f 2409/2483 2411/2484 2412/2485 +f 2409/2483 2271/2362 2269/2360 +f 2413/2486 2269/2360 2270/2359 +f 2413/2486 2410/2487 2409/2483 +f 2417/2488 2416/2489 2418/2490 +f 2417/2488 2406/2491 2405/2480 +f 2412/2485 2405/2480 2271/2362 +f 2411/2484 2417/2488 2412/2485 +f 2406/2491 2407/2492 2404/2481 +f 3569/1337 632/2493 713/1335 +f 2420/2494 2397/2495 2421/2496 +f 2420/2494 2423/2497 2422/2498 +f 2424/2499 2422/2498 2419/2500 +f 2424/2499 2398/2501 2420/2494 +f 2425/2502 2392/2473 2426/2503 +f 2421/2496 2426/2503 2423/2497 +f 2397/2495 2425/2502 2421/2496 +f 2396/2504 2391/2474 2425/2502 +f 2427/2505 2315/2400 2314/2506 +f 2427/2505 2408/2482 2428/2507 +f 2430/2508 2428/2507 2429/2509 +f 2343/2427 2427/2505 2430/2508 +f 2432/2510 2430/2508 2431/2511 +f 2431/2511 2429/2509 2433/2512 +f 2435/2513 2433/2512 2434/2514 +f 2436/2515 2431/2511 2435/2513 +f 2428/2507 2407/2492 2437/2516 +f 2422/2498 2407/2492 2419/2500 +f 2438/2517 2422/2498 2423/2497 +f 2429/2509 2437/2516 2438/2517 +f 2440/2518 2433/2512 2439/2519 +f 2441/2520 2433/2512 2429/2509 +f 2442/2521 2439/2519 2441/2520 +f 2443/2522 2440/2518 2439/2519 +f 2445/2523 2444/2524 2443/2522 +f 2447/2525 2443/2522 2442/2521 +f 2383/2466 2445/2523 2447/2525 +f 2381/2464 2446/2526 2445/2523 +f 2448/2527 2423/2497 2426/2503 +f 2449/2528 2426/2503 2392/2473 +f 2441/2520 2449/2528 2442/2521 +f 2441/2520 2438/2517 2448/2527 +f 2449/2528 2390/2471 2450/2529 +f 2450/2529 2389/2530 2451/2531 +f 2447/2525 2451/2531 2383/2466 +f 2442/2521 2450/2529 2447/2525 +f 2451/2531 2453/2532 2452/2533 +f 2452/2533 2455/2534 2454/2535 +f 2382/2465 2454/2535 2384/2467 +f 2383/2466 2452/2533 2382/2465 +f 2456/2536 2373/2537 2372/2456 +f 2459/2538 2461/2539 2458/2540 +f 2463/2541 2465/2542 2462/2543 +f 2462/2543 2285/2544 2284/2369 +f 2466/2545 2284/2369 2290/2377 +f 2467/2546 2462/2543 2466/2545 +f 2461/2539 3703/2547 3701/2548 +f 2468/2549 2470/2550 2471/2551 +f 2472/2552 2471/2551 2473/2553 +f 2474/2554 3701/2548 3688/2555 +f 2475/2556 2477/2557 2478/2558 +f 2458/2540 2453/2532 2479/2559 +f 2479/2559 2389/2530 2388/2470 +f 2395/2560 2479/2559 2388/2470 +f 2480/2561 2458/2540 2479/2559 +f 2481/2562 2483/2563 2478/2558 +f 2484/2564 2485/2565 221/2566 +f 2471/2551 2464/2567 2463/2541 +f 2473/2553 2463/2541 2467/2546 +f 2487/2568 2466/2545 2486/2569 +f 2486/2569 2290/2377 2488/2570 +f 2490/2571 2488/2570 2489/2572 +f 2491/2573 2486/2569 2490/2571 +f 2492/2574 2467/2546 2487/2568 +f 2493/2575 2487/2568 2491/2573 +f 2494/2576 2492/2574 2493/2575 +f 2495/2577 2473/2553 2492/2574 +f 3690/2578 2474/2554 3688/2555 +f 3691/2579 2496/2580 3690/2578 +f 2498/2581 2493/2575 2499/2582 +f 2500/2583 2499/2582 2501/2584 +f 3700/2585 2498/2581 2500/2583 +f 3687/2586 2494/2576 2498/2581 +f 2306/2392 2278/2367 2300/2387 +f 2305/2587 2504/2588 2306/2392 +f 2504/2588 2507/2589 2506/2590 +f 2506/2590 2288/2375 2508/2591 +f 2274/2366 2508/2591 2275/2364 +f 2278/2367 2506/2590 2274/2366 +f 3633/2592 2489/2572 2488/2570 +f 3620/2378 2488/2570 2290/2377 +f 2507/2589 2289/2593 2288/2375 +f 2505/2594 2509/2595 2507/2589 +f 2508/2591 2287/2372 2511/2596 +f 2511/2596 2281/2374 2280/2597 +f 2370/2454 2280/2597 2282/2455 +f 2275/2364 2511/2596 2370/2454 +f 2512/2598 2489/2572 2513/2599 +f 2514/2600 2513/2599 2515/2601 +f 2517/2602 2514/2600 2516/2603 +f 2517/2602 2490/2571 2512/2598 +f 2499/2582 2491/2573 2517/2602 +f 2499/2582 2516/2603 2501/2584 +f 2510/2604 2519/2605 2518/2606 +f 2518/2606 2521/2607 2520/2608 +f 3616/2609 2520/2608 3621/2610 +f 3632/2611 2518/2606 3616/2609 +f 2522/2612 2303/2390 2310/2394 +f 2523/2613 2310/2394 2309/2614 +f 2305/2587 2522/2612 2524/2615 +f 2524/2615 2523/2613 2525/2616 +f 2519/2605 2525/2616 2521/2607 +f 2505/2594 2524/2615 2519/2605 +f 2308/2393 2527/2617 2526/2618 +f 2526/2618 2529/2619 2528/2620 +f 2531/2621 2528/2620 2530/2622 +f 2309/2614 2526/2618 2531/2621 +f 1214/1243 2151/2195 1211/1241 +f 2419/2500 2418/2490 2424/2499 +f 2533/2623 2349/2624 2317/2404 +f 2534/2625 2317/2404 2320/2403 +f 2535/2626 2533/2623 2534/2625 +f 2536/2627 2345/2432 2533/2623 +f 2537/2628 2346/2429 2536/2627 +f 2538/2629 2536/2627 2535/2626 +f 2539/2630 2537/2628 2538/2629 +f 2540/2631 2351/2436 2537/2628 +f 2312/2397 2541/2632 2527/2617 +f 2527/2617 2542/2633 2529/2619 +f 2543/2634 2434/2514 2544/2635 +f 2545/2636 2544/2635 2546/2637 +f 2319/2638 2543/2634 2545/2636 +f 2318/2402 2435/2513 2543/2634 +f 2514/2600 2548/2639 2547/2640 +f 2547/2640 2550/2641 2549/2642 +f 2552/2643 2549/2642 2551/2644 +f 2552/2643 2514/2600 2547/2640 +f 2520/2608 2554/2645 2553/2646 +f 2553/2646 2556/2647 2555/2648 +f 3590/2649 2555/2648 3593/2650 +f 3621/2610 2553/2646 3590/2649 +f 2523/2613 2531/2621 2557/2651 +f 2557/2651 2530/2622 2558/2652 +f 2525/2616 2557/2651 2559/2653 +f 2559/2653 2558/2652 2560/2654 +f 2554/2645 2560/2654 2556/2647 +f 2521/2607 2559/2653 2554/2645 +f 2561/2655 2007/2461 2006/2070 +f 2376/2656 2225/2293 2377/2460 +f 2564/2657 2566/2658 2563/2659 +f 2563/2659 338/511 2567/2660 +f 2569/2661 2567/2660 2568/2662 +f 2570/2663 2563/2659 2569/2661 +f 2572/2664 2574/2665 2571/2666 +f 2571/2666 2576/2667 2575/2668 +f 2544/2635 2575/2668 2546/2637 +f 2544/2635 2572/2664 2571/2666 +f 2578/2669 2569/2661 2577/2670 +f 2579/2671 2569/2661 2568/2662 +f 2574/2665 2579/2671 2576/2667 +f 2573/2672 2577/2670 2574/2665 +f 2581/2673 2583/2674 2580/2675 +f 2584/2676 2583/2674 2585/2677 +f 3697/2678 2580/2675 2584/2676 +f 3676/2679 2580/2675 3675/2680 +f 2582/2681 2552/2643 2583/2674 +f 2583/2674 2551/2644 2585/2677 +f 2500/2583 2589/2682 2588/2683 +f 2590/2684 2589/2682 2591/2685 +f 3693/2686 2588/2683 2590/2684 +f 3695/2687 2500/2583 2588/2683 +f 2501/2584 2591/2685 2589/2682 +f 2592/2688 2594/2689 2595/2690 +f 2386/2691 2503/2692 2502/2693 +f 2596/2694 2386/2691 2374/2457 +f 2596/2694 2373/2537 2597/2695 +f 2599/2696 2597/2695 2598/2697 +f 2599/2696 2379/2469 2596/2694 +f 2600/2698 2380/2463 2599/2696 +f 2600/2698 2598/2697 2601/2699 +f 2603/2700 2601/2699 2602/2701 +f 2603/2700 2446/2526 2600/2698 +f 2604/2702 2602/2701 2605/2703 +f 2440/2518 2605/2703 2434/2514 +f 2444/2524 2604/2702 2440/2518 +f 2606/2704 2581/2673 2607/2705 +f 2606/2704 2590/2684 2591/2685 +f 2591/2685 2582/2681 2606/2704 +f 3676/2679 2456/2536 3689/2706 +f 3689/2706 2372/2456 3693/2686 +f 2478/2558 2608/2707 2481/2562 +f 2609/2708 2611/2709 2199/2710 +f 2564/2657 2613/2711 2612/2712 +f 2612/2712 2598/2697 2597/2695 +f 2457/2713 2597/2695 2373/2537 +f 2565/2714 2612/2712 2457/2713 +f 2614/2715 2570/2663 2578/2669 +f 2615/2716 2578/2669 2573/2672 +f 2602/2701 2614/2715 2615/2716 +f 2601/2699 2613/2711 2614/2715 +f 2572/2664 2605/2703 2616/2717 +f 2616/2717 2602/2701 2615/2716 +f 2573/2672 2616/2717 2615/2716 +f 1459/880 1045/541 1021/533 +f 1265/1299 1079/1115 1082/1114 +f 1612/1950 1609/1963 1611/1903 +f 2067/1960 2069/2055 2068/2718 +f 1135/2261 1136/564 1148/563 +f 1938/1995 2618/2719 2617/2720 +f 95/387 458/281 128/89 +f 2058/1951 1608/1405 1612/1950 +f 1454/873 1445/851 1367/703 +f 655/769 1048/1079 2619/2721 +f 722/2722 2621/2723 723/817 +f 1131/1176 1033/1065 1134/1177 +f 562/349 366/208 1497/1778 +f 1723/1546 1725/1571 1591/1548 +f 1786/2724 1122/1152 1787/1826 +f 267/159 323/261 266/160 +f 1325/644 1654/1586 2038/1926 +f 1468/896 1435/832 1479/962 +f 658/772 529/2725 528/695 +f 8/4 247/339 7/2726 +f 382/1281 1559/1330 3/223 +f 788/866 1307/2353 789/864 +f 940/2030 929/755 928/2032 +f 911/951 2623/2727 912/2728 +f 2621/2723 655/769 654/768 +f 2624/2729 2625/2730 2626/2731 +f 998/1033 27/26 26/2732 +f 635/753 2626/2731 2625/2730 +f 2627/2733 644/758 1840/1885 +f 2628/2734 1840/1885 2629/2735 +f 1200/2736 2627/2733 2628/2734 +f 1199/1231 641/756 2627/2733 +f 1520/1358 49/36 477/1076 +f 1452/874 1349/668 1451/1244 +f 2630/2737 1859/1909 1858/1908 +f 644/758 1335/1537 1823/1884 +f 1197/1229 717/814 2632/2738 +f 2632/2738 719/815 1166/1205 +f 2628/2734 1166/1205 1200/2736 +f 2629/2735 2632/2738 2628/2734 +f 1762/2739 1050/2740 821/889 +f 1823/1884 873/929 1839/2741 +f 2634/2742 794/1124 652/767 +f 1028/1064 1027/1061 1161/1240 +f 1042/1073 2635/2743 1043/1074 +f 93/70 1901/1741 1924/1781 +f 2036/1927 1458/1976 1455/870 +f 1527/1833 1525/1325 1526/1098 +f 877/932 1274/1313 1277/1317 +f 134/91 797/430 1544/1190 +f 1328/1413 931/972 1329/1414 +f 607/736 1091/1122 1161/1240 +f 1043/1074 2637/2744 2636/2745 +f 2636/2745 2639/2746 2638/2747 +f 1275/1315 2638/2747 1276/1376 +f 1275/1315 1043/1074 2636/2745 +f 1272/1308 2626/2731 2640/2748 +f 2640/2748 638/752 637/2749 +f 1110/1143 2640/2748 637/2749 +f 536/2750 2640/2748 2641/2751 +f 1472/2215 1474/1914 1473/2115 +f 2042/1931 1951/1794 649/1935 +f 1058/2752 1105/2753 1059/1086 +f 2642/2754 2643/2755 2644/2756 +f 1192/1922 2644/2756 1193/1224 +f 912/2728 2642/2754 1192/1922 +f 3898/2757 3526/1490 3786/1726 +f 1049/1078 2620/2758 2621/2723 +f 616/740 1885/1929 613/741 +f 1331/2759 666/2278 750/843 +f 990/2760 1198/1228 525/1846 +f 1911/1759 321/1830 322/1860 +f 1298/1356 1205/1332 2645/2761 +f 76/53 1504/1029 75/2762 +f 1502/2763 421/254 422/256 +f 610/735 658/772 691/798 +f 1146/1188 659/773 938/977 +f 2646/2764 914/953 936/975 +f 1280/1324 1238/2765 1279/1322 +f 975/2766 2647/2767 2648/2768 +f 2647/2767 975/2766 974/1012 +f 1453/906 1452/874 1451/1244 +f 1514/1108 158/107 151/101 +f 835/900 1843/2769 1842/1891 +f 1271/1307 1173/2770 1289/1345 +f 2649/2771 813/883 2650/2772 +f 1893/1732 1826/2773 1894/1733 +f 1050/2740 1937/1994 1051/1080 +f 2651/2774 814/884 813/883 +f 1006/1042 1281/1326 977/1014 +f 2653/2775 2654/2776 2655/2777 +f 1001/1986 1003/1611 1002/519 +f 585/723 679/789 558/710 +f 2624/2729 621/1309 620/743 +f 555/708 2028/2083 556/1166 +f 1207/1238 1197/1229 2629/2735 +f 1626/1487 478/362 472/300 +f 426/1056 419/252 1567/1437 +f 1030/1225 1773/1817 1031/1063 +f 3898/2757 634/1451 3880/1728 +f 534/1141 138/1126 262/335 +f 1125/1812 1042/1073 1041/1155 +f 333/1261 88/65 227/1218 +f 569/437 561/348 730/435 +f 1489/1538 871/2778 870/927 +f 1857/2779 620/743 891/941 +f 1673/1477 3770/1647 3763/2780 +f 622/744 864/922 1308/1365 +f 2647/2767 974/1012 2657/2781 +f 619/745 891/941 620/743 +f 261/1341 545/331 262/335 +f 393/1288 1556/1263 404/1265 +f 2658/2782 2647/2767 2657/2781 +f 1075/1105 2657/2781 917/1106 +f 1081/2783 2658/2782 1075/1105 +f 1080/1113 2659/2784 2658/2782 +f 2644/2756 1141/1182 2660/2785 +f 2660/2785 1140/2786 1336/1425 +f 642/2787 1336/1425 643/757 +f 1193/1224 2660/2785 642/2787 +f 679/789 555/708 558/710 +f 1503/2788 1500/1009 1502/2763 +f 1318/1374 1101/1131 1100/2789 +f 2661/2790 1139/1181 1142/1183 +f 2661/2790 2663/2791 2662/2792 +f 2662/2792 2659/2784 2661/2790 +f 2662/2792 2622/2793 2664/2794 +f 2664/2794 911/951 2646/2764 +f 2648/2768 2646/2764 1146/1188 +f 2648/2768 2662/2792 2664/2794 +f 2083/1998 2093/1754 2081/1996 +f 1442/835 1437/831 1439/828 +f 519/475 330/1095 51/432 +f 1885/1929 1209/1239 613/741 +f 799/1716 805/443 804/1717 +f 1946/2100 1952/1971 1953/1970 +f 1302/2795 1253/1272 1252/2796 +f 566/1320 224/277 533/322 +f 1389/2037 928/2032 1388/720 +f 683/2797 681/1418 680/1417 +f 836/2798 1842/1891 2665/2799 +f 2665/2799 1845/1893 1303/1362 +f 2666/2800 1303/1362 1302/2795 +f 24/27 2665/2799 2666/2800 +f 831/899 2650/2772 832/897 +f 1845/1893 1304/1363 1303/1362 +f 2010/2801 2012/2802 2011/1876 +f 1051/1080 2667/2803 2668/2804 +f 1522/1089 1511/1054 1523/1090 +f 531/1116 441/2805 522/1148 +f 782/858 1251/1270 1250/1271 +f 1250/1271 2625/2730 2669/2806 +f 2669/2806 1857/2779 1856/1905 +f 783/859 1856/1905 1037/1069 +f 782/858 2669/2806 783/859 +f 720/818 2671/2807 721/816 +f 1055/1087 1930/1988 1056/1083 +f 1333/2808 1251/1270 2251/2333 +f 619/745 1308/1365 1307/2353 +f 652/767 2619/2721 2634/2742 +f 521/1058 1539/1146 1540/1164 +f 1838/1883 537/701 2672/2809 +f 2672/2809 536/2750 2641/2751 +f 1113/1145 2641/2751 1110/1143 +f 1113/1145 1838/1883 2672/2809 +f 1016/548 1351/879 1045/541 +f 3897/1719 570/347 3894/2017 +f 226/1051 104/2810 101/74 +f 3564/2811 3827/2160 1818/1771 +f 1036/1068 1884/2082 1883/1928 +f 2674/2812 1304/1363 2673/2813 +f 2673/2813 1844/1892 2675/2814 +f 1334/1424 2675/2814 1039/1071 +f 1333/2808 2673/2813 1334/1424 +f 2676/2815 1039/1071 2675/2814 +f 1843/2769 2675/2814 1844/1892 +f 942/1102 2676/2815 1843/2769 +f 1074/1104 702/803 2676/2815 +f 811/882 859/1412 858/917 +f 752/2816 1055/1087 753/842 +f 1200/2736 656/1206 1026/1232 +f 1120/1150 874/930 2677/2817 +f 2677/2817 877/932 1052/2818 +f 1241/1262 1052/2818 1005/1081 +f 1119/1151 2677/2817 1241/1262 +f 1560/1501 151/101 1515/1965 +f 1208/2819 611/738 523/694 +f 215/2820 736/2821 214/136 +f 1460/881 1462/1989 1461/936 +f 1208/2819 1839/2741 873/929 +f 854/916 1282/1331 1297/1355 +f 72/50 182/255 179/118 +f 544/329 1565/1354 512/309 +f 217/465 456/2822 457/635 +f 2047/1938 930/754 945/1944 +f 1204/1235 1937/1994 2633/2823 +f 913/952 686/856 685/794 +f 840/904 1113/1145 1112/1144 +f 1531/1119 730/435 561/348 +f 2678/2824 1283/1334 801/876 +f 601/966 1914/1973 602/730 +f 1537/1149 459/284 460/283 +f 1819/2825 3509/993 3527/2826 +f 991/1025 862/2827 538/702 +f 2679/2828 1073/1103 1830/1872 +f 2680/2829 983/1021 2256/2339 +f 779/855 2256/2339 1263/1298 +f 778/1333 2680/2829 779/855 +f 2678/2824 1830/1872 2680/2829 +f 180/120 245/1786 40/1305 +f 1886/2340 1131/1176 1134/1177 +f 1138/2830 1274/1313 1255/1274 +f 1841/1888 1140/2786 1139/1181 +f 75/2762 314/1287 74/54 +f 193/1161 420/251 192/250 +f 2681/2831 1099/1130 1098/1132 +f 170/179 1565/1354 169/113 +f 349/197 417/247 432/1280 +f 1121/1154 2684/2832 2683/2833 +f 547/431 409/258 302/257 +f 123/981 121/2834 120/1816 +f 2643/2755 1142/1183 1141/1182 +f 1542/1179 513/313 1543/1189 +f 899/2835 907/525 919/527 +f 1210/2836 676/790 867/924 +f 791/865 982/1167 892/940 +f 24/27 837/901 836/2798 +f 893/944 932/1300 931/972 +f 1860/2837 863/921 862/2827 +f 535/700 862/2827 861/920 +f 832/897 813/883 812/1230 +f 2650/2772 813/883 832/897 +f 1569/1819 1547/2838 1568/1783 +f 181/119 542/470 180/120 +f 660/2839 937/976 688/796 +f 2013/2840 568/436 2012/2802 +f 887/937 2631/2841 2630/2737 +f 1524/1092 361/1408 78/58 +f 520/1430 162/2842 1529/1109 +f 2653/2775 854/916 2685/2843 +f 1238/2765 2655/2777 2686/2844 +f 718/1948 527/697 530/696 +f 1492/1004 518/310 1491/994 +f 792/1871 615/1156 793/867 +f 599/727 1835/2845 596/728 +f 290/393 456/2822 175/176 +f 312/178 1552/1327 425/1057 +f 1248/2846 1179/1214 1249/1268 +f 153/105 177/1889 178/2199 +f 1240/1260 1222/1248 1221/1259 +f 1257/1351 1235/1979 1071/1255 +f 1291/1350 1083/1249 1222/1248 +f 1052/2818 1277/1317 1053/1082 +f 743/1237 2618/2719 1204/1235 +f 444/2847 430/263 443/1275 +f 23/23 1172/1209 1187/1278 +f 2687/2848 1180/2849 1179/1214 +f 102/76 409/258 134/91 +f 1283/1334 610/735 801/876 +f 373/2850 650/372 651/371 +f 1180/2849 1084/1117 1291/1350 +f 855/914 2655/2777 1237/1257 +f 1173/2770 1917/2851 1174/1210 +f 2689/2852 853/912 2688/2853 +f 2688/2853 1108/1138 1279/1322 +f 2686/2844 1279/1322 1238/2765 +f 2687/2848 2688/2853 2686/2844 +f 2691/2854 1252/2796 2690/2855 +f 2690/2855 850/913 2689/2852 +f 1248/2846 2689/2852 2687/2848 +f 1248/2846 2691/2854 2690/2855 +f 2692/2856 24/27 2666/2800 +f 2691/2854 2666/2800 1302/2795 +f 1247/1267 2692/2856 2691/2854 +f 1258/1290 617/742 2692/2856 +f 394/1226 1555/1415 393/1288 +f 2693/2857 1259/1292 1223/1344 +f 1072/1101 1262/1294 1261/1293 +f 1257/1351 1168/2858 1258/1290 +f 398/1539 1555/1415 1554/1795 +f 871/2778 1314/2859 872/928 +f 1178/1216 1249/1268 1179/1214 +f 1224/1251 1173/2770 1172/1209 +f 1010/1044 2618/2719 742/837 +f 1175/1211 1292/2860 1269/1306 +f 2654/2776 2686/2844 2655/2777 +f 2694/2861 1216/1246 1264/1910 +f 71/1955 1487/988 70/51 +f 701/802 1111/2862 1038/1070 +f 1072/1101 2649/2771 2650/2772 +f 1085/1118 22/1250 21/22 +f 895/961 1264/1910 896/943 +f 1601/1400 1605/1954 1604/1398 +f 1259/1292 1271/1307 1289/1345 +f 21/22 1220/1247 1083/1249 +f 988/1026 538/702 537/701 +f 598/2341 1336/1425 1140/2786 +f 820/1811 1762/2739 821/889 +f 1050/2740 818/890 821/889 +f 1298/1356 1761/1810 2652/2863 +f 1168/2858 618/2279 617/742 +f 858/917 1256/1279 833/898 +f 39/20 516/439 1536/1133 +f 2652/2863 819/888 814/884 +f 313/1142 315/192 314/1287 +f 2026/1923 1971/1823 2027/1896 +f 2656/2864 596/728 1835/2845 +f 814/884 818/890 811/882 +f 2696/2865 813/883 2649/2771 +f 1260/2866 2649/2771 1261/1293 +f 2693/2857 2696/2865 1260/2866 +f 2697/2867 2651/2774 2696/2865 +f 381/220 390/290 380/221 +f 3818/2121 1611/1903 1609/1963 +f 1475/935 1428/2168 1227/617 +f 1292/2860 1917/2851 1235/1979 +f 1551/1227 354/1346 1518/1186 +f 1526/1098 1523/1090 1511/1054 +f 1593/1387 1595/1403 1573/2051 +f 1232/1254 1246/1269 1249/1268 +f 2695/2868 1223/1344 22/1250 +f 2698/2869 1296/1357 2697/2867 +f 2698/2869 2693/2857 2695/2868 +f 2685/2843 2695/2868 1085/1118 +f 2685/2843 1297/1355 2698/2869 +f 562/349 271/1003 272/350 +f 2652/2863 1296/1357 1298/1356 +f 1365/762 1364/2125 1363/687 +f 1958/2101 1953/1970 1957/2870 +f 585/723 2210/2274 997/1032 +f 1561/1521 1515/1965 435/268 +f 975/2766 1146/1188 976/1013 +f 347/1266 68/49 346/384 +f 1038/1070 636/751 1068/1096 +f 2700/2871 780/857 2699/2872 +f 2699/2872 1036/1068 1883/1928 +f 2701/2873 1883/1928 1829/1870 +f 851/911 2699/2872 2701/2873 +f 2674/2812 2251/2333 2702/2874 +f 2702/2874 781/2875 2700/2871 +f 1253/1272 2700/2871 851/911 +f 1301/1361 2702/2874 1253/1272 +f 1519/1253 388/229 1550/1285 +f 1273/1312 1280/1324 2703/2876 +f 2703/2876 1107/1323 852/1137 +f 2701/2873 852/1137 851/911 +f 1829/1870 2703/2876 2701/2873 +f 91/2877 326/1321 90/66 +f 1784/1827 2656/2864 1785/1825 +f 2683/2833 2705/2878 2704/2879 +f 604/1850 3499/2880 3533/1930 +f 1669/1049 3548/2881 1662/1674 +f 2062/1958 2060/2882 2059/1953 +f 621/1309 861/920 622/744 +f 2023/1877 732/2883 2024/1881 +f 686/856 1263/1298 687/795 +f 857/919 2668/2804 1328/1413 +f 883/1843 882/1252 879/459 +f 637/2749 1111/2862 1110/1143 +f 2668/2804 893/944 1328/1413 +f 2667/2803 894/942 2668/2804 +f 1039/1071 1068/1096 1334/1424 +f 313/1142 1504/1029 1505/1036 +f 1911/1759 305/1093 453/276 +f 1936/1993 1964/2035 2212/2349 +f 2707/2884 2401/2885 2183/2886 +f 2708/2887 2183/2886 2182/2219 +f 738/1807 2116/2198 554/1456 +f 2349/2624 2432/2510 2436/2515 +f 2711/2888 2020/2078 2019/2889 +f 2400/2478 2019/2889 2186/2222 +f 2714/2890 2716/2891 2713/2892 +f 2717/2893 2719/2894 2720/2895 +f 2721/2896 2723/2897 2724/2898 +f 2726/2899 2728/2900 2725/2901 +f 2725/2901 2730/2902 2729/2903 +f 2731/2904 2729/2903 2709/2905 +f 2732/2906 2725/2901 2731/2904 +f 2734/2907 2736/2908 2733/2909 +f 2738/2910 2740/2911 2737/2912 +f 2737/2912 2741/2913 2742/2914 +f 2744/2915 2746/2916 2743/2917 +f 2745/2918 2748/2919 2747/2920 +f 2749/2921 2747/2920 2751/2922 +f 2753/2923 2751/2922 2752/2924 +f 2250/2329 2246/2325 2248/2328 +f 2754/2925 1614/1683 2755/2926 +f 3598/2927 2755/2926 3609/2928 +f 3608/2929 2747/2920 3609/2928 +f 1617/1685 2755/2926 1614/1683 +f 2242/2309 1620/1688 2757/2930 +f 2191/2249 2760/2931 2759/2932 +f 2761/2933 2760/2931 2762/2934 +f 3648/2935 2761/2933 3649/2936 +f 3623/2937 2759/2932 3648/2935 +f 3209/2938 3223/2939 3224/2940 +f 1395/1722 2236/2304 2235/2330 +f 1395/1722 1636/2331 1615/1721 +f 1616/1684 2229/2299 2233/2302 +f 1617/1685 2763/2941 2756/2942 +f 2756/2942 3628/2943 3608/2929 +f 2765/2944 2234/2945 1630/2311 +f 2766/2946 3628/2943 3622/2947 +f 3202/2948 3246/2949 3247/2950 +f 1516/1966 435/268 1515/1965 +f 2768/2951 3552/1458 3553/1460 +f 1495/997 578/342 1424/804 +f 2135/632 28/2112 17/10 +f 3526/2952 2773/2953 2774/2954 +f 1690/1646 3926/2955 3925/2956 +f 2778/2957 2780/2958 2777/2959 +f 2777/2959 2781/2960 2782/2961 +f 2784/2962 2777/2959 2783/2963 +f 3555/2128 575/380 576/392 +f 1494/996 9/2190 540/327 +f 3529/1467 2015/2263 3566/1336 +f 451/320 505/634 450/272 +f 2786/2964 2788/2965 2785/2966 +f 2779/2967 2785/2966 2780/2958 +f 2789/2968 2741/2913 2740/2911 +f 2790/2969 2752/2924 2789/2968 +f 2792/2970 2794/2971 2791/2972 +f 2793/2973 2796/2974 2794/2971 +f 2796/2974 2750/2975 2749/2921 +f 2794/2971 2749/2921 2753/2923 +f 2798/2976 1396/1471 2754/2925 +f 3591/2977 2754/2925 3598/2927 +f 2798/2976 2800/2978 1393/1472 +f 3591/2977 2799/2979 2798/2976 +f 2797/2980 2795/2981 2801/2982 +f 2791/2972 2753/2923 2790/2969 +f 216/138 232/1743 54/39 +f 3804/2983 2807/2984 3803/2985 +f 3805/2986 2804/2987 3803/2985 +f 2769/2988 3557/1507 3552/1458 +f 183/211 184/374 97/73 +f 2811/2989 2775/2990 2776/2991 +f 2804/2987 2776/2991 2805/2992 +f 2809/2993 2811/2989 2804/2987 +f 2812/2994 2813/2995 2814/2996 +f 3805/2986 2816/2997 3795/2998 +f 3796/2999 2815/3000 3795/2998 +f 3798/3001 2820/3002 2821/3003 +f 3793/3004 2819/3005 3798/3001 +f 2824/3006 2735/3007 2819/3005 +f 2823/3008 2824/3006 2819/3005 +f 2825/3009 2826/3010 2724/2898 +f 3793/3004 2827/3011 3792/3012 +f 3796/2999 2826/3010 3792/3012 +f 2713/2892 2829/3013 2828/3014 +f 2828/3014 2831/3015 2830/3016 +f 2822/3017 2828/3014 2830/3016 +f 2821/3003 2713/2892 2828/3014 +f 2832/3018 2822/3017 2830/3016 +f 2833/3019 2830/3016 2831/3015 +f 2834/3020 2832/3018 2833/3019 +f 2835/3021 2827/3011 2832/3018 +f 2837/3022 2839/3023 2836/3024 +f 2836/3024 2841/3025 2840/3026 +f 2842/3027 2840/3026 2727/3028 +f 2843/3029 2836/3024 2842/3027 +f 2840/3026 2845/3030 2844/3031 +f 2718/3032 2845/3030 2719/2894 +f 2730/2902 2844/3031 2718/3032 +f 2727/3028 2844/3031 2728/2900 +f 2846/3033 2719/2894 2845/3030 +f 2846/3033 2841/3025 2847/3034 +f 2829/3013 2847/3034 2831/3015 +f 2829/3013 2716/2891 2846/3033 +f 2847/3034 2839/3023 2848/3035 +f 2848/3035 2838/3036 2849/3037 +f 2833/3019 2849/3037 2834/3020 +f 2831/3015 2848/3035 2833/3019 +f 2850/3038 2851/3039 2852/3040 +f 2853/3041 2852/3040 2854/3042 +f 2783/2963 2782/2961 2855/3043 +f 2785/2966 2853/3041 2856/3044 +f 2780/2958 2856/3044 2781/2960 +f 2857/3045 2855/3043 2782/2961 +f 2859/3046 2782/2961 2781/2960 +f 2861/3047 2842/3027 2860/3048 +f 2860/3048 2727/3028 2726/2899 +f 2862/3049 2726/2899 2732/2906 +f 2863/3050 2860/3048 2862/3049 +f 2861/3047 2858/3051 2857/3045 +f 2843/3029 2857/3045 2859/3046 +f 2856/3044 2854/3042 2864/3052 +f 2781/2960 2864/3052 2859/3046 +f 2837/3022 2859/3046 2864/3052 +f 2838/3036 2864/3052 2854/3042 +f 2852/3040 2834/3020 2849/3037 +f 2854/3042 2849/3037 2838/3036 +f 2865/3053 2818/3054 2835/3021 +f 2851/3039 2835/3021 2834/3020 +f 2813/2995 2815/3000 2865/3053 +f 2814/2996 2865/3053 2851/3039 +f 2866/3055 2814/2996 2850/3038 +f 2788/2965 2850/3038 2853/3041 +f 2866/3055 2787/3056 2867/3057 +f 2812/2994 2867/3057 2775/2990 +f 1892/2003 1890/1740 1891/2175 +f 2720/2895 2846/3033 2870/3058 +f 298/1407 256/148 257/1193 +f 2872/3059 2713/2892 2820/3002 +f 3794/3060 2735/3007 2734/2907 +f 2729/2903 2874/3061 2873/3062 +f 2846/3033 2715/3063 2870/3058 +f 2876/3064 2878/3065 2875/3066 +f 2733/2909 2878/3065 2734/2907 +f 3806/3067 2879/3068 2880/3069 +f 3806/3067 2872/3059 3794/3060 +f 2882/3070 2884/3071 2881/3072 +f 2881/3072 2715/3063 2714/2890 +f 2880/3069 2714/2890 2872/3059 +f 2879/3068 2881/3072 2880/3069 +f 2885/3073 2887/3074 2888/3075 +f 2888/3075 2890/3076 2885/3073 +f 2885/3073 2892/3077 2891/3078 +f 2893/3079 2885/3073 2891/3078 +f 1942/2002 2532/3080 2894/3081 +f 2895/3082 2720/2895 2870/3058 +f 2884/3071 2870/3058 2715/3063 +f 2883/3083 2895/3082 2884/3071 +f 2896/3084 2892/3077 2895/3082 +f 2889/3085 2717/2893 2890/3076 +f 2890/3076 2720/2895 2892/3077 +f 2897/3086 2891/3078 2896/3084 +f 2898/3087 2896/3084 2883/3083 +f 2899/3088 2883/3083 2882/3070 +f 2900/3089 2882/3070 2879/3068 +f 3797/3090 2879/3068 3807/3091 +f 2876/3064 2901/3092 2877/3093 +f 2901/3092 2904/3094 2903/3095 +f 1785/1825 1835/2845 1834/1879 +f 2905/3096 2899/3088 2900/3089 +f 2907/3097 2897/3086 2898/3087 +f 3797/3090 2903/3095 3799/3098 +f 632/2493 577/3099 633/2170 +f 3532/1639 2867/3057 2787/3056 +f 434/265 550/337 350/196 +f 2768/2951 3640/3100 3643/3101 +f 2910/3102 1623/1690 2249/2327 +f 2241/3103 2758/3104 2242/2309 +f 3640/3100 2913/3105 3652/3106 +f 1623/1690 2757/2930 1620/1688 +f 3587/2310 2757/2930 3652/3106 +f 2229/2299 1380/1466 2250/2329 +f 2765/2944 1629/1697 2914/3107 +f 2915/3108 1629/1697 2912/3109 +f 3642/3110 2914/3107 2915/3108 +f 3641/3111 2765/2944 2914/3107 +f 2919/3112 3642/3110 3613/3113 +f 2918/3114 2912/3109 2241/3103 +f 3614/3115 2241/3103 3586/2308 +f 3618/3116 3613/3113 3670/3117 +f 3541/1663 2180/2218 3496/1664 +f 3521/1682 2188/3118 3506/1735 +f 3705/3119 714/376 3851/2093 +f 2925/3120 2917/3121 2924/3122 +f 2924/3122 2916/3123 2919/3112 +f 3610/3124 2919/3112 3618/3116 +f 3611/3125 2924/3122 3610/3124 +f 2926/3126 2766/2946 2925/3120 +f 3658/3127 2925/3120 3611/3125 +f 1715/1533 1705/1744 1710/1842 +f 785/1500 498/2230 796/1498 +f 1387/719 565/1310 1791/2206 +f 374/2231 1899/3128 560/2229 +f 3573/2056 2206/2269 3556/3129 +f 2929/3130 2886/3131 2893/3079 +f 2932/3132 2934/3133 2931/3134 +f 1905/1748 1908/1813 1907/1832 +f 2930/3135 2936/3136 2937/3137 +f 2938/3138 2930/3135 2929/3130 +f 1493/1075 517/1897 518/310 +f 1603/3139 1586/1389 1602/1399 +f 2939/3140 2929/3130 2908/3141 +f 2940/3142 2908/3141 2907/3097 +f 3665/3143 1600/1395 3661/2103 +f 2886/3131 2937/3137 2887/3074 +f 2906/3144 2898/3087 2899/3088 +f 2908/3141 2893/3079 2897/3086 +f 2942/3145 2933/3146 2941/3147 +f 2941/3147 2937/3137 2936/3136 +f 3501/1687 2936/3136 3513/1695 +f 3498/1686 2941/3147 3501/1687 +f 2943/3148 2710/3149 2873/3062 +f 2943/3148 2874/3061 2889/3085 +f 2945/3150 2889/3085 2888/3075 +f 2946/3151 2943/3148 2945/3150 +f 2932/3132 2888/3075 2887/3074 +f 2931/3134 2945/3150 2932/3132 +f 727/375 1929/1777 728/373 +f 2903/3095 2947/3152 2948/3153 +f 545/331 42/30 262/335 +f 1480/969 533/322 251/323 +f 2907/3097 2949/3154 2940/3142 +f 2906/3144 2950/3155 2949/3154 +f 1558/1286 215/2820 202/135 +f 3799/3098 2948/3153 3801/3156 +f 2054/2008 1644/1420 2118/885 +f 3705/3119 2203/2267 3573/2056 +f 1828/1677 1849/986 1827/1672 +f 2953/3157 2955/3158 2952/3159 +f 2952/3159 2957/3160 2956/3161 +f 2956/3161 2258/2345 2952/3159 +f 2953/3157 2258/2345 2257/2342 +f 2454/2535 2474/2554 2496/2580 +f 3747/3162 2959/3163 3766/3164 +f 3747/3162 2131/2177 3737/3165 +f 2961/3166 2963/3167 2958/3168 +f 2958/3168 2964/3169 2959/3163 +f 222/307 2485/2565 2965/3170 +f 2477/2557 2966/3171 2608/2707 +f 2631/2841 2006/2070 1859/1909 +f 2384/2467 2496/2580 2497/3172 +f 2967/3173 2959/3163 2964/3169 +f 2968/3174 2970/3175 2969/3176 +f 3759/3177 2971/3178 3784/3179 +f 3784/3179 2960/3180 3766/3164 +f 2972/3181 2033/2098 2032/2097 +f 2007/2461 2973/3182 2008/2071 +f 3560/3183 2134/2179 2133/2178 +f 1836/3184 1832/1711 1831/1710 +f 3506/1735 2090/2143 3551/1899 +f 955/1295 959/517 956/3185 +f 672/3186 674/3187 673/2296 +f 633/2170 713/1335 632/2493 +f 2024/1881 733/398 803/1489 +f 2025/1882 803/1489 798/1873 +f 425/1057 1550/1285 388/229 +f 2975/3188 888/1919 887/937 +f 1319/1375 1157/1196 2694/2861 +f 1212/1791 2977/3189 1213/1242 +f 889/938 2228/3190 2227/2297 +f 1978/1837 1975/1835 1979/1853 +f 1138/2830 1329/1414 915/956 +f 751/841 2979/3191 2978/3192 +f 1619/1949 1625/1485 1624/1476 +f 2252/2336 1728/3193 1727/1790 +f 1157/1196 845/907 1216/1246 +f 2706/3194 1938/1995 2617/2720 +f 2980/3195 2254/3196 2981/3197 +f 2982/3198 887/937 2630/2737 +f 802/875 711/809 2679/2828 +f 678/3199 2029/2081 2028/2083 +f 527/697 690/905 528/695 +f 1839/2741 2629/2735 1840/1885 +f 2983/3200 602/730 1914/1973 +f 2983/3200 1913/1972 1331/2759 +f 2985/3201 1331/2759 1054/1084 +f 2986/3202 2983/3200 2985/3201 +f 2987/3203 2635/2743 2634/2742 +f 2985/3201 2639/2746 2986/3202 +f 2990/3204 1318/1374 2989/3205 +f 2991/3206 2993/3207 2994/3208 +f 2995/3209 2994/3208 2996/3210 +f 1106/1135 2991/3206 2995/3209 +f 1058/2752 2992/3211 2991/3206 +f 1415/765 1365/762 1367/703 +f 1317/1373 2217/2284 2997/3212 +f 1932/1990 2255/2335 2980/3195 +f 926/965 2999/3213 664/778 +f 3001/3214 2992/3211 3000/3215 +f 3000/3215 1057/1085 2978/3192 +f 2999/3213 2978/3192 2979/3191 +f 2998/3216 3000/3215 2999/3213 +f 3002/3217 2209/2275 3003/3218 +f 3002/3217 2996/3210 2994/3208 +f 2993/3207 3002/3217 2994/3208 +f 3001/3214 2998/3216 3002/3217 +f 1103/1136 2995/3209 3004/3219 +f 3004/3219 2996/3210 3003/3218 +f 2209/2275 3004/3219 3003/3218 +f 588/722 3004/3219 2210/2274 +f 295/1840 433/1347 381/220 +f 2638/2747 2988/3220 3005/3221 +f 3005/3221 1056/1083 1930/1988 +f 1305/1366 1930/1988 1306/1364 +f 1276/1376 3005/3221 1305/1366 +f 1987/1851 1993/1858 1989/1855 +f 2633/2823 1761/1810 2645/2761 +f 1423/797 1417/783 1419/785 +f 3561/1769 739/482 703/390 +f 2671/2807 2704/2879 2705/2878 +f 1473/2115 2035/2161 1472/2215 +f 922/2351 2694/2861 895/961 +f 1401/2337 1378/715 1384/1550 +f 556/1166 1884/2082 1037/1069 +f 842/1433 3825/601 3836/603 +f 1854/1902 2617/2720 1010/1044 +f 933/973 1081/2783 1075/1105 +f 1440/836 1436/963 1437/831 +f 529/2725 719/815 530/696 +f 1031/1063 1027/1061 1028/1064 +f 777/854 912/2728 1871/1921 +f 2645/2761 1204/1235 2633/2823 +f 441/2805 1538/1348 1537/1149 +f 790/1110 587/1197 586/721 +f 2065/1969 1610/1404 1607/1406 +f 1860/2837 990/2760 902/1845 +f 60/40 87/78 59/62 +f 1424/804 1948/1932 1947/2080 +f 332/3222 1507/1038 331/1091 +f 261/1341 138/1126 135/1847 +f 187/123 449/273 507/1359 +f 1719/1536 1726/1583 1725/1571 +f 1931/1987 1059/1086 3006/3223 +f 3006/3223 1105/2753 1104/1134 +f 1287/1343 1104/1134 587/1197 +f 1286/2354 3006/3223 1287/1343 +f 3007/3224 3009/3225 3010/3226 +f 3009/3225 653/869 795/868 +f 618/2279 26/2732 25/25 +f 2029/2081 1210/2836 1209/1239 +f 957/998 600/729 2228/3190 +f 1049/1078 2228/3190 600/729 +f 2631/2841 3011/3227 2561/2655 +f 890/939 2227/2297 3011/3227 +f 3011/3227 2145/2187 3012/3228 +f 2561/2655 3012/3228 2375/2459 +f 1026/1232 609/770 608/734 +f 2706/3194 1961/2036 1964/2035 +f 3013/3229 2485/2565 3014/3230 +f 2148/2189 1267/1301 3015/3231 +f 3015/3231 1266/1303 1311/1368 +f 2997/3212 1101/1131 1317/1373 +f 642/2787 1773/1817 1193/1224 +f 186/121 461/285 511/311 +f 1041/1155 1320/1377 901/945 +f 1121/1154 3017/3232 1122/1152 +f 2984/3233 2987/3203 3018/3234 +f 3018/3234 2634/2742 2619/2721 +f 1048/1079 3018/3234 2619/2721 +f 603/731 2984/3233 3018/3234 +f 2679/2828 801/876 802/875 +f 2062/1958 2074/1981 2061/1956 +f 2061/1956 2076/1983 2064/1962 +f 414/239 1545/1200 1965/1818 +f 3016/3235 2683/2833 3019/3236 +f 3019/3236 2704/2879 2670/3237 +f 3020/3238 2670/3237 720/818 +f 3007/3224 3019/3236 3020/3238 +f 1871/1921 1091/1122 777/854 +f 3021/3239 1122/1152 3017/3232 +f 3022/3240 3017/3232 3010/3226 +f 1314/2859 3022/3240 1315/1371 +f 1784/1827 3021/3239 1314/2859 +f 1316/1372 1763/3241 611/738 +f 3023/3242 3010/3226 3009/3225 +f 3023/3242 795/868 1092/1123 +f 1763/3241 1092/1123 1125/1812 +f 1315/1371 3023/3242 1763/3241 +f 3016/3235 3010/3226 3017/3232 +f 752/2816 2978/3192 1057/1085 +f 2986/3202 2637/2744 2987/3203 +f 3024/3243 653/869 3008/3244 +f 3020/3238 3008/3244 3007/3224 +f 720/818 3024/3243 3020/3238 +f 723/817 654/768 3024/3243 +f 2681/2831 1268/1302 3025/3245 +f 2671/2807 1268/1302 721/816 +f 2705/2878 3025/3245 2671/2807 +f 1313/1370 3027/3246 1311/1368 +f 3026/3247 3029/3248 3027/3246 +f 3027/3246 3030/3249 3031/3250 +f 1311/1368 3031/3250 3015/3231 +f 2012/2802 731/1875 2023/1877 +f 917/1106 974/1012 977/1014 +f 743/1237 856/915 744/838 +f 1888/1898 2030/1895 1425/800 +f 2682/3251 2684/2832 3032/3252 +f 3032/3252 1124/1153 2989/3205 +f 1100/2789 2989/3205 1318/1374 +f 1099/1130 3032/3252 1100/2789 +f 1123/3253 2989/3205 1124/1153 +f 3033/3254 1159/1880 1158/1194 +f 2990/3204 1158/1194 1319/1375 +f 1123/3253 3033/3254 2990/3204 +f 1786/2724 1834/1879 3033/3254 +f 1054/1084 2988/3220 2985/3201 +f 2979/3191 664/778 2999/3213 +f 2623/2727 2663/2791 2643/2755 +f 1095/1127 688/796 687/795 +f 3034/3255 2261/3256 2956/3161 +f 3036/3257 2956/3161 2957/3160 +f 3037/3258 3034/3255 3036/3257 +f 3038/3259 3035/3260 3034/3255 +f 3040/3261 3026/3247 1313/1370 +f 2263/2347 3041/3262 3040/3261 +f 3042/3263 3043/3264 3041/3262 +f 3041/3262 3028/3265 3026/3247 +f 3044/3266 3043/3264 3039/3267 +f 3046/3268 3045/3269 3044/3266 +f 3047/3270 3049/3271 3045/3269 +f 3043/3264 3049/3271 3028/3265 +f 3038/3259 3051/3272 3050/3273 +f 3050/3273 3053/3274 3052/3275 +f 3052/3275 3044/3266 3050/3273 +f 3039/3267 3050/3273 3044/3266 +f 3054/3276 3039/3267 3042/3263 +f 3042/3263 2262/2346 3054/3276 +f 2261/3256 3054/3276 2262/2346 +f 2216/2348 2997/3212 2217/2284 +f 2212/2349 2667/2803 1936/1993 +f 3056/3277 2209/2275 3055/3278 +f 934/974 1961/2036 1854/1902 +f 2013/2840 3757/2040 567/1319 +f 3058/3279 3060/3280 3061/3281 +f 3059/3282 3063/3283 3060/3280 +f 3060/3280 2213/2281 1963/2350 +f 3061/3281 1963/2350 1962/2034 +f 3063/3283 2214/2282 2213/2281 +f 3062/3284 3064/3285 3063/3283 +f 3065/3286 2260/2344 3064/3285 +f 3064/3285 2215/2283 2214/2282 +f 3066/3287 3031/3250 3030/3249 +f 2608/2707 3067/3288 3066/3287 +f 2966/3171 3068/3289 3067/3288 +f 3031/3250 3068/3289 3015/3231 +f 2455/2534 2461/2539 2474/2554 +f 2476/3290 2226/2294 2477/2557 +f 3551/1899 2089/2145 3525/1203 +f 3526/2952 3769/3291 3786/3292 +f 433/1347 355/201 381/220 +f 2115/2048 1419/785 2123/2061 +f 3509/993 2922/3293 3527/2826 +f 3769/3291 2131/2177 2134/2179 +f 3069/3294 2167/3295 2166/2208 +f 2971/3178 2928/3296 2960/3180 +f 2961/3166 2773/2953 2962/3297 +f 3070/3298 2478/2558 2483/2563 +f 2610/3299 3071/3300 2954/3301 +f 2502/2693 2374/2457 2386/2691 +f 3072/3302 2595/2690 3073/3303 +f 2964/3169 3052/3275 2967/3173 +f 3048/3304 3074/3305 3049/3271 +f 2593/3306 3075/3307 3074/3305 +f 3075/3307 3029/3248 3074/3305 +f 3074/3305 3028/3265 3049/3271 +f 3072/3302 3075/3307 2592/2688 +f 3076/3308 2482/3309 2481/2562 +f 2481/2562 3066/3287 3076/3308 +f 3076/3308 3030/3249 3075/3307 +f 2967/3173 3053/3274 2970/3175 +f 2482/3309 3073/3303 2483/2563 +f 479/364 493/297 494/299 +f 706/1340 3873/2167 709/1338 +f 3561/1769 2221/2291 3517/483 +f 2013/2840 3754/812 3755/3310 +f 3533/1930 2016/2075 3529/1467 +f 3562/1933 2222/3311 2974/3312 +f 1171/587 1155/573 1176/585 +f 2586/3313 2565/2714 2587/3314 +f 2982/3198 113/154 2484/2564 +f 2562/3315 3077/3316 3068/3289 +f 2376/2656 3012/3228 3077/3316 +f 3012/3228 2148/2189 3077/3316 +f 3077/3316 3015/3231 3068/3289 +f 2963/3167 3046/3268 2964/3169 +f 3051/3272 2970/3175 3053/3274 +f 1683/1805 491/424 775/423 +f 3850/2105 1447/848 3860/849 +f 1986/2053 3734/3317 3768/3318 +f 3079/3319 2546/2637 2575/2668 +f 3081/3320 2575/2668 2576/2667 +f 1983/2054 3768/3318 3765/3321 +f 3082/3322 2319/2638 2545/2636 +f 3080/3323 2545/2636 2546/2637 +f 3734/3317 3082/3322 3080/3323 +f 3732/3324 2323/2407 3082/3322 +f 1309/637 1888/1898 748/1906 +f 3073/3303 2772/3325 2771/3326 +f 2760/2931 3084/3327 2762/2934 +f 2760/2931 2088/2142 3083/3328 +f 3085/3329 3086/3330 3087/3331 +f 3089/3332 3090/3333 3088/3334 +f 3089/3332 3084/3327 3085/3329 +f 3092/3335 3090/3333 3091/3336 +f 3093/3337 2744/2915 2743/2917 +f 2751/2922 2748/2919 3093/3337 +f 3093/3337 2752/2924 2751/2922 +f 2742/2914 3093/3337 3094/3338 +f 3094/3338 2743/2917 3095/3339 +f 3096/3340 3098/3341 3087/3331 +f 3099/3342 3087/3331 3086/3330 +f 3097/3343 3095/3339 3098/3341 +f 3100/3344 2746/2916 3101/3345 +f 3101/3345 3102/3346 3100/3344 +f 2764/3347 2927/3348 3101/3345 +f 2745/2918 3101/3345 2746/2916 +f 3102/3346 3091/3336 3100/3344 +f 3100/3344 3095/3339 2743/2917 +f 2869/3349 3592/3350 3634/3351 +f 3102/3346 3104/3352 3092/3335 +f 3658/3127 2869/3349 3634/3351 +f 2927/3348 3103/3353 3102/3346 +f 3098/3341 3091/3336 3090/3333 +f 3087/3331 3090/3333 3085/3329 +f 2088/2142 3105/3354 3083/3328 +f 3083/3328 3086/3330 3084/3327 +f 2483/2563 2771/3326 3070/3298 +f 2401/2885 2185/2223 2321/3355 +f 3099/3342 3105/3354 3106/3356 +f 2125/2172 3106/3356 3105/3354 +f 3108/3357 2742/2914 3107/3358 +f 3107/3358 3094/3338 3097/3343 +f 3110/3359 3107/3358 3109/3360 +f 3109/3360 3097/3343 3096/3340 +f 3111/3361 3096/3340 3099/3342 +f 3112/3362 3109/3360 3111/3361 +f 3113/3363 2737/2912 3108/3357 +f 3115/3364 2722/3365 3114/3366 +f 3117/3367 3114/3366 3116/3368 +f 3119/3369 3116/3368 3118/3370 +f 3118/3370 3120/3371 3121/3372 +f 3116/3368 3113/3363 3120/3371 +f 3122/3373 3111/3361 3123/3374 +f 3122/3373 1755/2271 1754/1801 +f 3124/3375 3126/3376 3127/3377 +f 3125/3378 3121/3372 3126/3376 +f 3128/3379 3118/3370 3125/3378 +f 3129/3380 3125/3378 3124/3375 +f 2020/2078 3128/3379 3129/3380 +f 3853/671 1346/664 1352/878 +f 1065/2174 1047/537 1066/641 +f 1814/1665 3830/1445 1649/1444 +f 2021/2079 3129/3380 3130/3381 +f 3111/3361 3106/3356 3123/3374 +f 3123/3374 2207/2295 1755/2271 +f 2377/2460 2224/3382 2973/3182 +f 3014/3230 113/154 112/153 +f 1756/1802 3782/3383 3767/3384 +f 3131/3385 2530/2622 2528/2620 +f 3133/3386 2528/2620 2529/2619 +f 1753/1803 3767/3384 3775/3387 +f 3134/3388 3127/3377 3135/3389 +f 2327/2410 2314/2506 2313/2399 +f 2436/2515 2317/2404 2349/2624 +f 2018/2077 3711/3390 3712/3391 +f 2534/2625 3137/3392 2535/2626 +f 2320/2403 3136/3393 2534/2625 +f 2185/2223 3712/3391 3771/3394 +f 3138/3395 2542/2633 2539/2630 +f 3134/3388 3744/3396 3745/3397 +f 3785/3398 3134/3388 3745/3397 +f 3140/3399 2539/2630 2538/2629 +f 2535/2626 3140/3399 2538/2629 +f 3711/3390 3130/3381 3785/3398 +f 2558/2652 3132/3400 3141/3401 +f 3782/3383 3141/3401 3132/3400 +f 2560/2654 3141/3401 3142/3402 +f 3760/3403 3142/3402 3141/3401 +f 958/999 2976/3404 2981/3197 +f 1933/3405 2980/3195 3143/3406 +f 2399/3407 2418/2490 2416/2489 +f 2348/2431 2343/2427 2432/2510 +f 2322/2406 2319/2638 2323/2407 +f 2718/3032 2874/3061 2730/2902 +f 2709/2905 2873/3062 2710/3149 +f 2894/3081 1361/1440 1942/2002 +f 346/384 176/177 347/1266 +f 1876/1724 1882/1920 1881/1936 +f 2802/3408 3607/3409 3592/3350 +f 3104/3352 3088/3334 3092/3335 +f 2974/3312 3649/2936 3603/3410 +f 3089/3332 2761/2933 2762/2934 +f 3088/3334 3145/3411 3089/3332 +f 2803/3412 3603/3410 3607/3409 +f 3870/2095 692/379 628/2154 +f 2123/2061 1418/780 2126/2259 +f 1365/762 1368/688 1367/703 +f 1581/1380 1782/1696 1783/1614 +f 3569/1337 2129/2176 3520/2127 +f 3555/2128 2002/2245 3521/1682 +f 3146/3413 2551/2644 3147/3414 +f 3751/3415 3147/3414 3750/3416 +f 3742/3417 3146/3413 3751/3415 +f 3149/3418 2585/2677 3146/3413 +f 3196/3419 3197/3420 3195/2233 +f 3604/3421 2191/2249 3623/2937 +f 3142/3402 2556/2647 2560/2654 +f 3777/3422 3150/3423 3142/3402 +f 3646/3424 2550/2641 3593/2650 +f 3150/3423 2555/2648 2556/2647 +f 3778/3425 3151/3426 3150/3423 +f 3788/3427 3152/3428 3646/3424 +f 3153/3429 2551/2644 2549/2642 +f 3152/3428 2549/2642 2550/2641 +f 3781/3430 3153/3429 3152/3428 +f 3776/3431 3147/3414 3153/3429 +f 3148/3432 2206/2269 2205/2268 +f 2183/2886 2321/3355 2184/2220 +f 2132/3433 2928/3296 2133/2178 +f 3684/3434 2204/3435 2203/2267 +f 3719/3436 2197/2255 3721/3437 +f 2594/2689 2773/2953 2951/3438 +f 2595/2690 2951/3438 2772/3325 +f 1870/1713 799/1716 1869/1714 +f 3713/3439 2178/3440 3706/3441 +f 3706/3441 3736/3442 3790/3443 +f 336/510 3774/3444 3722/3445 +f 339/512 3154/3446 336/510 +f 3789/3447 3149/3418 3742/3417 +f 3683/3448 2584/2676 3149/3418 +f 2963/3167 3048/3304 3047/3270 +f 3722/3445 337/3449 336/510 +f 339/512 2566/2658 2586/3313 +f 3156/3450 2168/2209 2167/3295 +f 2610/3299 2167/3295 2611/2709 +f 2954/3301 3156/3450 2610/3299 +f 3157/3451 2953/3157 2257/2342 +f 3707/3452 2169/2210 3709/3453 +f 2567/2660 3159/3454 2568/2662 +f 337/3449 2567/2660 338/511 +f 3730/3455 2166/2208 3707/3452 +f 3764/3456 1983/2054 3765/3321 +f 2579/2671 3081/3320 2576/2667 +f 2568/2662 3160/3457 2579/2671 +f 3709/3453 2190/2247 3764/3456 +f 3065/3286 3162/3458 3161/3459 +f 3161/3459 1984/2052 2189/2246 +f 3157/3451 2189/2246 2168/2209 +f 2257/2342 3161/3459 3157/3451 +f 734/400 1922/3460 806/442 +f 3059/3282 2708/2887 3163/3461 +f 3163/3461 2182/2219 1985/2224 +f 3162/3458 1985/2224 1984/2052 +f 3062/3284 3163/3461 3162/3458 +f 3203/3462 3205/3463 3204/3464 +f 2122/2060 1448/852 1447/848 +f 3817/886 1685/1160 3812/3465 +f 139/95 444/2847 69/52 +f 1570/1745 566/1320 533/322 +f 2957/3160 3165/3466 3036/3257 +f 2955/3158 3164/3467 2957/3160 +f 1912/1758 341/499 1973/1829 +f 3130/3381 3124/3375 3134/3388 +f 1548/2355 319/1861 1547/2838 +f 1949/2204 1327/1729 1887/3468 +f 2969/3176 3078/3469 3167/3470 +f 3167/3470 3169/3471 3168/3472 +f 3724/3473 2017/2076 3720/3474 +f 3720/3474 2033/2098 3759/3177 +f 3168/3472 3165/3466 3170/3475 +f 3170/3475 3164/3467 3171/3476 +f 3779/3477 3171/3476 3756/3478 +f 3724/3473 3170/3475 3779/3477 +f 3171/3476 3166/3479 3172/3480 +f 3172/3480 3071/3300 3173/3481 +f 3752/3482 3173/3481 3749/3483 +f 3756/3478 3172/3480 3752/3482 +f 3169/3471 3036/3257 3165/3466 +f 2593/3306 2962/3297 2594/2689 +f 3173/3481 2609/2708 3174/3484 +f 3174/3484 2199/2710 2198/2253 +f 3783/3485 2198/2253 3719/3436 +f 3749/3483 3174/3484 3783/3485 +f 2190/2247 1984/2052 1983/2054 +f 2196/2252 2767/3486 3148/3432 +f 2119/2059 1414/766 1448/852 +f 1464/947 1466/891 1465/894 +f 2199/2710 3069/3294 2200/2254 +f 2457/2713 2587/3314 2565/2714 +f 2226/2294 2562/3315 2966/3171 +f 481/404 1627/1409 1639/1435 +f 333/1261 235/1052 236/341 +f 3078/3469 3037/3258 3169/3471 +f 3040/3261 2997/3212 2263/2347 +f 2219/2287 1933/3405 2220/2286 +f 2385/2468 2497/3172 2503/2692 +f 221/2566 3175/3487 2484/2564 +f 2220/2286 3143/3406 3175/3487 +f 3175/3487 2976/3404 2975/3188 +f 2484/2564 2975/3188 2982/3198 +f 2954/3301 3166/3479 2955/3158 +f 2630/2737 110/152 2982/3198 +f 1547/2838 1952/1971 1955/3488 +f 2091/3489 2188/3118 2187/2244 +f 3733/3490 2178/3440 2177/2216 +f 1918/1760 1927/1773 1926/1767 +f 3563/3491 111/3492 3511/3493 +f 955/1295 960/3494 954/490 +f 2037/3495 112/153 3563/3491 +f 3143/3406 2981/3197 2976/3404 +f 2218/2285 2214/2282 2215/2283 +f 672/3186 3787/1204 3541/1663 +f 2152/3496 3014/3230 2037/3495 +f 1147/586 1143/1862 1145/562 +f 2248/2328 1409/1480 2245/2323 +f 1615/1721 1635/1703 1616/1684 +f 1410/1481 2246/2325 2247/2324 +f 3241/3497 3242/3498 3240/2319 +f 3177/3499 1383/1465 1382/2307 +f 2238/2306 3176/3500 1382/2307 +f 3176/3500 2230/2301 3178/3501 +f 1410/1481 3179/3502 1407/1479 +f 3179/3502 2243/2313 1407/1479 +f 1633/1700 2800/2978 2249/2327 +f 1621/2326 2758/3104 2912/3109 +f 1622/1689 2245/2323 1634/1701 +f 2236/2304 3181/3503 3182/3504 +f 2237/2305 3182/3504 3183/3505 +f 2250/2329 2233/2302 2229/2299 +f 2912/3109 1628/1699 1621/2326 +f 135/1847 1564/1353 1563/1342 +f 1567/1437 512/309 1565/1354 +f 1085/1118 2653/2775 2685/2843 +f 3184/3506 868/925 3056/3277 +f 869/926 3057/3507 934/974 +f 1266/1303 1098/1132 1312/1369 +f 1267/1301 722/2722 721/816 +f 937/976 2646/2764 936/975 +f 2146/2298 722/2722 2147/2188 +f 2211/2280 921/960 2667/2803 +f 1957/2870 507/1359 449/273 +f 1313/1370 2264/2352 3040/3261 +f 1496/995 1493/1075 1492/1004 +f 2681/2831 2705/2878 2682/3251 +f 2887/3074 2933/3146 2932/3132 +f 1687/3508 1659/1576 1694/1503 +f 145/1011 1498/1223 81/59 +f 1317/1373 1319/1375 2694/2861 +f 37/19 418/1028 71/1955 +f 1935/1992 3185/3509 2977/3189 +f 104/2810 301/438 103/75 +f 2101/2018 2083/1998 2084/1997 +f 543/1800 360/1040 207/131 +f 1934/1991 3186/3510 3185/3509 +f 234/1055 212/173 237/279 +f 3845/2090 1822/1666 1824/1670 +f 1976/3511 1874/1715 1974/1834 +f 223/308 2219/2287 220/306 +f 3655/3512 3605/3513 3612/3514 +f 468/287 773/421 2165/3515 +f 1935/1992 1728/3193 1932/1990 +f 3240/2319 3226/2290 3235/2320 +f 3261/3516 3250/3517 3260/3518 +f 3215/2241 3244/3519 3264/3520 +f 3265/3521 3215/2241 3264/3520 +f 3267/3522 3198/2236 3196/3419 +f 3205/3463 3269/3523 3255/3524 +f 3214/3525 3265/3521 3270/3526 +f 3271/3527 3214/3525 3192/3528 +f 3251/3529 3239/3530 3236/2315 +f 3222/3531 3266/3532 3272/3533 +f 3232/2318 3234/2322 3233/2321 +f 3216/2243 3243/3534 3244/3519 +f 3196/3419 3268/3535 3267/3522 +f 3244/3519 3254/3536 3255/3524 +f 3238/2316 3247/2950 3246/2949 +f 3264/3520 3255/3524 3269/3523 +f 3253/3537 3216/2243 3217/2242 +f 3211/2238 3221/2265 3265/3521 +f 3257/3538 3218/2266 3256/3539 +f 3258/3540 3272/3533 3259/3541 +f 3274/3542 3280/3543 3273/3544 +f 3228/3545 3262/3546 3263/3547 +f 3275/3548 3281/3549 3280/3543 +f 3226/2290 3273/3544 3280/3543 +f 3236/2315 3260/3518 3251/3529 +f 3281/3549 3236/2315 3237/2317 +f 3287/1578 3192/3528 3189/3550 +f 3235/2320 3280/3543 3234/2322 +f 3234/2322 3281/3549 3237/2317 +f 3288/3551 3259/3541 3272/3533 +f 3260/3518 3276/3552 3251/3529 +f 3289/3553 3278/3554 3284/3555 +f 3210/3556 3224/2940 3283/3557 +f 3199/2237 3201/3558 3200/2235 +f 3228/3545 3230/3559 3229/3560 +f 3290/3561 3285/3562 3286/3563 +f 3282/1580 3271/3527 3287/1578 +f 3260/3518 3262/3546 3261/3516 +f 3243/3534 3268/3535 3254/3536 +f 3267/3522 3241/3497 3232/2318 +f 3194/2234 3208/3564 3193/2232 +f 3191/3565 3269/3523 3206/3566 +f 3270/3526 3192/3528 3214/3525 +f 3275/3548 3230/3559 3231/3567 +f 3264/3520 3270/3526 3265/3521 +f 3252/3568 3276/3552 3291/3569 +f 3248/3570 3291/3569 3223/2939 +f 3213/2239 3279/3571 3277/3572 +f 3272/3533 3289/3553 3288/3551 +f 3277/3572 3212/2240 3213/2239 +f 3228/3545 3281/3549 3231/3567 +f 3220/3573 3253/3537 3219/3574 +f 3219/3574 3217/2242 3257/3538 +f 3256/3539 3222/3531 3258/3540 +f 3247/2950 3252/3568 3248/3570 +f 3245/2332 3232/2318 3233/2321 +f 3266/3532 3212/2240 3289/3553 +f 3208/3564 3255/3524 3254/3536 +f 3288/3551 3284/3555 3285/3562 +f 3204/3464 3208/3564 3207/3575 +f 560/2229 3187/3576 559/1455 +f 3209/2938 3201/3558 3202/2948 +f 3189/3550 3191/3565 3190/3577 +f 448/1848 807/450 447/325 +f 647/367 122/980 270/162 +f 1833/1679 1780/1747 1832/1711 +f 510/985 508/1360 507/1359 +f 3210/3556 1887/3468 3201/3558 +f 1887/3468 3200/2235 3201/3558 +f 15/8 3197/3420 3200/2235 +f 16/2228 3195/2233 3197/3420 +f 3195/2233 3187/3576 3194/2234 +f 3194/2234 1899/3128 3207/3575 +f 3207/3575 375/3578 3204/3464 +f 387/227 126/85 127/99 +f 3189/3550 1760/2207 3287/1578 +f 3577/3579 757/406 758/1497 +f 763/2211 2172/2106 2175/3580 +f 3583/3581 3580/3582 3581/3583 +f 3581/3583 3579/3584 3578/1774 +f 3594/3585 3596/3586 3595/3587 +f 3400/3588 3602/3589 3401/3590 +f 3626/3591 3625/3592 3627/3593 +f 3631/3594 3599/3595 3601/3596 +f 3636/3597 3595/3587 3596/3586 +f 3647/3598 3588/3599 3645/3600 +f 3650/3601 3584/3602 3647/3598 +f 3653/3603 3580/3582 3651/3604 +f 3653/3603 3654/1775 3579/3584 +f 1801/1633 3656/3605 3655/3512 +f 3651/3604 3582/3606 3650/3601 +f 3644/3607 3595/3587 3637/3608 +f 1767/806 3659/3609 3660/807 +f 1597/1397 3661/2103 1600/1395 +f 1708/1524 3665/3143 3664/2256 +f 3671/2258 3667/3610 3666/3611 +f 3666/3611 3673/3612 3672/3613 +f 1588/1526 3664/2256 1587/1388 +f 2080/2338 3666/3611 2082/2006 +f 2082/2006 3672/3613 2084/1997 +f 3674/3614 3635/3615 3631/3594 +f 3677/3616 3636/3597 3635/3615 +f 3682/3617 3645/3600 3681/3618 +f 3692/3619 3650/3601 3686/3620 +f 3681/3618 3644/3607 3680/3621 +f 786/1499 3692/3619 785/1500 +f 3694/3622 3651/3604 3692/3619 +f 785/1500 3686/3620 497/3623 +f 497/3623 3682/3617 650/372 +f 650/372 3681/3618 564/370 +f 3696/3624 3681/3618 3680/3621 +f 3405/3625 3605/3513 3402/3626 +f 3702/3627 3678/3628 3677/3616 +f 3699/3629 3679/3630 3678/3628 +f 3645/3600 3638/3631 3644/3607 +f 1799/1635 3659/3609 1768/1596 +f 3708/3632 3458/3633 3460/3634 +f 3462/3635 3708/3632 3460/3634 +f 3714/577 564/370 3696/3624 +f 3615/3636 3602/3589 3600/3637 +f 3710/3638 3696/3624 3698/3639 +f 3635/3615 3596/3586 3599/3595 +f 3629/3640 3627/3593 3630/3641 +f 3597/3642 3599/3595 3596/3586 +f 3630/3641 3715/3643 3629/3640 +f 3627/3593 3597/3642 3594/3585 +f 3717/3644 3723/3645 3718/3646 +f 3715/3643 3660/807 3629/3640 +f 3716/3647 3725/2102 3715/3643 +f 3668/2257 3661/2103 3725/2102 +f 3668/2257 3717/3644 3667/3610 +f 3667/3610 3718/3646 3673/3612 +f 3727/3648 3673/3612 3718/3646 +f 3728/3649 3672/3613 3673/3612 +f 3726/3650 3718/3646 3723/3645 +f 1576/2019 2084/1997 3672/3613 +f 3727/3648 3731/3651 3729/3652 +f 3203/3462 1387/719 3190/3577 +f 3190/3577 1791/2206 3189/3550 +f 3283/3557 1949/2204 3210/3556 +f 317/183 259/151 391/230 +f 2000/1868 3653/3603 3694/3622 +f 3601/3596 3600/3637 3602/3589 +f 3589/3653 3584/3602 3585/3654 +f 3577/3579 756/426 2170/2107 +f 3585/3654 3582/3606 3583/3581 +f 3678/3628 3637/3608 3636/3597 +f 3204/3464 376/718 3203/3462 +f 1801/1633 3657/3655 1799/1635 +f 3729/3652 3728/3649 3727/3648 +f 1575/1378 3738/3656 1088/1379 +f 3735/3657 1576/2019 3728/3649 +f 1776/1630 1796/1637 1775/1608 +f 1293/661 1290/649 1284/1792 +f 1326/2200 1327/1729 12/2025 +f 1294/657 1234/619 1290/649 +f 878/626 1330/648 1337/652 +f 497/3623 374/2231 498/2230 +f 122/980 413/240 121/2834 +f 3699/3629 3704/3658 3708/3632 +f 3606/3659 3401/3590 3602/3589 +f 3708/3632 3698/3639 3699/3629 +f 3464/575 3710/3638 3462/3635 +f 3704/3658 3443/3660 3458/3633 +f 439/271 399/1352 438/269 +f 1512/1053 1526/1098 1511/1054 +f 1668/1475 1738/1567 1671/1474 +f 839/3661 1362/2226 838/685 +f 1362/2226 826/678 1012/521 +f 3843/1428 1896/1589 3815/1967 +f 2053/2009 2118/885 2117/887 +f 3888/2118 2120/2085 2119/2059 +f 696/1234 3816/3662 3831/877 +f 1826/2773 639/1453 640/1452 +f 3740/3663 3729/3652 3731/3651 +f 956/3185 886/485 960/3494 +f 1980/1838 1922/3460 807/450 +f 33/18 105/111 164/110 +f 1343/659 3856/666 3857/662 +f 3907/2069 2128/2073 3902/2084 +f 1766/1597 1582/1382 1594/1385 +f 14/9 2163/2197 738/1807 +f 595/354 99/1067 594/355 +f 3233/2321 3246/2949 3245/2332 +f 1346/664 1044/535 1352/878 +f 748/1906 1425/800 747/799 +f 3193/2232 3254/3536 3268/3535 +f 3190/3577 3206/3566 3203/3462 +f 3612/3514 3606/3659 3615/3636 +f 3624/3664 3615/3636 3625/3592 +f 3631/3594 3443/3660 3674/3614 +f 3679/3630 3644/3607 3637/3608 +f 3686/3620 3647/3598 3682/3617 +f 3702/3627 3674/3614 3704/3658 +f 3625/3592 3600/3637 3597/3642 +f 3601/3596 3415/3665 3631/3594 +f 3739/3666 3735/3657 3729/3652 +f 3630/3641 3594/3585 3741/3667 +f 3741/3667 3716/3647 3630/3641 +f 1284/1792 1288/651 1285/1968 +f 3698/3639 3680/3621 3679/3630 +f 1778/1616 1780/1747 1779/1675 +f 1792/2099 1584/1631 1789/1621 +f 695/2132 571/346 694/612 +f 3638/3631 3594/3585 3595/3587 +f 3741/3667 3588/3599 3589/3653 +f 3247/2950 3209/2938 3202/2948 +f 3292/3668 3294/3669 3295/3670 +f 3296/3671 3298/3672 3299/3673 +f 3299/3673 3300/3674 3301/3675 +f 3302/3676 3304/3677 3305/3678 +f 3306/3679 3308/3680 3309/3681 +f 3307/3682 3311/3683 3308/3680 +f 3303/3684 3301/3675 3300/3674 +f 3312/3685 3304/3677 3313/3686 +f 3314/3687 3316/3688 3317/3689 +f 3318/3690 3320/3691 3321/3692 +f 3324/3693 3321/3692 3325/3694 +f 3326/3695 3328/3696 3323/3697 +f 3329/3698 3331/3699 3332/3700 +f 3333/3701 3335/3702 3336/3703 +f 3337/3704 3339/3705 3340/3706 +f 3333/3701 3341/3707 3342/3708 +f 3342/3708 3343/3709 3344/3710 +f 3319/3711 3344/3710 3343/3709 +f 3338/3712 3334/3713 3339/3705 +f 3346/3714 3302/3676 3347/3715 +f 3305/3678 3347/3715 3302/3676 +f 3312/3685 3223/3716 3349/3717 +f 3350/3718 3340/3706 3351/3719 +f 3312/3685 3348/3720 3305/3678 +f 3352/3721 3341/3707 3326/3695 +f 3311/3683 3354/3722 3308/3680 +f 3341/3707 3327/3723 3326/3695 +f 3359/3724 3361/3725 3362/3726 +f 3360/3727 3250/3728 3249/3729 +f 3318/3690 3345/3730 3319/3711 +f 3364/3731 3318/3690 3324/3693 +f 3314/3687 3324/3693 3365/3732 +f 3366/3733 3301/3675 3346/3714 +f 3299/3673 3367/3734 3296/3671 +f 3308/3680 3368/3735 3309/3681 +f 3369/3736 3295/3670 3294/3669 +f 3317/3689 3364/3731 3314/3687 +f 3370/3737 3317/3689 3316/3688 +f 3325/3694 3365/3732 3324/3693 +f 3352/3721 3319/3711 3343/3709 +f 3296/3671 3353/3738 3311/3683 +f 3297/3739 3311/3683 3310/3740 +f 3363/3741 3354/3722 3345/3730 +f 3345/3730 3353/3738 3344/3710 +f 3344/3710 3367/3734 3342/3708 +f 3366/3733 3342/3708 3367/3734 +f 3347/3715 3334/3713 3346/3714 +f 3339/3705 3348/3720 3340/3706 +f 3348/3720 3351/3719 3340/3706 +f 3363/3741 3369/3736 3368/3735 +f 3294/3669 3368/3735 3369/3736 +f 3293/3742 3309/3681 3294/3669 +f 3331/3699 3374/3743 3332/3700 +f 3346/3714 3333/3701 3366/3733 +f 3323/3697 3352/3721 3326/3695 +f 3356/3744 3321/3692 3320/3691 +f 3355/3745 3325/3694 3321/3692 +f 3357/3746 3371/3747 3325/3694 +f 3322/3748 3320/3691 3352/3721 +f 3361/3725 3329/3698 3362/3726 +f 3373/3749 3375/3750 3374/3743 +f 3374/3743 3376/3751 3332/3700 +f 3329/3698 3376/3751 3362/3726 +f 3327/3723 3372/3752 3328/3696 +f 3336/3703 3375/3750 3327/3723 +f 3335/3702 3376/3751 3375/3750 +f 3376/3751 3337/3704 3362/3726 +f 3337/3704 3359/3724 3362/3726 +f 3359/3724 3276/3753 3250/3728 +f 3377/3754 3295/3670 3370/3737 +f 3277/3572 3315/3755 3278/3554 +f 3371/3747 3379/3756 3365/3732 +f 3378/3757 3358/3758 3380/3759 +f 3365/3732 3315/3755 3314/3687 +f 3316/3688 3279/3571 3370/3737 +f 3282/1580 3370/3737 3279/3571 +f 3313/3686 3224/3760 3312/3685 +f 3378/3757 3284/3555 3379/3756 +f 3380/3759 3285/3562 3378/3757 +f 3379/3756 3278/3554 3315/3755 +f 3276/3753 3351/3719 3291/3761 +f 3291/3761 3349/3717 3223/3716 +f 3313/3686 2965/3170 3013/3229 +f 2965/3170 3303/3684 222/307 +f 222/307 3300/3674 223/308 +f 223/308 3298/3672 3186/3510 +f 3298/3672 3185/3509 3186/3510 +f 3297/3739 2977/3189 3185/3509 +f 3310/3740 1213/1242 2977/3189 +f 3307/3682 1214/1243 1213/1242 +f 2532/3080 3306/3679 3293/3742 +f 2894/3081 3293/3742 3292/3668 +f 2871/3762 3292/3668 3377/3754 +f 3253/3537 3240/2319 3242/3498 +f 3283/3763 3013/3229 2152/3496 +f 1997/1865 1889/1739 1892/2003 +f 1237/1257 744/838 855/914 +f 1535/1782 120/1816 121/2834 +f 1531/1119 201/137 214/136 +f 1119/1151 1032/1066 984/1022 +f 946/478 824/489 947/488 +f 163/213 5/6 162/2842 +f 3589/3653 3723/3645 3741/3667 +f 1155/573 1162/581 1164/582 +f 427/280 327/1304 424/457 +f 553/1454 796/1498 498/2230 +f 3381/3764 2231/2303 2237/2305 +f 3381/3764 2230/2301 2232/2300 +f 2237/2305 3180/3765 3381/3764 +f 3383/3766 3385/3767 3382/3768 +f 3384/3769 3387/3770 3385/3767 +f 3386/3771 3389/3772 3387/3770 +f 3388/3773 3391/3774 3389/3772 +f 3392/3775 3394/3776 3395/3777 +f 3395/3777 3396/3778 3397/3779 +f 3398/3780 3397/3779 3396/3778 +f 3400/3588 3399/3781 3398/3780 +f 3403/3782 3405/3625 3402/3626 +f 3406/3783 3404/3784 3403/3782 +f 3408/3785 3407/3786 3406/3783 +f 3410/3787 3409/3788 3408/3785 +f 3412/3789 3411/3790 3410/3787 +f 3415/3665 3398/3780 3414/3791 +f 3414/3791 3396/3778 3416/3792 +f 3416/3792 3394/3776 3417/3793 +f 3417/3793 3393/3794 3418/3795 +f 3393/3794 3420/3796 3418/3795 +f 3419/3797 3421/3798 3420/3796 +f 3390/3799 3422/3800 3421/3798 +f 3388/3773 3423/3801 3422/3800 +f 3386/3771 3424/3802 3423/3801 +f 3384/3769 3425/3803 3424/3802 +f 3425/3803 3426/3804 3184/3506 +f 2904/3094 3428/3805 2947/3152 +f 3429/3806 2904/3094 2902/3807 +f 3430/3808 2902/3807 2876/3064 +f 2875/3066 3430/3808 2876/3064 +f 3432/3809 2733/2909 2736/2908 +f 2825/3009 3435/3810 2824/3006 +f 3437/3811 3439/3812 3436/3813 +f 3441/3814 3436/3813 3440/3815 +f 2724/2898 3434/3816 2825/3009 +f 3436/3813 3115/3364 3117/3367 +f 3440/3815 3117/3367 3119/3369 +f 3443/3660 3414/3791 3442/3817 +f 3442/3817 3416/3792 3444/3818 +f 3444/3818 3417/3793 3445/3819 +f 3445/3819 3418/3795 3446/3820 +f 3446/3820 3420/3796 3447/3821 +f 3420/3796 3448/3822 3447/3821 +f 3421/3798 3449/3823 3448/3822 +f 3422/3800 3450/3824 3449/3823 +f 3423/3801 3451/3825 3450/3824 +f 3424/3802 3452/3826 3451/3825 +f 3425/3803 3056/3277 3452/3826 +f 3451/3825 2253/2334 2252/2336 +f 3450/3824 2252/2336 1727/1790 +f 3449/3823 1727/1790 2150/2273 +f 3448/3822 2150/2273 1941/2194 +f 3453/3827 3448/3822 1941/2194 +f 3454/3828 3447/3821 3453/3827 +f 3455/3829 3446/3820 3454/3828 +f 3456/3830 3445/3819 3455/3829 +f 3442/3817 3456/3830 3457/3831 +f 3443/3660 3457/3831 3458/3633 +f 3459/3832 3458/3633 3457/3831 +f 3457/3831 3455/3829 3459/3832 +f 3459/3832 3454/3828 3461/3833 +f 3462/3635 3459/3832 3461/3833 +f 3461/3833 3453/3827 3463/3834 +f 3464/575 3461/3833 3463/3834 +f 3463/3834 1941/2194 1360/2001 +f 3404/3784 3401/3590 3405/3625 +f 3407/3786 3399/3781 3404/3784 +f 3409/3788 3397/3779 3407/3786 +f 3411/3790 3395/3777 3409/3788 +f 3465/3835 3413/3836 3412/3789 +f 3467/3837 3469/3838 3466/3839 +f 3465/3835 3431/3840 3433/3841 +f 3470/3842 3466/3839 3465/3835 +f 3438/3843 3432/3809 3435/3810 +f 3467/3837 3438/3843 3437/3811 +f 3468/3844 3437/3811 3441/3814 +f 3471/3845 3468/3844 3472/3846 +f 3472/3846 3441/3814 3473/3847 +f 3473/3847 3440/3815 2712/3848 +f 2712/3848 3119/3369 3128/3379 +f 3475/3849 3472/3846 3474/3850 +f 3474/3850 3473/3847 3476/3851 +f 3476/3851 2712/3848 2711/2888 +f 3477/3852 2711/2888 2400/2478 +f 3478/3853 3476/3851 3477/3852 +f 3479/3854 3474/3850 3478/3853 +f 3392/3775 3413/3836 3480/3855 +f 3466/3839 3480/3855 3413/3836 +f 3419/3797 3392/3775 3480/3855 +f 3390/3799 3480/3855 3391/3774 +f 3469/3838 3391/3774 3480/3855 +f 3389/3772 3471/3845 3475/3849 +f 3387/3770 3475/3849 3479/3854 +f 3385/3767 3479/3854 3481/3856 +f 3482/3857 2400/2478 2402/2477 +f 3483/3858 3477/3852 3482/3857 +f 3481/3856 3478/3853 3483/3858 +f 3484/3859 2402/2477 2707/2884 +f 3058/3279 2707/2884 2708/2887 +f 3061/3281 3484/3859 3058/3279 +f 3485/3860 3482/3857 3484/3859 +f 3382/3768 3481/3856 3486/3861 +f 3486/3861 3483/3858 3485/3860 +f 3426/3804 3382/3768 3487/3862 +f 3487/3862 3486/3861 1962/2034 +f 3486/3861 3061/3281 1962/2034 +f 1961/2036 3487/3862 1962/2034 +f 3057/3507 3426/3804 3487/3862 +f 3428/3805 3402/3626 3488/3863 +f 3427/3864 3403/3782 3428/3805 +f 3429/3806 3406/3783 3427/3864 +f 3430/3808 3408/3785 3429/3806 +f 3431/3840 3410/3787 3430/3808 +f 3470/3842 3433/3841 3432/3809 +f 3434/3816 3438/3843 3435/3810 +f 2723/2897 3439/3812 3434/3816 +f 2875/3066 3433/3841 3431/3840 +f 2736/2908 3435/3810 3432/3809 +f 2947/3152 3488/3863 3500/949 +f 3464/575 1360/2001 3497/1438 +f 1900/1742 1924/1781 1901/1741 +f 1736/1561 1718/1841 1750/1591 +f 1955/3488 1943/3865 1956/1911 +f 1671/1474 1735/1560 1751/1592 +f 1696/1506 1698/1516 1692/1505 +f 1800/1634 1864/950 1801/1633 +f 2063/1957 2056/1947 2060/2882 +f 1737/1568 1717/1559 1736/1561 +f 1751/1592 1697/1562 1695/1504 +f 943/2088 3899/1394 684/369 +f 3656/3605 3402/3626 3605/3513 +f 1577/1531 1764/1605 1703/1510 +f 3917/1606 1599/1525 3923/1511 +f 1945/3866 82/61 1944/1912 +f 68/49 7/2726 248/385 +f 147/97 1543/1189 148/96 +f 1109/544 1133/558 1102/542 +f 1503/2788 1907/1832 1908/1813 +f 1499/1010 1909/1814 1498/1223 +f 452/274 735/399 215/2820 +f 1824/1670 3835/3867 3845/2090 +f 1825/1671 2068/2718 1824/1670 +f 1463/3868 1022/532 1194/594 +f 841/686 1009/522 1011/523 +f 1568/1783 1955/3488 1534/1784 +f 1926/1767 1927/1773 1923/628 +f 1910/1831 1502/2763 1939/3869 +f 1939/3869 422/256 442/487 +f 309/1031 1940/1787 308/185 +f 1804/1638 1866/3870 1803/1708 +f 269/163 1954/1799 56/161 +f 2065/1969 2060/2882 2056/1947 +f 3812/3465 1758/3871 3835/3867 +f 280/167 552/1276 1940/1787 +f 1875/2146 1869/1714 1874/1715 +f 1739/1582 1734/1558 1737/1568 +f 1778/1616 1790/1678 1788/1622 +f 310/184 1915/1757 279/1030 +f 1909/1814 1906/1749 1954/1799 +f 1789/1621 1778/1616 1788/1622 +f 978/509 980/1401 979/733 +f 1584/1631 1731/1549 1583/1381 +f 425/1057 311/1436 312/178 +f 148/96 115/80 116/109 +f 2044/1720 3894/2017 2046/2133 +f 277/242 1939/3869 551/1277 +f 1943/3865 1945/3866 1944/1912 +f 1461/936 1463/3868 1464/947 +f 2253/2334 3056/3277 3055/3278 +f 2981/3197 3489/3872 958/999 +f 2209/2275 3489/3872 3055/3278 +f 2254/3196 3055/3278 3489/3872 +f 2998/3216 958/999 3489/3872 +f 2826/3010 2721/2896 2724/2898 +f 3490/3873 2721/2896 2817/3874 +f 2816/2997 3490/3873 2817/3874 +f 2334/3875 2296/2383 2335/2418 +f 2298/2388 2334/3875 2336/2419 +f 2301/2396 2336/2419 2338/2421 +f 2311/2398 2338/2421 2354/2437 +f 2312/2397 2354/2437 2355/2438 +f 2359/2443 2361/2448 2360/2444 +f 2335/2418 2359/2443 2360/2444 +f 2414/3876 2365/2447 2364/2446 +f 2413/2486 2361/2448 2365/2447 +f 2355/2438 2540/2631 2541/2632 +f 2541/2632 2539/2630 2542/2633 +f 2722/3365 2739/3877 2738/2910 +f 3114/3366 2738/2910 3113/3363 +f 3110/3359 3121/3372 3120/3371 +f 3108/3357 3120/3371 3113/3363 +f 3122/3373 3127/3377 3126/3376 +f 3112/3362 3126/3376 3121/3372 +f 3127/3377 1753/1803 3135/3389 +f 3139/3878 2529/2619 2542/2633 +f 3744/3396 3133/3386 3139/3878 +f 3490/3873 2740/2911 2739/3877 +f 3491/3879 2789/2968 3490/3873 +f 228/144 91/2877 88/65 +f 245/1786 243/340 242/440 +f 248/385 247/339 191/338 +f 2/2 296/1187 295/1840 +f 145/1011 300/2000 267/159 +f 327/1304 210/134 328/394 +f 329/332 331/1091 330/1095 +f 250/142 228/144 236/341 +f 239/1191 240/190 230/314 +f 373/2850 375/3578 374/2231 +f 178/2199 176/177 175/176 +f 1218/606 1228/623 1321/642 +f 3862/640 1295/667 3854/1793 +f 808/445 824/489 823/447 +f 3858/923 1013/550 1014/549 +f 3813/782 1411/761 1413/779 +f 2154/2149 2159/2156 2160/2162 +f 3845/2090 1758/3871 1757/991 +f 306/449 1922/3460 452/274 +f 2157/2150 1976/3511 1977/1836 +f 708/2182 2031/1913 1474/1914 +f 1450/2169 1227/617 1428/2168 +f 1672/1478 1605/1954 1624/1476 +f 1813/3880 1821/1667 1816/1651 +f 1717/1559 1715/1533 1718/1841 +f 176/177 402/1493 347/1266 +f 1710/1842 3916/1512 3915/1788 +f 1712/1553 1577/1531 1711/1528 +f 1705/1744 1711/1528 1704/1530 +f 971/501 979/733 970/503 +f 822/448 1094/552 1102/542 +f 2909/3881 2793/2973 2792/2970 +f 2810/3882 2795/2981 2793/2973 +f 2799/2979 2249/2327 2800/2978 +f 3662/3883 2910/3102 2799/2979 +f 2769/2988 2801/2982 2795/2981 +f 3177/3499 3178/3501 3179/3502 +f 3178/3501 3180/3765 3179/3502 +f 3181/3503 1393/1472 2800/2978 +f 3181/3503 1632/1702 3182/3504 +f 3182/3504 2244/2314 3183/3505 +f 3183/3505 2243/2313 3180/3765 +f 3492/3884 2790/2969 3491/3879 +f 2808/3885 3491/3879 2816/2997 +f 2239/3886 3572/3887 2240/3888 +f 1149/2264 3571/3889 3570/3890 +f 1150/1907 3567/3891 3571/3889 +f 2202/2277 3566/1336 2015/2263 +f 2921/3892 3565/1770 2923/3893 +f 3568/3894 2133/2178 2928/3296 +f 1777/1607 1759/3895 1792/2099 +f 1201/598 1183/588 1184/590 +f 3561/1769 2195/2251 2194/3896 +f 3553/1460 2770/3897 2768/2951 +f 3927/1519 1687/3508 1692/1505 +f 1516/1966 154/104 503/356 +f 3549/1590 2974/3312 2803/3412 +f 3550/3898 2779/2967 2778/2957 +f 2771/3326 3575/3899 3546/3900 +f 3070/3298 3546/3900 3558/3901 +f 3547/1640 2775/2990 2867/3057 +f 1376/714 1370/705 1372/698 +f 2767/3486 3556/3129 2206/2269 +f 2195/2251 3543/819 2767/3486 +f 2775/2990 3542/826 2776/2991 +f 3377/3754 3545/1579 2871/3762 +f 3804/2983 3539/3902 2806/3903 +f 2776/2991 3538/1577 2805/2992 +f 2240/3888 3535/3904 2920/3905 +f 2920/3905 3669/3906 3619/3907 +f 3548/2881 2786/2964 2779/2967 +f 1805/1673 1851/959 1804/1638 +f 3534/1048 2787/3056 2786/2964 +f 2951/3438 3540/3908 3531/3909 +f 2772/3325 3531/3909 3575/3899 +f 2973/3182 3530/3910 3536/3911 +f 2224/3382 3537/3912 3530/3910 +f 1957/2870 320/983 510/985 +f 306/449 304/1199 303/1201 +f 2770/3897 3528/1171 2913/3105 +f 2913/3105 3574/1170 2239/3886 +f 2923/3893 3527/2826 2922/3293 +f 308/185 431/262 47/191 +f 207/131 132/90 543/1800 +f 1879/1916 1881/1936 1880/2096 +f 3733/3490 3525/1203 2089/2145 +f 2475/2556 3558/3901 3524/3913 +f 2476/3290 3524/3913 3523/3914 +f 2223/2292 3523/3914 3537/3912 +f 3522/1159 2803/3412 2802/3408 +f 2037/3915 11/2191 1950/2024 +f 1959/1999 450/272 505/634 +f 2003/2065 3520/2127 2129/2176 +f 9/2190 334/328 540/327 +f 2009/2072 3518/3916 3567/3891 +f 2008/2071 3536/3911 3518/3916 +f 3877/1202 673/2296 3879/2063 +f 3515/1789 2778/2957 2784/2962 +f 2935/3917 3513/1695 2936/3136 +f 111/3492 3570/3890 3511/3493 +f 3510/3918 2935/3917 2938/3138 +f 683/2797 3885/1392 943/2088 +f 3508/1624 2810/3882 2909/3881 +f 736/2821 732/2883 729/1874 +f 1795/1629 1803/1708 1796/1637 +f 3505/987 2938/3138 2939/3140 +f 3507/958 2939/3140 2940/3142 +f 2950/3155 3504/3919 2949/3154 +f 2940/3142 3504/3919 3507/958 +f 3801/3156 3512/1173 2950/3155 +f 2868/3920 3502/992 2869/3349 +f 2869/3349 3522/1159 2802/3408 +f 1024/614 1023/593 1020/531 +f 3500/949 2948/3153 2947/3152 +f 551/1277 442/487 443/1275 +f 2972/3181 3568/3894 2928/3296 +f 2032/2097 3499/3921 2972/3181 +f 216/138 1924/1781 1923/628 +f 203/236 201/137 200/1213 +f 1828/1677 1847/1694 1837/2119 +f 1958/2101 449/273 450/272 +f 272/350 178/2199 175/176 +f 2871/3762 3495/1439 1361/1440 +f 3619/3907 3564/2811 2921/3892 +f 2801/2982 3643/3101 3662/3883 +f 2005/2213 3654/1775 2176/2212 +f 960/3494 899/2835 962/491 +f 3657/3655 3612/3514 3624/3664 +f 3780/3922 3646/3424 3151/3426 +f 3151/3426 3593/2650 2555/2648 +f 2193/2250 3623/2937 2194/3896 +f 3607/3409 3145/3411 3144/3923 +f 3603/3410 2761/2933 3145/3411 +f 3592/3350 3144/3923 3104/3352 +f 2926/3126 3634/3351 3103/3353 +f 3634/3351 3104/3352 3103/3353 +f 3755/3310 3746/3924 3753/2041 +f 566/1320 3758/1776 2005/2213 +f 3488/3863 1864/950 3500/949 +f 1602/1399 2079/2005 2078/1984 +f 2868/3920 3611/3125 2922/3293 +f 2922/3293 3610/3124 2923/3893 +f 2923/3893 3618/3116 2921/3892 +f 3670/3117 2918/3114 3614/3115 +f 3619/3907 3614/3115 2920/3905 +f 2921/3892 3670/3117 3619/3907 +f 2920/3905 3586/2308 2240/3888 +f 3613/3113 2915/3108 2918/3114 +f 2917/3121 3622/2947 3641/3111 +f 2916/3123 3641/3111 3642/3110 +f 2239/3886 3652/3106 2913/3105 +f 2911/3925 3652/3106 2757/2930 +f 3643/3101 2911/3925 2910/3102 +f 2797/2980 3662/3883 3591/2977 +f 2797/2980 3598/2927 2750/2975 +f 3622/2947 2763/2941 2765/2944 +f 3608/2929 2764/3347 2745/2918 +f 2194/3896 3648/2935 2221/2291 +f 2221/2291 3649/2936 2222/3311 +f 2756/2942 3609/2928 2755/2926 +f 2750/2975 3609/2928 2747/2920 +f 3669/3906 1817/2135 3827/2160 +f 3763/2780 1691/3926 1699/1518 +f 2515/2601 3590/2649 2548/2639 +f 2548/2639 3593/2650 2550/2641 +f 2513/2599 3632/2611 3616/2609 +f 2513/2599 3621/2610 2515/2601 +f 2509/2595 3620/2378 2289/2593 +f 2510/2604 3633/2592 2509/2595 +f 2289/2593 3639/2371 2283/2376 +f 2283/2376 3617/2370 2286/2373 +f 2240/3888 3587/2310 2239/3886 +f 3659/3609 3624/3664 3626/3591 +f 716/377 3887/2086 3888/2118 +f 727/375 3761/2110 1923/628 +f 2165/3515 2170/2107 2164/2214 +f 3660/807 3626/3591 3629/3640 +f 3743/2042 3578/1774 3757/2040 +f 2175/3580 769/419 770/1901 +f 2100/630 2095/2007 2099/2011 +f 3758/1776 3757/2040 3578/1774 +f 640/1452 3568/3927 1826/2773 +f 1653/1644 3553/1460 1651/1459 +f 1895/2270 3530/3928 746/1283 +f 746/1283 3537/3929 741/1282 +f 1653/1644 3528/1171 3576/3930 +f 3762/1609 1604/1398 1672/1478 +f 2093/1754 2073/1977 2078/1984 +f 959/517 995/1751 884/462 +f 962/491 919/527 986/1594 +f 1400/749 1398/747 1399/748 +f 1000/1750 1127/551 1004/1610 +f 956/3185 884/462 885/463 +f 1662/1674 3550/3898 1661/1447 +f 2034/1915 3546/3931 1654/1586 +f 3926/2955 3539/3902 3802/3932 +f 3535/3904 766/2136 1817/2135 +f 3572/3887 765/2091 766/2136 +f 334/328 3571/3933 335/326 +f 1868/1766 3540/1492 1656/1491 +f 1684/3934 1652/1508 1678/1015 +f 1682/1806 775/423 1807/1018 +f 1585/1001 3762/1609 1700/1002 +f 3763/2780 1672/1478 1673/1477 +f 2173/853 490/1457 491/424 +f 1658/825 3547/1640 1752/1593 +f 3556/3129 1650/2184 724/2057 +f 1571/813 2010/2801 1572/1541 +f 1587/1388 3671/2258 2080/2338 +f 2099/2011 2077/1982 2094/1752 +f 787/1780 1999/1869 786/1499 +f 2000/1868 786/1499 1999/1869 +f 3155/3935 3697/2678 3683/3448 +f 3713/3439 3683/3448 3789/3447 +f 2180/2218 3685/3936 3684/3434 +f 3496/1664 3684/3434 3705/3119 +f 1684/3934 3840/1019 1651/1459 +f 1760/2207 3495/1439 3545/1579 +f 2607/2705 3693/2686 2590/2684 +f 2581/2673 3689/2706 2607/2705 +f 2371/2458 3700/2585 3695/2687 +f 2371/2458 3693/2686 2372/2456 +f 2587/3314 3675/2680 2586/3313 +f 2586/3313 3697/2678 339/512 +f 2497/3172 3687/2586 2503/2692 +f 2502/2693 3687/2586 3700/2585 +f 2494/2576 3690/2578 2495/2577 +f 3690/2578 2472/2552 2495/2577 +f 3688/2555 2468/2549 2472/2552 +f 3701/2548 2469/3937 2468/2549 +f 726/397 3892/2049 630/395 +f 581/383 3518/3938 580/343 +f 10/2192 3570/3939 334/328 +f 1837/2119 3510/3918 1849/986 +f 741/1282 3523/3940 1300/638 +f 1299/636 3558/3941 2034/1915 +f 1851/959 3504/3919 1866/3870 +f 3527/2826 1820/1772 1819/2825 +f 580/343 3536/3942 1895/2270 +f 1758/3871 3522/1159 3502/992 +f 1693/1016 3508/1624 1806/861 +f 3504/3919 1867/1709 1866/3870 +f 1894/1733 3568/3927 3499/2880 +f 2126/2259 3813/782 3841/2114 +f 3906/2260 3841/2114 3912/2067 +f 2113/2039 3867/2045 2110/2038 +f 2179/2217 3789/3447 3685/3936 +f 624/360 3904/2062 623/361 +f 2192/2248 3788/3427 3780/3922 +f 2177/2216 3787/1204 3733/3490 +f 1364/2125 3833/681 1338/654 +f 3858/923 1470/3943 1453/906 +f 3135/3389 3775/3387 3744/3396 +f 2069/2055 3835/3867 2068/2718 +f 1351/879 3853/671 1352/878 +f 2108/3944 3901/1764 499/305 +f 2089/2145 3736/3442 3733/3490 +f 3828/684 1358/683 866/682 +f 2001/2064 3783/3485 2187/2244 +f 2187/2244 3719/3436 2091/3489 +f 2130/2276 3752/3482 2004/2066 +f 2004/2066 3749/3483 2001/2064 +f 2014/2074 3779/3477 2201/2262 +f 2201/2262 3756/3478 2130/2276 +f 3167/3470 3759/3177 2969/3176 +f 3168/3472 3720/3474 3167/3470 +f 3159/3454 3764/3456 3160/3457 +f 3160/3457 3765/3321 3081/3320 +f 3730/3455 3158/3945 337/3449 +f 3158/3945 3709/3453 3159/3454 +f 2200/2254 3730/3455 3722/3445 +f 3685/3936 3742/3417 2204/3435 +f 3722/3445 2197/2255 2200/2254 +f 3790/3443 2092/2144 3721/3437 +f 3774/3444 3721/3437 2197/2255 +f 3154/3446 3790/3443 3774/3444 +f 3155/3935 3706/3441 3154/3446 +f 2091/3489 3721/3437 2092/2144 +f 2196/2252 3750/3416 3776/3431 +f 2193/2250 3776/3431 3781/3430 +f 3604/3421 3781/3430 3788/3427 +f 2086/3946 3780/3922 3778/3425 +f 2087/2141 3778/3425 3777/3422 +f 2204/3435 3751/3415 2205/2268 +f 2205/2268 3750/3416 3148/3432 +f 3909/2181 574/391 692/379 +f 2124/2173 3777/3422 3760/3403 +f 2208/2272 3760/3403 3782/3383 +f 3711/3390 3140/3399 3137/3392 +f 3785/3398 3138/3395 3140/3399 +f 3745/3397 3139/3878 3138/3395 +f 3771/3394 3136/3393 2322/2406 +f 3712/3391 3137/3392 3136/3393 +f 3775/3387 3131/3385 3133/3386 +f 3767/3384 3132/3400 3131/3385 +f 1813/3880 3838/1653 1814/1665 +f 1293/661 3856/666 1344/660 +f 2184/2220 3748/2405 3732/3324 +f 2181/2221 3732/3324 3734/3317 +f 3765/3321 3079/3319 3081/3320 +f 3768/3318 3080/3323 3079/3319 +f 709/1338 3875/2129 2031/1913 +f 2774/2954 3737/3165 3769/3291 +f 3786/3292 2134/2179 3559/3947 +f 3809/413 766/2136 765/2091 +f 2968/3174 3766/3164 2959/3163 +f 2969/3176 3784/3179 2968/3174 +f 2958/3168 3737/3165 2961/3166 +f 2132/3433 3766/3164 2960/3180 +f 2321/3355 3771/3394 3748/2405 +f 3860/849 1449/2113 28/2112 +f 3905/2157 582/1461 710/1383 +f 3886/2165 577/3099 574/391 +f 3847/1659 1818/1771 3827/2160 +f 705/2159 3887/2086 2121/2089 +f 3816/3662 3907/2069 698/388 +f 2111/2124 3911/2043 2113/2039 +f 3810/781 1366/2126 1411/761 +f 1812/1654 3822/1652 1815/1661 +f 675/1662 3852/2094 674/3187 +f 3496/1664 3851/2093 675/1662 +f 2110/2038 3868/2033 2109/2031 +f 2104/2026 3901/1764 2106/1763 +f 2109/2031 3899/1394 944/1393 +f 3842/1427 703/390 739/482 +f 1680/1844 3846/1017 1684/3934 +f 1639/1435 3819/1411 3818/2121 +f 623/361 3906/2260 697/1233 +f 2139/2130 3866/2015 3865/2122 +f 1808/1645 3844/2092 3837/1643 +f 3820/1669 1819/2825 1820/1772 +f 3872/2087 3900/633 706/1340 +f 1646/1434 3830/1445 1648/1442 +f 3889/2164 633/2170 577/3099 +f 2139/2130 3875/2129 18/12 +f 2156/2152 3871/2166 3874/2153 +f 674/3187 3913/2104 3869/2134 +f 2117/887 3812/3465 2069/2055 +f 1815/1661 3847/1659 3823/1657 +f 3855/910 1444/846 1470/3943 +f 697/1233 3912/2067 3816/3662 +f 866/682 3836/603 3828/684 +f 3864/2180 2136/2131 2135/632 +f 3585/3654 3726/3650 3589/3653 +f 3583/3581 3731/3651 3585/3654 +f 3753/2041 3738/3656 3739/3666 +f 3740/3663 3581/3583 3743/2042 +f 1088/1379 3746/3924 1093/811 +f 3739/3666 3743/2042 3753/2041 +f 2791/2972 3493/3948 2792/2970 +f 3492/3884 2807/2984 3493/3948 +f 2792/2970 3494/3949 2909/3881 +f 3493/3948 2806/3903 3494/3949 +f 3508/1624 3494/3949 3516/3950 +f 3516/3950 2806/3903 3539/3902 +f 2948/3153 3791/1174 3801/3156 +f 2105/2046 3896/2029 2104/2026 +f 3538/1577 3804/2983 2805/2992 +f 680/1417 3876/1939 683/2797 +f 1891/2175 3910/1730 3891/2171 +f 2905/3096 3801/3156 2950/3155 +f 2900/3089 3799/3098 2905/3096 +f 2901/3092 3807/3091 2877/3093 +f 2734/2907 3806/3067 3794/3060 +f 2877/3093 3806/3067 2878/3065 +f 2820/3002 3794/3060 2872/3059 +f 2818/3054 3792/3012 2827/3011 +f 2823/3008 3792/3012 2826/3010 +f 2822/3017 3798/3001 2821/3003 +f 2819/3005 3800/3951 3798/3001 +f 2817/3874 3795/2998 2816/2997 +f 2809/2993 3795/2998 2815/3000 +f 2808/3885 3803/2985 2807/2984 +f 2805/2992 3803/2985 2804/2987 +f 1702/1513 3923/1511 1599/1525 +f 3922/1627 1797/1636 1802/1626 +f 3915/1788 1706/1514 1709/1000 +f 3918/1520 1692/1505 1698/1516 +f 1657/1917 3880/1728 1879/1916 +f 1890/1740 3895/1617 3910/1730 +f 3772/1648 1674/1483 1675/862 +f 1689/3952 3772/1648 3773/1625 +f 3926/2955 3538/1577 1688/3953 +f 3516/3950 1689/3952 3773/1625 +f 3917/1606 1703/1510 1764/1605 +f 1598/1396 3928/1602 1770/1595 +f 3880/1728 1876/1724 1879/1916 +f 1691/3926 3925/2956 3927/1519 +f 3925/2956 1688/3953 1687/3508 +f 1117/547 1118/546 3930/3954 +f 1066/641 1322/643 3930/3954 +f 1243/618 847/624 3930/3954 +f 3825/601 848/1432 3930/3954 +f 1128/1522 1117/547 3930/3954 +f 1129/560 1130/559 3930/3954 +f 841/686 1011/523 3930/3954 +f 1230/3955 3863/639 3930/3954 +f 1242/650 1243/618 3930/3954 +f 1322/643 1229/622 3930/3954 +f 1064/592 1065/2174 3930/3954 +f 1003/1611 1128/1522 3930/3954 +f 1229/622 1230/3955 3930/3954 +f 3863/639 1285/1968 3930/3954 +f 1285/1968 1288/651 3930/3954 +f 848/1432 839/3661 3930/3954 +f 847/624 3825/601 3930/3954 +f 1118/546 1129/560 3930/3954 +f 1065/2174 1066/641 3930/3954 +f 1087/569 1086/568 3930/3954 +f 1008/520 1002/519 3930/3954 +f 1011/523 1008/520 3930/3954 +f 1002/519 1003/1611 3930/3954 +f 1076/565 1069/567 3930/3954 +f 838/685 841/686 3930/3954 +f 839/3661 838/685 3930/3954 +f 1288/651 1242/650 3930/3954 +f 1130/559 1087/569 3930/3954 +f 1086/568 1076/565 3930/3954 +f 1069/567 1064/592 3930/3954 +f 2410/2487 2414/3876 3931/3956 +f 2411/2484 2410/2487 3931/3956 +f 3617/2370 2285/2544 3931/3956 +f 2394/2476 2393/2475 3931/3956 +f 2393/2475 2396/2504 3931/3956 +f 2281/2374 2286/2373 3931/3956 +f 2282/2455 2280/2597 3931/3956 +f 2398/2501 2399/3407 3931/3956 +f 2465/2542 2464/2567 3931/3956 +f 2396/2504 2397/2495 3931/3956 +f 2470/2550 2469/3937 3931/3956 +f 2399/3407 2416/2489 3931/3956 +f 2480/2561 2395/2560 3931/3956 +f 2459/2538 2480/2561 3931/3956 +f 2369/2452 2282/2455 3931/3956 +f 2460/3957 2459/2538 3931/3956 +f 2415/3958 2411/2484 3931/3956 +f 2416/2489 2415/3958 3931/3956 +f 2364/2446 2363/2450 3931/3956 +f 2286/2373 3617/2370 3931/3956 +f 2464/2567 2470/2550 3931/3956 +f 2469/3937 3703/2547 3931/3956 +f 2285/2544 2465/2542 3931/3956 +f 2414/3876 2364/2446 3931/3956 +f 2395/2560 2394/2476 3931/3956 +f 2363/2450 2367/2453 3931/3956 +f 2397/2495 2398/2501 3931/3956 +f 2280/2597 2281/2374 3931/3956 +f 3703/2547 2460/3957 3931/3956 +f 2367/2453 2369/2452 3931/3956 +f 3934/3959 3937/3960 3938/3961 +f 3934/3959 3939/3962 3935/3963 +f 3932/3964 3937/3960 3933/3965 +f 3938/3961 3943/3966 3939/3962 +f 3937/3960 3940/3967 3941/3968 +f 3937/3960 3942/3969 3938/3961 +f 3942/3969 3947/3970 3943/3966 +f 3941/3968 3944/3971 3945/3972 +f 3942/3969 3945/3972 3946/3973 +f 3947/3970 3950/3974 3951/3975 +f 3944/3971 3949/3976 3945/3972 +f 3945/3972 3950/3974 3946/3973 +f 3950/3974 3955/3977 3951/3975 +f 3949/3976 3952/3978 3953/3979 +f 3950/3974 3953/3979 3954/3980 +f 3955/3977 3958/3981 3959/3982 +f 3953/3979 3956/3983 3957/3984 +f 3953/3979 3958/3981 3954/3980 +f 3959/3982 3962/3985 3963/3986 +f 3957/3984 3960/3987 3961/3988 +f 3958/3981 3961/3988 3962/3985 +f 3962/3985 3967/3989 3963/3986 +f 3960/3987 3965/3990 3961/3988 +f 3961/3988 3966/3991 3962/3985 +f 3966/3991 3971/3992 3967/3989 +f 3965/3990 3968/3993 3969/3994 +f 3966/3991 3969/3994 3970/3995 +f 3970/3995 3975/3996 3971/3992 +f 3968/3993 3973/3997 3969/3994 +f 3969/3994 3974/3998 3970/3995 +f 3974/3998 3979/3999 3975/3996 +f 3973/3997 3976/4000 3977/4001 +f 3974/3998 3977/4001 3978/4002 +f 3979/3999 3982/4003 3983/4004 +f 3976/4000 3981/4005 3977/4001 +f 3977/4001 3982/4003 3978/4002 +f 3982/4003 3987/4006 3983/4004 +f 3981/4005 3984/4007 3985/4008 +f 3982/4003 3985/4008 3986/4009 +f 3987/4006 3990/4010 3991/4011 +f 3984/4007 3989/4012 3985/4008 +f 3985/4008 3990/4010 3986/4009 +f 3991/4011 3994/4013 3995/4014 +f 3989/4012 3992/4015 3993/4016 +f 3990/4010 3993/4016 3994/4013 +f 3995/4014 3998/4017 3999/4018 +f 3992/4015 3997/4019 3993/4016 +f 3993/4016 3998/4017 3994/4013 +f 3998/4017 4003/4020 3999/4018 +f 3997/4019 4000/4021 4001/4022 +f 3998/4017 4001/4022 4002/4023 +f 4002/4023 4007/4024 4003/4020 +f 4000/4021 4005/4025 4001/4022 +f 4001/4022 4006/4026 4002/4023 +f 4006/4026 4011/4027 4007/4024 +f 4005/4025 4008/4028 4009/4029 +f 4006/4026 4009/4029 4010/4030 +f 4011/4027 4014/4031 4015/4032 +f 4008/4028 4013/4033 4009/4029 +f 4009/4029 4014/4031 4010/4030 +f 4014/4031 4019/4034 4015/4032 +f 4013/4033 4016/4035 4017/4036 +f 4014/4031 4017/4036 4018/4037 +f 4019/4034 4022/4038 4023/4039 +f 4016/4035 4021/4040 4017/4036 +f 4017/4036 4022/4038 4018/4037 +f 4023/4039 4026/4041 4027/4042 +f 4021/4040 4024/4043 4025/4044 +f 4022/4038 4025/4044 4026/4041 +f 4027/4042 4030/4045 4031/4046 +f 4024/4043 4029/4047 4025/4044 +f 4025/4044 4030/4045 4026/4041 +f 4031/4046 4034/4048 4035/4049 +f 4029/4047 4032/4050 4033/4051 +f 4030/4045 4033/4051 4034/4048 +f 4034/4048 4039/4052 4035/4049 +f 4032/4050 4037/4053 4033/4051 +f 4033/4051 4038/4054 4034/4048 +f 4038/4054 4043/4055 4039/4052 +f 4037/4053 4040/4056 4041/4057 +f 4038/4054 4041/4057 4042/4058 +f 4043/4055 4046/4059 4047/4060 +f 4040/4056 4045/4061 4041/4057 +f 4041/4057 4046/4059 4042/4058 +f 4046/4059 4051/4062 4047/4060 +f 4045/4061 4048/4063 4049/4064 +f 4046/4059 4049/4064 4050/4065 +f 4051/4062 4055/4066 4056/4067 +f 4048/4063 4054/4068 4049/4064 +f 4049/4064 4055/4066 4050/4065 +f 4056/4067 4059/4069 4060/4070 +f 4053/4071 4058/4072 4054/4068 +f 4055/4066 4058/4072 4059/4069 +f 3932/3964 4052/4073 3936/4074 +f 3936/4074 4052/4073 3940/3967 +f 3940/3967 4052/4073 3944/3971 +f 3944/3971 4052/4073 3948/4075 +f 3948/4075 4052/4073 3952/3978 +f 3952/3978 4052/4073 3956/3983 +f 3956/3983 4052/4073 3960/3987 +f 3960/3987 4052/4073 3964/4076 +f 3964/4076 4052/4073 3968/3993 +f 3968/3993 4052/4073 3972/4077 +f 3972/4077 4052/4073 3976/4000 +f 3976/4000 4052/4073 3980/4078 +f 3980/4078 4052/4073 3984/4007 +f 3984/4007 4052/4073 3988/4079 +f 3988/4079 4052/4073 3992/4015 +f 3992/4015 4052/4073 3996/4080 +f 3996/4080 4052/4073 4000/4021 +f 4000/4021 4052/4073 4004/4081 +f 4004/4081 4052/4073 4008/4028 +f 4008/4028 4052/4073 4012/4082 +f 4012/4082 4052/4073 4016/4035 +f 4016/4035 4052/4073 4020/4083 +f 4020/4083 4052/4073 4024/4043 +f 4024/4043 4052/4073 4028/4084 +f 4028/4084 4052/4073 4032/4050 +f 4032/4050 4052/4073 4036/4085 +f 4036/4085 4052/4073 4040/4056 +f 4040/4056 4052/4073 4044/4086 +f 4044/4086 4052/4073 4048/4063 +f 4048/4063 4052/4073 4053/4071 +f 4053/4071 4052/4073 4057/4087 +f 4060/4070 3934/3959 3935/3963 +f 4058/4072 3932/3964 3933/3965 +f 4058/4072 3934/3959 4059/4069 +f 4057/4087 4052/4073 3932/3964 +f 4069/4088 4081/4089 4082/4090 +f 4066/4091 4080/4092 4067/4093 +f 4065/4094 4077/4095 4078/4096 +f 4063/4097 4075/4098 4076/4099 +f 4071/4100 4085/4101 4072/4102 +f 4069/4088 4083/4103 4070/4104 +f 4067/4093 4081/4089 4068/4105 +f 4066/4106 4078/4096 4079/4107 +f 4063/4097 4077/4095 4064/4108 +f 4061/4109 4075/4098 4062/4110 +f 4072/4102 4086/4111 4073/4112 +f 4071/4100 4083/4103 4084/4113 +f 4076/4099 4090/4114 4077/4095 +f 4074/4115 4088/4116 4075/4098 +f 4086/4111 4098/4117 4099/4118 +f 4083/4103 4097/4119 4084/4113 +f 4082/4090 4094/4120 4095/4121 +f 4079/4122 4093/4123 4080/4092 +f 4078/4096 4090/4114 4091/4124 +f 4076/4099 4088/4116 4089/4125 +f 4085/4101 4097/4119 4098/4117 +f 4082/4090 4096/4126 4083/4103 +f 4080/4092 4094/4120 4081/4089 +f 4079/4107 4091/4124 4092/4127 +f 4089/4125 4103/4128 4090/4114 +f 4088/4116 4100/4129 4101/4130 +f 4098/4117 4112/4131 4099/4118 +f 4096/4126 4110/4132 4097/4119 +f 4095/4121 4107/4133 4108/4134 +f 4092/4135 4106/4136 4093/4123 +f 4090/4114 4104/4137 4091/4124 +f 4089/4125 4101/4130 4102/4138 +f 4097/4119 4111/4139 4098/4117 +f 4095/4121 4109/4140 4096/4126 +f 4094/4120 4106/4136 4107/4133 +f 4092/4127 4104/4137 4105/4141 +f 4103/4128 4115/4142 4116/4143 +f 4100/4129 4114/4144 4101/4130 +f 4112/4131 4124/4145 4125/4146 +f 4110/4132 4122/4147 4123/4148 +f 4107/4133 4121/4149 4108/4134 +f 4105/4150 4119/4151 4106/4136 +f 4103/4128 4117/4152 4104/4137 +f 4101/4130 4115/4142 4102/4138 +f 4110/4132 4124/4145 4111/4139 +f 4109/4140 4121/4149 4122/4147 +f 4107/4133 4119/4151 4120/4153 +f 4105/4141 4117/4152 4118/4154 +f 4115/4142 4129/4155 4116/4143 +f 4114/4144 4126/4156 4127/4157 +f 4124/4145 4138/4158 4125/4146 +f 4123/4148 4135/4159 4136/4160 +f 4120/4153 4134/4161 4121/4149 +f 4119/4151 4131/4162 4132/4163 +f 4117/4152 4129/4155 4130/4164 +f 4114/4144 4128/4165 4115/4142 +f 4124/4145 4136/4160 4137/4166 +f 4122/4147 4134/4161 4135/4159 +f 4119/4151 4133/4167 4120/4153 +f 4117/4152 4131/4168 4118/4154 +f 4129/4155 4141/4169 4142/4170 +f 4126/4156 4140/4171 4127/4157 +f 4138/4158 4150/4172 4151/4173 +f 4136/4160 4148/4174 4149/4175 +f 4133/4167 4147/4176 4134/4161 +f 4131/4162 4145/4177 4132/4163 +f 4130/4164 4142/4170 4143/4178 +f 4127/4157 4141/4169 4128/4165 +f 4137/4166 4149/4175 4150/4172 +f 4135/4159 4147/4176 4148/4174 +f 4132/4163 4146/4179 4133/4167 +f 4131/4168 4143/4178 4144/4180 +f 4142/4170 4154/4181 4155/4182 +f 4140/4171 4152/4183 4153/4184 +f 4150/4172 4164/4185 4151/4173 +f 4149/4175 4161/4186 4162/4187 +f 4146/4179 4160/4188 4147/4176 +f 4144/4189 4158/4190 4145/4177 +f 4142/4170 4156/4191 4143/4178 +f 4140/4171 4154/4181 4141/4169 +f 4149/4175 4163/4192 4150/4172 +f 4148/4174 4160/4188 4161/4186 +f 4146/4179 4158/4190 4159/4193 +f 4144/4180 4156/4191 4157/4194 +f 4155/4182 4167/4195 4168/4196 +f 4153/4184 4165/4197 4166/4198 +f 4163/4192 4177/4199 4164/4185 +f 4161/4186 4175/4200 4162/4187 +f 4159/4193 4173/4201 4160/4188 +f 4158/4190 4170/4202 4171/4203 +f 4155/4182 4169/4204 4156/4191 +f 4153/4184 4167/4195 4154/4181 +f 4163/4192 4175/4200 4176/4205 +f 4161/4186 4173/4201 4174/4206 +f 4159/4193 4171/4203 4172/4207 +f 4156/4191 4170/4208 4157/4194 +f 4167/4195 4181/4209 4168/4196 +f 4165/4197 4179/4210 4166/4198 +f 4176/4205 4190/4211 4177/4199 +f 4175/4200 4187/4212 4188/4213 +f 4173/4201 4185/4214 4186/4215 +f 4170/4202 4184/4216 4171/4203 +f 4169/4204 4181/4209 4182/4217 +f 4167/4195 4179/4210 4180/4218 +f 4175/4200 4189/4219 4176/4205 +f 4173/4201 4187/4212 4174/4206 +f 4171/4203 4185/4214 4172/4207 +f 4170/4208 4182/4217 4183/4220 +f 4180/4218 4194/4221 4181/4209 +f 4178/4222 4192/4223 4179/4210 +f 4190/4211 4202/4224 4203/4225 +f 4187/4212 4201/4226 4188/4213 +f 4186/4215 4198/4227 4199/4228 +f 4183/4229 4197/4230 4184/4216 +f 4182/4217 4194/4221 4195/4231 +f 4180/4218 4192/4223 4193/4232 +f 4189/4219 4201/4226 4202/4224 +f 4186/4215 4200/4233 4187/4212 +f 4184/4216 4198/4227 4185/4214 +f 4183/4220 4195/4231 4196/4234 +f 4193/4232 4207/4235 4194/4221 +f 4192/4223 4204/4236 4205/4237 +f 4202/4224 4216/4238 4203/4225 +f 4200/4233 4214/4239 4201/4226 +f 4199/4228 4211/4240 4212/4241 +f 4196/4242 4210/4243 4197/4230 +f 4194/4221 4208/4244 4195/4231 +f 4193/4232 4205/4237 4206/4245 +f 4201/4226 4215/4246 4202/4224 +f 4199/4228 4213/4247 4200/4233 +f 4198/4227 4210/4243 4211/4240 +f 4196/4234 4208/4244 4209/4248 +f 4207/4235 4219/4249 4220/4250 +f 4204/4236 4218/4251 4205/4237 +f 4216/4238 4228/4252 4229/4253 +f 4213/4247 4227/4254 4214/4239 +f 4211/4240 4225/4255 4212/4241 +f 4209/4256 4223/4257 4210/4243 +f 4207/4235 4221/4258 4208/4244 +f 4205/4237 4219/4249 4206/4245 +f 4214/4239 4228/4252 4215/4246 +f 4213/4247 4225/4255 4226/4259 +f 4211/4240 4223/4257 4224/4260 +f 4209/4248 4221/4258 4222/4261 +f 4219/4249 4233/4262 4220/4250 +f 4218/4251 4230/4263 4231/4264 +f 4228/4252 4242/4265 4229/4253 +f 4226/4259 4240/4266 4227/4254 +f 4225/4255 4237/4267 4238/4268 +f 4223/4257 4235/4269 4236/4270 +f 4221/4258 4233/4262 4234/4271 +f 4218/4251 4232/4272 4219/4249 +f 4228/4252 4240/4266 4241/4273 +f 4226/4259 4238/4268 4239/4274 +f 4223/4257 4237/4267 4224/4260 +f 4221/4258 4235/4275 4222/4261 +f 4233/4262 4245/4276 4246/4277 +f 4230/4263 4244/4278 4231/4264 +f 4242/4265 4254/4279 4255/4280 +f 4240/4266 4252/4281 4253/4282 +f 4237/4267 4251/4283 4238/4268 +f 4235/4269 4249/4284 4236/4270 +f 4234/4271 4246/4277 4247/4285 +f 4231/4264 4245/4276 4232/4272 +f 4241/4273 4253/4282 4254/4279 +f 4239/4274 4251/4283 4252/4281 +f 4236/4270 4250/4286 4237/4267 +f 4235/4275 4247/4285 4248/4287 +f 4246/4277 4258/4288 4259/4289 +f 4244/4278 4256/4290 4257/4291 +f 4254/4279 4268/4292 4255/4280 +f 4253/4282 4265/4293 4266/4294 +f 4250/4286 4264/4295 4251/4283 +f 4248/4296 4262/4297 4249/4284 +f 4246/4277 4260/4298 4247/4285 +f 4244/4278 4258/4288 4245/4276 +f 4253/4282 4267/4299 4254/4279 +f 4252/4281 4264/4295 4265/4293 +f 4250/4286 4262/4297 4263/4300 +f 4248/4287 4260/4298 4261/4301 +f 4259/4289 4271/4302 4272/4303 +f 4257/4291 4269/4304 4270/4305 +f 4267/4299 4281/4306 4268/4292 +f 4265/4293 4279/4307 4266/4294 +f 4263/4300 4277/4308 4264/4295 +f 4262/4297 4274/4309 4275/4310 +f 4259/4289 4273/4311 4260/4298 +f 4257/4291 4271/4302 4258/4288 +f 4266/4294 4280/4312 4267/4299 +f 4265/4293 4277/4308 4278/4313 +f 4263/4300 4275/4310 4276/4314 +f 4260/4298 4274/4315 4261/4301 +f 4271/4302 4285/4316 4272/4303 +f 4269/4304 4283/4317 4270/4305 +f 4281/4306 4293/4318 4294/4319 +f 4279/4307 4291/4320 4292/4321 +f 4277/4308 4289/4322 4290/4323 +f 4274/4309 4288/4324 4275/4310 +f 4273/4311 4285/4316 4286/4325 +f 4271/4302 4283/4317 4284/4326 +f 4280/4312 4292/4321 4293/4318 +f 4277/4308 4291/4320 4278/4313 +f 4275/4310 4289/4322 4276/4314 +f 4274/4315 4286/4325 4287/4327 +f 4284/4326 4298/4328 4285/4316 +f 4282/4329 4296/4330 4283/4317 +f 4294/4319 4306/4331 4307/4332 +f 4291/4320 4305/4333 4292/4321 +f 4290/4323 4302/4334 4303/4335 +f 4287/4336 4301/4337 4288/4324 +f 4286/4325 4298/4328 4299/4338 +f 4284/4326 4296/4330 4297/4339 +f 4293/4318 4305/4333 4306/4331 +f 4290/4323 4304/4340 4291/4320 +f 4288/4324 4302/4334 4289/4322 +f 4287/4327 4299/4338 4300/4341 +f 4297/4339 4311/4342 4298/4328 +f 4296/4330 4308/4343 4309/4344 +f 4306/4331 4320/4345 4307/4332 +f 4304/4340 4318/4346 4305/4333 +f 4303/4335 4315/4347 4316/4348 +f 4300/4349 4314/4350 4301/4337 +f 4298/4328 4312/4351 4299/4338 +f 4297/4339 4309/4344 4310/4352 +f 4305/4333 4319/4353 4306/4331 +f 4304/4340 4316/4348 4317/4354 +f 4302/4334 4314/4350 4315/4347 +f 4300/4341 4312/4351 4313/4355 +f 4310/4352 4324/4356 4311/4342 +f 4308/4343 4322/4357 4309/4344 +f 4320/4345 4332/4358 4333/4359 +f 4318/4346 4330/4360 4331/4361 +f 4316/4348 4328/4362 4329/4363 +f 4313/4364 4327/4365 4314/4350 +f 4311/4342 4325/4366 4312/4351 +f 4310/4352 4322/4357 4323/4367 +f 4318/4346 4332/4358 4319/4353 +f 4316/4348 4330/4360 4317/4354 +f 4315/4347 4327/4365 4328/4362 +f 4312/4351 4326/4368 4313/4355 +f 4323/4367 4337/4369 4324/4356 +f 4322/4357 4334/4370 4335/4371 +f 4332/4358 4346/4372 4333/4359 +f 4330/4360 4344/4373 4331/4361 +f 4329/4363 4341/4374 4342/4375 +f 4327/4365 4339/4376 4340/4377 +f 4325/4366 4337/4369 4338/4378 +f 4322/4357 4336/4379 4323/4367 +f 4332/4358 4344/4373 4345/4380 +f 4330/4360 4342/4375 4343/4381 +f 4327/4365 4341/4374 4328/4362 +f 4325/4366 4339/4382 4326/4368 +f 4337/4369 4350/4383 4351/4384 +f 4334/4370 4349/4385 4335/4371 +f 4346/4372 4359/4386 4360/4387 +f 4344/4373 4357/4388 4358/4389 +f 4341/4374 4356/4390 4342/4375 +f 4340/4377 4353/4391 4354/4392 +f 4338/4378 4351/4384 4352/4393 +f 4335/4371 4350/4383 4336/4379 +f 4345/4380 4358/4389 4359/4386 +f 4343/4381 4356/4390 4357/4388 +f 4340/4377 4355/4394 4341/4374 +f 4338/4378 4353/4395 4339/4382 +f 4351/4384 4363/4396 4364/4397 +f 4349/4385 4361/4398 4362/4399 +f 4359/4386 4373/4400 4360/4387 +f 4358/4389 4370/4401 4371/4402 +f 4355/4394 4369/4403 4356/4390 +f 4354/4392 4366/4404 4367/4405 +f 4351/4384 4365/4406 4352/4393 +f 4349/4385 4363/4396 4350/4383 +f 4358/4389 4372/4407 4359/4386 +f 4357/4388 4369/4403 4370/4401 +f 4355/4394 4367/4405 4368/4408 +f 4352/4393 4366/4409 4353/4395 +f 4364/4397 4376/4410 4377/4411 +f 4362/4399 4374/4412 4375/4413 +f 4373/4400 4385/4414 4386/4415 +f 4370/4401 4384/4416 4371/4402 +f 4368/4408 4382/4417 4369/4403 +f 4367/4405 4379/4418 4380/4419 +f 4364/4397 4378/4420 4365/4406 +f 4362/4399 4376/4410 4363/4396 +f 4372/4407 4384/4416 4385/4414 +f 4370/4401 4382/4417 4383/4421 +f 4368/4408 4380/4419 4381/4422 +f 4365/4406 4379/4423 4366/4409 +f 4376/4410 4390/4424 4377/4411 +f 4374/4412 4388/4425 4375/4413 +f 4385/4414 4399/4426 4386/4415 +f 4384/4416 4396/4427 4397/4428 +f 4382/4417 4394/4429 4395/4430 +f 4379/4418 4393/4431 4380/4419 +f 4378/4420 4390/4424 4391/4432 +f 4376/4410 4388/4425 4389/4433 +f 4384/4416 4398/4434 4385/4414 +f 4382/4417 4396/4427 4383/4421 +f 4380/4419 4394/4429 4381/4422 +f 4379/4423 4391/4432 4392/4435 +f 4389/4433 4403/4436 4390/4424 +f 4387/4437 4401/4438 4388/4425 +f 4399/4426 4411/4439 4412/4440 +f 4396/4427 4410/4441 4397/4428 +f 4395/4430 4407/4442 4408/4443 +f 4393/4431 4405/4444 4406/4445 +f 4391/4432 4403/4436 4404/4446 +f 4389/4433 4401/4438 4402/4447 +f 4398/4434 4410/4441 4411/4439 +f 4395/4430 4409/4448 4396/4427 +f 4393/4431 4407/4442 4394/4429 +f 4391/4432 4405/4449 4392/4435 +f 4402/4447 4416/4450 4403/4436 +f 4401/4438 4413/4451 4414/4452 +f 4411/4439 4425/4453 4412/4440 +f 4409/4448 4423/4454 4410/4441 +f 4408/4443 4420/4455 4421/4456 +f 4406/4445 4418/4457 4419/4458 +f 4403/4436 4417/4459 4404/4446 +f 4402/4447 4414/4452 4415/4460 +f 4410/4441 4424/4461 4411/4439 +f 4408/4443 4422/4462 4409/4448 +f 4407/4442 4419/4458 4420/4455 +f 4404/4446 4418/4463 4405/4449 +f 4416/4450 4428/4464 4429/4465 +f 4413/4451 4427/4466 4414/4452 +f 4425/4453 4437/4467 4438/4468 +f 4423/4454 4435/4469 4436/4470 +f 4421/4456 4433/4471 4434/4472 +f 4418/4457 4432/4473 4419/4458 +f 4416/4450 4430/4474 4417/4459 +f 4415/4460 4427/4466 4428/4464 +f 4423/4454 4437/4467 4424/4461 +f 4421/4456 4435/4469 4422/4462 +f 4420/4455 4432/4473 4433/4471 +f 4418/4463 4430/4474 4431/4475 +f 4428/4464 4442/4476 4429/4465 +f 4426/4477 4440/4478 4427/4466 +f 4437/4467 4451/4479 4438/4468 +f 4435/4469 4449/4480 4436/4470 +f 4434/4472 4446/4481 4447/4482 +f 4432/4473 4444/4483 4445/4484 +f 4430/4474 4442/4476 4443/4485 +f 4427/4466 4441/4486 4428/4464 +f 4437/4467 4449/4480 4450/4487 +f 4435/4469 4447/4482 4448/4488 +f 4432/4473 4446/4481 4433/4471 +f 4430/4474 4444/4489 4431/4475 +f 4442/4476 4454/4490 4455/4491 +f 4439/4492 4453/4493 4440/4478 +f 4451/4479 4463/4494 4464/4495 +f 4449/4480 4461/4496 4462/4497 +f 4446/4481 4460/4498 4447/4482 +f 4444/4483 4458/4499 4445/4484 +f 4443/4485 4455/4491 4456/4500 +f 4440/4478 4454/4490 4441/4486 +f 4450/4487 4462/4497 4463/4494 +f 4447/4482 4461/4496 4448/4488 +f 4445/4484 4459/4501 4446/4481 +f 4444/4489 4456/4500 4457/4502 +f 4455/4491 4467/4503 4468/4504 +f 4453/4493 4465/4505 4466/4506 +f 4463/4494 4477/4507 4464/4495 +f 4462/4497 4474/4508 4475/4509 +f 4459/4501 4473/4510 4460/4498 +f 4457/4511 4471/4512 4458/4499 +f 4455/4491 4469/4513 4456/4500 +f 4453/4493 4467/4503 4454/4490 +f 4462/4497 4476/4514 4463/4494 +f 4461/4496 4473/4510 4474/4508 +f 4459/4501 4471/4512 4472/4515 +f 4457/4502 4469/4513 4470/4516 +f 4347/4517 4073/4112 4086/4111 +f 4347/4517 4086/4111 4099/4118 +f 4347/4517 4099/4118 4112/4131 +f 4347/4517 4112/4131 4125/4146 +f 4347/4517 4125/4146 4138/4158 +f 4347/4517 4138/4158 4151/4173 +f 4347/4517 4151/4173 4164/4185 +f 4347/4517 4164/4185 4177/4199 +f 4347/4517 4177/4199 4190/4211 +f 4347/4517 4190/4211 4203/4225 +f 4347/4517 4203/4225 4216/4238 +f 4347/4517 4216/4238 4229/4253 +f 4347/4517 4229/4253 4242/4265 +f 4347/4517 4242/4265 4255/4280 +f 4347/4517 4255/4280 4268/4292 +f 4347/4517 4268/4292 4281/4306 +f 4347/4517 4281/4306 4294/4319 +f 4347/4517 4294/4319 4307/4332 +f 4347/4517 4307/4332 4320/4345 +f 4347/4517 4320/4345 4333/4359 +f 4347/4517 4333/4359 4346/4372 +f 4347/4517 4346/4372 4360/4387 +f 4347/4517 4360/4387 4373/4400 +f 4347/4517 4373/4400 4386/4415 +f 4347/4517 4386/4415 4399/4426 +f 4347/4517 4399/4426 4412/4440 +f 4347/4517 4412/4440 4425/4453 +f 4347/4517 4425/4453 4438/4468 +f 4347/4517 4438/4468 4451/4479 +f 4347/4517 4451/4479 4464/4495 +f 4347/4517 4464/4495 4477/4507 +f 4468/4504 4063/4097 4064/4108 +f 4466/4506 4061/4109 4062/4110 +f 4477/4507 4072/4102 4073/4112 +f 4474/4508 4071/4100 4475/4509 +f 4472/4515 4069/4088 4473/4510 +f 4471/4512 4066/4091 4067/4093 +f 4468/4504 4065/4094 4469/4513 +f 4466/4506 4063/4097 4467/4503 +f 4347/4517 4477/4507 4073/4112 +f 4476/4514 4071/4100 4072/4102 +f 4474/4508 4069/4088 4070/4104 +f 4472/4515 4067/4093 4068/4105 +f 4469/4513 4066/4106 4470/4516 +f 3935/3963 4465/4505 4060/4070 +f 4465/4505 4056/4067 4060/4070 +f 4452/4518 4051/4062 4056/4067 +f 4439/4492 4047/4060 4051/4062 +f 4047/4060 4413/4451 4043/4055 +f 4043/4055 4400/4519 4039/4052 +f 4039/4052 4387/4437 4035/4049 +f 4387/4437 4031/4046 4035/4049 +f 4031/4046 4361/4398 4027/4042 +f 4361/4398 4023/4039 4027/4042 +f 4348/4520 4019/4034 4023/4039 +f 4334/4370 4015/4032 4019/4034 +f 4015/4032 4308/4343 4011/4027 +f 4011/4027 4295/4521 4007/4024 +f 4007/4024 4282/4329 4003/4020 +f 4282/4329 3999/4018 4003/4020 +f 3999/4018 4256/4290 3995/4014 +f 4256/4290 3991/4011 3995/4014 +f 4243/4522 3987/4006 3991/4011 +f 4230/4263 3983/4004 3987/4006 +f 3983/4004 4204/4236 3979/3999 +f 3979/3999 4191/4523 3975/3996 +f 3975/3996 4178/4222 3971/3992 +f 4178/4222 3967/3989 3971/3992 +f 3967/3989 4152/4183 3963/3986 +f 4152/4183 3959/3982 3963/3986 +f 4139/4524 3955/3977 3959/3982 +f 4126/4156 3951/3975 3955/3977 +f 3951/3975 4100/4129 3947/3970 +f 3947/3970 4087/4525 3943/3966 +f 3943/3966 4074/4115 3939/3962 +f 4074/4115 3935/3963 3939/3962 +f 4480/4526 4483/4527 4484/4528 +f 4480/4526 4485/4529 4481/4530 +f 4479/4531 4482/4532 4483/4527 +f 4484/4528 4489/4533 4485/4529 +f 4482/4532 4487/4534 4483/4527 +f 4483/4527 4488/4535 4484/4528 +f 4488/4535 4493/4536 4489/4533 +f 4487/4534 4490/4537 4491/4538 +f 4488/4535 4491/4538 4492/4539 +f 4493/4536 4496/4540 4497/4541 +f 4490/4537 4495/4542 4491/4538 +f 4491/4538 4496/4540 4492/4539 +f 4496/4540 4501/4543 4497/4541 +f 4495/4542 4498/4544 4499/4545 +f 4496/4540 4499/4545 4500/4546 +f 4501/4543 4504/4547 4505/4548 +f 4498/4544 4503/4549 4499/4545 +f 4499/4545 4504/4547 4500/4546 +f 4505/4548 4508/4550 4509/4551 +f 4503/4549 4506/4552 4507/4553 +f 4504/4547 4507/4553 4508/4550 +f 4509/4551 4512/4554 4513/4555 +f 4506/4552 4511/4556 4507/4553 +f 4507/4553 4512/4554 4508/4550 +f 4513/4555 4516/4557 4517/4558 +f 4511/4556 4514/4559 4515/4560 +f 4512/4554 4515/4560 4516/4557 +f 4516/4557 4521/4561 4517/4558 +f 4514/4559 4519/4562 4515/4560 +f 4515/4560 4520/4563 4516/4557 +f 4520/4563 4525/4564 4521/4561 +f 4518/4565 4523/4566 4519/4562 +f 4520/4563 4523/4566 4524/4567 +f 4525/4564 4528/4568 4529/4569 +f 4522/4570 4527/4571 4523/4566 +f 4523/4566 4528/4568 4524/4567 +f 4528/4568 4533/4572 4529/4569 +f 4527/4571 4530/4573 4531/4574 +f 4528/4568 4531/4574 4532/4575 +f 4533/4572 4536/4576 4537/4577 +f 4530/4573 4535/4578 4531/4574 +f 4531/4574 4536/4576 4532/4575 +f 4537/4577 4540/4579 4541/4580 +f 4534/4581 4539/4582 4535/4578 +f 4536/4576 4539/4582 4540/4579 +f 4541/4580 4544/4583 4545/4584 +f 4539/4582 4542/4585 4543/4586 +f 4539/4582 4544/4583 4540/4579 +f 4544/4583 4549/4587 4545/4584 +f 4542/4585 4547/4588 4543/4586 +f 4544/4583 4547/4588 4548/4589 +f 4548/4589 4553/4590 4549/4587 +f 4547/4588 4550/4591 4551/4592 +f 4547/4588 4552/4593 4548/4589 +f 4552/4593 4557/4594 4553/4590 +f 4551/4592 4554/4595 4555/4596 +f 4552/4593 4555/4596 4556/4597 +f 4557/4594 4560/4598 4561/4599 +f 4554/4595 4559/4600 4555/4596 +f 4555/4596 4560/4598 4556/4597 +f 4560/4598 4565/4601 4561/4599 +f 4559/4600 4562/4602 4563/4603 +f 4560/4598 4563/4603 4564/4604 +f 4565/4601 4568/4605 4569/4606 +f 4562/4602 4567/4607 4563/4603 +f 4563/4603 4568/4605 4564/4604 +f 4569/4606 4572/4608 4573/4609 +f 4567/4607 4570/4610 4571/4611 +f 4568/4605 4571/4611 4572/4608 +f 4572/4608 4577/4612 4573/4609 +f 4570/4610 4575/4613 4571/4611 +f 4571/4611 4576/4614 4572/4608 +f 4576/4614 4581/4615 4577/4612 +f 4575/4613 4578/4616 4579/4617 +f 4576/4614 4579/4617 4580/4618 +f 4580/4618 4585/4619 4581/4615 +f 4578/4616 4583/4620 4579/4617 +f 4579/4617 4584/4621 4580/4618 +f 4584/4621 4589/4622 4585/4619 +f 4583/4620 4586/4623 4587/4624 +f 4584/4621 4587/4624 4588/4625 +f 4589/4622 4592/4626 4593/4627 +f 4586/4623 4591/4628 4587/4624 +f 4587/4624 4592/4626 4588/4625 +f 4592/4626 4597/4629 4593/4627 +f 4591/4628 4594/4630 4595/4631 +f 4592/4626 4595/4631 4596/4632 +f 4597/4629 4601/4633 4602/4634 +f 4594/4630 4600/4635 4595/4631 +f 4595/4631 4601/4633 4596/4632 +f 4602/4634 4605/4636 4606/4637 +f 4600/4635 4603/4638 4604/4639 +f 4601/4633 4604/4639 4605/4636 +f 4478/4640 4598/4641 4482/4532 +f 4482/4532 4598/4641 4486/4642 +f 4486/4642 4598/4641 4490/4537 +f 4490/4537 4598/4641 4494/4643 +f 4494/4643 4598/4641 4498/4544 +f 4498/4544 4598/4641 4502/4644 +f 4502/4644 4598/4641 4506/4552 +f 4506/4552 4598/4641 4510/4645 +f 4510/4645 4598/4641 4514/4559 +f 4514/4559 4598/4641 4518/4565 +f 4518/4565 4598/4641 4522/4570 +f 4522/4570 4598/4641 4526/4646 +f 4526/4646 4598/4641 4530/4573 +f 4530/4573 4598/4641 4534/4581 +f 4534/4581 4598/4641 4538/4647 +f 4538/4647 4598/4641 4542/4585 +f 4542/4585 4598/4641 4546/4648 +f 4546/4648 4598/4641 4550/4591 +f 4550/4591 4598/4641 4554/4595 +f 4554/4595 4598/4641 4558/4649 +f 4558/4649 4598/4641 4562/4602 +f 4562/4602 4598/4641 4566/4650 +f 4566/4650 4598/4641 4570/4610 +f 4570/4610 4598/4641 4574/4651 +f 4574/4651 4598/4641 4578/4616 +f 4578/4616 4598/4641 4582/4652 +f 4582/4652 4598/4641 4586/4623 +f 4586/4623 4598/4641 4590/4653 +f 4590/4653 4598/4641 4594/4630 +f 4594/4630 4598/4641 4599/4654 +f 4599/4654 4598/4641 4603/4638 +f 4606/4637 4480/4526 4481/4530 +f 4603/4638 4479/4531 4604/4639 +f 4604/4639 4480/4526 4605/4636 +f 4603/4638 4598/4641 4478/4640 +f 4615/4655 4627/4656 4628/4657 +f 4612/4658 4626/4659 4613/4660 +f 4611/4661 4623/4662 4624/4663 +f 4609/4664 4621/4665 4622/4666 +f 4618/4667 4630/4668 4631/4669 +f 4615/4655 4629/4670 4616/4671 +f 4613/4660 4627/4656 4614/4672 +f 4612/4673 4624/4663 4625/4674 +f 4609/4664 4623/4662 4610/4675 +f 4607/4676 4621/4665 4608/4677 +f 4619/4678 4631/4669 4632/4679 +f 4617/4680 4629/4670 4630/4668 +f 4622/4666 4636/4681 4623/4662 +f 4620/4682 4634/4683 4621/4665 +f 4632/4679 4644/4684 4645/4685 +f 4629/4670 4643/4686 4630/4668 +f 4628/4657 4640/4687 4641/4688 +f 4626/4659 4638/4689 4639/4690 +f 4624/4663 4636/4681 4637/4691 +f 4622/4666 4634/4683 4635/4692 +f 4631/4669 4643/4686 4644/4684 +f 4628/4657 4642/4693 4629/4670 +f 4626/4659 4640/4687 4627/4656 +f 4624/4663 4638/4694 4625/4674 +f 4635/4692 4649/4695 4636/4681 +f 4634/4683 4646/4696 4647/4697 +f 4644/4684 4658/4698 4645/4685 +f 4642/4693 4656/4699 4643/4686 +f 4641/4688 4653/4700 4654/4701 +f 4639/4690 4651/4702 4652/4703 +f 4636/4681 4650/4704 4637/4691 +f 4635/4692 4647/4697 4648/4705 +f 4643/4686 4657/4706 4644/4684 +f 4642/4693 4654/4701 4655/4707 +f 4640/4687 4652/4703 4653/4700 +f 4637/4691 4651/4708 4638/4694 +f 4648/4705 4662/4709 4649/4695 +f 4646/4696 4660/4710 4647/4697 +f 4658/4698 4670/4711 4671/4712 +f 4656/4699 4668/4713 4669/4714 +f 4653/4700 4667/4715 4654/4701 +f 4651/4702 4665/4716 4652/4703 +f 4649/4695 4663/4717 4650/4704 +f 4648/4705 4660/4710 4661/4718 +f 4656/4699 4670/4711 4657/4706 +f 4654/4701 4668/4713 4655/4707 +f 4653/4700 4665/4716 4666/4719 +f 4651/4708 4663/4717 4664/4720 +f 4661/4718 4675/4721 4662/4709 +f 4660/4710 4672/4722 4673/4723 +f 4670/4711 4684/4724 4671/4712 +f 4668/4713 4682/4725 4669/4714 +f 4667/4715 4679/4726 4680/4727 +f 4665/4716 4677/4728 4678/4729 +f 4663/4717 4675/4721 4676/4730 +f 4661/4718 4673/4723 4674/4731 +f 4670/4711 4682/4725 4683/4732 +f 4667/4715 4681/4733 4668/4713 +f 4665/4716 4679/4726 4666/4719 +f 4663/4717 4677/4734 4664/4720 +f 4675/4721 4687/4735 4688/4736 +f 4672/4722 4686/4737 4673/4723 +f 4684/4724 4696/4738 4697/4739 +f 4682/4725 4694/4740 4695/4741 +f 4679/4726 4693/4742 4680/4727 +f 4678/4729 4690/4743 4691/4744 +f 4676/4730 4688/4736 4689/4745 +f 4673/4723 4687/4735 4674/4731 +f 4683/4732 4695/4741 4696/4738 +f 4681/4733 4693/4742 4694/4740 +f 4678/4729 4692/4746 4679/4726 +f 4676/4730 4690/4747 4677/4734 +f 4688/4736 4700/4748 4701/4749 +f 4686/4737 4698/4750 4699/4751 +f 4696/4738 4710/4752 4697/4739 +f 4695/4741 4707/4753 4708/4754 +f 4692/4746 4706/4755 4693/4742 +f 4691/4744 4703/4756 4704/4757 +f 4688/4736 4702/4758 4689/4745 +f 4686/4737 4700/4748 4687/4735 +f 4695/4741 4709/4759 4696/4738 +f 4694/4740 4706/4755 4707/4753 +f 4692/4746 4704/4757 4705/4760 +f 4689/4745 4703/4761 4690/4747 +f 4701/4749 4713/4762 4714/4763 +f 4699/4751 4711/4764 4712/4765 +f 4710/4752 4722/4766 4723/4767 +f 4707/4753 4721/4768 4708/4754 +f 4705/4760 4719/4769 4706/4755 +f 4704/4757 4716/4770 4717/4771 +f 4701/4749 4715/4772 4702/4758 +f 4699/4751 4713/4762 4700/4748 +f 4709/4759 4721/4768 4722/4766 +f 4707/4753 4719/4769 4720/4773 +f 4705/4760 4717/4771 4718/4774 +f 4702/4758 4716/4775 4703/4761 +f 4713/4762 4727/4776 4714/4763 +f 4711/4764 4725/4777 4712/4765 +f 4723/4767 4735/4778 4736/4779 +f 4721/4768 4733/4780 4734/4781 +f 4719/4769 4731/4782 4732/4783 +f 4716/4770 4730/4784 4717/4771 +f 4715/4772 4727/4776 4728/4785 +f 4713/4762 4725/4777 4726/4786 +f 4721/4768 4735/4778 4722/4766 +f 4719/4769 4733/4780 4720/4773 +f 4717/4771 4731/4782 4718/4774 +f 4716/4775 4728/4785 4729/4787 +f 4726/4786 4740/4788 4727/4776 +f 4724/4789 4738/4790 4725/4777 +f 4736/4779 4748/4791 4749/4792 +f 4733/4780 4747/4793 4734/4781 +f 4732/4783 4744/4794 4745/4795 +f 4730/4784 4742/4796 4743/4797 +f 4728/4785 4740/4788 4741/4798 +f 4726/4786 4738/4790 4739/4799 +f 4735/4778 4747/4793 4748/4791 +f 4732/4783 4746/4800 4733/4780 +f 4730/4784 4744/4794 4731/4782 +f 4728/4785 4742/4801 4729/4787 +f 4739/4799 4753/4802 4740/4788 +f 4738/4790 4750/4803 4751/4804 +f 4748/4791 4762/4805 4749/4792 +f 4746/4800 4760/4806 4747/4793 +f 4745/4795 4757/4807 4758/4808 +f 4743/4797 4755/4809 4756/4810 +f 4740/4788 4754/4811 4741/4798 +f 4739/4799 4751/4804 4752/4812 +f 4747/4793 4761/4813 4748/4791 +f 4745/4795 4759/4814 4746/4800 +f 4744/4794 4756/4810 4757/4807 +f 4741/4798 4755/4815 4742/4801 +f 4753/4802 4765/4816 4766/4817 +f 4750/4803 4764/4818 4751/4804 +f 4762/4805 4774/4819 4775/4820 +f 4759/4814 4773/4821 4760/4806 +f 4758/4808 4770/4822 4771/4823 +f 4755/4809 4769/4824 4756/4810 +f 4753/4802 4767/4825 4754/4811 +f 4752/4812 4764/4818 4765/4816 +f 4760/4806 4774/4819 4761/4813 +f 4758/4808 4772/4826 4759/4814 +f 4757/4807 4769/4824 4770/4822 +f 4755/4815 4767/4825 4768/4827 +f 4765/4816 4779/4828 4766/4817 +f 4764/4818 4776/4829 4777/4830 +f 4774/4819 4788/4831 4775/4820 +f 4772/4826 4786/4832 4773/4821 +f 4771/4823 4783/4833 4784/4834 +f 4769/4824 4781/4835 4782/4836 +f 4767/4825 4779/4828 4780/4837 +f 4765/4816 4777/4830 4778/4838 +f 4774/4819 4786/4832 4787/4839 +f 4771/4823 4785/4840 4772/4826 +f 4769/4824 4783/4833 4770/4822 +f 4767/4825 4781/4841 4768/4827 +f 4779/4828 4791/4842 4792/4843 +f 4776/4829 4790/4844 4777/4830 +f 4788/4831 4800/4845 4801/4846 +f 4786/4832 4798/4847 4799/4848 +f 4783/4833 4797/4849 4784/4834 +f 4782/4836 4794/4850 4795/4851 +f 4780/4837 4792/4843 4793/4852 +f 4777/4830 4791/4842 4778/4838 +f 4787/4839 4799/4848 4800/4845 +f 4785/4840 4797/4849 4798/4847 +f 4782/4836 4796/4853 4783/4833 +f 4780/4837 4794/4854 4781/4841 +f 4792/4843 4804/4855 4805/4856 +f 4790/4844 4802/4857 4803/4858 +f 4800/4845 4814/4859 4801/4846 +f 4799/4848 4811/4860 4812/4861 +f 4796/4853 4810/4862 4797/4849 +f 4795/4851 4807/4863 4808/4864 +f 4792/4843 4806/4865 4793/4852 +f 4790/4844 4804/4855 4791/4842 +f 4799/4848 4813/4866 4800/4845 +f 4798/4847 4810/4862 4811/4860 +f 4796/4853 4808/4864 4809/4867 +f 4793/4852 4807/4868 4794/4854 +f 4805/4856 4817/4869 4818/4870 +f 4803/4858 4815/4871 4816/4872 +f 4814/4859 4826/4873 4827/4874 +f 4811/4860 4825/4875 4812/4861 +f 4809/4867 4823/4876 4810/4862 +f 4808/4864 4820/4877 4821/4878 +f 4805/4856 4819/4879 4806/4865 +f 4803/4858 4817/4869 4804/4855 +f 4813/4866 4825/4875 4826/4873 +f 4811/4860 4823/4876 4824/4880 +f 4809/4867 4821/4878 4822/4881 +f 4806/4865 4820/4882 4807/4868 +f 4817/4869 4831/4883 4818/4870 +f 4815/4871 4829/4884 4816/4872 +f 4826/4873 4840/4885 4827/4874 +f 4825/4875 4837/4886 4838/4887 +f 4823/4876 4835/4888 4836/4889 +f 4820/4877 4834/4890 4821/4878 +f 4819/4879 4831/4883 4832/4891 +f 4817/4869 4829/4884 4830/4892 +f 4825/4875 4839/4893 4826/4873 +f 4823/4876 4837/4886 4824/4880 +f 4821/4878 4835/4888 4822/4881 +f 4820/4882 4832/4891 4833/4894 +f 4830/4892 4844/4895 4831/4883 +f 4828/4896 4842/4897 4829/4884 +f 4840/4885 4852/4898 4853/4899 +f 4837/4886 4851/4900 4838/4887 +f 4836/4889 4848/4901 4849/4902 +f 4834/4890 4846/4903 4847/4904 +f 4832/4891 4844/4895 4845/4905 +f 4830/4892 4842/4897 4843/4906 +f 4839/4893 4851/4900 4852/4898 +f 4836/4889 4850/4907 4837/4886 +f 4834/4890 4848/4901 4835/4888 +f 4832/4891 4846/4908 4833/4894 +f 4843/4906 4857/4909 4844/4895 +f 4842/4897 4854/4910 4855/4911 +f 4852/4898 4866/4912 4853/4899 +f 4850/4907 4864/4913 4851/4900 +f 4849/4902 4861/4914 4862/4915 +f 4847/4904 4859/4916 4860/4917 +f 4844/4895 4858/4918 4845/4905 +f 4843/4906 4855/4911 4856/4919 +f 4851/4900 4865/4920 4852/4898 +f 4849/4902 4863/4921 4850/4907 +f 4848/4901 4860/4917 4861/4914 +f 4845/4905 4859/4922 4846/4908 +f 4857/4909 4869/4923 4870/4924 +f 4855/4911 4867/4925 4868/4926 +f 4866/4912 4878/4927 4879/4928 +f 4864/4913 4876/4929 4877/4930 +f 4862/4915 4874/4931 4875/4932 +f 4859/4916 4873/4933 4860/4917 +f 4857/4909 4871/4934 4858/4918 +f 4856/4919 4868/4926 4869/4923 +f 4864/4913 4878/4927 4865/4920 +f 4862/4915 4876/4929 4863/4921 +f 4861/4914 4873/4933 4874/4931 +f 4859/4922 4871/4934 4872/4935 +f 4869/4923 4883/4936 4870/4924 +f 4868/4926 4880/4937 4881/4938 +f 4878/4927 4892/4939 4879/4928 +f 4877/4930 4889/4940 4890/4941 +f 4874/4931 4888/4942 4875/4932 +f 4873/4933 4885/4943 4886/4944 +f 4871/4934 4883/4936 4884/4945 +f 4868/4926 4882/4946 4869/4923 +f 4878/4927 4890/4941 4891/4947 +f 4876/4929 4888/4942 4889/4940 +f 4873/4933 4887/4948 4874/4931 +f 4871/4934 4885/4949 4872/4935 +f 4883/4936 4896/4950 4897/4951 +f 4880/4937 4895/4952 4881/4938 +f 4892/4939 4905/4953 4906/4954 +f 4890/4941 4903/4955 4904/4956 +f 4887/4948 4902/4957 4888/4942 +f 4885/4943 4900/4958 4886/4944 +f 4884/4945 4897/4951 4898/4959 +f 4881/4938 4896/4950 4882/4946 +f 4891/4947 4904/4956 4905/4953 +f 4889/4940 4902/4957 4903/4955 +f 4886/4944 4901/4960 4887/4948 +f 4885/4949 4898/4959 4899/4961 +f 4897/4951 4909/4962 4910/4963 +f 4895/4952 4907/4964 4908/4965 +f 4905/4953 4919/4966 4906/4954 +f 4904/4956 4916/4967 4917/4968 +f 4901/4960 4915/4969 4902/4957 +f 4899/4970 4913/4971 4900/4958 +f 4897/4951 4911/4972 4898/4959 +f 4895/4952 4909/4962 4896/4950 +f 4904/4956 4918/4973 4905/4953 +f 4903/4955 4915/4969 4916/4967 +f 4901/4960 4913/4971 4914/4974 +f 4899/4961 4911/4972 4912/4975 +f 4910/4963 4922/4976 4923/4977 +f 4908/4965 4920/4978 4921/4979 +f 4919/4966 4931/4980 4932/4981 +f 4916/4967 4930/4982 4917/4968 +f 4914/4974 4928/4983 4915/4969 +f 4913/4971 4925/4984 4926/4985 +f 4910/4963 4924/4986 4911/4972 +f 4908/4965 4922/4976 4909/4962 +f 4918/4973 4930/4982 4931/4980 +f 4916/4967 4928/4983 4929/4987 +f 4914/4974 4926/4985 4927/4988 +f 4911/4972 4925/4989 4912/4975 +f 4922/4976 4936/4990 4923/4977 +f 4920/4978 4934/4991 4921/4979 +f 4931/4980 4945/4992 4932/4981 +f 4930/4982 4942/4993 4943/4994 +f 4928/4983 4940/4995 4941/4996 +f 4925/4984 4939/4997 4926/4985 +f 4924/4986 4936/4990 4937/4998 +f 4922/4976 4934/4991 4935/4999 +f 4930/4982 4944/5000 4931/4980 +f 4928/4983 4942/4993 4929/4987 +f 4926/4985 4940/4995 4927/4988 +f 4925/4989 4937/4998 4938/5001 +f 4935/4999 4949/5002 4936/4990 +f 4933/5003 4947/5004 4934/4991 +f 4945/4992 4957/5005 4958/5006 +f 4942/4993 4956/5007 4943/4994 +f 4941/4996 4953/5008 4954/5009 +f 4938/5010 4952/5011 4939/4997 +f 4937/4998 4949/5002 4950/5012 +f 4935/4999 4947/5004 4948/5013 +f 4944/5000 4956/5007 4957/5005 +f 4941/4996 4955/5014 4942/4993 +f 4939/4997 4953/5008 4940/4995 +f 4938/5001 4950/5012 4951/5015 +f 4948/5013 4962/5016 4949/5002 +f 4947/5004 4959/5017 4960/5018 +f 4957/5005 4971/5019 4958/5006 +f 4955/5014 4969/5020 4956/5007 +f 4954/5009 4966/5021 4967/5022 +f 4951/5023 4965/5024 4952/5011 +f 4949/5002 4963/5025 4950/5012 +f 4948/5013 4960/5018 4961/5026 +f 4956/5007 4970/5027 4957/5005 +f 4954/5009 4968/5028 4955/5014 +f 4953/5008 4965/5024 4966/5021 +f 4951/5015 4963/5025 4964/5029 +f 4962/5016 4974/5030 4975/5031 +f 4959/5017 4973/5032 4960/5018 +f 4971/5019 4983/5033 4984/5034 +f 4968/5028 4982/5035 4969/5020 +f 4966/5021 4980/5036 4967/5022 +f 4964/5037 4978/5038 4965/5024 +f 4962/5016 4976/5039 4963/5025 +f 4960/5018 4974/5030 4961/5026 +f 4969/5020 4983/5033 4970/5027 +f 4967/5022 4981/5040 4968/5028 +f 4966/5021 4978/5038 4979/5041 +f 4964/5029 4976/5039 4977/5042 +f 4975/5031 4987/5043 4988/5044 +f 4973/5032 4985/5045 4986/5046 +f 4983/5033 4997/5047 4984/5034 +f 4981/5040 4995/5048 4982/5035 +f 4979/5041 4993/5049 4980/5036 +f 4978/5038 4990/5050 4991/5051 +f 4976/5039 4988/5044 4989/5052 +f 4973/5032 4987/5043 4974/5030 +f 4983/5033 4995/5048 4996/5053 +f 4981/5040 4993/5049 4994/5054 +f 4978/5038 4992/5055 4979/5041 +f 4976/5039 4990/5056 4977/5042 +f 4988/5044 5000/5057 5001/5058 +f 4985/5045 4999/5059 4986/5046 +f 4997/5047 5009/5060 5010/5061 +f 4995/5048 5007/5062 5008/5063 +f 4992/5055 5006/5064 4993/5049 +f 4991/5051 5003/5065 5004/5066 +f 4989/5052 5001/5058 5002/5067 +f 4986/5046 5000/5057 4987/5043 +f 4996/5053 5008/5063 5009/5060 +f 4994/5054 5006/5064 5007/5062 +f 4991/5051 5005/5068 4992/5055 +f 4989/5052 5003/5069 4990/5056 +f 5001/5058 5013/5070 5014/5071 +f 4999/5059 5011/5072 5012/5073 +f 5009/5060 5023/5074 5010/5061 +f 5008/5063 5020/5075 5021/5076 +f 5005/5068 5019/5077 5006/5064 +f 5004/5066 5016/5078 5017/5079 +f 5001/5058 5015/5080 5002/5067 +f 4999/5059 5013/5070 5000/5057 +f 5008/5063 5022/5081 5009/5060 +f 5007/5062 5019/5077 5020/5075 +f 5005/5068 5017/5079 5018/5082 +f 5002/5067 5016/5083 5003/5069 +f 4893/5084 4619/4678 4632/4679 +f 4893/5084 4632/4679 4645/4685 +f 4893/5084 4645/4685 4658/4698 +f 4893/5084 4658/4698 4671/4712 +f 4893/5084 4671/4712 4684/4724 +f 4893/5084 4684/4724 4697/4739 +f 4893/5084 4697/4739 4710/4752 +f 4893/5084 4710/4752 4723/4767 +f 4893/5084 4723/4767 4736/4779 +f 4893/5084 4736/4779 4749/4792 +f 4893/5084 4749/4792 4762/4805 +f 4893/5084 4762/4805 4775/4820 +f 4893/5084 4775/4820 4788/4831 +f 4893/5084 4788/4831 4801/4846 +f 4893/5084 4801/4846 4814/4859 +f 4893/5084 4814/4859 4827/4874 +f 4893/5084 4827/4874 4840/4885 +f 4893/5084 4840/4885 4853/4899 +f 4893/5084 4853/4899 4866/4912 +f 4893/5084 4866/4912 4879/4928 +f 4893/5084 4879/4928 4892/4939 +f 4893/5084 4892/4939 4906/4954 +f 4893/5084 4906/4954 4919/4966 +f 4893/5084 4919/4966 4932/4981 +f 4893/5084 4932/4981 4945/4992 +f 4893/5084 4945/4992 4958/5006 +f 4893/5084 4958/5006 4971/5019 +f 4893/5084 4971/5019 4984/5034 +f 4893/5084 4984/5034 4997/5047 +f 4893/5084 4997/5047 5010/5061 +f 4893/5084 5010/5061 5023/5074 +f 5014/5071 4609/4664 4610/4675 +f 5012/5073 4607/4676 4608/4677 +f 5022/5081 4619/4678 5023/5074 +f 5020/5075 4617/4680 5021/5076 +f 5018/5082 4615/4655 5019/5077 +f 5017/5079 4612/4658 4613/4660 +f 5014/5071 4611/4661 5015/5080 +f 5012/5073 4609/4664 5013/5070 +f 4893/5084 5023/5074 4619/4678 +f 5021/5076 4618/4667 5022/5081 +f 5020/5075 4615/4655 4616/4671 +f 5018/5082 4613/4660 4614/4672 +f 5015/5080 4612/4673 5016/5083 +f 4481/4530 5011/5072 4606/4637 +f 5011/5072 4602/4634 4606/4637 +f 4998/5085 4597/4629 4602/4634 +f 4985/5045 4593/4627 4597/4629 +f 4593/4627 4959/5017 4589/4622 +f 4589/4622 4946/5086 4585/4619 +f 4585/4619 4933/5003 4581/4615 +f 4933/5003 4577/4612 4581/4615 +f 4577/4612 4907/4964 4573/4609 +f 4907/4964 4569/4606 4573/4609 +f 4894/5087 4565/4601 4569/4606 +f 4880/4937 4561/4599 4565/4601 +f 4561/4599 4854/4910 4557/4594 +f 4557/4594 4841/5088 4553/4590 +f 4553/4590 4828/4896 4549/4587 +f 4828/4896 4545/4584 4549/4587 +f 4545/4584 4802/4857 4541/4580 +f 4802/4857 4537/4577 4541/4580 +f 4789/5089 4533/4572 4537/4577 +f 4776/4829 4529/4569 4533/4572 +f 4529/4569 4750/4803 4525/4564 +f 4525/4564 4737/5090 4521/4561 +f 4521/4561 4724/4789 4517/4558 +f 4724/4789 4513/4555 4517/4558 +f 4513/4555 4698/4750 4509/4551 +f 4698/4750 4505/4548 4509/4551 +f 4685/5091 4501/4543 4505/4548 +f 4672/4722 4497/4541 4501/4543 +f 4497/4541 4646/4696 4493/4536 +f 4493/4536 4633/5092 4489/4533 +f 4489/4533 4620/4682 4485/4529 +f 4620/4682 4481/4530 4485/4529 +f 4/1 3/223 2/2 +f 8/4 7/2726 6/5 +f 13/7 16/2228 15/8 +f 17/10 28/2112 19/11 +f 32/13 31/317 30/14 +f 36/16 35/1785 34/17 +f 37/19 40/1305 39/20 +f 21/22 22/1250 23/23 +f 25/25 26/2732 27/26 +f 41/28 44/140 43/29 +f 48/31 47/191 46/32 +f 52/34 51/432 50/35 +f 53/37 56/161 55/38 +f 60/40 59/62 58/41 +f 29/15 30/14 62/43 +f 66/45 65/486 64/46 +f 67/48 5/6 6/5 +f 72/50 71/1955 70/51 +f 76/53 75/2762 74/54 +f 77/56 80/312 79/57 +f 81/59 84/970 83/60 +f 59/62 87/78 86/63 +f 88/65 91/2877 90/66 +f 96/68 95/387 94/69 +f 100/71 99/1067 98/72 +f 101/74 104/2810 103/75 +f 106/77 105/111 34/17 +f 108/79 116/109 115/80 +f 117/82 119/194 36/16 +f 124/84 127/99 126/85 +f 131/87 130/1157 129/88 +f 132/90 102/76 134/91 +f 142/93 141/174 140/94 +f 148/96 106/77 60/40 +f 144/98 143/253 127/99 +f 149/100 152/1441 151/101 +f 156/103 155/357 154/104 +f 159/106 150/102 158/107 +f 116/109 108/79 164/110 +f 171/112 170/179 169/113 +f 174/115 126/85 173/116 +f 179/118 182/255 181/119 +f 186/121 189/319 188/122 +f 194/124 197/1314 196/125 +f 199/127 142/93 139/95 +f 206/129 209/215 208/130 +f 213/132 212/173 211/133 +f 202/135 215/2820 214/136 +f 96/68 93/70 216/138 +f 92/139 238/180 43/29 +f 97/73 184/374 246/141 +f 250/142 249/165 229/143 +f 252/145 254/244 58/41 +f 258/147 257/1193 256/148 +f 260/150 91/2877 229/143 +f 110/152 111/3492 112/153 +f 114/155 264/1147 263/156 +f 265/158 268/1008 267/159 +f 56/161 53/37 270/162 +f 274/164 273/1163 249/165 +f 185/166 183/211 63/47 +f 280/167 279/1030 278/168 +f 285/170 284/224 283/171 +f 288/172 219/464 211/133 +f 141/174 142/93 92/139 +f 289/175 290/393 175/176 +f 148/96 116/109 105/111 +f 312/178 311/1436 170/179 +f 238/180 262/335 42/30 +f 318/181 163/213 160/182 +f 310/184 309/1031 308/185 +f 241/187 239/1191 325/188 +f 160/182 230/314 240/190 +f 47/191 48/31 307/186 +f 108/79 109/157 315/192 +f 345/193 85/64 86/63 +f 348/195 351/246 350/196 +f 356/198 359/260 358/199 +f 355/201 354/1346 353/202 +f 363/204 31/317 32/13 +f 364/206 252/145 253/146 +f 366/208 125/86 368/209 +f 183/211 372/1217 371/212 +f 163/213 162/2842 161/214 +f 209/215 226/1051 101/74 +f 378/216 377/474 165/217 +f 379/219 295/1840 381/220 +f 383/222 382/1281 3/223 +f 284/224 285/170 386/225 +f 387/227 127/99 389/228 +f 391/230 259/151 229/143 +f 73/55 281/282 397/231 +f 405/233 408/248 407/234 +f 203/236 218/1212 411/237 +f 414/239 121/2834 413/240 +f 1/3 356/198 357/200 +f 277/242 276/169 131/87 +f 254/244 344/1005 57/42 +f 358/199 384/1463 415/245 +f 417/247 416/336 386/225 +f 401/249 400/386 192/250 +f 419/252 389/228 127/99 +f 421/254 181/119 182/255 +f 103/75 301/438 302/257 +f 428/259 367/210 368/209 +f 380/221 390/290 359/260 +f 62/43 204/1809 266/160 +f 140/94 141/174 431/262 +f 357/200 358/199 351/246 +f 356/198 1/3 379/219 +f 415/245 392/1289 403/264 +f 437/266 428/259 436/267 +f 438/269 441/2805 440/270 +f 188/122 451/320 450/272 +f 265/158 455/469 181/119 +f 224/277 185/166 64/46 +f 237/279 212/173 213/132 +f 275/243 131/87 128/89 +f 281/282 282/286 460/283 +f 50/35 462/1094 79/57 +f 73/55 74/54 282/286 +f 468/287 467/410 466/288 +f 390/290 355/201 352/203 +f 482/291 485/1641 484/292 +f 489/294 488/414 487/295 +f 493/297 496/402 495/298 +f 472/300 471/1426 470/301 +f 502/303 501/456 500/304 +f 220/306 221/2566 222/307 +f 512/309 419/252 143/253 +f 518/310 517/1897 511/311 +f 513/313 239/1191 230/314 +f 205/316 30/14 31/317 +f 189/319 370/434 451/320 +f 163/213 318/181 532/321 +f 533/322 224/277 225/278 +f 446/324 448/1848 447/325 +f 335/326 541/382 540/327 +f 544/329 512/309 546/330 +f 329/332 519/475 291/333 +f 199/127 534/1141 262/335 +f 385/226 386/225 416/336 +f 532/321 190/1168 191/338 +f 363/204 117/82 118/83 +f 578/342 581/383 580/343 +f 573/345 572/1416 571/346 +f 561/348 563/968 562/349 +f 241/187 260/150 259/151 +f 590/351 593/2023 592/352 +f 545/331 546/330 595/354 +f 503/356 154/104 155/357 +f 606/359 625/1940 624/360 +f 478/362 481/404 480/363 +f 646/365 649/1935 648/366 +f 590/351 591/353 689/368 +f 564/370 565/1310 651/371 +f 728/373 246/141 184/374 +f 714/376 724/2057 716/377 +f 692/379 574/391 575/380 +f 541/382 335/326 581/383 +f 346/384 68/49 248/385 +f 161/214 231/1059 230/314 +f 128/89 129/88 94/69 +f 698/388 705/2159 704/389 +f 574/391 577/3099 576/392 +f 290/393 289/175 401/249 +f 630/395 631/1316 725/396 +f 733/398 736/2821 735/399 +f 755/401 466/288 496/402 +f 759/403 480/363 481/404 +f 757/406 763/2211 762/407 +f 764/409 496/402 466/288 +f 768/411 767/1656 3808/412 +f 759/403 760/405 488/414 +f 492/415 474/418 475/416 +f 474/418 770/1901 769/419 +f 773/421 468/287 465/289 +f 771/417 774/425 486/296 +f 484/292 485/1641 775/423 +f 774/425 776/1419 489/294 +f 495/298 496/402 764/409 +f 495/298 757/406 761/408 +f 137/427 397/231 784/428 +f 325/188 239/1191 797/430 +f 165/217 519/475 51/432 +f 369/433 32/13 29/15 +f 730/435 731/1875 568/436 +f 90/66 302/257 301/438 +f 243/340 118/83 516/439 +f 800/441 734/400 806/442 +f 817/444 815/451 808/445 +f 816/446 808/445 823/447 +f 306/449 303/1201 447/325 +f 815/451 810/515 809/452 +f 829/453 830/472 828/454 +f 726/397 725/396 501/456 +f 274/164 427/280 424/457 +f 879/459 882/1252 881/460 +f 884/462 883/1843 879/459 +f 219/464 218/1212 217/465 +f 906/466 905/673 904/467 +f 455/469 204/1809 205/316 +f 898/471 882/1252 830/472 +f 903/473 900/484 880/461 +f 377/474 291/333 519/475 +f 923/476 949/553 948/477 +f 946/478 947/488 951/479 +f 3519/481 740/1934 739/482 +f 900/484 899/2835 886/485 +f 225/278 64/46 65/486 +f 182/255 445/1129 442/487 +f 809/452 952/1297 947/488 +f 954/490 960/3494 962/491 +f 927/493 950/480 965/494 +f 885/463 879/459 880/461 +f 925/496 927/493 966/495 +f 343/498 342/1502 341/499 +f 965/494 964/1798 971/501 +f 968/502 971/501 970/503 +f 972/505 968/502 969/504 +f 963/507 961/492 981/508 +f 336/510 337/3449 338/511 +f 992/513 993/1797 827/514 +f 810/515 815/451 996/516 +f 1007/518 1001/1986 1002/519 +f 1012/521 826/678 827/514 +f 1011/523 1009/522 1007/518 +f 294/524 293/1088 292/334 +f 907/525 908/716 920/526 +f 1017/528 579/344 1019/529 +f 1020/531 1023/593 1022/532 +f 1035/534 1024/614 1020/531 +f 1061/536 1060/608 1047/537 +f 1063/539 1061/536 1046/538 +f 1044/535 1020/531 1021/533 +f 1102/542 1094/552 1097/543 +f 1116/545 1126/561 1118/546 +f 1016/548 1015/616 1014/549 +f 881/460 897/468 904/467 +f 816/446 1116/545 1127/551 +f 1094/552 948/477 949/553 +f 514/554 342/1502 167/555 +f 146/557 145/1011 81/59 +f 1133/558 1135/2261 1130/559 +f 1102/542 1133/558 1126/561 +f 822/448 1126/561 1116/545 +f 1145/562 1143/1862 1148/563 +f 1076/565 1144/578 1151/566 +f 1148/563 1143/1862 1086/568 +f 1109/544 1097/543 1114/570 +f 1154/571 1153/574 1156/572 +f 1153/574 925/496 967/497 +f 3464/575 3497/1438 463/576 +f 1144/578 1147/586 1152/579 +f 1156/572 967/497 1163/580 +f 1164/582 1162/581 1169/583 +f 1145/562 1171/587 1176/585 +f 1114/570 1115/1585 1154/571 +f 1183/588 1155/573 1164/582 +f 1184/590 1183/588 1177/589 +f 1069/567 1151/566 1062/540 +f 1023/593 1191/597 1194/594 +f 1162/581 1163/580 1170/595 +f 1195/596 1184/590 1185/591 +f 1183/588 1196/599 1176/585 +f 1201/598 1063/539 1152/579 +f 1061/536 1063/539 1201/598 +f 3825/601 847/624 843/602 +f 1203/604 1202/600 1195/596 +f 1202/600 1201/598 1184/590 +f 1218/606 1060/608 1203/604 +f 1060/608 1061/536 1202/600 +f 1225/609 1218/606 1217/607 +f 671/611 695/2132 694/612 +f 1219/610 1217/607 1024/614 +f 1217/607 1203/604 1034/605 +f 1226/615 1014/549 1015/616 +f 1243/618 1242/650 1234/619 +f 1231/621 1230/3955 1229/622 +f 847/624 1243/618 1233/620 +f 843/602 1233/620 1244/625 +f 1233/620 1234/619 1245/627 +f 1923/628 3761/2110 233/629 +f 2100/630 2108/3944 499/305 +f 3914/631 3864/2180 2135/632 +f 61/44 62/43 323/261 +f 210/134 211/133 217/465 +f 1299/636 1310/646 1309/637 +f 3863/639 1230/3955 1231/621 +f 1066/641 1047/537 1321/642 +f 1322/643 1321/642 1228/623 +f 1060/608 1218/606 1321/642 +f 1325/644 1324/1924 1323/645 +f 1244/625 1245/627 1332/647 +f 1290/649 1234/619 1242/650 +f 1337/652 1330/648 1339/653 +f 1330/648 1332/647 1340/655 +f 1341/656 1332/647 1245/627 +f 1342/658 1340/655 1332/647 +f 1343/659 1342/658 1341/656 +f 1344/660 1341/656 1294/657 +f 3857/662 3856/666 1345/663 +f 1347/665 1348/669 1342/658 +f 3856/666 3854/1793 1295/667 +f 1349/668 1350/704 1348/669 +f 3861/670 1349/668 1347/665 +f 3853/671 1347/665 1343/659 +f 906/466 898/471 829/453 +f 905/673 906/466 1353/672 +f 865/675 1356/679 1355/676 +f 1355/676 1353/672 829/453 +f 1357/677 1355/676 825/455 +f 1356/679 1354/674 1353/672 +f 3834/680 1337/652 1338/654 +f 866/682 1358/683 1356/679 +f 1358/683 1359/706 1354/674 +f 3828/684 878/626 1337/652 +f 838/685 1362/2226 1012/521 +f 1363/687 1364/2125 1338/654 +f 1368/688 1363/687 1339/653 +f 1348/669 1368/688 1340/655 +f 1371/689 1369/699 3824/690 +f 524/692 525/1846 526/693 +f 528/695 529/2725 530/696 +f 1372/698 1370/705 1369/699 +f 535/700 536/2750 537/701 +f 1367/703 1368/688 1348/669 +f 1370/705 1354/674 1359/706 +f 1369/699 1359/706 3833/681 +f 1373/707 910/712 903/473 +f 555/708 556/1166 557/709 +f 1374/711 909/1139 910/712 +f 1373/707 904/467 905/673 +f 1374/711 1373/707 1375/713 +f 1375/713 905/673 1354/674 +f 1378/715 920/526 908/716 +f 376/718 373/2850 651/371 +f 1388/720 928/2032 973/506 +f 586/721 587/1197 588/722 +f 1390/724 1389/2037 1388/720 +f 1391/725 1388/720 969/504 +f 597/726 598/2341 599/727 +f 600/729 601/966 602/730 +f 1392/732 1391/725 970/503 +f 608/734 609/770 610/735 +f 612/737 524/692 523/694 +f 614/739 615/1156 616/740 +f 617/742 618/2279 25/25 +f 620/743 621/1309 622/744 +f 1397/746 1390/724 1391/725 +f 1398/747 1397/746 1392/732 +f 1400/749 987/1613 920/526 +f 1402/750 1403/760 1165/584 +f 636/751 637/2749 638/752 +f 930/754 1404/759 1402/750 +f 641/756 642/2787 643/757 +f 929/755 1402/750 1169/583 +f 1404/759 1405/844 1403/760 +f 1411/761 1366/2126 1365/762 +f 1412/764 1406/763 1415/765 +f 652/767 653/869 654/768 +f 609/770 656/1206 657/771 +f 659/773 660/2839 661/774 +f 558/710 663/1020 586/721 +f 665/776 666/2278 667/777 +f 1413/779 1411/761 1406/763 +f 1418/780 1416/784 3810/781 +f 1417/783 1372/698 1371/689 +f 1416/784 1371/689 3829/691 +f 1419/785 1417/783 1416/784 +f 1386/786 909/1139 1374/711 +f 677/788 678/3199 679/789 +f 1385/791 1386/786 1420/787 +f 1420/787 1374/711 1376/714 +f 685/794 686/856 687/795 +f 1421/792 1420/787 1422/793 +f 528/695 690/905 691/798 +f 1422/793 1376/714 1372/698 +f 1018/530 1019/529 747/799 +f 699/801 700/808 701/802 +f 1424/804 578/342 579/344 +f 3663/805 1597/1397 1767/806 +f 700/808 699/801 711/809 +f 1093/811 3746/3924 3754/812 +f 717/814 718/1948 530/696 +f 721/816 722/2722 723/817 +f 704/389 1650/2184 3543/819 +f 19/11 1429/823 1426/821 +f 1429/823 1428/2168 1427/824 +f 1658/825 1659/1576 3542/826 +f 1439/828 1437/831 1434/829 +f 1437/831 1436/963 1435/832 +f 1426/821 1427/824 1433/833 +f 1442/835 1431/1886 1432/834 +f 742/837 743/1237 744/838 +f 1432/834 1433/833 1441/840 +f 751/841 752/2816 753/842 +f 1438/830 1434/829 1403/760 +f 1446/845 1445/851 1444/846 +f 1447/848 1448/852 1446/845 +f 3860/849 1447/848 1443/847 +f 1415/765 1367/703 1445/851 +f 1414/766 1415/765 1446/845 +f 2173/853 1683/1805 469/302 +f 777/854 778/1333 779/855 +f 780/857 781/2875 782/858 +f 1676/860 1693/1016 1806/861 +f 3859/863 1451/1244 1349/668 +f 789/864 790/1110 791/865 +f 745/839 792/1871 793/867 +f 652/767 794/1124 795/868 +f 1455/870 1458/1976 1457/871 +f 1454/873 1367/703 1350/704 +f 610/735 691/798 802/875 +f 3831/877 3816/3662 698/388 +f 1352/878 1044/535 1045/541 +f 1015/616 1016/548 1459/880 +f 811/882 812/1230 813/883 +f 2118/885 3815/1967 3817/886 +f 819/888 820/1811 821/889 +f 1466/891 1463/3868 1194/594 +f 1467/893 1468/896 1465/894 +f 1182/895 1165/584 1468/896 +f 832/897 812/1230 833/898 +f 835/900 836/2798 837/901 +f 1467/893 1466/891 1190/892 +f 1469/903 1470/3943 1444/846 +f 840/904 700/808 712/810 +f 1453/906 1470/3943 1469/903 +f 599/727 844/1245 845/907 +f 1226/615 1450/2169 3849/909 +f 851/911 852/1137 853/912 +f 855/914 744/838 856/915 +f 858/917 859/1412 860/918 +f 861/920 862/2827 863/921 +f 1014/549 1226/615 3855/910 +f 867/924 676/790 868/925 +f 870/927 871/2778 872/928 +f 874/930 875/1035 876/931 +f 1310/646 1323/645 1471/933 +f 1476/934 1433/833 1427/824 +f 1461/936 1476/934 1475/935 +f 887/937 888/1919 889/938 +f 788/866 791/865 892/940 +f 894/942 895/961 896/943 +f 1460/881 1475/935 1227/617 +f 901/945 902/1845 524/692 +f 1465/894 1478/964 1477/946 +f 1865/948 3503/2193 3500/949 +f 911/951 912/2728 913/952 +f 916/954 917/1106 918/955 +f 1850/957 3505/987 3507/958 +f 921/960 922/2351 895/961 +f 1479/962 1435/832 1436/963 +f 926/965 664/778 667/777 +f 1481/967 562/349 563/968 +f 269/163 1483/1043 84/970 +f 931/972 932/1300 933/973 +f 934/974 935/1045 614/739 +f 936/975 685/794 688/796 +f 938/977 659/773 662/775 +f 1484/979 270/162 122/980 +f 941/982 942/1102 835/900 +f 320/983 321/1830 509/984 +f 1849/986 3510/3918 3505/987 +f 84/970 1483/1043 1484/979 +f 1487/988 1490/1027 1488/989 +f 1757/991 1758/3871 3502/992 +f 365/207 1492/1004 1491/994 +f 461/285 79/57 80/312 +f 117/82 363/204 362/205 +f 1494/996 540/327 541/382 +f 926/965 601/966 957/998 +f 1477/946 1441/840 1433/833 +f 1709/1000 1588/1526 1585/1001 +f 119/194 117/82 1496/995 +f 271/1003 1497/1778 504/358 +f 511/311 517/1897 189/319 +f 345/193 1496/995 1492/1004 +f 57/42 344/1005 299/1006 +f 1501/1007 1499/1010 268/1008 +f 267/159 268/1008 1499/1010 +f 974/1012 975/2766 976/1013 +f 1678/1015 1652/1508 1693/1016 +f 3846/1017 1682/1806 1807/1018 +f 557/709 982/1167 663/1020 +f 983/1021 941/982 984/1022 +f 1443/847 1444/846 3849/909 +f 421/254 1500/1009 268/1008 +f 989/1024 990/2760 991/1025 +f 1490/1027 1487/988 418/1028 +f 279/1030 280/167 309/1031 +f 997/1032 868/925 676/790 +f 998/1033 26/2732 999/1034 +f 1504/1029 418/1028 38/21 +f 1506/1037 1508/1041 1507/1038 +f 360/1040 361/1408 1508/1041 +f 1506/1037 1486/1039 207/131 +f 939/978 1005/1081 1006/1042 +f 270/162 1484/979 1483/1043 +f 66/45 63/47 546/330 +f 1010/1044 742/837 793/867 +f 367/210 428/259 437/266 +f 244/318 31/317 363/204 +f 1670/1047 3532/1639 3534/1048 +f 209/215 206/129 1510/1050 +f 388/229 389/228 426/1056 +f 427/280 274/164 250/142 +f 161/214 520/1430 521/1058 +f 100/71 246/141 45/33 +f 1025/1060 1026/1232 608/734 +f 1029/1062 1030/1225 1031/1063 +f 939/978 662/775 1033/1065 +f 41/28 42/30 594/355 +f 1036/1068 780/857 783/859 +f 702/803 701/802 1038/1070 +f 1040/1072 1041/1155 1042/1073 +f 362/205 32/13 369/433 +f 187/123 1520/1358 477/1076 +f 70/51 1487/988 539/990 +f 1049/1078 600/729 603/731 +f 613/741 867/924 869/926 +f 860/918 1050/2740 1051/1080 +f 1005/1081 1052/2818 1053/1082 +f 753/842 1055/1087 1056/1083 +f 1057/1085 1058/2752 1059/1086 +f 293/1088 288/172 1522/1089 +f 288/172 212/173 1521/1077 +f 292/334 1522/1089 1523/1090 +f 331/1091 1507/1038 1508/1041 +f 306/449 452/274 453/276 +f 100/71 44/140 41/28 +f 462/1094 1524/1092 78/58 +f 330/1095 331/1091 1524/1092 +f 635/753 1067/1423 1068/1096 +f 1485/1097 1527/1833 1526/1098 +f 206/129 1485/1097 1528/1099 +f 1070/1100 1071/1255 1072/1101 +f 942/1102 941/982 1073/1103 +f 916/954 933/973 1075/1105 +f 440/270 1529/1109 1530/1107 +f 157/108 158/107 1514/1108 +f 1529/1109 162/2842 5/6 +f 371/212 595/354 546/330 +f 790/1110 586/721 663/1020 +f 1077/1111 858/917 857/919 +f 1403/760 1434/829 1435/832 +f 1080/1113 1081/2783 1082/1114 +f 531/1116 520/1430 1529/1109 +f 21/22 1083/1249 1084/1117 +f 272/350 1532/1367 1531/1119 +f 690/905 712/810 802/875 +f 335/326 3571/3933 3567/1120 +f 1090/1121 1030/1225 1029/1062 +f 1092/1123 795/868 794/1124 +f 1533/1125 396/232 137/427 +f 661/774 660/2839 1095/1127 +f 69/52 444/2847 445/1129 +f 1099/1130 1100/2789 1101/1131 +f 38/21 39/20 1536/1133 +f 1104/1134 1105/2753 1106/1135 +f 852/1137 1107/1323 1108/1138 +f 1377/717 908/716 909/1139 +f 291/333 377/474 411/237 +f 316/1140 1536/1133 516/439 +f 539/990 1488/989 1533/1125 +f 1505/1036 1536/1133 316/1140 +f 1110/1143 1111/2862 1112/1144 +f 1539/1146 1537/1149 460/283 +f 522/1148 441/2805 1537/1149 +f 834/902 837/901 1120/1150 +f 1122/1152 1123/3253 1124/1153 +f 612/737 1125/1812 1041/1155 +f 935/1045 793/867 615/1156 +f 276/169 278/168 130/1157 +f 1686/1158 3549/1590 3522/1159 +f 193/1161 190/1168 1541/1162 +f 231/1059 521/1058 1540/1164 +f 556/1166 1037/1069 982/1167 +f 365/207 253/146 85/64 +f 190/1168 532/321 318/181 +f 1810/1169 765/2091 3574/1170 +f 3924/1172 1867/1709 3512/1173 +f 1132/1175 983/1021 985/1023 +f 208/130 101/74 102/76 +f 1134/1177 1033/1065 662/775 +f 1491/994 518/310 80/312 +f 429/1178 133/92 1542/1179 +f 1137/1180 1138/2830 915/956 +f 172/117 436/267 428/259 +f 1139/1181 1140/2786 1141/1182 +f 549/1184 96/68 54/39 +f 1517/1185 1519/1253 1518/1186 +f 834/902 1119/1151 984/1022 +f 1543/1189 513/313 286/315 +f 1544/1190 797/430 239/1191 +f 133/92 134/91 1544/1190 +f 506/1192 361/1408 257/1193 +f 420/251 327/1304 328/394 +f 1158/1194 1159/1880 1160/1195 +f 587/1197 1104/1134 1103/1136 +f 607/736 1161/1240 1027/1061 +f 304/1199 1546/2225 1545/1200 +f 364/206 1491/994 77/56 +f 69/52 70/51 198/128 +f 700/808 840/904 1112/1144 +f 3877/1202 626/1496 3525/1203 +f 1166/1205 719/815 657/771 +f 1167/1207 1168/2858 858/917 +f 1300/638 3523/3940 3524/1208 +f 1172/1209 1173/2770 1174/1210 +f 218/1212 203/236 200/1213 +f 1179/1214 1180/2849 1181/1215 +f 372/1217 183/211 97/73 +f 89/67 104/2810 227/1218 +f 1186/1219 1187/1278 1188/1220 +f 172/117 173/116 1517/1185 +f 1482/971 84/970 81/59 +f 1090/1121 1192/1922 1193/1224 +f 394/1226 395/1284 353/202 +f 526/693 525/1846 1198/1228 +f 1199/1231 1200/2736 1026/1232 +f 606/359 623/361 697/1233 +f 1204/1235 1205/1332 1206/1236 +f 1207/1238 1208/2819 523/694 +f 1209/1239 1210/2836 867/924 +f 914/953 913/952 685/794 +f 1478/964 1436/963 1441/840 +f 1029/1062 1028/1064 1161/1240 +f 1211/1241 1212/1791 1213/1242 +f 3858/923 1453/906 1451/1244 +f 844/1245 1215/1887 1216/1246 +f 423/458 193/1161 273/1163 +f 1220/1247 1221/1259 1222/1248 +f 22/1250 1223/1344 1224/1251 +f 882/1252 898/471 897/468 +f 1519/1253 1517/1185 173/116 +f 1189/1221 1188/1220 1232/1254 +f 349/197 350/196 550/337 +f 1071/1255 1235/1979 1236/1256 +f 1237/1257 1238/2765 1239/1258 +f 1221/1259 1186/1219 1189/1221 +f 1510/1050 1528/1099 1512/1053 +f 939/978 1032/1066 1241/1262 +f 1556/1263 1530/1107 5/6 +f 1553/1264 1554/1795 394/1226 +f 404/1265 1556/1263 67/48 +f 1247/1267 1248/2846 1249/1268 +f 142/93 199/127 238/180 +f 1251/1270 1067/1423 635/753 +f 850/913 1252/2796 1253/1272 +f 1254/1273 1167/1207 1077/1111 +f 57/42 132/90 133/92 +f 443/1275 430/263 552/1276 +f 1187/1278 1172/1209 1175/1211 +f 1256/1279 1070/1100 831/899 +f 432/1280 405/233 382/1281 +f 741/1282 748/1906 747/799 +f 434/265 350/196 351/246 +f 349/197 432/1280 383/222 +f 251/323 124/84 1481/967 +f 395/1284 384/1463 352/203 +f 1518/1186 1519/1253 1550/1285 +f 1558/1286 410/238 378/216 +f 109/157 263/156 314/1287 +f 285/170 1514/1108 1513/1198 +f 395/1284 394/1226 393/1288 +f 202/135 203/236 410/238 +f 417/247 408/248 405/233 +f 1246/1269 1257/1351 1258/1290 +f 3/223 1559/1330 297/1291 +f 1259/1292 1260/2866 1261/1293 +f 403/264 404/1265 347/1266 +f 955/1295 954/490 953/1296 +f 462/1094 50/35 51/432 +f 1096/1128 1095/1127 687/795 +f 429/1178 147/97 60/40 +f 896/943 1264/1910 1265/1299 +f 1267/1301 721/816 1268/1302 +f 423/458 424/457 327/1304 +f 37/19 179/118 180/120 +f 20/24 23/23 1187/1278 +f 1256/1279 1168/2858 1071/1255 +f 1188/1220 1175/1211 1269/1306 +f 1236/1256 1270/1980 1271/1307 +f 1272/1308 536/2750 535/700 +f 565/1310 564/370 463/576 +f 1273/1312 792/1871 745/839 +f 876/931 1254/1273 1255/1274 +f 316/1140 33/18 164/110 +f 437/266 1516/1966 503/356 +f 194/124 1494/996 1495/997 +f 1275/1315 1276/1376 864/922 +f 624/360 625/1940 631/1316 +f 1277/1317 1274/1313 1137/1180 +f 569/437 568/436 567/1319 +f 1481/967 124/84 125/86 +f 324/189 325/188 547/431 +f 1279/1322 1108/1138 1107/1323 +f 1525/1325 332/3222 329/332 +f 1281/1326 1278/1318 1137/1180 +f 171/112 168/114 1553/1264 +f 1488/989 73/55 396/232 +f 1557/1328 1561/1521 1562/1329 +f 1282/1331 856/915 1206/1236 +f 1053/1082 1277/1317 1278/1318 +f 778/1333 777/854 607/736 +f 713/1335 583/1384 3566/1336 +f 251/323 225/278 144/98 +f 4/1 357/200 348/195 +f 709/1338 708/2182 707/1339 +f 728/373 48/31 45/33 +f 261/1341 135/1847 1563/1342 +f 789/864 1286/2354 1287/1343 +f 74/54 314/1287 263/156 +f 403/264 284/224 385/226 +f 1178/1216 1181/1215 1240/1260 +f 1223/1344 1259/1292 1289/1345 +f 1220/1247 20/24 1186/1219 +f 296/1187 1518/1186 354/1346 +f 784/428 459/284 1538/1348 +f 1181/1215 1180/2849 1291/1350 +f 1269/1306 1292/2860 1257/1351 +f 1566/1349 1538/1348 438/269 +f 136/429 784/428 1566/1349 +f 1563/1342 1564/1353 169/113 +f 107/81 114/155 109/157 +f 1297/1355 1282/1331 1298/1356 +f 1464/947 1477/946 1476/934 +f 1520/1358 187/123 507/1359 +f 1301/1361 1302/2795 1303/1362 +f 1306/1364 1307/2353 1308/1365 +f 175/176 456/2822 1532/1367 +f 1532/1367 456/2822 200/1213 +f 1311/1368 1266/1303 1312/1369 +f 872/928 1314/2859 1315/1371 +f 3836/603 843/602 878/626 +f 1305/1366 1308/1365 864/922 +f 1040/1072 1275/1315 863/921 +f 1564/1353 1566/1349 399/1352 +f 592/352 1576/2019 1575/1378 +f 591/353 1575/1378 1088/1379 +f 1581/1380 1584/1631 1583/1381 +f 1196/599 1152/579 1147/586 +f 710/1383 582/1461 583/1384 +f 285/170 407/234 408/248 +f 953/1296 954/490 961/492 +f 1594/1385 1592/1390 1589/1386 +f 1585/1001 1588/1526 1587/1388 +f 1592/1390 1591/1548 1590/1391 +f 3885/1392 945/1944 944/1393 +f 1600/1395 1599/1525 1598/1396 +f 1604/1398 1603/3139 1602/1399 +f 1399/748 1392/732 979/733 +f 1589/1386 1590/1391 1596/1402 +f 1610/1404 1609/1963 1608/1405 +f 298/1407 257/1193 361/1408 +f 551/1277 552/1276 276/169 +f 1627/1409 1626/1487 3814/1410 +f 859/1412 811/882 818/890 +f 1078/1112 857/919 1328/1413 +f 1555/1415 439/271 1530/1107 +f 572/1416 573/345 680/1417 +f 772/422 465/289 776/1419 +f 977/1014 1281/1326 918/955 +f 404/1265 403/264 392/1289 +f 1054/1084 1331/2759 750/843 +f 1644/1420 1645/1985 1643/1421 +f 932/1300 1265/1299 1082/1114 +f 1067/1423 1333/2808 1334/1424 +f 1540/1164 1539/1146 264/1147 +f 597/726 1335/1537 643/757 +f 471/1426 761/408 762/407 +f 1642/1422 696/1234 3831/877 +f 1644/1420 1642/1422 3842/1427 +f 923/476 946/478 950/480 +f 96/68 549/1184 548/1429 +f 520/1430 531/1116 522/1148 +f 445/1129 444/2847 443/1275 +f 849/1431 839/3661 848/1432 +f 480/363 759/403 755/401 +f 1646/1434 760/405 481/404 +f 311/1436 426/1056 1567/1437 +f 464/1311 463/576 3497/1438 +f 3497/1438 1360/2001 1361/1440 +f 234/1055 237/279 236/341 +f 190/1168 193/1161 192/250 +f 153/105 154/104 152/1441 +f 231/1059 287/1165 286/315 +f 1552/1327 1553/1264 1551/1227 +f 760/405 1646/1434 1648/1442 +f 3832/1443 1647/1964 1649/1444 +f 828/454 827/514 826/678 +f 52/34 167/555 166/218 +f 1663/1446 1662/1674 1661/1447 +f 287/1165 107/81 115/80 +f 668/1449 671/611 670/613 +f 634/1451 645/1725 640/1452 +f 553/1454 560/2229 559/1455 +f 118/83 36/16 33/18 +f 492/415 484/292 491/424 +f 3552/1458 1652/1508 1651/1459 +f 582/1461 589/1849 584/1462 +f 384/1463 395/1284 392/1289 +f 1381/1464 1382/2307 1383/1465 +f 1562/1329 1561/1521 435/268 +f 952/1297 953/1296 951/479 +f 3529/1467 3566/1336 583/1384 +f 1660/1448 1661/1447 1667/1468 +f 1394/1470 1395/1722 1396/1471 +f 1660/1448 1665/1569 1664/1473 +f 1671/1474 1670/1047 1669/1049 +f 1624/1476 1625/1485 1673/1477 +f 1407/1479 1408/2312 1409/1480 +f 1677/1482 1676/860 1675/862 +f 1613/1484 1679/1486 1677/1482 +f 1679/1486 1678/1015 1676/860 +f 1626/1487 1681/1804 3811/1488 +f 534/1141 199/127 198/128 +f 803/1489 733/398 734/400 +f 400/386 248/385 191/338 +f 65/486 66/45 143/253 +f 3526/1490 1657/1917 1656/1491 +f 402/1493 159/106 157/108 +f 629/1494 628/2154 627/1495 +f 461/285 477/1076 49/36 +f 758/1497 757/406 495/298 +f 796/1498 787/1780 786/1499 +f 406/235 407/234 1513/1198 +f 342/1502 343/498 166/218 +f 1694/1503 1659/1576 1658/825 +f 1692/1505 1687/3508 1694/1503 +f 3557/1507 1693/1016 1652/1508 +f 3921/1509 1704/1530 1703/1510 +f 326/1321 547/431 302/257 +f 3916/1512 3921/1509 1702/1513 +f 3919/1515 3918/1520 1698/1516 +f 1699/1518 1691/3926 3927/1519 +f 1557/1328 406/235 1560/1501 +f 1127/551 1116/545 1117/547 +f 400/386 401/249 289/175 +f 1706/1514 1702/1513 1707/1523 +f 1707/1523 1702/1513 1599/1525 +f 1709/1000 1706/1514 1708/1524 +f 1714/1527 1712/1553 1711/1528 +f 3919/1515 3915/1788 1709/1000 +f 1704/1530 1711/1528 1577/1531 +f 1716/1532 1714/1527 1713/1529 +f 1559/1330 1562/1329 1549/1222 +f 1722/1534 1721/1557 1720/1535 +f 1335/1537 597/726 596/728 +f 410/238 411/237 377/474 +f 973/506 1170/595 1163/580 +f 168/114 169/113 399/1352 +f 1571/813 682/1542 1089/1540 +f 1572/1541 681/1418 682/1542 +f 749/1543 646/365 647/367 +f 1730/1545 1724/1554 1723/1546 +f 1594/1385 1582/1382 1729/1547 +f 1729/1547 1723/1546 1591/1548 +f 1384/1550 1378/715 1377/717 +f 1732/1552 1731/1549 1712/1553 +f 1724/1554 1730/1545 1731/1549 +f 1722/1534 1724/1554 1732/1552 +f 1721/1557 1722/1534 1733/1556 +f 1734/1558 1733/1556 1716/1532 +f 1735/1560 1737/1568 1736/1561 +f 1733/1556 1732/1552 1714/1527 +f 1663/1446 1664/1473 1741/1563 +f 1742/1564 1665/1569 1740/1565 +f 1738/1567 1739/1582 1737/1568 +f 1665/1569 1660/1448 1666/1469 +f 1665/1569 1742/1564 1744/1570 +f 1725/1571 1726/1583 1746/1572 +f 1591/1548 1725/1571 1745/1573 +f 1590/1391 1745/1573 1747/1574 +f 1745/1573 1746/1572 1748/1575 +f 1659/1576 1688/3953 3538/1577 +f 3287/1578 1760/2207 3545/1579 +f 1185/591 1177/589 1182/895 +f 1664/1473 1744/1570 1749/1581 +f 1741/1563 1749/1581 1739/1582 +f 1746/1572 1742/1564 1743/1566 +f 1726/1583 1744/1570 1742/1564 +f 1115/1585 924/1584 1153/574 +f 1654/1586 3546/3931 3575/1587 +f 1896/1589 3562/1933 3549/1590 +f 1720/1535 1749/1581 1744/1570 +f 1721/1557 1739/1582 1749/1581 +f 1750/1591 1718/1841 1701/1517 +f 1697/1562 1736/1561 1750/1591 +f 1151/566 1152/579 1063/539 +f 1751/1592 1752/1593 1670/1047 +f 1695/1504 1658/825 1752/1593 +f 961/492 962/491 986/1594 +f 1770/1595 1769/1619 1768/1596 +f 1766/1597 1594/1385 1593/1387 +f 1731/1549 1759/3895 1579/1599 +f 1579/1599 1777/1607 1774/1600 +f 3928/1602 1772/1612 1771/1603 +f 1764/1605 1772/1612 3928/1602 +f 1777/1607 1776/1630 1775/1608 +f 3762/1609 3763/2780 1699/1518 +f 1004/1610 1127/551 1128/1522 +f 1774/1600 1775/1608 1771/1603 +f 987/1613 1400/749 1399/748 +f 1578/1601 1774/1600 1772/1612 +f 1783/1614 1782/1696 1781/1615 +f 1597/1397 1598/1396 1770/1595 +f 639/1453 1878/1731 3895/1617 +f 3928/1602 3929/1604 1769/1619 +f 1793/1620 1792/2099 1789/1621 +f 3929/1604 3920/1632 1798/1623 +f 3508/1624 3516/3950 3773/1625 +f 1802/1626 1867/1709 3924/1172 +f 1788/1622 1790/1678 1794/1628 +f 1793/1620 1794/1628 1795/1629 +f 3773/1625 3772/1648 1675/862 +f 1584/1631 1581/1380 1783/1614 +f 1771/1603 1797/1636 3920/1632 +f 1801/1633 1799/1635 1798/1623 +f 1768/1596 1769/1619 1798/1623 +f 1775/1608 1796/1637 1797/1636 +f 508/1360 514/554 515/556 +f 1796/1637 1803/1708 1802/1626 +f 1800/1634 1798/1623 3920/1632 +f 1794/1628 1805/1673 1804/1638 +f 3532/1639 1670/1047 1752/1593 +f 485/1641 1808/1645 1807/1018 +f 3809/413 3844/2092 1640/1642 +f 3837/1643 3844/2092 1810/1169 +f 485/1641 482/291 1640/1642 +f 1690/1646 1691/3926 3770/1647 +f 487/295 488/414 1648/1442 +f 3839/1650 1813/3880 1816/1651 +f 3838/1653 1811/1649 1648/1442 +f 3839/1650 1812/1654 1811/1649 +f 1812/1654 1809/1660 487/295 +f 1641/1655 1809/1660 767/1656 +f 465/289 466/288 755/401 +f 767/1656 1815/1661 3823/1657 +f 3822/1652 1816/1651 3826/1658 +f 1809/1660 1812/1654 1815/1661 +f 3837/1643 1653/1644 1651/1459 +f 675/1662 672/3186 3541/1663 +f 1814/1665 1649/1444 1822/1666 +f 1821/1667 1822/1666 3821/1668 +f 1824/1670 1822/1666 1649/1444 +f 1827/1672 1849/986 1850/957 +f 1668/1475 1669/1049 1662/1674 +f 1779/1675 1780/1747 1848/1676 +f 1790/1678 1827/1672 1805/1673 +f 1833/1679 1836/3184 1853/1680 +f 3521/1682 3506/1735 693/381 +f 1614/1683 1615/1721 1616/1684 +f 1852/1681 1853/1680 3498/1686 +f 1620/1688 1621/2326 1622/1689 +f 1855/1691 1765/1598 1574/1692 +f 1847/1694 1852/1681 3501/1687 +f 1766/1597 1765/1598 1855/1691 +f 1629/1697 1630/2311 1631/1698 +f 1633/1700 1622/1689 1634/1701 +f 1635/1703 1636/2331 1637/1704 +f 1848/1676 1833/1679 1852/1681 +f 1855/1691 1861/1693 1863/1706 +f 1803/1708 1866/3870 1867/1709 +f 1862/1707 1863/1706 1831/1710 +f 1782/1696 1855/1691 1862/1707 +f 3922/1627 3924/1172 1865/948 +f 1873/1712 1872/2117 1870/1713 +f 1874/1715 1869/1714 799/1716 +f 2045/1718 3878/1937 3897/1719 +f 1219/610 1345/663 1295/667 +f 1615/1721 1614/1683 1396/1471 +f 3884/1618 3895/1617 1877/1723 +f 645/1725 3898/2757 3786/1726 +f 1345/663 1219/610 1035/534 +f 634/1451 639/1453 3884/1618 +f 15/8 1887/3468 1327/1729 +f 3910/1730 3895/1617 1878/1731 +f 1894/1733 604/1850 605/1734 +f 3506/1735 3551/1899 627/1495 +f 3560/1736 640/1452 645/1725 +f 340/500 341/499 454/275 +f 1897/1737 194/124 195/126 +f 1889/1739 1882/1920 1877/1723 +f 1901/1741 94/69 129/88 +f 196/125 749/1543 754/1544 +f 1705/1744 1704/1530 3921/1509 +f 340/500 378/216 166/218 +f 1570/1745 1480/969 563/968 +f 1904/1746 1494/996 194/124 +f 1781/1615 1862/1707 1832/1711 +f 1905/1748 549/1184 55/38 +f 1000/1750 994/1796 995/1751 +f 986/1594 919/527 920/526 +f 1191/597 1185/591 1190/892 +f 2094/1752 2077/1982 2075/1753 +f 1920/1755 1921/2196 1919/1756 +f 453/276 454/275 1912/1758 +f 1915/1757 1919/1756 1918/1760 +f 3882/1762 2112/1890 2106/1763 +f 1655/1588 3575/1587 3531/1765 +f 1916/1761 1918/1760 1926/1767 +f 704/389 3554/820 3561/1769 +f 278/168 1916/1761 1925/1768 +f 3565/1770 3564/2811 1818/1771 +f 1097/543 949/553 1115/1585 +f 1927/1773 1928/2201 727/375 +f 3578/1774 3579/3584 3654/1775 +f 1920/1755 310/184 307/186 +f 1929/1777 307/186 48/31 +f 503/356 504/358 1497/1778 +f 1902/1779 1903/2111 787/1780 +f 1816/1651 1821/1667 3820/1669 +f 1925/1768 1926/1767 1923/628 +f 1535/1782 1569/1819 1568/1783 +f 254/244 252/145 258/147 +f 1509/1046 1497/1778 366/208 +f 119/194 86/63 35/1785 +f 219/464 288/172 293/1088 +f 141/174 46/32 47/191 +f 542/470 205/316 244/318 +f 1940/1787 552/1276 430/263 +f 1779/1675 1828/1677 1827/1672 +f 1701/1517 1710/1842 3915/1788 +f 1661/1447 3550/3898 3515/1789 +f 270/162 53/37 754/1544 +f 197/1314 1947/2080 749/1543 +f 1727/1790 1728/3193 1212/1791 +f 53/37 54/39 232/1743 +f 1465/894 1468/896 1479/962 +f 1284/1792 3862/640 3854/1793 +f 1951/1794 446/324 412/241 +f 168/114 398/1539 1554/1795 +f 1486/1039 1485/1097 206/129 +f 506/1192 77/56 78/58 +f 994/1796 1001/1986 1007/518 +f 951/479 953/1296 963/507 +f 1013/550 3859/863 3861/670 +f 3826/1658 3820/1669 1820/1772 +f 1498/1223 1909/1814 1954/1799 +f 299/1006 298/1407 543/1800 +f 1754/1801 1755/2271 1756/1802 +f 1681/1804 469/302 1683/1805 +f 1696/1506 1694/1503 1695/1504 +f 13/7 14/9 738/1807 +f 473/420 476/2205 475/416 +f 482/291 1641/1655 768/411 +f 204/1809 62/43 30/14 +f 1761/1810 1762/2739 820/1811 +f 611/738 1763/3241 1125/1812 +f 1501/1007 1503/2788 1908/1813 +f 1074/1104 1073/1103 711/809 +f 1960/1815 1944/1912 82/61 +f 120/1816 1956/1911 1960/1815 +f 35/1785 86/63 87/78 +f 1773/1817 1199/1231 1025/1060 +f 1965/1818 1545/1200 1569/1819 +f 494/299 761/408 471/1426 +f 1966/1820 1967/1824 1969/1821 +f 446/324 1951/1794 1971/1823 +f 174/115 368/209 125/86 +f 1580/1555 1579/1599 1578/1601 +f 1785/1825 1786/2724 1787/1826 +f 1972/1828 1546/2225 304/1199 +f 1254/1273 876/931 875/1035 +f 1973/1829 341/499 342/1502 +f 321/1830 1912/1758 1973/1829 +f 1910/1831 277/242 275/243 +f 509/984 1973/1829 514/554 +f 1486/1039 1507/1038 1527/1833 +f 1974/1834 1874/1715 804/1717 +f 1977/1836 1976/3511 1974/1834 +f 1980/1838 448/1848 1966/1820 +f 379/219 1/3 2/2 +f 1718/1841 1715/1533 1710/1842 +f 884/462 995/1751 992/513 +f 1680/1844 1684/3934 1678/1015 +f 902/1845 990/2760 525/1846 +f 344/1005 255/149 256/148 +f 135/1847 138/1126 137/427 +f 448/1848 446/324 1967/1824 +f 589/1849 605/1734 604/1850 +f 910/712 909/1139 908/716 +f 1981/1839 1966/1820 1968/1822 +f 1982/1852 1981/1839 1987/1851 +f 1988/1854 1979/1853 1987/1851 +f 1990/1856 1988/1854 1989/1855 +f 1991/1857 1989/1855 1993/1858 +f 322/1860 321/1830 320/983 +f 992/513 828/454 830/472 +f 1144/578 1076/565 1086/568 +f 1995/1863 1977/1836 1978/1837 +f 1133/558 1129/560 1118/546 +f 1997/1865 1995/1863 1994/1864 +f 870/927 1823/1884 1335/1537 +f 805/443 806/442 1982/1852 +f 727/375 184/374 2000/1868 +f 1996/1866 1994/1864 1988/1854 +f 1994/1864 1978/1837 1979/1853 +f 1829/1870 616/740 792/1871 +f 1830/1872 1073/1103 941/982 +f 798/1873 803/1489 800/441 +f 729/1874 732/2883 731/1875 +f 2011/1876 2012/2802 2023/1877 +f 1834/1879 1835/2845 846/908 +f 402/1493 283/171 284/224 +f 2022/1878 2023/1877 2024/1881 +f 1838/1883 718/1948 989/1024 +f 810/515 955/1295 952/1297 +f 1823/1884 1839/2741 1840/1885 +f 1430/822 1426/821 1432/834 +f 1215/1887 844/1245 1841/1888 +f 1316/1372 1208/2819 873/929 +f 2112/1890 1401/2337 1384/1550 +f 1842/1891 1843/2769 1844/1892 +f 1159/1880 846/908 845/907 +f 837/901 27/26 1846/1894 +f 1971/1823 1951/1794 2030/1895 +f 517/1897 369/433 370/434 +f 1471/933 2026/1923 2027/1896 +f 3551/1899 3525/1203 626/1496 +f 2174/1900 2175/3580 770/1901 +f 935/1045 934/974 1854/1902 +f 1613/1484 1619/1949 1611/1903 +f 1231/621 1228/623 1225/609 +f 1856/1905 1857/2779 891/941 +f 1300/638 1309/637 748/1906 +f 1150/1907 1149/2264 1858/1908 +f 1643/1421 606/359 696/1234 +f 1215/1887 1265/1299 1264/1910 +f 1320/1377 1860/2837 902/1845 +f 1956/1911 1943/3865 1944/1912 +f 2031/1913 668/1449 669/1450 +f 2034/1915 1325/644 1310/646 +f 1879/1916 1880/2096 1656/1491 +f 40/1305 245/1786 242/440 +f 1992/1859 1993/1858 2039/1918 +f 888/1919 958/999 957/998 +f 1882/1920 1889/1739 1996/1866 +f 1078/1112 1138/2830 1255/1274 +f 1871/1921 912/2728 1192/1922 +f 294/524 411/237 218/1212 +f 1323/645 2041/1925 2026/1923 +f 123/981 1960/1815 83/60 +f 1324/1924 2036/1927 2041/1925 +f 384/1463 358/199 359/260 +f 1324/1924 1325/644 2038/1926 +f 1883/1928 1884/2082 1885/1929 +f 287/1165 1540/1164 114/155 +f 1096/1128 1886/2340 1134/1177 +f 915/956 1329/1414 931/972 +f 806/442 1980/1838 1981/1839 +f 3533/1930 3529/1467 584/1462 +f 1425/800 2030/1895 2042/1931 +f 1018/530 2042/1931 1948/1932 +f 3562/1933 1896/1589 740/1934 +f 1948/1932 2042/1931 649/1935 +f 1881/1936 1882/1920 1990/1856 +f 1900/1742 129/88 130/1157 +f 992/513 995/1751 994/1796 +f 923/476 927/493 925/496 +f 3878/1937 2045/1718 2047/1938 +f 1643/1421 2048/1975 625/1940 +f 2050/1941 2052/1961 2051/1942 +f 2045/1718 1405/844 1404/759 +f 3876/1939 2047/1938 945/1944 +f 1139/1181 1080/1113 1079/1115 +f 1037/1069 1856/1905 892/940 +f 2055/1945 2053/2009 2057/1946 +f 1198/1228 989/1024 718/1948 +f 1619/1949 2058/1951 1612/1950 +f 2058/1951 1605/1954 1606/1952 +f 2059/1953 2060/2882 1607/1406 +f 2058/1951 1619/1949 1624/1476 +f 71/1955 72/50 179/118 +f 405/233 406/235 1557/1328 +f 322/1860 1548/2355 1972/1828 +f 2061/1956 2052/1961 2063/1957 +f 2066/1959 2065/1969 2067/1960 +f 2052/1961 2061/1956 2064/1962 +f 1609/1963 1610/1404 2066/1959 +f 1515/1965 151/101 152/1441 +f 1009/522 827/514 993/1797 +f 1644/1420 3843/1428 3815/1967 +f 279/1030 1915/1757 1916/1761 +f 1285/1968 3863/639 3862/640 +f 1647/1964 2066/1959 1825/1671 +f 2056/1947 2057/1946 2067/1960 +f 319/1861 320/983 1953/1970 +f 667/777 666/2278 1913/1972 +f 2070/1974 631/1316 625/1940 +f 2052/1961 2050/1941 2055/1945 +f 2038/1926 1654/1586 1655/1588 +f 1606/1952 1601/1400 2073/1977 +f 1235/1979 1917/2851 1270/1980 +f 2072/1978 2073/1977 2075/1753 +f 2059/1953 1606/1952 2072/1978 +f 2074/1981 2075/1753 2077/1982 +f 1601/1400 1602/1399 2078/1984 +f 2049/1943 2048/1975 1643/1421 +f 1000/1750 1004/1610 1001/1986 +f 1089/1540 943/2088 684/369 +f 1931/1987 1286/2354 1306/1364 +f 1462/1989 1459/880 1021/533 +f 1932/1990 1933/3405 1934/1991 +f 875/1035 874/930 1846/1894 +f 1936/1993 1051/1080 1937/1994 +f 44/140 45/33 46/32 +f 1534/1784 1955/3488 1956/1911 +f 1541/1162 318/181 317/183 +f 2081/1996 2082/2006 2084/1997 +f 146/557 1945/3866 1959/1999 +f 1360/2001 1941/2194 1942/2002 +f 985/1023 984/1022 1032/1066 +f 1995/1863 1997/1865 1892/2003 +f 2079/2005 2080/2338 2082/2006 +f 2095/2007 2096/2021 2076/1983 +f 2081/1996 2093/1754 2078/1984 +f 2055/1945 2050/1941 2054/2008 +f 501/456 2096/2021 2095/2007 +f 2097/2010 2100/630 2099/2011 +f 2098/2012 2099/2011 2094/1752 +f 2140/2013 2141/2016 3893/2014 +f 2141/2016 2046/2133 3894/2017 +f 2051/1942 2070/1974 2048/1975 +f 592/352 2102/2022 2101/2018 +f 2071/2020 2064/1962 2076/1983 +f 2102/2022 2097/2010 2098/2012 +f 593/2023 2103/2044 2102/2022 +f 1019/529 1895/2270 746/1283 +f 1950/2024 11/2191 12/2025 +f 725/396 2071/2020 2096/2021 +f 1385/791 2105/2046 2104/2026 +f 1379/1551 2104/2026 2106/1763 +f 2107/2027 2108/3944 2100/630 +f 3908/2028 726/397 502/303 +f 3896/2029 502/303 499/305 +f 940/2030 1389/2037 2109/2031 +f 928/2032 929/755 1170/595 +f 3868/2033 590/351 684/369 +f 1962/2034 1963/2350 1964/2035 +f 3878/1937 680/1417 573/345 +f 2039/1918 1993/1858 1968/1822 +f 1389/2037 1390/724 2110/2038 +f 1398/747 2111/2124 2113/2039 +f 3757/2040 3755/3310 3753/2041 +f 3911/2043 3883/2123 2107/2027 +f 949/553 923/476 924/1584 +f 260/150 241/187 324/189 +f 1390/724 1397/746 2113/2039 +f 2070/1974 2051/1942 2064/1962 +f 3867/2045 3911/2043 2103/2044 +f 2105/2046 1385/791 1421/792 +f 2114/2047 1421/792 1423/797 +f 3892/2049 2114/2047 2115/2048 +f 3908/2028 2105/2046 2114/2047 +f 554/1456 2116/2198 1902/1779 +f 972/505 1163/580 967/497 +f 1765/1598 1593/1387 1573/2051 +f 1984/2052 1985/2224 1986/2053 +f 2053/2009 2117/887 2069/2055 +f 3573/2056 3556/3129 724/2057 +f 1625/1485 1677/1482 1674/1483 +f 3881/2058 3888/2118 2119/2059 +f 3903/2050 2115/2048 2123/2061 +f 56/161 1954/1799 1906/1749 +f 626/1496 3877/1202 3879/2063 +f 2001/2064 2002/2245 2003/2065 +f 3912/2067 3841/2114 2127/2068 +f 2006/2070 2007/2461 2008/2071 +f 2127/2068 1413/779 1412/764 +f 2014/2074 2015/2263 2016/2075 +f 2018/2077 2019/2889 2020/2078 +f 1495/997 1424/804 1947/2080 +f 1379/1551 1377/717 1386/786 +f 3814/1410 3811/1488 1680/1844 +f 2029/2081 1885/1929 1884/2082 +f 3902/2084 2128/2073 2120/2085 +f 629/1494 3879/2063 3914/631 +f 682/1542 683/2797 943/2088 +f 724/2057 1650/2184 2121/2089 +f 1757/991 1819/2825 3821/1668 +f 765/2091 1810/1169 3844/2092 +f 3851/2093 714/376 715/378 +f 706/1340 707/1339 3870/2095 +f 981/508 986/1594 987/1613 +f 1457/871 1868/1766 1656/1491 +f 2017/2076 2016/2075 2032/2097 +f 1458/1976 1655/1588 1868/1766 +f 1776/1630 1777/1607 1792/2099 +f 1959/1999 1945/3866 1946/2100 +f 3663/805 3715/3643 3725/2102 +f 3913/2104 3881/2058 2122/2060 +f 1093/811 1089/1540 689/368 +f 966/495 965/494 968/502 +f 3852/2094 715/378 3881/2058 +f 2172/2106 3577/3579 2170/2107 +f 670/613 2138/2116 2137/2109 +f 3761/2110 787/1780 1903/2111 +f 1429/823 19/11 28/2112 +f 964/1798 963/507 978/509 +f 3841/2114 3813/782 1413/779 +f 1473/2115 1474/1914 669/1450 +f 3834/680 3833/681 1359/706 +f 2138/2116 798/1873 1870/1713 +f 1872/2117 1473/2115 2137/2109 +f 715/378 716/377 3888/2118 +f 1881/1936 1991/1857 1992/1859 +f 3843/1428 3842/1427 739/482 +f 1837/2119 1847/1694 3513/1695 +f 253/146 58/41 59/62 +f 1808/1645 3837/1643 3840/1019 +f 1647/1964 3832/1443 3818/2121 +f 3865/2122 3866/2015 671/611 +f 2112/1890 3882/1762 3883/2123 +f 1405/844 2045/1718 2044/1720 +f 3829/691 3824/690 1364/2125 +f 273/1163 1541/1162 391/230 +f 576/392 632/2493 3520/2127 +f 3875/2129 3865/2122 668/1449 +f 1430/822 1431/1886 2140/2013 +f 2136/2131 3850/2105 3860/849 +f 1430/822 2139/2130 18/12 +f 3893/2014 3894/2017 570/347 +f 1442/835 1439/828 2046/2133 +f 1431/1886 1442/835 2141/2016 +f 3869/2134 3913/2104 3850/2105 +f 3808/412 3823/1657 1817/2135 +f 3866/2015 3893/2014 695/2132 +f 2142/2137 2025/1882 798/1873 +f 571/346 2143/2138 2142/2137 +f 3819/1411 3814/1410 1618/1904 +f 2143/2138 2022/1878 2025/1882 +f 694/612 2142/2137 2138/2116 +f 681/1418 1572/1541 2144/2139 +f 2144/2139 2011/1876 2022/1878 +f 328/394 210/134 457/635 +f 1572/1541 2010/2801 2011/1876 +f 630/395 3892/2049 3903/2050 +f 2085/2140 2086/3946 2087/2141 +f 2090/2143 2091/3489 2092/2144 +f 572/1416 2144/2139 2143/2138 +f 1875/2146 1976/3511 2153/2147 +f 1873/1712 1875/2146 2149/2148 +f 2103/2044 2107/2027 2097/2010 +f 2157/2150 2043/2004 2155/2151 +f 2128/2073 1412/764 1414/766 +f 3874/2153 3871/2166 589/1849 +f 3872/2087 3870/2095 628/2154 +f 2149/2148 2153/2147 2158/2155 +f 2159/2156 2158/2155 3905/2157 +f 698/388 3907/2069 3902/2084 +f 3823/1657 3847/1659 3827/2160 +f 2158/2155 2156/2152 3874/2153 +f 1438/830 2044/1720 2046/2133 +f 2035/2161 2154/2149 2160/2162 +f 2161/2163 2160/2162 3889/2164 +f 3871/2166 3891/2171 605/1734 +f 3873/2167 17/10 18/12 +f 370/434 29/15 61/44 +f 649/1935 1951/1794 413/240 +f 2153/2147 2157/2150 2156/2152 +f 1428/2168 1429/823 1449/2113 +f 1490/1027 76/53 73/55 +f 3890/2158 3905/2157 710/1383 +f 2155/2151 1891/2175 3891/2171 +f 1456/872 1457/871 1880/2096 +f 2125/2172 2088/2142 2087/2141 +f 2160/2162 2159/2156 3890/2158 +f 300/2000 1959/1999 505/634 +f 1064/592 1062/540 1046/538 +f 2043/2004 1892/2003 1891/2175 +f 2129/2176 2130/2276 2004/2066 +f 2131/2177 2132/3433 2133/2178 +f 3848/850 3849/909 1450/2169 +f 1998/1867 1975/1835 804/1717 +f 3879/2063 673/2296 3864/2180 +f 474/418 492/415 490/1457 +f 1164/582 1165/584 1182/895 +f 707/1339 2162/2183 3909/2181 +f 708/2182 1472/2215 2162/2183 +f 2162/2183 2161/2163 3886/2165 +f 548/1429 549/1184 1905/1748 +f 1145/562 1136/564 1114/570 +f 705/2159 2121/2089 1650/2184 +f 2043/2004 2157/2150 1977/1836 +f 737/1808 738/1807 554/1456 +f 1034/605 1195/596 1191/597 +f 458/281 1905/1748 1907/1832 +f 195/126 196/125 232/1743 +f 2040/2185 2039/1918 1969/1821 +f 2145/2187 2146/2298 2147/2188 +f 2054/2008 2050/1941 2049/1943 +f 3832/1443 1646/1434 1639/1435 +f 9/2190 12/2025 11/2191 +f 252/145 364/206 506/1192 +f 472/300 478/362 479/364 +f 1865/948 3924/1172 3791/1174 +f 900/484 903/473 910/712 +f 1941/2194 2150/2273 2151/2195 +f 1921/2196 1928/2201 1927/1773 +f 2163/2197 1897/1737 1898/1738 +f 271/1003 156/103 153/105 +f 1904/1746 1326/2200 12/2025 +f 282/286 263/156 264/1147 +f 1872/2117 1873/1712 2154/2149 +f 1326/2200 1904/1746 1897/1737 +f 628/2154 692/379 693/381 +f 1724/1554 1722/1534 1719/1536 +f 1549/1222 1562/1329 436/267 +f 1582/1382 1583/1381 1730/1545 +f 1921/2196 1920/1755 1929/1777 +f 3563/2202 3511/5093 10/2192 +f 2152/2203 2037/3915 1950/2024 +f 475/416 772/422 774/425 +f 769/419 2172/2106 2171/2108 +f 2171/2108 2165/3515 476/2205 +f 476/2205 773/421 772/422 +f 1791/2206 565/1310 464/1311 +f 2166/2208 2167/3295 2168/2209 +f 595/354 371/212 372/1217 +f 483/293 1809/1660 1641/1655 +f 762/407 2174/1900 2173/853 +f 771/417 483/293 484/292 +f 486/296 487/295 1809/1660 +f 297/1291 1549/1222 1517/1185 +f 763/2211 2175/3580 2174/1900 +f 776/1419 755/401 759/403 +f 184/374 185/166 2176/2212 +f 412/241 447/325 303/1201 +f 2005/2213 2176/2212 185/166 +f 3811/1488 1681/1804 1682/1806 +f 2164/2214 2170/2107 756/426 +f 1472/2215 2035/2161 2161/2163 +f 950/480 951/479 964/1798 +f 2177/2216 2178/3440 2179/2217 +f 227/1218 226/1051 1510/1050 +f 2182/2219 2183/2886 2184/2220 +f 2186/2222 2019/2889 2018/2077 +f 1985/2224 2182/2219 2181/2221 +f 214/136 736/2821 729/1874 +f 865/675 849/1431 842/1433 +f 849/1431 865/675 1357/677 +f 559/1455 3187/3576 3188/2227 +f 16/2228 13/7 737/1808 +f 560/2229 553/1454 498/2230 +f 3193/2232 3196/3419 3195/2233 +f 3200/2235 3197/3420 3198/2236 +f 3211/2238 3214/3525 3213/2239 +f 3215/2241 3218/2266 3217/2242 +f 2187/2244 2188/3118 2002/2245 +f 2169/2210 2168/2209 2189/2246 +f 2192/2248 2086/3946 2085/2140 +f 2193/2250 2194/3896 2195/2251 +f 2198/2253 2199/2710 2200/2254 +f 1998/1867 1982/1852 1979/1853 +f 3664/2256 3665/3143 3668/2257 +f 2116/2198 1898/1738 1903/2111 +f 1859/1909 2006/2070 2009/2072 +f 3904/2062 2123/2061 2126/2259 +f 1135/2261 1148/563 1087/569 +f 2201/2262 2202/2277 2015/2263 +f 1149/2264 111/3492 110/152 +f 3221/2265 3222/3531 3218/2266 +f 2203/2267 2204/3435 2205/2268 +f 579/344 580/343 1895/2270 +f 1755/2271 2207/2295 2208/2272 +f 3891/2171 3910/1730 1893/1732 +f 1211/1241 2151/2195 2150/2273 +f 868/925 997/1032 2210/2274 +f 944/1393 945/1944 930/754 +f 2130/2276 2129/2176 2202/2277 +f 233/629 1903/2111 1898/1738 +f 665/776 751/841 750/843 +f 1167/1207 1254/1273 999/1034 +f 2211/2280 2212/2349 2213/2281 +f 2215/2283 2216/2348 2217/2284 +f 3867/2045 593/2023 590/351 +f 2220/2286 221/2566 220/306 +f 823/447 824/489 948/477 +f 3225/2288 3220/3573 3227/2289 +f 266/160 204/1809 455/469 +f 3882/1762 2108/3944 2107/2027 +f 2221/2291 2222/3311 3519/481 +f 2223/2292 2224/3382 2225/2293 +f 2207/2295 2125/2172 2124/2173 +f 673/2296 674/3187 3869/2134 +f 817/444 1000/1750 996/516 +f 2227/2297 2228/3190 2146/2298 +f 1947/2080 1948/1932 646/365 +f 3900/633 2135/632 17/10 +f 2229/2299 1635/1703 1638/1705 +f 1679/1486 1613/1484 1618/1904 +f 1637/1704 2231/2303 2232/2300 +f 2233/2302 2234/2945 1617/1685 +f 2231/2303 2235/2330 2236/2304 +f 1381/1464 1638/1705 2238/2306 +f 3586/2308 2241/3103 2242/2309 +f 1630/2311 2234/2945 2233/2302 +f 1681/1804 1626/1487 472/300 +f 1408/2312 1407/1479 2243/2313 +f 3236/2315 3239/3530 3238/2316 +f 3232/2318 3241/3497 3240/2319 +f 1637/1704 2230/2301 2238/2306 +f 3237/2317 3238/2316 3233/2321 +f 1409/1480 1408/2312 1634/1701 +f 1380/1466 1383/1465 2247/2324 +f 1628/1699 2248/2328 2245/2323 +f 2249/2327 1623/1690 1622/1689 +f 1632/1702 1634/1701 1408/2312 +f 2248/2328 1628/1699 1631/1698 +f 2235/2330 2231/2303 1637/1704 +f 3245/2332 3246/2949 3199/2237 +f 631/1316 2070/1974 2071/2020 +f 515/556 167/555 52/34 +f 782/858 781/2875 2251/2333 +f 2253/2334 2254/3196 2255/2335 +f 397/231 281/282 459/284 +f 1456/872 2039/1918 2040/2185 +f 2040/2185 2041/1925 2036/1927 +f 1401/2337 2112/1890 2111/2124 +f 2041/1925 2040/2185 1970/2186 +f 1535/1782 121/2834 414/239 +f 1586/1389 1587/1388 2080/2338 +f 2256/2339 983/1021 1132/1175 +f 1700/1002 1699/1518 3918/1520 +f 3815/1967 1896/1589 1686/1158 +f 1263/1298 2256/2339 1886/2340 +f 598/2341 1841/1888 844/1245 +f 2257/2342 2258/2345 2259/2343 +f 2258/2345 2261/3256 2262/2346 +f 2259/2343 2262/2346 2263/2347 +f 2260/2344 2259/2343 2216/2348 +f 1967/1824 1971/1823 1970/2186 +f 2212/2349 1964/2035 1963/2350 +f 922/2351 921/960 2218/2285 +f 1312/1369 1098/1132 1101/1131 +f 1307/2353 1306/1364 1286/2354 +f 1548/2355 1569/1819 1546/2225 +f 2266/2356 2267/2416 2268/2357 +f 2265/2358 2268/2357 2270/2359 +f 2272/2361 2265/2358 2269/2360 +f 2273/2363 2266/2356 2265/2358 +f 2275/2364 2276/2440 2277/2365 +f 2278/2367 2274/2366 2277/2365 +f 2284/2369 2285/2544 3617/2370 +f 2287/2372 2283/2376 2286/2373 +f 2288/2375 2289/2593 2283/2376 +f 2290/2377 2284/2369 3639/2371 +f 2291/2379 2292/2385 2293/2380 +f 2295/2382 2291/2379 2294/2381 +f 2296/2383 2297/2384 2291/2379 +f 2297/2384 2298/2388 2292/2385 +f 2294/2381 2293/2380 2299/2386 +f 2279/2368 2294/2381 2300/2387 +f 2298/2388 2301/2396 2302/2389 +f 2292/2385 2302/2389 2303/2390 +f 2293/2380 2303/2390 2304/2391 +f 2304/2391 2305/2587 2306/2392 +f 2308/2393 2309/2614 2310/2394 +f 2302/2389 2307/2395 2310/2394 +f 2301/2396 2311/2398 2307/2395 +f 2312/2397 2308/2393 2307/2395 +f 2313/2399 2314/2506 2315/2400 +f 2318/2402 2319/2638 2320/2403 +f 3748/2405 3771/3394 2322/2406 +f 2324/2408 2325/2417 2273/2363 +f 2313/2399 2324/2408 2326/2409 +f 2328/2411 2324/2408 2313/2399 +f 2329/2412 2325/2417 2324/2408 +f 2331/2413 2332/2420 2333/2414 +f 2330/2415 2333/2414 2267/2416 +f 2325/2417 2330/2415 2266/2356 +f 2329/2412 2331/2413 2330/2415 +f 2333/2414 2334/3875 2335/2418 +f 2336/2419 2334/3875 2333/2414 +f 2338/2421 2336/2419 2332/2420 +f 2331/2413 2339/2423 2337/2422 +f 2329/2412 2340/2424 2339/2423 +f 2328/2411 2341/2425 2340/2424 +f 2316/2401 2342/2426 2341/2425 +f 2342/2426 2316/2401 2315/2400 +f 2344/2428 2345/2432 2346/2429 +f 2341/2425 2344/2428 2347/2430 +f 2342/2426 2348/2431 2344/2428 +f 2348/2431 2349/2624 2345/2432 +f 2350/2433 2351/2436 2352/2434 +f 2339/2423 2350/2433 2353/2435 +f 2340/2424 2347/2430 2350/2433 +f 2347/2430 2346/2429 2351/2436 +f 2337/2422 2353/2435 2354/2437 +f 2353/2435 2352/2434 2355/2438 +f 2356/2439 2277/2365 2276/2440 +f 2356/2439 2357/2441 2358/2442 +f 2356/2439 2359/2443 2296/2383 +f 2279/2368 2277/2365 2356/2439 +f 2360/2444 2361/2448 2270/2359 +f 2267/2416 2335/2418 2360/2444 +f 2362/2445 2363/2450 2364/2446 +f 2362/2445 2365/2447 2361/2448 +f 2366/2449 2362/2445 2358/2442 +f 2366/2449 2367/2453 2363/2450 +f 2357/2441 2276/2440 2368/2451 +f 2366/2449 2368/2451 2369/2452 +f 2276/2440 2275/2364 2370/2454 +f 2368/2451 2370/2454 2282/2455 +f 2372/2456 2373/2537 2374/2457 +f 2375/2459 2376/2656 2377/2460 +f 2378/2462 2379/2469 2380/2463 +f 2382/2465 2378/2462 2381/2464 +f 2384/2467 2385/2468 2378/2462 +f 2385/2468 2386/2691 2379/2469 +f 2388/2470 2389/2530 2390/2471 +f 2387/2472 2390/2471 2392/2473 +f 2393/2475 2394/2476 2387/2472 +f 2394/2476 2395/2560 2388/2470 +f 2186/2222 2401/2885 2402/2477 +f 2403/2479 2404/2481 2327/2410 +f 2272/2361 2403/2479 2326/2409 +f 2271/2362 2405/2480 2403/2479 +f 2405/2480 2406/2491 2404/2481 +f 2404/2481 2407/2492 2408/2482 +f 2409/2483 2410/2487 2411/2484 +f 2409/2483 2412/2485 2271/2362 +f 2413/2486 2409/2483 2269/2360 +f 2413/2486 2414/3876 2410/2487 +f 2417/2488 2415/3958 2416/2489 +f 2417/2488 2418/2490 2406/2491 +f 2412/2485 2417/2488 2405/2480 +f 2411/2484 2415/3958 2417/2488 +f 2406/2491 2419/2500 2407/2492 +f 3569/1337 3520/2127 632/2493 +f 2420/2494 2398/2501 2397/2495 +f 2420/2494 2421/2496 2423/2497 +f 2424/2499 2420/2494 2422/2498 +f 2424/2499 2399/3407 2398/2501 +f 2425/2502 2391/2474 2392/2473 +f 2421/2496 2425/2502 2426/2503 +f 2397/2495 2396/2504 2425/2502 +f 2396/2504 2393/2475 2391/2474 +f 2427/2505 2314/2506 2408/2482 +f 2430/2508 2427/2505 2428/2507 +f 2343/2427 2315/2400 2427/2505 +f 2432/2510 2343/2427 2430/2508 +f 2431/2511 2430/2508 2429/2509 +f 2435/2513 2431/2511 2433/2512 +f 2436/2515 2432/2510 2431/2511 +f 2428/2507 2408/2482 2407/2492 +f 2422/2498 2437/2516 2407/2492 +f 2438/2517 2437/2516 2422/2498 +f 2429/2509 2428/2507 2437/2516 +f 2440/2518 2434/2514 2433/2512 +f 2441/2520 2439/2519 2433/2512 +f 2442/2521 2443/2522 2439/2519 +f 2443/2522 2444/2524 2440/2518 +f 2445/2523 2446/2526 2444/2524 +f 2447/2525 2445/2523 2443/2522 +f 2383/2466 2381/2464 2445/2523 +f 2381/2464 2380/2463 2446/2526 +f 2448/2527 2438/2517 2423/2497 +f 2449/2528 2448/2527 2426/2503 +f 2441/2520 2448/2527 2449/2528 +f 2441/2520 2429/2509 2438/2517 +f 2449/2528 2392/2473 2390/2471 +f 2450/2529 2390/2471 2389/2530 +f 2447/2525 2450/2529 2451/2531 +f 2442/2521 2449/2528 2450/2529 +f 2451/2531 2389/2530 2453/2532 +f 2452/2533 2453/2532 2455/2534 +f 2382/2465 2452/2533 2454/2535 +f 2383/2466 2451/2531 2452/2533 +f 2456/2536 2457/2713 2373/2537 +f 2459/2538 2460/3957 2461/2539 +f 2463/2541 2464/2567 2465/2542 +f 2462/2543 2465/2542 2285/2544 +f 2466/2545 2462/2543 2284/2369 +f 2467/2546 2463/2541 2462/2543 +f 2461/2539 2460/3957 3703/2547 +f 2468/2549 2469/3937 2470/2550 +f 2472/2552 2468/2549 2471/2551 +f 2474/2554 2461/2539 3701/2548 +f 2475/2556 2476/3290 2477/2557 +f 2458/2540 2455/2534 2453/2532 +f 2479/2559 2453/2532 2389/2530 +f 2395/2560 2480/2561 2479/2559 +f 2480/2561 2459/2538 2458/2540 +f 2481/2562 2482/3309 2483/2563 +f 2484/2564 113/154 2485/2565 +f 2471/2551 2470/2550 2464/2567 +f 2473/2553 2471/2551 2463/2541 +f 2487/2568 2467/2546 2466/2545 +f 2486/2569 2466/2545 2290/2377 +f 2490/2571 2486/2569 2488/2570 +f 2491/2573 2487/2568 2486/2569 +f 2492/2574 2473/2553 2467/2546 +f 2493/2575 2492/2574 2487/2568 +f 2494/2576 2495/2577 2492/2574 +f 2495/2577 2472/2552 2473/2553 +f 3690/2578 2496/2580 2474/2554 +f 3691/2579 2497/3172 2496/2580 +f 2498/2581 2494/2576 2493/2575 +f 2500/2583 2498/2581 2499/2582 +f 3700/2585 3687/2586 2498/2581 +f 3687/2586 3691/2579 2494/2576 +f 2306/2392 2504/2588 2278/2367 +f 2305/2587 2505/2594 2504/2588 +f 2504/2588 2505/2594 2507/2589 +f 2506/2590 2507/2589 2288/2375 +f 2274/2366 2506/2590 2508/2591 +f 2278/2367 2504/2588 2506/2590 +f 3633/2592 3632/2611 2489/2572 +f 3620/2378 3633/2592 2488/2570 +f 2507/2589 2509/2595 2289/2593 +f 2505/2594 2510/2604 2509/2595 +f 2508/2591 2288/2375 2287/2372 +f 2511/2596 2287/2372 2281/2374 +f 2370/2454 2511/2596 2280/2597 +f 2275/2364 2508/2591 2511/2596 +f 2512/2598 2490/2571 2489/2572 +f 2514/2600 2512/2598 2513/2599 +f 2517/2602 2512/2598 2514/2600 +f 2517/2602 2491/2573 2490/2571 +f 2499/2582 2493/2575 2491/2573 +f 2499/2582 2517/2602 2516/2603 +f 2510/2604 2505/2594 2519/2605 +f 2518/2606 2519/2605 2521/2607 +f 3616/2609 2518/2606 2520/2608 +f 3632/2611 2510/2604 2518/2606 +f 2522/2612 2304/2391 2303/2390 +f 2523/2613 2522/2612 2310/2394 +f 2305/2587 2304/2391 2522/2612 +f 2524/2615 2522/2612 2523/2613 +f 2519/2605 2524/2615 2525/2616 +f 2505/2594 2305/2587 2524/2615 +f 2308/2393 2312/2397 2527/2617 +f 2526/2618 2527/2617 2529/2619 +f 2531/2621 2526/2618 2528/2620 +f 2309/2614 2308/2393 2526/2618 +f 1214/1243 2532/3080 2151/2195 +f 2419/2500 2406/2491 2418/2490 +f 2533/2623 2345/2432 2349/2624 +f 2534/2625 2533/2623 2317/2404 +f 2535/2626 2536/2627 2533/2623 +f 2536/2627 2346/2429 2345/2432 +f 2537/2628 2351/2436 2346/2429 +f 2538/2629 2537/2628 2536/2627 +f 2539/2630 2540/2631 2537/2628 +f 2540/2631 2352/2434 2351/2436 +f 2312/2397 2355/2438 2541/2632 +f 2527/2617 2541/2632 2542/2633 +f 2543/2634 2435/2513 2434/2514 +f 2545/2636 2543/2634 2544/2635 +f 2319/2638 2318/2402 2543/2634 +f 2318/2402 2436/2515 2435/2513 +f 2514/2600 2515/2601 2548/2639 +f 2547/2640 2548/2639 2550/2641 +f 2552/2643 2547/2640 2549/2642 +f 2552/2643 2516/2603 2514/2600 +f 2520/2608 2521/2607 2554/2645 +f 2553/2646 2554/2645 2556/2647 +f 3590/2649 2553/2646 2555/2648 +f 3621/2610 2520/2608 2553/2646 +f 2523/2613 2309/2614 2531/2621 +f 2557/2651 2531/2621 2530/2622 +f 2525/2616 2523/2613 2557/2651 +f 2559/2653 2557/2651 2558/2652 +f 2554/2645 2559/2653 2560/2654 +f 2521/2607 2525/2616 2559/2653 +f 2561/2655 2375/2459 2007/2461 +f 2376/2656 2562/3315 2225/2293 +f 2564/2657 2565/2714 2566/2658 +f 2563/2659 2566/2658 338/511 +f 2569/2661 2563/2659 2567/2660 +f 2570/2663 2564/2657 2563/2659 +f 2572/2664 2573/2672 2574/2665 +f 2571/2666 2574/2665 2576/2667 +f 2544/2635 2571/2666 2575/2668 +f 2544/2635 2434/2514 2572/2664 +f 2578/2669 2570/2663 2569/2661 +f 2579/2671 2577/2670 2569/2661 +f 2574/2665 2577/2670 2579/2671 +f 2573/2672 2578/2669 2577/2670 +f 2581/2673 2582/2681 2583/2674 +f 2584/2676 2580/2675 2583/2674 +f 3697/2678 3675/2680 2580/2675 +f 3676/2679 2581/2673 2580/2675 +f 2582/2681 2516/2603 2552/2643 +f 2583/2674 2552/2643 2551/2644 +f 2500/2583 2501/2584 2589/2682 +f 2590/2684 2588/2683 2589/2682 +f 3693/2686 3695/2687 2588/2683 +f 3695/2687 3700/2585 2500/2583 +f 2501/2584 2516/2603 2591/2685 +f 2592/2688 2593/3306 2594/2689 +f 2386/2691 2385/2468 2503/2692 +f 2596/2694 2379/2469 2386/2691 +f 2596/2694 2374/2457 2373/2537 +f 2599/2696 2596/2694 2597/2695 +f 2599/2696 2380/2463 2379/2469 +f 2600/2698 2446/2526 2380/2463 +f 2600/2698 2599/2696 2598/2697 +f 2603/2700 2600/2698 2601/2699 +f 2603/2700 2444/2524 2446/2526 +f 2604/2702 2603/2700 2602/2701 +f 2440/2518 2604/2702 2605/2703 +f 2444/2524 2603/2700 2604/2702 +f 2606/2704 2582/2681 2581/2673 +f 2606/2704 2607/2705 2590/2684 +f 2591/2685 2516/2603 2582/2681 +f 3676/2679 2587/3314 2456/2536 +f 3689/2706 2456/2536 2372/2456 +f 2478/2558 2477/2557 2608/2707 +f 2609/2708 2610/3299 2611/2709 +f 2564/2657 2570/2663 2613/2711 +f 2612/2712 2613/2711 2598/2697 +f 2457/2713 2612/2712 2597/2695 +f 2565/2714 2564/2657 2612/2712 +f 2614/2715 2613/2711 2570/2663 +f 2615/2716 2614/2715 2578/2669 +f 2602/2701 2601/2699 2614/2715 +f 2601/2699 2598/2697 2613/2711 +f 2572/2664 2434/2514 2605/2703 +f 2616/2717 2605/2703 2602/2701 +f 2573/2672 2572/2664 2616/2717 +f 1459/880 1016/548 1045/541 +f 1265/1299 1215/1887 1079/1115 +f 1612/1950 1608/1405 1609/1963 +f 2067/1960 2057/1946 2069/2055 +f 1135/2261 1109/544 1136/564 +f 1938/1995 1937/1994 2618/2719 +f 95/387 548/1429 458/281 +f 2058/1951 1607/1406 1608/1405 +f 1454/873 1469/903 1445/851 +f 655/769 2620/2758 1048/1079 +f 722/2722 1049/1078 2621/2723 +f 1131/1176 985/1023 1033/1065 +f 562/349 1481/967 366/208 +f 1723/1546 1719/1536 1725/1571 +f 1786/2724 1123/3253 1122/1152 +f 267/159 300/2000 323/261 +f 1325/644 2034/1915 1654/1586 +f 1468/896 1165/584 1435/832 +f 658/772 657/771 529/2725 +f 8/4 532/321 247/339 +f 382/1281 1557/1328 1559/1330 +f 788/866 619/745 1307/2353 +f 940/2030 930/754 929/755 +f 911/951 2622/2793 2623/2727 +f 2621/2723 2620/2758 655/769 +f 2624/2729 1857/2779 2625/2730 +f 998/1033 1846/1894 27/26 +f 635/753 638/752 2626/2731 +f 2627/2733 641/756 644/758 +f 2628/2734 2627/2733 1840/1885 +f 1200/2736 1199/1231 2627/2733 +f 1199/1231 1773/1817 641/756 +f 1520/1358 515/556 49/36 +f 1452/874 1350/704 1349/668 +f 2630/2737 2631/2841 1859/1909 +f 644/758 643/757 1335/1537 +f 1197/1229 1198/1228 717/814 +f 2632/2738 717/814 719/815 +f 2628/2734 2632/2738 1166/1205 +f 2629/2735 1197/1229 2632/2738 +f 1762/2739 2633/2823 1050/2740 +f 1823/1884 870/927 873/929 +f 2634/2742 2635/2743 794/1124 +f 1042/1073 794/1124 2635/2743 +f 93/70 94/69 1901/1741 +f 2036/1927 2038/1926 1458/1976 +f 1527/1833 332/3222 1525/1325 +f 877/932 876/931 1274/1313 +f 134/91 409/258 797/430 +f 1328/1413 893/944 931/972 +f 607/736 777/854 1091/1122 +f 1043/1074 2635/2743 2637/2744 +f 2636/2745 2637/2744 2639/2746 +f 1275/1315 2636/2745 2638/2747 +f 1275/1315 1040/1072 1043/1074 +f 1272/1308 2624/2729 2626/2731 +f 2640/2748 2626/2731 638/752 +f 1110/1143 2641/2751 2640/2748 +f 536/2750 1272/1308 2640/2748 +f 1472/2215 708/2182 1474/1914 +f 2042/1931 2030/1895 1951/1794 +f 1058/2752 1106/1135 1105/2753 +f 2642/2754 2623/2727 2643/2755 +f 1192/1922 2642/2754 2644/2756 +f 912/2728 2623/2727 2642/2754 +f 3898/2757 1657/1917 3526/1490 +f 1049/1078 1048/1079 2620/2758 +f 616/740 1829/1870 1885/1929 +f 1331/2759 1913/1972 666/2278 +f 990/2760 989/1024 1198/1228 +f 1911/1759 1912/1758 321/1830 +f 1298/1356 1282/1331 1205/1332 +f 76/53 1490/1027 1504/1029 +f 1502/2763 1500/1009 421/254 +f 610/735 609/770 658/772 +f 1146/1188 937/976 659/773 +f 2646/2764 911/951 914/953 +f 1280/1324 1239/1258 1238/2765 +f 1453/906 1454/873 1452/874 +f 835/900 942/1102 1843/2769 +f 1271/1307 1270/1980 1173/2770 +f 1893/1732 1878/1731 1826/2773 +f 1050/2740 2633/2823 1937/1994 +f 2651/2774 2652/2863 814/884 +f 1006/1042 1053/1082 1281/1326 +f 2653/2775 1084/1117 2654/2776 +f 1001/1986 1004/1610 1003/1611 +f 585/723 997/1032 679/789 +f 2624/2729 1272/1308 621/1309 +f 555/708 678/3199 2028/2083 +f 1207/1238 526/693 1197/1229 +f 1626/1487 1627/1409 478/362 +f 426/1056 389/228 419/252 +f 1030/1225 1193/1224 1773/1817 +f 3898/2757 645/1725 634/1451 +f 534/1141 1533/1125 138/1126 +f 1125/1812 1092/1123 1042/1073 +f 333/1261 228/144 88/65 +f 569/437 1570/1745 561/348 +f 1489/1538 2656/2864 871/2778 +f 1857/2779 2624/2729 620/743 +f 1673/1477 1674/1483 3770/1647 +f 622/744 861/920 864/922 +f 619/745 788/866 891/941 +f 261/1341 544/329 545/331 +f 393/1288 1555/1415 1556/1263 +f 2658/2782 2659/2784 2647/2767 +f 1075/1105 2658/2782 2657/2781 +f 1081/2783 1080/1113 2658/2782 +f 1080/1113 1139/1181 2659/2784 +f 2644/2756 2643/2755 1141/1182 +f 2660/2785 1141/1182 1140/2786 +f 642/2787 2660/2785 1336/1425 +f 1193/1224 2644/2756 2660/2785 +f 679/789 678/3199 555/708 +f 1503/2788 1501/1007 1500/1009 +f 1318/1374 1317/1373 1101/1131 +f 2661/2790 2659/2784 1139/1181 +f 2661/2790 1142/1183 2663/2791 +f 2662/2792 2647/2767 2659/2784 +f 2662/2792 2663/2791 2622/2793 +f 2664/2794 2622/2793 911/951 +f 2648/2768 2664/2794 2646/2764 +f 2648/2768 2647/2767 2662/2792 +f 2083/1998 2094/1752 2093/1754 +f 1442/835 1440/836 1437/831 +f 519/475 329/332 330/1095 +f 1885/1929 2029/2081 1209/1239 +f 799/1716 800/441 805/443 +f 1946/2100 1943/3865 1952/1971 +f 1302/2795 1301/1361 1253/1272 +f 566/1320 2005/2213 224/277 +f 1389/2037 940/2030 928/2032 +f 683/2797 682/1542 681/1418 +f 836/2798 835/900 1842/1891 +f 2665/2799 1842/1891 1845/1893 +f 2666/2800 2665/2799 1303/1362 +f 24/27 836/2798 2665/2799 +f 831/899 1072/1101 2650/2772 +f 1845/1893 1844/1892 1304/1363 +f 2010/2801 2013/2840 2012/2802 +f 1051/1080 1936/1993 2667/2803 +f 1522/1089 1521/1077 1511/1054 +f 531/1116 440/270 441/2805 +f 1250/1271 635/753 2625/2730 +f 2669/2806 2625/2730 1857/2779 +f 783/859 2669/2806 1856/1905 +f 782/858 1250/1271 2669/2806 +f 720/818 2670/3237 2671/2807 +f 1055/1087 1931/1987 1930/1988 +f 1333/2808 1067/1423 1251/1270 +f 619/745 622/744 1308/1365 +f 652/767 655/769 2619/2721 +f 521/1058 522/1148 1539/1146 +f 1838/1883 988/1026 537/701 +f 2672/2809 537/701 536/2750 +f 1113/1145 2672/2809 2641/2751 +f 1113/1145 527/697 1838/1883 +f 1016/548 1013/550 1351/879 +f 3897/1719 573/345 570/347 +f 226/1051 227/1218 104/2810 +f 3564/2811 3669/3906 3827/2160 +f 1036/1068 1037/1069 1884/2082 +f 2674/2812 1301/1361 1304/1363 +f 2673/2813 1304/1363 1844/1892 +f 1334/1424 2673/2813 2675/2814 +f 1333/2808 2674/2812 2673/2813 +f 2676/2815 702/803 1039/1071 +f 1843/2769 2676/2815 2675/2814 +f 942/1102 1074/1104 2676/2815 +f 1074/1104 699/801 702/803 +f 752/2816 1057/1085 1055/1087 +f 1200/2736 1166/1205 656/1206 +f 1120/1150 1846/1894 874/930 +f 2677/2817 874/930 877/932 +f 1241/1262 2677/2817 1052/2818 +f 1119/1151 1120/1150 2677/2817 +f 1560/1501 1513/1198 151/101 +f 1208/2819 1316/1372 611/738 +f 215/2820 735/399 736/2821 +f 1460/881 1459/880 1462/1989 +f 1208/2819 1207/1238 1839/2741 +f 854/916 856/915 1282/1331 +f 72/50 445/1129 182/255 +f 544/329 1563/1342 1565/1354 +f 217/465 200/1213 456/2822 +f 2047/1938 1404/759 930/754 +f 1204/1235 2618/2719 1937/1994 +f 913/952 777/854 686/856 +f 840/904 527/697 1113/1145 +f 1531/1119 729/1874 730/435 +f 2678/2824 778/1333 1283/1334 +f 601/966 667/777 1914/1973 +f 1537/1149 1538/1348 459/284 +f 1819/2825 1757/991 3509/993 +f 991/1025 1860/2837 862/2827 +f 2679/2828 711/809 1073/1103 +f 2680/2829 1830/1872 983/1021 +f 779/855 2680/2829 2256/2339 +f 778/1333 2678/2824 2680/2829 +f 2678/2824 2679/2828 1830/1872 +f 180/120 542/470 245/1786 +f 1886/2340 1132/1175 1131/1176 +f 1138/2830 1137/1180 1274/1313 +f 1841/1888 598/2341 1140/2786 +f 75/2762 313/1142 314/1287 +f 193/1161 423/458 420/251 +f 2681/2831 2682/3251 1099/1130 +f 170/179 1567/1437 1565/1354 +f 349/197 416/336 417/247 +f 1121/1154 1124/1153 2684/2832 +f 547/431 797/430 409/258 +f 123/981 122/980 121/2834 +f 2643/2755 2663/2791 1142/1183 +f 1542/1179 1544/1190 513/313 +f 899/2835 900/484 907/525 +f 1210/2836 677/788 676/790 +f 791/865 663/1020 982/1167 +f 24/27 27/26 837/901 +f 893/944 896/943 932/1300 +f 1860/2837 1320/1377 863/921 +f 535/700 538/702 862/2827 +f 1569/1819 1548/2355 1547/2838 +f 181/119 455/469 542/470 +f 660/2839 659/773 937/976 +f 2013/2840 567/1319 568/436 +f 887/937 890/939 2631/2841 +f 1524/1092 1508/1041 361/1408 +f 520/1430 161/214 162/2842 +f 2653/2775 855/914 854/916 +f 1238/2765 1237/1257 2655/2777 +f 718/1948 1838/1883 527/697 +f 1492/1004 1493/1075 518/310 +f 792/1871 616/740 615/1156 +f 599/727 846/908 1835/2845 +f 290/393 457/635 456/2822 +f 312/178 171/112 1552/1327 +f 1248/2846 2687/2848 1179/1214 +f 153/105 149/100 177/1889 +f 1240/1260 1181/1215 1222/1248 +f 1257/1351 1292/2860 1235/1979 +f 1291/1350 1084/1117 1083/1249 +f 1052/2818 877/932 1277/1317 +f 743/1237 742/837 2618/2719 +f 444/2847 140/94 430/263 +f 23/23 1224/1251 1172/1209 +f 2687/2848 2654/2776 1180/2849 +f 102/76 103/75 409/258 +f 1283/1334 607/736 610/735 +f 373/2850 497/3623 650/372 +f 1180/2849 2654/2776 1084/1117 +f 855/914 2653/2775 2655/2777 +f 1173/2770 1270/1980 1917/2851 +f 2689/2852 850/913 853/912 +f 2688/2853 853/912 1108/1138 +f 2686/2844 2688/2853 1279/1322 +f 2687/2848 2689/2852 2688/2853 +f 2691/2854 1302/2795 1252/2796 +f 2690/2855 1252/2796 850/913 +f 1248/2846 2690/2855 2689/2852 +f 1248/2846 1247/1267 2691/2854 +f 2692/2856 617/742 24/27 +f 2691/2854 2692/2856 2666/2800 +f 1247/1267 1258/1290 2692/2856 +f 1258/1290 1168/2858 617/742 +f 394/1226 1554/1795 1555/1415 +f 2693/2857 1260/2866 1259/1292 +f 1072/1101 1236/1256 1262/1294 +f 1257/1351 1071/1255 1168/2858 +f 398/1539 439/271 1555/1415 +f 871/2778 1784/1827 1314/2859 +f 1178/1216 1232/1254 1249/1268 +f 1224/1251 1289/1345 1173/2770 +f 1010/1044 2617/2720 2618/2719 +f 1175/1211 1174/1210 1292/2860 +f 2654/2776 2687/2848 2686/2844 +f 2694/2861 1157/1196 1216/1246 +f 71/1955 418/1028 1487/988 +f 701/802 1112/1144 1111/2862 +f 1072/1101 1261/1293 2649/2771 +f 1085/1118 2695/2868 22/1250 +f 895/961 2694/2861 1264/1910 +f 1601/1400 1606/1952 1605/1954 +f 1259/1292 1262/1294 1271/1307 +f 21/22 20/24 1220/1247 +f 988/1026 991/1025 538/702 +f 598/2341 597/726 1336/1425 +f 1050/2740 860/918 818/890 +f 1298/1356 2645/2761 1761/1810 +f 1168/2858 1167/1207 618/2279 +f 858/917 1168/2858 1256/1279 +f 39/20 242/440 516/439 +f 2652/2863 1761/1810 819/888 +f 313/1142 316/1140 315/192 +f 2026/1923 1970/2186 1971/1823 +f 2656/2864 1489/1538 596/728 +f 814/884 819/888 818/890 +f 2696/2865 2651/2774 813/883 +f 1260/2866 2696/2865 2649/2771 +f 2693/2857 2697/2867 2696/2865 +f 2697/2867 1296/1357 2651/2774 +f 381/220 355/201 390/290 +f 3818/2121 3819/1411 1611/1903 +f 1475/935 1427/824 1428/2168 +f 1292/2860 1174/1210 1917/2851 +f 1551/1227 353/202 354/1346 +f 1526/1098 1525/1325 1523/1090 +f 1593/1387 1589/1386 1595/1403 +f 1232/1254 1269/1306 1246/1269 +f 2695/2868 2693/2857 1223/1344 +f 2698/2869 1297/1355 1296/1357 +f 2698/2869 2697/2867 2693/2857 +f 2685/2843 2698/2869 2695/2868 +f 2685/2843 854/916 1297/1355 +f 562/349 1497/1778 271/1003 +f 2652/2863 2651/2774 1296/1357 +f 1365/762 1366/2126 1364/2125 +f 1958/2101 1946/2100 1953/1970 +f 585/723 588/722 2210/2274 +f 1561/1521 1560/1501 1515/1965 +f 975/2766 2648/2768 1146/1188 +f 347/1266 67/48 68/49 +f 1038/1070 1111/2862 636/751 +f 2700/2871 781/2875 780/857 +f 2699/2872 780/857 1036/1068 +f 2701/2873 2699/2872 1883/1928 +f 851/911 2700/2871 2699/2872 +f 2674/2812 1333/2808 2251/2333 +f 2702/2874 2251/2333 781/2875 +f 1253/1272 2702/2874 2700/2871 +f 1301/1361 2674/2812 2702/2874 +f 1519/1253 387/227 388/229 +f 1273/1312 1239/1258 1280/1324 +f 2703/2876 1280/1324 1107/1323 +f 2701/2873 2703/2876 852/1137 +f 1829/1870 1273/1312 2703/2876 +f 91/2877 260/150 326/1321 +f 1784/1827 871/2778 2656/2864 +f 2683/2833 2684/2832 2705/2878 +f 604/1850 1894/1733 3499/2880 +f 1669/1049 3534/1048 3548/2881 +f 2062/1958 2063/1957 2060/2882 +f 621/1309 535/700 861/920 +f 2023/1877 731/1875 732/2883 +f 686/856 779/855 1263/1298 +f 857/919 1051/1080 2668/2804 +f 883/1843 830/472 882/1252 +f 637/2749 636/751 1111/2862 +f 2668/2804 894/942 893/944 +f 2667/2803 921/960 894/942 +f 1039/1071 1038/1070 1068/1096 +f 313/1142 75/2762 1504/1029 +f 1911/1759 1972/1828 305/1093 +f 1936/1993 2706/3194 1964/2035 +f 2707/2884 2402/2477 2401/2885 +f 2708/2887 2707/2884 2183/2886 +f 738/1807 2163/2197 2116/2198 +f 2349/2624 2348/2431 2432/2510 +f 2711/2888 2712/3848 2020/2078 +f 2400/2478 2711/2888 2019/2889 +f 2714/2890 2715/3063 2716/2891 +f 2717/2893 2718/3032 2719/2894 +f 2721/2896 2722/3365 2723/2897 +f 2726/2899 2727/3028 2728/2900 +f 2725/2901 2728/2900 2730/2902 +f 2731/2904 2725/2901 2729/2903 +f 2732/2906 2726/2899 2725/2901 +f 2734/2907 2735/3007 2736/2908 +f 2738/2910 2739/3877 2740/2911 +f 2737/2912 2740/2911 2741/2913 +f 2744/2915 2745/2918 2746/2916 +f 2745/2918 2744/2915 2748/2919 +f 2749/2921 2750/2975 2747/2920 +f 2753/2923 2749/2921 2751/2922 +f 2250/2329 1380/1466 2246/2325 +f 2754/2925 1396/1471 1614/1683 +f 3598/2927 2754/2925 2755/2926 +f 3608/2929 2745/2918 2747/2920 +f 1617/1685 2756/2942 2755/2926 +f 2242/2309 2758/3104 1620/1688 +f 2191/2249 2085/2140 2760/2931 +f 2761/2933 2759/2932 2760/2931 +f 3648/2935 2759/2932 2761/2933 +f 3623/2937 2191/2249 2759/2932 +f 3209/2938 3248/3570 3223/2939 +f 1395/1722 1394/1470 2236/2304 +f 1395/1722 2235/2330 1636/2331 +f 1616/1684 1635/1703 2229/2299 +f 1617/1685 2234/2945 2763/2941 +f 2756/2942 2763/2941 3628/2943 +f 2765/2944 2763/2941 2234/2945 +f 2766/2946 2764/3347 3628/2943 +f 3202/2948 3199/2237 3246/2949 +f 1516/1966 437/266 435/268 +f 2768/2951 2769/2988 3552/1458 +f 1495/997 541/382 578/342 +f 2135/632 2136/2131 28/2112 +f 3526/2952 3540/3908 2773/2953 +f 1690/1646 1689/3952 3926/2955 +f 2778/2957 2779/2967 2780/2958 +f 2777/2959 2780/2958 2781/2960 +f 2784/2962 2778/2957 2777/2959 +f 3555/2128 3521/1682 575/380 +f 1494/996 1904/1746 9/2190 +f 3529/1467 2016/2075 2015/2263 +f 451/320 61/44 505/634 +f 2786/2964 2787/3056 2788/2965 +f 2779/2967 2786/2964 2785/2966 +f 2789/2968 2752/2924 2741/2913 +f 2790/2969 2753/2923 2752/2924 +f 2792/2970 2793/2973 2794/2971 +f 2793/2973 2795/2981 2796/2974 +f 2796/2974 2797/2980 2750/2975 +f 2794/2971 2796/2974 2749/2921 +f 2798/2976 1393/1472 1396/1471 +f 3591/2977 2798/2976 2754/2925 +f 2798/2976 2799/2979 2800/2978 +f 3591/2977 3662/3883 2799/2979 +f 2797/2980 2796/2974 2795/2981 +f 2791/2972 2794/2971 2753/2923 +f 216/138 233/629 232/1743 +f 3804/2983 2806/3903 2807/2984 +f 3805/2986 2809/2993 2804/2987 +f 2769/2988 2810/3882 3557/1507 +f 183/211 185/166 184/374 +f 2811/2989 2812/2994 2775/2990 +f 2804/2987 2811/2989 2776/2991 +f 2809/2993 2813/2995 2811/2989 +f 2812/2994 2811/2989 2813/2995 +f 3805/2986 2808/3885 2816/2997 +f 3796/2999 2818/3054 2815/3000 +f 3798/3001 3800/3951 2820/3002 +f 3793/3004 2823/3008 2819/3005 +f 2824/3006 2736/2908 2735/3007 +f 2823/3008 2825/3009 2824/3006 +f 2825/3009 2823/3008 2826/3010 +f 3793/3004 2822/3017 2827/3011 +f 3796/2999 2817/3874 2826/3010 +f 2713/2892 2716/2891 2829/3013 +f 2828/3014 2829/3013 2831/3015 +f 2822/3017 2821/3003 2828/3014 +f 2821/3003 2820/3002 2713/2892 +f 2832/3018 2827/3011 2822/3017 +f 2833/3019 2832/3018 2830/3016 +f 2834/3020 2835/3021 2832/3018 +f 2835/3021 2818/3054 2827/3011 +f 2837/3022 2838/3036 2839/3023 +f 2836/3024 2839/3023 2841/3025 +f 2842/3027 2836/3024 2840/3026 +f 2843/3029 2837/3022 2836/3024 +f 2840/3026 2841/3025 2845/3030 +f 2718/3032 2844/3031 2845/3030 +f 2730/2902 2728/2900 2844/3031 +f 2727/3028 2840/3026 2844/3031 +f 2846/3033 2845/3030 2841/3025 +f 2829/3013 2846/3033 2847/3034 +f 2847/3034 2841/3025 2839/3023 +f 2848/3035 2839/3023 2838/3036 +f 2833/3019 2848/3035 2849/3037 +f 2831/3015 2847/3034 2848/3035 +f 2850/3038 2814/2996 2851/3039 +f 2853/3041 2850/3038 2852/3040 +f 2783/2963 2777/2959 2782/2961 +f 2785/2966 2788/2965 2853/3041 +f 2780/2958 2785/2966 2856/3044 +f 2857/3045 2858/3051 2855/3043 +f 2859/3046 2857/3045 2782/2961 +f 2861/3047 2843/3029 2842/3027 +f 2860/3048 2842/3027 2727/3028 +f 2862/3049 2860/3048 2726/2899 +f 2863/3050 2861/3047 2860/3048 +f 2861/3047 2863/3050 2858/3051 +f 2843/3029 2861/3047 2857/3045 +f 2856/3044 2853/3041 2854/3042 +f 2781/2960 2856/3044 2864/3052 +f 2837/3022 2843/3029 2859/3046 +f 2838/3036 2837/3022 2864/3052 +f 2852/3040 2851/3039 2834/3020 +f 2854/3042 2852/3040 2849/3037 +f 2865/3053 2815/3000 2818/3054 +f 2851/3039 2865/3053 2835/3021 +f 2813/2995 2809/2993 2815/3000 +f 2814/2996 2813/2995 2865/3053 +f 2866/3055 2812/2994 2814/2996 +f 2788/2965 2866/3055 2850/3038 +f 2866/3055 2788/2965 2787/3056 +f 2812/2994 2866/3055 2867/3057 +f 1892/2003 1889/1739 1890/1740 +f 2720/2895 2719/2894 2846/3033 +f 298/1407 299/1006 256/148 +f 2872/3059 2714/2890 2713/2892 +f 3794/3060 3800/3951 2735/3007 +f 2729/2903 2730/2902 2874/3061 +f 2846/3033 2716/2891 2715/3063 +f 2876/3064 2877/3093 2878/3065 +f 2733/2909 2875/3066 2878/3065 +f 3806/3067 3807/3091 2879/3068 +f 3806/3067 2880/3069 2872/3059 +f 2882/3070 2883/3083 2884/3071 +f 2881/3072 2884/3071 2715/3063 +f 2880/3069 2881/3072 2714/2890 +f 2879/3068 2882/3070 2881/3072 +f 2885/3073 2886/3131 2887/3074 +f 2888/3075 2889/3085 2890/3076 +f 2885/3073 2890/3076 2892/3077 +f 2893/3079 2886/3131 2885/3073 +f 1942/2002 2151/2195 2532/3080 +f 2895/3082 2892/3077 2720/2895 +f 2884/3071 2895/3082 2870/3058 +f 2883/3083 2896/3084 2895/3082 +f 2896/3084 2891/3078 2892/3077 +f 2889/3085 2874/3061 2717/2893 +f 2890/3076 2717/2893 2720/2895 +f 2897/3086 2893/3079 2891/3078 +f 2898/3087 2897/3086 2896/3084 +f 2899/3088 2898/3087 2883/3083 +f 2900/3089 2899/3088 2882/3070 +f 3797/3090 2900/3089 2879/3068 +f 2876/3064 2902/3807 2901/3092 +f 2901/3092 2902/3807 2904/3094 +f 1785/1825 2656/2864 1835/2845 +f 2905/3096 2906/3144 2899/3088 +f 2907/3097 2908/3141 2897/3086 +f 3797/3090 2901/3092 2903/3095 +f 632/2493 576/392 577/3099 +f 3532/1639 3547/1640 2867/3057 +f 434/265 385/226 550/337 +f 2768/2951 2770/3897 3640/3100 +f 2910/3102 2911/3925 1623/1690 +f 2241/3103 2912/3109 2758/3104 +f 3640/3100 2770/3897 2913/3105 +f 1623/1690 2911/3925 2757/2930 +f 3587/2310 2242/2309 2757/2930 +f 2229/2299 1381/1464 1380/1466 +f 2765/2944 1630/2311 1629/1697 +f 2915/3108 2914/3107 1629/1697 +f 3642/3110 3641/3111 2914/3107 +f 3641/3111 3622/2947 2765/2944 +f 2919/3112 2916/3123 3642/3110 +f 2918/3114 2915/3108 2912/3109 +f 3614/3115 2918/3114 2241/3103 +f 3618/3116 2919/3112 3613/3113 +f 3541/1663 2177/2216 2180/2218 +f 3521/1682 2002/2245 2188/3118 +f 3705/3119 3573/2056 714/376 +f 2925/3120 2766/2946 2917/3121 +f 2924/3122 2917/3121 2916/3123 +f 3610/3124 2924/3122 2919/3112 +f 3611/3125 2925/3120 2924/3122 +f 2926/3126 2927/3348 2766/2946 +f 3658/3127 2926/3126 2925/3120 +f 1715/1533 1713/1529 1705/1744 +f 785/1500 497/3623 498/2230 +f 1387/719 651/371 565/1310 +f 374/2231 375/3578 1899/3128 +f 3573/2056 2203/2267 2206/2269 +f 2929/3130 2930/3135 2886/3131 +f 2932/3132 2933/3146 2934/3133 +f 1905/1748 1906/1749 1908/1813 +f 2930/3135 2935/3917 2936/3136 +f 2938/3138 2935/3917 2930/3135 +f 1493/1075 369/433 517/1897 +f 1603/3139 1585/1001 1586/1389 +f 2939/3140 2938/3138 2929/3130 +f 2940/3142 2939/3140 2908/3141 +f 3665/3143 1707/1523 1600/1395 +f 2886/3131 2930/3135 2937/3137 +f 2906/3144 2907/3097 2898/3087 +f 2908/3141 2929/3130 2893/3079 +f 2942/3145 2934/3133 2933/3146 +f 2941/3147 2933/3146 2937/3137 +f 3501/1687 2941/3147 2936/3136 +f 3498/1686 2942/3145 2941/3147 +f 2943/3148 2944/5094 2710/3149 +f 2943/3148 2873/3062 2874/3061 +f 2945/3150 2943/3148 2889/3085 +f 2946/3151 2944/5094 2943/3148 +f 2932/3132 2945/3150 2888/3075 +f 2931/3134 2946/3151 2945/3150 +f 727/375 1928/2201 1929/1777 +f 2903/3095 2904/3094 2947/3152 +f 545/331 594/355 42/30 +f 1480/969 1570/1745 533/322 +f 2907/3097 2906/3144 2949/3154 +f 2906/3144 2905/3096 2950/3155 +f 1558/1286 452/274 215/2820 +f 3799/3098 2903/3095 2948/3153 +f 2054/2008 1645/1985 1644/1420 +f 3705/3119 3684/3434 2203/2267 +f 1828/1677 1837/2119 1849/986 +f 2953/3157 2954/3301 2955/3158 +f 2952/3159 2955/3158 2957/3160 +f 2956/3161 2261/3256 2258/2345 +f 2953/3157 2952/3159 2258/2345 +f 2454/2535 2455/2534 2474/2554 +f 3747/3162 2958/3168 2959/3163 +f 3747/3162 2132/3433 2131/2177 +f 2961/3166 2962/3297 2963/3167 +f 2958/3168 2963/3167 2964/3169 +f 222/307 221/2566 2485/2565 +f 2477/2557 2226/2294 2966/3171 +f 2631/2841 2561/2655 2006/2070 +f 2384/2467 2454/2535 2496/2580 +f 2967/3173 2968/3174 2959/3163 +f 2968/3174 2967/3173 2970/3175 +f 3759/3177 2033/2098 2971/3178 +f 3784/3179 2971/3178 2960/3180 +f 2972/3181 2971/3178 2033/2098 +f 2007/2461 2377/2460 2973/3182 +f 3560/3183 3559/3947 2134/2179 +f 1836/3184 1833/1679 1832/1711 +f 3506/1735 2188/3118 2090/2143 +f 955/1295 810/515 959/517 +f 672/3186 675/1662 674/3187 +f 633/2170 710/1383 713/1335 +f 2024/1881 732/2883 733/398 +f 2025/1882 2024/1881 803/1489 +f 425/1057 1552/1327 1550/1285 +f 2975/3188 2976/3404 888/1919 +f 1319/1375 1158/1194 1157/1196 +f 1212/1791 1935/1992 2977/3189 +f 889/938 957/998 2228/3190 +f 1978/1837 1974/1834 1975/1835 +f 1138/2830 1078/1112 1329/1414 +f 751/841 665/776 2979/3191 +f 1619/1949 1613/1484 1625/1485 +f 2252/2336 2255/2335 1728/3193 +f 1157/1196 1160/1195 845/907 +f 2706/3194 1936/1993 1938/1995 +f 2980/3195 2255/2335 2254/3196 +f 2982/3198 2975/3188 887/937 +f 802/875 712/810 711/809 +f 678/3199 677/788 2029/2081 +f 527/697 840/904 690/905 +f 1839/2741 1207/1238 2629/2735 +f 2983/3200 2984/3233 602/730 +f 2983/3200 1914/1973 1913/1972 +f 2985/3201 2983/3200 1331/2759 +f 2986/3202 2984/3233 2983/3200 +f 2987/3203 2637/2744 2635/2743 +f 2985/3201 2988/3220 2639/2746 +f 2990/3204 1319/1375 1318/1374 +f 2991/3206 2992/3211 2993/3207 +f 2995/3209 2991/3206 2994/3208 +f 1106/1135 1058/2752 2991/3206 +f 1058/2752 1057/1085 2992/3211 +f 1415/765 1406/763 1365/762 +f 1317/1373 922/2351 2217/2284 +f 1932/1990 1728/3193 2255/2335 +f 926/965 2998/3216 2999/3213 +f 3001/3214 2993/3207 2992/3211 +f 3000/3215 2992/3211 1057/1085 +f 2999/3213 3000/3215 2978/3192 +f 2998/3216 3001/3214 3000/3215 +f 3002/3217 2998/3216 2209/2275 +f 3002/3217 3003/3218 2996/3210 +f 2993/3207 3001/3214 3002/3217 +f 1103/1136 1106/1135 2995/3209 +f 3004/3219 2995/3209 2996/3210 +f 2209/2275 2210/2274 3004/3219 +f 588/722 1103/1136 3004/3219 +f 295/1840 296/1187 433/1347 +f 2638/2747 2639/2746 2988/3220 +f 3005/3221 2988/3220 1056/1083 +f 1305/1366 3005/3221 1930/1988 +f 1276/1376 2638/2747 3005/3221 +f 1987/1851 1968/1822 1993/1858 +f 2633/2823 1762/2739 1761/1810 +f 1423/797 1422/793 1417/783 +f 3561/1769 3517/483 739/482 +f 2671/2807 2670/3237 2704/2879 +f 1473/2115 1872/2117 2035/2161 +f 922/2351 1317/1373 2694/2861 +f 1401/2337 1400/749 1378/715 +f 556/1166 2028/2083 1884/2082 +f 842/1433 848/1432 3825/601 +f 1854/1902 2706/3194 2617/2720 +f 933/973 1082/1114 1081/2783 +f 1440/836 1441/840 1436/963 +f 529/2725 657/771 719/815 +f 1031/1063 1025/1060 1027/1061 +f 777/854 913/952 912/2728 +f 2645/2761 1205/1332 1204/1235 +f 441/2805 438/269 1538/1348 +f 790/1110 1287/1343 587/1197 +f 2065/1969 2066/1959 1610/1404 +f 1860/2837 991/1025 990/2760 +f 60/40 106/77 87/78 +f 1424/804 1017/528 1948/1932 +f 332/3222 1527/1833 1507/1038 +f 261/1341 262/335 138/1126 +f 187/123 188/122 449/273 +f 1719/1536 1720/1535 1726/1583 +f 1931/1987 1055/1087 1059/1086 +f 3006/3223 1059/1086 1105/2753 +f 1287/1343 3006/3223 1104/1134 +f 1286/2354 1931/1987 3006/3223 +f 3007/3224 3008/3244 3009/3225 +f 3009/3225 3008/3244 653/869 +f 618/2279 999/1034 26/2732 +f 2029/2081 677/788 1210/2836 +f 957/998 601/966 600/729 +f 1049/1078 2146/2298 2228/3190 +f 2631/2841 890/939 3011/3227 +f 890/939 889/938 2227/2297 +f 3011/3227 2227/2297 2145/2187 +f 2561/2655 3011/3227 3012/3228 +f 1026/1232 656/1206 609/770 +f 2706/3194 1854/1902 1961/2036 +f 3013/3229 2965/3170 2485/2565 +f 2148/2189 2147/2188 1267/1301 +f 3015/3231 1267/1301 1266/1303 +f 2997/3212 2264/2352 1101/1131 +f 642/2787 641/756 1773/1817 +f 186/121 477/1076 461/285 +f 1041/1155 1040/1072 1320/1377 +f 1121/1154 3016/3235 3017/3232 +f 2984/3233 2986/3202 2987/3203 +f 3018/3234 2987/3203 2634/2742 +f 1048/1079 603/731 3018/3234 +f 603/731 602/730 2984/3233 +f 2679/2828 2678/2824 801/876 +f 2062/1958 2072/1978 2074/1981 +f 2061/1956 2074/1981 2076/1983 +f 414/239 303/1201 1545/1200 +f 3016/3235 1121/1154 2683/2833 +f 3019/3236 2683/2833 2704/2879 +f 3020/3238 3019/3236 2670/3237 +f 3007/3224 3016/3235 3019/3236 +f 1871/1921 1090/1121 1091/1122 +f 3021/3239 1787/1826 1122/1152 +f 3022/3240 3021/3239 3017/3232 +f 1314/2859 3021/3239 3022/3240 +f 1784/1827 1787/1826 3021/3239 +f 1316/1372 1315/1371 1763/3241 +f 3023/3242 3022/3240 3010/3226 +f 3023/3242 3009/3225 795/868 +f 1763/3241 3023/3242 1092/1123 +f 1315/1371 3022/3240 3023/3242 +f 3016/3235 3007/3224 3010/3226 +f 752/2816 751/841 2978/3192 +f 2986/3202 2639/2746 2637/2744 +f 3024/3243 654/768 653/869 +f 3020/3238 3024/3243 3008/3244 +f 720/818 723/817 3024/3243 +f 723/817 2621/2723 654/768 +f 2681/2831 1098/1132 1268/1302 +f 2671/2807 3025/3245 1268/1302 +f 2705/2878 2681/2831 3025/3245 +f 1313/1370 3026/3247 3027/3246 +f 3026/3247 3028/3265 3029/3248 +f 3027/3246 3029/3248 3030/3249 +f 1311/1368 3027/3246 3031/3250 +f 2012/2802 568/436 731/1875 +f 917/1106 2657/2781 974/1012 +f 743/1237 1206/1236 856/915 +f 1888/1898 2027/1896 2030/1895 +f 2682/3251 2705/2878 2684/2832 +f 3032/3252 2684/2832 1124/1153 +f 1100/2789 3032/3252 2989/3205 +f 1099/1130 2682/3251 3032/3252 +f 1123/3253 2990/3204 2989/3205 +f 3033/3254 1834/1879 1159/1880 +f 2990/3204 3033/3254 1158/1194 +f 1123/3253 1786/2724 3033/3254 +f 1786/2724 1785/1825 1834/1879 +f 1054/1084 1056/1083 2988/3220 +f 2979/3191 665/776 664/778 +f 2623/2727 2622/2793 2663/2791 +f 1095/1127 660/2839 688/796 +f 3034/3255 3035/3260 2261/3256 +f 3036/3257 3034/3255 2956/3161 +f 3037/3258 3038/3259 3034/3255 +f 3038/3259 3039/3267 3035/3260 +f 3040/3261 3041/3262 3026/3247 +f 2263/2347 3042/3263 3041/3262 +f 3042/3263 3039/3267 3043/3264 +f 3041/3262 3043/3264 3028/3265 +f 3044/3266 3045/3269 3043/3264 +f 3046/3268 3047/3270 3045/3269 +f 3047/3270 3048/3304 3049/3271 +f 3043/3264 3045/3269 3049/3271 +f 3038/3259 3037/3258 3051/3272 +f 3050/3273 3051/3272 3053/3274 +f 3052/3275 3046/3268 3044/3266 +f 3039/3267 3038/3259 3050/3273 +f 3054/3276 3035/3260 3039/3267 +f 3042/3263 2263/2347 2262/2346 +f 2261/3256 3035/3260 3054/3276 +f 2216/2348 2263/2347 2997/3212 +f 2212/2349 2211/2280 2667/2803 +f 3056/3277 868/925 2209/2275 +f 934/974 3057/3507 1961/2036 +f 2013/2840 3755/3310 3757/2040 +f 3058/3279 3059/3282 3060/3280 +f 3059/3282 3062/3284 3063/3283 +f 3060/3280 3063/3283 2213/2281 +f 3061/3281 3060/3280 1963/2350 +f 3063/3283 3064/3285 2214/2282 +f 3062/3284 3065/3286 3064/3285 +f 3065/3286 2257/2342 2260/2344 +f 3064/3285 2260/2344 2215/2283 +f 3066/3287 3067/3288 3031/3250 +f 2608/2707 2966/3171 3067/3288 +f 2966/3171 2562/3315 3068/3289 +f 3031/3250 3067/3288 3068/3289 +f 2455/2534 2458/2540 2461/2539 +f 2476/3290 2223/2292 2226/2294 +f 3551/1899 2090/2143 2089/2145 +f 3526/2952 2774/2954 3769/3291 +f 433/1347 354/1346 355/201 +f 2115/2048 1423/797 1419/785 +f 3509/993 2868/3920 2922/3293 +f 3769/3291 3737/3165 2131/2177 +f 3069/3294 2611/2709 2167/3295 +f 2971/3178 2972/3181 2928/3296 +f 2961/3166 2774/2954 2773/2953 +f 3070/3298 2475/2556 2478/2558 +f 2610/3299 2609/2708 3071/3300 +f 2502/2693 2371/2458 2374/2457 +f 3072/3302 2592/2688 2595/2690 +f 2964/3169 3046/3268 3052/3275 +f 3048/3304 2593/3306 3074/3305 +f 2593/3306 2592/2688 3075/3307 +f 3075/3307 3030/3249 3029/3248 +f 3074/3305 3029/3248 3028/3265 +f 3072/3302 3076/3308 3075/3307 +f 3076/3308 3072/3302 2482/3309 +f 2481/2562 2608/2707 3066/3287 +f 3076/3308 3066/3287 3030/3249 +f 2967/3173 3052/3275 3053/3274 +f 2482/3309 3072/3302 3073/3303 +f 479/364 480/363 493/297 +f 706/1340 3900/633 3873/2167 +f 3561/1769 2194/3896 2221/2291 +f 2013/2840 2010/2801 3754/812 +f 3533/1930 2032/2097 2016/2075 +f 3562/1933 3519/481 2222/3311 +f 1171/587 1154/571 1155/573 +f 2586/3313 2566/2658 2565/2714 +f 2982/3198 110/152 113/154 +f 2562/3315 2376/2656 3077/3316 +f 2376/2656 2375/2459 3012/3228 +f 3012/3228 2145/2187 2148/2189 +f 3077/3316 2148/2189 3015/3231 +f 2963/3167 3047/3270 3046/3268 +f 3051/3272 3078/3469 2970/3175 +f 1683/1805 2173/853 491/424 +f 3850/2105 2122/2060 1447/848 +f 1986/2053 2181/2221 3734/3317 +f 3079/3319 3080/3323 2546/2637 +f 3081/3320 3079/3319 2575/2668 +f 1983/2054 1986/2053 3768/3318 +f 3082/3322 2323/2407 2319/2638 +f 3080/3323 3082/3322 2545/2636 +f 3734/3317 3732/3324 3082/3322 +f 3732/3324 3748/2405 2323/2407 +f 1309/637 1471/933 1888/1898 +f 3073/3303 2595/2690 2772/3325 +f 2760/2931 3083/3328 3084/3327 +f 2760/2931 2085/2140 2088/2142 +f 3085/3329 3084/3327 3086/3330 +f 3089/3332 3085/3329 3090/3333 +f 3089/3332 2762/2934 3084/3327 +f 3092/3335 3088/3334 3090/3333 +f 3093/3337 2748/2919 2744/2915 +f 2751/2922 2747/2920 2748/2919 +f 3093/3337 2741/2913 2752/2924 +f 2742/2914 2741/2913 3093/3337 +f 3094/3338 3093/3337 2743/2917 +f 3096/3340 3097/3343 3098/3341 +f 3099/3342 3096/3340 3087/3331 +f 3097/3343 3094/3338 3095/3339 +f 3100/3344 2743/2917 2746/2916 +f 3101/3345 2927/3348 3102/3346 +f 2764/3347 2766/2946 2927/3348 +f 2745/2918 2764/3347 3101/3345 +f 3102/3346 3092/3335 3091/3336 +f 3100/3344 3091/3336 3095/3339 +f 2869/3349 2802/3408 3592/3350 +f 3102/3346 3103/3353 3104/3352 +f 3658/3127 2868/3920 2869/3349 +f 2927/3348 2926/3126 3103/3353 +f 3098/3341 3095/3339 3091/3336 +f 3087/3331 3098/3341 3090/3333 +f 2088/2142 2125/2172 3105/3354 +f 3083/3328 3105/3354 3086/3330 +f 2483/2563 3073/3303 2771/3326 +f 2401/2885 2186/2222 2185/2223 +f 3099/3342 3086/3330 3105/3354 +f 2125/2172 2207/2295 3106/3356 +f 3108/3357 2737/2912 2742/2914 +f 3107/3358 2742/2914 3094/3338 +f 3110/3359 3108/3357 3107/3358 +f 3109/3360 3107/3358 3097/3343 +f 3111/3361 3109/3360 3096/3340 +f 3112/3362 3110/3359 3109/3360 +f 3113/3363 2738/2910 2737/2912 +f 3115/3364 2723/2897 2722/3365 +f 3117/3367 3115/3364 3114/3366 +f 3119/3369 3117/3367 3116/3368 +f 3118/3370 3116/3368 3120/3371 +f 3116/3368 3114/3366 3113/3363 +f 3122/3373 3112/3362 3111/3361 +f 3122/3373 3123/3374 1755/2271 +f 3124/3375 3125/3378 3126/3376 +f 3125/3378 3118/3370 3121/3372 +f 3128/3379 3119/3369 3118/3370 +f 3129/3380 3128/3379 3125/3378 +f 2020/2078 2712/3848 3128/3379 +f 3853/671 3857/662 1346/664 +f 1065/2174 1046/538 1047/537 +f 1814/1665 3838/1653 3830/1445 +f 2021/2079 2020/2078 3129/3380 +f 3111/3361 3099/3342 3106/3356 +f 3123/3374 3106/3356 2207/2295 +f 2377/2460 2225/2293 2224/3382 +f 3014/3230 2485/2565 113/154 +f 1756/1802 2208/2272 3782/3383 +f 3131/3385 3132/3400 2530/2622 +f 3133/3386 3131/3385 2528/2620 +f 1753/1803 1756/1802 3767/3384 +f 3134/3388 3124/3375 3127/3377 +f 2327/2410 2408/2482 2314/2506 +f 2436/2515 2318/2402 2317/2404 +f 2018/2077 2021/2079 3711/3390 +f 2534/2625 3136/3393 3137/3392 +f 2320/2403 2322/2406 3136/3393 +f 2185/2223 2018/2077 3712/3391 +f 3138/3395 3139/3878 2542/2633 +f 3134/3388 3135/3389 3744/3396 +f 3785/3398 3130/3381 3134/3388 +f 3140/3399 3138/3395 2539/2630 +f 2535/2626 3137/3392 3140/3399 +f 3711/3390 2021/2079 3130/3381 +f 2558/2652 2530/2622 3132/3400 +f 3782/3383 3760/3403 3141/3401 +f 2560/2654 2558/2652 3141/3401 +f 3760/3403 3777/3422 3142/3402 +f 958/999 888/1919 2976/3404 +f 1933/3405 1932/1990 2980/3195 +f 2399/3407 2424/2499 2418/2490 +f 2348/2431 2342/2426 2343/2427 +f 2322/2406 2320/2403 2319/2638 +f 2718/3032 2717/2893 2874/3061 +f 2709/2905 2729/2903 2873/3062 +f 2894/3081 2871/3762 1361/1440 +f 346/384 289/175 176/177 +f 1876/1724 1877/1723 1882/1920 +f 2802/3408 2803/3412 3607/3409 +f 3104/3352 3144/3923 3088/3334 +f 2974/3312 2222/3311 3649/2936 +f 3089/3332 3145/3411 2761/2933 +f 3088/3334 3144/3923 3145/3411 +f 2803/3412 2974/3312 3603/3410 +f 3870/2095 3909/2181 692/379 +f 2123/2061 1419/785 1418/780 +f 1365/762 1363/687 1368/688 +f 1581/1380 1766/1597 1782/1696 +f 3569/1337 2202/2277 2129/2176 +f 3555/2128 2003/2065 2002/2245 +f 3146/3413 2585/2677 2551/2644 +f 3751/3415 3146/3413 3147/3414 +f 3742/3417 3149/3418 3146/3413 +f 3149/3418 2584/2676 2585/2677 +f 3196/3419 3198/2236 3197/3420 +f 3604/3421 2192/2248 2191/2249 +f 3142/3402 3150/3423 2556/2647 +f 3777/3422 3778/3425 3150/3423 +f 3646/3424 3152/3428 2550/2641 +f 3150/3423 3151/3426 2555/2648 +f 3778/3425 3780/3922 3151/3426 +f 3788/3427 3781/3430 3152/3428 +f 3153/3429 3147/3414 2551/2644 +f 3152/3428 3153/3429 2549/2642 +f 3781/3430 3776/3431 3153/3429 +f 3776/3431 3750/3416 3147/3414 +f 3148/3432 2767/3486 2206/2269 +f 2183/2886 2401/2885 2321/3355 +f 2132/3433 2960/3180 2928/3296 +f 3684/3434 3685/3936 2204/3435 +f 3719/3436 2198/2253 2197/2255 +f 2594/2689 2962/3297 2773/2953 +f 2595/2690 2594/2689 2951/3438 +f 1870/1713 798/1873 799/1716 +f 3713/3439 2179/2217 2178/3440 +f 3706/3441 2178/3440 3736/3442 +f 336/510 3154/3446 3774/3444 +f 339/512 3155/3935 3154/3446 +f 3789/3447 3683/3448 3149/3418 +f 3683/3448 3697/2678 2584/2676 +f 2963/3167 2962/3297 3048/3304 +f 3722/3445 3730/3455 337/3449 +f 339/512 338/511 2566/2658 +f 3156/3450 3157/3451 2168/2209 +f 2610/3299 3156/3450 2167/3295 +f 2954/3301 2953/3157 3156/3450 +f 3157/3451 3156/3450 2953/3157 +f 3707/3452 2166/2208 2169/2210 +f 2567/2660 3158/3945 3159/3454 +f 337/3449 3158/3945 2567/2660 +f 3730/3455 3069/3294 2166/2208 +f 3764/3456 2190/2247 1983/2054 +f 2579/2671 3160/3457 3081/3320 +f 2568/2662 3159/3454 3160/3457 +f 3709/3453 2169/2210 2190/2247 +f 3065/3286 3062/3284 3162/3458 +f 3161/3459 3162/3458 1984/2052 +f 3157/3451 3161/3459 2189/2246 +f 2257/2342 3065/3286 3161/3459 +f 734/400 735/399 1922/3460 +f 3059/3282 3058/3279 2708/2887 +f 3163/3461 2708/2887 2182/2219 +f 3162/3458 3163/3461 1985/2224 +f 3062/3284 3059/3282 3163/3461 +f 3203/3462 3206/3566 3205/3463 +f 2122/2060 2119/2059 1448/852 +f 3817/886 1686/1158 1685/1160 +f 139/95 140/94 444/2847 +f 1570/1745 569/437 566/1320 +f 2957/3160 3164/3467 3165/3466 +f 2955/3158 3166/3479 3164/3467 +f 1912/1758 454/275 341/499 +f 3130/3381 3129/3380 3124/3375 +f 1548/2355 322/1860 319/1861 +f 1949/2204 1950/2024 1327/1729 +f 2969/3176 2970/3175 3078/3469 +f 3167/3470 3078/3469 3169/3471 +f 3724/3473 2014/2074 2017/2076 +f 3720/3474 2017/2076 2033/2098 +f 3168/3472 3169/3471 3165/3466 +f 3170/3475 3165/3466 3164/3467 +f 3779/3477 3170/3475 3171/3476 +f 3724/3473 3168/3472 3170/3475 +f 3171/3476 3164/3467 3166/3479 +f 3172/3480 3166/3479 3071/3300 +f 3752/3482 3172/3480 3173/3481 +f 3756/3478 3171/3476 3172/3480 +f 3169/3471 3037/3258 3036/3257 +f 2593/3306 3048/3304 2962/3297 +f 3173/3481 3071/3300 2609/2708 +f 3174/3484 2609/2708 2199/2710 +f 3783/3485 3174/3484 2198/2253 +f 3749/3483 3173/3481 3174/3484 +f 2190/2247 2189/2246 1984/2052 +f 2196/2252 2195/2251 2767/3486 +f 2119/2059 2120/2085 1414/766 +f 1464/947 1463/3868 1466/891 +f 2199/2710 2611/2709 3069/3294 +f 2457/2713 2456/2536 2587/3314 +f 2226/2294 2225/2293 2562/3315 +f 481/404 478/362 1627/1409 +f 333/1261 1512/1053 235/1052 +f 3078/3469 3051/3272 3037/3258 +f 3040/3261 2264/2352 2997/3212 +f 2219/2287 1934/1991 1933/3405 +f 2385/2468 2384/2467 2497/3172 +f 221/2566 2220/2286 3175/3487 +f 2220/2286 1933/3405 3143/3406 +f 3175/3487 3143/3406 2976/3404 +f 2484/2564 3175/3487 2975/3188 +f 2954/3301 3071/3300 3166/3479 +f 2630/2737 1858/1908 110/152 +f 1547/2838 319/1861 1952/1971 +f 2091/3489 2090/2143 2188/3118 +f 3733/3490 3736/3442 2178/3440 +f 1918/1760 1919/1756 1927/1773 +f 3563/3491 112/153 111/3492 +f 955/1295 956/3185 960/3494 +f 2037/3495 3014/3230 112/153 +f 3143/3406 2980/3195 2981/3197 +f 2218/2285 2211/2280 2214/2282 +f 672/3186 3877/1202 3787/1204 +f 2152/3496 3013/3229 3014/3230 +f 1147/586 1144/578 1143/1862 +f 2248/2328 2246/2325 1409/1480 +f 1615/1721 1636/2331 1635/1703 +f 1410/1481 1409/1480 2246/2325 +f 3241/3497 3243/3534 3242/3498 +f 1382/2307 3176/3500 3177/3499 +f 3177/3499 1410/1481 2247/2324 +f 2247/2324 1383/1465 3177/3499 +f 3176/3500 2238/2306 2230/2301 +f 1410/1481 3177/3499 3179/3502 +f 3179/3502 3180/3765 2243/2313 +f 1633/1700 3181/3503 2800/2978 +f 1621/2326 1620/1688 2758/3104 +f 1622/1689 1621/2326 2245/2323 +f 2236/2304 1394/1470 3181/3503 +f 2237/2305 2236/2304 3182/3504 +f 2250/2329 1631/1698 2233/2302 +f 2912/3109 1629/1697 1628/1699 +f 135/1847 136/429 1564/1353 +f 1567/1437 419/252 512/309 +f 1085/1118 1084/1117 2653/2775 +f 3184/3506 869/926 868/925 +f 869/926 3184/3506 3057/3507 +f 1266/1303 1268/1302 1098/1132 +f 1267/1301 2147/2188 722/2722 +f 937/976 1146/1188 2646/2764 +f 2146/2298 1049/1078 722/2722 +f 2211/2280 2218/2285 921/960 +f 1957/2870 510/985 507/1359 +f 1313/1370 1312/1369 2264/2352 +f 1496/995 362/205 1493/1075 +f 2887/3074 2937/3137 2933/3146 +f 1687/3508 1688/3953 1659/1576 +f 145/1011 1499/1010 1498/1223 +f 37/19 38/21 418/1028 +f 1935/1992 1934/1991 3185/3509 +f 104/2810 89/67 301/438 +f 2101/2018 2098/2012 2083/1998 +f 543/1800 298/1407 360/1040 +f 1934/1991 2219/2287 3186/3510 +f 234/1055 1521/1077 212/173 +f 3845/2090 3821/1668 1822/1666 +f 1976/3511 1875/2146 1874/1715 +f 223/308 3186/3510 2219/2287 +f 3655/3512 3656/3605 3605/3513 +f 2165/3515 2164/2214 467/410 +f 467/410 468/287 2165/3515 +f 773/421 476/2205 2165/3515 +f 1935/1992 1212/1791 1728/3193 +f 3240/2319 3225/2288 3226/2290 +f 3261/3516 3249/5095 3250/3517 +f 3215/2241 3216/2243 3244/3519 +f 3265/3521 3221/2265 3215/2241 +f 3267/3522 3245/2332 3198/2236 +f 3205/3463 3206/3566 3269/3523 +f 3214/3525 3211/2238 3265/3521 +f 3271/3527 3213/2239 3214/3525 +f 3251/3529 3252/3568 3239/3530 +f 3222/3531 3221/2265 3266/3532 +f 3232/2318 3235/2320 3234/2322 +f 3216/2243 3242/3498 3243/3534 +f 3196/3419 3193/2232 3268/3535 +f 3244/3519 3243/3534 3254/3536 +f 3238/2316 3239/3530 3247/2950 +f 3264/3520 3244/3519 3255/3524 +f 3253/3537 3242/3498 3216/2243 +f 3211/2238 3266/3532 3221/2265 +f 3257/3538 3217/2242 3218/2266 +f 3258/3540 3222/3531 3272/3533 +f 3274/3542 3275/3548 3280/3543 +f 3228/3545 3229/3560 3262/3546 +f 3275/3548 3231/3567 3281/3549 +f 3226/2290 3227/2289 3273/3544 +f 3236/2315 3263/3547 3260/3518 +f 3281/3549 3263/3547 3236/2315 +f 3287/1578 3271/3527 3192/3528 +f 3235/2320 3226/2290 3280/3543 +f 3234/2322 3280/3543 3281/3549 +f 3288/3551 3290/3561 3259/3541 +f 3260/3518 3250/3517 3276/3552 +f 3289/3553 3212/2240 3278/3554 +f 3210/3556 3209/2938 3224/2940 +f 3199/2237 3202/2948 3201/3558 +f 3228/3545 3231/3567 3230/3559 +f 3290/3561 3288/3551 3285/3562 +f 3282/1580 3279/3571 3271/3527 +f 3260/3518 3263/3547 3262/3546 +f 3243/3534 3241/3497 3268/3535 +f 3267/3522 3268/3535 3241/3497 +f 3194/2234 3207/3575 3208/3564 +f 3191/3565 3270/3526 3269/3523 +f 3270/3526 3191/3565 3192/3528 +f 3275/3548 3274/3542 3230/3559 +f 3264/3520 3269/3523 3270/3526 +f 3252/3568 3251/3529 3276/3552 +f 3248/3570 3252/3568 3291/3569 +f 3213/2239 3271/3527 3279/3571 +f 3272/3533 3266/3532 3289/3553 +f 3277/3572 3278/3554 3212/2240 +f 3228/3545 3263/3547 3281/3549 +f 3220/3573 3225/2288 3253/3537 +f 3219/3574 3253/3537 3217/2242 +f 3256/3539 3218/2266 3222/3531 +f 3247/2950 3239/3530 3252/3568 +f 3245/2332 3267/3522 3232/2318 +f 3266/3532 3211/2238 3212/2240 +f 3208/3564 3205/3463 3255/3524 +f 3288/3551 3289/3553 3284/3555 +f 3204/3464 3205/3463 3208/3564 +f 560/2229 1899/3128 3187/3576 +f 3209/2938 3210/3556 3201/3558 +f 3189/3550 3192/3528 3191/3565 +f 448/1848 1980/1838 807/450 +f 647/367 648/366 122/980 +f 1833/1679 1848/1676 1780/1747 +f 510/985 509/984 508/1360 +f 3210/3556 1949/2204 1887/3468 +f 1887/3468 15/8 3200/2235 +f 15/8 16/2228 3197/3420 +f 16/2228 3188/2227 3195/2233 +f 3195/2233 3188/2227 3187/3576 +f 3194/2234 3187/3576 1899/3128 +f 3207/3575 1899/3128 375/3578 +f 387/227 173/116 126/85 +f 3189/3550 1791/2206 1760/2207 +f 3577/3579 763/2211 757/406 +f 763/2211 3577/3579 2172/2106 +f 3583/3581 3582/3606 3580/3582 +f 3581/3583 3580/3582 3579/3584 +f 3594/3585 3597/3642 3596/3586 +f 3400/3588 3601/3596 3602/3589 +f 3626/3591 3624/3664 3625/3592 +f 3631/3594 3635/3615 3599/3595 +f 3636/3597 3637/3608 3595/3587 +f 3647/3598 3584/3602 3588/3599 +f 3650/3601 3582/3606 3584/3602 +f 3653/3603 3579/3584 3580/3582 +f 3653/3603 2176/2212 3654/1775 +f 1801/1633 1864/950 3656/3605 +f 3651/3604 3580/3582 3582/3606 +f 3644/3607 3638/3631 3595/3587 +f 1767/806 1768/1596 3659/3609 +f 1597/1397 3663/805 3661/2103 +f 1708/1524 1707/1523 3665/3143 +f 3671/2258 3668/2257 3667/3610 +f 3666/3611 3667/3610 3673/3612 +f 1588/1526 1708/1524 3664/2256 +f 2080/2338 3671/2258 3666/3611 +f 2082/2006 3666/3611 3672/3613 +f 3674/3614 3677/3616 3635/3615 +f 3677/3616 3678/3628 3636/3597 +f 3682/3617 3647/3598 3645/3600 +f 3692/3619 3651/3604 3650/3601 +f 3681/3618 3645/3600 3644/3607 +f 786/1499 3694/3622 3692/3619 +f 3694/3622 3653/3603 3651/3604 +f 785/1500 3692/3619 3686/3620 +f 497/3623 3686/3620 3682/3617 +f 650/372 3682/3617 3681/3618 +f 3696/3624 564/370 3681/3618 +f 3405/3625 3606/3659 3605/3513 +f 3702/3627 3699/3629 3678/3628 +f 3699/3629 3698/3639 3679/3630 +f 3645/3600 3588/3599 3638/3631 +f 1799/1635 3657/3655 3659/3609 +f 3708/3632 3704/3658 3458/3633 +f 3462/3635 3710/3638 3708/3632 +f 3714/577 463/576 564/370 +f 3615/3636 3606/3659 3602/3589 +f 3710/3638 3714/577 3696/3624 +f 3635/3615 3636/3597 3596/3586 +f 3629/3640 3626/3591 3627/3593 +f 3597/3642 3600/3637 3599/3595 +f 3630/3641 3716/3647 3715/3643 +f 3627/3593 3625/3592 3597/3642 +f 3717/3644 3716/3647 3723/3645 +f 3715/3643 3663/805 3660/807 +f 3716/3647 3717/3644 3725/2102 +f 3668/2257 3665/3143 3661/2103 +f 3668/2257 3725/2102 3717/3644 +f 3667/3610 3717/3644 3718/3646 +f 3727/3648 3728/3649 3673/3612 +f 3728/3649 1576/2019 3672/3613 +f 3726/3650 3727/3648 3718/3646 +f 1576/2019 2101/2018 2084/1997 +f 3727/3648 3726/3650 3731/3651 +f 3203/3462 376/718 1387/719 +f 3190/3577 1387/719 1791/2206 +f 3283/3557 2152/2203 1949/2204 +f 317/183 240/190 259/151 +f 2000/1868 2176/2212 3653/3603 +f 3601/3596 3599/3595 3600/3637 +f 3589/3653 3588/3599 3584/3602 +f 3577/3579 758/1497 756/426 +f 3585/3654 3584/3602 3582/3606 +f 3678/3628 3679/3630 3637/3608 +f 3204/3464 375/3578 376/718 +f 1801/1633 3655/3512 3657/3655 +f 3729/3652 3735/3657 3728/3649 +f 1575/1378 3735/3657 3738/3656 +f 3735/3657 1575/1378 1576/2019 +f 1776/1630 1795/1629 1796/1637 +f 1293/661 1294/657 1290/649 +f 1326/2200 14/9 1327/1729 +f 1294/657 1245/627 1234/619 +f 878/626 1244/625 1330/648 +f 497/3623 373/2850 374/2231 +f 122/980 648/366 413/240 +f 3699/3629 3702/3627 3704/3658 +f 3606/3659 3405/3625 3401/3590 +f 3708/3632 3710/3638 3698/3639 +f 3464/575 3714/577 3710/3638 +f 3704/3658 3674/3614 3443/3660 +f 439/271 398/1539 399/1352 +f 1512/1053 1528/1099 1526/1098 +f 1668/1475 1741/1563 1738/1567 +f 839/3661 849/1431 1362/2226 +f 1362/2226 1357/677 826/678 +f 3843/1428 740/1934 1896/1589 +f 2053/2009 2054/2008 2118/885 +f 3888/2118 3887/2086 2120/2085 +f 696/1234 697/1233 3816/3662 +f 1826/2773 1878/1731 639/1453 +f 3740/3663 3739/3666 3729/3652 +f 956/3185 885/463 886/485 +f 1980/1838 806/442 1922/3460 +f 33/18 34/17 105/111 +f 1343/659 1344/660 3856/666 +f 3907/2069 2127/2068 2128/2073 +f 1766/1597 1581/1380 1582/1382 +f 14/9 1326/2200 2163/2197 +f 595/354 98/72 99/1067 +f 3233/2321 3238/2316 3246/2949 +f 1346/664 1035/534 1044/535 +f 748/1906 1888/1898 1425/800 +f 3193/2232 3208/3564 3254/3536 +f 3190/3577 3191/3565 3206/3566 +f 3612/3514 3605/3513 3606/3659 +f 3624/3664 3612/3514 3615/3636 +f 3631/3594 3415/3665 3443/3660 +f 3679/3630 3680/3621 3644/3607 +f 3686/3620 3650/3601 3647/3598 +f 3702/3627 3677/3616 3674/3614 +f 3625/3592 3615/3636 3600/3637 +f 3601/3596 3400/3588 3415/3665 +f 3739/3666 3738/3656 3735/3657 +f 3630/3641 3627/3593 3594/3585 +f 3741/3667 3723/3645 3716/3647 +f 1284/1792 1290/649 1288/651 +f 3698/3639 3696/3624 3680/3621 +f 1778/1616 1781/1615 1780/1747 +f 1792/2099 1759/3895 1584/1631 +f 695/2132 570/347 571/346 +f 3638/3631 3741/3667 3594/3585 +f 3741/3667 3638/3631 3588/3599 +f 3247/2950 3248/3570 3209/2938 +f 3292/3668 3293/3742 3294/3669 +f 3296/3671 3297/3739 3298/3672 +f 3299/3673 3298/3672 3300/3674 +f 3302/3676 3303/3684 3304/3677 +f 3306/3679 3307/3682 3308/3680 +f 3307/3682 3310/3740 3311/3683 +f 3303/3684 3302/3676 3301/3675 +f 3312/3685 3305/3678 3304/3677 +f 3314/3687 3315/3755 3316/3688 +f 3318/3690 3319/3711 3320/3691 +f 3324/3693 3318/3690 3321/3692 +f 3326/3695 3327/3723 3328/3696 +f 3329/3698 3330/5096 3331/3699 +f 3333/3701 3334/3713 3335/3702 +f 3337/3704 3338/3712 3339/3705 +f 3333/3701 3336/3703 3341/3707 +f 3342/3708 3341/3707 3343/3709 +f 3319/3711 3345/3730 3344/3710 +f 3338/3712 3335/3702 3334/3713 +f 3346/3714 3301/3675 3302/3676 +f 3305/3678 3348/3720 3347/3715 +f 3312/3685 3224/3760 3223/3716 +f 3350/3718 3337/3704 3340/3706 +f 3312/3685 3349/3717 3348/3720 +f 3352/3721 3343/3709 3341/3707 +f 3311/3683 3353/3738 3354/3722 +f 3341/3707 3336/3703 3327/3723 +f 3359/3724 3360/3727 3361/3725 +f 3360/3727 3359/3724 3250/3728 +f 3318/3690 3363/3741 3345/3730 +f 3364/3731 3363/3741 3318/3690 +f 3314/3687 3364/3731 3324/3693 +f 3366/3733 3299/3673 3301/3675 +f 3299/3673 3366/3733 3367/3734 +f 3308/3680 3354/3722 3368/3735 +f 3369/3736 3317/3689 3295/3670 +f 3317/3689 3369/3736 3364/3731 +f 3370/3737 3295/3670 3317/3689 +f 3325/3694 3371/3747 3365/3732 +f 3352/3721 3320/3691 3319/3711 +f 3296/3671 3367/3734 3353/3738 +f 3297/3739 3296/3671 3311/3683 +f 3363/3741 3368/3735 3354/3722 +f 3345/3730 3354/3722 3353/3738 +f 3344/3710 3353/3738 3367/3734 +f 3366/3733 3333/3701 3342/3708 +f 3347/3715 3339/3705 3334/3713 +f 3339/3705 3347/3715 3348/3720 +f 3348/3720 3349/3717 3351/3719 +f 3363/3741 3364/3731 3369/3736 +f 3294/3669 3309/3681 3368/3735 +f 3293/3742 3306/3679 3309/3681 +f 3331/3699 3373/3749 3374/3743 +f 3346/3714 3334/3713 3333/3701 +f 3323/3697 3322/3748 3352/3721 +f 3356/3744 3355/3745 3321/3692 +f 3355/3745 3357/3746 3325/3694 +f 3357/3746 3358/3758 3371/3747 +f 3322/3748 3356/3744 3320/3691 +f 3361/3725 3330/5096 3329/3698 +f 3373/3749 3372/3752 3375/3750 +f 3374/3743 3375/3750 3376/3751 +f 3329/3698 3332/3700 3376/3751 +f 3327/3723 3375/3750 3372/3752 +f 3336/3703 3335/3702 3375/3750 +f 3335/3702 3338/3712 3376/3751 +f 3376/3751 3338/3712 3337/3704 +f 3337/3704 3350/3718 3359/3724 +f 3359/3724 3350/3718 3276/3753 +f 3377/3754 3292/3668 3295/3670 +f 3277/3572 3316/3688 3315/3755 +f 3371/3747 3378/3757 3379/3756 +f 3378/3757 3371/3747 3358/3758 +f 3365/3732 3379/3756 3315/3755 +f 3316/3688 3277/3572 3279/3571 +f 3282/1580 3377/3754 3370/3737 +f 3313/3686 3283/3763 3224/3760 +f 3378/3757 3285/3562 3284/3555 +f 3380/3759 3286/3563 3285/3562 +f 3379/3756 3284/3555 3278/3554 +f 3276/3753 3350/3718 3351/3719 +f 3291/3761 3351/3719 3349/3717 +f 3313/3686 3304/3677 2965/3170 +f 2965/3170 3304/3677 3303/3684 +f 222/307 3303/3684 3300/3674 +f 223/308 3300/3674 3298/3672 +f 3298/3672 3297/3739 3185/3509 +f 3297/3739 3310/3740 2977/3189 +f 3310/3740 3307/3682 1213/1242 +f 3307/3682 3306/3679 1214/1243 +f 2532/3080 1214/1243 3306/3679 +f 2894/3081 2532/3080 3293/3742 +f 2871/3762 2894/3081 3292/3668 +f 3253/3537 3225/2288 3240/2319 +f 3283/3763 3313/3686 3013/3229 +f 1997/1865 1996/1866 1889/1739 +f 1237/1257 745/839 744/838 +f 1535/1782 1534/1784 120/1816 +f 1531/1119 1532/1367 201/137 +f 1119/1151 1241/1262 1032/1066 +f 946/478 948/477 824/489 +f 163/213 8/4 5/6 +f 3589/3653 3726/3650 3723/3645 +f 1155/573 1156/572 1162/581 +f 427/280 213/132 327/1304 +f 553/1454 1902/1779 796/1498 +f 3381/3764 2232/2300 2231/2303 +f 3381/3764 3178/3501 2230/2301 +f 2237/2305 3183/3505 3180/3765 +f 3383/3766 3384/3769 3385/3767 +f 3384/3769 3386/3771 3387/3770 +f 3386/3771 3388/3773 3389/3772 +f 3388/3773 3390/3799 3391/3774 +f 3392/3775 3393/3794 3394/3776 +f 3395/3777 3394/3776 3396/3778 +f 3398/3780 3399/3781 3397/3779 +f 3400/3588 3401/3590 3399/3781 +f 3403/3782 3404/3784 3405/3625 +f 3406/3783 3407/3786 3404/3784 +f 3408/3785 3409/3788 3407/3786 +f 3410/3787 3411/3790 3409/3788 +f 3412/3789 3413/3836 3411/3790 +f 3415/3665 3400/3588 3398/3780 +f 3414/3791 3398/3780 3396/3778 +f 3416/3792 3396/3778 3394/3776 +f 3417/3793 3394/3776 3393/3794 +f 3393/3794 3419/3797 3420/3796 +f 3419/3797 3390/3799 3421/3798 +f 3390/3799 3388/3773 3422/3800 +f 3388/3773 3386/3771 3423/3801 +f 3386/3771 3384/3769 3424/3802 +f 3384/3769 3383/3766 3425/3803 +f 3425/3803 3383/3766 3426/3804 +f 2904/3094 3427/3864 3428/3805 +f 3429/3806 3427/3864 2904/3094 +f 3430/3808 3429/3806 2902/3807 +f 2875/3066 3431/3840 3430/3808 +f 3432/3809 3433/3841 2733/2909 +f 2825/3009 3434/3816 3435/3810 +f 3437/3811 3438/3843 3439/3812 +f 3441/3814 3437/3811 3436/3813 +f 2724/2898 2723/2897 3434/3816 +f 3436/3813 3439/3812 3115/3364 +f 3440/3815 3436/3813 3117/3367 +f 3443/3660 3415/3665 3414/3791 +f 3442/3817 3414/3791 3416/3792 +f 3444/3818 3416/3792 3417/3793 +f 3445/3819 3417/3793 3418/3795 +f 3446/3820 3418/3795 3420/3796 +f 3420/3796 3421/3798 3448/3822 +f 3421/3798 3422/3800 3449/3823 +f 3422/3800 3423/3801 3450/3824 +f 3423/3801 3424/3802 3451/3825 +f 3424/3802 3425/3803 3452/3826 +f 3425/3803 3184/3506 3056/3277 +f 3451/3825 3452/3826 2253/2334 +f 3450/3824 3451/3825 2252/2336 +f 3449/3823 3450/3824 1727/1790 +f 3448/3822 3449/3823 2150/2273 +f 3453/3827 3447/3821 3448/3822 +f 3454/3828 3446/3820 3447/3821 +f 3455/3829 3445/3819 3446/3820 +f 3456/3830 3444/3818 3445/3819 +f 3442/3817 3444/3818 3456/3830 +f 3443/3660 3442/3817 3457/3831 +f 3459/3832 3460/3634 3458/3633 +f 3457/3831 3456/3830 3455/3829 +f 3459/3832 3455/3829 3454/3828 +f 3462/3635 3460/3634 3459/3832 +f 3461/3833 3454/3828 3453/3827 +f 3464/575 3462/3635 3461/3833 +f 3463/3834 3453/3827 1941/2194 +f 3404/3784 3399/3781 3401/3590 +f 3407/3786 3397/3779 3399/3781 +f 3409/3788 3395/3777 3397/3779 +f 3411/3790 3392/3775 3395/3777 +f 3465/3835 3466/3839 3413/3836 +f 3467/3837 3468/3844 3469/3838 +f 3465/3835 3412/3789 3431/3840 +f 3470/3842 3467/3837 3466/3839 +f 3438/3843 3470/3842 3432/3809 +f 3467/3837 3470/3842 3438/3843 +f 3468/3844 3467/3837 3437/3811 +f 3471/3845 3469/3838 3468/3844 +f 3472/3846 3468/3844 3441/3814 +f 3473/3847 3441/3814 3440/3815 +f 2712/3848 3440/3815 3119/3369 +f 3475/3849 3471/3845 3472/3846 +f 3474/3850 3472/3846 3473/3847 +f 3476/3851 3473/3847 2712/3848 +f 3477/3852 3476/3851 2711/2888 +f 3478/3853 3474/3850 3476/3851 +f 3479/3854 3475/3849 3474/3850 +f 3392/3775 3411/3790 3413/3836 +f 3466/3839 3469/3838 3480/3855 +f 3419/3797 3393/3794 3392/3775 +f 3390/3799 3419/3797 3480/3855 +f 3469/3838 3471/3845 3391/3774 +f 3389/3772 3391/3774 3471/3845 +f 3387/3770 3389/3772 3475/3849 +f 3385/3767 3387/3770 3479/3854 +f 3482/3857 3477/3852 2400/2478 +f 3483/3858 3478/3853 3477/3852 +f 3481/3856 3479/3854 3478/3853 +f 3484/3859 3482/3857 2402/2477 +f 3058/3279 3484/3859 2707/2884 +f 3061/3281 3485/3860 3484/3859 +f 3485/3860 3483/3858 3482/3857 +f 3382/3768 3385/3767 3481/3856 +f 3486/3861 3481/3856 3483/3858 +f 3426/3804 3383/3766 3382/3768 +f 3487/3862 3382/3768 3486/3861 +f 3486/3861 3485/3860 3061/3281 +f 1961/2036 3057/3507 3487/3862 +f 3057/3507 3184/3506 3426/3804 +f 3428/3805 3403/3782 3402/3626 +f 3427/3864 3406/3783 3403/3782 +f 3429/3806 3408/3785 3406/3783 +f 3430/3808 3410/3787 3408/3785 +f 3431/3840 3412/3789 3410/3787 +f 3470/3842 3465/3835 3433/3841 +f 3434/3816 3439/3812 3438/3843 +f 2723/2897 3115/3364 3439/3812 +f 2875/3066 2733/2909 3433/3841 +f 2736/2908 2824/3006 3435/3810 +f 2947/3152 3428/3805 3488/3863 +f 3464/575 3463/3834 1360/2001 +f 1900/1742 1925/1768 1924/1781 +f 1736/1561 1717/1559 1718/1841 +f 1955/3488 1952/1971 1943/3865 +f 1671/1474 1738/1567 1735/1560 +f 1696/1506 1750/1591 1698/1516 +f 1800/1634 1865/948 1864/950 +f 2063/1957 2055/1945 2056/1947 +f 1737/1568 1734/1558 1717/1559 +f 1751/1592 1735/1560 1697/1562 +f 943/2088 3885/1392 3899/1394 +f 3656/3605 3488/3863 3402/3626 +f 1577/1531 1578/1601 1764/1605 +f 3917/1606 1598/1396 1599/1525 +f 1945/3866 146/557 82/61 +f 68/49 6/5 7/2726 +f 147/97 1542/1179 1543/1189 +f 1109/544 1135/2261 1133/558 +f 1503/2788 1910/1831 1907/1832 +f 1499/1010 1501/1007 1909/1814 +f 452/274 1922/3460 735/399 +f 1824/1670 2068/2718 3835/3867 +f 1825/1671 2067/1960 2068/2718 +f 1463/3868 1462/1989 1022/532 +f 841/686 1012/521 1009/522 +f 1568/1783 1547/2838 1955/3488 +f 1910/1831 1503/2788 1502/2763 +f 1939/3869 1502/2763 422/256 +f 309/1031 280/167 1940/1787 +f 1804/1638 1851/959 1866/3870 +f 269/163 1482/971 1954/1799 +f 2065/1969 1607/1406 2060/2882 +f 3812/3465 1685/1160 1758/3871 +f 280/167 276/169 552/1276 +f 1875/2146 1873/1712 1869/1714 +f 1739/1582 1721/1557 1734/1558 +f 1778/1616 1779/1675 1790/1678 +f 310/184 1920/1755 1915/1757 +f 1909/1814 1908/1813 1906/1749 +f 1789/1621 1783/1614 1778/1616 +f 978/509 981/508 980/1401 +f 1584/1631 1759/3895 1731/1549 +f 425/1057 426/1056 311/1436 +f 148/96 1543/1189 115/80 +f 2044/1720 3897/1719 3894/2017 +f 277/242 1910/1831 1939/3869 +f 1943/3865 1946/2100 1945/3866 +f 1461/936 1462/1989 1463/3868 +f 2253/2334 3452/3826 3056/3277 +f 2981/3197 2254/3196 3489/3872 +f 2209/2275 2998/3216 3489/3872 +f 2254/3196 2253/2334 3055/3278 +f 2998/3216 926/965 958/999 +f 2826/3010 2817/3874 2721/2896 +f 3490/3873 2739/3877 2721/2896 +f 2816/2997 3491/3879 3490/3873 +f 2334/3875 2297/2384 2296/2383 +f 2298/2388 2297/2384 2334/3875 +f 2301/2396 2298/2388 2336/2419 +f 2311/2398 2301/2396 2338/2421 +f 2312/2397 2311/2398 2354/2437 +f 2359/2443 2358/2442 2361/2448 +f 2335/2418 2296/2383 2359/2443 +f 2414/3876 2413/2486 2365/2447 +f 2413/2486 2270/2359 2361/2448 +f 2355/2438 2352/2434 2540/2631 +f 2541/2632 2540/2631 2539/2630 +f 2722/3365 2721/2896 2739/3877 +f 3114/3366 2722/3365 2738/2910 +f 3110/3359 3112/3362 3121/3372 +f 3108/3357 3110/3359 3120/3371 +f 3122/3373 1754/1801 3127/3377 +f 3112/3362 3122/3373 3126/3376 +f 3127/3377 1754/1801 1753/1803 +f 3139/3878 3133/3386 2529/2619 +f 3744/3396 3775/3387 3133/3386 +f 3490/3873 2789/2968 2740/2911 +f 3491/3879 2790/2969 2789/2968 +f 228/144 229/143 91/2877 +f 245/1786 244/318 243/340 +f 248/385 7/2726 247/339 +f 2/2 297/1291 296/1187 +f 145/1011 146/557 300/2000 +f 327/1304 213/132 210/134 +f 329/332 332/3222 331/1091 +f 239/1191 241/187 240/190 +f 373/2850 376/718 375/3578 +f 178/2199 177/1889 176/177 +f 1218/606 1225/609 1228/623 +f 3862/640 1231/621 1295/667 +f 808/445 809/452 824/489 +f 3858/923 3859/863 1013/550 +f 3813/782 3810/781 1411/761 +f 2154/2149 2149/2148 2159/2156 +f 3845/2090 3835/3867 1758/3871 +f 306/449 807/450 1922/3460 +f 2157/2150 2153/2147 1976/3511 +f 708/2182 709/1338 2031/1913 +f 1450/2169 1226/615 1227/617 +f 1672/1478 1604/1398 1605/1954 +f 1813/3880 1814/1665 1821/1667 +f 1717/1559 1716/1532 1715/1533 +f 176/177 159/106 402/1493 +f 1710/1842 1705/1744 3916/1512 +f 1712/1553 1580/1555 1577/1531 +f 1705/1744 1713/1529 1711/1528 +f 971/501 978/509 979/733 +f 822/448 823/447 1094/552 +f 2909/3881 2810/3882 2793/2973 +f 2810/3882 2769/2988 2795/2981 +f 2799/2979 2910/3102 2249/2327 +f 3662/3883 3643/3101 2910/3102 +f 2769/2988 2768/2951 2801/2982 +f 3177/3499 3176/3500 3178/3501 +f 3178/3501 3381/3764 3180/3765 +f 3181/3503 1394/1470 1393/1472 +f 3181/3503 1633/1700 1632/1702 +f 3182/3504 1632/1702 2244/2314 +f 3183/3505 2244/2314 2243/2313 +f 3492/3884 2791/2972 2790/2969 +f 2808/3885 3492/3884 3491/3879 +f 2239/3886 3574/1170 3572/3887 +f 1149/2264 1150/1907 3571/3889 +f 1150/1907 2009/2072 3567/3891 +f 2202/2277 3569/1337 3566/1336 +f 2921/3892 3564/2811 3565/1770 +f 3568/3894 3560/3183 2133/2178 +f 1777/1607 1579/1599 1759/3895 +f 1201/598 1196/599 1183/588 +f 3561/1769 3554/820 2195/2251 +f 3553/1460 3576/3930 2770/3897 +f 3927/1519 3925/2956 1687/3508 +f 1516/1966 152/1441 154/104 +f 3549/1590 3562/1933 2974/3312 +f 3550/3898 3548/2881 2779/2967 +f 2771/3326 2772/3325 3575/3899 +f 3070/3298 2771/3326 3546/3900 +f 3547/1640 3544/827 2775/2990 +f 1376/714 1375/713 1370/705 +f 2767/3486 3543/819 3556/3129 +f 2195/2251 3554/820 3543/819 +f 2775/2990 3544/827 3542/826 +f 3377/3754 3282/1580 3545/1579 +f 3804/2983 3802/3932 3539/3902 +f 2776/2991 3542/826 3538/1577 +f 2240/3888 3572/3887 3535/3904 +f 2920/3905 3535/3904 3669/3906 +f 3548/2881 3534/1048 2786/2964 +f 1805/1673 1850/957 1851/959 +f 3534/1048 3532/1639 2787/3056 +f 2951/3438 2773/2953 3540/3908 +f 2772/3325 2951/3438 3531/3909 +f 2973/3182 2224/3382 3530/3910 +f 2224/3382 2223/2292 3537/3912 +f 1957/2870 1953/1970 320/983 +f 306/449 305/1093 304/1199 +f 2770/3897 3576/3930 3528/1171 +f 2913/3105 3528/1171 3574/1170 +f 2923/3893 3565/1770 3527/2826 +f 308/185 1940/1787 431/262 +f 207/131 208/130 132/90 +f 1879/1916 1876/1724 1881/1936 +f 3733/3490 3787/1204 3525/1203 +f 2475/2556 3070/3298 3558/3901 +f 2476/3290 2475/2556 3524/3913 +f 2223/2292 2476/3290 3523/3914 +f 3522/1159 3549/1590 2803/3412 +f 2037/3915 3563/2202 11/2191 +f 1959/1999 1958/2101 450/272 +f 2003/2065 3555/2128 3520/2127 +f 9/2190 10/2192 334/328 +f 2009/2072 2008/2071 3518/3916 +f 2008/2071 2973/3182 3536/3911 +f 3877/1202 672/3186 673/2296 +f 3515/1789 3550/3898 2778/2957 +f 2935/3917 3514/2120 3513/1695 +f 111/3492 1149/2264 3570/3890 +f 3510/3918 3514/2120 2935/3917 +f 683/2797 3876/1939 3885/1392 +f 3508/1624 3557/1507 2810/3882 +f 736/2821 733/398 732/2883 +f 1795/1629 1804/1638 1803/1708 +f 3505/987 3510/3918 2938/3138 +f 3507/958 3505/987 2939/3140 +f 2950/3155 3512/1173 3504/3919 +f 2940/3142 2949/3154 3504/3919 +f 3801/3156 3791/1174 3512/1173 +f 2868/3920 3509/993 3502/992 +f 2869/3349 3502/992 3522/1159 +f 1024/614 1034/605 1023/593 +f 3500/949 3503/2193 2948/3153 +f 551/1277 1939/3869 442/487 +f 2972/3181 3499/3921 3568/3894 +f 2032/2097 3533/1930 3499/3921 +f 216/138 93/70 1924/1781 +f 203/236 202/135 201/137 +f 1828/1677 1848/1676 1847/1694 +f 1958/2101 1957/2870 449/273 +f 272/350 271/1003 178/2199 +f 2871/3762 3545/1579 3495/1439 +f 3619/3907 3669/3906 3564/2811 +f 2801/2982 2768/2951 3643/3101 +f 2005/2213 3758/1776 3654/1775 +f 960/3494 886/485 899/2835 +f 3657/3655 3655/3512 3612/3514 +f 3780/3922 3788/3427 3646/3424 +f 3151/3426 3646/3424 3593/2650 +f 2193/2250 3604/3421 3623/2937 +f 3607/3409 3603/3410 3145/3411 +f 3603/3410 3649/2936 2761/2933 +f 3592/3350 3607/3409 3144/3923 +f 2926/3126 3658/3127 3634/3351 +f 3634/3351 3592/3350 3104/3352 +f 3755/3310 3754/812 3746/3924 +f 566/1320 567/1319 3758/1776 +f 3488/3863 3656/3605 1864/950 +f 1602/1399 1586/1389 2079/2005 +f 2868/3920 3658/3127 3611/3125 +f 2922/3293 3611/3125 3610/3124 +f 2923/3893 3610/3124 3618/3116 +f 3670/3117 3613/3113 2918/3114 +f 3619/3907 3670/3117 3614/3115 +f 2921/3892 3618/3116 3670/3117 +f 2920/3905 3614/3115 3586/2308 +f 3613/3113 3642/3110 2915/3108 +f 2917/3121 2766/2946 3622/2947 +f 2916/3123 2917/3121 3641/3111 +f 2239/3886 3587/2310 3652/3106 +f 2911/3925 3640/3100 3652/3106 +f 3643/3101 3640/3100 2911/3925 +f 2797/2980 2801/2982 3662/3883 +f 2797/2980 3591/2977 3598/2927 +f 3622/2947 3628/2943 2763/2941 +f 3608/2929 3628/2943 2764/3347 +f 2194/3896 3623/2937 3648/2935 +f 2221/2291 3648/2935 3649/2936 +f 2756/2942 3608/2929 3609/2928 +f 2750/2975 3598/2927 3609/2928 +f 3669/3906 3535/3904 1817/2135 +f 3763/2780 3770/1647 1691/3926 +f 2515/2601 3621/2610 3590/2649 +f 2548/2639 3590/2649 3593/2650 +f 2513/2599 2489/2572 3632/2611 +f 2513/2599 3616/2609 3621/2610 +f 2509/2595 3633/2592 3620/2378 +f 2510/2604 3632/2611 3633/2592 +f 2289/2593 3620/2378 3639/2371 +f 2283/2376 3639/2371 3617/2370 +f 2240/3888 3586/2308 3587/2310 +f 3659/3609 3657/3655 3624/3664 +f 716/377 2121/2089 3887/2086 +f 727/375 1999/1869 3761/2110 +f 2165/3515 2171/2108 2170/2107 +f 3660/807 3659/3609 3626/3591 +f 3743/2042 3581/3583 3578/1774 +f 2175/3580 2172/2106 769/419 +f 2100/630 500/304 2095/2007 +f 3758/1776 567/1319 3757/2040 +f 640/1452 3560/1736 3568/3927 +f 1653/1644 3576/3930 3553/1460 +f 1895/2270 3536/3942 3530/3928 +f 746/1283 3530/3928 3537/3929 +f 1653/1644 1810/1169 3528/1171 +f 3762/1609 1603/3139 1604/1398 +f 2093/1754 2075/1753 2073/1977 +f 959/517 996/516 995/1751 +f 962/491 899/2835 919/527 +f 1400/749 1401/2337 1398/747 +f 1000/1750 817/444 1127/551 +f 956/3185 959/517 884/462 +f 1662/1674 3548/2881 3550/3898 +f 2034/1915 3558/3941 3546/3931 +f 3926/2955 1689/3952 3539/3902 +f 3535/3904 3572/3887 766/2136 +f 3572/3887 3574/1170 765/2091 +f 334/328 3570/3939 3571/3933 +f 1868/1766 3531/1765 3540/1492 +f 1684/3934 1651/1459 1652/1508 +f 1682/1806 1683/1805 775/423 +f 1585/1001 1603/3139 3762/1609 +f 3763/2780 3762/1609 1672/1478 +f 2173/853 2174/1900 490/1457 +f 1658/825 3544/827 3547/1640 +f 3556/3129 3543/819 1650/2184 +f 1571/813 3754/812 2010/2801 +f 1587/1388 3664/2256 3671/2258 +f 2099/2011 2095/2007 2077/1982 +f 787/1780 3761/2110 1999/1869 +f 2000/1868 3694/3622 786/1499 +f 3155/3935 339/512 3697/2678 +f 3713/3439 3155/3935 3683/3448 +f 2180/2218 2179/2217 3685/3936 +f 3496/1664 2180/2218 3684/3434 +f 1684/3934 3846/1017 3840/1019 +f 1760/2207 464/1311 3495/1439 +f 2607/2705 3689/2706 3693/2686 +f 2581/2673 3676/2679 3689/2706 +f 2371/2458 2502/2693 3700/2585 +f 2371/2458 3695/2687 3693/2686 +f 2587/3314 3676/2679 3675/2680 +f 2586/3313 3675/2680 3697/2678 +f 2497/3172 3691/2579 3687/2586 +f 2502/2693 2503/2692 3687/2586 +f 2494/2576 3691/2579 3690/2578 +f 3690/2578 3688/2555 2472/2552 +f 3688/2555 3701/2548 2468/2549 +f 3701/2548 3703/2547 2469/3937 +f 726/397 3908/2028 3892/2049 +f 581/383 3567/1120 3518/3938 +f 10/2192 3511/5093 3570/3939 +f 1837/2119 3514/2120 3510/3918 +f 741/1282 3537/3929 3523/3940 +f 1299/636 3524/1208 3558/3941 +f 1851/959 3507/958 3504/3919 +f 3527/2826 3565/1770 1820/1772 +f 580/343 3518/3938 3536/3942 +f 1758/3871 1685/1160 3522/1159 +f 1693/1016 3557/1507 3508/1624 +f 3504/3919 3512/1173 1867/1709 +f 1894/1733 1826/2773 3568/3927 +f 2126/2259 1418/780 3813/782 +f 3906/2260 2126/2259 3841/2114 +f 2113/2039 3911/2043 3867/2045 +f 2179/2217 3713/3439 3789/3447 +f 624/360 3903/2050 3904/2062 +f 2192/2248 3604/3421 3788/3427 +f 2177/2216 3541/1663 3787/1204 +f 1364/2125 3824/690 3833/681 +f 3858/923 3855/910 1470/3943 +f 3135/3389 1753/1803 3775/3387 +f 2069/2055 3812/3465 3835/3867 +f 1351/879 3861/670 3853/671 +f 2108/3944 3882/1762 3901/1764 +f 2089/2145 2092/2144 3736/3442 +f 3828/684 3834/680 1358/683 +f 2001/2064 3749/3483 3783/3485 +f 2187/2244 3783/3485 3719/3436 +f 2130/2276 3756/3478 3752/3482 +f 2004/2066 3752/3482 3749/3483 +f 2014/2074 3724/3473 3779/3477 +f 2201/2262 3779/3477 3756/3478 +f 3167/3470 3720/3474 3759/3177 +f 3168/3472 3724/3473 3720/3474 +f 3159/3454 3709/3453 3764/3456 +f 3160/3457 3764/3456 3765/3321 +f 3730/3455 3707/3452 3158/3945 +f 3158/3945 3707/3452 3709/3453 +f 2200/2254 3069/3294 3730/3455 +f 3685/3936 3789/3447 3742/3417 +f 3722/3445 3774/3444 2197/2255 +f 3790/3443 3736/3442 2092/2144 +f 3774/3444 3790/3443 3721/3437 +f 3154/3446 3706/3441 3790/3443 +f 3155/3935 3713/3439 3706/3441 +f 2091/3489 3719/3436 3721/3437 +f 2196/2252 3148/3432 3750/3416 +f 2193/2250 2196/2252 3776/3431 +f 3604/3421 2193/2250 3781/3430 +f 2086/3946 2192/2248 3780/3922 +f 2087/2141 2086/3946 3778/3425 +f 2204/3435 3742/3417 3751/3415 +f 2205/2268 3751/3415 3750/3416 +f 3909/2181 3886/2165 574/391 +f 2124/2173 2087/2141 3777/3422 +f 2208/2272 2124/2173 3760/3403 +f 3711/3390 3785/3398 3140/3399 +f 3785/3398 3745/3397 3138/3395 +f 3745/3397 3744/3396 3139/3878 +f 3771/3394 3712/3391 3136/3393 +f 3712/3391 3711/3390 3137/3392 +f 3775/3387 3767/3384 3131/3385 +f 3767/3384 3782/3383 3132/3400 +f 1813/3880 3839/1650 3838/1653 +f 1293/661 3854/1793 3856/666 +f 2184/2220 2321/3355 3748/2405 +f 2181/2221 2184/2220 3732/3324 +f 3765/3321 3768/3318 3079/3319 +f 3768/3318 3734/3317 3080/3323 +f 709/1338 3873/2167 3875/2129 +f 2774/2954 2961/3166 3737/3165 +f 3786/3292 3769/3291 2134/2179 +f 3809/413 3808/412 766/2136 +f 2968/3174 3784/3179 3766/3164 +f 2969/3176 3759/3177 3784/3179 +f 2958/3168 3747/3162 3737/3165 +f 2132/3433 3747/3162 3766/3164 +f 2321/3355 2185/2223 3771/3394 +f 3860/849 3848/850 1449/2113 +f 3905/2157 3874/2153 582/1461 +f 3886/2165 3889/2164 577/3099 +f 3847/1659 3826/1658 1818/1771 +f 705/2159 3902/2084 3887/2086 +f 3816/3662 3912/2067 3907/2069 +f 2111/2124 3883/2123 3911/2043 +f 3810/781 3829/691 1366/2126 +f 1812/1654 3839/1650 3822/1652 +f 675/1662 3851/2093 3852/2094 +f 3496/1664 3705/3119 3851/2093 +f 2110/2038 3867/2045 3868/2033 +f 2104/2026 3896/2029 3901/1764 +f 2109/2031 3868/2033 3899/1394 +f 3842/1427 3831/877 703/390 +f 1680/1844 3811/1488 3846/1017 +f 1639/1435 1627/1409 3819/1411 +f 623/361 3904/2062 3906/2260 +f 2139/2130 2140/2013 3866/2015 +f 1808/1645 1640/1642 3844/2092 +f 3820/1669 3821/1668 1819/2825 +f 3872/2087 3914/631 3900/633 +f 1646/1434 3832/1443 3830/1445 +f 3889/2164 3890/2158 633/2170 +f 2139/2130 3865/2122 3875/2129 +f 2156/2152 2155/2151 3871/2166 +f 674/3187 3852/2094 3913/2104 +f 2117/887 3817/886 3812/3465 +f 1815/1661 3822/1652 3847/1659 +f 3855/910 3849/909 1444/846 +f 697/1233 3906/2260 3912/2067 +f 866/682 842/1433 3836/603 +f 3864/2180 3869/2134 2136/2131 +f 3585/3654 3731/3651 3726/3650 +f 3583/3581 3740/3663 3731/3651 +f 3753/2041 3746/3924 3738/3656 +f 3740/3663 3583/3581 3581/3583 +f 1088/1379 3738/3656 3746/3924 +f 3739/3666 3740/3663 3743/2042 +f 2791/2972 3492/3884 3493/3948 +f 3492/3884 2808/3885 2807/2984 +f 2792/2970 3493/3948 3494/3949 +f 3493/3948 2807/2984 2806/3903 +f 3508/1624 2909/3881 3494/3949 +f 3516/3950 3494/3949 2806/3903 +f 2948/3153 3503/2193 3791/1174 +f 2105/2046 3908/2028 3896/2029 +f 3538/1577 3802/3932 3804/2983 +f 680/1417 3878/1937 3876/1939 +f 1891/2175 1890/1740 3910/1730 +f 2905/3096 3799/3098 3801/3156 +f 2900/3089 3797/3090 3799/3098 +f 2901/3092 3797/3090 3807/3091 +f 2734/2907 2878/3065 3806/3067 +f 2877/3093 3807/3091 3806/3067 +f 2820/3002 3800/3951 3794/3060 +f 2818/3054 3796/2999 3792/3012 +f 2823/3008 3793/3004 3792/3012 +f 2822/3017 3793/3004 3798/3001 +f 2819/3005 2735/3007 3800/3951 +f 2817/3874 3796/2999 3795/2998 +f 2809/2993 3805/2986 3795/2998 +f 2808/3885 3805/2986 3803/2985 +f 2805/2992 3804/2983 3803/2985 +f 1702/1513 3921/1509 3923/1511 +f 3922/1627 3920/1632 1797/1636 +f 3915/1788 3916/1512 1706/1514 +f 3918/1520 3927/1519 1692/1505 +f 1657/1917 3898/2757 3880/1728 +f 1890/1740 1877/1723 3895/1617 +f 3772/1648 3770/1647 1674/1483 +f 1689/3952 1690/1646 3772/1648 +f 3926/2955 3802/3932 3538/1577 +f 3516/3950 3539/3902 1689/3952 +f 3917/1606 3923/1511 1703/1510 +f 1598/1396 3917/1606 3928/1602 +f 3880/1728 3884/1618 1876/1724 +f 1691/3926 1690/1646 3925/2956 +f 3925/2956 3926/2955 1688/3953 +f 3934/3959 3933/3965 3937/3960 +f 3934/3959 3938/3961 3939/3962 +f 3932/3964 3936/4074 3937/3960 +f 3938/3961 3942/3969 3943/3966 +f 3937/3960 3936/4074 3940/3967 +f 3937/3960 3941/3968 3942/3969 +f 3942/3969 3946/3973 3947/3970 +f 3941/3968 3940/3967 3944/3971 +f 3942/3969 3941/3968 3945/3972 +f 3947/3970 3946/3973 3950/3974 +f 3944/3971 3948/4075 3949/3976 +f 3945/3972 3949/3976 3950/3974 +f 3950/3974 3954/3980 3955/3977 +f 3949/3976 3948/4075 3952/3978 +f 3950/3974 3949/3976 3953/3979 +f 3955/3977 3954/3980 3958/3981 +f 3953/3979 3952/3978 3956/3983 +f 3953/3979 3957/3984 3958/3981 +f 3959/3982 3958/3981 3962/3985 +f 3957/3984 3956/3983 3960/3987 +f 3958/3981 3957/3984 3961/3988 +f 3962/3985 3966/3991 3967/3989 +f 3960/3987 3964/4076 3965/3990 +f 3961/3988 3965/3990 3966/3991 +f 3966/3991 3970/3995 3971/3992 +f 3965/3990 3964/4076 3968/3993 +f 3966/3991 3965/3990 3969/3994 +f 3970/3995 3974/3998 3975/3996 +f 3968/3993 3972/4077 3973/3997 +f 3969/3994 3973/3997 3974/3998 +f 3974/3998 3978/4002 3979/3999 +f 3973/3997 3972/4077 3976/4000 +f 3974/3998 3973/3997 3977/4001 +f 3979/3999 3978/4002 3982/4003 +f 3976/4000 3980/4078 3981/4005 +f 3977/4001 3981/4005 3982/4003 +f 3982/4003 3986/4009 3987/4006 +f 3981/4005 3980/4078 3984/4007 +f 3982/4003 3981/4005 3985/4008 +f 3987/4006 3986/4009 3990/4010 +f 3984/4007 3988/4079 3989/4012 +f 3985/4008 3989/4012 3990/4010 +f 3991/4011 3990/4010 3994/4013 +f 3989/4012 3988/4079 3992/4015 +f 3990/4010 3989/4012 3993/4016 +f 3995/4014 3994/4013 3998/4017 +f 3992/4015 3996/4080 3997/4019 +f 3993/4016 3997/4019 3998/4017 +f 3998/4017 4002/4023 4003/4020 +f 3997/4019 3996/4080 4000/4021 +f 3998/4017 3997/4019 4001/4022 +f 4002/4023 4006/4026 4007/4024 +f 4000/4021 4004/4081 4005/4025 +f 4001/4022 4005/4025 4006/4026 +f 4006/4026 4010/4030 4011/4027 +f 4005/4025 4004/4081 4008/4028 +f 4006/4026 4005/4025 4009/4029 +f 4011/4027 4010/4030 4014/4031 +f 4008/4028 4012/4082 4013/4033 +f 4009/4029 4013/4033 4014/4031 +f 4014/4031 4018/4037 4019/4034 +f 4013/4033 4012/4082 4016/4035 +f 4014/4031 4013/4033 4017/4036 +f 4019/4034 4018/4037 4022/4038 +f 4016/4035 4020/4083 4021/4040 +f 4017/4036 4021/4040 4022/4038 +f 4023/4039 4022/4038 4026/4041 +f 4021/4040 4020/4083 4024/4043 +f 4022/4038 4021/4040 4025/4044 +f 4027/4042 4026/4041 4030/4045 +f 4024/4043 4028/4084 4029/4047 +f 4025/4044 4029/4047 4030/4045 +f 4031/4046 4030/4045 4034/4048 +f 4029/4047 4028/4084 4032/4050 +f 4030/4045 4029/4047 4033/4051 +f 4034/4048 4038/4054 4039/4052 +f 4032/4050 4036/4085 4037/4053 +f 4033/4051 4037/4053 4038/4054 +f 4038/4054 4042/4058 4043/4055 +f 4037/4053 4036/4085 4040/4056 +f 4038/4054 4037/4053 4041/4057 +f 4043/4055 4042/4058 4046/4059 +f 4040/4056 4044/4086 4045/4061 +f 4041/4057 4045/4061 4046/4059 +f 4046/4059 4050/4065 4051/4062 +f 4045/4061 4044/4086 4048/4063 +f 4046/4059 4045/4061 4049/4064 +f 4051/4062 4050/4065 4055/4066 +f 4048/4063 4053/4071 4054/4068 +f 4049/4064 4054/4068 4055/4066 +f 4056/4067 4055/4066 4059/4069 +f 4053/4071 4057/4087 4058/4072 +f 4055/4066 4054/4068 4058/4072 +f 4060/4070 4059/4069 3934/3959 +f 4058/4072 4057/4087 3932/3964 +f 4058/4072 3933/3965 3934/3959 +f 4069/4088 4068/4105 4081/4089 +f 4066/4091 4079/4122 4080/4092 +f 4065/4094 4064/4108 4077/4095 +f 4063/4097 4062/4110 4075/4098 +f 4071/4100 4084/4113 4085/4101 +f 4069/4088 4082/4090 4083/4103 +f 4067/4093 4080/4092 4081/4089 +f 4066/4106 4065/4094 4078/4096 +f 4063/4097 4076/4099 4077/4095 +f 4061/4109 4074/4115 4075/4098 +f 4072/4102 4085/4101 4086/4111 +f 4071/4100 4070/4104 4083/4103 +f 4076/4099 4089/4125 4090/4114 +f 4074/4115 4087/4525 4088/4116 +f 4086/4111 4085/4101 4098/4117 +f 4083/4103 4096/4126 4097/4119 +f 4082/4090 4081/4089 4094/4120 +f 4079/4122 4092/4135 4093/4123 +f 4078/4096 4077/4095 4090/4114 +f 4076/4099 4075/4098 4088/4116 +f 4085/4101 4084/4113 4097/4119 +f 4082/4090 4095/4121 4096/4126 +f 4080/4092 4093/4123 4094/4120 +f 4079/4107 4078/4096 4091/4124 +f 4089/4125 4102/4138 4103/4128 +f 4088/4116 4087/4525 4100/4129 +f 4098/4117 4111/4139 4112/4131 +f 4096/4126 4109/4140 4110/4132 +f 4095/4121 4094/4120 4107/4133 +f 4092/4135 4105/4150 4106/4136 +f 4090/4114 4103/4128 4104/4137 +f 4089/4125 4088/4116 4101/4130 +f 4097/4119 4110/4132 4111/4139 +f 4095/4121 4108/4134 4109/4140 +f 4094/4120 4093/4123 4106/4136 +f 4092/4127 4091/4124 4104/4137 +f 4103/4128 4102/4138 4115/4142 +f 4100/4129 4113/5097 4114/4144 +f 4112/4131 4111/4139 4124/4145 +f 4110/4132 4109/4140 4122/4147 +f 4107/4133 4120/4153 4121/4149 +f 4105/4150 4118/5098 4119/4151 +f 4103/4128 4116/4143 4117/4152 +f 4101/4130 4114/4144 4115/4142 +f 4110/4132 4123/4148 4124/4145 +f 4109/4140 4108/4134 4121/4149 +f 4107/4133 4106/4136 4119/4151 +f 4105/4141 4104/4137 4117/4152 +f 4115/4142 4128/4165 4129/4155 +f 4114/4144 4113/5097 4126/4156 +f 4124/4145 4137/4166 4138/4158 +f 4123/4148 4122/4147 4135/4159 +f 4120/4153 4133/4167 4134/4161 +f 4119/4151 4118/5098 4131/4162 +f 4117/4152 4116/4143 4129/4155 +f 4114/4144 4127/4157 4128/4165 +f 4124/4145 4123/4148 4136/4160 +f 4122/4147 4121/4149 4134/4161 +f 4119/4151 4132/4163 4133/4167 +f 4117/4152 4130/4164 4131/4168 +f 4129/4155 4128/4165 4141/4169 +f 4126/4156 4139/4524 4140/4171 +f 4138/4158 4137/4166 4150/4172 +f 4136/4160 4135/4159 4148/4174 +f 4133/4167 4146/4179 4147/4176 +f 4131/4162 4144/4189 4145/4177 +f 4130/4164 4129/4155 4142/4170 +f 4127/4157 4140/4171 4141/4169 +f 4137/4166 4136/4160 4149/4175 +f 4135/4159 4134/4161 4147/4176 +f 4132/4163 4145/4177 4146/4179 +f 4131/4168 4130/4164 4143/4178 +f 4142/4170 4141/4169 4154/4181 +f 4140/4171 4139/4524 4152/4183 +f 4150/4172 4163/4192 4164/4185 +f 4149/4175 4148/4174 4161/4186 +f 4146/4179 4159/4193 4160/4188 +f 4144/4189 4157/5099 4158/4190 +f 4142/4170 4155/4182 4156/4191 +f 4140/4171 4153/4184 4154/4181 +f 4149/4175 4162/4187 4163/4192 +f 4148/4174 4147/4176 4160/4188 +f 4146/4179 4145/4177 4158/4190 +f 4144/4180 4143/4178 4156/4191 +f 4155/4182 4154/4181 4167/4195 +f 4153/4184 4152/4183 4165/4197 +f 4163/4192 4176/4205 4177/4199 +f 4161/4186 4174/4206 4175/4200 +f 4159/4193 4172/4207 4173/4201 +f 4158/4190 4157/5099 4170/4202 +f 4155/4182 4168/4196 4169/4204 +f 4153/4184 4166/4198 4167/4195 +f 4163/4192 4162/4187 4175/4200 +f 4161/4186 4160/4188 4173/4201 +f 4159/4193 4158/4190 4171/4203 +f 4156/4191 4169/4204 4170/4208 +f 4167/4195 4180/4218 4181/4209 +f 4165/4197 4178/4222 4179/4210 +f 4176/4205 4189/4219 4190/4211 +f 4175/4200 4174/4206 4187/4212 +f 4173/4201 4172/4207 4185/4214 +f 4170/4202 4183/4229 4184/4216 +f 4169/4204 4168/4196 4181/4209 +f 4167/4195 4166/4198 4179/4210 +f 4175/4200 4188/4213 4189/4219 +f 4173/4201 4186/4215 4187/4212 +f 4171/4203 4184/4216 4185/4214 +f 4170/4208 4169/4204 4182/4217 +f 4180/4218 4193/4232 4194/4221 +f 4178/4222 4191/4523 4192/4223 +f 4190/4211 4189/4219 4202/4224 +f 4187/4212 4200/4233 4201/4226 +f 4186/4215 4185/4214 4198/4227 +f 4183/4229 4196/4242 4197/4230 +f 4182/4217 4181/4209 4194/4221 +f 4180/4218 4179/4210 4192/4223 +f 4189/4219 4188/4213 4201/4226 +f 4186/4215 4199/4228 4200/4233 +f 4184/4216 4197/4230 4198/4227 +f 4183/4220 4182/4217 4195/4231 +f 4193/4232 4206/4245 4207/4235 +f 4192/4223 4191/4523 4204/4236 +f 4202/4224 4215/4246 4216/4238 +f 4200/4233 4213/4247 4214/4239 +f 4199/4228 4198/4227 4211/4240 +f 4196/4242 4209/4256 4210/4243 +f 4194/4221 4207/4235 4208/4244 +f 4193/4232 4192/4223 4205/4237 +f 4201/4226 4214/4239 4215/4246 +f 4199/4228 4212/4241 4213/4247 +f 4198/4227 4197/4230 4210/4243 +f 4196/4234 4195/4231 4208/4244 +f 4207/4235 4206/4245 4219/4249 +f 4204/4236 4217/5100 4218/4251 +f 4216/4238 4215/4246 4228/4252 +f 4213/4247 4226/4259 4227/4254 +f 4211/4240 4224/4260 4225/4255 +f 4209/4256 4222/5101 4223/4257 +f 4207/4235 4220/4250 4221/4258 +f 4205/4237 4218/4251 4219/4249 +f 4214/4239 4227/4254 4228/4252 +f 4213/4247 4212/4241 4225/4255 +f 4211/4240 4210/4243 4223/4257 +f 4209/4248 4208/4244 4221/4258 +f 4219/4249 4232/4272 4233/4262 +f 4218/4251 4217/5100 4230/4263 +f 4228/4252 4241/4273 4242/4265 +f 4226/4259 4239/4274 4240/4266 +f 4225/4255 4224/4260 4237/4267 +f 4223/4257 4222/5101 4235/4269 +f 4221/4258 4220/4250 4233/4262 +f 4218/4251 4231/4264 4232/4272 +f 4228/4252 4227/4254 4240/4266 +f 4226/4259 4225/4255 4238/4268 +f 4223/4257 4236/4270 4237/4267 +f 4221/4258 4234/4271 4235/4275 +f 4233/4262 4232/4272 4245/4276 +f 4230/4263 4243/4522 4244/4278 +f 4242/4265 4241/4273 4254/4279 +f 4240/4266 4239/4274 4252/4281 +f 4237/4267 4250/4286 4251/4283 +f 4235/4269 4248/4296 4249/4284 +f 4234/4271 4233/4262 4246/4277 +f 4231/4264 4244/4278 4245/4276 +f 4241/4273 4240/4266 4253/4282 +f 4239/4274 4238/4268 4251/4283 +f 4236/4270 4249/4284 4250/4286 +f 4235/4275 4234/4271 4247/4285 +f 4246/4277 4245/4276 4258/4288 +f 4244/4278 4243/4522 4256/4290 +f 4254/4279 4267/4299 4268/4292 +f 4253/4282 4252/4281 4265/4293 +f 4250/4286 4263/4300 4264/4295 +f 4248/4296 4261/5102 4262/4297 +f 4246/4277 4259/4289 4260/4298 +f 4244/4278 4257/4291 4258/4288 +f 4253/4282 4266/4294 4267/4299 +f 4252/4281 4251/4283 4264/4295 +f 4250/4286 4249/4284 4262/4297 +f 4248/4287 4247/4285 4260/4298 +f 4259/4289 4258/4288 4271/4302 +f 4257/4291 4256/4290 4269/4304 +f 4267/4299 4280/4312 4281/4306 +f 4265/4293 4278/4313 4279/4307 +f 4263/4300 4276/4314 4277/4308 +f 4262/4297 4261/5102 4274/4309 +f 4259/4289 4272/4303 4273/4311 +f 4257/4291 4270/4305 4271/4302 +f 4266/4294 4279/4307 4280/4312 +f 4265/4293 4264/4295 4277/4308 +f 4263/4300 4262/4297 4275/4310 +f 4260/4298 4273/4311 4274/4315 +f 4271/4302 4284/4326 4285/4316 +f 4269/4304 4282/4329 4283/4317 +f 4281/4306 4280/4312 4293/4318 +f 4279/4307 4278/4313 4291/4320 +f 4277/4308 4276/4314 4289/4322 +f 4274/4309 4287/4336 4288/4324 +f 4273/4311 4272/4303 4285/4316 +f 4271/4302 4270/4305 4283/4317 +f 4280/4312 4279/4307 4292/4321 +f 4277/4308 4290/4323 4291/4320 +f 4275/4310 4288/4324 4289/4322 +f 4274/4315 4273/4311 4286/4325 +f 4284/4326 4297/4339 4298/4328 +f 4282/4329 4295/4521 4296/4330 +f 4294/4319 4293/4318 4306/4331 +f 4291/4320 4304/4340 4305/4333 +f 4290/4323 4289/4322 4302/4334 +f 4287/4336 4300/4349 4301/4337 +f 4286/4325 4285/4316 4298/4328 +f 4284/4326 4283/4317 4296/4330 +f 4293/4318 4292/4321 4305/4333 +f 4290/4323 4303/4335 4304/4340 +f 4288/4324 4301/4337 4302/4334 +f 4287/4327 4286/4325 4299/4338 +f 4297/4339 4310/4352 4311/4342 +f 4296/4330 4295/4521 4308/4343 +f 4306/4331 4319/4353 4320/4345 +f 4304/4340 4317/4354 4318/4346 +f 4303/4335 4302/4334 4315/4347 +f 4300/4349 4313/4364 4314/4350 +f 4298/4328 4311/4342 4312/4351 +f 4297/4339 4296/4330 4309/4344 +f 4305/4333 4318/4346 4319/4353 +f 4304/4340 4303/4335 4316/4348 +f 4302/4334 4301/4337 4314/4350 +f 4300/4341 4299/4338 4312/4351 +f 4310/4352 4323/4367 4324/4356 +f 4308/4343 4321/5103 4322/4357 +f 4320/4345 4319/4353 4332/4358 +f 4318/4346 4317/4354 4330/4360 +f 4316/4348 4315/4347 4328/4362 +f 4313/4364 4326/5104 4327/4365 +f 4311/4342 4324/4356 4325/4366 +f 4310/4352 4309/4344 4322/4357 +f 4318/4346 4331/4361 4332/4358 +f 4316/4348 4329/4363 4330/4360 +f 4315/4347 4314/4350 4327/4365 +f 4312/4351 4325/4366 4326/4368 +f 4323/4367 4336/4379 4337/4369 +f 4322/4357 4321/5103 4334/4370 +f 4332/4358 4345/4380 4346/4372 +f 4330/4360 4343/4381 4344/4373 +f 4329/4363 4328/4362 4341/4374 +f 4327/4365 4326/5104 4339/4376 +f 4325/4366 4324/4356 4337/4369 +f 4322/4357 4335/4371 4336/4379 +f 4332/4358 4331/4361 4344/4373 +f 4330/4360 4329/4363 4342/4375 +f 4327/4365 4340/4377 4341/4374 +f 4325/4366 4338/4378 4339/4382 +f 4337/4369 4336/4379 4350/4383 +f 4334/4370 4348/4520 4349/4385 +f 4346/4372 4345/4380 4359/4386 +f 4344/4373 4343/4381 4357/4388 +f 4341/4374 4355/4394 4356/4390 +f 4340/4377 4339/4376 4353/4391 +f 4338/4378 4337/4369 4351/4384 +f 4335/4371 4349/4385 4350/4383 +f 4345/4380 4344/4373 4358/4389 +f 4343/4381 4342/4375 4356/4390 +f 4340/4377 4354/4392 4355/4394 +f 4338/4378 4352/4393 4353/4395 +f 4351/4384 4350/4383 4363/4396 +f 4349/4385 4348/4520 4361/4398 +f 4359/4386 4372/4407 4373/4400 +f 4358/4389 4357/4388 4370/4401 +f 4355/4394 4368/4408 4369/4403 +f 4354/4392 4353/4391 4366/4404 +f 4351/4384 4364/4397 4365/4406 +f 4349/4385 4362/4399 4363/4396 +f 4358/4389 4371/4402 4372/4407 +f 4357/4388 4356/4390 4369/4403 +f 4355/4394 4354/4392 4367/4405 +f 4352/4393 4365/4406 4366/4409 +f 4364/4397 4363/4396 4376/4410 +f 4362/4399 4361/4398 4374/4412 +f 4373/4400 4372/4407 4385/4414 +f 4370/4401 4383/4421 4384/4416 +f 4368/4408 4381/4422 4382/4417 +f 4367/4405 4366/4404 4379/4418 +f 4364/4397 4377/4411 4378/4420 +f 4362/4399 4375/4413 4376/4410 +f 4372/4407 4371/4402 4384/4416 +f 4370/4401 4369/4403 4382/4417 +f 4368/4408 4367/4405 4380/4419 +f 4365/4406 4378/4420 4379/4423 +f 4376/4410 4389/4433 4390/4424 +f 4374/4412 4387/4437 4388/4425 +f 4385/4414 4398/4434 4399/4426 +f 4384/4416 4383/4421 4396/4427 +f 4382/4417 4381/4422 4394/4429 +f 4379/4418 4392/5105 4393/4431 +f 4378/4420 4377/4411 4390/4424 +f 4376/4410 4375/4413 4388/4425 +f 4384/4416 4397/4428 4398/4434 +f 4382/4417 4395/4430 4396/4427 +f 4380/4419 4393/4431 4394/4429 +f 4379/4423 4378/4420 4391/4432 +f 4389/4433 4402/4447 4403/4436 +f 4387/4437 4400/4519 4401/4438 +f 4399/4426 4398/4434 4411/4439 +f 4396/4427 4409/4448 4410/4441 +f 4395/4430 4394/4429 4407/4442 +f 4393/4431 4392/5105 4405/4444 +f 4391/4432 4390/4424 4403/4436 +f 4389/4433 4388/4425 4401/4438 +f 4398/4434 4397/4428 4410/4441 +f 4395/4430 4408/4443 4409/4448 +f 4393/4431 4406/4445 4407/4442 +f 4391/4432 4404/4446 4405/4449 +f 4402/4447 4415/4460 4416/4450 +f 4401/4438 4400/4519 4413/4451 +f 4411/4439 4424/4461 4425/4453 +f 4409/4448 4422/4462 4423/4454 +f 4408/4443 4407/4442 4420/4455 +f 4406/4445 4405/4444 4418/4457 +f 4403/4436 4416/4450 4417/4459 +f 4402/4447 4401/4438 4414/4452 +f 4410/4441 4423/4454 4424/4461 +f 4408/4443 4421/4456 4422/4462 +f 4407/4442 4406/4445 4419/4458 +f 4404/4446 4417/4459 4418/4463 +f 4416/4450 4415/4460 4428/4464 +f 4413/4451 4426/4477 4427/4466 +f 4425/4453 4424/4461 4437/4467 +f 4423/4454 4422/4462 4435/4469 +f 4421/4456 4420/4455 4433/4471 +f 4418/4457 4431/5106 4432/4473 +f 4416/4450 4429/4465 4430/4474 +f 4415/4460 4414/4452 4427/4466 +f 4423/4454 4436/4470 4437/4467 +f 4421/4456 4434/4472 4435/4469 +f 4420/4455 4419/4458 4432/4473 +f 4418/4463 4417/4459 4430/4474 +f 4428/4464 4441/4486 4442/4476 +f 4426/4477 4439/4492 4440/4478 +f 4437/4467 4450/4487 4451/4479 +f 4435/4469 4448/4488 4449/4480 +f 4434/4472 4433/4471 4446/4481 +f 4432/4473 4431/5106 4444/4483 +f 4430/4474 4429/4465 4442/4476 +f 4427/4466 4440/4478 4441/4486 +f 4437/4467 4436/4470 4449/4480 +f 4435/4469 4434/4472 4447/4482 +f 4432/4473 4445/4484 4446/4481 +f 4430/4474 4443/4485 4444/4489 +f 4442/4476 4441/4486 4454/4490 +f 4439/4492 4452/4518 4453/4493 +f 4451/4479 4450/4487 4463/4494 +f 4449/4480 4448/4488 4461/4496 +f 4446/4481 4459/4501 4460/4498 +f 4444/4483 4457/4511 4458/4499 +f 4443/4485 4442/4476 4455/4491 +f 4440/4478 4453/4493 4454/4490 +f 4450/4487 4449/4480 4462/4497 +f 4447/4482 4460/4498 4461/4496 +f 4445/4484 4458/4499 4459/4501 +f 4444/4489 4443/4485 4456/4500 +f 4455/4491 4454/4490 4467/4503 +f 4453/4493 4452/4518 4465/4505 +f 4463/4494 4476/4514 4477/4507 +f 4462/4497 4461/4496 4474/4508 +f 4459/4501 4472/4515 4473/4510 +f 4457/4511 4470/5107 4471/4512 +f 4455/4491 4468/4504 4469/4513 +f 4453/4493 4466/4506 4467/4503 +f 4462/4497 4475/4509 4476/4514 +f 4461/4496 4460/4498 4473/4510 +f 4459/4501 4458/4499 4471/4512 +f 4457/4502 4456/4500 4469/4513 +f 4468/4504 4467/4503 4063/4097 +f 4466/4506 4465/4505 4061/4109 +f 4477/4507 4476/4514 4072/4102 +f 4474/4508 4070/4104 4071/4100 +f 4472/4515 4068/4105 4069/4088 +f 4471/4512 4470/5107 4066/4091 +f 4468/4504 4064/4108 4065/4094 +f 4466/4506 4062/4110 4063/4097 +f 4476/4514 4475/4509 4071/4100 +f 4474/4508 4473/4510 4069/4088 +f 4472/4515 4471/4512 4067/4093 +f 4469/4513 4065/4094 4066/4106 +f 3935/3963 4061/4109 4465/4505 +f 4465/4505 4452/4518 4056/4067 +f 4452/4518 4439/4492 4051/4062 +f 4439/4492 4426/4477 4047/4060 +f 4047/4060 4426/4477 4413/4451 +f 4043/4055 4413/4451 4400/4519 +f 4039/4052 4400/4519 4387/4437 +f 4387/4437 4374/4412 4031/4046 +f 4031/4046 4374/4412 4361/4398 +f 4361/4398 4348/4520 4023/4039 +f 4348/4520 4334/4370 4019/4034 +f 4334/4370 4321/5103 4015/4032 +f 4015/4032 4321/5103 4308/4343 +f 4011/4027 4308/4343 4295/4521 +f 4007/4024 4295/4521 4282/4329 +f 4282/4329 4269/4304 3999/4018 +f 3999/4018 4269/4304 4256/4290 +f 4256/4290 4243/4522 3991/4011 +f 4243/4522 4230/4263 3987/4006 +f 4230/4263 4217/5100 3983/4004 +f 3983/4004 4217/5100 4204/4236 +f 3979/3999 4204/4236 4191/4523 +f 3975/3996 4191/4523 4178/4222 +f 4178/4222 4165/4197 3967/3989 +f 3967/3989 4165/4197 4152/4183 +f 4152/4183 4139/4524 3959/3982 +f 4139/4524 4126/4156 3955/3977 +f 4126/4156 4113/5097 3951/3975 +f 3951/3975 4113/5097 4100/4129 +f 3947/3970 4100/4129 4087/4525 +f 3943/3966 4087/4525 4074/4115 +f 4074/4115 4061/4109 3935/3963 +f 4480/4526 4479/4531 4483/4527 +f 4480/4526 4484/4528 4485/4529 +f 4479/4531 4478/4640 4482/4532 +f 4484/4528 4488/4535 4489/4533 +f 4482/4532 4486/4642 4487/4534 +f 4483/4527 4487/4534 4488/4535 +f 4488/4535 4492/4539 4493/4536 +f 4487/4534 4486/4642 4490/4537 +f 4488/4535 4487/4534 4491/4538 +f 4493/4536 4492/4539 4496/4540 +f 4490/4537 4494/4643 4495/4542 +f 4491/4538 4495/4542 4496/4540 +f 4496/4540 4500/4546 4501/4543 +f 4495/4542 4494/4643 4498/4544 +f 4496/4540 4495/4542 4499/4545 +f 4501/4543 4500/4546 4504/4547 +f 4498/4544 4502/4644 4503/4549 +f 4499/4545 4503/4549 4504/4547 +f 4505/4548 4504/4547 4508/4550 +f 4503/4549 4502/4644 4506/4552 +f 4504/4547 4503/4549 4507/4553 +f 4509/4551 4508/4550 4512/4554 +f 4506/4552 4510/4645 4511/4556 +f 4507/4553 4511/4556 4512/4554 +f 4513/4555 4512/4554 4516/4557 +f 4511/4556 4510/4645 4514/4559 +f 4512/4554 4511/4556 4515/4560 +f 4516/4557 4520/4563 4521/4561 +f 4514/4559 4518/4565 4519/4562 +f 4515/4560 4519/4562 4520/4563 +f 4520/4563 4524/4567 4525/4564 +f 4518/4565 4522/4570 4523/4566 +f 4520/4563 4519/4562 4523/4566 +f 4525/4564 4524/4567 4528/4568 +f 4522/4570 4526/4646 4527/4571 +f 4523/4566 4527/4571 4528/4568 +f 4528/4568 4532/4575 4533/4572 +f 4527/4571 4526/4646 4530/4573 +f 4528/4568 4527/4571 4531/4574 +f 4533/4572 4532/4575 4536/4576 +f 4530/4573 4534/4581 4535/4578 +f 4531/4574 4535/4578 4536/4576 +f 4537/4577 4536/4576 4540/4579 +f 4534/4581 4538/4647 4539/4582 +f 4536/4576 4535/4578 4539/4582 +f 4541/4580 4540/4579 4544/4583 +f 4539/4582 4538/4647 4542/4585 +f 4539/4582 4543/4586 4544/4583 +f 4544/4583 4548/4589 4549/4587 +f 4542/4585 4546/4648 4547/4588 +f 4544/4583 4543/4586 4547/4588 +f 4548/4589 4552/4593 4553/4590 +f 4547/4588 4546/4648 4550/4591 +f 4547/4588 4551/4592 4552/4593 +f 4552/4593 4556/4597 4557/4594 +f 4551/4592 4550/4591 4554/4595 +f 4552/4593 4551/4592 4555/4596 +f 4557/4594 4556/4597 4560/4598 +f 4554/4595 4558/4649 4559/4600 +f 4555/4596 4559/4600 4560/4598 +f 4560/4598 4564/4604 4565/4601 +f 4559/4600 4558/4649 4562/4602 +f 4560/4598 4559/4600 4563/4603 +f 4565/4601 4564/4604 4568/4605 +f 4562/4602 4566/4650 4567/4607 +f 4563/4603 4567/4607 4568/4605 +f 4569/4606 4568/4605 4572/4608 +f 4567/4607 4566/4650 4570/4610 +f 4568/4605 4567/4607 4571/4611 +f 4572/4608 4576/4614 4577/4612 +f 4570/4610 4574/4651 4575/4613 +f 4571/4611 4575/4613 4576/4614 +f 4576/4614 4580/4618 4581/4615 +f 4575/4613 4574/4651 4578/4616 +f 4576/4614 4575/4613 4579/4617 +f 4580/4618 4584/4621 4585/4619 +f 4578/4616 4582/4652 4583/4620 +f 4579/4617 4583/4620 4584/4621 +f 4584/4621 4588/4625 4589/4622 +f 4583/4620 4582/4652 4586/4623 +f 4584/4621 4583/4620 4587/4624 +f 4589/4622 4588/4625 4592/4626 +f 4586/4623 4590/4653 4591/4628 +f 4587/4624 4591/4628 4592/4626 +f 4592/4626 4596/4632 4597/4629 +f 4591/4628 4590/4653 4594/4630 +f 4592/4626 4591/4628 4595/4631 +f 4597/4629 4596/4632 4601/4633 +f 4594/4630 4599/4654 4600/4635 +f 4595/4631 4600/4635 4601/4633 +f 4602/4634 4601/4633 4605/4636 +f 4600/4635 4599/4654 4603/4638 +f 4601/4633 4600/4635 4604/4639 +f 4606/4637 4605/4636 4480/4526 +f 4603/4638 4478/4640 4479/4531 +f 4604/4639 4479/4531 4480/4526 +f 4615/4655 4614/4672 4627/4656 +f 4612/4658 4625/5108 4626/4659 +f 4611/4661 4610/4675 4623/4662 +f 4609/4664 4608/4677 4621/4665 +f 4618/4667 4617/4680 4630/4668 +f 4615/4655 4628/4657 4629/4670 +f 4613/4660 4626/4659 4627/4656 +f 4612/4673 4611/4661 4624/4663 +f 4609/4664 4622/4666 4623/4662 +f 4607/4676 4620/4682 4621/4665 +f 4619/4678 4618/4667 4631/4669 +f 4617/4680 4616/4671 4629/4670 +f 4622/4666 4635/4692 4636/4681 +f 4620/4682 4633/5092 4634/4683 +f 4632/4679 4631/4669 4644/4684 +f 4629/4670 4642/4693 4643/4686 +f 4628/4657 4627/4656 4640/4687 +f 4626/4659 4625/5108 4638/4689 +f 4624/4663 4623/4662 4636/4681 +f 4622/4666 4621/4665 4634/4683 +f 4631/4669 4630/4668 4643/4686 +f 4628/4657 4641/4688 4642/4693 +f 4626/4659 4639/4690 4640/4687 +f 4624/4663 4637/4691 4638/4694 +f 4635/4692 4648/4705 4649/4695 +f 4634/4683 4633/5092 4646/4696 +f 4644/4684 4657/4706 4658/4698 +f 4642/4693 4655/4707 4656/4699 +f 4641/4688 4640/4687 4653/4700 +f 4639/4690 4638/4689 4651/4702 +f 4636/4681 4649/4695 4650/4704 +f 4635/4692 4634/4683 4647/4697 +f 4643/4686 4656/4699 4657/4706 +f 4642/4693 4641/4688 4654/4701 +f 4640/4687 4639/4690 4652/4703 +f 4637/4691 4650/4704 4651/4708 +f 4648/4705 4661/4718 4662/4709 +f 4646/4696 4659/5109 4660/4710 +f 4658/4698 4657/4706 4670/4711 +f 4656/4699 4655/4707 4668/4713 +f 4653/4700 4666/4719 4667/4715 +f 4651/4702 4664/5110 4665/4716 +f 4649/4695 4662/4709 4663/4717 +f 4648/4705 4647/4697 4660/4710 +f 4656/4699 4669/4714 4670/4711 +f 4654/4701 4667/4715 4668/4713 +f 4653/4700 4652/4703 4665/4716 +f 4651/4708 4650/4704 4663/4717 +f 4661/4718 4674/4731 4675/4721 +f 4660/4710 4659/5109 4672/4722 +f 4670/4711 4683/4732 4684/4724 +f 4668/4713 4681/4733 4682/4725 +f 4667/4715 4666/4719 4679/4726 +f 4665/4716 4664/5110 4677/4728 +f 4663/4717 4662/4709 4675/4721 +f 4661/4718 4660/4710 4673/4723 +f 4670/4711 4669/4714 4682/4725 +f 4667/4715 4680/4727 4681/4733 +f 4665/4716 4678/4729 4679/4726 +f 4663/4717 4676/4730 4677/4734 +f 4675/4721 4674/4731 4687/4735 +f 4672/4722 4685/5091 4686/4737 +f 4684/4724 4683/4732 4696/4738 +f 4682/4725 4681/4733 4694/4740 +f 4679/4726 4692/4746 4693/4742 +f 4678/4729 4677/4728 4690/4743 +f 4676/4730 4675/4721 4688/4736 +f 4673/4723 4686/4737 4687/4735 +f 4683/4732 4682/4725 4695/4741 +f 4681/4733 4680/4727 4693/4742 +f 4678/4729 4691/4744 4692/4746 +f 4676/4730 4689/4745 4690/4747 +f 4688/4736 4687/4735 4700/4748 +f 4686/4737 4685/5091 4698/4750 +f 4696/4738 4709/4759 4710/4752 +f 4695/4741 4694/4740 4707/4753 +f 4692/4746 4705/4760 4706/4755 +f 4691/4744 4690/4743 4703/4756 +f 4688/4736 4701/4749 4702/4758 +f 4686/4737 4699/4751 4700/4748 +f 4695/4741 4708/4754 4709/4759 +f 4694/4740 4693/4742 4706/4755 +f 4692/4746 4691/4744 4704/4757 +f 4689/4745 4702/4758 4703/4761 +f 4701/4749 4700/4748 4713/4762 +f 4699/4751 4698/4750 4711/4764 +f 4710/4752 4709/4759 4722/4766 +f 4707/4753 4720/4773 4721/4768 +f 4705/4760 4718/4774 4719/4769 +f 4704/4757 4703/4756 4716/4770 +f 4701/4749 4714/4763 4715/4772 +f 4699/4751 4712/4765 4713/4762 +f 4709/4759 4708/4754 4721/4768 +f 4707/4753 4706/4755 4719/4769 +f 4705/4760 4704/4757 4717/4771 +f 4702/4758 4715/4772 4716/4775 +f 4713/4762 4726/4786 4727/4776 +f 4711/4764 4724/4789 4725/4777 +f 4723/4767 4722/4766 4735/4778 +f 4721/4768 4720/4773 4733/4780 +f 4719/4769 4718/4774 4731/4782 +f 4716/4770 4729/5111 4730/4784 +f 4715/4772 4714/4763 4727/4776 +f 4713/4762 4712/4765 4725/4777 +f 4721/4768 4734/4781 4735/4778 +f 4719/4769 4732/4783 4733/4780 +f 4717/4771 4730/4784 4731/4782 +f 4716/4775 4715/4772 4728/4785 +f 4726/4786 4739/4799 4740/4788 +f 4724/4789 4737/5090 4738/4790 +f 4736/4779 4735/4778 4748/4791 +f 4733/4780 4746/4800 4747/4793 +f 4732/4783 4731/4782 4744/4794 +f 4730/4784 4729/5111 4742/4796 +f 4728/4785 4727/4776 4740/4788 +f 4726/4786 4725/4777 4738/4790 +f 4735/4778 4734/4781 4747/4793 +f 4732/4783 4745/4795 4746/4800 +f 4730/4784 4743/4797 4744/4794 +f 4728/4785 4741/4798 4742/4801 +f 4739/4799 4752/4812 4753/4802 +f 4738/4790 4737/5090 4750/4803 +f 4748/4791 4761/4813 4762/4805 +f 4746/4800 4759/4814 4760/4806 +f 4745/4795 4744/4794 4757/4807 +f 4743/4797 4742/4796 4755/4809 +f 4740/4788 4753/4802 4754/4811 +f 4739/4799 4738/4790 4751/4804 +f 4747/4793 4760/4806 4761/4813 +f 4745/4795 4758/4808 4759/4814 +f 4744/4794 4743/4797 4756/4810 +f 4741/4798 4754/4811 4755/4815 +f 4753/4802 4752/4812 4765/4816 +f 4750/4803 4763/5112 4764/4818 +f 4762/4805 4761/4813 4774/4819 +f 4759/4814 4772/4826 4773/4821 +f 4758/4808 4757/4807 4770/4822 +f 4755/4809 4768/5113 4769/4824 +f 4753/4802 4766/4817 4767/4825 +f 4752/4812 4751/4804 4764/4818 +f 4760/4806 4773/4821 4774/4819 +f 4758/4808 4771/4823 4772/4826 +f 4757/4807 4756/4810 4769/4824 +f 4755/4815 4754/4811 4767/4825 +f 4765/4816 4778/4838 4779/4828 +f 4764/4818 4763/5112 4776/4829 +f 4774/4819 4787/4839 4788/4831 +f 4772/4826 4785/4840 4786/4832 +f 4771/4823 4770/4822 4783/4833 +f 4769/4824 4768/5113 4781/4835 +f 4767/4825 4766/4817 4779/4828 +f 4765/4816 4764/4818 4777/4830 +f 4774/4819 4773/4821 4786/4832 +f 4771/4823 4784/4834 4785/4840 +f 4769/4824 4782/4836 4783/4833 +f 4767/4825 4780/4837 4781/4841 +f 4779/4828 4778/4838 4791/4842 +f 4776/4829 4789/5089 4790/4844 +f 4788/4831 4787/4839 4800/4845 +f 4786/4832 4785/4840 4798/4847 +f 4783/4833 4796/4853 4797/4849 +f 4782/4836 4781/4835 4794/4850 +f 4780/4837 4779/4828 4792/4843 +f 4777/4830 4790/4844 4791/4842 +f 4787/4839 4786/4832 4799/4848 +f 4785/4840 4784/4834 4797/4849 +f 4782/4836 4795/4851 4796/4853 +f 4780/4837 4793/4852 4794/4854 +f 4792/4843 4791/4842 4804/4855 +f 4790/4844 4789/5089 4802/4857 +f 4800/4845 4813/4866 4814/4859 +f 4799/4848 4798/4847 4811/4860 +f 4796/4853 4809/4867 4810/4862 +f 4795/4851 4794/4850 4807/4863 +f 4792/4843 4805/4856 4806/4865 +f 4790/4844 4803/4858 4804/4855 +f 4799/4848 4812/4861 4813/4866 +f 4798/4847 4797/4849 4810/4862 +f 4796/4853 4795/4851 4808/4864 +f 4793/4852 4806/4865 4807/4868 +f 4805/4856 4804/4855 4817/4869 +f 4803/4858 4802/4857 4815/4871 +f 4814/4859 4813/4866 4826/4873 +f 4811/4860 4824/4880 4825/4875 +f 4809/4867 4822/4881 4823/4876 +f 4808/4864 4807/4863 4820/4877 +f 4805/4856 4818/4870 4819/4879 +f 4803/4858 4816/4872 4817/4869 +f 4813/4866 4812/4861 4825/4875 +f 4811/4860 4810/4862 4823/4876 +f 4809/4867 4808/4864 4821/4878 +f 4806/4865 4819/4879 4820/4882 +f 4817/4869 4830/4892 4831/4883 +f 4815/4871 4828/4896 4829/4884 +f 4826/4873 4839/4893 4840/4885 +f 4825/4875 4824/4880 4837/4886 +f 4823/4876 4822/4881 4835/4888 +f 4820/4877 4833/5114 4834/4890 +f 4819/4879 4818/4870 4831/4883 +f 4817/4869 4816/4872 4829/4884 +f 4825/4875 4838/4887 4839/4893 +f 4823/4876 4836/4889 4837/4886 +f 4821/4878 4834/4890 4835/4888 +f 4820/4882 4819/4879 4832/4891 +f 4830/4892 4843/4906 4844/4895 +f 4828/4896 4841/5088 4842/4897 +f 4840/4885 4839/4893 4852/4898 +f 4837/4886 4850/4907 4851/4900 +f 4836/4889 4835/4888 4848/4901 +f 4834/4890 4833/5114 4846/4903 +f 4832/4891 4831/4883 4844/4895 +f 4830/4892 4829/4884 4842/4897 +f 4839/4893 4838/4887 4851/4900 +f 4836/4889 4849/4902 4850/4907 +f 4834/4890 4847/4904 4848/4901 +f 4832/4891 4845/4905 4846/4908 +f 4843/4906 4856/4919 4857/4909 +f 4842/4897 4841/5088 4854/4910 +f 4852/4898 4865/4920 4866/4912 +f 4850/4907 4863/4921 4864/4913 +f 4849/4902 4848/4901 4861/4914 +f 4847/4904 4846/4903 4859/4916 +f 4844/4895 4857/4909 4858/4918 +f 4843/4906 4842/4897 4855/4911 +f 4851/4900 4864/4913 4865/4920 +f 4849/4902 4862/4915 4863/4921 +f 4848/4901 4847/4904 4860/4917 +f 4845/4905 4858/4918 4859/4922 +f 4857/4909 4856/4919 4869/4923 +f 4855/4911 4854/4910 4867/4925 +f 4866/4912 4865/4920 4878/4927 +f 4864/4913 4863/4921 4876/4929 +f 4862/4915 4861/4914 4874/4931 +f 4859/4916 4872/5115 4873/4933 +f 4857/4909 4870/4924 4871/4934 +f 4856/4919 4855/4911 4868/4926 +f 4864/4913 4877/4930 4878/4927 +f 4862/4915 4875/4932 4876/4929 +f 4861/4914 4860/4917 4873/4933 +f 4859/4922 4858/4918 4871/4934 +f 4869/4923 4882/4946 4883/4936 +f 4868/4926 4867/4925 4880/4937 +f 4878/4927 4891/4947 4892/4939 +f 4877/4930 4876/4929 4889/4940 +f 4874/4931 4887/4948 4888/4942 +f 4873/4933 4872/5115 4885/4943 +f 4871/4934 4870/4924 4883/4936 +f 4868/4926 4881/4938 4882/4946 +f 4878/4927 4877/4930 4890/4941 +f 4876/4929 4875/4932 4888/4942 +f 4873/4933 4886/4944 4887/4948 +f 4871/4934 4884/4945 4885/4949 +f 4883/4936 4882/4946 4896/4950 +f 4880/4937 4894/5087 4895/4952 +f 4892/4939 4891/4947 4905/4953 +f 4890/4941 4889/4940 4903/4955 +f 4887/4948 4901/4960 4902/4957 +f 4885/4943 4899/4970 4900/4958 +f 4884/4945 4883/4936 4897/4951 +f 4881/4938 4895/4952 4896/4950 +f 4891/4947 4890/4941 4904/4956 +f 4889/4940 4888/4942 4902/4957 +f 4886/4944 4900/4958 4901/4960 +f 4885/4949 4884/4945 4898/4959 +f 4897/4951 4896/4950 4909/4962 +f 4895/4952 4894/5087 4907/4964 +f 4905/4953 4918/4973 4919/4966 +f 4904/4956 4903/4955 4916/4967 +f 4901/4960 4914/4974 4915/4969 +f 4899/4970 4912/5116 4913/4971 +f 4897/4951 4910/4963 4911/4972 +f 4895/4952 4908/4965 4909/4962 +f 4904/4956 4917/4968 4918/4973 +f 4903/4955 4902/4957 4915/4969 +f 4901/4960 4900/4958 4913/4971 +f 4899/4961 4898/4959 4911/4972 +f 4910/4963 4909/4962 4922/4976 +f 4908/4965 4907/4964 4920/4978 +f 4919/4966 4918/4973 4931/4980 +f 4916/4967 4929/4987 4930/4982 +f 4914/4974 4927/4988 4928/4983 +f 4913/4971 4912/5116 4925/4984 +f 4910/4963 4923/4977 4924/4986 +f 4908/4965 4921/4979 4922/4976 +f 4918/4973 4917/4968 4930/4982 +f 4916/4967 4915/4969 4928/4983 +f 4914/4974 4913/4971 4926/4985 +f 4911/4972 4924/4986 4925/4989 +f 4922/4976 4935/4999 4936/4990 +f 4920/4978 4933/5003 4934/4991 +f 4931/4980 4944/5000 4945/4992 +f 4930/4982 4929/4987 4942/4993 +f 4928/4983 4927/4988 4940/4995 +f 4925/4984 4938/5010 4939/4997 +f 4924/4986 4923/4977 4936/4990 +f 4922/4976 4921/4979 4934/4991 +f 4930/4982 4943/4994 4944/5000 +f 4928/4983 4941/4996 4942/4993 +f 4926/4985 4939/4997 4940/4995 +f 4925/4989 4924/4986 4937/4998 +f 4935/4999 4948/5013 4949/5002 +f 4933/5003 4946/5086 4947/5004 +f 4945/4992 4944/5000 4957/5005 +f 4942/4993 4955/5014 4956/5007 +f 4941/4996 4940/4995 4953/5008 +f 4938/5010 4951/5023 4952/5011 +f 4937/4998 4936/4990 4949/5002 +f 4935/4999 4934/4991 4947/5004 +f 4944/5000 4943/4994 4956/5007 +f 4941/4996 4954/5009 4955/5014 +f 4939/4997 4952/5011 4953/5008 +f 4938/5001 4937/4998 4950/5012 +f 4948/5013 4961/5026 4962/5016 +f 4947/5004 4946/5086 4959/5017 +f 4957/5005 4970/5027 4971/5019 +f 4955/5014 4968/5028 4969/5020 +f 4954/5009 4953/5008 4966/5021 +f 4951/5023 4964/5037 4965/5024 +f 4949/5002 4962/5016 4963/5025 +f 4948/5013 4947/5004 4960/5018 +f 4956/5007 4969/5020 4970/5027 +f 4954/5009 4967/5022 4968/5028 +f 4953/5008 4952/5011 4965/5024 +f 4951/5015 4950/5012 4963/5025 +f 4962/5016 4961/5026 4974/5030 +f 4959/5017 4972/5117 4973/5032 +f 4971/5019 4970/5027 4983/5033 +f 4968/5028 4981/5040 4982/5035 +f 4966/5021 4979/5041 4980/5036 +f 4964/5037 4977/5118 4978/5038 +f 4962/5016 4975/5031 4976/5039 +f 4960/5018 4973/5032 4974/5030 +f 4969/5020 4982/5035 4983/5033 +f 4967/5022 4980/5036 4981/5040 +f 4966/5021 4965/5024 4978/5038 +f 4964/5029 4963/5025 4976/5039 +f 4975/5031 4974/5030 4987/5043 +f 4973/5032 4972/5117 4985/5045 +f 4983/5033 4996/5053 4997/5047 +f 4981/5040 4994/5054 4995/5048 +f 4979/5041 4992/5055 4993/5049 +f 4978/5038 4977/5118 4990/5050 +f 4976/5039 4975/5031 4988/5044 +f 4973/5032 4986/5046 4987/5043 +f 4983/5033 4982/5035 4995/5048 +f 4981/5040 4980/5036 4993/5049 +f 4978/5038 4991/5051 4992/5055 +f 4976/5039 4989/5052 4990/5056 +f 4988/5044 4987/5043 5000/5057 +f 4985/5045 4998/5085 4999/5059 +f 4997/5047 4996/5053 5009/5060 +f 4995/5048 4994/5054 5007/5062 +f 4992/5055 5005/5068 5006/5064 +f 4991/5051 4990/5050 5003/5065 +f 4989/5052 4988/5044 5001/5058 +f 4986/5046 4999/5059 5000/5057 +f 4996/5053 4995/5048 5008/5063 +f 4994/5054 4993/5049 5006/5064 +f 4991/5051 5004/5066 5005/5068 +f 4989/5052 5002/5067 5003/5069 +f 5001/5058 5000/5057 5013/5070 +f 4999/5059 4998/5085 5011/5072 +f 5009/5060 5022/5081 5023/5074 +f 5008/5063 5007/5062 5020/5075 +f 5005/5068 5018/5082 5019/5077 +f 5004/5066 5003/5065 5016/5078 +f 5001/5058 5014/5071 5015/5080 +f 4999/5059 5012/5073 5013/5070 +f 5008/5063 5021/5076 5022/5081 +f 5007/5062 5006/5064 5019/5077 +f 5005/5068 5004/5066 5017/5079 +f 5002/5067 5015/5080 5016/5083 +f 5014/5071 5013/5070 4609/4664 +f 5012/5073 5011/5072 4607/4676 +f 5022/5081 4618/4667 4619/4678 +f 5020/5075 4616/4671 4617/4680 +f 5018/5082 4614/4672 4615/4655 +f 5017/5079 5016/5078 4612/4658 +f 5014/5071 4610/4675 4611/4661 +f 5012/5073 4608/4677 4609/4664 +f 5021/5076 4617/4680 4618/4667 +f 5020/5075 5019/5077 4615/4655 +f 5018/5082 5017/5079 4613/4660 +f 5015/5080 4611/4661 4612/4673 +f 4481/4530 4607/4676 5011/5072 +f 5011/5072 4998/5085 4602/4634 +f 4998/5085 4985/5045 4597/4629 +f 4985/5045 4972/5117 4593/4627 +f 4593/4627 4972/5117 4959/5017 +f 4589/4622 4959/5017 4946/5086 +f 4585/4619 4946/5086 4933/5003 +f 4933/5003 4920/4978 4577/4612 +f 4577/4612 4920/4978 4907/4964 +f 4907/4964 4894/5087 4569/4606 +f 4894/5087 4880/4937 4565/4601 +f 4880/4937 4867/4925 4561/4599 +f 4561/4599 4867/4925 4854/4910 +f 4557/4594 4854/4910 4841/5088 +f 4553/4590 4841/5088 4828/4896 +f 4828/4896 4815/4871 4545/4584 +f 4545/4584 4815/4871 4802/4857 +f 4802/4857 4789/5089 4537/4577 +f 4789/5089 4776/4829 4533/4572 +f 4776/4829 4763/5112 4529/4569 +f 4529/4569 4763/5112 4750/4803 +f 4525/4564 4750/4803 4737/5090 +f 4521/4561 4737/5090 4724/4789 +f 4724/4789 4711/4764 4513/4555 +f 4513/4555 4711/4764 4698/4750 +f 4698/4750 4685/5091 4505/4548 +f 4685/5091 4672/4722 4501/4543 +f 4672/4722 4659/5109 4497/4541 +f 4497/4541 4659/5109 4646/4696 +f 4493/4536 4646/4696 4633/5092 +f 4489/4533 4633/5092 4620/4682 +f 4620/4682 4607/4676 4481/4530 diff --git a/assets/head_template_color.obj b/assets/head_template_color.obj new file mode 100644 index 0000000000000000000000000000000000000000..4387b5091647f38dbec6a932522a519dc382caf5 --- /dev/null +++ b/assets/head_template_color.obj @@ -0,0 +1,15015 @@ +#### +# +# OBJ File Generated by Meshlab +# +#### +# Object head_template_color.obj +# +# Vertices: 5023 +# Faces: 9976 +# +#### +v 0.061998 1.493503 -0.027215 0.584314 0.584314 0.584314 +v 0.066005 1.492495 -0.026312 0.584314 0.584314 0.584314 +v 0.066500 1.493900 -0.026200 0.584314 0.584314 0.584314 +v 0.062307 1.494799 -0.027008 0.584314 0.584314 0.584314 +v 0.075800 1.494613 -0.035711 0.584314 0.584314 0.584314 +v 0.075177 1.497973 -0.032283 0.584314 0.584314 0.584314 +v 0.074438 1.500713 -0.032211 0.584314 0.584314 0.584314 +v 0.074800 1.500600 -0.034800 0.584314 0.584314 0.584314 +v 0.028307 1.453590 -0.092080 0.584314 0.584314 0.584314 +v 0.013146 1.453750 -0.096146 0.584314 0.584314 0.584314 +v 0.013086 1.443515 -0.093653 0.584314 0.584314 0.584314 +v 0.026940 1.441069 -0.088483 0.584314 0.584314 0.584314 +v 0.044034 1.418873 -0.070397 0.584314 0.584314 0.584314 +v 0.039796 1.426214 -0.075181 0.584314 0.584314 0.584314 +v 0.036540 1.415001 -0.078651 0.584314 0.584314 0.584314 +v 0.044437 1.411710 -0.070237 0.584314 0.584314 0.584314 +v 0.039024 1.550958 0.053657 1.000000 0.000000 0.000000 +v 0.046783 1.549456 0.048912 1.000000 0.000000 0.000000 +v 0.044954 1.543563 0.051419 1.000000 0.000000 0.000000 +v -0.061998 1.493503 -0.027215 0.584314 0.584314 0.584314 +v -0.066005 1.492495 -0.026312 0.584314 0.584314 0.584314 +v -0.066500 1.493900 -0.026200 0.584314 0.584314 0.584314 +v -0.062307 1.494799 -0.027008 0.584314 0.584314 0.584314 +v -0.075800 1.494613 -0.035711 0.584314 0.584314 0.584314 +v -0.075177 1.497973 -0.032283 0.584314 0.584314 0.584314 +v -0.074438 1.500713 -0.032211 0.584314 0.584314 0.584314 +v -0.074800 1.500600 -0.034800 0.584314 0.584314 0.584314 +v 0.037682 1.544673 0.054847 1.000000 0.000000 0.000000 +v 0.092919 1.516004 -0.048998 0.584314 0.584314 0.584314 +v 0.093182 1.513297 -0.049973 0.584314 0.584314 0.584314 +v 0.093400 1.511900 -0.048200 0.584314 0.584314 0.584314 +v 0.093071 1.514299 -0.047313 0.584314 0.584314 0.584314 +v 0.089794 1.497809 -0.046670 0.584314 0.584314 0.584314 +v 0.089310 1.505389 -0.048436 0.584314 0.584314 0.584314 +v 0.090352 1.508011 -0.049430 0.584314 0.584314 0.584314 +v 0.090705 1.505796 -0.048534 0.584314 0.584314 0.584314 +v 0.090287 1.486997 -0.043418 0.584314 0.584314 0.584314 +v 0.089308 1.487702 -0.042889 0.584314 0.584314 0.584314 +v 0.090700 1.492300 -0.044900 0.584314 0.584314 0.584314 +v 0.091687 1.491903 -0.045704 0.584314 0.584314 0.584314 +v 0.075298 1.468043 -0.021340 0.584314 0.584314 0.584314 +v 0.078140 1.470212 -0.022933 0.584314 0.584314 0.584314 +v 0.078493 1.467790 -0.024400 0.584314 0.584314 0.584314 +v 0.073913 1.466336 -0.023090 0.584314 0.584314 0.584314 +v 0.070914 1.467491 -0.024294 0.584314 0.584314 0.584314 +v 0.075432 1.466828 -0.028178 0.584314 0.584314 0.584314 +v 0.075074 1.469686 -0.029129 0.584314 0.584314 0.584314 +v 0.071489 1.469689 -0.026106 0.584314 0.584314 0.584314 +v 0.086489 1.526078 -0.035111 0.584314 0.584314 0.584314 +v 0.086600 1.523100 -0.034700 0.584314 0.584314 0.584314 +v 0.084675 1.522306 -0.032321 0.584314 0.584314 0.584314 +v 0.084516 1.525303 -0.032395 0.584314 0.584314 0.584314 +v 0.076847 1.490511 -0.045292 0.584314 0.584314 0.584314 +v 0.075461 1.484031 -0.043370 0.584314 0.584314 0.584314 +v 0.081300 1.489074 -0.045823 0.584314 0.584314 0.584314 +v 0.081298 1.491995 -0.046116 0.584314 0.584314 0.584314 +v 0.085506 1.516107 -0.041696 0.584314 0.584314 0.584314 +v 0.086614 1.516897 -0.045188 0.584314 0.584314 0.584314 +v 0.087200 1.514700 -0.046300 0.584314 0.584314 0.584314 +v 0.086210 1.513201 -0.043498 0.584314 0.584314 0.584314 +v 0.089406 1.517594 -0.050088 0.584314 0.584314 0.584314 +v 0.089835 1.514599 -0.051186 0.584314 0.584314 0.584314 +v 0.073155 1.476985 -0.019715 0.584314 0.584314 0.584314 +v 0.071768 1.480608 -0.019054 0.584314 0.584314 0.584314 +v 0.072296 1.482197 -0.020109 0.584314 0.584314 0.584314 +v 0.073056 1.481128 -0.021346 0.584314 0.584314 0.584314 +v 0.073953 1.494303 -0.032675 0.584314 0.584314 0.584314 +v 0.075096 1.498497 -0.031088 0.584314 0.584314 0.584314 +v 0.086495 1.476758 -0.038243 0.584314 0.584314 0.584314 +v 0.086462 1.478693 -0.037171 0.584314 0.584314 0.584314 +v 0.088511 1.482595 -0.040600 0.584314 0.584314 0.584314 +v 0.088684 1.481204 -0.041805 0.584314 0.584314 0.584314 +v 0.083800 1.481300 -0.034800 0.584314 0.584314 0.584314 +v 0.086100 1.483800 -0.038300 0.584314 0.584314 0.584314 +v 0.087015 1.484403 -0.040188 0.584314 0.584314 0.584314 +v 0.085989 1.482300 -0.038105 0.584314 0.584314 0.584314 +v 0.088031 1.519317 -0.041792 0.584314 0.584314 0.584314 +v 0.085861 1.521559 -0.037113 0.584314 0.584314 0.584314 +v 0.086699 1.521126 -0.037101 0.584314 0.584314 0.584314 +v 0.088900 1.518700 -0.041800 0.584314 0.584314 0.584314 +v 0.082000 1.504600 -0.045500 0.584314 0.584314 0.584314 +v 0.080323 1.509694 -0.043474 0.584314 0.584314 0.584314 +v 0.079604 1.508792 -0.043485 0.584314 0.584314 0.584314 +v 0.081297 1.504301 -0.045314 0.584314 0.584314 0.584314 +v 0.089100 1.515800 -0.048100 0.584314 0.584314 0.584314 +v 0.089639 1.513104 -0.049003 0.584314 0.584314 0.584314 +v 0.087992 1.512000 -0.047407 0.584314 0.584314 0.584314 +v 0.075500 1.513617 -0.029983 0.584314 0.584314 0.584314 +v 0.076118 1.514593 -0.031298 0.584314 0.584314 0.584314 +v 0.076609 1.513005 -0.031696 0.584314 0.584314 0.584314 +v 0.076371 1.511694 -0.030520 0.584314 0.584314 0.584314 +v 0.078164 1.466576 -0.027814 0.584314 0.584314 0.584314 +v 0.073096 1.475727 -0.036776 0.584314 0.584314 0.584314 +v 0.074801 1.476562 -0.038030 0.584314 0.584314 0.584314 +v 0.077596 1.480667 -0.040850 0.584314 0.584314 0.584314 +v 0.076407 1.481515 -0.041493 0.584314 0.584314 0.584314 +v 0.070618 1.469515 -0.019925 0.584314 0.584314 0.584314 +v 0.073800 1.469900 -0.019600 0.584314 0.584314 0.584314 +v 0.074701 1.468685 -0.020488 0.584314 0.584314 0.584314 +v 0.071600 1.467919 -0.021209 0.584314 0.584314 0.584314 +v 0.078425 1.518098 -0.031667 0.584314 0.584314 0.584314 +v 0.080957 1.517503 -0.033837 0.584314 0.584314 0.584314 +v 0.079092 1.516506 -0.033011 0.584314 0.584314 0.584314 +v 0.077368 1.516811 -0.031317 0.584314 0.584314 0.584314 +v 0.088500 1.503500 -0.046500 0.584314 0.584314 0.584314 +v 0.087000 1.510300 -0.044900 0.584314 0.584314 0.584314 +v 0.089148 1.494204 -0.040272 0.584314 0.584314 0.584314 +v 0.089000 1.494300 -0.043500 0.584314 0.584314 0.584314 +v 0.088538 1.490188 -0.041897 0.584314 0.584314 0.584314 +v -0.028307 1.453590 -0.092080 0.584314 0.584314 0.584314 +v -0.013146 1.453750 -0.096146 0.584314 0.584314 0.584314 +v -0.013086 1.443515 -0.093653 0.584314 0.584314 0.584314 +v -0.026940 1.441069 -0.088483 0.584314 0.584314 0.584314 +v 0.088564 1.490214 -0.038795 0.584314 0.584314 0.584314 +v 0.088334 1.502483 -0.040508 0.584314 0.584314 0.584314 +v 0.088447 1.502416 -0.044192 0.584314 0.584314 0.584314 +v 0.090983 1.511396 -0.046991 0.584314 0.584314 0.584314 +v 0.091428 1.505198 -0.047205 0.584314 0.584314 0.584314 +v 0.090384 1.512000 -0.047798 0.584314 0.584314 0.584314 +v 0.077544 1.512600 -0.041093 0.584314 0.584314 0.584314 +v 0.077400 1.515300 -0.044900 0.584314 0.584314 0.584314 +v 0.077651 1.508587 -0.046651 0.584314 0.584314 0.584314 +v 0.078383 1.510012 -0.042574 0.584314 0.584314 0.584314 +v 0.072487 1.486189 -0.020399 0.584314 0.584314 0.584314 +v 0.073652 1.488310 -0.021518 0.584314 0.584314 0.584314 +v 0.072785 1.486082 -0.022770 0.584314 0.584314 0.584314 +v 0.072332 1.483812 -0.022359 0.584314 0.584314 0.584314 +v 0.078096 1.478882 -0.039421 0.584314 0.584314 0.584314 +v 0.075400 1.475700 -0.037100 0.584314 0.584314 0.584314 +v 0.075785 1.475417 -0.036252 0.584314 0.584314 0.584314 +v 0.078507 1.477345 -0.037814 0.584314 0.584314 0.584314 +v 0.083100 1.518700 -0.036200 0.584314 0.584314 0.584314 +v 0.083855 1.513511 -0.036581 0.584314 0.584314 0.584314 +v 0.082100 1.513505 -0.035117 0.584314 0.584314 0.584314 +v 0.079400 1.482900 -0.027100 0.584314 0.584314 0.584314 +v 0.080206 1.484210 -0.028695 0.584314 0.584314 0.584314 +v 0.081500 1.481100 -0.030500 0.584314 0.584314 0.584314 +v 0.080687 1.479097 -0.029207 0.584314 0.584314 0.584314 +v 0.082571 1.470333 -0.032585 0.584314 0.584314 0.584314 +v 0.080240 1.469896 -0.033585 0.584314 0.584314 0.584314 +v 0.077900 1.467889 -0.030714 0.584314 0.584314 0.584314 +v 0.080399 1.467916 -0.030093 0.584314 0.584314 0.584314 +v 0.072675 1.482711 -0.021801 0.584314 0.584314 0.584314 +v 0.072327 1.483599 -0.020303 0.584314 0.584314 0.584314 +v 0.083926 1.505195 -0.047073 0.584314 0.584314 0.584314 +v 0.082566 1.511308 -0.044839 0.584314 0.584314 0.584314 +v 0.086087 1.511596 -0.040800 0.584314 0.584314 0.584314 +v 0.086768 1.509089 -0.042098 0.584314 0.584314 0.584314 +v 0.074730 1.498708 -0.025229 0.584314 0.584314 0.584314 +v 0.072484 1.499298 -0.026263 0.584314 0.584314 0.584314 +v 0.072424 1.498498 -0.026271 0.584314 0.584314 0.584314 +v 0.075274 1.497098 -0.025153 0.584314 0.584314 0.584314 +v 0.074986 1.498595 -0.024097 0.584314 0.584314 0.584314 +v 0.075514 1.497004 -0.023998 0.584314 0.584314 0.584314 +v 0.075085 1.496797 -0.022906 0.584314 0.584314 0.584314 +v 0.074710 1.497703 -0.022785 0.584314 0.584314 0.584314 +v 0.071792 1.499615 -0.026608 0.584314 0.584314 0.584314 +v 0.072000 1.499300 -0.026400 0.584314 0.584314 0.584314 +v 0.072388 1.499850 -0.026639 0.584314 0.584314 0.584314 +v 0.077294 1.502724 -0.037763 0.584314 0.584314 0.584314 +v 0.078993 1.494880 -0.039129 0.584314 0.584314 0.584314 +v 0.077413 1.494601 -0.037981 0.584314 0.584314 0.584314 +v 0.075700 1.501500 -0.036400 0.584314 0.584314 0.584314 +v 0.089216 1.495402 -0.045388 0.584314 0.584314 0.584314 +v 0.080994 1.521612 -0.028301 0.584314 0.584314 0.584314 +v 0.079582 1.523421 -0.028204 0.584314 0.584314 0.584314 +v 0.082400 1.526875 -0.032516 0.584314 0.584314 0.584314 +v 0.074387 1.485551 -0.030792 0.584314 0.584314 0.584314 +v 0.077111 1.486378 -0.028293 0.584314 0.584314 0.584314 +v 0.075401 1.486174 -0.026902 0.584314 0.584314 0.584314 +v 0.073776 1.485212 -0.029312 0.584314 0.584314 0.584314 +v 0.072203 1.490294 -0.025077 0.584314 0.584314 0.584314 +v 0.070416 1.486997 -0.024430 0.584314 0.584314 0.584314 +v 0.074220 1.488702 -0.023891 0.584314 0.584314 0.584314 +v 0.074537 1.504508 -0.024103 0.584314 0.584314 0.584314 +v 0.073632 1.500887 -0.026200 0.584314 0.584314 0.584314 +v 0.074301 1.499691 -0.025068 0.584314 0.584314 0.584314 +v 0.074473 1.500004 -0.024007 0.584314 0.584314 0.584314 +v 0.090300 1.486200 -0.044700 0.584314 0.584314 0.584314 +v 0.091516 1.491394 -0.047212 0.584314 0.584314 0.584314 +v 0.089989 1.491103 -0.048594 0.584314 0.584314 0.584314 +v 0.088900 1.485600 -0.046100 0.584314 0.584314 0.584314 +v 0.071174 1.473291 -0.018315 0.584314 0.584314 0.584314 +v 0.067815 1.470535 -0.021913 0.584314 0.584314 0.584314 +v 0.069856 1.476490 -0.018061 0.584314 0.584314 0.584314 +v 0.091000 1.522800 -0.044100 0.584314 0.584314 0.584314 +v 0.087700 1.524800 -0.044500 0.584314 0.584314 0.584314 +v 0.088398 1.522717 -0.046819 0.584314 0.584314 0.584314 +v 0.091894 1.520791 -0.046191 0.584314 0.584314 0.584314 +v 0.072913 1.506097 -0.031592 0.584314 0.584314 0.584314 +v 0.073018 1.504001 -0.031087 0.584314 0.584314 0.584314 +v 0.072919 1.505397 -0.029993 0.584314 0.584314 0.584314 +v 0.072693 1.507397 -0.030290 0.584314 0.584314 0.584314 +v 0.053586 1.467412 -0.075433 0.584314 0.584314 0.584314 +v 0.062458 1.468076 -0.057171 0.584314 0.584314 0.584314 +v 0.066552 1.481198 -0.065315 0.584314 0.584314 0.584314 +v 0.058792 1.480269 -0.080652 0.584314 0.584314 0.584314 +v 0.083582 1.473183 -0.031719 0.584314 0.584314 0.584314 +v 0.082493 1.471092 -0.029401 0.584314 0.584314 0.584314 +v 0.075389 1.512005 -0.023502 0.584314 0.584314 0.584314 +v 0.074722 1.513599 -0.022600 0.584314 0.584314 0.584314 +v 0.075513 1.518799 -0.024222 0.584314 0.584314 0.584314 +v 0.076219 1.515923 -0.024158 0.584314 0.584314 0.584314 +v 0.090682 1.506499 -0.052109 0.584314 0.584314 0.584314 +v 0.093415 1.505906 -0.050612 0.584314 0.584314 0.584314 +v 0.077712 1.518490 -0.030205 0.584314 0.584314 0.584314 +v 0.081200 1.521900 -0.033400 0.584314 0.584314 0.584314 +v 0.079308 1.519492 -0.032198 0.584314 0.584314 0.584314 +v 0.077480 1.518012 -0.030407 0.584314 0.584314 0.584314 +v 0.077190 1.509801 -0.027990 0.584314 0.584314 0.584314 +v 0.077694 1.511105 -0.027778 0.584314 0.584314 0.584314 +v 0.076001 1.512096 -0.027915 0.584314 0.584314 0.584314 +v 0.075200 1.510700 -0.027900 0.584314 0.584314 0.584314 +v 0.074370 1.517897 -0.021713 1.000000 0.000000 0.000000 +v 0.075297 1.522474 -0.025117 0.584314 0.584314 0.584314 +v 0.071415 1.475105 -0.036388 0.584314 0.584314 0.584314 +v 0.077115 1.511100 -0.025590 0.584314 0.584314 0.584314 +v 0.077700 1.513600 -0.025600 0.584314 0.584314 0.584314 +v 0.078380 1.512711 -0.027699 0.584314 0.584314 0.584314 +v -0.044034 1.418873 -0.070397 0.584314 0.584314 0.584314 +v -0.039796 1.426214 -0.075181 0.584314 0.584314 0.584314 +v -0.036540 1.415001 -0.078651 0.584314 0.584314 0.584314 +v -0.044437 1.411710 -0.070237 0.584314 0.584314 0.584314 +v 0.070513 1.481494 -0.017518 1.000000 0.000000 0.000000 +v 0.071608 1.483198 -0.019075 0.584314 0.584314 0.584314 +v 0.076812 1.517093 -0.030192 0.584314 0.584314 0.584314 +v 0.076143 1.515882 -0.030085 0.584314 0.584314 0.584314 +v 0.074901 1.512051 -0.029070 0.584314 0.584314 0.584314 +v 0.075697 1.510116 -0.030317 0.584314 0.584314 0.584314 +v 0.083394 1.503779 -0.036850 0.584314 0.584314 0.584314 +v 0.085900 1.495120 -0.037669 0.584314 0.584314 0.584314 +v 0.070665 1.482116 -0.051701 0.584314 0.584314 0.584314 +v 0.066781 1.468771 -0.037011 0.584314 0.584314 0.584314 +v 0.074900 1.512500 -0.028100 0.584314 0.584314 0.584314 +v 0.074900 1.512900 -0.028300 0.584314 0.584314 0.584314 +v 0.074300 1.512000 -0.028500 0.584314 0.584314 0.584314 +v 0.074200 1.511400 -0.028200 0.584314 0.584314 0.584314 +v 0.081180 1.469406 -0.027314 0.584314 0.584314 0.584314 +v 0.081392 1.510102 -0.034728 0.584314 0.584314 0.584314 +v 0.078509 1.508234 -0.032619 0.584314 0.584314 0.584314 +v 0.078690 1.510401 -0.032211 0.584314 0.584314 0.584314 +v 0.091593 1.496901 -0.045991 0.584314 0.584314 0.584314 +v 0.092481 1.504997 -0.047033 0.584314 0.584314 0.584314 +v 0.093707 1.505301 -0.048582 0.584314 0.584314 0.584314 +v 0.092700 1.496700 -0.047300 0.584314 0.584314 0.584314 +v 0.069138 1.468847 -0.022896 0.584314 0.584314 0.584314 +v 0.073401 1.503294 -0.031788 0.584314 0.584314 0.584314 +v 0.074390 1.501599 -0.031214 0.584314 0.584314 0.584314 +v 0.073320 1.508785 -0.030771 0.584314 0.584314 0.584314 +v 0.073362 1.510351 -0.029068 0.584314 0.584314 0.584314 +v 0.071539 1.486197 -0.018780 0.584314 0.584314 0.584314 +v 0.087705 1.519915 -0.045409 0.584314 0.584314 0.584314 +v 0.088484 1.518000 -0.046810 0.584314 0.584314 0.584314 +v 0.086125 1.518595 -0.043989 0.584314 0.584314 0.584314 +v 0.085717 1.519801 -0.042398 0.584314 0.584314 0.584314 +v 0.084872 1.521507 -0.039310 0.584314 0.584314 0.584314 +v 0.084900 1.522959 -0.038902 0.584314 0.584314 0.584314 +v 0.086800 1.521600 -0.043400 0.584314 0.584314 0.584314 +v 0.076910 1.509099 -0.031384 0.584314 0.584314 0.584314 +v 0.077488 1.510807 -0.031221 0.584314 0.584314 0.584314 +v 0.078757 1.481692 -0.026054 0.584314 0.584314 0.584314 +v 0.079651 1.475700 -0.026960 0.584314 0.584314 0.584314 +v 0.087515 1.486694 -0.039481 0.584314 0.584314 0.584314 +v 0.087178 1.487520 -0.036411 0.584314 0.584314 0.584314 +v 0.087200 1.496700 -0.049600 0.584314 0.584314 0.584314 +v 0.086626 1.505995 -0.050271 0.584314 0.584314 0.584314 +v 0.085270 1.505500 -0.048424 0.584314 0.584314 0.584314 +v 0.086200 1.496700 -0.048500 0.584314 0.584314 0.584314 +v 0.080890 1.497910 -0.046193 0.584314 0.584314 0.584314 +v 0.077697 1.498497 -0.046178 0.584314 0.584314 0.584314 +v 0.074100 1.498700 -0.022500 0.584314 0.584314 0.584314 +v 0.073200 1.502400 -0.020900 0.584314 0.584314 0.584314 +v 0.073000 1.508100 -0.030600 0.584314 0.584314 0.584314 +v 0.073112 1.509696 -0.028998 0.584314 0.584314 0.584314 +v 0.082101 1.481590 -0.041807 0.584314 0.584314 0.584314 +v 0.077895 1.474733 -0.034283 0.584314 0.584314 0.584314 +v 0.082003 1.479694 -0.039813 0.584314 0.584314 0.584314 +v 0.073816 1.473945 -0.032524 0.584314 0.584314 0.584314 +v 0.073304 1.473187 -0.030203 0.584314 0.584314 0.584314 +v 0.075893 1.473216 -0.031599 0.584314 0.584314 0.584314 +v 0.084062 1.483308 -0.033637 0.584314 0.584314 0.584314 +v 0.085978 1.484417 -0.036390 0.584314 0.584314 0.584314 +v 0.071500 1.499400 -0.027100 0.584314 0.584314 0.584314 +v 0.070090 1.497912 -0.028215 0.584314 0.584314 0.584314 +v 0.070510 1.499177 -0.026601 0.584314 0.584314 0.584314 +v 0.086793 1.502906 -0.038129 0.584314 0.584314 0.584314 +v 0.088239 1.494694 -0.038349 0.584314 0.584314 0.584314 +v 0.077317 1.513394 -0.028185 0.584314 0.584314 0.584314 +v 0.076101 1.503386 -0.027988 0.584314 0.584314 0.584314 +v 0.076739 1.506787 -0.026397 0.584314 0.584314 0.584314 +v 0.080088 1.516707 -0.028296 0.584314 0.584314 0.584314 +v 0.078608 1.515193 -0.028702 0.584314 0.584314 0.584314 +v 0.078171 1.514217 -0.028369 0.584314 0.584314 0.584314 +v 0.079119 1.514587 -0.027733 0.584314 0.584314 0.584314 +v 0.064970 1.489977 -0.026859 0.584314 0.584314 0.584314 +v 0.068207 1.488286 -0.025432 0.584314 0.584314 0.584314 +v 0.069600 1.491400 -0.025400 0.584314 0.584314 0.584314 +v 0.083936 1.522604 -0.037179 0.584314 0.584314 0.584314 +v 0.084376 1.520602 -0.038312 0.584314 0.584314 0.584314 +v 0.083800 1.512300 -0.046400 0.584314 0.584314 0.584314 +v 0.077005 1.514888 -0.032296 0.584314 0.584314 0.584314 +v 0.077607 1.513397 -0.033092 0.584314 0.584314 0.584314 +v 0.077512 1.523697 -0.039600 0.584314 0.584314 0.584314 +v 0.077134 1.522214 -0.036306 0.584314 0.584314 0.584314 +v 0.077024 1.522596 -0.035096 0.584314 0.584314 0.584314 +v 0.077000 1.526200 -0.035400 0.584314 0.584314 0.584314 +v 0.072194 1.470894 -0.027111 0.584314 0.584314 0.584314 +v 0.075000 1.471200 -0.029600 0.584314 0.584314 0.584314 +v 0.074913 1.472222 -0.030080 0.584314 0.584314 0.584314 +v 0.072794 1.472090 -0.028308 0.584314 0.584314 0.584314 +v 0.074614 1.485867 -0.026314 0.584314 0.584314 0.584314 +v 0.073392 1.484991 -0.028510 0.584314 0.584314 0.584314 +v 0.088313 1.487893 -0.042607 0.584314 0.584314 0.584314 +v 0.087791 1.487097 -0.041406 0.584314 0.584314 0.584314 +v 0.088800 1.491100 -0.043700 0.584314 0.584314 0.584314 +v 0.089407 1.492300 -0.044808 0.584314 0.584314 0.584314 +v 0.074023 1.506963 -0.033952 0.584314 0.584314 0.584314 +v 0.073613 1.505802 -0.033402 0.584314 0.584314 0.584314 +v 0.078264 1.516972 -0.037457 0.584314 0.584314 0.584314 +v 0.080300 1.519500 -0.038900 0.584314 0.584314 0.584314 +v 0.078936 1.522279 -0.035468 0.584314 0.584314 0.584314 +v 0.077375 1.520039 -0.035263 0.584314 0.584314 0.584314 +v 0.085184 1.513304 -0.048435 0.584314 0.584314 0.584314 +v 0.077900 1.512000 -0.032500 0.584314 0.584314 0.584314 +v 0.078690 1.512194 -0.033514 0.584314 0.584314 0.584314 +v 0.077290 1.512393 -0.032109 0.584314 0.584314 0.584314 +v 0.074693 1.509798 -0.027983 0.584314 0.584314 0.584314 +v 0.076690 1.508602 -0.028290 0.584314 0.584314 0.584314 +v 0.079600 1.517115 -0.029581 0.584314 0.584314 0.584314 +v 0.083299 1.520672 -0.032822 0.584314 0.584314 0.584314 +v 0.082605 1.520723 -0.032873 0.584314 0.584314 0.584314 +v 0.079196 1.517891 -0.029805 0.584314 0.584314 0.584314 +v 0.075486 1.514507 -0.028998 0.584314 0.584314 0.584314 +v 0.014577 1.465024 -0.102244 0.584314 0.584314 0.584314 +v 0.016400 1.474400 -0.109200 0.584314 0.584314 0.584314 +v -0.039024 1.550958 0.053657 1.000000 0.000000 0.000000 +v -0.046783 1.549456 0.048912 1.000000 0.000000 0.000000 +v -0.044954 1.543563 0.051419 1.000000 0.000000 0.000000 +v -0.037682 1.544673 0.054847 1.000000 0.000000 0.000000 +v 0.077508 1.523187 -0.028108 0.584314 0.584314 0.584314 +v 0.078384 1.524716 -0.032003 0.584314 0.584314 0.584314 +v 0.079493 1.525831 -0.032370 0.584314 0.584314 0.584314 +v 0.078124 1.524043 -0.029015 0.584314 0.584314 0.584314 +v 0.085510 1.518598 -0.041793 0.584314 0.584314 0.584314 +v 0.089900 1.514600 -0.047000 0.584314 0.584314 0.584314 +v 0.075224 1.500049 -0.029836 0.584314 0.584314 0.584314 +v 0.072310 1.497196 -0.029602 0.584314 0.584314 0.584314 +v 0.062100 1.496100 -0.028400 0.584314 0.584314 0.584314 +v 0.062400 1.497300 -0.028400 0.584314 0.584314 0.584314 +v 0.062996 1.496896 -0.029588 0.584314 0.584314 0.584314 +v 0.062700 1.495600 -0.029800 0.584314 0.584314 0.584314 +v 0.065798 1.490998 -0.030077 0.584314 0.584314 0.584314 +v 0.068687 1.489987 -0.028824 0.584314 0.584314 0.584314 +v 0.067795 1.488059 -0.027571 0.584314 0.584314 0.584314 +v 0.065087 1.488901 -0.029508 0.584314 0.584314 0.584314 +v 0.061700 1.493000 -0.028800 0.584314 0.584314 0.584314 +v 0.061900 1.494600 -0.028500 0.584314 0.584314 0.584314 +v 0.062600 1.493904 -0.030024 0.584314 0.584314 0.584314 +v 0.062510 1.492089 -0.030514 0.584314 0.584314 0.584314 +v 0.083251 1.522548 -0.035046 0.584314 0.584314 0.584314 +v 0.085047 1.522467 -0.036875 0.584314 0.584314 0.584314 +v 0.091507 1.513492 -0.045983 0.584314 0.584314 0.584314 +v 0.092000 1.511200 -0.046800 0.584314 0.584314 0.584314 +v 0.088778 1.518688 -0.044296 0.584314 0.584314 0.584314 +v 0.089400 1.516800 -0.045700 0.584314 0.584314 0.584314 +v 0.073810 1.490899 -0.021494 0.584314 0.584314 0.584314 +v 0.074915 1.491096 -0.023006 0.584314 0.584314 0.584314 +v 0.074587 1.489510 -0.022989 0.584314 0.584314 0.584314 +v 0.092426 1.516497 -0.046084 0.584314 0.584314 0.584314 +v 0.092491 1.518401 -0.047705 0.584314 0.584314 0.584314 +v 0.074023 1.473610 -0.019287 0.584314 0.584314 0.584314 +v 0.072900 1.472100 -0.018700 0.584314 0.584314 0.584314 +v 0.040539 1.402694 -0.008784 0.584314 0.584314 0.584314 +v 0.048074 1.407914 -0.020517 0.584314 0.584314 0.584314 +v 0.047013 1.398104 -0.021095 0.584314 0.584314 0.584314 +v 0.039392 1.393104 -0.010006 0.584314 0.584314 0.584314 +v 0.079593 1.519097 -0.027011 0.584314 0.584314 0.584314 +v 0.078310 1.521306 -0.026782 0.584314 0.584314 0.584314 +v 0.061832 1.491418 -0.027890 0.584314 0.584314 0.584314 +v 0.061767 1.490564 -0.029280 0.584314 0.584314 0.584314 +v 0.064532 1.489040 -0.028225 0.584314 0.584314 0.584314 +v 0.066803 1.495395 -0.026325 0.584314 0.584314 0.584314 +v 0.062692 1.496102 -0.026989 0.584314 0.584314 0.584314 +v 0.066004 1.492689 -0.029996 0.584314 0.584314 0.584314 +v 0.066600 1.497700 -0.029000 0.584314 0.584314 0.584314 +v 0.066899 1.498785 -0.027594 0.584314 0.584314 0.584314 +v 0.069870 1.484581 -0.025568 0.584314 0.584314 0.584314 +v 0.071628 1.484108 -0.027495 0.584314 0.584314 0.584314 +v 0.073099 1.484030 -0.024480 0.584314 0.584314 0.584314 +v 0.062493 1.490133 -0.030449 0.584314 0.584314 0.584314 +v 0.073605 1.507995 -0.032192 0.584314 0.584314 0.584314 +v 0.069294 1.493493 -0.029380 0.584314 0.584314 0.584314 +v 0.072510 1.491006 -0.030991 0.584314 0.584314 0.584314 +v 0.072108 1.488909 -0.030290 0.584314 0.584314 0.584314 +v 0.069088 1.491598 -0.029288 0.584314 0.584314 0.584314 +v 0.082186 1.480509 -0.032108 0.584314 0.584314 0.584314 +v 0.082500 1.482389 -0.031806 0.584314 0.584314 0.584314 +v 0.075207 1.486410 -0.032571 0.584314 0.584314 0.584314 +v 0.078600 1.486500 -0.030726 0.584314 0.584314 0.584314 +v 0.074610 1.503003 -0.030429 0.584314 0.584314 0.584314 +v 0.075710 1.506076 -0.029052 0.584314 0.584314 0.584314 +v 0.072018 1.499535 -0.027245 0.584314 0.584314 0.584314 +v 0.069600 1.495600 -0.029000 0.584314 0.584314 0.584314 +v 0.072429 1.493400 -0.030779 0.584314 0.584314 0.584314 +v 0.066996 1.496709 -0.026563 0.584314 0.584314 0.584314 +v 0.070701 1.496697 -0.025915 0.584314 0.584314 0.584314 +v 0.070496 1.497807 -0.026089 0.584314 0.584314 0.584314 +v 0.067002 1.497703 -0.026813 0.584314 0.584314 0.584314 +v 0.080210 1.513496 -0.034376 0.584314 0.584314 0.584314 +v 0.077161 1.519075 -0.025362 0.584314 0.584314 0.584314 +v 0.078600 1.516400 -0.026100 0.584314 0.584314 0.584314 +v 0.078956 1.526993 -0.051414 0.584314 0.584314 0.584314 +v 0.077945 1.518913 -0.056083 0.584314 0.584314 0.584314 +v 0.077665 1.520494 -0.043294 0.584314 0.584314 0.584314 +v 0.066104 1.494500 -0.029818 0.584314 0.584314 0.584314 +v 0.063008 1.498217 -0.028195 0.584314 0.584314 0.584314 +v 0.063488 1.497694 -0.027293 0.584314 0.584314 0.584314 +v 0.087700 1.483800 -0.040300 0.584314 0.584314 0.584314 +v 0.073996 1.483585 -0.024303 0.584314 0.584314 0.584314 +v 0.073597 1.507916 -0.028454 0.584314 0.584314 0.584314 +v 0.087091 1.491399 -0.048005 0.584314 0.584314 0.584314 +v 0.086200 1.486200 -0.045800 0.584314 0.584314 0.584314 +v 0.073000 1.509200 -0.028900 0.584314 0.584314 0.584314 +v 0.073613 1.510299 -0.028418 0.584314 0.584314 0.584314 +v 0.072679 1.484436 -0.028099 0.584314 0.584314 0.584314 +v 0.074011 1.484984 -0.025493 0.584314 0.584314 0.584314 +v 0.073800 1.510700 -0.028300 0.584314 0.584314 0.584314 +v 0.074759 1.490612 -0.024153 0.584314 0.584314 0.584314 +v 0.085521 1.513187 -0.039739 0.584314 0.584314 0.584314 +v 0.078886 1.472181 -0.034028 0.584314 0.584314 0.584314 +v 0.076900 1.470700 -0.031400 0.584314 0.584314 0.584314 +v 0.063107 1.497087 -0.027034 0.584314 0.584314 0.584314 +v 0.067048 1.488263 -0.026903 0.584314 0.584314 0.584314 +v 0.066401 1.496204 -0.029511 0.584314 0.584314 0.584314 +v 0.073083 1.494401 -0.025488 0.584314 0.584314 0.584314 +v 0.072718 1.492295 -0.025142 0.584314 0.584314 0.584314 +v 0.075021 1.492793 -0.024235 0.584314 0.584314 0.584314 +v 0.080194 1.487032 -0.032232 0.584314 0.584314 0.584314 +v 0.076200 1.488129 -0.034638 0.584314 0.584314 0.584314 +v 0.077499 1.489024 -0.036690 0.584314 0.584314 0.584314 +v 0.082102 1.487860 -0.033716 0.584314 0.584314 0.584314 +v 0.084805 1.481507 -0.043287 0.584314 0.584314 0.584314 +v 0.083016 1.477319 -0.039971 0.584314 0.584314 0.584314 +v 0.085043 1.475936 -0.039699 0.584314 0.584314 0.584314 +v 0.087297 1.480394 -0.043209 0.584314 0.584314 0.584314 +v 0.079918 1.541308 -0.059991 0.584314 0.584314 0.584314 +v 0.078910 1.532799 -0.044899 0.584314 0.584314 0.584314 +v 0.080121 1.548101 -0.049100 0.584314 0.584314 0.584314 +v 0.083314 1.521389 -0.044086 0.584314 0.584314 0.584314 +v 0.083806 1.518997 -0.045690 0.584314 0.584314 0.584314 +v 0.088991 1.520200 -0.048605 0.584314 0.584314 0.584314 +v 0.076340 1.525030 -0.030066 0.584314 0.584314 0.584314 +v 0.076931 1.522731 -0.033547 0.584314 0.584314 0.584314 +v 0.077407 1.523933 -0.031651 0.584314 0.584314 0.584314 +v 0.090305 1.496596 -0.050608 0.584314 0.584314 0.584314 +v 0.074900 1.508300 -0.023500 0.584314 0.584314 0.584314 +v 0.076811 1.508900 -0.025803 0.584314 0.584314 0.584314 +v 0.081302 1.482541 -0.042839 0.584314 0.584314 0.584314 +v 0.082741 1.485784 -0.031869 0.584314 0.584314 0.584314 +v 0.085088 1.486284 -0.033841 0.584314 0.584314 0.584314 +v 0.088312 1.522894 -0.037393 0.584314 0.584314 0.584314 +v 0.085094 1.521385 -0.034799 0.584314 0.584314 0.584314 +v 0.008841 1.394244 0.015789 0.584314 0.584314 0.584314 +v 0.008800 1.386900 0.011600 0.584314 0.584314 0.584314 +v 0.008589 1.498484 0.073786 1.000000 0.000000 0.000000 +v 0.010030 1.498324 0.072305 1.000000 0.000000 0.000000 +v 0.008757 1.500242 0.071290 1.000000 0.000000 0.000000 +v 0.008117 1.500249 0.072013 1.000000 0.000000 0.000000 +v 0.008946 1.489300 0.072430 1.000000 0.000000 0.000000 +v 0.008334 1.490922 0.071314 1.000000 0.000000 0.000000 +v 0.009315 1.490643 0.070347 1.000000 0.000000 0.000000 +v 0.010188 1.489265 0.071512 1.000000 0.000000 0.000000 +v 0.005681 1.499910 0.071178 1.000000 0.000000 0.000000 +v 0.004213 1.497290 0.073791 1.000000 0.000000 0.000000 +v 0.005785 1.498187 0.075196 1.000000 0.000000 0.000000 +v 0.006796 1.500441 0.071916 1.000000 0.000000 0.000000 +v 0.088400 1.525800 -0.038200 0.584314 0.584314 0.584314 +v 0.012342 1.488981 0.072095 1.000000 0.000000 0.000000 +v 0.011326 1.490885 0.070919 1.000000 0.000000 0.000000 +v 0.012050 1.491341 0.072767 1.000000 0.000000 0.000000 +v 0.013716 1.489773 0.073790 1.000000 0.000000 0.000000 +v 0.004958 1.489999 0.080211 1.000000 0.000000 0.000000 +v 0.006080 1.492103 0.080389 1.000000 0.000000 0.000000 +v 0.004980 1.491307 0.078099 1.000000 0.000000 0.000000 +v 0.004935 1.489324 0.077714 1.000000 0.000000 0.000000 +v 0.007888 1.492561 0.079779 1.000000 0.000000 0.000000 +v 0.009808 1.492021 0.081514 1.000000 0.000000 0.000000 +v 0.011583 1.491985 0.079889 1.000000 0.000000 0.000000 +v 0.009400 1.492428 0.078300 1.000000 0.000000 0.000000 +v 0.004716 1.493621 0.073204 1.000000 0.000000 0.000000 +v 0.006063 1.491670 0.074584 1.000000 0.000000 0.000000 +v 0.003964 1.493789 0.076796 1.000000 0.000000 0.000000 +v 0.012266 1.493714 0.070902 1.000000 0.000000 0.000000 +v 0.010928 1.492691 0.069478 1.000000 0.000000 0.000000 +v 0.009809 1.496498 0.068938 1.000000 0.000000 0.000000 +v 0.011062 1.497282 0.069812 1.000000 0.000000 0.000000 +v 0.045276 1.418919 -0.006497 0.584314 0.584314 0.584314 +v 0.051316 1.421097 -0.020493 0.584314 0.584314 0.584314 +v 0.034601 1.509504 0.051197 1.000000 0.000000 0.000000 +v 0.033968 1.506854 0.052483 1.000000 0.000000 0.000000 +v 0.030002 1.508004 0.053112 1.000000 0.000000 0.000000 +v 0.030801 1.510322 0.051979 1.000000 0.000000 0.000000 +v 0.075600 1.495000 -0.023600 0.584314 0.584314 0.584314 +v 0.074983 1.495799 -0.022522 0.584314 0.584314 0.584314 +v 0.084383 1.516205 -0.047117 0.584314 0.584314 0.584314 +v 0.087769 1.520281 -0.042209 0.584314 0.584314 0.584314 +v 0.082911 1.523192 -0.041995 0.584314 0.584314 0.584314 +v 0.081484 1.525319 -0.037312 0.584314 0.584314 0.584314 +v 0.080076 1.523708 -0.036314 0.584314 0.584314 0.584314 +v 0.081315 1.521297 -0.040291 0.584314 0.584314 0.584314 +v 0.090800 1.520100 -0.042800 0.584314 0.584314 0.584314 +v 0.075382 1.482188 -0.024203 0.584314 0.584314 0.584314 +v 0.084040 1.509298 -0.036335 0.584314 0.584314 0.584314 +v 0.080484 1.525822 -0.034804 0.584314 0.584314 0.584314 +v 0.083919 1.527606 -0.035488 0.584314 0.584314 0.584314 +v 0.090591 1.497096 -0.045921 0.584314 0.584314 0.584314 +v 0.091688 1.518505 -0.044615 0.584314 0.584314 0.584314 +v 0.089812 1.517295 -0.043486 0.584314 0.584314 0.584314 +v 0.081321 1.518998 -0.029088 0.584314 0.584314 0.584314 +v 0.078895 1.491603 -0.038661 0.584314 0.584314 0.584314 +v 0.085402 1.491588 -0.036554 0.584314 0.584314 0.584314 +v 0.084007 1.489086 -0.035109 0.584314 0.584314 0.584314 +v -0.092919 1.516004 -0.048998 0.584314 0.584314 0.584314 +v -0.093182 1.513297 -0.049973 0.584314 0.584314 0.584314 +v -0.093400 1.511900 -0.048200 0.584314 0.584314 0.584314 +v -0.093071 1.514299 -0.047313 0.584314 0.584314 0.584314 +v -0.089794 1.497809 -0.046670 0.584314 0.584314 0.584314 +v -0.089310 1.505389 -0.048436 0.584314 0.584314 0.584314 +v -0.090352 1.508011 -0.049430 0.584314 0.584314 0.584314 +v -0.090705 1.505796 -0.048534 0.584314 0.584314 0.584314 +v 0.078399 1.489817 -0.037774 0.584314 0.584314 0.584314 +v 0.073444 1.504694 -0.032820 0.584314 0.584314 0.584314 +v 0.071111 1.486897 -0.016909 1.000000 0.000000 0.000000 +v 0.081578 1.475997 -0.030012 0.584314 0.584314 0.584314 +v -0.090287 1.486997 -0.043418 0.584314 0.584314 0.584314 +v -0.089308 1.487702 -0.042889 0.584314 0.584314 0.584314 +v -0.090700 1.492300 -0.044900 0.584314 0.584314 0.584314 +v -0.091687 1.491903 -0.045704 0.584314 0.584314 0.584314 +v 0.082714 1.477004 -0.032189 0.584314 0.584314 0.584314 +v 0.031157 1.465431 -0.096619 0.584314 0.584314 0.584314 +v 0.034883 1.475714 -0.102887 0.584314 0.584314 0.584314 +v 0.092400 1.496600 -0.049200 0.584314 0.584314 0.584314 +v 0.083202 1.522130 -0.035985 0.584314 0.584314 0.584314 +v 0.077509 1.481801 -0.025290 0.584314 0.584314 0.584314 +v 0.077217 1.476111 -0.024483 0.584314 0.584314 0.584314 +v 0.075527 1.476613 -0.022791 0.584314 0.584314 0.584314 +v 0.078213 1.512608 -0.033384 0.584314 0.584314 0.584314 +v 0.080792 1.483473 -0.043245 0.584314 0.584314 0.584314 +v 0.081006 1.485539 -0.044522 0.584314 0.584314 0.584314 +v 0.063300 1.497600 -0.029200 0.584314 0.584314 0.584314 +v 0.082300 1.478600 -0.039700 0.584314 0.584314 0.584314 +v 0.078492 1.473495 -0.034110 0.584314 0.584314 0.584314 +v 0.054580 1.424205 -0.033907 0.584314 0.584314 0.584314 +v 0.053617 1.426598 -0.048816 0.584314 0.584314 0.584314 +v -0.075298 1.468043 -0.021340 0.584314 0.584314 0.584314 +v -0.078140 1.470212 -0.022933 0.584314 0.584314 0.584314 +v -0.078493 1.467790 -0.024400 0.584314 0.584314 0.584314 +v -0.073913 1.466336 -0.023090 0.584314 0.584314 0.584314 +v 0.052512 1.415702 -0.047314 0.584314 0.584314 0.584314 +v 0.052297 1.412202 -0.033512 0.584314 0.584314 0.584314 +v 0.072400 1.500500 -0.017900 1.000000 0.000000 0.000000 +v 0.072720 1.493501 -0.019884 0.584314 0.584314 0.584314 +v 0.072078 1.492403 -0.018405 0.584314 0.584314 0.584314 +v 0.022133 1.402373 0.012551 0.584314 0.584314 0.584314 +v 0.018991 1.390401 0.007792 0.584314 0.584314 0.584314 +v 0.071080 1.487414 -0.013506 1.000000 0.000000 0.000000 +v 0.070164 1.486779 -0.003273 1.000000 0.000000 0.000000 +v 0.071773 1.502108 -0.003201 1.000000 0.000000 0.000000 +v 0.072151 1.496898 -0.012896 1.000000 0.000000 0.000000 +v 0.059961 1.533198 0.030682 1.000000 0.000000 0.000000 +v 0.061666 1.533495 0.026588 1.000000 0.000000 0.000000 +v 0.061933 1.524304 0.026724 1.000000 0.000000 0.000000 +v 0.059859 1.525661 0.030102 1.000000 0.000000 0.000000 +v 0.020105 1.589077 0.046472 1.000000 0.000000 0.000000 +v 0.009713 1.590238 0.048897 1.000000 0.000000 0.000000 +v 0.009944 1.597050 0.042825 0.584314 0.584314 0.584314 +v 0.020552 1.595691 0.040151 0.584314 0.584314 0.584314 +v 0.036783 1.483221 -0.106562 0.584314 0.584314 0.584314 +v 0.038502 1.492891 -0.110712 0.584314 0.584314 0.584314 +v 0.018483 1.490152 -0.117701 0.584314 0.584314 0.584314 +v 0.017417 1.481271 -0.113053 0.584314 0.584314 0.584314 +v 0.020717 1.610835 0.018436 0.584314 0.584314 0.584314 +v 0.010055 1.612720 0.020935 0.584314 0.584314 0.584314 +v 0.010178 1.617029 0.011196 0.584314 0.584314 0.584314 +v -0.070914 1.467491 -0.024294 0.584314 0.584314 0.584314 +v -0.075432 1.466828 -0.028178 0.584314 0.584314 0.584314 +v -0.075074 1.469686 -0.029129 0.584314 0.584314 0.584314 +v -0.071489 1.469689 -0.026106 0.584314 0.584314 0.584314 +v 0.021004 1.614887 0.009079 0.584314 0.584314 0.584314 +v 0.051849 1.506984 0.042450 1.000000 0.000000 0.000000 +v 0.053308 1.500902 0.042309 1.000000 0.000000 0.000000 +v 0.049500 1.500600 0.045600 1.000000 0.000000 0.000000 +v 0.048611 1.506682 0.045109 1.000000 0.000000 0.000000 +v 0.077083 1.471595 -0.021914 0.584314 0.584314 0.584314 +v 0.075873 1.472489 -0.020821 0.584314 0.584314 0.584314 +v -0.086489 1.526078 -0.035111 0.584314 0.584314 0.584314 +v -0.086600 1.523100 -0.034700 0.584314 0.584314 0.584314 +v -0.084675 1.522306 -0.032321 0.584314 0.584314 0.584314 +v -0.084516 1.525303 -0.032395 0.584314 0.584314 0.584314 +v -0.076847 1.490511 -0.045292 0.584314 0.584314 0.584314 +v -0.075461 1.484031 -0.043370 0.584314 0.584314 0.584314 +v -0.081300 1.489074 -0.045823 0.584314 0.584314 0.584314 +v -0.081298 1.491995 -0.046116 0.584314 0.584314 0.584314 +v 0.010363 1.620560 -0.000194 0.584314 0.584314 0.584314 +v 0.021444 1.618288 -0.001890 0.584314 0.584314 0.584314 +v 0.013719 1.517008 0.059295 1.000000 0.000000 0.000000 +v -0.085506 1.516107 -0.041696 0.584314 0.584314 0.584314 +v -0.086614 1.516897 -0.045188 0.584314 0.584314 0.584314 +v -0.087200 1.514700 -0.046300 0.584314 0.584314 0.584314 +v -0.086210 1.513201 -0.043498 0.584314 0.584314 0.584314 +v -0.089406 1.517594 -0.050088 0.584314 0.584314 0.584314 +v -0.089835 1.514599 -0.051186 0.584314 0.584314 0.584314 +v -0.073155 1.476985 -0.019715 0.584314 0.584314 0.584314 +v -0.071768 1.480608 -0.019054 0.584314 0.584314 0.584314 +v -0.072296 1.482197 -0.020109 0.584314 0.584314 0.584314 +v -0.073056 1.481128 -0.021346 0.584314 0.584314 0.584314 +v -0.073953 1.494303 -0.032675 0.584314 0.584314 0.584314 +v -0.075096 1.498497 -0.031088 0.584314 0.584314 0.584314 +v -0.086495 1.476758 -0.038243 0.584314 0.584314 0.584314 +v -0.086462 1.478693 -0.037171 0.584314 0.584314 0.584314 +v -0.088511 1.482595 -0.040600 0.584314 0.584314 0.584314 +v -0.088684 1.481204 -0.041805 0.584314 0.584314 0.584314 +v 0.014127 1.518765 0.056494 1.000000 0.000000 0.000000 +v 0.017673 1.515705 0.055114 1.000000 0.000000 0.000000 +v 0.017351 1.513871 0.057445 1.000000 0.000000 0.000000 +v 0.007369 1.564131 0.060202 1.000000 0.000000 0.000000 +v 0.008331 1.571458 0.057659 1.000000 0.000000 0.000000 +v 0.017301 1.571015 0.055837 1.000000 0.000000 0.000000 +v 0.015753 1.563817 0.058794 1.000000 0.000000 0.000000 +v 0.021739 1.513091 0.053661 1.000000 0.000000 0.000000 +v 0.021012 1.511308 0.055406 1.000000 0.000000 0.000000 +v 0.010005 1.602932 0.036161 0.584314 0.584314 0.584314 +v 0.020698 1.601402 0.033405 0.584314 0.584314 0.584314 +v 0.020840 1.621971 -0.050662 0.584314 0.584314 0.584314 +v -0.083800 1.481300 -0.034800 0.584314 0.584314 0.584314 +v -0.086100 1.483800 -0.038300 0.584314 0.584314 0.584314 +v -0.087015 1.484403 -0.040188 0.584314 0.584314 0.584314 +v -0.085989 1.482300 -0.038105 0.584314 0.584314 0.584314 +v 0.021361 1.622750 -0.042579 0.584314 0.584314 0.584314 +v 0.009988 1.625236 -0.042999 0.584314 0.584314 0.584314 +v -0.088031 1.519317 -0.041792 0.584314 0.584314 0.584314 +v -0.085861 1.521559 -0.037113 0.584314 0.584314 0.584314 +v -0.086699 1.521126 -0.037101 0.584314 0.584314 0.584314 +v -0.088900 1.518700 -0.041800 0.584314 0.584314 0.584314 +v 0.011010 1.623798 -0.055177 0.584314 0.584314 0.584314 +v 0.071022 1.498660 -0.072359 0.584314 0.584314 0.584314 +v 0.074708 1.498310 -0.057287 0.584314 0.584314 0.584314 +v 0.076813 1.509999 -0.058491 0.584314 0.584314 0.584314 +v 0.074411 1.514719 -0.074802 0.584314 0.584314 0.584314 +v 0.033028 1.407859 0.005141 0.584314 0.584314 0.584314 +v 0.030039 1.395778 0.000929 0.584314 0.584314 0.584314 +v -0.082000 1.504600 -0.045500 0.584314 0.584314 0.584314 +v -0.080323 1.509694 -0.043474 0.584314 0.584314 0.584314 +v -0.079604 1.508792 -0.043485 0.584314 0.584314 0.584314 +v -0.081297 1.504301 -0.045314 0.584314 0.584314 0.584314 +v -0.089100 1.515800 -0.048100 0.584314 0.584314 0.584314 +v -0.089639 1.513104 -0.049003 0.584314 0.584314 0.584314 +v -0.087992 1.512000 -0.047407 0.584314 0.584314 0.584314 +v -0.075500 1.513617 -0.029983 0.584314 0.584314 0.584314 +v -0.076118 1.514593 -0.031298 0.584314 0.584314 0.584314 +v -0.076609 1.513005 -0.031696 0.584314 0.584314 0.584314 +v -0.076371 1.511694 -0.030520 0.584314 0.584314 0.584314 +v -0.078164 1.466576 -0.027814 0.584314 0.584314 0.584314 +v -0.073096 1.475727 -0.036776 0.584314 0.584314 0.584314 +v -0.074801 1.476562 -0.038030 0.584314 0.584314 0.584314 +v -0.077596 1.480667 -0.040850 0.584314 0.584314 0.584314 +v -0.076407 1.481515 -0.041493 0.584314 0.584314 0.584314 +v 0.053520 1.554444 0.037880 1.000000 0.000000 0.000000 +v 0.055167 1.559187 0.033299 1.000000 0.000000 0.000000 +v 0.058439 1.552305 0.030019 1.000000 0.000000 0.000000 +v 0.056797 1.548534 0.034888 1.000000 0.000000 0.000000 +v 0.005887 1.552131 0.063546 1.000000 0.000000 0.000000 +v 0.013242 1.551916 0.062647 1.000000 0.000000 0.000000 +v 0.011428 1.545963 0.063453 1.000000 0.000000 0.000000 +v 0.005203 1.545936 0.064108 1.000000 0.000000 0.000000 +v -0.070618 1.469515 -0.019925 0.584314 0.584314 0.584314 +v -0.073800 1.469900 -0.019600 0.584314 0.584314 0.584314 +v -0.074701 1.468685 -0.020488 0.584314 0.584314 0.584314 +v -0.071600 1.467919 -0.021209 0.584314 0.584314 0.584314 +v 0.059440 1.518629 0.030726 1.000000 0.000000 0.000000 +v 0.062023 1.515611 0.028312 1.000000 0.000000 0.000000 +v 0.060821 1.508001 0.032915 1.000000 0.000000 0.000000 +v 0.058003 1.511984 0.034409 1.000000 0.000000 0.000000 +v 0.054598 1.507965 0.039780 1.000000 0.000000 0.000000 +v -0.078425 1.518098 -0.031667 0.584314 0.584314 0.584314 +v -0.080957 1.517503 -0.033837 0.584314 0.584314 0.584314 +v -0.079092 1.516506 -0.033011 0.584314 0.584314 0.584314 +v -0.077368 1.516811 -0.031317 0.584314 0.584314 0.584314 +v 0.056600 1.502200 0.039300 1.000000 0.000000 0.000000 +v -0.088500 1.503500 -0.046500 0.584314 0.584314 0.584314 +v -0.087000 1.510300 -0.044900 0.584314 0.584314 0.584314 +v 0.018904 1.579964 0.052345 1.000000 0.000000 0.000000 +v 0.009112 1.580880 0.054387 1.000000 0.000000 0.000000 +v 0.060600 1.543300 0.027500 1.000000 0.000000 0.000000 +v 0.058985 1.541133 0.032384 1.000000 0.000000 0.000000 +v 0.010699 1.519994 0.061739 1.000000 0.000000 0.000000 +v 0.011514 1.521322 0.058249 1.000000 0.000000 0.000000 +v 0.007996 1.525146 0.059987 1.000000 0.000000 0.000000 +v -0.089148 1.494204 -0.040272 0.584314 0.584314 0.584314 +v -0.089000 1.494300 -0.043500 0.584314 0.584314 0.584314 +v -0.088538 1.490188 -0.041897 0.584314 0.584314 0.584314 +v -0.088564 1.490214 -0.038795 0.584314 0.584314 0.584314 +v 0.003912 1.524971 0.065569 1.000000 0.000000 0.000000 +v 0.003648 1.528717 0.063754 1.000000 0.000000 0.000000 +v 0.007046 1.528482 0.060248 1.000000 0.000000 0.000000 +v 0.033993 1.562933 0.052199 1.000000 0.000000 0.000000 +v 0.035634 1.569459 0.048664 1.000000 0.000000 0.000000 +v 0.043291 1.567819 0.043458 1.000000 0.000000 0.000000 +v 0.041735 1.561705 0.047287 1.000000 0.000000 0.000000 +v 0.020698 1.606310 0.026348 0.584314 0.584314 0.584314 +v -0.088334 1.502483 -0.040508 0.584314 0.584314 0.584314 +v -0.088447 1.502416 -0.044192 0.584314 0.584314 0.584314 +v 0.010005 1.608005 0.029016 0.584314 0.584314 0.584314 +v 0.004139 1.537948 0.062980 1.000000 0.000000 0.000000 +v 0.008537 1.537917 0.061632 1.000000 0.000000 0.000000 +v 0.007473 1.534421 0.060282 1.000000 0.000000 0.000000 +v -0.090983 1.511396 -0.046991 0.584314 0.584314 0.584314 +v -0.091428 1.505198 -0.047205 0.584314 0.584314 0.584314 +v -0.090384 1.512000 -0.047798 0.584314 0.584314 0.584314 +v -0.077544 1.512600 -0.041093 0.584314 0.584314 0.584314 +v -0.077400 1.515300 -0.044900 0.584314 0.584314 0.584314 +v -0.077651 1.508587 -0.046651 0.584314 0.584314 0.584314 +v -0.078383 1.510012 -0.042574 0.584314 0.584314 0.584314 +v 0.003950 1.534628 0.062399 1.000000 0.000000 0.000000 +v 0.025500 1.509400 0.054200 1.000000 0.000000 0.000000 +v 0.026221 1.511402 0.052919 1.000000 0.000000 0.000000 +v 0.068924 1.470783 -0.026772 0.584314 0.584314 0.584314 +v 0.070063 1.470235 -0.025719 0.584314 0.584314 0.584314 +v 0.073354 1.517300 -0.015507 1.000000 0.000000 0.000000 +v 0.072714 1.507101 -0.013696 1.000000 0.000000 0.000000 +v 0.071736 1.514897 -0.004110 1.000000 0.000000 0.000000 +v 0.071742 1.527400 -0.006595 1.000000 0.000000 0.000000 +v 0.073300 1.538600 -0.010500 1.000000 0.000000 0.000000 +v 0.074599 1.546926 -0.016268 0.584314 0.584314 0.584314 +v 0.075720 1.531749 -0.022655 0.584314 0.584314 0.584314 +v 0.074613 1.525899 -0.018098 1.000000 0.000000 0.000000 +v 0.049669 1.418009 -0.059856 0.584314 0.584314 0.584314 +v 0.048608 1.427595 -0.062745 0.584314 0.584314 0.584314 +v 0.004078 1.522301 0.068552 1.000000 0.000000 0.000000 +v 0.004027 1.519664 0.071163 1.000000 0.000000 0.000000 +v 0.020495 1.529703 -0.128086 0.584314 0.584314 0.584314 +v -0.072487 1.486189 -0.020399 0.584314 0.584314 0.584314 +v -0.073652 1.488310 -0.021518 0.584314 0.584314 0.584314 +v -0.072785 1.486082 -0.022770 0.584314 0.584314 0.584314 +v -0.072332 1.483812 -0.022359 0.584314 0.584314 0.584314 +v 0.019992 1.516906 -0.126383 0.584314 0.584314 0.584314 +v 0.040609 1.520993 -0.118122 0.584314 0.584314 0.584314 +v 0.040804 1.533198 -0.119411 0.584314 0.584314 0.584314 +v 0.068436 1.488481 -0.068879 0.584314 0.584314 0.584314 +v -0.078096 1.478882 -0.039421 0.584314 0.584314 0.584314 +v -0.075400 1.475700 -0.037100 0.584314 0.584314 0.584314 +v -0.075785 1.475417 -0.036252 0.584314 0.584314 0.584314 +v -0.078507 1.477345 -0.037814 0.584314 0.584314 0.584314 +v 0.072751 1.489694 -0.054914 0.584314 0.584314 0.584314 +v 0.010892 1.495095 0.074194 1.000000 0.000000 0.000000 +v 0.007594 1.499713 0.069461 1.000000 0.000000 0.000000 +v 0.007789 1.496199 0.068918 1.000000 0.000000 0.000000 +v 0.007417 1.498889 0.069265 1.000000 0.000000 0.000000 +v 0.010944 1.492053 0.076099 1.000000 0.000000 0.000000 +v 0.013247 1.491279 0.077394 1.000000 0.000000 0.000000 +v 0.008600 1.492389 0.069127 1.000000 0.000000 0.000000 +v 0.007700 1.492600 0.069700 1.000000 0.000000 0.000000 +v 0.006998 1.496497 0.069211 1.000000 0.000000 0.000000 +v 0.008729 1.500115 0.070107 1.000000 0.000000 0.000000 +v 0.001944 1.488386 0.082348 1.000000 0.000000 0.000000 +v 0.002499 1.489875 0.085125 1.000000 0.000000 0.000000 +v 0.006506 1.490990 0.084097 1.000000 0.000000 0.000000 +v 0.005006 1.489613 0.082093 1.000000 0.000000 0.000000 +v 0.005458 1.499077 0.070745 1.000000 0.000000 0.000000 +v 0.004491 1.496811 0.071589 1.000000 0.000000 0.000000 +v 0.005310 1.494685 0.078792 1.000000 0.000000 0.000000 +v 0.007206 1.498428 0.074823 1.000000 0.000000 0.000000 +v 0.007494 1.500437 0.072081 1.000000 0.000000 0.000000 +v 0.007200 1.495300 0.078000 1.000000 0.000000 0.000000 +v 0.006200 1.489300 0.075200 1.000000 0.000000 0.000000 +v 0.009008 1.495404 0.076405 1.000000 0.000000 0.000000 +v -0.083100 1.518700 -0.036200 0.584314 0.584314 0.584314 +v -0.083855 1.513511 -0.036581 0.584314 0.584314 0.584314 +v -0.082100 1.513505 -0.035117 0.584314 0.584314 0.584314 +v -0.079400 1.482900 -0.027100 0.584314 0.584314 0.584314 +v -0.080206 1.484210 -0.028695 0.584314 0.584314 0.584314 +v -0.081500 1.481100 -0.030500 0.584314 0.584314 0.584314 +v -0.080687 1.479097 -0.029207 0.584314 0.584314 0.584314 +v 0.081106 1.485086 -0.030299 0.584314 0.584314 0.584314 +v 0.055353 1.438827 -0.014305 0.584314 0.584314 0.584314 +v 0.061802 1.452633 -0.021411 0.584314 0.584314 0.584314 +v 0.061800 1.451269 -0.026789 0.584314 0.584314 0.584314 +v -0.082571 1.470333 -0.032585 0.584314 0.584314 0.584314 +v -0.080240 1.469896 -0.033585 0.584314 0.584314 0.584314 +v -0.077900 1.467889 -0.030714 0.584314 0.584314 0.584314 +v -0.080399 1.467916 -0.030093 0.584314 0.584314 0.584314 +v -0.072675 1.482711 -0.021801 0.584314 0.584314 0.584314 +v -0.072327 1.483599 -0.020303 0.584314 0.584314 0.584314 +v -0.083926 1.505195 -0.047073 0.584314 0.584314 0.584314 +v -0.082566 1.511308 -0.044839 0.584314 0.584314 0.584314 +v 0.056475 1.436705 -0.023388 0.584314 0.584314 0.584314 +v 0.080800 1.511900 -0.034700 0.584314 0.584314 0.584314 +v 0.066012 1.558296 0.012561 1.000000 0.000000 0.000000 +v 0.067698 1.568962 0.002878 0.584314 0.584314 0.584314 +v 0.072355 1.557904 -0.008158 0.584314 0.584314 0.584314 +v -0.086087 1.511596 -0.040800 0.584314 0.584314 0.584314 +v -0.086768 1.509089 -0.042098 0.584314 0.584314 0.584314 +v 0.071371 1.547902 -0.002509 1.000000 0.000000 0.000000 +v 0.068379 1.577790 -0.004909 0.584314 0.584314 0.584314 +v 0.073269 1.567598 -0.015308 0.584314 0.584314 0.584314 +v 0.076018 1.556001 -0.024296 0.584314 0.584314 0.584314 +v 0.077911 1.536200 -0.036897 0.584314 0.584314 0.584314 +v 0.042165 1.521251 0.045613 1.000000 0.000000 0.000000 +v 0.042412 1.521112 0.045815 1.000000 0.000000 0.000000 +v 0.040900 1.520800 0.047100 1.000000 0.000000 0.000000 +v -0.074730 1.498708 -0.025229 0.584314 0.584314 0.584314 +v -0.072484 1.499298 -0.026263 0.584314 0.584314 0.584314 +v -0.072424 1.498498 -0.026271 0.584314 0.584314 0.584314 +v -0.075274 1.497098 -0.025153 0.584314 0.584314 0.584314 +v 0.040900 1.520900 0.046900 1.000000 0.000000 0.000000 +v 0.041684 1.521291 0.044982 1.000000 0.000000 0.000000 +v 0.040343 1.520792 0.046058 1.000000 0.000000 0.000000 +v -0.074986 1.498595 -0.024097 0.584314 0.584314 0.584314 +v -0.075514 1.497004 -0.023998 0.584314 0.584314 0.584314 +v -0.075085 1.496797 -0.022906 0.584314 0.584314 0.584314 +v -0.074710 1.497703 -0.022785 0.584314 0.584314 0.584314 +v 0.042542 1.521718 0.044010 1.000000 0.000000 0.000000 +v 0.043095 1.521563 0.044535 1.000000 0.000000 0.000000 +v 0.043365 1.521386 0.044713 1.000000 0.000000 0.000000 +v 0.024933 1.521899 0.048906 1.000000 0.000000 0.000000 +v 0.025588 1.522170 0.048171 1.000000 0.000000 0.000000 +v 0.028191 1.521207 0.048430 1.000000 0.000000 0.000000 +v 0.027547 1.521253 0.049572 1.000000 0.000000 0.000000 +v 0.024720 1.521709 0.049378 1.000000 0.000000 0.000000 +v 0.027503 1.521018 0.050005 1.000000 0.000000 0.000000 +v -0.071792 1.499615 -0.026608 0.584314 0.584314 0.584314 +v -0.072000 1.499300 -0.026400 0.584314 0.584314 0.584314 +v -0.072388 1.499850 -0.026639 0.584314 0.584314 0.584314 +v -0.077294 1.502724 -0.037763 0.584314 0.584314 0.584314 +v -0.078993 1.494880 -0.039129 0.584314 0.584314 0.584314 +v -0.077413 1.494601 -0.037981 0.584314 0.584314 0.584314 +v -0.075700 1.501500 -0.036400 0.584314 0.584314 0.584314 +v 0.028678 1.523900 0.042557 0.584314 0.584314 0.584314 +v 0.028204 1.524236 0.042492 0.584314 0.584314 0.584314 +v -0.089216 1.495402 -0.045388 0.584314 0.584314 0.584314 +v 0.029466 1.523482 0.042681 0.584314 0.584314 0.584314 +v 0.023235 1.523973 0.046674 1.000000 0.000000 0.000000 +v 0.023291 1.524974 0.046778 1.000000 0.000000 0.000000 +v -0.080994 1.521612 -0.028301 0.584314 0.584314 0.584314 +v -0.079582 1.523421 -0.028204 0.584314 0.584314 0.584314 +v -0.082400 1.526875 -0.032516 0.584314 0.584314 0.584314 +v 0.027982 1.525037 0.042609 0.584314 0.584314 0.584314 +v 0.027969 1.524510 0.042490 0.584314 0.584314 0.584314 +v 0.023469 1.523441 0.046801 1.000000 0.000000 0.000000 +v -0.074387 1.485551 -0.030792 0.584314 0.584314 0.584314 +v -0.077111 1.486378 -0.028293 0.584314 0.584314 0.584314 +v -0.075401 1.486174 -0.026902 0.584314 0.584314 0.584314 +v -0.073776 1.485212 -0.029312 0.584314 0.584314 0.584314 +v -0.072203 1.490294 -0.025077 0.584314 0.584314 0.584314 +v -0.070416 1.486997 -0.024430 0.584314 0.584314 0.584314 +v -0.074220 1.488702 -0.023891 0.584314 0.584314 0.584314 +v -0.074537 1.504508 -0.024103 0.584314 0.584314 0.584314 +v -0.073632 1.500887 -0.026200 0.584314 0.584314 0.584314 +v -0.074301 1.499691 -0.025068 0.584314 0.584314 0.584314 +v -0.074473 1.500004 -0.024007 0.584314 0.584314 0.584314 +v -0.090300 1.486200 -0.044700 0.584314 0.584314 0.584314 +v -0.091516 1.491394 -0.047212 0.584314 0.584314 0.584314 +v -0.089989 1.491103 -0.048594 0.584314 0.584314 0.584314 +v -0.088900 1.485600 -0.046100 0.584314 0.584314 0.584314 +v 0.021958 1.523277 0.046966 1.000000 0.000000 0.000000 +v 0.021129 1.523661 0.046653 1.000000 0.000000 0.000000 +v -0.071174 1.473291 -0.018315 1.000000 0.000000 0.000000 +v -0.067815 1.470535 -0.021913 0.584314 0.584314 0.584314 +v -0.069856 1.476490 -0.018061 1.000000 0.000000 0.000000 +v -0.091000 1.522800 -0.044100 0.584314 0.584314 0.584314 +v -0.087700 1.524800 -0.044500 0.584314 0.584314 0.584314 +v -0.088398 1.522717 -0.046819 0.584314 0.584314 0.584314 +v -0.091894 1.520791 -0.046191 0.584314 0.584314 0.584314 +v -0.072913 1.506097 -0.031592 0.584314 0.584314 0.584314 +v -0.073018 1.504001 -0.031087 0.584314 0.584314 0.584314 +v -0.072919 1.505397 -0.029993 0.584314 0.584314 0.584314 +v -0.072693 1.507397 -0.030290 0.584314 0.584314 0.584314 +v 0.021224 1.524972 0.046884 1.000000 0.000000 0.000000 +v 0.032700 1.520100 0.050100 1.000000 0.000000 0.000000 +v 0.032897 1.519399 0.050184 1.000000 0.000000 0.000000 +v 0.028200 1.519704 0.050417 1.000000 0.000000 0.000000 +v 0.027801 1.520500 0.050288 1.000000 0.000000 0.000000 +v 0.032498 1.520485 0.049893 1.000000 0.000000 0.000000 +v 0.035900 1.520600 0.049000 1.000000 0.000000 0.000000 +v 0.035996 1.520197 0.049188 1.000000 0.000000 0.000000 +v 0.036104 1.519501 0.049213 1.000000 0.000000 0.000000 +v -0.053586 1.467412 -0.075433 0.584314 0.584314 0.584314 +v -0.062458 1.468076 -0.057171 0.584314 0.584314 0.584314 +v -0.066552 1.481198 -0.065315 0.584314 0.584314 0.584314 +v -0.058792 1.480269 -0.080652 0.584314 0.584314 0.584314 +v -0.083582 1.473183 -0.031719 0.584314 0.584314 0.584314 +v -0.082493 1.471092 -0.029401 0.584314 0.584314 0.584314 +v -0.075389 1.512005 -0.023502 0.584314 0.584314 0.584314 +v -0.074722 1.513599 -0.022600 0.584314 0.584314 0.584314 +v -0.075513 1.518799 -0.024222 0.584314 0.584314 0.584314 +v -0.076219 1.515923 -0.024158 0.584314 0.584314 0.584314 +v 0.024901 1.520591 0.050179 1.000000 0.000000 0.000000 +v 0.024799 1.521400 0.049815 1.000000 0.000000 0.000000 +v 0.036100 1.518900 0.049200 1.000000 0.000000 0.000000 +v 0.033100 1.518800 0.050100 1.000000 0.000000 0.000000 +v -0.090682 1.506499 -0.052109 0.584314 0.584314 0.584314 +v -0.093415 1.505906 -0.050612 0.584314 0.584314 0.584314 +v 0.028400 1.519100 0.050400 1.000000 0.000000 0.000000 +v 0.024900 1.520200 0.050300 1.000000 0.000000 0.000000 +v 0.022180 1.521429 0.049697 1.000000 0.000000 0.000000 +v 0.023262 1.521579 0.049651 1.000000 0.000000 0.000000 +v 0.033098 1.518102 0.049889 1.000000 0.000000 0.000000 +v 0.033002 1.517298 0.049711 1.000000 0.000000 0.000000 +v 0.028299 1.517601 0.050288 1.000000 0.000000 0.000000 +v 0.028401 1.518399 0.050319 1.000000 0.000000 0.000000 +v -0.077712 1.518490 -0.030205 0.584314 0.584314 0.584314 +v -0.081200 1.521900 -0.033400 0.584314 0.584314 0.584314 +v -0.079308 1.519492 -0.032198 0.584314 0.584314 0.584314 +v -0.077480 1.518012 -0.030407 0.584314 0.584314 0.584314 +v -0.077190 1.509801 -0.027990 0.584314 0.584314 0.584314 +v -0.077694 1.511105 -0.027778 0.584314 0.584314 0.584314 +v -0.076001 1.512096 -0.027915 0.584314 0.584314 0.584314 +v -0.075200 1.510700 -0.027900 0.584314 0.584314 0.584314 +v 0.036100 1.518200 0.048900 1.000000 0.000000 0.000000 +v 0.036000 1.517400 0.048700 1.000000 0.000000 0.000000 +v -0.074370 1.517897 -0.021713 1.000000 0.000000 0.000000 +v -0.075297 1.522474 -0.025117 0.584314 0.584314 0.584314 +v 0.044439 1.521538 0.043123 1.000000 0.000000 0.000000 +v 0.044900 1.522000 0.042200 1.000000 0.000000 0.000000 +v 0.044889 1.521497 0.042391 1.000000 0.000000 0.000000 +v -0.071415 1.475105 -0.036388 0.584314 0.584314 0.584314 +v 0.044613 1.521100 0.042908 1.000000 0.000000 0.000000 +v 0.047300 1.519000 0.040400 1.000000 0.000000 0.000000 +v 0.048300 1.520100 0.039500 1.000000 0.000000 0.000000 +v 0.050100 1.519300 0.038700 1.000000 0.000000 0.000000 +v -0.077115 1.511100 -0.025590 0.584314 0.584314 0.584314 +v -0.077700 1.513600 -0.025600 0.584314 0.584314 0.584314 +v -0.078380 1.512711 -0.027699 0.584314 0.584314 0.584314 +v -0.070513 1.481494 -0.017518 1.000000 0.000000 0.000000 +v -0.071608 1.483198 -0.019075 0.584314 0.584314 0.584314 +v -0.076812 1.517093 -0.030192 0.584314 0.584314 0.584314 +v -0.076143 1.515882 -0.030085 0.584314 0.584314 0.584314 +v -0.074901 1.512051 -0.029070 0.584314 0.584314 0.584314 +v -0.075697 1.510116 -0.030317 0.584314 0.584314 0.584314 +v 0.048907 1.518104 0.039809 1.000000 0.000000 0.000000 +v -0.083394 1.503779 -0.036850 0.584314 0.584314 0.584314 +v -0.085900 1.495120 -0.037669 0.584314 0.584314 0.584314 +v 0.056681 1.509389 0.037056 1.000000 0.000000 0.000000 +v 0.051190 1.515294 0.039686 1.000000 0.000000 0.000000 +v 0.052600 1.516500 0.037900 1.000000 0.000000 0.000000 +v 0.044000 1.521300 0.043900 1.000000 0.000000 0.000000 +v 0.043400 1.521000 0.044800 1.000000 0.000000 0.000000 +v 0.043900 1.521600 0.043800 1.000000 0.000000 0.000000 +v 0.044314 1.521924 0.042872 1.000000 0.000000 0.000000 +v 0.044184 1.520701 0.043691 1.000000 0.000000 0.000000 +v 0.043510 1.520399 0.044707 1.000000 0.000000 0.000000 +v 0.042500 1.520800 0.045900 1.000000 0.000000 0.000000 +v 0.042589 1.520103 0.045890 1.000000 0.000000 0.000000 +v 0.041000 1.519800 0.047200 1.000000 0.000000 0.000000 +v 0.040900 1.520500 0.047200 1.000000 0.000000 0.000000 +v 0.038827 1.520294 0.048207 1.000000 0.000000 0.000000 +v -0.070665 1.482116 -0.051701 0.584314 0.584314 0.584314 +v -0.066781 1.468771 -0.037011 0.584314 0.584314 0.584314 +v 0.039096 1.520691 0.047990 1.000000 0.000000 0.000000 +v 0.038924 1.519591 0.048198 1.000000 0.000000 0.000000 +v 0.041100 1.519200 0.047000 1.000000 0.000000 0.000000 +v 0.039015 1.518991 0.048107 1.000000 0.000000 0.000000 +v 0.042600 1.519500 0.045600 1.000000 0.000000 0.000000 +v 0.043590 1.519902 0.044393 1.000000 0.000000 0.000000 +v 0.044314 1.520298 0.043307 1.000000 0.000000 0.000000 +v 0.044900 1.520700 0.042500 1.000000 0.000000 0.000000 +v 0.045300 1.521300 0.041900 1.000000 0.000000 0.000000 +v 0.044600 1.519800 0.042800 1.000000 0.000000 0.000000 +v 0.045200 1.519100 0.042100 1.000000 0.000000 0.000000 +v 0.044000 1.518600 0.043400 1.000000 0.000000 0.000000 +v 0.043727 1.519374 0.043986 1.000000 0.000000 0.000000 +v 0.045400 1.520300 0.041900 1.000000 0.000000 0.000000 +v 0.046200 1.519700 0.041100 1.000000 0.000000 0.000000 +v -0.074900 1.512500 -0.028100 0.584314 0.584314 0.584314 +v -0.074900 1.512900 -0.028300 0.584314 0.584314 0.584314 +v -0.074300 1.512000 -0.028500 0.584314 0.584314 0.584314 +v -0.074200 1.511400 -0.028200 0.584314 0.584314 0.584314 +v 0.042700 1.519000 0.045200 1.000000 0.000000 0.000000 +v 0.042700 1.518300 0.044800 1.000000 0.000000 0.000000 +v 0.041000 1.517900 0.046300 1.000000 0.000000 0.000000 +v 0.041092 1.518606 0.046690 1.000000 0.000000 0.000000 +v -0.081180 1.469406 -0.027314 0.584314 0.584314 0.584314 +v -0.081392 1.510102 -0.034728 0.584314 0.584314 0.584314 +v -0.078509 1.508234 -0.032619 0.584314 0.584314 0.584314 +v -0.078690 1.510401 -0.032211 0.584314 0.584314 0.584314 +v 0.039015 1.518382 0.047807 1.000000 0.000000 0.000000 +v 0.039024 1.517589 0.047472 1.000000 0.000000 0.000000 +v -0.091593 1.496901 -0.045991 0.584314 0.584314 0.584314 +v -0.092481 1.504997 -0.047033 0.584314 0.584314 0.584314 +v -0.093707 1.505301 -0.048582 0.584314 0.584314 0.584314 +v -0.092700 1.496700 -0.047300 0.584314 0.584314 0.584314 +v 0.032398 1.520499 0.049611 1.000000 0.000000 0.000000 +v 0.032070 1.520462 0.048411 1.000000 0.000000 0.000000 +v 0.035568 1.520277 0.047815 1.000000 0.000000 0.000000 +v 0.035900 1.520600 0.048700 1.000000 0.000000 0.000000 +v 0.039100 1.520700 0.047800 1.000000 0.000000 0.000000 +v -0.069138 1.468847 -0.022896 0.584314 0.584314 0.584314 +v -0.073401 1.503294 -0.031788 0.584314 0.584314 0.584314 +v -0.074390 1.501599 -0.031214 0.584314 0.584314 0.584314 +v 0.038514 1.520381 0.046986 1.000000 0.000000 0.000000 +v 0.035403 1.520177 0.046662 1.000000 0.000000 0.000000 +v 0.033667 1.522493 0.042517 0.584314 0.584314 0.584314 +v 0.035009 1.522519 0.042154 0.584314 0.584314 0.584314 +v 0.038077 1.520272 0.045916 1.000000 0.000000 0.000000 +v -0.073320 1.508785 -0.030771 0.584314 0.584314 0.584314 +v -0.073362 1.510351 -0.029068 0.584314 0.584314 0.584314 +v 0.032250 1.520456 0.047158 1.000000 0.000000 0.000000 +v 0.032125 1.522658 0.042749 0.584314 0.584314 0.584314 +v 0.028946 1.521295 0.047200 1.000000 0.000000 0.000000 +v -0.071539 1.486197 -0.018780 0.584314 0.584314 0.584314 +v 0.030633 1.523025 0.042787 0.584314 0.584314 0.584314 +v 0.026318 1.522169 0.047391 1.000000 0.000000 0.000000 +v 0.033945 1.532789 0.049154 1.000000 0.000000 0.000000 +v 0.033987 1.533023 0.049380 1.000000 0.000000 0.000000 +v 0.038500 1.532400 0.048800 1.000000 0.000000 0.000000 +v 0.038100 1.532100 0.048400 1.000000 0.000000 0.000000 +v 0.051553 1.496317 -0.100345 0.584314 0.584314 0.584314 +v 0.052901 1.510673 -0.105774 0.584314 0.584314 0.584314 +v 0.040195 1.505800 -0.115183 0.584314 0.584314 0.584314 +v 0.040900 1.529700 0.047500 1.000000 0.000000 0.000000 +v 0.040908 1.530602 0.047110 1.000000 0.000000 0.000000 +v 0.043300 1.529300 0.045900 1.000000 0.000000 0.000000 +v 0.043109 1.528498 0.046011 1.000000 0.000000 0.000000 +v 0.040898 1.528786 0.047906 1.000000 0.000000 0.000000 +v -0.087705 1.519915 -0.045409 0.584314 0.584314 0.584314 +v -0.088484 1.518000 -0.046810 0.584314 0.584314 0.584314 +v -0.086125 1.518595 -0.043989 0.584314 0.584314 0.584314 +v -0.085717 1.519801 -0.042398 0.584314 0.584314 0.584314 +v -0.084872 1.521507 -0.039310 0.584314 0.584314 0.584314 +v -0.084900 1.522959 -0.038902 0.584314 0.584314 0.584314 +v -0.086800 1.521600 -0.043400 0.584314 0.584314 0.584314 +v -0.076910 1.509099 -0.031384 0.584314 0.584314 0.584314 +v -0.077488 1.510807 -0.031221 0.584314 0.584314 0.584314 +v 0.042890 1.527512 0.046186 1.000000 0.000000 0.000000 +v 0.038200 1.530000 0.049500 1.000000 0.000000 0.000000 +v -0.078757 1.481692 -0.026054 0.584314 0.584314 0.584314 +v -0.079651 1.475700 -0.026960 0.584314 0.584314 0.584314 +v -0.087515 1.486694 -0.039481 0.584314 0.584314 0.584314 +v -0.087178 1.487520 -0.036411 0.584314 0.584314 0.584314 +v -0.087200 1.496700 -0.049600 0.584314 0.584314 0.584314 +v -0.086626 1.505995 -0.050271 0.584314 0.584314 0.584314 +v -0.085270 1.505500 -0.048424 0.584314 0.584314 0.584314 +v -0.086200 1.496700 -0.048500 0.584314 0.584314 0.584314 +v 0.038200 1.531000 0.049000 1.000000 0.000000 0.000000 +v 0.038100 1.531800 0.048500 1.000000 0.000000 0.000000 +v 0.042119 1.526072 0.042035 1.000000 0.000000 0.000000 +v 0.041362 1.527066 0.042705 1.000000 0.000000 0.000000 +v -0.080890 1.497910 -0.046193 0.584314 0.584314 0.584314 +v -0.077697 1.498497 -0.046178 0.584314 0.584314 0.584314 +v -0.074100 1.498700 -0.022500 0.584314 0.584314 0.584314 +v -0.073200 1.502400 -0.020900 0.584314 0.584314 0.584314 +v -0.073000 1.508100 -0.030600 0.584314 0.584314 0.584314 +v -0.073112 1.509696 -0.028998 0.584314 0.584314 0.584314 +v -0.082101 1.481590 -0.041807 0.584314 0.584314 0.584314 +v -0.077895 1.474733 -0.034283 0.584314 0.584314 0.584314 +v -0.082003 1.479694 -0.039813 0.584314 0.584314 0.584314 +v -0.073816 1.473945 -0.032524 0.584314 0.584314 0.584314 +v -0.073304 1.473187 -0.030203 0.584314 0.584314 0.584314 +v -0.075893 1.473216 -0.031599 0.584314 0.584314 0.584314 +v 0.041916 1.526935 0.044139 0.584314 0.584314 0.584314 +v 0.042956 1.526131 0.042937 0.584314 0.584314 0.584314 +v 0.042757 1.525369 0.041438 1.000000 0.000000 0.000000 +v 0.043602 1.525370 0.042054 0.584314 0.584314 0.584314 +v 0.037542 1.525216 0.039867 0.584314 0.584314 0.584314 +v 0.037198 1.525606 0.040151 0.584314 0.584314 0.584314 +v 0.036660 1.526085 0.040544 0.584314 0.584314 0.584314 +v -0.084062 1.483308 -0.033637 0.584314 0.584314 0.584314 +v -0.085978 1.484417 -0.036390 0.584314 0.584314 0.584314 +v 0.037714 1.524891 0.039697 0.584314 0.584314 0.584314 +v -0.071500 1.499400 -0.027100 0.584314 0.584314 0.584314 +v -0.070090 1.497912 -0.028215 0.584314 0.584314 0.584314 +v -0.070510 1.499177 -0.026601 0.584314 0.584314 0.584314 +v -0.086793 1.502906 -0.038129 0.584314 0.584314 0.584314 +v -0.088239 1.494694 -0.038349 0.584314 0.584314 0.584314 +v -0.077317 1.513394 -0.028185 0.584314 0.584314 0.584314 +v 0.037779 1.524597 0.039632 0.584314 0.584314 0.584314 +v -0.076101 1.503386 -0.027988 0.584314 0.584314 0.584314 +v -0.076739 1.506787 -0.026397 0.584314 0.584314 0.584314 +v -0.080088 1.516707 -0.028296 0.584314 0.584314 0.584314 +v -0.078608 1.515193 -0.028702 0.584314 0.584314 0.584314 +v -0.078171 1.514217 -0.028369 0.584314 0.584314 0.584314 +v -0.079119 1.514587 -0.027733 0.584314 0.584314 0.584314 +v -0.064970 1.489977 -0.026859 0.584314 0.584314 0.584314 +v -0.068207 1.488286 -0.025432 0.584314 0.584314 0.584314 +v -0.069600 1.491400 -0.025400 0.584314 0.584314 0.584314 +v 0.037758 1.524316 0.039661 0.584314 0.584314 0.584314 +v 0.037669 1.524040 0.039811 0.584314 0.584314 0.584314 +v 0.058518 1.493799 0.036810 1.000000 0.000000 0.000000 +v 0.059081 1.504398 0.036285 1.000000 0.000000 0.000000 +v -0.083936 1.522604 -0.037179 0.584314 0.584314 0.584314 +v -0.084376 1.520602 -0.038312 0.584314 0.584314 0.584314 +v -0.083800 1.512300 -0.046400 0.584314 0.584314 0.584314 +v 0.061300 1.496500 0.033300 1.000000 0.000000 0.000000 +v 0.043599 1.521847 0.043556 1.000000 0.000000 0.000000 +v -0.077005 1.514888 -0.032296 0.584314 0.584314 0.584314 +v -0.077607 1.513397 -0.033092 0.584314 0.584314 0.584314 +v 0.044055 1.522221 0.042659 1.000000 0.000000 0.000000 +v -0.077512 1.523697 -0.039600 0.584314 0.584314 0.584314 +v -0.077134 1.522214 -0.036306 0.584314 0.584314 0.584314 +v -0.077024 1.522596 -0.035096 0.584314 0.584314 0.584314 +v -0.077000 1.526200 -0.035400 0.584314 0.584314 0.584314 +v 0.043015 1.522082 0.043129 1.000000 0.000000 0.000000 +v -0.072194 1.470894 -0.027111 0.584314 0.584314 0.584314 +v -0.075000 1.471200 -0.029600 0.584314 0.584314 0.584314 +v -0.074913 1.472222 -0.030080 0.584314 0.584314 0.584314 +v -0.072794 1.472090 -0.028308 0.584314 0.584314 0.584314 +v -0.074614 1.485867 -0.026314 0.584314 0.584314 0.584314 +v -0.073392 1.484991 -0.028510 0.584314 0.584314 0.584314 +v 0.043462 1.522488 0.042348 1.000000 0.000000 0.000000 +v -0.088313 1.487893 -0.042607 0.584314 0.584314 0.584314 +v -0.087791 1.487097 -0.041406 0.584314 0.584314 0.584314 +v -0.088800 1.491100 -0.043700 0.584314 0.584314 0.584314 +v -0.089407 1.492300 -0.044808 0.584314 0.584314 0.584314 +v 0.044553 1.522761 0.041803 1.000000 0.000000 0.000000 +v 0.044927 1.522554 0.041844 1.000000 0.000000 0.000000 +v 0.041056 1.521240 0.044204 1.000000 0.000000 0.000000 +v 0.036673 1.522964 0.041275 0.584314 0.584314 0.584314 +v 0.037083 1.523262 0.040834 0.584314 0.584314 0.584314 +v -0.074023 1.506963 -0.033952 0.584314 0.584314 0.584314 +v -0.073613 1.505802 -0.033402 0.584314 0.584314 0.584314 +v -0.078264 1.516972 -0.037457 0.584314 0.584314 0.584314 +v -0.080300 1.519500 -0.038900 0.584314 0.584314 0.584314 +v -0.078936 1.522279 -0.035468 0.584314 0.584314 0.584314 +v -0.077375 1.520039 -0.035263 0.584314 0.584314 0.584314 +v -0.085184 1.513304 -0.048435 0.584314 0.584314 0.584314 +v 0.041746 1.521873 0.043317 1.000000 0.000000 0.000000 +v 0.039788 1.520688 0.045084 1.000000 0.000000 0.000000 +v 0.035983 1.522699 0.041727 0.584314 0.584314 0.584314 +v 0.037308 1.523509 0.040446 0.584314 0.584314 0.584314 +v 0.037510 1.523762 0.040093 0.584314 0.584314 0.584314 +v -0.077900 1.512000 -0.032500 0.584314 0.584314 0.584314 +v -0.078690 1.512194 -0.033514 0.584314 0.584314 0.584314 +v 0.042057 1.522240 0.042582 1.000000 0.000000 0.000000 +v -0.077290 1.512393 -0.032109 0.584314 0.584314 0.584314 +v 0.042503 1.522667 0.041859 1.000000 0.000000 0.000000 +v 0.043826 1.523087 0.041769 1.000000 0.000000 0.000000 +v -0.074693 1.509798 -0.027983 0.584314 0.584314 0.584314 +v -0.076690 1.508602 -0.028290 0.584314 0.584314 0.584314 +v -0.079600 1.517115 -0.029581 0.584314 0.584314 0.584314 +v -0.083299 1.520672 -0.032822 0.584314 0.584314 0.584314 +v -0.082605 1.520723 -0.032873 0.584314 0.584314 0.584314 +v -0.079196 1.517891 -0.029805 0.584314 0.584314 0.584314 +v 0.043025 1.523723 0.040992 1.000000 0.000000 0.000000 +v 0.043098 1.524246 0.040972 1.000000 0.000000 0.000000 +v 0.044011 1.523655 0.041586 1.000000 0.000000 0.000000 +v -0.075486 1.514507 -0.028998 0.584314 0.584314 0.584314 +v 0.044072 1.524168 0.041487 1.000000 0.000000 0.000000 +v 0.042854 1.523208 0.041263 1.000000 0.000000 0.000000 +v -0.014577 1.465024 -0.102244 0.584314 0.584314 0.584314 +v -0.016400 1.474400 -0.109200 0.584314 0.584314 0.584314 +v 0.043014 1.524789 0.041098 1.000000 0.000000 0.000000 +v 0.043930 1.524704 0.041661 1.000000 0.000000 0.000000 +v 0.045170 1.522128 0.041830 1.000000 0.000000 0.000000 +v 0.045172 1.522916 0.041508 1.000000 0.000000 0.000000 +v 0.045689 1.523909 0.041025 1.000000 0.000000 0.000000 +v 0.045611 1.522137 0.041396 1.000000 0.000000 0.000000 +v -0.077508 1.523187 -0.028108 0.584314 0.584314 0.584314 +v -0.078384 1.524716 -0.032003 0.584314 0.584314 0.584314 +v -0.079493 1.525831 -0.032370 0.584314 0.584314 0.584314 +v -0.078124 1.524043 -0.029015 0.584314 0.584314 0.584314 +v -0.085510 1.518598 -0.041793 0.584314 0.584314 0.584314 +v 0.046307 1.522104 0.040817 1.000000 0.000000 0.000000 +v 0.045900 1.521000 0.041200 1.000000 0.000000 0.000000 +v 0.046700 1.524488 0.040798 1.000000 0.000000 0.000000 +v 0.048114 1.524818 0.040328 1.000000 0.000000 0.000000 +v -0.089900 1.514600 -0.047000 0.584314 0.584314 0.584314 +v -0.075224 1.500049 -0.029836 0.584314 0.584314 0.584314 +v -0.072310 1.497196 -0.029602 0.584314 0.584314 0.584314 +v 0.047605 1.521996 0.040014 1.000000 0.000000 0.000000 +v 0.046900 1.520700 0.040400 1.000000 0.000000 0.000000 +v 0.044824 1.523362 0.041444 1.000000 0.000000 0.000000 +v -0.062100 1.496100 -0.028400 0.584314 0.584314 0.584314 +v -0.062400 1.497300 -0.028400 0.584314 0.584314 0.584314 +v -0.062996 1.496896 -0.029588 0.584314 0.584314 0.584314 +v -0.062700 1.495600 -0.029800 0.584314 0.584314 0.584314 +v 0.044987 1.523980 0.041208 1.000000 0.000000 0.000000 +v 0.046091 1.525512 0.041885 1.000000 0.000000 0.000000 +v -0.065798 1.490998 -0.030077 0.584314 0.584314 0.584314 +v -0.068687 1.489987 -0.028824 0.584314 0.584314 0.584314 +v -0.067795 1.488059 -0.027571 0.584314 0.584314 0.584314 +v -0.065087 1.488901 -0.029508 0.584314 0.584314 0.584314 +v 0.046900 1.526300 0.041900 1.000000 0.000000 0.000000 +v 0.045406 1.524990 0.041911 1.000000 0.000000 0.000000 +v 0.044897 1.525716 0.043091 1.000000 0.000000 0.000000 +v 0.045400 1.526400 0.043200 1.000000 0.000000 0.000000 +v -0.061700 1.493000 -0.028800 0.584314 0.584314 0.584314 +v -0.061900 1.494600 -0.028500 0.584314 0.584314 0.584314 +v -0.062600 1.493904 -0.030024 0.584314 0.584314 0.584314 +v -0.062510 1.492089 -0.030514 0.584314 0.584314 0.584314 +v 0.046000 1.527100 0.043200 1.000000 0.000000 0.000000 +v 0.044489 1.527303 0.044590 1.000000 0.000000 0.000000 +v -0.083251 1.522548 -0.035046 0.584314 0.584314 0.584314 +v -0.085047 1.522467 -0.036875 0.584314 0.584314 0.584314 +v 0.044900 1.528100 0.044600 1.000000 0.000000 0.000000 +v 0.044112 1.526492 0.044515 1.000000 0.000000 0.000000 +v 0.044792 1.524756 0.041778 1.000000 0.000000 0.000000 +v -0.091507 1.513492 -0.045983 0.584314 0.584314 0.584314 +v -0.092000 1.511200 -0.046800 0.584314 0.584314 0.584314 +v -0.088778 1.518688 -0.044296 0.584314 0.584314 0.584314 +v -0.089400 1.516800 -0.045700 0.584314 0.584314 0.584314 +v 0.044314 1.525441 0.042693 1.000000 0.000000 0.000000 +v 0.043559 1.526182 0.043934 1.000000 0.000000 0.000000 +v 0.042506 1.526800 0.045709 1.000000 0.000000 0.000000 +v -0.073810 1.490899 -0.021494 0.584314 0.584314 0.584314 +v -0.074915 1.491096 -0.023006 0.584314 0.584314 0.584314 +v -0.074587 1.489510 -0.022989 0.584314 0.584314 0.584314 +v -0.092426 1.516497 -0.046084 0.584314 0.584314 0.584314 +v -0.092491 1.518401 -0.047705 0.584314 0.584314 0.584314 +v -0.074023 1.473610 -0.019287 0.584314 0.584314 0.584314 +v -0.072900 1.472100 -0.018700 0.584314 0.584314 0.584314 +v -0.040539 1.402694 -0.008784 0.584314 0.584314 0.584314 +v -0.048074 1.407914 -0.020517 0.584314 0.584314 0.584314 +v -0.047013 1.398104 -0.021095 0.584314 0.584314 0.584314 +v -0.039392 1.393104 -0.010006 0.584314 0.584314 0.584314 +v -0.079593 1.519097 -0.027011 0.584314 0.584314 0.584314 +v -0.078310 1.521306 -0.026782 0.584314 0.584314 0.584314 +v 0.040690 1.527910 0.047582 1.000000 0.000000 0.000000 +v 0.039941 1.527889 0.045733 0.584314 0.584314 0.584314 +v 0.038000 1.529200 0.049200 1.000000 0.000000 0.000000 +v -0.061832 1.491418 -0.027890 0.584314 0.584314 0.584314 +v -0.061767 1.490564 -0.029280 0.584314 0.584314 0.584314 +v -0.064532 1.489040 -0.028225 0.584314 0.584314 0.584314 +v -0.066803 1.495395 -0.026325 0.584314 0.584314 0.584314 +v -0.062692 1.496102 -0.026989 0.584314 0.584314 0.584314 +v 0.037203 1.528804 0.047236 1.000000 0.000000 0.000000 +v 0.034542 1.533709 0.050445 1.000000 0.000000 0.000000 +v 0.039499 1.533215 0.049975 1.000000 0.000000 0.000000 +v 0.036807 1.528788 0.045465 1.000000 0.000000 0.000000 +v 0.034347 1.526891 0.041805 0.584314 0.584314 0.584314 +v 0.032772 1.526987 0.042325 0.584314 0.584314 0.584314 +v 0.033546 1.528876 0.046426 1.000000 0.000000 0.000000 +v -0.066004 1.492689 -0.029996 0.584314 0.584314 0.584314 +v 0.023838 1.525682 0.047159 1.000000 0.000000 0.000000 +v 0.024615 1.526505 0.047491 1.000000 0.000000 0.000000 +v -0.066600 1.497700 -0.029000 0.584314 0.584314 0.584314 +v -0.066899 1.498785 -0.027594 0.584314 0.584314 0.584314 +v -0.069870 1.484581 -0.025568 0.584314 0.584314 0.584314 +v -0.071628 1.484108 -0.027495 0.584314 0.584314 0.584314 +v -0.073099 1.484030 -0.024480 0.584314 0.584314 0.584314 +v -0.062493 1.490133 -0.030449 0.584314 0.584314 0.584314 +v -0.073605 1.507995 -0.032192 0.584314 0.584314 0.584314 +v 0.028529 1.525780 0.042811 0.584314 0.584314 0.584314 +v 0.028182 1.525373 0.042703 0.584314 0.584314 0.584314 +v 0.022456 1.525747 0.047856 1.000000 0.000000 0.000000 +v 0.023742 1.526545 0.048365 1.000000 0.000000 0.000000 +v -0.069294 1.493493 -0.029380 0.584314 0.584314 0.584314 +v -0.072510 1.491006 -0.030991 0.584314 0.584314 0.584314 +v -0.072108 1.488909 -0.030290 0.584314 0.584314 0.584314 +v -0.069088 1.491598 -0.029288 0.584314 0.584314 0.584314 +v -0.082186 1.480509 -0.032108 0.584314 0.584314 0.584314 +v -0.082500 1.482389 -0.031806 0.584314 0.584314 0.584314 +v -0.075207 1.486410 -0.032571 0.584314 0.584314 0.584314 +v -0.078600 1.486500 -0.030726 0.584314 0.584314 0.584314 +v -0.074610 1.503003 -0.030429 0.584314 0.584314 0.584314 +v -0.075710 1.506076 -0.029052 0.584314 0.584314 0.584314 +v -0.072018 1.499535 -0.027245 0.584314 0.584314 0.584314 +v -0.069600 1.495600 -0.029000 0.584314 0.584314 0.584314 +v -0.072429 1.493400 -0.030779 0.584314 0.584314 0.584314 +v -0.066996 1.496709 -0.026563 0.584314 0.584314 0.584314 +v -0.070701 1.496697 -0.025915 0.584314 0.584314 0.584314 +v -0.070496 1.497807 -0.026089 0.584314 0.584314 0.584314 +v -0.067002 1.497703 -0.026813 0.584314 0.584314 0.584314 +v -0.080210 1.513496 -0.034376 0.584314 0.584314 0.584314 +v -0.077161 1.519075 -0.025362 0.584314 0.584314 0.584314 +v -0.078600 1.516400 -0.026100 0.584314 0.584314 0.584314 +v -0.078956 1.526993 -0.051414 0.584314 0.584314 0.584314 +v -0.077945 1.518913 -0.056083 0.584314 0.584314 0.584314 +v -0.077665 1.520494 -0.043294 0.584314 0.584314 0.584314 +v -0.066104 1.494500 -0.029818 0.584314 0.584314 0.584314 +v -0.063008 1.498217 -0.028195 0.584314 0.584314 0.584314 +v -0.063488 1.497694 -0.027293 0.584314 0.584314 0.584314 +v -0.087700 1.483800 -0.040300 0.584314 0.584314 0.584314 +v -0.073996 1.483585 -0.024303 0.584314 0.584314 0.584314 +v -0.073597 1.507916 -0.028454 0.584314 0.584314 0.584314 +v -0.087091 1.491399 -0.048005 0.584314 0.584314 0.584314 +v -0.086200 1.486200 -0.045800 0.584314 0.584314 0.584314 +v -0.073000 1.509200 -0.028900 0.584314 0.584314 0.584314 +v -0.073613 1.510299 -0.028418 0.584314 0.584314 0.584314 +v -0.072679 1.484436 -0.028099 0.584314 0.584314 0.584314 +v -0.074011 1.484984 -0.025493 0.584314 0.584314 0.584314 +v -0.073800 1.510700 -0.028300 0.584314 0.584314 0.584314 +v -0.074759 1.490612 -0.024153 0.584314 0.584314 0.584314 +v -0.085521 1.513187 -0.039739 0.584314 0.584314 0.584314 +v 0.027850 1.528251 0.047514 1.000000 0.000000 0.000000 +v 0.029964 1.526652 0.042905 0.584314 0.584314 0.584314 +v -0.078886 1.472181 -0.034028 0.584314 0.584314 0.584314 +v -0.076900 1.470700 -0.031400 0.584314 0.584314 0.584314 +v 0.029085 1.526235 0.042905 0.584314 0.584314 0.584314 +v -0.063107 1.497087 -0.027034 0.584314 0.584314 0.584314 +v 0.026190 1.527374 0.047403 1.000000 0.000000 0.000000 +v -0.067048 1.488263 -0.026903 0.584314 0.584314 0.584314 +v -0.066401 1.496204 -0.029511 0.584314 0.584314 0.584314 +v 0.027281 1.528690 0.049325 1.000000 0.000000 0.000000 +v 0.025103 1.527452 0.048740 1.000000 0.000000 0.000000 +v 0.033744 1.529320 0.048332 1.000000 0.000000 0.000000 +v -0.073083 1.494401 -0.025488 0.584314 0.584314 0.584314 +v -0.072718 1.492295 -0.025142 0.584314 0.584314 0.584314 +v -0.075021 1.492793 -0.024235 0.584314 0.584314 0.584314 +v 0.021800 1.564300 -0.125112 0.584314 0.584314 0.584314 +v 0.021390 1.549196 -0.128268 0.584314 0.584314 0.584314 +v -0.080194 1.487032 -0.032232 0.584314 0.584314 0.584314 +v -0.076200 1.488129 -0.034638 0.584314 0.584314 0.584314 +v -0.077499 1.489024 -0.036690 0.584314 0.584314 0.584314 +v -0.082102 1.487860 -0.033716 0.584314 0.584314 0.584314 +v -0.084805 1.481507 -0.043287 0.584314 0.584314 0.584314 +v -0.083016 1.477319 -0.039971 0.584314 0.584314 0.584314 +v -0.085043 1.475936 -0.039699 0.584314 0.584314 0.584314 +v -0.087297 1.480394 -0.043209 0.584314 0.584314 0.584314 +v 0.041100 1.551200 -0.119600 0.584314 0.584314 0.584314 +v 0.041000 1.564300 -0.117100 0.584314 0.584314 0.584314 +v -0.079918 1.541308 -0.059991 0.584314 0.584314 0.584314 +v -0.078910 1.532799 -0.044899 0.584314 0.584314 0.584314 +v -0.080121 1.548101 -0.049100 0.584314 0.584314 0.584314 +v -0.083314 1.521389 -0.044086 0.584314 0.584314 0.584314 +v -0.083806 1.518997 -0.045690 0.584314 0.584314 0.584314 +v -0.088991 1.520200 -0.048605 0.584314 0.584314 0.584314 +v -0.076340 1.525030 -0.030066 0.584314 0.584314 0.584314 +v -0.076931 1.522731 -0.033547 0.584314 0.584314 0.584314 +v -0.077407 1.523933 -0.031651 0.584314 0.584314 0.584314 +v -0.090305 1.496596 -0.050608 0.584314 0.584314 0.584314 +v 0.039290 1.528051 0.044190 1.000000 0.000000 0.000000 +v 0.035655 1.526552 0.041178 0.584314 0.584314 0.584314 +v 0.051007 1.565829 -0.109698 0.584314 0.584314 0.584314 +v 0.050153 1.574170 -0.107041 0.584314 0.584314 0.584314 +v 0.041409 1.575703 -0.112304 0.584314 0.584314 0.584314 +v 0.037050 1.439676 -0.079925 0.584314 0.584314 0.584314 +v 0.026375 1.429290 -0.086093 0.584314 0.584314 0.584314 +v -0.074900 1.508300 -0.023500 0.584314 0.584314 0.584314 +v -0.076811 1.508900 -0.025803 0.584314 0.584314 0.584314 +v 0.020443 1.525555 0.049023 1.000000 0.000000 0.000000 +v -0.081302 1.482541 -0.042839 0.584314 0.584314 0.584314 +v 0.022090 1.526874 0.049265 1.000000 0.000000 0.000000 +v -0.082741 1.485784 -0.031869 0.584314 0.584314 0.584314 +v -0.085088 1.486284 -0.033841 0.584314 0.584314 0.584314 +v -0.088312 1.522894 -0.037393 0.584314 0.584314 0.584314 +v -0.085094 1.521385 -0.034799 0.584314 0.584314 0.584314 +v 0.019381 1.524425 0.048883 1.000000 0.000000 0.000000 +v 0.018804 1.524338 0.049175 1.000000 0.000000 0.000000 +v 0.019820 1.525679 0.049223 1.000000 0.000000 0.000000 +v 0.021236 1.527039 0.049389 1.000000 0.000000 0.000000 +v 0.024082 1.528063 0.049571 1.000000 0.000000 0.000000 +v 0.023449 1.528355 0.049996 1.000000 0.000000 0.000000 +v 0.026775 1.529813 0.050788 1.000000 0.000000 0.000000 +v 0.026860 1.529186 0.050504 1.000000 0.000000 0.000000 +v 0.034030 1.529944 0.050131 1.000000 0.000000 0.000000 +v 0.034105 1.530682 0.050431 1.000000 0.000000 0.000000 +v 0.026377 1.530509 0.050284 1.000000 0.000000 0.000000 +v 0.022991 1.528811 0.049615 1.000000 0.000000 0.000000 +v 0.025891 1.531275 0.049667 1.000000 0.000000 0.000000 +v 0.022800 1.529700 0.049200 1.000000 0.000000 0.000000 +v 0.033943 1.532420 0.049431 1.000000 0.000000 0.000000 +v 0.034105 1.531621 0.049993 1.000000 0.000000 0.000000 +v 0.022009 1.522235 0.049146 1.000000 0.000000 0.000000 +v 0.019888 1.522635 0.049121 1.000000 0.000000 0.000000 +v 0.022491 1.522472 0.048858 1.000000 0.000000 0.000000 +v 0.020169 1.522855 0.048732 1.000000 0.000000 0.000000 +v 0.023596 1.522765 0.047753 1.000000 0.000000 0.000000 +v 0.019510 1.523334 0.048695 1.000000 0.000000 0.000000 +v 0.018853 1.523205 0.049074 1.000000 0.000000 0.000000 +v -0.008841 1.394244 0.015789 0.584314 0.584314 0.584314 +v -0.008800 1.386900 0.011600 0.584314 0.584314 0.584314 +v 0.024390 1.522876 0.047222 1.000000 0.000000 0.000000 +v 0.019200 1.525800 0.049100 1.000000 0.000000 0.000000 +v 0.018016 1.524253 0.049349 1.000000 0.000000 0.000000 +v 0.018201 1.526310 0.048651 1.000000 0.000000 0.000000 +v 0.017395 1.524492 0.049158 1.000000 0.000000 0.000000 +v 0.020237 1.528365 0.048593 1.000000 0.000000 0.000000 +v 0.020635 1.527357 0.048964 1.000000 0.000000 0.000000 +v 0.017989 1.523129 0.049200 1.000000 0.000000 0.000000 +v 0.018475 1.522629 0.049200 1.000000 0.000000 0.000000 +v 0.017396 1.523127 0.049280 1.000000 0.000000 0.000000 +v 0.017900 1.522496 0.049287 1.000000 0.000000 0.000000 +v 0.024700 1.519600 0.050400 1.000000 0.000000 0.000000 +v 0.024500 1.519000 0.050400 1.000000 0.000000 0.000000 +v 0.021512 1.520977 0.049893 1.000000 0.000000 0.000000 +v 0.021022 1.520599 0.049909 1.000000 0.000000 0.000000 +v 0.032795 1.516401 0.049585 1.000000 0.000000 0.000000 +v 0.035800 1.516500 0.048500 1.000000 0.000000 0.000000 +v 0.032503 1.515300 0.049614 1.000000 0.000000 0.000000 +v -0.008589 1.498484 0.073786 1.000000 0.000000 0.000000 +v -0.010030 1.498324 0.072305 1.000000 0.000000 0.000000 +v -0.008757 1.500242 0.071290 1.000000 0.000000 0.000000 +v -0.008117 1.500249 0.072013 1.000000 0.000000 0.000000 +v 0.035693 1.515294 0.048482 1.000000 0.000000 0.000000 +v 0.027697 1.515798 0.050481 1.000000 0.000000 0.000000 +v 0.028102 1.516702 0.050317 1.000000 0.000000 0.000000 +v 0.029412 1.387797 -0.001384 0.584314 0.584314 0.584314 +v 0.046000 1.518200 0.041600 1.000000 0.000000 0.000000 +v 0.047200 1.517100 0.041300 1.000000 0.000000 0.000000 +v 0.045392 1.516396 0.042790 1.000000 0.000000 0.000000 +v 0.044509 1.517704 0.042911 1.000000 0.000000 0.000000 +v 0.042900 1.517300 0.044400 1.000000 0.000000 0.000000 +v -0.008946 1.489300 0.072430 1.000000 0.000000 0.000000 +v -0.008334 1.490922 0.071314 1.000000 0.000000 0.000000 +v -0.009315 1.490643 0.070347 1.000000 0.000000 0.000000 +v -0.010188 1.489265 0.071512 1.000000 0.000000 0.000000 +v 0.043309 1.515909 0.044414 1.000000 0.000000 0.000000 +v 0.041000 1.515600 0.046000 1.000000 0.000000 0.000000 +v 0.040900 1.516900 0.046000 1.000000 0.000000 0.000000 +v 0.038919 1.516689 0.047177 1.000000 0.000000 0.000000 +v 0.038722 1.515306 0.047242 1.000000 0.000000 0.000000 +v 0.049300 1.521500 0.038900 1.000000 0.000000 0.000000 +v 0.050591 1.524603 0.038686 1.000000 0.000000 0.000000 +v 0.051200 1.520900 0.037800 1.000000 0.000000 0.000000 +v 0.052905 1.524289 0.037006 1.000000 0.000000 0.000000 +v 0.016797 1.527194 0.048968 1.000000 0.000000 0.000000 +v -0.005681 1.499910 0.071178 1.000000 0.000000 0.000000 +v -0.004213 1.497290 0.073791 1.000000 0.000000 0.000000 +v -0.005785 1.498187 0.075196 1.000000 0.000000 0.000000 +v -0.006796 1.500441 0.071916 1.000000 0.000000 0.000000 +v 0.016432 1.524904 0.049054 1.000000 0.000000 0.000000 +v 0.015300 1.527900 0.050300 1.000000 0.000000 0.000000 +v 0.015200 1.525300 0.050100 1.000000 0.000000 0.000000 +v 0.016200 1.530800 0.050800 1.000000 0.000000 0.000000 +v 0.018103 1.529886 0.049322 1.000000 0.000000 0.000000 +v 0.016702 1.523141 0.049381 1.000000 0.000000 0.000000 +v 0.017301 1.522304 0.049412 1.000000 0.000000 0.000000 +v 0.015612 1.523203 0.049817 1.000000 0.000000 0.000000 +v 0.016513 1.521817 0.049816 1.000000 0.000000 0.000000 +v 0.024099 1.518299 0.050487 1.000000 0.000000 0.000000 +v 0.023694 1.517490 0.050592 1.000000 0.000000 0.000000 +v 0.020550 1.520111 0.050065 1.000000 0.000000 0.000000 +v 0.019827 1.519426 0.050302 1.000000 0.000000 0.000000 +v 0.049954 1.486090 -0.095874 0.584314 0.584314 0.584314 +v 0.053460 1.525713 -0.108355 0.584314 0.584314 0.584314 +v 0.047153 1.537083 0.048674 1.000000 0.000000 0.000000 +v 0.044799 1.534344 0.048966 1.000000 0.000000 0.000000 +v 0.041146 1.535635 0.050758 1.000000 0.000000 0.000000 +v 0.043109 1.539081 0.051229 1.000000 0.000000 0.000000 +v 0.050240 1.540841 0.047395 1.000000 0.000000 0.000000 +v 0.052685 1.537388 0.044750 1.000000 0.000000 0.000000 +v 0.049920 1.534711 0.046178 1.000000 0.000000 0.000000 +v 0.047487 1.532583 0.046972 1.000000 0.000000 0.000000 +v 0.051300 1.527400 0.039700 1.000000 0.000000 0.000000 +v 0.049306 1.527394 0.041107 1.000000 0.000000 0.000000 +v 0.049400 1.529100 0.042600 1.000000 0.000000 0.000000 +v 0.051400 1.529700 0.041500 1.000000 0.000000 0.000000 +v 0.053700 1.527400 0.038000 1.000000 0.000000 0.000000 +v 0.054100 1.530500 0.039900 1.000000 0.000000 0.000000 +v 0.050911 1.531995 0.043813 1.000000 0.000000 0.000000 +v 0.048706 1.530695 0.044709 1.000000 0.000000 0.000000 +v 0.053767 1.533613 0.042372 1.000000 0.000000 0.000000 +v 0.023810 1.535193 0.052318 1.000000 0.000000 0.000000 +v 0.024621 1.533474 0.050880 1.000000 0.000000 0.000000 +v 0.021502 1.531689 0.049858 1.000000 0.000000 0.000000 +v 0.020094 1.532606 0.050483 1.000000 0.000000 0.000000 +v 0.022472 1.536856 0.053894 1.000000 0.000000 0.000000 +v 0.017898 1.533692 0.051907 1.000000 0.000000 0.000000 +v 0.036404 1.539832 0.053434 1.000000 0.000000 0.000000 +v 0.035572 1.536604 0.052091 1.000000 0.000000 0.000000 +v 0.025594 1.531753 0.049356 1.000000 0.000000 0.000000 +v 0.023502 1.530697 0.049184 1.000000 0.000000 0.000000 +v 0.025447 1.531989 0.049401 1.000000 0.000000 0.000000 +v 0.022900 1.530600 0.049100 1.000000 0.000000 0.000000 +v 0.058944 1.585628 -0.090242 0.584314 0.584314 0.584314 +v 0.061100 1.592200 -0.078300 0.584314 0.584314 0.584314 +v 0.044568 1.602329 -0.084574 0.584314 0.584314 0.584314 +v 0.043693 1.594392 -0.096197 0.584314 0.584314 0.584314 +v 0.041000 1.531000 0.047100 1.000000 0.000000 0.000000 +v 0.041600 1.531400 0.047600 1.000000 0.000000 0.000000 +v 0.044100 1.530100 0.046400 1.000000 0.000000 0.000000 +v 0.043500 1.529700 0.046000 1.000000 0.000000 0.000000 +v 0.045300 1.528600 0.044700 1.000000 0.000000 0.000000 +v 0.045998 1.529012 0.044988 1.000000 0.000000 0.000000 +v 0.047100 1.528000 0.043400 1.000000 0.000000 0.000000 +v 0.046494 1.527712 0.043387 1.000000 0.000000 0.000000 +v 0.047100 1.527000 0.042300 1.000000 0.000000 0.000000 +v 0.047706 1.526995 0.042008 1.000000 0.000000 0.000000 +v 0.023200 1.531500 0.049500 1.000000 0.000000 0.000000 +v 0.025342 1.532353 0.049786 1.000000 0.000000 0.000000 +v 0.052443 1.554395 -0.110733 0.584314 0.584314 0.584314 +v 0.045436 1.574694 0.038505 1.000000 0.000000 0.000000 +v 0.052333 1.571092 0.032286 1.000000 0.000000 0.000000 +v 0.050200 1.565000 0.037900 1.000000 0.000000 0.000000 +v 0.042799 1.532208 0.048590 1.000000 0.000000 0.000000 +v 0.045400 1.530900 0.047000 1.000000 0.000000 0.000000 +v 0.047100 1.529700 0.045100 1.000000 0.000000 0.000000 +v 0.048000 1.528600 0.043300 1.000000 0.000000 0.000000 +v 0.048394 1.527705 0.042091 1.000000 0.000000 0.000000 +v 0.071726 1.489597 -0.018397 0.584314 0.584314 0.584314 +v 0.072300 1.489600 -0.019800 0.584314 0.584314 0.584314 +v 0.082403 1.497500 -0.046021 0.584314 0.584314 0.584314 +v 0.080609 1.503982 -0.045312 0.584314 0.584314 0.584314 +v 0.079052 1.507506 -0.044008 0.584314 0.584314 0.584314 +v 0.078100 1.518500 -0.029900 0.584314 0.584314 0.584314 +v 0.081582 1.521655 -0.032839 0.584314 0.584314 0.584314 +v 0.085888 1.480697 -0.037210 0.584314 0.584314 0.584314 +v 0.082727 1.479003 -0.033181 0.584314 0.584314 0.584314 +v -0.088400 1.525800 -0.038200 0.584314 0.584314 0.584314 +v 0.085882 1.481597 -0.037615 0.584314 0.584314 0.584314 +v 0.089000 1.517700 -0.043700 0.584314 0.584314 0.584314 +v 0.089700 1.515900 -0.045000 0.584314 0.584314 0.584314 +v 0.090689 1.515510 -0.044722 0.584314 0.584314 0.584314 +v 0.042993 1.466469 -0.086739 0.584314 0.584314 0.584314 +v 0.047760 1.478256 -0.092516 0.584314 0.584314 0.584314 +v 0.090400 1.513800 -0.046200 0.584314 0.584314 0.584314 +v 0.074300 1.494200 -0.021900 0.584314 0.584314 0.584314 +v 0.083479 1.497097 -0.046117 0.584314 0.584314 0.584314 +v 0.085217 1.496703 -0.047579 0.584314 0.584314 0.584314 +v 0.086211 1.491703 -0.047289 0.584314 0.584314 0.584314 +v 0.085503 1.492007 -0.046781 0.584314 0.584314 0.584314 +v 0.085486 1.486796 -0.045215 0.584314 0.584314 0.584314 +v 0.084991 1.487411 -0.044990 0.584314 0.584314 0.584314 +v 0.087400 1.484200 -0.040300 0.584314 0.584314 0.584314 +v 0.088704 1.487908 -0.042783 0.584314 0.584314 0.584314 +v 0.082840 1.522084 -0.034142 0.584314 0.584314 0.584314 +v 0.082112 1.521223 -0.032776 0.584314 0.584314 0.584314 +v 0.083570 1.521955 -0.034436 0.584314 0.584314 0.584314 +v 0.075177 1.493002 -0.023111 0.584314 0.584314 0.584314 +v 0.076500 1.516600 -0.029500 0.584314 0.584314 0.584314 +v 0.075900 1.514300 -0.028300 0.584314 0.584314 0.584314 +v 0.075700 1.514700 -0.028700 0.584314 0.584314 0.584314 +v 0.071800 1.498104 -0.026083 0.584314 0.584314 0.584314 +v 0.071802 1.498996 -0.026313 0.584314 0.584314 0.584314 +v 0.072996 1.496503 -0.026061 0.584314 0.584314 0.584314 +v 0.075410 1.495001 -0.024819 0.584314 0.584314 0.584314 +v 0.069598 1.487587 -0.024692 0.584314 0.584314 0.584314 +v 0.069300 1.486401 -0.026424 0.584314 0.584314 0.584314 +v 0.069687 1.485404 -0.026018 0.584314 0.584314 0.584314 +v 0.085515 1.527480 -0.038589 0.584314 0.584314 0.584314 +v 0.075999 1.513302 -0.027984 0.584314 0.584314 0.584314 +v 0.077199 1.514400 -0.028210 0.584314 0.584314 0.584314 +v 0.077500 1.515700 -0.028600 0.584314 0.584314 0.584314 +v 0.084313 1.521518 -0.034793 0.584314 0.584314 0.584314 +v 0.077793 1.516688 -0.028928 0.584314 0.584314 0.584314 +v 0.077100 1.516600 -0.028900 0.584314 0.584314 0.584314 +v 0.078695 1.518295 -0.029809 0.584314 0.584314 0.584314 +v 0.076700 1.516600 -0.029100 0.584314 0.584314 0.584314 +v 0.077487 1.491398 -0.037513 0.584314 0.584314 0.584314 +v 0.076038 1.491207 -0.035474 0.584314 0.584314 0.584314 +v 0.073200 1.509900 -0.019400 1.000000 0.000000 0.000000 +v 0.073700 1.508000 -0.021200 0.584314 0.584314 0.584314 +v 0.081613 1.478503 -0.031092 0.584314 0.584314 0.584314 +v 0.077071 1.514610 -0.039608 0.584314 0.584314 0.584314 +v 0.076983 1.517291 -0.040993 0.584314 0.584314 0.584314 +v 0.089989 1.492402 -0.044791 0.584314 0.584314 0.584314 +v 0.083719 1.487422 -0.033473 0.584314 0.584314 0.584314 +v 0.081400 1.486758 -0.031819 0.584314 0.584314 0.584314 +v 0.085799 1.488493 -0.035214 0.584314 0.584314 0.584314 +v 0.087406 1.491007 -0.036987 0.584314 0.584314 0.584314 +v 0.073275 1.507102 -0.031910 0.584314 0.584314 0.584314 +v 0.084591 1.511302 -0.037217 0.584314 0.584314 0.584314 +v 0.085725 1.509009 -0.038205 0.584314 0.584314 0.584314 +v 0.082810 1.511499 -0.035689 0.584314 0.584314 0.584314 +v 0.077116 1.520902 -0.039194 0.584314 0.584314 0.584314 +v 0.076866 1.521086 -0.036895 0.584314 0.584314 0.584314 +v 0.077427 1.516146 -0.037671 0.584314 0.584314 0.584314 +v 0.076733 1.519477 -0.036354 0.584314 0.584314 0.584314 +v 0.071294 1.491000 -0.025011 0.584314 0.584314 0.584314 +v 0.071539 1.485011 -0.028169 0.584314 0.584314 0.584314 +v 0.071376 1.487003 -0.028816 0.584314 0.584314 0.584314 +v 0.072800 1.485000 -0.029000 0.584314 0.584314 0.584314 +v 0.073029 1.485996 -0.030176 0.584314 0.584314 0.584314 +v 0.073697 1.487491 -0.031606 0.584314 0.584314 0.584314 +v 0.074400 1.489400 -0.032700 0.584314 0.584314 0.584314 +v 0.074445 1.491799 -0.033137 0.584314 0.584314 0.584314 +v 0.070700 1.495100 -0.025700 0.584314 0.584314 0.584314 +v 0.076554 1.521809 -0.026878 0.584314 0.584314 0.584314 +v 0.070296 1.493304 -0.025475 0.584314 0.584314 0.584314 +v 0.072097 1.496697 -0.025914 0.584314 0.584314 0.584314 +v 0.072201 1.494908 -0.025566 0.584314 0.584314 0.584314 +v 0.071902 1.492995 -0.025121 0.584314 0.584314 0.584314 +v 0.077900 1.484000 -0.026400 0.584314 0.584314 0.584314 +v 0.078789 1.485596 -0.028414 0.584314 0.584314 0.584314 +v 0.076283 1.484669 -0.025833 0.584314 0.584314 0.584314 +v 0.079808 1.486114 -0.030284 0.584314 0.584314 0.584314 +v 0.074909 1.484910 -0.025487 0.584314 0.584314 0.584314 +v 0.077240 1.515882 -0.038378 0.584314 0.584314 0.584314 +v 0.076800 1.519100 -0.038300 0.584314 0.584314 0.584314 +v 0.071770 1.493003 -0.016807 1.000000 0.000000 0.000000 +v 0.063703 1.501321 0.029000 1.000000 0.000000 0.000000 +v 0.065291 1.510391 0.023890 1.000000 0.000000 0.000000 +v 0.026059 1.454896 0.049004 1.000000 0.000000 0.000000 +v 0.025298 1.451791 0.049406 1.000000 0.000000 0.000000 +v 0.054800 1.491500 0.040500 1.000000 0.000000 0.000000 +v 0.049968 1.489449 0.045159 1.000000 0.000000 0.000000 +v 0.025148 1.460346 0.061133 1.000000 0.000000 0.000000 +v 0.024435 1.459621 0.061337 1.000000 0.000000 0.000000 +v 0.023522 1.460187 0.061418 1.000000 0.000000 0.000000 +v 0.024249 1.460520 0.061081 1.000000 0.000000 0.000000 +v 0.022000 1.460772 0.059500 1.000000 0.000000 0.000000 +v 0.022800 1.460707 0.058800 1.000000 0.000000 0.000000 +v 0.023014 1.460696 0.059746 1.000000 0.000000 0.000000 +v 0.022313 1.460759 0.060425 1.000000 0.000000 0.000000 +v 0.028109 1.475652 0.062034 1.000000 0.000000 0.000000 +v 0.031378 1.479582 0.059952 1.000000 0.000000 0.000000 +v 0.034158 1.475322 0.058856 1.000000 0.000000 0.000000 +v 0.030949 1.471935 0.060987 1.000000 0.000000 0.000000 +v 0.024580 1.459509 0.051432 1.000000 0.000000 0.000000 +v 0.024307 1.461110 0.051921 1.000000 0.000000 0.000000 +v 0.023228 1.460994 0.055868 1.000000 0.000000 0.000000 +v 0.023532 1.460361 0.055415 1.000000 0.000000 0.000000 +v 0.024417 1.456932 0.051523 1.000000 0.000000 0.000000 +v 0.023415 1.459081 0.054968 1.000000 0.000000 0.000000 +v 0.026131 1.458845 0.048941 1.000000 0.000000 0.000000 +v 0.025595 1.461351 0.049316 1.000000 0.000000 0.000000 +v 0.033679 1.454181 0.057135 1.000000 0.000000 0.000000 +v 0.030493 1.456211 0.059276 1.000000 0.000000 0.000000 +v 0.031308 1.459310 0.059370 1.000000 0.000000 0.000000 +v 0.034660 1.458692 0.057534 1.000000 0.000000 0.000000 +v 0.025183 1.486692 0.060752 1.000000 0.000000 0.000000 +v 0.028504 1.483099 0.060419 1.000000 0.000000 0.000000 +v 0.025503 1.479201 0.062212 1.000000 0.000000 0.000000 +v 0.022102 1.483306 0.062428 1.000000 0.000000 0.000000 +v 0.018718 1.488020 0.063334 1.000000 0.000000 0.000000 +v 0.021581 1.490552 0.061358 1.000000 0.000000 0.000000 +v 0.017491 1.495490 0.066471 1.000000 0.000000 0.000000 +v 0.017785 1.491959 0.067693 1.000000 0.000000 0.000000 +v 0.017219 1.491111 0.070903 1.000000 0.000000 0.000000 +v 0.017625 1.493108 0.069690 1.000000 0.000000 0.000000 +v 0.015426 1.487303 0.069410 1.000000 0.000000 0.000000 +v 0.017764 1.489813 0.066272 1.000000 0.000000 0.000000 +v 0.011460 1.486297 0.069954 1.000000 0.000000 0.000000 +v -0.012342 1.488981 0.072095 1.000000 0.000000 0.000000 +v -0.011326 1.490885 0.070919 1.000000 0.000000 0.000000 +v -0.012050 1.491341 0.072767 1.000000 0.000000 0.000000 +v -0.013716 1.489773 0.073790 1.000000 0.000000 0.000000 +v 0.011262 1.487086 0.070809 1.000000 0.000000 0.000000 +v 0.015505 1.486658 0.068092 1.000000 0.000000 0.000000 +v -0.004958 1.489999 0.080211 1.000000 0.000000 0.000000 +v -0.006080 1.492103 0.080389 1.000000 0.000000 0.000000 +v -0.004980 1.491307 0.078099 1.000000 0.000000 0.000000 +v -0.004935 1.489324 0.077714 1.000000 0.000000 0.000000 +v 0.015732 1.485856 0.066517 1.000000 0.000000 0.000000 +v 0.011732 1.485545 0.068955 1.000000 0.000000 0.000000 +v 0.010705 1.488275 0.071582 1.000000 0.000000 0.000000 +v 0.013514 1.488048 0.071692 1.000000 0.000000 0.000000 +v -0.007888 1.492561 0.079779 1.000000 0.000000 0.000000 +v -0.009808 1.492021 0.081514 1.000000 0.000000 0.000000 +v -0.011583 1.491985 0.079889 1.000000 0.000000 0.000000 +v -0.009400 1.492428 0.078300 1.000000 0.000000 0.000000 +v -0.004716 1.493621 0.073204 1.000000 0.000000 0.000000 +v -0.006063 1.491670 0.074584 1.000000 0.000000 0.000000 +v -0.003964 1.493789 0.076796 1.000000 0.000000 0.000000 +v -0.012266 1.493714 0.070902 1.000000 0.000000 0.000000 +v -0.010928 1.492691 0.069478 1.000000 0.000000 0.000000 +v -0.009809 1.496498 0.068938 1.000000 0.000000 0.000000 +v -0.011062 1.497282 0.069812 1.000000 0.000000 0.000000 +v 0.015121 1.489854 0.073173 1.000000 0.000000 0.000000 +v 0.004381 1.488908 0.079905 1.000000 0.000000 0.000000 +v 0.005639 1.490149 0.081872 1.000000 0.000000 0.000000 +v 0.010589 1.518080 0.064760 1.000000 0.000000 0.000000 +v 0.013675 1.514833 0.061918 1.000000 0.000000 0.000000 +v 0.010631 1.515723 0.067072 1.000000 0.000000 0.000000 +v 0.013514 1.512714 0.064157 1.000000 0.000000 0.000000 +v 0.014372 1.491968 0.076867 1.000000 0.000000 0.000000 +v 0.015789 1.493572 0.075165 1.000000 0.000000 0.000000 +v 0.011991 1.493152 0.080609 1.000000 0.000000 0.000000 +v 0.013201 1.495495 0.080068 1.000000 0.000000 0.000000 +v 0.003688 1.531722 0.062648 1.000000 0.000000 0.000000 +v 0.002148 1.485462 0.075849 1.000000 0.000000 0.000000 +v 0.002408 1.484602 0.075445 1.000000 0.000000 0.000000 +v 0.001814 1.486575 0.077679 1.000000 0.000000 0.000000 +v 0.022510 1.586616 -0.113415 0.584314 0.584314 0.584314 +v 0.023000 1.599213 -0.102898 0.584314 0.584314 0.584314 +v 0.022139 1.613460 -0.081347 0.584314 0.584314 0.584314 +v 0.019834 1.618165 -0.069601 0.584314 0.584314 0.584314 +v 0.005695 1.468502 0.076511 1.000000 0.000000 0.000000 +v 0.005296 1.470999 0.076289 1.000000 0.000000 0.000000 +v 0.012858 1.464687 0.059653 1.000000 0.000000 0.000000 +v 0.007373 1.464960 0.061179 1.000000 0.000000 0.000000 +v 0.006975 1.463108 0.065761 1.000000 0.000000 0.000000 +v 0.012269 1.462964 0.064467 1.000000 0.000000 0.000000 +v 0.016278 1.462759 0.062362 1.000000 0.000000 0.000000 +v 0.017223 1.464311 0.057602 1.000000 0.000000 0.000000 +v 0.013211 1.465957 0.057083 1.000000 0.000000 0.000000 +v 0.007475 1.466294 0.058483 1.000000 0.000000 0.000000 +v 0.011800 1.461943 0.068868 1.000000 0.000000 0.000000 +v 0.006582 1.462229 0.070956 1.000000 0.000000 0.000000 +v 0.006449 1.463859 0.073683 1.000000 0.000000 0.000000 +v 0.011854 1.463360 0.071100 1.000000 0.000000 0.000000 +v 0.018283 1.481390 0.065162 1.000000 0.000000 0.000000 +v 0.014145 1.482119 0.067466 1.000000 0.000000 0.000000 +v 0.009947 1.482343 0.070802 1.000000 0.000000 0.000000 +v 0.006663 1.482219 0.073355 1.000000 0.000000 0.000000 +v 0.006070 1.484310 0.073705 1.000000 0.000000 0.000000 +v 0.008634 1.484916 0.071533 1.000000 0.000000 0.000000 +v 0.005846 1.485250 0.074051 1.000000 0.000000 0.000000 +v 0.008425 1.485773 0.072107 1.000000 0.000000 0.000000 +v 0.008365 1.486729 0.072615 1.000000 0.000000 0.000000 +v 0.008909 1.488251 0.072763 1.000000 0.000000 0.000000 +v 0.007010 1.488079 0.074018 1.000000 0.000000 0.000000 +v 0.007500 1.489300 0.073600 1.000000 0.000000 0.000000 +v 0.005805 1.486238 0.074278 1.000000 0.000000 0.000000 +v 0.004053 1.510006 0.078946 1.000000 0.000000 0.000000 +v 0.003955 1.513584 0.076221 1.000000 0.000000 0.000000 +v 0.009855 1.472515 0.074138 1.000000 0.000000 0.000000 +v 0.005009 1.472999 0.075408 1.000000 0.000000 0.000000 +v 0.004315 1.476815 0.074624 1.000000 0.000000 0.000000 +v 0.008666 1.476809 0.073279 1.000000 0.000000 0.000000 +v 0.013211 1.476061 0.071006 1.000000 0.000000 0.000000 +v 0.014910 1.470831 0.071677 1.000000 0.000000 0.000000 +v 0.002734 1.483714 0.075107 1.000000 0.000000 0.000000 +v 0.010300 1.470400 0.074600 1.000000 0.000000 0.000000 +v 0.010703 1.467995 0.074513 1.000000 0.000000 0.000000 +v 0.015502 1.468576 0.071979 1.000000 0.000000 0.000000 +v 0.015800 1.466400 0.071600 1.000000 0.000000 0.000000 +v 0.019602 1.468322 0.068491 1.000000 0.000000 0.000000 +v 0.018439 1.474099 0.068134 1.000000 0.000000 0.000000 +v 0.023987 1.472042 0.064669 1.000000 0.000000 0.000000 +v 0.023470 1.465647 0.065227 1.000000 0.000000 0.000000 +v 0.031113 1.462468 0.060031 1.000000 0.000000 0.000000 +v 0.026531 1.460082 0.060975 1.000000 0.000000 0.000000 +v 0.026577 1.461421 0.061328 1.000000 0.000000 0.000000 +v 0.026234 1.462618 0.062158 1.000000 0.000000 0.000000 +v 0.030104 1.465556 0.061112 1.000000 0.000000 0.000000 +v 0.034404 1.463254 0.058475 1.000000 0.000000 0.000000 +v 0.033149 1.467775 0.059705 1.000000 0.000000 0.000000 +v 0.027971 1.468600 0.062562 1.000000 0.000000 0.000000 +v 0.025395 1.463939 0.063270 1.000000 0.000000 0.000000 +v 0.025250 1.461104 0.061542 1.000000 0.000000 0.000000 +v 0.024309 1.460885 0.061344 1.000000 0.000000 0.000000 +v 0.024976 1.461816 0.062298 1.000000 0.000000 0.000000 +v 0.024034 1.461246 0.062012 1.000000 0.000000 0.000000 +v 0.024386 1.462489 0.063348 1.000000 0.000000 0.000000 +v 0.023558 1.461583 0.062874 1.000000 0.000000 0.000000 +v 0.022612 1.462197 0.064256 1.000000 0.000000 0.000000 +v 0.023177 1.463590 0.064981 1.000000 0.000000 0.000000 +v 0.022133 1.460920 0.059768 1.000000 0.000000 0.000000 +v 0.021168 1.460992 0.060855 1.000000 0.000000 0.000000 +v 0.021285 1.460964 0.062165 1.000000 0.000000 0.000000 +v 0.022204 1.460838 0.060987 1.000000 0.000000 0.000000 +v 0.022757 1.460837 0.059067 1.000000 0.000000 0.000000 +v 0.022727 1.460779 0.060310 1.000000 0.000000 0.000000 +v 0.022731 1.461571 0.056693 1.000000 0.000000 0.000000 +v 0.021763 1.461781 0.057508 1.000000 0.000000 0.000000 +v -0.045276 1.418919 -0.006497 0.584314 0.584314 0.584314 +v -0.051316 1.421097 -0.020493 0.584314 0.584314 0.584314 +v 0.023289 1.460690 0.058334 1.000000 0.000000 0.000000 +v 0.023330 1.460718 0.059396 1.000000 0.000000 0.000000 +v 0.023394 1.460716 0.060836 1.000000 0.000000 0.000000 +v 0.023251 1.460914 0.061284 1.000000 0.000000 0.000000 +v 0.022758 1.461069 0.062036 1.000000 0.000000 0.000000 +v 0.021882 1.461334 0.063176 1.000000 0.000000 0.000000 +v 0.015798 1.464470 0.070396 1.000000 0.000000 0.000000 +v 0.019424 1.464378 0.068200 1.000000 0.000000 0.000000 +v 0.019113 1.462802 0.066769 1.000000 0.000000 0.000000 +v 0.015646 1.462491 0.068328 1.000000 0.000000 0.000000 +v 0.018697 1.461683 0.065172 1.000000 0.000000 0.000000 +v 0.017785 1.465453 0.055196 1.000000 0.000000 0.000000 +v 0.015373 1.461586 0.066485 1.000000 0.000000 0.000000 +v 0.020861 1.463425 0.055138 1.000000 0.000000 0.000000 +v 0.021815 1.464456 0.052646 1.000000 0.000000 0.000000 +v 0.019799 1.462183 0.059397 1.000000 0.000000 0.000000 +v 0.023776 1.462261 0.052914 1.000000 0.000000 0.000000 +v 0.022746 1.462430 0.053473 1.000000 0.000000 0.000000 +v 0.024706 1.463135 0.050424 1.000000 0.000000 0.000000 +v 0.023488 1.463681 0.051401 1.000000 0.000000 0.000000 +v 0.018585 1.461130 0.063357 1.000000 0.000000 0.000000 +v 0.019687 1.466161 0.068684 1.000000 0.000000 0.000000 +v 0.011193 1.465708 0.073182 1.000000 0.000000 0.000000 +v 0.006008 1.466276 0.075328 1.000000 0.000000 0.000000 +v -0.034601 1.509504 0.051197 1.000000 0.000000 0.000000 +v -0.033968 1.506854 0.052483 1.000000 0.000000 0.000000 +v -0.030002 1.508004 0.053112 1.000000 0.000000 0.000000 +v -0.030801 1.510322 0.051979 1.000000 0.000000 0.000000 +v 0.004764 1.502917 0.085468 1.000000 0.000000 0.000000 +v 0.004430 1.506626 0.081984 1.000000 0.000000 0.000000 +v 0.022824 1.460592 0.061246 1.000000 0.000000 0.000000 +v 0.009000 1.380900 0.008200 0.584314 0.584314 0.584314 +v -0.075600 1.495000 -0.023600 0.584314 0.584314 0.584314 +v -0.074983 1.495799 -0.022522 0.584314 0.584314 0.584314 +v -0.084383 1.516205 -0.047117 0.584314 0.584314 0.584314 +v 0.025820 1.458897 0.061092 1.000000 0.000000 0.000000 +v 0.023838 1.454565 0.051597 1.000000 0.000000 0.000000 +v 0.022628 1.458084 0.055319 1.000000 0.000000 0.000000 +v 0.030940 1.449785 0.057855 1.000000 0.000000 0.000000 +v 0.026597 1.445592 0.060153 1.000000 0.000000 0.000000 +v 0.024565 1.449667 0.061995 1.000000 0.000000 0.000000 +v 0.028277 1.452952 0.060029 1.000000 0.000000 0.000000 +v 0.021911 1.455732 0.064216 1.000000 0.000000 0.000000 +v 0.024465 1.457488 0.062231 1.000000 0.000000 0.000000 +v -0.087769 1.520281 -0.042209 0.584314 0.584314 0.584314 +v 0.023209 1.458786 0.062690 1.000000 0.000000 0.000000 +v 0.020872 1.457806 0.064774 1.000000 0.000000 0.000000 +v 0.019961 1.459373 0.065056 1.000000 0.000000 0.000000 +v 0.022233 1.459817 0.062668 1.000000 0.000000 0.000000 +v 0.017872 1.461109 0.063406 1.000000 0.000000 0.000000 +v 0.013488 1.461506 0.066143 1.000000 0.000000 0.000000 +v 0.012943 1.457844 0.061366 1.000000 0.000000 0.000000 +v 0.017612 1.457529 0.058998 1.000000 0.000000 0.000000 +v 0.021527 1.457717 0.056493 1.000000 0.000000 0.000000 +v 0.021070 1.460876 0.060391 1.000000 0.000000 0.000000 +v -0.082911 1.523192 -0.041995 0.584314 0.584314 0.584314 +v -0.081484 1.525319 -0.037312 0.584314 0.584314 0.584314 +v -0.080076 1.523708 -0.036314 0.584314 0.584314 0.584314 +v -0.081315 1.521297 -0.040291 0.584314 0.584314 0.584314 +v 0.018523 1.461113 0.064244 1.000000 0.000000 0.000000 +v 0.021342 1.460835 0.061409 1.000000 0.000000 0.000000 +v 0.013977 1.461497 0.067282 1.000000 0.000000 0.000000 +v 0.018900 1.383500 0.004700 0.584314 0.584314 0.584314 +v 0.021710 1.460566 0.062261 1.000000 0.000000 0.000000 +v 0.019048 1.460695 0.064671 1.000000 0.000000 0.000000 +v 0.014749 1.460724 0.068045 1.000000 0.000000 0.000000 +v 0.015854 1.458903 0.068665 1.000000 0.000000 0.000000 +v 0.016792 1.456693 0.068793 1.000000 0.000000 0.000000 +v 0.017461 1.453899 0.067856 1.000000 0.000000 0.000000 +v 0.019149 1.446712 0.065034 1.000000 0.000000 0.000000 +v 0.020456 1.441594 0.063824 1.000000 0.000000 0.000000 +v 0.013229 1.444892 0.067749 1.000000 0.000000 0.000000 +v 0.014176 1.439699 0.067357 1.000000 0.000000 0.000000 +v 0.012333 1.452486 0.071105 1.000000 0.000000 0.000000 +v 0.012051 1.456002 0.072665 1.000000 0.000000 0.000000 +v 0.011198 1.458638 0.072223 1.000000 0.000000 0.000000 +v 0.010410 1.460704 0.071129 1.000000 0.000000 0.000000 +v 0.003264 1.481942 0.074712 1.000000 0.000000 0.000000 +v 0.005689 1.488011 0.075291 1.000000 0.000000 0.000000 +v 0.004510 1.488195 0.077505 1.000000 0.000000 0.000000 +v 0.007868 1.491520 0.082722 1.000000 0.000000 0.000000 +v 0.001736 1.487415 0.079846 1.000000 0.000000 0.000000 +v 0.010492 1.492952 0.082279 1.000000 0.000000 0.000000 +v 0.008765 1.492452 0.083652 1.000000 0.000000 0.000000 +v 0.009522 1.493885 0.084514 1.000000 0.000000 0.000000 +v 0.010810 1.494494 0.083310 1.000000 0.000000 0.000000 +v 0.007182 1.491909 0.084782 1.000000 0.000000 0.000000 +v 0.008500 1.493700 0.085400 1.000000 0.000000 0.000000 +v 0.002902 1.491075 0.086336 1.000000 0.000000 0.000000 +v 0.003721 1.494335 0.088102 1.000000 0.000000 0.000000 +v 0.004650 1.499551 0.087718 1.000000 0.000000 0.000000 +v 0.004111 1.496344 0.088521 1.000000 0.000000 0.000000 +v 0.009882 1.495499 0.084882 1.000000 0.000000 0.000000 +v 0.011411 1.497274 0.083159 1.000000 0.000000 0.000000 +v -0.090800 1.520100 -0.042800 0.584314 0.584314 0.584314 +v 0.011743 1.500268 0.080871 1.000000 0.000000 0.000000 +v 0.013890 1.498099 0.077459 1.000000 0.000000 0.000000 +v 0.010602 1.625284 -0.027469 0.584314 0.584314 0.584314 +v 0.009656 1.461739 0.070112 1.000000 0.000000 0.000000 +v 0.008742 1.461758 0.068290 1.000000 0.000000 0.000000 +v -0.075382 1.482188 -0.024203 0.584314 0.584314 0.584314 +v -0.084040 1.509298 -0.036335 0.584314 0.584314 0.584314 +v 0.012774 1.447697 0.054662 1.000000 0.000000 0.000000 +v 0.012805 1.452064 0.057064 1.000000 0.000000 0.000000 +v 0.008059 1.451891 0.058520 1.000000 0.000000 0.000000 +v -0.080484 1.525822 -0.034804 0.584314 0.584314 0.584314 +v -0.083919 1.527606 -0.035488 0.584314 0.584314 0.584314 +v 0.008007 1.447711 0.056270 1.000000 0.000000 0.000000 +v 0.004812 1.461758 0.069092 1.000000 0.000000 0.000000 +v -0.090591 1.497096 -0.045921 0.584314 0.584314 0.584314 +v -0.091688 1.518505 -0.044615 0.584314 0.584314 0.584314 +v -0.089812 1.517295 -0.043486 0.584314 0.584314 0.584314 +v -0.081321 1.518998 -0.029088 0.584314 0.584314 0.584314 +v -0.078895 1.491603 -0.038661 0.584314 0.584314 0.584314 +v -0.085402 1.491588 -0.036554 0.584314 0.584314 0.584314 +v -0.084007 1.489086 -0.035109 0.584314 0.584314 0.584314 +v -0.078399 1.489817 -0.037774 0.584314 0.584314 0.584314 +v -0.073444 1.504694 -0.032820 0.584314 0.584314 0.584314 +v 0.004543 1.458037 0.063816 1.000000 0.000000 0.000000 +v 0.008262 1.458084 0.063082 1.000000 0.000000 0.000000 +v 0.005072 1.461835 0.071297 1.000000 0.000000 0.000000 +v 0.005589 1.460631 0.072613 1.000000 0.000000 0.000000 +v 0.006193 1.458494 0.073986 1.000000 0.000000 0.000000 +v 0.004333 1.451771 0.059202 1.000000 0.000000 0.000000 +v 0.004401 1.447435 0.056949 1.000000 0.000000 0.000000 +v -0.071111 1.486897 -0.016909 1.000000 0.000000 0.000000 +v 0.022224 1.453109 0.052652 1.000000 0.000000 0.000000 +v -0.081578 1.475997 -0.030012 0.584314 0.584314 0.584314 +v -0.082714 1.477004 -0.032189 0.584314 0.584314 0.584314 +v -0.031157 1.465431 -0.096619 0.584314 0.584314 0.584314 +v -0.034883 1.475714 -0.102887 0.584314 0.584314 0.584314 +v -0.092400 1.496600 -0.049200 0.584314 0.584314 0.584314 +v 0.022834 1.449420 0.050597 1.000000 0.000000 0.000000 +v 0.017680 1.452071 0.055120 1.000000 0.000000 0.000000 +v 0.018045 1.448223 0.052946 1.000000 0.000000 0.000000 +v 0.007817 1.439111 0.069698 1.000000 0.000000 0.000000 +v 0.007074 1.444141 0.069216 1.000000 0.000000 0.000000 +v 0.006581 1.455345 0.074334 1.000000 0.000000 0.000000 +v 0.006668 1.451550 0.072522 1.000000 0.000000 0.000000 +v 0.022923 1.607438 -0.092701 0.584314 0.584314 0.584314 +v 0.062856 1.576001 0.009824 0.584314 0.584314 0.584314 +v 0.061268 1.569757 0.017690 1.000000 0.000000 0.000000 +v -0.083202 1.522130 -0.035985 0.584314 0.584314 0.584314 +v 0.055147 1.577388 0.024227 1.000000 0.000000 0.000000 +v 0.056734 1.582384 0.017099 0.584314 0.584314 0.584314 +v 0.063470 1.583142 0.001913 0.584314 0.584314 0.584314 +v 0.057200 1.588300 0.009600 0.584314 0.584314 0.584314 +v 0.040530 1.616390 -0.045728 0.584314 0.584314 0.584314 +v 0.041088 1.616383 -0.031901 0.584314 0.584314 0.584314 +v 0.021913 1.622737 -0.028613 0.584314 0.584314 0.584314 +v 0.035329 1.615763 -0.059197 0.584314 0.584314 0.584314 +v 0.047797 1.607383 -0.067962 0.584314 0.584314 0.584314 +v 0.050017 1.610884 -0.049176 0.584314 0.584314 0.584314 +v 0.049914 1.611324 -0.034400 0.584314 0.584314 0.584314 +v -0.077509 1.481801 -0.025290 0.584314 0.584314 0.584314 +v -0.077217 1.476111 -0.024483 0.584314 0.584314 0.584314 +v -0.075527 1.476613 -0.022791 0.584314 0.584314 0.584314 +v -0.078213 1.512608 -0.033384 0.584314 0.584314 0.584314 +v 0.025319 1.417296 -0.086431 0.584314 0.584314 0.584314 +v 0.053341 1.537593 -0.109735 0.584314 0.584314 0.584314 +v 0.048594 1.610887 -0.021003 0.584314 0.584314 0.584314 +v 0.040400 1.615200 -0.018500 0.584314 0.584314 0.584314 +v 0.039869 1.612797 -0.006457 0.584314 0.584314 0.584314 +v 0.047253 1.609196 -0.009635 0.584314 0.584314 0.584314 +v 0.021703 1.620912 -0.014487 0.584314 0.584314 0.584314 +v 0.010484 1.623294 -0.012843 0.584314 0.584314 0.584314 +v 0.019518 1.501968 -0.122785 0.584314 0.584314 0.584314 +v 0.003912 1.516946 0.073584 1.000000 0.000000 0.000000 +v 0.049036 1.451832 -0.071080 0.584314 0.584314 0.584314 +v 0.058265 1.451117 -0.053166 0.584314 0.584314 0.584314 +v 0.051200 1.402600 -0.033800 0.584314 0.584314 0.584314 +v 0.072990 1.474329 -0.033592 0.584314 0.584314 0.584314 +v 0.072822 1.474732 -0.034523 0.584314 0.584314 0.584314 +v 0.057824 1.437788 -0.035288 0.584314 0.584314 0.584314 +v 0.061932 1.450619 -0.035689 0.584314 0.584314 0.584314 +v 0.039174 1.452431 -0.082310 0.584314 0.584314 0.584314 +v 0.082400 1.485383 -0.044422 0.584314 0.584314 0.584314 +v 0.082903 1.489094 -0.045618 0.584314 0.584314 0.584314 +v 0.083405 1.484800 -0.043789 0.584314 0.584314 0.584314 +v 0.084115 1.488697 -0.045292 0.584314 0.584314 0.584314 +v 0.083998 1.492895 -0.046032 0.584314 0.584314 0.584314 +v 0.083879 1.483300 -0.042725 0.584314 0.584314 0.584314 +v 0.076924 1.521442 -0.034424 0.584314 0.584314 0.584314 +v 0.078187 1.523278 -0.033695 0.584314 0.584314 0.584314 +v -0.080792 1.483473 -0.043245 0.584314 0.584314 0.584314 +v -0.081006 1.485539 -0.044522 0.584314 0.584314 0.584314 +v 0.072100 1.473090 -0.029303 0.584314 0.584314 0.584314 +v 0.072098 1.473611 -0.030997 0.584314 0.584314 0.584314 +v -0.063300 1.497600 -0.029200 0.584314 0.584314 0.584314 +v 0.071500 1.473300 -0.030200 0.584314 0.584314 0.584314 +v 0.071200 1.472900 -0.028900 0.584314 0.584314 0.584314 +v 0.071696 1.472309 -0.027792 0.584314 0.584314 0.584314 +v 0.071001 1.472380 -0.027818 0.584314 0.584314 0.584314 +v 0.076624 1.536198 -0.028498 0.584314 0.584314 0.584314 +v 0.070000 1.472400 -0.031600 0.584314 0.584314 0.584314 +v 0.072088 1.474257 -0.034077 0.584314 0.584314 0.584314 +v 0.071908 1.473871 -0.032409 0.584314 0.584314 0.584314 +v 0.071000 1.473200 -0.031100 0.584314 0.584314 0.584314 +v 0.070412 1.472386 -0.029103 0.584314 0.584314 0.584314 +v 0.070191 1.471713 -0.027395 0.584314 0.584314 0.584314 +v 0.071000 1.471300 -0.026800 0.584314 0.584314 0.584314 +v -0.082300 1.478600 -0.039700 0.584314 0.584314 0.584314 +v -0.078492 1.473495 -0.034110 0.584314 0.584314 0.584314 +v -0.054580 1.424205 -0.033907 0.584314 0.584314 0.584314 +v -0.053617 1.426598 -0.048816 0.584314 0.584314 0.584314 +v -0.052512 1.415702 -0.047314 0.584314 0.584314 0.584314 +v -0.052297 1.412202 -0.033512 0.584314 0.584314 0.584314 +v -0.072400 1.500500 -0.017900 1.000000 0.000000 0.000000 +v -0.072720 1.493501 -0.019884 0.584314 0.584314 0.584314 +v -0.072078 1.492403 -0.018405 0.584314 0.584314 0.584314 +v 0.084111 1.482503 -0.042789 0.584314 0.584314 0.584314 +v 0.076500 1.472200 -0.031600 0.584314 0.584314 0.584314 +v -0.022133 1.402373 0.012551 0.584314 0.584314 0.584314 +v -0.018991 1.390401 0.007792 0.584314 0.584314 0.584314 +v 0.079079 1.513709 -0.040420 0.584314 0.584314 0.584314 +v 0.079508 1.511895 -0.041894 0.584314 0.584314 0.584314 +v 0.081688 1.513702 -0.043406 0.584314 0.584314 0.584314 +v 0.081123 1.515993 -0.041982 0.584314 0.584314 0.584314 +v 0.060712 1.487981 -0.084226 0.584314 0.584314 0.584314 +v 0.062551 1.497993 -0.088895 0.584314 0.584314 0.584314 +v 0.012694 1.418793 -0.090986 0.584314 0.584314 0.584314 +v 0.012984 1.431500 -0.091585 0.584314 0.584314 0.584314 +v 0.076230 1.530994 -0.074442 0.584314 0.584314 0.584314 +v 0.078600 1.515400 -0.038900 0.584314 0.584314 0.584314 +v 0.080687 1.517803 -0.040507 0.584314 0.584314 0.584314 +v 0.082899 1.493300 -0.046163 0.584314 0.584314 0.584314 +v 0.077782 1.514596 -0.038896 0.584314 0.584314 0.584314 +v 0.078304 1.512904 -0.040408 0.584314 0.584314 0.584314 +v 0.081700 1.519700 -0.042100 0.584314 0.584314 0.584314 +v 0.082200 1.517500 -0.043700 0.584314 0.584314 0.584314 +v 0.082816 1.515000 -0.045088 0.584314 0.584314 0.584314 +v 0.078788 1.510996 -0.041897 0.584314 0.584314 0.584314 +v -0.071080 1.487414 -0.013506 1.000000 0.000000 0.000000 +v -0.070164 1.486779 -0.003273 1.000000 0.000000 0.000000 +v -0.071773 1.502108 -0.003201 1.000000 0.000000 0.000000 +v -0.072151 1.496898 -0.012896 1.000000 0.000000 0.000000 +v 0.077321 1.519308 -0.041011 0.584314 0.584314 0.584314 +v 0.080072 1.561101 -0.051900 0.584314 0.584314 0.584314 +v 0.079500 1.554700 -0.065300 0.584314 0.584314 0.584314 +v 0.077000 1.577000 -0.055600 0.584314 0.584314 0.584314 +v 0.076100 1.571400 -0.070200 0.584314 0.584314 0.584314 +v 0.071739 1.564758 -0.085415 0.584314 0.584314 0.584314 +v 0.075100 1.546934 -0.080535 0.584314 0.584314 0.584314 +v 0.076756 1.521093 -0.035588 0.584314 0.584314 0.584314 +v 0.079218 1.524487 -0.034190 0.584314 0.584314 0.584314 +v 0.064046 1.588845 -0.005609 0.584314 0.584314 0.584314 +v 0.069100 1.583700 -0.012500 0.584314 0.584314 0.584314 +v 0.057334 1.593424 0.002717 0.584314 0.584314 0.584314 +v 0.057190 1.597993 -0.003706 0.584314 0.584314 0.584314 +v 0.063487 1.594294 -0.012304 0.584314 0.584314 0.584314 +v 0.070644 1.587414 -0.023990 0.584314 0.584314 0.584314 +v 0.078576 1.553401 -0.037404 0.584314 0.584314 0.584314 +v 0.078229 1.566908 -0.038395 0.584314 0.584314 0.584314 +v 0.075235 1.571187 -0.025413 0.584314 0.584314 0.584314 +v -0.059961 1.533198 0.030682 1.000000 0.000000 0.000000 +v -0.061666 1.533495 0.026588 1.000000 0.000000 0.000000 +v -0.061933 1.524304 0.026724 1.000000 0.000000 0.000000 +v -0.059859 1.525661 0.030102 1.000000 0.000000 0.000000 +v 0.074960 1.582288 -0.040605 0.584314 0.584314 0.584314 +v 0.066600 1.595600 -0.030100 0.584314 0.584314 0.584314 +v 0.070333 1.591526 -0.044305 0.584314 0.584314 0.584314 +v 0.059609 1.603311 -0.033797 0.584314 0.584314 0.584314 +v 0.061738 1.601056 -0.048113 0.584314 0.584314 0.584314 +v 0.061583 1.597869 -0.063692 0.584314 0.584314 0.584314 +v 0.071969 1.587274 -0.059096 0.584314 0.584314 0.584314 +v 0.061700 1.599100 -0.018200 0.584314 0.584314 0.584314 +v 0.055613 1.602114 -0.008857 0.584314 0.584314 0.584314 +v 0.056700 1.604800 -0.021500 0.584314 0.584314 0.584314 +v 0.053364 1.605595 -0.013183 0.584314 0.584314 0.584314 +v 0.073321 1.572998 -0.018597 0.584314 0.584314 0.584314 +v 0.065872 1.467058 -0.027795 0.584314 0.584314 0.584314 +v 0.066067 1.467582 -0.022798 0.584314 0.584314 0.584314 +v -0.020105 1.589077 0.046472 1.000000 0.000000 0.000000 +v -0.009713 1.590238 0.048897 1.000000 0.000000 0.000000 +v -0.009944 1.597050 0.042825 0.584314 0.584314 0.584314 +v -0.020552 1.595691 0.040151 0.584314 0.584314 0.584314 +v 0.069850 1.479001 -0.015004 1.000000 0.000000 0.000000 +v -0.036783 1.483221 -0.106562 0.584314 0.584314 0.584314 +v -0.038502 1.492891 -0.110712 0.584314 0.584314 0.584314 +v -0.018483 1.490152 -0.117701 0.584314 0.584314 0.584314 +v -0.017417 1.481271 -0.113053 0.584314 0.584314 0.584314 +v 0.067976 1.503604 0.017668 1.000000 0.000000 0.000000 +v 0.068022 1.515690 0.015397 1.000000 0.000000 0.000000 +v 0.070799 1.507799 0.005481 1.000000 0.000000 0.000000 +v 0.069552 1.493504 0.006914 1.000000 0.000000 0.000000 +v -0.020717 1.610835 0.018436 0.584314 0.584314 0.584314 +v -0.010055 1.612720 0.020935 0.584314 0.584314 0.584314 +v -0.010178 1.617029 0.011196 0.584314 0.584314 0.584314 +v -0.021004 1.614887 0.009079 0.584314 0.584314 0.584314 +v -0.051849 1.506984 0.042450 1.000000 0.000000 0.000000 +v -0.053308 1.500902 0.042309 1.000000 0.000000 0.000000 +v -0.049500 1.500600 0.045600 1.000000 0.000000 0.000000 +v -0.048611 1.506682 0.045109 1.000000 0.000000 0.000000 +v 0.066865 1.528807 0.013619 1.000000 0.000000 0.000000 +v 0.070014 1.521399 0.003997 1.000000 0.000000 0.000000 +v 0.069755 1.535201 0.001517 1.000000 0.000000 0.000000 +v 0.066276 1.542800 0.012494 1.000000 0.000000 0.000000 +v 0.063123 1.558544 -0.099907 0.584314 0.584314 0.584314 +v 0.065392 1.542129 -0.097712 0.584314 0.584314 0.584314 +v -0.077083 1.471595 -0.021914 0.584314 0.584314 0.584314 +v -0.075873 1.472489 -0.020821 0.584314 0.584314 0.584314 +v 0.065894 1.530249 -0.096000 0.584314 0.584314 0.584314 +v 0.048710 1.559533 0.042020 1.000000 0.000000 0.000000 +v -0.010363 1.620560 -0.000194 0.584314 0.584314 0.584314 +v -0.021444 1.618288 -0.001890 0.584314 0.584314 0.584314 +v 0.022210 1.577716 -0.119229 0.584314 0.584314 0.584314 +v 0.047881 1.581782 0.031191 1.000000 0.000000 0.000000 +v 0.055375 1.577878 -0.100584 0.584314 0.584314 0.584314 +v 0.000000 1.432410 -0.093127 0.584314 0.584314 0.584314 +v 0.042198 1.583290 -0.106886 0.584314 0.584314 0.584314 +v 0.071219 1.581908 -0.073609 0.584314 0.584314 0.584314 +v 0.068054 1.575876 -0.086371 0.584314 0.584314 0.584314 +v 0.060075 1.568989 -0.100537 0.584314 0.584314 0.584314 +v 0.065163 1.514915 -0.094089 0.584314 0.584314 0.584314 +v 0.047764 1.605853 -0.002383 0.584314 0.584314 0.584314 +v 0.056288 1.527306 0.035388 1.000000 0.000000 0.000000 +v 0.055400 1.522900 0.034700 1.000000 0.000000 0.000000 +v 0.056800 1.532000 0.036900 1.000000 0.000000 0.000000 +v 0.053710 1.518407 0.036312 1.000000 0.000000 0.000000 +v 0.016988 1.511816 0.059509 1.000000 0.000000 0.000000 +v 0.016523 1.509829 0.061527 1.000000 0.000000 0.000000 +v 0.016060 1.507311 0.063477 1.000000 0.000000 0.000000 +v 0.019643 1.507148 0.059252 1.000000 0.000000 0.000000 +v 0.018886 1.504168 0.061098 1.000000 0.000000 0.000000 +v 0.012688 1.507683 0.068746 1.000000 0.000000 0.000000 +v 0.013226 1.510263 0.066357 1.000000 0.000000 0.000000 +v 0.015327 1.504867 0.065498 1.000000 0.000000 0.000000 +v 0.014758 1.501776 0.067443 1.000000 0.000000 0.000000 +v 0.012525 1.504630 0.071081 1.000000 0.000000 0.000000 +v 0.018383 1.489537 0.064268 1.000000 0.000000 0.000000 +v 0.019566 1.494092 0.062319 1.000000 0.000000 0.000000 +v 0.017300 1.498299 0.064286 1.000000 0.000000 0.000000 +v 0.022379 1.501260 0.059636 1.000000 0.000000 0.000000 +v 0.021217 1.498003 0.061176 1.000000 0.000000 0.000000 +v 0.018101 1.501539 0.062795 1.000000 0.000000 0.000000 +v 0.023651 1.504578 0.057693 1.000000 0.000000 0.000000 +v 0.015512 1.498333 0.069921 1.000000 0.000000 0.000000 +v 0.016336 1.495285 0.072852 1.000000 0.000000 0.000000 +v 0.013197 1.501347 0.074285 1.000000 0.000000 0.000000 +v 0.011289 1.503443 0.077455 1.000000 0.000000 0.000000 +v 0.010513 1.506879 0.074245 1.000000 0.000000 0.000000 +v 0.020300 1.509300 0.057400 1.000000 0.000000 0.000000 +v 0.024688 1.506991 0.055978 1.000000 0.000000 0.000000 +v 0.024313 1.494467 0.060252 1.000000 0.000000 0.000000 +v 0.028338 1.491184 0.059583 1.000000 0.000000 0.000000 +v 0.026548 1.498726 0.058604 1.000000 0.000000 0.000000 +v 0.030377 1.496054 0.058135 1.000000 0.000000 0.000000 +v 0.027823 1.502213 0.056766 1.000000 0.000000 0.000000 +v 0.031864 1.499784 0.056280 1.000000 0.000000 0.000000 +v 0.031980 1.487707 0.059208 1.000000 0.000000 0.000000 +v 0.034944 1.483875 0.058162 1.000000 0.000000 0.000000 +v 0.037789 1.479097 0.056553 1.000000 0.000000 0.000000 +v 0.037765 1.488714 0.056258 1.000000 0.000000 0.000000 +v 0.040839 1.483470 0.054215 1.000000 0.000000 0.000000 +v 0.039779 1.493485 0.054171 1.000000 0.000000 0.000000 +v 0.043257 1.488620 0.051763 1.000000 0.000000 0.000000 +v -0.013719 1.517008 0.059295 1.000000 0.000000 0.000000 +v -0.014127 1.518765 0.056494 1.000000 0.000000 0.000000 +v -0.017673 1.515705 0.055114 1.000000 0.000000 0.000000 +v -0.017351 1.513871 0.057445 1.000000 0.000000 0.000000 +v -0.007369 1.564131 0.060202 1.000000 0.000000 0.000000 +v -0.008331 1.571458 0.057659 1.000000 0.000000 0.000000 +v -0.017301 1.571015 0.055837 1.000000 0.000000 0.000000 +v -0.015753 1.563817 0.058794 1.000000 0.000000 0.000000 +v 0.034514 1.492718 0.057558 1.000000 0.000000 0.000000 +v 0.036283 1.496846 0.055538 1.000000 0.000000 0.000000 +v 0.033157 1.503343 0.054269 1.000000 0.000000 0.000000 +v 0.029010 1.505211 0.054822 1.000000 0.000000 0.000000 +v 0.041601 1.504292 0.050690 1.000000 0.000000 0.000000 +v 0.041085 1.498898 0.052381 1.000000 0.000000 0.000000 +v 0.037317 1.501291 0.053567 1.000000 0.000000 0.000000 +v 0.037974 1.505637 0.051703 1.000000 0.000000 0.000000 +v 0.045069 1.495056 0.049656 1.000000 0.000000 0.000000 +v 0.045400 1.502500 0.048600 1.000000 0.000000 0.000000 +v 0.045080 1.507384 0.047479 1.000000 0.000000 0.000000 +v 0.031897 1.513496 0.050390 1.000000 0.000000 0.000000 +v 0.027202 1.514204 0.051209 1.000000 0.000000 0.000000 +v 0.035292 1.513223 0.049379 1.000000 0.000000 0.000000 +v 0.041527 1.508144 0.049267 1.000000 0.000000 0.000000 +v 0.038279 1.508792 0.050353 1.000000 0.000000 0.000000 +v 0.049200 1.514300 0.041600 1.000000 0.000000 0.000000 +v 0.046800 1.513600 0.043500 1.000000 0.000000 0.000000 +v 0.041300 1.513100 0.047100 1.000000 0.000000 0.000000 +v 0.038537 1.513112 0.048362 1.000000 0.000000 0.000000 +v 0.044195 1.513295 0.045391 1.000000 0.000000 0.000000 +v 0.022901 1.515905 0.051410 1.000000 0.000000 0.000000 +v 0.018571 1.517968 0.051684 1.000000 0.000000 0.000000 +v 0.055257 1.438999 -0.050771 0.584314 0.584314 0.584314 +v 0.010308 1.510155 0.071901 1.000000 0.000000 0.000000 +v 0.010478 1.513105 0.069505 1.000000 0.000000 0.000000 +v 0.015156 1.533977 0.054304 1.000000 0.000000 0.000000 +v 0.013596 1.531070 0.053522 1.000000 0.000000 0.000000 +v 0.006923 1.531511 0.060081 1.000000 0.000000 0.000000 +v 0.019158 1.537755 0.056855 1.000000 0.000000 0.000000 +v 0.015489 1.520401 0.051954 1.000000 0.000000 0.000000 +v -0.021739 1.513091 0.053661 1.000000 0.000000 0.000000 +v -0.021012 1.511308 0.055406 1.000000 0.000000 0.000000 +v 0.013800 1.522800 0.052200 1.000000 0.000000 0.000000 +v 0.013178 1.525174 0.052712 1.000000 0.000000 0.000000 +v 0.012942 1.528094 0.053113 1.000000 0.000000 0.000000 +v -0.010005 1.602932 0.036161 0.584314 0.584314 0.584314 +v -0.020698 1.601402 0.033405 0.584314 0.584314 0.584314 +v -0.020840 1.621971 -0.050662 0.584314 0.584314 0.584314 +v -0.021361 1.622750 -0.042579 0.584314 0.584314 0.584314 +v -0.009988 1.625236 -0.042999 0.584314 0.584314 0.584314 +v -0.011010 1.623798 -0.055177 0.584314 0.584314 0.584314 +v 0.030114 1.551419 0.058036 1.000000 0.000000 0.000000 +v 0.026720 1.545266 0.059766 1.000000 0.000000 0.000000 +v 0.058325 1.563672 0.026481 1.000000 0.000000 0.000000 +v 0.061625 1.555341 0.023089 1.000000 0.000000 0.000000 +v 0.051668 1.546035 0.044932 1.000000 0.000000 0.000000 +v 0.054700 1.541900 0.041900 1.000000 0.000000 0.000000 +v 0.056409 1.536994 0.039107 1.000000 0.000000 0.000000 +v 0.063211 1.544202 0.020706 1.000000 0.000000 0.000000 +v 0.064120 1.532200 0.020511 1.000000 0.000000 0.000000 +v 0.064932 1.520906 0.021512 1.000000 0.000000 0.000000 +v -0.071022 1.498660 -0.072359 0.584314 0.584314 0.584314 +v -0.074708 1.498310 -0.057287 0.584314 0.584314 0.584314 +v -0.076813 1.509999 -0.058491 0.584314 0.584314 0.584314 +v -0.074411 1.514719 -0.074802 0.584314 0.584314 0.584314 +v 0.049122 1.592694 0.017549 0.584314 0.584314 0.584314 +v -0.033028 1.407859 0.005141 0.584314 0.584314 0.584314 +v -0.030039 1.395778 0.000929 0.584314 0.584314 0.584314 +v 0.000000 1.419295 -0.092376 0.584314 0.584314 0.584314 +v 0.048919 1.597614 0.010981 0.584314 0.584314 0.584314 +v 0.048889 1.587381 0.024404 0.584314 0.584314 0.584314 +v 0.039547 1.609385 0.002641 0.584314 0.584314 0.584314 +v 0.039647 1.605670 0.010726 0.584314 0.584314 0.584314 +v 0.048516 1.602029 0.004404 0.584314 0.584314 0.584314 +v 0.040184 1.601257 0.017716 0.584314 0.584314 0.584314 +v 0.040667 1.596353 0.024229 0.584314 0.584314 0.584314 +v 0.040410 1.591110 0.031115 0.584314 0.584314 0.584314 +v 0.039626 1.585244 0.037833 1.000000 0.000000 0.000000 +v 0.037606 1.577249 0.044470 1.000000 0.000000 0.000000 +v 0.046691 1.439449 -0.068449 0.584314 0.584314 0.584314 +v 0.008002 1.500332 0.070494 1.000000 0.000000 0.000000 +v 0.007296 1.500479 0.071202 1.000000 0.000000 0.000000 +v -0.053520 1.554444 0.037880 1.000000 0.000000 0.000000 +v -0.055167 1.559187 0.033299 1.000000 0.000000 0.000000 +v -0.058439 1.552305 0.030019 1.000000 0.000000 0.000000 +v -0.056797 1.548534 0.034888 1.000000 0.000000 0.000000 +v 0.006915 1.499983 0.069926 1.000000 0.000000 0.000000 +v 0.006208 1.500093 0.070605 1.000000 0.000000 0.000000 +v 0.005973 1.498711 0.070176 1.000000 0.000000 0.000000 +v 0.007189 1.491278 0.072688 1.000000 0.000000 0.000000 +v 0.005704 1.493209 0.071394 1.000000 0.000000 0.000000 +v 0.005327 1.496700 0.070331 1.000000 0.000000 0.000000 +v 0.068207 1.472506 -0.017095 1.000000 0.000000 0.000000 +v -0.005887 1.552131 0.063546 1.000000 0.000000 0.000000 +v -0.013242 1.551916 0.062647 1.000000 0.000000 0.000000 +v -0.011428 1.545963 0.063453 1.000000 0.000000 0.000000 +v -0.005203 1.545936 0.064108 1.000000 0.000000 0.000000 +v -0.059440 1.518629 0.030726 1.000000 0.000000 0.000000 +v -0.062023 1.515611 0.028312 1.000000 0.000000 0.000000 +v -0.060821 1.508001 0.032915 1.000000 0.000000 0.000000 +v -0.058003 1.511984 0.034409 1.000000 0.000000 0.000000 +v -0.054598 1.507965 0.039780 1.000000 0.000000 0.000000 +v -0.056600 1.502200 0.039300 1.000000 0.000000 0.000000 +v -0.018904 1.579964 0.052345 1.000000 0.000000 0.000000 +v -0.009112 1.580880 0.054387 1.000000 0.000000 0.000000 +v -0.060600 1.543300 0.027500 1.000000 0.000000 0.000000 +v -0.058985 1.541133 0.032384 1.000000 0.000000 0.000000 +v -0.010699 1.519994 0.061739 1.000000 0.000000 0.000000 +v -0.011514 1.521322 0.058249 1.000000 0.000000 0.000000 +v -0.007996 1.525146 0.059987 1.000000 0.000000 0.000000 +v -0.003912 1.524971 0.065569 1.000000 0.000000 0.000000 +v -0.003648 1.528717 0.063754 1.000000 0.000000 0.000000 +v -0.007046 1.528482 0.060248 1.000000 0.000000 0.000000 +v -0.033993 1.562933 0.052199 1.000000 0.000000 0.000000 +v -0.035634 1.569459 0.048664 1.000000 0.000000 0.000000 +v -0.043291 1.567819 0.043458 1.000000 0.000000 0.000000 +v -0.041735 1.561705 0.047287 1.000000 0.000000 0.000000 +v -0.020698 1.606310 0.026348 0.584314 0.584314 0.584314 +v -0.010005 1.608005 0.029016 0.584314 0.584314 0.584314 +v -0.004139 1.537948 0.062980 1.000000 0.000000 0.000000 +v -0.008537 1.537917 0.061632 1.000000 0.000000 0.000000 +v -0.007473 1.534421 0.060282 1.000000 0.000000 0.000000 +v -0.003950 1.534628 0.062399 1.000000 0.000000 0.000000 +v -0.025500 1.509400 0.054200 1.000000 0.000000 0.000000 +v -0.026221 1.511402 0.052919 1.000000 0.000000 0.000000 +v -0.068924 1.470783 -0.026772 0.584314 0.584314 0.584314 +v -0.070063 1.470235 -0.025719 0.584314 0.584314 0.584314 +v -0.073354 1.517300 -0.015507 1.000000 0.000000 0.000000 +v -0.072714 1.507101 -0.013696 1.000000 0.000000 0.000000 +v -0.071736 1.514897 -0.004110 1.000000 0.000000 0.000000 +v -0.071742 1.527400 -0.006595 1.000000 0.000000 0.000000 +v -0.073300 1.538600 -0.010500 1.000000 0.000000 0.000000 +v -0.074599 1.546926 -0.016268 0.584314 0.584314 0.584314 +v -0.075720 1.531749 -0.022655 0.584314 0.584314 0.584314 +v -0.074613 1.525899 -0.018098 1.000000 0.000000 0.000000 +v -0.049669 1.418009 -0.059856 0.584314 0.584314 0.584314 +v -0.048608 1.427595 -0.062745 0.584314 0.584314 0.584314 +v -0.004078 1.522301 0.068552 1.000000 0.000000 0.000000 +v -0.004027 1.519664 0.071163 1.000000 0.000000 0.000000 +v -0.020495 1.529703 -0.128086 0.584314 0.584314 0.584314 +v -0.019992 1.516906 -0.126383 0.584314 0.584314 0.584314 +v -0.040609 1.520993 -0.118122 0.584314 0.584314 0.584314 +v -0.040804 1.533198 -0.119411 0.584314 0.584314 0.584314 +v -0.068436 1.488481 -0.068879 0.584314 0.584314 0.584314 +v -0.072751 1.489694 -0.054914 0.584314 0.584314 0.584314 +v -0.010892 1.495095 0.074194 1.000000 0.000000 0.000000 +v -0.007594 1.499713 0.069461 1.000000 0.000000 0.000000 +v -0.007789 1.496199 0.068918 1.000000 0.000000 0.000000 +v -0.007417 1.498889 0.069265 1.000000 0.000000 0.000000 +v -0.010944 1.492053 0.076099 1.000000 0.000000 0.000000 +v -0.013247 1.491279 0.077394 1.000000 0.000000 0.000000 +v -0.008600 1.492389 0.069127 1.000000 0.000000 0.000000 +v -0.007700 1.492600 0.069700 1.000000 0.000000 0.000000 +v -0.006998 1.496497 0.069211 1.000000 0.000000 0.000000 +v -0.008729 1.500115 0.070107 1.000000 0.000000 0.000000 +v -0.001944 1.488386 0.082348 1.000000 0.000000 0.000000 +v -0.002499 1.489875 0.085125 1.000000 0.000000 0.000000 +v -0.006506 1.490990 0.084097 1.000000 0.000000 0.000000 +v -0.005006 1.489613 0.082093 1.000000 0.000000 0.000000 +v -0.005458 1.499077 0.070745 1.000000 0.000000 0.000000 +v -0.004491 1.496811 0.071589 1.000000 0.000000 0.000000 +v -0.005310 1.494685 0.078792 1.000000 0.000000 0.000000 +v -0.007206 1.498428 0.074823 1.000000 0.000000 0.000000 +v -0.007494 1.500437 0.072081 1.000000 0.000000 0.000000 +v -0.007200 1.495300 0.078000 1.000000 0.000000 0.000000 +v -0.006200 1.489300 0.075200 1.000000 0.000000 0.000000 +v -0.009008 1.495404 0.076405 1.000000 0.000000 0.000000 +v -0.081106 1.485086 -0.030299 0.584314 0.584314 0.584314 +v -0.055353 1.438827 -0.014305 0.584314 0.584314 0.584314 +v -0.061802 1.452633 -0.021411 0.584314 0.584314 0.584314 +v -0.061800 1.451269 -0.026789 0.584314 0.584314 0.584314 +v -0.056475 1.436705 -0.023388 0.584314 0.584314 0.584314 +v -0.080800 1.511900 -0.034700 0.584314 0.584314 0.584314 +v -0.066012 1.558296 0.012561 1.000000 0.000000 0.000000 +v -0.067698 1.568962 0.002878 0.584314 0.584314 0.584314 +v -0.072355 1.557904 -0.008158 0.584314 0.584314 0.584314 +v -0.071371 1.547902 -0.002509 1.000000 0.000000 0.000000 +v -0.068379 1.577790 -0.004909 0.584314 0.584314 0.584314 +v -0.073269 1.567598 -0.015308 0.584314 0.584314 0.584314 +v -0.076018 1.556001 -0.024296 0.584314 0.584314 0.584314 +v -0.077911 1.536200 -0.036897 0.584314 0.584314 0.584314 +v -0.042165 1.521251 0.045613 1.000000 0.000000 0.000000 +v -0.042412 1.521112 0.045815 1.000000 0.000000 0.000000 +v -0.040900 1.520800 0.047100 1.000000 0.000000 0.000000 +v -0.040900 1.520900 0.046900 1.000000 0.000000 0.000000 +v -0.041684 1.521291 0.044982 1.000000 0.000000 0.000000 +v -0.040343 1.520792 0.046058 1.000000 0.000000 0.000000 +v -0.042542 1.521718 0.044010 1.000000 0.000000 0.000000 +v -0.043095 1.521563 0.044535 1.000000 0.000000 0.000000 +v -0.043365 1.521386 0.044713 1.000000 0.000000 0.000000 +v -0.024933 1.521899 0.048906 1.000000 0.000000 0.000000 +v -0.025588 1.522170 0.048171 1.000000 0.000000 0.000000 +v -0.028191 1.521207 0.048430 1.000000 0.000000 0.000000 +v -0.027547 1.521253 0.049572 1.000000 0.000000 0.000000 +v -0.024720 1.521709 0.049378 1.000000 0.000000 0.000000 +v -0.027503 1.521018 0.050005 1.000000 0.000000 0.000000 +v -0.028678 1.523900 0.042557 0.584314 0.584314 0.584314 +v -0.028204 1.524236 0.042492 0.584314 0.584314 0.584314 +v -0.029466 1.523482 0.042681 0.584314 0.584314 0.584314 +v -0.023235 1.523973 0.046674 1.000000 0.000000 0.000000 +v -0.023291 1.524974 0.046778 1.000000 0.000000 0.000000 +v -0.027982 1.525037 0.042609 0.584314 0.584314 0.584314 +v -0.027969 1.524510 0.042490 0.584314 0.584314 0.584314 +v -0.023469 1.523441 0.046801 1.000000 0.000000 0.000000 +v -0.021958 1.523277 0.046966 1.000000 0.000000 0.000000 +v -0.021129 1.523661 0.046653 1.000000 0.000000 0.000000 +v -0.021224 1.524972 0.046884 1.000000 0.000000 0.000000 +v -0.032700 1.520100 0.050100 1.000000 0.000000 0.000000 +v -0.032897 1.519399 0.050184 1.000000 0.000000 0.000000 +v -0.028200 1.519704 0.050417 1.000000 0.000000 0.000000 +v -0.027801 1.520500 0.050288 1.000000 0.000000 0.000000 +v -0.032498 1.520485 0.049893 1.000000 0.000000 0.000000 +v -0.035900 1.520600 0.049000 1.000000 0.000000 0.000000 +v -0.035996 1.520197 0.049188 1.000000 0.000000 0.000000 +v -0.036104 1.519501 0.049213 1.000000 0.000000 0.000000 +v -0.024901 1.520591 0.050179 1.000000 0.000000 0.000000 +v -0.024799 1.521400 0.049815 1.000000 0.000000 0.000000 +v -0.036100 1.518900 0.049200 1.000000 0.000000 0.000000 +v -0.033100 1.518800 0.050100 1.000000 0.000000 0.000000 +v -0.028400 1.519100 0.050400 1.000000 0.000000 0.000000 +v -0.024900 1.520200 0.050300 1.000000 0.000000 0.000000 +v -0.022180 1.521429 0.049697 1.000000 0.000000 0.000000 +v -0.023262 1.521579 0.049651 1.000000 0.000000 0.000000 +v -0.033098 1.518102 0.049889 1.000000 0.000000 0.000000 +v -0.033002 1.517298 0.049711 1.000000 0.000000 0.000000 +v -0.028299 1.517601 0.050288 1.000000 0.000000 0.000000 +v -0.028401 1.518399 0.050319 1.000000 0.000000 0.000000 +v -0.036100 1.518200 0.048900 1.000000 0.000000 0.000000 +v -0.036000 1.517400 0.048700 1.000000 0.000000 0.000000 +v -0.044439 1.521538 0.043123 1.000000 0.000000 0.000000 +v -0.044900 1.522000 0.042200 1.000000 0.000000 0.000000 +v -0.044889 1.521497 0.042391 1.000000 0.000000 0.000000 +v -0.044613 1.521100 0.042908 1.000000 0.000000 0.000000 +v -0.047300 1.519000 0.040400 1.000000 0.000000 0.000000 +v -0.048300 1.520100 0.039500 1.000000 0.000000 0.000000 +v -0.050100 1.519300 0.038700 1.000000 0.000000 0.000000 +v -0.048907 1.518104 0.039809 1.000000 0.000000 0.000000 +v -0.056681 1.509389 0.037056 1.000000 0.000000 0.000000 +v -0.051190 1.515294 0.039686 1.000000 0.000000 0.000000 +v -0.052600 1.516500 0.037900 1.000000 0.000000 0.000000 +v -0.044000 1.521300 0.043900 1.000000 0.000000 0.000000 +v -0.043400 1.521000 0.044800 1.000000 0.000000 0.000000 +v -0.043900 1.521600 0.043800 1.000000 0.000000 0.000000 +v -0.044314 1.521924 0.042872 1.000000 0.000000 0.000000 +v -0.044184 1.520701 0.043691 1.000000 0.000000 0.000000 +v -0.043510 1.520399 0.044707 1.000000 0.000000 0.000000 +v -0.042500 1.520800 0.045900 1.000000 0.000000 0.000000 +v -0.042589 1.520103 0.045890 1.000000 0.000000 0.000000 +v -0.041000 1.519800 0.047200 1.000000 0.000000 0.000000 +v -0.040900 1.520500 0.047200 1.000000 0.000000 0.000000 +v -0.038827 1.520294 0.048207 1.000000 0.000000 0.000000 +v -0.039096 1.520691 0.047990 1.000000 0.000000 0.000000 +v -0.038924 1.519591 0.048198 1.000000 0.000000 0.000000 +v -0.041100 1.519200 0.047000 1.000000 0.000000 0.000000 +v -0.039015 1.518991 0.048107 1.000000 0.000000 0.000000 +v -0.042600 1.519500 0.045600 1.000000 0.000000 0.000000 +v -0.043590 1.519902 0.044393 1.000000 0.000000 0.000000 +v -0.044314 1.520298 0.043307 1.000000 0.000000 0.000000 +v -0.044900 1.520700 0.042500 1.000000 0.000000 0.000000 +v -0.045300 1.521300 0.041900 1.000000 0.000000 0.000000 +v -0.044600 1.519800 0.042800 1.000000 0.000000 0.000000 +v -0.045200 1.519100 0.042100 1.000000 0.000000 0.000000 +v -0.044000 1.518600 0.043400 1.000000 0.000000 0.000000 +v -0.043727 1.519374 0.043986 1.000000 0.000000 0.000000 +v -0.045400 1.520300 0.041900 1.000000 0.000000 0.000000 +v -0.046200 1.519700 0.041100 1.000000 0.000000 0.000000 +v -0.042700 1.519000 0.045200 1.000000 0.000000 0.000000 +v -0.042700 1.518300 0.044800 1.000000 0.000000 0.000000 +v -0.041000 1.517900 0.046300 1.000000 0.000000 0.000000 +v -0.041092 1.518606 0.046690 1.000000 0.000000 0.000000 +v -0.039015 1.518382 0.047807 1.000000 0.000000 0.000000 +v -0.039024 1.517589 0.047472 1.000000 0.000000 0.000000 +v -0.032398 1.520499 0.049611 1.000000 0.000000 0.000000 +v -0.032070 1.520462 0.048411 1.000000 0.000000 0.000000 +v -0.035568 1.520277 0.047815 1.000000 0.000000 0.000000 +v -0.035900 1.520600 0.048700 1.000000 0.000000 0.000000 +v -0.039100 1.520700 0.047800 1.000000 0.000000 0.000000 +v -0.038514 1.520381 0.046986 1.000000 0.000000 0.000000 +v -0.035403 1.520177 0.046662 1.000000 0.000000 0.000000 +v -0.033667 1.522493 0.042517 0.584314 0.584314 0.584314 +v -0.035009 1.522519 0.042154 0.584314 0.584314 0.584314 +v -0.038077 1.520272 0.045916 1.000000 0.000000 0.000000 +v -0.032250 1.520456 0.047158 1.000000 0.000000 0.000000 +v -0.032125 1.522658 0.042749 0.584314 0.584314 0.584314 +v -0.028946 1.521295 0.047200 1.000000 0.000000 0.000000 +v -0.030633 1.523025 0.042787 0.584314 0.584314 0.584314 +v -0.026318 1.522169 0.047391 1.000000 0.000000 0.000000 +v -0.033945 1.532789 0.049154 1.000000 0.000000 0.000000 +v -0.033987 1.533023 0.049380 1.000000 0.000000 0.000000 +v -0.038500 1.532400 0.048800 1.000000 0.000000 0.000000 +v -0.038100 1.532100 0.048400 1.000000 0.000000 0.000000 +v -0.051553 1.496317 -0.100345 0.584314 0.584314 0.584314 +v -0.052901 1.510673 -0.105774 0.584314 0.584314 0.584314 +v -0.040195 1.505800 -0.115183 0.584314 0.584314 0.584314 +v -0.040900 1.529700 0.047500 1.000000 0.000000 0.000000 +v -0.040908 1.530602 0.047110 1.000000 0.000000 0.000000 +v -0.043300 1.529300 0.045900 1.000000 0.000000 0.000000 +v -0.043109 1.528498 0.046011 1.000000 0.000000 0.000000 +v -0.040898 1.528786 0.047906 1.000000 0.000000 0.000000 +v -0.042890 1.527512 0.046186 1.000000 0.000000 0.000000 +v -0.038200 1.530000 0.049500 1.000000 0.000000 0.000000 +v -0.038200 1.531000 0.049000 1.000000 0.000000 0.000000 +v -0.038100 1.531800 0.048500 1.000000 0.000000 0.000000 +v -0.042119 1.526072 0.042035 1.000000 0.000000 0.000000 +v -0.041362 1.527066 0.042705 1.000000 0.000000 0.000000 +v -0.041916 1.526935 0.044139 1.000000 0.000000 0.000000 +v -0.042956 1.526131 0.042937 1.000000 0.000000 0.000000 +v -0.042757 1.525369 0.041438 1.000000 0.000000 0.000000 +v -0.043602 1.525370 0.042054 1.000000 0.000000 0.000000 +v -0.037542 1.525216 0.039867 0.584314 0.584314 0.584314 +v -0.037198 1.525606 0.040151 0.584314 0.584314 0.584314 +v -0.036660 1.526085 0.040544 0.584314 0.584314 0.584314 +v -0.037714 1.524891 0.039697 0.584314 0.584314 0.584314 +v -0.037779 1.524597 0.039632 0.584314 0.584314 0.584314 +v -0.037758 1.524316 0.039661 0.584314 0.584314 0.584314 +v -0.037669 1.524040 0.039811 0.584314 0.584314 0.584314 +v -0.058518 1.493799 0.036810 1.000000 0.000000 0.000000 +v -0.059081 1.504398 0.036285 1.000000 0.000000 0.000000 +v -0.061300 1.496500 0.033300 1.000000 0.000000 0.000000 +v -0.043599 1.521847 0.043556 1.000000 0.000000 0.000000 +v -0.044055 1.522221 0.042659 1.000000 0.000000 0.000000 +v -0.043015 1.522082 0.043129 1.000000 0.000000 0.000000 +v -0.043462 1.522488 0.042348 1.000000 0.000000 0.000000 +v -0.044553 1.522761 0.041803 1.000000 0.000000 0.000000 +v -0.044927 1.522554 0.041844 1.000000 0.000000 0.000000 +v -0.041056 1.521240 0.044204 1.000000 0.000000 0.000000 +v -0.036673 1.522964 0.041275 0.584314 0.584314 0.584314 +v -0.037083 1.523262 0.040834 0.584314 0.584314 0.584314 +v -0.041746 1.521873 0.043317 1.000000 0.000000 0.000000 +v -0.039788 1.520688 0.045084 1.000000 0.000000 0.000000 +v -0.035983 1.522699 0.041727 0.584314 0.584314 0.584314 +v -0.037308 1.523509 0.040446 0.584314 0.584314 0.584314 +v -0.037510 1.523762 0.040093 0.584314 0.584314 0.584314 +v -0.042057 1.522240 0.042582 1.000000 0.000000 0.000000 +v -0.042503 1.522667 0.041859 1.000000 0.000000 0.000000 +v -0.043826 1.523087 0.041769 1.000000 0.000000 0.000000 +v -0.043025 1.523723 0.040992 1.000000 0.000000 0.000000 +v -0.043098 1.524246 0.040972 1.000000 0.000000 0.000000 +v -0.044011 1.523655 0.041586 1.000000 0.000000 0.000000 +v -0.044072 1.524168 0.041487 1.000000 0.000000 0.000000 +v -0.042854 1.523208 0.041263 1.000000 0.000000 0.000000 +v -0.043014 1.524789 0.041098 1.000000 0.000000 0.000000 +v -0.043930 1.524704 0.041661 1.000000 0.000000 0.000000 +v -0.045170 1.522128 0.041830 1.000000 0.000000 0.000000 +v -0.045172 1.522916 0.041508 1.000000 0.000000 0.000000 +v -0.045689 1.523909 0.041025 1.000000 0.000000 0.000000 +v -0.045611 1.522137 0.041396 1.000000 0.000000 0.000000 +v -0.046307 1.522104 0.040817 1.000000 0.000000 0.000000 +v -0.045900 1.521000 0.041200 1.000000 0.000000 0.000000 +v -0.046700 1.524488 0.040798 1.000000 0.000000 0.000000 +v -0.048114 1.524818 0.040328 1.000000 0.000000 0.000000 +v -0.047605 1.521996 0.040014 1.000000 0.000000 0.000000 +v -0.046900 1.520700 0.040400 1.000000 0.000000 0.000000 +v -0.044824 1.523362 0.041444 1.000000 0.000000 0.000000 +v -0.044987 1.523980 0.041208 1.000000 0.000000 0.000000 +v -0.046091 1.525512 0.041885 1.000000 0.000000 0.000000 +v -0.046900 1.526300 0.041900 1.000000 0.000000 0.000000 +v -0.045406 1.524990 0.041911 1.000000 0.000000 0.000000 +v -0.044897 1.525716 0.043091 1.000000 0.000000 0.000000 +v -0.045400 1.526400 0.043200 1.000000 0.000000 0.000000 +v -0.046000 1.527100 0.043200 1.000000 0.000000 0.000000 +v -0.044489 1.527303 0.044590 1.000000 0.000000 0.000000 +v -0.044900 1.528100 0.044600 1.000000 0.000000 0.000000 +v -0.044112 1.526492 0.044515 1.000000 0.000000 0.000000 +v -0.044792 1.524756 0.041778 1.000000 0.000000 0.000000 +v -0.044314 1.525441 0.042693 1.000000 0.000000 0.000000 +v -0.043559 1.526182 0.043934 1.000000 0.000000 0.000000 +v -0.042506 1.526800 0.045709 1.000000 0.000000 0.000000 +v -0.040690 1.527910 0.047582 1.000000 0.000000 0.000000 +v -0.039941 1.527889 0.045733 1.000000 0.000000 0.000000 +v -0.038000 1.529200 0.049200 1.000000 0.000000 0.000000 +v -0.037203 1.528804 0.047236 1.000000 0.000000 0.000000 +v -0.034542 1.533709 0.050445 1.000000 0.000000 0.000000 +v -0.039499 1.533215 0.049975 1.000000 0.000000 0.000000 +v -0.036807 1.528788 0.045465 1.000000 0.000000 0.000000 +v -0.034347 1.526891 0.041805 0.584314 0.584314 0.584314 +v -0.032772 1.526987 0.042325 0.584314 0.584314 0.584314 +v -0.033546 1.528876 0.046426 1.000000 0.000000 0.000000 +v -0.023838 1.525682 0.047159 1.000000 0.000000 0.000000 +v -0.024615 1.526505 0.047491 1.000000 0.000000 0.000000 +v -0.028529 1.525780 0.042811 0.584314 0.584314 0.584314 +v -0.028182 1.525373 0.042703 0.584314 0.584314 0.584314 +v -0.022456 1.525747 0.047856 1.000000 0.000000 0.000000 +v -0.023742 1.526545 0.048365 1.000000 0.000000 0.000000 +v -0.027850 1.528251 0.047514 1.000000 0.000000 0.000000 +v -0.029964 1.526652 0.042905 0.584314 0.584314 0.584314 +v -0.029085 1.526235 0.042905 0.584314 0.584314 0.584314 +v -0.026190 1.527374 0.047403 1.000000 0.000000 0.000000 +v -0.027281 1.528690 0.049325 1.000000 0.000000 0.000000 +v -0.025103 1.527452 0.048740 1.000000 0.000000 0.000000 +v -0.033744 1.529320 0.048332 1.000000 0.000000 0.000000 +v -0.021800 1.564300 -0.125112 0.584314 0.584314 0.584314 +v -0.021390 1.549196 -0.128268 0.584314 0.584314 0.584314 +v -0.041100 1.551200 -0.119600 0.584314 0.584314 0.584314 +v -0.041000 1.564300 -0.117100 0.584314 0.584314 0.584314 +v -0.039290 1.528051 0.044190 1.000000 0.000000 0.000000 +v -0.035655 1.526552 0.041178 0.584314 0.584314 0.584314 +v -0.051007 1.565829 -0.109698 0.584314 0.584314 0.584314 +v -0.050153 1.574170 -0.107041 0.584314 0.584314 0.584314 +v -0.041409 1.575703 -0.112304 0.584314 0.584314 0.584314 +v -0.037050 1.439676 -0.079925 0.584314 0.584314 0.584314 +v -0.026375 1.429290 -0.086093 0.584314 0.584314 0.584314 +v -0.020443 1.525555 0.049023 1.000000 0.000000 0.000000 +v -0.022090 1.526874 0.049265 1.000000 0.000000 0.000000 +v -0.019381 1.524425 0.048883 1.000000 0.000000 0.000000 +v -0.018804 1.524338 0.049175 1.000000 0.000000 0.000000 +v -0.019820 1.525679 0.049223 1.000000 0.000000 0.000000 +v -0.021236 1.527039 0.049389 1.000000 0.000000 0.000000 +v -0.024082 1.528063 0.049571 1.000000 0.000000 0.000000 +v -0.023449 1.528355 0.049996 1.000000 0.000000 0.000000 +v -0.026775 1.529813 0.050788 1.000000 0.000000 0.000000 +v -0.026860 1.529186 0.050504 1.000000 0.000000 0.000000 +v -0.034030 1.529944 0.050131 1.000000 0.000000 0.000000 +v -0.034105 1.530682 0.050431 1.000000 0.000000 0.000000 +v -0.026377 1.530509 0.050284 1.000000 0.000000 0.000000 +v -0.022991 1.528811 0.049615 1.000000 0.000000 0.000000 +v -0.025891 1.531275 0.049667 1.000000 0.000000 0.000000 +v -0.022800 1.529700 0.049200 1.000000 0.000000 0.000000 +v -0.033943 1.532420 0.049431 1.000000 0.000000 0.000000 +v -0.034105 1.531621 0.049993 1.000000 0.000000 0.000000 +v -0.022009 1.522235 0.049146 1.000000 0.000000 0.000000 +v -0.019888 1.522635 0.049121 1.000000 0.000000 0.000000 +v -0.022491 1.522472 0.048858 1.000000 0.000000 0.000000 +v -0.020169 1.522855 0.048732 1.000000 0.000000 0.000000 +v -0.023596 1.522765 0.047753 1.000000 0.000000 0.000000 +v -0.019510 1.523334 0.048695 1.000000 0.000000 0.000000 +v -0.018853 1.523205 0.049074 1.000000 0.000000 0.000000 +v -0.024390 1.522876 0.047222 1.000000 0.000000 0.000000 +v -0.019200 1.525800 0.049100 1.000000 0.000000 0.000000 +v -0.018016 1.524253 0.049349 1.000000 0.000000 0.000000 +v -0.018201 1.526310 0.048651 1.000000 0.000000 0.000000 +v -0.017395 1.524492 0.049158 1.000000 0.000000 0.000000 +v -0.020237 1.528365 0.048593 1.000000 0.000000 0.000000 +v -0.020635 1.527357 0.048964 1.000000 0.000000 0.000000 +v -0.017989 1.523129 0.049200 1.000000 0.000000 0.000000 +v -0.018475 1.522629 0.049200 1.000000 0.000000 0.000000 +v -0.017396 1.523127 0.049280 1.000000 0.000000 0.000000 +v -0.017900 1.522496 0.049287 1.000000 0.000000 0.000000 +v -0.024700 1.519600 0.050400 1.000000 0.000000 0.000000 +v -0.024500 1.519000 0.050400 1.000000 0.000000 0.000000 +v -0.021512 1.520977 0.049893 1.000000 0.000000 0.000000 +v -0.021022 1.520599 0.049909 1.000000 0.000000 0.000000 +v -0.032795 1.516401 0.049585 1.000000 0.000000 0.000000 +v -0.035800 1.516500 0.048500 1.000000 0.000000 0.000000 +v -0.032503 1.515300 0.049614 1.000000 0.000000 0.000000 +v -0.035693 1.515294 0.048482 1.000000 0.000000 0.000000 +v -0.027697 1.515798 0.050481 1.000000 0.000000 0.000000 +v -0.028102 1.516702 0.050317 1.000000 0.000000 0.000000 +v -0.029412 1.387797 -0.001384 0.584314 0.584314 0.584314 +v -0.046000 1.518200 0.041600 1.000000 0.000000 0.000000 +v -0.047200 1.517100 0.041300 1.000000 0.000000 0.000000 +v -0.045392 1.516396 0.042790 1.000000 0.000000 0.000000 +v -0.044509 1.517704 0.042911 1.000000 0.000000 0.000000 +v -0.042900 1.517300 0.044400 1.000000 0.000000 0.000000 +v -0.043309 1.515909 0.044414 1.000000 0.000000 0.000000 +v -0.041000 1.515600 0.046000 1.000000 0.000000 0.000000 +v -0.040900 1.516900 0.046000 1.000000 0.000000 0.000000 +v -0.038919 1.516689 0.047177 1.000000 0.000000 0.000000 +v -0.038722 1.515306 0.047242 1.000000 0.000000 0.000000 +v -0.049300 1.521500 0.038900 1.000000 0.000000 0.000000 +v -0.050591 1.524603 0.038686 1.000000 0.000000 0.000000 +v -0.051200 1.520900 0.037800 1.000000 0.000000 0.000000 +v -0.052905 1.524289 0.037006 1.000000 0.000000 0.000000 +v -0.016797 1.527194 0.048968 1.000000 0.000000 0.000000 +v -0.016432 1.524904 0.049054 1.000000 0.000000 0.000000 +v -0.015300 1.527900 0.050300 1.000000 0.000000 0.000000 +v -0.015200 1.525300 0.050100 1.000000 0.000000 0.000000 +v -0.016200 1.530800 0.050800 1.000000 0.000000 0.000000 +v -0.018103 1.529886 0.049322 1.000000 0.000000 0.000000 +v -0.016702 1.523141 0.049381 1.000000 0.000000 0.000000 +v -0.017301 1.522304 0.049412 1.000000 0.000000 0.000000 +v -0.015612 1.523203 0.049817 1.000000 0.000000 0.000000 +v -0.016513 1.521817 0.049816 1.000000 0.000000 0.000000 +v -0.024099 1.518299 0.050487 1.000000 0.000000 0.000000 +v -0.023694 1.517490 0.050592 1.000000 0.000000 0.000000 +v -0.020550 1.520111 0.050065 1.000000 0.000000 0.000000 +v -0.019827 1.519426 0.050302 1.000000 0.000000 0.000000 +v -0.049954 1.486090 -0.095874 0.584314 0.584314 0.584314 +v -0.053460 1.525713 -0.108355 0.584314 0.584314 0.584314 +v -0.047153 1.537083 0.048674 1.000000 0.000000 0.000000 +v -0.044799 1.534344 0.048966 1.000000 0.000000 0.000000 +v -0.041146 1.535635 0.050758 1.000000 0.000000 0.000000 +v -0.043109 1.539081 0.051229 1.000000 0.000000 0.000000 +v -0.050240 1.540841 0.047395 1.000000 0.000000 0.000000 +v -0.052685 1.537388 0.044750 1.000000 0.000000 0.000000 +v -0.049920 1.534711 0.046178 1.000000 0.000000 0.000000 +v -0.047487 1.532583 0.046972 1.000000 0.000000 0.000000 +v -0.051300 1.527400 0.039700 1.000000 0.000000 0.000000 +v -0.049306 1.527394 0.041107 1.000000 0.000000 0.000000 +v -0.049400 1.529100 0.042600 1.000000 0.000000 0.000000 +v -0.051400 1.529700 0.041500 1.000000 0.000000 0.000000 +v -0.053700 1.527400 0.038000 1.000000 0.000000 0.000000 +v -0.054100 1.530500 0.039900 1.000000 0.000000 0.000000 +v -0.050911 1.531995 0.043813 1.000000 0.000000 0.000000 +v -0.048706 1.530695 0.044709 1.000000 0.000000 0.000000 +v -0.053767 1.533613 0.042372 1.000000 0.000000 0.000000 +v -0.023810 1.535193 0.052318 1.000000 0.000000 0.000000 +v -0.024621 1.533474 0.050880 1.000000 0.000000 0.000000 +v -0.021502 1.531689 0.049858 1.000000 0.000000 0.000000 +v -0.020094 1.532606 0.050483 1.000000 0.000000 0.000000 +v -0.022472 1.536856 0.053894 1.000000 0.000000 0.000000 +v -0.017898 1.533692 0.051907 1.000000 0.000000 0.000000 +v -0.036404 1.539832 0.053434 1.000000 0.000000 0.000000 +v -0.035572 1.536604 0.052091 1.000000 0.000000 0.000000 +v -0.025594 1.531753 0.049356 1.000000 0.000000 0.000000 +v -0.023502 1.530697 0.049184 1.000000 0.000000 0.000000 +v -0.025447 1.531989 0.049401 1.000000 0.000000 0.000000 +v -0.022900 1.530600 0.049100 1.000000 0.000000 0.000000 +v -0.058944 1.585628 -0.090242 0.584314 0.584314 0.584314 +v -0.061100 1.592200 -0.078300 0.584314 0.584314 0.584314 +v -0.044568 1.602329 -0.084574 0.584314 0.584314 0.584314 +v -0.043693 1.594392 -0.096197 0.584314 0.584314 0.584314 +v -0.041000 1.531000 0.047100 1.000000 0.000000 0.000000 +v -0.041600 1.531400 0.047600 1.000000 0.000000 0.000000 +v -0.044100 1.530100 0.046400 1.000000 0.000000 0.000000 +v -0.043500 1.529700 0.046000 1.000000 0.000000 0.000000 +v -0.045300 1.528600 0.044700 1.000000 0.000000 0.000000 +v -0.045998 1.529012 0.044988 1.000000 0.000000 0.000000 +v -0.047100 1.528000 0.043400 1.000000 0.000000 0.000000 +v -0.046494 1.527712 0.043387 1.000000 0.000000 0.000000 +v -0.047100 1.527000 0.042300 1.000000 0.000000 0.000000 +v -0.047706 1.526995 0.042008 1.000000 0.000000 0.000000 +v -0.023200 1.531500 0.049500 1.000000 0.000000 0.000000 +v -0.025342 1.532353 0.049786 1.000000 0.000000 0.000000 +v -0.052443 1.554395 -0.110733 0.584314 0.584314 0.584314 +v -0.045436 1.574694 0.038505 1.000000 0.000000 0.000000 +v -0.052333 1.571092 0.032286 1.000000 0.000000 0.000000 +v -0.050200 1.565000 0.037900 1.000000 0.000000 0.000000 +v -0.042799 1.532208 0.048590 1.000000 0.000000 0.000000 +v -0.045400 1.530900 0.047000 1.000000 0.000000 0.000000 +v -0.047100 1.529700 0.045100 1.000000 0.000000 0.000000 +v -0.048000 1.528600 0.043300 1.000000 0.000000 0.000000 +v -0.048394 1.527705 0.042091 1.000000 0.000000 0.000000 +v -0.071726 1.489597 -0.018397 0.584314 0.584314 0.584314 +v -0.072300 1.489600 -0.019800 0.584314 0.584314 0.584314 +v -0.082403 1.497500 -0.046021 0.584314 0.584314 0.584314 +v -0.080609 1.503982 -0.045312 0.584314 0.584314 0.584314 +v -0.079052 1.507506 -0.044008 0.584314 0.584314 0.584314 +v -0.078100 1.518500 -0.029900 0.584314 0.584314 0.584314 +v -0.081582 1.521655 -0.032839 0.584314 0.584314 0.584314 +v -0.085888 1.480697 -0.037210 0.584314 0.584314 0.584314 +v -0.082727 1.479003 -0.033181 0.584314 0.584314 0.584314 +v -0.085882 1.481597 -0.037615 0.584314 0.584314 0.584314 +v -0.089000 1.517700 -0.043700 0.584314 0.584314 0.584314 +v -0.089700 1.515900 -0.045000 0.584314 0.584314 0.584314 +v -0.090689 1.515510 -0.044722 0.584314 0.584314 0.584314 +v -0.042993 1.466469 -0.086739 0.584314 0.584314 0.584314 +v -0.047760 1.478256 -0.092516 0.584314 0.584314 0.584314 +v -0.090400 1.513800 -0.046200 0.584314 0.584314 0.584314 +v -0.074300 1.494200 -0.021900 0.584314 0.584314 0.584314 +v -0.083479 1.497097 -0.046117 0.584314 0.584314 0.584314 +v -0.085217 1.496703 -0.047579 0.584314 0.584314 0.584314 +v -0.086211 1.491703 -0.047289 0.584314 0.584314 0.584314 +v -0.085503 1.492007 -0.046781 0.584314 0.584314 0.584314 +v -0.085486 1.486796 -0.045215 0.584314 0.584314 0.584314 +v -0.084991 1.487411 -0.044990 0.584314 0.584314 0.584314 +v -0.087400 1.484200 -0.040300 0.584314 0.584314 0.584314 +v -0.088704 1.487908 -0.042783 0.584314 0.584314 0.584314 +v -0.082840 1.522084 -0.034142 0.584314 0.584314 0.584314 +v -0.082112 1.521223 -0.032776 0.584314 0.584314 0.584314 +v -0.083570 1.521955 -0.034436 0.584314 0.584314 0.584314 +v -0.075177 1.493002 -0.023111 0.584314 0.584314 0.584314 +v -0.076500 1.516600 -0.029500 0.584314 0.584314 0.584314 +v -0.075900 1.514300 -0.028300 0.584314 0.584314 0.584314 +v -0.075700 1.514700 -0.028700 0.584314 0.584314 0.584314 +v -0.071800 1.498104 -0.026083 0.584314 0.584314 0.584314 +v -0.071802 1.498996 -0.026313 0.584314 0.584314 0.584314 +v -0.072996 1.496503 -0.026061 0.584314 0.584314 0.584314 +v -0.075410 1.495001 -0.024819 0.584314 0.584314 0.584314 +v -0.069598 1.487587 -0.024692 0.584314 0.584314 0.584314 +v -0.069300 1.486401 -0.026424 0.584314 0.584314 0.584314 +v -0.069687 1.485404 -0.026018 0.584314 0.584314 0.584314 +v -0.085515 1.527480 -0.038589 0.584314 0.584314 0.584314 +v -0.075999 1.513302 -0.027984 0.584314 0.584314 0.584314 +v -0.077199 1.514400 -0.028210 0.584314 0.584314 0.584314 +v -0.077500 1.515700 -0.028600 0.584314 0.584314 0.584314 +v -0.084313 1.521518 -0.034793 0.584314 0.584314 0.584314 +v -0.077793 1.516688 -0.028928 0.584314 0.584314 0.584314 +v -0.077100 1.516600 -0.028900 0.584314 0.584314 0.584314 +v -0.078695 1.518295 -0.029809 0.584314 0.584314 0.584314 +v -0.076700 1.516600 -0.029100 0.584314 0.584314 0.584314 +v -0.077487 1.491398 -0.037513 0.584314 0.584314 0.584314 +v -0.076038 1.491207 -0.035474 0.584314 0.584314 0.584314 +v -0.073200 1.509900 -0.019400 1.000000 0.000000 0.000000 +v -0.073700 1.508000 -0.021200 0.584314 0.584314 0.584314 +v -0.081613 1.478503 -0.031092 0.584314 0.584314 0.584314 +v -0.077071 1.514610 -0.039608 0.584314 0.584314 0.584314 +v -0.076983 1.517291 -0.040993 0.584314 0.584314 0.584314 +v -0.089989 1.492402 -0.044791 0.584314 0.584314 0.584314 +v -0.083719 1.487422 -0.033473 0.584314 0.584314 0.584314 +v -0.081400 1.486758 -0.031819 0.584314 0.584314 0.584314 +v -0.085799 1.488493 -0.035214 0.584314 0.584314 0.584314 +v -0.087406 1.491007 -0.036987 0.584314 0.584314 0.584314 +v -0.073275 1.507102 -0.031910 0.584314 0.584314 0.584314 +v -0.084591 1.511302 -0.037217 0.584314 0.584314 0.584314 +v -0.085725 1.509009 -0.038205 0.584314 0.584314 0.584314 +v -0.082810 1.511499 -0.035689 0.584314 0.584314 0.584314 +v -0.077116 1.520902 -0.039194 0.584314 0.584314 0.584314 +v -0.076866 1.521086 -0.036895 0.584314 0.584314 0.584314 +v -0.077427 1.516146 -0.037671 0.584314 0.584314 0.584314 +v -0.076733 1.519477 -0.036354 0.584314 0.584314 0.584314 +v -0.071294 1.491000 -0.025011 0.584314 0.584314 0.584314 +v -0.071539 1.485011 -0.028169 0.584314 0.584314 0.584314 +v -0.071376 1.487003 -0.028816 0.584314 0.584314 0.584314 +v -0.072800 1.485000 -0.029000 0.584314 0.584314 0.584314 +v -0.073029 1.485996 -0.030176 0.584314 0.584314 0.584314 +v -0.073697 1.487491 -0.031606 0.584314 0.584314 0.584314 +v -0.074400 1.489400 -0.032700 0.584314 0.584314 0.584314 +v -0.074445 1.491799 -0.033137 0.584314 0.584314 0.584314 +v -0.070700 1.495100 -0.025700 0.584314 0.584314 0.584314 +v -0.076554 1.521809 -0.026878 0.584314 0.584314 0.584314 +v -0.070296 1.493304 -0.025475 0.584314 0.584314 0.584314 +v -0.072097 1.496697 -0.025914 0.584314 0.584314 0.584314 +v -0.072201 1.494908 -0.025566 0.584314 0.584314 0.584314 +v -0.071902 1.492995 -0.025121 0.584314 0.584314 0.584314 +v -0.077900 1.484000 -0.026400 0.584314 0.584314 0.584314 +v -0.078789 1.485596 -0.028414 0.584314 0.584314 0.584314 +v -0.076283 1.484669 -0.025833 0.584314 0.584314 0.584314 +v -0.079808 1.486114 -0.030284 0.584314 0.584314 0.584314 +v -0.074909 1.484910 -0.025487 0.584314 0.584314 0.584314 +v -0.077240 1.515882 -0.038378 0.584314 0.584314 0.584314 +v -0.076800 1.519100 -0.038300 0.584314 0.584314 0.584314 +v -0.071770 1.493003 -0.016807 1.000000 0.000000 0.000000 +v -0.063703 1.501321 0.029000 1.000000 0.000000 0.000000 +v -0.065291 1.510391 0.023890 1.000000 0.000000 0.000000 +v -0.026059 1.454896 0.049004 1.000000 0.000000 0.000000 +v -0.025298 1.451791 0.049406 1.000000 0.000000 0.000000 +v -0.054800 1.491500 0.040500 1.000000 0.000000 0.000000 +v -0.049968 1.489449 0.045159 1.000000 0.000000 0.000000 +v -0.025148 1.460346 0.061133 1.000000 0.000000 0.000000 +v -0.024435 1.459621 0.061337 1.000000 0.000000 0.000000 +v -0.023522 1.460187 0.061418 1.000000 0.000000 0.000000 +v -0.024249 1.460520 0.061081 1.000000 0.000000 0.000000 +v -0.022000 1.460772 0.059500 1.000000 0.000000 0.000000 +v -0.022800 1.460707 0.058800 1.000000 0.000000 0.000000 +v -0.023014 1.460696 0.059746 1.000000 0.000000 0.000000 +v -0.022313 1.460759 0.060425 1.000000 0.000000 0.000000 +v -0.028109 1.475652 0.062034 1.000000 0.000000 0.000000 +v -0.031378 1.479582 0.059952 1.000000 0.000000 0.000000 +v -0.034158 1.475322 0.058856 1.000000 0.000000 0.000000 +v -0.030949 1.471935 0.060987 1.000000 0.000000 0.000000 +v -0.024580 1.459509 0.051432 1.000000 0.000000 0.000000 +v -0.024307 1.461110 0.051921 1.000000 0.000000 0.000000 +v -0.023228 1.460994 0.055868 1.000000 0.000000 0.000000 +v -0.023532 1.460361 0.055415 1.000000 0.000000 0.000000 +v -0.024417 1.456932 0.051523 1.000000 0.000000 0.000000 +v -0.023415 1.459081 0.054968 1.000000 0.000000 0.000000 +v -0.026131 1.458845 0.048941 1.000000 0.000000 0.000000 +v -0.025595 1.461351 0.049316 1.000000 0.000000 0.000000 +v -0.033679 1.454181 0.057135 1.000000 0.000000 0.000000 +v -0.030493 1.456211 0.059276 1.000000 0.000000 0.000000 +v -0.031308 1.459310 0.059370 1.000000 0.000000 0.000000 +v -0.034660 1.458692 0.057534 1.000000 0.000000 0.000000 +v -0.025183 1.486692 0.060752 1.000000 0.000000 0.000000 +v -0.028504 1.483099 0.060419 1.000000 0.000000 0.000000 +v -0.025503 1.479201 0.062212 1.000000 0.000000 0.000000 +v -0.022102 1.483306 0.062428 1.000000 0.000000 0.000000 +v -0.018718 1.488020 0.063334 1.000000 0.000000 0.000000 +v -0.021581 1.490552 0.061358 1.000000 0.000000 0.000000 +v -0.017491 1.495490 0.066471 1.000000 0.000000 0.000000 +v -0.017785 1.491959 0.067693 1.000000 0.000000 0.000000 +v -0.017219 1.491111 0.070903 1.000000 0.000000 0.000000 +v -0.017625 1.493108 0.069690 1.000000 0.000000 0.000000 +v -0.015426 1.487303 0.069410 1.000000 0.000000 0.000000 +v -0.017764 1.489813 0.066272 1.000000 0.000000 0.000000 +v -0.011460 1.486297 0.069954 1.000000 0.000000 0.000000 +v -0.011262 1.487086 0.070809 1.000000 0.000000 0.000000 +v -0.015505 1.486658 0.068092 1.000000 0.000000 0.000000 +v -0.015732 1.485856 0.066517 1.000000 0.000000 0.000000 +v -0.011732 1.485545 0.068955 1.000000 0.000000 0.000000 +v -0.010705 1.488275 0.071582 1.000000 0.000000 0.000000 +v -0.013514 1.488048 0.071692 1.000000 0.000000 0.000000 +v -0.015121 1.489854 0.073173 1.000000 0.000000 0.000000 +v -0.004381 1.488908 0.079905 1.000000 0.000000 0.000000 +v -0.005639 1.490149 0.081872 1.000000 0.000000 0.000000 +v -0.010589 1.518080 0.064760 1.000000 0.000000 0.000000 +v -0.013675 1.514833 0.061918 1.000000 0.000000 0.000000 +v -0.010631 1.515723 0.067072 1.000000 0.000000 0.000000 +v -0.013514 1.512714 0.064157 1.000000 0.000000 0.000000 +v -0.014372 1.491968 0.076867 1.000000 0.000000 0.000000 +v -0.015789 1.493572 0.075165 1.000000 0.000000 0.000000 +v -0.011991 1.493152 0.080609 1.000000 0.000000 0.000000 +v -0.013201 1.495495 0.080068 1.000000 0.000000 0.000000 +v -0.003688 1.531722 0.062648 1.000000 0.000000 0.000000 +v -0.002148 1.485462 0.075849 1.000000 0.000000 0.000000 +v -0.002408 1.484602 0.075445 1.000000 0.000000 0.000000 +v -0.001814 1.486575 0.077679 1.000000 0.000000 0.000000 +v -0.022510 1.586616 -0.113415 0.584314 0.584314 0.584314 +v -0.023000 1.599213 -0.102898 0.584314 0.584314 0.584314 +v -0.022139 1.613460 -0.081347 0.584314 0.584314 0.584314 +v -0.019834 1.618165 -0.069601 0.584314 0.584314 0.584314 +v -0.005695 1.468502 0.076511 1.000000 0.000000 0.000000 +v -0.005296 1.470999 0.076289 1.000000 0.000000 0.000000 +v -0.012858 1.464687 0.059653 1.000000 0.000000 0.000000 +v -0.007373 1.464960 0.061179 1.000000 0.000000 0.000000 +v -0.006975 1.463108 0.065761 1.000000 0.000000 0.000000 +v -0.012269 1.462964 0.064467 1.000000 0.000000 0.000000 +v -0.016278 1.462759 0.062362 1.000000 0.000000 0.000000 +v -0.017223 1.464311 0.057602 1.000000 0.000000 0.000000 +v -0.013211 1.465957 0.057083 1.000000 0.000000 0.000000 +v -0.007475 1.466294 0.058483 1.000000 0.000000 0.000000 +v -0.011800 1.461943 0.068868 1.000000 0.000000 0.000000 +v -0.006582 1.462229 0.070956 1.000000 0.000000 0.000000 +v -0.006449 1.463859 0.073683 1.000000 0.000000 0.000000 +v -0.011854 1.463360 0.071100 1.000000 0.000000 0.000000 +v -0.018283 1.481390 0.065162 1.000000 0.000000 0.000000 +v -0.014145 1.482119 0.067466 1.000000 0.000000 0.000000 +v -0.009947 1.482343 0.070802 1.000000 0.000000 0.000000 +v -0.006663 1.482219 0.073355 1.000000 0.000000 0.000000 +v -0.006070 1.484310 0.073705 1.000000 0.000000 0.000000 +v -0.008634 1.484916 0.071533 1.000000 0.000000 0.000000 +v -0.005846 1.485250 0.074051 1.000000 0.000000 0.000000 +v -0.008425 1.485773 0.072107 1.000000 0.000000 0.000000 +v -0.008365 1.486729 0.072615 1.000000 0.000000 0.000000 +v -0.008909 1.488251 0.072763 1.000000 0.000000 0.000000 +v -0.007010 1.488079 0.074018 1.000000 0.000000 0.000000 +v -0.007500 1.489300 0.073600 1.000000 0.000000 0.000000 +v -0.005805 1.486238 0.074278 1.000000 0.000000 0.000000 +v -0.004053 1.510006 0.078946 1.000000 0.000000 0.000000 +v -0.003955 1.513584 0.076221 1.000000 0.000000 0.000000 +v -0.009855 1.472515 0.074138 1.000000 0.000000 0.000000 +v -0.005009 1.472999 0.075408 1.000000 0.000000 0.000000 +v -0.004315 1.476815 0.074624 1.000000 0.000000 0.000000 +v -0.008666 1.476809 0.073279 1.000000 0.000000 0.000000 +v -0.013211 1.476061 0.071006 1.000000 0.000000 0.000000 +v -0.014910 1.470831 0.071677 1.000000 0.000000 0.000000 +v -0.002734 1.483714 0.075107 1.000000 0.000000 0.000000 +v -0.010300 1.470400 0.074600 1.000000 0.000000 0.000000 +v -0.010703 1.467995 0.074513 1.000000 0.000000 0.000000 +v -0.015502 1.468576 0.071979 1.000000 0.000000 0.000000 +v -0.015800 1.466400 0.071600 1.000000 0.000000 0.000000 +v -0.019602 1.468322 0.068491 1.000000 0.000000 0.000000 +v -0.018439 1.474099 0.068134 1.000000 0.000000 0.000000 +v -0.023987 1.472042 0.064669 1.000000 0.000000 0.000000 +v -0.023470 1.465647 0.065227 1.000000 0.000000 0.000000 +v -0.031113 1.462468 0.060031 1.000000 0.000000 0.000000 +v -0.026531 1.460082 0.060975 1.000000 0.000000 0.000000 +v -0.026577 1.461421 0.061328 1.000000 0.000000 0.000000 +v -0.026234 1.462618 0.062158 1.000000 0.000000 0.000000 +v -0.030104 1.465556 0.061112 1.000000 0.000000 0.000000 +v -0.034404 1.463254 0.058475 1.000000 0.000000 0.000000 +v -0.033149 1.467775 0.059705 1.000000 0.000000 0.000000 +v -0.027971 1.468600 0.062562 1.000000 0.000000 0.000000 +v -0.025395 1.463939 0.063270 1.000000 0.000000 0.000000 +v -0.025250 1.461104 0.061542 1.000000 0.000000 0.000000 +v -0.024309 1.460885 0.061344 1.000000 0.000000 0.000000 +v -0.024976 1.461816 0.062298 1.000000 0.000000 0.000000 +v -0.024034 1.461246 0.062012 1.000000 0.000000 0.000000 +v -0.024386 1.462489 0.063348 1.000000 0.000000 0.000000 +v -0.023558 1.461583 0.062874 1.000000 0.000000 0.000000 +v -0.022612 1.462197 0.064256 1.000000 0.000000 0.000000 +v -0.023177 1.463590 0.064981 1.000000 0.000000 0.000000 +v -0.022133 1.460920 0.059768 1.000000 0.000000 0.000000 +v -0.021168 1.460992 0.060855 1.000000 0.000000 0.000000 +v -0.021285 1.460964 0.062165 1.000000 0.000000 0.000000 +v -0.022204 1.460838 0.060987 1.000000 0.000000 0.000000 +v -0.022757 1.460837 0.059067 1.000000 0.000000 0.000000 +v -0.022727 1.460779 0.060310 1.000000 0.000000 0.000000 +v -0.022731 1.461571 0.056693 1.000000 0.000000 0.000000 +v -0.021763 1.461781 0.057508 1.000000 0.000000 0.000000 +v -0.023289 1.460690 0.058334 1.000000 0.000000 0.000000 +v -0.023330 1.460718 0.059396 1.000000 0.000000 0.000000 +v -0.023394 1.460716 0.060836 1.000000 0.000000 0.000000 +v -0.023251 1.460914 0.061284 1.000000 0.000000 0.000000 +v -0.022758 1.461069 0.062036 1.000000 0.000000 0.000000 +v -0.021882 1.461334 0.063176 1.000000 0.000000 0.000000 +v -0.015798 1.464470 0.070396 1.000000 0.000000 0.000000 +v -0.019424 1.464378 0.068200 1.000000 0.000000 0.000000 +v -0.019113 1.462802 0.066769 1.000000 0.000000 0.000000 +v -0.015646 1.462491 0.068328 1.000000 0.000000 0.000000 +v -0.018697 1.461683 0.065172 1.000000 0.000000 0.000000 +v -0.017785 1.465453 0.055196 1.000000 0.000000 0.000000 +v -0.015373 1.461586 0.066485 1.000000 0.000000 0.000000 +v -0.020861 1.463425 0.055138 1.000000 0.000000 0.000000 +v -0.021815 1.464456 0.052646 1.000000 0.000000 0.000000 +v -0.019799 1.462183 0.059397 1.000000 0.000000 0.000000 +v -0.023776 1.462261 0.052914 1.000000 0.000000 0.000000 +v -0.022746 1.462430 0.053473 1.000000 0.000000 0.000000 +v -0.024706 1.463135 0.050424 1.000000 0.000000 0.000000 +v -0.023488 1.463681 0.051401 1.000000 0.000000 0.000000 +v -0.018585 1.461130 0.063357 1.000000 0.000000 0.000000 +v -0.019687 1.466161 0.068684 1.000000 0.000000 0.000000 +v -0.011193 1.465708 0.073182 1.000000 0.000000 0.000000 +v -0.006008 1.466276 0.075328 1.000000 0.000000 0.000000 +v -0.004764 1.502917 0.085468 1.000000 0.000000 0.000000 +v -0.004430 1.506626 0.081984 1.000000 0.000000 0.000000 +v -0.022824 1.460592 0.061246 1.000000 0.000000 0.000000 +v -0.009000 1.380900 0.008200 0.584314 0.584314 0.584314 +v -0.025820 1.458897 0.061092 1.000000 0.000000 0.000000 +v -0.023838 1.454565 0.051597 1.000000 0.000000 0.000000 +v -0.022628 1.458084 0.055319 1.000000 0.000000 0.000000 +v -0.030940 1.449785 0.057855 1.000000 0.000000 0.000000 +v -0.026597 1.445592 0.060153 1.000000 0.000000 0.000000 +v -0.024565 1.449667 0.061995 1.000000 0.000000 0.000000 +v -0.028277 1.452952 0.060029 1.000000 0.000000 0.000000 +v -0.021911 1.455732 0.064216 1.000000 0.000000 0.000000 +v -0.024465 1.457488 0.062231 1.000000 0.000000 0.000000 +v -0.023209 1.458786 0.062690 1.000000 0.000000 0.000000 +v -0.020872 1.457806 0.064774 1.000000 0.000000 0.000000 +v -0.019961 1.459373 0.065056 1.000000 0.000000 0.000000 +v -0.022233 1.459817 0.062668 1.000000 0.000000 0.000000 +v -0.017872 1.461109 0.063406 1.000000 0.000000 0.000000 +v -0.013488 1.461506 0.066143 1.000000 0.000000 0.000000 +v -0.012943 1.457844 0.061366 1.000000 0.000000 0.000000 +v -0.017612 1.457529 0.058998 1.000000 0.000000 0.000000 +v -0.021527 1.457717 0.056493 1.000000 0.000000 0.000000 +v -0.021070 1.460876 0.060391 1.000000 0.000000 0.000000 +v -0.018523 1.461113 0.064244 1.000000 0.000000 0.000000 +v -0.021342 1.460835 0.061409 1.000000 0.000000 0.000000 +v -0.013977 1.461497 0.067282 1.000000 0.000000 0.000000 +v -0.018900 1.383500 0.004700 0.584314 0.584314 0.584314 +v -0.021710 1.460566 0.062261 1.000000 0.000000 0.000000 +v -0.019048 1.460695 0.064671 1.000000 0.000000 0.000000 +v -0.014749 1.460724 0.068045 1.000000 0.000000 0.000000 +v -0.015854 1.458903 0.068665 1.000000 0.000000 0.000000 +v -0.016792 1.456693 0.068793 1.000000 0.000000 0.000000 +v -0.017461 1.453899 0.067856 1.000000 0.000000 0.000000 +v -0.019149 1.446712 0.065034 1.000000 0.000000 0.000000 +v -0.020456 1.441594 0.063824 1.000000 0.000000 0.000000 +v -0.013229 1.444892 0.067749 1.000000 0.000000 0.000000 +v -0.014176 1.439699 0.067357 1.000000 0.000000 0.000000 +v -0.012333 1.452486 0.071105 1.000000 0.000000 0.000000 +v -0.012051 1.456002 0.072665 1.000000 0.000000 0.000000 +v -0.011198 1.458638 0.072223 1.000000 0.000000 0.000000 +v -0.010410 1.460704 0.071129 1.000000 0.000000 0.000000 +v -0.003264 1.481942 0.074712 1.000000 0.000000 0.000000 +v -0.005689 1.488011 0.075291 1.000000 0.000000 0.000000 +v -0.004510 1.488195 0.077505 1.000000 0.000000 0.000000 +v -0.007868 1.491520 0.082722 1.000000 0.000000 0.000000 +v -0.001736 1.487415 0.079846 1.000000 0.000000 0.000000 +v -0.010492 1.492952 0.082279 1.000000 0.000000 0.000000 +v -0.008765 1.492452 0.083652 1.000000 0.000000 0.000000 +v -0.009522 1.493885 0.084514 1.000000 0.000000 0.000000 +v -0.010810 1.494494 0.083310 1.000000 0.000000 0.000000 +v -0.007182 1.491909 0.084782 1.000000 0.000000 0.000000 +v -0.008500 1.493700 0.085400 1.000000 0.000000 0.000000 +v -0.002902 1.491075 0.086336 1.000000 0.000000 0.000000 +v -0.003721 1.494335 0.088102 1.000000 0.000000 0.000000 +v -0.004650 1.499551 0.087718 1.000000 0.000000 0.000000 +v -0.004111 1.496344 0.088521 1.000000 0.000000 0.000000 +v -0.009882 1.495499 0.084882 1.000000 0.000000 0.000000 +v -0.011411 1.497274 0.083159 1.000000 0.000000 0.000000 +v -0.011743 1.500268 0.080871 1.000000 0.000000 0.000000 +v -0.013890 1.498099 0.077459 1.000000 0.000000 0.000000 +v -0.010602 1.625284 -0.027469 0.584314 0.584314 0.584314 +v -0.009656 1.461739 0.070112 1.000000 0.000000 0.000000 +v -0.008742 1.461758 0.068290 1.000000 0.000000 0.000000 +v -0.012774 1.447697 0.054662 1.000000 0.000000 0.000000 +v -0.012805 1.452064 0.057064 1.000000 0.000000 0.000000 +v -0.008059 1.451891 0.058520 1.000000 0.000000 0.000000 +v -0.008007 1.447711 0.056270 1.000000 0.000000 0.000000 +v -0.004812 1.461758 0.069092 1.000000 0.000000 0.000000 +v -0.004543 1.458037 0.063816 1.000000 0.000000 0.000000 +v -0.008262 1.458084 0.063082 1.000000 0.000000 0.000000 +v -0.005072 1.461835 0.071297 1.000000 0.000000 0.000000 +v -0.005589 1.460631 0.072613 1.000000 0.000000 0.000000 +v -0.006193 1.458494 0.073986 1.000000 0.000000 0.000000 +v -0.004333 1.451771 0.059202 1.000000 0.000000 0.000000 +v -0.004401 1.447435 0.056949 1.000000 0.000000 0.000000 +v -0.022224 1.453109 0.052652 1.000000 0.000000 0.000000 +v -0.022834 1.449420 0.050597 1.000000 0.000000 0.000000 +v -0.017680 1.452071 0.055120 1.000000 0.000000 0.000000 +v -0.018045 1.448223 0.052946 1.000000 0.000000 0.000000 +v -0.007817 1.439111 0.069698 1.000000 0.000000 0.000000 +v -0.007074 1.444141 0.069216 1.000000 0.000000 0.000000 +v -0.006581 1.455345 0.074334 1.000000 0.000000 0.000000 +v -0.006668 1.451550 0.072522 1.000000 0.000000 0.000000 +v -0.022923 1.607438 -0.092701 0.584314 0.584314 0.584314 +v -0.062856 1.576001 0.009824 0.584314 0.584314 0.584314 +v -0.061268 1.569757 0.017690 1.000000 0.000000 0.000000 +v -0.055147 1.577388 0.024227 1.000000 0.000000 0.000000 +v -0.056734 1.582384 0.017099 0.584314 0.584314 0.584314 +v -0.063470 1.583142 0.001913 0.584314 0.584314 0.584314 +v -0.057200 1.588300 0.009600 0.584314 0.584314 0.584314 +v -0.040530 1.616390 -0.045728 0.584314 0.584314 0.584314 +v -0.041088 1.616383 -0.031901 0.584314 0.584314 0.584314 +v -0.021913 1.622737 -0.028613 0.584314 0.584314 0.584314 +v -0.035329 1.615763 -0.059197 0.584314 0.584314 0.584314 +v -0.047797 1.607383 -0.067962 0.584314 0.584314 0.584314 +v -0.050017 1.610884 -0.049176 0.584314 0.584314 0.584314 +v -0.049914 1.611324 -0.034400 0.584314 0.584314 0.584314 +v -0.025319 1.417296 -0.086431 0.584314 0.584314 0.584314 +v -0.053341 1.537593 -0.109735 0.584314 0.584314 0.584314 +v -0.048594 1.610887 -0.021003 0.584314 0.584314 0.584314 +v -0.040400 1.615200 -0.018500 0.584314 0.584314 0.584314 +v -0.039869 1.612797 -0.006457 0.584314 0.584314 0.584314 +v -0.047253 1.609196 -0.009635 0.584314 0.584314 0.584314 +v -0.021703 1.620912 -0.014487 0.584314 0.584314 0.584314 +v -0.010484 1.623294 -0.012843 0.584314 0.584314 0.584314 +v -0.019518 1.501968 -0.122785 0.584314 0.584314 0.584314 +v -0.003912 1.516946 0.073584 1.000000 0.000000 0.000000 +v -0.049036 1.451832 -0.071080 0.584314 0.584314 0.584314 +v -0.058265 1.451117 -0.053166 0.584314 0.584314 0.584314 +v -0.051200 1.402600 -0.033800 0.584314 0.584314 0.584314 +v -0.072990 1.474329 -0.033592 0.584314 0.584314 0.584314 +v -0.072822 1.474732 -0.034523 0.584314 0.584314 0.584314 +v -0.057824 1.437788 -0.035288 0.584314 0.584314 0.584314 +v -0.061932 1.450619 -0.035689 0.584314 0.584314 0.584314 +v -0.039174 1.452431 -0.082310 0.584314 0.584314 0.584314 +v -0.082400 1.485383 -0.044422 0.584314 0.584314 0.584314 +v -0.082903 1.489094 -0.045618 0.584314 0.584314 0.584314 +v -0.083405 1.484800 -0.043789 0.584314 0.584314 0.584314 +v -0.084115 1.488697 -0.045292 0.584314 0.584314 0.584314 +v -0.083998 1.492895 -0.046032 0.584314 0.584314 0.584314 +v -0.083879 1.483300 -0.042725 0.584314 0.584314 0.584314 +v -0.076924 1.521442 -0.034424 0.584314 0.584314 0.584314 +v -0.078187 1.523278 -0.033695 0.584314 0.584314 0.584314 +v -0.072100 1.473090 -0.029303 0.584314 0.584314 0.584314 +v -0.072098 1.473611 -0.030997 0.584314 0.584314 0.584314 +v -0.071500 1.473300 -0.030200 0.584314 0.584314 0.584314 +v -0.071200 1.472900 -0.028900 0.584314 0.584314 0.584314 +v -0.071696 1.472309 -0.027792 0.584314 0.584314 0.584314 +v -0.071001 1.472380 -0.027818 0.584314 0.584314 0.584314 +v -0.076624 1.536198 -0.028498 0.584314 0.584314 0.584314 +v -0.070000 1.472400 -0.031600 0.584314 0.584314 0.584314 +v -0.072088 1.474257 -0.034077 0.584314 0.584314 0.584314 +v -0.071908 1.473871 -0.032409 0.584314 0.584314 0.584314 +v -0.071000 1.473200 -0.031100 0.584314 0.584314 0.584314 +v -0.070412 1.472386 -0.029103 0.584314 0.584314 0.584314 +v -0.070191 1.471713 -0.027395 0.584314 0.584314 0.584314 +v -0.071000 1.471300 -0.026800 0.584314 0.584314 0.584314 +v -0.084111 1.482503 -0.042789 0.584314 0.584314 0.584314 +v -0.076500 1.472200 -0.031600 0.584314 0.584314 0.584314 +v -0.079079 1.513709 -0.040420 0.584314 0.584314 0.584314 +v -0.079508 1.511895 -0.041894 0.584314 0.584314 0.584314 +v -0.081688 1.513702 -0.043406 0.584314 0.584314 0.584314 +v -0.081123 1.515993 -0.041982 0.584314 0.584314 0.584314 +v -0.060712 1.487981 -0.084226 0.584314 0.584314 0.584314 +v -0.062551 1.497993 -0.088895 0.584314 0.584314 0.584314 +v -0.012694 1.418793 -0.090986 0.584314 0.584314 0.584314 +v -0.012984 1.431500 -0.091585 0.584314 0.584314 0.584314 +v -0.076230 1.530994 -0.074442 0.584314 0.584314 0.584314 +v -0.078600 1.515400 -0.038900 0.584314 0.584314 0.584314 +v -0.080687 1.517803 -0.040507 0.584314 0.584314 0.584314 +v -0.082899 1.493300 -0.046163 0.584314 0.584314 0.584314 +v -0.077782 1.514596 -0.038896 0.584314 0.584314 0.584314 +v -0.078304 1.512904 -0.040408 0.584314 0.584314 0.584314 +v -0.081700 1.519700 -0.042100 0.584314 0.584314 0.584314 +v -0.082200 1.517500 -0.043700 0.584314 0.584314 0.584314 +v -0.082816 1.515000 -0.045088 0.584314 0.584314 0.584314 +v -0.078788 1.510996 -0.041897 0.584314 0.584314 0.584314 +v -0.077321 1.519308 -0.041011 0.584314 0.584314 0.584314 +v -0.080072 1.561101 -0.051900 0.584314 0.584314 0.584314 +v -0.079500 1.554700 -0.065300 0.584314 0.584314 0.584314 +v -0.077000 1.577000 -0.055600 0.584314 0.584314 0.584314 +v -0.076100 1.571400 -0.070200 0.584314 0.584314 0.584314 +v -0.071739 1.564758 -0.085415 0.584314 0.584314 0.584314 +v -0.075100 1.546934 -0.080535 0.584314 0.584314 0.584314 +v -0.076756 1.521093 -0.035588 0.584314 0.584314 0.584314 +v -0.079218 1.524487 -0.034190 0.584314 0.584314 0.584314 +v -0.064046 1.588845 -0.005609 0.584314 0.584314 0.584314 +v -0.069100 1.583700 -0.012500 0.584314 0.584314 0.584314 +v -0.057334 1.593424 0.002717 0.584314 0.584314 0.584314 +v -0.057190 1.597993 -0.003706 0.584314 0.584314 0.584314 +v -0.063487 1.594294 -0.012304 0.584314 0.584314 0.584314 +v -0.070644 1.587414 -0.023990 0.584314 0.584314 0.584314 +v -0.078576 1.553401 -0.037404 0.584314 0.584314 0.584314 +v -0.078229 1.566908 -0.038395 0.584314 0.584314 0.584314 +v -0.075235 1.571187 -0.025413 0.584314 0.584314 0.584314 +v -0.074960 1.582288 -0.040605 0.584314 0.584314 0.584314 +v -0.066600 1.595600 -0.030100 0.584314 0.584314 0.584314 +v -0.070333 1.591526 -0.044305 0.584314 0.584314 0.584314 +v -0.059609 1.603311 -0.033797 0.584314 0.584314 0.584314 +v -0.061738 1.601056 -0.048113 0.584314 0.584314 0.584314 +v -0.061583 1.597869 -0.063692 0.584314 0.584314 0.584314 +v -0.071969 1.587274 -0.059096 0.584314 0.584314 0.584314 +v -0.061700 1.599100 -0.018200 0.584314 0.584314 0.584314 +v -0.055613 1.602114 -0.008857 0.584314 0.584314 0.584314 +v -0.056700 1.604800 -0.021500 0.584314 0.584314 0.584314 +v -0.053364 1.605595 -0.013183 0.584314 0.584314 0.584314 +v -0.073321 1.572998 -0.018597 0.584314 0.584314 0.584314 +v -0.065872 1.467058 -0.027795 0.584314 0.584314 0.584314 +v -0.066067 1.467582 -0.022798 0.584314 0.584314 0.584314 +v -0.069850 1.479001 -0.015004 1.000000 0.000000 0.000000 +v -0.067976 1.503604 0.017668 1.000000 0.000000 0.000000 +v -0.068022 1.515690 0.015397 1.000000 0.000000 0.000000 +v -0.070799 1.507799 0.005481 1.000000 0.000000 0.000000 +v -0.069552 1.493504 0.006914 1.000000 0.000000 0.000000 +v -0.066865 1.528807 0.013619 1.000000 0.000000 0.000000 +v -0.070014 1.521399 0.003997 1.000000 0.000000 0.000000 +v -0.069755 1.535201 0.001517 1.000000 0.000000 0.000000 +v -0.066276 1.542800 0.012494 1.000000 0.000000 0.000000 +v -0.063123 1.558544 -0.099907 0.584314 0.584314 0.584314 +v -0.065392 1.542129 -0.097712 0.584314 0.584314 0.584314 +v -0.065894 1.530249 -0.096000 0.584314 0.584314 0.584314 +v -0.048710 1.559533 0.042020 1.000000 0.000000 0.000000 +v -0.022210 1.577716 -0.119229 0.584314 0.584314 0.584314 +v -0.047881 1.581782 0.031191 1.000000 0.000000 0.000000 +v -0.055375 1.577878 -0.100584 0.584314 0.584314 0.584314 +v -0.042198 1.583290 -0.106886 0.584314 0.584314 0.584314 +v -0.071219 1.581908 -0.073609 0.584314 0.584314 0.584314 +v -0.068054 1.575876 -0.086371 0.584314 0.584314 0.584314 +v -0.060075 1.568989 -0.100537 0.584314 0.584314 0.584314 +v -0.065163 1.514915 -0.094089 0.584314 0.584314 0.584314 +v -0.047764 1.605853 -0.002383 0.584314 0.584314 0.584314 +v -0.056288 1.527306 0.035388 1.000000 0.000000 0.000000 +v -0.055400 1.522900 0.034700 1.000000 0.000000 0.000000 +v -0.056800 1.532000 0.036900 1.000000 0.000000 0.000000 +v -0.053710 1.518407 0.036312 1.000000 0.000000 0.000000 +v -0.016988 1.511816 0.059509 1.000000 0.000000 0.000000 +v -0.016523 1.509829 0.061527 1.000000 0.000000 0.000000 +v -0.016060 1.507311 0.063477 1.000000 0.000000 0.000000 +v -0.019643 1.507148 0.059252 1.000000 0.000000 0.000000 +v -0.018886 1.504168 0.061098 1.000000 0.000000 0.000000 +v -0.012688 1.507683 0.068746 1.000000 0.000000 0.000000 +v -0.013226 1.510263 0.066357 1.000000 0.000000 0.000000 +v -0.015327 1.504867 0.065498 1.000000 0.000000 0.000000 +v -0.014758 1.501776 0.067443 1.000000 0.000000 0.000000 +v -0.012525 1.504630 0.071081 1.000000 0.000000 0.000000 +v -0.018383 1.489537 0.064268 1.000000 0.000000 0.000000 +v -0.019566 1.494092 0.062319 1.000000 0.000000 0.000000 +v -0.017300 1.498299 0.064286 1.000000 0.000000 0.000000 +v -0.022379 1.501260 0.059636 1.000000 0.000000 0.000000 +v -0.021217 1.498003 0.061176 1.000000 0.000000 0.000000 +v -0.018101 1.501539 0.062795 1.000000 0.000000 0.000000 +v -0.023651 1.504578 0.057693 1.000000 0.000000 0.000000 +v -0.015512 1.498333 0.069921 1.000000 0.000000 0.000000 +v -0.016336 1.495285 0.072852 1.000000 0.000000 0.000000 +v -0.013197 1.501347 0.074285 1.000000 0.000000 0.000000 +v -0.011289 1.503443 0.077455 1.000000 0.000000 0.000000 +v -0.010513 1.506879 0.074245 1.000000 0.000000 0.000000 +v -0.020300 1.509300 0.057400 1.000000 0.000000 0.000000 +v -0.024688 1.506991 0.055978 1.000000 0.000000 0.000000 +v -0.024313 1.494467 0.060252 1.000000 0.000000 0.000000 +v -0.028338 1.491184 0.059583 1.000000 0.000000 0.000000 +v -0.026548 1.498726 0.058604 1.000000 0.000000 0.000000 +v -0.030377 1.496054 0.058135 1.000000 0.000000 0.000000 +v -0.027823 1.502213 0.056766 1.000000 0.000000 0.000000 +v -0.031864 1.499784 0.056280 1.000000 0.000000 0.000000 +v -0.031980 1.487707 0.059208 1.000000 0.000000 0.000000 +v -0.034944 1.483875 0.058162 1.000000 0.000000 0.000000 +v -0.037789 1.479097 0.056553 1.000000 0.000000 0.000000 +v -0.037765 1.488714 0.056258 1.000000 0.000000 0.000000 +v -0.040839 1.483470 0.054215 1.000000 0.000000 0.000000 +v -0.039779 1.493485 0.054171 1.000000 0.000000 0.000000 +v -0.043257 1.488620 0.051763 1.000000 0.000000 0.000000 +v -0.034514 1.492718 0.057558 1.000000 0.000000 0.000000 +v -0.036283 1.496846 0.055538 1.000000 0.000000 0.000000 +v -0.033157 1.503343 0.054269 1.000000 0.000000 0.000000 +v -0.029010 1.505211 0.054822 1.000000 0.000000 0.000000 +v -0.041601 1.504292 0.050690 1.000000 0.000000 0.000000 +v -0.041085 1.498898 0.052381 1.000000 0.000000 0.000000 +v -0.037317 1.501291 0.053567 1.000000 0.000000 0.000000 +v -0.037974 1.505637 0.051703 1.000000 0.000000 0.000000 +v -0.045069 1.495056 0.049656 1.000000 0.000000 0.000000 +v -0.045400 1.502500 0.048600 1.000000 0.000000 0.000000 +v -0.045080 1.507384 0.047479 1.000000 0.000000 0.000000 +v -0.031897 1.513496 0.050390 1.000000 0.000000 0.000000 +v -0.027202 1.514204 0.051209 1.000000 0.000000 0.000000 +v -0.035292 1.513223 0.049379 1.000000 0.000000 0.000000 +v -0.041527 1.508144 0.049267 1.000000 0.000000 0.000000 +v -0.038279 1.508792 0.050353 1.000000 0.000000 0.000000 +v -0.049200 1.514300 0.041600 1.000000 0.000000 0.000000 +v -0.046800 1.513600 0.043500 1.000000 0.000000 0.000000 +v -0.041300 1.513100 0.047100 1.000000 0.000000 0.000000 +v -0.038537 1.513112 0.048362 1.000000 0.000000 0.000000 +v -0.044195 1.513295 0.045391 1.000000 0.000000 0.000000 +v -0.022901 1.515905 0.051410 1.000000 0.000000 0.000000 +v -0.018571 1.517968 0.051684 1.000000 0.000000 0.000000 +v -0.055257 1.438999 -0.050771 0.584314 0.584314 0.584314 +v -0.010308 1.510155 0.071901 1.000000 0.000000 0.000000 +v -0.010478 1.513105 0.069505 1.000000 0.000000 0.000000 +v -0.015156 1.533977 0.054304 1.000000 0.000000 0.000000 +v -0.013596 1.531070 0.053522 1.000000 0.000000 0.000000 +v -0.006923 1.531511 0.060081 1.000000 0.000000 0.000000 +v -0.019158 1.537755 0.056855 1.000000 0.000000 0.000000 +v -0.015489 1.520401 0.051954 1.000000 0.000000 0.000000 +v -0.013800 1.522800 0.052200 1.000000 0.000000 0.000000 +v -0.013178 1.525174 0.052712 1.000000 0.000000 0.000000 +v -0.012942 1.528094 0.053113 1.000000 0.000000 0.000000 +v -0.030114 1.551419 0.058036 1.000000 0.000000 0.000000 +v -0.026720 1.545266 0.059766 1.000000 0.000000 0.000000 +v -0.058325 1.563672 0.026481 1.000000 0.000000 0.000000 +v -0.061625 1.555341 0.023089 1.000000 0.000000 0.000000 +v -0.051668 1.546035 0.044932 1.000000 0.000000 0.000000 +v -0.054700 1.541900 0.041900 1.000000 0.000000 0.000000 +v -0.056409 1.536994 0.039107 1.000000 0.000000 0.000000 +v -0.063211 1.544202 0.020706 1.000000 0.000000 0.000000 +v -0.064120 1.532200 0.020511 1.000000 0.000000 0.000000 +v -0.064932 1.520906 0.021512 1.000000 0.000000 0.000000 +v -0.049122 1.592694 0.017549 0.584314 0.584314 0.584314 +v -0.048919 1.597614 0.010981 0.584314 0.584314 0.584314 +v -0.048889 1.587381 0.024404 0.584314 0.584314 0.584314 +v -0.039547 1.609385 0.002641 0.584314 0.584314 0.584314 +v -0.039647 1.605670 0.010726 0.584314 0.584314 0.584314 +v -0.048516 1.602029 0.004404 0.584314 0.584314 0.584314 +v -0.040184 1.601257 0.017716 0.584314 0.584314 0.584314 +v -0.040667 1.596353 0.024229 0.584314 0.584314 0.584314 +v -0.040410 1.591110 0.031115 0.584314 0.584314 0.584314 +v -0.039626 1.585244 0.037833 1.000000 0.000000 0.000000 +v -0.037606 1.577249 0.044470 1.000000 0.000000 0.000000 +v -0.046691 1.439449 -0.068449 0.584314 0.584314 0.584314 +v -0.008002 1.500332 0.070494 1.000000 0.000000 0.000000 +v -0.007296 1.500479 0.071202 1.000000 0.000000 0.000000 +v -0.006915 1.499983 0.069926 1.000000 0.000000 0.000000 +v -0.006208 1.500093 0.070605 1.000000 0.000000 0.000000 +v -0.005973 1.498711 0.070176 1.000000 0.000000 0.000000 +v -0.007189 1.491278 0.072688 1.000000 0.000000 0.000000 +v -0.005704 1.493209 0.071394 1.000000 0.000000 0.000000 +v -0.005327 1.496700 0.070331 1.000000 0.000000 0.000000 +v -0.068207 1.472506 -0.017095 1.000000 0.000000 0.000000 +v -0.051800 1.406300 -0.047300 0.584314 0.584314 0.584314 +v -0.049500 1.409300 -0.059900 0.584314 0.584314 0.584314 +v 0.051800 1.406300 -0.047300 0.584314 0.584314 0.584314 +v 0.049500 1.409300 -0.059900 0.584314 0.584314 0.584314 +v 0.019200 1.377100 0.002800 0.584314 0.584314 0.584314 +v 0.029900 1.380600 -0.002700 0.584314 0.584314 0.584314 +v 0.031191 1.371902 -0.003814 0.584314 0.584314 0.584314 +v 0.019808 1.368797 0.001123 0.584314 0.584314 0.584314 +v 0.056238 1.388815 -0.051486 0.584314 0.584314 0.584314 +v 0.052715 1.397600 -0.048798 0.584314 0.584314 0.584314 +v 0.050621 1.400619 -0.062005 0.584314 0.584314 0.584314 +v 0.054435 1.392053 -0.065906 0.584314 0.584314 0.584314 +v 0.044999 1.402416 -0.073412 0.584314 0.584314 0.584314 +v 0.048271 1.393089 -0.078193 0.584314 0.584314 0.584314 +v 0.038400 1.392900 -0.087400 0.584314 0.584314 0.584314 +v 0.036279 1.403790 -0.082284 0.584314 0.584314 0.584314 +v 0.025100 1.404800 -0.088700 0.584314 0.584314 0.584314 +v 0.026404 1.392692 -0.093192 0.584314 0.584314 0.584314 +v 0.040100 1.385100 -0.010900 0.584314 0.584314 0.584314 +v 0.047900 1.389700 -0.021800 0.584314 0.584314 0.584314 +v 0.050655 1.380682 -0.023015 0.584314 0.584314 0.584314 +v 0.042189 1.376097 -0.011909 0.584314 0.584314 0.584314 +v 0.051989 1.393992 -0.034900 0.584314 0.584314 0.584314 +v 0.055002 1.384985 -0.036793 0.584314 0.584314 0.584314 +v 0.013400 1.392500 -0.096200 0.584314 0.584314 0.584314 +v 0.012800 1.405400 -0.092300 0.584314 0.584314 0.584314 +v 0.021630 1.347706 -0.002280 0.584314 0.584314 0.584314 +v 0.010000 1.345800 -0.001600 0.584314 0.584314 0.584314 +v 0.009703 1.356796 0.000912 0.584314 0.584314 0.584314 +v 0.020700 1.358599 -0.000789 0.584314 0.584314 0.584314 +v 0.051215 1.344489 -0.016416 0.584314 0.584314 0.584314 +v 0.064809 1.351419 -0.027220 0.584314 0.584314 0.584314 +v 0.071413 1.342539 -0.024854 0.584314 0.584314 0.584314 +v 0.056256 1.334601 -0.013505 0.584314 0.584314 0.584314 +v 0.092658 1.345253 -0.035792 0.584314 0.584314 0.584314 +v 0.101991 1.356549 -0.055946 0.584314 0.584314 0.584314 +v 0.036452 1.340095 -0.007796 0.584314 0.584314 0.584314 +v 0.039614 1.330165 -0.004026 0.584314 0.584314 0.584314 +v 0.000000 1.380304 -0.103110 0.584314 0.584314 0.584314 +v 0.000000 1.392398 -0.097112 0.584314 0.584314 0.584314 +v 0.092167 1.361945 -0.058015 0.584314 0.584314 0.584314 +v 0.091650 1.365890 -0.081008 0.584314 0.584314 0.584314 +v 0.103647 1.360106 -0.079767 0.584314 0.584314 0.584314 +v 0.051390 1.344988 -0.117606 0.584314 0.584314 0.584314 +v 0.051696 1.338191 -0.120202 0.584314 0.584314 0.584314 +v 0.066194 1.342704 -0.118123 0.584314 0.584314 0.584314 +v 0.062220 1.349185 -0.114825 0.584314 0.584314 0.584314 +v 0.071324 1.377988 -0.076126 0.584314 0.584314 0.584314 +v 0.061101 1.377499 -0.090389 0.584314 0.584314 0.584314 +v 0.068719 1.369941 -0.095525 0.584314 0.584314 0.584314 +v 0.081299 1.371989 -0.079679 0.584314 0.584314 0.584314 +v 0.035196 1.360991 -0.111297 0.584314 0.584314 0.584314 +v 0.052500 1.365903 -0.105617 0.584314 0.584314 0.584314 +v 0.047106 1.374613 -0.100311 0.584314 0.584314 0.584314 +v 0.031703 1.371412 -0.106125 0.584314 0.584314 0.584314 +v 0.082737 1.367023 -0.058545 0.584314 0.584314 0.584314 +v 0.072497 1.372769 -0.057489 0.584314 0.584314 0.584314 +v 0.075085 1.358733 -0.041692 0.584314 0.584314 0.584314 +v 0.066988 1.366168 -0.041342 0.584314 0.584314 0.584314 +v 0.059293 1.360571 -0.026713 0.584314 0.584314 0.584314 +v 0.053878 1.384658 -0.084389 0.584314 0.584314 0.584314 +v 0.042301 1.383191 -0.093893 0.584314 0.584314 0.584314 +v 0.028800 1.381600 -0.099600 0.584314 0.584314 0.584314 +v 0.014500 1.380600 -0.102300 0.584314 0.584314 0.584314 +v 0.000000 1.332103 -0.118329 0.584314 0.584314 0.584314 +v 0.000000 1.344407 -0.116723 0.584314 0.584314 0.584314 +v 0.017506 1.357805 -0.112991 0.584314 0.584314 0.584314 +v 0.015901 1.369391 -0.108565 0.584314 0.584314 0.584314 +v 0.083352 1.352116 -0.039990 0.584314 0.584314 0.584314 +v 0.060082 1.375357 -0.039221 0.584314 0.584314 0.584314 +v 0.054595 1.370684 -0.024895 0.584314 0.584314 0.584314 +v 0.062373 1.326943 -0.004014 0.584314 0.584314 0.584314 +v 0.079695 1.333782 -0.017820 0.584314 0.584314 0.584314 +v 0.043486 1.322351 0.005265 0.584314 0.584314 0.584314 +v 0.026318 1.318980 0.010419 0.584314 0.584314 0.584314 +v 0.018804 1.345613 -0.116011 0.584314 0.584314 0.584314 +v 0.018497 1.333611 -0.117736 0.584314 0.584314 0.584314 +v 0.036412 1.336188 -0.118918 0.584314 0.584314 0.584314 +v 0.039911 1.348812 -0.116108 0.584314 0.584314 0.584314 +v 0.047810 1.355088 -0.015297 0.584314 0.584314 0.584314 +v 0.034741 1.350700 -0.006936 0.584314 0.584314 0.584314 +v 0.022774 1.337339 -0.002166 0.584314 0.584314 0.584314 +v 0.061403 1.384360 -0.070911 0.584314 0.584314 0.584314 +v 0.062762 1.380358 -0.054854 0.584314 0.584314 0.584314 +v 0.044957 1.365794 -0.013553 0.584314 0.584314 0.584314 +v 0.033008 1.361602 -0.005389 0.584314 0.584314 0.584314 +v 0.009400 1.367000 0.003600 0.584314 0.584314 0.584314 +v 0.024391 1.327745 0.002406 0.584314 0.584314 0.584314 +v 0.092841 1.355870 -0.099836 0.584314 0.584314 0.584314 +v 0.080101 1.348808 -0.111908 0.584314 0.584314 0.584314 +v 0.073289 1.352758 -0.110048 0.584314 0.584314 0.584314 +v 0.000000 1.356994 -0.113868 0.584314 0.584314 0.584314 +v 0.000000 1.356207 0.001169 0.584314 0.584314 0.584314 +v 0.000000 1.345096 -0.002041 0.584314 0.584314 0.584314 +v 0.000000 1.366405 0.004280 0.584314 0.584314 0.584314 +v 0.077652 1.361117 -0.101163 0.584314 0.584314 0.584314 +v 0.057989 1.356635 -0.110582 0.584314 0.584314 0.584314 +v 0.000000 1.374300 0.006800 0.584314 0.584314 0.584314 +v 0.000000 1.405600 -0.093400 0.584314 0.584314 0.584314 +v 0.000000 1.333470 -0.004016 0.584314 0.584314 0.584314 +v 0.000000 1.322036 -0.000042 0.584314 0.584314 0.584314 +v 0.000000 1.313137 0.009546 0.584314 0.584314 0.584314 +v 0.009198 1.375001 0.005887 0.584314 0.584314 0.584314 +v 0.011601 1.323874 0.001497 0.584314 0.584314 0.584314 +v 0.010712 1.334590 -0.002614 0.584314 0.584314 0.584314 +v 0.012479 1.314794 0.010120 0.584314 0.584314 0.584314 +v 0.000000 1.368900 -0.109400 0.584314 0.584314 0.584314 +v -0.019200 1.377100 0.002800 0.584314 0.584314 0.584314 +v -0.029900 1.380600 -0.002700 0.584314 0.584314 0.584314 +v -0.031191 1.371902 -0.003814 0.584314 0.584314 0.584314 +v -0.019808 1.368797 0.001123 0.584314 0.584314 0.584314 +v -0.056238 1.388815 -0.051486 0.584314 0.584314 0.584314 +v -0.052715 1.397600 -0.048798 0.584314 0.584314 0.584314 +v -0.050621 1.400619 -0.062005 0.584314 0.584314 0.584314 +v -0.054435 1.392053 -0.065906 0.584314 0.584314 0.584314 +v -0.044999 1.402416 -0.073412 0.584314 0.584314 0.584314 +v -0.048271 1.393089 -0.078193 0.584314 0.584314 0.584314 +v -0.038400 1.392900 -0.087400 0.584314 0.584314 0.584314 +v -0.036279 1.403790 -0.082284 0.584314 0.584314 0.584314 +v -0.025100 1.404800 -0.088700 0.584314 0.584314 0.584314 +v -0.026404 1.392692 -0.093192 0.584314 0.584314 0.584314 +v -0.040100 1.385100 -0.010900 0.584314 0.584314 0.584314 +v -0.047900 1.389700 -0.021800 0.584314 0.584314 0.584314 +v -0.050655 1.380682 -0.023015 0.584314 0.584314 0.584314 +v -0.042189 1.376097 -0.011909 0.584314 0.584314 0.584314 +v -0.051989 1.393992 -0.034900 0.584314 0.584314 0.584314 +v -0.055002 1.384985 -0.036793 0.584314 0.584314 0.584314 +v -0.013400 1.392500 -0.096200 0.584314 0.584314 0.584314 +v -0.012800 1.405400 -0.092300 0.584314 0.584314 0.584314 +v -0.021630 1.347706 -0.002280 0.584314 0.584314 0.584314 +v -0.010000 1.345800 -0.001600 0.584314 0.584314 0.584314 +v -0.009703 1.356796 0.000912 0.584314 0.584314 0.584314 +v -0.020700 1.358599 -0.000789 0.584314 0.584314 0.584314 +v -0.051215 1.344489 -0.016416 0.584314 0.584314 0.584314 +v -0.064809 1.351419 -0.027220 0.584314 0.584314 0.584314 +v -0.071413 1.342539 -0.024854 0.584314 0.584314 0.584314 +v -0.056256 1.334601 -0.013505 0.584314 0.584314 0.584314 +v -0.092658 1.345253 -0.035792 0.584314 0.584314 0.584314 +v -0.101991 1.356549 -0.055946 0.584314 0.584314 0.584314 +v -0.036452 1.340095 -0.007796 0.584314 0.584314 0.584314 +v -0.039614 1.330165 -0.004026 0.584314 0.584314 0.584314 +v -0.092167 1.361945 -0.058015 0.584314 0.584314 0.584314 +v -0.091650 1.365890 -0.081008 0.584314 0.584314 0.584314 +v -0.103647 1.360106 -0.079767 0.584314 0.584314 0.584314 +v -0.051390 1.344988 -0.117606 0.584314 0.584314 0.584314 +v -0.051696 1.338191 -0.120202 0.584314 0.584314 0.584314 +v -0.066194 1.342704 -0.118123 0.584314 0.584314 0.584314 +v -0.062220 1.349185 -0.114825 0.584314 0.584314 0.584314 +v -0.071324 1.377988 -0.076126 0.584314 0.584314 0.584314 +v -0.061101 1.377499 -0.090389 0.584314 0.584314 0.584314 +v -0.068719 1.369941 -0.095525 0.584314 0.584314 0.584314 +v -0.081299 1.371989 -0.079679 0.584314 0.584314 0.584314 +v -0.035196 1.360991 -0.111297 0.584314 0.584314 0.584314 +v -0.052500 1.365903 -0.105617 0.584314 0.584314 0.584314 +v -0.047106 1.374613 -0.100311 0.584314 0.584314 0.584314 +v -0.031703 1.371412 -0.106125 0.584314 0.584314 0.584314 +v -0.082737 1.367023 -0.058545 0.584314 0.584314 0.584314 +v -0.072497 1.372769 -0.057489 0.584314 0.584314 0.584314 +v -0.075085 1.358733 -0.041692 0.584314 0.584314 0.584314 +v -0.066988 1.366168 -0.041342 0.584314 0.584314 0.584314 +v -0.059293 1.360571 -0.026713 0.584314 0.584314 0.584314 +v -0.053878 1.384658 -0.084389 0.584314 0.584314 0.584314 +v -0.042301 1.383191 -0.093893 0.584314 0.584314 0.584314 +v -0.028800 1.381600 -0.099600 0.584314 0.584314 0.584314 +v -0.014500 1.380600 -0.102300 0.584314 0.584314 0.584314 +v -0.017506 1.357805 -0.112991 0.584314 0.584314 0.584314 +v -0.015901 1.369391 -0.108565 0.584314 0.584314 0.584314 +v -0.083352 1.352116 -0.039990 0.584314 0.584314 0.584314 +v -0.060082 1.375357 -0.039221 0.584314 0.584314 0.584314 +v -0.054595 1.370684 -0.024895 0.584314 0.584314 0.584314 +v -0.062373 1.326943 -0.004014 0.584314 0.584314 0.584314 +v -0.079695 1.333782 -0.017820 0.584314 0.584314 0.584314 +v -0.043486 1.322351 0.005265 0.584314 0.584314 0.584314 +v -0.026318 1.318980 0.010419 0.584314 0.584314 0.584314 +v -0.018804 1.345613 -0.116011 0.584314 0.584314 0.584314 +v -0.018497 1.333611 -0.117736 0.584314 0.584314 0.584314 +v -0.036412 1.336188 -0.118918 0.584314 0.584314 0.584314 +v -0.039911 1.348812 -0.116108 0.584314 0.584314 0.584314 +v -0.047810 1.355088 -0.015297 0.584314 0.584314 0.584314 +v -0.034741 1.350700 -0.006936 0.584314 0.584314 0.584314 +v -0.022774 1.337339 -0.002166 0.584314 0.584314 0.584314 +v -0.061403 1.384360 -0.070911 0.584314 0.584314 0.584314 +v -0.062762 1.380358 -0.054854 0.584314 0.584314 0.584314 +v -0.044957 1.365794 -0.013553 0.584314 0.584314 0.584314 +v -0.033008 1.361602 -0.005389 0.584314 0.584314 0.584314 +v -0.009400 1.367000 0.003600 0.584314 0.584314 0.584314 +v -0.024391 1.327745 0.002406 0.584314 0.584314 0.584314 +v -0.092841 1.355870 -0.099836 0.584314 0.584314 0.584314 +v -0.080101 1.348808 -0.111908 0.584314 0.584314 0.584314 +v -0.073289 1.352758 -0.110048 0.584314 0.584314 0.584314 +v -0.077652 1.361117 -0.101163 0.584314 0.584314 0.584314 +v -0.057989 1.356635 -0.110582 0.584314 0.584314 0.584314 +v -0.009198 1.375001 0.005887 0.584314 0.584314 0.584314 +v -0.011601 1.323874 0.001497 0.584314 0.584314 0.584314 +v -0.010712 1.334590 -0.002614 0.584314 0.584314 0.584314 +v -0.012479 1.314794 0.010120 0.584314 0.584314 0.584314 +v -0.007181 1.498708 0.069367 1.000000 0.000000 0.000000 +v -0.065756 1.470880 0.002952 1.000000 0.000000 0.000000 +v -0.064678 1.463496 -0.004242 1.000000 0.000000 0.000000 +v -0.059783 1.453210 0.002188 1.000000 0.000000 0.000000 +v -0.061561 1.461383 0.009926 1.000000 0.000000 0.000000 +v -0.053965 1.443825 0.009394 1.000000 0.000000 0.000000 +v -0.057441 1.453563 0.015359 1.000000 0.000000 0.000000 +v -0.047918 1.436419 0.017837 1.000000 0.000000 0.000000 +v -0.052352 1.446406 0.021891 1.000000 0.000000 0.000000 +v -0.043190 1.432359 0.027284 1.000000 0.000000 0.000000 +v -0.047905 1.441899 0.029774 1.000000 0.000000 0.000000 +v -0.031556 1.428128 0.049181 1.000000 0.000000 0.000000 +v -0.029812 1.423095 0.045409 1.000000 0.000000 0.000000 +v -0.023660 1.420365 0.052657 1.000000 0.000000 0.000000 +v -0.024436 1.424506 0.056749 1.000000 0.000000 0.000000 +v -0.016606 1.418589 0.059010 1.000000 0.000000 0.000000 +v -0.017378 1.422321 0.062977 1.000000 0.000000 0.000000 +v -0.009001 1.417534 0.062700 1.000000 0.000000 0.000000 +v -0.009151 1.420928 0.066849 1.000000 0.000000 0.000000 +v 0.000000 1.417091 0.064366 1.000000 0.000000 0.000000 +v 0.000000 1.420471 0.068613 1.000000 0.000000 0.000000 +v 0.000000 1.429788 0.071272 1.000000 0.000000 0.000000 +v -0.008705 1.429911 0.070470 1.000000 0.000000 0.000000 +v -0.009043 1.425262 0.069435 1.000000 0.000000 0.000000 +v 0.000000 1.424583 0.070677 1.000000 0.000000 0.000000 +v -0.016107 1.430898 0.066910 1.000000 0.000000 0.000000 +v -0.017100 1.426200 0.065400 1.000000 0.000000 0.000000 +v -0.022581 1.433356 0.062133 1.000000 0.000000 0.000000 +v -0.023967 1.428745 0.059766 1.000000 0.000000 0.000000 +v -0.030372 1.437649 0.055874 1.000000 0.000000 0.000000 +v -0.031736 1.432795 0.052581 1.000000 0.000000 0.000000 +v -0.035914 1.443090 0.051692 1.000000 0.000000 0.000000 +v -0.038348 1.440043 0.047005 1.000000 0.000000 0.000000 +v -0.008052 1.414547 0.056606 1.000000 0.000000 0.000000 +v 0.000000 1.414303 0.058898 1.000000 0.000000 0.000000 +v -0.015000 1.415300 0.053100 1.000000 0.000000 0.000000 +v -0.021489 1.416660 0.047689 1.000000 0.000000 0.000000 +v -0.026700 1.418600 0.041100 1.000000 0.000000 0.000000 +v -0.037876 1.429176 0.036787 1.000000 0.000000 0.000000 +v -0.032082 1.421210 0.032893 1.000000 0.000000 0.000000 +v -0.038453 1.425506 0.024641 1.000000 0.000000 0.000000 +v -0.044093 1.429078 0.014379 1.000000 0.000000 0.000000 +v -0.051272 1.436912 0.004435 1.000000 0.000000 0.000000 +v -0.058145 1.447580 -0.004610 1.000000 0.000000 0.000000 +v -0.063602 1.458794 -0.011346 1.000000 0.000000 0.000000 +v -0.067842 1.470820 -0.008907 1.000000 0.000000 0.000000 +v -0.015270 1.435111 0.067257 1.000000 0.000000 0.000000 +v -0.008309 1.434379 0.070327 1.000000 0.000000 0.000000 +v -0.021438 1.437110 0.063198 1.000000 0.000000 0.000000 +v -0.028470 1.441606 0.058224 1.000000 0.000000 0.000000 +v -0.033392 1.446468 0.055158 1.000000 0.000000 0.000000 +v -0.037951 1.458101 0.054503 1.000000 0.000000 0.000000 +v -0.036662 1.452045 0.054037 1.000000 0.000000 0.000000 +v -0.036406 1.470117 0.057341 1.000000 0.000000 0.000000 +v -0.037754 1.464227 0.055768 1.000000 0.000000 0.000000 +v -0.043361 1.476565 0.051520 1.000000 0.000000 0.000000 +v -0.045063 1.468107 0.048653 1.000000 0.000000 0.000000 +v -0.041386 1.465667 0.052396 1.000000 0.000000 0.000000 +v -0.039988 1.472930 0.054506 1.000000 0.000000 0.000000 +v -0.046552 1.481759 0.048340 1.000000 0.000000 0.000000 +v -0.048779 1.472120 0.044600 1.000000 0.000000 0.000000 +v -0.007075 1.412271 0.050914 1.000000 0.000000 0.000000 +v 0.000000 1.411855 0.052119 1.000000 0.000000 0.000000 +v -0.013085 1.412852 0.047489 1.000000 0.000000 0.000000 +v -0.018439 1.413640 0.042102 1.000000 0.000000 0.000000 +v -0.022392 1.414312 0.035486 1.000000 0.000000 0.000000 +v -0.026870 1.415220 0.027969 1.000000 0.000000 0.000000 +v -0.032350 1.416735 0.019836 1.000000 0.000000 0.000000 +v -0.039581 1.420103 0.010510 1.000000 0.000000 0.000000 +v -0.048258 1.428267 -0.000383 1.000000 0.000000 0.000000 +v -0.056639 1.442227 -0.010608 1.000000 0.000000 0.000000 +v -0.062381 1.454404 -0.017696 1.000000 0.000000 0.000000 +v -0.019224 1.407282 0.021407 1.000000 0.000000 0.000000 +v -0.015527 1.408710 0.027842 1.000000 0.000000 0.000000 +v -0.012281 1.409694 0.033437 1.000000 0.000000 0.000000 +v -0.009411 1.409986 0.038105 1.000000 0.000000 0.000000 +v -0.005395 1.408971 0.037381 1.000000 0.000000 0.000000 +v 0.000000 1.408566 0.036837 1.000000 0.000000 0.000000 +v -0.004839 1.406112 0.028904 1.000000 0.000000 0.000000 +v 0.000000 1.406027 0.029136 1.000000 0.000000 0.000000 +v -0.006997 1.402824 0.023825 1.000000 0.000000 0.000000 +v 0.000000 1.402365 0.023807 1.000000 0.000000 0.000000 +v -0.008716 1.399498 0.019583 1.000000 0.000000 0.000000 +v 0.000000 1.397683 0.018995 1.000000 0.000000 0.000000 +v -0.039863 1.450124 0.050121 1.000000 0.000000 0.000000 +v -0.043157 1.449236 0.045330 1.000000 0.000000 0.000000 +v -0.045252 1.458819 0.046255 1.000000 0.000000 0.000000 +v -0.049202 1.461445 0.041161 1.000000 0.000000 0.000000 +v -0.046825 1.450025 0.039223 1.000000 0.000000 0.000000 +v -0.041526 1.457887 0.050684 1.000000 0.000000 0.000000 +v -0.051791 1.453260 0.031960 1.000000 0.000000 0.000000 +v -0.053856 1.465584 0.035623 1.000000 0.000000 0.000000 +v -0.052811 1.477332 0.040542 1.000000 0.000000 0.000000 +v -0.057864 1.470411 0.031084 1.000000 0.000000 0.000000 +v -0.056300 1.458400 0.025400 1.000000 0.000000 0.000000 +v -0.056809 1.481199 0.036406 1.000000 0.000000 0.000000 +v -0.060191 1.484902 0.032594 1.000000 0.000000 0.000000 +v -0.060914 1.474694 0.027211 1.000000 0.000000 0.000000 +v -0.059936 1.463921 0.021284 1.000000 0.000000 0.000000 +v -0.040912 1.437507 0.039969 1.000000 0.000000 0.000000 +v -0.062508 1.469594 0.016502 1.000000 0.000000 0.000000 +v -0.062707 1.488777 0.028637 1.000000 0.000000 0.000000 +v -0.063200 1.479400 0.022700 1.000000 0.000000 0.000000 +v -0.065244 1.494102 0.023621 1.000000 0.000000 0.000000 +v -0.065986 1.485178 0.015507 1.000000 0.000000 0.000000 +v -0.065555 1.477004 0.008784 1.000000 0.000000 0.000000 +v -0.069692 1.478726 -0.004793 1.000000 0.000000 0.000000 +v 0.000000 1.434286 0.071004 1.000000 0.000000 0.000000 +v -0.066436 1.467824 -0.032302 0.584314 0.584314 0.584314 +v -0.021200 1.476200 0.065000 1.000000 0.000000 0.000000 +v -0.016400 1.478400 0.067700 1.000000 0.000000 0.000000 +v -0.011548 1.479216 0.070929 1.000000 0.000000 0.000000 +v -0.007644 1.479541 0.073277 1.000000 0.000000 0.000000 +v -0.003728 1.479322 0.074674 1.000000 0.000000 0.000000 +v 0.000000 1.385930 0.012858 0.584314 0.584314 0.584314 +v 0.000000 1.545795 0.064295 1.000000 0.000000 0.000000 +v 0.000000 1.392634 0.016701 0.584314 0.584314 0.584314 +v 0.000000 1.447350 0.057204 1.000000 0.000000 0.000000 +v 0.000000 1.624622 -0.011960 0.584314 0.584314 0.584314 +v 0.000000 1.439029 0.070422 1.000000 0.000000 0.000000 +v 0.000000 1.451933 0.059578 1.000000 0.000000 0.000000 +v 0.000000 1.507470 0.083595 1.000000 0.000000 0.000000 +v 0.000000 1.443887 0.069414 1.000000 0.000000 0.000000 +v 0.000000 1.454946 0.074679 1.000000 0.000000 0.000000 +v 0.000000 1.460438 0.072980 1.000000 0.000000 0.000000 +v 0.000000 1.581135 0.055452 1.000000 0.000000 0.000000 +v 0.000000 1.458137 0.074512 1.000000 0.000000 0.000000 +v 0.000000 1.481587 0.074783 1.000000 0.000000 0.000000 +v 0.000000 1.503893 0.087054 1.000000 0.000000 0.000000 +v 0.000000 1.461914 0.071559 1.000000 0.000000 0.000000 +v 0.000000 1.453858 -0.096645 0.584314 0.584314 0.584314 +v 0.000000 1.451493 0.073105 1.000000 0.000000 0.000000 +v 0.000000 1.457993 0.064088 1.000000 0.000000 0.000000 +v 0.000000 1.461813 0.069558 1.000000 0.000000 0.000000 +v 0.000000 1.466261 0.058890 1.000000 0.000000 0.000000 +v 0.000000 1.478892 0.074531 1.000000 0.000000 0.000000 +v 0.000000 1.523678 0.069736 1.000000 0.000000 0.000000 +v 0.000000 1.489535 -0.119515 0.584314 0.584314 0.584314 +v 0.000000 1.520960 0.072272 1.000000 0.000000 0.000000 +v 0.000000 1.603650 0.037414 0.584314 0.584314 0.584314 +v 0.000000 1.590954 0.049992 1.000000 0.000000 0.000000 +v 0.000000 1.511043 0.080323 1.000000 0.000000 0.000000 +v 0.000000 1.548918 -0.131703 0.584314 0.584314 0.584314 +v 0.000000 1.564870 -0.128630 0.584314 0.584314 0.584314 +v 0.000000 1.564427 0.060719 1.000000 0.000000 0.000000 +v 0.000000 1.619611 -0.072800 0.584314 0.584314 0.584314 +v 0.000000 1.500275 0.089409 1.000000 0.000000 0.000000 +v 0.000000 1.486994 0.079952 1.000000 0.000000 0.000000 +v 0.000000 1.618215 0.012229 0.584314 0.584314 0.584314 +v 0.000000 1.516038 -0.129465 0.584314 0.584314 0.584314 +v 0.000000 1.609100 -0.095443 0.584314 0.584314 0.584314 +v 0.000000 1.463596 0.074251 1.000000 0.000000 0.000000 +v 0.000000 1.621812 0.000643 0.584314 0.584314 0.584314 +v 0.000000 1.462127 0.071343 1.000000 0.000000 0.000000 +v 0.000000 1.490647 0.086919 1.000000 0.000000 0.000000 +v 0.000000 1.501198 -0.125457 0.584314 0.584314 0.584314 +v 0.000000 1.528930 -0.131276 0.584314 0.584314 0.584314 +v 0.000000 1.472588 0.075172 1.000000 0.000000 0.000000 +v 0.000000 1.476298 0.074308 1.000000 0.000000 0.000000 +v 0.000000 1.615230 -0.084480 0.584314 0.584314 0.584314 +v 0.000000 1.552251 0.063707 1.000000 0.000000 0.000000 +v 0.000000 1.470467 0.076486 1.000000 0.000000 0.000000 +v 0.000000 1.531870 0.063901 1.000000 0.000000 0.000000 +v 0.000000 1.467967 0.077060 1.000000 0.000000 0.000000 +v 0.000000 1.380109 0.009288 0.584314 0.584314 0.584314 +v 0.000000 1.588347 -0.116312 0.584314 0.584314 0.584314 +v 0.000000 1.465652 0.075795 1.000000 0.000000 0.000000 +v 0.000000 1.463525 0.066420 1.000000 0.000000 0.000000 +v 0.000000 1.514724 0.077389 1.000000 0.000000 0.000000 +v 0.000000 1.464844 0.061917 1.000000 0.000000 0.000000 +v 0.000000 1.571606 0.058534 1.000000 0.000000 0.000000 +v 0.000000 1.484386 0.075902 1.000000 0.000000 0.000000 +v 0.000000 1.485219 0.076416 1.000000 0.000000 0.000000 +v 0.000000 1.529107 0.065284 1.000000 0.000000 0.000000 +v 0.000000 1.597750 0.044018 0.584314 0.584314 0.584314 +v 0.000000 1.534589 0.063461 1.000000 0.000000 0.000000 +v 0.000000 1.483532 0.075433 1.000000 0.000000 0.000000 +v 0.000000 1.579233 -0.122370 0.584314 0.584314 0.584314 +v 0.000000 1.625022 -0.056413 0.584314 0.584314 0.584314 +v 0.000000 1.626434 -0.043475 0.584314 0.584314 0.584314 +v 0.000000 1.526279 0.067227 1.000000 0.000000 0.000000 +v 0.000000 1.518187 0.074678 1.000000 0.000000 0.000000 +v 0.000000 1.444587 -0.094873 0.584314 0.584314 0.584314 +v 0.000000 1.493944 0.089210 1.000000 0.000000 0.000000 +v 0.000000 1.496642 0.090010 1.000000 0.000000 0.000000 +v 0.000000 1.613719 0.022204 0.584314 0.584314 0.584314 +v 0.000000 1.480841 -0.114686 0.584314 0.584314 0.584314 +v 0.000000 1.626736 -0.026845 0.584314 0.584314 0.584314 +v 0.000000 1.608841 0.030309 0.584314 0.584314 0.584314 +v 0.000000 1.464839 -0.103477 0.584314 0.584314 0.584314 +v 0.000000 1.473938 -0.110708 0.584314 0.584314 0.584314 +v 0.000000 1.489364 0.085409 1.000000 0.000000 0.000000 +v 0.000000 1.537787 0.063642 1.000000 0.000000 0.000000 +v 0.000000 1.487900 0.082456 1.000000 0.000000 0.000000 +v 0.000000 1.601204 -0.105587 0.584314 0.584314 0.584314 +v 0.000000 1.486122 0.077824 1.000000 0.000000 0.000000 +v 0.007181 1.498708 0.069367 1.000000 0.000000 0.000000 +v 0.065756 1.470880 0.002952 1.000000 0.000000 0.000000 +v 0.064678 1.463496 -0.004242 1.000000 0.000000 0.000000 +v 0.059783 1.453210 0.002188 1.000000 0.000000 0.000000 +v 0.061561 1.461383 0.009926 1.000000 0.000000 0.000000 +v 0.053965 1.443825 0.009394 1.000000 0.000000 0.000000 +v 0.057441 1.453563 0.015359 1.000000 0.000000 0.000000 +v 0.047918 1.436419 0.017837 1.000000 0.000000 0.000000 +v 0.052352 1.446406 0.021891 1.000000 0.000000 0.000000 +v -0.004500 1.490438 0.084613 1.000000 0.000000 0.000000 +v -0.003472 1.488993 0.082224 1.000000 0.000000 0.000000 +v 0.043190 1.432359 0.027284 1.000000 0.000000 0.000000 +v 0.047905 1.441899 0.029774 1.000000 0.000000 0.000000 +v -0.016500 1.524050 0.049200 1.000000 0.000000 0.000000 +v -0.008669 1.487703 0.072770 1.000000 0.000000 0.000000 +v -0.007120 1.508654 0.076839 1.000000 0.000000 0.000000 +v -0.015400 1.524250 0.049950 1.000000 0.000000 0.000000 +v 0.031556 1.428128 0.049181 1.000000 0.000000 0.000000 +v 0.029812 1.423095 0.045409 1.000000 0.000000 0.000000 +v 0.023660 1.420365 0.052657 1.000000 0.000000 0.000000 +v 0.024436 1.424506 0.056749 1.000000 0.000000 0.000000 +v -0.010950 1.487850 0.071400 1.000000 0.000000 0.000000 +v 0.016606 1.418589 0.059010 1.000000 0.000000 0.000000 +v 0.017378 1.422321 0.062977 1.000000 0.000000 0.000000 +v 0.009001 1.417534 0.062700 1.000000 0.000000 0.000000 +v 0.009151 1.420928 0.066849 1.000000 0.000000 0.000000 +v -0.007135 1.515470 0.071771 1.000000 0.000000 0.000000 +v -0.009449 1.523427 0.059362 1.000000 0.000000 0.000000 +v 0.008705 1.429911 0.070470 1.000000 0.000000 0.000000 +v 0.009043 1.425262 0.069435 1.000000 0.000000 0.000000 +v -0.006967 1.512062 0.074392 1.000000 0.000000 0.000000 +v -0.016213 1.490290 0.071850 1.000000 0.000000 0.000000 +v -0.014561 1.487764 0.070635 1.000000 0.000000 0.000000 +v -0.007012 1.495925 0.086718 1.000000 0.000000 0.000000 +v -0.007912 1.498518 0.085593 1.000000 0.000000 0.000000 +v 0.016107 1.430898 0.066910 1.000000 0.000000 0.000000 +v -0.007950 1.492950 0.085200 1.000000 0.000000 0.000000 +v -0.005075 1.491535 0.085592 1.000000 0.000000 0.000000 +v 0.017100 1.426200 0.065400 1.000000 0.000000 0.000000 +v -0.017849 1.523713 0.049317 1.000000 0.000000 0.000000 +v -0.027909 1.524762 0.042535 0.584314 0.584314 0.584314 +v -0.006251 1.494112 0.086673 1.000000 0.000000 0.000000 +v -0.003263 1.492383 0.087243 1.000000 0.000000 0.000000 +v -0.020870 1.524355 0.046670 1.000000 0.000000 0.000000 +v -0.017300 1.523850 0.049250 1.000000 0.000000 0.000000 +v -0.012558 1.494457 0.080516 1.000000 0.000000 0.000000 +v -0.007666 1.522431 0.063361 1.000000 0.000000 0.000000 +v 0.022581 1.433356 0.062133 1.000000 0.000000 0.000000 +v 0.023967 1.428745 0.059766 1.000000 0.000000 0.000000 +v 0.030372 1.437649 0.055874 1.000000 0.000000 0.000000 +v 0.031736 1.432795 0.052581 1.000000 0.000000 0.000000 +v -0.015100 1.492888 0.076170 1.000000 0.000000 0.000000 +v 0.035914 1.443090 0.051692 1.000000 0.000000 0.000000 +v 0.038348 1.440043 0.047005 1.000000 0.000000 0.000000 +v 0.008052 1.414547 0.056606 1.000000 0.000000 0.000000 +v -0.018624 1.523754 0.049075 1.000000 0.000000 0.000000 +v -0.019148 1.523864 0.048784 1.000000 0.000000 0.000000 +v -0.007841 1.505078 0.079909 1.000000 0.000000 0.000000 +v 0.015000 1.415300 0.053100 1.000000 0.000000 0.000000 +v 0.021489 1.416660 0.047689 1.000000 0.000000 0.000000 +v 0.026700 1.418600 0.041100 1.000000 0.000000 0.000000 +v 0.037876 1.429176 0.036787 1.000000 0.000000 0.000000 +v -0.023224 1.524491 0.046688 1.000000 0.000000 0.000000 +v -0.003145 1.487404 0.077579 1.000000 0.000000 0.000000 +v -0.010700 1.493800 0.082850 1.000000 0.000000 0.000000 +v -0.009226 1.493297 0.084222 1.000000 0.000000 0.000000 +v -0.003762 1.486831 0.075684 1.000000 0.000000 0.000000 +v 0.032082 1.421210 0.032893 1.000000 0.000000 0.000000 +v 0.038453 1.425506 0.024641 1.000000 0.000000 0.000000 +v -0.013400 1.524050 0.052550 1.000000 0.000000 0.000000 +v 0.044093 1.429078 0.014379 1.000000 0.000000 0.000000 +v -0.007290 1.520479 0.066899 1.000000 0.000000 0.000000 +v -0.007075 1.518086 0.069666 1.000000 0.000000 0.000000 +v 0.051272 1.436912 0.004435 1.000000 0.000000 0.000000 +v 0.058145 1.447580 -0.004610 1.000000 0.000000 0.000000 +v -0.003068 1.488157 0.079873 1.000000 0.000000 0.000000 +v 0.063602 1.458794 -0.011346 1.000000 0.000000 0.000000 +v 0.067842 1.470820 -0.008907 1.000000 0.000000 0.000000 +v 0.015270 1.435111 0.067257 1.000000 0.000000 0.000000 +v 0.008309 1.434379 0.070327 1.000000 0.000000 0.000000 +v 0.021438 1.437110 0.063198 1.000000 0.000000 0.000000 +v -0.008204 1.501659 0.083269 1.000000 0.000000 0.000000 +v 0.028470 1.441606 0.058224 1.000000 0.000000 0.000000 +v 0.033392 1.446468 0.055158 1.000000 0.000000 0.000000 +v 0.037951 1.458101 0.054503 1.000000 0.000000 0.000000 +v -0.006298 1.487370 0.074241 1.000000 0.000000 0.000000 +v 0.036662 1.452045 0.054037 1.000000 0.000000 0.000000 +v 0.036406 1.470117 0.057341 1.000000 0.000000 0.000000 +v 0.037754 1.464227 0.055768 1.000000 0.000000 0.000000 +v 0.043361 1.476565 0.051520 1.000000 0.000000 0.000000 +v 0.045063 1.468107 0.048653 1.000000 0.000000 0.000000 +v 0.041386 1.465667 0.052396 1.000000 0.000000 0.000000 +v 0.000000 1.492114 0.088144 1.000000 0.000000 0.000000 +v -0.005607 1.492667 0.086221 1.000000 0.000000 0.000000 +v 0.039988 1.472930 0.054506 1.000000 0.000000 0.000000 +v 0.046552 1.481759 0.048340 1.000000 0.000000 0.000000 +v 0.048779 1.472120 0.044600 1.000000 0.000000 0.000000 +v 0.007075 1.412271 0.050914 1.000000 0.000000 0.000000 +v -0.029820 1.538011 0.053479 1.000000 0.000000 0.000000 +v -0.029975 1.535460 0.051854 1.000000 0.000000 0.000000 +v 0.013085 1.412852 0.047489 1.000000 0.000000 0.000000 +v 0.018439 1.413640 0.042102 1.000000 0.000000 0.000000 +v 0.022392 1.414312 0.035486 1.000000 0.000000 0.000000 +v 0.026870 1.415220 0.027969 1.000000 0.000000 0.000000 +v 0.032350 1.416735 0.019836 1.000000 0.000000 0.000000 +v 0.039581 1.420103 0.010510 1.000000 0.000000 0.000000 +v -0.022655 1.541291 0.058383 1.000000 0.000000 0.000000 +v -0.004631 1.541666 0.063468 1.000000 0.000000 0.000000 +v -0.009806 1.541712 0.062495 1.000000 0.000000 0.000000 +v 0.048258 1.428267 -0.000383 1.000000 0.000000 0.000000 +v -0.030165 1.531058 0.050149 1.000000 0.000000 0.000000 +v -0.030253 1.529212 0.048923 1.000000 0.000000 0.000000 +v -0.029840 1.533259 0.050285 1.000000 0.000000 0.000000 +v -0.030360 1.529572 0.050362 1.000000 0.000000 0.000000 +v -0.030372 1.530239 0.050612 1.000000 0.000000 0.000000 +v 0.056639 1.442227 -0.010608 1.000000 0.000000 0.000000 +v -0.029637 1.532503 0.049387 1.000000 0.000000 0.000000 +v 0.062381 1.454404 -0.017696 1.000000 0.000000 0.000000 +v -0.029693 1.532256 0.049246 1.000000 0.000000 0.000000 +v 0.019224 1.407282 0.021407 1.000000 0.000000 0.000000 +v -0.027671 1.540519 0.055546 1.000000 0.000000 0.000000 +v 0.015527 1.408710 0.027842 1.000000 0.000000 0.000000 +v 0.012281 1.409694 0.033437 1.000000 0.000000 0.000000 +v -0.029842 1.531837 0.049551 1.000000 0.000000 0.000000 +v -0.030415 1.528777 0.047185 1.000000 0.000000 0.000000 +v 0.009411 1.409986 0.038105 1.000000 0.000000 0.000000 +v -0.031235 1.526917 0.042713 0.584314 0.584314 0.584314 +v 0.005395 1.408971 0.037381 1.000000 0.000000 0.000000 +v 0.000000 1.541720 0.063941 1.000000 0.000000 0.000000 +v -0.021294 1.551703 0.061045 1.000000 0.000000 0.000000 +v -0.052438 1.549986 0.041694 1.000000 0.000000 0.000000 +v 0.004839 1.406112 0.028904 1.000000 0.000000 0.000000 +v -0.055550 1.544750 0.039000 1.000000 0.000000 0.000000 +v 0.006997 1.402824 0.023825 1.000000 0.000000 0.000000 +v -0.047669 1.510613 0.044309 1.000000 0.000000 0.000000 +v -0.050350 1.511400 0.042050 1.000000 0.000000 0.000000 +v -0.018586 1.545772 0.062254 1.000000 0.000000 0.000000 +v 0.008716 1.399498 0.019583 1.000000 0.000000 0.000000 +v 0.039863 1.450124 0.050121 1.000000 0.000000 0.000000 +v 0.043157 1.449236 0.045330 1.000000 0.000000 0.000000 +v 0.045252 1.458819 0.046255 1.000000 0.000000 0.000000 +v 0.049202 1.461445 0.041161 1.000000 0.000000 0.000000 +v -0.026633 1.570326 0.053151 1.000000 0.000000 0.000000 +v -0.031183 1.612253 0.006230 0.584314 0.584314 0.584314 +v -0.025033 1.563535 0.056327 1.000000 0.000000 0.000000 +v -0.039899 1.555892 0.051097 1.000000 0.000000 0.000000 +v 0.046825 1.450025 0.039223 1.000000 0.000000 0.000000 +v -0.031322 1.608404 0.015054 0.584314 0.584314 0.584314 +v 0.041526 1.457887 0.050684 1.000000 0.000000 0.000000 +v 0.051791 1.453260 0.031960 1.000000 0.000000 0.000000 +v 0.053856 1.465584 0.035623 1.000000 0.000000 0.000000 +v 0.052811 1.477332 0.040542 1.000000 0.000000 0.000000 +v 0.057864 1.470411 0.031084 1.000000 0.000000 0.000000 +v -0.047573 1.554241 0.045738 1.000000 0.000000 0.000000 +v 0.056300 1.458400 0.025400 1.000000 0.000000 0.000000 +v -0.055410 1.515906 0.035556 1.000000 0.000000 0.000000 +v -0.006407 1.557738 0.062139 1.000000 0.000000 0.000000 +v -0.057000 1.521250 0.033100 1.000000 0.000000 0.000000 +v 0.056809 1.481199 0.036406 1.000000 0.000000 0.000000 +v -0.014452 1.557484 0.060981 1.000000 0.000000 0.000000 +v -0.027655 1.619202 -0.054491 0.584314 0.584314 0.584314 +v 0.060191 1.484902 0.032594 1.000000 0.000000 0.000000 +v 0.060914 1.474694 0.027211 1.000000 0.000000 0.000000 +v 0.059936 1.463921 0.021284 1.000000 0.000000 0.000000 +v 0.040912 1.437507 0.039969 1.000000 0.000000 0.000000 +v -0.013492 1.537749 0.059645 1.000000 0.000000 0.000000 +v 0.062508 1.469594 0.016502 1.000000 0.000000 0.000000 +v -0.038491 1.511269 0.049270 1.000000 0.000000 0.000000 +v -0.041415 1.510904 0.048099 1.000000 0.000000 0.000000 +v 0.062707 1.488777 0.028637 1.000000 0.000000 0.000000 +v -0.031626 1.619606 -0.043643 0.584314 0.584314 0.584314 +v -0.054250 1.513750 0.037600 1.000000 0.000000 0.000000 +v -0.030425 1.587622 0.043038 1.000000 0.000000 0.000000 +v -0.009981 1.531318 0.057230 1.000000 0.000000 0.000000 +v -0.011297 1.534252 0.057544 1.000000 0.000000 0.000000 +v -0.031087 1.593873 0.036455 0.584314 0.584314 0.584314 +v 0.063200 1.479400 0.022700 1.000000 0.000000 0.000000 +v 0.065244 1.494102 0.023621 1.000000 0.000000 0.000000 +v 0.065986 1.485178 0.015507 1.000000 0.000000 0.000000 +v -0.031324 1.599313 0.029619 0.584314 0.584314 0.584314 +v 0.065555 1.477004 0.008784 1.000000 0.000000 0.000000 +v 0.069692 1.478726 -0.004793 1.000000 0.000000 0.000000 +v -0.031546 1.615607 -0.004075 0.584314 0.584314 0.584314 +v -0.022319 1.514517 0.052251 1.000000 0.000000 0.000000 +v 0.066436 1.467824 -0.032302 0.584314 0.584314 0.584314 +v 0.021200 1.476200 0.065000 1.000000 0.000000 0.000000 +v 0.016400 1.478400 0.067700 1.000000 0.000000 0.000000 +v -0.057500 1.538800 0.036350 1.000000 0.000000 0.000000 +v -0.058100 1.532550 0.034450 1.000000 0.000000 0.000000 +v -0.032263 1.619648 -0.030163 0.584314 0.584314 0.584314 +v -0.031406 1.512072 0.051113 1.000000 0.000000 0.000000 +v -0.057750 1.526700 0.033300 1.000000 0.000000 0.000000 +v -0.015698 1.620824 -0.062572 0.584314 0.584314 0.584314 +v 0.011548 1.479216 0.070929 1.000000 0.000000 0.000000 +v -0.052650 1.512350 0.039800 1.000000 0.000000 0.000000 +v 0.007644 1.479541 0.073277 1.000000 0.000000 0.000000 +v 0.003728 1.479322 0.074674 1.000000 0.000000 0.000000 +v -0.032093 1.556898 0.055351 1.000000 0.000000 0.000000 +v -0.035048 1.511533 0.050181 1.000000 0.000000 0.000000 +v -0.009930 1.528293 0.056852 1.000000 0.000000 0.000000 +v -0.017992 1.516836 0.052905 1.000000 0.000000 0.000000 +v -0.014937 1.519669 0.053809 1.000000 0.000000 0.000000 +v -0.031324 1.604084 0.022698 0.584314 0.584314 0.584314 +v -0.012601 1.522311 0.054996 1.000000 0.000000 0.000000 +v -0.010574 1.525230 0.056359 1.000000 0.000000 0.000000 +v -0.026755 1.512927 0.051954 1.000000 0.000000 0.000000 +v -0.028743 1.578935 0.049280 1.000000 0.000000 0.000000 +v -0.031801 1.618118 -0.016442 0.584314 0.584314 0.584314 +v -0.044633 1.510707 0.046380 1.000000 0.000000 0.000000 +v 0.000000 1.622074 -0.065518 0.584314 0.584314 0.584314 +v 0.000000 1.557883 0.062415 1.000000 0.000000 0.000000 +v -0.011454 1.523753 0.055896 1.000000 0.000000 0.000000 +v -0.015953 1.541608 0.060927 1.000000 0.000000 0.000000 +v -0.023334 1.557278 0.058912 1.000000 0.000000 0.000000 +v 0.000000 1.447907 0.071016 1.000000 0.000000 0.000000 +v -0.026419 1.465952 0.063157 1.000000 0.000000 0.000000 +v -0.027870 1.463869 0.061808 1.000000 0.000000 0.000000 +v -0.027772 1.457800 0.060516 1.000000 0.000000 0.000000 +v -0.019323 1.471062 0.068309 1.000000 0.000000 0.000000 +v -0.023570 1.468321 0.065257 1.000000 0.000000 0.000000 +v -0.018205 1.450607 0.066524 1.000000 0.000000 0.000000 +v -0.028489 1.461876 0.060872 1.000000 0.000000 0.000000 +v -0.012701 1.448969 0.069362 1.000000 0.000000 0.000000 +v -0.028519 1.459779 0.060404 1.000000 0.000000 0.000000 +v -0.006830 1.448110 0.070648 1.000000 0.000000 0.000000 +v 0.000000 1.474497 0.074690 1.000000 0.000000 0.000000 +v -0.009267 1.474752 0.073658 1.000000 0.000000 0.000000 +v -0.004619 1.474962 0.074975 1.000000 0.000000 0.000000 +v -0.014224 1.473445 0.071283 1.000000 0.000000 0.000000 +v -0.026055 1.455533 0.061457 1.000000 0.000000 0.000000 +v -0.023175 1.453006 0.063253 1.000000 0.000000 0.000000 +v 0.004500 1.490438 0.084613 1.000000 0.000000 0.000000 +v 0.003472 1.488993 0.082224 1.000000 0.000000 0.000000 +v 0.016500 1.524050 0.049200 1.000000 0.000000 0.000000 +v 0.008669 1.487703 0.072770 1.000000 0.000000 0.000000 +v 0.007120 1.508654 0.076839 1.000000 0.000000 0.000000 +v 0.015400 1.524250 0.049950 1.000000 0.000000 0.000000 +v 0.010950 1.487850 0.071400 1.000000 0.000000 0.000000 +v 0.007135 1.515470 0.071771 1.000000 0.000000 0.000000 +v 0.009449 1.523427 0.059362 1.000000 0.000000 0.000000 +v 0.006967 1.512062 0.074392 1.000000 0.000000 0.000000 +v 0.016213 1.490290 0.071850 1.000000 0.000000 0.000000 +v 0.014561 1.487764 0.070635 1.000000 0.000000 0.000000 +v 0.007012 1.495925 0.086718 1.000000 0.000000 0.000000 +v 0.007912 1.498518 0.085593 1.000000 0.000000 0.000000 +v 0.007950 1.492950 0.085200 1.000000 0.000000 0.000000 +v 0.005075 1.491535 0.085592 1.000000 0.000000 0.000000 +v 0.017849 1.523713 0.049317 1.000000 0.000000 0.000000 +v 0.027909 1.524762 0.042535 0.584314 0.584314 0.584314 +v 0.006251 1.494112 0.086673 1.000000 0.000000 0.000000 +v 0.003263 1.492383 0.087243 1.000000 0.000000 0.000000 +v 0.020870 1.524355 0.046670 1.000000 0.000000 0.000000 +v 0.017300 1.523850 0.049250 1.000000 0.000000 0.000000 +v 0.012558 1.494457 0.080516 1.000000 0.000000 0.000000 +v 0.007666 1.522431 0.063361 1.000000 0.000000 0.000000 +v 0.015100 1.492888 0.076170 1.000000 0.000000 0.000000 +v 0.018624 1.523754 0.049075 1.000000 0.000000 0.000000 +v 0.019148 1.523864 0.048784 1.000000 0.000000 0.000000 +v 0.007841 1.505078 0.079909 1.000000 0.000000 0.000000 +v 0.023224 1.524491 0.046688 1.000000 0.000000 0.000000 +v 0.003145 1.487404 0.077579 1.000000 0.000000 0.000000 +v 0.010700 1.493800 0.082850 1.000000 0.000000 0.000000 +v 0.009226 1.493297 0.084222 1.000000 0.000000 0.000000 +v 0.003762 1.486831 0.075684 1.000000 0.000000 0.000000 +v 0.013400 1.524050 0.052550 1.000000 0.000000 0.000000 +v 0.007290 1.520479 0.066899 1.000000 0.000000 0.000000 +v 0.007075 1.518086 0.069666 1.000000 0.000000 0.000000 +v 0.003068 1.488157 0.079873 1.000000 0.000000 0.000000 +v 0.008204 1.501659 0.083269 1.000000 0.000000 0.000000 +v 0.006298 1.487370 0.074241 1.000000 0.000000 0.000000 +v 0.005607 1.492667 0.086221 1.000000 0.000000 0.000000 +v 0.029820 1.538011 0.053479 1.000000 0.000000 0.000000 +v 0.029975 1.535460 0.051854 1.000000 0.000000 0.000000 +v 0.022655 1.541291 0.058383 1.000000 0.000000 0.000000 +v 0.004631 1.541666 0.063468 1.000000 0.000000 0.000000 +v 0.009806 1.541712 0.062495 1.000000 0.000000 0.000000 +v 0.030165 1.531058 0.050149 1.000000 0.000000 0.000000 +v 0.030253 1.529212 0.048923 1.000000 0.000000 0.000000 +v 0.029840 1.533259 0.050285 1.000000 0.000000 0.000000 +v 0.030360 1.529572 0.050362 1.000000 0.000000 0.000000 +v 0.030372 1.530239 0.050612 1.000000 0.000000 0.000000 +v 0.029637 1.532503 0.049387 1.000000 0.000000 0.000000 +v 0.029693 1.532256 0.049246 1.000000 0.000000 0.000000 +v 0.027671 1.540519 0.055546 1.000000 0.000000 0.000000 +v 0.029842 1.531837 0.049551 1.000000 0.000000 0.000000 +v 0.030415 1.528777 0.047185 1.000000 0.000000 0.000000 +v 0.031235 1.526917 0.042713 0.584314 0.584314 0.584314 +v 0.021294 1.551703 0.061045 1.000000 0.000000 0.000000 +v 0.052438 1.549986 0.041694 1.000000 0.000000 0.000000 +v 0.055550 1.544750 0.039000 1.000000 0.000000 0.000000 +v 0.047669 1.510613 0.044309 1.000000 0.000000 0.000000 +v 0.050350 1.511400 0.042050 1.000000 0.000000 0.000000 +v 0.018586 1.545772 0.062254 1.000000 0.000000 0.000000 +v 0.026633 1.570326 0.053151 1.000000 0.000000 0.000000 +v 0.031183 1.612253 0.006230 0.584314 0.584314 0.584314 +v 0.025033 1.563535 0.056327 1.000000 0.000000 0.000000 +v 0.039899 1.555892 0.051097 1.000000 0.000000 0.000000 +v 0.031322 1.608404 0.015054 0.584314 0.584314 0.584314 +v 0.047573 1.554241 0.045738 1.000000 0.000000 0.000000 +v 0.055410 1.515906 0.035556 1.000000 0.000000 0.000000 +v 0.006407 1.557738 0.062139 1.000000 0.000000 0.000000 +v 0.057000 1.521250 0.033100 1.000000 0.000000 0.000000 +v 0.014452 1.557484 0.060981 1.000000 0.000000 0.000000 +v 0.027655 1.619202 -0.054491 0.584314 0.584314 0.584314 +v 0.013492 1.537749 0.059645 1.000000 0.000000 0.000000 +v 0.038491 1.511269 0.049270 1.000000 0.000000 0.000000 +v 0.041415 1.510904 0.048099 1.000000 0.000000 0.000000 +v 0.031626 1.619606 -0.043643 0.584314 0.584314 0.584314 +v 0.054250 1.513750 0.037600 1.000000 0.000000 0.000000 +v 0.030425 1.587622 0.043038 1.000000 0.000000 0.000000 +v 0.009981 1.531318 0.057230 1.000000 0.000000 0.000000 +v 0.011297 1.534252 0.057544 1.000000 0.000000 0.000000 +v 0.031087 1.593873 0.036455 0.584314 0.584314 0.584314 +v 0.031324 1.599313 0.029619 0.584314 0.584314 0.584314 +v 0.031546 1.615607 -0.004075 0.584314 0.584314 0.584314 +v 0.022319 1.514517 0.052251 1.000000 0.000000 0.000000 +v 0.057500 1.538800 0.036350 1.000000 0.000000 0.000000 +v 0.058100 1.532550 0.034450 1.000000 0.000000 0.000000 +v 0.032263 1.619648 -0.030163 0.584314 0.584314 0.584314 +v 0.031406 1.512072 0.051113 1.000000 0.000000 0.000000 +v 0.057750 1.526700 0.033300 1.000000 0.000000 0.000000 +v 0.015698 1.620824 -0.062572 0.584314 0.584314 0.584314 +v 0.052650 1.512350 0.039800 1.000000 0.000000 0.000000 +v 0.032093 1.556898 0.055351 1.000000 0.000000 0.000000 +v 0.035048 1.511533 0.050181 1.000000 0.000000 0.000000 +v 0.009930 1.528293 0.056852 1.000000 0.000000 0.000000 +v 0.017992 1.516836 0.052905 1.000000 0.000000 0.000000 +v 0.014937 1.519669 0.053809 1.000000 0.000000 0.000000 +v 0.031324 1.604084 0.022698 0.584314 0.584314 0.584314 +v 0.012601 1.522311 0.054996 1.000000 0.000000 0.000000 +v 0.010574 1.525230 0.056359 1.000000 0.000000 0.000000 +v 0.026755 1.512927 0.051954 1.000000 0.000000 0.000000 +v 0.028743 1.578935 0.049280 1.000000 0.000000 0.000000 +v 0.031801 1.618118 -0.016442 0.584314 0.584314 0.584314 +v 0.044633 1.510707 0.046380 1.000000 0.000000 0.000000 +v 0.011454 1.523753 0.055896 1.000000 0.000000 0.000000 +v 0.015953 1.541608 0.060927 1.000000 0.000000 0.000000 +v 0.023334 1.557278 0.058912 1.000000 0.000000 0.000000 +v 0.026419 1.465952 0.063157 1.000000 0.000000 0.000000 +v 0.027870 1.463869 0.061808 1.000000 0.000000 0.000000 +v 0.027772 1.457800 0.060516 1.000000 0.000000 0.000000 +v 0.019323 1.471062 0.068309 1.000000 0.000000 0.000000 +v 0.023570 1.468321 0.065257 1.000000 0.000000 0.000000 +v 0.018205 1.450607 0.066524 1.000000 0.000000 0.000000 +v 0.028489 1.461876 0.060872 1.000000 0.000000 0.000000 +v 0.012701 1.448969 0.069362 1.000000 0.000000 0.000000 +v 0.028519 1.459779 0.060404 1.000000 0.000000 0.000000 +v 0.006830 1.448110 0.070648 1.000000 0.000000 0.000000 +v 0.009267 1.474752 0.073658 1.000000 0.000000 0.000000 +v 0.004619 1.474962 0.074975 1.000000 0.000000 0.000000 +v 0.014224 1.473445 0.071283 1.000000 0.000000 0.000000 +v 0.026055 1.455533 0.061457 1.000000 0.000000 0.000000 +v 0.023175 1.453006 0.063253 1.000000 0.000000 0.000000 +v 0.031451 1.525118 0.037401 0.584314 0.584314 0.584314 +v -0.031451 1.525118 0.037401 0.584314 0.584314 0.584314 +v 0.029824 1.525118 0.050617 1.000000 0.000000 0.000000 +v 0.028260 1.525118 0.050142 1.000000 0.000000 0.000000 +v 0.026818 1.525118 0.049372 1.000000 0.000000 0.000000 +v 0.025609 1.525118 0.048376 1.000000 0.000000 0.000000 +v 0.029856 1.525435 0.050617 1.000000 0.000000 0.000000 +v 0.028321 1.525741 0.050142 1.000000 0.000000 0.000000 +v 0.026907 1.526022 0.049372 1.000000 0.000000 0.000000 +v 0.025722 1.526258 0.048376 1.000000 0.000000 0.000000 +v 0.029948 1.525741 0.050617 1.000000 0.000000 0.000000 +v 0.028503 1.526339 0.050142 1.000000 0.000000 0.000000 +v 0.027171 1.526891 0.049372 1.000000 0.000000 0.000000 +v 0.026054 1.527353 0.048376 1.000000 0.000000 0.000000 +v 0.030098 1.526022 0.050617 1.000000 0.000000 0.000000 +v 0.028798 1.526891 0.050142 1.000000 0.000000 0.000000 +v 0.027599 1.527692 0.049372 1.000000 0.000000 0.000000 +v 0.026594 1.528363 0.048376 1.000000 0.000000 0.000000 +v 0.030301 1.526268 0.050617 1.000000 0.000000 0.000000 +v 0.029195 1.527374 0.050142 1.000000 0.000000 0.000000 +v 0.028175 1.528394 0.049372 1.000000 0.000000 0.000000 +v 0.027320 1.529249 0.048376 1.000000 0.000000 0.000000 +v 0.030547 1.526471 0.050617 1.000000 0.000000 0.000000 +v 0.029678 1.527771 0.050142 1.000000 0.000000 0.000000 +v 0.028877 1.528970 0.049372 1.000000 0.000000 0.000000 +v 0.028206 1.529975 0.048376 1.000000 0.000000 0.000000 +v 0.030828 1.526621 0.050617 1.000000 0.000000 0.000000 +v 0.030230 1.528066 0.050142 1.000000 0.000000 0.000000 +v 0.029678 1.529398 0.049372 1.000000 0.000000 0.000000 +v 0.029216 1.530515 0.048376 1.000000 0.000000 0.000000 +v 0.031134 1.526714 0.050617 1.000000 0.000000 0.000000 +v 0.030828 1.528248 0.050142 1.000000 0.000000 0.000000 +v 0.030547 1.529662 0.049372 1.000000 0.000000 0.000000 +v 0.030311 1.530847 0.048376 1.000000 0.000000 0.000000 +v 0.031451 1.526745 0.050617 1.000000 0.000000 0.000000 +v 0.031451 1.528309 0.050142 1.000000 0.000000 0.000000 +v 0.031451 1.529751 0.049372 1.000000 0.000000 0.000000 +v 0.031451 1.530960 0.048376 1.000000 0.000000 0.000000 +v 0.031768 1.526714 0.050617 1.000000 0.000000 0.000000 +v 0.032074 1.528248 0.050142 1.000000 0.000000 0.000000 +v 0.032355 1.529662 0.049372 1.000000 0.000000 0.000000 +v 0.032591 1.530847 0.048376 1.000000 0.000000 0.000000 +v 0.032074 1.526621 0.050617 1.000000 0.000000 0.000000 +v 0.032672 1.528066 0.050142 1.000000 0.000000 0.000000 +v 0.033224 1.529398 0.049372 1.000000 0.000000 0.000000 +v 0.033686 1.530515 0.048376 1.000000 0.000000 0.000000 +v 0.032355 1.526471 0.050617 1.000000 0.000000 0.000000 +v 0.033224 1.527771 0.050142 1.000000 0.000000 0.000000 +v 0.034025 1.528970 0.049372 1.000000 0.000000 0.000000 +v 0.034696 1.529975 0.048376 1.000000 0.000000 0.000000 +v 0.032601 1.526268 0.050617 1.000000 0.000000 0.000000 +v 0.033707 1.527374 0.050142 1.000000 0.000000 0.000000 +v 0.034727 1.528394 0.049372 1.000000 0.000000 0.000000 +v 0.035582 1.529249 0.048376 1.000000 0.000000 0.000000 +v 0.032804 1.526022 0.050617 1.000000 0.000000 0.000000 +v 0.034104 1.526891 0.050142 1.000000 0.000000 0.000000 +v 0.035303 1.527692 0.049372 1.000000 0.000000 0.000000 +v 0.036308 1.528363 0.048376 1.000000 0.000000 0.000000 +v 0.032954 1.525741 0.050617 1.000000 0.000000 0.000000 +v 0.034399 1.526339 0.050142 1.000000 0.000000 0.000000 +v 0.035731 1.526891 0.049372 1.000000 0.000000 0.000000 +v 0.036848 1.527353 0.048376 1.000000 0.000000 0.000000 +v 0.033047 1.525435 0.050617 1.000000 0.000000 0.000000 +v 0.034581 1.525741 0.050142 1.000000 0.000000 0.000000 +v 0.035995 1.526022 0.049372 1.000000 0.000000 0.000000 +v 0.037180 1.526258 0.048376 1.000000 0.000000 0.000000 +v 0.033078 1.525118 0.050617 1.000000 0.000000 0.000000 +v 0.034642 1.525118 0.050142 1.000000 0.000000 0.000000 +v 0.036084 1.525118 0.049372 1.000000 0.000000 0.000000 +v 0.037293 1.525118 0.048376 1.000000 0.000000 0.000000 +v 0.033047 1.524801 0.050617 1.000000 0.000000 0.000000 +v 0.034581 1.524495 0.050142 1.000000 0.000000 0.000000 +v 0.035995 1.524214 0.049372 1.000000 0.000000 0.000000 +v 0.037180 1.523978 0.048376 1.000000 0.000000 0.000000 +v 0.032954 1.524495 0.050617 1.000000 0.000000 0.000000 +v 0.034399 1.523897 0.050142 1.000000 0.000000 0.000000 +v 0.035731 1.523345 0.049372 1.000000 0.000000 0.000000 +v 0.036848 1.522883 0.048376 1.000000 0.000000 0.000000 +v 0.032804 1.524214 0.050617 1.000000 0.000000 0.000000 +v 0.034104 1.523345 0.050142 1.000000 0.000000 0.000000 +v 0.035303 1.522544 0.049372 1.000000 0.000000 0.000000 +v 0.036308 1.521873 0.048376 1.000000 0.000000 0.000000 +v 0.032601 1.523968 0.050617 1.000000 0.000000 0.000000 +v 0.033707 1.522862 0.050142 1.000000 0.000000 0.000000 +v 0.034727 1.521842 0.049372 1.000000 0.000000 0.000000 +v 0.035582 1.520987 0.048376 1.000000 0.000000 0.000000 +v 0.032355 1.523765 0.050617 1.000000 0.000000 0.000000 +v 0.033224 1.522465 0.050142 1.000000 0.000000 0.000000 +v 0.034025 1.521266 0.049372 1.000000 0.000000 0.000000 +v 0.034696 1.520261 0.048376 1.000000 0.000000 0.000000 +v 0.032074 1.523615 0.050617 1.000000 0.000000 0.000000 +v 0.032672 1.522170 0.050142 1.000000 0.000000 0.000000 +v 0.033224 1.520838 0.049372 1.000000 0.000000 0.000000 +v 0.033686 1.519721 0.048376 1.000000 0.000000 0.000000 +v 0.031768 1.523522 0.050617 1.000000 0.000000 0.000000 +v 0.032074 1.521988 0.050142 1.000000 0.000000 0.000000 +v 0.032355 1.520574 0.049372 1.000000 0.000000 0.000000 +v 0.032591 1.519389 0.048376 1.000000 0.000000 0.000000 +v 0.031451 1.523491 0.050617 1.000000 0.000000 0.000000 +v 0.031451 1.521927 0.050142 1.000000 0.000000 0.000000 +v 0.031451 1.520485 0.049372 1.000000 0.000000 0.000000 +v 0.031451 1.519276 0.048376 1.000000 0.000000 0.000000 +v 0.031134 1.523522 0.050617 1.000000 0.000000 0.000000 +v 0.030828 1.521988 0.050142 1.000000 0.000000 0.000000 +v 0.030547 1.520574 0.049372 1.000000 0.000000 0.000000 +v 0.030311 1.519389 0.048376 1.000000 0.000000 0.000000 +v 0.030828 1.523615 0.050617 1.000000 0.000000 0.000000 +v 0.030230 1.522170 0.050142 1.000000 0.000000 0.000000 +v 0.029678 1.520838 0.049372 1.000000 0.000000 0.000000 +v 0.029216 1.519721 0.048376 1.000000 0.000000 0.000000 +v 0.030547 1.523765 0.050617 1.000000 0.000000 0.000000 +v 0.029678 1.522465 0.050142 1.000000 0.000000 0.000000 +v 0.028877 1.521266 0.049372 1.000000 0.000000 0.000000 +v 0.028206 1.520261 0.048376 1.000000 0.000000 0.000000 +v 0.030301 1.523968 0.050617 1.000000 0.000000 0.000000 +v 0.029195 1.522862 0.050142 1.000000 0.000000 0.000000 +v 0.028175 1.521842 0.049372 1.000000 0.000000 0.000000 +v 0.027320 1.520987 0.048376 1.000000 0.000000 0.000000 +v 0.030098 1.524214 0.050617 1.000000 0.000000 0.000000 +v 0.028798 1.523345 0.050142 1.000000 0.000000 0.000000 +v 0.027599 1.522544 0.049372 1.000000 0.000000 0.000000 +v 0.026594 1.521873 0.048376 1.000000 0.000000 0.000000 +v 0.031451 1.525118 0.050777 1.000000 0.000000 0.000000 +v 0.029948 1.524495 0.050617 1.000000 0.000000 0.000000 +v 0.028503 1.523897 0.050142 1.000000 0.000000 0.000000 +v 0.027171 1.523345 0.049372 1.000000 0.000000 0.000000 +v 0.026054 1.522883 0.048376 1.000000 0.000000 0.000000 +v 0.029856 1.524801 0.050617 1.000000 0.000000 0.000000 +v 0.028321 1.524495 0.050142 1.000000 0.000000 0.000000 +v 0.026907 1.524214 0.049372 1.000000 0.000000 0.000000 +v 0.025722 1.523978 0.048376 1.000000 0.000000 0.000000 +v 0.024430 1.525118 0.047521 1.000000 0.000000 0.000000 +v 0.022607 1.525118 0.046071 1.000000 0.000000 0.000000 +v 0.021051 1.525118 0.044176 1.000000 0.000000 0.000000 +v 0.019895 1.525118 0.042014 0.584314 0.584314 0.584314 +v 0.019184 1.525118 0.039667 0.584314 0.584314 0.584314 +v 0.018943 1.525118 0.037227 0.584314 0.584314 0.584314 +v 0.019184 1.525118 0.034787 0.584314 0.584314 0.584314 +v 0.019895 1.525118 0.032441 0.584314 0.584314 0.584314 +v 0.021051 1.525118 0.030278 0.584314 0.584314 0.584314 +v 0.022607 1.525118 0.028383 0.584314 0.584314 0.584314 +v 0.024502 1.525118 0.026827 0.584314 0.584314 0.584314 +v 0.026665 1.525118 0.025671 0.584314 0.584314 0.584314 +v 0.029011 1.525118 0.024960 0.584314 0.584314 0.584314 +v 0.024565 1.526488 0.047521 1.000000 0.000000 0.000000 +v 0.022777 1.526843 0.046071 1.000000 0.000000 0.000000 +v 0.021251 1.527147 0.044176 1.000000 0.000000 0.000000 +v 0.020117 1.527372 0.042014 0.584314 0.584314 0.584314 +v 0.019419 1.527511 0.039667 0.584314 0.584314 0.584314 +v 0.019184 1.527558 0.037227 0.584314 0.584314 0.584314 +v 0.019419 1.527511 0.034787 0.584314 0.584314 0.584314 +v 0.020117 1.527372 0.032441 0.584314 0.584314 0.584314 +v 0.021251 1.527147 0.030278 0.584314 0.584314 0.584314 +v 0.022777 1.526843 0.028383 0.584314 0.584314 0.584314 +v 0.024636 1.526474 0.026827 0.584314 0.584314 0.584314 +v 0.026756 1.526052 0.025671 0.584314 0.584314 0.584314 +v 0.029058 1.525594 0.024960 0.584314 0.584314 0.584314 +v 0.024965 1.527805 0.047521 1.000000 0.000000 0.000000 +v 0.023280 1.528503 0.046071 1.000000 0.000000 0.000000 +v 0.021843 1.529098 0.044176 1.000000 0.000000 0.000000 +v 0.020775 1.529540 0.042013 0.584314 0.584314 0.584314 +v 0.020117 1.529813 0.039667 0.584314 0.584314 0.584314 +v 0.019895 1.529905 0.037227 0.584314 0.584314 0.584314 +v 0.020117 1.529813 0.034787 0.584314 0.584314 0.584314 +v 0.020775 1.529540 0.032441 0.584314 0.584314 0.584314 +v 0.021843 1.529098 0.030278 0.584314 0.584314 0.584314 +v 0.023280 1.528503 0.028383 0.584314 0.584314 0.584314 +v 0.025031 1.527777 0.026827 0.584314 0.584314 0.584314 +v 0.027029 1.526950 0.025671 0.584314 0.584314 0.584314 +v 0.029197 1.526052 0.024960 0.584314 0.584314 0.584314 +v 0.025613 1.529019 0.047521 1.000000 0.000000 0.000000 +v 0.024097 1.530032 0.046071 1.000000 0.000000 0.000000 +v 0.022804 1.530896 0.044176 1.000000 0.000000 0.000000 +v 0.021843 1.531538 0.042013 0.584314 0.584314 0.584314 +v 0.021251 1.531933 0.039667 0.584314 0.584314 0.584314 +v 0.021051 1.532067 0.037227 0.584314 0.584314 0.584314 +v 0.021251 1.531933 0.034787 0.584314 0.584314 0.584314 +v 0.021843 1.531538 0.032441 0.584314 0.584314 0.584314 +v 0.022804 1.530896 0.030278 0.584314 0.584314 0.584314 +v 0.024097 1.530032 0.028383 0.584314 0.584314 0.584314 +v 0.025673 1.528979 0.026827 0.584314 0.584314 0.584314 +v 0.027471 1.527777 0.025671 0.584314 0.584314 0.584314 +v 0.029422 1.526474 0.024960 0.584314 0.584314 0.584314 +v 0.026486 1.530083 0.047521 1.000000 0.000000 0.000000 +v 0.025197 1.531372 0.046071 1.000000 0.000000 0.000000 +v 0.024097 1.532472 0.044176 1.000000 0.000000 0.000000 +v 0.023280 1.533289 0.042013 0.584314 0.584314 0.584314 +v 0.022777 1.533792 0.039667 0.584314 0.584314 0.584314 +v 0.022607 1.533962 0.037227 0.584314 0.584314 0.584314 +v 0.022777 1.533792 0.034787 0.584314 0.584314 0.584314 +v 0.023280 1.533289 0.032441 0.584314 0.584314 0.584314 +v 0.024097 1.532472 0.030278 0.584314 0.584314 0.584314 +v 0.025197 1.531372 0.028383 0.584314 0.584314 0.584314 +v 0.026537 1.530032 0.026827 0.584314 0.584314 0.584314 +v 0.028066 1.528503 0.025671 0.584314 0.584314 0.584314 +v 0.029726 1.526843 0.024960 0.584314 0.584314 0.584314 +v 0.027550 1.530956 0.047521 1.000000 0.000000 0.000000 +v 0.026537 1.532472 0.046071 1.000000 0.000000 0.000000 +v 0.025673 1.533765 0.044176 1.000000 0.000000 0.000000 +v 0.025031 1.534726 0.042013 0.584314 0.584314 0.584314 +v 0.024636 1.535318 0.039667 0.584314 0.584314 0.584314 +v 0.024502 1.535518 0.037227 0.584314 0.584314 0.584314 +v 0.024636 1.535318 0.034787 0.584314 0.584314 0.584314 +v 0.025031 1.534726 0.032441 0.584314 0.584314 0.584314 +v 0.025673 1.533765 0.030278 0.584314 0.584314 0.584314 +v 0.026537 1.532472 0.028383 0.584314 0.584314 0.584314 +v 0.027590 1.530896 0.026827 0.584314 0.584314 0.584314 +v 0.028792 1.529098 0.025671 0.584314 0.584314 0.584314 +v 0.030095 1.527147 0.024960 0.584314 0.584314 0.584314 +v 0.028764 1.531604 0.047521 1.000000 0.000000 0.000000 +v 0.028066 1.533289 0.046071 1.000000 0.000000 0.000000 +v 0.027471 1.534726 0.044176 1.000000 0.000000 0.000000 +v 0.027029 1.535794 0.042013 0.584314 0.584314 0.584314 +v 0.026756 1.536452 0.039667 0.584314 0.584314 0.584314 +v 0.026665 1.536674 0.037227 0.584314 0.584314 0.584314 +v 0.026756 1.536452 0.034787 0.584314 0.584314 0.584314 +v 0.027029 1.535794 0.032441 0.584314 0.584314 0.584314 +v 0.027471 1.534726 0.030278 0.584314 0.584314 0.584314 +v 0.028066 1.533289 0.028383 0.584314 0.584314 0.584314 +v 0.028792 1.531538 0.026827 0.584314 0.584314 0.584314 +v 0.029619 1.529540 0.025671 0.584314 0.584314 0.584314 +v 0.030517 1.527372 0.024960 0.584314 0.584314 0.584314 +v 0.030081 1.532004 0.047521 1.000000 0.000000 0.000000 +v 0.029726 1.533792 0.046071 1.000000 0.000000 0.000000 +v 0.029422 1.535318 0.044176 1.000000 0.000000 0.000000 +v 0.029197 1.536452 0.042013 0.584314 0.584314 0.584314 +v 0.029058 1.537150 0.039667 0.584314 0.584314 0.584314 +v 0.029011 1.537385 0.037227 0.584314 0.584314 0.584314 +v 0.029058 1.537150 0.034787 0.584314 0.584314 0.584314 +v 0.029197 1.536452 0.032441 0.584314 0.584314 0.584314 +v 0.029422 1.535318 0.030278 0.584314 0.584314 0.584314 +v 0.029726 1.533792 0.028383 0.584314 0.584314 0.584314 +v 0.030095 1.531933 0.026827 0.584314 0.584314 0.584314 +v 0.030517 1.529813 0.025671 0.584314 0.584314 0.584314 +v 0.030975 1.527511 0.024960 0.584314 0.584314 0.584314 +v 0.031451 1.532139 0.047521 1.000000 0.000000 0.000000 +v 0.031451 1.533962 0.046071 1.000000 0.000000 0.000000 +v 0.031451 1.535518 0.044176 1.000000 0.000000 0.000000 +v 0.031451 1.536674 0.042013 0.584314 0.584314 0.584314 +v 0.031451 1.537385 0.039667 0.584314 0.584314 0.584314 +v 0.031451 1.537626 0.037227 0.584314 0.584314 0.584314 +v 0.031451 1.537385 0.034787 0.584314 0.584314 0.584314 +v 0.031451 1.536674 0.032441 0.584314 0.584314 0.584314 +v 0.031451 1.535518 0.030278 0.584314 0.584314 0.584314 +v 0.031451 1.533962 0.028383 0.584314 0.584314 0.584314 +v 0.031451 1.532067 0.026827 0.584314 0.584314 0.584314 +v 0.031451 1.529905 0.025671 0.584314 0.584314 0.584314 +v 0.031451 1.527558 0.024960 0.584314 0.584314 0.584314 +v 0.032821 1.532004 0.047521 1.000000 0.000000 0.000000 +v 0.033176 1.533792 0.046071 1.000000 0.000000 0.000000 +v 0.033480 1.535318 0.044176 1.000000 0.000000 0.000000 +v 0.033705 1.536452 0.042013 0.584314 0.584314 0.584314 +v 0.033844 1.537150 0.039667 0.584314 0.584314 0.584314 +v 0.033891 1.537385 0.037227 0.584314 0.584314 0.584314 +v 0.033844 1.537150 0.034787 0.584314 0.584314 0.584314 +v 0.033705 1.536452 0.032441 0.584314 0.584314 0.584314 +v 0.033480 1.535318 0.030278 0.584314 0.584314 0.584314 +v 0.033176 1.533792 0.028383 0.584314 0.584314 0.584314 +v 0.032807 1.531933 0.026827 0.584314 0.584314 0.584314 +v 0.032385 1.529813 0.025671 0.584314 0.584314 0.584314 +v 0.031927 1.527511 0.024960 0.584314 0.584314 0.584314 +v 0.034138 1.531604 0.047521 1.000000 0.000000 0.000000 +v 0.034836 1.533289 0.046071 1.000000 0.000000 0.000000 +v 0.035431 1.534726 0.044176 1.000000 0.000000 0.000000 +v 0.035873 1.535794 0.042013 0.584314 0.584314 0.584314 +v 0.036146 1.536452 0.039667 0.584314 0.584314 0.584314 +v 0.036238 1.536674 0.037227 0.584314 0.584314 0.584314 +v 0.036146 1.536452 0.034787 0.584314 0.584314 0.584314 +v 0.035873 1.535794 0.032441 0.584314 0.584314 0.584314 +v 0.035431 1.534726 0.030278 0.584314 0.584314 0.584314 +v 0.034836 1.533289 0.028383 0.584314 0.584314 0.584314 +v 0.034110 1.531538 0.026827 0.584314 0.584314 0.584314 +v 0.033283 1.529540 0.025671 0.584314 0.584314 0.584314 +v 0.032385 1.527372 0.024960 0.584314 0.584314 0.584314 +v 0.035352 1.530956 0.047521 1.000000 0.000000 0.000000 +v 0.036365 1.532472 0.046071 1.000000 0.000000 0.000000 +v 0.037229 1.533765 0.044176 1.000000 0.000000 0.000000 +v 0.037871 1.534726 0.042013 0.584314 0.584314 0.584314 +v 0.038266 1.535318 0.039667 0.584314 0.584314 0.584314 +v 0.038400 1.535518 0.037227 0.584314 0.584314 0.584314 +v 0.038266 1.535318 0.034787 0.584314 0.584314 0.584314 +v 0.037871 1.534726 0.032441 0.584314 0.584314 0.584314 +v 0.037229 1.533765 0.030278 0.584314 0.584314 0.584314 +v 0.036365 1.532472 0.028383 0.584314 0.584314 0.584314 +v 0.035312 1.530896 0.026827 0.584314 0.584314 0.584314 +v 0.034110 1.529098 0.025671 0.584314 0.584314 0.584314 +v 0.032807 1.527147 0.024960 0.584314 0.584314 0.584314 +v 0.036416 1.530083 0.047521 1.000000 0.000000 0.000000 +v 0.037705 1.531372 0.046071 1.000000 0.000000 0.000000 +v 0.038805 1.532472 0.044176 1.000000 0.000000 0.000000 +v 0.039622 1.533289 0.042013 0.584314 0.584314 0.584314 +v 0.040125 1.533792 0.039667 0.584314 0.584314 0.584314 +v 0.040295 1.533962 0.037227 0.584314 0.584314 0.584314 +v 0.040125 1.533792 0.034787 0.584314 0.584314 0.584314 +v 0.039622 1.533289 0.032441 0.584314 0.584314 0.584314 +v 0.038805 1.532472 0.030278 0.584314 0.584314 0.584314 +v 0.037705 1.531372 0.028383 0.584314 0.584314 0.584314 +v 0.036365 1.530032 0.026827 0.584314 0.584314 0.584314 +v 0.034836 1.528503 0.025671 0.584314 0.584314 0.584314 +v 0.033176 1.526843 0.024960 0.584314 0.584314 0.584314 +v 0.037289 1.529019 0.047521 1.000000 0.000000 0.000000 +v 0.038805 1.530032 0.046071 1.000000 0.000000 0.000000 +v 0.040098 1.530896 0.044176 1.000000 0.000000 0.000000 +v 0.041059 1.531538 0.042013 0.584314 0.584314 0.584314 +v 0.041651 1.531933 0.039667 0.584314 0.584314 0.584314 +v 0.041851 1.532067 0.037227 0.584314 0.584314 0.584314 +v 0.041651 1.531933 0.034787 0.584314 0.584314 0.584314 +v 0.041059 1.531538 0.032441 0.584314 0.584314 0.584314 +v 0.040098 1.530896 0.030278 0.584314 0.584314 0.584314 +v 0.038805 1.530032 0.028383 0.584314 0.584314 0.584314 +v 0.037229 1.528979 0.026827 0.584314 0.584314 0.584314 +v 0.035431 1.527777 0.025671 0.584314 0.584314 0.584314 +v 0.033480 1.526474 0.024960 0.584314 0.584314 0.584314 +v 0.037937 1.527805 0.047521 1.000000 0.000000 0.000000 +v 0.039622 1.528503 0.046071 1.000000 0.000000 0.000000 +v 0.041059 1.529098 0.044176 1.000000 0.000000 0.000000 +v 0.042127 1.529540 0.042013 0.584314 0.584314 0.584314 +v 0.042785 1.529813 0.039667 0.584314 0.584314 0.584314 +v 0.043007 1.529904 0.037227 0.584314 0.584314 0.584314 +v 0.042785 1.529813 0.034787 0.584314 0.584314 0.584314 +v 0.042127 1.529540 0.032441 0.584314 0.584314 0.584314 +v 0.041059 1.529098 0.030278 0.584314 0.584314 0.584314 +v 0.039622 1.528503 0.028383 0.584314 0.584314 0.584314 +v 0.037871 1.527777 0.026827 0.584314 0.584314 0.584314 +v 0.035873 1.526950 0.025671 0.584314 0.584314 0.584314 +v 0.033705 1.526052 0.024960 0.584314 0.584314 0.584314 +v 0.038337 1.526488 0.047521 1.000000 0.000000 0.000000 +v 0.040125 1.526843 0.046071 1.000000 0.000000 0.000000 +v 0.041651 1.527147 0.044176 1.000000 0.000000 0.000000 +v 0.042785 1.527372 0.042014 1.000000 0.000000 0.000000 +v 0.043483 1.527511 0.039667 1.000000 0.000000 0.000000 +v 0.043718 1.527558 0.037227 0.584314 0.584314 0.584314 +v 0.043483 1.527511 0.034787 0.584314 0.584314 0.584314 +v 0.042785 1.527372 0.032441 0.584314 0.584314 0.584314 +v 0.041651 1.527147 0.030278 0.584314 0.584314 0.584314 +v 0.040125 1.526843 0.028383 0.584314 0.584314 0.584314 +v 0.038266 1.526474 0.026827 0.584314 0.584314 0.584314 +v 0.036146 1.526052 0.025671 0.584314 0.584314 0.584314 +v 0.033844 1.525594 0.024960 0.584314 0.584314 0.584314 +v 0.038472 1.525118 0.047521 1.000000 0.000000 0.000000 +v 0.040295 1.525118 0.046071 1.000000 0.000000 0.000000 +v 0.041851 1.525118 0.044176 1.000000 0.000000 0.000000 +v 0.043007 1.525118 0.042014 1.000000 0.000000 0.000000 +v 0.043718 1.525118 0.039667 1.000000 0.000000 0.000000 +v 0.043959 1.525118 0.037227 0.584314 0.584314 0.584314 +v 0.043718 1.525118 0.034787 0.584314 0.584314 0.584314 +v 0.043007 1.525118 0.032441 0.584314 0.584314 0.584314 +v 0.041851 1.525118 0.030278 0.584314 0.584314 0.584314 +v 0.040295 1.525118 0.028383 0.584314 0.584314 0.584314 +v 0.038400 1.525118 0.026827 0.584314 0.584314 0.584314 +v 0.036238 1.525118 0.025671 0.584314 0.584314 0.584314 +v 0.033891 1.525118 0.024960 0.584314 0.584314 0.584314 +v 0.038337 1.523748 0.047521 1.000000 0.000000 0.000000 +v 0.040125 1.523393 0.046071 1.000000 0.000000 0.000000 +v 0.041651 1.523089 0.044176 1.000000 0.000000 0.000000 +v 0.042785 1.522864 0.042014 1.000000 0.000000 0.000000 +v 0.043483 1.522725 0.039667 1.000000 0.000000 0.000000 +v 0.043718 1.522678 0.037227 0.584314 0.584314 0.584314 +v 0.043483 1.522725 0.034787 0.584314 0.584314 0.584314 +v 0.042785 1.522864 0.032441 0.584314 0.584314 0.584314 +v 0.041651 1.523089 0.030278 0.584314 0.584314 0.584314 +v 0.040125 1.523393 0.028383 0.584314 0.584314 0.584314 +v 0.038266 1.523762 0.026827 0.584314 0.584314 0.584314 +v 0.036146 1.524184 0.025671 0.584314 0.584314 0.584314 +v 0.033844 1.524642 0.024960 0.584314 0.584314 0.584314 +v 0.037937 1.522431 0.047521 1.000000 0.000000 0.000000 +v 0.039622 1.521733 0.046071 1.000000 0.000000 0.000000 +v 0.041059 1.521138 0.044176 1.000000 0.000000 0.000000 +v 0.042127 1.520696 0.042014 1.000000 0.000000 0.000000 +v 0.042785 1.520423 0.039667 1.000000 0.000000 0.000000 +v 0.043007 1.520331 0.037227 0.584314 0.584314 0.584314 +v 0.042785 1.520423 0.034787 0.584314 0.584314 0.584314 +v 0.042127 1.520696 0.032441 0.584314 0.584314 0.584314 +v 0.041059 1.521138 0.030278 0.584314 0.584314 0.584314 +v 0.039622 1.521733 0.028383 0.584314 0.584314 0.584314 +v 0.037871 1.522459 0.026827 0.584314 0.584314 0.584314 +v 0.035873 1.523286 0.025671 0.584314 0.584314 0.584314 +v 0.033705 1.524184 0.024960 0.584314 0.584314 0.584314 +v 0.037289 1.521217 0.047521 1.000000 0.000000 0.000000 +v 0.038805 1.520204 0.046071 1.000000 0.000000 0.000000 +v 0.040098 1.519340 0.044176 1.000000 0.000000 0.000000 +v 0.041059 1.518698 0.042014 1.000000 0.000000 0.000000 +v 0.041651 1.518303 0.039667 1.000000 0.000000 0.000000 +v 0.041851 1.518169 0.037227 0.584314 0.584314 0.584314 +v 0.041651 1.518303 0.034787 0.584314 0.584314 0.584314 +v 0.041059 1.518698 0.032441 0.584314 0.584314 0.584314 +v 0.040098 1.519340 0.030278 0.584314 0.584314 0.584314 +v 0.038805 1.520204 0.028383 0.584314 0.584314 0.584314 +v 0.037229 1.521257 0.026827 0.584314 0.584314 0.584314 +v 0.035431 1.522459 0.025671 0.584314 0.584314 0.584314 +v 0.033480 1.523762 0.024960 0.584314 0.584314 0.584314 +v 0.036416 1.520153 0.047521 1.000000 0.000000 0.000000 +v 0.037705 1.518864 0.046071 1.000000 0.000000 0.000000 +v 0.038805 1.517764 0.044176 1.000000 0.000000 0.000000 +v 0.039622 1.516947 0.042014 1.000000 0.000000 0.000000 +v 0.040125 1.516444 0.039667 0.584314 0.584314 0.584314 +v 0.040295 1.516274 0.037227 0.584314 0.584314 0.584314 +v 0.040125 1.516444 0.034787 0.584314 0.584314 0.584314 +v 0.039622 1.516947 0.032441 0.584314 0.584314 0.584314 +v 0.038805 1.517764 0.030278 0.584314 0.584314 0.584314 +v 0.037705 1.518864 0.028383 0.584314 0.584314 0.584314 +v 0.036365 1.520204 0.026827 0.584314 0.584314 0.584314 +v 0.034836 1.521733 0.025671 0.584314 0.584314 0.584314 +v 0.033176 1.523393 0.024960 0.584314 0.584314 0.584314 +v 0.035352 1.519280 0.047521 1.000000 0.000000 0.000000 +v 0.036365 1.517764 0.046071 1.000000 0.000000 0.000000 +v 0.037229 1.516471 0.044176 1.000000 0.000000 0.000000 +v 0.037871 1.515510 0.042014 0.584314 0.584314 0.584314 +v 0.038266 1.514918 0.039667 0.584314 0.584314 0.584314 +v 0.038400 1.514718 0.037227 0.584314 0.584314 0.584314 +v 0.038266 1.514918 0.034787 0.584314 0.584314 0.584314 +v 0.037871 1.515510 0.032441 0.584314 0.584314 0.584314 +v 0.037229 1.516471 0.030278 0.584314 0.584314 0.584314 +v 0.036365 1.517764 0.028383 0.584314 0.584314 0.584314 +v 0.035312 1.519340 0.026827 0.584314 0.584314 0.584314 +v 0.034110 1.521138 0.025671 0.584314 0.584314 0.584314 +v 0.032807 1.523089 0.024960 0.584314 0.584314 0.584314 +v 0.031451 1.525118 0.024719 0.584314 0.584314 0.584314 +v 0.034138 1.518632 0.047521 1.000000 0.000000 0.000000 +v 0.034836 1.516947 0.046071 1.000000 0.000000 0.000000 +v 0.035431 1.515510 0.044176 0.584314 0.584314 0.584314 +v 0.035873 1.514442 0.042014 0.584314 0.584314 0.584314 +v 0.036146 1.513784 0.039667 0.584314 0.584314 0.584314 +v 0.036238 1.513562 0.037227 0.584314 0.584314 0.584314 +v 0.036146 1.513784 0.034787 0.584314 0.584314 0.584314 +v 0.035873 1.514442 0.032441 0.584314 0.584314 0.584314 +v 0.035431 1.515510 0.030278 0.584314 0.584314 0.584314 +v 0.034836 1.516947 0.028383 0.584314 0.584314 0.584314 +v 0.034110 1.518698 0.026827 0.584314 0.584314 0.584314 +v 0.033283 1.520696 0.025671 0.584314 0.584314 0.584314 +v 0.032385 1.522864 0.024960 0.584314 0.584314 0.584314 +v 0.032821 1.518232 0.047521 1.000000 0.000000 0.000000 +v 0.033176 1.516444 0.046071 1.000000 0.000000 0.000000 +v 0.033480 1.514918 0.044176 0.584314 0.584314 0.584314 +v 0.033705 1.513784 0.042014 0.584314 0.584314 0.584314 +v 0.033844 1.513086 0.039667 0.584314 0.584314 0.584314 +v 0.033891 1.512851 0.037227 0.584314 0.584314 0.584314 +v 0.033844 1.513086 0.034787 0.584314 0.584314 0.584314 +v 0.033705 1.513784 0.032441 0.584314 0.584314 0.584314 +v 0.033480 1.514918 0.030278 0.584314 0.584314 0.584314 +v 0.033176 1.516444 0.028383 0.584314 0.584314 0.584314 +v 0.032807 1.518303 0.026827 0.584314 0.584314 0.584314 +v 0.032385 1.520423 0.025671 0.584314 0.584314 0.584314 +v 0.031927 1.522725 0.024960 0.584314 0.584314 0.584314 +v 0.031451 1.518097 0.047521 1.000000 0.000000 0.000000 +v 0.031451 1.516274 0.046071 1.000000 0.000000 0.000000 +v 0.031451 1.514718 0.044176 0.584314 0.584314 0.584314 +v 0.031451 1.513562 0.042014 0.584314 0.584314 0.584314 +v 0.031451 1.512851 0.039667 0.584314 0.584314 0.584314 +v 0.031451 1.512610 0.037227 0.584314 0.584314 0.584314 +v 0.031451 1.512851 0.034787 0.584314 0.584314 0.584314 +v 0.031451 1.513562 0.032441 0.584314 0.584314 0.584314 +v 0.031451 1.514718 0.030278 0.584314 0.584314 0.584314 +v 0.031451 1.516274 0.028383 0.584314 0.584314 0.584314 +v 0.031451 1.518169 0.026827 0.584314 0.584314 0.584314 +v 0.031451 1.520332 0.025671 0.584314 0.584314 0.584314 +v 0.031451 1.522678 0.024960 0.584314 0.584314 0.584314 +v 0.030081 1.518232 0.047521 1.000000 0.000000 0.000000 +v 0.029726 1.516444 0.046071 1.000000 0.000000 0.000000 +v 0.029422 1.514918 0.044176 0.584314 0.584314 0.584314 +v 0.029197 1.513784 0.042014 0.584314 0.584314 0.584314 +v 0.029058 1.513086 0.039667 0.584314 0.584314 0.584314 +v 0.029011 1.512851 0.037227 0.584314 0.584314 0.584314 +v 0.029058 1.513086 0.034787 0.584314 0.584314 0.584314 +v 0.029197 1.513784 0.032441 0.584314 0.584314 0.584314 +v 0.029422 1.514918 0.030278 0.584314 0.584314 0.584314 +v 0.029726 1.516444 0.028383 0.584314 0.584314 0.584314 +v 0.030095 1.518303 0.026827 0.584314 0.584314 0.584314 +v 0.030517 1.520423 0.025671 0.584314 0.584314 0.584314 +v 0.030975 1.522725 0.024960 0.584314 0.584314 0.584314 +v 0.028764 1.518632 0.047521 1.000000 0.000000 0.000000 +v 0.028066 1.516947 0.046071 1.000000 0.000000 0.000000 +v 0.027471 1.515510 0.044176 0.584314 0.584314 0.584314 +v 0.027029 1.514442 0.042014 0.584314 0.584314 0.584314 +v 0.026756 1.513784 0.039667 0.584314 0.584314 0.584314 +v 0.026665 1.513562 0.037227 0.584314 0.584314 0.584314 +v 0.026756 1.513784 0.034787 0.584314 0.584314 0.584314 +v 0.027029 1.514442 0.032441 0.584314 0.584314 0.584314 +v 0.027471 1.515510 0.030278 0.584314 0.584314 0.584314 +v 0.028066 1.516947 0.028383 0.584314 0.584314 0.584314 +v 0.028792 1.518698 0.026827 0.584314 0.584314 0.584314 +v 0.029619 1.520696 0.025671 0.584314 0.584314 0.584314 +v 0.030517 1.522864 0.024960 0.584314 0.584314 0.584314 +v 0.027550 1.519280 0.047521 1.000000 0.000000 0.000000 +v 0.026537 1.517764 0.046071 1.000000 0.000000 0.000000 +v 0.025673 1.516471 0.044176 0.584314 0.584314 0.584314 +v 0.025031 1.515510 0.042014 0.584314 0.584314 0.584314 +v 0.024636 1.514918 0.039667 0.584314 0.584314 0.584314 +v 0.024502 1.514718 0.037227 0.584314 0.584314 0.584314 +v 0.024636 1.514918 0.034787 0.584314 0.584314 0.584314 +v 0.025031 1.515510 0.032441 0.584314 0.584314 0.584314 +v 0.025673 1.516471 0.030278 0.584314 0.584314 0.584314 +v 0.026537 1.517764 0.028383 0.584314 0.584314 0.584314 +v 0.027590 1.519340 0.026827 0.584314 0.584314 0.584314 +v 0.028792 1.521138 0.025671 0.584314 0.584314 0.584314 +v 0.030095 1.523089 0.024960 0.584314 0.584314 0.584314 +v 0.026486 1.520153 0.047521 1.000000 0.000000 0.000000 +v 0.025197 1.518864 0.046071 1.000000 0.000000 0.000000 +v 0.024097 1.517764 0.044176 1.000000 0.000000 0.000000 +v 0.023280 1.516947 0.042014 0.584314 0.584314 0.584314 +v 0.022777 1.516444 0.039667 0.584314 0.584314 0.584314 +v 0.022607 1.516274 0.037227 0.584314 0.584314 0.584314 +v 0.022777 1.516444 0.034787 0.584314 0.584314 0.584314 +v 0.023280 1.516947 0.032441 0.584314 0.584314 0.584314 +v 0.024097 1.517764 0.030278 0.584314 0.584314 0.584314 +v 0.025197 1.518864 0.028383 0.584314 0.584314 0.584314 +v 0.026537 1.520204 0.026827 0.584314 0.584314 0.584314 +v 0.028066 1.521733 0.025671 0.584314 0.584314 0.584314 +v 0.029726 1.523393 0.024960 0.584314 0.584314 0.584314 +v 0.025613 1.521217 0.047521 1.000000 0.000000 0.000000 +v 0.024097 1.520204 0.046071 1.000000 0.000000 0.000000 +v 0.022804 1.519340 0.044176 1.000000 0.000000 0.000000 +v 0.021843 1.518698 0.042014 0.584314 0.584314 0.584314 +v 0.021251 1.518303 0.039667 0.584314 0.584314 0.584314 +v 0.021051 1.518169 0.037227 0.584314 0.584314 0.584314 +v 0.021251 1.518303 0.034787 0.584314 0.584314 0.584314 +v 0.021843 1.518698 0.032441 0.584314 0.584314 0.584314 +v 0.022804 1.519340 0.030278 0.584314 0.584314 0.584314 +v 0.024097 1.520204 0.028383 0.584314 0.584314 0.584314 +v 0.025673 1.521257 0.026827 0.584314 0.584314 0.584314 +v 0.027471 1.522459 0.025671 0.584314 0.584314 0.584314 +v 0.029422 1.523762 0.024960 0.584314 0.584314 0.584314 +v 0.024965 1.522431 0.047521 1.000000 0.000000 0.000000 +v 0.023280 1.521733 0.046071 1.000000 0.000000 0.000000 +v 0.021843 1.521138 0.044176 1.000000 0.000000 0.000000 +v 0.020775 1.520696 0.042014 0.584314 0.584314 0.584314 +v 0.020117 1.520423 0.039667 0.584314 0.584314 0.584314 +v 0.019895 1.520332 0.037227 0.584314 0.584314 0.584314 +v 0.020117 1.520423 0.034787 0.584314 0.584314 0.584314 +v 0.020775 1.520696 0.032441 0.584314 0.584314 0.584314 +v 0.021843 1.521138 0.030278 0.584314 0.584314 0.584314 +v 0.023280 1.521733 0.028383 0.584314 0.584314 0.584314 +v 0.025031 1.522459 0.026827 0.584314 0.584314 0.584314 +v 0.027029 1.523286 0.025671 0.584314 0.584314 0.584314 +v 0.029197 1.524184 0.024960 0.584314 0.584314 0.584314 +v 0.024565 1.523748 0.047521 1.000000 0.000000 0.000000 +v 0.022777 1.523393 0.046071 1.000000 0.000000 0.000000 +v 0.021251 1.523089 0.044176 1.000000 0.000000 0.000000 +v 0.020117 1.522864 0.042014 0.584314 0.584314 0.584314 +v 0.019419 1.522725 0.039667 0.584314 0.584314 0.584314 +v 0.019184 1.522678 0.037227 0.584314 0.584314 0.584314 +v 0.019419 1.522725 0.034787 0.584314 0.584314 0.584314 +v 0.020117 1.522864 0.032441 0.584314 0.584314 0.584314 +v 0.021251 1.523089 0.030278 0.584314 0.584314 0.584314 +v 0.022777 1.523393 0.028383 0.584314 0.584314 0.584314 +v 0.024636 1.523762 0.026827 0.584314 0.584314 0.584314 +v 0.026756 1.524184 0.025671 0.584314 0.584314 0.584314 +v 0.029058 1.524642 0.024960 0.584314 0.584314 0.584314 +v -0.033078 1.525118 0.050617 1.000000 0.000000 0.000000 +v -0.034642 1.525118 0.050142 1.000000 0.000000 0.000000 +v -0.036084 1.525118 0.049372 1.000000 0.000000 0.000000 +v -0.037293 1.525118 0.048376 1.000000 0.000000 0.000000 +v -0.033047 1.525435 0.050617 1.000000 0.000000 0.000000 +v -0.034581 1.525741 0.050142 1.000000 0.000000 0.000000 +v -0.035995 1.526022 0.049372 1.000000 0.000000 0.000000 +v -0.037180 1.526258 0.048376 1.000000 0.000000 0.000000 +v -0.032954 1.525741 0.050617 1.000000 0.000000 0.000000 +v -0.034399 1.526339 0.050142 1.000000 0.000000 0.000000 +v -0.035731 1.526891 0.049372 1.000000 0.000000 0.000000 +v -0.036848 1.527353 0.048376 1.000000 0.000000 0.000000 +v -0.032804 1.526022 0.050617 1.000000 0.000000 0.000000 +v -0.034104 1.526891 0.050142 1.000000 0.000000 0.000000 +v -0.035303 1.527692 0.049372 1.000000 0.000000 0.000000 +v -0.036308 1.528363 0.048376 1.000000 0.000000 0.000000 +v -0.032601 1.526268 0.050617 1.000000 0.000000 0.000000 +v -0.033707 1.527374 0.050142 1.000000 0.000000 0.000000 +v -0.034727 1.528394 0.049372 1.000000 0.000000 0.000000 +v -0.035582 1.529249 0.048376 1.000000 0.000000 0.000000 +v -0.032355 1.526471 0.050617 1.000000 0.000000 0.000000 +v -0.033224 1.527771 0.050142 1.000000 0.000000 0.000000 +v -0.034025 1.528970 0.049372 1.000000 0.000000 0.000000 +v -0.034696 1.529975 0.048376 1.000000 0.000000 0.000000 +v -0.032074 1.526621 0.050617 1.000000 0.000000 0.000000 +v -0.032672 1.528066 0.050142 1.000000 0.000000 0.000000 +v -0.033224 1.529398 0.049372 1.000000 0.000000 0.000000 +v -0.033686 1.530515 0.048376 1.000000 0.000000 0.000000 +v -0.031768 1.526714 0.050617 1.000000 0.000000 0.000000 +v -0.032074 1.528248 0.050142 1.000000 0.000000 0.000000 +v -0.032355 1.529662 0.049372 1.000000 0.000000 0.000000 +v -0.032591 1.530847 0.048376 1.000000 0.000000 0.000000 +v -0.031451 1.526745 0.050617 1.000000 0.000000 0.000000 +v -0.031451 1.528309 0.050142 1.000000 0.000000 0.000000 +v -0.031451 1.529751 0.049372 1.000000 0.000000 0.000000 +v -0.031451 1.530960 0.048376 1.000000 0.000000 0.000000 +v -0.031134 1.526714 0.050617 1.000000 0.000000 0.000000 +v -0.030828 1.528248 0.050142 1.000000 0.000000 0.000000 +v -0.030547 1.529662 0.049372 1.000000 0.000000 0.000000 +v -0.030311 1.530847 0.048376 1.000000 0.000000 0.000000 +v -0.030828 1.526621 0.050617 1.000000 0.000000 0.000000 +v -0.030230 1.528066 0.050142 1.000000 0.000000 0.000000 +v -0.029678 1.529398 0.049372 1.000000 0.000000 0.000000 +v -0.029216 1.530515 0.048376 1.000000 0.000000 0.000000 +v -0.030547 1.526471 0.050617 1.000000 0.000000 0.000000 +v -0.029678 1.527771 0.050142 1.000000 0.000000 0.000000 +v -0.028877 1.528970 0.049372 1.000000 0.000000 0.000000 +v -0.028206 1.529975 0.048376 1.000000 0.000000 0.000000 +v -0.030301 1.526268 0.050617 1.000000 0.000000 0.000000 +v -0.029195 1.527374 0.050142 1.000000 0.000000 0.000000 +v -0.028175 1.528394 0.049372 1.000000 0.000000 0.000000 +v -0.027320 1.529249 0.048376 1.000000 0.000000 0.000000 +v -0.030098 1.526022 0.050617 1.000000 0.000000 0.000000 +v -0.028798 1.526891 0.050142 1.000000 0.000000 0.000000 +v -0.027599 1.527692 0.049372 1.000000 0.000000 0.000000 +v -0.026594 1.528363 0.048376 1.000000 0.000000 0.000000 +v -0.029948 1.525741 0.050617 1.000000 0.000000 0.000000 +v -0.028503 1.526339 0.050142 1.000000 0.000000 0.000000 +v -0.027171 1.526891 0.049372 1.000000 0.000000 0.000000 +v -0.026054 1.527353 0.048376 1.000000 0.000000 0.000000 +v -0.029856 1.525435 0.050617 1.000000 0.000000 0.000000 +v -0.028321 1.525741 0.050142 1.000000 0.000000 0.000000 +v -0.026907 1.526022 0.049372 1.000000 0.000000 0.000000 +v -0.025722 1.526258 0.048376 1.000000 0.000000 0.000000 +v -0.029824 1.525118 0.050617 1.000000 0.000000 0.000000 +v -0.028260 1.525118 0.050142 1.000000 0.000000 0.000000 +v -0.026818 1.525118 0.049372 1.000000 0.000000 0.000000 +v -0.025609 1.525118 0.048376 1.000000 0.000000 0.000000 +v -0.029856 1.524801 0.050617 1.000000 0.000000 0.000000 +v -0.028321 1.524495 0.050142 1.000000 0.000000 0.000000 +v -0.026907 1.524214 0.049372 1.000000 0.000000 0.000000 +v -0.025722 1.523978 0.048376 1.000000 0.000000 0.000000 +v -0.029948 1.524495 0.050617 1.000000 0.000000 0.000000 +v -0.028503 1.523897 0.050142 1.000000 0.000000 0.000000 +v -0.027171 1.523345 0.049372 1.000000 0.000000 0.000000 +v -0.026054 1.522883 0.048376 1.000000 0.000000 0.000000 +v -0.030098 1.524214 0.050617 1.000000 0.000000 0.000000 +v -0.028798 1.523345 0.050142 1.000000 0.000000 0.000000 +v -0.027599 1.522544 0.049372 1.000000 0.000000 0.000000 +v -0.026594 1.521873 0.048376 1.000000 0.000000 0.000000 +v -0.030301 1.523968 0.050617 1.000000 0.000000 0.000000 +v -0.029195 1.522862 0.050142 1.000000 0.000000 0.000000 +v -0.028175 1.521842 0.049372 1.000000 0.000000 0.000000 +v -0.027320 1.520987 0.048376 1.000000 0.000000 0.000000 +v -0.030547 1.523765 0.050617 1.000000 0.000000 0.000000 +v -0.029678 1.522465 0.050142 1.000000 0.000000 0.000000 +v -0.028877 1.521266 0.049372 1.000000 0.000000 0.000000 +v -0.028206 1.520261 0.048376 1.000000 0.000000 0.000000 +v -0.030828 1.523615 0.050617 1.000000 0.000000 0.000000 +v -0.030230 1.522170 0.050142 1.000000 0.000000 0.000000 +v -0.029678 1.520838 0.049372 1.000000 0.000000 0.000000 +v -0.029216 1.519721 0.048376 1.000000 0.000000 0.000000 +v -0.031134 1.523522 0.050617 1.000000 0.000000 0.000000 +v -0.030828 1.521988 0.050142 1.000000 0.000000 0.000000 +v -0.030547 1.520574 0.049372 1.000000 0.000000 0.000000 +v -0.030311 1.519389 0.048376 1.000000 0.000000 0.000000 +v -0.031451 1.523491 0.050617 1.000000 0.000000 0.000000 +v -0.031451 1.521927 0.050142 1.000000 0.000000 0.000000 +v -0.031451 1.520485 0.049372 1.000000 0.000000 0.000000 +v -0.031451 1.519276 0.048376 1.000000 0.000000 0.000000 +v -0.031768 1.523522 0.050617 1.000000 0.000000 0.000000 +v -0.032074 1.521988 0.050142 1.000000 0.000000 0.000000 +v -0.032355 1.520574 0.049372 1.000000 0.000000 0.000000 +v -0.032591 1.519389 0.048376 1.000000 0.000000 0.000000 +v -0.032074 1.523615 0.050617 1.000000 0.000000 0.000000 +v -0.032672 1.522170 0.050142 1.000000 0.000000 0.000000 +v -0.033224 1.520838 0.049372 1.000000 0.000000 0.000000 +v -0.033686 1.519721 0.048376 1.000000 0.000000 0.000000 +v -0.032355 1.523765 0.050617 1.000000 0.000000 0.000000 +v -0.033224 1.522465 0.050142 1.000000 0.000000 0.000000 +v -0.034025 1.521266 0.049372 1.000000 0.000000 0.000000 +v -0.034696 1.520261 0.048376 1.000000 0.000000 0.000000 +v -0.032601 1.523968 0.050617 1.000000 0.000000 0.000000 +v -0.033707 1.522862 0.050142 1.000000 0.000000 0.000000 +v -0.034727 1.521842 0.049372 1.000000 0.000000 0.000000 +v -0.035582 1.520987 0.048376 1.000000 0.000000 0.000000 +v -0.032804 1.524214 0.050617 1.000000 0.000000 0.000000 +v -0.034104 1.523345 0.050142 1.000000 0.000000 0.000000 +v -0.035303 1.522544 0.049372 1.000000 0.000000 0.000000 +v -0.036308 1.521873 0.048376 1.000000 0.000000 0.000000 +v -0.031451 1.525118 0.050777 1.000000 0.000000 0.000000 +v -0.032954 1.524495 0.050617 1.000000 0.000000 0.000000 +v -0.034399 1.523897 0.050142 1.000000 0.000000 0.000000 +v -0.035731 1.523345 0.049372 1.000000 0.000000 0.000000 +v -0.036848 1.522883 0.048376 1.000000 0.000000 0.000000 +v -0.033047 1.524801 0.050617 1.000000 0.000000 0.000000 +v -0.034581 1.524495 0.050142 1.000000 0.000000 0.000000 +v -0.035995 1.524214 0.049372 1.000000 0.000000 0.000000 +v -0.037180 1.523978 0.048376 1.000000 0.000000 0.000000 +v -0.038472 1.525118 0.047521 1.000000 0.000000 0.000000 +v -0.040295 1.525118 0.046071 1.000000 0.000000 0.000000 +v -0.041851 1.525118 0.044176 1.000000 0.000000 0.000000 +v -0.043007 1.525118 0.042014 1.000000 0.000000 0.000000 +v -0.043718 1.525118 0.039667 1.000000 0.000000 0.000000 +v -0.043959 1.525118 0.037227 0.584314 0.584314 0.584314 +v -0.043718 1.525118 0.034787 0.584314 0.584314 0.584314 +v -0.043007 1.525118 0.032441 0.584314 0.584314 0.584314 +v -0.041851 1.525118 0.030278 0.584314 0.584314 0.584314 +v -0.040295 1.525118 0.028383 0.584314 0.584314 0.584314 +v -0.038400 1.525118 0.026827 0.584314 0.584314 0.584314 +v -0.036238 1.525118 0.025671 0.584314 0.584314 0.584314 +v -0.033891 1.525118 0.024960 0.584314 0.584314 0.584314 +v -0.038337 1.526488 0.047521 1.000000 0.000000 0.000000 +v -0.040125 1.526843 0.046071 1.000000 0.000000 0.000000 +v -0.041651 1.527147 0.044176 1.000000 0.000000 0.000000 +v -0.042785 1.527372 0.042014 1.000000 0.000000 0.000000 +v -0.043483 1.527511 0.039667 0.584314 0.584314 0.584314 +v -0.043718 1.527558 0.037227 0.584314 0.584314 0.584314 +v -0.043483 1.527511 0.034787 0.584314 0.584314 0.584314 +v -0.042785 1.527372 0.032441 0.584314 0.584314 0.584314 +v -0.041651 1.527147 0.030278 0.584314 0.584314 0.584314 +v -0.040125 1.526843 0.028383 0.584314 0.584314 0.584314 +v -0.038266 1.526474 0.026827 0.584314 0.584314 0.584314 +v -0.036146 1.526052 0.025671 0.584314 0.584314 0.584314 +v -0.033844 1.525594 0.024960 0.584314 0.584314 0.584314 +v -0.037937 1.527805 0.047521 1.000000 0.000000 0.000000 +v -0.039622 1.528503 0.046071 1.000000 0.000000 0.000000 +v -0.041059 1.529098 0.044176 1.000000 0.000000 0.000000 +v -0.042127 1.529540 0.042013 0.584314 0.584314 0.584314 +v -0.042785 1.529813 0.039667 0.584314 0.584314 0.584314 +v -0.043007 1.529904 0.037227 0.584314 0.584314 0.584314 +v -0.042785 1.529813 0.034787 0.584314 0.584314 0.584314 +v -0.042127 1.529540 0.032441 0.584314 0.584314 0.584314 +v -0.041059 1.529098 0.030278 0.584314 0.584314 0.584314 +v -0.039622 1.528503 0.028383 0.584314 0.584314 0.584314 +v -0.037871 1.527777 0.026827 0.584314 0.584314 0.584314 +v -0.035873 1.526950 0.025671 0.584314 0.584314 0.584314 +v -0.033705 1.526052 0.024960 0.584314 0.584314 0.584314 +v -0.037289 1.529019 0.047521 1.000000 0.000000 0.000000 +v -0.038805 1.530032 0.046071 1.000000 0.000000 0.000000 +v -0.040098 1.530896 0.044176 1.000000 0.000000 0.000000 +v -0.041059 1.531538 0.042013 0.584314 0.584314 0.584314 +v -0.041651 1.531933 0.039667 0.584314 0.584314 0.584314 +v -0.041851 1.532067 0.037227 0.584314 0.584314 0.584314 +v -0.041651 1.531933 0.034787 0.584314 0.584314 0.584314 +v -0.041059 1.531538 0.032441 0.584314 0.584314 0.584314 +v -0.040098 1.530896 0.030278 0.584314 0.584314 0.584314 +v -0.038805 1.530032 0.028383 0.584314 0.584314 0.584314 +v -0.037229 1.528979 0.026827 0.584314 0.584314 0.584314 +v -0.035431 1.527777 0.025671 0.584314 0.584314 0.584314 +v -0.033480 1.526474 0.024960 0.584314 0.584314 0.584314 +v -0.036416 1.530083 0.047521 1.000000 0.000000 0.000000 +v -0.037705 1.531372 0.046071 1.000000 0.000000 0.000000 +v -0.038805 1.532472 0.044176 1.000000 0.000000 0.000000 +v -0.039622 1.533289 0.042013 1.000000 0.000000 0.000000 +v -0.040125 1.533792 0.039667 0.584314 0.584314 0.584314 +v -0.040295 1.533962 0.037227 0.584314 0.584314 0.584314 +v -0.040125 1.533792 0.034787 0.584314 0.584314 0.584314 +v -0.039622 1.533289 0.032441 0.584314 0.584314 0.584314 +v -0.038805 1.532472 0.030278 0.584314 0.584314 0.584314 +v -0.037705 1.531372 0.028383 0.584314 0.584314 0.584314 +v -0.036365 1.530032 0.026827 0.584314 0.584314 0.584314 +v -0.034836 1.528503 0.025671 0.584314 0.584314 0.584314 +v -0.033176 1.526843 0.024960 0.584314 0.584314 0.584314 +v -0.035352 1.530956 0.047521 1.000000 0.000000 0.000000 +v -0.036365 1.532472 0.046071 1.000000 0.000000 0.000000 +v -0.037229 1.533765 0.044176 1.000000 0.000000 0.000000 +v -0.037871 1.534726 0.042013 1.000000 0.000000 0.000000 +v -0.038266 1.535318 0.039667 0.584314 0.584314 0.584314 +v -0.038400 1.535518 0.037227 0.584314 0.584314 0.584314 +v -0.038266 1.535318 0.034787 0.584314 0.584314 0.584314 +v -0.037871 1.534726 0.032441 0.584314 0.584314 0.584314 +v -0.037229 1.533765 0.030278 0.584314 0.584314 0.584314 +v -0.036365 1.532472 0.028383 0.584314 0.584314 0.584314 +v -0.035312 1.530896 0.026827 0.584314 0.584314 0.584314 +v -0.034110 1.529098 0.025671 0.584314 0.584314 0.584314 +v -0.032807 1.527147 0.024960 0.584314 0.584314 0.584314 +v -0.034138 1.531604 0.047521 1.000000 0.000000 0.000000 +v -0.034836 1.533289 0.046071 1.000000 0.000000 0.000000 +v -0.035431 1.534726 0.044176 1.000000 0.000000 0.000000 +v -0.035873 1.535794 0.042013 1.000000 0.000000 0.000000 +v -0.036146 1.536452 0.039667 0.584314 0.584314 0.584314 +v -0.036238 1.536674 0.037227 0.584314 0.584314 0.584314 +v -0.036146 1.536452 0.034787 0.584314 0.584314 0.584314 +v -0.035873 1.535794 0.032441 0.584314 0.584314 0.584314 +v -0.035431 1.534726 0.030278 0.584314 0.584314 0.584314 +v -0.034836 1.533289 0.028383 0.584314 0.584314 0.584314 +v -0.034110 1.531538 0.026827 0.584314 0.584314 0.584314 +v -0.033283 1.529540 0.025671 0.584314 0.584314 0.584314 +v -0.032385 1.527372 0.024960 0.584314 0.584314 0.584314 +v -0.032821 1.532004 0.047521 1.000000 0.000000 0.000000 +v -0.033176 1.533792 0.046071 1.000000 0.000000 0.000000 +v -0.033480 1.535318 0.044176 1.000000 0.000000 0.000000 +v -0.033705 1.536452 0.042013 1.000000 0.000000 0.000000 +v -0.033844 1.537150 0.039667 0.584314 0.584314 0.584314 +v -0.033891 1.537385 0.037227 0.584314 0.584314 0.584314 +v -0.033844 1.537150 0.034787 0.584314 0.584314 0.584314 +v -0.033705 1.536452 0.032441 0.584314 0.584314 0.584314 +v -0.033480 1.535318 0.030278 0.584314 0.584314 0.584314 +v -0.033176 1.533792 0.028383 0.584314 0.584314 0.584314 +v -0.032807 1.531933 0.026827 0.584314 0.584314 0.584314 +v -0.032385 1.529813 0.025671 0.584314 0.584314 0.584314 +v -0.031927 1.527511 0.024960 0.584314 0.584314 0.584314 +v -0.031451 1.532139 0.047521 1.000000 0.000000 0.000000 +v -0.031451 1.533962 0.046071 1.000000 0.000000 0.000000 +v -0.031451 1.535518 0.044176 1.000000 0.000000 0.000000 +v -0.031451 1.536674 0.042013 1.000000 0.000000 0.000000 +v -0.031451 1.537385 0.039667 0.584314 0.584314 0.584314 +v -0.031451 1.537626 0.037227 0.584314 0.584314 0.584314 +v -0.031451 1.537385 0.034787 0.584314 0.584314 0.584314 +v -0.031451 1.536674 0.032441 0.584314 0.584314 0.584314 +v -0.031451 1.535518 0.030278 0.584314 0.584314 0.584314 +v -0.031451 1.533962 0.028383 0.584314 0.584314 0.584314 +v -0.031451 1.532067 0.026827 0.584314 0.584314 0.584314 +v -0.031451 1.529905 0.025671 0.584314 0.584314 0.584314 +v -0.031451 1.527558 0.024960 0.584314 0.584314 0.584314 +v -0.030081 1.532004 0.047521 1.000000 0.000000 0.000000 +v -0.029726 1.533792 0.046071 1.000000 0.000000 0.000000 +v -0.029422 1.535318 0.044176 1.000000 0.000000 0.000000 +v -0.029197 1.536452 0.042013 1.000000 0.000000 0.000000 +v -0.029058 1.537150 0.039667 0.584314 0.584314 0.584314 +v -0.029011 1.537385 0.037227 0.584314 0.584314 0.584314 +v -0.029058 1.537150 0.034787 0.584314 0.584314 0.584314 +v -0.029197 1.536452 0.032441 0.584314 0.584314 0.584314 +v -0.029422 1.535318 0.030278 0.584314 0.584314 0.584314 +v -0.029726 1.533792 0.028383 0.584314 0.584314 0.584314 +v -0.030095 1.531933 0.026827 0.584314 0.584314 0.584314 +v -0.030517 1.529813 0.025671 0.584314 0.584314 0.584314 +v -0.030975 1.527511 0.024960 0.584314 0.584314 0.584314 +v -0.028764 1.531604 0.047521 1.000000 0.000000 0.000000 +v -0.028066 1.533289 0.046071 1.000000 0.000000 0.000000 +v -0.027471 1.534726 0.044176 1.000000 0.000000 0.000000 +v -0.027029 1.535794 0.042013 1.000000 0.000000 0.000000 +v -0.026756 1.536452 0.039667 0.584314 0.584314 0.584314 +v -0.026665 1.536674 0.037227 0.584314 0.584314 0.584314 +v -0.026756 1.536452 0.034787 0.584314 0.584314 0.584314 +v -0.027029 1.535794 0.032441 0.584314 0.584314 0.584314 +v -0.027471 1.534726 0.030278 0.584314 0.584314 0.584314 +v -0.028066 1.533289 0.028383 0.584314 0.584314 0.584314 +v -0.028792 1.531538 0.026827 0.584314 0.584314 0.584314 +v -0.029619 1.529540 0.025671 0.584314 0.584314 0.584314 +v -0.030517 1.527372 0.024960 0.584314 0.584314 0.584314 +v -0.027550 1.530956 0.047521 1.000000 0.000000 0.000000 +v -0.026537 1.532472 0.046071 1.000000 0.000000 0.000000 +v -0.025673 1.533765 0.044176 1.000000 0.000000 0.000000 +v -0.025031 1.534726 0.042013 1.000000 0.000000 0.000000 +v -0.024636 1.535318 0.039667 0.584314 0.584314 0.584314 +v -0.024502 1.535518 0.037227 0.584314 0.584314 0.584314 +v -0.024636 1.535318 0.034787 0.584314 0.584314 0.584314 +v -0.025031 1.534726 0.032441 0.584314 0.584314 0.584314 +v -0.025673 1.533765 0.030278 0.584314 0.584314 0.584314 +v -0.026537 1.532472 0.028383 0.584314 0.584314 0.584314 +v -0.027590 1.530896 0.026827 0.584314 0.584314 0.584314 +v -0.028792 1.529098 0.025671 0.584314 0.584314 0.584314 +v -0.030095 1.527147 0.024960 0.584314 0.584314 0.584314 +v -0.026486 1.530083 0.047521 1.000000 0.000000 0.000000 +v -0.025197 1.531372 0.046071 1.000000 0.000000 0.000000 +v -0.024097 1.532472 0.044176 1.000000 0.000000 0.000000 +v -0.023280 1.533289 0.042013 1.000000 0.000000 0.000000 +v -0.022777 1.533792 0.039667 0.584314 0.584314 0.584314 +v -0.022607 1.533962 0.037227 0.584314 0.584314 0.584314 +v -0.022777 1.533792 0.034787 0.584314 0.584314 0.584314 +v -0.023280 1.533289 0.032441 0.584314 0.584314 0.584314 +v -0.024097 1.532472 0.030278 0.584314 0.584314 0.584314 +v -0.025197 1.531372 0.028383 0.584314 0.584314 0.584314 +v -0.026537 1.530032 0.026827 0.584314 0.584314 0.584314 +v -0.028066 1.528503 0.025671 0.584314 0.584314 0.584314 +v -0.029726 1.526843 0.024960 0.584314 0.584314 0.584314 +v -0.025613 1.529019 0.047521 1.000000 0.000000 0.000000 +v -0.024097 1.530032 0.046071 1.000000 0.000000 0.000000 +v -0.022804 1.530896 0.044176 1.000000 0.000000 0.000000 +v -0.021843 1.531538 0.042013 1.000000 0.000000 0.000000 +v -0.021251 1.531933 0.039667 0.584314 0.584314 0.584314 +v -0.021051 1.532067 0.037227 0.584314 0.584314 0.584314 +v -0.021251 1.531933 0.034787 0.584314 0.584314 0.584314 +v -0.021843 1.531538 0.032441 0.584314 0.584314 0.584314 +v -0.022804 1.530896 0.030278 0.584314 0.584314 0.584314 +v -0.024097 1.530032 0.028383 0.584314 0.584314 0.584314 +v -0.025673 1.528979 0.026827 0.584314 0.584314 0.584314 +v -0.027471 1.527777 0.025671 0.584314 0.584314 0.584314 +v -0.029422 1.526474 0.024960 0.584314 0.584314 0.584314 +v -0.024965 1.527805 0.047521 1.000000 0.000000 0.000000 +v -0.023280 1.528503 0.046071 1.000000 0.000000 0.000000 +v -0.021843 1.529098 0.044176 1.000000 0.000000 0.000000 +v -0.020775 1.529540 0.042013 1.000000 0.000000 0.000000 +v -0.020117 1.529813 0.039667 0.584314 0.584314 0.584314 +v -0.019895 1.529905 0.037227 0.584314 0.584314 0.584314 +v -0.020117 1.529813 0.034787 0.584314 0.584314 0.584314 +v -0.020775 1.529540 0.032441 0.584314 0.584314 0.584314 +v -0.021843 1.529098 0.030278 0.584314 0.584314 0.584314 +v -0.023280 1.528503 0.028383 0.584314 0.584314 0.584314 +v -0.025031 1.527777 0.026827 0.584314 0.584314 0.584314 +v -0.027029 1.526950 0.025671 0.584314 0.584314 0.584314 +v -0.029197 1.526052 0.024960 0.584314 0.584314 0.584314 +v -0.024565 1.526488 0.047521 1.000000 0.000000 0.000000 +v -0.022777 1.526843 0.046071 1.000000 0.000000 0.000000 +v -0.021251 1.527147 0.044176 1.000000 0.000000 0.000000 +v -0.020117 1.527372 0.042014 1.000000 0.000000 0.000000 +v -0.019419 1.527511 0.039667 0.584314 0.584314 0.584314 +v -0.019184 1.527558 0.037227 0.584314 0.584314 0.584314 +v -0.019419 1.527511 0.034787 0.584314 0.584314 0.584314 +v -0.020117 1.527372 0.032441 0.584314 0.584314 0.584314 +v -0.021251 1.527147 0.030278 0.584314 0.584314 0.584314 +v -0.022777 1.526843 0.028383 0.584314 0.584314 0.584314 +v -0.024636 1.526474 0.026827 0.584314 0.584314 0.584314 +v -0.026756 1.526052 0.025671 0.584314 0.584314 0.584314 +v -0.029058 1.525594 0.024960 0.584314 0.584314 0.584314 +v -0.024430 1.525118 0.047521 1.000000 0.000000 0.000000 +v -0.022607 1.525118 0.046071 1.000000 0.000000 0.000000 +v -0.021051 1.525118 0.044176 1.000000 0.000000 0.000000 +v -0.019895 1.525118 0.042014 1.000000 0.000000 0.000000 +v -0.019184 1.525118 0.039667 0.584314 0.584314 0.584314 +v -0.018943 1.525118 0.037227 0.584314 0.584314 0.584314 +v -0.019184 1.525118 0.034787 0.584314 0.584314 0.584314 +v -0.019895 1.525118 0.032441 0.584314 0.584314 0.584314 +v -0.021051 1.525118 0.030278 0.584314 0.584314 0.584314 +v -0.022607 1.525118 0.028383 0.584314 0.584314 0.584314 +v -0.024502 1.525118 0.026827 0.584314 0.584314 0.584314 +v -0.026665 1.525118 0.025671 0.584314 0.584314 0.584314 +v -0.029011 1.525118 0.024960 0.584314 0.584314 0.584314 +v -0.024565 1.523748 0.047521 1.000000 0.000000 0.000000 +v -0.022777 1.523393 0.046071 1.000000 0.000000 0.000000 +v -0.021251 1.523089 0.044176 1.000000 0.000000 0.000000 +v -0.020117 1.522864 0.042014 1.000000 0.000000 0.000000 +v -0.019419 1.522725 0.039667 0.584314 0.584314 0.584314 +v -0.019184 1.522678 0.037227 0.584314 0.584314 0.584314 +v -0.019419 1.522725 0.034787 0.584314 0.584314 0.584314 +v -0.020117 1.522864 0.032441 0.584314 0.584314 0.584314 +v -0.021251 1.523089 0.030278 0.584314 0.584314 0.584314 +v -0.022777 1.523393 0.028383 0.584314 0.584314 0.584314 +v -0.024636 1.523762 0.026827 0.584314 0.584314 0.584314 +v -0.026756 1.524184 0.025671 0.584314 0.584314 0.584314 +v -0.029058 1.524642 0.024960 0.584314 0.584314 0.584314 +v -0.024965 1.522431 0.047521 1.000000 0.000000 0.000000 +v -0.023280 1.521733 0.046071 1.000000 0.000000 0.000000 +v -0.021843 1.521138 0.044176 1.000000 0.000000 0.000000 +v -0.020775 1.520696 0.042014 1.000000 0.000000 0.000000 +v -0.020117 1.520423 0.039667 0.584314 0.584314 0.584314 +v -0.019895 1.520332 0.037227 0.584314 0.584314 0.584314 +v -0.020117 1.520423 0.034787 0.584314 0.584314 0.584314 +v -0.020775 1.520696 0.032441 0.584314 0.584314 0.584314 +v -0.021843 1.521138 0.030278 0.584314 0.584314 0.584314 +v -0.023280 1.521733 0.028383 0.584314 0.584314 0.584314 +v -0.025031 1.522459 0.026827 0.584314 0.584314 0.584314 +v -0.027029 1.523286 0.025671 0.584314 0.584314 0.584314 +v -0.029197 1.524184 0.024960 0.584314 0.584314 0.584314 +v -0.025613 1.521217 0.047521 1.000000 0.000000 0.000000 +v -0.024097 1.520204 0.046071 1.000000 0.000000 0.000000 +v -0.022804 1.519340 0.044176 1.000000 0.000000 0.000000 +v -0.021843 1.518698 0.042014 1.000000 0.000000 0.000000 +v -0.021251 1.518303 0.039667 0.584314 0.584314 0.584314 +v -0.021051 1.518169 0.037227 0.584314 0.584314 0.584314 +v -0.021251 1.518303 0.034787 0.584314 0.584314 0.584314 +v -0.021843 1.518698 0.032441 0.584314 0.584314 0.584314 +v -0.022804 1.519340 0.030278 0.584314 0.584314 0.584314 +v -0.024097 1.520204 0.028383 0.584314 0.584314 0.584314 +v -0.025673 1.521257 0.026827 0.584314 0.584314 0.584314 +v -0.027471 1.522459 0.025671 0.584314 0.584314 0.584314 +v -0.029422 1.523762 0.024960 0.584314 0.584314 0.584314 +v -0.026486 1.520153 0.047521 1.000000 0.000000 0.000000 +v -0.025197 1.518864 0.046071 1.000000 0.000000 0.000000 +v -0.024097 1.517764 0.044176 1.000000 0.000000 0.000000 +v -0.023280 1.516947 0.042014 0.584314 0.584314 0.584314 +v -0.022777 1.516444 0.039667 0.584314 0.584314 0.584314 +v -0.022607 1.516274 0.037227 0.584314 0.584314 0.584314 +v -0.022777 1.516444 0.034787 0.584314 0.584314 0.584314 +v -0.023280 1.516947 0.032441 0.584314 0.584314 0.584314 +v -0.024097 1.517764 0.030278 0.584314 0.584314 0.584314 +v -0.025197 1.518864 0.028383 0.584314 0.584314 0.584314 +v -0.026537 1.520204 0.026827 0.584314 0.584314 0.584314 +v -0.028066 1.521733 0.025671 0.584314 0.584314 0.584314 +v -0.029726 1.523393 0.024960 0.584314 0.584314 0.584314 +v -0.027550 1.519280 0.047521 1.000000 0.000000 0.000000 +v -0.026537 1.517764 0.046071 1.000000 0.000000 0.000000 +v -0.025673 1.516471 0.044176 1.000000 0.000000 0.000000 +v -0.025031 1.515510 0.042014 0.584314 0.584314 0.584314 +v -0.024636 1.514918 0.039667 0.584314 0.584314 0.584314 +v -0.024502 1.514718 0.037227 0.584314 0.584314 0.584314 +v -0.024636 1.514918 0.034787 0.584314 0.584314 0.584314 +v -0.025031 1.515510 0.032441 0.584314 0.584314 0.584314 +v -0.025673 1.516471 0.030278 0.584314 0.584314 0.584314 +v -0.026537 1.517764 0.028383 0.584314 0.584314 0.584314 +v -0.027590 1.519340 0.026827 0.584314 0.584314 0.584314 +v -0.028792 1.521138 0.025671 0.584314 0.584314 0.584314 +v -0.030095 1.523089 0.024960 0.584314 0.584314 0.584314 +v -0.031451 1.525118 0.024719 0.584314 0.584314 0.584314 +v -0.028764 1.518632 0.047521 1.000000 0.000000 0.000000 +v -0.028066 1.516947 0.046071 1.000000 0.000000 0.000000 +v -0.027471 1.515510 0.044176 1.000000 0.000000 0.000000 +v -0.027029 1.514442 0.042014 0.584314 0.584314 0.584314 +v -0.026756 1.513784 0.039667 0.584314 0.584314 0.584314 +v -0.026665 1.513562 0.037227 0.584314 0.584314 0.584314 +v -0.026756 1.513784 0.034787 0.584314 0.584314 0.584314 +v -0.027029 1.514442 0.032441 0.584314 0.584314 0.584314 +v -0.027471 1.515510 0.030278 0.584314 0.584314 0.584314 +v -0.028066 1.516947 0.028383 0.584314 0.584314 0.584314 +v -0.028792 1.518698 0.026827 0.584314 0.584314 0.584314 +v -0.029619 1.520696 0.025671 0.584314 0.584314 0.584314 +v -0.030517 1.522864 0.024960 0.584314 0.584314 0.584314 +v -0.030081 1.518232 0.047521 1.000000 0.000000 0.000000 +v -0.029726 1.516444 0.046071 1.000000 0.000000 0.000000 +v -0.029422 1.514918 0.044176 1.000000 0.000000 0.000000 +v -0.029197 1.513784 0.042014 0.584314 0.584314 0.584314 +v -0.029058 1.513086 0.039667 0.584314 0.584314 0.584314 +v -0.029011 1.512851 0.037227 0.584314 0.584314 0.584314 +v -0.029058 1.513086 0.034787 0.584314 0.584314 0.584314 +v -0.029197 1.513784 0.032441 0.584314 0.584314 0.584314 +v -0.029422 1.514918 0.030278 0.584314 0.584314 0.584314 +v -0.029726 1.516444 0.028383 0.584314 0.584314 0.584314 +v -0.030095 1.518303 0.026827 0.584314 0.584314 0.584314 +v -0.030517 1.520423 0.025671 0.584314 0.584314 0.584314 +v -0.030975 1.522725 0.024960 0.584314 0.584314 0.584314 +v -0.031451 1.518097 0.047521 1.000000 0.000000 0.000000 +v -0.031451 1.516274 0.046071 1.000000 0.000000 0.000000 +v -0.031451 1.514718 0.044176 0.584314 0.584314 0.584314 +v -0.031451 1.513562 0.042014 0.584314 0.584314 0.584314 +v -0.031451 1.512851 0.039667 0.584314 0.584314 0.584314 +v -0.031451 1.512610 0.037227 0.584314 0.584314 0.584314 +v -0.031451 1.512851 0.034787 0.584314 0.584314 0.584314 +v -0.031451 1.513562 0.032441 0.584314 0.584314 0.584314 +v -0.031451 1.514718 0.030278 0.584314 0.584314 0.584314 +v -0.031451 1.516274 0.028383 0.584314 0.584314 0.584314 +v -0.031451 1.518169 0.026827 0.584314 0.584314 0.584314 +v -0.031451 1.520332 0.025671 0.584314 0.584314 0.584314 +v -0.031451 1.522678 0.024960 0.584314 0.584314 0.584314 +v -0.032821 1.518232 0.047521 1.000000 0.000000 0.000000 +v -0.033176 1.516444 0.046071 1.000000 0.000000 0.000000 +v -0.033480 1.514918 0.044176 0.584314 0.584314 0.584314 +v -0.033705 1.513784 0.042014 0.584314 0.584314 0.584314 +v -0.033844 1.513086 0.039667 0.584314 0.584314 0.584314 +v -0.033891 1.512851 0.037227 0.584314 0.584314 0.584314 +v -0.033844 1.513086 0.034787 0.584314 0.584314 0.584314 +v -0.033705 1.513784 0.032441 0.584314 0.584314 0.584314 +v -0.033480 1.514918 0.030278 0.584314 0.584314 0.584314 +v -0.033176 1.516444 0.028383 0.584314 0.584314 0.584314 +v -0.032807 1.518303 0.026827 0.584314 0.584314 0.584314 +v -0.032385 1.520423 0.025671 0.584314 0.584314 0.584314 +v -0.031927 1.522725 0.024960 0.584314 0.584314 0.584314 +v -0.034138 1.518632 0.047521 1.000000 0.000000 0.000000 +v -0.034836 1.516947 0.046071 1.000000 0.000000 0.000000 +v -0.035431 1.515510 0.044176 0.584314 0.584314 0.584314 +v -0.035873 1.514442 0.042014 0.584314 0.584314 0.584314 +v -0.036146 1.513784 0.039667 0.584314 0.584314 0.584314 +v -0.036238 1.513562 0.037227 0.584314 0.584314 0.584314 +v -0.036146 1.513784 0.034787 0.584314 0.584314 0.584314 +v -0.035873 1.514442 0.032441 0.584314 0.584314 0.584314 +v -0.035431 1.515510 0.030278 0.584314 0.584314 0.584314 +v -0.034836 1.516947 0.028383 0.584314 0.584314 0.584314 +v -0.034110 1.518698 0.026827 0.584314 0.584314 0.584314 +v -0.033283 1.520696 0.025671 0.584314 0.584314 0.584314 +v -0.032385 1.522864 0.024960 0.584314 0.584314 0.584314 +v -0.035352 1.519280 0.047521 1.000000 0.000000 0.000000 +v -0.036365 1.517764 0.046071 1.000000 0.000000 0.000000 +v -0.037229 1.516471 0.044176 0.584314 0.584314 0.584314 +v -0.037871 1.515510 0.042014 0.584314 0.584314 0.584314 +v -0.038266 1.514918 0.039667 0.584314 0.584314 0.584314 +v -0.038400 1.514718 0.037227 0.584314 0.584314 0.584314 +v -0.038266 1.514918 0.034787 0.584314 0.584314 0.584314 +v -0.037871 1.515510 0.032441 0.584314 0.584314 0.584314 +v -0.037229 1.516471 0.030278 0.584314 0.584314 0.584314 +v -0.036365 1.517764 0.028383 0.584314 0.584314 0.584314 +v -0.035312 1.519340 0.026827 0.584314 0.584314 0.584314 +v -0.034110 1.521138 0.025671 0.584314 0.584314 0.584314 +v -0.032807 1.523089 0.024960 0.584314 0.584314 0.584314 +v -0.036416 1.520153 0.047521 1.000000 0.000000 0.000000 +v -0.037705 1.518864 0.046071 1.000000 0.000000 0.000000 +v -0.038805 1.517764 0.044176 0.584314 0.584314 0.584314 +v -0.039622 1.516947 0.042014 0.584314 0.584314 0.584314 +v -0.040125 1.516444 0.039667 0.584314 0.584314 0.584314 +v -0.040295 1.516274 0.037227 0.584314 0.584314 0.584314 +v -0.040125 1.516444 0.034787 0.584314 0.584314 0.584314 +v -0.039622 1.516947 0.032441 0.584314 0.584314 0.584314 +v -0.038805 1.517764 0.030278 0.584314 0.584314 0.584314 +v -0.037705 1.518864 0.028383 0.584314 0.584314 0.584314 +v -0.036365 1.520204 0.026827 0.584314 0.584314 0.584314 +v -0.034836 1.521733 0.025671 0.584314 0.584314 0.584314 +v -0.033176 1.523393 0.024960 0.584314 0.584314 0.584314 +v -0.037289 1.521217 0.047521 1.000000 0.000000 0.000000 +v -0.038805 1.520204 0.046071 1.000000 0.000000 0.000000 +v -0.040098 1.519340 0.044176 0.584314 0.584314 0.584314 +v -0.041059 1.518698 0.042014 0.584314 0.584314 0.584314 +v -0.041651 1.518303 0.039667 0.584314 0.584314 0.584314 +v -0.041851 1.518169 0.037227 0.584314 0.584314 0.584314 +v -0.041651 1.518303 0.034787 0.584314 0.584314 0.584314 +v -0.041059 1.518698 0.032441 0.584314 0.584314 0.584314 +v -0.040098 1.519340 0.030278 0.584314 0.584314 0.584314 +v -0.038805 1.520204 0.028383 0.584314 0.584314 0.584314 +v -0.037229 1.521257 0.026827 0.584314 0.584314 0.584314 +v -0.035431 1.522459 0.025671 0.584314 0.584314 0.584314 +v -0.033480 1.523762 0.024960 0.584314 0.584314 0.584314 +v -0.037937 1.522431 0.047521 1.000000 0.000000 0.000000 +v -0.039622 1.521733 0.046071 1.000000 0.000000 0.000000 +v -0.041059 1.521138 0.044176 1.000000 0.000000 0.000000 +v -0.042127 1.520696 0.042014 0.584314 0.584314 0.584314 +v -0.042785 1.520423 0.039667 0.584314 0.584314 0.584314 +v -0.043007 1.520331 0.037227 0.584314 0.584314 0.584314 +v -0.042785 1.520423 0.034787 0.584314 0.584314 0.584314 +v -0.042127 1.520696 0.032441 0.584314 0.584314 0.584314 +v -0.041059 1.521138 0.030278 0.584314 0.584314 0.584314 +v -0.039622 1.521733 0.028383 0.584314 0.584314 0.584314 +v -0.037871 1.522459 0.026827 0.584314 0.584314 0.584314 +v -0.035873 1.523286 0.025671 0.584314 0.584314 0.584314 +v -0.033705 1.524184 0.024960 0.584314 0.584314 0.584314 +v -0.038337 1.523748 0.047521 1.000000 0.000000 0.000000 +v -0.040125 1.523393 0.046071 1.000000 0.000000 0.000000 +v -0.041651 1.523089 0.044176 1.000000 0.000000 0.000000 +v -0.042785 1.522864 0.042014 1.000000 0.000000 0.000000 +v -0.043483 1.522725 0.039667 0.584314 0.584314 0.584314 +v -0.043718 1.522678 0.037227 0.584314 0.584314 0.584314 +v -0.043483 1.522725 0.034787 0.584314 0.584314 0.584314 +v -0.042785 1.522864 0.032441 0.584314 0.584314 0.584314 +v -0.041651 1.523089 0.030278 0.584314 0.584314 0.584314 +v -0.040125 1.523393 0.028383 0.584314 0.584314 0.584314 +v -0.038266 1.523762 0.026827 0.584314 0.584314 0.584314 +v -0.036146 1.524184 0.025671 0.584314 0.584314 0.584314 +v -0.033844 1.524642 0.024960 0.584314 0.584314 0.584314 +# 5023 vertices, 0 vertices normals + +f 4 2 1 +f 8 6 5 +f 13 15 14 +f 17 19 18 +f 32 30 29 +f 36 34 33 +f 37 39 38 +f 21 23 20 +f 25 27 24 +f 41 43 42 +f 48 46 45 +f 52 50 49 +f 53 55 54 +f 60 58 57 +f 29 62 61 +f 66 64 63 +f 67 6 68 +f 72 70 69 +f 76 74 73 +f 77 79 78 +f 81 83 82 +f 59 86 85 +f 88 90 89 +f 96 94 93 +f 100 98 97 +f 101 103 102 +f 106 34 87 +f 108 115 107 +f 117 36 118 +f 124 126 125 +f 131 129 128 +f 132 134 133 +f 142 140 139 +f 148 60 147 +f 144 127 124 +f 149 151 150 +f 156 154 153 +f 159 158 157 +f 116 164 105 +f 171 169 168 +f 174 173 172 +f 179 181 180 +f 186 188 187 +f 194 196 195 +f 199 139 198 +f 206 208 207 +f 213 211 210 +f 202 214 201 +f 96 216 54 +f 92 43 44 +f 97 246 100 +f 250 229 228 +f 252 58 253 +f 258 256 255 +f 260 229 259 +f 110 112 113 +f 114 263 109 +f 265 267 266 +f 56 270 269 +f 274 249 250 +f 185 63 64 +f 280 278 276 +f 285 283 157 +f 288 211 212 +f 141 92 46 +f 289 175 176 +f 148 105 106 +f 312 170 171 +f 238 42 43 +f 318 160 317 +f 310 308 307 +f 241 325 324 +f 160 240 317 +f 47 307 308 +f 108 315 164 +f 345 86 119 +f 348 350 349 +f 356 358 357 +f 355 353 352 +f 363 32 362 +f 149 150 176 +f 364 253 365 +f 366 368 367 +f 183 371 63 +f 163 161 160 +f 209 101 208 +f 378 165 166 +f 379 381 380 +f 383 3 4 +f 284 386 385 +f 387 389 388 +f 391 229 249 +f 73 397 396 +f 405 407 406 +f 203 411 410 +f 414 413 412 +f 1 357 4 +f 277 131 275 +f 254 57 58 +f 358 415 351 +f 417 386 408 +f 401 192 420 +f 419 127 143 +f 421 182 422 +f 103 302 409 +f 428 368 174 +f 380 359 356 +f 62 266 323 +f 140 431 430 +f 357 351 348 +f 356 379 380 +f 415 403 434 +f 437 436 435 +f 438 440 439 +f 188 450 449 +f 452 454 453 +f 265 181 421 +f 224 64 225 +f 237 213 427 +f 275 128 458 +f 281 460 459 +f 50 79 461 +f 73 282 281 +f 468 466 465 +f 390 352 359 +f 482 484 483 +f 489 487 486 +f 493 495 494 +f 472 470 469 +f 502 500 499 +f 220 222 223 +f 512 143 66 +f 518 511 80 +f 513 230 286 +f 205 31 244 +f 189 451 188 +f 163 532 8 +f 533 225 251 +f 446 447 412 +f 335 540 334 +f 544 546 545 +f 329 291 292 +f 199 262 238 +f 385 416 550 +f 532 191 247 +f 363 118 243 +f 236 237 250 +f 578 580 579 +f 573 571 570 +f 561 562 272 +f 241 259 240 +f 590 592 591 +f 545 595 594 +f 503 155 504 +f 606 624 623 +f 478 480 479 +f 646 648 647 +f 590 689 684 +f 564 651 650 +f 728 184 727 +f 714 716 715 +f 692 575 693 +f 541 581 578 +f 346 248 400 +f 161 230 160 +f 128 94 95 +f 698 704 703 +f 574 576 575 +f 290 401 328 +f 630 725 726 +f 733 735 734 +f 755 496 493 +f 759 481 760 +f 757 762 761 +f 764 466 467 +f 768 3808 3809 +f 759 488 489 +f 492 475 771 +f 474 769 473 +f 773 465 772 +f 771 486 483 +f 484 775 491 +f 774 489 486 +f 495 764 756 +f 495 761 494 +f 137 784 136 +f 325 797 547 +f 165 51 52 +f 369 29 370 +f 730 568 569 +f 90 301 89 +f 243 516 242 +f 800 806 805 +f 817 808 816 +f 816 823 822 +f 306 447 807 +f 815 809 808 +f 829 828 825 +f 726 501 502 +f 274 424 423 +f 879 881 880 +f 884 879 885 +f 219 217 211 +f 906 904 897 +f 455 205 542 +f 898 830 829 +f 903 880 881 +f 906 897 898 +f 377 519 165 +f 923 948 946 +f 946 951 950 +f 3519 739 3517 +f 900 886 880 +f 225 65 144 +f 182 442 422 +f 809 947 824 +f 954 962 961 +f 927 965 966 +f 885 880 886 +f 925 966 967 +f 343 341 340 +f 965 971 968 +f 968 970 969 +f 972 969 973 +f 963 981 978 +f 336 338 339 +f 992 827 828 +f 810 996 959 +f 1007 1002 1008 +f 1012 827 1009 +f 1011 1007 1008 +f 294 292 291 +f 907 920 919 +f 1017 1019 1018 +f 1020 1022 1021 +f 1035 1020 1044 +f 1061 1047 1046 +f 1063 1046 1062 +f 1044 1021 1045 +f 1102 1097 1109 +f 1116 1118 1117 +f 1016 1014 1013 +f 881 904 903 +f 816 1127 817 +f 1094 949 1097 +f 514 167 515 +f 146 81 82 +f 1133 1130 1129 +f 1102 1126 822 +f 822 1116 816 +f 1145 1148 1136 +f 1076 1151 1069 +f 1148 1086 1087 +f 1109 1114 1136 +f 1154 1156 1155 +f 1153 967 1156 +f 3464 463 3714 +f 1144 1152 1151 +f 1156 1163 1162 +f 1164 1169 1165 +f 1145 1176 1147 +f 1114 1154 1171 +f 1183 1164 1177 +f 1184 1177 1185 +f 1069 1062 1064 +f 1023 1194 1022 +f 1162 1170 1169 +f 1195 1185 1191 +f 1183 1176 1155 +f 1201 1152 1196 +f 1061 1201 1202 +f 3825 843 3836 +f 1203 1195 1034 +f 1202 1184 1195 +f 1218 1203 1217 +f 1060 1202 1203 +f 1225 1217 1219 +f 671 694 670 +f 1219 1024 1035 +f 1217 1034 1024 +f 1226 1015 1227 +f 1243 1234 1233 +f 1231 1229 1228 +f 847 1233 843 +f 843 1244 878 +f 1233 1245 1244 +f 1923 233 216 +f 2100 499 500 +f 3914 2135 3900 +f 61 323 505 +f 210 217 457 +f 1299 1309 1300 +f 3863 1231 3862 +f 1066 1321 1322 +f 1322 1228 1229 +f 1060 1321 1047 +f 1325 1323 1310 +f 1244 1332 1330 +f 1290 1242 1288 +f 1337 1339 1338 +f 1330 1340 1339 +f 1341 1245 1294 +f 1342 1332 1341 +f 1343 1341 1344 +f 1344 1294 1293 +f 3857 1345 1346 +f 1347 1342 1343 +f 3856 1295 1345 +f 1349 1348 1347 +f 3861 1347 3853 +f 3853 1343 3857 +f 906 829 1353 +f 905 1353 1354 +f 865 1355 1357 +f 1355 829 825 +f 1357 825 826 +f 1356 1353 1355 +f 3834 1338 3833 +f 866 1356 865 +f 1358 1354 1356 +f 3828 1337 3834 +f 838 1012 841 +f 1363 1338 1339 +f 1368 1339 1340 +f 1348 1340 1342 +f 1371 3824 3829 +f 524 526 523 +f 528 530 527 +f 1372 1369 1371 +f 535 537 538 +f 1367 1348 1350 +f 1370 1359 1369 +f 1369 3833 3824 +f 1373 903 904 +f 555 557 558 +f 1374 910 1373 +f 1373 905 1375 +f 1374 1375 1376 +f 1375 1354 1370 +f 1378 908 1377 +f 376 651 1387 +f 1388 973 969 +f 586 588 585 +f 1390 1388 1391 +f 1391 969 970 +f 597 599 596 +f 600 602 603 +f 1392 970 979 +f 608 610 607 +f 612 523 611 +f 614 616 613 +f 617 25 24 +f 620 622 619 +f 1397 1391 1392 +f 1398 1392 1399 +f 1400 920 1378 +f 1402 1165 1169 +f 636 638 635 +f 930 1402 929 +f 641 643 644 +f 929 1169 1170 +f 1404 1403 1402 +f 1411 1365 1406 +f 1412 1415 1414 +f 652 654 655 +f 609 657 658 +f 659 661 662 +f 558 586 585 +f 665 667 664 +f 1413 1406 1412 +f 1418 3810 3813 +f 1417 1371 1416 +f 1416 3829 3810 +f 1419 1416 1418 +f 1386 1374 1420 +f 677 679 676 +f 1385 1420 1421 +f 1420 1376 1422 +f 685 687 688 +f 1421 1422 1423 +f 528 691 658 +f 1422 1372 1417 +f 1018 747 1425 +f 699 701 702 +f 1424 579 1017 +f 3663 1767 3660 +f 700 711 712 +f 1093 3754 1571 +f 717 530 719 +f 721 723 720 +f 704 3543 3554 +f 19 1426 1430 +f 1429 1427 1426 +f 1658 3542 3544 +f 1439 1434 1438 +f 1437 1435 1434 +f 1426 1433 1432 +f 1442 1432 1440 +f 742 744 745 +f 1432 1441 1440 +f 751 753 750 +f 1438 1403 1405 +f 1446 1444 1443 +f 1447 1446 1443 +f 3860 1443 3848 +f 1415 1445 1446 +f 1414 1446 1448 +f 2173 469 470 +f 777 779 686 +f 780 782 783 +f 1676 1806 1675 +f 3859 1349 3861 +f 789 791 788 +f 745 793 742 +f 652 795 653 +f 1455 1457 1456 +f 1454 1350 1452 +f 610 802 801 +f 3831 698 703 +f 1352 1045 1351 +f 1015 1459 1460 +f 811 813 814 +f 2118 3817 2117 +f 819 821 818 +f 1466 1194 1190 +f 1467 1465 1466 +f 1182 1468 1467 +f 832 833 831 +f 835 837 834 +f 1467 1190 1182 +f 1469 1444 1445 +f 840 712 690 +f 1453 1469 1454 +f 599 845 846 +f 1226 3849 3855 +f 851 853 850 +f 855 856 854 +f 858 860 857 +f 861 863 864 +f 1014 3855 3858 +f 867 868 869 +f 870 872 873 +f 874 876 877 +f 1310 1471 1309 +f 1476 1427 1475 +f 1461 1475 1460 +f 887 889 890 +f 788 892 891 +f 894 896 893 +f 1460 1227 1015 +f 901 524 612 +f 1465 1477 1464 +f 1865 3500 1864 +f 911 913 914 +f 916 918 915 +f 1850 3507 1851 +f 921 895 894 +f 1479 1436 1478 +f 926 667 601 +f 1481 563 1480 +f 269 84 1482 +f 931 933 916 +f 934 614 869 +f 936 688 937 +f 938 662 939 +f 1484 122 123 +f 941 835 834 +f 320 509 510 +f 1849 3505 1850 +f 84 1484 83 +f 1487 1488 539 +f 1757 3502 3509 +f 365 1491 364 +f 461 80 511 +f 117 362 1496 +f 1494 541 1495 +f 926 957 958 +f 1477 1433 1476 +f 1709 1585 1700 +f 119 1496 345 +f 271 504 156 +f 511 189 186 +f 345 1492 365 +f 255 344 254 +f 57 299 132 +f 1501 268 1500 +f 267 1499 145 +f 974 976 977 +f 1678 1693 1676 +f 3846 1807 3840 +f 557 663 558 +f 983 984 985 +f 1443 3849 3848 +f 421 268 265 +f 989 991 988 +f 1490 418 1504 +f 279 309 310 +f 997 676 679 +f 998 999 875 +f 1504 38 1505 +f 1506 1507 1486 +f 360 1508 1506 +f 1506 207 360 +f 939 1006 938 +f 270 1483 269 +f 66 546 512 +f 1010 793 935 +f 367 437 1509 +f 244 363 243 +f 1670 3534 1669 +f 209 1510 226 +f 235 1512 1511 +f 1511 234 235 +f 388 426 425 +f 427 250 237 +f 161 521 231 +f 100 45 44 +f 1025 608 1027 +f 1029 1031 1028 +f 939 1033 1032 +f 41 594 99 +f 1036 783 1037 +f 702 1038 1039 +f 1040 1042 1043 +f 362 369 1493 +f 187 477 186 +f 70 539 198 +f 1511 1521 234 +f 1049 603 1048 +f 613 869 614 +f 860 1051 857 +f 1005 1053 1006 +f 753 1056 1054 +f 1057 1059 1055 +f 293 1522 292 +f 288 1521 1522 +f 292 1523 329 +f 331 1508 1524 +f 306 453 305 +f 100 41 99 +f 462 78 79 +f 330 1524 462 +f 635 1068 636 +f 1485 1526 1528 +f 206 1528 1510 +f 1070 1072 831 +f 942 1073 1074 +f 916 1075 917 +f 440 1530 439 +f 157 1514 285 +f 1529 5 1530 +f 371 546 63 +f 790 663 791 +f 1077 857 1078 +f 1403 1435 1165 +f 1080 1082 1079 +f 531 1529 440 +f 21 1084 1085 +f 272 1531 561 +f 137 396 397 +f 690 802 691 +f 335 3567 581 +f 1090 1029 1091 +f 1092 794 1042 +f 1533 137 138 +f 661 1095 1096 +f 69 445 72 +f 1099 1101 1098 +f 38 1536 1505 +f 1104 1106 1103 +f 852 1108 853 +f 1377 909 1386 +f 291 411 294 +f 316 516 33 +f 539 1533 534 +f 1505 316 313 +f 1110 1112 1113 +f 1539 460 264 +f 522 1537 1539 +f 834 1120 1119 +f 1122 1124 1121 +f 612 1041 901 +f 935 615 614 +f 276 130 131 +f 1686 3522 1685 +f 193 1541 273 +f 231 1540 287 +f 556 982 557 +f 365 85 345 +f 190 318 1541 +f 1810 3574 3528 +f 3924 3512 3791 +f 1132 985 1131 +f 208 102 132 +f 1134 662 661 +f 1491 80 77 +f 429 1542 147 +f 1137 915 918 +f 172 428 174 +f 1139 1141 1142 +f 549 54 55 +f 1517 1518 296 +f 976 1146 938 +f 834 984 941 +f 1543 286 115 +f 1544 239 513 +f 133 1544 1542 +f 506 257 258 +f 420 328 401 +f 1158 1160 1157 +f 587 1103 588 +f 1513 1514 151 +f 607 1027 608 +f 304 1545 303 +f 364 77 506 +f 69 198 139 +f 1006 976 938 +f 700 1112 701 +f 3877 3525 3787 +f 1166 657 656 +f 1167 858 1077 +f 1300 3524 1299 +f 1172 1174 1175 +f 218 200 217 +f 1179 1181 1178 +f 372 97 98 +f 89 227 88 +f 1186 1188 1189 +f 172 1517 1549 +f 1482 81 1498 +f 1090 1193 1030 +f 394 353 1551 +f 526 1198 1197 +f 811 858 812 +f 1199 1026 1025 +f 606 697 696 +f 1204 1206 743 +f 1207 523 526 +f 1209 867 613 +f 914 685 936 +f 1478 1441 1477 +f 1029 1161 1091 +f 1211 1213 1214 +f 3858 1451 3859 +f 844 1216 845 +f 423 273 274 +f 1220 1222 1083 +f 22 1224 23 +f 882 897 881 +f 1519 173 387 +f 1189 1232 1178 +f 349 550 416 +f 1071 1236 1072 +f 1237 1239 745 +f 1221 1189 1240 +f 1510 1512 333 +f 939 1241 1005 +f 1556 5 67 +f 1553 394 1551 +f 404 67 347 +f 1247 1249 1246 +f 142 238 92 +f 1251 635 1250 +f 850 1253 851 +f 1254 1077 1255 +f 57 133 429 +f 443 552 551 +f 1187 1175 1188 +f 1256 831 833 +f 432 382 383 +f 741 747 746 +f 434 351 415 +f 349 383 348 +f 251 1481 1480 +f 395 352 353 +f 1518 1550 1551 +f 1558 378 340 +f 109 314 315 +f 285 1513 407 +f 395 393 392 +f 202 410 1558 +f 417 405 432 +f 1246 1258 1247 +f 3 297 2 +f 1259 1261 1262 +f 403 347 284 +f 955 953 952 +f 462 51 330 +f 1096 687 1263 +f 429 60 57 +f 896 1265 932 +f 1267 1268 1266 +f 423 327 420 +f 37 180 40 +f 20 1187 1186 +f 1256 1071 1070 +f 155 156 504 +f 1188 1269 1232 +f 1236 1271 1262 +f 1272 535 621 +f 565 463 464 +f 1273 745 1239 +f 876 1255 1274 +f 316 164 315 +f 437 503 1509 +f 194 1495 197 +f 1275 864 863 +f 624 631 630 +f 1277 1137 1278 +f 569 567 566 +f 1481 125 366 +f 324 547 326 +f 1279 1107 1280 +f 1525 329 1523 +f 1281 1137 918 +f 171 1553 1552 +f 1488 396 1533 +f 1557 1562 1559 +f 1282 1206 1205 +f 1053 1278 1281 +f 778 607 1283 +f 713 3566 3569 +f 251 144 124 +f 4 348 383 +f 709 707 706 +f 728 45 246 +f 261 1563 544 +f 789 1287 790 +f 74 263 282 +f 403 385 434 +f 1178 1240 1189 +f 1223 1289 1224 +f 158 150 151 +f 1220 1186 1221 +f 296 354 433 +f 784 1538 1566 +f 1181 1291 1222 +f 1269 1257 1246 +f 1566 438 399 +f 136 1566 1564 +f 1563 169 1565 +f 107 109 108 +f 1297 1298 1296 +f 1464 1476 1461 +f 1520 507 508 +f 1301 1303 1304 +f 1306 1308 1305 +f 175 1532 272 +f 1532 200 201 +f 1311 1312 1313 +f 872 1315 1316 +f 1317 1318 1319 +f 3836 878 3828 +f 1305 864 1276 +f 1040 863 1320 +f 1564 399 169 +f 592 1575 591 +f 591 1088 689 +f 1581 1583 1582 +f 1196 1147 1176 +f 710 583 713 +f 285 408 386 +f 953 961 963 +f 1594 1589 1593 +f 1585 1587 1586 +f 1592 1590 1589 +f 3885 944 3899 +f 1600 1598 1597 +f 1604 1602 1601 +f 1399 979 980 +f 1589 1596 1595 +f 1610 1608 1607 +f 298 361 360 +f 551 276 277 +f 1627 3814 3819 +f 859 818 860 +f 1078 1328 1329 +f 1555 1530 1556 +f 572 680 681 +f 772 776 774 +f 977 918 917 +f 404 392 393 +f 1054 750 753 +f 1644 1643 1642 +f 932 1082 933 +f 1067 1334 1068 +f 1540 264 114 +f 597 643 1336 +f 471 762 470 +f 1642 3831 3842 +f 1644 3842 3843 +f 923 950 927 +f 96 548 95 +f 520 522 521 +f 445 443 442 +f 849 848 842 +f 480 755 493 +f 1646 481 1639 +f 311 1567 170 +f 464 3497 3495 +f 3497 1361 3495 +f 234 236 235 +f 190 192 191 +f 153 152 149 +f 231 286 230 +f 1552 1551 1550 +f 760 1648 488 +f 3832 1649 3830 +f 828 826 825 +f 52 166 165 +f 1663 1661 1660 +f 287 115 286 +f 668 670 669 +f 634 640 639 +f 553 559 554 +f 118 33 516 +f 492 491 490 +f 3552 1651 3553 +f 582 584 583 +f 384 392 415 +f 1381 1383 1380 +f 1562 435 436 +f 952 951 947 +f 3529 583 584 +f 1660 1667 1666 +f 1394 1396 1393 +f 1660 1664 1663 +f 1671 1669 1668 +f 1624 1673 1672 +f 1407 1409 1410 +f 1677 1675 1674 +f 1613 1677 1625 +f 1679 1676 1677 +f 1626 3811 3814 +f 534 198 539 +f 176 150 159 +f 803 734 800 +f 400 191 192 +f 65 143 144 +f 3526 1656 3540 +f 402 157 283 +f 629 627 626 +f 461 49 50 +f 758 495 756 +f 796 786 785 +f 406 1513 1560 +f 342 166 167 +f 1694 1658 1695 +f 1692 1694 1696 +f 3557 1652 3552 +f 3921 1703 3923 +f 326 302 90 +f 3916 1702 1706 +f 3919 1698 1701 +f 1699 3927 3918 +f 1557 1560 1561 +f 1127 1117 1128 +f 400 289 346 +f 1706 1707 1708 +f 1707 1599 1600 +f 1709 1708 1588 +f 1714 1711 1713 +f 3919 1709 1700 +f 1704 1577 1703 +f 1716 1713 1715 +f 1559 1549 297 +f 1722 1720 1719 +f 1335 596 1489 +f 410 377 378 +f 973 1163 972 +f 168 399 398 +f 1571 1089 1093 +f 1572 682 1571 +f 749 647 754 +f 1730 1723 1729 +f 1594 1729 1592 +f 1729 1591 1592 +f 1731 1730 1583 +f 1384 1377 1379 +f 1732 1712 1714 +f 1724 1731 1732 +f 1712 1731 1580 +f 1722 1732 1733 +f 1721 1733 1734 +f 1734 1716 1717 +f 1735 1736 1697 +f 1733 1714 1716 +f 1663 1741 1668 +f 1742 1740 1743 +f 1738 1737 1735 +f 1665 1666 1740 +f 1665 1744 1664 +f 1725 1746 1745 +f 1591 1745 1590 +f 1590 1747 1596 +f 1745 1748 1747 +f 1659 3538 3542 +f 3287 3545 3282 +f 1185 1182 1190 +f 1664 1749 1741 +f 1741 1739 1738 +f 1746 1743 1748 +f 1726 1742 1746 +f 1153 924 925 +f 1115 1153 1154 +f 1654 3575 1655 +f 1896 3549 1686 +f 1720 1744 1726 +f 1721 1749 1720 +f 1750 1701 1698 +f 1697 1750 1696 +f 1151 1063 1062 +f 1751 1670 1671 +f 1695 1752 1751 +f 961 986 981 +f 1770 1768 1767 +f 1766 1593 1765 +f 1731 1579 1580 +f 1579 1774 1578 +f 3928 1771 3929 +f 1764 3928 3917 +f 1777 1775 1774 +f 3762 1699 1700 +f 1004 1128 1003 +f 1774 1771 1772 +f 987 1399 980 +f 1578 1772 1764 +f 1783 1781 1778 +f 1597 1770 1767 +f 639 3895 3884 +f 3928 1769 1770 +f 1793 1789 1788 +f 3929 1798 1769 +f 3508 3773 1806 +f 1802 3924 3922 +f 1788 1794 1793 +f 1793 1795 1776 +f 3773 1675 1806 +f 1584 1783 1789 +f 1771 3920 3929 +f 1801 1798 1800 +f 1768 1798 1799 +f 1775 1797 1771 +f 508 515 1520 +f 1796 1802 1797 +f 1800 3920 3922 +f 1794 1804 1795 +f 3532 1752 3547 +f 485 1807 775 +f 3809 1640 768 +f 3837 1810 1653 +f 485 1640 1808 +f 1690 3770 3772 +f 487 1648 1811 +f 3839 1816 3822 +f 3838 1648 3830 +f 3839 1811 3838 +f 1812 487 1811 +f 1641 767 768 +f 465 755 776 +f 767 3823 3808 +f 3822 3826 3847 +f 1809 1815 767 +f 3837 1651 3840 +f 675 3541 3496 +f 1814 1822 1821 +f 1821 3821 3820 +f 1824 1649 1825 +f 1827 1850 1805 +f 1668 1662 1663 +f 1779 1848 1828 +f 1790 1805 1794 +f 1833 1853 1852 +f 3521 693 575 +f 1614 1616 1617 +f 1852 3498 3501 +f 1620 1622 1623 +f 1855 1574 1861 +f 1847 3501 3513 +f 1766 1855 1782 +f 1629 1631 1628 +f 1633 1634 1632 +f 1635 1637 1638 +f 1848 1852 1847 +f 1855 1863 1862 +f 1803 1867 1802 +f 1862 1831 1832 +f 1782 1862 1781 +f 3922 1865 1800 +f 1873 1870 1869 +f 1874 799 804 +f 2045 3897 2044 +f 1219 1295 1225 +f 1615 1396 1395 +f 3884 1877 1876 +f 645 3786 3559 +f 1345 1035 1346 +f 634 3884 3880 +f 15 1327 14 +f 3910 1878 1893 +f 1894 605 1893 +f 3506 627 693 +f 3560 645 3559 +f 340 454 1558 +f 1897 195 1898 +f 1889 1877 1890 +f 1901 129 1900 +f 196 754 232 +f 1705 3921 3916 +f 340 166 343 +f 1570 563 561 +f 1904 194 1897 +f 1781 1832 1780 +f 1905 55 1906 +f 1000 995 996 +f 986 920 987 +f 1191 1190 1194 +f 2094 2075 2093 +f 1920 1919 1915 +f 453 1912 1911 +f 1915 1918 1916 +f 3882 2106 3901 +f 1655 3531 1868 +f 1916 1926 1925 +f 704 3561 703 +f 278 1925 1900 +f 3565 1818 1820 +f 1097 1115 1114 +f 1927 727 1923 +f 3578 3654 3758 +f 1920 307 1929 +f 1929 48 728 +f 503 1497 1509 +f 1902 787 796 +f 1816 3820 3826 +f 1925 1923 1924 +f 1535 1568 1534 +f 254 258 255 +f 1509 366 367 +f 119 35 36 +f 219 293 294 +f 141 47 431 +f 542 244 245 +f 1940 430 431 +f 1779 1827 1790 +f 1701 3915 3919 +f 1661 3515 1667 +f 270 754 647 +f 197 749 196 +f 1727 1212 1211 +f 53 232 754 +f 1465 1479 1478 +f 1284 3854 1293 +f 1951 412 413 +f 168 1554 1553 +f 1486 206 207 +f 506 78 361 +f 994 1007 993 +f 951 963 964 +f 1013 3861 1351 +f 3826 1820 1818 +f 1498 1954 1482 +f 299 543 132 +f 1754 1756 1753 +f 1681 1683 1682 +f 1696 1695 1697 +f 13 738 737 +f 473 475 474 +f 482 768 1640 +f 204 30 205 +f 1761 820 819 +f 611 1125 612 +f 1501 1908 1909 +f 1074 711 699 +f 1960 82 83 +f 120 1960 123 +f 35 87 34 +f 1773 1025 1031 +f 1965 1569 1535 +f 494 471 479 +f 1966 1969 1968 +f 446 1971 1967 +f 174 125 126 +f 1580 1578 1577 +f 1785 1787 1784 +f 1972 304 305 +f 1254 875 999 +f 1973 342 514 +f 321 1973 509 +f 1910 275 1907 +f 509 514 508 +f 1486 1527 1485 +f 1974 804 1975 +f 1977 1974 1978 +f 1980 1966 1981 +f 379 2 295 +f 1718 1710 1701 +f 884 992 883 +f 1680 1678 1679 +f 902 525 524 +f 344 256 299 +f 135 137 136 +f 236 228 333 +f 448 1967 1966 +f 589 604 584 +f 910 908 907 +f 1981 1968 1987 +f 1982 1987 1979 +f 1988 1987 1989 +f 1990 1989 1991 +f 1991 1993 1992 +f 322 320 319 +f 992 830 883 +f 1144 1086 1143 +f 1995 1978 1994 +f 1133 1118 1126 +f 1997 1994 1996 +f 870 1335 1489 +f 805 1982 1998 +f 727 2000 1999 +f 1996 1988 1990 +f 1994 1979 1988 +f 1829 792 1273 +f 1830 941 983 +f 798 800 799 +f 729 731 730 +f 2011 2023 2022 +f 1834 846 1159 +f 402 284 347 +f 2022 2024 2025 +f 1838 989 988 +f 810 952 809 +f 1823 1840 644 +f 1430 1432 1431 +f 1215 1841 1079 +f 149 176 177 +f 1316 873 872 +f 2112 1384 2106 +f 1842 1844 1845 +f 1159 845 1160 +f 837 1846 1120 +f 1971 2030 2027 +f 517 370 189 +f 858 833 812 +f 1471 2027 1888 +f 3551 626 627 +f 2174 770 490 +f 935 1854 1010 +f 1613 1611 1618 +f 1231 1225 1295 +f 1856 891 892 +f 1300 748 741 +f 1150 1858 1859 +f 1643 696 1642 +f 1215 1264 1216 +f 1320 902 901 +f 1956 1944 1960 +f 2031 669 1474 +f 2034 1310 1299 +f 1879 1656 1657 +f 40 242 39 +f 1992 2039 1456 +f 888 957 889 +f 1882 1996 1990 +f 1078 1255 1077 +f 1871 1192 1090 +f 294 218 219 +f 1323 2026 1471 +f 123 83 1484 +f 1324 2041 1323 +f 384 359 352 +f 1324 2038 2036 +f 1883 1885 1829 +f 287 114 107 +f 1096 1134 661 +f 915 931 916 +f 806 1981 1982 +f 3533 584 604 +f 1425 2042 1018 +f 1018 1948 1017 +f 3562 740 3519 +f 1948 649 646 +f 1881 1990 1991 +f 1900 130 278 +f 992 994 993 +f 923 925 924 +f 3878 2047 3876 +f 1643 625 606 +f 2050 2051 2049 +f 2045 1404 2047 +f 3876 945 3885 +f 1139 1079 1841 +f 1037 892 982 +f 2055 2057 2056 +f 1198 718 717 +f 1619 1612 1611 +f 2058 1606 2059 +f 2059 1607 2058 +f 2058 1624 1605 +f 71 179 37 +f 405 1557 382 +f 976 1006 977 +f 322 1972 1911 +f 2061 2063 2062 +f 2066 2067 1825 +f 2052 2064 2051 +f 1609 2066 1647 +f 1515 152 1516 +f 1009 993 1007 +f 1644 3815 2118 +f 279 1916 278 +f 1285 3862 1284 +f 1647 1825 1649 +f 2056 2067 2065 +f 319 1953 1952 +f 667 1913 1914 +f 2070 625 2048 +f 2052 2055 2063 +f 2038 1655 1458 +f 1606 2073 2072 +f 1235 1270 1236 +f 2072 2075 2074 +f 2059 2072 2062 +f 2074 2077 2076 +f 1601 2078 2073 +f 2049 1643 1645 +f 1000 1001 994 +f 1089 684 689 +f 1931 1306 1930 +f 1462 1021 1022 +f 1932 1934 1935 +f 875 1846 998 +f 1936 1937 1938 +f 44 46 92 +f 1534 1956 120 +f 1541 317 391 +f 2081 2084 2083 +f 146 1959 300 +f 1360 1942 1361 +f 985 1032 1033 +f 1995 1892 2043 +f 2079 2082 2081 +f 2095 2076 2077 +f 2081 2078 2079 +f 2055 2054 2053 +f 501 2095 500 +f 2097 2099 2098 +f 2098 2094 2083 +f 2140 3893 3866 +f 2141 3894 3893 +f 2051 2048 2049 +f 592 2101 1576 +f 2071 2076 2096 +f 2102 2098 2101 +f 593 2102 592 +f 1019 746 747 +f 1950 12 1327 +f 725 2096 501 +f 1385 2104 1379 +f 1379 2106 1384 +f 2107 2100 2097 +f 3908 502 3896 +f 3896 499 3901 +f 940 2109 944 +f 928 1170 973 +f 3868 684 3899 +f 1962 1964 1961 +f 3878 573 3897 +f 2039 1968 1969 +f 1389 2110 2109 +f 1398 2113 1397 +f 3757 3753 3743 +f 3911 2107 2103 +f 949 924 1115 +f 260 324 326 +f 1390 2113 2110 +f 2070 2064 2071 +f 3867 2103 593 +f 2105 1421 2114 +f 2114 1423 2115 +f 3892 2115 3903 +f 3908 2114 3892 +f 554 1902 553 +f 972 967 966 +f 1765 1573 1574 +f 1984 1986 1983 +f 2053 2069 2057 +f 3573 724 714 +f 1625 1674 1673 +f 3881 2119 2122 +f 3903 2123 3904 +f 56 1906 55 +f 626 3879 629 +f 2001 2003 2004 +f 3912 2127 3907 +f 2006 2008 2009 +f 2127 1412 2128 +f 2014 2016 2017 +f 2018 2020 2021 +f 1495 1947 197 +f 1379 1386 1385 +f 3814 1680 1618 +f 2029 1884 2028 +f 3902 2120 3887 +f 629 3914 3872 +f 682 943 1089 +f 724 2121 716 +f 1757 3821 3845 +f 765 3844 3809 +f 3851 715 3852 +f 706 3870 3872 +f 981 987 980 +f 1457 1656 1880 +f 2017 2032 2033 +f 1458 1868 1457 +f 1776 1792 1793 +f 1959 1946 1958 +f 3663 3725 3661 +f 3913 2122 3850 +f 1093 689 1088 +f 966 968 972 +f 3852 3881 3913 +f 2172 2170 2171 +f 670 2137 669 +f 3761 1903 233 +f 1429 28 1449 +f 964 978 971 +f 3841 1413 2127 +f 1473 669 2137 +f 3834 1359 1358 +f 2138 1870 2137 +f 1872 2137 1870 +f 715 3888 3881 +f 1881 1992 1880 +f 3843 739 740 +f 1837 3513 3514 +f 253 59 85 +f 1808 3840 1807 +f 1647 3818 1609 +f 3865 671 668 +f 2112 3883 2111 +f 1405 2044 1438 +f 3829 1364 1366 +f 273 391 249 +f 576 3520 3555 +f 3875 668 2031 +f 1430 2140 2139 +f 2136 3860 28 +f 1430 18 19 +f 3893 570 695 +f 1442 2046 2141 +f 1431 2141 2140 +f 3869 3850 2136 +f 3808 1817 766 +f 3866 695 671 +f 2142 798 2138 +f 571 2142 694 +f 3819 1618 1611 +f 2143 2025 2142 +f 694 2138 670 +f 681 2144 572 +f 2144 2022 2143 +f 328 457 290 +f 1572 2011 2144 +f 630 3903 624 +f 2085 2087 2088 +f 2090 2092 2089 +f 572 2143 571 +f 1875 2153 2149 +f 1873 2149 2154 +f 2103 2097 2102 +f 2157 2155 2156 +f 2128 1414 2120 +f 3874 589 582 +f 3872 628 629 +f 2149 2158 2159 +f 2159 3905 3890 +f 698 3902 705 +f 3823 3827 1817 +f 2158 3874 3905 +f 1438 2046 1439 +f 2035 2160 2161 +f 2161 3889 3886 +f 3871 605 589 +f 3873 18 3875 +f 370 61 451 +f 649 413 648 +f 2153 2156 2158 +f 1428 1449 1450 +f 1490 73 1488 +f 3890 710 633 +f 2155 3891 3871 +f 1456 1880 1992 +f 2125 2087 2124 +f 2160 3890 3889 +f 300 505 323 +f 1064 1046 1065 +f 2043 1891 2155 +f 2129 2004 2003 +f 2131 2133 2134 +f 3848 1450 1449 +f 1998 804 805 +f 3879 3864 3914 +f 474 490 770 +f 1164 1182 1177 +f 707 3909 3870 +f 708 2162 707 +f 2162 3886 3909 +f 548 1905 458 +f 1145 1114 1171 +f 705 1650 704 +f 2043 1977 1995 +f 737 554 559 +f 1034 1191 1023 +f 458 1907 275 +f 195 232 233 +f 2040 1969 1970 +f 2145 2147 2148 +f 2054 2049 1645 +f 3832 1639 3818 +f 9 11 10 +f 252 506 258 +f 472 479 471 +f 1865 3791 3503 +f 900 910 907 +f 1941 2151 1942 +f 1921 1927 1919 +f 2163 1898 2116 +f 271 153 178 +f 1904 12 9 +f 282 264 460 +f 1872 2154 2035 +f 1326 1897 2163 +f 628 693 627 +f 1724 1719 1723 +f 1549 436 172 +f 1582 1730 1729 +f 1921 1929 1928 +f 3563 10 11 +f 2152 1950 1949 +f 475 774 771 +f 769 2171 473 +f 2171 476 473 +f 476 772 475 +f 1791 464 1760 +f 2166 2168 2169 +f 595 372 98 +f 483 1641 482 +f 762 2173 470 +f 771 484 492 +f 486 1809 483 +f 297 1517 296 +f 763 2174 762 +f 776 759 489 +f 184 2176 2000 +f 412 303 414 +f 2005 185 224 +f 3811 1682 3846 +f 2164 756 764 +f 1472 2161 2162 +f 950 964 965 +f 2177 2179 2180 +f 227 1510 333 +f 764 467 2164 +f 2182 2184 2181 +f 2186 2018 2185 +f 1985 2181 1986 +f 214 729 1531 +f 1545 1546 1569 +f 865 842 866 +f 849 1357 1362 +f 452 1558 454 +f 559 3188 737 +f 16 737 3188 +f 560 498 374 +f 3193 3195 3194 +f 3200 3198 3199 +f 3211 3213 3212 +f 3215 3217 3216 +f 2187 2002 2001 +f 2169 2189 2190 +f 2192 2085 2191 +f 2193 2195 2196 +f 2198 2200 2197 +f 1998 1979 1975 +f 3664 3668 3671 +f 2116 1903 1902 +f 1859 2009 1150 +f 3904 2126 3906 +f 1135 1087 1130 +f 2201 2015 2014 +f 1149 110 1858 +f 3221 3218 3215 +f 2203 2205 2206 +f 579 1895 1019 +f 1755 2208 1756 +f 3891 1893 605 +f 1211 2150 1727 +f 868 2210 2209 +f 944 930 940 +f 2130 2202 2201 +f 233 1898 195 +f 665 750 666 +f 1167 999 618 +f 2211 2213 2214 +f 2215 2217 2218 +f 3867 590 3868 +f 2220 220 2219 +f 823 948 1094 +f 3225 3227 3226 +f 266 455 265 +f 3882 2107 3883 +f 2221 3519 3517 +f 2223 2225 2226 +f 2207 2124 2208 +f 673 3869 3864 +f 817 996 815 +f 2227 2146 2145 +f 1947 646 749 +f 3900 17 3873 +f 2229 1638 1381 +f 1679 1618 1680 +f 1637 2232 2230 +f 2233 1617 1616 +f 2231 2236 2237 +f 1381 2238 1382 +f 3586 2242 3587 +f 1630 2233 1631 +f 1681 472 469 +f 1408 2243 2244 +f 3236 3238 3237 +f 3232 3240 3235 +f 1637 2238 1638 +f 3237 3233 3234 +f 1409 1634 2245 +f 1380 2247 2246 +f 1628 2245 1621 +f 2249 1622 1633 +f 1632 1408 2244 +f 2248 1631 2250 +f 2235 1637 1636 +f 3245 3199 3198 +f 631 2071 725 +f 515 52 49 +f 782 2251 1251 +f 2253 2255 2252 +f 397 459 784 +f 1456 2040 1455 +f 2040 2036 1455 +f 1401 2111 1398 +f 2041 1970 2026 +f 1535 414 1965 +f 1586 2080 2079 +f 2256 1132 1886 +f 1700 3918 3919 +f 3815 1686 3817 +f 1263 1886 1096 +f 598 844 599 +f 2257 2259 2260 +f 2258 2262 2259 +f 2259 2263 2216 +f 2260 2216 2215 +f 1967 1970 1969 +f 2212 1963 2213 +f 922 2218 2217 +f 1312 1101 2264 +f 1307 1286 789 +f 1548 1546 1972 +f 2266 2268 2265 +f 2265 2270 2269 +f 2272 2269 2271 +f 2273 2265 2272 +f 2275 2277 2274 +f 2278 2277 2279 +f 2284 3617 3639 +f 2287 2286 2281 +f 2288 2283 2287 +f 2290 3639 3620 +f 2291 2293 2294 +f 2295 2294 2279 +f 2296 2291 2295 +f 2297 2292 2291 +f 2294 2299 2300 +f 2279 2300 2278 +f 2298 2302 2292 +f 2292 2303 2293 +f 2293 2304 2299 +f 2304 2306 2299 +f 2306 2300 2299 +f 2308 2310 2307 +f 2302 2310 2303 +f 2301 2307 2302 +f 2312 2307 2311 +f 2313 2315 2316 +f 2318 2320 2317 +f 3748 2322 2323 +f 2324 2273 2326 +f 2313 2326 2327 +f 2328 2313 2316 +f 2329 2324 2328 +f 2331 2333 2330 +f 2330 2267 2266 +f 2325 2266 2273 +f 2329 2330 2325 +f 2333 2335 2267 +f 2336 2333 2332 +f 2338 2332 2337 +f 2331 2337 2332 +f 2329 2339 2331 +f 2328 2340 2329 +f 2316 2341 2328 +f 2342 2315 2343 +f 2344 2346 2347 +f 2341 2347 2340 +f 2342 2344 2341 +f 2348 2345 2344 +f 2350 2352 2353 +f 2339 2353 2337 +f 2340 2350 2339 +f 2347 2351 2350 +f 2337 2354 2338 +f 2353 2355 2354 +f 2356 2276 2357 +f 2356 2358 2359 +f 2356 2296 2295 +f 2279 2356 2295 +f 2360 2270 2268 +f 2267 2360 2268 +f 2362 2364 2365 +f 2362 2361 2358 +f 2366 2358 2357 +f 2366 2363 2362 +f 2357 2368 2366 +f 2366 2369 2367 +f 2276 2370 2368 +f 2368 2282 2369 +f 2372 2374 2371 +f 2375 2377 2007 +f 2378 2380 2381 +f 2382 2381 2383 +f 2384 2378 2382 +f 2385 2379 2378 +f 2388 2390 2387 +f 2387 2392 2391 +f 2393 2387 2391 +f 2394 2388 2387 +f 2186 2402 2400 +f 2403 2327 2326 +f 2272 2326 2273 +f 2271 2403 2272 +f 2405 2404 2403 +f 2404 2408 2327 +f 2409 2411 2412 +f 2409 2271 2269 +f 2413 2269 2270 +f 2413 2410 2409 +f 2417 2416 2418 +f 2417 2406 2405 +f 2412 2405 2271 +f 2411 2417 2412 +f 2406 2407 2404 +f 3569 632 713 +f 2420 2397 2421 +f 2420 2423 2422 +f 2424 2422 2419 +f 2424 2398 2420 +f 2425 2392 2426 +f 2421 2426 2423 +f 2397 2425 2421 +f 2396 2391 2425 +f 2427 2315 2314 +f 2427 2408 2428 +f 2430 2428 2429 +f 2343 2427 2430 +f 2432 2430 2431 +f 2431 2429 2433 +f 2435 2433 2434 +f 2436 2431 2435 +f 2428 2407 2437 +f 2422 2407 2419 +f 2438 2422 2423 +f 2429 2437 2438 +f 2440 2433 2439 +f 2441 2433 2429 +f 2442 2439 2441 +f 2443 2440 2439 +f 2445 2444 2443 +f 2447 2443 2442 +f 2383 2445 2447 +f 2381 2446 2445 +f 2448 2423 2426 +f 2449 2426 2392 +f 2441 2449 2442 +f 2441 2438 2448 +f 2449 2390 2450 +f 2450 2389 2451 +f 2447 2451 2383 +f 2442 2450 2447 +f 2451 2453 2452 +f 2452 2455 2454 +f 2382 2454 2384 +f 2383 2452 2382 +f 2456 2373 2372 +f 2459 2461 2458 +f 2463 2465 2462 +f 2462 2285 2284 +f 2466 2284 2290 +f 2467 2462 2466 +f 2461 3703 3701 +f 2468 2470 2471 +f 2472 2471 2473 +f 2474 3701 3688 +f 2475 2477 2478 +f 2458 2453 2479 +f 2479 2389 2388 +f 2395 2479 2388 +f 2480 2458 2479 +f 2481 2483 2478 +f 2484 2485 221 +f 2471 2464 2463 +f 2473 2463 2467 +f 2487 2466 2486 +f 2486 2290 2488 +f 2490 2488 2489 +f 2491 2486 2490 +f 2492 2467 2487 +f 2493 2487 2491 +f 2494 2492 2493 +f 2495 2473 2492 +f 3690 2474 3688 +f 3691 2496 3690 +f 2498 2493 2499 +f 2500 2499 2501 +f 3700 2498 2500 +f 3687 2494 2498 +f 2306 2278 2300 +f 2305 2504 2306 +f 2504 2507 2506 +f 2506 2288 2508 +f 2274 2508 2275 +f 2278 2506 2274 +f 3633 2489 2488 +f 3620 2488 2290 +f 2507 2289 2288 +f 2505 2509 2507 +f 2508 2287 2511 +f 2511 2281 2280 +f 2370 2280 2282 +f 2275 2511 2370 +f 2512 2489 2513 +f 2514 2513 2515 +f 2517 2514 2516 +f 2517 2490 2512 +f 2499 2491 2517 +f 2499 2516 2501 +f 2510 2519 2518 +f 2518 2521 2520 +f 3616 2520 3621 +f 3632 2518 3616 +f 2522 2303 2310 +f 2523 2310 2309 +f 2305 2522 2524 +f 2524 2523 2525 +f 2519 2525 2521 +f 2505 2524 2519 +f 2308 2527 2526 +f 2526 2529 2528 +f 2531 2528 2530 +f 2309 2526 2531 +f 1214 2151 1211 +f 2419 2418 2424 +f 2533 2349 2317 +f 2534 2317 2320 +f 2535 2533 2534 +f 2536 2345 2533 +f 2537 2346 2536 +f 2538 2536 2535 +f 2539 2537 2538 +f 2540 2351 2537 +f 2312 2541 2527 +f 2527 2542 2529 +f 2543 2434 2544 +f 2545 2544 2546 +f 2319 2543 2545 +f 2318 2435 2543 +f 2514 2548 2547 +f 2547 2550 2549 +f 2552 2549 2551 +f 2552 2514 2547 +f 2520 2554 2553 +f 2553 2556 2555 +f 3590 2555 3593 +f 3621 2553 3590 +f 2523 2531 2557 +f 2557 2530 2558 +f 2525 2557 2559 +f 2559 2558 2560 +f 2554 2560 2556 +f 2521 2559 2554 +f 2561 2007 2006 +f 2376 2225 2377 +f 2564 2566 2563 +f 2563 338 2567 +f 2569 2567 2568 +f 2570 2563 2569 +f 2572 2574 2571 +f 2571 2576 2575 +f 2544 2575 2546 +f 2544 2572 2571 +f 2578 2569 2577 +f 2579 2569 2568 +f 2574 2579 2576 +f 2573 2577 2574 +f 2581 2583 2580 +f 2584 2583 2585 +f 3697 2580 2584 +f 3676 2580 3675 +f 2582 2552 2583 +f 2583 2551 2585 +f 2500 2589 2588 +f 2590 2589 2591 +f 3693 2588 2590 +f 3695 2500 2588 +f 2501 2591 2589 +f 2592 2594 2595 +f 2386 2503 2502 +f 2596 2386 2374 +f 2596 2373 2597 +f 2599 2597 2598 +f 2599 2379 2596 +f 2600 2380 2599 +f 2600 2598 2601 +f 2603 2601 2602 +f 2603 2446 2600 +f 2604 2602 2605 +f 2440 2605 2434 +f 2444 2604 2440 +f 2606 2581 2607 +f 2606 2590 2591 +f 2591 2582 2606 +f 3676 2456 3689 +f 3689 2372 3693 +f 2478 2608 2481 +f 2609 2611 2199 +f 2564 2613 2612 +f 2612 2598 2597 +f 2457 2597 2373 +f 2565 2612 2457 +f 2614 2570 2578 +f 2615 2578 2573 +f 2602 2614 2615 +f 2601 2613 2614 +f 2572 2605 2616 +f 2616 2602 2615 +f 2573 2616 2615 +f 1459 1045 1021 +f 1265 1079 1082 +f 1612 1609 1611 +f 2067 2069 2068 +f 1135 1136 1148 +f 1938 2618 2617 +f 95 458 128 +f 2058 1608 1612 +f 1454 1445 1367 +f 655 1048 2619 +f 722 2621 723 +f 1131 1033 1134 +f 562 366 1497 +f 1723 1725 1591 +f 1786 1122 1787 +f 267 323 266 +f 1325 1654 2038 +f 1468 1435 1479 +f 658 529 528 +f 8 247 7 +f 382 1559 3 +f 788 1307 789 +f 940 929 928 +f 911 2623 912 +f 2621 655 654 +f 2624 2625 2626 +f 998 27 26 +f 635 2626 2625 +f 2627 644 1840 +f 2628 1840 2629 +f 1200 2627 2628 +f 1199 641 2627 +f 1520 49 477 +f 1452 1349 1451 +f 2630 1859 1858 +f 644 1335 1823 +f 1197 717 2632 +f 2632 719 1166 +f 2628 1166 1200 +f 2629 2632 2628 +f 1762 1050 821 +f 1823 873 1839 +f 2634 794 652 +f 1028 1027 1161 +f 1042 2635 1043 +f 93 1901 1924 +f 2036 1458 1455 +f 1527 1525 1526 +f 877 1274 1277 +f 134 797 1544 +f 1328 931 1329 +f 607 1091 1161 +f 1043 2637 2636 +f 2636 2639 2638 +f 1275 2638 1276 +f 1275 1043 2636 +f 1272 2626 2640 +f 2640 638 637 +f 1110 2640 637 +f 536 2640 2641 +f 1472 1474 1473 +f 2042 1951 649 +f 1058 1105 1059 +f 2642 2643 2644 +f 1192 2644 1193 +f 912 2642 1192 +f 3898 3526 3786 +f 1049 2620 2621 +f 616 1885 613 +f 1331 666 750 +f 990 1198 525 +f 1911 321 322 +f 1298 1205 2645 +f 76 1504 75 +f 1502 421 422 +f 610 658 691 +f 1146 659 938 +f 2646 914 936 +f 1280 1238 1279 +f 975 2647 2648 +f 2647 975 974 +f 1453 1452 1451 +f 1514 158 151 +f 835 1843 1842 +f 1271 1173 1289 +f 2649 813 2650 +f 1893 1826 1894 +f 1050 1937 1051 +f 2651 814 813 +f 1006 1281 977 +f 2653 2654 2655 +f 1001 1003 1002 +f 585 679 558 +f 2624 621 620 +f 555 2028 556 +f 1207 1197 2629 +f 1626 478 472 +f 426 419 1567 +f 1030 1773 1031 +f 3898 634 3880 +f 534 138 262 +f 1125 1042 1041 +f 333 88 227 +f 569 561 730 +f 1489 871 870 +f 1857 620 891 +f 1673 3770 3763 +f 622 864 1308 +f 2647 974 2657 +f 619 891 620 +f 261 545 262 +f 393 1556 404 +f 2658 2647 2657 +f 1075 2657 917 +f 1081 2658 1075 +f 1080 2659 2658 +f 2644 1141 2660 +f 2660 1140 1336 +f 642 1336 643 +f 1193 2660 642 +f 679 555 558 +f 1503 1500 1502 +f 1318 1101 1100 +f 2661 1139 1142 +f 2661 2663 2662 +f 2662 2659 2661 +f 2662 2622 2664 +f 2664 911 2646 +f 2648 2646 1146 +f 2648 2662 2664 +f 2083 2093 2081 +f 1442 1437 1439 +f 519 330 51 +f 1885 1209 613 +f 799 805 804 +f 1946 1952 1953 +f 1302 1253 1252 +f 566 224 533 +f 1389 928 1388 +f 683 681 680 +f 836 1842 2665 +f 2665 1845 1303 +f 2666 1303 1302 +f 24 2665 2666 +f 831 2650 832 +f 1845 1304 1303 +f 2010 2012 2011 +f 1051 2667 2668 +f 1522 1511 1523 +f 531 441 522 +f 782 1251 1250 +f 1250 2625 2669 +f 2669 1857 1856 +f 783 1856 1037 +f 782 2669 783 +f 720 2671 721 +f 1055 1930 1056 +f 1333 1251 2251 +f 619 1308 1307 +f 652 2619 2634 +f 521 1539 1540 +f 1838 537 2672 +f 2672 536 2641 +f 1113 2641 1110 +f 1113 1838 2672 +f 1016 1351 1045 +f 3897 570 3894 +f 226 104 101 +f 3564 3827 1818 +f 1036 1884 1883 +f 2674 1304 2673 +f 2673 1844 2675 +f 1334 2675 1039 +f 1333 2673 1334 +f 2676 1039 2675 +f 1843 2675 1844 +f 942 2676 1843 +f 1074 702 2676 +f 811 859 858 +f 752 1055 753 +f 1200 656 1026 +f 1120 874 2677 +f 2677 877 1052 +f 1241 1052 1005 +f 1119 2677 1241 +f 1560 151 1515 +f 1208 611 523 +f 215 736 214 +f 1460 1462 1461 +f 1208 1839 873 +f 854 1282 1297 +f 72 182 179 +f 544 1565 512 +f 217 456 457 +f 2047 930 945 +f 1204 1937 2633 +f 913 686 685 +f 840 1113 1112 +f 1531 730 561 +f 2678 1283 801 +f 601 1914 602 +f 1537 459 460 +f 1819 3509 3527 +f 991 862 538 +f 2679 1073 1830 +f 2680 983 2256 +f 779 2256 1263 +f 778 2680 779 +f 2678 1830 2680 +f 180 245 40 +f 1886 1131 1134 +f 1138 1274 1255 +f 1841 1140 1139 +f 75 314 74 +f 193 420 192 +f 2681 1099 1098 +f 170 1565 169 +f 349 417 432 +f 1121 2684 2683 +f 547 409 302 +f 123 121 120 +f 2643 1142 1141 +f 1542 513 1543 +f 899 907 919 +f 1210 676 867 +f 791 982 892 +f 24 837 836 +f 893 932 931 +f 1860 863 862 +f 535 862 861 +f 832 813 812 +f 2650 813 832 +f 1569 1547 1568 +f 181 542 180 +f 660 937 688 +f 2013 568 2012 +f 887 2631 2630 +f 1524 361 78 +f 520 162 1529 +f 2653 854 2685 +f 1238 2655 2686 +f 718 527 530 +f 1492 518 1491 +f 792 615 793 +f 599 1835 596 +f 290 456 175 +f 312 1552 425 +f 1248 1179 1249 +f 153 177 178 +f 1240 1222 1221 +f 1257 1235 1071 +f 1291 1083 1222 +f 1052 1277 1053 +f 743 2618 1204 +f 444 430 443 +f 23 1172 1187 +f 2687 1180 1179 +f 102 409 134 +f 1283 610 801 +f 373 650 651 +f 1180 1084 1291 +f 855 2655 1237 +f 1173 1917 1174 +f 2689 853 2688 +f 2688 1108 1279 +f 2686 1279 1238 +f 2687 2688 2686 +f 2691 1252 2690 +f 2690 850 2689 +f 1248 2689 2687 +f 1248 2691 2690 +f 2692 24 2666 +f 2691 2666 1302 +f 1247 2692 2691 +f 1258 617 2692 +f 394 1555 393 +f 2693 1259 1223 +f 1072 1262 1261 +f 1257 1168 1258 +f 398 1555 1554 +f 871 1314 872 +f 1178 1249 1179 +f 1224 1173 1172 +f 1010 2618 742 +f 1175 1292 1269 +f 2654 2686 2655 +f 2694 1216 1264 +f 71 1487 70 +f 701 1111 1038 +f 1072 2649 2650 +f 1085 22 21 +f 895 1264 896 +f 1601 1605 1604 +f 1259 1271 1289 +f 21 1220 1083 +f 988 538 537 +f 598 1336 1140 +f 820 1762 821 +f 1050 818 821 +f 1298 1761 2652 +f 1168 618 617 +f 858 1256 833 +f 39 516 1536 +f 2652 819 814 +f 313 315 314 +f 2026 1971 2027 +f 2656 596 1835 +f 814 818 811 +f 2696 813 2649 +f 1260 2649 1261 +f 2693 2696 1260 +f 2697 2651 2696 +f 381 390 380 +f 3818 1611 1609 +f 1475 1428 1227 +f 1292 1917 1235 +f 1551 354 1518 +f 1526 1523 1511 +f 1593 1595 1573 +f 1232 1246 1249 +f 2695 1223 22 +f 2698 1296 2697 +f 2698 2693 2695 +f 2685 2695 1085 +f 2685 1297 2698 +f 562 271 272 +f 2652 1296 1298 +f 1365 1364 1363 +f 1958 1953 1957 +f 585 2210 997 +f 1561 1515 435 +f 975 1146 976 +f 347 68 346 +f 1038 636 1068 +f 2700 780 2699 +f 2699 1036 1883 +f 2701 1883 1829 +f 851 2699 2701 +f 2674 2251 2702 +f 2702 781 2700 +f 1253 2700 851 +f 1301 2702 1253 +f 1519 388 1550 +f 1273 1280 2703 +f 2703 1107 852 +f 2701 852 851 +f 1829 2703 2701 +f 91 326 90 +f 1784 2656 1785 +f 2683 2705 2704 +f 604 3499 3533 +f 1669 3548 1662 +f 2062 2060 2059 +f 621 861 622 +f 2023 732 2024 +f 686 1263 687 +f 857 2668 1328 +f 883 882 879 +f 637 1111 1110 +f 2668 893 1328 +f 2667 894 2668 +f 1039 1068 1334 +f 313 1504 1505 +f 1911 305 453 +f 1936 1964 2212 +f 2707 2401 2183 +f 2708 2183 2182 +f 738 2116 554 +f 2349 2432 2436 +f 2711 2020 2019 +f 2400 2019 2186 +f 2714 2716 2713 +f 2717 2719 2720 +f 2721 2723 2724 +f 2726 2728 2725 +f 2725 2730 2729 +f 2731 2729 2709 +f 2732 2725 2731 +f 2734 2736 2733 +f 2738 2740 2737 +f 2737 2741 2742 +f 2744 2746 2743 +f 2745 2748 2747 +f 2749 2747 2751 +f 2753 2751 2752 +f 2250 2246 2248 +f 2754 1614 2755 +f 3598 2755 3609 +f 3608 2747 3609 +f 1617 2755 1614 +f 2242 1620 2757 +f 2191 2760 2759 +f 2761 2760 2762 +f 3648 2761 3649 +f 3623 2759 3648 +f 3209 3223 3224 +f 1395 2236 2235 +f 1395 1636 1615 +f 1616 2229 2233 +f 1617 2763 2756 +f 2756 3628 3608 +f 2765 2234 1630 +f 2766 3628 3622 +f 3202 3246 3247 +f 1516 435 1515 +f 2768 3552 3553 +f 1495 578 1424 +f 2135 28 17 +f 3526 2773 2774 +f 1690 3926 3925 +f 2778 2780 2777 +f 2777 2781 2782 +f 2784 2777 2783 +f 3555 575 576 +f 1494 9 540 +f 3529 2015 3566 +f 451 505 450 +f 2786 2788 2785 +f 2779 2785 2780 +f 2789 2741 2740 +f 2790 2752 2789 +f 2792 2794 2791 +f 2793 2796 2794 +f 2796 2750 2749 +f 2794 2749 2753 +f 2798 1396 2754 +f 3591 2754 3598 +f 2798 2800 1393 +f 3591 2799 2798 +f 2797 2795 2801 +f 2791 2753 2790 +f 216 232 54 +f 3804 2807 3803 +f 3805 2804 3803 +f 2769 3557 3552 +f 183 184 97 +f 2811 2775 2776 +f 2804 2776 2805 +f 2809 2811 2804 +f 2812 2813 2814 +f 3805 2816 3795 +f 3796 2815 3795 +f 3798 2820 2821 +f 3793 2819 3798 +f 2824 2735 2819 +f 2823 2824 2819 +f 2825 2826 2724 +f 3793 2827 3792 +f 3796 2826 3792 +f 2713 2829 2828 +f 2828 2831 2830 +f 2822 2828 2830 +f 2821 2713 2828 +f 2832 2822 2830 +f 2833 2830 2831 +f 2834 2832 2833 +f 2835 2827 2832 +f 2837 2839 2836 +f 2836 2841 2840 +f 2842 2840 2727 +f 2843 2836 2842 +f 2840 2845 2844 +f 2718 2845 2719 +f 2730 2844 2718 +f 2727 2844 2728 +f 2846 2719 2845 +f 2846 2841 2847 +f 2829 2847 2831 +f 2829 2716 2846 +f 2847 2839 2848 +f 2848 2838 2849 +f 2833 2849 2834 +f 2831 2848 2833 +f 2850 2851 2852 +f 2853 2852 2854 +f 2783 2782 2855 +f 2785 2853 2856 +f 2780 2856 2781 +f 2857 2855 2782 +f 2859 2782 2781 +f 2861 2842 2860 +f 2860 2727 2726 +f 2862 2726 2732 +f 2863 2860 2862 +f 2861 2858 2857 +f 2843 2857 2859 +f 2856 2854 2864 +f 2781 2864 2859 +f 2837 2859 2864 +f 2838 2864 2854 +f 2852 2834 2849 +f 2854 2849 2838 +f 2865 2818 2835 +f 2851 2835 2834 +f 2813 2815 2865 +f 2814 2865 2851 +f 2866 2814 2850 +f 2788 2850 2853 +f 2866 2787 2867 +f 2812 2867 2775 +f 1892 1890 1891 +f 2720 2846 2870 +f 298 256 257 +f 2872 2713 2820 +f 3794 2735 2734 +f 2729 2874 2873 +f 2846 2715 2870 +f 2876 2878 2875 +f 2733 2878 2734 +f 3806 2879 2880 +f 3806 2872 3794 +f 2882 2884 2881 +f 2881 2715 2714 +f 2880 2714 2872 +f 2879 2881 2880 +f 2885 2887 2888 +f 2888 2890 2885 +f 2885 2892 2891 +f 2893 2885 2891 +f 1942 2532 2894 +f 2895 2720 2870 +f 2884 2870 2715 +f 2883 2895 2884 +f 2896 2892 2895 +f 2889 2717 2890 +f 2890 2720 2892 +f 2897 2891 2896 +f 2898 2896 2883 +f 2899 2883 2882 +f 2900 2882 2879 +f 3797 2879 3807 +f 2876 2901 2877 +f 2901 2904 2903 +f 1785 1835 1834 +f 2905 2899 2900 +f 2907 2897 2898 +f 3797 2903 3799 +f 632 577 633 +f 3532 2867 2787 +f 434 550 350 +f 2768 3640 3643 +f 2910 1623 2249 +f 2241 2758 2242 +f 3640 2913 3652 +f 1623 2757 1620 +f 3587 2757 3652 +f 2229 1380 2250 +f 2765 1629 2914 +f 2915 1629 2912 +f 3642 2914 2915 +f 3641 2765 2914 +f 2919 3642 3613 +f 2918 2912 2241 +f 3614 2241 3586 +f 3618 3613 3670 +f 3541 2180 3496 +f 3521 2188 3506 +f 3705 714 3851 +f 2925 2917 2924 +f 2924 2916 2919 +f 3610 2919 3618 +f 3611 2924 3610 +f 2926 2766 2925 +f 3658 2925 3611 +f 1715 1705 1710 +f 785 498 796 +f 1387 565 1791 +f 374 1899 560 +f 3573 2206 3556 +f 2929 2886 2893 +f 2932 2934 2931 +f 1905 1908 1907 +f 2930 2936 2937 +f 2938 2930 2929 +f 1493 517 518 +f 1603 1586 1602 +f 2939 2929 2908 +f 2940 2908 2907 +f 3665 1600 3661 +f 2886 2937 2887 +f 2906 2898 2899 +f 2908 2893 2897 +f 2942 2933 2941 +f 2941 2937 2936 +f 3501 2936 3513 +f 3498 2941 3501 +f 2943 2710 2873 +f 2943 2874 2889 +f 2945 2889 2888 +f 2946 2943 2945 +f 2932 2888 2887 +f 2931 2945 2932 +f 727 1929 728 +f 2903 2947 2948 +f 545 42 262 +f 1480 533 251 +f 2907 2949 2940 +f 2906 2950 2949 +f 1558 215 202 +f 3799 2948 3801 +f 2054 1644 2118 +f 3705 2203 3573 +f 1828 1849 1827 +f 2953 2955 2952 +f 2952 2957 2956 +f 2956 2258 2952 +f 2953 2258 2257 +f 2454 2474 2496 +f 3747 2959 3766 +f 3747 2131 3737 +f 2961 2963 2958 +f 2958 2964 2959 +f 222 2485 2965 +f 2477 2966 2608 +f 2631 2006 1859 +f 2384 2496 2497 +f 2967 2959 2964 +f 2968 2970 2969 +f 3759 2971 3784 +f 3784 2960 3766 +f 2972 2033 2032 +f 2007 2973 2008 +f 3560 2134 2133 +f 1836 1832 1831 +f 3506 2090 3551 +f 955 959 956 +f 672 674 673 +f 633 713 632 +f 2024 733 803 +f 2025 803 798 +f 425 1550 388 +f 2975 888 887 +f 1319 1157 2694 +f 1212 2977 1213 +f 889 2228 2227 +f 1978 1975 1979 +f 1138 1329 915 +f 751 2979 2978 +f 1619 1625 1624 +f 2252 1728 1727 +f 1157 845 1216 +f 2706 1938 2617 +f 2980 2254 2981 +f 2982 887 2630 +f 802 711 2679 +f 678 2029 2028 +f 527 690 528 +f 1839 2629 1840 +f 2983 602 1914 +f 2983 1913 1331 +f 2985 1331 1054 +f 2986 2983 2985 +f 2987 2635 2634 +f 2985 2639 2986 +f 2990 1318 2989 +f 2991 2993 2994 +f 2995 2994 2996 +f 1106 2991 2995 +f 1058 2992 2991 +f 1415 1365 1367 +f 1317 2217 2997 +f 1932 2255 2980 +f 926 2999 664 +f 3001 2992 3000 +f 3000 1057 2978 +f 2999 2978 2979 +f 2998 3000 2999 +f 3002 2209 3003 +f 3002 2996 2994 +f 2993 3002 2994 +f 3001 2998 3002 +f 1103 2995 3004 +f 3004 2996 3003 +f 2209 3004 3003 +f 588 3004 2210 +f 295 433 381 +f 2638 2988 3005 +f 3005 1056 1930 +f 1305 1930 1306 +f 1276 3005 1305 +f 1987 1993 1989 +f 2633 1761 2645 +f 1423 1417 1419 +f 3561 739 703 +f 2671 2704 2705 +f 1473 2035 1472 +f 922 2694 895 +f 1401 1378 1384 +f 556 1884 1037 +f 842 3825 3836 +f 1854 2617 1010 +f 933 1081 1075 +f 1440 1436 1437 +f 529 719 530 +f 1031 1027 1028 +f 777 912 1871 +f 2645 1204 2633 +f 441 1538 1537 +f 790 587 586 +f 2065 1610 1607 +f 1860 990 902 +f 60 87 59 +f 1424 1948 1947 +f 332 1507 331 +f 261 138 135 +f 187 449 507 +f 1719 1726 1725 +f 1931 1059 3006 +f 3006 1105 1104 +f 1287 1104 587 +f 1286 3006 1287 +f 3007 3009 3010 +f 3009 653 795 +f 618 26 25 +f 2029 1210 1209 +f 957 600 2228 +f 1049 2228 600 +f 2631 3011 2561 +f 890 2227 3011 +f 3011 2145 3012 +f 2561 3012 2375 +f 1026 609 608 +f 2706 1961 1964 +f 3013 2485 3014 +f 2148 1267 3015 +f 3015 1266 1311 +f 2997 1101 1317 +f 642 1773 1193 +f 186 461 511 +f 1041 1320 901 +f 1121 3017 1122 +f 2984 2987 3018 +f 3018 2634 2619 +f 1048 3018 2619 +f 603 2984 3018 +f 2679 801 802 +f 2062 2074 2061 +f 2061 2076 2064 +f 414 1545 1965 +f 3016 2683 3019 +f 3019 2704 2670 +f 3020 2670 720 +f 3007 3019 3020 +f 1871 1091 777 +f 3021 1122 3017 +f 3022 3017 3010 +f 1314 3022 1315 +f 1784 3021 1314 +f 1316 1763 611 +f 3023 3010 3009 +f 3023 795 1092 +f 1763 1092 1125 +f 1315 3023 1763 +f 3016 3010 3017 +f 752 2978 1057 +f 2986 2637 2987 +f 3024 653 3008 +f 3020 3008 3007 +f 720 3024 3020 +f 723 654 3024 +f 2681 1268 3025 +f 2671 1268 721 +f 2705 3025 2671 +f 1313 3027 1311 +f 3026 3029 3027 +f 3027 3030 3031 +f 1311 3031 3015 +f 2012 731 2023 +f 917 974 977 +f 743 856 744 +f 1888 2030 1425 +f 2682 2684 3032 +f 3032 1124 2989 +f 1100 2989 1318 +f 1099 3032 1100 +f 1123 2989 1124 +f 3033 1159 1158 +f 2990 1158 1319 +f 1123 3033 2990 +f 1786 1834 3033 +f 1054 2988 2985 +f 2979 664 2999 +f 2623 2663 2643 +f 1095 688 687 +f 3034 2261 2956 +f 3036 2956 2957 +f 3037 3034 3036 +f 3038 3035 3034 +f 3040 3026 1313 +f 2263 3041 3040 +f 3042 3043 3041 +f 3041 3028 3026 +f 3044 3043 3039 +f 3046 3045 3044 +f 3047 3049 3045 +f 3043 3049 3028 +f 3038 3051 3050 +f 3050 3053 3052 +f 3052 3044 3050 +f 3039 3050 3044 +f 3054 3039 3042 +f 3042 2262 3054 +f 2261 3054 2262 +f 2216 2997 2217 +f 2212 2667 1936 +f 3056 2209 3055 +f 934 1961 1854 +f 2013 3757 567 +f 3058 3060 3061 +f 3059 3063 3060 +f 3060 2213 1963 +f 3061 1963 1962 +f 3063 2214 2213 +f 3062 3064 3063 +f 3065 2260 3064 +f 3064 2215 2214 +f 3066 3031 3030 +f 2608 3067 3066 +f 2966 3068 3067 +f 3031 3068 3015 +f 2455 2461 2474 +f 2476 2226 2477 +f 3551 2089 3525 +f 3526 3769 3786 +f 433 355 381 +f 2115 1419 2123 +f 3509 2922 3527 +f 3769 2131 2134 +f 3069 2167 2166 +f 2971 2928 2960 +f 2961 2773 2962 +f 3070 2478 2483 +f 2610 3071 2954 +f 2502 2374 2386 +f 3072 2595 3073 +f 2964 3052 2967 +f 3048 3074 3049 +f 2593 3075 3074 +f 3075 3029 3074 +f 3074 3028 3049 +f 3072 3075 2592 +f 3076 2482 2481 +f 2481 3066 3076 +f 3076 3030 3075 +f 2967 3053 2970 +f 2482 3073 2483 +f 479 493 494 +f 706 3873 709 +f 3561 2221 3517 +f 2013 3754 3755 +f 3533 2016 3529 +f 3562 2222 2974 +f 1171 1155 1176 +f 2586 2565 2587 +f 2982 113 2484 +f 2562 3077 3068 +f 2376 3012 3077 +f 3012 2148 3077 +f 3077 3015 3068 +f 2963 3046 2964 +f 3051 2970 3053 +f 1683 491 775 +f 3850 1447 3860 +f 1986 3734 3768 +f 3079 2546 2575 +f 3081 2575 2576 +f 1983 3768 3765 +f 3082 2319 2545 +f 3080 2545 2546 +f 3734 3082 3080 +f 3732 2323 3082 +f 1309 1888 748 +f 3073 2772 2771 +f 2760 3084 2762 +f 2760 2088 3083 +f 3085 3086 3087 +f 3089 3090 3088 +f 3089 3084 3085 +f 3092 3090 3091 +f 3093 2744 2743 +f 2751 2748 3093 +f 3093 2752 2751 +f 2742 3093 3094 +f 3094 2743 3095 +f 3096 3098 3087 +f 3099 3087 3086 +f 3097 3095 3098 +f 3100 2746 3101 +f 3101 3102 3100 +f 2764 2927 3101 +f 2745 3101 2746 +f 3102 3091 3100 +f 3100 3095 2743 +f 2869 3592 3634 +f 3102 3104 3092 +f 3658 2869 3634 +f 2927 3103 3102 +f 3098 3091 3090 +f 3087 3090 3085 +f 2088 3105 3083 +f 3083 3086 3084 +f 2483 2771 3070 +f 2401 2185 2321 +f 3099 3105 3106 +f 2125 3106 3105 +f 3108 2742 3107 +f 3107 3094 3097 +f 3110 3107 3109 +f 3109 3097 3096 +f 3111 3096 3099 +f 3112 3109 3111 +f 3113 2737 3108 +f 3115 2722 3114 +f 3117 3114 3116 +f 3119 3116 3118 +f 3118 3120 3121 +f 3116 3113 3120 +f 3122 3111 3123 +f 3122 1755 1754 +f 3124 3126 3127 +f 3125 3121 3126 +f 3128 3118 3125 +f 3129 3125 3124 +f 2020 3128 3129 +f 3853 1346 1352 +f 1065 1047 1066 +f 1814 3830 1649 +f 2021 3129 3130 +f 3111 3106 3123 +f 3123 2207 1755 +f 2377 2224 2973 +f 3014 113 112 +f 1756 3782 3767 +f 3131 2530 2528 +f 3133 2528 2529 +f 1753 3767 3775 +f 3134 3127 3135 +f 2327 2314 2313 +f 2436 2317 2349 +f 2018 3711 3712 +f 2534 3137 2535 +f 2320 3136 2534 +f 2185 3712 3771 +f 3138 2542 2539 +f 3134 3744 3745 +f 3785 3134 3745 +f 3140 2539 2538 +f 2535 3140 2538 +f 3711 3130 3785 +f 2558 3132 3141 +f 3782 3141 3132 +f 2560 3141 3142 +f 3760 3142 3141 +f 958 2976 2981 +f 1933 2980 3143 +f 2399 2418 2416 +f 2348 2343 2432 +f 2322 2319 2323 +f 2718 2874 2730 +f 2709 2873 2710 +f 2894 1361 1942 +f 346 176 347 +f 1876 1882 1881 +f 2802 3607 3592 +f 3104 3088 3092 +f 2974 3649 3603 +f 3089 2761 2762 +f 3088 3145 3089 +f 2803 3603 3607 +f 3870 692 628 +f 2123 1418 2126 +f 1365 1368 1367 +f 1581 1782 1783 +f 3569 2129 3520 +f 3555 2002 3521 +f 3146 2551 3147 +f 3751 3147 3750 +f 3742 3146 3751 +f 3149 2585 3146 +f 3196 3197 3195 +f 3604 2191 3623 +f 3142 2556 2560 +f 3777 3150 3142 +f 3646 2550 3593 +f 3150 2555 2556 +f 3778 3151 3150 +f 3788 3152 3646 +f 3153 2551 2549 +f 3152 2549 2550 +f 3781 3153 3152 +f 3776 3147 3153 +f 3148 2206 2205 +f 2183 2321 2184 +f 2132 2928 2133 +f 3684 2204 2203 +f 3719 2197 3721 +f 2594 2773 2951 +f 2595 2951 2772 +f 1870 799 1869 +f 3713 2178 3706 +f 3706 3736 3790 +f 336 3774 3722 +f 339 3154 336 +f 3789 3149 3742 +f 3683 2584 3149 +f 2963 3048 3047 +f 3722 337 336 +f 339 2566 2586 +f 3156 2168 2167 +f 2610 2167 2611 +f 2954 3156 2610 +f 3157 2953 2257 +f 3707 2169 3709 +f 2567 3159 2568 +f 337 2567 338 +f 3730 2166 3707 +f 3764 1983 3765 +f 2579 3081 2576 +f 2568 3160 2579 +f 3709 2190 3764 +f 3065 3162 3161 +f 3161 1984 2189 +f 3157 2189 2168 +f 2257 3161 3157 +f 734 1922 806 +f 3059 2708 3163 +f 3163 2182 1985 +f 3162 1985 1984 +f 3062 3163 3162 +f 3203 3205 3204 +f 2122 1448 1447 +f 3817 1685 3812 +f 139 444 69 +f 1570 566 533 +f 2957 3165 3036 +f 2955 3164 2957 +f 1912 341 1973 +f 3130 3124 3134 +f 1548 319 1547 +f 1949 1327 1887 +f 2969 3078 3167 +f 3167 3169 3168 +f 3724 2017 3720 +f 3720 2033 3759 +f 3168 3165 3170 +f 3170 3164 3171 +f 3779 3171 3756 +f 3724 3170 3779 +f 3171 3166 3172 +f 3172 3071 3173 +f 3752 3173 3749 +f 3756 3172 3752 +f 3169 3036 3165 +f 2593 2962 2594 +f 3173 2609 3174 +f 3174 2199 2198 +f 3783 2198 3719 +f 3749 3174 3783 +f 2190 1984 1983 +f 2196 2767 3148 +f 2119 1414 1448 +f 1464 1466 1465 +f 2199 3069 2200 +f 2457 2587 2565 +f 2226 2562 2966 +f 481 1627 1639 +f 333 235 236 +f 3078 3037 3169 +f 3040 2997 2263 +f 2219 1933 2220 +f 2385 2497 2503 +f 221 3175 2484 +f 2220 3143 3175 +f 3175 2976 2975 +f 2484 2975 2982 +f 2954 3166 2955 +f 2630 110 2982 +f 1547 1952 1955 +f 2091 2188 2187 +f 3733 2178 2177 +f 1918 1927 1926 +f 3563 111 3511 +f 955 960 954 +f 2037 112 3563 +f 3143 2981 2976 +f 2218 2214 2215 +f 672 3787 3541 +f 2152 3014 2037 +f 1147 1143 1145 +f 2248 1409 2245 +f 1615 1635 1616 +f 1410 2246 2247 +f 3241 3242 3240 +f 3177 1383 1382 +f 2238 3176 1382 +f 3176 2230 3178 +f 1410 3179 1407 +f 3179 2243 1407 +f 1633 2800 2249 +f 1621 2758 2912 +f 1622 2245 1634 +f 2236 3181 3182 +f 2237 3182 3183 +f 2250 2233 2229 +f 2912 1628 1621 +f 135 1564 1563 +f 1567 512 1565 +f 1085 2653 2685 +f 3184 868 3056 +f 869 3057 934 +f 1266 1098 1312 +f 1267 722 721 +f 937 2646 936 +f 2146 722 2147 +f 2211 921 2667 +f 1957 507 449 +f 1313 2264 3040 +f 1496 1493 1492 +f 2681 2705 2682 +f 2887 2933 2932 +f 1687 1659 1694 +f 145 1498 81 +f 1317 1319 2694 +f 37 418 71 +f 1935 3185 2977 +f 104 301 103 +f 2101 2083 2084 +f 543 360 207 +f 1934 3186 3185 +f 234 212 237 +f 3845 1822 1824 +f 1976 1874 1974 +f 223 2219 220 +f 3655 3605 3612 +f 468 773 2165 +f 1935 1728 1932 +f 3240 3226 3235 +f 3261 3250 3260 +f 3215 3244 3264 +f 3265 3215 3264 +f 3267 3198 3196 +f 3205 3269 3255 +f 3214 3265 3270 +f 3271 3214 3192 +f 3251 3239 3236 +f 3222 3266 3272 +f 3232 3234 3233 +f 3216 3243 3244 +f 3196 3268 3267 +f 3244 3254 3255 +f 3238 3247 3246 +f 3264 3255 3269 +f 3253 3216 3217 +f 3211 3221 3265 +f 3257 3218 3256 +f 3258 3272 3259 +f 3274 3280 3273 +f 3228 3262 3263 +f 3275 3281 3280 +f 3226 3273 3280 +f 3236 3260 3251 +f 3281 3236 3237 +f 3287 3192 3189 +f 3235 3280 3234 +f 3234 3281 3237 +f 3288 3259 3272 +f 3260 3276 3251 +f 3289 3278 3284 +f 3210 3224 3283 +f 3199 3201 3200 +f 3228 3230 3229 +f 3290 3285 3286 +f 3282 3271 3287 +f 3260 3262 3261 +f 3243 3268 3254 +f 3267 3241 3232 +f 3194 3208 3193 +f 3191 3269 3206 +f 3270 3192 3214 +f 3275 3230 3231 +f 3264 3270 3265 +f 3252 3276 3291 +f 3248 3291 3223 +f 3213 3279 3277 +f 3272 3289 3288 +f 3277 3212 3213 +f 3228 3281 3231 +f 3220 3253 3219 +f 3219 3217 3257 +f 3256 3222 3258 +f 3247 3252 3248 +f 3245 3232 3233 +f 3266 3212 3289 +f 3208 3255 3254 +f 3288 3284 3285 +f 3204 3208 3207 +f 560 3187 559 +f 3209 3201 3202 +f 3189 3191 3190 +f 448 807 447 +f 647 122 270 +f 1833 1780 1832 +f 510 508 507 +f 3210 1887 3201 +f 1887 3200 3201 +f 15 3197 3200 +f 16 3195 3197 +f 3195 3187 3194 +f 3194 1899 3207 +f 3207 375 3204 +f 387 126 127 +f 3189 1760 3287 +f 3577 757 758 +f 763 2172 2175 +f 3583 3580 3581 +f 3581 3579 3578 +f 3594 3596 3595 +f 3400 3602 3401 +f 3626 3625 3627 +f 3631 3599 3601 +f 3636 3595 3596 +f 3647 3588 3645 +f 3650 3584 3647 +f 3653 3580 3651 +f 3653 3654 3579 +f 1801 3656 3655 +f 3651 3582 3650 +f 3644 3595 3637 +f 1767 3659 3660 +f 1597 3661 1600 +f 1708 3665 3664 +f 3671 3667 3666 +f 3666 3673 3672 +f 1588 3664 1587 +f 2080 3666 2082 +f 2082 3672 2084 +f 3674 3635 3631 +f 3677 3636 3635 +f 3682 3645 3681 +f 3692 3650 3686 +f 3681 3644 3680 +f 786 3692 785 +f 3694 3651 3692 +f 785 3686 497 +f 497 3682 650 +f 650 3681 564 +f 3696 3681 3680 +f 3405 3605 3402 +f 3702 3678 3677 +f 3699 3679 3678 +f 3645 3638 3644 +f 1799 3659 1768 +f 3708 3458 3460 +f 3462 3708 3460 +f 3714 564 3696 +f 3615 3602 3600 +f 3710 3696 3698 +f 3635 3596 3599 +f 3629 3627 3630 +f 3597 3599 3596 +f 3630 3715 3629 +f 3627 3597 3594 +f 3717 3723 3718 +f 3715 3660 3629 +f 3716 3725 3715 +f 3668 3661 3725 +f 3668 3717 3667 +f 3667 3718 3673 +f 3727 3673 3718 +f 3728 3672 3673 +f 3726 3718 3723 +f 1576 2084 3672 +f 3727 3731 3729 +f 3203 1387 3190 +f 3190 1791 3189 +f 3283 1949 3210 +f 317 259 391 +f 2000 3653 3694 +f 3601 3600 3602 +f 3589 3584 3585 +f 3577 756 2170 +f 3585 3582 3583 +f 3678 3637 3636 +f 3204 376 3203 +f 1801 3657 1799 +f 3729 3728 3727 +f 1575 3738 1088 +f 3735 1576 3728 +f 1776 1796 1775 +f 1293 1290 1284 +f 1326 1327 12 +f 1294 1234 1290 +f 878 1330 1337 +f 497 374 498 +f 122 413 121 +f 3699 3704 3708 +f 3606 3401 3602 +f 3708 3698 3699 +f 3464 3710 3462 +f 3704 3443 3458 +f 439 399 438 +f 1512 1526 1511 +f 1668 1738 1671 +f 839 1362 838 +f 1362 826 1012 +f 3843 1896 3815 +f 2053 2118 2117 +f 3888 2120 2119 +f 696 3816 3831 +f 1826 639 640 +f 3740 3729 3731 +f 956 886 960 +f 1980 1922 807 +f 33 105 164 +f 1343 3856 3857 +f 3907 2128 3902 +f 1766 1582 1594 +f 14 2163 738 +f 595 99 594 +f 3233 3246 3245 +f 1346 1044 1352 +f 748 1425 747 +f 3193 3254 3268 +f 3190 3206 3203 +f 3612 3606 3615 +f 3624 3615 3625 +f 3631 3443 3674 +f 3679 3644 3637 +f 3686 3647 3682 +f 3702 3674 3704 +f 3625 3600 3597 +f 3601 3415 3631 +f 3739 3735 3729 +f 3630 3594 3741 +f 3741 3716 3630 +f 1284 1288 1285 +f 3698 3680 3679 +f 1778 1780 1779 +f 1792 1584 1789 +f 695 571 694 +f 3638 3594 3595 +f 3741 3588 3589 +f 3247 3209 3202 +f 3292 3294 3295 +f 3296 3298 3299 +f 3299 3300 3301 +f 3302 3304 3305 +f 3306 3308 3309 +f 3307 3311 3308 +f 3303 3301 3300 +f 3312 3304 3313 +f 3314 3316 3317 +f 3318 3320 3321 +f 3324 3321 3325 +f 3326 3328 3323 +f 3329 3331 3332 +f 3333 3335 3336 +f 3337 3339 3340 +f 3333 3341 3342 +f 3342 3343 3344 +f 3319 3344 3343 +f 3338 3334 3339 +f 3346 3302 3347 +f 3305 3347 3302 +f 3312 3223 3349 +f 3350 3340 3351 +f 3312 3348 3305 +f 3352 3341 3326 +f 3311 3354 3308 +f 3341 3327 3326 +f 3359 3361 3362 +f 3360 3250 3249 +f 3318 3345 3319 +f 3364 3318 3324 +f 3314 3324 3365 +f 3366 3301 3346 +f 3299 3367 3296 +f 3308 3368 3309 +f 3369 3295 3294 +f 3317 3364 3314 +f 3370 3317 3316 +f 3325 3365 3324 +f 3352 3319 3343 +f 3296 3353 3311 +f 3297 3311 3310 +f 3363 3354 3345 +f 3345 3353 3344 +f 3344 3367 3342 +f 3366 3342 3367 +f 3347 3334 3346 +f 3339 3348 3340 +f 3348 3351 3340 +f 3363 3369 3368 +f 3294 3368 3369 +f 3293 3309 3294 +f 3331 3374 3332 +f 3346 3333 3366 +f 3323 3352 3326 +f 3356 3321 3320 +f 3355 3325 3321 +f 3357 3371 3325 +f 3322 3320 3352 +f 3361 3329 3362 +f 3373 3375 3374 +f 3374 3376 3332 +f 3329 3376 3362 +f 3327 3372 3328 +f 3336 3375 3327 +f 3335 3376 3375 +f 3376 3337 3362 +f 3337 3359 3362 +f 3359 3276 3250 +f 3377 3295 3370 +f 3277 3315 3278 +f 3371 3379 3365 +f 3378 3358 3380 +f 3365 3315 3314 +f 3316 3279 3370 +f 3282 3370 3279 +f 3313 3224 3312 +f 3378 3284 3379 +f 3380 3285 3378 +f 3379 3278 3315 +f 3276 3351 3291 +f 3291 3349 3223 +f 3313 2965 3013 +f 2965 3303 222 +f 222 3300 223 +f 223 3298 3186 +f 3298 3185 3186 +f 3297 2977 3185 +f 3310 1213 2977 +f 3307 1214 1213 +f 2532 3306 3293 +f 2894 3293 3292 +f 2871 3292 3377 +f 3253 3240 3242 +f 3283 3013 2152 +f 1997 1889 1892 +f 1237 744 855 +f 1535 120 121 +f 1531 201 214 +f 1119 1032 984 +f 946 824 947 +f 163 5 162 +f 3589 3723 3741 +f 1155 1162 1164 +f 427 327 424 +f 553 796 498 +f 3381 2231 2237 +f 3381 2230 2232 +f 2237 3180 3381 +f 3383 3385 3382 +f 3384 3387 3385 +f 3386 3389 3387 +f 3388 3391 3389 +f 3392 3394 3395 +f 3395 3396 3397 +f 3398 3397 3396 +f 3400 3399 3398 +f 3403 3405 3402 +f 3406 3404 3403 +f 3408 3407 3406 +f 3410 3409 3408 +f 3412 3411 3410 +f 3415 3398 3414 +f 3414 3396 3416 +f 3416 3394 3417 +f 3417 3393 3418 +f 3393 3420 3418 +f 3419 3421 3420 +f 3390 3422 3421 +f 3388 3423 3422 +f 3386 3424 3423 +f 3384 3425 3424 +f 3425 3426 3184 +f 2904 3428 2947 +f 3429 2904 2902 +f 3430 2902 2876 +f 2875 3430 2876 +f 3432 2733 2736 +f 2825 3435 2824 +f 3437 3439 3436 +f 3441 3436 3440 +f 2724 3434 2825 +f 3436 3115 3117 +f 3440 3117 3119 +f 3443 3414 3442 +f 3442 3416 3444 +f 3444 3417 3445 +f 3445 3418 3446 +f 3446 3420 3447 +f 3420 3448 3447 +f 3421 3449 3448 +f 3422 3450 3449 +f 3423 3451 3450 +f 3424 3452 3451 +f 3425 3056 3452 +f 3451 2253 2252 +f 3450 2252 1727 +f 3449 1727 2150 +f 3448 2150 1941 +f 3453 3448 1941 +f 3454 3447 3453 +f 3455 3446 3454 +f 3456 3445 3455 +f 3442 3456 3457 +f 3443 3457 3458 +f 3459 3458 3457 +f 3457 3455 3459 +f 3459 3454 3461 +f 3462 3459 3461 +f 3461 3453 3463 +f 3464 3461 3463 +f 3463 1941 1360 +f 3404 3401 3405 +f 3407 3399 3404 +f 3409 3397 3407 +f 3411 3395 3409 +f 3465 3413 3412 +f 3467 3469 3466 +f 3465 3431 3433 +f 3470 3466 3465 +f 3438 3432 3435 +f 3467 3438 3437 +f 3468 3437 3441 +f 3471 3468 3472 +f 3472 3441 3473 +f 3473 3440 2712 +f 2712 3119 3128 +f 3475 3472 3474 +f 3474 3473 3476 +f 3476 2712 2711 +f 3477 2711 2400 +f 3478 3476 3477 +f 3479 3474 3478 +f 3392 3413 3480 +f 3466 3480 3413 +f 3419 3392 3480 +f 3390 3480 3391 +f 3469 3391 3480 +f 3389 3471 3475 +f 3387 3475 3479 +f 3385 3479 3481 +f 3482 2400 2402 +f 3483 3477 3482 +f 3481 3478 3483 +f 3484 2402 2707 +f 3058 2707 2708 +f 3061 3484 3058 +f 3485 3482 3484 +f 3382 3481 3486 +f 3486 3483 3485 +f 3426 3382 3487 +f 3487 3486 1962 +f 3486 3061 1962 +f 1961 3487 1962 +f 3057 3426 3487 +f 3428 3402 3488 +f 3427 3403 3428 +f 3429 3406 3427 +f 3430 3408 3429 +f 3431 3410 3430 +f 3470 3433 3432 +f 3434 3438 3435 +f 2723 3439 3434 +f 2875 3433 3431 +f 2736 3435 3432 +f 2947 3488 3500 +f 3464 1360 3497 +f 1900 1924 1901 +f 1736 1718 1750 +f 1955 1943 1956 +f 1671 1735 1751 +f 1696 1698 1692 +f 1800 1864 1801 +f 2063 2056 2060 +f 1737 1717 1736 +f 1751 1697 1695 +f 943 3899 684 +f 3656 3402 3605 +f 1577 1764 1703 +f 3917 1599 3923 +f 1945 82 1944 +f 68 7 248 +f 147 1543 148 +f 1109 1133 1102 +f 1503 1907 1908 +f 1499 1909 1498 +f 452 735 215 +f 1824 3835 3845 +f 1825 2068 1824 +f 1463 1022 1194 +f 841 1009 1011 +f 1568 1955 1534 +f 1926 1927 1923 +f 1910 1502 1939 +f 1939 422 442 +f 309 1940 308 +f 1804 1866 1803 +f 269 1954 56 +f 2065 2060 2056 +f 3812 1758 3835 +f 280 552 1940 +f 1875 1869 1874 +f 1739 1734 1737 +f 1778 1790 1788 +f 310 1915 279 +f 1909 1906 1954 +f 1789 1778 1788 +f 978 980 979 +f 1584 1731 1583 +f 425 311 312 +f 148 115 116 +f 2044 3894 2046 +f 277 1939 551 +f 1943 1945 1944 +f 1461 1463 1464 +f 2253 3056 3055 +f 2981 3489 958 +f 2209 3489 3055 +f 2254 3055 3489 +f 2998 958 3489 +f 2826 2721 2724 +f 3490 2721 2817 +f 2816 3490 2817 +f 2334 2296 2335 +f 2298 2334 2336 +f 2301 2336 2338 +f 2311 2338 2354 +f 2312 2354 2355 +f 2359 2361 2360 +f 2335 2359 2360 +f 2414 2365 2364 +f 2413 2361 2365 +f 2355 2540 2541 +f 2541 2539 2542 +f 2722 2739 2738 +f 3114 2738 3113 +f 3110 3121 3120 +f 3108 3120 3113 +f 3122 3127 3126 +f 3112 3126 3121 +f 3127 1753 3135 +f 3139 2529 2542 +f 3744 3133 3139 +f 3490 2740 2739 +f 3491 2789 3490 +f 228 91 88 +f 245 243 242 +f 248 247 191 +f 2 296 295 +f 145 300 267 +f 327 210 328 +f 329 331 330 +f 250 228 236 +f 239 240 230 +f 373 375 374 +f 178 176 175 +f 1218 1228 1321 +f 3862 1295 3854 +f 808 824 823 +f 3858 1013 1014 +f 3813 1411 1413 +f 2154 2159 2160 +f 3845 1758 1757 +f 306 1922 452 +f 2157 1976 1977 +f 708 2031 1474 +f 1450 1227 1428 +f 1672 1605 1624 +f 1813 1821 1816 +f 1717 1715 1718 +f 176 402 347 +f 1710 3916 3915 +f 1712 1577 1711 +f 1705 1711 1704 +f 971 979 970 +f 822 1094 1102 +f 2909 2793 2792 +f 2810 2795 2793 +f 2799 2249 2800 +f 3662 2910 2799 +f 2769 2801 2795 +f 3177 3178 3179 +f 3178 3180 3179 +f 3181 1393 2800 +f 3181 1632 3182 +f 3182 2244 3183 +f 3183 2243 3180 +f 3492 2790 3491 +f 2808 3491 2816 +f 2239 3572 2240 +f 1149 3571 3570 +f 1150 3567 3571 +f 2202 3566 2015 +f 2921 3565 2923 +f 3568 2133 2928 +f 1777 1759 1792 +f 1201 1183 1184 +f 3561 2195 2194 +f 3553 2770 2768 +f 3927 1687 1692 +f 1516 154 503 +f 3549 2974 2803 +f 3550 2779 2778 +f 2771 3575 3546 +f 3070 3546 3558 +f 3547 2775 2867 +f 1376 1370 1372 +f 2767 3556 2206 +f 2195 3543 2767 +f 2775 3542 2776 +f 3377 3545 2871 +f 3804 3539 2806 +f 2776 3538 2805 +f 2240 3535 2920 +f 2920 3669 3619 +f 3548 2786 2779 +f 1805 1851 1804 +f 3534 2787 2786 +f 2951 3540 3531 +f 2772 3531 3575 +f 2973 3530 3536 +f 2224 3537 3530 +f 1957 320 510 +f 306 304 303 +f 2770 3528 2913 +f 2913 3574 2239 +f 2923 3527 2922 +f 308 431 47 +f 207 132 543 +f 1879 1881 1880 +f 3733 3525 2089 +f 2475 3558 3524 +f 2476 3524 3523 +f 2223 3523 3537 +f 3522 2803 2802 +f 2037 11 1950 +f 1959 450 505 +f 2003 3520 2129 +f 9 334 540 +f 2009 3518 3567 +f 2008 3536 3518 +f 3877 673 3879 +f 3515 2778 2784 +f 2935 3513 2936 +f 111 3570 3511 +f 3510 2935 2938 +f 683 3885 943 +f 3508 2810 2909 +f 736 732 729 +f 1795 1803 1796 +f 3505 2938 2939 +f 3507 2939 2940 +f 2950 3504 2949 +f 2940 3504 3507 +f 3801 3512 2950 +f 2868 3502 2869 +f 2869 3522 2802 +f 1024 1023 1020 +f 3500 2948 2947 +f 551 442 443 +f 2972 3568 2928 +f 2032 3499 2972 +f 216 1924 1923 +f 203 201 200 +f 1828 1847 1837 +f 1958 449 450 +f 272 178 175 +f 2871 3495 1361 +f 3619 3564 2921 +f 2801 3643 3662 +f 2005 3654 2176 +f 960 899 962 +f 3657 3612 3624 +f 3780 3646 3151 +f 3151 3593 2555 +f 2193 3623 2194 +f 3607 3145 3144 +f 3603 2761 3145 +f 3592 3144 3104 +f 2926 3634 3103 +f 3634 3104 3103 +f 3755 3746 3753 +f 566 3758 2005 +f 3488 1864 3500 +f 1602 2079 2078 +f 2868 3611 2922 +f 2922 3610 2923 +f 2923 3618 2921 +f 3670 2918 3614 +f 3619 3614 2920 +f 2921 3670 3619 +f 2920 3586 2240 +f 3613 2915 2918 +f 2917 3622 3641 +f 2916 3641 3642 +f 2239 3652 2913 +f 2911 3652 2757 +f 3643 2911 2910 +f 2797 3662 3591 +f 2797 3598 2750 +f 3622 2763 2765 +f 3608 2764 2745 +f 2194 3648 2221 +f 2221 3649 2222 +f 2756 3609 2755 +f 2750 3609 2747 +f 3669 1817 3827 +f 3763 1691 1699 +f 2515 3590 2548 +f 2548 3593 2550 +f 2513 3632 3616 +f 2513 3621 2515 +f 2509 3620 2289 +f 2510 3633 2509 +f 2289 3639 2283 +f 2283 3617 2286 +f 2240 3587 2239 +f 3659 3624 3626 +f 716 3887 3888 +f 727 3761 1923 +f 2165 2170 2164 +f 3660 3626 3629 +f 3743 3578 3757 +f 2175 769 770 +f 2100 2095 2099 +f 3758 3757 3578 +f 640 3568 1826 +f 1653 3553 1651 +f 1895 3530 746 +f 746 3537 741 +f 1653 3528 3576 +f 3762 1604 1672 +f 2093 2073 2078 +f 959 995 884 +f 962 919 986 +f 1400 1398 1399 +f 1000 1127 1004 +f 956 884 885 +f 1662 3550 1661 +f 2034 3546 1654 +f 3926 3539 3802 +f 3535 766 1817 +f 3572 765 766 +f 334 3571 335 +f 1868 3540 1656 +f 1684 1652 1678 +f 1682 775 1807 +f 1585 3762 1700 +f 3763 1672 1673 +f 2173 490 491 +f 1658 3547 1752 +f 3556 1650 724 +f 1571 2010 1572 +f 1587 3671 2080 +f 2099 2077 2094 +f 787 1999 786 +f 2000 786 1999 +f 3155 3697 3683 +f 3713 3683 3789 +f 2180 3685 3684 +f 3496 3684 3705 +f 1684 3840 1651 +f 1760 3495 3545 +f 2607 3693 2590 +f 2581 3689 2607 +f 2371 3700 3695 +f 2371 3693 2372 +f 2587 3675 2586 +f 2586 3697 339 +f 2497 3687 2503 +f 2502 3687 3700 +f 2494 3690 2495 +f 3690 2472 2495 +f 3688 2468 2472 +f 3701 2469 2468 +f 726 3892 630 +f 581 3518 580 +f 10 3570 334 +f 1837 3510 1849 +f 741 3523 1300 +f 1299 3558 2034 +f 1851 3504 1866 +f 3527 1820 1819 +f 580 3536 1895 +f 1758 3522 3502 +f 1693 3508 1806 +f 3504 1867 1866 +f 1894 3568 3499 +f 2126 3813 3841 +f 3906 3841 3912 +f 2113 3867 2110 +f 2179 3789 3685 +f 624 3904 623 +f 2192 3788 3780 +f 2177 3787 3733 +f 1364 3833 1338 +f 3858 1470 1453 +f 3135 3775 3744 +f 2069 3835 2068 +f 1351 3853 1352 +f 2108 3901 499 +f 2089 3736 3733 +f 3828 1358 866 +f 2001 3783 2187 +f 2187 3719 2091 +f 2130 3752 2004 +f 2004 3749 2001 +f 2014 3779 2201 +f 2201 3756 2130 +f 3167 3759 2969 +f 3168 3720 3167 +f 3159 3764 3160 +f 3160 3765 3081 +f 3730 3158 337 +f 3158 3709 3159 +f 2200 3730 3722 +f 3685 3742 2204 +f 3722 2197 2200 +f 3790 2092 3721 +f 3774 3721 2197 +f 3154 3790 3774 +f 3155 3706 3154 +f 2091 3721 2092 +f 2196 3750 3776 +f 2193 3776 3781 +f 3604 3781 3788 +f 2086 3780 3778 +f 2087 3778 3777 +f 2204 3751 2205 +f 2205 3750 3148 +f 3909 574 692 +f 2124 3777 3760 +f 2208 3760 3782 +f 3711 3140 3137 +f 3785 3138 3140 +f 3745 3139 3138 +f 3771 3136 2322 +f 3712 3137 3136 +f 3775 3131 3133 +f 3767 3132 3131 +f 1813 3838 1814 +f 1293 3856 1344 +f 2184 3748 3732 +f 2181 3732 3734 +f 3765 3079 3081 +f 3768 3080 3079 +f 709 3875 2031 +f 2774 3737 3769 +f 3786 2134 3559 +f 3809 766 765 +f 2968 3766 2959 +f 2969 3784 2968 +f 2958 3737 2961 +f 2132 3766 2960 +f 2321 3771 3748 +f 3860 1449 28 +f 3905 582 710 +f 3886 577 574 +f 3847 1818 3827 +f 705 3887 2121 +f 3816 3907 698 +f 2111 3911 2113 +f 3810 1366 1411 +f 1812 3822 1815 +f 675 3852 674 +f 3496 3851 675 +f 2110 3868 2109 +f 2104 3901 2106 +f 2109 3899 944 +f 3842 703 739 +f 1680 3846 1684 +f 1639 3819 3818 +f 623 3906 697 +f 2139 3866 3865 +f 1808 3844 3837 +f 3820 1819 1820 +f 3872 3900 706 +f 1646 3830 1648 +f 3889 633 577 +f 2139 3875 18 +f 2156 3871 3874 +f 674 3913 3869 +f 2117 3812 2069 +f 1815 3847 3823 +f 3855 1444 1470 +f 697 3912 3816 +f 866 3836 3828 +f 3864 2136 2135 +f 3585 3726 3589 +f 3583 3731 3585 +f 3753 3738 3739 +f 3740 3581 3743 +f 1088 3746 1093 +f 3739 3743 3753 +f 2791 3493 2792 +f 3492 2807 3493 +f 2792 3494 2909 +f 3493 2806 3494 +f 3508 3494 3516 +f 3516 2806 3539 +f 2948 3791 3801 +f 2105 3896 2104 +f 3538 3804 2805 +f 680 3876 683 +f 1891 3910 3891 +f 2905 3801 2950 +f 2900 3799 2905 +f 2901 3807 2877 +f 2734 3806 3794 +f 2877 3806 2878 +f 2820 3794 2872 +f 2818 3792 2827 +f 2823 3792 2826 +f 2822 3798 2821 +f 2819 3800 3798 +f 2817 3795 2816 +f 2809 3795 2815 +f 2808 3803 2807 +f 2805 3803 2804 +f 1702 3923 1599 +f 3922 1797 1802 +f 3915 1706 1709 +f 3918 1692 1698 +f 1657 3880 1879 +f 1890 3895 3910 +f 3772 1674 1675 +f 1689 3772 3773 +f 3926 3538 1688 +f 3516 1689 3773 +f 3917 1703 1764 +f 1598 3928 1770 +f 3880 1876 1879 +f 1691 3925 3927 +f 3925 1688 1687 +f 1117 1118 3930 +f 1066 1322 3930 +f 1243 847 3930 +f 3825 848 3930 +f 1128 1117 3930 +f 1129 1130 3930 +f 841 1011 3930 +f 1230 3863 3930 +f 1242 1243 3930 +f 1322 1229 3930 +f 1064 1065 3930 +f 1003 1128 3930 +f 1229 1230 3930 +f 3863 1285 3930 +f 1285 1288 3930 +f 848 839 3930 +f 847 3825 3930 +f 1118 1129 3930 +f 1065 1066 3930 +f 1087 1086 3930 +f 1008 1002 3930 +f 1011 1008 3930 +f 1002 1003 3930 +f 1076 1069 3930 +f 838 841 3930 +f 839 838 3930 +f 1288 1242 3930 +f 1130 1087 3930 +f 1086 1076 3930 +f 1069 1064 3930 +f 2410 2414 3931 +f 2411 2410 3931 +f 3617 2285 3931 +f 2394 2393 3931 +f 2393 2396 3931 +f 2281 2286 3931 +f 2282 2280 3931 +f 2398 2399 3931 +f 2465 2464 3931 +f 2396 2397 3931 +f 2470 2469 3931 +f 2399 2416 3931 +f 2480 2395 3931 +f 2459 2480 3931 +f 2369 2282 3931 +f 2460 2459 3931 +f 2415 2411 3931 +f 2416 2415 3931 +f 2364 2363 3931 +f 2286 3617 3931 +f 2464 2470 3931 +f 2469 3703 3931 +f 2285 2465 3931 +f 2414 2364 3931 +f 2395 2394 3931 +f 2363 2367 3931 +f 2397 2398 3931 +f 2280 2281 3931 +f 3703 2460 3931 +f 2367 2369 3931 +f 3934 3937 3938 +f 3934 3939 3935 +f 3932 3937 3933 +f 3938 3943 3939 +f 3937 3940 3941 +f 3937 3942 3938 +f 3942 3947 3943 +f 3941 3944 3945 +f 3942 3945 3946 +f 3947 3950 3951 +f 3944 3949 3945 +f 3945 3950 3946 +f 3950 3955 3951 +f 3949 3952 3953 +f 3950 3953 3954 +f 3955 3958 3959 +f 3953 3956 3957 +f 3953 3958 3954 +f 3959 3962 3963 +f 3957 3960 3961 +f 3958 3961 3962 +f 3962 3967 3963 +f 3960 3965 3961 +f 3961 3966 3962 +f 3966 3971 3967 +f 3965 3968 3969 +f 3966 3969 3970 +f 3970 3975 3971 +f 3968 3973 3969 +f 3969 3974 3970 +f 3974 3979 3975 +f 3973 3976 3977 +f 3974 3977 3978 +f 3979 3982 3983 +f 3976 3981 3977 +f 3977 3982 3978 +f 3982 3987 3983 +f 3981 3984 3985 +f 3982 3985 3986 +f 3987 3990 3991 +f 3984 3989 3985 +f 3985 3990 3986 +f 3991 3994 3995 +f 3989 3992 3993 +f 3990 3993 3994 +f 3995 3998 3999 +f 3992 3997 3993 +f 3993 3998 3994 +f 3998 4003 3999 +f 3997 4000 4001 +f 3998 4001 4002 +f 4002 4007 4003 +f 4000 4005 4001 +f 4001 4006 4002 +f 4006 4011 4007 +f 4005 4008 4009 +f 4006 4009 4010 +f 4011 4014 4015 +f 4008 4013 4009 +f 4009 4014 4010 +f 4014 4019 4015 +f 4013 4016 4017 +f 4014 4017 4018 +f 4019 4022 4023 +f 4016 4021 4017 +f 4017 4022 4018 +f 4023 4026 4027 +f 4021 4024 4025 +f 4022 4025 4026 +f 4027 4030 4031 +f 4024 4029 4025 +f 4025 4030 4026 +f 4031 4034 4035 +f 4029 4032 4033 +f 4030 4033 4034 +f 4034 4039 4035 +f 4032 4037 4033 +f 4033 4038 4034 +f 4038 4043 4039 +f 4037 4040 4041 +f 4038 4041 4042 +f 4043 4046 4047 +f 4040 4045 4041 +f 4041 4046 4042 +f 4046 4051 4047 +f 4045 4048 4049 +f 4046 4049 4050 +f 4051 4055 4056 +f 4048 4054 4049 +f 4049 4055 4050 +f 4056 4059 4060 +f 4053 4058 4054 +f 4055 4058 4059 +f 3932 4052 3936 +f 3936 4052 3940 +f 3940 4052 3944 +f 3944 4052 3948 +f 3948 4052 3952 +f 3952 4052 3956 +f 3956 4052 3960 +f 3960 4052 3964 +f 3964 4052 3968 +f 3968 4052 3972 +f 3972 4052 3976 +f 3976 4052 3980 +f 3980 4052 3984 +f 3984 4052 3988 +f 3988 4052 3992 +f 3992 4052 3996 +f 3996 4052 4000 +f 4000 4052 4004 +f 4004 4052 4008 +f 4008 4052 4012 +f 4012 4052 4016 +f 4016 4052 4020 +f 4020 4052 4024 +f 4024 4052 4028 +f 4028 4052 4032 +f 4032 4052 4036 +f 4036 4052 4040 +f 4040 4052 4044 +f 4044 4052 4048 +f 4048 4052 4053 +f 4053 4052 4057 +f 4060 3934 3935 +f 4058 3932 3933 +f 4058 3934 4059 +f 4057 4052 3932 +f 4069 4081 4082 +f 4066 4080 4067 +f 4065 4077 4078 +f 4063 4075 4076 +f 4071 4085 4072 +f 4069 4083 4070 +f 4067 4081 4068 +f 4066 4078 4079 +f 4063 4077 4064 +f 4061 4075 4062 +f 4072 4086 4073 +f 4071 4083 4084 +f 4076 4090 4077 +f 4074 4088 4075 +f 4086 4098 4099 +f 4083 4097 4084 +f 4082 4094 4095 +f 4079 4093 4080 +f 4078 4090 4091 +f 4076 4088 4089 +f 4085 4097 4098 +f 4082 4096 4083 +f 4080 4094 4081 +f 4079 4091 4092 +f 4089 4103 4090 +f 4088 4100 4101 +f 4098 4112 4099 +f 4096 4110 4097 +f 4095 4107 4108 +f 4092 4106 4093 +f 4090 4104 4091 +f 4089 4101 4102 +f 4097 4111 4098 +f 4095 4109 4096 +f 4094 4106 4107 +f 4092 4104 4105 +f 4103 4115 4116 +f 4100 4114 4101 +f 4112 4124 4125 +f 4110 4122 4123 +f 4107 4121 4108 +f 4105 4119 4106 +f 4103 4117 4104 +f 4101 4115 4102 +f 4110 4124 4111 +f 4109 4121 4122 +f 4107 4119 4120 +f 4105 4117 4118 +f 4115 4129 4116 +f 4114 4126 4127 +f 4124 4138 4125 +f 4123 4135 4136 +f 4120 4134 4121 +f 4119 4131 4132 +f 4117 4129 4130 +f 4114 4128 4115 +f 4124 4136 4137 +f 4122 4134 4135 +f 4119 4133 4120 +f 4117 4131 4118 +f 4129 4141 4142 +f 4126 4140 4127 +f 4138 4150 4151 +f 4136 4148 4149 +f 4133 4147 4134 +f 4131 4145 4132 +f 4130 4142 4143 +f 4127 4141 4128 +f 4137 4149 4150 +f 4135 4147 4148 +f 4132 4146 4133 +f 4131 4143 4144 +f 4142 4154 4155 +f 4140 4152 4153 +f 4150 4164 4151 +f 4149 4161 4162 +f 4146 4160 4147 +f 4144 4158 4145 +f 4142 4156 4143 +f 4140 4154 4141 +f 4149 4163 4150 +f 4148 4160 4161 +f 4146 4158 4159 +f 4144 4156 4157 +f 4155 4167 4168 +f 4153 4165 4166 +f 4163 4177 4164 +f 4161 4175 4162 +f 4159 4173 4160 +f 4158 4170 4171 +f 4155 4169 4156 +f 4153 4167 4154 +f 4163 4175 4176 +f 4161 4173 4174 +f 4159 4171 4172 +f 4156 4170 4157 +f 4167 4181 4168 +f 4165 4179 4166 +f 4176 4190 4177 +f 4175 4187 4188 +f 4173 4185 4186 +f 4170 4184 4171 +f 4169 4181 4182 +f 4167 4179 4180 +f 4175 4189 4176 +f 4173 4187 4174 +f 4171 4185 4172 +f 4170 4182 4183 +f 4180 4194 4181 +f 4178 4192 4179 +f 4190 4202 4203 +f 4187 4201 4188 +f 4186 4198 4199 +f 4183 4197 4184 +f 4182 4194 4195 +f 4180 4192 4193 +f 4189 4201 4202 +f 4186 4200 4187 +f 4184 4198 4185 +f 4183 4195 4196 +f 4193 4207 4194 +f 4192 4204 4205 +f 4202 4216 4203 +f 4200 4214 4201 +f 4199 4211 4212 +f 4196 4210 4197 +f 4194 4208 4195 +f 4193 4205 4206 +f 4201 4215 4202 +f 4199 4213 4200 +f 4198 4210 4211 +f 4196 4208 4209 +f 4207 4219 4220 +f 4204 4218 4205 +f 4216 4228 4229 +f 4213 4227 4214 +f 4211 4225 4212 +f 4209 4223 4210 +f 4207 4221 4208 +f 4205 4219 4206 +f 4214 4228 4215 +f 4213 4225 4226 +f 4211 4223 4224 +f 4209 4221 4222 +f 4219 4233 4220 +f 4218 4230 4231 +f 4228 4242 4229 +f 4226 4240 4227 +f 4225 4237 4238 +f 4223 4235 4236 +f 4221 4233 4234 +f 4218 4232 4219 +f 4228 4240 4241 +f 4226 4238 4239 +f 4223 4237 4224 +f 4221 4235 4222 +f 4233 4245 4246 +f 4230 4244 4231 +f 4242 4254 4255 +f 4240 4252 4253 +f 4237 4251 4238 +f 4235 4249 4236 +f 4234 4246 4247 +f 4231 4245 4232 +f 4241 4253 4254 +f 4239 4251 4252 +f 4236 4250 4237 +f 4235 4247 4248 +f 4246 4258 4259 +f 4244 4256 4257 +f 4254 4268 4255 +f 4253 4265 4266 +f 4250 4264 4251 +f 4248 4262 4249 +f 4246 4260 4247 +f 4244 4258 4245 +f 4253 4267 4254 +f 4252 4264 4265 +f 4250 4262 4263 +f 4248 4260 4261 +f 4259 4271 4272 +f 4257 4269 4270 +f 4267 4281 4268 +f 4265 4279 4266 +f 4263 4277 4264 +f 4262 4274 4275 +f 4259 4273 4260 +f 4257 4271 4258 +f 4266 4280 4267 +f 4265 4277 4278 +f 4263 4275 4276 +f 4260 4274 4261 +f 4271 4285 4272 +f 4269 4283 4270 +f 4281 4293 4294 +f 4279 4291 4292 +f 4277 4289 4290 +f 4274 4288 4275 +f 4273 4285 4286 +f 4271 4283 4284 +f 4280 4292 4293 +f 4277 4291 4278 +f 4275 4289 4276 +f 4274 4286 4287 +f 4284 4298 4285 +f 4282 4296 4283 +f 4294 4306 4307 +f 4291 4305 4292 +f 4290 4302 4303 +f 4287 4301 4288 +f 4286 4298 4299 +f 4284 4296 4297 +f 4293 4305 4306 +f 4290 4304 4291 +f 4288 4302 4289 +f 4287 4299 4300 +f 4297 4311 4298 +f 4296 4308 4309 +f 4306 4320 4307 +f 4304 4318 4305 +f 4303 4315 4316 +f 4300 4314 4301 +f 4298 4312 4299 +f 4297 4309 4310 +f 4305 4319 4306 +f 4304 4316 4317 +f 4302 4314 4315 +f 4300 4312 4313 +f 4310 4324 4311 +f 4308 4322 4309 +f 4320 4332 4333 +f 4318 4330 4331 +f 4316 4328 4329 +f 4313 4327 4314 +f 4311 4325 4312 +f 4310 4322 4323 +f 4318 4332 4319 +f 4316 4330 4317 +f 4315 4327 4328 +f 4312 4326 4313 +f 4323 4337 4324 +f 4322 4334 4335 +f 4332 4346 4333 +f 4330 4344 4331 +f 4329 4341 4342 +f 4327 4339 4340 +f 4325 4337 4338 +f 4322 4336 4323 +f 4332 4344 4345 +f 4330 4342 4343 +f 4327 4341 4328 +f 4325 4339 4326 +f 4337 4350 4351 +f 4334 4349 4335 +f 4346 4359 4360 +f 4344 4357 4358 +f 4341 4356 4342 +f 4340 4353 4354 +f 4338 4351 4352 +f 4335 4350 4336 +f 4345 4358 4359 +f 4343 4356 4357 +f 4340 4355 4341 +f 4338 4353 4339 +f 4351 4363 4364 +f 4349 4361 4362 +f 4359 4373 4360 +f 4358 4370 4371 +f 4355 4369 4356 +f 4354 4366 4367 +f 4351 4365 4352 +f 4349 4363 4350 +f 4358 4372 4359 +f 4357 4369 4370 +f 4355 4367 4368 +f 4352 4366 4353 +f 4364 4376 4377 +f 4362 4374 4375 +f 4373 4385 4386 +f 4370 4384 4371 +f 4368 4382 4369 +f 4367 4379 4380 +f 4364 4378 4365 +f 4362 4376 4363 +f 4372 4384 4385 +f 4370 4382 4383 +f 4368 4380 4381 +f 4365 4379 4366 +f 4376 4390 4377 +f 4374 4388 4375 +f 4385 4399 4386 +f 4384 4396 4397 +f 4382 4394 4395 +f 4379 4393 4380 +f 4378 4390 4391 +f 4376 4388 4389 +f 4384 4398 4385 +f 4382 4396 4383 +f 4380 4394 4381 +f 4379 4391 4392 +f 4389 4403 4390 +f 4387 4401 4388 +f 4399 4411 4412 +f 4396 4410 4397 +f 4395 4407 4408 +f 4393 4405 4406 +f 4391 4403 4404 +f 4389 4401 4402 +f 4398 4410 4411 +f 4395 4409 4396 +f 4393 4407 4394 +f 4391 4405 4392 +f 4402 4416 4403 +f 4401 4413 4414 +f 4411 4425 4412 +f 4409 4423 4410 +f 4408 4420 4421 +f 4406 4418 4419 +f 4403 4417 4404 +f 4402 4414 4415 +f 4410 4424 4411 +f 4408 4422 4409 +f 4407 4419 4420 +f 4404 4418 4405 +f 4416 4428 4429 +f 4413 4427 4414 +f 4425 4437 4438 +f 4423 4435 4436 +f 4421 4433 4434 +f 4418 4432 4419 +f 4416 4430 4417 +f 4415 4427 4428 +f 4423 4437 4424 +f 4421 4435 4422 +f 4420 4432 4433 +f 4418 4430 4431 +f 4428 4442 4429 +f 4426 4440 4427 +f 4437 4451 4438 +f 4435 4449 4436 +f 4434 4446 4447 +f 4432 4444 4445 +f 4430 4442 4443 +f 4427 4441 4428 +f 4437 4449 4450 +f 4435 4447 4448 +f 4432 4446 4433 +f 4430 4444 4431 +f 4442 4454 4455 +f 4439 4453 4440 +f 4451 4463 4464 +f 4449 4461 4462 +f 4446 4460 4447 +f 4444 4458 4445 +f 4443 4455 4456 +f 4440 4454 4441 +f 4450 4462 4463 +f 4447 4461 4448 +f 4445 4459 4446 +f 4444 4456 4457 +f 4455 4467 4468 +f 4453 4465 4466 +f 4463 4477 4464 +f 4462 4474 4475 +f 4459 4473 4460 +f 4457 4471 4458 +f 4455 4469 4456 +f 4453 4467 4454 +f 4462 4476 4463 +f 4461 4473 4474 +f 4459 4471 4472 +f 4457 4469 4470 +f 4347 4073 4086 +f 4347 4086 4099 +f 4347 4099 4112 +f 4347 4112 4125 +f 4347 4125 4138 +f 4347 4138 4151 +f 4347 4151 4164 +f 4347 4164 4177 +f 4347 4177 4190 +f 4347 4190 4203 +f 4347 4203 4216 +f 4347 4216 4229 +f 4347 4229 4242 +f 4347 4242 4255 +f 4347 4255 4268 +f 4347 4268 4281 +f 4347 4281 4294 +f 4347 4294 4307 +f 4347 4307 4320 +f 4347 4320 4333 +f 4347 4333 4346 +f 4347 4346 4360 +f 4347 4360 4373 +f 4347 4373 4386 +f 4347 4386 4399 +f 4347 4399 4412 +f 4347 4412 4425 +f 4347 4425 4438 +f 4347 4438 4451 +f 4347 4451 4464 +f 4347 4464 4477 +f 4468 4063 4064 +f 4466 4061 4062 +f 4477 4072 4073 +f 4474 4071 4475 +f 4472 4069 4473 +f 4471 4066 4067 +f 4468 4065 4469 +f 4466 4063 4467 +f 4347 4477 4073 +f 4476 4071 4072 +f 4474 4069 4070 +f 4472 4067 4068 +f 4469 4066 4470 +f 3935 4465 4060 +f 4465 4056 4060 +f 4452 4051 4056 +f 4439 4047 4051 +f 4047 4413 4043 +f 4043 4400 4039 +f 4039 4387 4035 +f 4387 4031 4035 +f 4031 4361 4027 +f 4361 4023 4027 +f 4348 4019 4023 +f 4334 4015 4019 +f 4015 4308 4011 +f 4011 4295 4007 +f 4007 4282 4003 +f 4282 3999 4003 +f 3999 4256 3995 +f 4256 3991 3995 +f 4243 3987 3991 +f 4230 3983 3987 +f 3983 4204 3979 +f 3979 4191 3975 +f 3975 4178 3971 +f 4178 3967 3971 +f 3967 4152 3963 +f 4152 3959 3963 +f 4139 3955 3959 +f 4126 3951 3955 +f 3951 4100 3947 +f 3947 4087 3943 +f 3943 4074 3939 +f 4074 3935 3939 +f 4480 4483 4484 +f 4480 4485 4481 +f 4479 4482 4483 +f 4484 4489 4485 +f 4482 4487 4483 +f 4483 4488 4484 +f 4488 4493 4489 +f 4487 4490 4491 +f 4488 4491 4492 +f 4493 4496 4497 +f 4490 4495 4491 +f 4491 4496 4492 +f 4496 4501 4497 +f 4495 4498 4499 +f 4496 4499 4500 +f 4501 4504 4505 +f 4498 4503 4499 +f 4499 4504 4500 +f 4505 4508 4509 +f 4503 4506 4507 +f 4504 4507 4508 +f 4509 4512 4513 +f 4506 4511 4507 +f 4507 4512 4508 +f 4513 4516 4517 +f 4511 4514 4515 +f 4512 4515 4516 +f 4516 4521 4517 +f 4514 4519 4515 +f 4515 4520 4516 +f 4520 4525 4521 +f 4518 4523 4519 +f 4520 4523 4524 +f 4525 4528 4529 +f 4522 4527 4523 +f 4523 4528 4524 +f 4528 4533 4529 +f 4527 4530 4531 +f 4528 4531 4532 +f 4533 4536 4537 +f 4530 4535 4531 +f 4531 4536 4532 +f 4537 4540 4541 +f 4534 4539 4535 +f 4536 4539 4540 +f 4541 4544 4545 +f 4539 4542 4543 +f 4539 4544 4540 +f 4544 4549 4545 +f 4542 4547 4543 +f 4544 4547 4548 +f 4548 4553 4549 +f 4547 4550 4551 +f 4547 4552 4548 +f 4552 4557 4553 +f 4551 4554 4555 +f 4552 4555 4556 +f 4557 4560 4561 +f 4554 4559 4555 +f 4555 4560 4556 +f 4560 4565 4561 +f 4559 4562 4563 +f 4560 4563 4564 +f 4565 4568 4569 +f 4562 4567 4563 +f 4563 4568 4564 +f 4569 4572 4573 +f 4567 4570 4571 +f 4568 4571 4572 +f 4572 4577 4573 +f 4570 4575 4571 +f 4571 4576 4572 +f 4576 4581 4577 +f 4575 4578 4579 +f 4576 4579 4580 +f 4580 4585 4581 +f 4578 4583 4579 +f 4579 4584 4580 +f 4584 4589 4585 +f 4583 4586 4587 +f 4584 4587 4588 +f 4589 4592 4593 +f 4586 4591 4587 +f 4587 4592 4588 +f 4592 4597 4593 +f 4591 4594 4595 +f 4592 4595 4596 +f 4597 4601 4602 +f 4594 4600 4595 +f 4595 4601 4596 +f 4602 4605 4606 +f 4600 4603 4604 +f 4601 4604 4605 +f 4478 4598 4482 +f 4482 4598 4486 +f 4486 4598 4490 +f 4490 4598 4494 +f 4494 4598 4498 +f 4498 4598 4502 +f 4502 4598 4506 +f 4506 4598 4510 +f 4510 4598 4514 +f 4514 4598 4518 +f 4518 4598 4522 +f 4522 4598 4526 +f 4526 4598 4530 +f 4530 4598 4534 +f 4534 4598 4538 +f 4538 4598 4542 +f 4542 4598 4546 +f 4546 4598 4550 +f 4550 4598 4554 +f 4554 4598 4558 +f 4558 4598 4562 +f 4562 4598 4566 +f 4566 4598 4570 +f 4570 4598 4574 +f 4574 4598 4578 +f 4578 4598 4582 +f 4582 4598 4586 +f 4586 4598 4590 +f 4590 4598 4594 +f 4594 4598 4599 +f 4599 4598 4603 +f 4606 4480 4481 +f 4603 4479 4604 +f 4604 4480 4605 +f 4603 4598 4478 +f 4615 4627 4628 +f 4612 4626 4613 +f 4611 4623 4624 +f 4609 4621 4622 +f 4618 4630 4631 +f 4615 4629 4616 +f 4613 4627 4614 +f 4612 4624 4625 +f 4609 4623 4610 +f 4607 4621 4608 +f 4619 4631 4632 +f 4617 4629 4630 +f 4622 4636 4623 +f 4620 4634 4621 +f 4632 4644 4645 +f 4629 4643 4630 +f 4628 4640 4641 +f 4626 4638 4639 +f 4624 4636 4637 +f 4622 4634 4635 +f 4631 4643 4644 +f 4628 4642 4629 +f 4626 4640 4627 +f 4624 4638 4625 +f 4635 4649 4636 +f 4634 4646 4647 +f 4644 4658 4645 +f 4642 4656 4643 +f 4641 4653 4654 +f 4639 4651 4652 +f 4636 4650 4637 +f 4635 4647 4648 +f 4643 4657 4644 +f 4642 4654 4655 +f 4640 4652 4653 +f 4637 4651 4638 +f 4648 4662 4649 +f 4646 4660 4647 +f 4658 4670 4671 +f 4656 4668 4669 +f 4653 4667 4654 +f 4651 4665 4652 +f 4649 4663 4650 +f 4648 4660 4661 +f 4656 4670 4657 +f 4654 4668 4655 +f 4653 4665 4666 +f 4651 4663 4664 +f 4661 4675 4662 +f 4660 4672 4673 +f 4670 4684 4671 +f 4668 4682 4669 +f 4667 4679 4680 +f 4665 4677 4678 +f 4663 4675 4676 +f 4661 4673 4674 +f 4670 4682 4683 +f 4667 4681 4668 +f 4665 4679 4666 +f 4663 4677 4664 +f 4675 4687 4688 +f 4672 4686 4673 +f 4684 4696 4697 +f 4682 4694 4695 +f 4679 4693 4680 +f 4678 4690 4691 +f 4676 4688 4689 +f 4673 4687 4674 +f 4683 4695 4696 +f 4681 4693 4694 +f 4678 4692 4679 +f 4676 4690 4677 +f 4688 4700 4701 +f 4686 4698 4699 +f 4696 4710 4697 +f 4695 4707 4708 +f 4692 4706 4693 +f 4691 4703 4704 +f 4688 4702 4689 +f 4686 4700 4687 +f 4695 4709 4696 +f 4694 4706 4707 +f 4692 4704 4705 +f 4689 4703 4690 +f 4701 4713 4714 +f 4699 4711 4712 +f 4710 4722 4723 +f 4707 4721 4708 +f 4705 4719 4706 +f 4704 4716 4717 +f 4701 4715 4702 +f 4699 4713 4700 +f 4709 4721 4722 +f 4707 4719 4720 +f 4705 4717 4718 +f 4702 4716 4703 +f 4713 4727 4714 +f 4711 4725 4712 +f 4723 4735 4736 +f 4721 4733 4734 +f 4719 4731 4732 +f 4716 4730 4717 +f 4715 4727 4728 +f 4713 4725 4726 +f 4721 4735 4722 +f 4719 4733 4720 +f 4717 4731 4718 +f 4716 4728 4729 +f 4726 4740 4727 +f 4724 4738 4725 +f 4736 4748 4749 +f 4733 4747 4734 +f 4732 4744 4745 +f 4730 4742 4743 +f 4728 4740 4741 +f 4726 4738 4739 +f 4735 4747 4748 +f 4732 4746 4733 +f 4730 4744 4731 +f 4728 4742 4729 +f 4739 4753 4740 +f 4738 4750 4751 +f 4748 4762 4749 +f 4746 4760 4747 +f 4745 4757 4758 +f 4743 4755 4756 +f 4740 4754 4741 +f 4739 4751 4752 +f 4747 4761 4748 +f 4745 4759 4746 +f 4744 4756 4757 +f 4741 4755 4742 +f 4753 4765 4766 +f 4750 4764 4751 +f 4762 4774 4775 +f 4759 4773 4760 +f 4758 4770 4771 +f 4755 4769 4756 +f 4753 4767 4754 +f 4752 4764 4765 +f 4760 4774 4761 +f 4758 4772 4759 +f 4757 4769 4770 +f 4755 4767 4768 +f 4765 4779 4766 +f 4764 4776 4777 +f 4774 4788 4775 +f 4772 4786 4773 +f 4771 4783 4784 +f 4769 4781 4782 +f 4767 4779 4780 +f 4765 4777 4778 +f 4774 4786 4787 +f 4771 4785 4772 +f 4769 4783 4770 +f 4767 4781 4768 +f 4779 4791 4792 +f 4776 4790 4777 +f 4788 4800 4801 +f 4786 4798 4799 +f 4783 4797 4784 +f 4782 4794 4795 +f 4780 4792 4793 +f 4777 4791 4778 +f 4787 4799 4800 +f 4785 4797 4798 +f 4782 4796 4783 +f 4780 4794 4781 +f 4792 4804 4805 +f 4790 4802 4803 +f 4800 4814 4801 +f 4799 4811 4812 +f 4796 4810 4797 +f 4795 4807 4808 +f 4792 4806 4793 +f 4790 4804 4791 +f 4799 4813 4800 +f 4798 4810 4811 +f 4796 4808 4809 +f 4793 4807 4794 +f 4805 4817 4818 +f 4803 4815 4816 +f 4814 4826 4827 +f 4811 4825 4812 +f 4809 4823 4810 +f 4808 4820 4821 +f 4805 4819 4806 +f 4803 4817 4804 +f 4813 4825 4826 +f 4811 4823 4824 +f 4809 4821 4822 +f 4806 4820 4807 +f 4817 4831 4818 +f 4815 4829 4816 +f 4826 4840 4827 +f 4825 4837 4838 +f 4823 4835 4836 +f 4820 4834 4821 +f 4819 4831 4832 +f 4817 4829 4830 +f 4825 4839 4826 +f 4823 4837 4824 +f 4821 4835 4822 +f 4820 4832 4833 +f 4830 4844 4831 +f 4828 4842 4829 +f 4840 4852 4853 +f 4837 4851 4838 +f 4836 4848 4849 +f 4834 4846 4847 +f 4832 4844 4845 +f 4830 4842 4843 +f 4839 4851 4852 +f 4836 4850 4837 +f 4834 4848 4835 +f 4832 4846 4833 +f 4843 4857 4844 +f 4842 4854 4855 +f 4852 4866 4853 +f 4850 4864 4851 +f 4849 4861 4862 +f 4847 4859 4860 +f 4844 4858 4845 +f 4843 4855 4856 +f 4851 4865 4852 +f 4849 4863 4850 +f 4848 4860 4861 +f 4845 4859 4846 +f 4857 4869 4870 +f 4855 4867 4868 +f 4866 4878 4879 +f 4864 4876 4877 +f 4862 4874 4875 +f 4859 4873 4860 +f 4857 4871 4858 +f 4856 4868 4869 +f 4864 4878 4865 +f 4862 4876 4863 +f 4861 4873 4874 +f 4859 4871 4872 +f 4869 4883 4870 +f 4868 4880 4881 +f 4878 4892 4879 +f 4877 4889 4890 +f 4874 4888 4875 +f 4873 4885 4886 +f 4871 4883 4884 +f 4868 4882 4869 +f 4878 4890 4891 +f 4876 4888 4889 +f 4873 4887 4874 +f 4871 4885 4872 +f 4883 4896 4897 +f 4880 4895 4881 +f 4892 4905 4906 +f 4890 4903 4904 +f 4887 4902 4888 +f 4885 4900 4886 +f 4884 4897 4898 +f 4881 4896 4882 +f 4891 4904 4905 +f 4889 4902 4903 +f 4886 4901 4887 +f 4885 4898 4899 +f 4897 4909 4910 +f 4895 4907 4908 +f 4905 4919 4906 +f 4904 4916 4917 +f 4901 4915 4902 +f 4899 4913 4900 +f 4897 4911 4898 +f 4895 4909 4896 +f 4904 4918 4905 +f 4903 4915 4916 +f 4901 4913 4914 +f 4899 4911 4912 +f 4910 4922 4923 +f 4908 4920 4921 +f 4919 4931 4932 +f 4916 4930 4917 +f 4914 4928 4915 +f 4913 4925 4926 +f 4910 4924 4911 +f 4908 4922 4909 +f 4918 4930 4931 +f 4916 4928 4929 +f 4914 4926 4927 +f 4911 4925 4912 +f 4922 4936 4923 +f 4920 4934 4921 +f 4931 4945 4932 +f 4930 4942 4943 +f 4928 4940 4941 +f 4925 4939 4926 +f 4924 4936 4937 +f 4922 4934 4935 +f 4930 4944 4931 +f 4928 4942 4929 +f 4926 4940 4927 +f 4925 4937 4938 +f 4935 4949 4936 +f 4933 4947 4934 +f 4945 4957 4958 +f 4942 4956 4943 +f 4941 4953 4954 +f 4938 4952 4939 +f 4937 4949 4950 +f 4935 4947 4948 +f 4944 4956 4957 +f 4941 4955 4942 +f 4939 4953 4940 +f 4938 4950 4951 +f 4948 4962 4949 +f 4947 4959 4960 +f 4957 4971 4958 +f 4955 4969 4956 +f 4954 4966 4967 +f 4951 4965 4952 +f 4949 4963 4950 +f 4948 4960 4961 +f 4956 4970 4957 +f 4954 4968 4955 +f 4953 4965 4966 +f 4951 4963 4964 +f 4962 4974 4975 +f 4959 4973 4960 +f 4971 4983 4984 +f 4968 4982 4969 +f 4966 4980 4967 +f 4964 4978 4965 +f 4962 4976 4963 +f 4960 4974 4961 +f 4969 4983 4970 +f 4967 4981 4968 +f 4966 4978 4979 +f 4964 4976 4977 +f 4975 4987 4988 +f 4973 4985 4986 +f 4983 4997 4984 +f 4981 4995 4982 +f 4979 4993 4980 +f 4978 4990 4991 +f 4976 4988 4989 +f 4973 4987 4974 +f 4983 4995 4996 +f 4981 4993 4994 +f 4978 4992 4979 +f 4976 4990 4977 +f 4988 5000 5001 +f 4985 4999 4986 +f 4997 5009 5010 +f 4995 5007 5008 +f 4992 5006 4993 +f 4991 5003 5004 +f 4989 5001 5002 +f 4986 5000 4987 +f 4996 5008 5009 +f 4994 5006 5007 +f 4991 5005 4992 +f 4989 5003 4990 +f 5001 5013 5014 +f 4999 5011 5012 +f 5009 5023 5010 +f 5008 5020 5021 +f 5005 5019 5006 +f 5004 5016 5017 +f 5001 5015 5002 +f 4999 5013 5000 +f 5008 5022 5009 +f 5007 5019 5020 +f 5005 5017 5018 +f 5002 5016 5003 +f 4893 4619 4632 +f 4893 4632 4645 +f 4893 4645 4658 +f 4893 4658 4671 +f 4893 4671 4684 +f 4893 4684 4697 +f 4893 4697 4710 +f 4893 4710 4723 +f 4893 4723 4736 +f 4893 4736 4749 +f 4893 4749 4762 +f 4893 4762 4775 +f 4893 4775 4788 +f 4893 4788 4801 +f 4893 4801 4814 +f 4893 4814 4827 +f 4893 4827 4840 +f 4893 4840 4853 +f 4893 4853 4866 +f 4893 4866 4879 +f 4893 4879 4892 +f 4893 4892 4906 +f 4893 4906 4919 +f 4893 4919 4932 +f 4893 4932 4945 +f 4893 4945 4958 +f 4893 4958 4971 +f 4893 4971 4984 +f 4893 4984 4997 +f 4893 4997 5010 +f 4893 5010 5023 +f 5014 4609 4610 +f 5012 4607 4608 +f 5022 4619 5023 +f 5020 4617 5021 +f 5018 4615 5019 +f 5017 4612 4613 +f 5014 4611 5015 +f 5012 4609 5013 +f 4893 5023 4619 +f 5021 4618 5022 +f 5020 4615 4616 +f 5018 4613 4614 +f 5015 4612 5016 +f 4481 5011 4606 +f 5011 4602 4606 +f 4998 4597 4602 +f 4985 4593 4597 +f 4593 4959 4589 +f 4589 4946 4585 +f 4585 4933 4581 +f 4933 4577 4581 +f 4577 4907 4573 +f 4907 4569 4573 +f 4894 4565 4569 +f 4880 4561 4565 +f 4561 4854 4557 +f 4557 4841 4553 +f 4553 4828 4549 +f 4828 4545 4549 +f 4545 4802 4541 +f 4802 4537 4541 +f 4789 4533 4537 +f 4776 4529 4533 +f 4529 4750 4525 +f 4525 4737 4521 +f 4521 4724 4517 +f 4724 4513 4517 +f 4513 4698 4509 +f 4698 4505 4509 +f 4685 4501 4505 +f 4672 4497 4501 +f 4497 4646 4493 +f 4493 4633 4489 +f 4489 4620 4485 +f 4620 4481 4485 +f 4 3 2 +f 8 7 6 +f 13 16 15 +f 17 28 19 +f 32 31 30 +f 36 35 34 +f 37 40 39 +f 21 22 23 +f 25 26 27 +f 41 44 43 +f 48 47 46 +f 52 51 50 +f 53 56 55 +f 60 59 58 +f 29 30 62 +f 66 65 64 +f 67 5 6 +f 72 71 70 +f 76 75 74 +f 77 80 79 +f 81 84 83 +f 59 87 86 +f 88 91 90 +f 96 95 94 +f 100 99 98 +f 101 104 103 +f 106 105 34 +f 108 116 115 +f 117 119 36 +f 124 127 126 +f 131 130 129 +f 132 102 134 +f 142 141 140 +f 148 106 60 +f 144 143 127 +f 149 152 151 +f 156 155 154 +f 159 150 158 +f 116 108 164 +f 171 170 169 +f 174 126 173 +f 179 182 181 +f 186 189 188 +f 194 197 196 +f 199 142 139 +f 206 209 208 +f 213 212 211 +f 202 215 214 +f 96 93 216 +f 92 238 43 +f 97 184 246 +f 250 249 229 +f 252 254 58 +f 258 257 256 +f 260 91 229 +f 110 111 112 +f 114 264 263 +f 265 268 267 +f 56 53 270 +f 274 273 249 +f 185 183 63 +f 280 279 278 +f 285 284 283 +f 288 219 211 +f 141 142 92 +f 289 290 175 +f 148 116 105 +f 312 311 170 +f 238 262 42 +f 318 163 160 +f 310 309 308 +f 241 239 325 +f 160 230 240 +f 47 48 307 +f 108 109 315 +f 345 85 86 +f 348 351 350 +f 356 359 358 +f 355 354 353 +f 363 31 32 +f 364 252 253 +f 366 125 368 +f 183 372 371 +f 163 162 161 +f 209 226 101 +f 378 377 165 +f 379 295 381 +f 383 382 3 +f 284 285 386 +f 387 127 389 +f 391 259 229 +f 73 281 397 +f 405 408 407 +f 203 218 411 +f 414 121 413 +f 1 356 357 +f 277 276 131 +f 254 344 57 +f 358 384 415 +f 417 416 386 +f 401 400 192 +f 419 389 127 +f 421 181 182 +f 103 301 302 +f 428 367 368 +f 380 390 359 +f 62 204 266 +f 140 141 431 +f 357 358 351 +f 356 1 379 +f 415 392 403 +f 437 428 436 +f 438 441 440 +f 188 451 450 +f 265 455 181 +f 224 185 64 +f 237 212 213 +f 275 131 128 +f 281 282 460 +f 50 462 79 +f 73 74 282 +f 468 467 466 +f 390 355 352 +f 482 485 484 +f 489 488 487 +f 493 496 495 +f 472 471 470 +f 502 501 500 +f 220 221 222 +f 512 419 143 +f 518 517 511 +f 513 239 230 +f 205 30 31 +f 189 370 451 +f 163 318 532 +f 533 224 225 +f 446 448 447 +f 335 541 540 +f 544 512 546 +f 329 519 291 +f 199 534 262 +f 385 386 416 +f 532 190 191 +f 363 117 118 +f 578 581 580 +f 573 572 571 +f 561 563 562 +f 241 260 259 +f 590 593 592 +f 545 546 595 +f 503 154 155 +f 606 625 624 +f 478 481 480 +f 646 649 648 +f 590 591 689 +f 564 565 651 +f 728 246 184 +f 714 724 716 +f 692 574 575 +f 541 335 581 +f 346 68 248 +f 161 231 230 +f 128 129 94 +f 698 705 704 +f 574 577 576 +f 290 289 401 +f 630 631 725 +f 733 736 735 +f 755 466 496 +f 759 480 481 +f 757 763 762 +f 764 496 466 +f 768 767 3808 +f 759 760 488 +f 492 474 475 +f 474 770 769 +f 773 468 465 +f 771 774 486 +f 484 485 775 +f 774 776 489 +f 495 496 764 +f 495 757 761 +f 137 397 784 +f 325 239 797 +f 165 519 51 +f 369 32 29 +f 730 731 568 +f 90 302 301 +f 243 118 516 +f 800 734 806 +f 817 815 808 +f 816 808 823 +f 306 303 447 +f 815 810 809 +f 829 830 828 +f 726 725 501 +f 274 427 424 +f 879 882 881 +f 884 883 879 +f 219 218 217 +f 906 905 904 +f 455 204 205 +f 898 882 830 +f 903 900 880 +f 377 291 519 +f 923 949 948 +f 946 947 951 +f 3519 740 739 +f 900 899 886 +f 225 64 65 +f 182 445 442 +f 809 952 947 +f 954 960 962 +f 927 950 965 +f 885 879 880 +f 925 927 966 +f 343 342 341 +f 965 964 971 +f 968 971 970 +f 972 968 969 +f 963 961 981 +f 336 337 338 +f 992 993 827 +f 810 815 996 +f 1007 1001 1002 +f 1012 826 827 +f 1011 1009 1007 +f 294 293 292 +f 907 908 920 +f 1017 579 1019 +f 1020 1023 1022 +f 1035 1024 1020 +f 1061 1060 1047 +f 1063 1061 1046 +f 1044 1020 1021 +f 1102 1094 1097 +f 1116 1126 1118 +f 1016 1015 1014 +f 881 897 904 +f 816 1116 1127 +f 1094 948 949 +f 514 342 167 +f 146 145 81 +f 1133 1135 1130 +f 1102 1133 1126 +f 822 1126 1116 +f 1145 1143 1148 +f 1076 1144 1151 +f 1148 1143 1086 +f 1109 1097 1114 +f 1154 1153 1156 +f 1153 925 967 +f 3464 3497 463 +f 1144 1147 1152 +f 1156 967 1163 +f 1164 1162 1169 +f 1145 1171 1176 +f 1114 1115 1154 +f 1183 1155 1164 +f 1184 1183 1177 +f 1069 1151 1062 +f 1023 1191 1194 +f 1162 1163 1170 +f 1195 1184 1185 +f 1183 1196 1176 +f 1201 1063 1152 +f 1061 1063 1201 +f 3825 847 843 +f 1203 1202 1195 +f 1202 1201 1184 +f 1218 1060 1203 +f 1060 1061 1202 +f 1225 1218 1217 +f 671 695 694 +f 1219 1217 1024 +f 1217 1203 1034 +f 1226 1014 1015 +f 1243 1242 1234 +f 1231 1230 1229 +f 847 1243 1233 +f 843 1233 1244 +f 1233 1234 1245 +f 1923 3761 233 +f 2100 2108 499 +f 3914 3864 2135 +f 61 62 323 +f 210 211 217 +f 1299 1310 1309 +f 3863 1230 1231 +f 1066 1047 1321 +f 1322 1321 1228 +f 1060 1218 1321 +f 1325 1324 1323 +f 1244 1245 1332 +f 1290 1234 1242 +f 1337 1330 1339 +f 1330 1332 1340 +f 1341 1332 1245 +f 1342 1340 1332 +f 1343 1342 1341 +f 1344 1341 1294 +f 3857 3856 1345 +f 1347 1348 1342 +f 3856 3854 1295 +f 1349 1350 1348 +f 3861 1349 1347 +f 3853 1347 1343 +f 906 898 829 +f 905 906 1353 +f 865 1356 1355 +f 1355 1353 829 +f 1357 1355 825 +f 1356 1354 1353 +f 3834 1337 1338 +f 866 1358 1356 +f 1358 1359 1354 +f 3828 878 1337 +f 838 1362 1012 +f 1363 1364 1338 +f 1368 1363 1339 +f 1348 1368 1340 +f 1371 1369 3824 +f 524 525 526 +f 528 529 530 +f 1372 1370 1369 +f 535 536 537 +f 1367 1368 1348 +f 1370 1354 1359 +f 1369 1359 3833 +f 1373 910 903 +f 555 556 557 +f 1374 909 910 +f 1373 904 905 +f 1374 1373 1375 +f 1375 905 1354 +f 1378 920 908 +f 376 373 651 +f 1388 928 973 +f 586 587 588 +f 1390 1389 1388 +f 1391 1388 969 +f 597 598 599 +f 600 601 602 +f 1392 1391 970 +f 608 609 610 +f 612 524 523 +f 614 615 616 +f 617 618 25 +f 620 621 622 +f 1397 1390 1391 +f 1398 1397 1392 +f 1400 987 920 +f 1402 1403 1165 +f 636 637 638 +f 930 1404 1402 +f 641 642 643 +f 929 1402 1169 +f 1404 1405 1403 +f 1411 1366 1365 +f 1412 1406 1415 +f 652 653 654 +f 609 656 657 +f 659 660 661 +f 558 663 586 +f 665 666 667 +f 1413 1411 1406 +f 1418 1416 3810 +f 1417 1372 1371 +f 1416 1371 3829 +f 1419 1417 1416 +f 1386 909 1374 +f 677 678 679 +f 1385 1386 1420 +f 1420 1374 1376 +f 685 686 687 +f 1421 1420 1422 +f 528 690 691 +f 1422 1376 1372 +f 1018 1019 747 +f 699 700 701 +f 1424 578 579 +f 3663 1597 1767 +f 700 699 711 +f 1093 3746 3754 +f 717 718 530 +f 721 722 723 +f 704 1650 3543 +f 19 1429 1426 +f 1429 1428 1427 +f 1658 1659 3542 +f 1439 1437 1434 +f 1437 1436 1435 +f 1426 1427 1433 +f 1442 1431 1432 +f 742 743 744 +f 1432 1433 1441 +f 751 752 753 +f 1438 1434 1403 +f 1446 1445 1444 +f 1447 1448 1446 +f 3860 1447 1443 +f 1415 1367 1445 +f 1414 1415 1446 +f 2173 1683 469 +f 777 778 779 +f 780 781 782 +f 1676 1693 1806 +f 3859 1451 1349 +f 789 790 791 +f 745 792 793 +f 652 794 795 +f 1455 1458 1457 +f 1454 1367 1350 +f 610 691 802 +f 3831 3816 698 +f 1352 1044 1045 +f 1015 1016 1459 +f 811 812 813 +f 2118 3815 3817 +f 819 820 821 +f 1466 1463 1194 +f 1467 1468 1465 +f 1182 1165 1468 +f 832 812 833 +f 835 836 837 +f 1467 1466 1190 +f 1469 1470 1444 +f 840 700 712 +f 1453 1470 1469 +f 599 844 845 +f 1226 1450 3849 +f 851 852 853 +f 855 744 856 +f 858 859 860 +f 861 862 863 +f 1014 1226 3855 +f 867 676 868 +f 870 871 872 +f 874 875 876 +f 1310 1323 1471 +f 1476 1433 1427 +f 1461 1476 1475 +f 887 888 889 +f 788 791 892 +f 894 895 896 +f 1460 1475 1227 +f 901 902 524 +f 1465 1478 1477 +f 1865 3503 3500 +f 911 912 913 +f 916 917 918 +f 1850 3505 3507 +f 921 922 895 +f 1479 1435 1436 +f 926 664 667 +f 1481 562 563 +f 269 1483 84 +f 931 932 933 +f 934 935 614 +f 936 685 688 +f 938 659 662 +f 1484 270 122 +f 941 942 835 +f 320 321 509 +f 1849 3510 3505 +f 84 1483 1484 +f 1487 1490 1488 +f 1757 1758 3502 +f 365 1492 1491 +f 461 79 80 +f 117 363 362 +f 1494 540 541 +f 926 601 957 +f 1477 1441 1433 +f 1709 1588 1585 +f 119 117 1496 +f 271 1497 504 +f 511 517 189 +f 345 1496 1492 +f 57 344 299 +f 1501 1499 268 +f 267 268 1499 +f 974 975 976 +f 1678 1652 1693 +f 3846 1682 1807 +f 557 982 663 +f 983 941 984 +f 1443 1444 3849 +f 421 1500 268 +f 989 990 991 +f 1490 1487 418 +f 279 280 309 +f 997 868 676 +f 998 26 999 +f 1504 418 38 +f 1506 1508 1507 +f 360 361 1508 +f 1506 1486 207 +f 939 1005 1006 +f 270 1484 1483 +f 66 63 546 +f 1010 742 793 +f 367 428 437 +f 244 31 363 +f 1670 3532 3534 +f 209 206 1510 +f 388 389 426 +f 427 274 250 +f 161 520 521 +f 100 246 45 +f 1025 1026 608 +f 1029 1030 1031 +f 939 662 1033 +f 41 42 594 +f 1036 780 783 +f 702 701 1038 +f 1040 1041 1042 +f 362 32 369 +f 187 1520 477 +f 70 1487 539 +f 1049 600 603 +f 613 867 869 +f 860 1050 1051 +f 1005 1052 1053 +f 753 1055 1056 +f 1057 1058 1059 +f 293 288 1522 +f 288 212 1521 +f 292 1522 1523 +f 331 1507 1508 +f 306 452 453 +f 100 44 41 +f 462 1524 78 +f 330 331 1524 +f 635 1067 1068 +f 1485 1527 1526 +f 206 1485 1528 +f 1070 1071 1072 +f 942 941 1073 +f 916 933 1075 +f 440 1529 1530 +f 157 158 1514 +f 1529 162 5 +f 371 595 546 +f 790 586 663 +f 1077 858 857 +f 1403 1434 1435 +f 1080 1081 1082 +f 531 520 1529 +f 21 1083 1084 +f 272 1532 1531 +f 690 712 802 +f 335 3571 3567 +f 1090 1030 1029 +f 1092 795 794 +f 1533 396 137 +f 661 660 1095 +f 69 444 445 +f 1099 1100 1101 +f 38 39 1536 +f 1104 1105 1106 +f 852 1107 1108 +f 1377 908 909 +f 291 377 411 +f 316 1536 516 +f 539 1488 1533 +f 1505 1536 316 +f 1110 1111 1112 +f 1539 1537 460 +f 522 441 1537 +f 834 837 1120 +f 1122 1123 1124 +f 612 1125 1041 +f 935 793 615 +f 276 278 130 +f 1686 3549 3522 +f 193 190 1541 +f 231 521 1540 +f 556 1037 982 +f 365 253 85 +f 190 532 318 +f 1810 765 3574 +f 3924 1867 3512 +f 1132 983 985 +f 208 101 102 +f 1134 1033 662 +f 1491 518 80 +f 429 133 1542 +f 1137 1138 915 +f 172 436 428 +f 1139 1140 1141 +f 549 96 54 +f 1517 1519 1518 +f 834 1119 984 +f 1543 513 286 +f 1544 797 239 +f 133 134 1544 +f 506 361 257 +f 420 327 328 +f 1158 1159 1160 +f 587 1104 1103 +f 607 1161 1027 +f 304 1546 1545 +f 364 1491 77 +f 69 70 198 +f 700 840 1112 +f 3877 626 3525 +f 1166 719 657 +f 1167 1168 858 +f 1300 3523 3524 +f 1172 1173 1174 +f 218 203 200 +f 1179 1180 1181 +f 372 183 97 +f 89 104 227 +f 1186 1187 1188 +f 172 173 1517 +f 1482 84 81 +f 1090 1192 1193 +f 394 395 353 +f 526 525 1198 +f 1199 1200 1026 +f 606 623 697 +f 1204 1205 1206 +f 1207 1208 523 +f 1209 1210 867 +f 914 913 685 +f 1478 1436 1441 +f 1029 1028 1161 +f 1211 1212 1213 +f 3858 1453 1451 +f 844 1215 1216 +f 423 193 273 +f 1220 1221 1222 +f 22 1223 1224 +f 882 898 897 +f 1519 1517 173 +f 1189 1188 1232 +f 349 350 550 +f 1071 1235 1236 +f 1237 1238 1239 +f 1221 1186 1189 +f 1510 1528 1512 +f 939 1032 1241 +f 1556 1530 5 +f 1553 1554 394 +f 404 1556 67 +f 1247 1248 1249 +f 142 199 238 +f 1251 1067 635 +f 850 1252 1253 +f 1254 1167 1077 +f 57 132 133 +f 443 430 552 +f 1187 1172 1175 +f 1256 1070 831 +f 432 405 382 +f 741 748 747 +f 434 350 351 +f 349 432 383 +f 251 124 1481 +f 395 384 352 +f 1518 1519 1550 +f 1558 410 378 +f 109 263 314 +f 285 1514 1513 +f 395 394 393 +f 202 203 410 +f 417 408 405 +f 1246 1257 1258 +f 3 1559 297 +f 1259 1260 1261 +f 403 404 347 +f 955 954 953 +f 462 50 51 +f 1096 1095 687 +f 429 147 60 +f 896 1264 1265 +f 1267 721 1268 +f 423 424 327 +f 37 179 180 +f 20 23 1187 +f 1256 1168 1071 +f 1188 1175 1269 +f 1236 1270 1271 +f 1272 536 535 +f 565 564 463 +f 1273 792 745 +f 876 1254 1255 +f 316 33 164 +f 437 1516 503 +f 194 1494 1495 +f 1275 1276 864 +f 624 625 631 +f 1277 1274 1137 +f 569 568 567 +f 1481 124 125 +f 324 325 547 +f 1279 1108 1107 +f 1525 332 329 +f 1281 1278 1137 +f 171 168 1553 +f 1488 73 396 +f 1557 1561 1562 +f 1282 856 1206 +f 1053 1277 1278 +f 778 777 607 +f 713 583 3566 +f 251 225 144 +f 4 357 348 +f 709 708 707 +f 728 48 45 +f 261 135 1563 +f 789 1286 1287 +f 74 314 263 +f 403 284 385 +f 1178 1181 1240 +f 1223 1259 1289 +f 1220 20 1186 +f 296 1518 354 +f 784 459 1538 +f 1181 1180 1291 +f 1269 1292 1257 +f 1566 1538 438 +f 136 784 1566 +f 1563 1564 169 +f 107 114 109 +f 1297 1282 1298 +f 1464 1477 1476 +f 1520 187 507 +f 1301 1302 1303 +f 1306 1307 1308 +f 175 456 1532 +f 1532 456 200 +f 1311 1266 1312 +f 872 1314 1315 +f 3836 843 878 +f 1305 1308 864 +f 1040 1275 863 +f 1564 1566 399 +f 592 1576 1575 +f 591 1575 1088 +f 1581 1584 1583 +f 1196 1152 1147 +f 710 582 583 +f 285 407 408 +f 953 954 961 +f 1594 1592 1589 +f 1585 1588 1587 +f 1592 1591 1590 +f 3885 945 944 +f 1600 1599 1598 +f 1604 1603 1602 +f 1399 1392 979 +f 1589 1590 1596 +f 1610 1609 1608 +f 298 257 361 +f 551 552 276 +f 1627 1626 3814 +f 859 811 818 +f 1078 857 1328 +f 1555 439 1530 +f 572 573 680 +f 772 465 776 +f 977 1281 918 +f 404 403 392 +f 1054 1331 750 +f 1644 1645 1643 +f 932 1265 1082 +f 1067 1333 1334 +f 1540 1539 264 +f 597 1335 643 +f 471 761 762 +f 1642 696 3831 +f 1644 1642 3842 +f 923 946 950 +f 96 549 548 +f 520 531 522 +f 445 444 443 +f 849 839 848 +f 480 759 755 +f 1646 760 481 +f 311 426 1567 +f 464 463 3497 +f 3497 1360 1361 +f 234 237 236 +f 190 193 192 +f 153 154 152 +f 231 287 286 +f 1552 1553 1551 +f 760 1646 1648 +f 3832 1647 1649 +f 828 827 826 +f 52 167 166 +f 1663 1662 1661 +f 287 107 115 +f 668 671 670 +f 634 645 640 +f 553 560 559 +f 118 36 33 +f 492 484 491 +f 3552 1652 1651 +f 582 589 584 +f 384 395 392 +f 1381 1382 1383 +f 1562 1561 435 +f 952 953 951 +f 3529 3566 583 +f 1660 1661 1667 +f 1394 1395 1396 +f 1660 1665 1664 +f 1671 1670 1669 +f 1624 1625 1673 +f 1407 1408 1409 +f 1677 1676 1675 +f 1613 1679 1677 +f 1679 1678 1676 +f 1626 1681 3811 +f 534 199 198 +f 803 733 734 +f 400 248 191 +f 65 66 143 +f 3526 1657 1656 +f 402 159 157 +f 629 628 627 +f 461 477 49 +f 758 757 495 +f 796 787 786 +f 406 407 1513 +f 342 343 166 +f 1694 1659 1658 +f 1692 1687 1694 +f 3557 1693 1652 +f 3921 1704 1703 +f 326 547 302 +f 3916 3921 1702 +f 3919 3918 1698 +f 1699 1691 3927 +f 1557 406 1560 +f 1127 1116 1117 +f 400 401 289 +f 1706 1702 1707 +f 1707 1702 1599 +f 1709 1706 1708 +f 1714 1712 1711 +f 3919 3915 1709 +f 1704 1711 1577 +f 1716 1714 1713 +f 1559 1562 1549 +f 1722 1721 1720 +f 1335 597 596 +f 410 411 377 +f 973 1170 1163 +f 168 169 399 +f 1571 682 1089 +f 1572 681 682 +f 749 646 647 +f 1730 1724 1723 +f 1594 1582 1729 +f 1729 1723 1591 +f 1384 1378 1377 +f 1732 1731 1712 +f 1724 1730 1731 +f 1722 1724 1732 +f 1721 1722 1733 +f 1734 1733 1716 +f 1735 1737 1736 +f 1733 1732 1714 +f 1663 1664 1741 +f 1742 1665 1740 +f 1738 1739 1737 +f 1665 1660 1666 +f 1665 1742 1744 +f 1725 1726 1746 +f 1591 1725 1745 +f 1590 1745 1747 +f 1745 1746 1748 +f 1659 1688 3538 +f 3287 1760 3545 +f 1185 1177 1182 +f 1664 1744 1749 +f 1741 1749 1739 +f 1746 1742 1743 +f 1726 1744 1742 +f 1115 924 1153 +f 1654 3546 3575 +f 1896 3562 3549 +f 1720 1749 1744 +f 1721 1739 1749 +f 1750 1718 1701 +f 1697 1736 1750 +f 1151 1152 1063 +f 1751 1752 1670 +f 1695 1658 1752 +f 961 962 986 +f 1770 1769 1768 +f 1766 1594 1593 +f 1731 1759 1579 +f 1579 1777 1774 +f 3928 1772 1771 +f 1764 1772 3928 +f 1777 1776 1775 +f 3762 3763 1699 +f 1004 1127 1128 +f 1774 1775 1771 +f 987 1400 1399 +f 1578 1774 1772 +f 1783 1782 1781 +f 1597 1598 1770 +f 639 1878 3895 +f 3928 3929 1769 +f 1793 1792 1789 +f 3929 3920 1798 +f 3508 3516 3773 +f 1802 1867 3924 +f 1788 1790 1794 +f 1793 1794 1795 +f 3773 3772 1675 +f 1584 1581 1783 +f 1771 1797 3920 +f 1801 1799 1798 +f 1768 1769 1798 +f 1775 1796 1797 +f 508 514 515 +f 1796 1803 1802 +f 1800 1798 3920 +f 1794 1805 1804 +f 3532 1670 1752 +f 485 1808 1807 +f 3809 3844 1640 +f 3837 3844 1810 +f 485 482 1640 +f 1690 1691 3770 +f 487 488 1648 +f 3839 1813 1816 +f 3838 1811 1648 +f 3839 1812 1811 +f 1812 1809 487 +f 1641 1809 767 +f 465 466 755 +f 767 1815 3823 +f 3822 1816 3826 +f 1809 1812 1815 +f 3837 1653 1651 +f 675 672 3541 +f 1814 1649 1822 +f 1821 1822 3821 +f 1824 1822 1649 +f 1827 1849 1850 +f 1668 1669 1662 +f 1779 1780 1848 +f 1790 1827 1805 +f 1833 1836 1853 +f 3521 3506 693 +f 1614 1615 1616 +f 1852 1853 3498 +f 1620 1621 1622 +f 1855 1765 1574 +f 1847 1852 3501 +f 1766 1765 1855 +f 1629 1630 1631 +f 1633 1622 1634 +f 1635 1636 1637 +f 1848 1833 1852 +f 1855 1861 1863 +f 1803 1866 1867 +f 1862 1863 1831 +f 1782 1855 1862 +f 3922 3924 1865 +f 1873 1872 1870 +f 1874 1869 799 +f 2045 3878 3897 +f 1219 1345 1295 +f 1615 1614 1396 +f 3884 3895 1877 +f 645 3898 3786 +f 1345 1219 1035 +f 634 639 3884 +f 15 1887 1327 +f 3910 3895 1878 +f 1894 604 605 +f 3506 3551 627 +f 3560 640 645 +f 340 341 454 +f 1897 194 195 +f 1889 1882 1877 +f 1901 94 129 +f 196 749 754 +f 1705 1704 3921 +f 340 378 166 +f 1570 1480 563 +f 1904 1494 194 +f 1781 1862 1832 +f 1905 549 55 +f 1000 994 995 +f 986 919 920 +f 1191 1185 1190 +f 2094 2077 2075 +f 1920 1921 1919 +f 453 454 1912 +f 1915 1919 1918 +f 3882 2112 2106 +f 1655 3575 3531 +f 1916 1918 1926 +f 704 3554 3561 +f 278 1916 1925 +f 3565 3564 1818 +f 1097 949 1115 +f 1927 1928 727 +f 3578 3579 3654 +f 1920 310 307 +f 1929 307 48 +f 503 504 1497 +f 1902 1903 787 +f 1816 1821 3820 +f 1925 1926 1923 +f 1535 1569 1568 +f 254 252 258 +f 1509 1497 366 +f 119 86 35 +f 219 288 293 +f 141 46 47 +f 542 205 244 +f 1940 552 430 +f 1779 1828 1827 +f 1701 1710 3915 +f 1661 3550 3515 +f 270 53 754 +f 197 1947 749 +f 1727 1728 1212 +f 53 54 232 +f 1465 1468 1479 +f 1284 3862 3854 +f 1951 446 412 +f 168 398 1554 +f 1486 1485 206 +f 506 77 78 +f 994 1001 1007 +f 951 953 963 +f 1013 3859 3861 +f 3826 3820 1820 +f 1498 1909 1954 +f 299 298 543 +f 1754 1755 1756 +f 1681 469 1683 +f 1696 1694 1695 +f 13 14 738 +f 473 476 475 +f 482 1641 768 +f 204 62 30 +f 1761 1762 820 +f 611 1763 1125 +f 1501 1503 1908 +f 1074 1073 711 +f 1960 1944 82 +f 120 1956 1960 +f 35 86 87 +f 1773 1199 1025 +f 1965 1545 1569 +f 494 761 471 +f 1966 1967 1969 +f 446 1951 1971 +f 174 368 125 +f 1580 1579 1578 +f 1785 1786 1787 +f 1972 1546 304 +f 1254 876 875 +f 1973 341 342 +f 321 1912 1973 +f 1910 277 275 +f 509 1973 514 +f 1486 1507 1527 +f 1974 1874 804 +f 1977 1976 1974 +f 1980 448 1966 +f 379 1 2 +f 1718 1715 1710 +f 884 995 992 +f 1680 1684 1678 +f 902 990 525 +f 344 255 256 +f 135 138 137 +f 448 446 1967 +f 589 605 604 +f 910 909 908 +f 1981 1966 1968 +f 1982 1981 1987 +f 1988 1979 1987 +f 1990 1988 1989 +f 1991 1989 1993 +f 322 321 320 +f 992 828 830 +f 1144 1076 1086 +f 1995 1977 1978 +f 1133 1129 1118 +f 1997 1995 1994 +f 870 1823 1335 +f 805 806 1982 +f 727 184 2000 +f 1996 1994 1988 +f 1994 1978 1979 +f 1829 616 792 +f 1830 1073 941 +f 798 803 800 +f 729 732 731 +f 2011 2012 2023 +f 1834 1835 846 +f 402 283 284 +f 2022 2023 2024 +f 1838 718 989 +f 810 955 952 +f 1823 1839 1840 +f 1430 1426 1432 +f 1215 844 1841 +f 1316 1208 873 +f 2112 1401 1384 +f 1842 1843 1844 +f 1159 846 845 +f 837 27 1846 +f 1971 1951 2030 +f 517 369 370 +f 1471 2026 2027 +f 3551 3525 626 +f 2174 2175 770 +f 935 934 1854 +f 1613 1619 1611 +f 1231 1228 1225 +f 1856 1857 891 +f 1300 1309 748 +f 1150 1149 1858 +f 1643 606 696 +f 1215 1265 1264 +f 1320 1860 902 +f 1956 1943 1944 +f 2031 668 669 +f 2034 1325 1310 +f 1879 1880 1656 +f 40 245 242 +f 1992 1993 2039 +f 888 958 957 +f 1882 1889 1996 +f 1078 1138 1255 +f 1871 912 1192 +f 294 411 218 +f 1323 2041 2026 +f 123 1960 83 +f 1324 2036 2041 +f 384 358 359 +f 1324 1325 2038 +f 1883 1884 1885 +f 287 1540 114 +f 1096 1886 1134 +f 915 1329 931 +f 806 1980 1981 +f 3533 3529 584 +f 1425 2030 2042 +f 1018 2042 1948 +f 3562 1896 740 +f 1948 2042 649 +f 1881 1882 1990 +f 1900 129 130 +f 992 995 994 +f 923 927 925 +f 3878 2045 2047 +f 1643 2048 625 +f 2050 2052 2051 +f 2045 1405 1404 +f 3876 2047 945 +f 1139 1080 1079 +f 1037 1856 892 +f 2055 2053 2057 +f 1198 989 718 +f 1619 2058 1612 +f 2058 1605 1606 +f 2059 2060 1607 +f 2058 1619 1624 +f 71 72 179 +f 405 406 1557 +f 322 1548 1972 +f 2061 2052 2063 +f 2066 2065 2067 +f 2052 2061 2064 +f 1609 1610 2066 +f 1515 151 152 +f 1009 827 993 +f 1644 3843 3815 +f 279 1915 1916 +f 1285 3863 3862 +f 1647 2066 1825 +f 2056 2057 2067 +f 319 320 1953 +f 667 666 1913 +f 2070 631 625 +f 2052 2050 2055 +f 2038 1654 1655 +f 1606 1601 2073 +f 1235 1917 1270 +f 2072 2073 2075 +f 2059 1606 2072 +f 2074 2075 2077 +f 1601 1602 2078 +f 2049 2048 1643 +f 1000 1004 1001 +f 1089 943 684 +f 1931 1286 1306 +f 1462 1459 1021 +f 1932 1933 1934 +f 875 874 1846 +f 1936 1051 1937 +f 44 45 46 +f 1534 1955 1956 +f 1541 318 317 +f 2081 2082 2084 +f 146 1945 1959 +f 1360 1941 1942 +f 985 984 1032 +f 1995 1997 1892 +f 2079 2080 2082 +f 2095 2096 2076 +f 2081 2093 2078 +f 2055 2050 2054 +f 501 2096 2095 +f 2097 2100 2099 +f 2098 2099 2094 +f 2140 2141 3893 +f 2141 2046 3894 +f 2051 2070 2048 +f 592 2102 2101 +f 2071 2064 2076 +f 2102 2097 2098 +f 593 2103 2102 +f 1019 1895 746 +f 1950 11 12 +f 725 2071 2096 +f 1385 2105 2104 +f 1379 2104 2106 +f 2107 2108 2100 +f 3908 726 502 +f 3896 502 499 +f 940 1389 2109 +f 928 929 1170 +f 3868 590 684 +f 1962 1963 1964 +f 3878 680 573 +f 2039 1993 1968 +f 1389 1390 2110 +f 1398 2111 2113 +f 3757 3755 3753 +f 3911 3883 2107 +f 949 923 924 +f 260 241 324 +f 1390 1397 2113 +f 2070 2051 2064 +f 3867 3911 2103 +f 2105 1385 1421 +f 2114 1421 1423 +f 3892 2114 2115 +f 3908 2105 2114 +f 554 2116 1902 +f 972 1163 967 +f 1765 1593 1573 +f 1984 1985 1986 +f 2053 2117 2069 +f 3573 3556 724 +f 1625 1677 1674 +f 3881 3888 2119 +f 3903 2115 2123 +f 56 1954 1906 +f 626 3877 3879 +f 2001 2002 2003 +f 3912 3841 2127 +f 2006 2007 2008 +f 2127 1413 1412 +f 2014 2015 2016 +f 2018 2019 2020 +f 1495 1424 1947 +f 1379 1377 1386 +f 3814 3811 1680 +f 2029 1885 1884 +f 3902 2128 2120 +f 629 3879 3914 +f 682 683 943 +f 724 1650 2121 +f 1757 1819 3821 +f 765 1810 3844 +f 3851 714 715 +f 706 707 3870 +f 981 986 987 +f 1457 1868 1656 +f 2017 2016 2032 +f 1458 1655 1868 +f 1776 1777 1792 +f 1959 1945 1946 +f 3663 3715 3725 +f 3913 3881 2122 +f 1093 1089 689 +f 966 965 968 +f 3852 715 3881 +f 2172 3577 2170 +f 670 2138 2137 +f 3761 787 1903 +f 1429 19 28 +f 964 963 978 +f 3841 3813 1413 +f 1473 1474 669 +f 3834 3833 1359 +f 2138 798 1870 +f 1872 1473 2137 +f 715 716 3888 +f 1881 1991 1992 +f 3843 3842 739 +f 1837 1847 3513 +f 253 58 59 +f 1808 3837 3840 +f 1647 3832 3818 +f 3865 3866 671 +f 2112 3882 3883 +f 1405 2045 2044 +f 3829 3824 1364 +f 273 1541 391 +f 576 632 3520 +f 3875 3865 668 +f 1430 1431 2140 +f 2136 3850 3860 +f 1430 2139 18 +f 3893 3894 570 +f 1442 1439 2046 +f 1431 1442 2141 +f 3869 3913 3850 +f 3808 3823 1817 +f 3866 3893 695 +f 2142 2025 798 +f 571 2143 2142 +f 3819 3814 1618 +f 2143 2022 2025 +f 694 2142 2138 +f 681 1572 2144 +f 2144 2011 2022 +f 328 210 457 +f 1572 2010 2011 +f 630 3892 3903 +f 2085 2086 2087 +f 2090 2091 2092 +f 572 2144 2143 +f 1875 1976 2153 +f 1873 1875 2149 +f 2103 2107 2097 +f 2157 2043 2155 +f 2128 1412 1414 +f 3874 3871 589 +f 3872 3870 628 +f 2149 2153 2158 +f 2159 2158 3905 +f 698 3907 3902 +f 3823 3847 3827 +f 2158 2156 3874 +f 1438 2044 2046 +f 2035 2154 2160 +f 2161 2160 3889 +f 3871 3891 605 +f 3873 17 18 +f 370 29 61 +f 649 1951 413 +f 2153 2157 2156 +f 1428 1429 1449 +f 1490 76 73 +f 3890 3905 710 +f 2155 1891 3891 +f 1456 1457 1880 +f 2125 2088 2087 +f 2160 2159 3890 +f 300 1959 505 +f 1064 1062 1046 +f 2043 1892 1891 +f 2129 2130 2004 +f 2131 2132 2133 +f 3848 3849 1450 +f 1998 1975 804 +f 3879 673 3864 +f 474 492 490 +f 1164 1165 1182 +f 707 2162 3909 +f 708 1472 2162 +f 2162 2161 3886 +f 548 549 1905 +f 1145 1136 1114 +f 705 2121 1650 +f 2043 2157 1977 +f 737 738 554 +f 1034 1195 1191 +f 458 1905 1907 +f 195 196 232 +f 2040 2039 1969 +f 2145 2146 2147 +f 2054 2050 2049 +f 3832 1646 1639 +f 9 12 11 +f 252 364 506 +f 472 478 479 +f 1865 3924 3791 +f 900 903 910 +f 1941 2150 2151 +f 1921 1928 1927 +f 2163 1897 1898 +f 271 156 153 +f 1904 1326 12 +f 282 263 264 +f 1872 1873 2154 +f 1326 1904 1897 +f 628 692 693 +f 1724 1722 1719 +f 1549 1562 436 +f 1582 1583 1730 +f 1921 1920 1929 +f 3563 3511 10 +f 2152 2037 1950 +f 475 772 774 +f 769 2172 2171 +f 2171 2165 476 +f 476 773 772 +f 1791 565 464 +f 2166 2167 2168 +f 595 371 372 +f 483 1809 1641 +f 762 2174 2173 +f 771 483 484 +f 486 487 1809 +f 297 1549 1517 +f 763 2175 2174 +f 776 755 759 +f 184 185 2176 +f 412 447 303 +f 2005 2176 185 +f 3811 1681 1682 +f 2164 2170 756 +f 1472 2035 2161 +f 950 951 964 +f 2177 2178 2179 +f 227 226 1510 +f 2182 2183 2184 +f 2186 2019 2018 +f 1985 2182 2181 +f 214 736 729 +f 865 849 842 +f 849 865 1357 +f 559 3187 3188 +f 16 13 737 +f 560 553 498 +f 3193 3196 3195 +f 3200 3197 3198 +f 3211 3214 3213 +f 3215 3218 3217 +f 2187 2188 2002 +f 2169 2168 2189 +f 2192 2086 2085 +f 2193 2194 2195 +f 2198 2199 2200 +f 1998 1982 1979 +f 3664 3665 3668 +f 2116 1898 1903 +f 1859 2006 2009 +f 3904 2123 2126 +f 1135 1148 1087 +f 2201 2202 2015 +f 1149 111 110 +f 3221 3222 3218 +f 2203 2204 2205 +f 579 580 1895 +f 1755 2207 2208 +f 3891 3910 1893 +f 1211 2151 2150 +f 868 997 2210 +f 944 945 930 +f 2130 2129 2202 +f 233 1903 1898 +f 665 751 750 +f 1167 1254 999 +f 2211 2212 2213 +f 2215 2216 2217 +f 3867 593 590 +f 2220 221 220 +f 823 824 948 +f 3225 3220 3227 +f 266 204 455 +f 3882 2108 2107 +f 2221 2222 3519 +f 2223 2224 2225 +f 2207 2125 2124 +f 673 674 3869 +f 817 1000 996 +f 2227 2228 2146 +f 1947 1948 646 +f 3900 2135 17 +f 2229 1635 1638 +f 1679 1613 1618 +f 1637 2231 2232 +f 2233 2234 1617 +f 2231 2235 2236 +f 1381 1638 2238 +f 3586 2241 2242 +f 1630 2234 2233 +f 1681 1626 472 +f 1408 1407 2243 +f 3236 3239 3238 +f 3232 3241 3240 +f 1637 2230 2238 +f 3237 3238 3233 +f 1409 1408 1634 +f 1380 1383 2247 +f 1628 2248 2245 +f 2249 1623 1622 +f 1632 1634 1408 +f 2248 1628 1631 +f 2235 2231 1637 +f 3245 3246 3199 +f 631 2070 2071 +f 515 167 52 +f 782 781 2251 +f 2253 2254 2255 +f 397 281 459 +f 1456 2039 2040 +f 2040 2041 2036 +f 1401 2112 2111 +f 2041 2040 1970 +f 1535 121 414 +f 1586 1587 2080 +f 2256 983 1132 +f 1700 1699 3918 +f 3815 1896 1686 +f 1263 2256 1886 +f 598 1841 844 +f 2257 2258 2259 +f 2258 2261 2262 +f 2259 2262 2263 +f 2260 2259 2216 +f 1967 1971 1970 +f 2212 1964 1963 +f 922 921 2218 +f 1312 1098 1101 +f 1307 1306 1286 +f 1548 1569 1546 +f 2266 2267 2268 +f 2265 2268 2270 +f 2272 2265 2269 +f 2273 2266 2265 +f 2275 2276 2277 +f 2278 2274 2277 +f 2284 2285 3617 +f 2287 2283 2286 +f 2288 2289 2283 +f 2290 2284 3639 +f 2291 2292 2293 +f 2295 2291 2294 +f 2296 2297 2291 +f 2297 2298 2292 +f 2294 2293 2299 +f 2279 2294 2300 +f 2298 2301 2302 +f 2292 2302 2303 +f 2293 2303 2304 +f 2304 2305 2306 +f 2308 2309 2310 +f 2302 2307 2310 +f 2301 2311 2307 +f 2312 2308 2307 +f 2313 2314 2315 +f 2318 2319 2320 +f 3748 3771 2322 +f 2324 2325 2273 +f 2313 2324 2326 +f 2328 2324 2313 +f 2329 2325 2324 +f 2331 2332 2333 +f 2330 2333 2267 +f 2325 2330 2266 +f 2329 2331 2330 +f 2333 2334 2335 +f 2336 2334 2333 +f 2338 2336 2332 +f 2331 2339 2337 +f 2329 2340 2339 +f 2328 2341 2340 +f 2316 2342 2341 +f 2342 2316 2315 +f 2344 2345 2346 +f 2341 2344 2347 +f 2342 2348 2344 +f 2348 2349 2345 +f 2350 2351 2352 +f 2339 2350 2353 +f 2340 2347 2350 +f 2347 2346 2351 +f 2337 2353 2354 +f 2353 2352 2355 +f 2356 2277 2276 +f 2356 2357 2358 +f 2356 2359 2296 +f 2279 2277 2356 +f 2360 2361 2270 +f 2267 2335 2360 +f 2362 2363 2364 +f 2362 2365 2361 +f 2366 2362 2358 +f 2366 2367 2363 +f 2357 2276 2368 +f 2366 2368 2369 +f 2276 2275 2370 +f 2368 2370 2282 +f 2372 2373 2374 +f 2375 2376 2377 +f 2378 2379 2380 +f 2382 2378 2381 +f 2384 2385 2378 +f 2385 2386 2379 +f 2388 2389 2390 +f 2387 2390 2392 +f 2393 2394 2387 +f 2394 2395 2388 +f 2186 2401 2402 +f 2403 2404 2327 +f 2272 2403 2326 +f 2271 2405 2403 +f 2405 2406 2404 +f 2404 2407 2408 +f 2409 2410 2411 +f 2409 2412 2271 +f 2413 2409 2269 +f 2413 2414 2410 +f 2417 2415 2416 +f 2417 2418 2406 +f 2412 2417 2405 +f 2411 2415 2417 +f 2406 2419 2407 +f 3569 3520 632 +f 2420 2398 2397 +f 2420 2421 2423 +f 2424 2420 2422 +f 2424 2399 2398 +f 2425 2391 2392 +f 2421 2425 2426 +f 2397 2396 2425 +f 2396 2393 2391 +f 2427 2314 2408 +f 2430 2427 2428 +f 2343 2315 2427 +f 2432 2343 2430 +f 2431 2430 2429 +f 2435 2431 2433 +f 2436 2432 2431 +f 2428 2408 2407 +f 2422 2437 2407 +f 2438 2437 2422 +f 2429 2428 2437 +f 2440 2434 2433 +f 2441 2439 2433 +f 2442 2443 2439 +f 2443 2444 2440 +f 2445 2446 2444 +f 2447 2445 2443 +f 2383 2381 2445 +f 2381 2380 2446 +f 2448 2438 2423 +f 2449 2448 2426 +f 2441 2448 2449 +f 2441 2429 2438 +f 2449 2392 2390 +f 2450 2390 2389 +f 2447 2450 2451 +f 2442 2449 2450 +f 2451 2389 2453 +f 2452 2453 2455 +f 2382 2452 2454 +f 2383 2451 2452 +f 2456 2457 2373 +f 2459 2460 2461 +f 2463 2464 2465 +f 2462 2465 2285 +f 2466 2462 2284 +f 2467 2463 2462 +f 2461 2460 3703 +f 2468 2469 2470 +f 2472 2468 2471 +f 2474 2461 3701 +f 2475 2476 2477 +f 2458 2455 2453 +f 2479 2453 2389 +f 2395 2480 2479 +f 2480 2459 2458 +f 2481 2482 2483 +f 2484 113 2485 +f 2471 2470 2464 +f 2473 2471 2463 +f 2487 2467 2466 +f 2486 2466 2290 +f 2490 2486 2488 +f 2491 2487 2486 +f 2492 2473 2467 +f 2493 2492 2487 +f 2494 2495 2492 +f 2495 2472 2473 +f 3690 2496 2474 +f 3691 2497 2496 +f 2498 2494 2493 +f 2500 2498 2499 +f 3700 3687 2498 +f 3687 3691 2494 +f 2306 2504 2278 +f 2305 2505 2504 +f 2504 2505 2507 +f 2506 2507 2288 +f 2274 2506 2508 +f 2278 2504 2506 +f 3633 3632 2489 +f 3620 3633 2488 +f 2507 2509 2289 +f 2505 2510 2509 +f 2508 2288 2287 +f 2511 2287 2281 +f 2370 2511 2280 +f 2275 2508 2511 +f 2512 2490 2489 +f 2514 2512 2513 +f 2517 2512 2514 +f 2517 2491 2490 +f 2499 2493 2491 +f 2499 2517 2516 +f 2510 2505 2519 +f 2518 2519 2521 +f 3616 2518 2520 +f 3632 2510 2518 +f 2522 2304 2303 +f 2523 2522 2310 +f 2305 2304 2522 +f 2524 2522 2523 +f 2519 2524 2525 +f 2505 2305 2524 +f 2308 2312 2527 +f 2526 2527 2529 +f 2531 2526 2528 +f 2309 2308 2526 +f 1214 2532 2151 +f 2419 2406 2418 +f 2533 2345 2349 +f 2534 2533 2317 +f 2535 2536 2533 +f 2536 2346 2345 +f 2537 2351 2346 +f 2538 2537 2536 +f 2539 2540 2537 +f 2540 2352 2351 +f 2312 2355 2541 +f 2527 2541 2542 +f 2543 2435 2434 +f 2545 2543 2544 +f 2319 2318 2543 +f 2318 2436 2435 +f 2514 2515 2548 +f 2547 2548 2550 +f 2552 2547 2549 +f 2552 2516 2514 +f 2520 2521 2554 +f 2553 2554 2556 +f 3590 2553 2555 +f 3621 2520 2553 +f 2523 2309 2531 +f 2557 2531 2530 +f 2525 2523 2557 +f 2559 2557 2558 +f 2554 2559 2560 +f 2521 2525 2559 +f 2561 2375 2007 +f 2376 2562 2225 +f 2564 2565 2566 +f 2563 2566 338 +f 2569 2563 2567 +f 2570 2564 2563 +f 2572 2573 2574 +f 2571 2574 2576 +f 2544 2571 2575 +f 2544 2434 2572 +f 2578 2570 2569 +f 2579 2577 2569 +f 2574 2577 2579 +f 2573 2578 2577 +f 2581 2582 2583 +f 2584 2580 2583 +f 3697 3675 2580 +f 3676 2581 2580 +f 2582 2516 2552 +f 2583 2552 2551 +f 2500 2501 2589 +f 2590 2588 2589 +f 3693 3695 2588 +f 3695 3700 2500 +f 2501 2516 2591 +f 2592 2593 2594 +f 2386 2385 2503 +f 2596 2379 2386 +f 2596 2374 2373 +f 2599 2596 2597 +f 2599 2380 2379 +f 2600 2446 2380 +f 2600 2599 2598 +f 2603 2600 2601 +f 2603 2444 2446 +f 2604 2603 2602 +f 2440 2604 2605 +f 2444 2603 2604 +f 2606 2582 2581 +f 2606 2607 2590 +f 2591 2516 2582 +f 3676 2587 2456 +f 3689 2456 2372 +f 2478 2477 2608 +f 2609 2610 2611 +f 2564 2570 2613 +f 2612 2613 2598 +f 2457 2612 2597 +f 2565 2564 2612 +f 2614 2613 2570 +f 2615 2614 2578 +f 2602 2601 2614 +f 2601 2598 2613 +f 2572 2434 2605 +f 2616 2605 2602 +f 2573 2572 2616 +f 1459 1016 1045 +f 1265 1215 1079 +f 1612 1608 1609 +f 2067 2057 2069 +f 1135 1109 1136 +f 1938 1937 2618 +f 95 548 458 +f 2058 1607 1608 +f 1454 1469 1445 +f 655 2620 1048 +f 722 1049 2621 +f 1131 985 1033 +f 562 1481 366 +f 1723 1719 1725 +f 1786 1123 1122 +f 267 300 323 +f 1325 2034 1654 +f 1468 1165 1435 +f 658 657 529 +f 8 532 247 +f 382 1557 1559 +f 788 619 1307 +f 940 930 929 +f 911 2622 2623 +f 2621 2620 655 +f 2624 1857 2625 +f 998 1846 27 +f 635 638 2626 +f 2627 641 644 +f 2628 2627 1840 +f 1200 1199 2627 +f 1199 1773 641 +f 1520 515 49 +f 1452 1350 1349 +f 2630 2631 1859 +f 644 643 1335 +f 1197 1198 717 +f 2632 717 719 +f 2628 2632 1166 +f 2629 1197 2632 +f 1762 2633 1050 +f 1823 870 873 +f 2634 2635 794 +f 1042 794 2635 +f 93 94 1901 +f 2036 2038 1458 +f 1527 332 1525 +f 877 876 1274 +f 134 409 797 +f 1328 893 931 +f 607 777 1091 +f 1043 2635 2637 +f 2636 2637 2639 +f 1275 2636 2638 +f 1275 1040 1043 +f 1272 2624 2626 +f 2640 2626 638 +f 1110 2641 2640 +f 536 1272 2640 +f 1472 708 1474 +f 2042 2030 1951 +f 1058 1106 1105 +f 2642 2623 2643 +f 1192 2642 2644 +f 912 2623 2642 +f 3898 1657 3526 +f 1049 1048 2620 +f 616 1829 1885 +f 1331 1913 666 +f 990 989 1198 +f 1911 1912 321 +f 1298 1282 1205 +f 76 1490 1504 +f 1502 1500 421 +f 610 609 658 +f 1146 937 659 +f 2646 911 914 +f 1280 1239 1238 +f 1453 1454 1452 +f 835 942 1843 +f 1271 1270 1173 +f 1893 1878 1826 +f 1050 2633 1937 +f 2651 2652 814 +f 1006 1053 1281 +f 2653 1084 2654 +f 1001 1004 1003 +f 585 997 679 +f 2624 1272 621 +f 555 678 2028 +f 1207 526 1197 +f 1626 1627 478 +f 426 389 419 +f 1030 1193 1773 +f 3898 645 634 +f 534 1533 138 +f 1125 1092 1042 +f 333 228 88 +f 569 1570 561 +f 1489 2656 871 +f 1857 2624 620 +f 1673 1674 3770 +f 622 861 864 +f 619 788 891 +f 261 544 545 +f 393 1555 1556 +f 2658 2659 2647 +f 1075 2658 2657 +f 1081 1080 2658 +f 1080 1139 2659 +f 2644 2643 1141 +f 2660 1141 1140 +f 642 2660 1336 +f 1193 2644 2660 +f 679 678 555 +f 1503 1501 1500 +f 1318 1317 1101 +f 2661 2659 1139 +f 2661 1142 2663 +f 2662 2647 2659 +f 2662 2663 2622 +f 2664 2622 911 +f 2648 2664 2646 +f 2648 2647 2662 +f 2083 2094 2093 +f 1442 1440 1437 +f 519 329 330 +f 1885 2029 1209 +f 799 800 805 +f 1946 1943 1952 +f 1302 1301 1253 +f 566 2005 224 +f 1389 940 928 +f 683 682 681 +f 836 835 1842 +f 2665 1842 1845 +f 2666 2665 1303 +f 24 836 2665 +f 831 1072 2650 +f 1845 1844 1304 +f 2010 2013 2012 +f 1051 1936 2667 +f 1522 1521 1511 +f 531 440 441 +f 1250 635 2625 +f 2669 2625 1857 +f 783 2669 1856 +f 782 1250 2669 +f 720 2670 2671 +f 1055 1931 1930 +f 1333 1067 1251 +f 619 622 1308 +f 652 655 2619 +f 521 522 1539 +f 1838 988 537 +f 2672 537 536 +f 1113 2672 2641 +f 1113 527 1838 +f 1016 1013 1351 +f 3897 573 570 +f 226 227 104 +f 3564 3669 3827 +f 1036 1037 1884 +f 2674 1301 1304 +f 2673 1304 1844 +f 1334 2673 2675 +f 1333 2674 2673 +f 2676 702 1039 +f 1843 2676 2675 +f 942 1074 2676 +f 1074 699 702 +f 752 1057 1055 +f 1200 1166 656 +f 1120 1846 874 +f 2677 874 877 +f 1241 2677 1052 +f 1119 1120 2677 +f 1560 1513 151 +f 1208 1316 611 +f 215 735 736 +f 1460 1459 1462 +f 1208 1207 1839 +f 854 856 1282 +f 72 445 182 +f 544 1563 1565 +f 217 200 456 +f 2047 1404 930 +f 1204 2618 1937 +f 913 777 686 +f 840 527 1113 +f 1531 729 730 +f 2678 778 1283 +f 601 667 1914 +f 1537 1538 459 +f 1819 1757 3509 +f 991 1860 862 +f 2679 711 1073 +f 2680 1830 983 +f 779 2680 2256 +f 778 2678 2680 +f 2678 2679 1830 +f 180 542 245 +f 1886 1132 1131 +f 1138 1137 1274 +f 1841 598 1140 +f 75 313 314 +f 193 423 420 +f 2681 2682 1099 +f 170 1567 1565 +f 349 416 417 +f 1121 1124 2684 +f 547 797 409 +f 123 122 121 +f 2643 2663 1142 +f 1542 1544 513 +f 899 900 907 +f 1210 677 676 +f 791 663 982 +f 24 27 837 +f 893 896 932 +f 1860 1320 863 +f 535 538 862 +f 1569 1548 1547 +f 181 455 542 +f 660 659 937 +f 2013 567 568 +f 887 890 2631 +f 1524 1508 361 +f 520 161 162 +f 2653 855 854 +f 1238 1237 2655 +f 718 1838 527 +f 1492 1493 518 +f 792 616 615 +f 599 846 1835 +f 290 457 456 +f 312 171 1552 +f 1248 2687 1179 +f 153 149 177 +f 1240 1181 1222 +f 1257 1292 1235 +f 1291 1084 1083 +f 1052 877 1277 +f 743 742 2618 +f 444 140 430 +f 23 1224 1172 +f 2687 2654 1180 +f 102 103 409 +f 1283 607 610 +f 373 497 650 +f 1180 2654 1084 +f 855 2653 2655 +f 1173 1270 1917 +f 2689 850 853 +f 2688 853 1108 +f 2686 2688 1279 +f 2687 2689 2688 +f 2691 1302 1252 +f 2690 1252 850 +f 1248 2690 2689 +f 1248 1247 2691 +f 2692 617 24 +f 2691 2692 2666 +f 1247 1258 2692 +f 1258 1168 617 +f 394 1554 1555 +f 2693 1260 1259 +f 1072 1236 1262 +f 1257 1071 1168 +f 398 439 1555 +f 871 1784 1314 +f 1178 1232 1249 +f 1224 1289 1173 +f 1010 2617 2618 +f 1175 1174 1292 +f 2654 2687 2686 +f 2694 1157 1216 +f 71 418 1487 +f 701 1112 1111 +f 1072 1261 2649 +f 1085 2695 22 +f 895 2694 1264 +f 1601 1606 1605 +f 1259 1262 1271 +f 21 20 1220 +f 988 991 538 +f 598 597 1336 +f 1050 860 818 +f 1298 2645 1761 +f 1168 1167 618 +f 858 1168 1256 +f 39 242 516 +f 2652 1761 819 +f 313 316 315 +f 2026 1970 1971 +f 2656 1489 596 +f 814 819 818 +f 2696 2651 813 +f 1260 2696 2649 +f 2693 2697 2696 +f 2697 1296 2651 +f 381 355 390 +f 3818 3819 1611 +f 1475 1427 1428 +f 1292 1174 1917 +f 1551 353 354 +f 1526 1525 1523 +f 1593 1589 1595 +f 1232 1269 1246 +f 2695 2693 1223 +f 2698 1297 1296 +f 2698 2697 2693 +f 2685 2698 2695 +f 2685 854 1297 +f 562 1497 271 +f 2652 2651 1296 +f 1365 1366 1364 +f 1958 1946 1953 +f 585 588 2210 +f 1561 1560 1515 +f 975 2648 1146 +f 347 67 68 +f 1038 1111 636 +f 2700 781 780 +f 2699 780 1036 +f 2701 2699 1883 +f 851 2700 2699 +f 2674 1333 2251 +f 2702 2251 781 +f 1253 2702 2700 +f 1301 2674 2702 +f 1519 387 388 +f 1273 1239 1280 +f 2703 1280 1107 +f 2701 2703 852 +f 1829 1273 2703 +f 91 260 326 +f 1784 871 2656 +f 2683 2684 2705 +f 604 1894 3499 +f 1669 3534 3548 +f 2062 2063 2060 +f 621 535 861 +f 2023 731 732 +f 686 779 1263 +f 857 1051 2668 +f 883 830 882 +f 637 636 1111 +f 2668 894 893 +f 2667 921 894 +f 1039 1038 1068 +f 313 75 1504 +f 1911 1972 305 +f 1936 2706 1964 +f 2707 2402 2401 +f 2708 2707 2183 +f 738 2163 2116 +f 2349 2348 2432 +f 2711 2712 2020 +f 2400 2711 2019 +f 2714 2715 2716 +f 2717 2718 2719 +f 2721 2722 2723 +f 2726 2727 2728 +f 2725 2728 2730 +f 2731 2725 2729 +f 2732 2726 2725 +f 2734 2735 2736 +f 2738 2739 2740 +f 2737 2740 2741 +f 2744 2745 2746 +f 2745 2744 2748 +f 2749 2750 2747 +f 2753 2749 2751 +f 2250 1380 2246 +f 2754 1396 1614 +f 3598 2754 2755 +f 3608 2745 2747 +f 1617 2756 2755 +f 2242 2758 1620 +f 2191 2085 2760 +f 2761 2759 2760 +f 3648 2759 2761 +f 3623 2191 2759 +f 3209 3248 3223 +f 1395 1394 2236 +f 1395 2235 1636 +f 1616 1635 2229 +f 1617 2234 2763 +f 2756 2763 3628 +f 2765 2763 2234 +f 2766 2764 3628 +f 3202 3199 3246 +f 1516 437 435 +f 2768 2769 3552 +f 1495 541 578 +f 2135 2136 28 +f 3526 3540 2773 +f 1690 1689 3926 +f 2778 2779 2780 +f 2777 2780 2781 +f 2784 2778 2777 +f 3555 3521 575 +f 1494 1904 9 +f 3529 2016 2015 +f 451 61 505 +f 2786 2787 2788 +f 2779 2786 2785 +f 2789 2752 2741 +f 2790 2753 2752 +f 2792 2793 2794 +f 2793 2795 2796 +f 2796 2797 2750 +f 2794 2796 2749 +f 2798 1393 1396 +f 3591 2798 2754 +f 2798 2799 2800 +f 3591 3662 2799 +f 2797 2796 2795 +f 2791 2794 2753 +f 216 233 232 +f 3804 2806 2807 +f 3805 2809 2804 +f 2769 2810 3557 +f 183 185 184 +f 2811 2812 2775 +f 2804 2811 2776 +f 2809 2813 2811 +f 2812 2811 2813 +f 3805 2808 2816 +f 3796 2818 2815 +f 3798 3800 2820 +f 3793 2823 2819 +f 2824 2736 2735 +f 2823 2825 2824 +f 2825 2823 2826 +f 3793 2822 2827 +f 3796 2817 2826 +f 2713 2716 2829 +f 2828 2829 2831 +f 2822 2821 2828 +f 2821 2820 2713 +f 2832 2827 2822 +f 2833 2832 2830 +f 2834 2835 2832 +f 2835 2818 2827 +f 2837 2838 2839 +f 2836 2839 2841 +f 2842 2836 2840 +f 2843 2837 2836 +f 2840 2841 2845 +f 2718 2844 2845 +f 2730 2728 2844 +f 2727 2840 2844 +f 2846 2845 2841 +f 2829 2846 2847 +f 2847 2841 2839 +f 2848 2839 2838 +f 2833 2848 2849 +f 2831 2847 2848 +f 2850 2814 2851 +f 2853 2850 2852 +f 2783 2777 2782 +f 2785 2788 2853 +f 2780 2785 2856 +f 2857 2858 2855 +f 2859 2857 2782 +f 2861 2843 2842 +f 2860 2842 2727 +f 2862 2860 2726 +f 2863 2861 2860 +f 2861 2863 2858 +f 2843 2861 2857 +f 2856 2853 2854 +f 2781 2856 2864 +f 2837 2843 2859 +f 2838 2837 2864 +f 2852 2851 2834 +f 2854 2852 2849 +f 2865 2815 2818 +f 2851 2865 2835 +f 2813 2809 2815 +f 2814 2813 2865 +f 2866 2812 2814 +f 2788 2866 2850 +f 2866 2788 2787 +f 2812 2866 2867 +f 1892 1889 1890 +f 2720 2719 2846 +f 298 299 256 +f 2872 2714 2713 +f 3794 3800 2735 +f 2729 2730 2874 +f 2846 2716 2715 +f 2876 2877 2878 +f 2733 2875 2878 +f 3806 3807 2879 +f 3806 2880 2872 +f 2882 2883 2884 +f 2881 2884 2715 +f 2880 2881 2714 +f 2879 2882 2881 +f 2885 2886 2887 +f 2888 2889 2890 +f 2885 2890 2892 +f 2893 2886 2885 +f 1942 2151 2532 +f 2895 2892 2720 +f 2884 2895 2870 +f 2883 2896 2895 +f 2896 2891 2892 +f 2889 2874 2717 +f 2890 2717 2720 +f 2897 2893 2891 +f 2898 2897 2896 +f 2899 2898 2883 +f 2900 2899 2882 +f 3797 2900 2879 +f 2876 2902 2901 +f 2901 2902 2904 +f 1785 2656 1835 +f 2905 2906 2899 +f 2907 2908 2897 +f 3797 2901 2903 +f 632 576 577 +f 3532 3547 2867 +f 434 385 550 +f 2768 2770 3640 +f 2910 2911 1623 +f 2241 2912 2758 +f 3640 2770 2913 +f 1623 2911 2757 +f 3587 2242 2757 +f 2229 1381 1380 +f 2765 1630 1629 +f 2915 2914 1629 +f 3642 3641 2914 +f 3641 3622 2765 +f 2919 2916 3642 +f 2918 2915 2912 +f 3614 2918 2241 +f 3618 2919 3613 +f 3541 2177 2180 +f 3521 2002 2188 +f 3705 3573 714 +f 2925 2766 2917 +f 2924 2917 2916 +f 3610 2924 2919 +f 3611 2925 2924 +f 2926 2927 2766 +f 3658 2926 2925 +f 1715 1713 1705 +f 785 497 498 +f 1387 651 565 +f 374 375 1899 +f 3573 2203 2206 +f 2929 2930 2886 +f 2932 2933 2934 +f 1905 1906 1908 +f 2930 2935 2936 +f 2938 2935 2930 +f 1493 369 517 +f 1603 1585 1586 +f 2939 2938 2929 +f 2940 2939 2908 +f 3665 1707 1600 +f 2886 2930 2937 +f 2906 2907 2898 +f 2908 2929 2893 +f 2942 2934 2933 +f 2941 2933 2937 +f 3501 2941 2936 +f 3498 2942 2941 +f 2943 2944 2710 +f 2943 2873 2874 +f 2945 2943 2889 +f 2946 2944 2943 +f 2932 2945 2888 +f 2931 2946 2945 +f 727 1928 1929 +f 2903 2904 2947 +f 545 594 42 +f 1480 1570 533 +f 2907 2906 2949 +f 2906 2905 2950 +f 1558 452 215 +f 3799 2903 2948 +f 2054 1645 1644 +f 3705 3684 2203 +f 1828 1837 1849 +f 2953 2954 2955 +f 2952 2955 2957 +f 2956 2261 2258 +f 2953 2952 2258 +f 2454 2455 2474 +f 3747 2958 2959 +f 3747 2132 2131 +f 2961 2962 2963 +f 2958 2963 2964 +f 222 221 2485 +f 2477 2226 2966 +f 2631 2561 2006 +f 2384 2454 2496 +f 2967 2968 2959 +f 2968 2967 2970 +f 3759 2033 2971 +f 3784 2971 2960 +f 2972 2971 2033 +f 2007 2377 2973 +f 3560 3559 2134 +f 1836 1833 1832 +f 3506 2188 2090 +f 955 810 959 +f 672 675 674 +f 633 710 713 +f 2024 732 733 +f 2025 2024 803 +f 425 1552 1550 +f 2975 2976 888 +f 1319 1158 1157 +f 1212 1935 2977 +f 889 957 2228 +f 1978 1974 1975 +f 1138 1078 1329 +f 751 665 2979 +f 1619 1613 1625 +f 2252 2255 1728 +f 1157 1160 845 +f 2706 1936 1938 +f 2980 2255 2254 +f 2982 2975 887 +f 802 712 711 +f 678 677 2029 +f 527 840 690 +f 1839 1207 2629 +f 2983 2984 602 +f 2983 1914 1913 +f 2985 2983 1331 +f 2986 2984 2983 +f 2987 2637 2635 +f 2985 2988 2639 +f 2990 1319 1318 +f 2991 2992 2993 +f 2995 2991 2994 +f 1106 1058 2991 +f 1058 1057 2992 +f 1415 1406 1365 +f 1317 922 2217 +f 1932 1728 2255 +f 926 2998 2999 +f 3001 2993 2992 +f 3000 2992 1057 +f 2999 3000 2978 +f 2998 3001 3000 +f 3002 2998 2209 +f 3002 3003 2996 +f 2993 3001 3002 +f 1103 1106 2995 +f 3004 2995 2996 +f 2209 2210 3004 +f 588 1103 3004 +f 295 296 433 +f 2638 2639 2988 +f 3005 2988 1056 +f 1305 3005 1930 +f 1276 2638 3005 +f 1987 1968 1993 +f 2633 1762 1761 +f 1423 1422 1417 +f 3561 3517 739 +f 2671 2670 2704 +f 1473 1872 2035 +f 922 1317 2694 +f 1401 1400 1378 +f 556 2028 1884 +f 842 848 3825 +f 1854 2706 2617 +f 933 1082 1081 +f 1440 1441 1436 +f 529 657 719 +f 1031 1025 1027 +f 777 913 912 +f 2645 1205 1204 +f 441 438 1538 +f 790 1287 587 +f 2065 2066 1610 +f 1860 991 990 +f 60 106 87 +f 1424 1017 1948 +f 332 1527 1507 +f 261 262 138 +f 187 188 449 +f 1719 1720 1726 +f 1931 1055 1059 +f 3006 1059 1105 +f 1287 3006 1104 +f 1286 1931 3006 +f 3007 3008 3009 +f 3009 3008 653 +f 618 999 26 +f 2029 677 1210 +f 957 601 600 +f 1049 2146 2228 +f 2631 890 3011 +f 890 889 2227 +f 3011 2227 2145 +f 2561 3011 3012 +f 1026 656 609 +f 2706 1854 1961 +f 3013 2965 2485 +f 2148 2147 1267 +f 3015 1267 1266 +f 2997 2264 1101 +f 642 641 1773 +f 186 477 461 +f 1041 1040 1320 +f 1121 3016 3017 +f 2984 2986 2987 +f 3018 2987 2634 +f 1048 603 3018 +f 603 602 2984 +f 2679 2678 801 +f 2062 2072 2074 +f 2061 2074 2076 +f 414 303 1545 +f 3016 1121 2683 +f 3019 2683 2704 +f 3020 3019 2670 +f 3007 3016 3019 +f 1871 1090 1091 +f 3021 1787 1122 +f 3022 3021 3017 +f 1314 3021 3022 +f 1784 1787 3021 +f 1316 1315 1763 +f 3023 3022 3010 +f 3023 3009 795 +f 1763 3023 1092 +f 1315 3022 3023 +f 3016 3007 3010 +f 752 751 2978 +f 2986 2639 2637 +f 3024 654 653 +f 3020 3024 3008 +f 720 723 3024 +f 723 2621 654 +f 2681 1098 1268 +f 2671 3025 1268 +f 2705 2681 3025 +f 1313 3026 3027 +f 3026 3028 3029 +f 3027 3029 3030 +f 1311 3027 3031 +f 2012 568 731 +f 917 2657 974 +f 743 1206 856 +f 1888 2027 2030 +f 2682 2705 2684 +f 3032 2684 1124 +f 1100 3032 2989 +f 1099 2682 3032 +f 1123 2990 2989 +f 3033 1834 1159 +f 2990 3033 1158 +f 1123 1786 3033 +f 1786 1785 1834 +f 1054 1056 2988 +f 2979 665 664 +f 2623 2622 2663 +f 1095 660 688 +f 3034 3035 2261 +f 3036 3034 2956 +f 3037 3038 3034 +f 3038 3039 3035 +f 3040 3041 3026 +f 2263 3042 3041 +f 3042 3039 3043 +f 3041 3043 3028 +f 3044 3045 3043 +f 3046 3047 3045 +f 3047 3048 3049 +f 3043 3045 3049 +f 3038 3037 3051 +f 3050 3051 3053 +f 3052 3046 3044 +f 3039 3038 3050 +f 3054 3035 3039 +f 3042 2263 2262 +f 2261 3035 3054 +f 2216 2263 2997 +f 2212 2211 2667 +f 3056 868 2209 +f 934 3057 1961 +f 2013 3755 3757 +f 3058 3059 3060 +f 3059 3062 3063 +f 3060 3063 2213 +f 3061 3060 1963 +f 3063 3064 2214 +f 3062 3065 3064 +f 3065 2257 2260 +f 3064 2260 2215 +f 3066 3067 3031 +f 2608 2966 3067 +f 2966 2562 3068 +f 3031 3067 3068 +f 2455 2458 2461 +f 2476 2223 2226 +f 3551 2090 2089 +f 3526 2774 3769 +f 433 354 355 +f 2115 1423 1419 +f 3509 2868 2922 +f 3769 3737 2131 +f 3069 2611 2167 +f 2971 2972 2928 +f 2961 2774 2773 +f 3070 2475 2478 +f 2610 2609 3071 +f 2502 2371 2374 +f 3072 2592 2595 +f 2964 3046 3052 +f 3048 2593 3074 +f 2593 2592 3075 +f 3075 3030 3029 +f 3074 3029 3028 +f 3072 3076 3075 +f 3076 3072 2482 +f 2481 2608 3066 +f 3076 3066 3030 +f 2967 3052 3053 +f 2482 3072 3073 +f 479 480 493 +f 706 3900 3873 +f 3561 2194 2221 +f 2013 2010 3754 +f 3533 2032 2016 +f 3562 3519 2222 +f 1171 1154 1155 +f 2586 2566 2565 +f 2982 110 113 +f 2562 2376 3077 +f 2376 2375 3012 +f 3012 2145 2148 +f 3077 2148 3015 +f 2963 3047 3046 +f 3051 3078 2970 +f 1683 2173 491 +f 3850 2122 1447 +f 1986 2181 3734 +f 3079 3080 2546 +f 3081 3079 2575 +f 1983 1986 3768 +f 3082 2323 2319 +f 3080 3082 2545 +f 3734 3732 3082 +f 3732 3748 2323 +f 1309 1471 1888 +f 3073 2595 2772 +f 2760 3083 3084 +f 2760 2085 2088 +f 3085 3084 3086 +f 3089 3085 3090 +f 3089 2762 3084 +f 3092 3088 3090 +f 3093 2748 2744 +f 2751 2747 2748 +f 3093 2741 2752 +f 2742 2741 3093 +f 3094 3093 2743 +f 3096 3097 3098 +f 3099 3096 3087 +f 3097 3094 3095 +f 3100 2743 2746 +f 3101 2927 3102 +f 2764 2766 2927 +f 2745 2764 3101 +f 3102 3092 3091 +f 3100 3091 3095 +f 2869 2802 3592 +f 3102 3103 3104 +f 3658 2868 2869 +f 2927 2926 3103 +f 3098 3095 3091 +f 3087 3098 3090 +f 2088 2125 3105 +f 3083 3105 3086 +f 2483 3073 2771 +f 2401 2186 2185 +f 3099 3086 3105 +f 2125 2207 3106 +f 3108 2737 2742 +f 3107 2742 3094 +f 3110 3108 3107 +f 3109 3107 3097 +f 3111 3109 3096 +f 3112 3110 3109 +f 3113 2738 2737 +f 3115 2723 2722 +f 3117 3115 3114 +f 3119 3117 3116 +f 3118 3116 3120 +f 3116 3114 3113 +f 3122 3112 3111 +f 3122 3123 1755 +f 3124 3125 3126 +f 3125 3118 3121 +f 3128 3119 3118 +f 3129 3128 3125 +f 2020 2712 3128 +f 3853 3857 1346 +f 1065 1046 1047 +f 1814 3838 3830 +f 2021 2020 3129 +f 3111 3099 3106 +f 3123 3106 2207 +f 2377 2225 2224 +f 3014 2485 113 +f 1756 2208 3782 +f 3131 3132 2530 +f 3133 3131 2528 +f 1753 1756 3767 +f 3134 3124 3127 +f 2327 2408 2314 +f 2436 2318 2317 +f 2018 2021 3711 +f 2534 3136 3137 +f 2320 2322 3136 +f 2185 2018 3712 +f 3138 3139 2542 +f 3134 3135 3744 +f 3785 3130 3134 +f 3140 3138 2539 +f 2535 3137 3140 +f 3711 2021 3130 +f 2558 2530 3132 +f 3782 3760 3141 +f 2560 2558 3141 +f 3760 3777 3142 +f 958 888 2976 +f 1933 1932 2980 +f 2399 2424 2418 +f 2348 2342 2343 +f 2322 2320 2319 +f 2718 2717 2874 +f 2709 2729 2873 +f 2894 2871 1361 +f 346 289 176 +f 1876 1877 1882 +f 2802 2803 3607 +f 3104 3144 3088 +f 2974 2222 3649 +f 3089 3145 2761 +f 3088 3144 3145 +f 2803 2974 3603 +f 3870 3909 692 +f 2123 1419 1418 +f 1365 1363 1368 +f 1581 1766 1782 +f 3569 2202 2129 +f 3555 2003 2002 +f 3146 2585 2551 +f 3751 3146 3147 +f 3742 3149 3146 +f 3149 2584 2585 +f 3196 3198 3197 +f 3604 2192 2191 +f 3142 3150 2556 +f 3777 3778 3150 +f 3646 3152 2550 +f 3150 3151 2555 +f 3778 3780 3151 +f 3788 3781 3152 +f 3153 3147 2551 +f 3152 3153 2549 +f 3781 3776 3153 +f 3776 3750 3147 +f 3148 2767 2206 +f 2183 2401 2321 +f 2132 2960 2928 +f 3684 3685 2204 +f 3719 2198 2197 +f 2594 2962 2773 +f 2595 2594 2951 +f 1870 798 799 +f 3713 2179 2178 +f 3706 2178 3736 +f 336 3154 3774 +f 339 3155 3154 +f 3789 3683 3149 +f 3683 3697 2584 +f 2963 2962 3048 +f 3722 3730 337 +f 339 338 2566 +f 3156 3157 2168 +f 2610 3156 2167 +f 2954 2953 3156 +f 3157 3156 2953 +f 3707 2166 2169 +f 2567 3158 3159 +f 337 3158 2567 +f 3730 3069 2166 +f 3764 2190 1983 +f 2579 3160 3081 +f 2568 3159 3160 +f 3709 2169 2190 +f 3065 3062 3162 +f 3161 3162 1984 +f 3157 3161 2189 +f 2257 3065 3161 +f 734 735 1922 +f 3059 3058 2708 +f 3163 2708 2182 +f 3162 3163 1985 +f 3062 3059 3163 +f 3203 3206 3205 +f 2122 2119 1448 +f 3817 1686 1685 +f 139 140 444 +f 1570 569 566 +f 2957 3164 3165 +f 2955 3166 3164 +f 1912 454 341 +f 3130 3129 3124 +f 1548 322 319 +f 1949 1950 1327 +f 2969 2970 3078 +f 3167 3078 3169 +f 3724 2014 2017 +f 3720 2017 2033 +f 3168 3169 3165 +f 3170 3165 3164 +f 3779 3170 3171 +f 3724 3168 3170 +f 3171 3164 3166 +f 3172 3166 3071 +f 3752 3172 3173 +f 3756 3171 3172 +f 3169 3037 3036 +f 2593 3048 2962 +f 3173 3071 2609 +f 3174 2609 2199 +f 3783 3174 2198 +f 3749 3173 3174 +f 2190 2189 1984 +f 2196 2195 2767 +f 2119 2120 1414 +f 1464 1463 1466 +f 2199 2611 3069 +f 2457 2456 2587 +f 2226 2225 2562 +f 481 478 1627 +f 333 1512 235 +f 3078 3051 3037 +f 3040 2264 2997 +f 2219 1934 1933 +f 2385 2384 2497 +f 221 2220 3175 +f 2220 1933 3143 +f 3175 3143 2976 +f 2484 3175 2975 +f 2954 3071 3166 +f 2630 1858 110 +f 1547 319 1952 +f 2091 2090 2188 +f 3733 3736 2178 +f 1918 1919 1927 +f 3563 112 111 +f 955 956 960 +f 2037 3014 112 +f 3143 2980 2981 +f 2218 2211 2214 +f 672 3877 3787 +f 2152 3013 3014 +f 1147 1144 1143 +f 2248 2246 1409 +f 1615 1636 1635 +f 1410 1409 2246 +f 3241 3243 3242 +f 1382 3176 3177 +f 3177 1410 2247 +f 2247 1383 3177 +f 3176 2238 2230 +f 1410 3177 3179 +f 3179 3180 2243 +f 1633 3181 2800 +f 1621 1620 2758 +f 1622 1621 2245 +f 2236 1394 3181 +f 2237 2236 3182 +f 2250 1631 2233 +f 2912 1629 1628 +f 135 136 1564 +f 1567 419 512 +f 1085 1084 2653 +f 3184 869 868 +f 869 3184 3057 +f 1266 1268 1098 +f 1267 2147 722 +f 937 1146 2646 +f 2146 1049 722 +f 2211 2218 921 +f 1957 510 507 +f 1313 1312 2264 +f 1496 362 1493 +f 2887 2937 2933 +f 1687 1688 1659 +f 145 1499 1498 +f 37 38 418 +f 1935 1934 3185 +f 104 89 301 +f 2101 2098 2083 +f 543 298 360 +f 1934 2219 3186 +f 234 1521 212 +f 3845 3821 1822 +f 1976 1875 1874 +f 223 3186 2219 +f 3655 3656 3605 +f 2165 2164 467 +f 467 468 2165 +f 773 476 2165 +f 1935 1212 1728 +f 3240 3225 3226 +f 3261 3249 3250 +f 3215 3216 3244 +f 3265 3221 3215 +f 3267 3245 3198 +f 3205 3206 3269 +f 3214 3211 3265 +f 3271 3213 3214 +f 3251 3252 3239 +f 3222 3221 3266 +f 3232 3235 3234 +f 3216 3242 3243 +f 3196 3193 3268 +f 3244 3243 3254 +f 3238 3239 3247 +f 3264 3244 3255 +f 3253 3242 3216 +f 3211 3266 3221 +f 3257 3217 3218 +f 3258 3222 3272 +f 3274 3275 3280 +f 3228 3229 3262 +f 3275 3231 3281 +f 3226 3227 3273 +f 3236 3263 3260 +f 3281 3263 3236 +f 3287 3271 3192 +f 3235 3226 3280 +f 3234 3280 3281 +f 3288 3290 3259 +f 3260 3250 3276 +f 3289 3212 3278 +f 3210 3209 3224 +f 3199 3202 3201 +f 3228 3231 3230 +f 3290 3288 3285 +f 3282 3279 3271 +f 3260 3263 3262 +f 3243 3241 3268 +f 3267 3268 3241 +f 3194 3207 3208 +f 3191 3270 3269 +f 3270 3191 3192 +f 3275 3274 3230 +f 3264 3269 3270 +f 3252 3251 3276 +f 3248 3252 3291 +f 3213 3271 3279 +f 3272 3266 3289 +f 3277 3278 3212 +f 3228 3263 3281 +f 3220 3225 3253 +f 3219 3253 3217 +f 3256 3218 3222 +f 3247 3239 3252 +f 3245 3267 3232 +f 3266 3211 3212 +f 3208 3205 3255 +f 3288 3289 3284 +f 3204 3205 3208 +f 560 1899 3187 +f 3209 3210 3201 +f 3189 3192 3191 +f 448 1980 807 +f 647 648 122 +f 1833 1848 1780 +f 510 509 508 +f 3210 1949 1887 +f 1887 15 3200 +f 15 16 3197 +f 16 3188 3195 +f 3195 3188 3187 +f 3194 3187 1899 +f 3207 1899 375 +f 387 173 126 +f 3189 1791 1760 +f 3577 763 757 +f 763 3577 2172 +f 3583 3582 3580 +f 3581 3580 3579 +f 3594 3597 3596 +f 3400 3601 3602 +f 3626 3624 3625 +f 3631 3635 3599 +f 3636 3637 3595 +f 3647 3584 3588 +f 3650 3582 3584 +f 3653 3579 3580 +f 3653 2176 3654 +f 1801 1864 3656 +f 3651 3580 3582 +f 3644 3638 3595 +f 1767 1768 3659 +f 1597 3663 3661 +f 1708 1707 3665 +f 3671 3668 3667 +f 3666 3667 3673 +f 1588 1708 3664 +f 2080 3671 3666 +f 2082 3666 3672 +f 3674 3677 3635 +f 3677 3678 3636 +f 3682 3647 3645 +f 3692 3651 3650 +f 3681 3645 3644 +f 786 3694 3692 +f 3694 3653 3651 +f 785 3692 3686 +f 497 3686 3682 +f 650 3682 3681 +f 3696 564 3681 +f 3405 3606 3605 +f 3702 3699 3678 +f 3699 3698 3679 +f 3645 3588 3638 +f 1799 3657 3659 +f 3708 3704 3458 +f 3462 3710 3708 +f 3714 463 564 +f 3615 3606 3602 +f 3710 3714 3696 +f 3635 3636 3596 +f 3629 3626 3627 +f 3597 3600 3599 +f 3630 3716 3715 +f 3627 3625 3597 +f 3717 3716 3723 +f 3715 3663 3660 +f 3716 3717 3725 +f 3668 3665 3661 +f 3668 3725 3717 +f 3667 3717 3718 +f 3727 3728 3673 +f 3728 1576 3672 +f 3726 3727 3718 +f 1576 2101 2084 +f 3727 3726 3731 +f 3203 376 1387 +f 3190 1387 1791 +f 3283 2152 1949 +f 317 240 259 +f 2000 2176 3653 +f 3601 3599 3600 +f 3589 3588 3584 +f 3577 758 756 +f 3585 3584 3582 +f 3678 3679 3637 +f 3204 375 376 +f 1801 3655 3657 +f 3729 3735 3728 +f 1575 3735 3738 +f 3735 1575 1576 +f 1776 1795 1796 +f 1293 1294 1290 +f 1326 14 1327 +f 1294 1245 1234 +f 878 1244 1330 +f 497 373 374 +f 122 648 413 +f 3699 3702 3704 +f 3606 3405 3401 +f 3708 3710 3698 +f 3464 3714 3710 +f 3704 3674 3443 +f 439 398 399 +f 1512 1528 1526 +f 1668 1741 1738 +f 839 849 1362 +f 1362 1357 826 +f 3843 740 1896 +f 2053 2054 2118 +f 3888 3887 2120 +f 696 697 3816 +f 1826 1878 639 +f 3740 3739 3729 +f 956 885 886 +f 1980 806 1922 +f 33 34 105 +f 1343 1344 3856 +f 3907 2127 2128 +f 1766 1581 1582 +f 14 1326 2163 +f 595 98 99 +f 3233 3238 3246 +f 1346 1035 1044 +f 748 1888 1425 +f 3193 3208 3254 +f 3190 3191 3206 +f 3612 3605 3606 +f 3624 3612 3615 +f 3631 3415 3443 +f 3679 3680 3644 +f 3686 3650 3647 +f 3702 3677 3674 +f 3625 3615 3600 +f 3601 3400 3415 +f 3739 3738 3735 +f 3630 3627 3594 +f 3741 3723 3716 +f 1284 1290 1288 +f 3698 3696 3680 +f 1778 1781 1780 +f 1792 1759 1584 +f 695 570 571 +f 3638 3741 3594 +f 3741 3638 3588 +f 3247 3248 3209 +f 3292 3293 3294 +f 3296 3297 3298 +f 3299 3298 3300 +f 3302 3303 3304 +f 3306 3307 3308 +f 3307 3310 3311 +f 3303 3302 3301 +f 3312 3305 3304 +f 3314 3315 3316 +f 3318 3319 3320 +f 3324 3318 3321 +f 3326 3327 3328 +f 3329 3330 3331 +f 3333 3334 3335 +f 3337 3338 3339 +f 3333 3336 3341 +f 3342 3341 3343 +f 3319 3345 3344 +f 3338 3335 3334 +f 3346 3301 3302 +f 3305 3348 3347 +f 3312 3224 3223 +f 3350 3337 3340 +f 3312 3349 3348 +f 3352 3343 3341 +f 3311 3353 3354 +f 3341 3336 3327 +f 3359 3360 3361 +f 3360 3359 3250 +f 3318 3363 3345 +f 3364 3363 3318 +f 3314 3364 3324 +f 3366 3299 3301 +f 3299 3366 3367 +f 3308 3354 3368 +f 3369 3317 3295 +f 3317 3369 3364 +f 3370 3295 3317 +f 3325 3371 3365 +f 3352 3320 3319 +f 3296 3367 3353 +f 3297 3296 3311 +f 3363 3368 3354 +f 3345 3354 3353 +f 3344 3353 3367 +f 3366 3333 3342 +f 3347 3339 3334 +f 3339 3347 3348 +f 3348 3349 3351 +f 3363 3364 3369 +f 3294 3309 3368 +f 3293 3306 3309 +f 3331 3373 3374 +f 3346 3334 3333 +f 3323 3322 3352 +f 3356 3355 3321 +f 3355 3357 3325 +f 3357 3358 3371 +f 3322 3356 3320 +f 3361 3330 3329 +f 3373 3372 3375 +f 3374 3375 3376 +f 3329 3332 3376 +f 3327 3375 3372 +f 3336 3335 3375 +f 3335 3338 3376 +f 3376 3338 3337 +f 3337 3350 3359 +f 3359 3350 3276 +f 3377 3292 3295 +f 3277 3316 3315 +f 3371 3378 3379 +f 3378 3371 3358 +f 3365 3379 3315 +f 3316 3277 3279 +f 3282 3377 3370 +f 3313 3283 3224 +f 3378 3285 3284 +f 3380 3286 3285 +f 3379 3284 3278 +f 3276 3350 3351 +f 3291 3351 3349 +f 3313 3304 2965 +f 2965 3304 3303 +f 222 3303 3300 +f 223 3300 3298 +f 3298 3297 3185 +f 3297 3310 2977 +f 3310 3307 1213 +f 3307 3306 1214 +f 2532 1214 3306 +f 2894 2532 3293 +f 2871 2894 3292 +f 3253 3225 3240 +f 3283 3313 3013 +f 1997 1996 1889 +f 1237 745 744 +f 1535 1534 120 +f 1531 1532 201 +f 1119 1241 1032 +f 946 948 824 +f 163 8 5 +f 3589 3726 3723 +f 1155 1156 1162 +f 427 213 327 +f 553 1902 796 +f 3381 2232 2231 +f 3381 3178 2230 +f 2237 3183 3180 +f 3383 3384 3385 +f 3384 3386 3387 +f 3386 3388 3389 +f 3388 3390 3391 +f 3392 3393 3394 +f 3395 3394 3396 +f 3398 3399 3397 +f 3400 3401 3399 +f 3403 3404 3405 +f 3406 3407 3404 +f 3408 3409 3407 +f 3410 3411 3409 +f 3412 3413 3411 +f 3415 3400 3398 +f 3414 3398 3396 +f 3416 3396 3394 +f 3417 3394 3393 +f 3393 3419 3420 +f 3419 3390 3421 +f 3390 3388 3422 +f 3388 3386 3423 +f 3386 3384 3424 +f 3384 3383 3425 +f 3425 3383 3426 +f 2904 3427 3428 +f 3429 3427 2904 +f 3430 3429 2902 +f 2875 3431 3430 +f 3432 3433 2733 +f 2825 3434 3435 +f 3437 3438 3439 +f 3441 3437 3436 +f 2724 2723 3434 +f 3436 3439 3115 +f 3440 3436 3117 +f 3443 3415 3414 +f 3442 3414 3416 +f 3444 3416 3417 +f 3445 3417 3418 +f 3446 3418 3420 +f 3420 3421 3448 +f 3421 3422 3449 +f 3422 3423 3450 +f 3423 3424 3451 +f 3424 3425 3452 +f 3425 3184 3056 +f 3451 3452 2253 +f 3450 3451 2252 +f 3449 3450 1727 +f 3448 3449 2150 +f 3453 3447 3448 +f 3454 3446 3447 +f 3455 3445 3446 +f 3456 3444 3445 +f 3442 3444 3456 +f 3443 3442 3457 +f 3459 3460 3458 +f 3457 3456 3455 +f 3459 3455 3454 +f 3462 3460 3459 +f 3461 3454 3453 +f 3464 3462 3461 +f 3463 3453 1941 +f 3404 3399 3401 +f 3407 3397 3399 +f 3409 3395 3397 +f 3411 3392 3395 +f 3465 3466 3413 +f 3467 3468 3469 +f 3465 3412 3431 +f 3470 3467 3466 +f 3438 3470 3432 +f 3467 3470 3438 +f 3468 3467 3437 +f 3471 3469 3468 +f 3472 3468 3441 +f 3473 3441 3440 +f 2712 3440 3119 +f 3475 3471 3472 +f 3474 3472 3473 +f 3476 3473 2712 +f 3477 3476 2711 +f 3478 3474 3476 +f 3479 3475 3474 +f 3392 3411 3413 +f 3466 3469 3480 +f 3419 3393 3392 +f 3390 3419 3480 +f 3469 3471 3391 +f 3389 3391 3471 +f 3387 3389 3475 +f 3385 3387 3479 +f 3482 3477 2400 +f 3483 3478 3477 +f 3481 3479 3478 +f 3484 3482 2402 +f 3058 3484 2707 +f 3061 3485 3484 +f 3485 3483 3482 +f 3382 3385 3481 +f 3486 3481 3483 +f 3426 3383 3382 +f 3487 3382 3486 +f 3486 3485 3061 +f 1961 3057 3487 +f 3057 3184 3426 +f 3428 3403 3402 +f 3427 3406 3403 +f 3429 3408 3406 +f 3430 3410 3408 +f 3431 3412 3410 +f 3470 3465 3433 +f 3434 3439 3438 +f 2723 3115 3439 +f 2875 2733 3433 +f 2736 2824 3435 +f 2947 3428 3488 +f 3464 3463 1360 +f 1900 1925 1924 +f 1736 1717 1718 +f 1955 1952 1943 +f 1671 1738 1735 +f 1696 1750 1698 +f 1800 1865 1864 +f 2063 2055 2056 +f 1737 1734 1717 +f 1751 1735 1697 +f 943 3885 3899 +f 3656 3488 3402 +f 1577 1578 1764 +f 3917 1598 1599 +f 1945 146 82 +f 68 6 7 +f 147 1542 1543 +f 1109 1135 1133 +f 1503 1910 1907 +f 1499 1501 1909 +f 452 1922 735 +f 1824 2068 3835 +f 1825 2067 2068 +f 1463 1462 1022 +f 841 1012 1009 +f 1568 1547 1955 +f 1910 1503 1502 +f 1939 1502 422 +f 309 280 1940 +f 1804 1851 1866 +f 269 1482 1954 +f 2065 1607 2060 +f 3812 1685 1758 +f 280 276 552 +f 1875 1873 1869 +f 1739 1721 1734 +f 1778 1779 1790 +f 310 1920 1915 +f 1909 1908 1906 +f 1789 1783 1778 +f 978 981 980 +f 1584 1759 1731 +f 425 426 311 +f 148 1543 115 +f 2044 3897 3894 +f 277 1910 1939 +f 1943 1946 1945 +f 1461 1462 1463 +f 2253 3452 3056 +f 2981 2254 3489 +f 2209 2998 3489 +f 2254 2253 3055 +f 2998 926 958 +f 2826 2817 2721 +f 3490 2739 2721 +f 2816 3491 3490 +f 2334 2297 2296 +f 2298 2297 2334 +f 2301 2298 2336 +f 2311 2301 2338 +f 2312 2311 2354 +f 2359 2358 2361 +f 2335 2296 2359 +f 2414 2413 2365 +f 2413 2270 2361 +f 2355 2352 2540 +f 2541 2540 2539 +f 2722 2721 2739 +f 3114 2722 2738 +f 3110 3112 3121 +f 3108 3110 3120 +f 3122 1754 3127 +f 3112 3122 3126 +f 3127 1754 1753 +f 3139 3133 2529 +f 3744 3775 3133 +f 3490 2789 2740 +f 3491 2790 2789 +f 228 229 91 +f 245 244 243 +f 248 7 247 +f 2 297 296 +f 145 146 300 +f 327 213 210 +f 329 332 331 +f 239 241 240 +f 373 376 375 +f 178 177 176 +f 1218 1225 1228 +f 3862 1231 1295 +f 808 809 824 +f 3858 3859 1013 +f 3813 3810 1411 +f 2154 2149 2159 +f 3845 3835 1758 +f 306 807 1922 +f 2157 2153 1976 +f 708 709 2031 +f 1450 1226 1227 +f 1672 1604 1605 +f 1813 1814 1821 +f 1717 1716 1715 +f 176 159 402 +f 1710 1705 3916 +f 1712 1580 1577 +f 1705 1713 1711 +f 971 978 979 +f 822 823 1094 +f 2909 2810 2793 +f 2810 2769 2795 +f 2799 2910 2249 +f 3662 3643 2910 +f 2769 2768 2801 +f 3177 3176 3178 +f 3178 3381 3180 +f 3181 1394 1393 +f 3181 1633 1632 +f 3182 1632 2244 +f 3183 2244 2243 +f 3492 2791 2790 +f 2808 3492 3491 +f 2239 3574 3572 +f 1149 1150 3571 +f 1150 2009 3567 +f 2202 3569 3566 +f 2921 3564 3565 +f 3568 3560 2133 +f 1777 1579 1759 +f 1201 1196 1183 +f 3561 3554 2195 +f 3553 3576 2770 +f 3927 3925 1687 +f 1516 152 154 +f 3549 3562 2974 +f 3550 3548 2779 +f 2771 2772 3575 +f 3070 2771 3546 +f 3547 3544 2775 +f 1376 1375 1370 +f 2767 3543 3556 +f 2195 3554 3543 +f 2775 3544 3542 +f 3377 3282 3545 +f 3804 3802 3539 +f 2776 3542 3538 +f 2240 3572 3535 +f 2920 3535 3669 +f 3548 3534 2786 +f 1805 1850 1851 +f 3534 3532 2787 +f 2951 2773 3540 +f 2772 2951 3531 +f 2973 2224 3530 +f 2224 2223 3537 +f 1957 1953 320 +f 306 305 304 +f 2770 3576 3528 +f 2913 3528 3574 +f 2923 3565 3527 +f 308 1940 431 +f 207 208 132 +f 1879 1876 1881 +f 3733 3787 3525 +f 2475 3070 3558 +f 2476 2475 3524 +f 2223 2476 3523 +f 3522 3549 2803 +f 2037 3563 11 +f 1959 1958 450 +f 2003 3555 3520 +f 9 10 334 +f 2009 2008 3518 +f 2008 2973 3536 +f 3877 672 673 +f 3515 3550 2778 +f 2935 3514 3513 +f 111 1149 3570 +f 3510 3514 2935 +f 683 3876 3885 +f 3508 3557 2810 +f 736 733 732 +f 1795 1804 1803 +f 3505 3510 2938 +f 3507 3505 2939 +f 2950 3512 3504 +f 2940 2949 3504 +f 3801 3791 3512 +f 2868 3509 3502 +f 2869 3502 3522 +f 1024 1034 1023 +f 3500 3503 2948 +f 551 1939 442 +f 2972 3499 3568 +f 2032 3533 3499 +f 216 93 1924 +f 203 202 201 +f 1828 1848 1847 +f 1958 1957 449 +f 272 271 178 +f 2871 3545 3495 +f 3619 3669 3564 +f 2801 2768 3643 +f 2005 3758 3654 +f 960 886 899 +f 3657 3655 3612 +f 3780 3788 3646 +f 3151 3646 3593 +f 2193 3604 3623 +f 3607 3603 3145 +f 3603 3649 2761 +f 3592 3607 3144 +f 2926 3658 3634 +f 3634 3592 3104 +f 3755 3754 3746 +f 566 567 3758 +f 3488 3656 1864 +f 1602 1586 2079 +f 2868 3658 3611 +f 2922 3611 3610 +f 2923 3610 3618 +f 3670 3613 2918 +f 3619 3670 3614 +f 2921 3618 3670 +f 2920 3614 3586 +f 3613 3642 2915 +f 2917 2766 3622 +f 2916 2917 3641 +f 2239 3587 3652 +f 2911 3640 3652 +f 3643 3640 2911 +f 2797 2801 3662 +f 2797 3591 3598 +f 3622 3628 2763 +f 3608 3628 2764 +f 2194 3623 3648 +f 2221 3648 3649 +f 2756 3608 3609 +f 2750 3598 3609 +f 3669 3535 1817 +f 3763 3770 1691 +f 2515 3621 3590 +f 2548 3590 3593 +f 2513 2489 3632 +f 2513 3616 3621 +f 2509 3633 3620 +f 2510 3632 3633 +f 2289 3620 3639 +f 2283 3639 3617 +f 2240 3586 3587 +f 3659 3657 3624 +f 716 2121 3887 +f 727 1999 3761 +f 2165 2171 2170 +f 3660 3659 3626 +f 3743 3581 3578 +f 2175 2172 769 +f 2100 500 2095 +f 3758 567 3757 +f 640 3560 3568 +f 1653 3576 3553 +f 1895 3536 3530 +f 746 3530 3537 +f 1653 1810 3528 +f 3762 1603 1604 +f 2093 2075 2073 +f 959 996 995 +f 962 899 919 +f 1400 1401 1398 +f 1000 817 1127 +f 956 959 884 +f 1662 3548 3550 +f 2034 3558 3546 +f 3926 1689 3539 +f 3535 3572 766 +f 3572 3574 765 +f 334 3570 3571 +f 1868 3531 3540 +f 1684 1651 1652 +f 1682 1683 775 +f 1585 1603 3762 +f 3763 3762 1672 +f 2173 2174 490 +f 1658 3544 3547 +f 3556 3543 1650 +f 1571 3754 2010 +f 1587 3664 3671 +f 2099 2095 2077 +f 787 3761 1999 +f 2000 3694 786 +f 3155 339 3697 +f 3713 3155 3683 +f 2180 2179 3685 +f 3496 2180 3684 +f 1684 3846 3840 +f 1760 464 3495 +f 2607 3689 3693 +f 2581 3676 3689 +f 2371 2502 3700 +f 2371 3695 3693 +f 2587 3676 3675 +f 2586 3675 3697 +f 2497 3691 3687 +f 2502 2503 3687 +f 2494 3691 3690 +f 3690 3688 2472 +f 3688 3701 2468 +f 3701 3703 2469 +f 726 3908 3892 +f 581 3567 3518 +f 10 3511 3570 +f 1837 3514 3510 +f 741 3537 3523 +f 1299 3524 3558 +f 1851 3507 3504 +f 3527 3565 1820 +f 580 3518 3536 +f 1758 1685 3522 +f 1693 3557 3508 +f 3504 3512 1867 +f 1894 1826 3568 +f 2126 1418 3813 +f 3906 2126 3841 +f 2113 3911 3867 +f 2179 3713 3789 +f 624 3903 3904 +f 2192 3604 3788 +f 2177 3541 3787 +f 1364 3824 3833 +f 3858 3855 1470 +f 3135 1753 3775 +f 2069 3812 3835 +f 1351 3861 3853 +f 2108 3882 3901 +f 2089 2092 3736 +f 3828 3834 1358 +f 2001 3749 3783 +f 2187 3783 3719 +f 2130 3756 3752 +f 2004 3752 3749 +f 2014 3724 3779 +f 2201 3779 3756 +f 3167 3720 3759 +f 3168 3724 3720 +f 3159 3709 3764 +f 3160 3764 3765 +f 3730 3707 3158 +f 3158 3707 3709 +f 2200 3069 3730 +f 3685 3789 3742 +f 3722 3774 2197 +f 3790 3736 2092 +f 3774 3790 3721 +f 3154 3706 3790 +f 3155 3713 3706 +f 2091 3719 3721 +f 2196 3148 3750 +f 2193 2196 3776 +f 3604 2193 3781 +f 2086 2192 3780 +f 2087 2086 3778 +f 2204 3742 3751 +f 2205 3751 3750 +f 3909 3886 574 +f 2124 2087 3777 +f 2208 2124 3760 +f 3711 3785 3140 +f 3785 3745 3138 +f 3745 3744 3139 +f 3771 3712 3136 +f 3712 3711 3137 +f 3775 3767 3131 +f 3767 3782 3132 +f 1813 3839 3838 +f 1293 3854 3856 +f 2184 2321 3748 +f 2181 2184 3732 +f 3765 3768 3079 +f 3768 3734 3080 +f 709 3873 3875 +f 2774 2961 3737 +f 3786 3769 2134 +f 3809 3808 766 +f 2968 3784 3766 +f 2969 3759 3784 +f 2958 3747 3737 +f 2132 3747 3766 +f 2321 2185 3771 +f 3860 3848 1449 +f 3905 3874 582 +f 3886 3889 577 +f 3847 3826 1818 +f 705 3902 3887 +f 3816 3912 3907 +f 2111 3883 3911 +f 3810 3829 1366 +f 1812 3839 3822 +f 675 3851 3852 +f 3496 3705 3851 +f 2110 3867 3868 +f 2104 3896 3901 +f 2109 3868 3899 +f 3842 3831 703 +f 1680 3811 3846 +f 1639 1627 3819 +f 623 3904 3906 +f 2139 2140 3866 +f 1808 1640 3844 +f 3820 3821 1819 +f 3872 3914 3900 +f 1646 3832 3830 +f 3889 3890 633 +f 2139 3865 3875 +f 2156 2155 3871 +f 674 3852 3913 +f 2117 3817 3812 +f 1815 3822 3847 +f 3855 3849 1444 +f 697 3906 3912 +f 866 842 3836 +f 3864 3869 2136 +f 3585 3731 3726 +f 3583 3740 3731 +f 3753 3746 3738 +f 3740 3583 3581 +f 1088 3738 3746 +f 3739 3740 3743 +f 2791 3492 3493 +f 3492 2808 2807 +f 2792 3493 3494 +f 3493 2807 2806 +f 3508 2909 3494 +f 3516 3494 2806 +f 2948 3503 3791 +f 2105 3908 3896 +f 3538 3802 3804 +f 680 3878 3876 +f 1891 1890 3910 +f 2905 3799 3801 +f 2900 3797 3799 +f 2901 3797 3807 +f 2734 2878 3806 +f 2877 3807 3806 +f 2820 3800 3794 +f 2818 3796 3792 +f 2823 3793 3792 +f 2822 3793 3798 +f 2819 2735 3800 +f 2817 3796 3795 +f 2809 3805 3795 +f 2808 3805 3803 +f 2805 3804 3803 +f 1702 3921 3923 +f 3922 3920 1797 +f 3915 3916 1706 +f 3918 3927 1692 +f 1657 3898 3880 +f 1890 1877 3895 +f 3772 3770 1674 +f 1689 1690 3772 +f 3926 3802 3538 +f 3516 3539 1689 +f 3917 3923 1703 +f 1598 3917 3928 +f 3880 3884 1876 +f 1691 1690 3925 +f 3925 3926 1688 +f 3934 3933 3937 +f 3934 3938 3939 +f 3932 3936 3937 +f 3938 3942 3943 +f 3937 3936 3940 +f 3937 3941 3942 +f 3942 3946 3947 +f 3941 3940 3944 +f 3942 3941 3945 +f 3947 3946 3950 +f 3944 3948 3949 +f 3945 3949 3950 +f 3950 3954 3955 +f 3949 3948 3952 +f 3950 3949 3953 +f 3955 3954 3958 +f 3953 3952 3956 +f 3953 3957 3958 +f 3959 3958 3962 +f 3957 3956 3960 +f 3958 3957 3961 +f 3962 3966 3967 +f 3960 3964 3965 +f 3961 3965 3966 +f 3966 3970 3971 +f 3965 3964 3968 +f 3966 3965 3969 +f 3970 3974 3975 +f 3968 3972 3973 +f 3969 3973 3974 +f 3974 3978 3979 +f 3973 3972 3976 +f 3974 3973 3977 +f 3979 3978 3982 +f 3976 3980 3981 +f 3977 3981 3982 +f 3982 3986 3987 +f 3981 3980 3984 +f 3982 3981 3985 +f 3987 3986 3990 +f 3984 3988 3989 +f 3985 3989 3990 +f 3991 3990 3994 +f 3989 3988 3992 +f 3990 3989 3993 +f 3995 3994 3998 +f 3992 3996 3997 +f 3993 3997 3998 +f 3998 4002 4003 +f 3997 3996 4000 +f 3998 3997 4001 +f 4002 4006 4007 +f 4000 4004 4005 +f 4001 4005 4006 +f 4006 4010 4011 +f 4005 4004 4008 +f 4006 4005 4009 +f 4011 4010 4014 +f 4008 4012 4013 +f 4009 4013 4014 +f 4014 4018 4019 +f 4013 4012 4016 +f 4014 4013 4017 +f 4019 4018 4022 +f 4016 4020 4021 +f 4017 4021 4022 +f 4023 4022 4026 +f 4021 4020 4024 +f 4022 4021 4025 +f 4027 4026 4030 +f 4024 4028 4029 +f 4025 4029 4030 +f 4031 4030 4034 +f 4029 4028 4032 +f 4030 4029 4033 +f 4034 4038 4039 +f 4032 4036 4037 +f 4033 4037 4038 +f 4038 4042 4043 +f 4037 4036 4040 +f 4038 4037 4041 +f 4043 4042 4046 +f 4040 4044 4045 +f 4041 4045 4046 +f 4046 4050 4051 +f 4045 4044 4048 +f 4046 4045 4049 +f 4051 4050 4055 +f 4048 4053 4054 +f 4049 4054 4055 +f 4056 4055 4059 +f 4053 4057 4058 +f 4055 4054 4058 +f 4060 4059 3934 +f 4058 4057 3932 +f 4058 3933 3934 +f 4069 4068 4081 +f 4066 4079 4080 +f 4065 4064 4077 +f 4063 4062 4075 +f 4071 4084 4085 +f 4069 4082 4083 +f 4067 4080 4081 +f 4066 4065 4078 +f 4063 4076 4077 +f 4061 4074 4075 +f 4072 4085 4086 +f 4071 4070 4083 +f 4076 4089 4090 +f 4074 4087 4088 +f 4086 4085 4098 +f 4083 4096 4097 +f 4082 4081 4094 +f 4079 4092 4093 +f 4078 4077 4090 +f 4076 4075 4088 +f 4085 4084 4097 +f 4082 4095 4096 +f 4080 4093 4094 +f 4079 4078 4091 +f 4089 4102 4103 +f 4088 4087 4100 +f 4098 4111 4112 +f 4096 4109 4110 +f 4095 4094 4107 +f 4092 4105 4106 +f 4090 4103 4104 +f 4089 4088 4101 +f 4097 4110 4111 +f 4095 4108 4109 +f 4094 4093 4106 +f 4092 4091 4104 +f 4103 4102 4115 +f 4100 4113 4114 +f 4112 4111 4124 +f 4110 4109 4122 +f 4107 4120 4121 +f 4105 4118 4119 +f 4103 4116 4117 +f 4101 4114 4115 +f 4110 4123 4124 +f 4109 4108 4121 +f 4107 4106 4119 +f 4105 4104 4117 +f 4115 4128 4129 +f 4114 4113 4126 +f 4124 4137 4138 +f 4123 4122 4135 +f 4120 4133 4134 +f 4119 4118 4131 +f 4117 4116 4129 +f 4114 4127 4128 +f 4124 4123 4136 +f 4122 4121 4134 +f 4119 4132 4133 +f 4117 4130 4131 +f 4129 4128 4141 +f 4126 4139 4140 +f 4138 4137 4150 +f 4136 4135 4148 +f 4133 4146 4147 +f 4131 4144 4145 +f 4130 4129 4142 +f 4127 4140 4141 +f 4137 4136 4149 +f 4135 4134 4147 +f 4132 4145 4146 +f 4131 4130 4143 +f 4142 4141 4154 +f 4140 4139 4152 +f 4150 4163 4164 +f 4149 4148 4161 +f 4146 4159 4160 +f 4144 4157 4158 +f 4142 4155 4156 +f 4140 4153 4154 +f 4149 4162 4163 +f 4148 4147 4160 +f 4146 4145 4158 +f 4144 4143 4156 +f 4155 4154 4167 +f 4153 4152 4165 +f 4163 4176 4177 +f 4161 4174 4175 +f 4159 4172 4173 +f 4158 4157 4170 +f 4155 4168 4169 +f 4153 4166 4167 +f 4163 4162 4175 +f 4161 4160 4173 +f 4159 4158 4171 +f 4156 4169 4170 +f 4167 4180 4181 +f 4165 4178 4179 +f 4176 4189 4190 +f 4175 4174 4187 +f 4173 4172 4185 +f 4170 4183 4184 +f 4169 4168 4181 +f 4167 4166 4179 +f 4175 4188 4189 +f 4173 4186 4187 +f 4171 4184 4185 +f 4170 4169 4182 +f 4180 4193 4194 +f 4178 4191 4192 +f 4190 4189 4202 +f 4187 4200 4201 +f 4186 4185 4198 +f 4183 4196 4197 +f 4182 4181 4194 +f 4180 4179 4192 +f 4189 4188 4201 +f 4186 4199 4200 +f 4184 4197 4198 +f 4183 4182 4195 +f 4193 4206 4207 +f 4192 4191 4204 +f 4202 4215 4216 +f 4200 4213 4214 +f 4199 4198 4211 +f 4196 4209 4210 +f 4194 4207 4208 +f 4193 4192 4205 +f 4201 4214 4215 +f 4199 4212 4213 +f 4198 4197 4210 +f 4196 4195 4208 +f 4207 4206 4219 +f 4204 4217 4218 +f 4216 4215 4228 +f 4213 4226 4227 +f 4211 4224 4225 +f 4209 4222 4223 +f 4207 4220 4221 +f 4205 4218 4219 +f 4214 4227 4228 +f 4213 4212 4225 +f 4211 4210 4223 +f 4209 4208 4221 +f 4219 4232 4233 +f 4218 4217 4230 +f 4228 4241 4242 +f 4226 4239 4240 +f 4225 4224 4237 +f 4223 4222 4235 +f 4221 4220 4233 +f 4218 4231 4232 +f 4228 4227 4240 +f 4226 4225 4238 +f 4223 4236 4237 +f 4221 4234 4235 +f 4233 4232 4245 +f 4230 4243 4244 +f 4242 4241 4254 +f 4240 4239 4252 +f 4237 4250 4251 +f 4235 4248 4249 +f 4234 4233 4246 +f 4231 4244 4245 +f 4241 4240 4253 +f 4239 4238 4251 +f 4236 4249 4250 +f 4235 4234 4247 +f 4246 4245 4258 +f 4244 4243 4256 +f 4254 4267 4268 +f 4253 4252 4265 +f 4250 4263 4264 +f 4248 4261 4262 +f 4246 4259 4260 +f 4244 4257 4258 +f 4253 4266 4267 +f 4252 4251 4264 +f 4250 4249 4262 +f 4248 4247 4260 +f 4259 4258 4271 +f 4257 4256 4269 +f 4267 4280 4281 +f 4265 4278 4279 +f 4263 4276 4277 +f 4262 4261 4274 +f 4259 4272 4273 +f 4257 4270 4271 +f 4266 4279 4280 +f 4265 4264 4277 +f 4263 4262 4275 +f 4260 4273 4274 +f 4271 4284 4285 +f 4269 4282 4283 +f 4281 4280 4293 +f 4279 4278 4291 +f 4277 4276 4289 +f 4274 4287 4288 +f 4273 4272 4285 +f 4271 4270 4283 +f 4280 4279 4292 +f 4277 4290 4291 +f 4275 4288 4289 +f 4274 4273 4286 +f 4284 4297 4298 +f 4282 4295 4296 +f 4294 4293 4306 +f 4291 4304 4305 +f 4290 4289 4302 +f 4287 4300 4301 +f 4286 4285 4298 +f 4284 4283 4296 +f 4293 4292 4305 +f 4290 4303 4304 +f 4288 4301 4302 +f 4287 4286 4299 +f 4297 4310 4311 +f 4296 4295 4308 +f 4306 4319 4320 +f 4304 4317 4318 +f 4303 4302 4315 +f 4300 4313 4314 +f 4298 4311 4312 +f 4297 4296 4309 +f 4305 4318 4319 +f 4304 4303 4316 +f 4302 4301 4314 +f 4300 4299 4312 +f 4310 4323 4324 +f 4308 4321 4322 +f 4320 4319 4332 +f 4318 4317 4330 +f 4316 4315 4328 +f 4313 4326 4327 +f 4311 4324 4325 +f 4310 4309 4322 +f 4318 4331 4332 +f 4316 4329 4330 +f 4315 4314 4327 +f 4312 4325 4326 +f 4323 4336 4337 +f 4322 4321 4334 +f 4332 4345 4346 +f 4330 4343 4344 +f 4329 4328 4341 +f 4327 4326 4339 +f 4325 4324 4337 +f 4322 4335 4336 +f 4332 4331 4344 +f 4330 4329 4342 +f 4327 4340 4341 +f 4325 4338 4339 +f 4337 4336 4350 +f 4334 4348 4349 +f 4346 4345 4359 +f 4344 4343 4357 +f 4341 4355 4356 +f 4340 4339 4353 +f 4338 4337 4351 +f 4335 4349 4350 +f 4345 4344 4358 +f 4343 4342 4356 +f 4340 4354 4355 +f 4338 4352 4353 +f 4351 4350 4363 +f 4349 4348 4361 +f 4359 4372 4373 +f 4358 4357 4370 +f 4355 4368 4369 +f 4354 4353 4366 +f 4351 4364 4365 +f 4349 4362 4363 +f 4358 4371 4372 +f 4357 4356 4369 +f 4355 4354 4367 +f 4352 4365 4366 +f 4364 4363 4376 +f 4362 4361 4374 +f 4373 4372 4385 +f 4370 4383 4384 +f 4368 4381 4382 +f 4367 4366 4379 +f 4364 4377 4378 +f 4362 4375 4376 +f 4372 4371 4384 +f 4370 4369 4382 +f 4368 4367 4380 +f 4365 4378 4379 +f 4376 4389 4390 +f 4374 4387 4388 +f 4385 4398 4399 +f 4384 4383 4396 +f 4382 4381 4394 +f 4379 4392 4393 +f 4378 4377 4390 +f 4376 4375 4388 +f 4384 4397 4398 +f 4382 4395 4396 +f 4380 4393 4394 +f 4379 4378 4391 +f 4389 4402 4403 +f 4387 4400 4401 +f 4399 4398 4411 +f 4396 4409 4410 +f 4395 4394 4407 +f 4393 4392 4405 +f 4391 4390 4403 +f 4389 4388 4401 +f 4398 4397 4410 +f 4395 4408 4409 +f 4393 4406 4407 +f 4391 4404 4405 +f 4402 4415 4416 +f 4401 4400 4413 +f 4411 4424 4425 +f 4409 4422 4423 +f 4408 4407 4420 +f 4406 4405 4418 +f 4403 4416 4417 +f 4402 4401 4414 +f 4410 4423 4424 +f 4408 4421 4422 +f 4407 4406 4419 +f 4404 4417 4418 +f 4416 4415 4428 +f 4413 4426 4427 +f 4425 4424 4437 +f 4423 4422 4435 +f 4421 4420 4433 +f 4418 4431 4432 +f 4416 4429 4430 +f 4415 4414 4427 +f 4423 4436 4437 +f 4421 4434 4435 +f 4420 4419 4432 +f 4418 4417 4430 +f 4428 4441 4442 +f 4426 4439 4440 +f 4437 4450 4451 +f 4435 4448 4449 +f 4434 4433 4446 +f 4432 4431 4444 +f 4430 4429 4442 +f 4427 4440 4441 +f 4437 4436 4449 +f 4435 4434 4447 +f 4432 4445 4446 +f 4430 4443 4444 +f 4442 4441 4454 +f 4439 4452 4453 +f 4451 4450 4463 +f 4449 4448 4461 +f 4446 4459 4460 +f 4444 4457 4458 +f 4443 4442 4455 +f 4440 4453 4454 +f 4450 4449 4462 +f 4447 4460 4461 +f 4445 4458 4459 +f 4444 4443 4456 +f 4455 4454 4467 +f 4453 4452 4465 +f 4463 4476 4477 +f 4462 4461 4474 +f 4459 4472 4473 +f 4457 4470 4471 +f 4455 4468 4469 +f 4453 4466 4467 +f 4462 4475 4476 +f 4461 4460 4473 +f 4459 4458 4471 +f 4457 4456 4469 +f 4468 4467 4063 +f 4466 4465 4061 +f 4477 4476 4072 +f 4474 4070 4071 +f 4472 4068 4069 +f 4471 4470 4066 +f 4468 4064 4065 +f 4466 4062 4063 +f 4476 4475 4071 +f 4474 4473 4069 +f 4472 4471 4067 +f 4469 4065 4066 +f 3935 4061 4465 +f 4465 4452 4056 +f 4452 4439 4051 +f 4439 4426 4047 +f 4047 4426 4413 +f 4043 4413 4400 +f 4039 4400 4387 +f 4387 4374 4031 +f 4031 4374 4361 +f 4361 4348 4023 +f 4348 4334 4019 +f 4334 4321 4015 +f 4015 4321 4308 +f 4011 4308 4295 +f 4007 4295 4282 +f 4282 4269 3999 +f 3999 4269 4256 +f 4256 4243 3991 +f 4243 4230 3987 +f 4230 4217 3983 +f 3983 4217 4204 +f 3979 4204 4191 +f 3975 4191 4178 +f 4178 4165 3967 +f 3967 4165 4152 +f 4152 4139 3959 +f 4139 4126 3955 +f 4126 4113 3951 +f 3951 4113 4100 +f 3947 4100 4087 +f 3943 4087 4074 +f 4074 4061 3935 +f 4480 4479 4483 +f 4480 4484 4485 +f 4479 4478 4482 +f 4484 4488 4489 +f 4482 4486 4487 +f 4483 4487 4488 +f 4488 4492 4493 +f 4487 4486 4490 +f 4488 4487 4491 +f 4493 4492 4496 +f 4490 4494 4495 +f 4491 4495 4496 +f 4496 4500 4501 +f 4495 4494 4498 +f 4496 4495 4499 +f 4501 4500 4504 +f 4498 4502 4503 +f 4499 4503 4504 +f 4505 4504 4508 +f 4503 4502 4506 +f 4504 4503 4507 +f 4509 4508 4512 +f 4506 4510 4511 +f 4507 4511 4512 +f 4513 4512 4516 +f 4511 4510 4514 +f 4512 4511 4515 +f 4516 4520 4521 +f 4514 4518 4519 +f 4515 4519 4520 +f 4520 4524 4525 +f 4518 4522 4523 +f 4520 4519 4523 +f 4525 4524 4528 +f 4522 4526 4527 +f 4523 4527 4528 +f 4528 4532 4533 +f 4527 4526 4530 +f 4528 4527 4531 +f 4533 4532 4536 +f 4530 4534 4535 +f 4531 4535 4536 +f 4537 4536 4540 +f 4534 4538 4539 +f 4536 4535 4539 +f 4541 4540 4544 +f 4539 4538 4542 +f 4539 4543 4544 +f 4544 4548 4549 +f 4542 4546 4547 +f 4544 4543 4547 +f 4548 4552 4553 +f 4547 4546 4550 +f 4547 4551 4552 +f 4552 4556 4557 +f 4551 4550 4554 +f 4552 4551 4555 +f 4557 4556 4560 +f 4554 4558 4559 +f 4555 4559 4560 +f 4560 4564 4565 +f 4559 4558 4562 +f 4560 4559 4563 +f 4565 4564 4568 +f 4562 4566 4567 +f 4563 4567 4568 +f 4569 4568 4572 +f 4567 4566 4570 +f 4568 4567 4571 +f 4572 4576 4577 +f 4570 4574 4575 +f 4571 4575 4576 +f 4576 4580 4581 +f 4575 4574 4578 +f 4576 4575 4579 +f 4580 4584 4585 +f 4578 4582 4583 +f 4579 4583 4584 +f 4584 4588 4589 +f 4583 4582 4586 +f 4584 4583 4587 +f 4589 4588 4592 +f 4586 4590 4591 +f 4587 4591 4592 +f 4592 4596 4597 +f 4591 4590 4594 +f 4592 4591 4595 +f 4597 4596 4601 +f 4594 4599 4600 +f 4595 4600 4601 +f 4602 4601 4605 +f 4600 4599 4603 +f 4601 4600 4604 +f 4606 4605 4480 +f 4603 4478 4479 +f 4604 4479 4480 +f 4615 4614 4627 +f 4612 4625 4626 +f 4611 4610 4623 +f 4609 4608 4621 +f 4618 4617 4630 +f 4615 4628 4629 +f 4613 4626 4627 +f 4612 4611 4624 +f 4609 4622 4623 +f 4607 4620 4621 +f 4619 4618 4631 +f 4617 4616 4629 +f 4622 4635 4636 +f 4620 4633 4634 +f 4632 4631 4644 +f 4629 4642 4643 +f 4628 4627 4640 +f 4626 4625 4638 +f 4624 4623 4636 +f 4622 4621 4634 +f 4631 4630 4643 +f 4628 4641 4642 +f 4626 4639 4640 +f 4624 4637 4638 +f 4635 4648 4649 +f 4634 4633 4646 +f 4644 4657 4658 +f 4642 4655 4656 +f 4641 4640 4653 +f 4639 4638 4651 +f 4636 4649 4650 +f 4635 4634 4647 +f 4643 4656 4657 +f 4642 4641 4654 +f 4640 4639 4652 +f 4637 4650 4651 +f 4648 4661 4662 +f 4646 4659 4660 +f 4658 4657 4670 +f 4656 4655 4668 +f 4653 4666 4667 +f 4651 4664 4665 +f 4649 4662 4663 +f 4648 4647 4660 +f 4656 4669 4670 +f 4654 4667 4668 +f 4653 4652 4665 +f 4651 4650 4663 +f 4661 4674 4675 +f 4660 4659 4672 +f 4670 4683 4684 +f 4668 4681 4682 +f 4667 4666 4679 +f 4665 4664 4677 +f 4663 4662 4675 +f 4661 4660 4673 +f 4670 4669 4682 +f 4667 4680 4681 +f 4665 4678 4679 +f 4663 4676 4677 +f 4675 4674 4687 +f 4672 4685 4686 +f 4684 4683 4696 +f 4682 4681 4694 +f 4679 4692 4693 +f 4678 4677 4690 +f 4676 4675 4688 +f 4673 4686 4687 +f 4683 4682 4695 +f 4681 4680 4693 +f 4678 4691 4692 +f 4676 4689 4690 +f 4688 4687 4700 +f 4686 4685 4698 +f 4696 4709 4710 +f 4695 4694 4707 +f 4692 4705 4706 +f 4691 4690 4703 +f 4688 4701 4702 +f 4686 4699 4700 +f 4695 4708 4709 +f 4694 4693 4706 +f 4692 4691 4704 +f 4689 4702 4703 +f 4701 4700 4713 +f 4699 4698 4711 +f 4710 4709 4722 +f 4707 4720 4721 +f 4705 4718 4719 +f 4704 4703 4716 +f 4701 4714 4715 +f 4699 4712 4713 +f 4709 4708 4721 +f 4707 4706 4719 +f 4705 4704 4717 +f 4702 4715 4716 +f 4713 4726 4727 +f 4711 4724 4725 +f 4723 4722 4735 +f 4721 4720 4733 +f 4719 4718 4731 +f 4716 4729 4730 +f 4715 4714 4727 +f 4713 4712 4725 +f 4721 4734 4735 +f 4719 4732 4733 +f 4717 4730 4731 +f 4716 4715 4728 +f 4726 4739 4740 +f 4724 4737 4738 +f 4736 4735 4748 +f 4733 4746 4747 +f 4732 4731 4744 +f 4730 4729 4742 +f 4728 4727 4740 +f 4726 4725 4738 +f 4735 4734 4747 +f 4732 4745 4746 +f 4730 4743 4744 +f 4728 4741 4742 +f 4739 4752 4753 +f 4738 4737 4750 +f 4748 4761 4762 +f 4746 4759 4760 +f 4745 4744 4757 +f 4743 4742 4755 +f 4740 4753 4754 +f 4739 4738 4751 +f 4747 4760 4761 +f 4745 4758 4759 +f 4744 4743 4756 +f 4741 4754 4755 +f 4753 4752 4765 +f 4750 4763 4764 +f 4762 4761 4774 +f 4759 4772 4773 +f 4758 4757 4770 +f 4755 4768 4769 +f 4753 4766 4767 +f 4752 4751 4764 +f 4760 4773 4774 +f 4758 4771 4772 +f 4757 4756 4769 +f 4755 4754 4767 +f 4765 4778 4779 +f 4764 4763 4776 +f 4774 4787 4788 +f 4772 4785 4786 +f 4771 4770 4783 +f 4769 4768 4781 +f 4767 4766 4779 +f 4765 4764 4777 +f 4774 4773 4786 +f 4771 4784 4785 +f 4769 4782 4783 +f 4767 4780 4781 +f 4779 4778 4791 +f 4776 4789 4790 +f 4788 4787 4800 +f 4786 4785 4798 +f 4783 4796 4797 +f 4782 4781 4794 +f 4780 4779 4792 +f 4777 4790 4791 +f 4787 4786 4799 +f 4785 4784 4797 +f 4782 4795 4796 +f 4780 4793 4794 +f 4792 4791 4804 +f 4790 4789 4802 +f 4800 4813 4814 +f 4799 4798 4811 +f 4796 4809 4810 +f 4795 4794 4807 +f 4792 4805 4806 +f 4790 4803 4804 +f 4799 4812 4813 +f 4798 4797 4810 +f 4796 4795 4808 +f 4793 4806 4807 +f 4805 4804 4817 +f 4803 4802 4815 +f 4814 4813 4826 +f 4811 4824 4825 +f 4809 4822 4823 +f 4808 4807 4820 +f 4805 4818 4819 +f 4803 4816 4817 +f 4813 4812 4825 +f 4811 4810 4823 +f 4809 4808 4821 +f 4806 4819 4820 +f 4817 4830 4831 +f 4815 4828 4829 +f 4826 4839 4840 +f 4825 4824 4837 +f 4823 4822 4835 +f 4820 4833 4834 +f 4819 4818 4831 +f 4817 4816 4829 +f 4825 4838 4839 +f 4823 4836 4837 +f 4821 4834 4835 +f 4820 4819 4832 +f 4830 4843 4844 +f 4828 4841 4842 +f 4840 4839 4852 +f 4837 4850 4851 +f 4836 4835 4848 +f 4834 4833 4846 +f 4832 4831 4844 +f 4830 4829 4842 +f 4839 4838 4851 +f 4836 4849 4850 +f 4834 4847 4848 +f 4832 4845 4846 +f 4843 4856 4857 +f 4842 4841 4854 +f 4852 4865 4866 +f 4850 4863 4864 +f 4849 4848 4861 +f 4847 4846 4859 +f 4844 4857 4858 +f 4843 4842 4855 +f 4851 4864 4865 +f 4849 4862 4863 +f 4848 4847 4860 +f 4845 4858 4859 +f 4857 4856 4869 +f 4855 4854 4867 +f 4866 4865 4878 +f 4864 4863 4876 +f 4862 4861 4874 +f 4859 4872 4873 +f 4857 4870 4871 +f 4856 4855 4868 +f 4864 4877 4878 +f 4862 4875 4876 +f 4861 4860 4873 +f 4859 4858 4871 +f 4869 4882 4883 +f 4868 4867 4880 +f 4878 4891 4892 +f 4877 4876 4889 +f 4874 4887 4888 +f 4873 4872 4885 +f 4871 4870 4883 +f 4868 4881 4882 +f 4878 4877 4890 +f 4876 4875 4888 +f 4873 4886 4887 +f 4871 4884 4885 +f 4883 4882 4896 +f 4880 4894 4895 +f 4892 4891 4905 +f 4890 4889 4903 +f 4887 4901 4902 +f 4885 4899 4900 +f 4884 4883 4897 +f 4881 4895 4896 +f 4891 4890 4904 +f 4889 4888 4902 +f 4886 4900 4901 +f 4885 4884 4898 +f 4897 4896 4909 +f 4895 4894 4907 +f 4905 4918 4919 +f 4904 4903 4916 +f 4901 4914 4915 +f 4899 4912 4913 +f 4897 4910 4911 +f 4895 4908 4909 +f 4904 4917 4918 +f 4903 4902 4915 +f 4901 4900 4913 +f 4899 4898 4911 +f 4910 4909 4922 +f 4908 4907 4920 +f 4919 4918 4931 +f 4916 4929 4930 +f 4914 4927 4928 +f 4913 4912 4925 +f 4910 4923 4924 +f 4908 4921 4922 +f 4918 4917 4930 +f 4916 4915 4928 +f 4914 4913 4926 +f 4911 4924 4925 +f 4922 4935 4936 +f 4920 4933 4934 +f 4931 4944 4945 +f 4930 4929 4942 +f 4928 4927 4940 +f 4925 4938 4939 +f 4924 4923 4936 +f 4922 4921 4934 +f 4930 4943 4944 +f 4928 4941 4942 +f 4926 4939 4940 +f 4925 4924 4937 +f 4935 4948 4949 +f 4933 4946 4947 +f 4945 4944 4957 +f 4942 4955 4956 +f 4941 4940 4953 +f 4938 4951 4952 +f 4937 4936 4949 +f 4935 4934 4947 +f 4944 4943 4956 +f 4941 4954 4955 +f 4939 4952 4953 +f 4938 4937 4950 +f 4948 4961 4962 +f 4947 4946 4959 +f 4957 4970 4971 +f 4955 4968 4969 +f 4954 4953 4966 +f 4951 4964 4965 +f 4949 4962 4963 +f 4948 4947 4960 +f 4956 4969 4970 +f 4954 4967 4968 +f 4953 4952 4965 +f 4951 4950 4963 +f 4962 4961 4974 +f 4959 4972 4973 +f 4971 4970 4983 +f 4968 4981 4982 +f 4966 4979 4980 +f 4964 4977 4978 +f 4962 4975 4976 +f 4960 4973 4974 +f 4969 4982 4983 +f 4967 4980 4981 +f 4966 4965 4978 +f 4964 4963 4976 +f 4975 4974 4987 +f 4973 4972 4985 +f 4983 4996 4997 +f 4981 4994 4995 +f 4979 4992 4993 +f 4978 4977 4990 +f 4976 4975 4988 +f 4973 4986 4987 +f 4983 4982 4995 +f 4981 4980 4993 +f 4978 4991 4992 +f 4976 4989 4990 +f 4988 4987 5000 +f 4985 4998 4999 +f 4997 4996 5009 +f 4995 4994 5007 +f 4992 5005 5006 +f 4991 4990 5003 +f 4989 4988 5001 +f 4986 4999 5000 +f 4996 4995 5008 +f 4994 4993 5006 +f 4991 5004 5005 +f 4989 5002 5003 +f 5001 5000 5013 +f 4999 4998 5011 +f 5009 5022 5023 +f 5008 5007 5020 +f 5005 5018 5019 +f 5004 5003 5016 +f 5001 5014 5015 +f 4999 5012 5013 +f 5008 5021 5022 +f 5007 5006 5019 +f 5005 5004 5017 +f 5002 5015 5016 +f 5014 5013 4609 +f 5012 5011 4607 +f 5022 4618 4619 +f 5020 4616 4617 +f 5018 4614 4615 +f 5017 5016 4612 +f 5014 4610 4611 +f 5012 4608 4609 +f 5021 4617 4618 +f 5020 5019 4615 +f 5018 5017 4613 +f 5015 4611 4612 +f 4481 4607 5011 +f 5011 4998 4602 +f 4998 4985 4597 +f 4985 4972 4593 +f 4593 4972 4959 +f 4589 4959 4946 +f 4585 4946 4933 +f 4933 4920 4577 +f 4577 4920 4907 +f 4907 4894 4569 +f 4894 4880 4565 +f 4880 4867 4561 +f 4561 4867 4854 +f 4557 4854 4841 +f 4553 4841 4828 +f 4828 4815 4545 +f 4545 4815 4802 +f 4802 4789 4537 +f 4789 4776 4533 +f 4776 4763 4529 +f 4529 4763 4750 +f 4525 4750 4737 +f 4521 4737 4724 +f 4724 4711 4513 +f 4513 4711 4698 +f 4698 4685 4505 +f 4685 4672 4501 +f 4672 4659 4497 +f 4497 4659 4646 +f 4493 4646 4633 +f 4489 4633 4620 +f 4620 4607 4481 +# 9976 faces, 0 coords texture + +# End of File diff --git a/assets/head_template_color_tex.png b/assets/head_template_color_tex.png new file mode 100644 index 0000000000000000000000000000000000000000..69222383d6e55af1d0ea1ef0aa114d94f8f2d977 --- /dev/null +++ b/assets/head_template_color_tex.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da8bb9232572dbc286aae59cc56be1a8ac4d5c97b58c0275eda8b7b63e2828bf +size 191988 diff --git a/assets/test_rigid.ply b/assets/test_rigid.ply new file mode 100644 index 0000000000000000000000000000000000000000..84068f719c3144923c618c05c8449d28747db02e --- /dev/null +++ b/assets/test_rigid.ply @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:427556b014087cf1aea6bbcddec815dbcc5c55a3334de1786a362068e716cfe6 +size 210354 diff --git a/assets/uv_mask_eyes.png b/assets/uv_mask_eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..0fc31d54747a523ad0c0d34beeb3ab81a140293b Binary files /dev/null and b/assets/uv_mask_eyes.png differ diff --git a/assets/uv_valid_verty.npy b/assets/uv_valid_verty.npy new file mode 100644 index 0000000000000000000000000000000000000000..90a1a3f588373ead5684b77fc33a3f1b5244543e --- /dev/null +++ b/assets/uv_valid_verty.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84f36cdf5ebe1cb4db88f3126ef82c5a59a48ca45ea396ffa23e4b50ac0ce06b +size 14424 diff --git a/assets/uv_valid_verty_noEyes.npy b/assets/uv_valid_verty_noEyes.npy new file mode 100644 index 0000000000000000000000000000000000000000..9ef6a4cf369f24a04d012abecd93388e2b73e67c --- /dev/null +++ b/assets/uv_valid_verty_noEyes.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7428896b5b1d4c9db6c0c1e2a4e98c412e95cb62243e5463311cb714c8f3820c +size 9832 diff --git a/assets/uv_valid_verty_noEyes_debug.npy b/assets/uv_valid_verty_noEyes_debug.npy new file mode 100644 index 0000000000000000000000000000000000000000..3b9c5dcefc79313465bb4c30984f23118218d725 --- /dev/null +++ b/assets/uv_valid_verty_noEyes_debug.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bea26d06186de1f51d0d9687e4eb723a816911fe224c46ff328c0664f7e68bd5 +size 15096 diff --git a/assets/uv_valid_verty_noEyes_noEyeRegion_debug_wEars.npy b/assets/uv_valid_verty_noEyes_noEyeRegion_debug_wEars.npy new file mode 100644 index 0000000000000000000000000000000000000000..64901854b71e752c946fba4bd4756aa30182be5f --- /dev/null +++ b/assets/uv_valid_verty_noEyes_noEyeRegion_debug_wEars.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:379a44c27fcc3e05818588f88073d6dd53a48c3ef11bb56afe7d03657f256fb6 +size 19912 diff --git a/bin/release.sh b/bin/release.sh new file mode 100644 index 0000000000000000000000000000000000000000..ac2734abf8214c08f07872629ea36cfa181fde04 --- /dev/null +++ b/bin/release.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +while [[ "$#" -gt 0 ]]; do + case $1 in + -t|--test) test=1 ;; + *) echo "Unknown parameter: $1"; exit 1 ;; + esac + shift +done + +if [[ $test ]]; then + twine_params="--repository testpypi" +else + twine_params="" +fi + +cd "${0%/*}/.." +rm -r dist/* +python -m build +twine upload $twine_params dist/* +# Username: tobias.kirschstein diff --git a/configs/base.yaml b/configs/base.yaml new file mode 100644 index 0000000000000000000000000000000000000000..359a1b66b8ac945c2848db64cb85f12299f00a7f --- /dev/null +++ b/configs/base.yaml @@ -0,0 +1,234 @@ +gpu_id: [0] #[4,5,6,7] + +exp_name: LaRa/release-test-head-cluster + +n_views: 2 + +reconstruction_folder: recs + +flame_folder : /home/giebenhain/face-tracking +flame_folder_assets : /home/giebenhain/face-tracking/flame/ +flame_base_mesh: /home/giebenhain/PycharmProjects/non-rigid-registration/template/test_rigid.ply +exp_tag : _ + +viz_uv_mesh : False + +model: + attn_drop : 0.2 + model_type: 'flame_params' + prediction_type: 'normals' + network_type: 'transformer' + encoder_backbone: 'vit_small_patch16_224.dino' #'vit_base_patch16_224.dino' #'vit_base_patch16_224.dino' # ['vit_small_patch16_224.dino','vit_base_patch16_224.dino'] + + n_groups: [16] # n_groups for local attention + n_offset_groups: 32 # offset radius of 1/n_offset_groups of the scene size + + K: 2 # primitives per-voxel + sh_degree: 1 # view dependent color + + num_layers: 6 #6 #12 + num_heads: 8 #16 + + view_embed_dim: 16 #32 + embedding_dim: 256 #128 #256 + + vol_feat_reso: 16 + vol_embedding_reso: 32 + + vol_embedding_out_dim: 40 #80 + + ckpt_path: null # specify a ckpt path if you want to continue training + + flame_dim: 101 + + finetune_backbone: False + + feature_map_type: DINO + + pred_conf: False + + pred_disentangled : False + + nocs : True + + + + use_pos_enc : False + + conv_dec : True + + use_plucker : False + use_uv_enc : True + + n_facial_components : 0 + + render_super : False + + flame_shape_dim : 300 + flame_expr_dim : 100 + + prior_input : False + use_neutral : True + + reg_inner : True + n_inner_steps : 0 #20 + + corresp_align : False + + pred_dim : 4 + + outer_vertex_mask : False + + downsample_inps : False + + flame2020 : True + use_mica : False + + branched : True + + + +train_dataset: + dataset_name: gobjeverse + data_root: /mnt/rohan/cluster/andram/sgiebenhain/objaverse_imposter8_cropped_prepped_00.hdf5 #cluster/andram/sgiebenhain/objaverse_imposter3_prepped_00.hdf5 #/mnt/hdd/dataset/gobjaverse/gobjaverse_part_01.h5 #/mnt/rohan /home/giebenhain/proj4/objaverse_imposter2_prepped_00.hdf5 #dataset/gobjaverse/gobjaverse.h5 + + split: train + img_size: [512,512] # image resolution + n_group: ${n_views} # image resolution + n_scenes: 3000000 + +itl: + lr_expr: 0.1 + lr_id: 0.05 + lr_cam_pos: 0.0001 #0.005 + lr_cam_rot: 0.001 #0.01 + lr_fl: 0.01 #0.03 + lr_pp: 0.00001 #0.002 + lr_jaw : 0.0001 + + lr_expr_outer : 0.00001 + lr_shape_outer : 0.00001 + lr_cam_pos_outer : 0.000001 + lr_cam_rot_outer : 0.000001 + lr_fl_outer : 0.000001 + lr_pp_outer : 0.000001 + + noise_strenght : 0.5 + + ffwd_init : True + ffwd_init_flame : True + ffwd_flame_weight : 0.01 + + scale_reg_id : 10 + scale_reg_ex : 10 + scale_confidence : 10 + + n_steps_cam : 0 + + use_uv : True + use_n : True + use_ncan : False + use_disp : False + + reg_conf: 0.01 + totvar_conf : 1.0 + + uv_loss_mult : 3 + n_loss_mult : 0.0 + + const_conf : False + uv_l2 : False + n_mask_new : False + + reg_shape: 0.01 + reg_shape_ffwd: 0.01 + reg_expr: 0.01 + reg_expr_ffwd: 0.01 + + rnd_warmup : False + use_outer_normals : True + normal_inp : True + rnd_n_inner : False + n_inner_min : 20 + n_inner_max : 100 + fov_mult : 1.0 + + outer_l2 : True + + pred_face_region : False + sup_back_more : True + + +data: + load_normal: False + load_flame: False + load_uv : False + load_pos_map : False + load_depth : False + load_verts : False + load_arcface : False + load_albedo : False + load_nocs : False + mirror_aug : False + disable_aug: False + disable_color_aug: False + use_nphm : True + use_ava : True + use_facescape : True + use_celeba : False + use_lyhm : True + use_stirling : True + use_video : False + use_cafca : True + use_now : False + use_mimicme : True + + add_occ : False + + use_p3dmm : True + + + load_consist : False + load_prior : False + + overfit : False + + more_verts: False + + load_facer: False + + + +test_dataset: + dataset_name: gobjeverse + data_root: /mnt/rohan/cluster/andram/sgiebenhain/objaverse_imposter8_cropped_prepped_00.hdf5 #cluster/andram/sgiebenhain/objaverse_imposter3_prepped_00.hdf5 #/mnt/hdd/dataset/gobjaverse/gobjaverse_part_01.h5 #/mnt/rohan /home/giebenhain/proj4/objaverse_imposter2_prepped_00.hdf5 #dataset/gobjaverse/gobjaverse.h5 + + split: test + img_size: [512,512] + n_group: ${n_views} + n_scenes: 3000000 + +train: + batch_size: 8 #3 + lr: 4e-4 #1e-2 #4e-4 + lr_backbone: 1e-5 #4e-4 + beta1: 0.9 + beta2: 0.95 #0.95 + weight_decay: 0.05 + warmup_iters: 200 + n_epoch: 3000 #3000 + limit_train_batches: 0.05 #0.2 #1.0 #0.1 #1.0 #0.2 + limit_val_batches: 0.02 #0.05 #1 #0.02 + check_val_every_n_epoch: 1 + start_fine: 5000 + use_rand_views: False + duster_loss: False + start_2d_vertex_loss : 500 #2500 + start_normal_render_loss : 1000 #5000 + +test: + batch_size: 8 #3 + +logger: + name: wandb #tensorboard + dir: logs/${exp_name} diff --git a/configs/tracking.yaml b/configs/tracking.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2e27204a7301741b04ac8b9afea3517404206797 --- /dev/null +++ b/configs/tracking.yaml @@ -0,0 +1,110 @@ +config_name : test + +batch_size : 16 +num_views : 1 +size : 256 +image_size : [256, 256] # use this instead hardcoding a bunch of 512 and 256 + +data_folder : none +p3dmm_folder : none + +extra_cam_steps : False +big_normal_mask : False + +start_frame : 0 + +num_shape_params : 300 +num_exp_params : 100 +tex_params : 140 +iters : 200 #800 #400 + +no_lm : False +use_eyebrows : False +use_mouth_lmk : True +no_pho : True +no_sh : True +disable_edge : False + +keyframes : [] + +ignore_mica : False +flame2023 : False + +uv_map_super : 2000.0 #500.0 #100 #2001.0 #5000.0 #2000.0 +normal_super : 1000.0 #202.0 +normal_super_can : 0.0 +sil_super : 500 + + +uv_loss: + stricter_uv_mask : False + delta_uv : 0.00005 #0.00005 #0.0005 #0.00005 + delta_uv_fine : 0.00005 #0.00005 #0.0005 #0.00005 + dist_uv : 20 #20 #15 + dist_uv_fine : 20 #35 #20 #15 + + +occ_filter : True + + +lr_id : 0.002 #0.003 #0.006 #0.003 +lr_exp : 0.005 # 0.005 #0.01 #0.01 #0.005 +lr_jaw : 0.005 #0.003 +lr_neck : 0.001 #0.0005 +lr_R : 0.005 #0.005 #0.002 #0.01# 0.0001 +lr_t : 0.001 #0.002 #0.001 #0.0005 #0.0005 +lr_f : 0.1 #0.05 #0.01 #0.001 +lr_pp : 0.00005 + +w_pho : 150 +w_lmks : 3000 +w_lmks_mouth : 1000 +w_lmks_68 : 1000 +w_lmks_lid : 1000 +w_lmks_iris : 1000 +w_lmks_oval : 2000 +w_lmks_star : 0 + +include_neck : True + +w_shape : 0.2 +w_shape_general : 0.05 +w_exp : 0.05 +w_jaw : 0.01 +w_neck : 0.1 + +n_fine : False +low_overhead : False + +delta_n : 0.33 + +global_camera : True +global_iters : 5000 + +reg_smooth_exp : 50.0 +reg_smooth_eyes : 10.0 +reg_smooth_eyelids : 2.0 +reg_smooth_jaw : 50.0 +reg_smooth_neck : 1000.0 +reg_smooth_R : 2000.0 +reg_smooth_t : 15200.0 +reg_smooth_pp : 420.0 +reg_smooth_fl : 420.0 + +reg_smooth_mult : 1.0 + +uv_l2 : True +normal_l2 : False +smooth : True +normal_mask_ksize : 13 + +early_stopping_delta : 5.0 + +early_exit : False + +draw_uv_corresp : False + +save_landmarks : False + +save_meshes : True +delete_preprocessing : False \ No newline at end of file diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000000000000000000000000000000000000..99d055340643cb62627ecf1e65b2b91c8c1e0d14 --- /dev/null +++ b/environment.yml @@ -0,0 +1,76 @@ +# Note: conda dependencies have only 1 "=" +# pip dependencies have 2 "==" +# Fuse pip dependencies together under one " - pip" item +# Otherwise, only some of the are installed, because conda creates a temporary requirements.txt file +# only the last -pip section + +name: p3dmm + +channels: + - pytorch + - conda-forge + - defaults + +dependencies: + - python=3.9 + - pip + - jupyter + + # CUDA and PyTorch + - gcc<12 # Needs to be <12 because nvcc does not like gcc>11 + - gxx + - torchvision + + - + - nvidia/label/cuda-11.8.0::cuda-nvcc # for nvcc + - nvidia/label/cuda-11.8.0::cuda-cccl + - nvidia/label/cuda-11.8.0::cuda-cudart + - nvidia/label/cuda-11.8.0::cuda-cudart-dev # for cuda_runtime.h + - nvidia/label/cuda-11.8.0::libcusparse + - nvidia/label/cuda-11.8.0::libcusparse-dev + - nvidia/label/cuda-11.8.0::libcublas + - nvidia/label/cuda-11.8.0::libcublas-dev + - nvidia/label/cuda-11.8.0::libcurand + - nvidia/label/cuda-11.8.0::libcurand-dev + - nvidia/label/cuda-11.8.0::libcusolver + - nvidia/label/cuda-11.8.0::libcusolver-dev + - pip: + + - pip: + - --extra-index-url https://download.pytorch.org/whl/cu118 + - torch==2.7+cu118 + - torchvision==0.22+cu118 + - tyro + - environs + + - omegaconf + - dreifus + - wandb + - pytorch_lightning + - opencv-python + - tensorboard + - wandb + - scikit-image + - pyvista + - chumpy + - h5py + - einops + - ninja + - mediapy + - face-alignment==1.3.3 + - numpy==1.23 + + + - git+https://github.com/facebookresearch/pytorch3d.git@stable + - git+https://github.com/NVlabs/nvdiffrast.git + + # for MICA + - insightface + - onnxruntime + - loguru + - yacs + + # facer + - distinctipy + - validators + - timm diff --git a/example_videos/ex1.mp4 b/example_videos/ex1.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..388b2e40e5316b6f7ca336ecaa9c8bd5c421aade --- /dev/null +++ b/example_videos/ex1.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bcf05f5d3ff2dabaad3ec3562b1ea463bdc2324ffa1cb5875f4468f5341e5f4 +size 662545 diff --git a/example_videos/ex2.mp4 b/example_videos/ex2.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..db341e5a57ab755e9b06cec07e6a3bdf6d33305d --- /dev/null +++ b/example_videos/ex2.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71f5bc28eb0bc3fb23dfe4079e303c382e1036b25553c12a8dda208b5ebb9a44 +size 822778 diff --git a/example_videos/ex3.mp4 b/example_videos/ex3.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..304526875510c961fe315b427fcab87d061a98d6 --- /dev/null +++ b/example_videos/ex3.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e5127eb860778a01b0b33ff0a5760f604a29232f1cdd695fdc8499300d607a6 +size 326767 diff --git a/example_videos/ex4.mp4 b/example_videos/ex4.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..0f6f4b9532c27563e00873067438eda126ca4874 --- /dev/null +++ b/example_videos/ex4.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8f71ee7d60490725cb463b9da247c2b3d08f9d01a8dbd566726b599cee53199 +size 375763 diff --git a/example_videos/ex5.mp4 b/example_videos/ex5.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..b7a625e1d78c7c50bdec1a5a784a0092e943d494 --- /dev/null +++ b/example_videos/ex5.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05a0c8807a31740243d9a1e5ae34f3fd4990701202ffae256e33e70e1f5fa5a9 +size 587737 diff --git a/install_preprocessing_pipeline.sh b/install_preprocessing_pipeline.sh new file mode 100644 index 0000000000000000000000000000000000000000..5f72de4c3b93d318f2c2006d68c4d76517154c63 --- /dev/null +++ b/install_preprocessing_pipeline.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +cd src/pixel3dmm/preprocessing/ + +# facer repository +git clone git@github.com:FacePerceiver/facer.git +cd facer +cp ../replacement_code/farl.py facer/face_parsing/farl.py +cp ../replacement_code/facer_transform.py facer/transform.py +pip install -e . +cd .. + +# MICA +git clone git@github.com:Zielon/MICA.git +cd MICA +cp ../replacement_code/mica_demo.py demo.py +cp ../replacement_code/mica.py micalib/models/mica.py +./install.sh +cd .. + +#TODO: Maybe need to copy these flame weights to trackign/FLAME as well, or ideally adjust some paths instead + + +# PIPnet +git clone https://github.com/jhb86253817/PIPNet.git +cd PIPNet +cd FaceBoxesV2/utils +sh make.sh +cd ../.. +mkdir snapshots +mkdir snapshots/WFLW/ +mkdir snapshots/WFLW/pip_32_16_60_r18_l2_l1_10_1_nb10/ +gdown --id 1nVkaSbxy3NeqblwMTGvLg4nF49cI_99C -O snapshots/WFLW/pip_32_16_60_r18_l2_l1_10_1_nb10/epoch59.pth +#mkdir snapshots/WFLW/pip_32_16_60_r101_l2_l1_10_1_nb10/ +#gdown --id 1Jb97z5Z5ca61-6W2RDOK0e2w_RlbeWgS -O snapshots/WFLW/pip_32_16_60_r101_l2_l1_10_1_nb10/epoch59.pth + + +cd ../../../../ +mkdir pretrained_weights +cd pretrained_weights +gdown --id 1SDV_8_qWTe__rX_8e4Fi-BE3aES0YzJY -O ./uv.ckpt +gdown --id 1KYYlpN-KGrYMVcAOT22NkVQC0UAfycMD -O ./normals.ckpt diff --git a/media/banner.gif b/media/banner.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b28b9b47a6d44f174984511f0e74ebb5bc412f0 --- /dev/null +++ b/media/banner.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a8efa82d3b64240743c3b5870f04bce8def66e8ee2021d315dfa649f6837ae2 +size 3126233 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000000000000000000000000000000000..2f57105c929949930c4901acf057b171e5f8f521 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,35 @@ +[build-system] +requires = ["setuptools>=61.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "pixel3dmm" # DON'T FORGET TO REMOVE empty FROM git remote!!! +version = "0.0.1" +description = "<<>>" +authors = [ + { name = "Simon Giebenhain", email = "simon.giebenhain@tum.de" }, +] +readme = "README.md" +license = { text = "CC BY-NC 4.0" } +requires-python = ">=3.9.0" +classifiers = [ + "Development Status :: 3 - Alpha", + "Programming Language :: Python :: 3", + "Operating System :: OS Independent" +] +# urls = { Documentation = "<<>>" } +# Main dependencies +dependencies = [ +] + +[project.optional-dependencies] +# Development packages, install via <<>>[dev] +dev = [ +] + +[project.scripts] +# E.g., ns-download-data = "scripts.downloads.download_data:entrypoint" + +[tool.setuptools.packages.find] +where = ["src"] +include = ["pixel3dmm*"] # Keep the '*', otherwise submodules are not found diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..f2fe209421e282bb1a92e717deea5e05a5a765a8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,26 @@ +numpy==1.23 +omegaconf +opencv-python +tensorboard +wandb +scikit-image +pyvista +dreifus +chumpy +h5py +pytorch_lightning +einops +mediapy +face-alignment==1.3.3 +ninja + +insightface +onnxruntime +loguru +yacs + +distinctipy +validators +timm +tyro +environs \ No newline at end of file diff --git a/scripts/.gitkeep b/scripts/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/scripts/network_inference.py b/scripts/network_inference.py new file mode 100644 index 0000000000000000000000000000000000000000..2f03830e36336bd866f027f73cd08df86fa70cd6 --- /dev/null +++ b/scripts/network_inference.py @@ -0,0 +1,229 @@ +import traceback + +from tqdm import tqdm +import os +import torch +import numpy as np +from PIL import Image +from omegaconf import OmegaConf +from time import time + +from pixel3dmm.utils.uv import uv_pred_to_mesh +from pixel3dmm.lightning.p3dmm_system import system as p3dmm_system +#from pixel3dmm.lightning.system_flame_params_legacy import system as system_flame_params_legacy +from pixel3dmm import env_paths + + + +def pad_to_3_channels(img): + if img.shape[-1] == 3: + return img + elif img.shape[-1] == 1: + return np.concatenate([img, np.zeros_like(img[..., :1]), np.zeros_like(img[..., :1])], axis=-1) + elif img.shape[-1] == 2: + return np.concatenate([img, np.zeros_like(img[..., :1])], axis=-1) + else: + raise ValueError('too many dimensions in prediction type!') + +def gaussian_fn(M, std): + n = torch.arange(0, M) - (M - 1.0) / 2.0 + sig2 = 2 * std * std + w = torch.exp(-n ** 2 / sig2) + return w + +def gkern(kernlen=256, std=128): + """Returns a 2D Gaussian kernel array.""" + gkern1d_x = gaussian_fn(kernlen, std=std * 5) + gkern1d_y = gaussian_fn(kernlen, std=std) + gkern2d = torch.outer(gkern1d_y, gkern1d_x) + return gkern2d + + +valid_verts = np.load(f'{env_paths.VALID_VERTICES_WIDE_REGION}') + +def main(cfg): + + if cfg.model.prediction_type == 'flame_params': + cfg.data.mirror_aug = False + + # data loader + if cfg.model.feature_map_type == 'DINO': + feature_map_size = 32 + elif cfg.model.feature_map_type == 'sapiens': + feature_map_size = 64 + + batch_size = 1 #cfg.inference_batch_size + + checkpoints = { + 'uv_map': f"{env_paths.CKPT_UV_PRED}", + 'normals': f"{env_paths.CKPT_N_PRED}", + } + + + model_checkpoint = checkpoints[cfg.model.prediction_type] + + model = None + + + prediction_types = cfg.model.prediction_type.split(',') + + + conv = torch.nn.Conv2d(in_channels=1, out_channels=1, kernel_size=11, bias=False, padding='same') + g_weights = gkern(11, 2) + g_weights /= torch.sum(g_weights) + conv.weight = torch.nn.Parameter(g_weights.unsqueeze(0).unsqueeze(0)) + + OUT_NAMES = str(cfg.video_name).split(',') + + print(f''' + <<<<<<<< STARTING PIXEL3DMM INFERENCE for {cfg.video_name} in {prediction_types} MODE >>>>>>>> + ''') + + for OUT_NAME in OUT_NAMES: + folder = f'{env_paths.PREPROCESSED_DATA}/{OUT_NAME}/' + IMAGE_FOLDER = f'{folder}/cropped' + SEGEMNTATION_FOLDER = f'{folder}/seg_og/' + + out_folders = {} + out_folders_wGT = {} + out_folders_viz = {} + + for prediction_type in prediction_types: + out_folders[prediction_type] = f'{env_paths.PREPROCESSED_DATA}/{OUT_NAME}/p3dmm/{prediction_type}/' + out_folders_wGT[prediction_type] = f'{env_paths.PREPROCESSED_DATA}/{OUT_NAME}/p3dmm_wGT/{prediction_type}/' + os.makedirs(out_folders[prediction_type], exist_ok=True) + os.makedirs(out_folders_wGT[prediction_type], exist_ok=True) + out_folders_viz[prediction_type] = f'{env_paths.PREPROCESSED_DATA}/{OUT_NAME}/p3dmm_extraViz/{prediction_type}/' + os.makedirs(out_folders_viz[prediction_type], exist_ok=True) + + + image_names = os.listdir(f'{IMAGE_FOLDER}') + image_names.sort() + + if os.path.exists(out_folders[prediction_type]): + if len(os.listdir(out_folders[prediction_type])) == len(image_names): + return + + if model is None: + model = p3dmm_system.load_from_checkpoint(model_checkpoint, strict=False) + # TODO: disable randomness, dropout, etc... + # model.eval() + model = model.cuda() + + + + for i in tqdm(range(len(image_names))): + #if not int(image_names[i].split('_')[0]) in [17, 175, 226, 279]: + # continue + try: + + for i_batch in range(batch_size): + img = np.array(Image.open(f'{IMAGE_FOLDER}/{image_names[i]}').resize((512, 512))) / 255 # need 512,512 images as input; normalize to [0, 1] range + img = torch.from_numpy(img)[None, None].float().cuda() # 1,1,512,512,3 + img_seg = np.array(Image.open(f'{SEGEMNTATION_FOLDER}/{image_names[i][:-4]}.png').resize((512, 512), Image.NEAREST)) + if len(img_seg.shape) == 3: + img_seg = img_seg[..., 0] + #img_seg = np.array(Image.open(f'{SEGEMNTATION_FOLDER}/{int(image_names[i][:-4])*3:05d}.png').resize((512, 512), Image.NEAREST)) + mask = ((img_seg == 2) | ((img_seg > 3) & (img_seg < 14)) ) & ~(img_seg==11) + mask = torch.from_numpy(mask).long().cuda()[None, None] # 1, 1, 512, 512 + #mask = torch.ones_like(img[..., 0]).cuda().bool() + batch = { + 'tar_msk': mask, + 'tar_rgb': img, + } + batch_mirrored = { + 'tar_rgb': torch.flip(batch['tar_rgb'], dims=[3]).cuda(), + 'tar_msk': torch.flip(batch['tar_msk'], dims=[3]).cuda(), + } + + + # execute model twice, once with original image, once with mirrored original image, + # and then average results after undoing the mirroring operation on the prediction + with torch.no_grad(): + output, conf = model.net(batch) + output_mirrored, conf = model.net(batch_mirrored) + + if 'uv_map' in output: + fliped_uv_pred = torch.flip(output_mirrored['uv_map'], dims=[4]) + fliped_uv_pred[:, :, 0, :, :] *= -1 + fliped_uv_pred[:, :, 0, :, :] += 2*0.0075 + output['uv_map'] = (output['uv_map'] + fliped_uv_pred)/2 + if 'normals' in output: + fliped_uv_pred = torch.flip(output_mirrored['normals'], dims=[4]) + fliped_uv_pred[:, :, 0, :, :] *= -1 + output['normals'] = (output['normals'] + fliped_uv_pred)/2 + if 'disps' in output: + fliped_uv_pred = torch.flip(output_mirrored['disps'], dims=[4]) + fliped_uv_pred[:, :, 0, :, :] *= -1 + output['disps'] = (output['disps'] + fliped_uv_pred)/2 + + + + for prediction_type in prediction_types: + for i_batch in range(batch_size): + + i_view = 0 + gt_rgb = batch['tar_rgb'] + + # normalize to [0,1] range + if prediction_type == 'uv_map': + tmp_output = torch.clamp((output[prediction_type][i_batch, i_view] + 1) / 2, 0, 1) + elif prediction_type == 'disps': + tmp_output = torch.clamp((output[prediction_type][i_batch, i_view] + 50) / 100, 0, 1) + elif prediction_type in ['normals', 'normals_can']: + tmp_output = output[prediction_type][i_batch, i_view] + tmp_output = tmp_output / torch.norm(tmp_output, dim=0).unsqueeze(0) + tmp_output = torch.clamp((tmp_output + 1) / 2, 0, 1) + # undo "weird" convention of normals that I used for preprocessing + tmp_output = torch.stack( + [tmp_output[0, ...], 1 - tmp_output[2, ...], 1 - tmp_output[1, ...]], + dim=0) + + + content = [ + gt_rgb[i_batch, i_view].detach().cpu().numpy(), + pad_to_3_channels(tmp_output.permute(1, 2, 0).detach().cpu().float().numpy()), + ] + + catted = (np.concatenate(content, axis=1) * 255).astype(np.uint8) + Image.fromarray(catted).save(f'{out_folders_wGT[prediction_type]}/{image_names[i]}') + + + Image.fromarray( + pad_to_3_channels( + tmp_output.permute(1, 2, 0).detach().cpu().float().numpy() * 255).astype( + np.uint8)).save( + f'{out_folders[prediction_type]}/{image_names[i][:-4]}.png') + + + # this visulization is quite slow, therefore disable it per default + if prediction_type == 'uv_map' and cfg.viz_uv_mesh: + to_show_non_mirr = uv_pred_to_mesh( + output[prediction_type][i_batch:i_batch + 1, ...], + batch['tar_msk'][i_batch:i_batch + 1, ...], + batch['tar_rgb'][i_batch:i_batch + 1, ...], + right_ear = [537, 1334, 857, 554, 941], + left_ear = [541, 476, 237, 502, 286], + ) + + Image.fromarray(to_show_non_mirr).save(f'{out_folders_viz[prediction_type]}/{image_names[i]}') + + except Exception as exx: + traceback.print_exc() + pass + + print(f''' + <<<<<<<< FINISHED PIXEL3DMM INFERENCE for {cfg.video_name} in {prediction_types} MODE >>>>>>>> + ''') + + + + + +if __name__ == '__main__': + base_conf = OmegaConf.load(f'{env_paths.CODE_BASE}/configs/base.yaml') + + cli_conf = OmegaConf.from_cli() + cfg = OmegaConf.merge(base_conf, cli_conf) + + main(cfg) \ No newline at end of file diff --git a/scripts/run_cropping.py b/scripts/run_cropping.py new file mode 100644 index 0000000000000000000000000000000000000000..a270fd6619e5fc32e59abf88cb9fd63db01de9d0 --- /dev/null +++ b/scripts/run_cropping.py @@ -0,0 +1,107 @@ +import traceback +import os +import sys +import importlib + +import mediapy +from PIL import Image +import tyro + +import torchvision.transforms as transforms + + +from pixel3dmm import env_paths +sys.path.append(f'{env_paths.CODE_BASE}/src/pixel3dmm/preprocessing/PIPNet/FaceBoxesV2/') +from pixel3dmm.preprocessing.pipnet_utils import demo_image +from pixel3dmm import env_paths + + + + +def run(exp_path, image_dir, start_frame = 0, + vertical_crop : bool = False, + static_crop : bool = False, + max_bbox : bool = False, + disable_cropping : bool = False, + ): + experiment_name = exp_path.split('/')[-1][:-3] + data_name = exp_path.split('/')[-2] + config_path = '.experiments.{}.{}'.format(data_name, experiment_name) + + my_config = importlib.import_module(config_path, package='pixel3dmm.preprocessing.PIPNet') + Config = getattr(my_config, 'Config') + cfg = Config() + cfg.experiment_name = experiment_name + cfg.data_name = data_name + + save_dir = os.path.join(f'{env_paths.CODE_BASE}/src/pixel3dmm/preprocessing/PIPNet/snapshots', cfg.data_name, cfg.experiment_name) + + + + normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406], + std=[0.229, 0.224, 0.225]) + preprocess = transforms.Compose( + [transforms.Resize((cfg.input_size, cfg.input_size)), transforms.ToTensor(), normalize]) + + + #for pid in pids: + pid = "FaMoS_180424_03335_TA_selfie_IMG_0092.jpg" + pid = "FaMoS_180426_03336_TA_selfie_IMG_0152.jpg" + + + + demo_image(image_dir, pid, save_dir, preprocess, cfg, cfg.input_size, cfg.net_stride, cfg.num_nb, + cfg.use_gpu, + start_frame=start_frame, vertical_crop=vertical_crop, static_crop=static_crop, max_bbox=max_bbox, + disable_cropping=disable_cropping) + + +def unpack_images(base_path, video_or_images_path): + if not os.path.exists(base_path): + os.makedirs(base_path, exist_ok=True) + if os.path.isdir(video_or_images_path): + files = os.listdir(f'{video_or_images_path}') + files.sort() + if len(os.listdir(base_path)) == len(files): + print(f''' + <<<<<<<< ALREADY COMPLETED IMAGE CROPPING for {video_or_images_path}, SKIPPING! >>>>>>>> + ''') + return + for i, file in enumerate(files): + I = Image.open(f'{video_or_images_path}/{file}') + I.save(f'{base_path}/{i:05d}.jpg', quality=95) + elif video_or_images_path.endswith('.jpg') or video_or_images_path.endswith('.jpeg') or video_or_images_path.endswith('.png'): + Image.open(video_or_images_path).save(f'{base_path}/{0:05d}.jpg', quality=95) + else: + frames = mediapy.read_video(f'{video_or_images_path}') + if len(frames) == len(os.listdir(base_path)): + return + for i, frame in enumerate(frames): + Image.fromarray(frame).save(f'{base_path}/{i:05d}.jpg', quality=95) + +def main(video_or_images_path : str, + max_bbox : bool = True, # not used + disable_cropping : bool = False): + if os.path.isdir(video_or_images_path): + video_name = video_or_images_path.split('/')[-1] + else: + video_name = video_or_images_path.split('/')[-1][:-4] + + base_path = f'{env_paths.PREPROCESSED_DATA}/{video_name}/rgb/' + + unpack_images(base_path, video_or_images_path) + + if os.path.exists(f'{env_paths.PREPROCESSED_DATA}/{video_name}/cropped/'): + if len(os.listdir(base_path)) == len(os.listdir(f'{env_paths.PREPROCESSED_DATA}/{video_name}/cropped/')): + return + + + start_frame = -1 + run('experiments/WFLW/pip_32_16_60_r18_l2_l1_10_1_nb10.py', base_path, start_frame=start_frame, vertical_crop=False, + static_crop=True, max_bbox=max_bbox, disable_cropping=disable_cropping) + # run('experiments/WFLW/pip_32_16_60_r101_l2_l1_10_1_nb10.py', base_path, start_frame=start_frame, vertical_crop=False, static_crop=True) + + +if __name__ == '__main__': + tyro.cli(main) + diff --git a/scripts/run_facer_segmentation.py b/scripts/run_facer_segmentation.py new file mode 100644 index 0000000000000000000000000000000000000000..076524e51045c0a22b79b17d00a1db715b625c70 --- /dev/null +++ b/scripts/run_facer_segmentation.py @@ -0,0 +1,221 @@ +import os +import sys +import traceback + +from math import ceil + +import PIL.Image +import torch +import distinctipy +import matplotlib.pyplot as plt +from PIL import Image +import numpy as np +import facer +import tyro + +from pixel3dmm import env_paths + +colors = distinctipy.get_colors(22, rng=0) + + +def viz_results(img, seq_classes, n_classes, suppress_plot = False): + + seg_img = np.zeros([img.shape[-2], img.shape[-1], 3]) + #distinctipy.color_swatch(colors) + bad_indices = [ + 0, # background, + 1, # neck + # 2, skin + 3, # cloth + 4, # ear_r (images-space r) + 5, # ear_l + # 6 brow_r + # 7 brow_l + # 8, # eye_r + # 9, # eye_l + # 10 noise + # 11 mouth + # 12 lower_lip + # 13 upper_lip + 14, # hair, + # 15, glasses + 16, # ?? + 17, # earring_r + 18, # ? + ] + bad_indices = [] + + for i in range(n_classes): + if i not in bad_indices: + seg_img[seq_classes[0, :, :] == i] = np.array(colors[i])*255 + + if not suppress_plot: + plt.imshow(seg_img.astype(np.uint(8))) + plt.show() + return Image.fromarray(seg_img.astype(np.uint8)) + +def get_color_seg(img, seq_classes, n_classes): + + seg_img = np.zeros([img.shape[-2], img.shape[-1], 3]) + colors = distinctipy.get_colors(n_classes+1, rng=0) + #distinctipy.color_swatch(colors) + bad_indices = [ + 0, # background, + 1, # neck + # 2, skin + 3, # cloth + 4, # ear_r (images-space r) + 5, # ear_l + # 6 brow_r + # 7 brow_l + # 8, # eye_r + # 9, # eye_l + # 10 noise + # 11 mouth + # 12 lower_lip + # 13 upper_lip + 14, # hair, + # 15, glasses + 16, # ?? + 17, # earring_r + 18, # ? + ] + + for i in range(n_classes): + if i not in bad_indices: + seg_img[seq_classes[0, :, :] == i] = np.array(colors[i])*255 + + + return Image.fromarray(seg_img.astype(np.uint8)) + + +def crop_gt_img(img, seq_classes, n_classes): + + seg_img = np.zeros([img.shape[-2], img.shape[-1], 3]) + colors = distinctipy.get_colors(n_classes+1, rng=0) + #distinctipy.color_swatch(colors) + bad_indices = [ + 0, # background, + 1, # neck + # 2, skin + 3, # cloth + 4, #ear_r (images-space r) + 5, #ear_l + # 6 brow_r + # 7 brow_l + #8, # eye_r + #9, # eye_l + # 10 noise + # 11 mouth + # 12 lower_lip + # 13 upper_lip + 14, # hair, + # 15, glasses + 16, # ?? + 17, # earring_r + 18, # ? + ] + + for i in range(n_classes): + if i in bad_indices: + img[seq_classes[0, :, :] == i] = 0 + + + #plt.imshow(img.astype(np.uint(8))) + #plt.show() + return img.astype(np.uint8) + + +device = 'cuda' if torch.cuda.is_available() else 'cpu' + + + +face_detector = facer.face_detector('retinaface/mobilenet', device=device) +face_parser = facer.face_parser('farl/celebm/448', device=device) # optional "farl/lapa/448" + + +def main(video_name : str): + + + out = f'{env_paths.PREPROCESSED_DATA}/{video_name}' + out_seg = f'{out}/seg_og/' + out_seg_annot = f'{out}/seg_non_crop_annotations/' + os.makedirs(out_seg, exist_ok=True) + os.makedirs(out_seg_annot, exist_ok=True) + folder = f'{out}/cropped/' # '/home/giebenhain/GTA/data_kinect/color/' + + + + + + frames = [f for f in os.listdir(folder) if f.endswith('.png') or f.endswith('.jpg')] + + frames.sort() + + if len(os.listdir(out_seg)) == len(frames): + print(f''' + <<<<<<<< ALREADY COMPLETED SEGMENTATION FOR {video_name}, SKIPPING >>>>>>>> + ''') + return + + #for file in frames: + batch_size = 1 + + for i in range(len(frames)//batch_size): + image_stack = [] + frame_stack = [] + original_shapes = [] + for j in range(batch_size): + file = frames[i * batch_size + j] + + if os.path.exists(f'{out_seg_annot}/color_{file}.png'): + print('DONE') + continue + img = Image.open(f'{folder}/{file}')#.resize((512, 512)) + + og_size = img.size + + image = facer.hwc2bchw(torch.from_numpy(np.array(img)[..., :3])).to(device=device) # image: 1 x 3 x h x w + image_stack.append(image) + frame_stack.append(file[:-4]) + + for batch_idx in range(ceil(len(image_stack)/batch_size)): + image_batch = torch.cat(image_stack[batch_idx*batch_size:(batch_idx+1)*batch_size], dim=0) + frame_idx_batch = frame_stack[batch_idx*batch_size:(batch_idx+1)*batch_size] + og_shape_batch = original_shapes[batch_idx*batch_size:(batch_idx+1)*batch_size] + + #if True: + try: + with torch.inference_mode(): + faces = face_detector(image_batch) + torch.cuda.empty_cache() + faces = face_parser(image_batch, faces, bbox_scale_factor=1.25) + torch.cuda.empty_cache() + + seg_logits = faces['seg']['logits'] + back_ground = torch.all(seg_logits == 0, dim=1, keepdim=True).detach().squeeze(1).cpu().numpy() + seg_probs = seg_logits.softmax(dim=1) # nfaces x nclasses x h x w + seg_classes = seg_probs.argmax(dim=1).detach().cpu().numpy().astype(np.uint8) + seg_classes[back_ground] = seg_probs.shape[1] + 1 + + + for _iidx in range(seg_probs.shape[0]): + frame = frame_idx_batch[_iidx] + iidx = faces['image_ids'][_iidx].item() + try: + I_color = viz_results(image_batch[iidx:iidx+1], seq_classes=seg_classes[_iidx:_iidx+1], n_classes=seg_probs.shape[1] + 1, suppress_plot=True) + I_color.save(f'{out_seg_annot}/color_{frame}.png') + except Exception as ex: + pass + I = Image.fromarray(seg_classes[_iidx]) + I.save(f'{out_seg}/{frame}.png') + torch.cuda.empty_cache() + except Exception as exx: + traceback.print_exc() + continue + + +if __name__ == '__main__': + + tyro.cli(main) + diff --git a/scripts/run_preprocessing.py b/scripts/run_preprocessing.py new file mode 100644 index 0000000000000000000000000000000000000000..24e686e7aa354c1d04f9b57a3b5f09df54730999 --- /dev/null +++ b/scripts/run_preprocessing.py @@ -0,0 +1,23 @@ +import os +import tyro + +from pixel3dmm import env_paths + + +def main(video_or_images_path : str): + + if os.path.isdir(video_or_images_path): + vid_name = video_or_images_path.split('/')[-1] + else: + vid_name = video_or_images_path.split('/')[-1][:-4] + + os.system(f'cd {env_paths.CODE_BASE}/scripts/ ; python run_cropping.py --video_or_images_path {video_or_images_path}') + + os.system(f'cd {env_paths.CODE_BASE}/src/pixel3dmm/preprocessing/MICA ; python demo.py -video_name {vid_name}') + + os.system(f'cd {env_paths.CODE_BASE}/scripts/ ; python run_facer_segmentation.py --video_name {vid_name}') + + + +if __name__ == '__main__': + tyro.cli(main) \ No newline at end of file diff --git a/scripts/track.py b/scripts/track.py new file mode 100644 index 0000000000000000000000000000000000000000..5b0c3182c6e331107f4cf89c51cc5ff646b19a95 --- /dev/null +++ b/scripts/track.py @@ -0,0 +1,27 @@ +import os +import wandb + +from omegaconf import OmegaConf +from pixel3dmm.tracking.tracker import Tracker +from pixel3dmm import env_paths + +def main(cfg): + tracker = Tracker(cfg) + tracker.run() + +if __name__ == '__main__': + base_conf = OmegaConf.load(f'{env_paths.CODE_BASE}/configs/tracking.yaml') + + cli_conf = OmegaConf.from_cli() + cfg = OmegaConf.merge(base_conf, cli_conf) + + #os.makedirs('/home/giebenhain/debug_wandb_p3dmm/', exist_ok=True) + #wandb.init( + # dir='/home/giebenhain/debug_wandb_p3dmm/', + # #config=config, + # project='face-tracking-p3dmm', + # #tags=wandb_tags, + # #name=cfg.config_name, +# + #) + main(cfg) \ No newline at end of file diff --git a/scripts/viz_head_centric_cameras.py b/scripts/viz_head_centric_cameras.py new file mode 100644 index 0000000000000000000000000000000000000000..bcef9ce180b48a480357fbe1dc57584a9319dd4f --- /dev/null +++ b/scripts/viz_head_centric_cameras.py @@ -0,0 +1,103 @@ +import os +import tyro +import mediapy +import torch +import numpy as np +import pyvista as pv +import trimesh +from PIL import Image + +from dreifus.matrix import Intrinsics, Pose, CameraCoordinateConvention, PoseType +from dreifus.pyvista import add_camera_frustum, render_from_camera + +from pixel3dmm.utils.utils_3d import rotation_6d_to_matrix +from pixel3dmm.env_paths import PREPROCESSED_DATA, TRACKING_OUTPUT + + +def main(vid_name : str, + HEAD_CENTRIC : bool = True, + DO_PROJECTION_TEST : bool = False, + ): + tracking_dir = f'{TRACKING_OUTPUT}/{vid_name}_nV1_noPho_uv2000.0_n1000.0' + + meshes = [f for f in os.listdir(f'{tracking_dir}/mesh/') if f.endswith('.ply') and not 'canonical' in f] + meshes.sort() + + ckpts = [f for f in os.listdir(f'{tracking_dir}/checkpoint/') if f.endswith('.frame')] + ckpts.sort() + + N_STEPS = len(meshes) + + pl = pv.Plotter() + vid_frames = [] + for i in range(N_STEPS): + ckpt = torch.load(f'{tracking_dir}/checkpoint/{ckpts[i]}', weights_only=False) + + mesh = trimesh.load(f'{tracking_dir}/mesh/{meshes[i]}', process=False) + + head_rot = rotation_6d_to_matrix(torch.from_numpy(ckpt['flame']['R'])).numpy()[0] + + if not HEAD_CENTRIC: + # move mesh from FLAME Space into World Space + mesh.vertices = mesh.vertices @ head_rot.T + (ckpt['flame']['t']) + else: + # undo neck rotation + verts_hom = np.concatenate([mesh.vertices, np.ones_like(mesh.vertices[..., :1])], axis=-1) + verts_hom = verts_hom @ np.linalg.inv(ckpt['joint_transforms'][0, 1, :, :]).T + mesh.vertices = verts_hom[..., :3] + + + + extr_open_gl_world_to_cam = np.eye(4) + extr_open_gl_world_to_cam[:3, :3] = ckpt['camera']['R_base_0'][0] + extr_open_gl_world_to_cam[:3, 3] = ckpt['camera']['t_base_0'][0] + if HEAD_CENTRIC: + flame2world = np.eye(4) + flame2world[:3, :3] = head_rot + flame2world[:3, 3] = np.squeeze(ckpt['flame']['t']) + #TODO include neck transform as well + extr_open_gl_world_to_cam = extr_open_gl_world_to_cam @ flame2world @ ckpt['joint_transforms'][0, 1, :, :] + + + + + extr_open_gl_world_to_cam = Pose(extr_open_gl_world_to_cam, + camera_coordinate_convention=CameraCoordinateConvention.OPEN_GL, + pose_type=PoseType.WORLD_2_CAM) + + intr = np.eye(3) + intr[0, 0] = ckpt['camera']['fl'][0, 0] * 256 + intr[1, 1] = ckpt['camera']['fl'][0, 0] * 256 + intr[:2, 2] = ckpt['camera']['pp'][0] * (256/2+0.5) + 256/2 + 0.5 + + intr = Intrinsics(intr) + + + + pl.add_mesh(mesh, color=[(i/N_STEPS), 0, ((N_STEPS-i)/N_STEPS)]) + add_camera_frustum(pl, extr_open_gl_world_to_cam, intr, color=[(i/N_STEPS), 0, ((N_STEPS-i)/N_STEPS)]) + + if DO_PROJECTION_TEST: + pll = pv.Plotter(off_screen=True, window_size=(256, 256)) + pll.add_mesh(mesh) + img = render_from_camera(pll, extr_open_gl_world_to_cam, intr) + + gt_img = np.array(Image.open(f'{PREPROCESSED_DATA}/{vid_name}/cropped/{i:05d}.jpg').resize((256, 256))) + + alpha = img[..., 3] + + overlay = (gt_img *0.5 + img[..., :3]*0.5).astype(np.uint8) + vid_frames.append(overlay) + + + + + pl.show() + + if DO_PROJECTION_TEST: + mediapy.write_video(f'{tracking_dir}/projection_test.mp4', images=vid_frames) + + + +if __name__ == '__main__': + tyro.cli(main) \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..85277a179c785489d097214e36c54768eba66254 --- /dev/null +++ b/setup.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +import setuptools + +if __name__ == "__main__": + # Still necessary, otherwise we get a pip error + setuptools.setup() diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/pixel3dmm/__init__.py b/src/pixel3dmm/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/pixel3dmm/env_paths.py b/src/pixel3dmm/env_paths.py new file mode 100644 index 0000000000000000000000000000000000000000..07c05bef152fafa0a36bfde90d86f2d77d8aadef --- /dev/null +++ b/src/pixel3dmm/env_paths.py @@ -0,0 +1,34 @@ +import json +from pathlib import Path +from environs import Env + + +env = Env(expand_vars=True) +env_file_path = Path(f"{Path.home()}/.config/pixel3dmm/.env") +if env_file_path.exists(): + env.read_env(str(env_file_path), recurse=False) + + +with env.prefixed("PIXEL3DMM_"): + CODE_BASE = env("CODE_BASE") + PREPROCESSED_DATA = env("PREPROCESSED_DATA") + TRACKING_OUTPUT = env("TRACKING_OUTPUT") + + + +head_template = f'{CODE_BASE}/assets/head_template.obj' +head_template_color = f'{CODE_BASE}/assets/head_template_color.obj' +head_template_ply = f'{CODE_BASE}/assets/test_rigid.ply' +VALID_VERTICES_WIDE_REGION = f'{CODE_BASE}/assets/uv_valid_verty_noEyes_debug.npy' +VALID_VERTS_UV_MESH = f'{CODE_BASE}/assets/uv_valid_verty.npy' +VERTEX_WEIGHT_MASK = f'{CODE_BASE}/assets/flame_vertex_weights.npy' +MIRROR_INDEX = f'{CODE_BASE}/assets/flame_mirror_index.npy' +EYE_MASK = f'{CODE_BASE}/assets/uv_mask_eyes.png' +FLAME_UV_COORDS = f'{CODE_BASE}/assets/flame_uv_coords.npy' +VALID_VERTS_NARROW = f'{CODE_BASE}/assets/uv_valid_verty_noEyes.npy' +VALID_VERTS = f'{CODE_BASE}/assets/uv_valid_verty_noEyes_noEyeRegion_debug_wEars.npy' +FLAME_ASSETS = f'{CODE_BASE}/src/pixel3dmm/preprocessing/MICA/data/' + +# paths to pretrained pixel3dmm checkpoints +CKPT_UV_PRED = f'{CODE_BASE}/pretrained_weights/uv.ckpt' +CKPT_N_PRED = f'{CODE_BASE}/pretrained_weights/normals.ckpt' \ No newline at end of file diff --git a/src/pixel3dmm/lightning/p3dmm_network.py b/src/pixel3dmm/lightning/p3dmm_network.py new file mode 100644 index 0000000000000000000000000000000000000000..3790d72357997f79ba1923b506feaf484c3381fd --- /dev/null +++ b/src/pixel3dmm/lightning/p3dmm_network.py @@ -0,0 +1,2606 @@ +import os.path +from typing import Any + +from PIL import Image +import torch, timm, random +import torch.nn as nn +from torch.nn import MultiheadAttention +from torch.nn import functional as F +from torch.nn.functional import pad +import numpy as np +from torch.cuda.amp import autocast + +from pixel3dmm.tools.rsh import rsh_cart_3, rsh_cart_6_2d +from einops.layers.torch import Rearrange +from typing import Optional, Tuple, List + +import pytorch_lightning as L +from torchvision import transforms +from pixel3dmm.utils.utils_3d import rotation_6d_to_matrix, matrix_to_rotation_6d +from torchvision.transforms import Normalize, Resize, Compose + +from torch import Tensor +from torch.nn.init import constant_, xavier_normal_, xavier_uniform_ +from torch.overrides import has_torch_function, has_torch_function_unary, has_torch_function_variadic, \ + handle_torch_function + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from torch.types import _dtype as DType +else: + # The JIT doesn't understand Union, nor torch.dtype here + DType = int +import warnings +import math + + +def _mha_shape_check(query: Tensor, key: Tensor, value: Tensor, + key_padding_mask: Optional[Tensor], attn_mask: Optional[Tensor], num_heads: int): + # Verifies the expected shape for `query, `key`, `value`, `key_padding_mask` and `attn_mask` + # and returns if the input is batched or not. + # Raises an error if `query` is not 2-D (unbatched) or 3-D (batched) tensor. + + # Shape check. + if query.dim() == 3: + # Batched Inputs + is_batched = True + assert key.dim() == 3 and value.dim() == 3, \ + ("For batched (3-D) `query`, expected `key` and `value` to be 3-D" + f" but found {key.dim()}-D and {value.dim()}-D tensors respectively") + if key_padding_mask is not None: + assert key_padding_mask.dim() == 2, \ + ("For batched (3-D) `query`, expected `key_padding_mask` to be `None` or 2-D" + f" but found {key_padding_mask.dim()}-D tensor instead") + if attn_mask is not None: + assert attn_mask.dim() in (2, 3), \ + ("For batched (3-D) `query`, expected `attn_mask` to be `None`, 2-D or 3-D" + f" but found {attn_mask.dim()}-D tensor instead") + elif query.dim() == 2: + # Unbatched Inputs + is_batched = False + assert key.dim() == 2 and value.dim() == 2, \ + ("For unbatched (2-D) `query`, expected `key` and `value` to be 2-D" + f" but found {key.dim()}-D and {value.dim()}-D tensors respectively") + + if key_padding_mask is not None: + assert key_padding_mask.dim() == 1, \ + ("For unbatched (2-D) `query`, expected `key_padding_mask` to be `None` or 1-D" + f" but found {key_padding_mask.dim()}-D tensor instead") + + if attn_mask is not None: + assert attn_mask.dim() in (2, 3), \ + ("For unbatched (2-D) `query`, expected `attn_mask` to be `None`, 2-D or 3-D" + f" but found {attn_mask.dim()}-D tensor instead") + if attn_mask.dim() == 3: + expected_shape = (num_heads, query.shape[0], key.shape[0]) + assert attn_mask.shape == expected_shape, \ + (f"Expected `attn_mask` shape to be {expected_shape} but got {attn_mask.shape}") + else: + raise AssertionError( + f"query should be unbatched 2D or batched 3D tensor but received {query.dim()}-D query tensor") + + return is_batched + + +class NonDynamicallyQuantizableLinear(nn.Linear): + def __init__(self, in_features: int, out_features: int, bias: bool = True, + device=None, dtype=None) -> None: + super().__init__(in_features, out_features, bias=bias, + device=device, dtype=dtype) + + +def kaiming_leaky_init(m): + classname = m.__class__.__name__ + if classname.find('Linear') != -1: + torch.nn.init.kaiming_normal_(m.weight, a=0.2, mode='fan_in', nonlinearity='leaky_relu') + + +class DinoWrapper(L.LightningModule): + """ + Dino v1 wrapper using huggingface transformer implementation. + """ + + def __init__(self, model_name: str, is_train: bool = False): + super().__init__() + self.model, self.processor = self._build_dino(model_name) + self.freeze(is_train) + + def forward(self, image): + # image: [N, C, H, W], on cpu + # RGB image with [0,1] scale and properly size + # This resampling of positional embedding uses bicubic interpolation + outputs = self.model.forward_features(self.processor(image)) + + return outputs[:, 1:] + + def freeze(self, is_train: bool = False): + print(f"======== image encoder is_train: {is_train} ========") + if is_train: + self.model.train() + else: + self.model.eval() + for name, param in self.model.named_parameters(): + param.requires_grad = is_train + + @staticmethod + def _build_dino(model_name: str, proxy_error_retries: int = 3, proxy_error_cooldown: int = 5): + import requests + try: + model = timm.create_model(model_name, pretrained=True, dynamic_img_size=True) + data_config = timm.data.resolve_model_data_config(model) + processor = transforms.Normalize(mean=data_config['mean'], std=data_config['std']) + return model, processor + except requests.exceptions.ProxyError as err: + if proxy_error_retries > 0: + print(f"Huggingface ProxyError: Retrying in {proxy_error_cooldown} seconds...") + import time + time.sleep(proxy_error_cooldown) + return DinoWrapper._build_dino(model_name, proxy_error_retries - 1, proxy_error_cooldown) + else: + raise err + + + + + + + +def _check_arg_device(x: Optional[torch.Tensor]) -> bool: + if x is not None: + return x.device.type in ["cpu", "cuda", torch.utils.backend_registration._privateuse1_backend_name] + return True + + +def _arg_requires_grad(x: Optional[torch.Tensor]) -> bool: + if x is not None: + return x.requires_grad + return False + + +def _is_make_fx_tracing(): + if not torch.jit.is_scripting(): + torch_dispatch_mode_stack = torch.utils._python_dispatch._get_current_dispatch_mode_stack() + return any( + type(x) == torch.fx.experimental.proxy_tensor.ProxyTorchDispatchMode for x in torch_dispatch_mode_stack) + else: + return False + + +def _canonical_mask( + mask: Optional[Tensor], + mask_name: str, + other_type: Optional[DType], + other_name: str, + target_type: DType, + check_other: bool = True, +) -> Optional[Tensor]: + if mask is not None: + _mask_dtype = mask.dtype + _mask_is_float = torch.is_floating_point(mask) + if _mask_dtype != torch.bool and not _mask_is_float: + raise AssertionError( + f"only bool and floating types of {mask_name} are supported") + if check_other and other_type is not None: + if _mask_dtype != other_type: + warnings.warn( + f"Support for mismatched {mask_name} and {other_name} " + "is deprecated. Use same type for both instead." + ) + if not _mask_is_float: + mask = ( + torch.zeros_like(mask, dtype=target_type) + .masked_fill_(mask, float("-inf")) + ) + return mask + + +def _none_or_dtype(input: Optional[Tensor]) -> Optional[DType]: + if input is None: + return None + elif isinstance(input, torch.Tensor): + return input.dtype + raise RuntimeError("input to _none_or_dtype() must be None or torch.Tensor") + + +def _in_projection_packed( + q: Tensor, + k: Tensor, + v: Tensor, + w: Tensor, + b: Optional[Tensor] = None, +) -> List[Tensor]: + r""" + Performs the in-projection step of the attention operation, using packed weights. + Output is a triple containing projection tensors for query, key and value. + + Args: + q, k, v: query, key and value tensors to be projected. For self-attention, + these are typically the same tensor; for encoder-decoder attention, + k and v are typically the same tensor. (We take advantage of these + identities for performance if they are present.) Regardless, q, k and v + must share a common embedding dimension; otherwise their shapes may vary. + w: projection weights for q, k and v, packed into a single tensor. Weights + are packed along dimension 0, in q, k, v order. + b: optional projection biases for q, k and v, packed into a single tensor + in q, k, v order. + + Shape: + Inputs: + - q: :math:`(..., E)` where E is the embedding dimension + - k: :math:`(..., E)` where E is the embedding dimension + - v: :math:`(..., E)` where E is the embedding dimension + - w: :math:`(E * 3, E)` where E is the embedding dimension + - b: :math:`E * 3` where E is the embedding dimension + + Output: + - in output list :math:`[q', k', v']`, each output tensor will have the + same shape as the corresponding input tensor. + """ + E = q.size(-1) + if k is v: + if q is k: + # self-attention + proj = F.linear(q, w, b) + # reshape to 3, E and not E, 3 is deliberate for better memory coalescing and keeping same order as chunk() + proj = proj.unflatten(-1, (3, E)).unsqueeze(0).transpose(0, -2).squeeze(-2).contiguous() + return proj[0], proj[1], proj[2] + else: + # encoder-decoder attention + w_q, w_kv = w.split([E, E * 2]) + if b is None: + b_q = b_kv = None + else: + b_q, b_kv = b.split([E, E * 2]) + q_proj = F.linear(q, w_q, b_q) + kv_proj = F.linear(k, w_kv, b_kv) + # reshape to 2, E and not E, 2 is deliberate for better memory coalescing and keeping same order as chunk() + kv_proj = kv_proj.unflatten(-1, (2, E)).unsqueeze(0).transpose(0, -2).squeeze(-2).contiguous() + return (q_proj, kv_proj[0], kv_proj[1]) + else: + w_q, w_k, w_v = w.chunk(3) + if b is None: + b_q = b_k = b_v = None + else: + b_q, b_k, b_v = b.chunk(3) + return F.linear(q, w_q, b_q), F.linear(k, w_k, b_k), F.linear(v, w_v, b_v) + + +def _in_projection( + q: Tensor, + k: Tensor, + v: Tensor, + w_q: Tensor, + w_k: Tensor, + w_v: Tensor, + b_q: Optional[Tensor] = None, + b_k: Optional[Tensor] = None, + b_v: Optional[Tensor] = None, +) -> Tuple[Tensor, Tensor, Tensor]: + r""" + Performs the in-projection step of the attention operation. This is simply + a triple of linear projections, with shape constraints on the weights which + ensure embedding dimension uniformity in the projected outputs. + Output is a triple containing projection tensors for query, key and value. + + Args: + q, k, v: query, key and value tensors to be projected. + w_q, w_k, w_v: weights for q, k and v, respectively. + b_q, b_k, b_v: optional biases for q, k and v, respectively. + + Shape: + Inputs: + - q: :math:`(Qdims..., Eq)` where Eq is the query embedding dimension and Qdims are any + number of leading dimensions. + - k: :math:`(Kdims..., Ek)` where Ek is the key embedding dimension and Kdims are any + number of leading dimensions. + - v: :math:`(Vdims..., Ev)` where Ev is the value embedding dimension and Vdims are any + number of leading dimensions. + - w_q: :math:`(Eq, Eq)` + - w_k: :math:`(Eq, Ek)` + - w_v: :math:`(Eq, Ev)` + - b_q: :math:`(Eq)` + - b_k: :math:`(Eq)` + - b_v: :math:`(Eq)` + + Output: in output triple :math:`(q', k', v')`, + - q': :math:`[Qdims..., Eq]` + - k': :math:`[Kdims..., Eq]` + - v': :math:`[Vdims..., Eq]` + + """ + Eq, Ek, Ev = q.size(-1), k.size(-1), v.size(-1) + assert w_q.shape == (Eq, Eq), f"expecting query weights shape of {(Eq, Eq)}, but got {w_q.shape}" + assert w_k.shape == (Eq, Ek), f"expecting key weights shape of {(Eq, Ek)}, but got {w_k.shape}" + assert w_v.shape == (Eq, Ev), f"expecting value weights shape of {(Eq, Ev)}, but got {w_v.shape}" + assert b_q is None or b_q.shape == (Eq,), f"expecting query bias shape of {(Eq,)}, but got {b_q.shape}" + assert b_k is None or b_k.shape == (Eq,), f"expecting key bias shape of {(Eq,)}, but got {b_k.shape}" + assert b_v is None or b_v.shape == (Eq,), f"expecting value bias shape of {(Eq,)}, but got {b_v.shape}" + return F.linear(q, w_q, b_q), F.linear(k, w_k, b_k), F.linear(v, w_v, b_v) + + +def multi_head_attention_forward( + query: Tensor, + key: Tensor, + value: Tensor, + embed_dim_to_check: int, + num_heads: int, + in_proj_weight: Optional[Tensor], + in_proj_bias: Optional[Tensor], + bias_k: Optional[Tensor], + bias_v: Optional[Tensor], + add_zero_attn: bool, + dropout_p: float, + out_proj_weight: Tensor, + out_proj_bias: Optional[Tensor], + training: bool = True, + key_padding_mask: Optional[Tensor] = None, + need_weights: bool = True, + attn_mask: Optional[Tensor] = None, + use_separate_proj_weight: bool = False, + q_proj_weight: Optional[Tensor] = None, + k_proj_weight: Optional[Tensor] = None, + v_proj_weight: Optional[Tensor] = None, + static_k: Optional[Tensor] = None, + static_v: Optional[Tensor] = None, + average_attn_weights: bool = True, + is_causal: bool = False, + learnable_scale: torch.Tensor = None, +) -> Tuple[Tensor, Optional[Tensor]]: + r""" + Args: + query, key, value: map a query and a set of key-value pairs to an output. + See "Attention Is All You Need" for more details. + embed_dim_to_check: total dimension of the model. + num_heads: parallel attention heads. + in_proj_weight, in_proj_bias: input projection weight and bias. + bias_k, bias_v: bias of the key and value sequences to be added at dim=0. + add_zero_attn: add a new batch of zeros to the key and + value sequences at dim=1. + dropout_p: probability of an element to be zeroed. + out_proj_weight, out_proj_bias: the output projection weight and bias. + training: apply dropout if is ``True``. + key_padding_mask: if provided, specified padding elements in the key will + be ignored by the attention. This is an binary mask. When the value is True, + the corresponding value on the attention layer will be filled with -inf. + need_weights: output attn_output_weights. + Default: `True` + Note: `needs_weight` defaults to `True`, but should be set to `False` + For best performance when attention weights are not needed. + *Setting needs_weights to `True` + leads to a significant performance degradation.* + attn_mask: 2D or 3D mask that prevents attention to certain positions. A 2D mask will be broadcasted for all + the batches while a 3D mask allows to specify a different mask for the entries of each batch. + is_causal: If specified, applies a causal mask as attention mask, and ignores + attn_mask for computing scaled dot product attention. + Default: ``False``. + .. warning:: + is_causal is provides a hint that the attn_mask is the + causal mask.Providing incorrect hints can result in + incorrect execution, including forward and backward + compatibility. + use_separate_proj_weight: the function accept the proj. weights for query, key, + and value in different forms. If false, in_proj_weight will be used, which is + a combination of q_proj_weight, k_proj_weight, v_proj_weight. + q_proj_weight, k_proj_weight, v_proj_weight, in_proj_bias: input projection weight and bias. + static_k, static_v: static key and value used for attention operators. + average_attn_weights: If true, indicates that the returned ``attn_weights`` should be averaged across heads. + Otherwise, ``attn_weights`` are provided separately per head. Note that this flag only has an effect + when ``need_weights=True.``. Default: True + + + Shape: + Inputs: + - query: :math:`(L, E)` or :math:`(L, N, E)` where L is the target sequence length, N is the batch size, E is + the embedding dimension. + - key: :math:`(S, E)` or :math:`(S, N, E)`, where S is the source sequence length, N is the batch size, E is + the embedding dimension. + - value: :math:`(S, E)` or :math:`(S, N, E)` where S is the source sequence length, N is the batch size, E is + the embedding dimension. + - key_padding_mask: :math:`(S)` or :math:`(N, S)` where N is the batch size, S is the source sequence length. + If a FloatTensor is provided, it will be directly added to the value. + If a BoolTensor is provided, the positions with the + value of ``True`` will be ignored while the position with the value of ``False`` will be unchanged. + - attn_mask: 2D mask :math:`(L, S)` where L is the target sequence length, S is the source sequence length. + 3D mask :math:`(N*num_heads, L, S)` where N is the batch size, L is the target sequence length, + S is the source sequence length. attn_mask ensures that position i is allowed to attend the unmasked + positions. If a BoolTensor is provided, positions with ``True`` + are not allowed to attend while ``False`` values will be unchanged. If a FloatTensor + is provided, it will be added to the attention weight. + - static_k: :math:`(N*num_heads, S, E/num_heads)`, where S is the source sequence length, + N is the batch size, E is the embedding dimension. E/num_heads is the head dimension. + - static_v: :math:`(N*num_heads, S, E/num_heads)`, where S is the source sequence length, + N is the batch size, E is the embedding dimension. E/num_heads is the head dimension. + + Outputs: + - attn_output: :math:`(L, E)` or :math:`(L, N, E)` where L is the target sequence length, N is the batch size, + E is the embedding dimension. + - attn_output_weights: Only returned when ``need_weights=True``. If ``average_attn_weights=True``, returns + attention weights averaged across heads of shape :math:`(L, S)` when input is unbatched or + :math:`(N, L, S)`, where :math:`N` is the batch size, :math:`L` is the target sequence length, and + :math:`S` is the source sequence length. If ``average_attn_weights=False``, returns attention weights per + head of shape :math:`(num_heads, L, S)` when input is unbatched or :math:`(N, num_heads, L, S)`. + """ + tens_ops = (query, key, value, in_proj_weight, in_proj_bias, bias_k, bias_v, out_proj_weight, out_proj_bias) + if has_torch_function(tens_ops): + return handle_torch_function( + multi_head_attention_forward, + tens_ops, + query, + key, + value, + embed_dim_to_check, + num_heads, + in_proj_weight, + in_proj_bias, + bias_k, + bias_v, + add_zero_attn, + dropout_p, + out_proj_weight, + out_proj_bias, + training=training, + key_padding_mask=key_padding_mask, + need_weights=need_weights, + attn_mask=attn_mask, + is_causal=is_causal, + use_separate_proj_weight=use_separate_proj_weight, + q_proj_weight=q_proj_weight, + k_proj_weight=k_proj_weight, + v_proj_weight=v_proj_weight, + static_k=static_k, + static_v=static_v, + average_attn_weights=average_attn_weights, + learnable_scale=learnable_scale, + ) + + is_batched = _mha_shape_check(query, key, value, key_padding_mask, attn_mask, num_heads) + + # For unbatched input, we unsqueeze at the expected batch-dim to pretend that the input + # is batched, run the computation and before returning squeeze the + # batch dimension so that the output doesn't carry this temporary batch dimension. + if not is_batched: + # unsqueeze if the input is unbatched + query = query.unsqueeze(1) + key = key.unsqueeze(1) + value = value.unsqueeze(1) + if key_padding_mask is not None: + key_padding_mask = key_padding_mask.unsqueeze(0) + + # set up shape vars + tgt_len, bsz, embed_dim = query.shape + src_len, _, _ = key.shape + + key_padding_mask = _canonical_mask( + mask=key_padding_mask, + mask_name="key_padding_mask", + other_type=_none_or_dtype(attn_mask), + other_name="attn_mask", + target_type=query.dtype + ) + + if is_causal and attn_mask is None: + raise RuntimeError( + "Need attn_mask if specifying the is_causal hint. " + "You may use the Transformer module method " + "`generate_square_subsequent_mask` to create this mask." + ) + + if is_causal and key_padding_mask is None and not need_weights: + # when we have a kpm or need weights, we need attn_mask + # Otherwise, we use the is_causal hint go as is_causal + # indicator to SDPA. + attn_mask = None + else: + attn_mask = _canonical_mask( + mask=attn_mask, + mask_name="attn_mask", + other_type=None, + other_name="", + target_type=query.dtype, + check_other=False, + ) + + if key_padding_mask is not None: + # We have the attn_mask, and use that to merge kpm into it. + # Turn off use of is_causal hint, as the merged mask is no + # longer causal. + is_causal = False + + assert embed_dim == embed_dim_to_check, \ + f"was expecting embedding dimension of {embed_dim_to_check}, but got {embed_dim}" + if isinstance(embed_dim, torch.Tensor): + # embed_dim can be a tensor when JIT tracing + head_dim = embed_dim.div(num_heads, rounding_mode='trunc') + else: + head_dim = embed_dim // num_heads + assert head_dim * num_heads == embed_dim, f"embed_dim {embed_dim} not divisible by num_heads {num_heads}" + if use_separate_proj_weight: + # allow MHA to have different embedding dimensions when separate projection weights are used + assert key.shape[:2] == value.shape[:2], \ + f"key's sequence and batch dims {key.shape[:2]} do not match value's {value.shape[:2]}" + else: + assert key.shape == value.shape, f"key shape {key.shape} does not match value shape {value.shape}" + + # + # compute in-projection + # + if not use_separate_proj_weight: + assert in_proj_weight is not None, "use_separate_proj_weight is False but in_proj_weight is None" + q, k, v = _in_projection_packed(query, key, value, in_proj_weight, in_proj_bias) + else: + assert q_proj_weight is not None, "use_separate_proj_weight is True but q_proj_weight is None" + assert k_proj_weight is not None, "use_separate_proj_weight is True but k_proj_weight is None" + assert v_proj_weight is not None, "use_separate_proj_weight is True but v_proj_weight is None" + if in_proj_bias is None: + b_q = b_k = b_v = None + else: + b_q, b_k, b_v = in_proj_bias.chunk(3) + q, k, v = _in_projection(query, key, value, q_proj_weight, k_proj_weight, v_proj_weight, b_q, b_k, b_v) + + # prep attention mask + + if attn_mask is not None: + # ensure attn_mask's dim is 3 + if attn_mask.dim() == 2: + correct_2d_size = (tgt_len, src_len) + if attn_mask.shape != correct_2d_size: + raise RuntimeError( + f"The shape of the 2D attn_mask is {attn_mask.shape}, but should be {correct_2d_size}.") + attn_mask = attn_mask.unsqueeze(0) + elif attn_mask.dim() == 3: + correct_3d_size = (bsz * num_heads, tgt_len, src_len) + if attn_mask.shape != correct_3d_size: + raise RuntimeError( + f"The shape of the 3D attn_mask is {attn_mask.shape}, but should be {correct_3d_size}.") + else: + raise RuntimeError(f"attn_mask's dimension {attn_mask.dim()} is not supported") + + # add bias along batch dimension (currently second) + if bias_k is not None and bias_v is not None: + assert static_k is None, "bias cannot be added to static key." + assert static_v is None, "bias cannot be added to static value." + k = torch.cat([k, bias_k.repeat(1, bsz, 1)]) + v = torch.cat([v, bias_v.repeat(1, bsz, 1)]) + if attn_mask is not None: + attn_mask = pad(attn_mask, (0, 1)) + if key_padding_mask is not None: + key_padding_mask = pad(key_padding_mask, (0, 1)) + else: + assert bias_k is None + assert bias_v is None + + # + # reshape q, k, v for multihead attention and make em batch first + # + q = q.view(tgt_len, bsz * num_heads, head_dim).transpose(0, 1) + if static_k is None: + k = k.view(k.shape[0], bsz * num_heads, head_dim).transpose(0, 1) + else: + # TODO finish disentangling control flow so we don't do in-projections when statics are passed + assert static_k.size(0) == bsz * num_heads, \ + f"expecting static_k.size(0) of {bsz * num_heads}, but got {static_k.size(0)}" + assert static_k.size(2) == head_dim, \ + f"expecting static_k.size(2) of {head_dim}, but got {static_k.size(2)}" + k = static_k + if static_v is None: + v = v.view(v.shape[0], bsz * num_heads, head_dim).transpose(0, 1) + else: + # TODO finish disentangling control flow so we don't do in-projections when statics are passed + assert static_v.size(0) == bsz * num_heads, \ + f"expecting static_v.size(0) of {bsz * num_heads}, but got {static_v.size(0)}" + assert static_v.size(2) == head_dim, \ + f"expecting static_v.size(2) of {head_dim}, but got {static_v.size(2)}" + v = static_v + + # add zero attention along batch dimension (now first) + if add_zero_attn: + zero_attn_shape = (bsz * num_heads, 1, head_dim) + k = torch.cat([k, torch.zeros(zero_attn_shape, dtype=k.dtype, device=k.device)], dim=1) + v = torch.cat([v, torch.zeros(zero_attn_shape, dtype=v.dtype, device=v.device)], dim=1) + if attn_mask is not None: + attn_mask = pad(attn_mask, (0, 1)) + if key_padding_mask is not None: + key_padding_mask = pad(key_padding_mask, (0, 1)) + + # update source sequence length after adjustments + src_len = k.size(1) + + # merge key padding and attention masks + if key_padding_mask is not None: + assert key_padding_mask.shape == (bsz, src_len), \ + f"expecting key_padding_mask shape of {(bsz, src_len)}, but got {key_padding_mask.shape}" + key_padding_mask = key_padding_mask.view(bsz, 1, 1, src_len). \ + expand(-1, num_heads, -1, -1).reshape(bsz * num_heads, 1, src_len) + if attn_mask is None: + attn_mask = key_padding_mask + else: + attn_mask = attn_mask + key_padding_mask + + # adjust dropout probability + if not training: + dropout_p = 0.0 + + # + # (deep breath) calculate attention and out projection + # + + if need_weights: + B, Nt, E = q.shape + q_scaled = q / math.sqrt(E) + + assert not (is_causal and attn_mask is None), "FIXME: is_causal not implemented for need_weights" + + if attn_mask is not None: + attn_output_weights = torch.baddbmm(attn_mask, q_scaled, k.transpose(-2, -1)) + else: + attn_output_weights = torch.bmm(q_scaled, k.transpose(-2, -1)) + attn_output_weights = F.softmax(attn_output_weights, dim=-1) + if dropout_p > 0.0: + attn_output_weights = F.dropout(attn_output_weights, p=dropout_p) + + attn_output = torch.bmm(attn_output_weights, v) + + attn_output = attn_output.transpose(0, 1).contiguous().view(tgt_len * bsz, embed_dim) + attn_output = F.linear(attn_output, out_proj_weight, out_proj_bias) + attn_output = attn_output.view(tgt_len, bsz, attn_output.size(1)) + + # optionally average attention weights over heads + attn_output_weights = attn_output_weights.view(bsz, num_heads, tgt_len, src_len) + if average_attn_weights: + attn_output_weights = attn_output_weights.mean(dim=1) + + if not is_batched: + # squeeze the output if input was unbatched + attn_output = attn_output.squeeze(1) + attn_output_weights = attn_output_weights.squeeze(0) + return attn_output, attn_output_weights + else: + # attn_mask can be either (L,S) or (N*num_heads, L, S) + # if attn_mask's shape is (1, L, S) we need to unsqueeze to (1, 1, L, S) + # in order to match the input for SDPA of (N, num_heads, L, S) + if attn_mask is not None: + if attn_mask.size(0) == 1 and attn_mask.dim() == 3: + attn_mask = attn_mask.unsqueeze(0) + else: + attn_mask = attn_mask.view(bsz, num_heads, -1, src_len) + + q = q.view(bsz, num_heads, tgt_len, head_dim) + k = k.view(bsz, num_heads, src_len, head_dim) + v = v.view(bsz, num_heads, src_len, head_dim) + + q = torch.nn.functional.normalize(q, p=2, dim=-1) * math.sqrt(q.shape[-1]) * learnable_scale + k = torch.nn.functional.normalize(k, p=2, dim=-1) * math.sqrt(q.shape[-1]) * learnable_scale + attn_output = F.scaled_dot_product_attention(q, k, v, attn_mask, dropout_p, is_causal) + attn_output = attn_output.permute(2, 0, 1, 3).contiguous().view(bsz * tgt_len, embed_dim) + + attn_output = F.linear(attn_output, out_proj_weight, out_proj_bias) + attn_output = attn_output.view(tgt_len, bsz, attn_output.size(1)) + if not is_batched: + # squeeze the output if input was unbatched + attn_output = attn_output.squeeze(1) + return attn_output, None + + +class MultiheadAttention_cstm(nn.Module): + r"""Allows the model to jointly attend to information + from different representation subspaces as described in the paper: + `Attention Is All You Need `_. + + Multi-Head Attention is defined as: + + .. math:: + \text{MultiHead}(Q, K, V) = \text{Concat}(head_1,\dots,head_h)W^O + + where :math:`head_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)`. + + ``nn.MultiHeadAttention`` will use the optimized implementations of + ``scaled_dot_product_attention()`` when possible. + + In addition to support for the new ``scaled_dot_product_attention()`` + function, for speeding up Inference, MHA will use + fastpath inference with support for Nested Tensors, iff: + + - self attention is being computed (i.e., ``query``, ``key``, and ``value`` are the same tensor). + - inputs are batched (3D) with ``batch_first==True`` + - Either autograd is disabled (using ``torch.inference_mode`` or ``torch.no_grad``) or no tensor argument ``requires_grad`` + - training is disabled (using ``.eval()``) + - ``add_bias_kv`` is ``False`` + - ``add_zero_attn`` is ``False`` + - ``batch_first`` is ``True`` and the input is batched + - ``kdim`` and ``vdim`` are equal to ``embed_dim`` + - if a `NestedTensor `_ is passed, neither ``key_padding_mask`` + nor ``attn_mask`` is passed + - autocast is disabled + + If the optimized inference fastpath implementation is in use, a + `NestedTensor `_ can be passed for + ``query``/``key``/``value`` to represent padding more efficiently than using a + padding mask. In this case, a `NestedTensor `_ + will be returned, and an additional speedup proportional to the fraction of the input + that is padding can be expected. + + Args: + embed_dim: Total dimension of the model. + num_heads: Number of parallel attention heads. Note that ``embed_dim`` will be split + across ``num_heads`` (i.e. each head will have dimension ``embed_dim // num_heads``). + dropout: Dropout probability on ``attn_output_weights``. Default: ``0.0`` (no dropout). + bias: If specified, adds bias to input / output projection layers. Default: ``True``. + add_bias_kv: If specified, adds bias to the key and value sequences at dim=0. Default: ``False``. + add_zero_attn: If specified, adds a new batch of zeros to the key and value sequences at dim=1. + Default: ``False``. + kdim: Total number of features for keys. Default: ``None`` (uses ``kdim=embed_dim``). + vdim: Total number of features for values. Default: ``None`` (uses ``vdim=embed_dim``). + batch_first: If ``True``, then the input and output tensors are provided + as (batch, seq, feature). Default: ``False`` (seq, batch, feature). + + Examples:: + + >>> # xdoctest: +SKIP + >>> multihead_attn = nn.MultiheadAttention(embed_dim, num_heads) + >>> attn_output, attn_output_weights = multihead_attn(query, key, value) + + .. _`FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness`: + https://arxiv.org/abs/2205.14135 + + """ + + __constants__ = ['batch_first'] + bias_k: Optional[torch.Tensor] + bias_v: Optional[torch.Tensor] + + def __init__(self, embed_dim, num_heads, dropout=0., bias=True, add_bias_kv=False, add_zero_attn=False, + kdim=None, vdim=None, batch_first=False, device=None, dtype=None) -> None: + if embed_dim <= 0 or num_heads <= 0: + raise ValueError( + f"embed_dim and num_heads must be greater than 0," + f" got embed_dim={embed_dim} and num_heads={num_heads} instead" + ) + factory_kwargs = {'device': device, 'dtype': dtype} + super().__init__() + self.embed_dim = embed_dim + self.kdim = kdim if kdim is not None else embed_dim + self.vdim = vdim if vdim is not None else embed_dim + self._qkv_same_embed_dim = self.kdim == embed_dim and self.vdim == embed_dim + + self.num_heads = num_heads + self.dropout = dropout + self.batch_first = batch_first + self.head_dim = embed_dim // num_heads + assert self.head_dim * num_heads == self.embed_dim, "embed_dim must be divisible by num_heads" + + if not self._qkv_same_embed_dim: + self.q_proj_weight = nn.Parameter(torch.empty((embed_dim, embed_dim), **factory_kwargs)) + self.k_proj_weight = nn.Parameter(torch.empty((embed_dim, self.kdim), **factory_kwargs)) + self.v_proj_weight = nn.Parameter(torch.empty((embed_dim, self.vdim), **factory_kwargs)) + self.register_parameter('in_proj_weight', None) + else: + self.in_proj_weight = nn.Parameter(torch.empty((3 * embed_dim, embed_dim), **factory_kwargs)) + self.register_parameter('q_proj_weight', None) + self.register_parameter('k_proj_weight', None) + self.register_parameter('v_proj_weight', None) + + if bias: + self.in_proj_bias = nn.Parameter(torch.empty(3 * embed_dim, **factory_kwargs)) + else: + self.register_parameter('in_proj_bias', None) + self.out_proj = NonDynamicallyQuantizableLinear(embed_dim, embed_dim, bias=bias, **factory_kwargs) + + if add_bias_kv: + self.bias_k = nn.Parameter(torch.empty((1, 1, embed_dim), **factory_kwargs)) + self.bias_v = nn.Parameter(torch.empty((1, 1, embed_dim), **factory_kwargs)) + else: + self.bias_k = self.bias_v = None + + self.add_zero_attn = add_zero_attn + self.learnable_scale = torch.nn.Parameter(torch.ones([], **factory_kwargs), ) + self._reset_parameters() + + def _reset_parameters(self): + if self._qkv_same_embed_dim: + xavier_uniform_(self.in_proj_weight) + else: + xavier_uniform_(self.q_proj_weight) + xavier_uniform_(self.k_proj_weight) + xavier_uniform_(self.v_proj_weight) + + if self.in_proj_bias is not None: + constant_(self.in_proj_bias, 0.) + constant_(self.out_proj.bias, 0.) + if self.bias_k is not None: + xavier_normal_(self.bias_k) + if self.bias_v is not None: + xavier_normal_(self.bias_v) + + def __setstate__(self, state): + # Support loading old MultiheadAttention checkpoints generated by v1.1.0 + if '_qkv_same_embed_dim' not in state: + state['_qkv_same_embed_dim'] = True + + super().__setstate__(state) + + def forward( + self, + query: Tensor, + key: Tensor, + value: Tensor, + key_padding_mask: Optional[Tensor] = None, + need_weights: bool = True, + attn_mask: Optional[Tensor] = None, + average_attn_weights: bool = True, + is_causal: bool = False) -> Tuple[Tensor, Optional[Tensor]]: + r""" + Args: + query: Query embeddings of shape :math:`(L, E_q)` for unbatched input, :math:`(L, N, E_q)` when ``batch_first=False`` + or :math:`(N, L, E_q)` when ``batch_first=True``, where :math:`L` is the target sequence length, + :math:`N` is the batch size, and :math:`E_q` is the query embedding dimension ``embed_dim``. + Queries are compared against key-value pairs to produce the output. + See "Attention Is All You Need" for more details. + key: Key embeddings of shape :math:`(S, E_k)` for unbatched input, :math:`(S, N, E_k)` when ``batch_first=False`` + or :math:`(N, S, E_k)` when ``batch_first=True``, where :math:`S` is the source sequence length, + :math:`N` is the batch size, and :math:`E_k` is the key embedding dimension ``kdim``. + See "Attention Is All You Need" for more details. + value: Value embeddings of shape :math:`(S, E_v)` for unbatched input, :math:`(S, N, E_v)` when + ``batch_first=False`` or :math:`(N, S, E_v)` when ``batch_first=True``, where :math:`S` is the source + sequence length, :math:`N` is the batch size, and :math:`E_v` is the value embedding dimension ``vdim``. + See "Attention Is All You Need" for more details. + key_padding_mask: If specified, a mask of shape :math:`(N, S)` indicating which elements within ``key`` + to ignore for the purpose of attention (i.e. treat as "padding"). For unbatched `query`, shape should be :math:`(S)`. + Binary and float masks are supported. + For a binary mask, a ``True`` value indicates that the corresponding ``key`` value will be ignored for + the purpose of attention. For a float mask, it will be directly added to the corresponding ``key`` value. + need_weights: If specified, returns ``attn_output_weights`` in addition to ``attn_outputs``. + Set ``need_weights=False`` to use the optimized ``scaled_dot_product_attention`` + and achieve the best performance for MHA. + Default: ``True``. + attn_mask: If specified, a 2D or 3D mask preventing attention to certain positions. Must be of shape + :math:`(L, S)` or :math:`(N\cdot\text{num\_heads}, L, S)`, where :math:`N` is the batch size, + :math:`L` is the target sequence length, and :math:`S` is the source sequence length. A 2D mask will be + broadcasted across the batch while a 3D mask allows for a different mask for each entry in the batch. + Binary and float masks are supported. For a binary mask, a ``True`` value indicates that the + corresponding position is not allowed to attend. For a float mask, the mask values will be added to + the attention weight. + If both attn_mask and key_padding_mask are supplied, their types should match. + average_attn_weights: If true, indicates that the returned ``attn_weights`` should be averaged across + heads. Otherwise, ``attn_weights`` are provided separately per head. Note that this flag only has an + effect when ``need_weights=True``. Default: ``True`` (i.e. average weights across heads) + is_causal: If specified, applies a causal mask as attention mask. + Default: ``False``. + Warning: + ``is_causal`` provides a hint that ``attn_mask`` is the + causal mask. Providing incorrect hints can result in + incorrect execution, including forward and backward + compatibility. + + Outputs: + - **attn_output** - Attention outputs of shape :math:`(L, E)` when input is unbatched, + :math:`(L, N, E)` when ``batch_first=False`` or :math:`(N, L, E)` when ``batch_first=True``, + where :math:`L` is the target sequence length, :math:`N` is the batch size, and :math:`E` is the + embedding dimension ``embed_dim``. + - **attn_output_weights** - Only returned when ``need_weights=True``. If ``average_attn_weights=True``, + returns attention weights averaged across heads of shape :math:`(L, S)` when input is unbatched or + :math:`(N, L, S)`, where :math:`N` is the batch size, :math:`L` is the target sequence length, and + :math:`S` is the source sequence length. If ``average_attn_weights=False``, returns attention weights per + head of shape :math:`(\text{num\_heads}, L, S)` when input is unbatched or :math:`(N, \text{num\_heads}, L, S)`. + + .. note:: + `batch_first` argument is ignored for unbatched inputs. + """ + + why_not_fast_path = '' + if ((attn_mask is not None and torch.is_floating_point(attn_mask)) + or (key_padding_mask is not None) and torch.is_floating_point(key_padding_mask)): + why_not_fast_path = "floating-point masks are not supported for fast path." + + is_batched = query.dim() == 3 + + key_padding_mask = F._canonical_mask( + mask=key_padding_mask, + mask_name="key_padding_mask", + other_type=F._none_or_dtype(attn_mask), + other_name="attn_mask", + target_type=query.dtype + ) + + attn_mask = F._canonical_mask( + mask=attn_mask, + mask_name="attn_mask", + other_type=None, + other_name="", + target_type=query.dtype, + check_other=False, + ) + + if not is_batched: + why_not_fast_path = f"input not batched; expected query.dim() of 3 but got {query.dim()}" + elif query is not key or key is not value: + # When lifting this restriction, don't forget to either + # enforce that the dtypes all match or test cases where + # they don't! + why_not_fast_path = "non-self attention was used (query, key, and value are not the same Tensor)" + elif self.in_proj_bias is not None and query.dtype != self.in_proj_bias.dtype: + why_not_fast_path = f"dtypes of query ({query.dtype}) and self.in_proj_bias ({self.in_proj_bias.dtype}) don't match" + elif self.in_proj_weight is None: + why_not_fast_path = "in_proj_weight was None" + elif query.dtype != self.in_proj_weight.dtype: + # this case will fail anyway, but at least they'll get a useful error message. + why_not_fast_path = f"dtypes of query ({query.dtype}) and self.in_proj_weight ({self.in_proj_weight.dtype}) don't match" + elif self.training: + why_not_fast_path = "training is enabled" + elif (self.num_heads % 2) != 0: + why_not_fast_path = "self.num_heads is not even" + elif not self.batch_first: + why_not_fast_path = "batch_first was not True" + elif self.bias_k is not None: + why_not_fast_path = "self.bias_k was not None" + elif self.bias_v is not None: + why_not_fast_path = "self.bias_v was not None" + elif self.add_zero_attn: + why_not_fast_path = "add_zero_attn was enabled" + elif not self._qkv_same_embed_dim: + why_not_fast_path = "_qkv_same_embed_dim was not True" + elif query.is_nested and (key_padding_mask is not None or attn_mask is not None): + why_not_fast_path = "supplying both src_key_padding_mask and src_mask at the same time \ + is not supported with NestedTensor input" + elif torch.is_autocast_enabled(): + why_not_fast_path = "autocast is enabled" + + if not why_not_fast_path: + tensor_args = ( + query, + key, + value, + self.in_proj_weight, + self.in_proj_bias, + self.out_proj.weight, + self.out_proj.bias, + ) + # We have to use list comprehensions below because TorchScript does not support + # generator expressions. + if torch.overrides.has_torch_function(tensor_args): + why_not_fast_path = "some Tensor argument has_torch_function" + elif _is_make_fx_tracing(): + why_not_fast_path = "we are running make_fx tracing" + elif not all(_check_arg_device(x) for x in tensor_args): + why_not_fast_path = ("some Tensor argument's device is neither one of " + f"cpu, cuda or {torch.utils.backend_registration._privateuse1_backend_name}") + elif torch.is_grad_enabled() and any(_arg_requires_grad(x) for x in tensor_args): + why_not_fast_path = ("grad is enabled and at least one of query or the " + "input/output projection weights or biases requires_grad") + if not why_not_fast_path: + merged_mask, mask_type = self.merge_masks(attn_mask, key_padding_mask, query) + + if self.in_proj_bias is not None and self.in_proj_weight is not None: + return torch._native_multi_head_attention( + query, + key, + value, + self.embed_dim, + self.num_heads, + self.in_proj_weight, + self.in_proj_bias, + self.out_proj.weight, + self.out_proj.bias, + merged_mask, + need_weights, + average_attn_weights, + mask_type) + + any_nested = query.is_nested or key.is_nested or value.is_nested + assert not any_nested, ("MultiheadAttention does not support NestedTensor outside of its fast path. " + + f"The fast path was not hit because {why_not_fast_path}") + + if self.batch_first and is_batched: + # make sure that the transpose op does not affect the "is" property + if key is value: + if query is key: + query = key = value = query.transpose(1, 0) + else: + query, key = (x.transpose(1, 0) for x in (query, key)) + value = key + else: + query, key, value = (x.transpose(1, 0) for x in (query, key, value)) + + if not self._qkv_same_embed_dim: + attn_output, attn_output_weights = multi_head_attention_forward( + query, key, value, self.embed_dim, self.num_heads, + self.in_proj_weight, self.in_proj_bias, + self.bias_k, self.bias_v, self.add_zero_attn, + self.dropout, self.out_proj.weight, self.out_proj.bias, + training=self.training, + key_padding_mask=key_padding_mask, need_weights=need_weights, + attn_mask=attn_mask, + use_separate_proj_weight=True, + q_proj_weight=self.q_proj_weight, k_proj_weight=self.k_proj_weight, + v_proj_weight=self.v_proj_weight, + average_attn_weights=average_attn_weights, + is_causal=is_causal, + learnable_scale=self.learnable_scale) + else: + attn_output, attn_output_weights = multi_head_attention_forward( + query, key, value, self.embed_dim, self.num_heads, + self.in_proj_weight, self.in_proj_bias, + self.bias_k, self.bias_v, self.add_zero_attn, + self.dropout, self.out_proj.weight, self.out_proj.bias, + training=self.training, + key_padding_mask=key_padding_mask, + need_weights=need_weights, + attn_mask=attn_mask, + average_attn_weights=average_attn_weights, + is_causal=is_causal, + learnable_scale=self.learnable_scale) + if self.batch_first and is_batched: + return attn_output.transpose(1, 0), attn_output_weights + else: + return attn_output, attn_output_weights + + def merge_masks(self, attn_mask: Optional[Tensor], key_padding_mask: Optional[Tensor], + query: Tensor) -> Tuple[Optional[Tensor], Optional[int]]: + r""" + Determine mask type and combine masks if necessary. If only one mask is provided, that mask + and the corresponding mask type will be returned. If both masks are provided, they will be both + expanded to shape ``(batch_size, num_heads, seq_len, seq_len)``, combined with logical ``or`` + and mask type 2 will be returned + Args: + attn_mask: attention mask of shape ``(seq_len, seq_len)``, mask type 0 + key_padding_mask: padding mask of shape ``(batch_size, seq_len)``, mask type 1 + query: query embeddings of shape ``(batch_size, seq_len, embed_dim)`` + Returns: + merged_mask: merged mask + mask_type: merged mask type (0, 1, or 2) + """ + mask_type: Optional[int] = None + merged_mask: Optional[Tensor] = None + + if key_padding_mask is not None: + mask_type = 1 + merged_mask = key_padding_mask + + if attn_mask is not None: + # In this branch query can't be a nested tensor, so it has a shape + batch_size, seq_len, _ = query.shape + mask_type = 2 + + # Always expands attn_mask to 4D + if attn_mask.dim() == 3: + attn_mask_expanded = attn_mask.view(batch_size, -1, seq_len, seq_len) + else: # attn_mask.dim() == 2: + attn_mask_expanded = attn_mask.view(1, 1, seq_len, seq_len).expand(batch_size, self.num_heads, -1, -1) + merged_mask = attn_mask_expanded + + if key_padding_mask is not None: + key_padding_mask_expanded = key_padding_mask.view(batch_size, 1, 1, seq_len).expand(-1, self.num_heads, + -1, -1) + merged_mask = attn_mask_expanded + key_padding_mask_expanded + + # no attn_mask and no key_padding_mask, returns None, None + return merged_mask, mask_type + + +class GroupAttBlock(L.LightningModule): + def __init__(self, inner_dim: int, input_dim: int, + num_heads: int, eps: float, + attn_drop: float = 0., attn_bias: bool = False, + mlp_ratio: float = 4., mlp_drop: float = 0., norm_layer=nn.LayerNorm): + super().__init__() + + self.norm1 = norm_layer(inner_dim) + self.self_attn = MultiheadAttention( + embed_dim=inner_dim, num_heads=num_heads, kdim=inner_dim, vdim=inner_dim, + dropout=attn_drop, bias=attn_bias, batch_first=True) + self.self_attn2 = MultiheadAttention( + embed_dim=inner_dim, num_heads=num_heads, kdim=inner_dim, vdim=inner_dim, + dropout=attn_drop, bias=attn_bias, batch_first=True) + + self.norm2 = norm_layer(inner_dim) + self.norm3 = norm_layer(inner_dim) + self.norm4 = norm_layer(inner_dim) + self.mlp = nn.Sequential( + nn.Linear(inner_dim, int(inner_dim * mlp_ratio)), + nn.GELU(), + nn.Dropout(mlp_drop), + nn.Linear(int(inner_dim * mlp_ratio), inner_dim), + nn.Dropout(mlp_drop), + ) + self.mlp2 = nn.Sequential( + nn.Linear(inner_dim, int(inner_dim * mlp_ratio)), + nn.GELU(), + nn.Dropout(mlp_drop), + nn.Linear(int(inner_dim * mlp_ratio), inner_dim), + nn.Dropout(mlp_drop), + ) + + def forward(self, x, facial_components=None): + # x: [B, C, H, W] + # cond: [B, L_cond, D_cond] + + B, V, C, H, W = x.shape + + x = x.permute(0, 1, 3, 4, 2).view(B, V * H * W, C) + if facial_components is not None: + n_facial_components = facial_components.shape[1] + x = torch.cat([x, facial_components], dim=1) + patches = self.norm1(x) + patches = patches + # self attention + patches = patches + self.self_attn(patches, patches, patches, need_weights=False)[0] + patches = patches + self.mlp(self.norm2(patches)) + + patches = self.norm3(patches) + patches = patches + self.self_attn2(patches, patches, patches, need_weights=False)[0] + patches = patches + self.mlp2(self.norm4(patches)) + + if facial_components is not None: + facial_components = patches[:, -n_facial_components:, :] + patches = patches[:, :-n_facial_components, :] + else: + facial_components = None + + patches = patches.reshape(B, V, H, W, C).permute(0, 1, 4, 2, 3) + + return patches, facial_components + + +class Upsampler(L.LightningModule): + def __init__(self, embedding_dim, window_size): + super().__init__() + + self.window_size = window_size + self.embedding_dim = embedding_dim + self.linear_up_1 = nn.Linear(embedding_dim, embedding_dim * 4) + self.pixel_shuffle_1 = nn.PixelShuffle(2) + + self.group = Rearrange('b c (h p1) (w p2) -> b c h w (p1 p2)', p1=window_size, p2=window_size) + self.ungroup = Rearrange('b h w (p1 p2) c -> b (h p1) (w p2) c', p1=window_size, p2=window_size) + + mlp_ratio = 1 + mlp_drop = 0.0 + self.mlp1 = nn.Sequential( + nn.Linear(embedding_dim, int(embedding_dim * mlp_ratio)), + nn.GELU(), + nn.Dropout(mlp_drop), + nn.Linear(int(embedding_dim * mlp_ratio), embedding_dim), + nn.Dropout(mlp_drop), + ) + self.mlp2 = nn.Sequential( + nn.Linear(embedding_dim, int(embedding_dim * mlp_ratio)), + nn.GELU(), + nn.Dropout(mlp_drop), + nn.Linear(int(embedding_dim * mlp_ratio), embedding_dim), + nn.Dropout(mlp_drop), + ) + self.norm0 = torch.nn.LayerNorm(embedding_dim) + self.norm1 = torch.nn.LayerNorm(embedding_dim) + self.norm2 = torch.nn.LayerNorm(embedding_dim) + self.norm3 = torch.nn.LayerNorm(embedding_dim) + self.self_attn1_1 = MultiheadAttention(embed_dim=embedding_dim, num_heads=8, kdim=embedding_dim, + vdim=embedding_dim, batch_first=True) + self.self_attn1_2 = MultiheadAttention(embed_dim=embedding_dim, num_heads=8, kdim=embedding_dim, + vdim=embedding_dim, batch_first=True) + + def forward(self, img_feats): + b = img_feats.shape[0] + + # image_feats: b x c x h_low x w_low + img_feats = self.linear_up_1(img_feats.permute(0, 2, 3, 1)).permute(0, 3, 1, 2) + img_feats_up = self.pixel_shuffle_1(img_feats) # b x c x 2*h_low x 2*w_low + + grouped_feats = self.group(img_feats_up) # b x c x h' x w' x (window_size**2) + grouped_h = grouped_feats.shape[2] + grouped_w = grouped_feats.shape[3] + grouped_feats = grouped_feats.permute(0, 2, 3, 1, 4).reshape(-1, self.embedding_dim, + self.window_size ** 2) # b' x c x win**2 + grouped_feats = grouped_feats.permute(0, 2, 1) + grouped_feats = self.norm0(grouped_feats) + grouped_feats = grouped_feats + \ + self.self_attn1_1(grouped_feats, grouped_feats, grouped_feats, need_weights=False)[ + 0] # b' x win**2 x c + grouped_feats = grouped_feats + self.mlp1(self.norm1(grouped_feats)) + + # ungroup + img_feats_up = grouped_feats.reshape(b, grouped_h, grouped_w, self.window_size ** 2, + self.embedding_dim) # b x h' x w' x win**2 x c + img_feats_up = self.ungroup(img_feats_up) # b h w c + + # shift + img_feats_up = torch.cat( + [img_feats_up[:, -self.window_size // 2:, :, :], img_feats_up[:, :-self.window_size // 2, :, :]], axis=1) + img_feats_up = torch.cat( + [img_feats_up[:, :, -self.window_size // 2:, :], img_feats_up[:, :, :-self.window_size // 2, :]], axis=2) + img_feats_up = img_feats_up.permute(0, 3, 1, 2) + grouped_feats = self.group(img_feats_up) # b x c x h' x w' x (window_size**2) + grouped_h = grouped_feats.shape[2] + grouped_w = grouped_feats.shape[3] + grouped_feats = grouped_feats.permute(0, 2, 3, 1, 4).reshape(-1, self.embedding_dim, + self.window_size ** 2) # b' x c x win**2 + grouped_feats = grouped_feats.permute(0, 2, 1) + grouped_feats = self.norm2(grouped_feats) + grouped_feats = grouped_feats + \ + self.self_attn1_2(grouped_feats, grouped_feats, grouped_feats, need_weights=False)[ + 0] # b' x win**2 x c + grouped_feats = grouped_feats + self.mlp2(self.norm3(grouped_feats)) + + # ungroup + img_feats_up = grouped_feats.reshape(b, grouped_h, grouped_w, self.window_size ** 2, + self.embedding_dim) # b x h' x w' x win**2 x c + img_feats_up = self.ungroup(img_feats_up) # b h w c + + # un-shift + img_feats_up = torch.cat( + [img_feats_up[:, self.window_size // 2:, :, :], img_feats_up[:, :self.window_size // 2, :, :]], axis=1) + img_feats_up = torch.cat( + [img_feats_up[:, :, self.window_size // 2:, :], img_feats_up[:, :, :self.window_size // 2, :]], axis=2) + img_feats_up = img_feats_up.permute(0, 3, 1, 2) + + return img_feats_up + + +class VolTransformer(L.LightningModule): + """ + Transformer with condition and modulation that generates a triplane representation. + + Reference: + Timm: https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/vision_transformer.py#L486 + """ + + def __init__(self, embed_dim: int, image_feat_dim: int, n_groups: list, + vol_low_res: int, vol_high_res: int, out_dim: int, + num_layers: int, num_heads: int, + eps: float = 1e-6): + super().__init__() + + # attributes + self.vol_low_res = vol_low_res + self.vol_high_res = vol_high_res + self.out_dim = out_dim + self.n_groups = n_groups + # self.block_size = [vol_low_res//item for item in n_groups] + self.embed_dim = embed_dim + + # modules + # initialize pos_embed with 1/sqrt(dim) * N(0, 1) + self.down_proj = torch.nn.Linear(image_feat_dim, embed_dim) + + self.layers = nn.ModuleList([ + GroupAttBlock( + inner_dim=embed_dim, input_dim=image_feat_dim, num_heads=num_heads, eps=eps) + for _ in range(num_layers) + ]) + + self.norm = nn.LayerNorm(embed_dim, eps=eps) + # self.deconv = nn.ConvTranspose3d(embed_dim, out_dim, kernel_size=2, stride=2, padding=0) + + def forward(self, image_feats, facial_components=None): + # image_feats: [B, C, H, W] + # camera_embeddings: [N, D_mod] + + B, V, C, H, W = image_feats.shape + + image_feats = self.down_proj(image_feats.permute(0, 1, 3, 4, 2)).permute(0, 1, 4, 2, 3) + + # self-attention, norm, mlp blocks + for i, layer in enumerate(self.layers): + image_feats, facial_components = layer(image_feats, facial_components) + + x = image_feats + # x = self.norm(torch.einsum('bchw->bhwc',x)) + # x = torch.einsum('bhwc->bchw',x) + + # separate each plane and apply deconv + # x_up = self.deconv(x) # [3*N, H', W'] + # x_up = torch.einsum('bchw->bhwc',x_up).contiguous() + return x, facial_components + + +def unpatchify(x, batch_size, channels=3, patch_size=16, n_views: int = 1): + """ + x: (N, L, patch_size**2 *channels) + imgs: (N, 3, H, W) + """ + h = w = int(x.shape[1] ** .5) + assert h * w == x.shape[1] + x = x.reshape(shape=(batch_size, n_views, h, w, patch_size, patch_size, channels)) + x = torch.einsum('nvhwpqc->nvchpwq', x) + imgs = x.reshape(shape=(batch_size, n_views, channels, h * patch_size, h * patch_size)) + return imgs + + +def get_pose_feat(src_exts, tar_ext, src_ixts, W, H): + """ + src_exts: [B,N,4,4] + tar_ext: [B,4,4] + src_ixts: [B,N,3,3] + """ + + B = src_exts.shape[0] + c2w_ref = src_exts[:, 0].view(B, -1) + normalize_facto = torch.tensor([W, H]).unsqueeze(0).to(c2w_ref) + fx_fy = src_ixts[:, 0, [0, 1], [0, 1]] / normalize_facto + cx_cy = src_ixts[:, 0, [0, 1], [2, 2]] / normalize_facto + + return torch.cat((c2w_ref, fx_fy, fx_fy), dim=-1) + + +def projection(grid, w2cs, ixts): + points = grid.reshape(1, -1, 3) @ w2cs[:, :3, :3].permute(0, 2, 1) + w2cs[:, :3, 3][:, None] + points = points @ ixts.permute(0, 2, 1) + points_xy = points[..., :2] / points[..., -1:] + return points_xy, points[..., -1:] + + +class ModLN(L.LightningModule): + """ + Modulation with adaLN. + + References: + DiT: https://github.com/facebookresearch/DiT/blob/main/models.py#L101 + """ + + def __init__(self, inner_dim: int, mod_dim: int, eps: float): + super().__init__() + self.norm = nn.LayerNorm(inner_dim, eps=eps) + self.mlp = nn.Sequential( + nn.SiLU(), + nn.Linear(mod_dim, inner_dim * 2), + ) + + @staticmethod + def modulate(x, shift, scale): + # x: [N, L, D] + # shift, scale: [N, D] + return x * (1 + scale) + shift + + def forward(self, x, cond): + shift, scale = self.mlp(cond).chunk(2, dim=-1) # [N, D] + return self.modulate(self.norm(x), shift, scale) # [N, L, D] + + +class Decoder(L.LightningModule): + def __init__(self, in_dim, sh_dim, scaling_dim, rotation_dim, opacity_dim, K=1, latent_dim=256, cnn_dim=0): + super(Decoder, self).__init__() + + self.K = K + self.sh_dim = sh_dim + self.opacity_dim = opacity_dim + self.scaling_dim = scaling_dim + self.rotation_dim = rotation_dim + self.out_dim = 3 + sh_dim + opacity_dim + scaling_dim + rotation_dim + cnn_dim + self.cnn_dim = cnn_dim + + if self.cnn_dim > 0: + assert sh_dim == 3 + + num_layer = 2 + layers_coarse = [nn.Linear(in_dim, in_dim), nn.ReLU()] + \ + [nn.Linear(in_dim, in_dim), nn.ReLU()] * (num_layer - 1) + \ + [nn.Linear(in_dim, self.out_dim * K)] + self.mlp_coarse = nn.Sequential(*layers_coarse) + + cond_dim = 8 + self.norm = nn.LayerNorm(in_dim) + self.cross_att = MultiheadAttention( + embed_dim=in_dim, num_heads=8, kdim=cond_dim, vdim=cond_dim, + dropout=0.0, bias=False, batch_first=True) + layers_fine = [nn.Linear(in_dim, 64), nn.ReLU()] + \ + [nn.Linear(64, self.sh_dim)] + self.mlp_fine = nn.Sequential(*layers_fine) + + self.init(self.mlp_coarse) + self.init(self.mlp_fine) + + def init(self, layers): + # MLP initialization as in mipnerf360 + init_method = "xavier" + if init_method: + for layer in layers: + if not isinstance(layer, torch.nn.Linear): + continue + if init_method == "kaiming_uniform": + torch.nn.init.kaiming_uniform_(layer.weight.data) + elif init_method == "xavier": + torch.nn.init.xavier_uniform_(layer.weight.data) + torch.nn.init.zeros_(layer.bias.data) + + def forward_coarse(self, feats, opacity_shift, scaling_shift): + parameters = self.mlp_coarse(feats).float() + parameters = parameters.view(*parameters.shape[:-1], self.K, -1) + offset, sh, opacity, scaling, rotation = torch.split( + parameters, + [3, (self.sh_dim + self.cnn_dim), self.opacity_dim, self.scaling_dim, self.rotation_dim], + dim=-1 + ) + opacity = opacity + opacity_shift + scaling = scaling + scaling_shift + offset = torch.sigmoid(offset) * 2 - 1.0 + + B = opacity.shape[0] + sh = sh.view(B, -1, self.sh_dim // 3, 3 + self.cnn_dim) + opacity = opacity.view(B, -1, self.opacity_dim) + scaling = scaling.view(B, -1, self.scaling_dim) + rotation = rotation.view(B, -1, self.rotation_dim) + offset = offset.view(B, -1, 3) + + return offset, sh, scaling, rotation, opacity + + def forward_fine(self, volume_feat, point_feats): + volume_feat = self.norm(volume_feat.unsqueeze(1)) + x = self.cross_att(volume_feat, point_feats, point_feats, need_weights=False)[0] + sh = self.mlp_fine(x).float() + return sh + + +class Network(L.LightningModule): + def __init__(self, cfg, white_bkgd=True): + super(Network, self).__init__() + + self.cfg = cfg + if not hasattr(cfg.model, 'pred_disentangled'): + cfg.model.pred_disentangled = False + if not hasattr(cfg.model, 'use_uv_enc'): + cfg.model.use_uv_enc = False + self.scene_size = 0.5 + self.white_bkgd = white_bkgd + + # modules + if self.cfg.model.feature_map_type == 'DINO': + self.img_encoder = DinoWrapper( + model_name=cfg.model.encoder_backbone, + is_train=self.cfg.model.finetune_backbone, + ) + self.feat_map_size = 32 + if self.cfg.model.feature_map_type == 'FaRL': + self.img_encoder = FaRLWrapperActual( + model_name=cfg.model.encoder_backbone, + is_train=self.cfg.model.finetune_backbone, + ) + self.feat_map_size = 14 + elif self.cfg.model.feature_map_type == 'MICA': + self.img_encoder = MICA( + model_name=cfg.model.encoder_backbone, + # is_train=self.cfg.model.finetune_backbone + ) + self.forward = self.forward_mica + elif self.cfg.model.feature_map_type == 'sapiens': + config = '/home/giebenhain/sapiens/pretrain/configs/sapiens_mae/humans_300m_test/mae_sapiens_0.3b-p16_8xb512-coslr-1600e_humans_300m_test.py' + if not os.path.exists(config): + config = '/rhome/sgiebenhain/sapiens/pretrain/configs/sapiens_mae/humans_300m_test/mae_sapiens_0.3b-p16_8xb512-coslr-1600e_humans_300m_test.py' + checkpoint = '/home/giebenhain/sapiens_ckpts/sapiens_host/pretrain/checkpoints/sapiens_0.3b/sapiens_0.3b_epoch_1600_clean.pth' + if not os.path.exists(checkpoint): + checkpoint = '/cluster/andram/sgiebenhain/sapiens_ckpts/sapiens_host/pretrain/checkpoints/sapiens_0.3b/sapiens_0.3b_epoch_1600_clean.pth' + self.img_encoder = WrappedFeatureExtractor(model=config, pretrained=checkpoint) # , device=device) + self.img_encoder.model.num_features = 1024 + self.img_encoder.model.backbone.out_type = 'featmap' ## removes cls_token and returns spatial feature maps. + self.bicubic_up = torch.nn.Upsample(scale_factor=2, mode='bicubic') + self.feat_map_size = 64 + + encoder_feat_dim = self.img_encoder.model.num_features + self.dir_norm = ModLN(encoder_feat_dim, 16 * 2, eps=1e-6) + self.dir_norm_uv = ModLN(encoder_feat_dim, encoder_feat_dim, eps=1e-6) + self.uv_enc_mlp = nn.Sequential( + nn.SiLU(), + nn.Linear(24, encoder_feat_dim), + ) + + if self.cfg.model.use_pos_enc: + self.patch_pos_enc = nn.Parameter( + torch.randn(1, encoder_feat_dim, self.feat_map_size, self.feat_map_size) * (1 / encoder_feat_dim) ** 0.5 + ) + + if self.cfg.n_views > 1: + self.view_embed = nn.Parameter( + torch.randn(1, self.cfg.n_views, self.cfg.model.view_embed_dim, 1, 1) * ( + 1 / cfg.model.view_embed_dim) ** 0.5 # TODO + ) + + inp_dim_transformer = encoder_feat_dim + cfg.model.view_embed_dim + else: + inp_dim_transformer = encoder_feat_dim + # build volume transformer + # self.n_groups = cfg.model.n_groups + embedding_dim = cfg.model.embedding_dim + self.vol_decoder = VolTransformer( + embed_dim=embedding_dim, image_feat_dim=inp_dim_transformer, + vol_low_res=None, vol_high_res=None, out_dim=cfg.model.vol_embedding_out_dim, n_groups=None, + num_layers=cfg.model.num_layers, num_heads=cfg.model.num_heads, + ) + + self.prediction_dim = 0 + for prediction_type in ['pos_map', 'normals', 'albedo', 'uv_map', 'depth', 'nocs']: + if prediction_type in self.cfg.model.prediction_type: + if prediction_type in ['pos_map', 'normals', 'albedo', 'nocs']: + self.prediction_dim += 3 + if prediction_type in ['pos_map', 'normals'] and self.cfg.model.pred_disentangled: + self.prediction_dim += 3 + elif prediction_type == 'uv_map': + self.prediction_dim += 2 + if self.cfg.model.pred_disentangled: + self.prediction_dim += 2 + elif prediction_type in ['depth', 'depth_si']: + self.prediction_dim += 1 + self.pred_disentangled = self.cfg.model.pred_disentangled + + self.t_conv1 = nn.ConvTranspose2d(embedding_dim, embedding_dim, 2, stride=2) # 32->64 + self.t_conv2 = nn.ConvTranspose2d(embedding_dim, embedding_dim, 2, stride=2) # 64->128 + self.t_conv3 = nn.ConvTranspose2d(embedding_dim, embedding_dim, 2, stride=2) # 128->256 + # self.t_conv4 = nn.ConvTranspose2d(embedding_dim // 2, self.prediction_dim, 2, stride=2) # 256->512 + + if self.cfg.model.conv_dec: + remaining_patch_size = 2 + elif self.cfg.model.feature_map_type == 'DINO': + remaining_patch_size = 16 + else: + remaining_patch_size = 8 + + self.patch_size = remaining_patch_size + + # self.token_2_patch_content = nn.Sequential( + # nn.Linear(embedding_dim, embedding_dim), + # nn.GELU(), + # nn.Linear(embedding_dim, remaining_patch_size**2*self.prediction_dim), + # #nn.Linear(embedding_dim, 16*16*self.prediction_dim), + # ) + self.token_2_patch_content = nn.Linear(embedding_dim, remaining_patch_size ** 2 * self.prediction_dim) + + if self.cfg.model.pred_conf: + self.t_conv3_conf = nn.ConvTranspose2d(embedding_dim, embedding_dim, 2, stride=2) + self.token_2_patch_conf = nn.Linear(embedding_dim, remaining_patch_size ** 2 * 1) + + self.n_facial_components = cfg.model.n_facial_components if hasattr(cfg.model, 'n_facial_components') else 0 + if self.n_facial_components > 0: + self.facial_components = nn.Parameter(torch.zeros([self.n_facial_components, + embedding_dim])) # torch.nn.Embedding(self.n_facial_components, embedding_dim) + # nn.init.trunc_normal_(self.facial_components, std=0.02) + # with torch.no_grad(): + # self.facial_components.weight = nn.Parameter(torch.zeros_like(self.facial_components.weight)) + + self.head_shape = nn.Sequential(nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), + nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), + nn.Linear(embedding_dim, self.cfg.model.flame_shape_dim)) + self.head_expr = nn.Sequential(nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), + nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), # TODO + nn.Linear(embedding_dim, self.cfg.model.flame_expr_dim)) + # self.head_jaw = nn.Sequential(nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), + # nn.Linear(embedding_dim, 6)) + self.head_focal_length = nn.Sequential(nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), + nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), + nn.Linear(embedding_dim, 2)) + self.head_principal_point = nn.Sequential(nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), + nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), + nn.Linear(embedding_dim, 2)) + self.head_cam_pos = nn.Sequential(nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), + nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), + nn.Linear(embedding_dim, 3)) + self.head_cam_rot = nn.Sequential(nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), + nn.Linear(embedding_dim, embedding_dim), nn.LeakyReLU(), + nn.Linear(embedding_dim, 6)) + + + # 32x32-->64x64 + # self.up1 = Upsampler(embedding_dim, 8) + # self.up2 = Upsampler(embedding_dim, 8) + ##self.up3 = Upsampler(embedding_dim, 8) + ##self.up4 = Upsampler(embedding_dim, 8) + # self.lin_up = torch.nn.Linear(embedding_dim, self.prediction_dim*4*4) + ##self.lin_out = torch.nn.Linear(embedding_dim, self.prediction_dim) + + # self.feat_vol_reso = cfg.model.vol_feat_reso + # self.register_buffer("volume_grid", self.build_dense_grid(self.feat_vol_reso)) + + # grouping configuration + # self.n_offset_groups = cfg.model.n_offset_groups + # self.register_buffer("group_centers", self.build_dense_grid(self.grid_reso*2)) + # self.group_centers = self.group_centers.reshape(1,-1,3) + + # 2DGS model + # self.sh_dim = (cfg.model.sh_degree+1)**2*3 + # self.scaling_dim, self.rotation_dim = 2, 4 + # self.opacity_dim = 1 + # self.out_dim = self.sh_dim + self.scaling_dim + self.rotation_dim + self.opacity_dim + + # self.K = cfg.model.K + # vol_embedding_out_dim = cfg.model.vol_embedding_out_dim + # self.decoder = Decoder(vol_embedding_out_dim, self.sh_dim, self.scaling_dim, self.rotation_dim, self.opacity_dim, self.K, + # cnn_dim=cfg.model.cnn_dim) + # self.gs_render = Renderer(sh_degree=cfg.model.sh_degree, white_background=white_bkgd, radius=1) + + # parameters initialization + # self.opacity_shift = -2.1792 + # self.voxel_size = 2.0/(self.grid_reso*2) + # self.scaling_shift = np.log(0.5*self.voxel_size/3.0) + + # self.has_cnn = cfg.model.cnn_dim > 0 + # assert cfg.model.cnn_dim <= 13 + # if self.has_cnn: + # self.cnn = Upsampler() + # self.cnn_dim = cfg.model.cnn_dim + + def build_dense_grid(self, reso): + array = torch.arange(reso, device=self.device) + grid = torch.stack(torch.meshgrid(array, array, array, indexing='ij'), dim=-1) + grid = (grid + 0.5) / reso * 2 - 1 + return grid.reshape(reso, reso, reso, 3) * self.scene_size + + def add_pos_enc_patches(self, src_inps, img_feats, n_views_sel, batch): + + h, w = src_inps.shape[-2:] + # src_ixts = batch['tar_ixt'][:,:n_views_sel].reshape(-1,3,3) + # src_w2cs = batch['tar_w2c'][:,:n_views_sel].reshape(-1,4,4) + + # img_wh = torch.tensor([w,h], device=self.device) + # point_img,_ = projection(self.volume_grid, src_w2cs, src_ixts) + # point_img = (point_img+ 0.5)/img_wh*2 - 1.0 + + # viewing direction + rays = batch['tar_rays_down'][:, :n_views_sel] + feats_dir = self.ray_to_plucker(rays).reshape(-1, *rays.shape[2:]) + feats_dir = torch.cat((rsh_cart_3(feats_dir[..., :3]), rsh_cart_3(feats_dir[..., 3:6])), dim=-1) + + # query features + img_feats = torch.einsum('bchw->bhwc', img_feats) + # print('img_feats.shape:', img_feats.shape) + # print('feats_dir.shape:', feats_dir.shape) + img_feats = self.dir_norm(img_feats, feats_dir) + img_feats = torch.einsum('bhwc->bchw', img_feats) + + # n_channel = img_feats.shape[1] + # feats_vol = F.grid_sample(img_feats.float(), point_img.unsqueeze(1), align_corners=False).to(img_feats) + + ## img features + # feats_vol = feats_vol.view(-1,n_views_sel,n_channel,self.feat_vol_reso,self.feat_vol_reso,self.feat_vol_reso) + c, h, w = img_feats.shape[1:] + img_feats = img_feats.reshape(-1, n_views_sel, c, h, w) + return img_feats + + def add_uv_enc_patches(self, src_inps, img_feats, n_views_sel, batch): + + h, w = src_inps.shape[-2:] + + # viewing direction + rays = batch['tar_uvs_down'][:, :n_views_sel] + feats_dir = rsh_cart_6_2d(rays) + + # query features + img_feats = torch.einsum('bchw->bhwc', img_feats) + + # print('img_feats.shape:', img_feats.shape) + # print('feats_dir.shape:', feats_dir.shape) + feats_dir = self.uv_enc_mlp(feats_dir) + img_feats = img_feats.reshape(feats_dir.shape[0], feats_dir.shape[1], img_feats.shape[1], img_feats.shape[2], + img_feats.shape[3]) + img_feats = self.dir_norm_uv(img_feats, feats_dir) + img_feats = torch.einsum('bvhwc->bvchw', img_feats) + + # n_channel = img_feats.shape[1] + # feats_vol = F.grid_sample(img_feats.float(), point_img.unsqueeze(1), align_corners=False).to(img_feats) + + ## img features + # feats_vol = feats_vol.view(-1,n_views_sel,n_channel,self.feat_vol_reso,self.feat_vol_reso,self.feat_vol_reso) + # c, h, w = img_feats.shape[1:] + # img_feats = img_feats.reshape(-1, n_views_sel, c, h, w) + return img_feats + + def add_pixel_pred_patches(self, src_inps, img_feats, n_views_sel, batch): + + rays = batch['tar_ns_down'][:, :n_views_sel] + rays = rays.reshape(-1, *rays.shape[2:]) + uvs = batch['tar_uvs_down'][:, :n_views_sel] + uvs = uvs.reshape(-1, *uvs.shape[2:]) + feats_dir = torch.cat(( + rsh_cart_3(rays[..., :3]), + rsh_cart_3(torch.cat([uvs, torch.zeros_like(uvs[..., -1:])], dim=-1)) + ), dim=-1) + + # query features + img_feats = torch.einsum('bchw->bhwc', img_feats) + # print('img_feats.shape:', img_feats.shape) + # print('feats_dir.shape:', feats_dir.shape) + img_feats = self.dir_norm(img_feats, feats_dir) + img_feats = torch.einsum('bhwc->bchw', img_feats) + + # n_channel = img_feats.shape[1] + # feats_vol = F.grid_sample(img_feats.float(), point_img.unsqueeze(1), align_corners=False).to(img_feats) + + ## img features + # feats_vol = feats_vol.view(-1,n_views_sel,n_channel,self.feat_vol_reso,self.feat_vol_reso,self.feat_vol_reso) + c, h, w = img_feats.shape[1:] + img_feats = img_feats.reshape(-1, n_views_sel, c, h, w) + return img_feats + + def _check_mask(self, mask): + ratio = torch.sum(mask) / np.prod(mask.shape) + if ratio < 1e-3: + mask = mask + torch.rand(mask.shape, device=self.device) > 0.8 + elif ratio > 0.5 and self.training: + # avoid OMM + mask = mask * torch.rand(mask.shape, device=self.device) > 0.5 + return mask + + def get_point_feats(self, idx, img_ref, renderings, n_views_sel, batch, points, mask): + + points = points[mask] + n_points = points.shape[0] + + h, w = img_ref.shape[-2:] + src_ixts = batch['tar_ixt'][idx, :n_views_sel].reshape(-1, 3, 3) + src_w2cs = batch['tar_w2c'][idx, :n_views_sel].reshape(-1, 4, 4) + + img_wh = torch.tensor([w, h], device=self.device) + point_xy, point_z = projection(points, src_w2cs, src_ixts) + point_xy = (point_xy + 0.5) / img_wh * 2 - 1.0 + + imgs_coarse = torch.cat((renderings['image'], renderings['acc_map'].unsqueeze(-1), renderings['depth']), dim=-1) + imgs_coarse = torch.cat((img_ref, torch.einsum('bhwc->bchw', imgs_coarse)), dim=1) + feats_coarse = F.grid_sample(imgs_coarse, point_xy.unsqueeze(1), align_corners=False).view(n_views_sel, -1, + n_points).to( + imgs_coarse) + + z_diff = (feats_coarse[:, -1:] - point_z.view(n_views_sel, -1, n_points)).abs() + + point_feats = torch.cat((feats_coarse[:, :-1], z_diff), dim=1) # [...,_mask] + + return point_feats, mask + + def ray_to_plucker(self, rays): + origin, direction = rays[..., :3], rays[..., 3:6] + # Normalize the direction vector to ensure it's a unit vector + direction = F.normalize(direction, p=2.0, dim=-1) + + # Calculate the moment vector (M = O x D) + moment = torch.cross(origin, direction, dim=-1) + + # Plucker coordinates are L (direction) and M (moment) + return torch.cat((direction, moment), dim=-1) + + def get_offseted_pt(self, offset, K): + B = offset.shape[0] + half_cell_size = 0.5 * self.scene_size / self.n_offset_groups + centers = self.group_centers.unsqueeze(-2).expand(B, -1, K, -1).reshape(offset.shape) + offset * half_cell_size + return centers + + def forward_new(self, batch, return_feature_map: bool = False, input_name='tar_rgb'): + og_tar_rgb = batch['tar_rgb'] + batch['tar_rgb'] = batch[input_name] + B, N, H, W, C = batch['tar_rgb'].shape + # if self.training: + # n_views_sel = random.randint(2, 4) if self.cfg.train.use_rand_views else self.cfg.n_views + # else: + n_views_sel = N # self.cfg.n_views + + _inps = batch['tar_rgb'][:, :n_views_sel].reshape(B * n_views_sel, H, W, C) + _inps = torch.einsum('bhwc->bchw', _inps) + + # image encoder + if self.cfg.model.feature_map_type == 'sapiens': + if self.cfg.model.finetune_backbone: + _inps = self.bicubic_up(_inps) + img_feats = self.img_encoder(_inps) + else: + with torch.no_grad(): + _inps = self.bicubic_up(_inps) + img_feats = self.img_encoder(_inps) + + elif self.cfg.model.feature_map_type == 'DINO': + if self.cfg.model.finetune_backbone: + img_feats = torch.einsum('blc->bcl', self.img_encoder(_inps)) + else: + with torch.no_grad(): + img_feats = torch.einsum('blc->bcl', self.img_encoder(_inps)) + token_size = int(np.sqrt(H * W / img_feats.shape[-1])) + img_feats = img_feats.reshape(*img_feats.shape[:2], H // token_size, W // token_size) + + elif self.cfg.model.feature_map_type == 'FaRL': + if self.cfg.model.finetune_backbone: + img_feats = self.img_encoder(_inps, facial_components=self.facial_components) + else: + with torch.no_grad(): + img_feats = self.img_encoder(_inps, facial_components=self.facial_components) + facial_components = img_feats[:, -6:, :] + + out_dict = {} + flame_shape = self.head_shape(facial_components[:, 0, :]) + flame_expr = self.head_expr(facial_components[:, 1, :]) + # flame_jaw = self.head_jaw(facial_components[:, 2, :]) + base_rot = torch.zeros([B, 6], device=flame_shape.device) + base_rot[:, 0] = -1 + base_rot[:, 5] = 1 + flame_focal_length = self.head_focal_length(facial_components[:, 3, :]) + flame_principal_point = self.head_principal_point(facial_components[:, 2, :]) + cam_pos = self.head_cam_pos(facial_components[:, 4, :]) + cam_rot = self.head_cam_rot(facial_components[:, 5, :]) + out_dict['shape'] = flame_shape # * self.std_id + self.mean_id + out_dict['expr'] = flame_expr # * self.std_ex + self.mean_ex + # out_dict['jaw'] = base_rot + flame_jaw + out_dict['focal_length'] = flame_focal_length + out_dict['principal_point'] = flame_principal_point + out_dict['cam_c2w_pos'] = cam_pos + out_dict['cam_c2w_rot'] = rotation_6d_to_matrix(base_rot + cam_rot) + + batch['tar_rgb'] = og_tar_rgb + + # for k in out_dict.keys(): + # print(k, out_dict[k].shape) + return out_dict, None + + def forward_hybrid(self, batch, return_feature_map: bool = False): + + B, N, H, W, C = batch['tar_rgb'].shape + # if self.training: + # n_views_sel = random.randint(2, 4) if self.cfg.train.use_rand_views else self.cfg.n_views + # else: + n_views_sel = N # self.cfg.n_views + + _inps = batch['tar_rgb'][:, :n_views_sel].reshape(B * n_views_sel, H, W, C) + _inps = torch.einsum('bhwc->bchw', _inps) + + # image encoder + if self.cfg.model.feature_map_type == 'sapiens': + if self.cfg.model.finetune_backbone: + _inps = self.bicubic_up(_inps) + img_feats = self.img_encoder(_inps) + else: + with torch.no_grad(): + _inps = self.bicubic_up(_inps) + img_feats = self.img_encoder(_inps) + + elif self.cfg.model.feature_map_type == 'DINO': + if self.cfg.model.finetune_backbone: + img_feats = torch.einsum('blc->bcl', self.img_encoder(_inps)) + else: + with torch.no_grad(): + img_feats = torch.einsum('blc->bcl', self.img_encoder(_inps)) + token_size = int(np.sqrt(H * W / img_feats.shape[-1])) + img_feats = img_feats.reshape(*img_feats.shape[:2], H // token_size, W // token_size) + + elif self.cfg.model.feature_map_type == 'FaRL': + if self.cfg.model.finetune_backbone: + img_feats = self.img_encoder(_inps, facial_components=self.facial_components) + else: + with torch.no_grad(): + img_feats = self.img_encoder(_inps, facial_components=self.facial_components) + facial_components = img_feats[:, -6:, :] + img_feats = img_feats[:, :-6, :] + img_feats = img_feats.permute(0, 2, 1) + token_size = int(np.sqrt(224 * 224 / img_feats.shape[-1])) + img_feats = img_feats.reshape(*img_feats.shape[:2], 224 // token_size, 224 // token_size) + + if self.cfg.model.use_pos_enc: + img_feats = img_feats + self.patch_pos_enc + + # print(img_feats.shape) + if hasattr(self.cfg.model, 'prior_input') and self.cfg.model.prior_input: # self.cfg.model.use_pixel_preds: + img_feats = self.add_pixel_pred_patches(_inps, img_feats, n_views_sel, batch).squeeze( + 1) # B n_views_sel C H W + # print(img_feats.shape) + # exit() + + if self.cfg.model.use_plucker: + img_feats = self.add_pos_enc_patches(_inps, img_feats, n_views_sel, batch) # B n_views_sel C H W + else: + img_feats = img_feats.reshape(B, N, img_feats.shape[1], img_feats.shape[2], img_feats.shape[3]) + if self.cfg.n_views > 1: + img_feats = torch.cat((img_feats, + self.view_embed[:, :n_views_sel].repeat(B, 1, 1, img_feats.shape[-2], + img_feats.shape[-1])), dim=2) + + # decoding + img_feats, facial_components = self.vol_decoder(img_feats, facial_components=facial_components) # b c h w + + out_dict = {} + + if self.n_facial_components == 0: + img_feats = img_feats.reshape(-1, img_feats.shape[2], img_feats.shape[3], img_feats.shape[4]) + + if False: + img_feats = self.up1(img_feats) + img_feats = self.up2(img_feats) + img_feats = img_feats.permute(0, 2, 3, 1) + img_feats = img_feats.reshape(img_feats.shape[0], -1, img_feats.shape[-1]) # b l c + img_feats = self.lin_up(img_feats) # b l 16*16*3 + # #img_feats = self.up3(img_feats) + # img_feats = self.up4(img_feats) + img = unpatchify(img_feats, channels=self.prediction_dim, patch_size=4) # b 3 h_full w_full + # img = self.lin_out(img_feats) + if self.cfg.model.conv_dec: + if self.cfg.model.feature_map_type == 'DINO': + img_feats = F.gelu(self.t_conv1(img_feats, output_size=(64, 64))) + img_feats = F.gelu(self.t_conv2(img_feats, output_size=(128, 128))) + if self.cfg.model.pred_conf: + conf_feats = F.gelu(self.t_conv3_conf(img_feats, output_size=(256, 256))) + img_feats = F.gelu(self.t_conv3(img_feats, output_size=(256, 256))) + + # img = self.t_conv4(img_feats, output_size=(512, 512)).squeeze() + + # self.cfg.model.prediction_type in ['pos_map', 'uv_map', 'normals', 'depth', 'depth_si', 'albedo']: + img_feats = img_feats.permute(0, 2, 3, 1) + img_feats = img_feats.reshape(img_feats.shape[0], -1, img_feats.shape[-1]) # b l c + img_feats = self.token_2_patch_content(img_feats) # b l 16*16*3 + img = unpatchify(img_feats, batch_size=B, channels=self.prediction_dim, patch_size=self.patch_size, + n_views=n_views_sel) # b 3 h_full w_full + if self.cfg.model.pred_conf: + conf_feats = conf_feats.permute(0, 2, 3, 1) + conf_feats = conf_feats.reshape(img_feats.shape[0], -1, conf_feats.shape[-1]) # b l c + conf_feats = self.token_2_patch_conf(conf_feats) # b l 16*16*3 + conf = unpatchify(conf_feats, batch_size=B, channels=1, patch_size=self.patch_size, + n_views=n_views_sel) # b 3 h_full w_full + else: + conf = None + + cur_dim = 0 + if 'pos_map' in self.cfg.model.prediction_type: + out_dict['pos_map'] = img[:, :, cur_dim:cur_dim + 3, ...] + cur_dim += 3 + if self.pred_disentangled: + out_dict['pos_map_can'] = img[:, :, cur_dim:cur_dim + 3, ...] + cur_dim += 3 + if 'uv_map' in self.cfg.model.prediction_type: + out_dict['uv_map'] = img[:, :, cur_dim:cur_dim + 2, ...] + cur_dim += 2 + if self.pred_disentangled: + out_dict['disps'] = img[:, :, cur_dim:cur_dim + 2, ...] + cur_dim += 2 + if 'normals' in self.cfg.model.prediction_type: + out_dict['normals'] = img[:, :, cur_dim:cur_dim + 3, ...] + cur_dim += 3 + if self.pred_disentangled: + out_dict['normals_can'] = img[:, :, cur_dim:cur_dim + 3, ...] + cur_dim += 3 + if 'albedo' in self.cfg.model.prediction_type: + out_dict['albedo'] = img[:, :, cur_dim:cur_dim + 3, ...] + cur_dim += 3 + + if 'nocs' in self.cfg.model.prediction_type: + out_dict['nocs'] = img[:, :, cur_dim:cur_dim + 3, ...] + cur_dim += 3 + else: + conf = None + + if facial_components is not None: + flame_shape = self.head_shape(facial_components[:, 0, :]) + flame_expr = self.head_expr(facial_components[:, 1, :]) + # flame_jaw = self.head_jaw(facial_components[:, 2, :]) + base_rot = torch.zeros([B, 6], device=flame_shape.device) + base_rot[:, 0] = -1 + base_rot[:, 5] = 1 + flame_focal_length = self.head_focal_length(facial_components[:, 3, :]) + flame_principal_point = self.head_principal_point(facial_components[:, 2, :]) + cam_pos = self.head_cam_pos(facial_components[:, 4, :]) + cam_rot = self.head_cam_rot(facial_components[:, 5, :]) + out_dict['shape'] = flame_shape # * self.std_id + self.mean_id + out_dict['expr'] = flame_expr # * self.std_ex + self.mean_ex + # out_dict['jaw'] = base_rot + flame_jaw + out_dict['focal_length'] = flame_focal_length + out_dict['principal_point'] = flame_principal_point + out_dict['cam_c2w_pos'] = cam_pos + out_dict['cam_c2w_rot'] = rotation_6d_to_matrix(base_rot + cam_rot) + + # for k in out_dict.keys(): + # print(k, out_dict[k].shape) + return out_dict, conf + + def forward(self, batch, return_feature_map: bool = False, input_name='tar_rgb'): + og_tar_rgb = batch['tar_rgb'] + # batch['tar_rgb'] = batch[input_name] + B, N, H, W, C = batch['tar_rgb'].shape + # if self.training: + # n_views_sel = random.randint(2, 4) if self.cfg.train.use_rand_views else self.cfg.n_views + # else: + n_views_sel = N # self.cfg.n_views + + # if self.n_facial_components > 0: + # facial_components = self.facial_components.unsqueeze(0).repeat(B, 1, 1) + # else: + # facial_components = None + if self.n_facial_components == 0: + facial_components = None + _inps = batch['tar_rgb'][:, :n_views_sel].reshape(B * n_views_sel, H, W, C) + _inps = torch.einsum('bhwc->bchw', _inps) + + # image encoder + if self.cfg.model.feature_map_type == 'sapiens': + if self.cfg.model.finetune_backbone: + _inps = self.bicubic_up(_inps) + img_feats = self.img_encoder(_inps) + else: + with torch.no_grad(): + _inps = self.bicubic_up(_inps) + img_feats = self.img_encoder(_inps) + + elif self.cfg.model.feature_map_type == 'DINO': + if self.cfg.model.finetune_backbone: + img_feats = torch.einsum('blc->bcl', self.img_encoder(_inps)) + else: + with torch.no_grad(): + img_feats = torch.einsum('blc->bcl', self.img_encoder(_inps)) + token_size = int(np.sqrt(H * W / img_feats.shape[-1])) + img_feats = img_feats.reshape(*img_feats.shape[:2], H // token_size, W // token_size) + if self.n_facial_components <= 0: + facial_components = None + elif self.cfg.model.feature_map_type == 'FaRL': + if self.cfg.model.finetune_backbone: + img_feats, facial_components = self.img_encoder(_inps, facial_components=self.facial_components) + else: + with torch.no_grad(): + img_feats, facial_components = self.img_encoder(_inps, facial_components=self.facial_components) + # facial_components = img_feats[:, -6:, :] + # img_feats = img_feats[:, 1:-6, :] + + # img_feats = img_feats.permute(0, 2, 1) + token_size = int(np.sqrt(224 * 224 / img_feats.shape[-1])) + # img_feats = img_feats.reshape(*img_feats.shape[:2], 224 // token_size, 224 // token_size) + + if self.cfg.model.use_pos_enc: + img_feats = img_feats + self.patch_pos_enc + + # print(img_feats.shape) + if hasattr(self.cfg.model, 'prior_input') and self.cfg.model.prior_input: # self.cfg.model.use_pixel_preds: + img_feats = self.add_pixel_pred_patches(_inps, img_feats, n_views_sel, batch).squeeze( + 1) # B n_views_sel C H W + # print(img_feats.shape) + # exit() + if self.cfg.model.use_uv_enc: + img_feats = self.add_uv_enc_patches(_inps, img_feats, n_views_sel, batch) # B n_views_sel C H W + elif self.cfg.model.use_plucker: + img_feats = self.add_pos_enc_patches(_inps, img_feats, n_views_sel, batch) # B n_views_sel C H W + else: + img_feats = img_feats.reshape(B, N, img_feats.shape[1], img_feats.shape[2], img_feats.shape[3]) + if self.cfg.n_views > 1: + img_feats = torch.cat((img_feats, + self.view_embed[:, :n_views_sel].repeat(B, 1, 1, img_feats.shape[-2], + img_feats.shape[-1])), dim=2) + + # decoding + img_feats, facial_components = self.vol_decoder(img_feats, facial_components=facial_components) # b c h w + + out_dict = {} + + if self.n_facial_components == 0: + img_feats = img_feats.reshape(-1, img_feats.shape[2], img_feats.shape[3], img_feats.shape[4]) + + if False: + img_feats = self.up1(img_feats) + img_feats = self.up2(img_feats) + img_feats = img_feats.permute(0, 2, 3, 1) + img_feats = img_feats.reshape(img_feats.shape[0], -1, img_feats.shape[-1]) # b l c + img_feats = self.lin_up(img_feats) # b l 16*16*3 + # #img_feats = self.up3(img_feats) + # img_feats = self.up4(img_feats) + img = unpatchify(img_feats, channels=self.prediction_dim, patch_size=4) # b 3 h_full w_full + # img = self.lin_out(img_feats) + if self.cfg.model.conv_dec: + if self.cfg.model.feature_map_type == 'DINO': + img_feats = F.gelu(self.t_conv1(img_feats, output_size=(64, 64))) + img_feats = F.gelu(self.t_conv2(img_feats, output_size=(128, 128))) + if self.cfg.model.pred_conf: + conf_feats = F.gelu(self.t_conv3_conf(img_feats, output_size=(256, 256))) + img_feats = F.gelu(self.t_conv3(img_feats, output_size=(256, 256))) + + # img = self.t_conv4(img_feats, output_size=(512, 512)).squeeze() + + # self.cfg.model.prediction_type in ['pos_map', 'uv_map', 'normals', 'depth', 'depth_si', 'albedo']: + img_feats = img_feats.permute(0, 2, 3, 1) + img_feats = img_feats.reshape(img_feats.shape[0], -1, img_feats.shape[-1]) # b l c + img_feats = self.token_2_patch_content(img_feats) # b l 16*16*3 + img = unpatchify(img_feats, batch_size=B, channels=self.prediction_dim, patch_size=self.patch_size, + n_views=n_views_sel) # b 3 h_full w_full + if self.cfg.model.pred_conf: + conf_feats = conf_feats.permute(0, 2, 3, 1) + conf_feats = conf_feats.reshape(img_feats.shape[0], -1, conf_feats.shape[-1]) # b l c + conf_feats = self.token_2_patch_conf(conf_feats) # b l 16*16*3 + conf = unpatchify(conf_feats, batch_size=B, channels=1, patch_size=self.patch_size, + n_views=n_views_sel) # b 3 h_full w_full + else: + conf = None + + cur_dim = 0 + if 'pos_map' in self.cfg.model.prediction_type: + out_dict['pos_map'] = img[:, :, cur_dim:cur_dim + 3, ...] + cur_dim += 3 + if self.pred_disentangled: + out_dict['pos_map_can'] = img[:, :, cur_dim:cur_dim + 3, ...] + cur_dim += 3 + if 'uv_map' in self.cfg.model.prediction_type: + out_dict['uv_map'] = img[:, :, cur_dim:cur_dim + 2, ...] + cur_dim += 2 + if self.pred_disentangled: + out_dict['disps'] = img[:, :, cur_dim:cur_dim + 2, ...] + cur_dim += 2 + if 'normals' in self.cfg.model.prediction_type: + out_dict['normals'] = img[:, :, cur_dim:cur_dim + 3, ...] + cur_dim += 3 + if self.pred_disentangled: + out_dict['normals_can'] = img[:, :, cur_dim:cur_dim + 3, ...] + cur_dim += 3 + if 'albedo' in self.cfg.model.prediction_type: + out_dict['albedo'] = img[:, :, cur_dim:cur_dim + 3, ...] + cur_dim += 3 + + if 'nocs' in self.cfg.model.prediction_type: + out_dict['nocs'] = img[:, :, cur_dim:cur_dim + 3, ...] + cur_dim += 3 + else: + conf = None + + if facial_components is not None: + flame_shape = self.head_shape(facial_components[:, 0, :]) + flame_expr = self.head_expr(facial_components[:, 1, :]) + # flame_jaw = self.head_jaw(facial_components[:, 2, :]) + base_rot = torch.zeros([B, 6], device=flame_shape.device) + base_rot[:, 0] = -1 + base_rot[:, 5] = 1 + flame_focal_length = self.head_focal_length(facial_components[:, 3, :]) + flame_principal_point = self.head_principal_point(facial_components[:, 2, :]) + cam_pos = self.head_cam_pos(facial_components[:, 4, :]) + cam_rot = self.head_cam_rot(facial_components[:, 5, :]) + out_dict['shape'] = flame_shape # * self.std_id + self.mean_id + out_dict['expr'] = flame_expr # * self.std_ex + self.mean_ex + # out_dict['jaw'] = base_rot + flame_jaw + out_dict['focal_length'] = flame_focal_length + out_dict['principal_point'] = flame_principal_point + out_dict['cam_c2w_pos'] = cam_pos + out_dict['cam_c2w_rot'] = rotation_6d_to_matrix(base_rot + cam_rot) + + batch['tar_rgb'] = og_tar_rgb + + # for k in out_dict.keys(): + # print(k, out_dict[k].shape) + return out_dict, conf + + def forward_mica(self, batch, return_feature_map: bool = False, input_name='tar_rgb'): + _, flame_shape = self.img_encoder(batch['rgb_arcface']) + out_dict = {} + conf = None + out_dict['shape'] = flame_shape + out_dict['expr'] = torch.zeros_like(flame_shape[..., :100]) + out_dict['focal_length'] = torch.zeros_like(flame_shape[..., :2]) + out_dict['principal_point'] = torch.zeros_like(flame_shape[..., :2]) + out_dict['cam_c2w_pos'] = torch.zeros_like(flame_shape[..., :3]) + out_dict['cam_c2w_rot'] = torch.zeros_like(rotation_6d_to_matrix(flame_shape[..., :6])) + + return out_dict, conf + + +class Network_cnn(L.LightningModule): + def __init__(self, cfg, white_bkgd=True): + super(Network_cnn, self).__init__() + + self.cfg = cfg + self.scene_size = 0.5 + self.white_bkgd = white_bkgd + + # modules + # if self.cfg.model.feature_map_type == 'DINO': + self.img_encoder = DinoWrapper( + model_name=cfg.model.encoder_backbone, + is_train=self.cfg.model.finetune_backbone, + ) + + encoder_feat_dim = self.img_encoder.model.num_features + self.dir_norm = ModLN(encoder_feat_dim, 16 * 2, eps=1e-6) + + # build volume transformer + # self.n_groups = cfg.model.n_groups + embedding_dim = cfg.model.embedding_dim * 10 + + self.embed_mlp = nn.Linear(encoder_feat_dim, embedding_dim) + self.activation = nn.ReLU() + + self.feature_map_type = self.cfg.model.feature_map_type + + if self.feature_map_type == 'scratch': + self.cstm_enc_conv1 = nn.Conv2d(3, 16, kernel_size=3, stride=1) # 512 + self.cstm_enc_pool = nn.MaxPool2d(2, 2) + self.cstm_enc_conv2 = nn.Conv2d(16, 32, kernel_size=3, stride=1) # 256 + self.cstm_enc_conv3 = nn.Conv2d(32, 64, kernel_size=3, stride=1) # 128 + self.cstm_enc_conv4 = nn.Conv2d(64, 128, kernel_size=3, stride=1) # 64 + self.cstm_enc_conv5 = nn.Conv2d(128, embedding_dim, kernel_size=3, stride=1) # 32 + + if self.feature_map_type == 'arcface': + if os.path.exists('/mnt/rohan'): + pretrained_path = '/mnt/rohan/cluster/andram/sgiebenhain/16_backbone.pth' # TODO + else: + pretrained_path = '/cluster/andram/sgiebenhain/16_backbone.pth' # TODO + self.arcface = Arcface(pretrained_path=pretrained_path).to(self.device) + + if not self.cfg.model.finetune_backbone: + # freeze arc face for now + for name, param in self.arcface.named_parameters(): + param.requires_grad = False + if self.feature_map_type == 'mica': + self.mica = construct_mica() + if not self.cfg.model.finetune_backbone: + # freeze arc face for now + for name, param in self.mica.named_parameters(): + param.requires_grad = False + + self.conv1 = nn.Conv2d(embedding_dim, embedding_dim, kernel_size=3, stride=1) + self.pool1 = nn.MaxPool2d(2, 2) + self.conv2 = nn.Conv2d(embedding_dim, embedding_dim, kernel_size=3, stride=1) + self.pool2 = nn.MaxPool2d(2, 2) + + z_dim = 512 + + self.conv3 = nn.Conv2d(embedding_dim, z_dim, kernel_size=3, stride=1) + + # self.vol_decoder = VolTransformer( + # embed_dim=embedding_dim, image_feat_dim=encoder_feat_dim, # +cfg.model.view_embed_dim, + # vol_low_res=None, vol_high_res=None, out_dim=cfg.model.vol_embedding_out_dim, n_groups=None, + # num_layers=cfg.model.num_layers, num_heads=cfg.model.num_heads, + # ) + + self.vertex_encoder = nn.Sequential( + nn.Linear(5023 * 3, 512), nn.LeakyReLU(0.2), + nn.Linear(512, z_dim), nn.LeakyReLU(0.2), + ) + + map_hidden_dim = 128 + self.network = nn.ModuleList( + [nn.Linear(z_dim, map_hidden_dim)] + + [nn.Linear(map_hidden_dim, map_hidden_dim) for i in range(3)] + ) + + self.output = nn.Linear(map_hidden_dim, 101) + self.network.apply(kaiming_leaky_init) + with torch.no_grad(): + self.output.weight *= 0.25 + + def build_dense_grid(self, reso): + array = torch.arange(reso, device=self.device) + grid = torch.stack(torch.meshgrid(array, array, array, indexing='ij'), dim=-1) + grid = (grid + 0.5) / reso * 2 - 1 + return grid.reshape(reso, reso, reso, 3) * self.scene_size + + def add_pos_enc_patches(self, src_inps, img_feats, n_views_sel, batch): + + h, w = src_inps.shape[-2:] + # src_ixts = batch['tar_ixt'][:,:n_views_sel].reshape(-1,3,3) + # src_w2cs = batch['tar_w2c'][:,:n_views_sel].reshape(-1,4,4) + + # img_wh = torch.tensor([w,h], device=self.device) + # point_img,_ = projection(self.volume_grid, src_w2cs, src_ixts) + # point_img = (point_img+ 0.5)/img_wh*2 - 1.0 + + # viewing direction + rays = batch['tar_rays_down'][:, :n_views_sel] + feats_dir = self.ray_to_plucker(rays).reshape(-1, *rays.shape[2:]) + feats_dir = torch.cat((rsh_cart_3(feats_dir[..., :3]), rsh_cart_3(feats_dir[..., 3:6])), dim=-1) + + # query features + img_feats = torch.einsum('bchw->bhwc', img_feats) + img_feats = self.dir_norm(img_feats, feats_dir) + img_feats = torch.einsum('bhwc->bchw', img_feats) + + # n_channel = img_feats.shape[1] + # feats_vol = F.grid_sample(img_feats.float(), point_img.unsqueeze(1), align_corners=False).to(img_feats) + + ## img features + # feats_vol = feats_vol.view(-1,n_views_sel,n_channel,self.feat_vol_reso,self.feat_vol_reso,self.feat_vol_reso) + + return img_feats + + def _check_mask(self, mask): + ratio = torch.sum(mask) / np.prod(mask.shape) + if ratio < 1e-3: + mask = mask + torch.rand(mask.shape, device=self.device) > 0.8 + elif ratio > 0.5 and self.training: + # avoid OMM + mask = mask * torch.rand(mask.shape, device=self.device) > 0.5 + return mask + + def get_point_feats(self, idx, img_ref, renderings, n_views_sel, batch, points, mask): + + points = points[mask] + n_points = points.shape[0] + + h, w = img_ref.shape[-2:] + src_ixts = batch['tar_ixt'][idx, :n_views_sel].reshape(-1, 3, 3) + src_w2cs = batch['tar_w2c'][idx, :n_views_sel].reshape(-1, 4, 4) + + img_wh = torch.tensor([w, h], device=self.device) + point_xy, point_z = projection(points, src_w2cs, src_ixts) + point_xy = (point_xy + 0.5) / img_wh * 2 - 1.0 + + imgs_coarse = torch.cat((renderings['image'], renderings['acc_map'].unsqueeze(-1), renderings['depth']), dim=-1) + imgs_coarse = torch.cat((img_ref, torch.einsum('bhwc->bchw', imgs_coarse)), dim=1) + feats_coarse = F.grid_sample(imgs_coarse, point_xy.unsqueeze(1), align_corners=False).view(n_views_sel, -1, + n_points).to( + imgs_coarse) + + z_diff = (feats_coarse[:, -1:] - point_z.view(n_views_sel, -1, n_points)).abs() + + point_feats = torch.cat((feats_coarse[:, :-1], z_diff), dim=1) # [...,_mask] + + return point_feats, mask + + def ray_to_plucker(self, rays): + origin, direction = rays[..., :3], rays[..., 3:6] + # Normalize the direction vector to ensure it's a unit vector + direction = F.normalize(direction, p=2.0, dim=-1) + + # Calculate the moment vector (M = O x D) + moment = torch.cross(origin, direction, dim=-1) + + # Plucker coordinates are L (direction) and M (moment) + return torch.cat((direction, moment), dim=-1) + + def get_offseted_pt(self, offset, K): + B = offset.shape[0] + half_cell_size = 0.5 * self.scene_size / self.n_offset_groups + centers = self.group_centers.unsqueeze(-2).expand(B, -1, K, -1).reshape(offset.shape) + offset * half_cell_size + return centers + + def forward(self, batch, return_feature_map: bool = False): + + B, N, H, W, C = batch['tar_rgb'].shape + # if self.training: + # n_views_sel = random.randint(2, 4) if self.cfg.train.use_rand_views else self.cfg.n_views + # else: + n_views_sel = 1 # self.cfg.n_views + + _inps = batch['tar_rgb'][:, :n_views_sel].reshape(B * n_views_sel, H, W, C) + _inps = torch.einsum('bhwc->bchw', _inps) + + # image encoder + if self.feature_map_type == 'DINO': + img_feats = torch.einsum('blc->bcl', self.img_encoder(_inps)) + token_size = int(np.sqrt(H * W / img_feats.shape[-1])) + img_feats = img_feats.reshape(*img_feats.shape[:2], H // token_size, W // token_size) + img_feats = img_feats.permute(0, 2, 3, 1) + img_feats = self.activation(self.embed_mlp(img_feats)).permute(0, 3, 1, 2) # b c h w + elif self.feature_map_type == 'scratch': + img_feats = self.cstm_enc_pool(F.leaky_relu(self.cstm_enc_conv1(_inps), negative_slope=0.2)) + img_feats = self.cstm_enc_pool(F.leaky_relu(self.cstm_enc_conv2(img_feats), negative_slope=0.2)) + img_feats = F.leaky_relu(self.cstm_enc_conv3(img_feats), negative_slope=0.2) + img_feats = self.cstm_enc_pool(F.leaky_relu(self.cstm_enc_conv4(img_feats), negative_slope=0.2)) + img_feats = F.leaky_relu(self.cstm_enc_conv5(img_feats), negative_slope=0.2) + elif self.feature_map_type == 'arcface': + img_feats = F.normalize(self.arcface(_inps)) + x = img_feats + elif self.feature_map_type == 'mica': + flame_code_pred = self.mica(_inps)[:, :101] # dirty hack to simulate scale at index 100 + feat_map = None + if return_feature_map: + return flame_code_pred, feat_map + else: + return flame_code_pred + + if return_feature_map: + feat_map = img_feats.detach().clone() + + ## build 3D volume + # TODO add plucker coordinates back + # img_feats = self.add_pos_enc_patches(_inps, img_feats, n_views_sel, batch) # B n_views_sel C H W + + # decoding + # img_feats = self.vol_decoder(img_feats) # b c h w + + if not self.feature_map_type == 'arcface': + x = img_feats + x = self.pool1(F.leaky_relu(self.conv1(x), negative_slope=0.2)) # 16x16 + x = self.pool2(F.leaky_relu(self.conv2(x), negative_slope=0.2)) # 8x8 + img_feats = F.leaky_relu(self.conv3(x), negative_slope=0.2) + + # flame_pred + img_feats = img_feats.reshape(img_feats.shape[0], img_feats.shape[1], -1) # B C H*W + x = img_feats.max(-1)[0] # b c + + for i_layer, layer in enumerate(self.network): + # if i_layer == 0: + x = F.leaky_relu(layer(x), negative_slope=0.2) + # else: + # x = F.leaky_relu(layer(torch.cat([x, enc], dim=-1)), negative_slope=0.2) + + flame_code_pred = self.output(x) + + if return_feature_map: + return flame_code_pred, feat_map + return flame_code_pred + + +class NetworkSanity(L.LightningModule): + def __init__(self, cfg, white_bkgd=True): + super(Network, self).__init__() + + self.cfg = cfg + self.scene_size = 0.5 + self.white_bkgd = white_bkgd + + # modules + self.img_encoder = DinoWrapper( + model_name=cfg.model.encoder_backbone, + is_train=cfg.model.finetune_backbone, + ) + + encoder_feat_dim = self.img_encoder.model.num_features + self.dir_norm = ModLN(encoder_feat_dim, 16 * 2, eps=1e-6) + + # build volume transformer + # self.n_groups = cfg.model.n_groups + embedding_dim = cfg.model.embedding_dim * 10 + + self.embed_mlp = nn.Linear(encoder_feat_dim, embedding_dim) + self.activation = nn.ReLU() + + # self.pred_head = torch.nn.Linear(embedding_dim, cfg.model.flame_dim) + mlp_ratio = 2 + self.pred_head = nn.Sequential( + nn.Linear(embedding_dim, int(embedding_dim * mlp_ratio)), + nn.ReLU(), + nn.Linear(int(embedding_dim * mlp_ratio), int(embedding_dim * mlp_ratio)), + nn.ReLU(), + # nn.Dropout(mlp_drop), + nn.Linear(int(embedding_dim * mlp_ratio), cfg.model.flame_dim), + # nn.Dropout(mlp_drop), + ) + z_dim = 256 + + self.vertex_encoder = nn.Sequential( + nn.Linear(5023 * 3, 512), nn.LeakyReLU(0.2), + nn.Linear(512, z_dim), nn.LeakyReLU(0.2), + ) + + map_hidden_dim = 128 + self.network = nn.ModuleList( + [nn.Linear(z_dim, map_hidden_dim)] + + [nn.Linear(map_hidden_dim, map_hidden_dim) for i in range(3)] + ) + + self.output = nn.Linear(map_hidden_dim, 101) + self.network.apply(kaiming_leaky_init) + with torch.no_grad(): + self.output.weight *= 0.25 + + # self.feat_vol_reso = cfg.model.vol_feat_reso + # self.register_buffer("volume_grid", self.build_dense_grid(self.feat_vol_reso)) + + # grouping configuration + # self.n_offset_groups = cfg.model.n_offset_groups + # self.register_buffer("group_centers", self.build_dense_grid(self.grid_reso*2)) + # self.group_centers = self.group_centers.reshape(1,-1,3) + + # 2DGS model + # self.sh_dim = (cfg.model.sh_degree+1)**2*3 + # self.scaling_dim, self.rotation_dim = 2, 4 + # self.opacity_dim = 1 + # self.out_dim = self.sh_dim + self.scaling_dim + self.rotation_dim + self.opacity_dim + + # self.K = cfg.model.K + # vol_embedding_out_dim = cfg.model.vol_embedding_out_dim + # self.decoder = Decoder(vol_embedding_out_dim, self.sh_dim, self.scaling_dim, self.rotation_dim, self.opacity_dim, self.K, + # cnn_dim=cfg.model.cnn_dim) + # self.gs_render = Renderer(sh_degree=cfg.model.sh_degree, white_background=white_bkgd, radius=1) + + # parameters initialization + # self.opacity_shift = -2.1792 + # self.voxel_size = 2.0/(self.grid_reso*2) + # self.scaling_shift = np.log(0.5*self.voxel_size/3.0) + + # self.has_cnn = cfg.model.cnn_dim > 0 + # assert cfg.model.cnn_dim <= 13 + # if self.has_cnn: + # self.cnn = Upsampler() + # self.cnn_dim = cfg.model.cnn_dim + + def build_dense_grid(self, reso): + array = torch.arange(reso, device=self.device) + grid = torch.stack(torch.meshgrid(array, array, array, indexing='ij'), dim=-1) + grid = (grid + 0.5) / reso * 2 - 1 + return grid.reshape(reso, reso, reso, 3) * self.scene_size + + def add_pos_enc_patches(self, src_inps, img_feats, n_views_sel, batch): + + h, w = src_inps.shape[-2:] + # src_ixts = batch['tar_ixt'][:,:n_views_sel].reshape(-1,3,3) + # src_w2cs = batch['tar_w2c'][:,:n_views_sel].reshape(-1,4,4) + + # img_wh = torch.tensor([w,h], device=self.device) + # point_img,_ = projection(self.volume_grid, src_w2cs, src_ixts) + # point_img = (point_img+ 0.5)/img_wh*2 - 1.0 + + # viewing direction + rays = batch['tar_rays_down'][:, :n_views_sel] + feats_dir = self.ray_to_plucker(rays).reshape(-1, *rays.shape[2:]) + feats_dir = torch.cat((rsh_cart_3(feats_dir[..., :3]), rsh_cart_3(feats_dir[..., 3:6])), dim=-1) + + # query features + img_feats = torch.einsum('bchw->bhwc', img_feats) + img_feats = self.dir_norm(img_feats, feats_dir) + img_feats = torch.einsum('bhwc->bchw', img_feats) + + # n_channel = img_feats.shape[1] + # feats_vol = F.grid_sample(img_feats.float(), point_img.unsqueeze(1), align_corners=False).to(img_feats) + + ## img features + # feats_vol = feats_vol.view(-1,n_views_sel,n_channel,self.feat_vol_reso,self.feat_vol_reso,self.feat_vol_reso) + + return img_feats + + def _check_mask(self, mask): + ratio = torch.sum(mask) / np.prod(mask.shape) + if ratio < 1e-3: + mask = mask + torch.rand(mask.shape, device=self.device) > 0.8 + elif ratio > 0.5 and self.training: + # avoid OMM + mask = mask * torch.rand(mask.shape, device=self.device) > 0.5 + return mask + + def get_point_feats(self, idx, img_ref, renderings, n_views_sel, batch, points, mask): + + points = points[mask] + n_points = points.shape[0] + + h, w = img_ref.shape[-2:] + src_ixts = batch['tar_ixt'][idx, :n_views_sel].reshape(-1, 3, 3) + src_w2cs = batch['tar_w2c'][idx, :n_views_sel].reshape(-1, 4, 4) + + img_wh = torch.tensor([w, h], device=self.device) + point_xy, point_z = projection(points, src_w2cs, src_ixts) + point_xy = (point_xy + 0.5) / img_wh * 2 - 1.0 + + imgs_coarse = torch.cat((renderings['image'], renderings['acc_map'].unsqueeze(-1), renderings['depth']), dim=-1) + imgs_coarse = torch.cat((img_ref, torch.einsum('bhwc->bchw', imgs_coarse)), dim=1) + feats_coarse = F.grid_sample(imgs_coarse, point_xy.unsqueeze(1), align_corners=False).view(n_views_sel, -1, + n_points).to( + imgs_coarse) + + z_diff = (feats_coarse[:, -1:] - point_z.view(n_views_sel, -1, n_points)).abs() + + point_feats = torch.cat((feats_coarse[:, :-1], z_diff), dim=1) # [...,_mask] + + return point_feats, mask + + def ray_to_plucker(self, rays): + origin, direction = rays[..., :3], rays[..., 3:6] + # Normalize the direction vector to ensure it's a unit vector + direction = F.normalize(direction, p=2.0, dim=-1) + + # Calculate the moment vector (M = O x D) + moment = torch.cross(origin, direction, dim=-1) + + # Plucker coordinates are L (direction) and M (moment) + return torch.cat((direction, moment), dim=-1) + + def get_offseted_pt(self, offset, K): + B = offset.shape[0] + half_cell_size = 0.5 * self.scene_size / self.n_offset_groups + centers = self.group_centers.unsqueeze(-2).expand(B, -1, K, -1).reshape(offset.shape) + offset * half_cell_size + return centers + + def forward(self, batch, return_feature_map: bool = False): + + # B, N, H, W, C = batch['tar_rgb'].shape + # if self.training: + # n_views_sel = random.randint(2, 4) if self.cfg.train.use_rand_views else self.cfg.n_views + # else: + n_views_sel = 1 # self.cfg.n_views + + if return_feature_map: + feat_map = None + + ## build 3D volume + # TODO add plucker coordinates back + # img_feats = self.add_pos_enc_patches(_inps, img_feats, n_views_sel, batch) # B n_views_sel C H W + + # decoding + # img_feats = self.vol_decoder(img_feats) # b c h w + # img_feats = img_feats.permute(0, 2, 3, 1) + # img_feats = self.activation(self.embed_mlp(img_feats)).permute(0, 3, 1, 2) # b c h w + + verts = batch['template_verts'] + verts = verts.reshape(verts.shape[0], -1) + + x = self.vertex_encoder(verts) + enc = x + # verts = verts.reshape(verts.shape[0], -1) + for i_layer, layer in enumerate(self.network): + # if i_layer == 0: + x = F.leaky_relu(layer(x), negative_slope=0.2) + # else: + # x = F.leaky_relu(layer(torch.cat([x, enc], dim=-1)), negative_slope=0.2) + + flame_code_pred = self.output(x) + + if return_feature_map: + return flame_code_pred, feat_map + return flame_code_pred + +# if __name__ == '__main__': diff --git a/src/pixel3dmm/lightning/p3dmm_system.py b/src/pixel3dmm/lightning/p3dmm_system.py new file mode 100644 index 0000000000000000000000000000000000000000..d6f2aa985c7fb90a2c7470b7a01c521b7b523f3d --- /dev/null +++ b/src/pixel3dmm/lightning/p3dmm_system.py @@ -0,0 +1,491 @@ +from PIL import Image, ImageDraw +import os +import torch +import numpy as np +import pytorch_lightning as L +import torch.nn as nn + +from pixel3dmm.lightning.utils import CosineWarmupScheduler, WarmupScheduler +from pixel3dmm.lightning.p3dmm_network import Network +from pixel3dmm import env_paths + + +def fov_to_ixt(fov, reso=512): + ixt = torch.eye(3).float().unsqueeze(0).repeat(fov.shape[0], 1, 1).to(fov.device) + ixt[:, 0, 2] = reso / 2 + ixt[:, 1, 2] = reso / 2 + focal = .5 * reso / torch.tan(.5 * fov) + ixt[:, 0, 0] = focal + ixt[:, 1, 1] = focal + return ixt + + +def batch_rodrigues( + rot_vecs: torch.Tensor, + epsilon: float = 1e-8, +) -> torch.Tensor: + ''' Calculates the rotation matrices for a batch of rotation vectors + Parameters + ---------- + rot_vecs: torch.tensor Nx3 + array of N axis-angle vectors + Returns + ------- + R: torch.tensor Nx3x3 + The rotation matrices for the given axis-angle parameters + ''' + + batch_size = rot_vecs.shape[0] + device, dtype = rot_vecs.device, rot_vecs.dtype + + angle = torch.norm(rot_vecs + 1e-8, dim=1, keepdim=True) + rot_dir = rot_vecs / angle + + cos = torch.unsqueeze(torch.cos(angle), dim=1) + sin = torch.unsqueeze(torch.sin(angle), dim=1) + + # Bx1 arrays + rx, ry, rz = torch.split(rot_dir, 1, dim=1) + K = torch.zeros((batch_size, 3, 3), dtype=dtype, device=device) + + zeros = torch.zeros((batch_size, 1), dtype=dtype, device=device) + K = torch.cat([zeros, -rz, ry, rz, zeros, -rx, -ry, rx, zeros], dim=1) \ + .view((batch_size, 3, 3)) + + ident = torch.eye(3, dtype=dtype, device=device).unsqueeze(dim=0) + rot_mat = ident + sin * K + (1 - cos) * torch.bmm(K, K) + return rot_mat + + +def pad_to_3_channels(img): + if img.shape[-1] == 3: + return img + elif img.shape[-1] == 1: + return np.concatenate([img, np.zeros_like(img[..., :1]), np.zeros_like(img[..., :1])], axis=-1) + elif img.shape[-1] == 2: + return np.concatenate([img, np.zeros_like(img[..., :1])], axis=-1) + else: + raise ValueError('too many dimensions in prediction type!') + + +class system(L.LightningModule): + def __init__(self, cfg): + super().__init__() + + self.glctx = None + self.cfg = cfg + self.net = Network(cfg) + + vertex_weight_mask = np.load(f'{env_paths.VERTEX_WEIGHT_MASK}') + + self.register_buffer('vertex_weight_mask', torch.from_numpy(vertex_weight_mask).float()) + + + + self.validation_step_outputs = [] + self.validation_step_outputs_per_dataset = [] + + self.dataset_types = [ + 'facescape', + 'nphm', + 'ava', + ] + + + self.do_eval = True + + self.alpha = 1.0 + + self.save_hyperparameters() + + self.loss_weights = { + 'albedo': 1.0, # 1.0/0.13, + 'depth': 1.0, + 'pos_map': 1.0, # 1.0/0.0006, + 'pos_map_can': 1.0, # 1.0/0.0006, + 'normals': 0.1, # TODO achtung #1.0/0.03, + 'normals_can': 1.0, # 1.0/0.03, + 'uv_map': 10.0, # 1.0/0.001, + 'nocs': 1.0, # 1.0/0.0006, + } + + + def training_step(self, batch, batch_idx): + + + output, conf = self.net(batch) + + B = output[list(output.keys())[0]].shape[0] + V = output[list(output.keys())[0]].shape[1] + + c_map = None + + + + losses = {} + + + if 'normals' in self.cfg.model.prediction_type: + + gt_normals = batch['normals'].permute(0, 1, 4, 2, 3) + if conf is None: + losses['normals'] = (batch['tar_msk'].unsqueeze(2) * (gt_normals - output['normals'])).abs().mean() + else: + losses['normals'] = (batch['tar_msk'].unsqueeze(2) * ( + c_map * (gt_normals - output['normals']) - self.alpha * torch.log(c_map))).abs().mean() + + if self.cfg.model.pred_disentangled: + gt_normals_can = batch['normals_can'].permute(0, 1, 4, 2, 3) + if conf is None: + losses['normals_can'] = ( + batch['tar_msk'].unsqueeze(2) * (gt_normals_can - output['normals_can'])).abs().mean() + else: + losses['normals_can'] = (batch['tar_msk'].unsqueeze(2) * ( + c_map * (gt_normals_can - output['normals_can']) - self.alpha * torch.log( + c_map))).abs().mean() + + + for prediction_type in ['uv_map', 'depth', 'nocs']: + if prediction_type in self.cfg.model.prediction_type: + weight_mask = torch.ones_like(output[prediction_type]) + if prediction_type == 'uv_map' or (prediction_type == 'nocs'): # ATTENTION: only for nocs? + weight_mask = batch['uv_masks'].unsqueeze(2).float() + 0.2 + gt_pos_map = batch[prediction_type].permute(0, 1, 4, 2, 3) + if conf is None: + losses[prediction_type] = (weight_mask * batch['tar_msk'].unsqueeze(2) * ( + gt_pos_map - output[prediction_type])).abs().mean() + else: + losses[prediction_type] = (weight_mask * batch['tar_msk'].unsqueeze(2) * ( + c_map * (gt_pos_map - output[prediction_type]) - self.alpha * torch.log( + c_map))).abs().mean() + + total_loss = 0 + + loss = 0 + for k in losses.keys(): + if k in self.loss_weights: + loss += self.loss_weights[k] * losses[k] + else: + loss += losses[k] + + + + self.log(f'train/loss', loss.item(), prog_bar=False) + # for prediction_type in self.cfg.model.prediction_type: + for k in losses.keys(): + if k in self.cfg.model.prediction_type: + self.log(f'train/loss_{k}', losses[k]) + if self.cfg.model.pred_disentangled: + for k in losses.keys(): + if k[:-4] in self.cfg.model.prediction_type: + self.log(f'train/loss_{k}', losses[k]) + + + self.log('lr', self.trainer.optimizers[0].param_groups[0]['lr']) + + do_vis = (0 == self.trainer.global_step % 300) if os.path.exists('/mnt/rohan') else ( + 0 == self.trainer.global_step % 3000) + if do_vis and (self.trainer.local_rank == 0): + output, conf = self.net(batch) + + + self.vis_results({k: v.detach() for (k, v) in output.items()}, conf, batch, prex='train') + self.do_eval = True + torch.cuda.empty_cache() + + + return loss + + + + def optimizer_step( + self, + *args, **kwargs + ): + """ + Skipping updates in case of unstable gradients + https://github.com/Lightning-AI/lightning/issues/4956 + """ + valid_gradients = True + grads = [ + param.grad.detach().flatten() + for param in self.parameters() + if param.grad is not None + ] + if len(grads) > 0: + norm = torch.cat(grads).norm() + self.log(f'grad/norm', norm.item(), prog_bar=False) # , sync_dist=True) + + if (norm > 10000 and self.global_step > 20 or torch.isnan(norm)): + valid_gradients = False + + if not valid_gradients: + print( + f'detected inf or nan values in gradients. not updating model parameters, OTHER FUNCTION threshold: {10000}, value: {norm.item()}') + self.zero_grad() + for param in self.parameters(): + param.grad = None + + L.LightningModule.optimizer_step(self, *args, **kwargs) + + + def validation_step(self, batch, batch_idx): + + + self.net.eval() + output, conf = self.net(batch) + + B = output[list(output.keys())[0]].shape[0] + V = output[list(output.keys())[0]].shape[1] + + + + loss_dict = {} + + dataset_indices = {} + + + + val_losses = {} + for prediction_type in ['uv_map', 'depth', 'nocs']: + if prediction_type in self.cfg.model.prediction_type: + gt_pos_map = batch[prediction_type].permute(0, 1, 4, 2, 3) + weight_mask = torch.ones_like(output[prediction_type]) + if prediction_type == 'uv_map' or (prediction_type == 'nocs'): # ATTENTION: only for nocs? + weight_mask = batch['uv_masks'].unsqueeze(2).float() + 0.2 + + val_losses[prediction_type] = (weight_mask * batch['tar_msk'].unsqueeze(2) * ( + gt_pos_map - output[prediction_type])).abs().mean() + loss_dict[f'loss/{prediction_type}'] = val_losses[prediction_type].item() + + if 'normals' in self.cfg.model.prediction_type: + prediction_type = 'normals' + gt_pos_map = batch[prediction_type].permute(0, 1, 4, 2, 3) + + val_losses[prediction_type] = ( + batch['tar_msk'].unsqueeze(2) * (gt_pos_map - output[prediction_type])).abs().mean() + + loss_dict[f'loss/{prediction_type}'] = val_losses[prediction_type].item() + + if self.cfg.model.pred_disentangled: + prediction_type = 'normals_can' + gt_pos_map = batch[prediction_type].permute(0, 1, 4, 2, 3) + + val_losses[prediction_type] = ( + batch['tar_msk'].unsqueeze(2) * (gt_pos_map - output[prediction_type])).abs().mean() + + loss_dict[f'loss/{prediction_type}'] = val_losses[prediction_type].item() + + # if self.cfg.model.prediction_type == 'depth_si': + # loss, pred_scale, target_scale = simae2_loss(output, batch['depth'].permute(0, 1, 4, 2, 3), batch['tar_msk'].unsqueeze(2), c_map=c_map, alpha=self.alpha) + # self.validation_step_outputs.append({'loss': loss.item()}) + + val_loss = 0 + + for prediction_type in self.cfg.model.prediction_type: + val_loss += self.loss_weights[prediction_type] * val_losses[prediction_type] + + + loss_dict['loss/total'] = val_loss.item() + self.validation_step_outputs.append(loss_dict) + + #print('GLOBAL_STEP:', self.trainer.global_step) + if self.do_eval and self.trainer.local_rank == 0: + output, conf = self.net(batch) + if conf is not None: + conf = conf.detach() + tmp_dict = {k: v.detach() for (k, v) in output.items()} + self.vis_results(tmp_dict, conf, batch, prex='val') + self.do_eval = False + torch.cuda.empty_cache() + + return val_loss + + def on_validation_epoch_end(self): + # for key in keys: + # prog_bar = True if key in ['psnr','mask','depth'] else False + metric_mean = np.stack([np.array(x['loss/total']) for x in self.validation_step_outputs]).mean() + self.log(f'val/loss', metric_mean, prog_bar=False, sync_dist=True) + if self.net.n_facial_components == 0: + + for prediction_type in self.cfg.model.prediction_type: + metric_mean_pred_type = np.stack( + [np.array(x[f'loss/{prediction_type}']) for x in self.validation_step_outputs]).mean() + self.log(f'val/loss_{prediction_type}', metric_mean_pred_type, sync_dist=True) + + for dataset_type in self.dataset_types: + for loss_type in self.validation_step_outputs[0].keys(): + content = [np.array(x[dataset_type][loss_type]) for x in self.validation_step_outputs_per_dataset if loss_type in x[dataset_type]] + if len(content) > 0: + metric_mean = np.nanmean(np.stack(content)) + self.log(f'val_{dataset_type}/{loss_type}', metric_mean, sync_dist=True) + + self.validation_step_outputs.clear() # free memory + torch.cuda.empty_cache() + + def vis_results(self, output, conf, batch, prex): + out_folder = f'{self.cfg.reconstruction_folder}/{prex}_{self.trainer.global_step}/' + os.makedirs(out_folder, exist_ok=True) + output_gpu = {k: v for k, v in output.items()} + output = {k: v.cpu() for k, v in output.items()} + if self.net.n_facial_components == 0: + output_rows = {} + + for predictiont_type in ['normals', 'albedo', 'uv_map', 'nocs']: + if predictiont_type in self.cfg.model.prediction_type: + output_rows[predictiont_type] = (batch['tar_msk'][..., None].float() * batch[predictiont_type]).permute(0, 1, 4, 2, 3).detach().cpu() + if predictiont_type in self.cfg.model.prediction_type and predictiont_type == 'normals' and self.cfg.model.pred_disentangled: + output_rows['normals_can'] = (batch['tar_msk'][..., None].float() * batch['normals_can']).permute(0, 1, 4, 2, 3).detach().cpu() + + gt_rgb = batch['tar_rgb'].permute(0, 1, 4, 2, 3).detach().cpu() + + + for i_batch in range(output_rows[self.cfg.model.prediction_type[0]].shape[0]): + + modalities = [] + prediction_types = self.cfg.model.prediction_type.copy() # ['pos_map', 'normals', 'albedo', 'uv_map'] + if self.cfg.model.pred_disentangled and "pos_map" in prediction_types: + prediction_types.append('pos_map_can') + if self.cfg.model.pred_disentangled and "normals" in prediction_types: + prediction_types.append('normals_can') + if self.cfg.model.pred_disentangled and "uv_map" in prediction_types: + prediction_types.append('disps') + + for prediction_type in prediction_types: + rows = [] + for i_view in range(output_rows[prediction_type].shape[1]): + with torch.no_grad(): + mini = min(output_rows[prediction_type][i_batch, i_view].min().item(), + output[prediction_type][i_batch, i_view].min().item()) + tmp_gt_pos_map = output_rows[prediction_type][i_batch, i_view].clone() - mini + tmp_output = output[prediction_type][i_batch, i_view].clone() - mini + maxi = max(tmp_gt_pos_map.max().item(), tmp_output.max().item()) + tmp_gt_pos_map = tmp_gt_pos_map / maxi + tmp_output = tmp_output / maxi + + catted = [ + gt_rgb[i_batch, i_view].permute(1, 2, 0).detach().cpu().numpy(), + pad_to_3_channels( + (batch['tar_msk'][i_batch, i_view].cpu() * tmp_gt_pos_map.cpu()).permute(1, 2, + 0).detach().cpu().numpy()), + pad_to_3_channels(tmp_output.permute(1, 2, 0).detach().cpu().float().numpy()), + ] + + if conf is not None: + mini_conf = conf[i_batch, i_view].min() + tmp_conf = conf[i_batch, i_view].clone() - mini_conf + maxi_conf = tmp_conf.max() + tmp_conf = tmp_conf / maxi_conf + catted.append( + pad_to_3_channels(tmp_conf.permute(1, 2, 0).detach().cpu().float().numpy())) + + catted = (np.concatenate(catted, axis=1) * 255).astype(np.uint8) + + rows.append(catted) + modalities.append(np.concatenate(rows, axis=0)) + + catted = Image.fromarray(np.concatenate(modalities, axis=0)) + scene_name = batch['meta']['scene'][i_batch] + catted.save(f'{out_folder}/{scene_name}.png') # , quality=90) + + + + + keys = list(output.keys()) + for k in keys: + del output[k] + del output + del gt_rgb + keys = list(output_rows.keys()) + for k in keys: + del output_rows[k] + del output_rows + + torch.cuda.empty_cache() + # pll.show() + + def num_steps(self) -> int: + """Get number of steps""" + # Accessing _data_source is flaky and might break + dataset = self.trainer.fit_loop._data_source.dataloader() + dataset_size = len(dataset) + num_devices = max(1, self.trainer.num_devices) + num_steps = dataset_size * self.trainer.max_epochs * self.cfg.train.limit_train_batches // ( + self.trainer.accumulate_grad_batches * num_devices) + return int(num_steps) + + def configure_optimizers(self): + decay_params, no_decay_params = [], [] + + invalid_params = [] + all_backbone_params = [] + all_non_backbone_params = [] + backbone_params = [] + backbone_params_no_decay = [] + # add all bias and LayerNorm params to no_decay_params + for name, module in self.named_modules(): + if name == 'flame' or name == 'flame_generic': + invalid_params.extend([p for p in module.parameters()]) + else: + if isinstance(module, nn.LayerNorm): + if 'img_encoder' in name: + backbone_params_no_decay.extend([p for p in module.parameters()]) + else: + no_decay_params.extend([p for p in module.parameters()]) + elif hasattr(module, 'bias') and module.bias is not None: + if 'img_encoder' in name: + backbone_params_no_decay.append(module.bias) + else: + no_decay_params.append(module.bias) + + if 'img_encoder' in name: + all_backbone_params.extend([p for p in module.parameters()]) + else: + all_non_backbone_params.extend([p for p in module.parameters()]) + + # add remaining parameters to decay_params + _no_decay_ids = set(map(id, no_decay_params)) + _all_backbone_ids = set(map(id, all_backbone_params)) + _all_non_backbone_ids = set(map(id, all_non_backbone_params)) + _backbone_no_decay_ids = set(map(id, backbone_params_no_decay)) + _invalid_ids = set(map(id, invalid_params)) + decay_params = [p for p in self.parameters() if + id(p) not in _no_decay_ids and id(p) not in _all_backbone_ids and id(p) not in _invalid_ids] + decay_params_backbone = [p for p in self.parameters() if + id(p) not in _backbone_no_decay_ids and id(p) not in _all_non_backbone_ids and id( + p) not in _invalid_ids] + no_decay_params = [p for p in no_decay_params if id(p) not in _invalid_ids] + no_decay_params_backbone = [p for p in backbone_params_no_decay if id(p) not in _invalid_ids] + + # filter out parameters with no grad + decay_params = list(filter(lambda p: p.requires_grad, decay_params)) + no_decay_params = list(filter(lambda p: p.requires_grad, no_decay_params)) + decay_params_backbone = list(filter(lambda p: p.requires_grad, decay_params_backbone)) + no_decay_params_backbone = list(filter(lambda p: p.requires_grad, no_decay_params_backbone)) + + # Optimizer + opt_groups = [ + {'params': decay_params, 'weight_decay': self.cfg.train.weight_decay, 'lr': self.cfg.train.lr}, + {'params': decay_params_backbone, 'weight_decay': self.cfg.train.weight_decay, + 'lr': self.cfg.train.lr_backbone}, + {'params': no_decay_params, 'weight_decay': 0.0, 'lr': self.cfg.train.lr}, + {'params': no_decay_params_backbone, 'weight_decay': 0.0, 'lr': self.cfg.train.lr_backbone}, + ] + optimizer = torch.optim.AdamW( + opt_groups, + betas=(self.cfg.train.beta1, self.cfg.train.beta2), + ) + + total_global_batches = self.num_steps() + + scheduler = CosineWarmupScheduler( + optimizer=optimizer, + warmup_iters=self.cfg.train.warmup_iters, + max_iters=total_global_batches, + ) + + return {"optimizer": optimizer, + "lr_scheduler": { + 'scheduler': scheduler, + 'interval': 'step' # or 'epoch' for epoch-level updates + }} diff --git a/src/pixel3dmm/lightning/utils.py b/src/pixel3dmm/lightning/utils.py new file mode 100644 index 0000000000000000000000000000000000000000..e7141a457e7237eb0e84d030bd4fa3dd121f878f --- /dev/null +++ b/src/pixel3dmm/lightning/utils.py @@ -0,0 +1,119 @@ +import torch, os, json, math +import numpy as np +from torch.optim.lr_scheduler import LRScheduler + +def getProjectionMatrix(znear, zfar, fovX, fovY): + + tanHalfFovY = torch.tan((fovY / 2)) + tanHalfFovX = torch.tan((fovX / 2)) + + P = torch.zeros(4, 4) + + z_sign = 1.0 + + P[0, 0] = 1 / tanHalfFovX + P[1, 1] = 1 / tanHalfFovY + P[3, 2] = z_sign + P[2, 2] = z_sign * zfar / (zfar - znear) + P[2, 3] = -(zfar * znear) / (zfar - znear) + return P + + +class MiniCam: + def __init__(self, c2w, width, height, fovy, fovx, znear, zfar, device): + # c2w (pose) should be in NeRF convention. + + self.image_width = width + self.image_height = height + self.FoVy = fovy + self.FoVx = fovx + self.znear = znear + self.zfar = zfar + + w2c = torch.inverse(c2w) + + # rectify... + # w2c[1:3, :3] *= -1 + # w2c[:3, 3] *= -1 + + self.world_view_transform = w2c.transpose(0, 1).to(device) + self.projection_matrix = ( + getProjectionMatrix( + znear=self.znear, zfar=self.zfar, fovX=self.FoVx, fovY=self.FoVy + ) + .transpose(0, 1) + .to(device) + ) + self.full_proj_transform = (self.world_view_transform @ self.projection_matrix).float() + self.camera_center = -c2w[:3, 3].to(device) + + +def rotation_matrix_to_quaternion(R): + tr = R[0, 0] + R[1, 1] + R[2, 2] + if tr > 0: + S = torch.sqrt(tr + 1.0) * 2.0 + qw = 0.25 * S + qx = (R[2, 1] - R[1, 2]) / S + qy = (R[0, 2] - R[2, 0]) / S + qz = (R[1, 0] - R[0, 1]) / S + elif (R[0, 0] > R[1, 1]) and (R[0, 0] > R[2, 2]): + S = torch.sqrt(1.0 + R[0, 0] - R[1, 1] - R[2, 2]) * 2.0 + qw = (R[2, 1] - R[1, 2]) / S + qx = 0.25 * S + qy = (R[0, 1] + R[1, 0]) / S + qz = (R[0, 2] + R[2, 0]) / S + elif R[1, 1] > R[2, 2]: + S = torch.sqrt(1.0 + R[1, 1] - R[0, 0] - R[2, 2]) * 2.0 + qw = (R[0, 2] - R[2, 0]) / S + qx = (R[0, 1] + R[1, 0]) / S + qy = 0.25 * S + qz = (R[1, 2] + R[2, 1]) / S + else: + S = torch.sqrt(1.0 + R[2, 2] - R[0, 0] - R[1, 1]) * 2.0 + qw = (R[1, 0] - R[0, 1]) / S + qx = (R[0, 2] + R[2, 0]) / S + qy = (R[1, 2] + R[2, 1]) / S + qz = 0.25 * S + return torch.stack([qw, qx, qy, qz], dim=1) + +def rotate_quaternions(q, R): + # Convert quaternions to rotation matrices + q = torch.cat([q[:, :1], -q[:, 1:]], dim=1) + q = torch.cat([q[:, :3], q[:, 3:] * -1], dim=1) + rotated_R = torch.matmul(torch.matmul(q, R), q.inverse()) + + # Convert the rotated rotation matrices back to quaternions + return rotation_matrix_to_quaternion(rotated_R) + +class WarmupScheduler(LRScheduler): + def __init__(self, optimizer, warmup_iters: int, max_iters: int, initial_lr: float = 1e-10, last_iter: int = -1): + self.warmup_iters = warmup_iters + self.max_iters = max_iters + self.initial_lr = initial_lr + super().__init__(optimizer, last_iter) + + def get_lr(self): + return [ + self.initial_lr + (base_lr - self.initial_lr) * min(self._step_count / self.warmup_iters, 1) + for base_lr in self.base_lrs] + +# this function is borrowed from OpenLRM +class CosineWarmupScheduler(LRScheduler): + def __init__(self, optimizer, warmup_iters: int, max_iters: int, initial_lr: float = 1e-10, last_iter: int = -1): + self.warmup_iters = warmup_iters + self.max_iters = max_iters + self.initial_lr = initial_lr + super().__init__(optimizer, last_iter) + + def get_lr(self): + + if self._step_count <= self.warmup_iters: + return [ + self.initial_lr + (base_lr - self.initial_lr) * self._step_count / self.warmup_iters + for base_lr in self.base_lrs] + else: + cos_iter = self._step_count - self.warmup_iters + cos_max_iter = self.max_iters - self.warmup_iters + cos_theta = cos_iter / cos_max_iter * math.pi + cos_lr = [base_lr * (1 + math.cos(cos_theta)) / 2 for base_lr in self.base_lrs] + return cos_lr \ No newline at end of file diff --git a/src/pixel3dmm/preprocessing/__init__.py b/src/pixel3dmm/preprocessing/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/pixel3dmm/preprocessing/pipnet_utils.py b/src/pixel3dmm/preprocessing/pipnet_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..1592548e67313c025879a340b9d4296d25153fa4 --- /dev/null +++ b/src/pixel3dmm/preprocessing/pipnet_utils.py @@ -0,0 +1,348 @@ +import importlib +import os +import torch.nn.parallel +import torch.utils.data +import torchvision.transforms as transforms + + +from pixel3dmm.preprocessing.PIPNet.FaceBoxesV2.faceboxes_detector import * +from pixel3dmm.preprocessing.PIPNet.lib.networks import * +from pixel3dmm.preprocessing.PIPNet.lib.functions import * +from pixel3dmm.preprocessing.PIPNet.lib.mobilenetv3 import mobilenetv3_large +from pixel3dmm import env_paths + +def smooth(x, window_len=11, window='hanning'): + """smooth the data using a window with requested size. + + This method is based on the convolution of a scaled window with the signal. + The signal is prepared by introducing reflected copies of the signal + (with the window size) in both ends so that transient parts are minimized + in the begining and end part of the output signal. + + input: + x: the input signal + window_len: the dimension of the smoothing window; should be an odd integer + window: the type of window from 'flat', 'hanning', 'hamming', 'bartlett', 'blackman' + flat window will produce a moving average smoothing. + + output: + the smoothed signal + + example: + + t=linspace(-2,2,0.1) + x=sin(t)+randn(len(t))*0.1 + y=smooth(x) + + see also: + + numpy.hanning, numpy.hamming, numpy.bartlett, numpy.blackman, numpy.convolve + scipy.signal.lfilter + + TODO: the window parameter could be the window itself if an array instead of a string + NOTE: length(output) != length(input), to correct this: return y[(window_len/2-1):-(window_len/2)] instead of just y. + """ + + if x.ndim != 1: + raise ValueError("smooth only accepts 1 dimension arrays.") + + if x.size < window_len: + raise ValueError( "Input vector needs to be bigger than window size.") + + if window_len < 3: + return x + + if not window in ['flat', 'hanning', 'hamming', 'bartlett', 'blackman']: + raise ValueError( "Window is on of 'flat', 'hanning', 'hamming', 'bartlett', 'blackman'") + + s = np.r_[x[window_len - 1:0:-1], x, x[-2:-window_len - 1:-1]] + # print(len(s)) + if window == 'flat': # moving average + w = np.ones(window_len, 'd') + else: + w = eval('np.' + window + '(window_len)') + + y = np.convolve(w / w.sum(), s, mode='valid') + return y + +def get_cstm_crop(image, detections, detections_max, max_bbox : bool = False): + #Image.fromarray(image).show() + image_width = image.shape[1] + image_height = image.shape[0] + + det_box_scale = 1.42 #2.0#1.42 + if detections[4]*1.42 * detections[5]*1.42 < detections_max[4] * 1.1 * detections_max[5] * 1.1: + detections = detections_max + det_box_scale = 1.1 + + det_xmin = detections[2] + det_ymin = detections[3] + det_width = detections[4] + det_height = detections[5] + if det_width > det_height: + det_ymin -= (det_width - det_height)//2 + det_height = det_width + if det_width < det_height: + det_xmin -= (det_height - det_width)//2 + det_width = det_height + + det_xmax = det_xmin + det_width - 1 + det_ymax = det_ymin + det_height - 1 + + + det_xmin -= int(det_width * (det_box_scale - 1) / 2) + det_ymin -= int(det_height * (det_box_scale - 1) / 2) + det_xmax += int(det_width * (det_box_scale - 1) / 2) + det_ymax += int(det_height * (det_box_scale - 1) / 2) + if det_xmin < 0 or det_ymin < 0: + min_overflow = min(det_xmin, det_ymin) + det_xmin += -min_overflow + det_ymin += -min_overflow + if det_xmax > image_width -1 or det_ymax > image_height - 1: + max_overflow = max(det_xmax - image_width -1, det_ymax - image_height-1) + det_xmax -= max_overflow + det_ymax -= max_overflow + + det_width = det_xmax - det_xmin + 1 + det_height = det_ymax - det_ymin + 1 + det_crop = image[det_ymin:det_ymax, det_xmin:det_xmax, :] + return det_crop, det_ymin, det_ymax, det_xmin, det_xmax + #Image.fromarray(det_crop).show() + #exit() + + +def demo_image(image_dir, pid, save_dir, preprocess, cfg, input_size, net_stride, num_nb, use_gpu, flip=False, start_frame=0, + vertical_crop : bool = False, + static_crop : bool = False, + max_bbox : bool = False, + disable_cropping : bool = False, + ): + + if cfg.use_gpu: + device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + else: + device = torch.device("cpu") + + detector = FaceBoxesDetector('FaceBoxes', f'{env_paths.CODE_BASE}/src/pixel3dmm/preprocessing/PIPNet/FaceBoxesV2/weights/FaceBoxesV2.pth', use_gpu, device) + my_thresh = 0.6 + det_box_scale = 1.2 + meanface_indices, reverse_index1, reverse_index2, max_len = get_meanface( + os.path.join(f'{env_paths.CODE_BASE}/src/pixel3dmm/preprocessing/', 'PIPNet', 'data', cfg.data_name, 'meanface.txt'), cfg.num_nb) + + if cfg.backbone == 'resnet18': + resnet18 = models.resnet18(pretrained=cfg.pretrained) + net = Pip_resnet18(resnet18, cfg.num_nb, num_lms=cfg.num_lms, input_size=cfg.input_size, + net_stride=cfg.net_stride) + elif cfg.backbone == 'resnet50': + resnet50 = models.resnet50(pretrained=cfg.pretrained) + net = Pip_resnet50(resnet50, cfg.num_nb, num_lms=cfg.num_lms, input_size=cfg.input_size, + net_stride=cfg.net_stride) + elif cfg.backbone == 'resnet101': + resnet101 = models.resnet101(pretrained=cfg.pretrained) + net = Pip_resnet101(resnet101, cfg.num_nb, num_lms=cfg.num_lms, input_size=cfg.input_size, + net_stride=cfg.net_stride) + elif cfg.backbone == 'mobilenet_v2': + mbnet = models.mobilenet_v2(pretrained=cfg.pretrained) + net = Pip_mbnetv2(mbnet, cfg.num_nb, num_lms=cfg.num_lms, input_size=cfg.input_size, net_stride=cfg.net_stride) + elif cfg.backbone == 'mobilenet_v3': + mbnet = mobilenetv3_large() + if cfg.pretrained: + mbnet.load_state_dict(torch.load('lib/mobilenetv3-large-1cd25616.pth')) + net = Pip_mbnetv3(mbnet, cfg.num_nb, num_lms=cfg.num_lms, input_size=cfg.input_size, net_stride=cfg.net_stride) + else: + print('No such backbone!') + exit(0) + + + net = net.to(device) + + weight_file = os.path.join(save_dir, 'epoch%d.pth' % (cfg.num_epochs - 1)) + state_dict = torch.load(weight_file, map_location=device) + net.load_state_dict(state_dict) + net.eval() + + if start_frame > 0: + files = [f for f in os.listdir(f'{image_dir}/') if f.endswith('.jpg') or f.endswith('.png') and (((int(f.split('_')[-1].split('.')[0])-start_frame) % 3 )== 0)] + else: + files = [f for f in os.listdir(f'{image_dir}/') if f.endswith('.jpg') or f.endswith('.png')] + files.sort() + + if not vertical_crop: + all_detections = [] + all_images = [] + #all_normals = [] + succ_files = [] + for file_name in files: + image = cv2.imread(f'{image_dir}/{file_name}') + #normals = cv2.imread(f'{image_dir}/../normals/{file_name[:-4]}.png') + + if len(image.shape) < 3 or image.shape[-1] != 3: + continue + + image_height, image_width, _ = image.shape + + + + detections, _ = detector.detect(image, my_thresh, 1) + dets_filtered = [det for det in detections if det[0] == 'face'] + dets_filtered.sort(key=lambda x: -1 * x[1]) + detections = dets_filtered + if detections[0][1] < 0.75: + raise ValueError("Found face with too low detections confidence as max confidence") + all_detections.append(detections[0]) + all_images.append(image) + #all_normals.append(normals) + succ_files.append(file_name) + + assert static_crop, 'Other options currently not supported anymore' + if static_crop: + #if max_bbox: + det1_max = np.min(np.array([x[2] for x in all_detections]), axis=0) + det2_max = np.min(np.array([x[3] for x in all_detections]), axis=0) + det3_max = np.max(np.array([x[4]+x[2]-det1_max for x in all_detections]), axis=0) + det4_max = np.max(np.array([x[5]+x[3]-det2_max for x in all_detections]), axis=0) + det1 = np.mean(np.array([x[2] for x in all_detections]), axis=0) + det2 = np.mean(np.array([x[3] for x in all_detections]), axis=0) + det3 = np.mean(np.array([x[4] for x in all_detections]), axis=0) + det4 = np.mean(np.array([x[5] for x in all_detections]), axis=0) + + det_smoothed = np.stack([det1, det2, det3, det4], axis=0).astype(np.int32) + det_smoothed_max = np.stack([det1_max, det2_max, det3_max, det4_max], axis=0).astype(np.int32) + all_detections_smoothed = [] # = [[x[0], x[1], x_smoothed[0], x_smoothed[1], x_smoothed[2], x_smoothed[3]] for x, x_smoothed in zip()] + all_detections_max_smoothed = [] # = [[x[0], x[1], x_smoothed[0], x_smoothed[1], x_smoothed[2], x_smoothed[3]] for x, x_smoothed in zip()] + for i, det in enumerate(all_detections): + all_detections_smoothed.append( + [det[0], det[1], det_smoothed[0], det_smoothed[1], det_smoothed[2], det_smoothed[3]]) + all_detections_max_smoothed.append( + [det[0], det[1], det_smoothed_max[0], det_smoothed_max[1], det_smoothed_max[2], det_smoothed_max[3]]) + all_detections = all_detections_smoothed + all_detections_max = all_detections_max_smoothed + else: + if len(all_detections) > 11: + WINDOW_LENGTH = 11 + det1 = smooth(np.array([x[2] for x in all_detections]), window_len=WINDOW_LENGTH) + det2 = smooth(np.array([x[3] for x in all_detections]), window_len=WINDOW_LENGTH) + det3 = smooth(np.array([x[4] for x in all_detections]), window_len=WINDOW_LENGTH) + det4 = smooth(np.array([x[5] for x in all_detections]), window_len=WINDOW_LENGTH) + det_smoothed = np.stack([det1, det2,det3,det4], axis=1).astype(np.int32) + all_detections_smoothed = [] #= [[x[0], x[1], x_smoothed[0], x_smoothed[1], x_smoothed[2], x_smoothed[3]] for x, x_smoothed in zip()] + for i, det in enumerate(all_detections): + all_detections_smoothed.append([det[0], det[1], det_smoothed[i, 0], det_smoothed[i, 1], det_smoothed[i, 2], det_smoothed[i, 3]]) + all_detections = all_detections_smoothed + # TODO: smooth detections!!! + for file_name, detection, detection_max, image in zip(succ_files, all_detections, all_detections_max, all_images): + + if not disable_cropping: + img_crop, det_ymin, det_ymax, det_xmin, det_xmax = get_cstm_crop(image, detection, detection_max, max_bbox=max_bbox) + #n_crop = get_cstm_crop(normals, detection) + image = img_crop + # save cropped image + os.makedirs(f'{image_dir}/../cropped/', exist_ok=True) + #os.makedirs(f'{image_dir}/../cropped_normals/', exist_ok=True) + cv2.imwrite(f'{image_dir}/../cropped/{file_name}', cv2.resize(image, (512, 512))) + #cv2.imwrite(f'{image_dir}/../cropped_normals/{file_name[:-4]}.png', cv2.resize(n_crop, (512, 512))) + + # store cropping information: + if not os.path.exists(f'{image_dir}/../crop_ymin_ymax_xmin_xmax.npy'): + np.save(f'{image_dir}/../crop_ymin_ymax_xmin_xmax.npy', np.array([det_ymin, det_ymax, det_xmin, det_xmax])) + else: + for file_name in files: + image = cv2.imread(f'{image_dir}/{file_name}') + if image.shape[0] != image.shape[1]: + image = image[220:-220, 640:-640, :] + os.makedirs(f'{image_dir}/../cropped/', exist_ok=True) + cv2.imwrite(f'{image_dir}/../cropped/{file_name}', cv2.resize(image, (512, 512))) + + + # run landmark detection + lms = [] + image_dir = f'{image_dir}/../cropped/' + for file_name in files: + image = cv2.imread(f'{image_dir}/{file_name}') + + if len(image.shape) < 3 or image.shape[-1] != 3: + continue + if flip: + image = cv2.transpose(image) + + image_height, image_width, _ = image.shape + detections, _ = detector.detect(image, my_thresh, 1) + pred_export = None + dets_filtered = [det for det in detections if det[0] == 'face'] + dets_filtered.sort(key=lambda x: -1 * x[1]) + detections = dets_filtered + + + print(detections) + for i in range(min(1, len(detections))): + if detections[i][1] < 0.99: + continue + det_xmin = detections[i][2] + det_ymin = detections[i][3] + det_width = detections[i][4] + det_height = detections[i][5] + det_xmax = det_xmin + det_width - 1 + det_ymax = det_ymin + det_height - 1 + + + det_xmin -= int(det_width * (det_box_scale - 1) / 2) + # remove a part of top area for alignment, see paper for details + det_ymin += int(det_height * (det_box_scale - 1) / 2) + det_xmax += int(det_width * (det_box_scale - 1) / 2) + det_ymax += int(det_height * (det_box_scale - 1) / 2) + det_xmin = max(det_xmin, 0) + det_ymin = max(det_ymin, 0) + det_xmax = min(det_xmax, image_width - 1) + det_ymax = min(det_ymax, image_height - 1) + det_width = det_xmax - det_xmin + 1 + det_height = det_ymax - det_ymin + 1 + cv2.rectangle(image, (det_xmin, det_ymin), (det_xmax, det_ymax), (0, 0, 255), 2) + det_crop = image[det_ymin:det_ymax, det_xmin:det_xmax, :] + #np.save(f'{CROP_DIR}/{pid[:-4]}.npy', np.array([det_ymin, det_ymax, det_xmin, det_xmax])) + det_crop = cv2.resize(det_crop, (input_size, input_size)) + inputs = Image.fromarray(det_crop[:, :, ::-1].astype('uint8'), 'RGB') + #inputs.show() + inputs = preprocess(inputs).unsqueeze(0) + inputs = inputs.to(device) + lms_pred_x, lms_pred_y, lms_pred_nb_x, lms_pred_nb_y, outputs_cls, max_cls = forward_pip(net, + inputs, + preprocess, + input_size, + net_stride, + num_nb) + lms_pred = torch.cat((lms_pred_x, lms_pred_y), dim=1).flatten() + tmp_nb_x = lms_pred_nb_x[reverse_index1, reverse_index2].view(cfg.num_lms, max_len) + tmp_nb_y = lms_pred_nb_y[reverse_index1, reverse_index2].view(cfg.num_lms, max_len) + tmp_x = torch.mean(torch.cat((lms_pred_x, tmp_nb_x), dim=1), dim=1).view(-1, 1) + tmp_y = torch.mean(torch.cat((lms_pred_y, tmp_nb_y), dim=1), dim=1).view(-1, 1) + lms_pred_merge = torch.cat((tmp_x, tmp_y), dim=1).flatten() + lms_pred = lms_pred.cpu().numpy() + lms_pred_merge = lms_pred_merge.cpu().numpy() + pred_export = np.zeros([cfg.num_lms, 2]) + for i in range(cfg.num_lms): + x_pred = lms_pred_merge[i * 2] * det_width + y_pred = lms_pred_merge[i * 2 + 1] * det_height + pred_export[i, 0] = (x_pred + det_xmin) / image_width + pred_export[i, 1] = (y_pred + det_ymin) / image_height + cv2.circle(image, (int(x_pred) + det_xmin, int(y_pred) + det_ymin), 1, (0, 0, 255), 2) + if i == 76: + cv2.circle(image, (int(x_pred) + det_xmin, int(y_pred) + det_ymin), 1, (255, 0, 0), 2) + + if pred_export is not None: + print('exporting stuff to ' + image_dir) + landmakr_dir = f'{image_dir}/../PIPnet_landmarks/' + os.makedirs(landmakr_dir, exist_ok=True) + np.save(landmakr_dir + f'/{file_name[:-4]}.npy', pred_export) + lms.append(pred_export) + exp_dir = image_dir + '/../PIPnet_annotated_images/' + os.makedirs(exp_dir, exist_ok=True) + cv2.imwrite(exp_dir + f'/{file_name}', image) + + # cv2.imshow('1', image) + # cv2.waitKey(0) + + lms = np.stack(lms, axis=0) + os.makedirs(f'{image_dir}/../pipnet', exist_ok=True) + np.save(f'{image_dir}/../pipnet/test.npy', lms) + + diff --git a/src/pixel3dmm/preprocessing/replacement_code/__init__.py b/src/pixel3dmm/preprocessing/replacement_code/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/pixel3dmm/preprocessing/replacement_code/facer_transform.py b/src/pixel3dmm/preprocessing/replacement_code/facer_transform.py new file mode 100644 index 0000000000000000000000000000000000000000..9dd7310e51d9233c6e1a8e6d4c0067d45bd379b0 --- /dev/null +++ b/src/pixel3dmm/preprocessing/replacement_code/facer_transform.py @@ -0,0 +1,397 @@ +from typing import List, Dict, Callable, Tuple, Optional +import torch +import torch.nn.functional as F +import functools +import numpy as np + + +def get_crop_and_resize_matrix( + box: torch.Tensor, target_shape: Tuple[int, int], + target_face_scale: float = 1.0, make_square_crop: bool = True, + offset_xy: Optional[Tuple[float, float]] = None, align_corners: bool = True, + offset_box_coords: bool = False) -> torch.Tensor: + """ + Args: + box: b x 4(x1, y1, x2, y2) + align_corners (bool): Set this to `True` only if the box you give has coordinates + ranging from `0` to `h-1` or `w-1`. + + offset_box_coords (bool): Set this to `True` if the box you give has coordinates + ranging from `0` to `h` or `w`. + + Set this to `False` if the box coordinates range from `-0.5` to `h-0.5` or `w-0.5`. + + If the box coordinates range from `0` to `h-1` or `w-1`, set `align_corners=True`. + + Returns: + torch.Tensor: b x 3 x 3. + """ + if offset_xy is None: + offset_xy = (0.0, 0.0) + + x1, y1, x2, y2 = box.split(1, dim=1) # b x 1 + cx = (x1 + x2) / 2 + offset_xy[0] + cy = (y1 + y2) / 2 + offset_xy[1] + rx = (x2 - x1) / 2 / target_face_scale + ry = (y2 - y1) / 2 / target_face_scale + if make_square_crop: + rx = ry = torch.maximum(rx, ry) + + x1, y1, x2, y2 = cx - rx, cy - ry, cx + rx, cy + ry + + h, w, *_ = target_shape + + zeros_pl = torch.zeros_like(x1) + ones_pl = torch.ones_like(x1) + + if align_corners: + # x -> (x - x1) / (x2 - x1) * (w - 1) + # y -> (y - y1) / (y2 - y1) * (h - 1) + ax = 1.0 / (x2 - x1) * (w - 1) + ay = 1.0 / (y2 - y1) * (h - 1) + matrix = torch.cat([ + ax, zeros_pl, -x1 * ax, + zeros_pl, ay, -y1 * ay, + zeros_pl, zeros_pl, ones_pl + ], dim=1).reshape(-1, 3, 3) # b x 3 x 3 + else: + if offset_box_coords: + # x1, x2 \in [0, w], y1, y2 \in [0, h] + # first we should offset x1, x2, y1, y2 to be ranging in + # [-0.5, w-0.5] and [-0.5, h-0.5] + # so to convert these pixel coordinates into boundary coordinates. + x1, x2, y1, y2 = x1-0.5, x2-0.5, y1-0.5, y2-0.5 + + # x -> (x - x1) / (x2 - x1) * w - 0.5 + # y -> (y - y1) / (y2 - y1) * h - 0.5 + ax = 1.0 / (x2 - x1) * w + ay = 1.0 / (y2 - y1) * h + matrix = torch.cat([ + ax, zeros_pl, -x1 * ax - 0.5*ones_pl, + zeros_pl, ay, -y1 * ay - 0.5*ones_pl, + zeros_pl, zeros_pl, ones_pl + ], dim=1).reshape(-1, 3, 3) # b x 3 x 3 + return matrix + + +def get_similarity_transform_matrix( + from_pts: torch.Tensor, to_pts: torch.Tensor) -> torch.Tensor: + """ + Args: + from_pts, to_pts: b x n x 2 + + Returns: + torch.Tensor: b x 3 x 3 + """ + mfrom = from_pts.mean(dim=1, keepdim=True) # b x 1 x 2 + mto = to_pts.mean(dim=1, keepdim=True) # b x 1 x 2 + + a1 = (from_pts - mfrom).square().sum([1, 2], keepdim=False) # b + c1 = ((to_pts - mto) * (from_pts - mfrom)).sum([1, 2], keepdim=False) # b + + to_delta = to_pts - mto + from_delta = from_pts - mfrom + c2 = (to_delta[:, :, 0] * from_delta[:, :, 1] - to_delta[:, + :, 1] * from_delta[:, :, 0]).sum([1], keepdim=False) # b + + a = c1 / a1 + b = c2 / a1 + dx = mto[:, 0, 0] - a * mfrom[:, 0, 0] - b * mfrom[:, 0, 1] # b + dy = mto[:, 0, 1] + b * mfrom[:, 0, 0] - a * mfrom[:, 0, 1] # b + + ones_pl = torch.ones_like(a1) + zeros_pl = torch.zeros_like(a1) + + return torch.stack([ + a, b, dx, + -b, a, dy, + zeros_pl, zeros_pl, ones_pl, + ], dim=-1).reshape(-1, 3, 3) + + +@functools.lru_cache() +def _standard_face_pts(): + pts = torch.tensor([ + 196.0, 226.0, + 316.0, 226.0, + 256.0, 286.0, + 220.0, 360.4, + 292.0, 360.4], dtype=torch.float32) / 256.0 - 1.0 + return torch.reshape(pts, (5, 2)) + + +def get_face_align_matrix( + face_pts: torch.Tensor, target_shape: Tuple[int, int], + target_face_scale: float = 1.0, offset_xy: Optional[Tuple[float, float]] = None, + target_pts: Optional[torch.Tensor] = None): + + if target_pts is None: + with torch.no_grad(): + std_pts = _standard_face_pts().to(face_pts) # [-1 1] + h, w, *_ = target_shape + target_pts = (std_pts * target_face_scale + 1) * \ + torch.tensor([w-1, h-1]).to(face_pts) / 2.0 + if offset_xy is not None: + target_pts[:, 0] += offset_xy[0] + target_pts[:, 1] += offset_xy[1] + else: + target_pts = target_pts.to(face_pts) + + if target_pts.dim() == 2: + target_pts = target_pts.unsqueeze(0) + if target_pts.size(0) == 1: + target_pts = target_pts.broadcast_to(face_pts.shape) + + assert target_pts.shape == face_pts.shape + + return get_similarity_transform_matrix(face_pts, target_pts) + + +def rot90(v): + return np.array([-v[1], v[0]]) + + +def get_quad(lm: torch.Tensor): + # N,2 + lm = lm.detach().cpu().numpy() + # Choose oriented crop rectangle. + eye_avg = (lm[0] + lm[1]) * 0.5 + 0.5 + mouth_avg = (lm[3] + lm[4]) * 0.5 + 0.5 + eye_to_eye = lm[1] - lm[0] + eye_to_mouth = mouth_avg - eye_avg + x = eye_to_eye - rot90(eye_to_mouth) + x /= np.hypot(*x) + x *= max(np.hypot(*eye_to_eye) * 2.0, np.hypot(*eye_to_mouth) * 1.8) + y = rot90(x) + c = eye_avg + eye_to_mouth * 0.1 + quad = np.stack([c - x - y, c - x + y, c + x + y, c + x - y]) + quad_for_coeffs = quad[[0,3, 2,1]] # 顺序改一下 + return torch.from_numpy(quad_for_coeffs).float() + + +def get_face_align_matrix_celebm( + face_pts: torch.Tensor, target_shape: Tuple[int, int], bbox_scale_factor: float = 1.0): + + face_pts = torch.stack([get_quad(pts) for pts in face_pts], dim=0).to(face_pts) + face_mean = face_pts.mean(axis=1).unsqueeze(1) + diff = face_pts - face_mean + face_pts = face_mean + torch.tensor([[[1.5, 1.5]]], device=diff.device)*diff + assert target_shape[0] == target_shape[1] + diagonal = torch.norm(face_pts[:, 0, :] - face_pts[:, 2, :], dim=-1) + min_bbox_size = 350 + max_bbox_size = 500 + bbox_scale_factor = bbox_scale_factor + torch.clamp((max_bbox_size-diagonal)/(max_bbox_size-min_bbox_size), 0, 1) + print(bbox_scale_factor) + target_size = target_shape[0]/bbox_scale_factor + #target_pts = torch.as_tensor([[0, 0], [target_size,0], [target_size, target_size], [0, target_size]]).to(face_pts) + target_ptss = [] + for tidx in range(target_size.shape[0]): + target_pts = torch.as_tensor([[0, 0], [target_size[tidx],0], [target_size[tidx], target_size[tidx]], [0, target_size[tidx]]]).to(face_pts) + target_pts += int( (target_shape[0]-target_size[tidx])/2 ) + target_ptss.append(target_pts) + target_pts = torch.stack(target_ptss, dim=0) + + #if target_pts.dim() == 2: + # target_pts = target_pts.unsqueeze(0) + #if target_pts.size(0) == 1: + # target_pts = target_pts.broadcast_to(face_pts.shape) + + assert target_pts.shape == face_pts.shape + + return get_similarity_transform_matrix(face_pts, target_pts) + +@functools.lru_cache(maxsize=128) +def _meshgrid(h, w) -> Tuple[torch.Tensor, torch.Tensor]: + yy, xx = torch.meshgrid(torch.arange(h).float(), + torch.arange(w).float(), + indexing='ij') + return yy, xx + + +def _forge_grid(batch_size: int, device: torch.device, + output_shape: Tuple[int, int], + fn: Callable[[torch.Tensor], torch.Tensor] + ) -> Tuple[torch.Tensor, torch.Tensor]: + """ Forge transform maps with a given function `fn`. + + Args: + output_shape (tuple): (b, h, w, ...). + fn (Callable[[torch.Tensor], torch.Tensor]): The function that accepts + a bxnx2 array and outputs the transformed bxnx2 array. Both input + and output store (x, y) coordinates. + + Note: + both input and output arrays of `fn` should store (y, x) coordinates. + + Returns: + Tuple[torch.Tensor, torch.Tensor]: Two maps `X` and `Y`, where for each + pixel (y, x) or coordinate (x, y), + `(X[y, x], Y[y, x]) = fn([x, y])` + """ + h, w, *_ = output_shape + yy, xx = _meshgrid(h, w) # h x w + yy = yy.unsqueeze(0).broadcast_to(batch_size, h, w).to(device) + xx = xx.unsqueeze(0).broadcast_to(batch_size, h, w).to(device) + + in_xxyy = torch.stack( + [xx, yy], dim=-1).reshape([batch_size, h*w, 2]) # (h x w) x 2 + out_xxyy: torch.Tensor = fn(in_xxyy) # (h x w) x 2 + return out_xxyy.reshape(batch_size, h, w, 2) + + +def _safe_arctanh(x: torch.Tensor, eps: float = 0.001) -> torch.Tensor: + return torch.clamp(x, -1+eps, 1-eps).arctanh() + + +def inverted_tanh_warp_transform(coords: torch.Tensor, matrix: torch.Tensor, + warp_factor: float, warped_shape: Tuple[int, int]): + """ Inverted tanh-warp function. + + Args: + coords (torch.Tensor): b x n x 2 (x, y). The transformed coordinates. + matrix: b x 3 x 3. A matrix that transforms un-normalized coordinates + from the original image to the aligned yet not-warped image. + warp_factor (float): The warp factor. + 0 means linear transform, 1 means full tanh warp. + warped_shape (tuple): [height, width]. + + Returns: + torch.Tensor: b x n x 2 (x, y). The original coordinates. + """ + h, w, *_ = warped_shape + # h -= 1 + # w -= 1 + + w_h = torch.tensor([[w, h]]).to(coords) + + if warp_factor > 0: + # normalize coordinates to [-1, +1] + coords = coords / w_h * 2 - 1 + + nl_part1 = coords > 1.0 - warp_factor + nl_part2 = coords < -1.0 + warp_factor + + ret_nl_part1 = _safe_arctanh( + (coords - 1.0 + warp_factor) / + warp_factor) * warp_factor + \ + 1.0 - warp_factor + ret_nl_part2 = _safe_arctanh( + (coords + 1.0 - warp_factor) / + warp_factor) * warp_factor - \ + 1.0 + warp_factor + + coords = torch.where(nl_part1, ret_nl_part1, + torch.where(nl_part2, ret_nl_part2, coords)) + + # denormalize + coords = (coords + 1) / 2 * w_h + + coords_homo = torch.cat( + [coords, torch.ones_like(coords[:, :, [0]])], dim=-1) # b x n x 3 + + inv_matrix = torch.linalg.inv(matrix) # b x 3 x 3 + # inv_matrix = np.linalg.inv(matrix) + coords_homo = torch.bmm( + coords_homo, inv_matrix.permute(0, 2, 1)) # b x n x 3 + return coords_homo[:, :, :2] / coords_homo[:, :, [2, 2]] + + +def tanh_warp_transform( + coords: torch.Tensor, matrix: torch.Tensor, + warp_factor: float, warped_shape: Tuple[int, int]): + """ Tanh-warp function. + + Args: + coords (torch.Tensor): b x n x 2 (x, y). The original coordinates. + matrix: b x 3 x 3. A matrix that transforms un-normalized coordinates + from the original image to the aligned yet not-warped image. + warp_factor (float): The warp factor. + 0 means linear transform, 1 means full tanh warp. + warped_shape (tuple): [height, width]. + + Returns: + torch.Tensor: b x n x 2 (x, y). The transformed coordinates. + """ + h, w, *_ = warped_shape + # h -= 1 + # w -= 1 + w_h = torch.tensor([[w, h]]).to(coords) + + coords_homo = torch.cat( + [coords, torch.ones_like(coords[:, :, [0]])], dim=-1) # b x n x 3 + + coords_homo = torch.bmm(coords_homo, matrix.transpose(2, 1)) # b x n x 3 + coords = (coords_homo[:, :, :2] / coords_homo[:, :, [2, 2]]) # b x n x 2 + + if warp_factor > 0: + # normalize coordinates to [-1, +1] + coords = coords / w_h * 2 - 1 + + nl_part1 = coords > 1.0 - warp_factor + nl_part2 = coords < -1.0 + warp_factor + + ret_nl_part1 = torch.tanh( + (coords - 1.0 + warp_factor) / + warp_factor) * warp_factor + \ + 1.0 - warp_factor + ret_nl_part2 = torch.tanh( + (coords + 1.0 - warp_factor) / + warp_factor) * warp_factor - \ + 1.0 + warp_factor + + coords = torch.where(nl_part1, ret_nl_part1, + torch.where(nl_part2, ret_nl_part2, coords)) + + # denormalize + coords = (coords + 1) / 2 * w_h + + return coords + + +def make_tanh_warp_grid(matrix: torch.Tensor, warp_factor: float, + warped_shape: Tuple[int, int], + orig_shape: Tuple[int, int]): + """ + Args: + matrix: bx3x3 matrix. + warp_factor: The warping factor. `warp_factor=1.0` represents a vannila Tanh-warping, + `warp_factor=0.0` represents a cropping. + warped_shape: The target image shape to transform to. + + Returns: + torch.Tensor: b x h x w x 2 (x, y). + """ + orig_h, orig_w, *_ = orig_shape + w_h = torch.tensor([orig_w, orig_h]).to(matrix).reshape(1, 1, 1, 2) + return _forge_grid( + matrix.size(0), matrix.device, + warped_shape, + functools.partial(inverted_tanh_warp_transform, + matrix=matrix, + warp_factor=warp_factor, + warped_shape=warped_shape)) / w_h*2-1 + + +def make_inverted_tanh_warp_grid(matrix: torch.Tensor, warp_factor: float, + warped_shape: Tuple[int, int], + orig_shape: Tuple[int, int]): + """ + Args: + matrix: bx3x3 matrix. + warp_factor: The warping factor. `warp_factor=1.0` represents a vannila Tanh-warping, + `warp_factor=0.0` represents a cropping. + warped_shape: The target image shape to transform to. + orig_shape: The original image shape that is transformed from. + + Returns: + torch.Tensor: b x h x w x 2 (x, y). + """ + h, w, *_ = warped_shape + w_h = torch.tensor([w, h]).to(matrix).reshape(1, 1, 1, 2) + return _forge_grid( + matrix.size(0), matrix.device, + orig_shape, + functools.partial(tanh_warp_transform, + matrix=matrix, + warp_factor=warp_factor, + warped_shape=warped_shape)) / w_h * 2-1 diff --git a/src/pixel3dmm/preprocessing/replacement_code/farl.py b/src/pixel3dmm/preprocessing/replacement_code/farl.py new file mode 100644 index 0000000000000000000000000000000000000000..fe85bd97db5460f6f86716e761dfca067b020a82 --- /dev/null +++ b/src/pixel3dmm/preprocessing/replacement_code/farl.py @@ -0,0 +1,94 @@ +from typing import Optional, Dict, Any +import functools +import torch +import torch.nn.functional as F + +from ..util import download_jit +from ..transform import (get_crop_and_resize_matrix, get_face_align_matrix, get_face_align_matrix_celebm, + make_inverted_tanh_warp_grid, make_tanh_warp_grid) +from .base import FaceParser + +pretrain_settings = { + 'lapa/448': { + 'url': [ + 'https://github.com/FacePerceiver/facer/releases/download/models-v1/face_parsing.farl.lapa.main_ema_136500_jit191.pt', + ], + 'matrix_src_tag': 'points', + 'get_matrix_fn': functools.partial(get_face_align_matrix, + target_shape=(448, 448), target_face_scale=1.0), + 'get_grid_fn': functools.partial(make_tanh_warp_grid, + warp_factor=0.8, warped_shape=(448, 448)), + 'get_inv_grid_fn': functools.partial(make_inverted_tanh_warp_grid, + warp_factor=0.8, warped_shape=(448, 448)), + 'label_names': ['background', 'face', 'rb', 'lb', 're', + 'le', 'nose', 'ulip', 'imouth', 'llip', 'hair'] + }, + 'celebm/448': { + 'url': [ + 'https://github.com/FacePerceiver/facer/releases/download/models-v1/face_parsing.farl.celebm.main_ema_181500_jit.pt', + ], + 'matrix_src_tag': 'points', + 'get_matrix_fn': functools.partial(get_face_align_matrix_celebm, + target_shape=(448, 448)), + 'get_grid_fn': functools.partial(make_tanh_warp_grid, + warp_factor=0, warped_shape=(448, 448)), + 'get_inv_grid_fn': functools.partial(make_inverted_tanh_warp_grid, + warp_factor=0, warped_shape=(448, 448)), + 'label_names': [ + 'background', 'neck', 'face', 'cloth', 'rr', 'lr', 'rb', 'lb', 're', + 'le', 'nose', 'imouth', 'llip', 'ulip', 'hair', + 'eyeg', 'hat', 'earr', 'neck_l'] + } +} + + +class FaRLFaceParser(FaceParser): + """ The face parsing models from [FaRL](https://github.com/FacePerceiver/FaRL). + + Please consider citing + ```bibtex + @article{zheng2021farl, + title={General Facial Representation Learning in a Visual-Linguistic Manner}, + author={Zheng, Yinglin and Yang, Hao and Zhang, Ting and Bao, Jianmin and Chen, + Dongdong and Huang, Yangyu and Yuan, Lu and Chen, + Dong and Zeng, Ming and Wen, Fang}, + journal={arXiv preprint arXiv:2112.03109}, + year={2021} + } + ``` + """ + + def __init__(self, conf_name: Optional[str] = None, + model_path: Optional[str] = None, device=None) -> None: + super().__init__() + if conf_name is None: + conf_name = 'lapa/448' + if model_path is None: + model_path = pretrain_settings[conf_name]['url'] + self.conf_name = conf_name + self.net = download_jit(model_path, map_location=device) + self.eval() + + def forward(self, images: torch.Tensor, data: Dict[str, Any], bbox_scale_factor : float = 1.0): + setting = pretrain_settings[self.conf_name] + images = images.float() / 255.0 + _, _, h, w = images.shape + + simages = images[data['image_ids']] + matrix_fun = functools.partial(get_face_align_matrix_celebm, + target_shape=(448, 448), bbox_scale_factor=bbox_scale_factor) + matrix = matrix_fun(data[setting['matrix_src_tag']]) + grid = setting['get_grid_fn'](matrix=matrix, orig_shape=(h, w)) + inv_grid = setting['get_inv_grid_fn'](matrix=matrix, orig_shape=(h, w)) + + w_images = F.grid_sample( + simages, grid, mode='bilinear', align_corners=False) + + w_seg_logits, _ = self.net(w_images) # (b*n) x c x h x w + + seg_logits = F.grid_sample(w_seg_logits, inv_grid, mode='bilinear', align_corners=False) + + + data['seg'] = {'logits': seg_logits, + 'label_names': setting['label_names']} + return data diff --git a/src/pixel3dmm/preprocessing/replacement_code/mica.py b/src/pixel3dmm/preprocessing/replacement_code/mica.py new file mode 100644 index 0000000000000000000000000000000000000000..3a508d0c19d98799a4f1c9914394758c289bdec2 --- /dev/null +++ b/src/pixel3dmm/preprocessing/replacement_code/mica.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- + +# Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. (MPG) is +# holder of all proprietary rights on this computer program. +# You can only use this computer program if you have closed +# a license agreement with MPG or you get the right to use the computer +# program from someone who is authorized to grant you that right. +# Any use of the computer program without a valid license is prohibited and +# liable to prosecution. +# +# Copyright©2023 Max-Planck-Gesellschaft zur Förderung +# der Wissenschaften e.V. (MPG). acting on behalf of its Max Planck Institute +# for Intelligent Systems. All rights reserved. +# +# Contact: mica@tue.mpg.de + + +import os +import sys + +sys.path.append("./nfclib") + +import torch +import torch.nn.functional as F + +from models.arcface import Arcface +from models.generator import Generator +from micalib.base_model import BaseModel + +from loguru import logger + + +class MICA(BaseModel): + def __init__(self, config=None, device=None, tag='MICA'): + super(MICA, self).__init__(config, device, tag) + + self.initialize() + + def create_model(self, model_cfg): + mapping_layers = model_cfg.mapping_layers + pretrained_path = None + if not model_cfg.use_pretrained: + pretrained_path = model_cfg.arcface_pretrained_model + self.arcface = Arcface(pretrained_path=pretrained_path).to(self.device) + self.flameModel = Generator(512, 300, self.cfg.model.n_shape, mapping_layers, model_cfg, self.device) + + def load_model(self): + model_path = os.path.join(self.cfg.output_dir, 'model.tar') + if os.path.exists(self.cfg.pretrained_model_path) and self.cfg.model.use_pretrained: + model_path = self.cfg.pretrained_model_path + if os.path.exists(model_path): + logger.info(f'[{self.tag}] Trained model found. Path: {model_path} | GPU: {self.device}') + checkpoint = torch.load(model_path, weights_only=False) + if 'arcface' in checkpoint: + self.arcface.load_state_dict(checkpoint['arcface']) + if 'flameModel' in checkpoint: + self.flameModel.load_state_dict(checkpoint['flameModel']) + else: + logger.info(f'[{self.tag}] Checkpoint not available starting from scratch!') + + def model_dict(self): + return { + 'flameModel': self.flameModel.state_dict(), + 'arcface': self.arcface.state_dict() + } + + def parameters_to_optimize(self): + return [ + {'params': self.flameModel.parameters(), 'lr': self.cfg.train.lr}, + {'params': self.arcface.parameters(), 'lr': self.cfg.train.arcface_lr}, + ] + + def encode(self, images, arcface_imgs): + codedict = {} + + codedict['arcface'] = F.normalize(self.arcface(arcface_imgs)) + codedict['images'] = images + + return codedict + + def decode(self, codedict, epoch=0): + self.epoch = epoch + + flame_verts_shape = None + shapecode = None + + if not self.testing: + flame = codedict['flame'] + shapecode = flame['shape_params'].view(-1, flame['shape_params'].shape[2]) + shapecode = shapecode.to(self.device)[:, :self.cfg.model.n_shape] + with torch.no_grad(): + flame_verts_shape, _, _ = self.flame(shape_params=shapecode) + + identity_code = codedict['arcface'] + pred_canonical_vertices, pred_shape_code = self.flameModel(identity_code) + + output = { + 'flame_verts_shape': flame_verts_shape, + 'flame_shape_code': shapecode, + 'pred_canonical_shape_vertices': pred_canonical_vertices, + 'pred_shape_code': pred_shape_code, + 'faceid': codedict['arcface'] + } + + return output + + def compute_losses(self, input, encoder_output, decoder_output): + losses = {} + + pred_verts = decoder_output['pred_canonical_shape_vertices'] + gt_verts = decoder_output['flame_verts_shape'].detach() + + pred_verts_shape_canonical_diff = (pred_verts - gt_verts).abs() + + if self.use_mask: + pred_verts_shape_canonical_diff *= self.vertices_mask + + losses['pred_verts_shape_canonical_diff'] = torch.mean(pred_verts_shape_canonical_diff) * 1000.0 + + return losses diff --git a/src/pixel3dmm/preprocessing/replacement_code/mica_demo.py b/src/pixel3dmm/preprocessing/replacement_code/mica_demo.py new file mode 100644 index 0000000000000000000000000000000000000000..e037b1668069c34623cd2bddcdceadaae972bec9 --- /dev/null +++ b/src/pixel3dmm/preprocessing/replacement_code/mica_demo.py @@ -0,0 +1,188 @@ +# -*- coding: utf-8 -*- + +# Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. (MPG) is +# holder of all proprietary rights on this computer program. +# You can only use this computer program if you have closed +# a license agreement with MPG or you get the right to use the computer +# program from someone who is authorized to grant you that right. +# Any use of the computer program without a valid license is prohibited and +# liable to prosecution. +# +# Copyright©2023 Max-Planck-Gesellschaft zur Förderung +# der Wissenschaften e.V. (MPG). acting on behalf of its Max Planck Institute +# for Intelligent Systems. All rights reserved. +# +# Contact: mica@tue.mpg.de + + +import argparse +import os +import random +import traceback +from glob import glob +from pathlib import Path +from PIL import Image + +import cv2 +import numpy as np +import torch +import torch.backends.cudnn as cudnn +import trimesh +from insightface.app.common import Face +from insightface.utils import face_align +from loguru import logger +from skimage.io import imread +from tqdm import tqdm +#from retinaface.pre_trained_models import get_model +#from retinaface.utils import vis_annotations +#from matplotlib import pyplot as plt + + +from pixel3dmm.preprocessing.MICA.configs.config import get_cfg_defaults +from pixel3dmm.preprocessing.MICA.datasets.creation.util import get_arcface_input, get_center, draw_on +from pixel3dmm.preprocessing.MICA.utils import util +from pixel3dmm.preprocessing.MICA.utils.landmark_detector import LandmarksDetector, detectors +from pixel3dmm import env_paths + + +#model = get_model("resnet50_2020-07-20", max_size=512) +#model.eval() + + +def deterministic(rank): + torch.manual_seed(rank) + torch.cuda.manual_seed(rank) + np.random.seed(rank) + random.seed(rank) + + cudnn.deterministic = True + cudnn.benchmark = False + + +def process(args, app, image_size=224, draw_bbox=False): + dst = Path(args.a) + dst.mkdir(parents=True, exist_ok=True) + processes = [] + image_paths = sorted(glob(args.i + '/*.*'))#[:1] + image_paths = image_paths[::max(1, len(image_paths)//10)] + for image_path in tqdm(image_paths): + name = Path(image_path).stem + img = cv2.imread(image_path) + + + # FOR pytorch retinaface use this: img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + # I had issues with onnxruntime! + bboxes, kpss = app.detect(img) + + #annotation = model.predict_jsons(img) + #Image.fromarray(vis_annotations(img, annotation)).show() + + #bboxes = np.stack([np.array( annotation[0]['bbox'] + [annotation[0]['score']] ) for i in range(len(annotation))], axis=0) + #kpss = np.stack([np.array( annotation[0]['landmarks'] ) for i in range(len(annotation))], axis=0) + if bboxes.shape[0] == 0: + logger.error(f'[ERROR] Face not detected for {image_path}') + continue + i = get_center(bboxes, img) + bbox = bboxes[i, 0:4] + det_score = bboxes[i, 4] + kps = None + if kpss is not None: + kps = kpss[i] + + ##for ikp in range(kps.shape[0]): + # img[int(kps[ikp][1]), int(kps[ikp][0]), 0] = 255 + # img[int(kpss_[0][ikp][1]), int(kpss_[0][ikp][0]), 1] = 255 + #Image.fromarray(img).show() + face = Face(bbox=bbox, kps=kps, det_score=det_score) + blob, aimg = get_arcface_input(face, img) + file = str(Path(dst, name)) + np.save(file, blob) + processes.append(file + '.npy') + cv2.imwrite(file + '.jpg', face_align.norm_crop(img, landmark=face.kps, image_size=image_size)) + if draw_bbox: + dimg = draw_on(img, [face]) + cv2.imwrite(file + '_bbox.jpg', dimg) + + return processes + + +def to_batch(path): + src = path.replace('npy', 'jpg') + if not os.path.exists(src): + src = path.replace('npy', 'png') + + image = imread(src)[:, :, :3] + image = image / 255. + image = cv2.resize(image, (224, 224)).transpose(2, 0, 1) + image = torch.tensor(image).cuda()[None] + + arcface = np.load(path) + arcface = torch.tensor(arcface).cuda()[None] + + return image, arcface + + +def load_checkpoint(args, mica): + checkpoint = torch.load(args.m, weights_only=False) + if 'arcface' in checkpoint: + mica.arcface.load_state_dict(checkpoint['arcface']) + if 'flameModel' in checkpoint: + mica.flameModel.load_state_dict(checkpoint['flameModel']) + + +def main(cfg, args): + device = 'cuda:0' + cfg.model.testing = True + mica = util.find_model_using_name(model_dir='micalib.models', model_name=cfg.model.name)(cfg, device) + load_checkpoint(args, mica) + mica.eval() + + faces = mica.flameModel.generator.faces_tensor.cpu() + Path(args.o).mkdir(exist_ok=True, parents=True) + + app = LandmarksDetector(model=detectors.RETINAFACE) + + with torch.no_grad(): + logger.info(f'Processing has started...') + paths = process(args, app, draw_bbox=False) + for path in tqdm(paths): + name = Path(path).stem + images, arcface = to_batch(path) + codedict = mica.encode(images, arcface) + opdict = mica.decode(codedict) + meshes = opdict['pred_canonical_shape_vertices'] + code = opdict['pred_shape_code'] + lmk = mica.flameModel.generator.compute_landmarks(meshes) + + mesh = meshes[0] + landmark_51 = lmk[0, 17:] + landmark_7 = landmark_51[[19, 22, 25, 28, 16, 31, 37]] + + dst = Path(args.o, name) + dst.mkdir(parents=True, exist_ok=True) + trimesh.Trimesh(vertices=mesh.cpu() * 1000.0, faces=faces, process=False).export(f'{dst}/mesh.ply') # save in millimeters + trimesh.Trimesh(vertices=mesh.cpu() * 1000.0, faces=faces, process=False).export(f'{dst}/mesh.obj') + np.save(f'{dst}/identity', code[0].cpu().numpy()) + np.save(f'{dst}/kpt7', landmark_7.cpu().numpy() * 1000.0) + np.save(f'{dst}/kpt68', lmk.cpu().numpy() * 1000.0) + + logger.info(f'Processing finished. Results has been saved in {args.o}') + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='MICA - Towards Metrical Reconstruction of Human Faces') + parser.add_argument('-video_name', required=True, type=str) + parser.add_argument('-a', default='demo/arcface', type=str, help='Processed images for MICA input') + parser.add_argument('-m', default='data/pretrained/mica.tar', type=str, help='Pretrained model path') + + args = parser.parse_args() + cfg = get_cfg_defaults() + args.i = f'{env_paths.PREPROCESSED_DATA}/{args.video_name}/cropped/' + args.o = f'{env_paths.PREPROCESSED_DATA}/{args.video_name}/mica/' + if os.path.exists(f'{env_paths.PREPROCESSED_DATA}/{args.video_name}/mica/'): + if len(os.listdir(f'{env_paths.PREPROCESSED_DATA}/{args.video_name}/mica/')) >= 10: + print(f''' + <<<<<<<< ALREADY COMPLETE MICA PREDICTION FOR {args.video_name}, SKIPPING >>>>>>>> + ''') + exit() + main(cfg, args) diff --git a/src/pixel3dmm/preprocessing/replacement_code/pipnet_demo.py b/src/pixel3dmm/preprocessing/replacement_code/pipnet_demo.py new file mode 100644 index 0000000000000000000000000000000000000000..b30dc742fca159f5bbcfbfd75c4deba946086e86 --- /dev/null +++ b/src/pixel3dmm/preprocessing/replacement_code/pipnet_demo.py @@ -0,0 +1,401 @@ +import traceback + +import cv2, os +import sys +sys.path.insert(0, 'FaceBoxesV2') +sys.path.insert(0, '../..') +import numpy as np +import pickle +import importlib +from math import floor +from faceboxes_detector import * +import time + +import torch +import torch.nn as nn +import torch.nn.parallel +import torch.optim as optim +import torch.utils.data +import torch.nn.functional as F +import torchvision.transforms as transforms +import torchvision.datasets as datasets +import torchvision.models as models + +from networks import * +import data_utils +from functions import * +from mobilenetv3 import mobilenetv3_large + + +def smooth(x, window_len=11, window='hanning'): + """smooth the data using a window with requested size. + + This method is based on the convolution of a scaled window with the signal. + The signal is prepared by introducing reflected copies of the signal + (with the window size) in both ends so that transient parts are minimized + in the begining and end part of the output signal. + + input: + x: the input signal + window_len: the dimension of the smoothing window; should be an odd integer + window: the type of window from 'flat', 'hanning', 'hamming', 'bartlett', 'blackman' + flat window will produce a moving average smoothing. + + output: + the smoothed signal + + example: + + t=linspace(-2,2,0.1) + x=sin(t)+randn(len(t))*0.1 + y=smooth(x) + + see also: + + numpy.hanning, numpy.hamming, numpy.bartlett, numpy.blackman, numpy.convolve + scipy.signal.lfilter + + TODO: the window parameter could be the window itself if an array instead of a string + NOTE: length(output) != length(input), to correct this: return y[(window_len/2-1):-(window_len/2)] instead of just y. + """ + + if x.ndim != 1: + raise ValueError("smooth only accepts 1 dimension arrays.") + + if x.size < window_len: + raise ValueError( "Input vector needs to be bigger than window size.") + + if window_len < 3: + return x + + if not window in ['flat', 'hanning', 'hamming', 'bartlett', 'blackman']: + raise ValueError( "Window is on of 'flat', 'hanning', 'hamming', 'bartlett', 'blackman'") + + s = np.r_[x[window_len - 1:0:-1], x, x[-2:-window_len - 1:-1]] + # print(len(s)) + if window == 'flat': # moving average + w = np.ones(window_len, 'd') + else: + w = eval('np.' + window + '(window_len)') + + y = np.convolve(w / w.sum(), s, mode='valid') + return y + +if not len(sys.argv) == 3: + print('Format:') + print('python lib/demo.py config_file image_file') + exit(0) + + +experiment_name = sys.argv[1].split('/')[-1][:-3] +data_name = sys.argv[1].split('/')[-2] +config_path = '.experiments.{}.{}'.format(data_name, experiment_name) + +def get_cstm_crop(image, detections): + #Image.fromarray(image).show() + image_width = image.shape[1] + image_height = image.shape[0] + det_box_scale = 1.42 #2.0#1.42 + det_xmin = detections[2] + det_ymin = detections[3] + det_width = detections[4] + det_height = detections[5] + if det_width > det_height: + det_ymin -= (det_width - det_height)//2 + det_height = det_width + if det_width < det_height: + det_xmin -= (det_height - det_width)//2 + det_width = det_height + + det_xmax = det_xmin + det_width - 1 + det_ymax = det_ymin + det_height - 1 + + + det_xmin -= int(det_width * (det_box_scale - 1) / 2) + det_ymin -= int(det_height * (det_box_scale - 1) / 2) + det_xmax += int(det_width * (det_box_scale - 1) / 2) + det_ymax += int(det_height * (det_box_scale - 1) / 2) + if det_xmin < 0 or det_ymin < 0: + min_overflow = min(det_xmin, det_ymin) + det_xmin += -min_overflow + det_ymin += -min_overflow + if det_xmax > image_width -1 or det_ymax > image_height - 1: + max_overflow = max(det_xmax - image_width -1, det_ymax - image_height-1) + det_xmax -= max_overflow + det_ymax -= max_overflow + + det_width = det_xmax - det_xmin + 1 + det_height = det_ymax - det_ymin + 1 + det_crop = image[det_ymin:det_ymax, det_xmin:det_xmax, :] + return det_crop + #Image.fromarray(det_crop).show() + #exit() + +def demo_image(image_dir, pid, cam_dir, net, preprocess, cfg, input_size, net_stride, num_nb, use_gpu, device, flip=False, start_frame=0, + vertical_crop : bool = False, + static_crop : bool = False, + ): + detector = FaceBoxesDetector('FaceBoxes', '../PIPNet/FaceBoxesV2/weights/FaceBoxesV2.pth', use_gpu, device) + my_thresh = 0.6 + det_box_scale = 1.2 + meanface_indices, reverse_index1, reverse_index2, max_len = get_meanface( + os.path.join('../..', 'PIPNet', 'data', cfg.data_name, 'meanface.txt'), cfg.num_nb) + + net.eval() + + #CROP_DIR = '/mnt/rohan/cluster/angmar/sgiebenhain/now_crops_pipnet/' + #os.makedirs(CROP_DIR, exist_ok=True) + + + if start_frame > 0: + files = [f for f in os.listdir(f'{image_dir}/') if f.endswith('.jpg') or f.endswith('.png') and (((int(f.split('_')[-1].split('.')[0])-start_frame) % 3 )== 0)] + else: + files = [f for f in os.listdir(f'{image_dir}/') if f.endswith('.jpg') or f.endswith('.png')] + files.sort() + + if not vertical_crop: + all_detections = [] + all_images = [] + #all_normals = [] + succ_files = [] + for file_name in files: + image = cv2.imread(f'{image_dir}/{file_name}') + #normals = cv2.imread(f'{image_dir}/../normals/{file_name[:-4]}.png') + + if len(image.shape) < 3 or image.shape[-1] != 3: + continue + + image_height, image_width, _ = image.shape + detections, _ = detector.detect(image, my_thresh, 1) + dets_filtered = [det for det in detections if det[0] == 'face'] + dets_filtered.sort(key=lambda x: -1 * x[1]) + detections = dets_filtered + if detections[0][1] < 0.75: + raise ValueError("Found face with too low detections confidence as max confidence") + all_detections.append(detections[0]) + all_images.append(image) + #all_normals.append(normals) + succ_files.append(file_name) + + if static_crop: + det1 = np.mean(np.array([x[2] for x in all_detections]), axis=0) + det2 = np.mean(np.array([x[3] for x in all_detections]), axis=0) + det3 = np.mean(np.array([x[4] for x in all_detections]), axis=0) + det4 = np.mean(np.array([x[5] for x in all_detections]), axis=0) + det_smoothed = np.stack([det1, det2, det3, det4], axis=0).astype(np.int32) + all_detections_smoothed = [] # = [[x[0], x[1], x_smoothed[0], x_smoothed[1], x_smoothed[2], x_smoothed[3]] for x, x_smoothed in zip()] + for i, det in enumerate(all_detections): + all_detections_smoothed.append( + [det[0], det[1], det_smoothed[0], det_smoothed[1], det_smoothed[2], det_smoothed[3]]) + all_detections = all_detections_smoothed + else: + if len(all_detections) > 11: + WINDOW_LENGTH = 11 + det1 = smooth(np.array([x[2] for x in all_detections]), window_len=WINDOW_LENGTH) + det2 = smooth(np.array([x[3] for x in all_detections]), window_len=WINDOW_LENGTH) + det3 = smooth(np.array([x[4] for x in all_detections]), window_len=WINDOW_LENGTH) + det4 = smooth(np.array([x[5] for x in all_detections]), window_len=WINDOW_LENGTH) + det_smoothed = np.stack([det1, det2,det3,det4], axis=1).astype(np.int32) + all_detections_smoothed = [] #= [[x[0], x[1], x_smoothed[0], x_smoothed[1], x_smoothed[2], x_smoothed[3]] for x, x_smoothed in zip()] + for i, det in enumerate(all_detections): + all_detections_smoothed.append([det[0], det[1], det_smoothed[i, 0], det_smoothed[i, 1], det_smoothed[i, 2], det_smoothed[i, 3]]) + all_detections = all_detections_smoothed + # TODO: smooth detections!!! + for file_name, detection, image in zip(succ_files, all_detections, all_images): + + img_crop = get_cstm_crop(image, detection) + #n_crop = get_cstm_crop(normals, detection) + image = img_crop + # save cropped image + os.makedirs(f'{image_dir}/../cropped/', exist_ok=True) + #os.makedirs(f'{image_dir}/../cropped_normals/', exist_ok=True) + cv2.imwrite(f'{image_dir}/../cropped/{file_name}', cv2.resize(image, (512, 512))) + #cv2.imwrite(f'{image_dir}/../cropped_normals/{file_name[:-4]}.png', cv2.resize(n_crop, (512, 512))) + else: + for file_name in files: + image = cv2.imread(f'{image_dir}/{file_name}') + if image.shape[0] != image.shape[1]: + image = image[220:-220, 640:-640, :] + os.makedirs(f'{image_dir}/../cropped/', exist_ok=True) + cv2.imwrite(f'{image_dir}/../cropped/{file_name}', cv2.resize(image, (512, 512))) + + + lms = [] + image_dir = f'{image_dir}/../cropped/' + for file_name in files: + image = cv2.imread(f'{image_dir}/{file_name}') + + if len(image.shape) < 3 or image.shape[-1] != 3: + continue + if flip: + image = cv2.transpose(image) + + image_height, image_width, _ = image.shape + detections, _ = detector.detect(image, my_thresh, 1) + pred_export = None + dets_filtered = [det for det in detections if det[0] == 'face'] + dets_filtered.sort(key=lambda x: -1 * x[1]) + detections = dets_filtered + + + print(detections) + for i in range(min(1, len(detections))): + if detections[i][1] < 0.99: + continue + det_xmin = detections[i][2] + det_ymin = detections[i][3] + det_width = detections[i][4] + det_height = detections[i][5] + det_xmax = det_xmin + det_width - 1 + det_ymax = det_ymin + det_height - 1 + + + det_xmin -= int(det_width * (det_box_scale - 1) / 2) + # remove a part of top area for alignment, see paper for details + det_ymin += int(det_height * (det_box_scale - 1) / 2) + det_xmax += int(det_width * (det_box_scale - 1) / 2) + det_ymax += int(det_height * (det_box_scale - 1) / 2) + det_xmin = max(det_xmin, 0) + det_ymin = max(det_ymin, 0) + det_xmax = min(det_xmax, image_width - 1) + det_ymax = min(det_ymax, image_height - 1) + det_width = det_xmax - det_xmin + 1 + det_height = det_ymax - det_ymin + 1 + cv2.rectangle(image, (det_xmin, det_ymin), (det_xmax, det_ymax), (0, 0, 255), 2) + det_crop = image[det_ymin:det_ymax, det_xmin:det_xmax, :] + #np.save(f'{CROP_DIR}/{pid[:-4]}.npy', np.array([det_ymin, det_ymax, det_xmin, det_xmax])) + det_crop = cv2.resize(det_crop, (input_size, input_size)) + inputs = Image.fromarray(det_crop[:, :, ::-1].astype('uint8'), 'RGB') + #inputs.show() + inputs = preprocess(inputs).unsqueeze(0) + inputs = inputs.to(device) + lms_pred_x, lms_pred_y, lms_pred_nb_x, lms_pred_nb_y, outputs_cls, max_cls = forward_pip(net, + inputs, + preprocess, + input_size, + net_stride, + num_nb) + lms_pred = torch.cat((lms_pred_x, lms_pred_y), dim=1).flatten() + tmp_nb_x = lms_pred_nb_x[reverse_index1, reverse_index2].view(cfg.num_lms, max_len) + tmp_nb_y = lms_pred_nb_y[reverse_index1, reverse_index2].view(cfg.num_lms, max_len) + tmp_x = torch.mean(torch.cat((lms_pred_x, tmp_nb_x), dim=1), dim=1).view(-1, 1) + tmp_y = torch.mean(torch.cat((lms_pred_y, tmp_nb_y), dim=1), dim=1).view(-1, 1) + lms_pred_merge = torch.cat((tmp_x, tmp_y), dim=1).flatten() + lms_pred = lms_pred.cpu().numpy() + lms_pred_merge = lms_pred_merge.cpu().numpy() + pred_export = np.zeros([cfg.num_lms, 2]) + for i in range(cfg.num_lms): + x_pred = lms_pred_merge[i * 2] * det_width + y_pred = lms_pred_merge[i * 2 + 1] * det_height + pred_export[i, 0] = (x_pred + det_xmin) / image_width + pred_export[i, 1] = (y_pred + det_ymin) / image_height + cv2.circle(image, (int(x_pred) + det_xmin, int(y_pred) + det_ymin), 1, (0, 0, 255), 2) + if i == 76: + cv2.circle(image, (int(x_pred) + det_xmin, int(y_pred) + det_ymin), 1, (255, 0, 0), 2) + + if pred_export is not None: + print('exporting stuff to ' + image_dir) + landmakr_dir = f'{image_dir}/../PIPnet_landmarks/' + os.makedirs(landmakr_dir, exist_ok=True) + np.save(landmakr_dir + f'/{file_name[:-4]}.npy', pred_export) + lms.append(pred_export) + exp_dir = image_dir + '/../PIPnet_annotated_images/' + os.makedirs(exp_dir, exist_ok=True) + cv2.imwrite(exp_dir + f'/{file_name}', image) + + # cv2.imshow('1', image) + # cv2.waitKey(0) + + lms = np.stack(lms, axis=0) + os.makedirs(f'{image_dir}/../pipnet', exist_ok=True) + np.save(f'{image_dir}/../pipnet/test.npy', lms) + + +def run(exp_path, image_dir, start_frame = 0, + vertical_crop : bool = False, + static_crop : bool = False + ): + experiment_name = exp_path.split('/')[-1][:-3] + data_name = exp_path.split('/')[-2] + config_path = '.experiments.{}.{}'.format(data_name, experiment_name) + + my_config = importlib.import_module(config_path, package='PIPNet') + Config = getattr(my_config, 'Config') + cfg = Config() + cfg.experiment_name = experiment_name + cfg.data_name = data_name + + save_dir = os.path.join('../PIPNet/snapshots', cfg.data_name, cfg.experiment_name) + + if cfg.backbone == 'resnet18': + resnet18 = models.resnet18(pretrained=cfg.pretrained) + net = Pip_resnet18(resnet18, cfg.num_nb, num_lms=cfg.num_lms, input_size=cfg.input_size, + net_stride=cfg.net_stride) + elif cfg.backbone == 'resnet50': + resnet50 = models.resnet50(pretrained=cfg.pretrained) + net = Pip_resnet50(resnet50, cfg.num_nb, num_lms=cfg.num_lms, input_size=cfg.input_size, + net_stride=cfg.net_stride) + elif cfg.backbone == 'resnet101': + resnet101 = models.resnet101(pretrained=cfg.pretrained) + net = Pip_resnet101(resnet101, cfg.num_nb, num_lms=cfg.num_lms, input_size=cfg.input_size, + net_stride=cfg.net_stride) + elif cfg.backbone == 'mobilenet_v2': + mbnet = models.mobilenet_v2(pretrained=cfg.pretrained) + net = Pip_mbnetv2(mbnet, cfg.num_nb, num_lms=cfg.num_lms, input_size=cfg.input_size, net_stride=cfg.net_stride) + elif cfg.backbone == 'mobilenet_v3': + mbnet = mobilenetv3_large() + if cfg.pretrained: + mbnet.load_state_dict(torch.load('lib/mobilenetv3-large-1cd25616.pth')) + net = Pip_mbnetv3(mbnet, cfg.num_nb, num_lms=cfg.num_lms, input_size=cfg.input_size, net_stride=cfg.net_stride) + else: + print('No such backbone!') + exit(0) + + if cfg.use_gpu: + device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + else: + device = torch.device("cpu") + net = net.to(device) + + weight_file = os.path.join(save_dir, 'epoch%d.pth' % (cfg.num_epochs - 1)) + state_dict = torch.load(weight_file, map_location=device) + net.load_state_dict(state_dict) + + normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406], + std=[0.229, 0.224, 0.225]) + preprocess = transforms.Compose( + [transforms.Resize((cfg.input_size, cfg.input_size)), transforms.ToTensor(), normalize]) + + + #for pid in pids: + pid = "FaMoS_180424_03335_TA_selfie_IMG_0092.jpg" + pid = "FaMoS_180426_03336_TA_selfie_IMG_0152.jpg" + + + + demo_image(image_dir, pid, None, net, preprocess, cfg, cfg.input_size, cfg.net_stride, cfg.num_nb, + cfg.use_gpu, + device, start_frame=start_frame, vertical_crop=vertical_crop, static_crop=static_crop) + + + +if __name__ == '__main__': + base_path = '/mnt/rohan/cluster/valinor/jschmidt/becominglit/1015/HEADROT/img_cc_4/cam_220700191/' + base_path = '/home/giebenhain/try_tracking_obama2/rgb' + #base_base_path = '/home/giebenhain/test_videos_p3dmm_full/' + base_base_path = '/mnt/rohan/cluster/andram/sgiebenhain/test_video_p3dmm_full/' + v_names = [f for f in os.listdir(base_base_path) if f.startswith('th1k')] + print(v_names) + #v_names = list(range(800, 813)) + #v_names = ['yu', 'marc', 'karla', 'karla_light', 'karla_glasses_hat', 'karla_glasses'] #['merlin', 'haoxuan'] + for video_name in v_names: + base_path = f'{base_base_path}/{video_name}/rgb/' + #if os.path.exists(f'{base_path}/../cropped/'): + # print('SKIP', base_path) + # continue + start_frame = -1 + vertical_crop=True + try: + run('experiments/WFLW/pip_32_16_60_r18_l2_l1_10_1_nb10.py', base_path, start_frame=start_frame, vertical_crop=False, static_crop=True) + except Exception as ex: + traceback.print_exc() diff --git a/src/pixel3dmm/tools/rsh.py b/src/pixel3dmm/tools/rsh.py new file mode 100644 index 0000000000000000000000000000000000000000..70024db23f7bd3b74a28fc7b9f8f1beed8607ab0 --- /dev/null +++ b/src/pixel3dmm/tools/rsh.py @@ -0,0 +1,1540 @@ +"""Real spherical harmonics in Cartesian form for PyTorch. + +This is an autogenerated file. See +https://github.com/cheind/torch-spherical-harmonics +for more information. +""" + +import torch + + +def rsh_cart_0(xyz: torch.Tensor): + """Computes all real spherical harmonics up to degree 0. + + This is an autogenerated method. See + https://github.com/cheind/torch-spherical-harmonics + for more information. + + Params: + xyz: (N,...,3) tensor of points on the unit sphere + + Returns: + rsh: (N,...,1) real spherical harmonics + projections of input. Ynm is found at index + `n*(n+1) + m`, with `0 <= n <= degree` and + `-n <= m <= n`. + """ + + return torch.stack( + [ + xyz.new_tensor(0.282094791773878).expand(xyz.shape[:-1]), + ], + -1, + ) + + +def rsh_cart_1(xyz: torch.Tensor): + """Computes all real spherical harmonics up to degree 1. + + This is an autogenerated method. See + https://github.com/cheind/torch-spherical-harmonics + for more information. + + Params: + xyz: (N,...,3) tensor of points on the unit sphere + + Returns: + rsh: (N,...,4) real spherical harmonics + projections of input. Ynm is found at index + `n*(n+1) + m`, with `0 <= n <= degree` and + `-n <= m <= n`. + """ + x = xyz[..., 0] + y = xyz[..., 1] + z = xyz[..., 2] + + return torch.stack( + [ + xyz.new_tensor(0.282094791773878).expand(xyz.shape[:-1]), + -0.48860251190292 * y, + 0.48860251190292 * z, + -0.48860251190292 * x, + ], + -1, + ) + + +def rsh_cart_2(xyz: torch.Tensor): + """Computes all real spherical harmonics up to degree 2. + + This is an autogenerated method. See + https://github.com/cheind/torch-spherical-harmonics + for more information. + + Params: + xyz: (N,...,3) tensor of points on the unit sphere + + Returns: + rsh: (N,...,9) real spherical harmonics + projections of input. Ynm is found at index + `n*(n+1) + m`, with `0 <= n <= degree` and + `-n <= m <= n`. + """ + x = xyz[..., 0] + y = xyz[..., 1] + z = xyz[..., 2] + + x2 = x**2 + y2 = y**2 + z2 = z**2 + xy = x * y + xz = x * z + yz = y * z + + return torch.stack( + [ + xyz.new_tensor(0.282094791773878).expand(xyz.shape[:-1]), + -0.48860251190292 * y, + 0.48860251190292 * z, + -0.48860251190292 * x, + 1.09254843059208 * xy, + -1.09254843059208 * yz, + 0.94617469575756 * z2 - 0.31539156525252, + -1.09254843059208 * xz, + 0.54627421529604 * x2 - 0.54627421529604 * y2, + ], + -1, + ) + + +def rsh_cart_3(xyz: torch.Tensor): + """Computes all real spherical harmonics up to degree 3. + + This is an autogenerated method. See + https://github.com/cheind/torch-spherical-harmonics + for more information. + + Params: + xyz: (N,...,3) tensor of points on the unit sphere + + Returns: + rsh: (N,...,16) real spherical harmonics + projections of input. Ynm is found at index + `n*(n+1) + m`, with `0 <= n <= degree` and + `-n <= m <= n`. + """ + x = xyz[..., 0] + y = xyz[..., 1] + z = xyz[..., 2] + + x2 = x**2 + y2 = y**2 + z2 = z**2 + xy = x * y + xz = x * z + yz = y * z + + return torch.stack( + [ + xyz.new_tensor(0.282094791773878).expand(xyz.shape[:-1]), + -0.48860251190292 * y, + 0.48860251190292 * z, + -0.48860251190292 * x, + 1.09254843059208 * xy, + -1.09254843059208 * yz, + 0.94617469575756 * z2 - 0.31539156525252, + -1.09254843059208 * xz, + 0.54627421529604 * x2 - 0.54627421529604 * y2, + -0.590043589926644 * y * (3.0 * x2 - y2), + 2.89061144264055 * xy * z, + 0.304697199642977 * y * (1.5 - 7.5 * z2), + 1.24392110863372 * z * (1.5 * z2 - 0.5) - 0.497568443453487 * z, + 0.304697199642977 * x * (1.5 - 7.5 * z2), + 1.44530572132028 * z * (x2 - y2), + -0.590043589926644 * x * (x2 - 3.0 * y2), + ], + -1, + ) +def rsh_cart_3_2d(xy: torch.Tensor): + """Computes all real spherical harmonics up to degree 3. + + This is an autogenerated method. See + https://github.com/cheind/torch-spherical-harmonics + for more information. + + Params: + xyz: (N,...,3) tensor of points on the unit sphere + + Returns: + rsh: (N,...,16) real spherical harmonics + projections of input. Ynm is found at index + `n*(n+1) + m`, with `0 <= n <= degree` and + `-n <= m <= n`. + """ + x = xy[..., 0] + y = xy[..., 1] + + x2 = x**2 + y2 = y**2 + xy = x * y + + return torch.stack( + [ + xy.new_tensor(0.282094791773878).expand(xy.shape[:-1]), + -0.48860251190292 * y, + -0.48860251190292 * x, + 1.09254843059208 * xy, + 0.54627421529604 * x2 - 0.54627421529604 * y2, + -0.590043589926644 * y * (3.0 * x2 - y2), + -0.590043589926644 * x * (x2 - 3.0 * y2), + ], + -1, + ) + + + +def rsh_cart_4(xyz: torch.Tensor): + """Computes all real spherical harmonics up to degree 4. + + This is an autogenerated method. See + https://github.com/cheind/torch-spherical-harmonics + for more information. + + Params: + xyz: (N,...,3) tensor of points on the unit sphere + + Returns: + rsh: (N,...,25) real spherical harmonics + projections of input. Ynm is found at index + `n*(n+1) + m`, with `0 <= n <= degree` and + `-n <= m <= n`. + """ + x = xyz[..., 0] + y = xyz[..., 1] + z = xyz[..., 2] + + x2 = x**2 + y2 = y**2 + z2 = z**2 + xy = x * y + xz = x * z + yz = y * z + x4 = x2**2 + y4 = y2**2 + z4 = z2**2 + + return torch.stack( + [ + xyz.new_tensor(0.282094791773878).expand(xyz.shape[:-1]), + -0.48860251190292 * y, + 0.48860251190292 * z, + -0.48860251190292 * x, + 1.09254843059208 * xy, + -1.09254843059208 * yz, + 0.94617469575756 * z2 - 0.31539156525252, + -1.09254843059208 * xz, + 0.54627421529604 * x2 - 0.54627421529604 * y2, + -0.590043589926644 * y * (3.0 * x2 - y2), + 2.89061144264055 * xy * z, + 0.304697199642977 * y * (1.5 - 7.5 * z2), + 1.24392110863372 * z * (1.5 * z2 - 0.5) - 0.497568443453487 * z, + 0.304697199642977 * x * (1.5 - 7.5 * z2), + 1.44530572132028 * z * (x2 - y2), + -0.590043589926644 * x * (x2 - 3.0 * y2), + 2.5033429417967 * xy * (x2 - y2), + -1.77013076977993 * yz * (3.0 * x2 - y2), + 0.126156626101008 * xy * (52.5 * z2 - 7.5), + 0.267618617422916 * y * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z), + 1.48099765681286 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 0.952069922236839 * z2 + + 0.317356640745613, + 0.267618617422916 * x * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z), + 0.063078313050504 * (x2 - y2) * (52.5 * z2 - 7.5), + -1.77013076977993 * xz * (x2 - 3.0 * y2), + -3.75501441269506 * x2 * y2 + + 0.625835735449176 * x4 + + 0.625835735449176 * y4, + ], + -1, + ) + + +def rsh_cart_5(xyz: torch.Tensor): + """Computes all real spherical harmonics up to degree 5. + + This is an autogenerated method. See + https://github.com/cheind/torch-spherical-harmonics + for more information. + + Params: + xyz: (N,...,3) tensor of points on the unit sphere + + Returns: + rsh: (N,...,36) real spherical harmonics + projections of input. Ynm is found at index + `n*(n+1) + m`, with `0 <= n <= degree` and + `-n <= m <= n`. + """ + x = xyz[..., 0] + y = xyz[..., 1] + z = xyz[..., 2] + + x2 = x**2 + y2 = y**2 + z2 = z**2 + xy = x * y + xz = x * z + yz = y * z + x4 = x2**2 + y4 = y2**2 + z4 = z2**2 + + return torch.stack( + [ + xyz.new_tensor(0.282094791773878).expand(xyz.shape[:-1]), + -0.48860251190292 * y, + 0.48860251190292 * z, + -0.48860251190292 * x, + 1.09254843059208 * xy, + -1.09254843059208 * yz, + 0.94617469575756 * z2 - 0.31539156525252, + -1.09254843059208 * xz, + 0.54627421529604 * x2 - 0.54627421529604 * y2, + -0.590043589926644 * y * (3.0 * x2 - y2), + 2.89061144264055 * xy * z, + 0.304697199642977 * y * (1.5 - 7.5 * z2), + 1.24392110863372 * z * (1.5 * z2 - 0.5) - 0.497568443453487 * z, + 0.304697199642977 * x * (1.5 - 7.5 * z2), + 1.44530572132028 * z * (x2 - y2), + -0.590043589926644 * x * (x2 - 3.0 * y2), + 2.5033429417967 * xy * (x2 - y2), + -1.77013076977993 * yz * (3.0 * x2 - y2), + 0.126156626101008 * xy * (52.5 * z2 - 7.5), + 0.267618617422916 * y * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z), + 1.48099765681286 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 0.952069922236839 * z2 + + 0.317356640745613, + 0.267618617422916 * x * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z), + 0.063078313050504 * (x2 - y2) * (52.5 * z2 - 7.5), + -1.77013076977993 * xz * (x2 - 3.0 * y2), + -3.75501441269506 * x2 * y2 + + 0.625835735449176 * x4 + + 0.625835735449176 * y4, + -0.65638205684017 * y * (-10.0 * x2 * y2 + 5.0 * x4 + y4), + 8.30264925952416 * xy * z * (x2 - y2), + 0.00931882475114763 * y * (52.5 - 472.5 * z2) * (3.0 * x2 - y2), + 0.0913054625709205 * xy * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z), + 0.241571547304372 + * y + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ), + -1.24747010616985 * z * (1.5 * z2 - 0.5) + + 1.6840846433293 + * z + * ( + 1.75 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 1.125 * z2 + + 0.375 + ) + + 0.498988042467941 * z, + 0.241571547304372 + * x + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ), + 0.0456527312854602 * (x2 - y2) * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z), + 0.00931882475114763 * x * (52.5 - 472.5 * z2) * (x2 - 3.0 * y2), + 2.07566231488104 * z * (-6.0 * x2 * y2 + x4 + y4), + -0.65638205684017 * x * (-10.0 * x2 * y2 + x4 + 5.0 * y4), + ], + -1, + ) + + +def rsh_cart_6(xyz: torch.Tensor): + """Computes all real spherical harmonics up to degree 6. + + This is an autogenerated method. See + https://github.com/cheind/torch-spherical-harmonics + for more information. + + Params: + xyz: (N,...,3) tensor of points on the unit sphere + + Returns: + rsh: (N,...,49) real spherical harmonics + projections of input. Ynm is found at index + `n*(n+1) + m`, with `0 <= n <= degree` and + `-n <= m <= n`. + """ + x = xyz[..., 0] + y = xyz[..., 1] + z = xyz[..., 2] + + x2 = x**2 + y2 = y**2 + z2 = z**2 + xy = x * y + xz = x * z + yz = y * z + x4 = x2**2 + y4 = y2**2 + z4 = z2**2 + + return torch.stack( + [ + xyz.new_tensor(0.282094791773878).expand(xyz.shape[:-1]), + -0.48860251190292 * y, + 0.48860251190292 * z, + -0.48860251190292 * x, + 1.09254843059208 * xy, + -1.09254843059208 * yz, + 0.94617469575756 * z2 - 0.31539156525252, + -1.09254843059208 * xz, + 0.54627421529604 * x2 - 0.54627421529604 * y2, + -0.590043589926644 * y * (3.0 * x2 - y2), + 2.89061144264055 * xy * z, + 0.304697199642977 * y * (1.5 - 7.5 * z2), + 1.24392110863372 * z * (1.5 * z2 - 0.5) - 0.497568443453487 * z, + 0.304697199642977 * x * (1.5 - 7.5 * z2), + 1.44530572132028 * z * (x2 - y2), + -0.590043589926644 * x * (x2 - 3.0 * y2), + 2.5033429417967 * xy * (x2 - y2), + -1.77013076977993 * yz * (3.0 * x2 - y2), + 0.126156626101008 * xy * (52.5 * z2 - 7.5), + 0.267618617422916 * y * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z), + 1.48099765681286 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 0.952069922236839 * z2 + + 0.317356640745613, + 0.267618617422916 * x * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z), + 0.063078313050504 * (x2 - y2) * (52.5 * z2 - 7.5), + -1.77013076977993 * xz * (x2 - 3.0 * y2), + -3.75501441269506 * x2 * y2 + + 0.625835735449176 * x4 + + 0.625835735449176 * y4, + -0.65638205684017 * y * (-10.0 * x2 * y2 + 5.0 * x4 + y4), + 8.30264925952416 * xy * z * (x2 - y2), + 0.00931882475114763 * y * (52.5 - 472.5 * z2) * (3.0 * x2 - y2), + 0.0913054625709205 * xy * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z), + 0.241571547304372 + * y + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ), + -1.24747010616985 * z * (1.5 * z2 - 0.5) + + 1.6840846433293 + * z + * ( + 1.75 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 1.125 * z2 + + 0.375 + ) + + 0.498988042467941 * z, + 0.241571547304372 + * x + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ), + 0.0456527312854602 * (x2 - y2) * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z), + 0.00931882475114763 * x * (52.5 - 472.5 * z2) * (x2 - 3.0 * y2), + 2.07566231488104 * z * (-6.0 * x2 * y2 + x4 + y4), + -0.65638205684017 * x * (-10.0 * x2 * y2 + x4 + 5.0 * y4), + 4.09910463115149 * x**4 * xy + - 13.6636821038383 * xy**3 + + 4.09910463115149 * xy * y**4, + -2.36661916223175 * yz * (-10.0 * x2 * y2 + 5.0 * x4 + y4), + 0.00427144889505798 * xy * (x2 - y2) * (5197.5 * z2 - 472.5), + 0.00584892228263444 + * y + * (3.0 * x2 - y2) + * (3.66666666666667 * z * (52.5 - 472.5 * z2) + 280.0 * z), + 0.0701870673916132 + * xy + * ( + 2.75 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + - 91.875 * z2 + + 13.125 + ), + 0.221950995245231 + * y + * ( + -2.8 * z * (1.5 - 7.5 * z2) + + 2.2 + * z + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + - 4.8 * z + ), + -1.48328138624466 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + + 1.86469659985043 + * z + * ( + -1.33333333333333 * z * (1.5 * z2 - 0.5) + + 1.8 + * z + * ( + 1.75 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 1.125 * z2 + + 0.375 + ) + + 0.533333333333333 * z + ) + + 0.953538034014426 * z2 + - 0.317846011338142, + 0.221950995245231 + * x + * ( + -2.8 * z * (1.5 - 7.5 * z2) + + 2.2 + * z + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + - 4.8 * z + ), + 0.0350935336958066 + * (x2 - y2) + * ( + 2.75 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + - 91.875 * z2 + + 13.125 + ), + 0.00584892228263444 + * x + * (x2 - 3.0 * y2) + * (3.66666666666667 * z * (52.5 - 472.5 * z2) + 280.0 * z), + 0.0010678622237645 * (5197.5 * z2 - 472.5) * (-6.0 * x2 * y2 + x4 + y4), + -2.36661916223175 * xz * (-10.0 * x2 * y2 + x4 + 5.0 * y4), + 0.683184105191914 * x2**3 + + 10.2477615778787 * x2 * y4 + - 10.2477615778787 * x4 * y2 + - 0.683184105191914 * y2**3, + ], + -1, + ) + +def rsh_cart_6_2d(xy: torch.Tensor): + """Computes all real spherical harmonics up to degree 6. + + This is an autogenerated method. See + https://github.com/cheind/torch-spherical-harmonics + for more information. + + Params: + xyz: (N,...,3) tensor of points on the unit sphere + + Returns: + rsh: (N,...,49) real spherical harmonics + projections of input. Ynm is found at index + `n*(n+1) + m`, with `0 <= n <= degree` and + `-n <= m <= n`. + """ + x = xy[..., 0] + y = xy[..., 1] + + x2 = x**2 + y2 = y**2 + xy = x * y + x4 = x2**2 + y4 = y2**2 + + return torch.stack( + [ + -0.48860251190292 * y, + -0.48860251190292 * x, + 1.09254843059208 * xy, + 0.54627421529604 * x2 - 0.54627421529604 * y2, + -0.590043589926644 * y * (3.0 * x2 - y2), + -0.590043589926644 * x * (x2 - 3.0 * y2), + 2.5033429417967 * xy * (x2 - y2), + -3.75501441269506 * x2 * y2 + + 0.625835735449176 * x4 + + 0.625835735449176 * y4, + -0.65638205684017 * y * (-10.0 * x2 * y2 + 5.0 * x4 + y4), + 0.241571547304372 + * y + , + 0.0456527312854602 * (x2 - y2), + 0.00931882475114763 * x * (x2 - 3.0 * y2), + 2.07566231488104 * (-6.0 * x2 * y2 + x4 + y4), + -0.65638205684017 * x * (-10.0 * x2 * y2 + x4 + 5.0 * y4), + 4.09910463115149 * x**4 * xy + - 13.6636821038383 * xy**3 + + 4.09910463115149 * xy * y**4, + -2.36661916223175 * (-10.0 * x2 * y2 + 5.0 * x4 + y4), + 0.00427144889505798 * xy * (x2 - y2) , + 0.00584892228263444 + * y + * (3.0 * x2 - y2) * + 0.0701870673916132 + * xy + * ( + + 13.125 + ), + 0.221950995245231 + * y + * ( + + 2.2 + * ( + - 1.875 + ) + ), + 0.221950995245231 + * x + * ( + + 2.2 + * ( + - 1.875 + ) + ), + 0.0350935336958066 + * (x2 - y2) + * ( + + 13.125 + ), + 0.00584892228263444 + * x + * (x2 - 3.0 * y2) + * (3.66666666666667), + 0.0010678622237645 * (-6.0 * x2 * y2 + x4 + y4), + 0.683184105191914 * x2**3 + + 10.2477615778787 * x2 * y4 + - 10.2477615778787 * x4 * y2 + - 0.683184105191914 * y2**3, + ], + -1, + ) + + +def rsh_cart_7(xyz: torch.Tensor): + """Computes all real spherical harmonics up to degree 7. + + This is an autogenerated method. See + https://github.com/cheind/torch-spherical-harmonics + for more information. + + Params: + xyz: (N,...,3) tensor of points on the unit sphere + + Returns: + rsh: (N,...,64) real spherical harmonics + projections of input. Ynm is found at index + `n*(n+1) + m`, with `0 <= n <= degree` and + `-n <= m <= n`. + """ + x = xyz[..., 0] + y = xyz[..., 1] + z = xyz[..., 2] + + x2 = x**2 + y2 = y**2 + z2 = z**2 + xy = x * y + xz = x * z + yz = y * z + x4 = x2**2 + y4 = y2**2 + z4 = z2**2 + + return torch.stack( + [ + xyz.new_tensor(0.282094791773878).expand(xyz.shape[:-1]), + -0.48860251190292 * y, + 0.48860251190292 * z, + -0.48860251190292 * x, + 1.09254843059208 * xy, + -1.09254843059208 * yz, + 0.94617469575756 * z2 - 0.31539156525252, + -1.09254843059208 * xz, + 0.54627421529604 * x2 - 0.54627421529604 * y2, + -0.590043589926644 * y * (3.0 * x2 - y2), + 2.89061144264055 * xy * z, + 0.304697199642977 * y * (1.5 - 7.5 * z2), + 1.24392110863372 * z * (1.5 * z2 - 0.5) - 0.497568443453487 * z, + 0.304697199642977 * x * (1.5 - 7.5 * z2), + 1.44530572132028 * z * (x2 - y2), + -0.590043589926644 * x * (x2 - 3.0 * y2), + 2.5033429417967 * xy * (x2 - y2), + -1.77013076977993 * yz * (3.0 * x2 - y2), + 0.126156626101008 * xy * (52.5 * z2 - 7.5), + 0.267618617422916 * y * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z), + 1.48099765681286 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 0.952069922236839 * z2 + + 0.317356640745613, + 0.267618617422916 * x * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z), + 0.063078313050504 * (x2 - y2) * (52.5 * z2 - 7.5), + -1.77013076977993 * xz * (x2 - 3.0 * y2), + -3.75501441269506 * x2 * y2 + + 0.625835735449176 * x4 + + 0.625835735449176 * y4, + -0.65638205684017 * y * (-10.0 * x2 * y2 + 5.0 * x4 + y4), + 8.30264925952416 * xy * z * (x2 - y2), + 0.00931882475114763 * y * (52.5 - 472.5 * z2) * (3.0 * x2 - y2), + 0.0913054625709205 * xy * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z), + 0.241571547304372 + * y + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ), + -1.24747010616985 * z * (1.5 * z2 - 0.5) + + 1.6840846433293 + * z + * ( + 1.75 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 1.125 * z2 + + 0.375 + ) + + 0.498988042467941 * z, + 0.241571547304372 + * x + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ), + 0.0456527312854602 * (x2 - y2) * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z), + 0.00931882475114763 * x * (52.5 - 472.5 * z2) * (x2 - 3.0 * y2), + 2.07566231488104 * z * (-6.0 * x2 * y2 + x4 + y4), + -0.65638205684017 * x * (-10.0 * x2 * y2 + x4 + 5.0 * y4), + 4.09910463115149 * x**4 * xy + - 13.6636821038383 * xy**3 + + 4.09910463115149 * xy * y**4, + -2.36661916223175 * yz * (-10.0 * x2 * y2 + 5.0 * x4 + y4), + 0.00427144889505798 * xy * (x2 - y2) * (5197.5 * z2 - 472.5), + 0.00584892228263444 + * y + * (3.0 * x2 - y2) + * (3.66666666666667 * z * (52.5 - 472.5 * z2) + 280.0 * z), + 0.0701870673916132 + * xy + * ( + 2.75 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + - 91.875 * z2 + + 13.125 + ), + 0.221950995245231 + * y + * ( + -2.8 * z * (1.5 - 7.5 * z2) + + 2.2 + * z + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + - 4.8 * z + ), + -1.48328138624466 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + + 1.86469659985043 + * z + * ( + -1.33333333333333 * z * (1.5 * z2 - 0.5) + + 1.8 + * z + * ( + 1.75 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 1.125 * z2 + + 0.375 + ) + + 0.533333333333333 * z + ) + + 0.953538034014426 * z2 + - 0.317846011338142, + 0.221950995245231 + * x + * ( + -2.8 * z * (1.5 - 7.5 * z2) + + 2.2 + * z + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + - 4.8 * z + ), + 0.0350935336958066 + * (x2 - y2) + * ( + 2.75 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + - 91.875 * z2 + + 13.125 + ), + 0.00584892228263444 + * x + * (x2 - 3.0 * y2) + * (3.66666666666667 * z * (52.5 - 472.5 * z2) + 280.0 * z), + 0.0010678622237645 * (5197.5 * z2 - 472.5) * (-6.0 * x2 * y2 + x4 + y4), + -2.36661916223175 * xz * (-10.0 * x2 * y2 + x4 + 5.0 * y4), + 0.683184105191914 * x2**3 + + 10.2477615778787 * x2 * y4 + - 10.2477615778787 * x4 * y2 + - 0.683184105191914 * y2**3, + -0.707162732524596 + * y + * (7.0 * x2**3 + 21.0 * x2 * y4 - 35.0 * x4 * y2 - y2**3), + 2.6459606618019 + * z + * (6.0 * x**4 * xy - 20.0 * xy**3 + 6.0 * xy * y**4), + 9.98394571852353e-5 + * y + * (5197.5 - 67567.5 * z2) + * (-10.0 * x2 * y2 + 5.0 * x4 + y4), + 0.00239614697244565 + * xy + * (x2 - y2) + * (4.33333333333333 * z * (5197.5 * z2 - 472.5) - 3150.0 * z), + 0.00397356022507413 + * y + * (3.0 * x2 - y2) + * ( + 3.25 * z * (3.66666666666667 * z * (52.5 - 472.5 * z2) + 280.0 * z) + + 1063.125 * z2 + - 118.125 + ), + 0.0561946276120613 + * xy + * ( + -4.8 * z * (52.5 * z2 - 7.5) + + 2.6 + * z + * ( + 2.75 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + - 91.875 * z2 + + 13.125 + ) + + 48.0 * z + ), + 0.206472245902897 + * y + * ( + -2.625 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 2.16666666666667 + * z + * ( + -2.8 * z * (1.5 - 7.5 * z2) + + 2.2 + * z + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + - 4.8 * z + ) + - 10.9375 * z2 + + 2.1875 + ), + 1.24862677781952 * z * (1.5 * z2 - 0.5) + - 1.68564615005635 + * z + * ( + 1.75 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 1.125 * z2 + + 0.375 + ) + + 2.02901851395672 + * z + * ( + -1.45833333333333 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + + 1.83333333333333 + * z + * ( + -1.33333333333333 * z * (1.5 * z2 - 0.5) + + 1.8 + * z + * ( + 1.75 + * z + * ( + 1.66666666666667 * z * (1.5 * z2 - 0.5) + - 0.666666666666667 * z + ) + - 1.125 * z2 + + 0.375 + ) + + 0.533333333333333 * z + ) + + 0.9375 * z2 + - 0.3125 + ) + - 0.499450711127808 * z, + 0.206472245902897 + * x + * ( + -2.625 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 2.16666666666667 + * z + * ( + -2.8 * z * (1.5 - 7.5 * z2) + + 2.2 + * z + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + - 4.8 * z + ) + - 10.9375 * z2 + + 2.1875 + ), + 0.0280973138060306 + * (x2 - y2) + * ( + -4.8 * z * (52.5 * z2 - 7.5) + + 2.6 + * z + * ( + 2.75 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + - 91.875 * z2 + + 13.125 + ) + + 48.0 * z + ), + 0.00397356022507413 + * x + * (x2 - 3.0 * y2) + * ( + 3.25 * z * (3.66666666666667 * z * (52.5 - 472.5 * z2) + 280.0 * z) + + 1063.125 * z2 + - 118.125 + ), + 0.000599036743111412 + * (4.33333333333333 * z * (5197.5 * z2 - 472.5) - 3150.0 * z) + * (-6.0 * x2 * y2 + x4 + y4), + 9.98394571852353e-5 + * x + * (5197.5 - 67567.5 * z2) + * (-10.0 * x2 * y2 + x4 + 5.0 * y4), + 2.6459606618019 * z * (x2**3 + 15.0 * x2 * y4 - 15.0 * x4 * y2 - y2**3), + -0.707162732524596 + * x + * (x2**3 + 35.0 * x2 * y4 - 21.0 * x4 * y2 - 7.0 * y2**3), + ], + -1, + ) + + +def rsh_cart_8(xyz: torch.Tensor): + """Computes all real spherical harmonics up to degree 8. + + This is an autogenerated method. See + https://github.com/cheind/torch-spherical-harmonics + for more information. + + Params: + xyz: (N,...,3) tensor of points on the unit sphere + + Returns: + rsh: (N,...,81) real spherical harmonics + projections of input. Ynm is found at index + `n*(n+1) + m`, with `0 <= n <= degree` and + `-n <= m <= n`. + """ + x = xyz[..., 0] + y = xyz[..., 1] + z = xyz[..., 2] + + x2 = x**2 + y2 = y**2 + z2 = z**2 + xy = x * y + xz = x * z + yz = y * z + x4 = x2**2 + y4 = y2**2 + z4 = z2**2 + + return torch.stack( + [ + xyz.new_tensor(0.282094791773878).expand(xyz.shape[:-1]), + -0.48860251190292 * y, + 0.48860251190292 * z, + -0.48860251190292 * x, + 1.09254843059208 * xy, + -1.09254843059208 * yz, + 0.94617469575756 * z2 - 0.31539156525252, + -1.09254843059208 * xz, + 0.54627421529604 * x2 - 0.54627421529604 * y2, + -0.590043589926644 * y * (3.0 * x2 - y2), + 2.89061144264055 * xy * z, + 0.304697199642977 * y * (1.5 - 7.5 * z2), + 1.24392110863372 * z * (1.5 * z2 - 0.5) - 0.497568443453487 * z, + 0.304697199642977 * x * (1.5 - 7.5 * z2), + 1.44530572132028 * z * (x2 - y2), + -0.590043589926644 * x * (x2 - 3.0 * y2), + 2.5033429417967 * xy * (x2 - y2), + -1.77013076977993 * yz * (3.0 * x2 - y2), + 0.126156626101008 * xy * (52.5 * z2 - 7.5), + 0.267618617422916 * y * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z), + 1.48099765681286 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 0.952069922236839 * z2 + + 0.317356640745613, + 0.267618617422916 * x * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z), + 0.063078313050504 * (x2 - y2) * (52.5 * z2 - 7.5), + -1.77013076977993 * xz * (x2 - 3.0 * y2), + -3.75501441269506 * x2 * y2 + + 0.625835735449176 * x4 + + 0.625835735449176 * y4, + -0.65638205684017 * y * (-10.0 * x2 * y2 + 5.0 * x4 + y4), + 8.30264925952416 * xy * z * (x2 - y2), + 0.00931882475114763 * y * (52.5 - 472.5 * z2) * (3.0 * x2 - y2), + 0.0913054625709205 * xy * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z), + 0.241571547304372 + * y + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ), + -1.24747010616985 * z * (1.5 * z2 - 0.5) + + 1.6840846433293 + * z + * ( + 1.75 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 1.125 * z2 + + 0.375 + ) + + 0.498988042467941 * z, + 0.241571547304372 + * x + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ), + 0.0456527312854602 * (x2 - y2) * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z), + 0.00931882475114763 * x * (52.5 - 472.5 * z2) * (x2 - 3.0 * y2), + 2.07566231488104 * z * (-6.0 * x2 * y2 + x4 + y4), + -0.65638205684017 * x * (-10.0 * x2 * y2 + x4 + 5.0 * y4), + 4.09910463115149 * x**4 * xy + - 13.6636821038383 * xy**3 + + 4.09910463115149 * xy * y**4, + -2.36661916223175 * yz * (-10.0 * x2 * y2 + 5.0 * x4 + y4), + 0.00427144889505798 * xy * (x2 - y2) * (5197.5 * z2 - 472.5), + 0.00584892228263444 + * y + * (3.0 * x2 - y2) + * (3.66666666666667 * z * (52.5 - 472.5 * z2) + 280.0 * z), + 0.0701870673916132 + * xy + * ( + 2.75 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + - 91.875 * z2 + + 13.125 + ), + 0.221950995245231 + * y + * ( + -2.8 * z * (1.5 - 7.5 * z2) + + 2.2 + * z + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + - 4.8 * z + ), + -1.48328138624466 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + + 1.86469659985043 + * z + * ( + -1.33333333333333 * z * (1.5 * z2 - 0.5) + + 1.8 + * z + * ( + 1.75 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 1.125 * z2 + + 0.375 + ) + + 0.533333333333333 * z + ) + + 0.953538034014426 * z2 + - 0.317846011338142, + 0.221950995245231 + * x + * ( + -2.8 * z * (1.5 - 7.5 * z2) + + 2.2 + * z + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + - 4.8 * z + ), + 0.0350935336958066 + * (x2 - y2) + * ( + 2.75 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + - 91.875 * z2 + + 13.125 + ), + 0.00584892228263444 + * x + * (x2 - 3.0 * y2) + * (3.66666666666667 * z * (52.5 - 472.5 * z2) + 280.0 * z), + 0.0010678622237645 * (5197.5 * z2 - 472.5) * (-6.0 * x2 * y2 + x4 + y4), + -2.36661916223175 * xz * (-10.0 * x2 * y2 + x4 + 5.0 * y4), + 0.683184105191914 * x2**3 + + 10.2477615778787 * x2 * y4 + - 10.2477615778787 * x4 * y2 + - 0.683184105191914 * y2**3, + -0.707162732524596 + * y + * (7.0 * x2**3 + 21.0 * x2 * y4 - 35.0 * x4 * y2 - y2**3), + 2.6459606618019 + * z + * (6.0 * x**4 * xy - 20.0 * xy**3 + 6.0 * xy * y**4), + 9.98394571852353e-5 + * y + * (5197.5 - 67567.5 * z2) + * (-10.0 * x2 * y2 + 5.0 * x4 + y4), + 0.00239614697244565 + * xy + * (x2 - y2) + * (4.33333333333333 * z * (5197.5 * z2 - 472.5) - 3150.0 * z), + 0.00397356022507413 + * y + * (3.0 * x2 - y2) + * ( + 3.25 * z * (3.66666666666667 * z * (52.5 - 472.5 * z2) + 280.0 * z) + + 1063.125 * z2 + - 118.125 + ), + 0.0561946276120613 + * xy + * ( + -4.8 * z * (52.5 * z2 - 7.5) + + 2.6 + * z + * ( + 2.75 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + - 91.875 * z2 + + 13.125 + ) + + 48.0 * z + ), + 0.206472245902897 + * y + * ( + -2.625 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 2.16666666666667 + * z + * ( + -2.8 * z * (1.5 - 7.5 * z2) + + 2.2 + * z + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + - 4.8 * z + ) + - 10.9375 * z2 + + 2.1875 + ), + 1.24862677781952 * z * (1.5 * z2 - 0.5) + - 1.68564615005635 + * z + * ( + 1.75 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 1.125 * z2 + + 0.375 + ) + + 2.02901851395672 + * z + * ( + -1.45833333333333 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + + 1.83333333333333 + * z + * ( + -1.33333333333333 * z * (1.5 * z2 - 0.5) + + 1.8 + * z + * ( + 1.75 + * z + * ( + 1.66666666666667 * z * (1.5 * z2 - 0.5) + - 0.666666666666667 * z + ) + - 1.125 * z2 + + 0.375 + ) + + 0.533333333333333 * z + ) + + 0.9375 * z2 + - 0.3125 + ) + - 0.499450711127808 * z, + 0.206472245902897 + * x + * ( + -2.625 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 2.16666666666667 + * z + * ( + -2.8 * z * (1.5 - 7.5 * z2) + + 2.2 + * z + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + - 4.8 * z + ) + - 10.9375 * z2 + + 2.1875 + ), + 0.0280973138060306 + * (x2 - y2) + * ( + -4.8 * z * (52.5 * z2 - 7.5) + + 2.6 + * z + * ( + 2.75 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + - 91.875 * z2 + + 13.125 + ) + + 48.0 * z + ), + 0.00397356022507413 + * x + * (x2 - 3.0 * y2) + * ( + 3.25 * z * (3.66666666666667 * z * (52.5 - 472.5 * z2) + 280.0 * z) + + 1063.125 * z2 + - 118.125 + ), + 0.000599036743111412 + * (4.33333333333333 * z * (5197.5 * z2 - 472.5) - 3150.0 * z) + * (-6.0 * x2 * y2 + x4 + y4), + 9.98394571852353e-5 + * x + * (5197.5 - 67567.5 * z2) + * (-10.0 * x2 * y2 + x4 + 5.0 * y4), + 2.6459606618019 * z * (x2**3 + 15.0 * x2 * y4 - 15.0 * x4 * y2 - y2**3), + -0.707162732524596 + * x + * (x2**3 + 35.0 * x2 * y4 - 21.0 * x4 * y2 - 7.0 * y2**3), + 5.83141328139864 * xy * (x2**3 + 7.0 * x2 * y4 - 7.0 * x4 * y2 - y2**3), + -2.91570664069932 + * yz + * (7.0 * x2**3 + 21.0 * x2 * y4 - 35.0 * x4 * y2 - y2**3), + 7.87853281621404e-6 + * (1013512.5 * z2 - 67567.5) + * (6.0 * x**4 * xy - 20.0 * xy**3 + 6.0 * xy * y**4), + 5.10587282657803e-5 + * y + * (5.0 * z * (5197.5 - 67567.5 * z2) + 41580.0 * z) + * (-10.0 * x2 * y2 + 5.0 * x4 + y4), + 0.00147275890257803 + * xy + * (x2 - y2) + * ( + 3.75 * z * (4.33333333333333 * z * (5197.5 * z2 - 472.5) - 3150.0 * z) + - 14293.125 * z2 + + 1299.375 + ), + 0.0028519853513317 + * y + * (3.0 * x2 - y2) + * ( + -7.33333333333333 * z * (52.5 - 472.5 * z2) + + 3.0 + * z + * ( + 3.25 * z * (3.66666666666667 * z * (52.5 - 472.5 * z2) + 280.0 * z) + + 1063.125 * z2 + - 118.125 + ) + - 560.0 * z + ), + 0.0463392770473559 + * xy + * ( + -4.125 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + + 2.5 + * z + * ( + -4.8 * z * (52.5 * z2 - 7.5) + + 2.6 + * z + * ( + 2.75 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + - 91.875 * z2 + + 13.125 + ) + + 48.0 * z + ) + + 137.8125 * z2 + - 19.6875 + ), + 0.193851103820053 + * y + * ( + 3.2 * z * (1.5 - 7.5 * z2) + - 2.51428571428571 + * z + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + + 2.14285714285714 + * z + * ( + -2.625 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 2.16666666666667 + * z + * ( + -2.8 * z * (1.5 - 7.5 * z2) + + 2.2 + * z + * ( + 2.25 + * z + * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + - 4.8 * z + ) + - 10.9375 * z2 + + 2.1875 + ) + + 5.48571428571429 * z + ), + 1.48417251362228 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 1.86581687426801 + * z + * ( + -1.33333333333333 * z * (1.5 * z2 - 0.5) + + 1.8 + * z + * ( + 1.75 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 1.125 * z2 + + 0.375 + ) + + 0.533333333333333 * z + ) + + 2.1808249179756 + * z + * ( + 1.14285714285714 * z * (1.5 * z2 - 0.5) + - 1.54285714285714 + * z + * ( + 1.75 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + - 1.125 * z2 + + 0.375 + ) + + 1.85714285714286 + * z + * ( + -1.45833333333333 + * z + * (1.66666666666667 * z * (1.5 * z2 - 0.5) - 0.666666666666667 * z) + + 1.83333333333333 + * z + * ( + -1.33333333333333 * z * (1.5 * z2 - 0.5) + + 1.8 + * z + * ( + 1.75 + * z + * ( + 1.66666666666667 * z * (1.5 * z2 - 0.5) + - 0.666666666666667 * z + ) + - 1.125 * z2 + + 0.375 + ) + + 0.533333333333333 * z + ) + + 0.9375 * z2 + - 0.3125 + ) + - 0.457142857142857 * z + ) + - 0.954110901614325 * z2 + + 0.318036967204775, + 0.193851103820053 + * x + * ( + 3.2 * z * (1.5 - 7.5 * z2) + - 2.51428571428571 + * z + * ( + 2.25 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + + 2.14285714285714 + * z + * ( + -2.625 * z * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 2.16666666666667 + * z + * ( + -2.8 * z * (1.5 - 7.5 * z2) + + 2.2 + * z + * ( + 2.25 + * z + * (2.33333333333333 * z * (1.5 - 7.5 * z2) + 4.0 * z) + + 9.375 * z2 + - 1.875 + ) + - 4.8 * z + ) + - 10.9375 * z2 + + 2.1875 + ) + + 5.48571428571429 * z + ), + 0.0231696385236779 + * (x2 - y2) + * ( + -4.125 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + + 2.5 + * z + * ( + -4.8 * z * (52.5 * z2 - 7.5) + + 2.6 + * z + * ( + 2.75 * z * (3.0 * z * (52.5 * z2 - 7.5) - 30.0 * z) + - 91.875 * z2 + + 13.125 + ) + + 48.0 * z + ) + + 137.8125 * z2 + - 19.6875 + ), + 0.0028519853513317 + * x + * (x2 - 3.0 * y2) + * ( + -7.33333333333333 * z * (52.5 - 472.5 * z2) + + 3.0 + * z + * ( + 3.25 * z * (3.66666666666667 * z * (52.5 - 472.5 * z2) + 280.0 * z) + + 1063.125 * z2 + - 118.125 + ) + - 560.0 * z + ), + 0.000368189725644507 + * (-6.0 * x2 * y2 + x4 + y4) + * ( + 3.75 * z * (4.33333333333333 * z * (5197.5 * z2 - 472.5) - 3150.0 * z) + - 14293.125 * z2 + + 1299.375 + ), + 5.10587282657803e-5 + * x + * (5.0 * z * (5197.5 - 67567.5 * z2) + 41580.0 * z) + * (-10.0 * x2 * y2 + x4 + 5.0 * y4), + 7.87853281621404e-6 + * (1013512.5 * z2 - 67567.5) + * (x2**3 + 15.0 * x2 * y4 - 15.0 * x4 * y2 - y2**3), + -2.91570664069932 + * xz + * (x2**3 + 35.0 * x2 * y4 - 21.0 * x4 * y2 - 7.0 * y2**3), + -20.4099464848952 * x2**3 * y2 + - 20.4099464848952 * x2 * y2**3 + + 0.72892666017483 * x4**2 + + 51.0248662122381 * x4 * y4 + + 0.72892666017483 * y4**2, + ], + -1, + ) + + +__all__ = [ + "rsh_cart_0", + "rsh_cart_1", + "rsh_cart_2", + "rsh_cart_3", + "rsh_cart_3_2d", + "rsh_cart_4", + "rsh_cart_5", + "rsh_cart_6_2d", + "rsh_cart_6", + "rsh_cart_7", + "rsh_cart_8", +] \ No newline at end of file diff --git a/src/pixel3dmm/tracking/flame/FLAME.py b/src/pixel3dmm/tracking/flame/FLAME.py new file mode 100644 index 0000000000000000000000000000000000000000..d9937d104695f2ace6e807d423c2677236ebe529 --- /dev/null +++ b/src/pixel3dmm/tracking/flame/FLAME.py @@ -0,0 +1,344 @@ +# -*- coding: utf-8 -*- + +# Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. (MPG) is +# holder of all proprietary rights on this computer program. +# You can only use this computer program if you have closed +# a license agreement with MPG or you get the right to use the computer +# program from someone who is authorized to grant you that right. +# Any use of the computer program without a valid license is prohibited and +# liable to prosecution. +# +# Copyright©2023 Max-Planck-Gesellschaft zur Förderung +# der Wissenschaften e.V. (MPG). acting on behalf of its Max Planck Institute +# for Intelligent Systems. All rights reserved. +# +# Contact: mica@tue.mpg.de + +import os +import pickle + +import numpy as np +# Modified from smplx code for FLAME +import torch +import torch.nn as nn +import torch.nn.functional as F +from skimage.io import imread + +from pixel3dmm.utils.utils_3d import rotation_6d_to_matrix, matrix_to_rotation_6d +from pixel3dmm.tracking.flame.lbs import lbs +from pixel3dmm import env_paths + +I = matrix_to_rotation_6d(torch.eye(3)[None].cuda()) + + +def to_tensor(array, dtype=torch.float32): + if 'torch.tensor' not in str(type(array)): + return torch.tensor(array, dtype=dtype) + + +def to_np(array, dtype=np.float32): + if 'scipy.sparse' in str(type(array)): + array = array.todense() + return np.array(array, dtype=dtype) + + +class Struct(object): + def __init__(self, **kwargs): + for key, val in kwargs.items(): + setattr(self, key, val) + + +def rot_mat_to_euler(rot_mats): + # Calculates rotation matrix to euler angles + # Careful for extreme cases of eular angles like [0.0, pi, 0.0] + + sy = torch.sqrt(rot_mats[:, 0, 0] * rot_mats[:, 0, 0] + + rot_mats[:, 1, 0] * rot_mats[:, 1, 0]) + return torch.atan2(-rot_mats[:, 2, 0], sy) + + +class FLAME(nn.Module): + """ + borrowed from https://github.com/soubhiksanyal/FLAME_PyTorch/blob/master/FLAME.py + Given FLAME parameters for shape, pose, and expression, this class generates a differentiable FLAME function + which outputs the a mesh and 2D/3D facial landmarks + """ + + def __init__(self, config): + super(FLAME, self).__init__() + with open(f'{env_paths.FLAME_ASSETS}/FLAME2020/generic_model.pkl', 'rb') as f: + ss = pickle.load(f, encoding='latin1') + flame_model = Struct(**ss) + + self.dtype = torch.float32 + self.register_buffer('faces', to_tensor(to_np(flame_model.f, dtype=np.int64), dtype=torch.long)) + # The vertices of the template model + self.register_buffer('v_template', to_tensor(to_np(flame_model.v_template), dtype=self.dtype)) + # The shape components and expression + shapedirs = to_tensor(to_np(flame_model.shapedirs), dtype=self.dtype) + shapedirs = torch.cat([shapedirs[:, :, :config.num_shape_params], shapedirs[:, :, 300:300 + config.num_exp_params]], 2) + self.register_buffer('shapedirs', shapedirs) + # The pose components + num_pose_basis = flame_model.posedirs.shape[-1] + posedirs = np.reshape(flame_model.posedirs, [-1, num_pose_basis]).T + self.register_buffer('posedirs', to_tensor(to_np(posedirs), dtype=self.dtype)) + # + self.register_buffer('J_regressor', to_tensor(to_np(flame_model.J_regressor), dtype=self.dtype)) + parents = to_tensor(to_np(flame_model.kintree_table[0])).long(); + parents[0] = -1 + self.register_buffer('parents', parents) + self.register_buffer('lbs_weights', to_tensor(to_np(flame_model.weights), dtype=self.dtype)) + + self.register_buffer('l_eyelid', torch.from_numpy(np.load(f'{os.path.abspath(os.path.dirname(__file__))}/blendshapes/l_eyelid.npy')).to(self.dtype)[None]) + self.register_buffer('r_eyelid', torch.from_numpy(np.load(f'{os.path.abspath(os.path.dirname(__file__))}/blendshapes/r_eyelid.npy')).to(self.dtype)[None]) + + # Register default parameters + self._register_default_params('neck_pose_params', 6) + self._register_default_params('jaw_pose_params', 6) + self._register_default_params('eye_pose_params', 12) + self._register_default_params('shape_params', config.num_shape_params) + self._register_default_params('expression_params', config.num_exp_params) + + # Static and Dynamic Landmark embeddings for FLAME + lmk_embeddings = np.load(f'{env_paths.FLAME_ASSETS}/FLAME2020/landmark_embedding.npy', allow_pickle=True, encoding='latin1') + lmk_embeddings = lmk_embeddings[()] + + + self.register_buffer('lmk_faces_idx', torch.from_numpy(lmk_embeddings['static_lmk_faces_idx'].astype(int)).to(torch.int64)) + self.register_buffer('lmk_bary_coords', torch.from_numpy(lmk_embeddings['static_lmk_bary_coords']).to(self.dtype).float()) + self.register_buffer('dynamic_lmk_faces_idx', torch.from_numpy(np.array(lmk_embeddings['dynamic_lmk_faces_idx']).astype(int)).to(torch.int64)) + self.register_buffer('dynamic_lmk_bary_coords', torch.from_numpy(np.array(lmk_embeddings['dynamic_lmk_bary_coords'])).to(self.dtype).float()) + + neck_kin_chain = [] + NECK_IDX = 1 + curr_idx = torch.tensor(NECK_IDX, dtype=torch.long) + while curr_idx != -1: + neck_kin_chain.append(curr_idx) + curr_idx = self.parents[curr_idx] + self.register_buffer('neck_kin_chain', torch.stack(neck_kin_chain)) + + def _find_dynamic_lmk_idx_and_bcoords(self, vertices, pose, dynamic_lmk_faces_idx, + dynamic_lmk_b_coords, + neck_kin_chain, cameras, dtype=torch.float32): + """ + Selects the face contour depending on the reletive position of the head + Input: + vertices: N X num_of_vertices X 3 + pose: N X full pose + dynamic_lmk_faces_idx: The list of contour face indexes + dynamic_lmk_b_coords: The list of contour barycentric weights + neck_kin_chain: The tree to consider for the relative rotation + dtype: Data type + return: + The contour face indexes and the corresponding barycentric weights + """ + + batch_size = vertices.shape[0] + + aa_pose = torch.index_select(pose.view(batch_size, -1, 6), 1, neck_kin_chain) + rot_mats = rotation_6d_to_matrix(aa_pose.view(-1, 6)).view([batch_size, -1, 3, 3]) + + rel_rot_mat = torch.eye(3, device=vertices.device, dtype=dtype).unsqueeze_(dim=0).expand(batch_size, -1, -1) + + for idx in range(len(neck_kin_chain)): + rel_rot_mat = torch.bmm(rot_mats[:, idx], rel_rot_mat) + + if cameras is not None: + rel_rot_mat = cameras @ rel_rot_mat # Cameras flips z and x, plus multiview needs different lmk sliding per view + + y_rot_angle = torch.round(torch.clamp(-rot_mat_to_euler(rel_rot_mat) * 180.0 / np.pi, max=39)).to(dtype=torch.long) + neg_mask = y_rot_angle.lt(0).to(dtype=torch.long) + mask = y_rot_angle.lt(-39).to(dtype=torch.long) + neg_vals = mask * 78 + (1 - mask) * (39 - y_rot_angle) + y_rot_angle = (neg_mask * neg_vals + (1 - neg_mask) * y_rot_angle) + + dyn_lmk_faces_idx = torch.index_select(dynamic_lmk_faces_idx, 0, y_rot_angle) + dyn_lmk_b_coords = torch.index_select(dynamic_lmk_b_coords, 0, y_rot_angle) + + return dyn_lmk_faces_idx, dyn_lmk_b_coords + + def _vertices2landmarks(self, vertices, faces, lmk_faces_idx, lmk_bary_coords): + """ + Calculates landmarks by barycentric interpolation + Input: + vertices: torch.tensor NxVx3, dtype = torch.float32 + The tensor of input vertices + faces: torch.tensor (N*F)x3, dtype = torch.long + The faces of the mesh + lmk_faces_idx: torch.tensor N X L, dtype = torch.long + The tensor with the indices of the faces used to calculate the + landmarks. + lmk_bary_coords: torch.tensor N X L X 3, dtype = torch.float32 + The tensor of barycentric coordinates that are used to interpolate + the landmarks + + Returns: + landmarks: torch.tensor NxLx3, dtype = torch.float32 + The coordinates of the landmarks for each mesh in the batch + """ + # Extract the indices of the vertices for each face + # NxLx3 + batch_size, num_verts = vertices.shape[:2] + device = vertices.device + lmk_faces = torch.index_select(faces, 0, lmk_faces_idx.view(-1).to(torch.long)).view(batch_size, -1, 3) + lmk_faces += torch.arange(batch_size, dtype=torch.long, device=device).view(-1, 1, 1) * num_verts + lmk_vertices = vertices.view(-1, 3)[lmk_faces].view(batch_size, -1, 3, 3) + landmarks = torch.einsum('blfi,blf->bli', [lmk_vertices, lmk_bary_coords]) + + return landmarks + + def forward(self, shape_params, + cameras, + trans_params=None, + rot_params=None, + neck_pose_params=None, + jaw_pose_params=None, + eye_pose_params=None, + expression_params=None, + eyelid_params=None, + rot_params_lmk_shift = None, + vertex_offsets = None, + + ): + + """ + Input: + trans_params: N X 3 global translation + rot_params: N X 3 global rotation around the root joint of the kinematic tree (rotation is NOT around the origin!) + neck_pose_params (optional): N X 3 rotation of the head vertices around the neck joint + jaw_pose_params (optional): N X 3 rotation of the jaw + eye_pose_params (optional): N X 6 rotations of left (parameters [0:3]) and right eyeball (parameters [3:6]) + shape_params (optional): N X number of shape parameters + expression_params (optional): N X number of expression parameters + return:d + vertices: N X V X 3 + landmarks: N X number of landmarks X 3 + """ + batch_size = shape_params.shape[0] + + I = matrix_to_rotation_6d(torch.cat([torch.eye(3)[None]] * batch_size, dim=0).cuda()) + + if trans_params is None: + trans_params = torch.zeros(batch_size, 3).cuda() + if rot_params is None: + rot_params = I.clone() + if rot_params_lmk_shift is None: + rot_params_lmk_shift = rot_params + if neck_pose_params is None: + neck_pose_params = I.clone() + if jaw_pose_params is None: + jaw_pose_params = I.clone() + if eye_pose_params is None: + eye_pose_params = torch.cat([I.clone()] * 2, dim=1) + if shape_params is None: + shape_params = self.shape_params.expand(batch_size, -1) + if expression_params is None: + expression_params = self.expression_params.expand(batch_size, -1) + + # Concatenate identity shape and expression parameters + betas = torch.cat([shape_params, expression_params], dim=1) + + # The pose vector contains global rotation, and neck, jaw, and eyeball rotations + full_pose = torch.cat([rot_params, neck_pose_params, jaw_pose_params, eye_pose_params], dim=1) + full_pose_no_neck = torch.cat([rot_params, I, jaw_pose_params, eye_pose_params], dim=1) + full_pose_lmk_shift = torch.cat([rot_params_lmk_shift, neck_pose_params, jaw_pose_params, eye_pose_params], dim=1) + + # FLAME models shape and expression deformations as vertex offset from the mean face in 'zero pose', called v_template + template_vertices = self.v_template.unsqueeze(0).expand(batch_size, -1, -1) + + # Use linear blendskinning to model pose roations + vertices, joint_transforms, v_can = lbs(betas, full_pose, template_vertices, + self.shapedirs, self.posedirs, + self.J_regressor, self.parents, + self.lbs_weights, dtype=self.dtype) + + vertices_noneck, _, v_can = lbs(betas, full_pose_no_neck, template_vertices, + self.shapedirs, self.posedirs, + self.J_regressor, self.parents, + self.lbs_weights, dtype=self.dtype) + + #if vertex_offsets is not None: + # vertices[:, self.vertex_face_mask, :] = vertices[:, self.vertex_face_mask, :] + vertex_offsets + + if eyelid_params is not None: + vertices = vertices + self.r_eyelid.expand(batch_size, -1, -1) * eyelid_params[:, 1:2, None] + vertices = vertices + self.l_eyelid.expand(batch_size, -1, -1) * eyelid_params[:, 0:1, None] + + lmk_faces_idx = self.lmk_faces_idx.unsqueeze(dim=0).expand(batch_size, -1).contiguous() + lmk_bary_coords = self.lmk_bary_coords.unsqueeze(dim=0).expand(batch_size, -1, -1).contiguous() + + dyn_lmk_faces_idx, dyn_lmk_bary_coords = self._find_dynamic_lmk_idx_and_bcoords( + vertices, full_pose_lmk_shift, self.dynamic_lmk_faces_idx, + self.dynamic_lmk_bary_coords, + self.neck_kin_chain, cameras, dtype=self.dtype) + + lmk_faces_idx = torch.cat([dyn_lmk_faces_idx, lmk_faces_idx], 1) + lmk_bary_coords = torch.cat([dyn_lmk_bary_coords, lmk_bary_coords], 1) + + lmk68 = self._vertices2landmarks(vertices, self.faces, lmk_faces_idx, lmk_bary_coords) + + + + # always zero in this code-base + #vertices = vertices + trans_params.unsqueeze(dim=1) + #lmk68 = lmk68 + trans_params.unsqueeze(dim=1) + + return vertices, lmk68, joint_transforms, v_can, vertices_noneck + + def _register_default_params(self, param_fname, dim): + default_params = torch.zeros([1, dim], dtype=self.dtype, requires_grad=False) + self.register_parameter(param_fname, nn.Parameter(default_params, requires_grad=False)) + + +class FLAMETex(nn.Module): + def __init__(self, config, texture_mask_index, tex_res): + super(FLAMETex, self).__init__() + tex_space = np.load(config.tex_space_path) + # FLAME texture + if 'tex_dir' in tex_space.files: + mu_key = 'mean' + pc_key = 'tex_dir' + n_pc = 200 + scale = 1 + # BFM to FLAME texture + else: + mu_key = 'MU' + pc_key = 'PC' + n_pc = 199 + scale = 255.0 + texture_mean = tex_space[mu_key].reshape(1, -1) + texture_basis = tex_space[pc_key].reshape(-1, n_pc) + n_tex = config.tex_params + texture_mean = torch.from_numpy(texture_mean).float()[None, ...] * scale + texture_basis = torch.from_numpy(texture_basis[:, :n_tex]).float()[None, ...] * scale + self.texture = None + self.register_buffer('texture_mean', texture_mean) + self.register_buffer('texture_basis', texture_basis) + self.image_size = (512, 512) #config.image_size + #self.check_texture(config) + + self.texture_mask_index = texture_mask_index + self.tex_res = tex_res + + def check_texture(self, config): + path = os.path.join(config.actor, 'texture.png') + if os.path.exists(path): + self.texture = torch.from_numpy(imread(path)).permute(2, 0, 1).cuda()[None, 0:3, :, :] / 255.0 + + def forward(self, texcode, tex_offsets=None): + if self.texture is not None: + return F.interpolate(self.texture, self.image_size, mode='bilinear') + texture = self.texture_mean + (self.texture_basis * texcode[:, None, :]).sum(-1) + texture = texture.reshape(texcode.shape[0], 512, 512, 3).permute(0, 3, 1, 2) + texture = F.interpolate(texture, (self.tex_res, self.tex_res), mode='bilinear') + + #texture = F.interpolate(texture, (1024, 1024), mode='bilinear') + + texture = texture[:, [2, 1, 0], :, :] + texture = texture / 255. + if tex_offsets is not None: + texture[:, :, self.texture_mask_index[0], self.texture_mask_index[1]] += tex_offsets + + #texture = F.interpolate(texture, (512, 512), mode='bilinear') + + return texture diff --git a/src/pixel3dmm/tracking/flame/blendshapes/l_eyelid.npy b/src/pixel3dmm/tracking/flame/blendshapes/l_eyelid.npy new file mode 100644 index 0000000000000000000000000000000000000000..cfa2f8c62c5d0284f827a3a8068e985474ca13c3 --- /dev/null +++ b/src/pixel3dmm/tracking/flame/blendshapes/l_eyelid.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa50997166c2f884fbfc577d99fe8707966763fc3d83a1870bb786df6cc9410d +size 120680 diff --git a/src/pixel3dmm/tracking/flame/blendshapes/r_eyelid.npy b/src/pixel3dmm/tracking/flame/blendshapes/r_eyelid.npy new file mode 100644 index 0000000000000000000000000000000000000000..ba9abb075fca9736aa7a6e6cae990c7758238a3d --- /dev/null +++ b/src/pixel3dmm/tracking/flame/blendshapes/r_eyelid.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd78776fed765be4468889dd7d5b54b4bf61c8efbb2869b5b91409ce798aad8d +size 120680 diff --git a/src/pixel3dmm/tracking/flame/lbs.py b/src/pixel3dmm/tracking/flame/lbs.py new file mode 100644 index 0000000000000000000000000000000000000000..4172f3b0989fa2afb63355518181a053b4e268b7 --- /dev/null +++ b/src/pixel3dmm/tracking/flame/lbs.py @@ -0,0 +1,411 @@ +# -*- coding: utf-8 -*- + +# Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. (MPG) is +# holder of all proprietary rights on this computer program. +# You can only use this computer program if you have closed +# a license agreement with MPG or you get the right to use the computer +# program from someone who is authorized to grant you that right. +# Any use of the computer program without a valid license is prohibited and +# liable to prosecution. +# +# Copyright©2023 Max-Planck-Gesellschaft zur Förderung +# der Wissenschaften e.V. (MPG). acting on behalf of its Max Planck Institute +# for Intelligent Systems. All rights reserved. +# +# Contact: mica@tue.mpg.de + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import numpy as np +import torch +import torch.nn.functional as F + + +# in batch*5 +# out batch*6 +from pixel3dmm.utils.utils_3d import rotation_6d_to_matrix + +def stereographic_unproject_old(a): + s2 = torch.pow(a, 2).sum(1) # batch + unproj = 2 * a / (s2 + 1).view(-1, 1).repeat(1, 5) # batch*5 + w = (s2 - 1) / (s2 + 1) # batch + out = torch.cat((unproj, w.view(-1, 1)), 1) # batch*6 + + return out + + +# in a batch*5, axis int +def stereographic_unproject(a, axis=None): + """ + Inverse of stereographic projection: increases dimension by one. + """ + batch = a.shape[0] + if axis is None: + axis = a.shape[1] + s2 = torch.pow(a, 2).sum(1) # batch + ans = torch.autograd.Variable(torch.zeros(batch, a.shape[1] + 1).cuda()) # batch*6 + unproj = 2 * a / (s2 + 1).view(batch, 1).repeat(1, a.shape[1]) # batch*5 + if (axis > 0): + ans[:, :axis] = unproj[:, :axis] # batch*(axis-0) + ans[:, axis] = (s2 - 1) / (s2 + 1) # batch + ans[:, axis + 1:] = unproj[:, axis:] # batch*(5-axis) # Note that this is a no-op if the default option (last axis) is used + return ans + + +def rot_mat_to_euler(rot_mats): + # Calculates rotation matrix to euler angles + # Careful for extreme cases of eular angles like [0.0, pi, 0.0] + + sy = torch.sqrt(rot_mats[:, 0, 0] * rot_mats[:, 0, 0] + + rot_mats[:, 1, 0] * rot_mats[:, 1, 0]) + return torch.atan2(-rot_mats[:, 2, 0], sy) + + +def find_dynamic_lmk_idx_and_bcoords(vertices, pose, dynamic_lmk_faces_idx, + dynamic_lmk_b_coords, + neck_kin_chain, dtype=torch.float32): + ''' Compute the faces, barycentric coordinates for the dynamic landmarks + + + To do so, we first compute the rotation of the neck around the y-axis + and then use a pre-computed look-up table to find the faces and the + barycentric coordinates that will be used. + + Special thanks to Soubhik Sanyal (soubhik.sanyal@tuebingen.mpg.de) + for providing the original TensorFlow implementation and for the LUT. + + Parameters + ---------- + vertices: torch.tensor BxVx3, dtype = torch.float32 + The tensor of input vertices + pose: torch.tensor Bx(Jx3), dtype = torch.float32 + The current pose of the body model + dynamic_lmk_faces_idx: torch.tensor L, dtype = torch.long + The look-up table from neck rotation to faces + dynamic_lmk_b_coords: torch.tensor Lx3, dtype = torch.float32 + The look-up table from neck rotation to barycentric coordinates + neck_kin_chain: list + A python list that contains the indices of the joints that form the + kinematic chain of the neck. + dtype: torch.dtype, optional + + Returns + ------- + dyn_lmk_faces_idx: torch.tensor, dtype = torch.long + A tensor of size BxL that contains the indices of the faces that + will be used to compute the current dynamic landmarks. + dyn_lmk_b_coords: torch.tensor, dtype = torch.float32 + A tensor of size BxL that contains the indices of the faces that + will be used to compute the current dynamic landmarks. + ''' + + batch_size = vertices.shape[0] + + aa_pose = torch.index_select(pose.view(batch_size, -1, 6), 1, neck_kin_chain) + rot_mats = rotation_6d_to_matrix(aa_pose.view(-1, 6)).view(batch_size, -1, 3, 3) + + rel_rot_mat = torch.eye(3, device=vertices.device, + dtype=dtype).unsqueeze_(dim=0) + for idx in range(len(neck_kin_chain)): + rel_rot_mat = torch.bmm(rot_mats[:, idx], rel_rot_mat) + + y_rot_angle = torch.round( + torch.clamp(-rot_mat_to_euler(rel_rot_mat) * 180.0 / np.pi, + max=39)).to(dtype=torch.long) + neg_mask = y_rot_angle.lt(0).to(dtype=torch.long) + mask = y_rot_angle.lt(-39).to(dtype=torch.long) + neg_vals = mask * 78 + (1 - mask) * (39 - y_rot_angle) + y_rot_angle = (neg_mask * neg_vals + + (1 - neg_mask) * y_rot_angle) + + dyn_lmk_faces_idx = torch.index_select(dynamic_lmk_faces_idx, + 0, y_rot_angle) + dyn_lmk_b_coords = torch.index_select(dynamic_lmk_b_coords, + 0, y_rot_angle) + + return dyn_lmk_faces_idx, dyn_lmk_b_coords + + +def vertices2landmarks(vertices, faces, lmk_faces_idx, lmk_bary_coords): + ''' Calculates landmarks by barycentric interpolation + + Parameters + ---------- + vertices: torch.tensor BxVx3, dtype = torch.float32 + The tensor of input vertices + faces: torch.tensor Fx3, dtype = torch.long + The faces of the mesh + lmk_faces_idx: torch.tensor L, dtype = torch.long + The tensor with the indices of the faces used to calculate the + landmarks. + lmk_bary_coords: torch.tensor Lx3, dtype = torch.float32 + The tensor of barycentric coordinates that are used to interpolate + the landmarks + + Returns + ------- + landmarks: torch.tensor BxLx3, dtype = torch.float32 + The coordinates of the landmarks for each mesh in the batch + ''' + # Extract the indices of the vertices for each face + # BxLx3 + batch_size, num_verts = vertices.shape[:2] + device = vertices.device + + lmk_faces = torch.index_select(faces, 0, lmk_faces_idx.view(-1)).view( + batch_size, -1, 3) + + lmk_faces += torch.arange( + batch_size, dtype=torch.long, device=device).view(-1, 1, 1) * num_verts + + lmk_vertices = vertices.view(-1, 3)[lmk_faces].view( + batch_size, -1, 3, 3) + + landmarks = torch.einsum('blfi,blf->bli', [lmk_vertices, lmk_bary_coords]) + return landmarks + + +def lbs(betas, pose, v_template, shapedirs, posedirs, J_regressor, parents, + lbs_weights, pose2rot=True, dtype=torch.float32): + ''' Performs Linear Blend Skinning with the given shape and pose parameters + + Parameters + ---------- + betas : torch.tensor BxNB + The tensor of shape parameters + pose : torch.tensor Bx(J + 1) * 3 + The pose parameters in axis-angle format + v_template torch.tensor BxVx3 + The template mesh that will be deformed + shapedirs : torch.tensor 1xNB + The tensor of PCA shape displacements + posedirs : torch.tensor Px(V * 3) + The pose PCA coefficients + J_regressor : torch.tensor JxV + The regressor array that is used to calculate the joints from + the position of the vertices + parents: torch.tensor J + The array that describes the kinematic tree for the model + lbs_weights: torch.tensor N x V x (J + 1) + The linear blend skinning weights that represent how much the + rotation matrix of each part affects each vertex + pose2rot: bool, optional + Flag on whether to convert the input pose tensor to rotation + matrices. The default value is True. If False, then the pose tensor + should already contain rotation matrices and have a size of + Bx(J + 1)x9 + dtype: torch.dtype, optional + + Returns + ------- + verts: torch.tensor BxVx3 + The vertices of the mesh after applying the shape and pose + displacements. + joints: torch.tensor BxJx3 + The joints of the model + ''' + + batch_size = max(betas.shape[0], pose.shape[0]) + device = betas.device + + # Add shape contribution + v_shaped = v_template + blend_shapes(betas, shapedirs) + + # Get the joints + # NxJx3 array + J = vertices2joints(J_regressor, v_shaped) + + # 3. Add pose blend shapes + # N x J x 3 x 3 + ident = torch.eye(3, dtype=dtype, device=device) + if pose2rot: + # rot_mats = batch_rodrigues(pose.view(-1, 3), dtype=dtype).view([batch_size, -1, 3, 3]) + rot_mats = rotation_6d_to_matrix(pose.view(-1, 6)).view([batch_size, -1, 3, 3]) + + pose_feature = (rot_mats[:, 1:, :, :] - ident).view([batch_size, -1]) + # (N x P) x (P, V * 3) -> N x V x 3 + pose_offsets = torch.matmul(pose_feature, posedirs) \ + .view(batch_size, -1, 3) + else: + pose_feature = pose[:, 1:].view(batch_size, -1, 3, 3) - ident + rot_mats = pose.view(batch_size, -1, 3, 3) + + pose_offsets = torch.matmul(pose_feature.view(batch_size, -1), + posedirs).view(batch_size, -1, 3) + + v_posed = pose_offsets + v_shaped + # 4. Get the global joint location + J_transformed, A = batch_rigid_transform(rot_mats, J, parents, dtype=dtype) + + # 5. Do skinning: + # W is N x V x (J + 1) + W = lbs_weights.unsqueeze(dim=0).expand([batch_size, -1, -1]) + # (N x V x (J + 1)) x (N x (J + 1) x 16) + num_joints = J_regressor.shape[0] + T = torch.matmul(W, A.view(batch_size, num_joints, 16)).view(batch_size, -1, 4, 4) + + homogen_coord = torch.ones([batch_size, v_posed.shape[1], 1], + dtype=dtype, device=device) + v_posed_homo = torch.cat([v_posed, homogen_coord], dim=2) + v_homo = torch.matmul(T, torch.unsqueeze(v_posed_homo, dim=-1)) + + verts = v_homo[:, :, :3, 0] + + #import pyvista as pv + #pl = pv.Plotter() + #pl.add_points(v_posed.detach().cpu().squeeze().numpy()) + #pl.add_point_labels(points=J_transformed.detach().cpu().squeeze().numpy(), labels=[str(i) for i in range(5)]) + #pl.add_point_labels(points=J.detach().cpu().squeeze().numpy(), labels=[str(i) for i in range(5)], text_color='green') + #pl.show() + + return verts, A, v_shaped + + +def vertices2joints(J_regressor, vertices): + ''' Calculates the 3D joint locations from the vertices + + Parameters + ---------- + J_regressor : torch.tensor JxV + The regressor array that is used to calculate the joints from the + position of the vertices + vertices : torch.tensor BxVx3 + The tensor of mesh vertices + + Returns + ------- + torch.tensor BxJx3 + The location of the joints + ''' + + return torch.einsum('bik,ji->bjk', [vertices, J_regressor]) + + +def blend_shapes(betas, shape_disps): + ''' Calculates the per vertex displacement due to the blend shapes + + + Parameters + ---------- + betas : torch.tensor Bx(num_betas) + Blend shape coefficients + shape_disps: torch.tensor Vx3x(num_betas) + Blend shapes + + Returns + ------- + torch.tensor BxVx3 + The per-vertex displacement due to shape deformation + ''' + + # Displacement[b, m, k] = sum_{l} betas[b, l] * shape_disps[m, k, l] + # i.e. Multiply each shape displacement by its corresponding beta and + # then sum them. + blend_shape = torch.einsum('bl,mkl->bmk', [betas, shape_disps]) + return blend_shape + + +def _batch_rodrigues(rot_vecs, epsilon=1e-8, dtype=torch.float32): + ''' Calculates the rotation matrices for a batch of rotation vectors + Parameters + ---------- + rot_vecs: torch.tensor Nx3 + array of N axis-angle vectors + Returns + ------- + R: torch.tensor Nx3x3 + The rotation matrices for the given axis-angle parameters + ''' + + batch_size = rot_vecs.shape[0] + device = rot_vecs.device + + angle = torch.norm(rot_vecs + 1e-8, dim=1, keepdim=True) + rot_dir = rot_vecs / angle + + cos = torch.unsqueeze(torch.cos(angle), dim=1) + sin = torch.unsqueeze(torch.sin(angle), dim=1) + + # Bx1 arrays + rx, ry, rz = torch.split(rot_dir, 1, dim=1) + K = torch.zeros((batch_size, 3, 3), dtype=dtype, device=device) + + zeros = torch.zeros((batch_size, 1), dtype=dtype, device=device) + K = torch.cat([zeros, -rz, ry, rz, zeros, -rx, -ry, rx, zeros], dim=1) \ + .view((batch_size, 3, 3)) + + ident = torch.eye(3, dtype=dtype, device=device).unsqueeze(dim=0) + rot_mat = ident + sin * K + (1 - cos) * torch.bmm(K, K) + return rot_mat + + +def transform_mat(R, t): + ''' Creates a batch of transformation matrices + Args: + - R: Bx3x3 array of a batch of rotation matrices + - t: Bx3x1 array of a batch of translation vectors + Returns: + - T: Bx4x4 Transformation matrix + ''' + # No padding left or right, only add an extra row + return torch.cat([F.pad(R, [0, 0, 0, 1]), + F.pad(t, [0, 0, 0, 1], value=1)], dim=2) + + +def batch_rigid_transform(rot_mats, joints, parents, dtype=torch.float32): + """ + Applies a batch of rigid transformations to the joints + + Parameters + ---------- + rot_mats : torch.tensor BxNx3x3 + Tensor of rotation matrices + joints : torch.tensor BxNx3 + Locations of joints + parents : torch.tensor BxN + The kinematic tree of each object + dtype : torch.dtype, optional: + The data type of the created tensors, the default is torch.float32 + + Returns + ------- + posed_joints : torch.tensor BxNx3 + The locations of the joints after applying the pose rotations + rel_transforms : torch.tensor BxNx4x4 + The relative (with respect to the root joint) rigid transformations + for all the joints + """ + + joints = torch.unsqueeze(joints, dim=-1) + + rel_joints = joints.clone() + rel_joints[:, 1:] -= joints[:, parents[1:]] + + transforms_mat = transform_mat( + rot_mats.view(-1, 3, 3), + rel_joints.reshape(-1, 3, 1)).reshape(-1, joints.shape[1], 4, 4) + + transform_chain = [transforms_mat[:, 0]] + for i in range(1, parents.shape[0]): + # Subtract the joint location at the rest pose + # No need for rotation, since it's identity when at rest + curr_res = torch.matmul(transform_chain[parents[i]], + transforms_mat[:, i]) + transform_chain.append(curr_res) + + transforms = torch.stack(transform_chain, dim=1) + + # The last column of the transformations contains the posed joints + posed_joints = transforms[:, :, :3, 3] + + # The last column of the transformations contains the posed joints + posed_joints = transforms[:, :, :3, 3] + + joints_homogen = F.pad(joints, [0, 0, 0, 1]) + + rel_transforms = transforms - F.pad( + torch.matmul(transforms, joints_homogen), [3, 0, 0, 0, 0, 0, 0, 0]) + + return posed_joints, rel_transforms diff --git a/src/pixel3dmm/tracking/losses.py b/src/pixel3dmm/tracking/losses.py new file mode 100644 index 0000000000000000000000000000000000000000..1b65c5719f19b5050b1b228d55d4175705c1902e --- /dev/null +++ b/src/pixel3dmm/tracking/losses.py @@ -0,0 +1,138 @@ +import torch +import os +import numpy as np +from pytorch3d.ops import knn_points +from pixel3dmm import env_paths + + +def get_albedo_loss(gt, pred, mask): + gt_albedo = gt[:, :3, :, :].permute(0, 2, 3, 1) + albedo_loss = ((gt_albedo - pred.permute(0, 2, 3, 1)) * mask[:, 0, + ...].unsqueeze( + -1)).abs().mean() + return albedo_loss + +def get_pos_map_loss(gt, pred, mask): + gt_pos_map = gt.permute(0, 2, 3, 1) + tmp = pred + tmp *= 4 + tmp = torch.stack([-tmp[:, 0, ...], tmp[:, 2, ...], tmp[:, 1, ...]], dim=1) + tmp /= 1.25 + + tmp[:, 1] += 0.2 + l_map = (gt_pos_map - + tmp.permute(0, 2, 3, 1)) + valid = l_map < 0.015 + pos_map_loss = (l_map * valid.float() * mask).abs().mean() + return pos_map_loss + + +def get_pos_map_loss_corresp(gt, pred, omit_mean=False): + tmp = pred + tmp *= 4 + tmp = torch.stack([-tmp[:, 0], tmp[:, 2], tmp[:, 1]], dim=1) + tmp /= 1.25 + + tmp[:, 1] += 0.2 + outliers = (gt - tmp).abs().sum(dim=-1) > 0.066 + if omit_mean: + pos_map_loss = (gt - tmp) * (~outliers).float().unsqueeze(-1) + #pos_map_loss = gt - tmp + else: + pos_map_loss = ((gt - tmp)[~outliers, :]).abs().mean() + return pos_map_loss + + +class UVLoss(): + + def __init__(self, stricter_mask : bool = False, delta_uv=0.00005, delta_nocs=0.0001, dist_uv=15): + self.delta = delta_uv + self.delta_nocs = delta_nocs + self.dist_uv = dist_uv + self.valid_verts = None + self.valid_verts_nocs = None + self.stricter_mask = stricter_mask + + if self.stricter_mask: + self.valid_verts = np.load(f'{env_paths.VALID_VERTS_NARROW}') + else: + self.valid_verts = np.load(f'{env_paths.VALID_VERTS}') + self.can_uv = torch.from_numpy(np.load(env_paths.FLAME_UV_COORDS)[self.valid_verts, :]).cuda().unsqueeze(0).float() + self.can_uv[..., 1] = (self.can_uv[..., 1] * -1) + 1 + + self.verts_2d = [] + self.gt_2_verts = None + + self.valid_vertex_index = torch.from_numpy(self.valid_verts).long().cuda() + + + + def finish_stage1(self, delta_uv_fine=None, dist_uv_fine=None): + self.verts_2d = torch.cat(self.verts_2d, dim=0) + if delta_uv_fine is not None: + self.delta = delta_uv_fine + self.dist_uv = dist_uv_fine + + def is_next(self): + self.gt_2_verts = None + + @torch.compiler.disable + def compute_corresp(self, gt, selected_frames=None): + + self.gt = gt + + gt_uv = gt[:, :2, :, :].permute(0, 2, 3, 1) + gt_uv = gt_uv.reshape(gt_uv.shape[0], -1, 2) # B x n_pixel x 2 + can_uv = self.can_uv.repeat(gt_uv.shape[0], 1, 1) + + knn_result = knn_points(can_uv, gt_uv) + pixel_position_width = knn_result.idx % gt.shape[-1] + pixel_position_height = knn_result.idx // gt.shape[-2] + self.dists = knn_result.dists.clone() + + self.gt_2_verts = torch.cat([pixel_position_width, pixel_position_height], dim=-1) + if selected_frames is None: + self.verts_2d.append(torch.cat([pixel_position_width, pixel_position_height], dim=-1)) + + + + def compute_loss(self, proj_vertices, is_visible_verts_idx=None, selected_frames=None, uv_map=None, l2_loss=False): + + + if is_visible_verts_idx is not None: + not_occluded = is_visible_verts_idx[:, self.valid_vertex_index].float() + else: + not_occluded = torch.ones_like(self.valid_vertex_index).float().unsqueeze(0) + + + if selected_frames is not None: + gt_2_verts = self.verts_2d[selected_frames, :, :] + else: + gt_2_verts = self.gt_2_verts + + valid_proj_v = proj_vertices[:, self.valid_vertex_index, ..., :2] + v_dist_2d = (gt_2_verts - valid_proj_v) + if l2_loss: + uv_loss = ( + ( v_dist_2d/ self.gt.shape[-1]) * (self.dists < self.delta) * + (v_dist_2d.abs().sum(dim=-1) < self.dist_uv).unsqueeze(-1) * + not_occluded.unsqueeze(-1) + ).square().mean() * 100 + else: + uv_loss = ( + (v_dist_2d / self.gt.shape[-1]) * (self.dists < self.delta) * + (v_dist_2d.abs().sum(dim=-1) < self.dist_uv).unsqueeze(-1) * + not_occluded.unsqueeze(-1) + ).abs().mean() + return uv_loss + + + def compute_loss_lstsq(self, proj_vertices): + uv_loss = ((self.gt_2_verts / self.gt.shape[-1] - proj_vertices[:, torch.from_numpy(self.valid_verts).long().cuda(), :] / + self.gt.shape[-1]) * (self.dists < self.delta) * + ( + (self.gt_2_verts - proj_vertices[:, torch.from_numpy(self.valid_verts).long().cuda(), :]).abs().sum( + dim=-1) < 30).unsqueeze(-1) + ) + #print(uv_loss) + return uv_loss diff --git a/src/pixel3dmm/tracking/nvdiffrast_util.py b/src/pixel3dmm/tracking/nvdiffrast_util.py new file mode 100644 index 0000000000000000000000000000000000000000..84de3a048215c518824057d6710f7789da837398 --- /dev/null +++ b/src/pixel3dmm/tracking/nvdiffrast_util.py @@ -0,0 +1,155 @@ +# Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +import numpy as np +import torch + +#---------------------------------------------------------------------------- +# Projection and transformation matrix helpers. +#---------------------------------------------------------------------------- + +def projection(x=0.1, n=1.0, f=50.0): + return np.array([[n/x, 0, 0, 0], + [ 0, n/x, 0, 0], + [ 0, 0, -(f+n)/(f-n), -(2*f*n)/(f-n)], + [ 0, 0, -1, 0]]).astype(np.float32) + + +def intrinsics2projection_np(K, znear, zfar, width, height): + x0 = 0 + y0 = 0 + return np.array([ + [2 * K[0, 0] / width, -2 * K[0, 1] / width, (width - 2 * K[0, 2] + 2 * x0) / width, 0], + [0, -2 * K[1, 1] / height, (height - 2 * K[1, 2] + 2 * y0) / height, 0], + [0, 0, (-zfar - znear) / (zfar - znear), -2 * zfar * znear / (zfar - znear)], + [0, 0, -1, 0]]) + +def intrinsics2projection(K, znear, zfar, width, height): + x0 = 0 + y0 = 0 + if len(K.shape) == 2: + proj = torch.zeros([4, 4], device = K.device) + proj[0, 0] = 2 * K[0, 0] / width + proj[0, 1] = -2 * K[0, 1] / width + proj[0, 2] = (width - 2 * K[0, 2] + 2 * x0) / width + proj[1, 1] = -2 * K[1, 1] / height + proj[1, 2] = (height - 2 * K[1, 2] + 2 * y0) / height + proj[2, 2] = (-zfar - znear) / (zfar - znear) + proj[2, 3] = -2 * zfar * znear / (zfar - znear) + proj[3, 2] = -1 + else: + proj = torch.zeros([K.shape[0], 4, 4], device=K.device) + proj[:, 0, 0] = 2 * K[:, 0, 0] / width + proj[:, 0, 1] = -2 * K[:, 0, 1] / width + proj[:, 0, 2] = (width - 2 * K[:, 0, 2] + 2 * x0) / width + proj[:, 1, 1] = -2 * K[:, 1, 1] / height + proj[:, 1, 2] = (height - 2 * K[:, 1, 2] + 2 * y0) / height + proj[:, 2, 2] = (-zfar - znear) / (zfar - znear) + proj[:, 2, 3] = -2 * zfar * znear / (zfar - znear) + proj[:, 3, 2] = -1 + return proj + +def translate(x, y, z): + return np.array([[1, 0, 0, x], + [0, 1, 0, y], + [0, 0, 1, z], + [0, 0, 0, 1]]).astype(np.float32) + +def rotate_x(a): + s, c = np.sin(a), np.cos(a) + return np.array([[1, 0, 0, 0], + [0, c, s, 0], + [0, -s, c, 0], + [0, 0, 0, 1]]).astype(np.float32) + +def rotate_y(a): + s, c = np.sin(a), np.cos(a) + return np.array([[ c, 0, s, 0], + [ 0, 1, 0, 0], + [-s, 0, c, 0], + [ 0, 0, 0, 1]]).astype(np.float32) + +def random_rotation_translation(t): + m = np.random.normal(size=[3, 3]) + m[1] = np.cross(m[0], m[2]) + m[2] = np.cross(m[0], m[1]) + m = m / np.linalg.norm(m, axis=1, keepdims=True) + m = np.pad(m, [[0, 1], [0, 1]], mode='constant') + m[3, 3] = 1.0 + m[:3, 3] = np.random.uniform(-t, t, size=[3]) + return m + +#---------------------------------------------------------------------------- +# Bilinear downsample by 2x. +#---------------------------------------------------------------------------- + +def bilinear_downsample(x): + w = torch.tensor([[1, 3, 3, 1], [3, 9, 9, 3], [3, 9, 9, 3], [1, 3, 3, 1]], dtype=torch.float32, device=x.device) / 64.0 + w = w.expand(x.shape[-1], 1, 4, 4) + x = torch.nn.functional.conv2d(x.permute(0, 3, 1, 2), w, padding=1, stride=2, groups=x.shape[-1]) + return x.permute(0, 2, 3, 1) + +#---------------------------------------------------------------------------- +# Image display function using OpenGL. +#---------------------------------------------------------------------------- + +_glfw_window = None +def display_image(image, zoom=None, size=None, title=None): # HWC + # Import OpenGL and glfw. + import OpenGL.GL as gl + import glfw + + # Zoom image if requested. + image = np.asarray(image) + if size is not None: + assert zoom is None + zoom = max(1, size // image.shape[0]) + if zoom is not None: + image = image.repeat(zoom, axis=0).repeat(zoom, axis=1) + height, width, channels = image.shape + + # Initialize window. + if title is None: + title = 'Debug window' + global _glfw_window + if _glfw_window is None: + glfw.init() + _glfw_window = glfw.create_window(width, height, title, None, None) + glfw.make_context_current(_glfw_window) + glfw.show_window(_glfw_window) + glfw.swap_interval(0) + else: + glfw.make_context_current(_glfw_window) + glfw.set_window_title(_glfw_window, title) + glfw.set_window_size(_glfw_window, width, height) + + # Update window. + glfw.poll_events() + gl.glClearColor(0, 0, 0, 1) + gl.glClear(gl.GL_COLOR_BUFFER_BIT) + gl.glWindowPos2f(0, 0) + gl.glPixelStorei(gl.GL_UNPACK_ALIGNMENT, 1) + gl_format = {3: gl.GL_RGB, 2: gl.GL_RG, 1: gl.GL_LUMINANCE}[channels] + gl_dtype = {'uint8': gl.GL_UNSIGNED_BYTE, 'float32': gl.GL_FLOAT}[image.dtype.name] + gl.glDrawPixels(width, height, gl_format, gl_dtype, image[::-1]) + glfw.swap_buffers(_glfw_window) + if glfw.window_should_close(_glfw_window): + return False + return True + +#---------------------------------------------------------------------------- +# Image save helper. +#---------------------------------------------------------------------------- + +def save_image(fn, x): + import imageio + x = np.rint(x * 255.0) + x = np.clip(x, 0, 255).astype(np.uint8) + imageio.imsave(fn, x) + +#---------------------------------------------------------------------------- \ No newline at end of file diff --git a/src/pixel3dmm/tracking/renderer_nvdiffrast.py b/src/pixel3dmm/tracking/renderer_nvdiffrast.py new file mode 100644 index 0000000000000000000000000000000000000000..49e2b364abdbdf17208919266d7b28941ce8fd7b --- /dev/null +++ b/src/pixel3dmm/tracking/renderer_nvdiffrast.py @@ -0,0 +1,256 @@ +# -*- coding: utf-8 -*- +import os.path + +# Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. (MPG) is +# holder of all proprietary rights on this computer program. +# You can only use this computer program if you have closed +# a license agreement with MPG or you get the right to use the computer +# program from someone who is authorized to grant you that right. +# Any use of the computer program without a valid license is prohibited and +# liable to prosecution. +# +# Copyright©2023 Max-Planck-Gesellschaft zur Förderung +# der Wissenschaften e.V. (MPG). acting on behalf of its Max Planck Institute +# for Intelligent Systems. All rights reserved. +# +# Contact: mica@tue.mpg.de +from PIL import Image +import numpy as np +import torch +import torch.nn as nn +import torch.nn.functional as F +from pytorch3d.io import load_obj +from pytorch3d.structures import Meshes +from skimage.io import imread + +import nvdiffrast.torch as dr +#import nvdiffrast_util as util +import pyvista as pv + +from torchvision.transforms.functional import gaussian_blur + +glctx = dr.RasterizeCudaContext() +#glctx = dr.RasterizeGLContext() + + +from pixel3dmm.tracking import util +from pixel3dmm.utils import obj_util +from pixel3dmm.utils import utils_3d +from pixel3dmm.utils.masking import Masking + +from pixel3dmm import env_paths + +sky = torch.from_numpy(np.array([80, 140, 200]) / 255.).cuda() + + +def apply_gamma(rgb, gamma="srgb"): + if gamma == "srgb": + T = 0.0031308 + rgb1 = torch.max(rgb, rgb.new_tensor(T)) + return torch.where(rgb < T, 12.92 * rgb, (1.055 * torch.pow(torch.abs(rgb1), 1 / 2.4) - 0.055)) + elif gamma is None: + return rgb + else: + return torch.pow(torch.max(rgb, rgb.new_tensor(0.0)), 1.0 / gamma) + + +def remove_gamma(rgb, gamma="srgb"): + if gamma == "srgb": + T = 0.04045 + rgb1 = torch.max(rgb, rgb.new_tensor(T)) + return torch.where(rgb < T, rgb / 12.92, torch.pow(torch.abs(rgb1 + 0.055) / 1.055, 2.4)) + elif gamma is None: + return rgb + else: + res = torch.pow(torch.max(rgb, rgb.new_tensor(0.0)), gamma) + torch.min(rgb, rgb.new_tensor(0.0)) + return res + + +def transform_pos(mtx, pos): + #t_mtx = torch.from_numpy(mtx).cuda() if isinstance(mtx, np.ndarray) else mtx + posw = torch.cat([pos, torch.ones([pos.shape[0], pos.shape[1], 1]).cuda()], axis=2) + return torch.matmul(posw, mtx.permute(0, 2, 1)) #[None, ...] + +class NVDRenderer(nn.Module): + def __init__(self, image_size, obj_filename, uv_size=512, flip=False, + no_sh : bool = False, + white_bg : bool = False, + ): + super(NVDRenderer, self).__init__() + #TODO path management + verts, uv_coords, colors, faces, uv_faces = obj_util.load_obj(f'{env_paths.head_template}') + + self.pos_idx = torch.from_numpy(np.array(faces)).cuda().int() + self.uv_idx = torch.from_numpy(np.array(uv_faces)).cuda().int() + + self.uv = torch.from_numpy(np.array(uv_coords)).float().cuda() + self.uv[:, 1] = (self.uv[:, 1] * -1) + 1 + self.uv[:, 0] = (self.uv[:, 0] * -1) + 1 + + self.max_mipmap_level = 6 + self.white_bg = white_bg + + + + + + self.image_size = image_size + self.uv_size = uv_size + + verts, faces, aux = load_obj(obj_filename) + uvcoords = aux.verts_uvs[None, ...] # (N, V, 2) + uvfaces = faces.textures_idx[None, ...] # (N, F, 3) + faces = faces.verts_idx[None, ...] + + self.fg_color = torch.ones([verts.shape[0], 1]).float().cuda() + + mask = torch.from_numpy(imread(f'{env_paths.EYE_MASK}') / 255.).permute(2, 0, 1).cuda()[0:3, :, :] + mask = mask > 0. + mask = F.interpolate(mask[None].float(), [2048, 2048], mode='bilinear') + + self.register_buffer('mask', mask) + + self.masking = Masking() + self.render_mask = self.masking.get_mask_rendering().cuda() + self.face_mask = self.masking.to_render_mask(self.masking.get_mask_face()).cuda() + self.eye_mask = self.masking.get_mask_eyes_rendering().cuda() + + + # faces + self.register_buffer('faces', faces) + self.register_buffer('raw_uvcoords', uvcoords) + + # uv coordsw + uvcoords = torch.cat([uvcoords, uvcoords[:, :, 0:1] * 0. + 1.], -1) # [bz, ntv, 3] + uvcoords = uvcoords * 2 - 1 + uvcoords[..., 1] = -uvcoords[..., 1] + #uvcoords[..., 0] = -uvcoords[..., 0] + face_uvcoords = util.face_vertices(uvcoords, uvfaces) + self.register_buffer('uvcoords', uvcoords) + self.register_buffer('uvfaces', uvfaces) + self.register_buffer('face_uvcoords', face_uvcoords) + + # shape colors + colors = torch.tensor([74, 120, 168])[None, None, :].repeat(1, faces.max() + 1, 1).float() / 255. + face_colors = util.face_vertices(colors, faces) + self.register_buffer('face_colors', face_colors) + + ## lighting + pi = np.pi + sh_const = torch.tensor( + [ + 1 / np.sqrt(4 * pi), + ((2 * pi) / 3) * (np.sqrt(3 / (4 * pi))), + ((2 * pi) / 3) * (np.sqrt(3 / (4 * pi))), + ((2 * pi) / 3) * (np.sqrt(3 / (4 * pi))), + (pi / 4) * (3) * (np.sqrt(5 / (12 * pi))), + (pi / 4) * (3) * (np.sqrt(5 / (12 * pi))), + (pi / 4) * (3) * (np.sqrt(5 / (12 * pi))), + (pi / 4) * (3 / 2) * (np.sqrt(5 / (12 * pi))), + (pi / 4) * (1 / 2) * (np.sqrt(5 / (4 * pi))), + ], + dtype=torch.float32, + ) + self.register_buffer('constant_factor', sh_const) + + self.no_sh = no_sh + self.rast_out = None + self.rast_out_db = None + + + def add_SHlight(self, normal_images, sh_coeff): + ''' + sh_coeff: [bz, 9, 3] + ''' + N = normal_images + sh = torch.stack([ + N[:, 0] * 0. + 1., N[:, 0], N[:, 1], + N[:, 2], N[:, 0] * N[:, 1], N[:, 0] * N[:, 2], + N[:, 1] * N[:, 2], N[:, 0] ** 2 - N[:, 1] ** 2, 3 * (N[:, 2] ** 2) - 1 + ], 1) # [bz, 9, h, w] + sh = sh * self.constant_factor[None, :, None, None] + shading = torch.sum(sh_coeff[:, :, :, None, None] * sh[:, :, None, :, :], 1) # [bz, 9, 3, h, w] + return shading + + def reset(self): + self.rast_out = None + self.rast_out_db = None + + def forward(self, vertices_world, albedos, lights, r_mvps, R, T, + aux_texture = None, + texture_observation_mask = None, + verts_can=None, + verts_noneck=None, + verts_can_can=None, + verts_depth=None, + is_viz=False, + ): + B = vertices_world.shape[0] + faces = self.faces.expand(B, -1, -1) + + meshes_world_noneck = Meshes(verts=verts_noneck.float(), faces=faces.long()) + normals = meshes_world_noneck.verts_normals_packed().reshape(B, 5023, 3) + + + face_mask = self.face_mask.repeat(B, 1, 1) + render_mask = self.render_mask.repeat(B, 1, 1) # mask used to define where loss is computed --> should only optimize for texture offsets inside this mask!!! + eyes_mask = self.eye_mask.repeat(B, 1, 1) + + pos_clips = transform_pos(r_mvps, vertices_world).float() + + if self.rast_out is None: + rast_out, rast_out_db = dr.rasterize(glctx, pos_clips, self.pos_idx, + resolution=[self.image_size, self.image_size]) + else: + rast_out = self.rast_out + rast_out_db = self.rast_out_db + + + texc, texd = dr.interpolate(self.uv, rast_out, self.uv_idx, rast_db=rast_out_db, diff_attrs='all') + rendered_normals = dr.interpolate(normals, rast_out, self.pos_idx)[0].permute(0, 3, 1, 2) + + rendered_face_mask = dr.interpolate(face_mask, rast_out, self.pos_idx)[0].permute(0, 3, 1, 2) + rendered_mask = dr.interpolate(render_mask, rast_out, self.pos_idx)[0].permute(0, 3, 1, 2) + if verts_depth is not None: + actual_rendered_depth = dr.interpolate(verts_depth.repeat(1, 1, 3), rast_out, self.pos_idx)[0].permute(0, 3, 1, 2)[:, :1, :, :] + rendered_eyes_mask = dr.interpolate(eyes_mask, rast_out, self.pos_idx)[0].permute(0, 3, 1, 2) + + + + + mask = self.mask.repeat(B, 1, 1, 1) + mask_images = dr.texture(mask.permute(0, 2, 3, 1).contiguous(), texc, filter_mode='linear') #.permute(0, 3, 1, 2) + mask_images = dr.antialias(mask_images, rast_out, pos_clips, self.pos_idx).permute(0, 3, 1, 2) + + alpha_images = torch.ones_like(mask_images) + + uv_images = torch.cat([1-texc[..., :1], texc[..., 1:]], dim=-1) + outputs = { + + 'alpha_images': alpha_images, + 'mask_images_mesh': (rendered_face_mask > 0).float(), + + 'normal_images': rendered_normals, + 'mask_images': (mask_images > 0).float(), + 'mask_images_rendering': (rendered_mask > 0).float(), + 'mask_images_eyes': (rendered_eyes_mask > 0).float(), + 'uv_images': uv_images, + 'fg_images': mask_images, + } + + + if verts_depth is not None: + outputs['actual_rendered_depth'] = actual_rendered_depth + + if is_viz: + rendered_normals_detached = rendered_normals.detach() + position_images_world_space = dr.interpolate(vertices_world, rast_out, self.pos_idx)[0].permute(0, 3, 1, 2) + cam_positions = -torch.einsum('bxy,by->bx', R, T) + viewing_angle = (position_images_world_space - cam_positions.unsqueeze(-1).unsqueeze(-1)) + viewing_angle_image = ( + -viewing_angle / viewing_angle.norm(dim=1).unsqueeze(1) * rendered_normals_detached).sum(dim=1) + outputs['alpha_images'] = viewing_angle_image[:, None, :, :].repeat(1, 3, 1, 1) + + + + return outputs diff --git a/src/pixel3dmm/tracking/tracker.py b/src/pixel3dmm/tracking/tracker.py new file mode 100644 index 0000000000000000000000000000000000000000..32c39f2f15ce8150a6e6520c6606e7646903c2db --- /dev/null +++ b/src/pixel3dmm/tracking/tracker.py @@ -0,0 +1,1746 @@ +import shutil + +import mediapy +from PIL import Image, ImageDraw +import os.path +from enum import Enum +from pathlib import Path +import wandb +import time + +import cv2 +import numpy as np +import torch +import torch.backends.cudnn as cudnn +import torch.nn as nn +import trimesh +from pytorch3d.io import load_obj +from pytorch3d.ops import knn_points, knn_gather +from torch.utils.tensorboard import SummaryWriter +from tqdm import tqdm +from torchvision.transforms.functional import gaussian_blur +from time import time + + +import pyvista as pv +import dreifus +from dreifus.matrix import Pose, Intrinsics, CameraCoordinateConvention, PoseType +from dreifus.pyvista import add_camera_frustum, render_from_camera + +from pixel3dmm import env_paths +from pixel3dmm.tracking import util +from pixel3dmm.tracking.losses import UVLoss +from pixel3dmm.tracking import nvdiffrast_util +from pixel3dmm.tracking.renderer_nvdiffrast import NVDRenderer +from pixel3dmm import env_paths +from pixel3dmm.tracking.flame.FLAME import FLAME +from pixel3dmm.utils.misc import tensor2im +from pixel3dmm.utils.utils_3d import rotation_6d_to_matrix, matrix_to_rotation_6d, euler_angles_to_matrix +from pixel3dmm.utils.drawing import plot_points + + +def timeit(t0, tag): + t1 = time() + #print(f'[PROFILER]: {tag} took {t1-t0} seconds') + return t1 + + +os.environ["OPENCV_IO_ENABLE_OPENEXR"] = "1" +rank = 42 +torch.manual_seed(rank) +torch.cuda.manual_seed(rank) +cudnn.benchmark = True +np.random.seed(rank) +I = torch.eye(3)[None].cuda().detach() +I6D = matrix_to_rotation_6d(I) + +left_iris_flame = [4597, 4542, 4510, 4603, 4570] +right_iris_flame = [4051, 3996, 3964, 3932, 4028] +left_iris_mp = [468, 469, 470, 471, 472] +right_iris_mp = [473, 474, 475, 476, 477] + + +torch.set_float32_matmul_precision('high') + +class View(Enum): + GROUND_TRUTH = 1 + COLOR_OVERLAY = 2 + SHAPE_OVERLAY = 4 + SHAPE = 8 + LANDMARKS = 16 + HEATMAP = 32 + DEPTH = 64 + + +def get_intrinsics(focal_length, principal_point, use_hack : bool = True, size : int = 512): + intrinsics = torch.eye(3)[None, ...].float().cuda().repeat(focal_length.shape[0], 1,1 ) + intrinsics[:, 0, 0] = focal_length.squeeze() * size + intrinsics[:, 1, 1] = focal_length.squeeze() * size + intrinsics[:, :2, 2] = size/2+0.5 + principal_point * (size/2+0.5) + + if use_hack: + intrinsics[:, 0:1, 2:3] = size - intrinsics[:, 0:1, 2:3] # TODO fix this hack + + return intrinsics + + + +def get_extrinsics(R_base, t_base): + timestep = 0 + w2c_openGL = torch.eye(4)[None, ...].float().cuda() + w2c_openGL[:, :3, :3] = R_base[timestep] + w2c_openGL[:, :3, 3] = t_base[timestep] + return w2c_openGL + + +def project_points_screen_space(points3d, focal_length, principal_point, R_base, t_base, size : int = 512): + # construct camera matrices + intrinsics = get_intrinsics(focal_length, principal_point, size=size) + w2c_openGL = get_extrinsics(R_base, t_base).repeat(focal_length.shape[0], 1, 1) + + B = points3d.shape[0] + reps_extr = B if w2c_openGL.shape[0] == 1 else 1 + reps_intr = B if intrinsics.shape[0] == 1 else 1 + # apply w2c transformation + lmk68_cam_space = torch.bmm( + torch.cat([points3d, torch.ones_like(points3d[..., :1])], dim=-1), + w2c_openGL.permute(0, 2, 1).repeat(reps_extr, 1, 1)) + + # project from cam_space to screen_space + lmk68_cam_space_prime = lmk68_cam_space[..., :3] / -lmk68_cam_space[..., [2]] + lmk68_screen_space = (-1) * torch.bmm(lmk68_cam_space_prime, intrinsics.permute(0, 2, 1).repeat(reps_intr, 1, 1))[..., :2] + lmk68_screen_space = torch.stack([size - 1 - lmk68_screen_space[..., 0], lmk68_screen_space[..., 1], lmk68_cam_space[..., 2]], dim=-1) + return lmk68_screen_space + + +WFLW_2_iBUG68 = np.array( + [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 33, 34, 35, 36, 37, 42, 43, 44, 45, 46, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 67, 68, 69, 71, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95]) + +WFLW_2_iBUG68 = torch.from_numpy(WFLW_2_iBUG68).cuda() + +COMPILE = True + + +if COMPILE: + project_points_screen_space = torch.compile(project_points_screen_space) + + +class Tracker(object): + def __init__(self, config, + device='cuda:0', + ): + self.config = config + self.device = device + self.actor_name = self.config.video_name + DATA_FOLDER = f'{env_paths.PREPROCESSED_DATA}/{self.actor_name}' + self.MAX_STEPS = min(len([f for f in os.listdir(f'{DATA_FOLDER}/cropped/') if f.endswith('.jpg') or f.endswith('.png')]) - self.config.start_frame, 1000) + self.FRAME_SKIP = 1 + self.BATCH_SIZE = self.config.batch_size + + print(f''' + <<<<<<<< INITIALIZING TRACKER INSTANCE FOR {self.actor_name} >>>>>>>> + ''') + + + + self.mirror_order = torch.from_numpy(np.load(f'{env_paths.MIRROR_INDEX}')).long().cuda() + + self.uv_loss_fn = UVLoss(stricter_mask=self.config.uv_loss.stricter_uv_mask, + delta_uv= self.config.uv_loss.delta_uv, + dist_uv=self.config.uv_loss.dist_uv) + + if COMPILE: + self.uv_loss_fn.compute_loss = torch.compile(self.uv_loss_fn.compute_loss) + + + + self.actor_name = self.actor_name + f'_nV{config.num_views}' + + + if config.no_lm: + self.actor_name = self.actor_name + '_noLM' + if config.no_pho: + self.actor_name = self.actor_name + '_noPho' + + + if self.config.ignore_mica: + self.actor_name = self.actor_name + '_noMICA' + + if self.config.flame2023: + self.actor_name = self.actor_name + '_FLAME23' + + + + if self.config.uv_map_super > 0: + self.actor_name = self.actor_name + f'_uv{self.config.uv_map_super}' + if self.config.normal_super > 0: + self.actor_name = self.actor_name + f'_n{self.config.normal_super}' + if self.config.normal_super_can > 0: + self.actor_name = self.actor_name + f'_nc{self.config.normal_super_can}' + + + self.global_step = 0 + + self.no_sh = config.no_sh + self.no_lm = config.no_lm + self.no_pho = config.no_pho + + # Latter will be set up + self.frame = 0 + self.is_initializing = False + self.image_size = torch.tensor([[config.image_size[0], config.image_size[1]]]).cuda() + if hasattr(self.config, 'output_folder'): + self.save_folder = self.config.output_folder + else: + self.save_folder = env_paths.TRACKING_OUTPUT + self.output_folder = os.path.join(self.save_folder, self.actor_name) + self.checkpoint_folder = os.path.join(self.save_folder, self.actor_name, "checkpoint") + self.mesh_folder = os.path.join(self.save_folder, self.actor_name, "mesh") + self.create_output_folders() + self.writer = SummaryWriter(log_dir=self.save_folder + self.actor_name + '/logs') + + self.cam_pose_nvd = {} + self.R_base = {} + self.t_base = {} + + flame_mesh_mask = np.load(f'{env_paths.FLAME_ASSETS}/FLAME2020/FLAME_masks/FLAME_masks.pkl', allow_pickle=True, encoding='latin1') + self.vertex_face_mask = torch.from_numpy(flame_mesh_mask['face']).cuda().long() + + + self.setup_renderer() + + + self.intermediate_exprs = [] + self.intermediate_Rs = [] + self.intermediate_ts = [] + self.intermediate_eyes = [] + self.intermediate_eyelids = [] + self.intermediate_jaws = [] + self.intermediate_necks = [] + self.intermediate_fls = [] + self.intermediate_pps = [] + + self.cached_data = {} + + + + + def get_image_size(self): + return self.image_size[0][0].item(), self.image_size[0][1].item() + + + def create_output_folders(self): + Path(self.save_folder).mkdir(parents=True, exist_ok=True) + Path(self.checkpoint_folder).mkdir(parents=True, exist_ok=True) + Path(self.mesh_folder).mkdir(parents=True, exist_ok=True) + + + def setup_renderer(self): + mesh_file = f'{env_paths.head_template}' + self.config.image_size = self.get_image_size() + self.flame = FLAME(self.config).to(self.device) + self.flame.vertex_face_mask = self.vertex_face_mask + + + if COMPILE: + self.flame = torch.compile(self.flame) + self.opt_pre = torch.compile(self.opt_pre) + self.opt_post = torch.compile(self.opt_post) + self.actual_smooth = torch.compile(self.actual_smooth) + + + self.diff_renderer = NVDRenderer(self.config.size, + obj_filename=mesh_file, + no_sh=self.no_sh, + white_bg= True, + ).to(self.device) + + + self.faces = load_obj(mesh_file)[1] + + + def save_checkpoint(self, frame_id, selected_frames = None): + + if selected_frames is None: + exp = self.exp + eyes = self.eyes + eyelids = self.eyelids + R = self.R + t = self.t + jaw = self.jaw + neck = self.neck + focal_length = self.focal_length + principal_point = self.principal_point + else: + exp = self.exp(selected_frames) + eyes = self.eyes(selected_frames) + eyelids = self.eyelids(selected_frames) + R = self.R(selected_frames) + t = self.t(selected_frames) + jaw = self.jaw(selected_frames) + neck = self.neck(selected_frames) + if self.config.global_camera: + focal_length = self.focal_length + principal_point = self.principal_point + else: + focal_length = self.focal_length(selected_frames) + principal_point = self.principal_point(selected_frames) + + frame = { + 'flame': { + 'exp': exp.clone().detach().cpu().numpy(), + 'shape': self.shape.clone().detach().cpu().numpy(), + 'eyes': eyes.clone().detach().cpu().numpy(), + 'eyelids': eyelids.clone().detach().cpu().numpy(), + 'jaw': jaw.clone().detach().cpu().numpy(), + 'neck': neck.clone().detach().cpu().numpy(), + 'R': R.clone().detach().cpu().numpy(), + 'R_rotation_matrix': rotation_6d_to_matrix(R).detach().cpu().numpy(), + 't': t.clone().detach().cpu().numpy(), + }, + 'img_size': self.image_size.clone().detach().cpu().numpy()[0], + 'frame_id': frame_id, + 'global_step': self.global_step + } + + cam_params = { + f'R_base_{serial}': self.R_base[serial].clone().detach().cpu().numpy() for serial in self.R_base.keys() + } + cam_pos = { + f't_base_{serial}': self.t_base[serial].clone().detach().cpu().numpy() for serial in self.R_base.keys() + } + intr = { + 'fl': focal_length.clone().detach().cpu().numpy(), + 'pp': principal_point.clone().detach().cpu().numpy(), + } + cam_params.update(cam_pos) + cam_params.update(intr) + frame.update( + { + f'camera': cam_params + } + ) + bs = exp.shape[0] + vertices, lmks, joint_transforms, vertices_can, vertices_noneck = self.flame(cameras=torch.inverse(self.R_base[0])[:1, ...].repeat(bs, 1, 1), + shape_params=self.shape[:1, ...].repeat(bs, 1), + expression_params=exp, + eye_pose_params=eyes, + jaw_pose_params=jaw, + neck_pose_params=neck, + rot_params_lmk_shift=R, + eyelid_params=eyelids, + ) + frame.update( + { + f'joint_transforms': joint_transforms.detach().cpu().numpy(), + } + ) + + f = self.diff_renderer.faces[0].cpu().numpy() + for b_i in range(bs): + + v = vertices[b_i].cpu().numpy() + + if self.config.save_meshes: + trimesh.Trimesh(faces=f, vertices=v, process=False).export(f'{self.mesh_folder}/{frame_id:05d}.ply') + torch.save(frame, f'{self.checkpoint_folder}/{frame_id:05d}.frame') + + selction_indx = np.array([36, 39, 42, 45, 33, 48, 54]) + _lmks = lmks[b_i].detach().squeeze().cpu().numpy() + + if self.config.save_landmarks: + np.save(f'{self.mesh_folder}/landmarks_{frame_id}_{b_i}.npy', _lmks[selction_indx]) + + + + if frame_id == self.config.start_frame and self.config.save_meshes: + faces = self.diff_renderer.faces[0].cpu().numpy() + trimesh.Trimesh(faces=faces, vertices=vertices_can[0].detach().cpu().numpy(), process=False).export(f'{self.mesh_folder}/canonical.ply') + if self.config.save_landmarks: + lmks = lmks.detach().squeeze().cpu().numpy() + np.save(f'{self.mesh_folder}/ibug68_{frame_id}.ply', lmks) + selction_indx = np.array([36, 39, 42, 45, 33, 48, 54]) + np.save(f'{self.mesh_folder}/now_{frame_id}.ply', lmks[selction_indx]) + + + + + def get_heatmap(self, values): + l2 = tensor2im(values) + l2 = cv2.cvtColor(l2, cv2.COLOR_RGB2BGR) + #l2[l2 > 125] = 125 + #l2 = cv2.normalize(l2, None, 0, 255, cv2.NORM_MINMAX) + #l2[l2 > 35] = 35 + #l2 = cv2.normalize(l2, None, 0, 255, cv2.NORM_MINMAX) + l2 = l2 - 127 + max_err = 25 + l2[l2>max_err] = max_err + l2 = ((l2 / max_err)*255).astype(np.uint8) + heatmap = cv2.applyColorMap(l2, cv2.COLORMAP_JET) #/ 255. + heatmap = cv2.cvtColor(heatmap, cv2.COLOR_BGR2RGB) / 255. + #heatmap = heatmap ** (1/3) + #Image.fromarray((heatmap*255).astype(np.uint8)).show() + #exit() + #heatmap = cv2.cvtColor(cv2.addWeighted(heatmap, 0.75, l2, 0.25, 0).astype(np.uint8), cv2.COLOR_BGR2RGB) / 255. + heatmap = torch.from_numpy(heatmap).permute(2, 0, 1) + + return heatmap + + + def to_cuda(self, batch, unsqueeze=False): + for key in batch.keys(): + if torch.is_tensor(batch[key]): + batch[key] = batch[key].to(self.device) + if unsqueeze: + batch[key] = batch[key][None] + + return batch + + + def create_parameters(self, timestep, mica_shape): + bz = 1 + pose_mat = np.eye(4) + pose_mat[2, 3] = -1 + + opencv_w2c_pose = Pose(pose_mat, camera_coordinate_convention=dreifus.matrix.CameraCoordinateConvention.OPEN_CV) + opencv_w2c_pose = opencv_w2c_pose.change_pose_type(dreifus.matrix.PoseType.CAM_2_WORLD) + + opencv_w2c_pose.look_at(np.zeros(3), np.array([0, 1, 0])) + + opencv_w2c_pose = opencv_w2c_pose.change_pose_type(dreifus.matrix.PoseType.WORLD_2_CAM) + self.debug_pose_init = opencv_w2c_pose.change_pose_type(dreifus.matrix.PoseType.WORLD_2_CAM).copy() + + + self.shape = mica_shape.detach().clone() + self.mica_shape = mica_shape.detach().clone() + if self.config.ignore_mica: + self.shape = torch.zeros_like(self.shape) + self.mica_shape = torch.zeros_like(self.mica_shape) + + + cam_pose = opencv_w2c_pose + cam_pose = cam_pose.change_pose_type(dreifus.matrix.PoseType.CAM_2_WORLD) + cam_pose_nvd = cam_pose.copy() + cam_pose_nvd = cam_pose_nvd.change_camera_coordinate_convention(new_camera_coordinate_convention=dreifus.matrix.CameraCoordinateConvention.OPEN_GL) + cam_pose_nvd = cam_pose_nvd.change_pose_type(dreifus.matrix.PoseType.WORLD_2_CAM) + self.cam_pose_nvd[timestep] = torch.from_numpy(cam_pose_nvd.copy()).float().cuda() + + R = torch.from_numpy(cam_pose_nvd.get_rotation_matrix()).unsqueeze(0).cuda() + T = torch.from_numpy(cam_pose_nvd.get_translation()).unsqueeze(0).cuda() + R.requires_grad = True + T.requires_grad = True + + self.R_base[timestep] = R + self.t_base[timestep] = T + + + init_f = 2000 * self.config.size/512 + self.focal_length = torch.tensor([[init_f/self.config.size]]).float().to(self.device) + self.principal_point = torch.tensor([[0, 0]]).float().to(self.device) + self.focal_length.requires_grad = True + self.principal_point.requires_grad = True + intrinsics = torch.tensor([[init_f, 0, self.config.size//2], + [0, init_f, self.config.size//2], + [0, 0, 1]]).float().cuda() + proj_512 = nvdiffrast_util.intrinsics2projection(intrinsics, + znear=0.1, zfar=10, + width=self.config.size, + height=self.config.size) + + self.r_mvps = {} + for serial in self.cam_pose_nvd.keys(): + self.r_mvps[serial] = ( proj_512 @ self.cam_pose_nvd[serial] )[None, ...] + + + + + n_timesteps = 1 + expression_params = np.zeros([n_timesteps, 100]) + jaw_params = np.zeros([n_timesteps, 3]) + neck_params = np.zeros([n_timesteps, 3]) + flame_R = torch.from_numpy(np.stack([np.eye(3) for _ in range(n_timesteps)], axis=0)) + flame_t = torch.from_numpy(np.stack([np.zeros([3]) for _ in range(n_timesteps)], axis=0)) + self.R = nn.Parameter(matrix_to_rotation_6d(flame_R.float().to(self.device))) + self.t = nn.Parameter(flame_t.float().to(self.device)) + + self.expression_params = expression_params + self.jaw_params = jaw_params.astype(np.float32) + self.neck_params = neck_params.astype(np.float32) + + self.shape = nn.Parameter(self.mica_shape.detach().clone()) + + self.texture_observation_mask = None + + self.exp = nn.Parameter(torch.from_numpy(self.expression_params[[0] + self.config.keyframes,..., :]).float().to(self.device)) + self.jaw = nn.Parameter(matrix_to_rotation_6d(euler_angles_to_matrix(torch.from_numpy(self.jaw_params[[0]+ self.config.keyframes,..., :]).cuda(), 'XYZ'))) + self.neck = nn.Parameter(matrix_to_rotation_6d(euler_angles_to_matrix(torch.from_numpy(self.neck_params[[0]+ self.config.keyframes,..., :]).cuda(), 'XYZ'))) + + + + + self.eyes = nn.Parameter(torch.cat([matrix_to_rotation_6d(I), matrix_to_rotation_6d(I)], dim=1).repeat(1+len(self.config.keyframes), 1) ) + self.eyelids = nn.Parameter(torch.zeros(1+len(self.config.keyframes), 2).float().to(self.device)) + + + + def parse_mask(self, ops, batch, visualization=False): + result = ops['mask_images_rendering'] + + if visualization: + result = ops['mask_images'] + + return result.detach() + + + + def clone_params_keyframes_all(self, freeze_id : bool = False, is_joint : bool = False, freeze_cam : bool = False, + include_neck : bool = False): + + lr_scale = 1.0 + lr_scale_id_related = 1.0 + if freeze_id: + lr_scale_id_related = 0.1 + + + params = [ + {'params': [self.exp], 'lr': self.config.lr_exp * lr_scale, 'name': ['exp']}, # 0.025 + {'params': [self.eyes], 'lr': 0.005 * lr_scale, 'name': ['eyes']}, + # {'params': [self.eyelids.clone())], 'lr': 0.001, 'name': ['eyelids']}, + {'params': [self.eyelids], 'lr': 0.002 * lr_scale, 'name': ['eyelids']}, + # {'params': [self.sh.clone())], 'lr': 0.01, 'name': ['sh']}, + {'params': [self.t], 'lr': self.config.lr_t * lr_scale, 'name': ['t']}, + #{'params': [self.t.clone())], 'lr': 0.005 * lr_scale, 'name': ['t']}, + {'params': [self.R], 'lr': self.config.lr_R * lr_scale, 'name': ['R']}, + #{'params': [self.R.clone())], 'lr': 0.003 * lr_scale, 'name': ['R']}, + # {'params': [self.tex.clone())], 'lr': 0.001, 'name': ['tex']}, + # {'params': [self.principal_point.clone())], 'lr': 0.001, 'name': ['principal_point']}, + # {'params': [self.focal_length.clone())], 'lr': 0.001, 'name': ['focal_length']} + ] + #params.append({'params': [self.shape.clone())], 'lr': self.config.lr_id * lr_scale, 'name': ['shape']}) + if not freeze_id: + if is_joint: + params.append({'params': [self.shape], 'lr': self.config.lr_id * lr_scale * 1, 'name': ['shape']}) + else: + params.append({'params': [self.shape], 'lr': self.config.lr_id * lr_scale, 'name': ['shape']}) + #params.append({'params': [self.shape], 'lr': 0.0, 'name': ['shape']}) + params.append({'params': [self.jaw], 'lr': self.config.lr_jaw * lr_scale, 'name': ['jaw']}) + if include_neck: + params.append({'params': [self.neck], 'lr': self.config.lr_neck, 'name': ['neck']}) + + # params.append({'params': [self.t], 'lr': 0.001, 'name': ['translation']}) + # params.append({'params': [self.R], 'lr': 0.005, 'name': ['rotation']}) + # params.append({'params': [self.focal_length, self.principal_point], 'lr': 0.01*lr_scale, 'name': ['camera_params']}) + #if not self.config.load_intr: + if not freeze_cam: + params.append({'params': [self.focal_length], 'lr': self.config.lr_f * lr_scale_id_related, 'name': ['camera_params']}) + params.append({'params': [self.principal_point], 'lr': self.config.lr_pp * lr_scale_id_related, 'name': ['camera_params']}) + + return params + + + def clone_params_keyframes_all_joint(self, freeze_id : bool = False, is_joint : bool = False, + include_neck : bool = False): + + lr_scale = 1.0 + lr_scale_id_related = 1.0 + if freeze_id: + lr_scale_id_related = 0.1 + params = [ + {'params': self.exp.parameters(), 'lr': self.config.lr_exp * lr_scale, 'name': ['exp']}, # 0.025 + {'params': self.eyes.parameters(), 'lr': 0.005 * lr_scale, 'name': ['eyes']}, + {'params': self.eyelids.parameters(), 'lr': 0.002 * lr_scale, 'name': ['eyelids']}, + {'params': self.t.parameters(), 'lr': self.config.lr_t * lr_scale, 'name': ['t']}, + {'params': self.R.parameters(), 'lr': self.config.lr_R * lr_scale, 'name': ['R']}, + ] + + params.append({'params': self.jaw.parameters(), 'lr': self.config.lr_jaw * lr_scale, 'name': ['jaw']}) + if include_neck: + params.append({'params': self.neck.parameters(), 'lr': self.config.lr_neck, 'name': ['jaw']}) + + if not self.config.global_camera: + params.append({'params': self.focal_length.parameters(), 'lr': self.config.lr_f * lr_scale_id_related, + 'name': ['camera_params']}) + params.append({'params': self.principal_point.parameters(), 'lr': self.config.lr_pp * lr_scale_id_related, + 'name': ['camera_params']}) + #params.append({'params': [self.shape], 'lr': self.config.lr_id * lr_scale * 1, 'name': ['shape']}) + return params + + + def reduce_loss(self, losses): + all_loss = 0. + for key in losses.keys(): + all_loss = all_loss + losses[key] + losses['all_loss'] = all_loss + return all_loss + + + def optimize_camera(self, batch, steps=2000, is_first_frame : bool = False + ): + batch = self.to_cuda(batch) + + images, landmarks, lmk_mask = self.parse_landmarks(batch) + h, w = images.shape[2:4] + num_keyframes = 1 + + uv_mask = batch["uv_mask"] + uv_map = batch["uv_map"] if "uv_map" in batch else None + + if uv_map is not None: + uv_map[(1 - uv_mask[:, :, :, :]).bool()] = 0 + + + self.focal_length.requires_grad = True + self.principal_point.requires_grad = True + + lr_mult = 1.0 + + params = [ + {'params': [self.t], 'lr': lr_mult*0.001}, ##0.05}, + {'params': [self.R], 'lr': lr_mult*0.005}, #0.05}, + ] + + if is_first_frame: + params.append({'params': [self.focal_length], 'lr': 0.02}) + params.append({'params': [self.principal_point], 'lr': 0.0001}) + + optimizer = torch.optim.Adam(params) + scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=int(steps*0.75), + gamma=0.1) + + #self.checkpoint(batch, visualizations=[[View.GROUND_TRUTH, View.LANDMARKS, View.SHAPE_OVERLAY]], + # frame_dst='/camera', save=False, dump_directly=True) + + t = tqdm(range(steps), desc='', leave=True, miniters=100) + num_views = 1 #len(self.R_base.keys()) + bs = 1 #len(self.cam_serials) * num_keyframes + + for k in t: + vertices_can, lmk68, lmkMP, vertices_can_can, vertices_noneck = self.flame(cameras=torch.inverse(self.R_base[0]), + shape_params=self.shape if self.shape.shape[0] == bs else self.shape.repeat(bs, 1), + expression_params=self.exp.repeat_interleave(num_views, dim=0), + eye_pose_params=self.eyes.repeat_interleave(num_views, dim=0), + jaw_pose_params=self.jaw.repeat_interleave(num_views, dim=0), + neck_pose_params=self.neck.repeat_interleave(num_views, dim=0), + rot_params_lmk_shift=(matrix_to_rotation_6d(torch.inverse(rotation_6d_to_matrix(self.R)))).repeat_interleave(num_views, dim=0), + ) + + lmk68 = torch.einsum('bny,bxy->bnx', lmk68, + rotation_6d_to_matrix(self.R.repeat_interleave(num_views, dim=0))) + self.t.repeat_interleave(num_views, dim=0).unsqueeze(1) + verts = torch.einsum('bny,bxy->bnx', vertices_can, + rotation_6d_to_matrix( + self.R.repeat_interleave(num_views, dim=0))) + self.t.repeat_interleave(num_views, + dim=0).unsqueeze( + 1) + + + lmk68_screen_space = project_points_screen_space(lmk68, self.focal_length, self.principal_point, self.R_base, self.t_base, size=self.config.size) + verts_screen_space = project_points_screen_space(verts, self.focal_length, self.principal_point, self.R_base, self.t_base, size=self.config.size) + + + losses = {} + losses['pp_reg'] = torch.sum(self.principal_point ** 2) + if k <= steps // 2: + losses['lmk68'] = util.lmk_loss(lmk68_screen_space[..., :2], landmarks[..., :2], [h, w], lmk_mask) * 3000 + + if k == 0: + self.uv_loss_fn.compute_corresp(uv_map) + if k > steps // 2: + uv_loss = self.uv_loss_fn.compute_loss(verts_screen_space) + losses['uv_loss'] = uv_loss * 1000 + + + all_loss = 0. + for key in losses.keys(): + all_loss = all_loss + losses[key] + losses['all_loss'] = all_loss + + optimizer.zero_grad() + all_loss.backward() + optimizer.step() + + + scheduler.step() + optimizer.zero_grad() + + intrinsics = get_intrinsics(self.focal_length, self.principal_point, use_hack=False, size=self.config.size) + + proj_512 = nvdiffrast_util.intrinsics2projection(intrinsics[0], + znear=0.1, zfar=5, + width=self.config.size, + height=self.config.size) + for serial in self.cam_pose_nvd.keys(): + extr = get_extrinsics(self.R_base[serial], self.t_base[serial]) + r_mvps = proj_512 @ extr + self.r_mvps[serial] = r_mvps + + loss = all_loss.item() + t.set_description(f'Loss for camera {loss:.4f}') + self.frame += 1 + #if k % 100 == 0: + # self.checkpoint(batch, visualizations=[[View.GROUND_TRUTH, View.LANDMARKS, View.SHAPE_OVERLAY, View.COLOR_OVERLAY]], frame_dst='/camera', save=False, dump_directly=True, is_camera=True) + self.frame = 0 + + + @torch.compiler.disable + def get_vars(self, is_joint, selected_frames): + if not is_joint: + exp = self.exp + eyes = self.eyes + eyelids = self.eyelids + _R = self.R + _t = self.t + jaw = self.jaw + neck = self.neck + focal_length = self.focal_length + principal_point = self.principal_point + else: + selected_frames = torch.from_numpy(selected_frames).long().cuda() + exp = self.exp(selected_frames) + eyes = self.eyes(selected_frames) + eyelids = self.eyelids(selected_frames) + _R = self.R(selected_frames) + _t = self.t(selected_frames) + jaw = self.jaw(selected_frames) + neck = self.neck(selected_frames) + if not self.config.global_camera: + focal_length = self.focal_length(selected_frames) + principal_point = self.principal_point(selected_frames) + else: + focal_length = self.focal_length + principal_point = self.principal_point + return exp, eyes, eyelids, _R, _t, jaw, neck, focal_length, principal_point + + + @torch.compiler.disable + def data_stuff(self, is_joint, iters, p, image_lmks68, lmk_mask, normal_map, normal_mask, uv_map, uv_mask, left_iris, right_iris, mask_left_iris, mask_right_iris): + if is_joint: + with torch.no_grad(): + if (p < int(iters * 0.15) and (p % 2 == 0)) or not self.config.smooth: + all_frames = np.array( + range(self.config.start_frame, self.MAX_STEPS + self.config.start_frame, self.FRAME_SKIP)) + selected_frames = np.sort(np.random.choice(np.arange(len(all_frames)), size=self.BATCH_SIZE, + replace=False)) # np.random.choice( + else: + all_frames = np.array( + range(self.config.start_frame, self.MAX_STEPS + self.config.start_frame, self.FRAME_SKIP)) + start = np.min(all_frames) + end = np.max(all_frames) + rnd_start = np.random.randint(start, end) + assert (end - start) >= self.BATCH_SIZE + 1 + assert self.BATCH_SIZE % 2 == 0 + if rnd_start - self.BATCH_SIZE // 2 < 0: + rnd_start = self.BATCH_SIZE // 2 + if rnd_start + self.BATCH_SIZE // 2 + 1 > end: + rnd_start = end - self.BATCH_SIZE // 2 + 1 + selected_frames = np.array( + list(range(rnd_start - self.BATCH_SIZE // 2, rnd_start + self.BATCH_SIZE // 2))) + + selected_frames_th = torch.from_numpy(selected_frames).long() + batch = {k: self.cached_data[k][selected_frames_th, ...] for k in self.cached_data.keys()} + images, landmarks, lmk_mask = self.parse_landmarks(batch) + + uv_mask = batch["uv_mask"] + normal_mask = batch["normal_mask"] + normal_map = batch["normals"] if "normals" in batch else None + uv_map = batch["uv_map"] if "uv_map" in batch else None + #TODO check if this was important in any way + if uv_map is not None: + uv_map[(1 - uv_mask[:, :, :, :]).bool()] = 0 + + num_views = len(self.R_base.keys()) + bs = batch['normals'].shape[0] * num_views + + image_lmks68 = landmarks + if landmarks is not None: + left_iris = batch['left_iris'] + right_iris = batch['right_iris'] + mask_left_iris = batch['mask_left_iris'] + mask_right_iris = batch['mask_right_iris'] + else: + selected_frames = None + bs = 1 + num_views = 1 + batch = None + + return selected_frames, batch, bs, num_views, image_lmks68, lmk_mask, normal_map, normal_mask, uv_map, uv_mask, left_iris, right_iris, mask_left_iris, mask_right_iris + + + + #TODO: could be improved by compiling all the actuall smooth loss stuff + + #@torch.compile + def actual_smooth(self, variables, losses): + reg_smooth_exp = (variables['exp'][:-1, :] - variables['exp'][1:, :]).square().mean() + reg_smooth_eyes = (variables['eyes'][:-1, :] - variables['eyes'][1:, :]).square().mean() + reg_smooth_eyelids = (variables['eyelids'][:-1, :] - variables['eyelids'][1:, :]).square().mean() + reg_smooth_R = (variables['R'][:-1, :] - variables['R'][1:, :]).square().mean() + reg_smooth_t = (variables['t'][:-1, :] - variables['t'][1:, :]).square().mean() + reg_smooth_jaw = (variables['jaw'][:-1, :] - variables['jaw'][1:, :]).square().mean() + reg_smooth_neck = (variables['neck'][:-1, :] - variables['neck'][1:, :]).square().mean() + if not self.config.global_camera: + reg_smooth_principal_point = ( + variables['principal_point'][:-1, :] - variables['principal_point'][1:, :]).square().mean() + reg_smooth_focal_length = ( + variables['focal_length'][:-1, :] - variables['focal_length'][1:, :]).square().mean() + else: + reg_smooth_principal_point = torch.zeros_like(reg_smooth_jaw) + reg_smooth_focal_length = torch.zeros_like(reg_smooth_jaw) + losses['smooth/exp'] = reg_smooth_exp * self.config.reg_smooth_exp * self.config.reg_smooth_mult + losses['smooth/eyes'] = reg_smooth_eyes * self.config.reg_smooth_eyes * self.config.reg_smooth_mult + losses['smooth/eyelids'] = reg_smooth_eyelids * self.config.reg_smooth_eyelids * self.config.reg_smooth_mult + losses['smooth/jaw'] = reg_smooth_jaw * self.config.reg_smooth_jaw * self.config.reg_smooth_mult + losses['smooth/neck'] = reg_smooth_neck * self.config.reg_smooth_neck * self.config.reg_smooth_mult + losses['smooth/R'] = reg_smooth_R * self.config.reg_smooth_R * self.config.reg_smooth_mult + losses['smooth/t'] = reg_smooth_t * self.config.reg_smooth_t * self.config.reg_smooth_mult + losses['smooth/principal_point'] = reg_smooth_principal_point * self.config.reg_smooth_pp * self.config.reg_smooth_mult + losses['smooth/focal_length'] = reg_smooth_focal_length * self.config.reg_smooth_fl * self.config.reg_smooth_mult + return losses + + @torch.compiler.disable + def add_smooth_loss(self, losses, is_joint, p, iters, variables): + if is_joint and self.config.smooth and ((p >= int(iters * 0.15) and (p % 2 == 1)) ): # and p % 2 != 0 and False: + losses = self.actual_smooth(variables, losses) + + return losses + + + def opt_pre(self, is_joint, iters, p, no_lm, image_lmks68, lmk_mask, normal_mask, normal_map, uv_map, uv_mask, left_iris, right_iris, mask_left_iris, mask_right_iris): + + image_size = [self.config.size, self.config.size] + + selected_frames, batch, bs, num_views, image_lmks68, lmk_mask, normal_map, normal_mask, uv_map, uv_mask, left_iris, right_iris, mask_left_iris, mask_right_iris = self.data_stuff(is_joint, iters, p, image_lmks68, lmk_mask, normal_map, normal_mask, uv_map, uv_mask, left_iris, right_iris, mask_left_iris, mask_right_iris) + + self.diff_renderer.reset() + losses = {} + exp, eyes, eyelids, _R, _t, jaw, neck, focal_length, principal_point = self.get_vars(is_joint, selected_frames) + + variables = { + 'exp': exp, + 'eyes': eyes, + 'eyelids': eyelids, + 'R': _R, + 't': _t, + 'jaw': jaw, + 'neck': neck, + 'principal_point': principal_point, + 'focal_lenght': focal_length, + } + + intrinsics = get_intrinsics(focal_length, principal_point, use_hack=False, size=self.config.size) + + proj_512 = nvdiffrast_util.intrinsics2projection(intrinsics, + znear=0.1, zfar=5, + width=self.config.size, + height=self.config.size) + for serial in self.cam_pose_nvd.keys(): + extr = get_extrinsics(self.R_base[serial], self.t_base[serial]) + r_mvps = torch.matmul(proj_512, extr.repeat(bs, 1, 1)) + self.r_mvps[serial] = r_mvps + + vertices_can, lmk68, lmkMP, vertices_can_can, vertices_noneck = self.flame( + cameras=torch.inverse(self.R_base[0]).repeat(bs, 1, 1), + shape_params=self.shape if self.shape.shape[0] == bs else self.shape.repeat(bs, 1).cuda(), + expression_params=exp.repeat_interleave(num_views, dim=0), # .repeat(bs, 1), + eye_pose_params=eyes.repeat_interleave(num_views, dim=0), # .repeat(bs, 1), + jaw_pose_params=jaw.repeat_interleave(num_views, dim=0), # .repeat(bs, 1), + neck_pose_params=neck.repeat_interleave(num_views, dim=0), # .repeat(bs, 1), + eyelid_params=eyelids.repeat_interleave(num_views, dim=0), # .repeat(bs, 1), + rot_params_lmk_shift=(matrix_to_rotation_6d(torch.inverse(rotation_6d_to_matrix(_R)))).repeat_interleave( + num_views, dim=0), # .repeat(bs, 1) + ) + + verts_can_can_mirrored = vertices_can_can[:, self.mirror_order, :] + vertices_can_can_mirrored = torch.zeros_like(verts_can_can_mirrored) + vertices_can_can_mirrored[:, :, 0] = -verts_can_can_mirrored[:, :, 0] + vertices_can_can_mirrored[:, :, 1:] = verts_can_can_mirrored[:, :, 1:] + mirror_loss = (vertices_can_can_mirrored - vertices_can_can).square().sum(-1) + mirror_loss = mirror_loss.mean() + + lmk68 = torch.einsum('bny,bxy->bnx', lmk68, + rotation_6d_to_matrix(_R.repeat_interleave(num_views, dim=0))) + _t.repeat_interleave( + num_views, dim=0).unsqueeze(1) + + vertices = torch.einsum('bny,bxy->bnx', vertices_can, + rotation_6d_to_matrix(_R.repeat_interleave(num_views, dim=0))) + _t.repeat_interleave( + num_views, dim=0).unsqueeze(1) + vertices_noneck = torch.einsum('bny,bxy->bnx', vertices_noneck, + rotation_6d_to_matrix(_R.repeat_interleave(num_views, dim=0))) + _t.repeat_interleave( + num_views, dim=0).unsqueeze(1) + + proj_lmks68 = project_points_screen_space(lmk68, focal_length, principal_point, self.R_base, self.t_base, + size=self.config.size) + proj_vertices = project_points_screen_space(vertices, focal_length, principal_point, self.R_base, self.t_base, + size=self.config.size) + + right_eye, left_eye = eyes[:, :6], eyes[:, 6:] + + + # landmark loss + if not no_lm: + lmk_scale = 1.0 # 0.0001 + # Landmarks sparse term + # losses[('loss/lmk_oval')] = util.oval_lmk_loss(proj_lmks68[..., :2], image_lmks68, image_size, lmk_mask) * self.config.w_lmks_oval * lmk_scale + # losses['loss/lmk_68'] = util.lmk_loss(proj_lmks68[:, 17:, :2], image_lmks68[:, 17:, :], image_size, lmk_mask[:, 17:, :]) * self.config.w_lmks * lmk_scale + # if self.config.use_eyebrows: + # losses['loss/lmk_eyebrows'] = util.lmk_loss(proj_lmks68[:, 17:27, :2], image_lmks68[:, 17:27, :], image_size, lmk_mask[:, 17:27, :]) * self.config.w_lmks * lmk_scale * 5.0 + losses['loss/lmk_eye2'] = util.lmk_loss(proj_lmks68[:, 36:48, :2], image_lmks68[:, 36:48, :], image_size, + lmk_mask[:, 36:48, + :]) * self.config.w_lmks * lmk_scale * 5 #10 # 0 #2.0 #0.5 #0.0 #100 + if self.config.use_mouth_lmk: + losses['loss/lmk_mouth'] = util.lmk_loss(proj_lmks68[:, 48:68, :2], image_lmks68[:, 48:68, :], + image_size, + lmk_mask[:, 48:68, :]) * self.config.w_lmks_mouth * lmk_scale * 0.25 + losses['loss/lmk_mouth_closure'] = util.mouth_closure_lmk_loss(proj_lmks68[..., :2], image_lmks68, + image_size, + lmk_mask) * self.config.w_lmks_mouth * lmk_scale * 2.5 + + losses['loss/lmk_eye'] = util.eye_closure_lmk_loss(proj_lmks68[..., :2], image_lmks68, image_size, + lmk_mask) * self.config.w_lmks_lid * lmk_scale * 500 # 0 #500 #0.0 #10 + losses['loss/lmk_iris_left'] = util.lmk_loss(proj_vertices[:, left_iris_flame[:1], ..., :2], left_iris, + image_size, + mask_left_iris) * self.config.w_lmks_iris * lmk_scale * 50.00 + losses['loss/lmk_iris_right'] = util.lmk_loss(proj_vertices[:, right_iris_flame[:1], ..., :2], right_iris, + image_size, + mask_right_iris) * self.config.w_lmks_iris * lmk_scale * 50.0 + + # Reguralizers + losses['reg/exp'] = torch.sum(exp ** 2, dim=-1).mean() * self.config.w_exp + losses['reg/sym'] = torch.sum((right_eye - left_eye) ** 2, dim=-1).mean() * 0.1 # 8.0 #*5.0 + losses['reg/jaw'] = torch.sum((I6D - jaw) ** 2, dim=-1).mean() * self.config.w_jaw + losses['reg/neck'] = torch.sum((I6D - neck) ** 2, dim=-1).mean() * self.config.w_neck + # losses['reg/eye_lids'] = torch.sum((eyelids[:, 0] - eyelids[:, 1]) ** 2, dim=-1).mean() * 0.1 + losses['reg/eye_left'] = torch.sum((I6D - left_eye) ** 2, dim=-1).mean() * 0.01 + losses['reg/eye_right'] = torch.sum((I6D - right_eye) ** 2, dim=-1).mean() * 0.01 + + losses['reg/shape'] = torch.sum((self.shape - self.mica_shape) ** 2, dim=-1).mean() * self.config.w_shape + losses['reg/shape_general'] = torch.sum((self.shape) ** 2, dim=-1).mean() * self.config.w_shape_general + + losses['reg/mirror'] = mirror_loss * 5000 + if not (self.config.n_fine and p >= iters // 2): + losses['reg/pp'] = torch.sum(principal_point ** 2, dim=-1).mean() + + return batch, losses, vertices, vertices_noneck, vertices_can, vertices_can_can, proj_vertices, proj_lmks68, selected_frames, variables, num_views, normal_mask, normal_map, uv_map, uv_mask + + + def opt_post(self, variables, ops, proj_vertices, proj_lmks68, batch, is_joint, is_first_step, losses, uv_map, selected_frames, p, iters, num_views, normal_mask, normal_map): + grabbed_depth = ops['actual_rendered_depth'][:, 0, + torch.clamp(proj_vertices[:, :, 1].long(), 0, + self.config.size - 1), + torch.clamp(proj_vertices[:, :, 0].long(), 0, + self.config.size - 1), + ][:, 0, :] + + is_visible_verts_idx = grabbed_depth < (proj_vertices[:, :, 2] + 1e-2) + if not self.config.occ_filter: + is_visible_verts_idx = torch.ones_like(is_visible_verts_idx) + + valid_bg_classes = batch['valid_bg'] # bg-class or neck-class + if self.config.sil_super > 0: + if is_joint or (not is_first_step): # and p > 50 and p < int(iters*0.85): # 100 + # losses['loss/sil'] =((1-upper_forehead[:, None, :, :]) * (batch['fg_mask'] - ops['fg_images'])).abs().mean() * self.config.sil_super#0 + losses['loss/sil'] = ((valid_bg_classes[:, None, :, :]) * ( + batch['fg_mask'] - ops['fg_images'])).abs().mean() * self.config.sil_super # 0 + else: + losses['loss/sil'] = ((valid_bg_classes[:, None, :, :]) * ( + batch['fg_mask'] - ops['fg_images'])).abs().mean() * self.config.sil_super / 10 # 0 + + if self.config.uv_map_super: # and p > iters // 2: + gt_uv = uv_map[:, :2, :, :].permute(0, 2, 3, 1) + if self.config.uv_l2: + uv_loss = ((gt_uv - ops['uv_images']) * batch["uv_mask"][:, 0, ...].unsqueeze(-1)).square().mean() * 100 + else: + uv_loss = ((gt_uv - ops['uv_images']) * batch["uv_mask"][:, 0, ...].unsqueeze(-1)).abs().mean() + # TODO: outlier filtering!!! + losses['loss/uv_pixel'] = uv_loss * self.config.uv_map_super + + if self.config.uv_map_super > 0.0: # and (p < iters // 2 or self.config.keep_uv) and not self.config.no2d_verts: + # uv_loss = get_uv_loss(uv_map, proj_vertices) + if self.uv_loss_fn.gt_2_verts is None: + self.uv_loss_fn.compute_corresp(uv_map, selected_frames=selected_frames) + + + uv_loss = self.uv_loss_fn.compute_loss(proj_vertices, selected_frames=selected_frames, uv_map=uv_map, + l2_loss=self.config.uv_l2, is_visible_verts_idx=is_visible_verts_idx) + losses['loss/uv'] = uv_loss * self.config.uv_map_super # 000 + + skip_normals = False + if self.config.n_fine and p < iters // 2: + skip_normals = True + + if (self.config.normal_super > 0.0 or self.config.normal_super_can > 0.0) and not skip_normals: + # normal_loss_map = normal_loss_map * dilated_eye_mask[:, 0, ...] * (1 - ops['mask_images_eyes_region'][:, 0, ...]) + # use dilated eye mask only + # maybe also applie eyemask in image not rendering + dilated_eye_mask = 1 - (gaussian_blur(ops['mask_images_eyes'], + [self.config.normal_mask_ksize, self.config.normal_mask_ksize], + sigma=[self.config.normal_mask_ksize, + self.config.normal_mask_ksize]) > 0).float() + pred_normals = ops['normal_images'] # 1 3 512 512 normals in world space + rot_mat = rotation_6d_to_matrix(variables["R"].repeat_interleave(num_views, dim=0)) # 1 3 3 + + pred_normals_flame_space = torch.einsum('bxy,bxhw->byhw', rot_mat, pred_normals) + if normal_map is not None: + l_map = (normal_map - pred_normals_flame_space) + valid = ((l_map.abs().sum(dim=1) / 3) < self.config.delta_n).unsqueeze(1) + normal_loss_map = l_map * valid.float() * normal_mask * dilated_eye_mask + if self.config.normal_l2: + losses['loss/normal'] = normal_loss_map.square().mean() * self.config.normal_super + else: + losses['loss/normal'] = normal_loss_map.abs().mean() * self.config.normal_super + else: + losses['loss/normal'] = 0.0 + + + # smoothness loss + losses = self.add_smooth_loss(losses, is_joint, p, iters, variables) + + all_loss = self.reduce_loss(losses) + + return all_loss + + + def optimize_color(self, batch, params_func, + no_lm : bool = False, + save_timestep=0, + is_joint : bool = False, + is_first_step : bool = False, + ): + + iters = self.config.iters + if not is_joint: + images, landmarks, lmk_mask = self.parse_landmarks(batch) + + uv_mask = batch["uv_mask"] + normal_mask = batch["normal_mask"] + + normal_map = batch["normals"] if "normals" in batch else None + uv_map = batch["uv_map"] if "uv_map" in batch else None + + if uv_map is not None: + uv_map[(1-uv_mask[:, :, :, :]).bool()] = 0 + + + # Optimizer per step + if is_joint: + optimizer = torch.optim.SparseAdam(params_func()) + params_global = [ + {'params': [self.shape], 'lr': self.config.lr_id * 1.0, 'name': ['shape']} + ] + if self.config.global_camera: + params_global.append({'params': [self.focal_length], 'lr': self.config.lr_f * 1.0, + 'name': ['camera_params']}) + params_global.append({'params': [self.principal_point], 'lr': self.config.lr_pp * 1.0, + 'name': ['camera_params']}) + optimizer_id = torch.optim.Adam(params_global) + + optimizer_id.zero_grad() + else: + optimizer = torch.optim.Adam(params_func()) + + optimizer.zero_grad() + + + if not is_joint: + num_views = len(self.R_base.keys()) + bs = batch['normals'].shape[0] * num_views + + image_lmks68 = landmarks + if landmarks is not None: + left_iris = batch['left_iris'] + right_iris = batch['right_iris'] + mask_left_iris = batch['mask_left_iris'] + mask_right_iris = batch['mask_right_iris'] + else: + image_lmks68 = None + lmk_mask, normal_mask, normal_map, uv_map, uv_mask = None, None, None, None, None + left_iris, right_iris, mask_left_iris, mask_right_iris = None, None, None, None + + self.diff_renderer.reset() + + best_loss = np.inf + + n_steps_stagnant = 0 + stagnant_window_size = 10 + past_k_steps = np.array([100.0 for _ in range(stagnant_window_size)]) + + iterator = tqdm(range(iters), desc='', leave=True, miniters=100) + + for p in iterator: + + if is_joint and p == int(iters*0.5): + + for pgroup in optimizer.param_groups: + if pgroup['name'] in ['t', 'R', 'jaw']: + pgroup['lr'] = pgroup['lr'] / 10 + print(f'LR Reduce at iter {p}, for pgroup {pgroup["name"]}') + else: + pgroup['lr'] = pgroup['lr'] / 2 + if is_joint and p == int(iters *0.75): + for pgroup in optimizer.param_groups: + if pgroup['name'] in ['t', 'R', 'jaw']: + pgroup['lr'] = pgroup['lr'] / 5 + print(f'LR Reduce at iter {p}, for pgroup {pgroup["name"]}') + else: + pgroup['lr'] = pgroup['lr'] / 2 + + if is_joint and p == int(iters *0.9): + for pgroup in optimizer.param_groups: + if pgroup['name'] in ['t', 'R', 'jaw']: + pgroup['lr'] = pgroup['lr'] / 2 + print(f'LR Reduce at iter {p}, for pgroup {pgroup["name"]}') + else: + pgroup['lr'] = pgroup['lr'] / 5 + + + batch_joint, losses, vertices, vertices_noneck, vertices_can, vertices_can_can, proj_vertices, proj_lmks68, selected_frames, variables, num_views, normal_mask, normal_map, uv_map, uv_mask = self.opt_pre(is_joint, iters, p, no_lm, image_lmks68, lmk_mask, normal_mask, normal_map, uv_map, uv_mask, left_iris, right_iris, mask_left_iris, mask_right_iris) + + if is_joint: + batch = batch_joint + + timestep = 0 + ops = self.diff_renderer(vertices, None, None, + self.r_mvps[timestep], self.R_base[timestep], self.t_base[timestep], + texture_observation_mask=self.texture_observation_mask, + verts_can=vertices_can, + verts_noneck=vertices_noneck, + verts_can_can=vertices_can_can, + verts_depth=proj_vertices[:, :, 2:3], + ) + + + all_loss = self.opt_post(variables, ops, proj_vertices, proj_lmks68, batch, is_joint, is_first_step, losses, uv_map, selected_frames, p, iters, num_views, normal_mask, normal_map) + + #vertices.retain_grad() + #if not self.init_done: + all_loss.backward()#retain_graph=True) + optimizer.step() + optimizer.zero_grad() + if is_joint: + optimizer_id.step() + optimizer_id.zero_grad() + + + #if p == 0 or p == iters-1: + #if p == iters-1:# and not self.config.low_overhead and False: + #wandb.log(losses) + + self.global_step += 1 + loss_color = all_loss.item() + + if loss_color < best_loss - 1.0: + best_loss = loss_color + n_steps_stagnant = 0 + elif p > 25: # only start counting after n steps + n_steps_stagnant += 1 + + if p > 0: + past_k_steps[p%stagnant_window_size] = np.abs(all_loss.item() - prev_loss) + prev_loss = all_loss.item() + + + if (self.frame % 99 == 0 or p < 10) and is_joint: + pass + #with torch.no_grad(): + # intrinsics = get_intrinsics(focal_length, principal_point, use_hack=False) + + #proj_512 = nvdiffrast_util.intrinsics2projection(intrinsics, + # znear=0.1, zfar=5, + # width=512, + # height=512) + #for serial in self.cam_pose_nvd.keys(): + # extr = get_extrinsics(self.R_base[serial], self.t_base[serial]) + # r_mvps = torch.matmul(proj_512, extr.repeat(bs, 1, 1)) + # self.r_mvps[serial] = r_mvps + #self.checkpoint(batch, visualizations=[[View.GROUND_TRUTH, View.LANDMARKS, View.SHAPE_OVERLAY]], + # frame_dst='/debug_joint', save=False, dump_directly=True, timestep=p, selected_frames=selected_frames, is_final=True) + self.frame += 1 + + iterator.set_description(f'Timestep {save_timestep}; Loss {all_loss.item():.4f}') + + #if n_steps_stagnant > 35 and not is_joint: + # print('Early Stopping, go to next frame!') + # #break + if not is_joint and not is_first_step: + if p > stagnant_window_size and np.mean(past_k_steps) < self.config.early_stopping_delta: #3.0: #3.0: + print('Early Stopping, go to next frame!') + #losses['early_stopping'] = past_k_steps + #wandb.log(losses) + #wandb.log({'early_stopping': wandb.Histogram(past_k_steps)}) + + break + #print('rate of change', np.mean(past_k_steps)) + + + def render_and_save(self, batch, + visualizations=[[View.GROUND_TRUTH, View.LANDMARKS, View.HEATMAP], [View.COLOR_OVERLAY, View.SHAPE_OVERLAY, View.SHAPE]], + frame_dst='/video', save=True, dump_directly=False, + outer_iter = None, + is_camera : bool = False, + all_keyframes : bool = False, + timestep : int = 0, + is_final : bool = False, + selected_frames = None, + ): + batch = self.to_cuda(batch) + images, landmarks, _ = self.parse_landmarks(batch) + + if 'uv_map' in batch: + uv_map = batch['uv_map'] + uv_mask = batch['uv_mask'] + uv_map[(1-uv_mask).bool()] = 0 + else: + uv_map = None + uv_mask = None + + if 'normals' in batch: + normal_map = batch['normals'] + else: + normal_map = None + if 'normal_map_can' in batch: + normal_map_can = batch['normal_map_can'] + else: + normal_map_can = None + + + savefolder = self.save_folder + self.actor_name + frame_dst + num_keyframes = 1#1 + len(self.config.keyframes) + + with torch.no_grad(): + self.diff_renderer.reset() + num_views = len(self.R_base.keys()) + bs = batch['normals'].shape[0] * num_keyframes #self.shape.shape[0] + + if selected_frames is None: + exp = self.exp + eyes = self.eyes + eyelids = self.eyelids + R = self.R + t = self.t + jaw = self.jaw + neck = self.neck + focal_length = self.focal_length + principal_point = self.principal_point + else: + exp = self.exp(selected_frames) + eyes = self.eyes(selected_frames) + eyelids = self.eyelids(selected_frames) + R = self.R(selected_frames) + t = self.t(selected_frames) + jaw = self.jaw(selected_frames) + neck = self.neck(selected_frames) + if not self.config.global_camera: + focal_length = self.focal_length(selected_frames) + principal_point = self.principal_point(selected_frames) + else: + focal_length = self.focal_length + principal_point = self.principal_point + + with torch.no_grad(): + intrinsics = get_intrinsics(focal_length, principal_point, use_hack=False, size=self.config.size) + + proj_512 = nvdiffrast_util.intrinsics2projection(intrinsics, + znear=0.1, zfar=5, + width=self.config.size, + height=self.config.size) + for serial in self.cam_pose_nvd.keys(): + extr = get_extrinsics(self.R_base[serial], self.t_base[serial]) + r_mvps = torch.matmul(proj_512, extr.repeat(bs, 1, 1)) + self.r_mvps[serial] = r_mvps + vertices_can, _lmk68, lmkMP, vertices_can_can, vertices_noneck = self.flame( + #cameras=torch.inverse(self.R_base[0]), + cameras=torch.inverse(self.R_base[0]).repeat(bs, 1, 1), + shape_params=self.shape.repeat(bs, 1), + expression_params=exp.repeat_interleave(num_views, dim=0), #torch.from_numpy(self.expression_params[:1, :]).cuda().repeat(bs, 1), #self.exp, + eye_pose_params=eyes.repeat_interleave(num_views, dim=0), + #euler_angles_to_matrix(x_opts['rotation'][i], 'XYZ') + jaw_pose_params=jaw.repeat_interleave(num_views, dim=0), #matrix_to_rotation_6d(euler_angles_to_matrix(torch.from_numpy(self.jaw_params[:1, :]).cuda(), 'XYZ')).repeat(bs, 1), #self.jaw, + neck_pose_params=neck.repeat_interleave(num_views, dim=0), #matrix_to_rotation_6d(euler_angles_to_matrix(torch.from_numpy(self.jaw_params[:1, :]).cuda(), 'XYZ')).repeat(bs, 1), #self.jaw, + eyelid_params=eyelids.repeat_interleave(num_views, dim=0), + rot_params_lmk_shift=(matrix_to_rotation_6d(torch.inverse(rotation_6d_to_matrix(R)))).repeat_interleave(num_views, dim=0), + ) + + + lmk68 = torch.einsum('bny,bxy->bnx', _lmk68, rotation_6d_to_matrix(R.repeat_interleave(num_views, dim=0))) + t.repeat_interleave(num_views, dim=0).unsqueeze(1) + vertices = torch.einsum('bny,bxy->bnx', vertices_can, rotation_6d_to_matrix(R.repeat_interleave(num_views, dim=0))) + t.repeat_interleave(num_views, dim=0).unsqueeze(1) + vertices_noneck = torch.einsum('bny,bxy->bnx', vertices_noneck, rotation_6d_to_matrix(R.repeat_interleave(num_views, dim=0))) + t.repeat_interleave(num_views, dim=0).unsqueeze(1) + + + lmk68 = project_points_screen_space(lmk68, focal_length, principal_point, self.R_base, self.t_base, size=self.config.size) + proj_vertices = project_points_screen_space(vertices, focal_length, principal_point, self.R_base, self.t_base, size=self.config.size) + + + _timestep = 0 + ops = self.diff_renderer(vertices, None, None, + self.r_mvps[_timestep], self.R_base[_timestep], self.t_base[_timestep], + verts_can=vertices_can, + verts_noneck=vertices_noneck, + verts_depth=proj_vertices[:, :, 2:3], + is_viz=True + ) + mask = (self.parse_mask(ops, batch, visualization=True) > 0).float() + grabbed_depth = ops['actual_rendered_depth'][0, 0, + torch.clamp(proj_vertices[0, :, 1].long(), 0, self.config.size-1), + torch.clamp(proj_vertices[0, :, 0].long(), 0, self.config.size-1), + ] + is_visible_verts_idx = grabbed_depth < proj_vertices[0, :, 2] + 1e-2 + if not self.config.occ_filter: + is_visible_verts_idx = torch.ones_like(is_visible_verts_idx) + + + all_final_views = [] + for b_i in range(bs): + final_views = [] + + for views in visualizations: + row = [] + for view in views: + if view == View.COLOR_OVERLAY: + row.append((ops['normal_images'][b_i].cpu().numpy() + 1)/2) + if view == View.GROUND_TRUTH: + row.append(images[b_i].cpu().numpy()) + if (view == View.LANDMARKS and not self.no_lm) or is_camera: + gt_lmks = images[b_i:b_i+1].clone() + gt_lmks = util.tensor_vis_landmarks(gt_lmks, landmarks[b_i:b_i+1, :, :], color='g') + gt_lmks = util.tensor_vis_landmarks(gt_lmks, batch['left_iris'][b_i:b_i+1, ...], color='g') + gt_lmks = util.tensor_vis_landmarks(gt_lmks, batch['right_iris'][b_i:b_i+1, ...], color='g') + gt_lmks = util.tensor_vis_landmarks(gt_lmks, proj_vertices[b_i:b_i+1, left_iris_flame, ...], color='r') + gt_lmks = util.tensor_vis_landmarks(gt_lmks, proj_vertices[b_i:b_i+1, right_iris_flame, ...], color='r') + gt_lmks = util.tensor_vis_landmarks(gt_lmks, lmk68[b_i:b_i+1, :, :], color='r') + row.append(gt_lmks[0].cpu().numpy()) + + if True: + nvd_mask = gaussian_blur(ops['mask_images_rendering'].detach(), + kernel_size=[self.config.normal_mask_ksize, self.config.normal_mask_ksize], + sigma=[self.config.normal_mask_ksize, self.config.normal_mask_ksize]) + nvd_mask = (nvd_mask > 0.5).float() + nvd_mask_clone = nvd_mask.clone() + + + eyebrow_level = torch.min(lmk68[:, :, 1], dim=1).indices + + for _i in range(eyebrow_level.shape[0]): + nvd_mask_clone[_i, :, :eyebrow_level[_i], :] = 0 + + + final_views.append(row) + + + # VIDEO + final_views = util.merge_views(final_views) + all_final_views.append(final_views) + final_views = np.concatenate(all_final_views, axis=0) + + if outer_iter is None: + frame_id = str(self.frame).zfill(5) + else: + frame_id = str(self.frame + 10*outer_iter).zfill(5) + + if uv_map is not None and is_final: + # uv losses visualizations + proj_vertices = proj_vertices[:, self.uv_loss_fn.valid_vertex_index, :] + can_uv = torch.from_numpy(np.load(env_paths.FLAME_UV_COORDS)).cuda().unsqueeze(0).float()[:, self.uv_loss_fn.valid_vertex_index, :] + valid_verts_visibility = is_visible_verts_idx[self.uv_loss_fn.valid_vertex_index] + #can_uv[..., 0] = (can_uv[..., 0] * -1) + 1 + can_uv[..., 1] = (can_uv[..., 1] * -1) + 1 + #can_uv = can_uv[:, ::50, :] + gt_uv = uv_map[:, :2, :, :].permute(0, 2, 3, 1) + gt_uv = gt_uv.reshape(gt_uv.shape[0], -1, 2) # B x n_pixel x 2 + can_uv = can_uv.repeat(gt_uv.shape[0], 1, 1) + knn_result = knn_points(can_uv, gt_uv) + + pixel_position_width = knn_result.idx % uv_map.shape[-1] + pixel_position_height = knn_result.idx // uv_map.shape[-2] + + dists = knn_result.dists.clone() + + gt_2_verts = torch.cat([pixel_position_width, pixel_position_height], dim=-1) + + pred_normals = ops['normal_images'] # 1 3 512 512 normals in world space + rot_mat = rotation_6d_to_matrix(R.detach().repeat_interleave(num_views, dim=0)) # 1 3 3 + pred_normals_flame_space = torch.einsum('bxy,bxhw->byhw', rot_mat, pred_normals) + + delta = self.config.uv_loss.delta_uv + catted_uv_rows = [] + for b_i in range(images.shape[0]): + empty = images[b_i].detach().cpu().numpy().copy().transpose(1, 2, 0) + is_valid_uv_corresp = (dists[b_i, :, 0] < delta) & valid_verts_visibility + valid_pred_2d = proj_vertices[b_i, is_valid_uv_corresp, :] + valid_gt_2d = gt_2_verts[b_i, is_valid_uv_corresp, :] + pixels_pred = torch.stack( + [ + torch.clamp(valid_pred_2d[:, 0], 0, images.shape[-1] - 1), + torch.clamp(valid_pred_2d[:, 1], 0, images.shape[-2] - 1), + ], dim=-1 + ).int() + pixels_gt = torch.stack( + [ + torch.clamp(valid_gt_2d[:, 0], 0, images.shape[-1] - 1), + torch.clamp(valid_gt_2d[:, 1], 0, images.shape[-2] - 1), + ], dim=-1 + ).int() + + if self.config.draw_uv_corresp: + empty = plot_points(empty, pts=pixels_pred.detach().cpu().numpy(), pts2=pixels_gt.detach().cpu().numpy()) + + + gt_uv = uv_map[:, :2, :, :].permute(0, 2, 3, 1) + + upper_forehead = ((uv_map[:, 0, :, :].abs() < 0.85) & + (uv_map[:, 0, :, :].abs() > (1 - 0.85)) & + (uv_map[:, 1, :, :] < 0.35) & + (uv_map[:, 1, :, :] > 0.)).float() + upper_forehead = (gaussian_blur(upper_forehead, [self.config.normal_mask_ksize, self.config.normal_mask_ksize], sigma=[self.config.normal_mask_ksize, self.config.normal_mask_ksize]) > 0).float() + losses_sil = ((1 - upper_forehead[:, None, :, :]) * (batch['fg_mask'] - ops['fg_images'])).abs().permute(0, 2, 3, 1) + + + uv_loss = ((gt_uv - ops['uv_images']) * ops['mask_images'][:, 0, ...].unsqueeze(-1)).abs() + #catted_uv = torch.cat([gt_uv[b_i], ops['uv_images'][b_i], uv_loss[b_i]], dim=1).detach().cpu().numpy() + catted_uv = torch.cat([losses_sil[b_i][..., :2], uv_loss[b_i]], dim=1).detach().cpu().numpy() + catted_uv_I = np.zeros([catted_uv.shape[0], catted_uv.shape[1], 3]) + catted_uv_I[:, :, :2] = catted_uv + catted_uv_I = (catted_uv_I * 255).astype(np.uint8) + shape_mask = ((ops['alpha_images'] * ops['mask_images_mesh']) > 0.).int()[b_i] + shape = (pred_normals_flame_space[b_i]+1)/2 * shape_mask + blend = images[b_i] * (1 - shape_mask) + images[b_i] * shape_mask * 0.3 + shape * 0.7 * shape_mask + to_be_catted = [(images[b_i].cpu().permute(1, 2, 0).numpy()*255).astype(np.uint8), + (blend.permute(1, 2, 0).detach().cpu().numpy()*255).astype(np.uint8), + ] + if self.config.draw_uv_corresp: + to_be_catted.append(catted_uv_I) + to_be_catted.append(empty) + catted_uv_I = np.concatenate(to_be_catted, axis=1) + catted_uv_rows.append(catted_uv_I) + + if normal_map is None: + catted_uv_I = Image.fromarray(np.concatenate(catted_uv_rows, axis=0)) + + #pl = pv.Plotter() + #pl.add_mesh(trim) + #pl.add_points(visible_verts) + #pl.show() + + else: + catted_uv_I = None + catted_uv_rows = [] + + if normal_map is not None: + dilated_eye_mask = 1 - (gaussian_blur(ops['mask_images_eyes'], [self.config.normal_mask_ksize, self.config.normal_mask_ksize], sigma=[1, 1]) > 0).float() + l_map = (normal_map - pred_normals_flame_space) + valid = ((l_map.abs().sum(dim=1)/3) < self.config.delta_n).unsqueeze(1) + + + + + predicted_normal = ((pred_normals_flame_space.permute(0, 2, 3, 1)[..., + :3] + 1) / 2 * 255).detach().cpu().numpy().astype(np.uint8) + if self.config.draw_uv_corresp: + normal_loss_map = l_map * valid.float() * batch["normal_mask"] * dilated_eye_mask + pseudo_normal = ((normal_map.permute(0, 2, 3, 1) + 1) / 2 * 255).detach().cpu().numpy().astype( + np.uint8) + normal_loss_map = ( + (normal_loss_map.abs().permute(0, 2, 3, 1)) / 2 * 255).detach().cpu().numpy().astype( + np.uint8) + catted = np.concatenate([pseudo_normal, predicted_normal, normal_loss_map], axis=2) + else: + catted = predicted_normal + # Image.fromarray(catted).show() + # print('hi') + + for b_i in range(catted.shape[0]): + if len(catted_uv_rows) > 0: + catted_uv_rows[b_i] = np.concatenate([catted_uv_rows[b_i], catted[b_i]], axis=1) + else: + catted_uv_rows.append(catted[b_i]) + + + catted_uv_I = Image.fromarray(np.concatenate(catted_uv_rows, axis=0)) + + #if catted_uv_I is not None: + # save_fodler_uv = f'{savefolder}' + # os.makedirs(save_fodler_uv, exist_ok=True) + # if is_final: + # catted_uv_I.save(f'{save_fodler_uv}/{timestep}.png') + # else: + # catted_uv_I.save(f'{save_fodler_uv}/{self.frame}.png') + + + if not save: + return + + # CHECKPOINT + self.save_checkpoint(timestep, selected_frames=selected_frames) + return catted_uv_I + + + + def parse_landmarks(self, batch): + images = batch['rgb'] + if 'lmk' in batch: + landmarks = batch['lmk'] + lmk68 = landmarks[:, WFLW_2_iBUG68, :] + lmk_mask = ~(lmk68.sum(2, keepdim=True) == 0) + batch['left_iris'] = landmarks[:, 96:97, :] + batch['right_iris'] = landmarks[:, 97:98, :] + batch['mask_left_iris'] = ~(landmarks.sum(2, keepdim=True) == 0)[:, 96:97, :] + batch['mask_right_iris'] = ~(landmarks.sum(2, keepdim=True) == 0)[:, 97:98, :] + + landmarks = lmk68 + else: + landmarks = lmk_mask = None + + return images, landmarks, lmk_mask, + + + def read_data(self, timestep): + DATA_FOLDER = f'{env_paths.PREPROCESSED_DATA}/{self.config.video_name}' + P3DMM_FOLDER = f'{env_paths.PREPROCESSED_DATA}/{self.config.video_name}/p3dmm/' + + try: + rgb = np.array(Image.open(f'{DATA_FOLDER}/cropped/{timestep:05d}.jpg').resize((self.config.size, self.config.size))) / 255 + except Exception as ex: + rgb = np.array(Image.open(f'{DATA_FOLDER}/cropped/{timestep:05d}.png').resize((self.config.size, self.config.size))) / 255 + + mica_folder = f'{DATA_FOLDER}/mica' + mica_files = os.listdir(mica_folder) + mica_shapes = [] + for mica_file in mica_files: + mica_shape = np.load(f'{mica_folder}/{mica_file}/identity.npy') + mica_shapes.append(np.squeeze(mica_shape)) + mica_shapes = np.stack(mica_shapes, axis=0) + if self.config.early_exit: + mica_shape = mica_shapes[0, :] + else: + mica_shape = np.mean(mica_shapes, axis=0) + + seg = np.array(Image.open(f'{DATA_FOLDER}/seg_og/{timestep:05d}.png').resize((self.config.size, self.config.size), Image.NEAREST)) + if len(seg.shape) == 3: + seg = seg[..., 0] + uv_mask = ((seg == 2) | (seg == 6) | (seg == 7) | + (seg == 10) | (seg == 12) | (seg == 13) | + (seg==1) | # neck + (seg == 4) | (seg==5) # ears + ) + + normal_mask = ((seg == 2) | (seg == 6) | (seg == 7) | + (seg == 10) | (seg == 12) | (seg == 13) + ) | (seg == 11) # mouth interior + if self.config.big_normal_mask: + normal_mask = normal_mask | (seg==1) | (seg == 4) | (seg==5) # add neck and ears + + fg_mask = ((seg == 2) | (seg == 6) | (seg == 7) | (seg == 8) | (seg == 9) | #(seg == 4) | (seg == 5) | + (seg == 10) | (seg == 12) | (seg == 13) + ) + + valid_bg = seg <= 1 + + try: + normals = ((np.array(Image.open(f'{P3DMM_FOLDER}/normals/{timestep:05d}.png').resize((self.config.size, self.config.size))) / 255).astype(np.float32) - 0.5 )*2 + uv_map = (np.array(Image.open(f'{P3DMM_FOLDER}/uv_map/{timestep:05d}png').resize((self.config.size, self.config.size))) / 255).astype(np.float32) + except Exception as ex: + normals = ((np.array(Image.open(f'{P3DMM_FOLDER}/normals/{timestep:05d}.png').resize((self.config.size, self.config.size))) / 255).astype( + np.float32) - 0.5) * 2 + uv_map = (np.array(Image.open(f'{P3DMM_FOLDER}/uv_map/{timestep:05d}.png').resize((self.config.size, self.config.size))) / 255).astype(np.float32) + + try: + lms = np.load(f'{DATA_FOLDER}/PIPnet_landmarks/{timestep:05d}.npy') * self.config.size + except Exception as ex: + lms = np.zeros([98, 2]) + + ret_dict = { + 'rgb': rgb, + 'mica_shape': mica_shape, + 'normals': normals, + 'uv_map': uv_map, + 'uv_mask': uv_mask, + 'normal_mask': normal_mask, + 'fg_mask': fg_mask, + 'valid_bg': valid_bg, + } + if lms is not None: + ret_dict['lmk'] = lms + + + ret_dict = {k: torch.from_numpy(v).float().unsqueeze(0).cuda() for k,v in ret_dict.items()} + + ret_dict['uv_mask'] = ret_dict['uv_mask'][:, :, :, None].repeat(1, 1, 1, 3) + ret_dict['normal_mask'] = ret_dict['normal_mask'][:, :, :, None].repeat(1, 1, 1, 3) + ret_dict['fg_mask'] = ret_dict['fg_mask'][:, :, :, None].repeat(1, 1, 1, 3) + + channels_first =['rgb', 'uv_mask', 'normal_mask', 'normals', 'uv_map', 'fg_mask'] + for k in channels_first: + ret_dict[k] = ret_dict[k].permute(0, 3, 1, 2) + + return ret_dict + + + def prepare_global_optimization(self, N_FRAMES): + is_sparse=True + self.exp = nn.Embedding(num_embeddings=N_FRAMES, embedding_dim=100, sparse=is_sparse, ).cuda() + self.R = nn.Embedding(num_embeddings=N_FRAMES, embedding_dim=6, sparse=is_sparse).cuda() + self.t = nn.Embedding(num_embeddings=N_FRAMES, embedding_dim=3, sparse=is_sparse).cuda() + self.eyes = nn.Embedding(num_embeddings=N_FRAMES, embedding_dim=12, sparse=is_sparse).cuda() + self.eyelids = nn.Embedding(num_embeddings=N_FRAMES, embedding_dim=12, sparse=is_sparse).cuda() + self.jaw = nn.Embedding(num_embeddings=N_FRAMES, embedding_dim=6, sparse=is_sparse).cuda() + self.neck = nn.Embedding(num_embeddings=N_FRAMES, embedding_dim=6, sparse=is_sparse).cuda() + if not self.config.global_camera: + self.focal_length = nn.Embedding(num_embeddings=N_FRAMES, embedding_dim=1, sparse=is_sparse).cuda() + self.principal_point = nn.Embedding(num_embeddings=N_FRAMES, embedding_dim=2, sparse=is_sparse).cuda() + + exp = torch.cat(self.intermediate_exprs, dim=0) + R = torch.cat(self.intermediate_Rs, dim=0) + t = torch.cat(self.intermediate_ts, dim=0) + eyes = torch.cat(self.intermediate_eyes, dim=0) + eyelids = torch.cat(self.intermediate_eyelids, dim=0) + jaw = torch.cat(self.intermediate_jaws, dim=0) + neck = torch.cat(self.intermediate_necks, dim=0) + if not self.config.global_camera: + focal_length = torch.cat(self.intermediate_fls, dim=0) + principal_point = torch.cat(self.intermediate_pps, dim=0) + + with torch.no_grad(): + self.exp.weight = torch.nn.Parameter(exp) + self.R.weight = torch.nn.Parameter(R) + self.t.weight = torch.nn.Parameter(t) + self.eyes.weight = torch.nn.Parameter(eyes) + self.eyelids.weight = torch.nn.Parameter(eyelids) + self.jaw.weight = torch.nn.Parameter(jaw) + self.neck.weight = torch.nn.Parameter(neck) + if not self.config.global_camera: + self.focal_length.weight = torch.nn.Parameter(focal_length) + self.principal_point.weight = torch.nn.Parameter(principal_point) + + + def run(self): + timestep = self.config.start_frame + batch = self.read_data(timestep=timestep) + + # Important to initialize + self.create_parameters(0, batch['mica_shape']) + self.frame = 0 + + print(''' + <<<<<<<< STARTING ONLINE TRACKING PHASE >>>>>>>> + ''') + + for timestep in range(self.config.start_frame, self.MAX_STEPS + self.config.start_frame, self.FRAME_SKIP): + batch = self.read_data(timestep=timestep) + for k in batch.keys(): + if k not in self.cached_data: + self.cached_data[k] = [batch[k]] + else: + self.cached_data[k].append(batch[k]) + if timestep == self.config.start_frame: + self.optimize_camera(batch, steps=500, is_first_frame=True) + params = lambda: self.clone_params_keyframes_all(freeze_id=False, freeze_cam=self.config.global_camera, include_neck=self.config.include_neck) + is_first_step = True + else: + if self.config.extra_cam_steps: + self.optimize_camera(batch, steps=10, is_first_frame=False) + params = lambda: self.clone_params_keyframes_all(freeze_id=True, freeze_cam=self.config.global_camera, include_neck=self.config.include_neck) + is_first_step = False + + + self.optimize_color(batch, params, + no_lm=self.no_lm, + save_timestep=timestep, + is_first_step=is_first_step + ) + + self.uv_loss_fn.is_next() + #self.checkpoint(batch, visualizations=[[View.GROUND_TRUTH, View.COLOR_OVERLAY, View.LANDMARKS, View.SHAPE]], frame_dst='/initialization', outer_iter=0, timestep=timestep, is_final=True, save=True) + self.frame += 1 + + # save results for global optimization later + self.intermediate_exprs.append(self.exp.detach().clone()) + self.intermediate_Rs.append(self.R.detach().clone()) + self.intermediate_ts.append(self.t.detach().clone()) + self.intermediate_eyes.append(self.eyes.detach().clone()) + self.intermediate_eyelids.append(self.eyelids.detach().clone()) + self.intermediate_jaws.append(self.jaw.detach().clone()) + self.intermediate_necks.append(self.neck.detach().clone()) + if not self.config.global_camera: + self.intermediate_fls.append(self.focal_length.detach().clone()) + self.intermediate_pps.append(self.principal_point.detach().clone()) + + if self.config.early_exit: + exit() + + for k in self.cached_data.keys(): + self.cached_data[k] = torch.cat(self.cached_data[k], dim=0) + + params = lambda: self.clone_params_keyframes_all_joint(freeze_id=False, is_joint=True, include_neck=self.config.include_neck) + + + if self.config.uv_map_super > 0.0: + self.uv_loss_fn.finish_stage1() + + self.config.iters = self.config.global_iters #self.config.iters * 10 + + N_FRAMES = len(self.intermediate_exprs) + #build optimization targets for global optimization, implement as sparse torch.Embedding + self.prepare_global_optimization(N_FRAMES=N_FRAMES) + + + if COMPILE: + self.flame = torch.compile(self.flame) + self.opt_pre = torch.compile(self.opt_pre) + self.opt_post = torch.compile(self.opt_post) + + print(''' + <<<<<<<< STARTING GLOBAL TRACKING PHASE >>>>>>>> + ''') + + if N_FRAMES > 1: + + self.optimize_color(None, params, + no_lm=self.no_lm, + save_timestep=1000, #timestep, + is_joint=True, + ) + + + # render result and save it as a video to get some viusal feedback + video_frames = [] + for it, timestep in enumerate(range(self.config.start_frame, self.MAX_STEPS + self.config.start_frame, self.FRAME_SKIP)): + selected_frames = [] + selected_frames_loading = [] + batches = [] + batch = self.read_data(timestep=timestep) + batches.append(batch) + selected_frames.append(it) + selected_frames_loading.append(timestep) + batches = {k: torch.cat([x[k] for x in batches], dim=0) for k in batch.keys()} + selected_frames = torch.from_numpy(np.array(selected_frames)).long().cuda() + + result_rendering = self.render_and_save(batches, visualizations=[[View.GROUND_TRUTH, View.COLOR_OVERLAY, View.LANDMARKS, View.SHAPE]], + frame_dst='/joint_initialization', outer_iter=0, timestep=timestep, is_final=True, selected_frames=selected_frames) + video_frames.append(np.array(result_rendering)) + self.frame += 1 + + mediapy.write_video(f'{self.save_folder}/{self.actor_name}/result.mp4', images=video_frames, crf=15, fps=25) + + + # Optionally delete all preoprocessing artifacts, once tracking is done (only keep cropped images) + if self.config.delete_preprocessing: + shutil.rmtree(f'{env_paths.PREPROCESSED_DATA}/{self.config.video_name}/mica') + shutil.rmtree(f'{env_paths.PREPROCESSED_DATA}/{self.config.video_name}/p3dmm') + shutil.rmtree(f'{env_paths.PREPROCESSED_DATA}/{self.config.video_name}/p3dmm_wGT') + shutil.rmtree(f'{env_paths.PREPROCESSED_DATA}/{self.config.video_name}/p3dmm_extraViz') + shutil.rmtree(f'{env_paths.PREPROCESSED_DATA}/{self.config.video_name}/pipnet') + shutil.rmtree(f'{env_paths.PREPROCESSED_DATA}/{self.config.video_name}/PIPnet_annotated_images') + shutil.rmtree(f'{env_paths.PREPROCESSED_DATA}/{self.config.video_name}/PIPnet_landmarks') + shutil.rmtree(f'{env_paths.PREPROCESSED_DATA}/{self.config.video_name}/rgb') + shutil.rmtree(f'{env_paths.PREPROCESSED_DATA}/{self.config.video_name}/seg_non_crop_annotations') + shutil.rmtree(f'{env_paths.PREPROCESSED_DATA}/{self.config.video_name}/seg_og') + + + print(f''' + <<<<<<<< DONE WITH TRACKING {self.actor_name} >>>>>>>> + ''') + + + + + diff --git a/src/pixel3dmm/tracking/util.py b/src/pixel3dmm/tracking/util.py new file mode 100644 index 0000000000000000000000000000000000000000..715900c4b3869a0d71de36c4a5622e90d5cd0538 --- /dev/null +++ b/src/pixel3dmm/tracking/util.py @@ -0,0 +1,812 @@ +# -*- coding: utf-8 -*- + +# Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. (MPG) is +# holder of all proprietary rights on this computer program. +# You can only use this computer program if you have closed +# a license agreement with MPG or you get the right to use the computer +# program from someone who is authorized to grant you that right. +# Any use of the computer program without a valid license is prohibited and +# liable to prosecution. +# +# Copyright©2023 Max-Planck-Gesellschaft zur Förderung +# der Wissenschaften e.V. (MPG). acting on behalf of its Max Planck Institute +# for Intelligent Systems. All rights reserved. +# +# Contact: mica@tue.mpg.de + +import glob +from PIL import Image, ImageDraw +import networkx as nx +import trimesh +from pytorch3d.ops import knn_points +import cv2 +import numpy as np +import torch +import torch.nn.functional as F +from torch import nn +from torchvision.transforms.functional import gaussian_blur +from tqdm import tqdm + + +l1_loss = nn.SmoothL1Loss(beta=0.1) + +face_mask = torch.ones([1, 68, 2]).cuda().float() +nose_mask = torch.ones([1, 68, 2]).cuda().float() +oval_mask = torch.ones([1, 68, 2]).cuda().float() + +face_mask[:, [36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47], :] = 0 +nose_mask[:, [27, 28, 29, 30, 31, 32, 33, 34, 35], :] *= 4.0 +oval_mask[:, [i for i in range(17)], :] *= 0.4 + + + +# Input is R, t in opencv spave +def opencv_to_opengl(R, t): + # opencv is row major + # opengl is column major + Rt = np.eye(4) + Rt[:3, :3] = R + Rt[:3, 3] = t + + Rt[[1, 2]] *= -1 # opencv to opengl coordinate system swap y,z + + ''' + | R | t | + | 0 | 1 | + + inverse is + + | R^T | -R^T * t | + | 0 | 1 | + + ''' + + # Transpose rotation (row to column wise) and adjust camera position for the new rotation matrix + Rt = np.linalg.inv(Rt) + return Rt + + +def dict2obj(d): + if isinstance(d, list): + d = [dict2obj(x) for x in d] + if not isinstance(d, dict): + return d + + class C(object): + pass + + o = C() + for k in d: + o.__dict__[k] = dict2obj(d[k]) + return o + + +def l2_distance(verts1, verts2): + return torch.sqrt(((verts1 - verts2) ** 2).sum(2)).mean(1).mean() + + +def scale_lmks(opt_lmks, target_lmks, image_size): + h, w = image_size + size = torch.tensor([1 / w, 1 / h]).float().cuda()[None, None, ...] + opt_lmks = opt_lmks * size + target_lmks = target_lmks * size + return opt_lmks, target_lmks + + +def lmk_loss(opt_lmks, target_lmks, image_size, lmk_mask, omit_mean=False): + opt_lmks, target_lmks = scale_lmks(opt_lmks, target_lmks, image_size) + diff = torch.pow(opt_lmks - target_lmks, 2) + if omit_mean: + return (diff.sqrt() * lmk_mask) + else: + return (diff * lmk_mask).mean() +def lmk_loss_l1(opt_lmks, target_lmks, image_size, lmk_mask): + opt_lmks, target_lmks = scale_lmks(opt_lmks, target_lmks, image_size) + diff = torch.abs(opt_lmks - target_lmks) + return (diff * lmk_mask).mean() + + +def face_lmk_loss(opt_lmks, target_lmks, image_size, is_mediapipe, lmk_mask, omit_mean = False): + opt_lmks, target_lmks = scale_lmks(opt_lmks, target_lmks, image_size) + diff = torch.pow(opt_lmks - target_lmks, 2) + if not is_mediapipe: + if omit_mean: + return (diff.sqrt() * face_mask * nose_mask * oval_mask * lmk_mask) + else: + return (diff * face_mask * nose_mask * oval_mask * lmk_mask).mean() + if omit_mean: + return (diff.sqrt() * nose_mask_mp * lmk_mask * face_mask_mp) + else: + return (diff * nose_mask_mp * lmk_mask * face_mask_mp).mean() + + +def oval_lmk_loss(opt_lmks, target_lmks, image_size, lmk_mask, omit_mean=False): + oval_ids = [i for i in range(17)] + opt_lmks, target_lmks = scale_lmks(opt_lmks, target_lmks, image_size) + diff = torch.pow(opt_lmks[:, oval_ids, :] - target_lmks[:, oval_ids, :], 2) + if omit_mean: + return (diff.sqrt() * lmk_mask[:, oval_ids, :]) + else: + return (diff * lmk_mask[:, oval_ids, :]).mean() + + +def mouth_lmk_loss(opt_lmks, target_lmks, image_size, is_mediapipe, lmk_mask, omit_mean=False): + if not is_mediapipe: + mouth_ids = [i for i in range(49, 68)] + else: + mouth_ids = get_idx(LIPS_LANDMARK_IDS) + opt_lmks, target_lmks = scale_lmks(opt_lmks, target_lmks, image_size) + diff = torch.pow(opt_lmks[:, mouth_ids, :] - target_lmks[:, mouth_ids, :], 2) + if omit_mean: + return (diff.sqrt() * lmk_mask[:, mouth_ids, :]) + else: + return (diff * lmk_mask[:, mouth_ids, :]).mean() + + +def eye_closure_lmk_loss(opt_lmks, target_lmks, image_size, lmk_mask, omit_mean=False): + upper_eyelid_lmk_ids = [37, 38, 43, 44] #[47, 46, 45, 29, 30, 31] + lower_eyelid_lmk_ids = [41, 40, 47, 46]#[39, 40, 41, 25, 24, 23] + opt_lmks, target_lmks = scale_lmks(opt_lmks, target_lmks, image_size) + diff_opt = opt_lmks[:, upper_eyelid_lmk_ids, :] - opt_lmks[:, lower_eyelid_lmk_ids, :] + diff_target = target_lmks[:, upper_eyelid_lmk_ids, :] - target_lmks[:, lower_eyelid_lmk_ids, :] + diff = torch.pow(diff_opt - diff_target, 2) + if omit_mean: + return (diff.sqrt() * lmk_mask[:, upper_eyelid_lmk_ids, :]) + else: + return (diff * lmk_mask[:, upper_eyelid_lmk_ids, :]).mean() + + +def mouth_closure_lmk_loss(opt_lmks, target_lmks, image_size, lmk_mask): + upper_mouth_lmk_ids = [49, 50, 51, 52, 53, 61, 62, 63] + lower_mouth_lmk_ids = [59, 58, 57, 56, 55, 67, 66, 65] + opt_lmks, target_lmks = scale_lmks(opt_lmks, target_lmks, image_size) + diff_opt = opt_lmks[:, upper_mouth_lmk_ids, :] - opt_lmks[:, lower_mouth_lmk_ids, :] + diff_target = target_lmks[:, upper_mouth_lmk_ids, :] - target_lmks[:, lower_mouth_lmk_ids, :] + diff = torch.pow(diff_opt - diff_target, 2) + return (diff * lmk_mask[:, upper_mouth_lmk_ids, :]).mean() + + +def pixel_loss_(opt_img, target_img, mask=None, type_outer='l1', type_inner='l1'): + if mask is None: + mask = torch.ones_like(opt_img) + n_pixels = torch.sum((mask[:, 0, ...] > 0).int()).detach().float() + + if type_inner == 'l1': + loss = (mask * (opt_img - target_img)).abs() + elif type_inner == 'l2': + loss = (mask * (opt_img - target_img)).square() + elif type_inner == 'huber': + loss = torch.nn.functional.huber_loss(mask * opt_img, mask*target_img, reduction='none') + else: + assert 1 == 2 + + if type_outer == 'l1': + loss = loss.sum(dim=-1) + elif type_outer == 'l2': + loss = loss.norm(dim=1) + else: + assert 1 == 2 + + loss = torch.sum(loss) / n_pixels + + return loss + +def pixel_loss(opt_img, target_img, mask=None, type_outer='l1', type_inner='l2', mouth_mask = None, + is_synth : bool = False, + skip_reduction : bool = False + ): + if mask is None: + mask = torch.ones_like(opt_img) + if mouth_mask is not None: + mask = mask * (1-mouth_mask) + + if is_synth: + mask = torch.ones_like(mask) + + if skip_reduction: + return mask * (opt_img-target_img) + n_pixels = torch.sum((mask[:, 0, ...] > 0).int()).detach().float() + if type_inner == 'frobenius': + + loss = (mask * (opt_img - target_img)).norm() / n_pixels + else: + if type_inner == 'l1': + loss = (mask * (opt_img - target_img)).abs() + elif type_inner == 'l2': + loss = (mask * (opt_img - target_img)).square().sum(dim=1) #norm(dim=1) + elif type_inner == 'huber': + loss = torch.nn.functional.huber_loss(mask * opt_img, mask * target_img, reduction='none', delta=0.1)/0.1 + + loss = torch.sum(loss) / n_pixels + + return loss + +def similarity_transform(from_points, to_points): + assert len(from_points.shape) == 2, \ + "from_points must be a m x n array" + assert from_points.shape == to_points.shape, \ + "from_points and to_points must have the same shape" + + N, m = from_points.shape + + mean_from = from_points.mean(axis=0) + mean_to = to_points.mean(axis=0) + + delta_from = from_points - mean_from # N x m + delta_to = to_points - mean_to # N x m + + sigma_from = (delta_from * delta_from).sum(axis=1).mean() + sigma_to = (delta_to * delta_to).sum(axis=1).mean() + + cov_matrix = delta_to.T.dot(delta_from) / N + try: + U, d, V_t = np.linalg.svd(cov_matrix, full_matrices=True) + except Exception as exe: + print('SVD did not converge!') + return None, None, None + cov_rank = np.linalg.matrix_rank(cov_matrix) + S = np.eye(m) + + if cov_rank >= m - 1 and np.linalg.det(cov_matrix) < 0: + S[m - 1, m - 1] = -1 + elif cov_rank < m - 1: + print("colinearility detected in covariance matrix:\n{}".format(cov_matrix)) + return None, None, None + + R = U.dot(S).dot(V_t) + c = (d * S.diagonal()).sum() / sigma_from + t = mean_to - c * R.dot(mean_from) + + return c, R, t + + +def reg_loss(params): + return torch.mean(torch.sum(torch.square(params), dim=1)) + + +def face_vertices(vertices, faces): + """ + :param vertices: [batch size, number of vertices, 3] + :param faces: [batch size, number of faces, 3] + :return: [batch size, number of faces, 3, 3] + """ + assert (vertices.ndimension() == 3) + assert (faces.ndimension() == 3) + assert (vertices.shape[0] == faces.shape[0]) + assert (vertices.shape[2] == 3) + assert (faces.shape[2] == 3) + + bs, nv = vertices.shape[:2] + bs, nf = faces.shape[:2] + device = vertices.device + faces = faces + (torch.arange(bs, dtype=torch.int32).to(device) * nv)[:, None, None] + vertices = vertices.reshape((bs * nv, 3)) + # pytorch only supports long and byte tensors for indexing + return vertices[faces.long()] + + +def vertex_normals(vertices, faces): + """ + :param vertices: [batch size, number of vertices, 3] + :param faces: [batch size, number of faces, 3] + :return: [batch size, number of vertices, 3] + """ + assert (vertices.ndimension() == 3) + assert (faces.ndimension() == 3) + assert (vertices.shape[0] == faces.shape[0]) + assert (vertices.shape[2] == 3) + assert (faces.shape[2] == 3) + + bs, nv = vertices.shape[:2] + bs, nf = faces.shape[:2] + device = vertices.device + normals = torch.zeros(bs * nv, 3).to(device) + + faces = faces + (torch.arange(bs, dtype=torch.int32).to(device) * nv)[:, None, None] # expanded faces + vertices_faces = vertices.reshape((bs * nv, 3))[faces.long()] + + faces = faces.view(-1, 3) + vertices_faces = vertices_faces.view(-1, 3, 3) + + normals.index_add_(0, faces[:, 1].long(), + torch.cross(vertices_faces[:, 2] - vertices_faces[:, 1], + vertices_faces[:, 0] - vertices_faces[:, 1])) + normals.index_add_(0, faces[:, 2].long(), + torch.cross(vertices_faces[:, 0] - vertices_faces[:, 2], + vertices_faces[:, 1] - vertices_faces[:, 2])) + normals.index_add_(0, faces[:, 0].long(), + torch.cross(vertices_faces[:, 1] - vertices_faces[:, 0], + vertices_faces[:, 2] - vertices_faces[:, 0])) + + normals = F.normalize(normals, eps=1e-6, dim=1) + normals = normals.reshape((bs, nv, 3)) + # pytorch only supports long and byte tensors for indexing + return normals + + +def tensor_vis_landmarks(images, landmarks, color='g'): + vis_landmarks = [] + images = images.cpu().numpy() + predicted_landmarks = landmarks.detach().cpu().numpy() + + for i in range(images.shape[0]): + image = images[i] + image = image.transpose(1, 2, 0)[:, :, [2, 1, 0]].copy() + image = (image * 255) + predicted_landmark = predicted_landmarks[i] + image_landmarks = plot_all_kpts(image, predicted_landmark, color) + vis_landmarks.append(image_landmarks) + + vis_landmarks = np.stack(vis_landmarks) + vis_landmarks = torch.from_numpy( + vis_landmarks[:, :, :, [2, 1, 0]].transpose(0, 3, 1, 2)) / 255. # , dtype=torch.float32) + return vis_landmarks + + +end_list = np.array([17, 22, 27, 42, 48, 31, 36, 68], dtype=np.int32) - 1 + + +def plot_kpts(image, kpts, color='r'): + ''' Draw 68 key points + Args: + image: the input image + kpt: (68, 3). + ''' + c = (0, 100, 255) + if color == 'r': + c = (0, 0, 255) + elif color == 'g': + c = (0, 255, 0) + elif color == 'b': + c = (255, 0, 0) + + image = image.copy() + kpts = kpts.copy() + + # for j in range(kpts.shape[0] - 17): + for j in range(kpts.shape[0]): + # i = j + 17 + st = kpts[j, :2] + image = cv2.circle(image, (int(st[0]), int(st[1])), 1, c, 2) + if j in end_list: + continue + ed = kpts[j + 1, :2] + image = cv2.line(image, (int(st[0]), int(st[1])), (int(ed[0]), int(ed[1])), (255, 255, 255), 1) + + return image + + +def plot_all_kpts(image, kpts, color='b'): + if color == 'r': + c = (0, 0, 255) + elif color == 'g': + c = (0, 255, 0) + elif color == 'b': + c = (255, 0, 0) + elif color == 'p': + c = (255, 100, 100) + + image = image.copy() + kpts = kpts.copy() + + for i in range(kpts.shape[0]): + st = kpts[i, :2] + image = cv2.circle(image, (int(st[0]), int(st[1])), 1, c, 2) + + return image + + +def get_gaussian_pyramid_og(levels, input, kernel_size, sigma, mouth_mask=None, fg_mask=None, hair_mask=None, mouth_lip_region=None, normal_map=None, + uv_map=None, albedo=None, pos_map=None, uv_mask=None, + ): + pyramid = [] + images = input.clone() + if mouth_mask is not None: + mask = mouth_mask.clone() + if fg_mask is not None: + fg_mask_clone = fg_mask.clone() + if hair_mask is not None: + hair_mask_clone = hair_mask.clone() + if normal_map is not None: + normal_map_clone = normal_map.clone() + if uv_map is not None: + uv_map_clone = uv_map.clone() + if pos_map is not None: + pos_map_clone = pos_map.clone() + if albedo is not None: + albedo_clone = albedo.clone() + if uv_mask is not None: + uv_mask_clone = uv_mask.clone() + if mouth_lip_region is not None: + mouth_lip_region_clone = mouth_lip_region.clone() + for k, level in enumerate(reversed(levels)): + image_size, iters = level + size = [int(image_size[0]), int(image_size[1])] + if fg_mask is not None: + fg_mask_clone = F.interpolate(fg_mask_clone, size, mode='bilinear', align_corners=False) + fg_mask_clone = gaussian_blur(fg_mask_clone, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + else: + fg_mask_clone = None + if hair_mask is not None: + hair_mask_clone = F.interpolate(hair_mask_clone, size, mode='bilinear', align_corners=False) + hair_mask_clone = gaussian_blur(hair_mask_clone, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + else: + hair_mask_clone = None + if mouth_lip_region is not None: + mouth_lip_region_clone = F.interpolate(mouth_lip_region_clone, size, mode='bilinear', align_corners=False) + mouth_lip_region_clone = gaussian_blur(mouth_lip_region_clone, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + else: + mouth_lip_region_clone = None + if normal_map is not None: + normal_map_clone = F.interpolate(normal_map_clone, size, mode='bilinear', align_corners=False) + normal_map_clone = gaussian_blur(normal_map_clone, [kernel_size, kernel_size], + sigma=[sigma, sigma] if sigma is not None else None) + else: + normal_map_clone = None + if uv_map is not None: + uv_map_clone = F.interpolate(uv_map_clone, size, mode='bilinear', align_corners=False) + #uv_map_clone = gaussian_blur(uv_map_clone, [kernel_size, kernel_size], + # sigma=[sigma, sigma] if sigma is not None else None) + else: + uv_map_clone = None + if pos_map is not None: + pos_map_clone = F.interpolate(pos_map_clone, size, mode='bilinear', align_corners=False) + #uv_map_clone = gaussian_blur(uv_map_clone, [kernel_size, kernel_size], + # sigma=[sigma, sigma] if sigma is not None else None) + else: + pos_map_clone = None + if albedo is not None: + albedo_clone = F.interpolate(albedo_clone, size, mode='bilinear', align_corners=False) + #uv_map_clone = gaussian_blur(uv_map_clone, [kernel_size, kernel_size], + # sigma=[sigma, sigma] if sigma is not None else None) + else: + albedo_clone = None + if uv_mask is not None: + uv_mask_clone = F.interpolate(uv_mask_clone, size, mode='bilinear', align_corners=False) + #uv_map_clone = gaussian_blur(uv_map_clone, [kernel_size, kernel_size], + # sigma=[sigma, sigma] if sigma is not None else None) + else: + uv_mask_clone = None + if mouth_mask is not None: + images = F.interpolate(images, size, mode='bilinear', align_corners=False) + mask = F.interpolate(mask.float(), size, mode='bilinear', align_corners=False).byte() + images = gaussian_blur(images, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + #mask = gaussian_blur(mask, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + pyramid.append((images, mask, fg_mask_clone, hair_mask_clone, mouth_lip_region_clone, normal_map_clone, uv_map_clone, albedo_clone, pos_map_clone, uv_mask_clone, iters, size, image_size)) + else: + images = F.interpolate(images, size, mode='bilinear', align_corners=False) + images = gaussian_blur(images, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + pyramid.append((images, None, fg_mask_clone, hair_mask_clone, mouth_lip_region_clone, normal_map_clone, uv_map_clone, albedo_clone, pos_map_clone, uv_mask_clone, iters, size, image_size)) + + + return list(reversed(pyramid)) + +def get_gaussian_pyramid_new(levels, input, kernel_size, sigma, mouth_mask=None, fg_mask=None, hair_mask=None, mouth_lip_region=None, normal_map=None, + uv_map=None, pos_map=None, albedo=None, uv_mask=None): + #sigma = sigma * 2 + pyramid = [] + images = input.clone() + + if mouth_mask is not None: + og_mask = mouth_mask.clone() + else: + mouth_mask = None + if fg_mask is not None: + fg_mask_clone = fg_mask.clone() + if hair_mask is not None: + hair_mask_clone = hair_mask.clone() + if mouth_lip_region is not None: + mouth_lip_region_clone = mouth_lip_region.clone() + if normal_map is not None: + normal_map_clone = normal_map.clone() + if uv_map is not None: + uv_map_clone = uv_map.clone() + if pos_map is not None: + pos_map_clone = pos_map.clone() + if albedo is not None: + albedo_clone = albedo.clone() + if uv_mask is not None: + uv_mask_clone = uv_mask.clone() + for k, level in enumerate(reversed(levels)): + image_size, iters = level + size = [int(image_size[0]), int(image_size[1])] + if k == len(levels)-1: + images = input.clone() + if mouth_mask is not None: + mouth_mask = og_mask.clone() + if fg_mask is not None: + fg_mask = fg_mask_clone.clone() + else: + fg_mask = None + if hair_mask is not None: + hair_mask = hair_mask_clone.clone() + else: + hair_mask = None + if mouth_lip_region is not None: + mouth_lip_region = mouth_lip_region_clone.clone() + else: + mouth_lip_region = None + if normal_map is not None: + normal_map = normal_map_clone.clone() + else: + normal_map = None + if uv_map is not None: + uv_map = uv_map_clone.clone() + else: + uv_map = None + if pos_map is not None: + pos_map = pos_map_clone.clone() + else: + pos_map = None + if albedo is not None: + albedo = albedo_clone.clone() + else: + albedo = None + if uv_mask is not None: + uv_mask = uv_mask_clone.clone() + else: + uv_mask = None + elif k > 0: + if fg_mask is not None: + fg_mask = gaussian_blur(fg_mask, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + fg_mask = F.interpolate(fg_mask, size, mode='bilinear', align_corners=False) + else: + fg_mask = None + if hair_mask is not None: + hair_mask = gaussian_blur(hair_mask, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + hair_mask = F.interpolate(hair_mask, size, mode='bilinear', align_corners=False) + else: + hair_mask = None + if mouth_lip_region is not None: + mouth_lip_region = gaussian_blur(mouth_lip_region, [kernel_size, kernel_size], + sigma=[sigma, sigma] if sigma is not None else None) + mouth_lip_region = F.interpolate(mouth_lip_region, size, mode='bilinear', align_corners=False) + else: + mouth_lip_region = None + + if normal_map is not None: + normal_map = gaussian_blur(normal_map, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + normal_map = F.interpolate(normal_map, size, mode='bilinear', align_corners=False) + else: + normal_map = None + if uv_map is not None: + #uv_map = gaussian_blur(uv_map, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + uv_map = F.interpolate(uv_map, size, mode='bilinear', align_corners=False) + else: + uv_map = None + if pos_map is not None: + #uv_map = gaussian_blur(uv_map, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + pos_map = F.interpolate(pos_map, size, mode='bilinear', align_corners=False) + else: + pos_map = None + if albedo is not None: + #uv_map = gaussian_blur(uv_map, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + albedo = F.interpolate(albedo, size, mode='bilinear', align_corners=False) + else: + albedo = None + + if uv_mask is not None: + #uv_map = gaussian_blur(uv_map, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + uv_mask = F.interpolate(uv_mask, size, mode='bilinear', align_corners=False) + else: + uv_mask = None + + if mouth_mask is not None: + images = gaussian_blur(images, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + #mouth_mask = gaussian_blur(mouth_mask, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + images = F.interpolate(images, size, mode='bilinear', align_corners=False) + mouth_mask = F.interpolate(mouth_mask.float(), size, mode='bilinear', align_corners=False).byte() + + else: + images = gaussian_blur(images, [kernel_size, kernel_size], sigma=[sigma, sigma] if sigma is not None else None) + images = F.interpolate(images, size, mode='bilinear', align_corners=False) + pyramid.append((images, mouth_mask, fg_mask, hair_mask, mouth_lip_region, normal_map, uv_map, albedo, pos_map, uv_mask, iters, size, image_size)) + + return list(reversed(pyramid)) + + +def generate_triangles(h, w, margin_x=2, margin_y=5, mask=None): + # quad layout: + # 0 1 ... w-1 + # w w+1 + # . + # w*h + triangles = [] + for x in range(margin_x, w - 1 - margin_x): + for y in range(margin_y, h - 1 - margin_y): + triangle0 = [y * w + x, y * w + x + 1, (y + 1) * w + x] + triangle1 = [y * w + x + 1, (y + 1) * w + x + 1, (y + 1) * w + x] + triangles.append(triangle0) + triangles.append(triangle1) + triangles = np.array(triangles) + triangles = triangles[:, [0, 2, 1]] + return triangles + + +def get_aspect_ratio(images): + h, w = images.shape[1:3] + ratio = w / h + if ratio > 1.0: + aspect_ratio = torch.tensor([1. / ratio, 1.0]).float().cuda()[None] + else: + aspect_ratio = torch.tensor([1.0, ratio]).float().cuda()[None] + return aspect_ratio + + +def is_optimizable(name, param_groups): + for param in param_groups: + if name.strip() in param['name']: + return True + return False + + +def merge_views(views): + grid = [] + for view in views: + grid.append(np.concatenate(view, axis=2)) + grid = np.concatenate(grid, axis=1) + + # tonemapping + return to_image(grid) + + +def to_image(img): + img = (img.transpose(1, 2, 0) * 255)[:, :, [2, 1, 0]] + img = np.minimum(np.maximum(img, 0), 255).astype(np.uint8) + return img + + +def dump_point_cloud(name, view): + _, _, h, w = view.shape + np.savetxt(f'pc_{name}.xyz', view.permute(0, 2, 3, 1).reshape(h * w, 3).detach().cpu().numpy(), fmt='%f') + + +def round_up_to_odd(f): + return int(np.ceil(f) // 2 * 2 + 1) + + +def images_to_video(path, fps=25, src='video', video_format='DIVX'): + img_array = [] + for filename in tqdm(sorted(glob.glob(f'{path}/{src}/*.jpg'))): + img = cv2.imread(filename) + height, width, layers = img.shape + size = (width, height) + img_array.append(img) + + if len(img_array) > 0: + out = cv2.VideoWriter(f'{path}/video.avi', cv2.VideoWriter_fourcc(*video_format), fps, size) + for i in range(len(img_array)): + out.write(img_array[i]) + out.release() + + +def grid_sample(image, optical, align_corners=False): + N, C, IH, IW = image.shape + _, H, W, _ = optical.shape + + ix = optical[..., 0] + iy = optical[..., 1] + + ix = ((ix + 1) / 2) * (IW - 1); + iy = ((iy + 1) / 2) * (IH - 1); + with torch.no_grad(): + ix_nw = torch.floor(ix); + iy_nw = torch.floor(iy); + ix_ne = ix_nw + 1; + iy_ne = iy_nw; + ix_sw = ix_nw; + iy_sw = iy_nw + 1; + ix_se = ix_nw + 1; + iy_se = iy_nw + 1; + + nw = (ix_se - ix) * (iy_se - iy) + ne = (ix - ix_sw) * (iy_sw - iy) + sw = (ix_ne - ix) * (iy - iy_ne) + se = (ix - ix_nw) * (iy - iy_nw) + + with torch.no_grad(): + torch.clamp(ix_nw, 0, IW - 1, out=ix_nw) + torch.clamp(iy_nw, 0, IH - 1, out=iy_nw) + + torch.clamp(ix_ne, 0, IW - 1, out=ix_ne) + torch.clamp(iy_ne, 0, IH - 1, out=iy_ne) + + torch.clamp(ix_sw, 0, IW - 1, out=ix_sw) + torch.clamp(iy_sw, 0, IH - 1, out=iy_sw) + + torch.clamp(ix_se, 0, IW - 1, out=ix_se) + torch.clamp(iy_se, 0, IH - 1, out=iy_se) + + image = image.view(N, C, IH * IW) + + nw_val = torch.gather(image, 2, (iy_nw * IW + ix_nw).long().view(N, 1, H * W).repeat(1, C, 1)) + ne_val = torch.gather(image, 2, (iy_ne * IW + ix_ne).long().view(N, 1, H * W).repeat(1, C, 1)) + sw_val = torch.gather(image, 2, (iy_sw * IW + ix_sw).long().view(N, 1, H * W).repeat(1, C, 1)) + se_val = torch.gather(image, 2, (iy_se * IW + ix_se).long().view(N, 1, H * W).repeat(1, C, 1)) + + out_val = (nw_val.view(N, C, H, W) * nw.view(N, 1, H, W) + + ne_val.view(N, C, H, W) * ne.view(N, 1, H, W) + + sw_val.view(N, C, H, W) * sw.view(N, 1, H, W) + + se_val.view(N, C, H, W) * se.view(N, 1, H, W)) + + return out_val + + +def get_flame_extra_faces(): + return torch.from_numpy( + np.array( + [[1573, 1572, 1860], + [1742, 1862, 1572], + [1830, 1739, 1665], + [2857, 2862, 2730], + [2708, 2857, 2730], + [1862, 1742, 1739], + [1830, 1862, 1739], + [1852, 1835, 1666], + [1835, 1665, 1666], + [2862, 2861, 2731], + [1747, 1742, 1594], + [3497, 1852, 3514], + [1595, 1747, 1594], + [1746, 1747, 1595], + [1742, 1572, 1594], + [2941, 3514, 2783], + [2708, 2945, 2857], + [2941, 3497, 3514], + [1852, 1666, 3514], + [2930, 2933, 2782], + [2933, 2941, 2783], + [2862, 2731, 2730], + [2945, 2930, 2854], + [1835, 1830, 1665], + [2857, 2945, 2854], + [1572, 1862, 1860], + [2854, 2930, 2782], + [2708, 2709, 2943], + [2782, 2933, 2783], + [2708, 2943, 2945]])).cuda()[None, ...] + + +def rigid_transform(A, B): + assert A.shape == B.shape + + num_rows, num_cols = A.shape + if num_rows != 3: + raise Exception(f"matrix A is not 3xN, it is {num_rows}x{num_cols}") + + num_rows, num_cols = B.shape + if num_rows != 3: + raise Exception(f"matrix B is not 3xN, it is {num_rows}x{num_cols}") + + # find mean column wise + centroid_A = np.mean(A, axis=1) + centroid_B = np.mean(B, axis=1) + + # ensure centroids are 3x1 + centroid_A = centroid_A.reshape(-1, 1) + centroid_B = centroid_B.reshape(-1, 1) + + # subtract mean + Am = A - centroid_A + Bm = B - centroid_B + + H = Am @ np.transpose(Bm) + + # sanity check + # if linalg.matrix_rank(H) < 3: + # raise ValueError("rank of H = {}, expecting 3".format(linalg.matrix_rank(H))) + + # find rotation + U, S, Vt = np.linalg.svd(H) + R = Vt.T @ U.T + + # special reflection case + if np.linalg.det(R) < 0: + print("det(R) < R, reflection detected!, correcting for it ...") + Vt[2, :] *= -1 + R = Vt.T @ U.T + + t = -R @ centroid_A + centroid_B + + return 1, R, np.squeeze(t) + diff --git a/src/pixel3dmm/utils/drawing.py b/src/pixel3dmm/utils/drawing.py new file mode 100644 index 0000000000000000000000000000000000000000..edcdb73ed777e0b961dfe613d94fea492874a5c6 --- /dev/null +++ b/src/pixel3dmm/utils/drawing.py @@ -0,0 +1,58 @@ +from matplotlib import pyplot as plt +import numpy as np +from PIL import Image +import io +import cv2 + + +def get_img_from_fig(fig, w=256, h=256, dpi=180): + buf = io.BytesIO() + fig.savefig(buf, format="png", dpi=dpi, bbox_inches='tight', pad_inches=0) + buf.seek(0) + img_arr = np.frombuffer(buf.getvalue(), dtype=np.uint8) + buf.close() + img = cv2.resize(cv2.imdecode(img_arr, 1), (w, h)) + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + + return img + + +def plot_points(image, pts, pts2): + + fig = plt.figure(frameon=False) + #fig.set_size_inches(w,h) + plt.axis('off') + #ax = plt.Axes(fig, [0., 0., 1., 1.]) + + #fig.add_axes(ax) + + #ax.imshow(your_image, aspect='auto') + plt.imshow(image) + #plt.plot(640, 570, "og", markersize=10) # og:shorthand for green circle + plt.scatter(pts[:, 0], pts[:, 1], marker="o", color="red", s=1) + plt.scatter(pts2[:, 0], pts2[:, 1], marker="o", color="green", s=1) + plt.plot(np.stack([pts[:, 0], pts2[:, 0]], axis=0), np.stack([pts[:, 1], pts2[:, 1]], axis=0), '-b', linewidth=0.2) + #plt.plot() + #plt.show() + fig.canvas.draw() + + #data = np.frombuffer(fig.canvas.tostring_rgb(), dtype=np.uint8) + #data = data.reshape(fig.canvas.get_width_height()[::-1] + (3,)) + + data = get_img_from_fig(fig) + plt.close(fig) + return data + + +if __name__ == '__main__': + image = np.ones([1024, 1024, 3], dtype=np.uint8) * 255 + pts = np.array([[330, 620], [950, 620], [692, 450], [587, 450]]) + pts2 = np.array([[330, 620], [950, 620], [692, 450], [587, 450]]) + pts2 = pts2 * 0.75 + + + data = plot_points(image, pts, pts2) + print(data.shape) + Image.fromarray(data).show() + + diff --git a/src/pixel3dmm/utils/masking.py b/src/pixel3dmm/utils/masking.py new file mode 100644 index 0000000000000000000000000000000000000000..588032fa1e670799ea8df88c906826423a3db089 --- /dev/null +++ b/src/pixel3dmm/utils/masking.py @@ -0,0 +1,211 @@ +# -*- coding: utf-8 -*- + +# Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. (MPG) is +# holder of all proprietary rights on this computer program. +# You can only use this computer program if you have closed +# a license agreement with MPG or you get the right to use the computer +# program from someone who is authorized to grant you that right. +# Any use of the computer program without a valid license is prohibited and +# liable to prosecution. +# +# Copyright©2023 Max-Planck-Gesellschaft zur Förderung +# der Wissenschaften e.V. (MPG). acting on behalf of its Max Planck Institute +# for Intelligent Systems. All rights reserved. +# +# Contact: mica@tue.mpg.de + +import os +import pickle + +import numpy as np +import torch +import torch.nn as nn +import trimesh +from trimesh import Trimesh + +from pixel3dmm import env_paths + + +def to_tensor(array, dtype=torch.float32): + if 'torch.tensor' not in str(type(array)): + return torch.tensor(array, dtype=dtype) + + +def to_np(array, dtype=np.float32): + if 'scipy.sparse' in str(type(array)): + array = array.todense() + return np.array(array, dtype=dtype) + + +class Struct(object): + def __init__(self, **kwargs): + for key, val in kwargs.items(): + setattr(self, key, val) + + +class Masking(nn.Module): + def __init__(self): + + dir = f'{env_paths.FLAME_ASSETS}' + super(Masking, self).__init__() + with open(f'{dir}/FLAME2020/FLAME_masks/FLAME_masks.pkl', 'rb') as f: + ss = pickle.load(f, encoding='latin1') + self.masks = Struct(**ss) + + with open(f'{dir}/FLAME2020/generic_model.pkl', 'rb') as f: + ss = pickle.load(f, encoding='latin1') + flame_model = Struct(**ss) + + self.color_mesh = trimesh.load(f'{env_paths.head_template_color}', process=False) + self.color_mask = (np.array(self.color_mesh.visual.vertex_colors[:, 0:3]) == [255, 0, 0])[:, 0].nonzero()[0] + self.color_mask = np.array([i for i in self.color_mask if i not in self.get_mask_eyes()]) + + self.dtype = torch.float32 + self.register_buffer('faces', to_tensor(to_np(flame_model.f, dtype=np.int64), dtype=torch.long)) + self.register_buffer('vertices', to_tensor(to_np(flame_model.v_template), dtype=self.dtype)) + + def to_render_mask(self, mask): + face_mask = torch.zeros_like(self.vertices)[None] + face_mask[:, mask, :] = 1.0 + return face_mask + + def get_faces(self): + return self.faces + + def get_color_mask(self): + return self.color_mask + + def get_mask_face(self): + return self.masks.face + + def get_mask_lips(self): + return self.masks.lips + + def get_mask_rendering(self): + face_mask = torch.zeros_like(self.vertices)[None] + face_mask[:, self.masks.face, :] = 1.0 + face_mask[:, self.masks.left_eyeball, :] = 1.0 + face_mask[:, self.masks.right_eyeball, :] = 1.0 + + # face_mask = torch.ones_like(self.vertices)[None] + # face_mask[:, self.masks.boundary, :] = 0.0 + # face_mask[:, self.masks.left_ear, :] = 0.0 + # face_mask[:, self.masks.right_ear, :] = 0.0 + return face_mask + + def get_mask_depth(self): + face_mask = torch.ones_like(self.vertices)[None] + face_mask[:, self.masks.boundary, :] = 0.0 + face_mask[:, self.masks.left_ear, :] = 0.0 + face_mask[:, self.masks.right_ear, :] = 0.0 + return face_mask + + def get_mask_eyes(self): + left = self.masks.left_eyeball + right = self.masks.right_eyeball + + return np.unique(np.concatenate((left, right))) + + def get_mask_eyes_rendering(self): + eyes_mask = torch.zeros_like(self.vertices)[None] + eyes_mask[:, self.get_mask_eyes(), :] = 1.0 + + return eyes_mask + + def get_mask_eyes_region(self): + left = self.masks.left_eye_region + right = self.masks.right_eye_region + mask = np.unique(np.concatenate((left, right))) + + return mask + + def get_mask_eyes_region_rendering(self): + left = self.masks.left_eye_region + right = self.masks.right_eye_region + + mask = np.unique(np.concatenate((left, right))) + eyes_mask = torch.zeros_like(self.vertices)[None] + eyes_mask[:, mask, :] = 1.0 + + return eyes_mask + + def get_mask_ears(self): + left = self.masks.left_ear + right = self.masks.right_ear + + return np.unique(np.concatenate((left, right))) + + def get_triangle_face_mask(self): + m = self.color_mask + return self.get_triangle_mask(m) + + def get_triangle_color_face_mask(self): + m = self.masks.face + return self.get_triangle_mask(m) + + def get_triangle_eyes_mask(self): + m = self.get_mask_eyes() + return self.get_triangle_mask(m) + + def get_triangle_whole_mask(self): + m = self.get_whole_mask() + return self.get_triangle_mask(m) + + def get_triangle_mask(self, m): + f = self.faces.cpu().numpy() + selected = [] + for i in range(f.shape[0]): + l = f[i] + valid = 0 + for j in range(3): + if l[j] in m: + valid += 1 + if valid == 3: + selected.append(i) + + return np.unique(selected) + + def get_binary_triangle_mask(self): + mask = self.get_whole_mask() + faces = self.faces.cpu().numpy() + reduced_faces = [] + for f in faces: + valid = 0 + for v in f: + if v in mask: + valid += 1 + reduced_faces.append(True if valid == 3 else False) + + return reduced_faces + + def get_masked_faces(self): + if self.masked_faces is None: + faces = self.faces.cpu().numpy() + vertices = self.vertices.cpu().numpy() + m = Trimesh(vertices=vertices, faces=faces, process=False) + m.update_faces(self.get_binary_triangle_mask()) + self.masked_faces = torch.from_numpy(np.array(m.faces)).cuda().long()[None] + + return self.masked_faces + + def get_masked_mesh(self, vertices, triangle_mask): + if len(vertices.shape) == 2: + vertices = vertices[None] + B, N, V = vertices.shape + faces = self.faces.cpu().numpy() + masked_vertices = torch.empty(0, 0, 3).cuda() + masked_faces = torch.empty(0, 0, 3).cuda() + for i in range(B): + m = Trimesh(vertices=vertices[i].detach().cpu().numpy(), faces=faces, process=False) + m.update_faces(triangle_mask) + m.process() + f = torch.from_numpy(np.array(m.faces)).cuda()[None] + v = torch.from_numpy(np.array(m.vertices)).cuda()[None].float() + if masked_vertices.shape[1] != v.shape[1]: + masked_vertices = torch.empty(0, v.shape[1], 3).cuda() + if masked_faces.shape[1] != f.shape[1]: + masked_faces = torch.empty(0, f.shape[1], 3).cuda() + masked_vertices = torch.cat([masked_vertices, v]) + masked_faces = torch.cat([masked_faces, f]) + + return masked_vertices, masked_faces diff --git a/src/pixel3dmm/utils/misc.py b/src/pixel3dmm/utils/misc.py new file mode 100644 index 0000000000000000000000000000000000000000..81d33debd9b1a3e8b9edf43f74619015ee33a6b9 --- /dev/null +++ b/src/pixel3dmm/utils/misc.py @@ -0,0 +1,16 @@ +import numpy as np +import torch + + +def tensor2im(input_image, imtype=np.uint8): + if isinstance(input_image, torch.Tensor): + input_image = torch.clamp(input_image, -1.0, 1.0) + image_tensor = input_image.data + else: + return input_image.reshape(3, 512, 512).transpose() + image_numpy = image_tensor[0].cpu().float().numpy() + if image_numpy.shape[0] == 1: + image_numpy = np.tile(image_numpy, (3, 1, 1)) + image_numpy = (np.transpose(image_numpy, (1, 2, 0)) + 1) / 2.0 * 255.0 + return image_numpy.astype(imtype) + diff --git a/src/pixel3dmm/utils/nn_search.py b/src/pixel3dmm/utils/nn_search.py new file mode 100644 index 0000000000000000000000000000000000000000..456815ed3f0eb83cb6c3ea255707323ec718069f --- /dev/null +++ b/src/pixel3dmm/utils/nn_search.py @@ -0,0 +1,36 @@ +import numpy as np +import torch +import faiss.contrib.torch_utils +from time import time + +res = faiss.StandardGpuResources() # use a single GPU + + +def knn_faiss(queries, points): + t0 = time() + # assert that batch dimensions is 1, since faiss might not support batch of indices + assert points.shape[0] == 1 + assert points.shape[-1] == 2 + assert queries.shape[0] == 1 + assert queries.shape[-1] == 2 + + points = points[0].contiguous() + queries = queries[0].contiguous() + + nlist = 1000 + k = 1 + d = 2 + quantizer = faiss.IndexFlatL2(d) # the other index + index = faiss.IndexIVFFlat(quantizer, d, nlist) + index = faiss.index_cpu_to_gpu(res, 0, index) + + index.nprobe = 10 # default nprobe is 1, try a few more + + index.train(points) + index.add(points) # add may be a bit slower as well + + D, I = index.search(queries, k) + + print(f'Faiss KNN took {time()-t0} seconds') + return D.unsqueeze(0), I.unsqueeze(0) # add back batch dimension + diff --git a/src/pixel3dmm/utils/obj_util.py b/src/pixel3dmm/utils/obj_util.py new file mode 100644 index 0000000000000000000000000000000000000000..4779e962862b7712dc530e219112f8a6ec2864e7 --- /dev/null +++ b/src/pixel3dmm/utils/obj_util.py @@ -0,0 +1,160 @@ +import os +import numpy as np +import cv2 + + +# borrowed from https://github.com/YadiraF/PRNet/blob/master/utils/write.py +def write_obj(obj_name, + vertices, + faces, + colors=None, + texture=None, + uvcoords=None, + uvfaces=None, + inverse_face_order=False, + normal_map=None, + ): + ''' Save 3D face model with texture. + Ref: https://github.com/patrikhuber/eos/blob/bd00155ebae4b1a13b08bf5a991694d682abbada/include/eos/core/Mesh.hpp + Args: + obj_name: str + vertices: shape = (nver, 3) + colors: shape = (nver, 3) + faces: shape = (ntri, 3) + texture: shape = (uv_size, uv_size, 3) + uvcoords: shape = (nver, 2) max value<=1 + ''' + if os.path.splitext(obj_name)[-1] != '.obj': + obj_name = obj_name + '.obj' + mtl_name = obj_name.replace('.obj', '.mtl') + texture_name = obj_name.replace('.obj', '.png') + material_name = 'FaceTexture' + + faces = faces.copy() + # mesh lab start with 1, python/c++ start from 0 + faces += 1 + if inverse_face_order: + faces = faces[:, [2, 1, 0]] + if uvfaces is not None: + uvfaces = uvfaces[:, [2, 1, 0]] + + # write obj + with open(obj_name, 'w') as f: + # first line: write mtlib(material library) + # f.write('# %s\n' % os.path.basename(obj_name)) + # f.write('#\n') + # f.write('\n') + if texture is not None: + f.write('mtllib %s\n\n' % os.path.basename(mtl_name)) + + # write vertices + if colors is None: + for i in range(vertices.shape[0]): + f.write('v {} {} {}\n'.format(vertices[i, 0], vertices[i, 1], vertices[i, 2])) + else: + for i in range(vertices.shape[0]): + f.write('v {} {} {} {} {} {}\n'.format(vertices[i, 0], vertices[i, 1], vertices[i, 2], colors[i, 0], colors[i, 1], colors[i, 2])) + + # write uv coords + if texture is None and (uvcoords is None or uvfaces is None): + for i in range(faces.shape[0]): + f.write('f {} {} {}\n'.format(faces[i, 0], faces[i, 1], faces[i, 2])) + else: + for i in range(uvcoords.shape[0]): + f.write('vt {} {}\n'.format(uvcoords[i,0], uvcoords[i,1])) + f.write('usemtl %s\n' % material_name) + # write f: ver ind/ uv ind + uvfaces = uvfaces + 1 + for i in range(faces.shape[0]): + f.write('f {}/{} {}/{} {}/{}\n'.format( + # faces[i, 2], uvfaces[i, 2], + # faces[i, 1], uvfaces[i, 1], + # faces[i, 0], uvfaces[i, 0] + faces[i, 0], uvfaces[i, 0], + faces[i, 1], uvfaces[i, 1], + faces[i, 2], uvfaces[i, 2] + ) + ) + # write mtl + if texture is not None: + with open(mtl_name, 'w') as f: + f.write('newmtl %s\n' % material_name) + s = 'map_Kd {}\n'.format(os.path.basename(texture_name)) # map to image + f.write(s) + + if normal_map is not None: + name, _ = os.path.splitext(obj_name) + normal_name = f'{name}_normals.png' + f.write(f'disp {normal_name}') + # out_normal_map = normal_map / (np.linalg.norm( + # normal_map, axis=-1, keepdims=True) + 1e-9) + # out_normal_map = (out_normal_map + 1) * 0.5 + + cv2.imwrite( + normal_name, + # (out_normal_map * 255).astype(np.uint8)[:, :, ::-1] + normal_map + ) + cv2.imwrite(texture_name, texture) + + +## load obj, similar to load_obj from pytorch3d +def load_obj(obj_filename): + """ Ref: https://github.com/facebookresearch/pytorch3d/blob/25c065e9dafa90163e7cec873dbb324a637c68b7/pytorch3d/io/obj_io.py + Load a mesh from a file-like object. + """ + with open(obj_filename, 'r') as f: + lines = [line.strip() for line in f] + + verts, uvcoords = [], [] + colors = [] + faces, uv_faces = [], [] + # startswith expects each line to be a string. If the file is read in as + # bytes then first decode to strings. + if lines and isinstance(lines[0], bytes): + lines = [el.decode("utf-8") for el in lines] + + for line in lines: + tokens = line.strip().split() + if line.startswith("v "): # Line is a vertex. + vert = [float(x) for x in tokens[1:4]] + if len(vert) != 3: + msg = "Vertex %s does not have 3 values. Line: %s" + raise ValueError(msg % (str(vert), str(line))) + verts.append(vert) + + if len(tokens) > 4: + if '.' in tokens[4]: + color = [int(float(x)*255) for x in tokens[4:7]] + else: + color = [int(x) for x in tokens[4:7]] + if len(color) != 3: + msg = "Color %s does not have 3 values. Line: %s" + raise ValueError(msg % (str(vert), str(line))) + colors.append(color) + elif line.startswith("vt "): # Line is a texture. + tx = [float(x) for x in tokens[1:3]] + if len(tx) != 2: + raise ValueError( + "Texture %s does not have 2 values. Line: %s" % (str(tx), str(line)) + ) + uvcoords.append(tx) + elif line.startswith("f "): # Line is a face. + # Update face properties info. + face = tokens[1:] + face_list = [f.split("/") for f in face] + for vert_props in face_list: + # Vertex index. + faces.append(int(vert_props[0])) + if len(vert_props) > 1: + if vert_props[1] != "": + # Texture index is present e.g. f 4/1/1. + uv_faces.append(int(vert_props[1])) + + verts = np.array(verts).astype(np.float32) + uvcoords = np.array(uvcoords ).astype(np.float32) + colors = np.array(colors).astype(int) + faces = np.array(faces).astype(np.int64); faces = faces.reshape(-1, 3) - 1 + uv_faces = np.array(uv_faces).astype(np.int64); uv_faces = uv_faces.reshape(-1, 3) - 1 + + return verts, uvcoords, colors, faces, uv_faces diff --git a/src/pixel3dmm/utils/utils_3d.py b/src/pixel3dmm/utils/utils_3d.py new file mode 100644 index 0000000000000000000000000000000000000000..bbab6bddc680f1dfdaf09350bc09b555fa514539 --- /dev/null +++ b/src/pixel3dmm/utils/utils_3d.py @@ -0,0 +1,188 @@ +from PIL import Image +import numpy as np +import torch +import torch.nn.functional as F + +def backproject(depth_maps, normal_maps, Ks, Es, rgb=None, masks=None): + points3d = {} + normals3d = {} + rgb3d = {} + for cam_id in depth_maps.keys(): + depth_map = depth_maps[cam_id] + normal_map = normal_maps[cam_id] + + + ys = np.arange(depth_map.shape[0]) + xs = np.arange(depth_map.shape[1]) + p_screen = np.dstack(np.meshgrid(xs, ys, [1])).reshape((-1, 3)) + depth_mask = (depth_map > 0) & (depth_map < 1.4) + if masks is not None: + # upsample mask + I = Image.fromarray(masks[cam_id]) + I = I.resize((I.size[0]*2, I.size[1]*2)) + depth_mask = np.logical_and(depth_mask, np.array(I).astype(np.bool)) + depths = depth_map[depth_mask] + p_screen = p_screen[depth_mask.reshape(-1)] + p_screen_canonical = p_screen @ Ks[cam_id].invert().T + p_cam = p_screen_canonical * np.expand_dims(depths, 1) + p_cam_hom = np.hstack([p_cam, np.ones((p_cam.shape[0], 1))]) + p_world = p_cam_hom @ Es[cam_id].T + ns = np.ones_like(p_world) + ns[:, :3] = normal_map[depth_mask] + n_world = ns @ Es[cam_id].T + + points3d[cam_id] = p_world[:, :3] + normals3d[cam_id] = n_world[:, :3] + if rgb is not None: + rgb_lin = rgb[cam_id].reshape((-1, 3)) + rgb_valid = rgb_lin[depth_mask.reshape(-1)] + rgb3d[cam_id] = rgb_valid + + if rgb is None: + return points3d, normals3d + else: + return points3d, normals3d, rgb3d + + +def get_view_dirs(Ks, Es, image_shape, rgb=None, masks=None): + points3d = {} + view_dirs = {} + for cam_id in Ks.keys(): + ys = np.arange(image_shape[0]) + xs = np.arange(image_shape[1]) + p_screen = np.dstack(np.meshgrid(xs, ys, [1])).reshape((-1, 3)) + if masks is not None: + # upsample mask + I = Image.fromarray(masks[cam_id]) + I = I.resize((I.size[0]*2, I.size[1]*2)) + depth_mask = np.logical_and(depth_mask, np.array(I).astype(np.bool)) + p_screen = np.reshape(p_screen, [-1, 3]) + p_screen_canonical = p_screen @ Ks[cam_id].invert().T + p_cam = p_screen_canonical * 1 + p_cam_hom = np.hstack([p_cam, np.ones((p_cam.shape[0], 1))]) + p_world = p_cam_hom @ Es[cam_id].T + + points3d[cam_id] = p_world[:, :3] + + origin = Es[cam_id][:3, 3] + view_dirs[cam_id] = p_world[:, :3] - origin + view_dirs[cam_id] /= np.linalg.norm(view_dirs[cam_id], axis=-1, keepdims=True) + + #if rgb is not None: + # rgb_lin = rgb[cam_id].reshape((-1, 3)) + # rgb_valid = rgb_lin[depth_mask.reshape(-1)] + # rgb3d[cam_id] = rgb_valid + + #if rgb is None: + # return points3d, normals3d + #else: + + return view_dirs + + + + + + return + + +def rotation_6d_to_matrix(d6: torch.Tensor) -> torch.Tensor: + """ + Converts 6D rotation representation by Zhou et al. [1] to rotation matrix + using Gram--Schmidt orthogonalization per Section B of [1]. + Args: + d6: 6D rotation representation, of size (*, 6) + + Returns: + batch of rotation matrices of size (*, 3, 3) + + [1] Zhou, Y., Barnes, C., Lu, J., Yang, J., & Li, H. + On the Continuity of Rotation Representations in Neural Networks. + IEEE Conference on Computer Vision and Pattern Recognition, 2019. + Retrieved from http://arxiv.org/abs/1812.07035 + """ + + a1, a2 = d6[..., :3], d6[..., 3:] + b1 = F.normalize(a1, dim=-1) + b2 = a2 - (b1 * a2).sum(-1, keepdim=True) * b1 + b2 = F.normalize(b2, dim=-1) + b3 = torch.cross(b1, b2, dim=-1) + return torch.stack((b1, b2, b3), dim=-2) + + +def matrix_to_rotation_6d(matrix: torch.Tensor) -> torch.Tensor: + """ + Converts rotation matrices to 6D rotation representation by Zhou et al. [1] + by dropping the last row. Note that 6D representation is not unique. + Args: + matrix: batch of rotation matrices of size (*, 3, 3) + + Returns: + 6D rotation representation, of size (*, 6) + + [1] Zhou, Y., Barnes, C., Lu, J., Yang, J., & Li, H. + On the Continuity of Rotation Representations in Neural Networks. + IEEE Conference on Computer Vision and Pattern Recognition, 2019. + Retrieved from http://arxiv.org/abs/1812.07035 + """ + batch_dim = matrix.size()[:-2] + return matrix[..., :2, :].clone().reshape(batch_dim + (6,)) + + +def _axis_angle_rotation(axis: str, angle: torch.Tensor) -> torch.Tensor: + """ + Return the rotation matrices for one of the rotations about an axis + of which Euler angles describe, for each value of the angle given. + + Args: + axis: Axis label "X" or "Y or "Z". + angle: any shape tensor of Euler angles in radians + + Returns: + Rotation matrices as tensor of shape (..., 3, 3). + """ + + cos = torch.cos(angle) + sin = torch.sin(angle) + one = torch.ones_like(angle) + zero = torch.zeros_like(angle) + + if axis == "X": + R_flat = (one, zero, zero, zero, cos, -sin, zero, sin, cos) + elif axis == "Y": + R_flat = (cos, zero, sin, zero, one, zero, -sin, zero, cos) + elif axis == "Z": + R_flat = (cos, -sin, zero, sin, cos, zero, zero, zero, one) + else: + raise ValueError("letter must be either X, Y or Z.") + + return torch.stack(R_flat, -1).reshape(angle.shape + (3, 3)) + + +def euler_angles_to_matrix(euler_angles: torch.Tensor, convention: str) -> torch.Tensor: + """ + Convert rotations given as Euler angles in radians to rotation matrices. + + Args: + euler_angles: Euler angles in radians as tensor of shape (..., 3). + convention: Convention string of three uppercase letters from + {"X", "Y", and "Z"}. + + Returns: + Rotation matrices as tensor of shape (..., 3, 3). + """ + if euler_angles.dim() == 0 or euler_angles.shape[-1] != 3: + raise ValueError("Invalid input euler angles.") + if len(convention) != 3: + raise ValueError("Convention must have 3 letters.") + if convention[1] in (convention[0], convention[2]): + raise ValueError(f"Invalid convention {convention}.") + for letter in convention: + if letter not in ("X", "Y", "Z"): + raise ValueError(f"Invalid letter {letter} in convention string.") + matrices = [ + _axis_angle_rotation(c, e) + for c, e in zip(convention, torch.unbind(euler_angles, -1)) + ] + # return functools.reduce(torch.matmul, matrices) + return torch.matmul(torch.matmul(matrices[0], matrices[1]), matrices[2]) \ No newline at end of file diff --git a/src/pixel3dmm/utils/uv.py b/src/pixel3dmm/utils/uv.py new file mode 100644 index 0000000000000000000000000000000000000000..ee702cf13eb54715f83ede35f4baafc70b263a96 --- /dev/null +++ b/src/pixel3dmm/utils/uv.py @@ -0,0 +1,124 @@ +import numpy as np +import torch +from PIL import Image +import trimesh +import networkx as nx +from pytorch3d.ops import knn_points, knn_gather +from PIL import ImageDraw +from time import time + +from pixel3dmm import env_paths + +def pad_to_3_channels(img): + if img.shape[-1] == 3: + return img + elif img.shape[-1] == 1: + return np.concatenate([img, np.zeros_like(img[..., :1]), np.zeros_like(img[..., :1])], axis=-1) + elif img.shape[-1] == 2: + return np.concatenate([img, np.zeros_like(img[..., :1])], axis=-1) + else: + raise ValueError('too many dimensions in prediction type!') + + +def uv_pred_to_mesh(output, mask, rgb_img, right_ear = None, left_ear = None): + valid_verts = np.load(f'{env_paths.VALID_VERTS_UV_MESH}') + + m_test = trimesh.load(f'{env_paths.head_template_ply}', process=False) + edges = m_test.edges_unique + + g = nx.from_edgelist(m_test.edges_unique) + one_ring = [list(g[i].keys()) for i in range(len(m_test.vertices))] + + can_uv = torch.from_numpy(np.load(f'{env_paths.FLAME_UV_COORDS}')).cuda().unsqueeze(0).float() + can_uv[..., 0] = (can_uv[..., 0] * -1) + 1 + can_uv[..., 1] = (can_uv[..., 1] * -1) + 1 + + + #valid_verts = valid_verts & (np.max(np.abs(can_uv.squeeze(0).detach().cpu().numpy()), axis=-1)<0.5) + + + #valid_verts = valid_verts[np.in1d(valid_verts, np.nonzero((np.max(np.abs((2*can_uv-1).squeeze(0).detach().cpu().numpy()), axis=-1)<0.499))[0])] + + + #img = (pad_to_3_channels(output[0, 0].permute(1, 2, 0).detach().cpu().float().numpy() + 1) / 2 * 255).astype( + # np.uint8) + img = (((rgb_img[0, 0].cpu().numpy()))*255).astype(np.uint8) + #Image.fromarray(img).show() + #Image.fromarray( + # (pad_to_3_channels(output[0, 0].permute(1, 2, 0).detach().cpu().float().numpy() + 1) / 2 * 255).astype( + # np.uint8)).show() + + invalid_pred = output[0, 0].abs() >= 1.0 #0.5 + output[0, 0][invalid_pred] = 10 + gt_uv = (output[0, 0].permute(1, 2, 0) + 1) / 2 + gt_uv = gt_uv * mask[0, 0].unsqueeze(-1) + gt_uv = gt_uv.reshape(1, -1, 2) + knn_result = knn_points(can_uv, gt_uv) + pixel_position_width = knn_result.idx % 512 + pixel_position_height = knn_result.idx // 512 + + dists = knn_result.dists.clone() + + gt_2_verts = torch.cat([pixel_position_width, pixel_position_height], dim=-1) + + # dists = (dists - dists.min()) + # dists = dists / dists.max()+ + delta = 0.00005 #1 + max_dist = delta + empty = img + drawn_verts = [] + for i in range(pixel_position_height.shape[1]): + if i not in valid_verts: + continue + if dists[0, i, 0] < delta: + if can_uv[0, i, 0] < 0.5: + empty[gt_2_verts[0, i, 1].item(), gt_2_verts[0, i, 0].item(), 0] = 255 # dists[0, i, 0] + else: + empty[gt_2_verts[0, i, 1].item(), gt_2_verts[0, i, 0].item(), 1] = 255 # dists[0, i, 0] + drawn_verts.append(i) + empty = (empty).astype(np.uint8) + im = Image.fromarray(empty) + draw = ImageDraw.Draw(im) + + for i in drawn_verts: + for j in one_ring[i]: + if j in drawn_verts: + if torch.abs(gt_2_verts[0, i] - gt_2_verts[0, j]).sum(-1) > 35: + continue + draw.line( + [ + ( + gt_2_verts[0, i, 0].int().item(), + gt_2_verts[0, i, 1].int().item() + ), + ( + gt_2_verts[0, j, 0].int().item(), + gt_2_verts[0, j, 1].int().item() + ) + + ], fill=128) + empty = np.array(im) + #for i in range(pixel_position_height.shape[1]): + # if i not in valid_verts: + # continue + # if dists[0, i, 0] < delta: + # empty[gt_2_verts[0, i, 1].item(), gt_2_verts[0, i, 0].item(), 0] = int(255 * (dists[0, i, 0] / max_dist)) + # drawn_verts.append(i) + + for i in range(pixel_position_height.shape[1]): + if i not in valid_verts: + continue + if dists[0, i, 0] < delta: + if can_uv[0, i, 0] < 0.5: + empty[ + np.clip(gt_2_verts[0, i, 1].item()-1, 0, empty.shape[0]-1):np.clip(gt_2_verts[0, i, 1].item()+1, 0, empty.shape[0]-1), + np.clip(gt_2_verts[0, i, 0].item()-1, 0, empty.shape[1]-1):np.clip(gt_2_verts[0, i, 0].item()+1, 0, empty.shape[1]-1), + 0] = 200 # dists[0, i, 0] + else: + empty[ + np.clip(gt_2_verts[0, i, 1].item() - 1, 0, empty.shape[0] - 1):np.clip(gt_2_verts[0, i, 1].item() + 1, + 0, empty.shape[0] - 1), + np.clip(gt_2_verts[0, i, 0].item() - 1, 0, empty.shape[1] - 1):np.clip(gt_2_verts[0, i, 0].item() + 1, + 0, empty.shape[1] - 1), + 1] = 200 # dists[0, i, 0] + return empty